Ich benutze die Klasse scrbook. Um den Anhang vom übrigen Text abzutrennen, habe ich einen \part{Anhang} eingefügt. Dies ist der einzige \part im Dokument, sodass er mit "Teil I." nummeriert wird. Ich habe verschiedene andere Möglichkeiten ausprobiert, um den Anhang abzutrennen, diese gefällt mir aber am Besten. Trotzdem habe ich auch dabei noch ein paar Probleme bzw. Fragen.
Zu 1.: Ich habe es schon mit
\part*{Anhang} \addcontentsline{toc}{part}{\protect{Anhang}}
versucht. Das führt allerdings dazu, das die Links im Inhaltsverzeichnis nicht richtig gesetzt werden. Der Link auf den Anhang verweist dann auf die erste Seite des ersten Anhangkapitels statt auf die Seite auf der "Anhang" steht.
Zu 2.: Ich habe dazu zwar einen Foreneintrag hier gefunden, dort wird allerdings auf das Handbuch hingewiesen, wo ein Beispiel dazu stehen soll. Der Eintrag ist allerdings schon etwas älter und ich konnte das genannte Beispiel in der aktuellen "scrguide.pdf" Datei nicht finden.
Problem Nummer 1 fast gelöst
"Wer lesen kann ist klar im Vorteil!" ist einer der Lieblingssprüche meiner Schwester und er stimmt.
Nach einer erneuten Lektüre des Handbuchs habe ich herausgefunden, das man mit
\renewcommand*{\partformat}{}
ja ganz einfach den "Teil I." vor dem Namen des\part
entfernen kann. Dann kann man auch ruhig \part einsetzen und der Link im Inhaltsverzeichnis stimmt. Aber wie man die "I." vor dem\part
"Anhang" im Inhaltsverzeichnis entfernt, habe ich noch nicht herausgefunden.Ich habe es übrigens auch mit
\addpart
statt\part*
versucht, was die zweite angegebene Zeile überflüssig macht, aber den Anhang bei den AcrobatReader Lesezeichen zum letzten Kapitel des Hauptteils hinzufügt und auch den Link im Inhaltsverzeichnis entsprechend setzt (obwohl die Seitenangabe dann zumindest richtig ist).Problem Nummer 2 gelöst
War ja eigentlich auch ganz einfach, man muss eben nur die Aussagen mehrerer Internetseiten (Foreneinträge) richtig kombinieren, schon ist die Seitenzahl auf der
\part
Seite mit\renewcommand*{\partformat}{\thispagestyle{empty}}
leicht entfernt.Jetzt versuche ich nur noch das
\part
Kommando aus scrbook entsprechend neu zu definieren, damit das inhaltsverzeichnis auch zum Kapitel passt (also die "I." aus Problem Nummer 1 wegfällt).Heureka, beide Probleme gelöst
Ich habe es geschafft das entsprechende Kommando in der scrbook Datei neu zu definieren und sogar beide Probleme in einer Neudefinition zu lösen. Es hilft schon viel, wenn man die Probleme einfach mal in einem Forum genau aufschreibt. Dann gelangt man auch leichter selbst zu einer Lösung.
Hier der entsprechende Code, den ich in den Header eingefügt habe:
Nun bleibt nur noch die Frage, ob das vielleicht auch kürzer geht!?
Nicht empfehlenswert
Die Umdefinierung interner Anweisungen (hier
\@part
) ist immer gefährlich. In dieser Umdefinierung weitere interne Anweisungen (hier beispielsweise\@maybeautodot
,\par@updaterelative
,\size@partnumber
und\@endpart
) zu verwenden, ist brandgefährlich. Ein Verlag hat sich mit solchem Murks vor kurzem mehrere Klassen zerschossen und kann nun sehen, wie er das wieder gerade biegt.Das Problem mit
\addpart
und Acrobat ist übrigens kein Problem von Acrobat, sondern eines mit einer fehlenden, dokumentierten Schnittstelle in hyperref. Diese Schnittstelle, die es Klassen- und Paketautoren ermöglichen sollte, auf die automatisch gesetzten Anker und Bookmarks Einfluss zu nehmen, habe ich schon vor Jahren nachgefragt. Ich bin auch nicht der einzige Paketautor, der sich diese schon länger wünscht. Aus unerfindlichen Gründen implementiert der hyperref-Autor aber lieber immer neue Dinge, als diese dringend benötigte Schnittstelle in Angriff zu nehmen.Gibt es denn eine brauchbare Alternative
Ich habe mir zunächst einmal die Definition von
\@part
aus der scrbook.cls Datei kopiert und danndurch
ersetzt, um den TOC-Eintrag anzupassen, und etwas weiter unten
durch
ersetzt, um die Seitenzahl zu entfernen.
Die von dir erwähnten internen Anweisungen habe ich alle so belassen wie sie waren. Ich habe es ja auch nur im Header meines Dokumentes neu definiert, sodass eigentlich nichts weiter Schlimmes passieren dürfte. Und soweit passiert ja auch genau das, was ich will. In der scrbook.cls Datei oder ähnlichen werde ich natürlich nicht rumpfuschen. Es war schon kompliziert genug eine eigene .bst Datei zu basteln auch wenn ich das im Endeffekt hingekriegt habe.
Gibt es denn eine Möglichkeit sicherer vorzugehen und trotzdem passende Links und Einträge ins Inhaltsverzeichnis zu erhalten, außer zu warten, bis das hyperref-Paket vielleicht irgendwann geändert wird und
\addpart
funktioniert?Ich hatte schon vermutet, dass es an hyperref und nicht an Acrobat liegt. Ich wollte nur das Ergebnis beschreiben. Ich hatte schon einmal ein Problem mit von hyperref falsch gesetzten Links durch eine Unverträglichkeit mit einem anderen Paket, es kommt also nicht so überraschend. Allerdings konnte ich dieses Problem lösen und habe auch keine für mich brauchbare Alternative zu hyperref gefunden. Aber es gibt ja so viele Pakete, kennst du vielleicht ein Paket, das das gleiche kann wie hyperref und nicht solche Problem mit sich bringt?
Bisher gibt es leider keine Alternative zu hyperref
Umso bedauerlicher ist, dass der Autor von hyperref die längst nachgefragte Schnittstelle nicht einbaut oder nicht dokumentiert. Natürlich könnte ich hyperref studieren und dann auf undokumentierte Interna von hyperref aufbauend eine Lösung bauen. Das Problem dabei ist aber dasselbe wie mit Deiner Bastellösung, die auf undokumentierten Interna von KOMA-Script basiert: Mit der nächsten Release kann das bereits zu unvorhersehbaren Problemen führen und die Arbeit dann von vorn beginnen.
Aus genau dem gleichen Grund solltest Du alle internen Anweisungen von KOMA-Script durch dokumentierte Wege ersetzen:
Warum hast Du das überhaupt drin? Du willst den Zähler doch gar nicht ausgegeben haben. Also würde ich die Zeile komplett weglassen. da sie in diesem Fall sogar zu unerwünschten Ergebnissen führen kann.
Hier ist in der KOMA-Script-Anleitung
\usekomafont{part}
an Stelle von\size@partnumber
dokumentiert.Und für das Setzen von Absatzabstand, Absatzeinzug und Absatzendzeilenfreiraum ist in der KOMA-Script-Anleitung ebenfalls ein Weg dokumentiert. Ansonsten kann man dort aber auch den Standard-LaTeX-Weg mit
\setlength
verwenden, statt irgendwelche Interna von KOMA-Script, die innerhalb von KOMA-Script hauptsächlich deshalb verwendet werden, weil sie immer gleiche Anweisungen abkürzen. Gerade solche Dinge "Abkürzungsmakros" sind immer recht provisorisch. Sollte es je einen dokumentierten Weg in dieser Richtung geben, verschwinden diese Abkürzungsmakros oftmals. Das ist nämlich der Hauptvorteil von ihnen: Man findet relevante Stellen, die geändert werden müssen, leichter. Die landläufige Meinung ist ja eher, dass Programmierer diese Dinger aus Faulheit implementieren. Das Gegenteil ist der Fall: Sie entstehen in weiser Voraussicht.Eigentlich willst Du doch das Verhalten, das
\part
an den Tag legt, wennsecnumdepth
die Nummerierung von\part
untersagt. Also könntest Du auch etwas wie (nur skizziert):Falls hyperref damit keinen brauchbaren Bookmark produziert, muss man tatsächlich noch
\cleardoublepage
und\refstepcounter{part}
vor dem Aufruf von\part
einfügen.Eine solche Lösung hat den großen Vorteil, dass sie außer der Repräsentation von
secnumdepth
als TeX-Zähler\c@secnumdepth
keinerlei Interna verwendet. Dieses eine interne Wissen über LaTeX ist in so vielen Paketen und Klassen verwendet, dass es in LaTeX2e garantiert nicht mehr geändert werden wird, also problemlos genutzt werden kann. Alternativ könnte man auch\value{secnumdepth}
verwenden.Und wie entferne ich nun die unsinnige "I." aus dem TOC?
Mit diesem Code:
erreiche ich ja nun sicherer fast alles, was ich erreichen wollte.
Merkwürdigerweise spinnt jetzt der Navigationsbaum (Inhaltsverzeichnis) im TeXnicCenter, aber das ist ja vollkommen egal, wenn nur das Ergebnisdokument stimmt.
Nur ein Problem habe ich mit dieser Lösung noch, das ich eben mit den gefährlichen internen Anweisungen nicht mehr hatte. Im Inhaltsverzeichnis taucht wieder die unsinnige "I." als Nummerierung des
\part
auf. Ich habe es mit\c@tocdepth=-2\relax
analog zu\c@secnumdepth=-2\relax
und mit\setcounter{tocdepth}{-2}
vor dem\part
versucht, ohne Erfolg. Wobei Ersteres überhaupt nichts ändert und Zweiteres lediglich die Ebene "Anhang" aus den Acrobat Lesezeichen entfernt, aber nicht die "I." aus dem TOC.Wie kann ich mit dieser sicheren Art auch noch diese Nummerierungsebene im TOC entfernen?
Die Frage ist eher, wie Du die Nummer bekommen hast
Da Du ein vollständiges Minimalbeispiel trotz ausdrücklicher Bitte in der Mail, die Du bei Freischaltung vom Admin bekommen hast, nicht für nötig gehalten hast, kann ich Dir nicht helfen. Mein Minimalbeispiel:
funktioniert jedenfalls.
Sorry
Das mit dem Minimalbeispiel war vielleicht (so dachte ich zumindest) bei meiner ursprünglichen Anfrage unnötig und ich hatte ja zwischenzeitlich auch eine funktionierende, wenn auch gefährliche, Lösung gefunden, aber nach deiner letzten Antwort hätte ich wohl tatsächlich besser ein Minimalbeispiel erstellt und in meine letzte Antwort gepackt. Dann wäre mir wohl auch selbst aufgefallen, dass ich einfach nur
\makeatletter
und\makeatother
vergessen hatte. Nachdem ich diese Zeilen hinzugefügt hatte, kriegte ich aber leider die Seitenzahl auf der "Anhang"-Seite mit der alten Methode nicht mehr weg. Das hat wohl (zumindest deutet das Minimalbeispiel darauf hin) damit zu tun, dass ich den Seitenstil mit "scrpage2" umdefiniert habe. Ich habe es jetzt durch Einfügen von\clearscrheadfoot
geschafft die Seitenzahl wieder zu entfernen.Hier ist das Minimalbeispiel:
Entschuldige, dass ich das nicht bereits früher eingefügt habe, kommt nicht wieder vor.
Ich hoffe, so habe ich nun nicht nur das erreicht, was ich wollte, sondern das auch noch auf einem sicheren Weg? Oder ist da noch irgendetwas dran auszusetzen (mal von persönlichen Geschmacksfragen beim Aussehen abgesehen)?
Der Teil hinter
\Part{Anhang}
dient nur dazu, sicherzustellen, dass der Seitenstil tatsächlich nur lokal geändert wird.Vielen Dank für die ausführliche und prompte Hilfe!
P.S.: Super, dass man sich hier erst die Vorschau ansehen muss (bzw. dass es überhaupt eine gibt)! Die Leerzeichen im Minimalbeispiel werden durch Copy&Paste ja schon ziemlich aufgebläht, was man in der Vorschau viel besser sehen kann.
Weggelassende Zeile übersehen?
Ich hatte schlicht den Seitenstil für
\part-
Seiten nicht geändert, weil das für die Demonstration, dass die Teil-Nummer im Inhaltsverzeichnis nicht auftaucht, nicht notwendig war.Danke
Danke nochmal, damit dürfte es ja dann jetzt komplett und sicher sein.
Ist denn deine Variante mit
\renewcommand*{\partpagestyle}{empty}
besser/stabiler/sicherer/eleganter (etc.) als die von mir angegebene Version mit\clearscrheadfoot
?Die Antwort steht eigentlich schon im Quellcode
Deine Lösung mit
\cearscrheadfoot
funktioniert hingegen nur mit scrpage2 und auch nur, wenn der Seitenstil von\part
entweder zuscrheadings
oderscrplain
führt. Wenn das Funktionieren aber schon von\partpagestyle
abhängt, dann kann manpartpagestyle
auch gleich auf den Seitenstil setzen, den man eigentlich haben will. Oder?Alles klar!
Diesen Kommentar habe ich dann wohl nicht richtig verstanden.
Das die Lösung ohne scrpage2 erreicht werden kann war mir ja klar. Nur die alte Lösung über
\renewcommand*{\partformat}{\thispagestyle{empty}}
funktionierte damit eben nicht mehr. scrpage2 nutze ich ja auch nur, um den gewünschten Seitenstil zu erreichen, und somit war es Teil des Problems die Seitenzahl zu entfernen (und deshalb im Minimalbeispiel), und nicht Teil der Lösung.Ich dachte, du wolltest mit dem Kommentar eher sagen, dass es so auch mit scrpage2 geht.
Es leuchtet mir aber natürlich ein, dass die Variante mit
\partpagestyle
allgemeingültiger und somit besser ist, weil ich dann unter Umständen bei anderen Dokumenten scrpage2 gar nicht einbinden muss und trotzdem noch den gleichen Stil für\part
beibehalten kann. Deshalb habe ich ja auch nachgefragt, denn du kennst dich ja mit komascript hoffentlich besser aus, als ich es, selbst mit dem gründlichsten Studium der Dokumentation, je tun werde. (Die Dokumentation ist übrigens eine der besten Paket-Dokumentationen die mir untergekommen sind, auch wenn sie sich bei solchen Problemen nicht zum "eben mal Nachschlagen" eignet. Gratulation und Dank dafür)Schön
Ich wollte damit eigentlich sagen, dass es so sowohl mit als auch ohne scrpage2 geht.
Ich bin übrigens ziemlich sicher, dass es Leute gibt, die sich mit KOMA-Script besser auskennen als ich, zumindest wenn es um die Frage geht, was alles an Optionen, Befehle, Umgebungen etc. gibt und wie die zugehörige Syntax lautet. Ich brauche schon seit zehn Jahren keinen neuen Features in KOMA-Script mehr und könnte ohne KOMA-Script-Anleitung und Index die meisten Fragen zu KOMA-Script nur schwerlich beantworten. Das ist übrigens auch ein Grund, warum ich Minimalbeispiele brauche: Ich probiere gerne aus, wenn ich meine, einen Verdacht zu haben. Ich blättere kaum lieber als andere Leute in einer Anleitung. Und wenn ich die selbst geschrieben habe, ist das noch öder. Ich kann Dir auch verraten, was mir an der KOMA-Script-Anleitung fehlt: Syntaxinformationen im Index. Die wird es aber bis auf weiteres nicht geben, weil das mit der Art und Weise, wie der Index derzeit erzeugt wird, nicht gut funktioniert.
\addpart funktioniert
Inzwischen sollte
\addpart
wie gewünscht funktionieren, so dass die ganzen Umstände der anderen Lösung entfallen können.