Seite 1 von 2
Frage zur Anpassung von book.cls
Verfasst: Sa 29. Jun 2013, 10:45
von Jossie
Guten Morgen,
für ein Projekt habe ich das Style-File book.cls etwas angepasst. Aber bei zwei Punkten komme ich nicht weiter:
1) Im Inhaltsverzeichnis habe ich den linken Rand mit breiterer Spalte für die Kapitelnummern hinbekommen. Aber am rechten Rand wird manchmal (aber nicht immer!) nicht richtig umgebrochen. Das sieht dann etwa so aus:
___________1 Titel
_____________Autor1, Autor2 . . . . 284
___________2 Titel
_____________Autor1, Autor2, Autor3,
_____________Autor4 . . . . . . . . . . 286
(Die Unterstriche links sollten Leerzeichen sein. Aber damit wird alles linksbündig gesetzt.)
Ich habe experimentell noch nicht rausbekommen, welcher Parameter diesen Umbruch rechts steuert.
2) Ich möchte generell den Abstand zwischen Aufzählungselementen verringern. Das klappt, wenn z.B. nach \begin{itemize} über ein Makro der Wert von \itemsep geändert wird (\setlength{\itemsep}{...}). Da ich das aber nicht bei jeder Aufzählungsumgebung angeben sondern global ändern möchte, hatte ich diesen Befehl ans Ende von book.cls gesetzt. Aber das wird ignoriert. Wie kann ich global \itemsep in book.cls ändern?
Besten Dank im Voraus!
Hermann-Josef
Verfasst: Sa 29. Jun 2013, 16:45
von Johannes_B
Um deine Frage zu beantworten musst du ein
vollständiges Minimalbeispiel posten. Momentan ist dein Problem nicht nachvollziehbar und kann viele Ursachen haben.
Ein paar Fragen und Anmerkungen:
Hast du die LaTeX-Standardklasse book.cls genutzt, oder vielleicht die viel flexiblere und erweiterbare/konfigurierbare scrbook.cls aus
KOMA-Script?
Ich hoffe du nimmst die Änderungen an einer lokalen Kopie unter anderem Namen vor, ein Update könnte deine Arbeit sonst überschreiben.
EDIT: Link korrigiert
Verfasst: Sa 29. Jun 2013, 17:06
von Jossie
Hallo zusammen,
ja, ich habe das Standardfile book.cls genommen und unter anderem Namen abgespeichert.
Hier ist die Stelle, die ich angepasst hatte, um im Inhaltsverzeichnis links mehr Platz für die Kapitelnummern zu haben:
%\newcommand*\l@section{\@dottedtocline{1}{1.5em}{2.3em}}
\newcommand*\l@section{\@dottedtocline{1}{1.5em}{2.8em}}% <--- changed for FB
Ansonsten kann ich momentan nicht mehr bieten, als die Darstellung im ersten Beitrag, die zeigen soll, dass manchmal der Text (Kapitelüberschrift + Autorenliste) in die Spalte der Seitenzahlen hineinreicht.
Es würde mir hier schon helfen, wenn jemand die Parameter in book.cls aufdröseln könnte, die die Spaltenbreiten im Inhaltsverzeichnis steuern bzw. einen Hinweis geben könnte, wo ich eine solche Dokumentation finden kann.
Zur 2. Frage:
Ich kann den Abstand zwischen den Listenelementen ändern, wenn ich zu Beginn jeder Aufzählungsumgebung Folgendes einfüge:
\begin{itemize}%
\setlength{\itemsep}{-0.25ex plus0.5ex minus0.25ex}
\setlength{\parsep}{0pt}
\vspace*{-\parskip}}
\item ...
\item ...
\end{itemize}
Füge ich aber den entsprechenden Code in das Style-File book.cls am Ende an, dann tut sich nichts beim Abstand der Aufzählungselemente. Das wird offenbar ignoriert.
Meine Frage daher, wie ich den Wert von \itemsep global im Stylefile für alle Listenumgebungen ändern kann.
Beste Grüße
Hermann-Josef
Verfasst: Sa 29. Jun 2013, 17:12
von Johannes_B
Deine eigentlich Frage kann ich momentan nicht beantworten, aber bitte schau in die Doku von KOMA-script (siehe Link weiter oben). Alles was du ändern willst sollte mit Paketen aus dem Bundel mit ein paar einfachen Befehlen zu realisieren sein.
Im Moment versucht du aus Blech, Schrauben und nem Hammer ein Rennauto zu basteln, obwohl es schon einen fertigen Modulbausatz (KOMA) gibt.
Verfasst: Sa 29. Jun 2013, 17:42
von Jossie
Hallo,
leider funktioniert der Link nicht. Kannst Du den bitte überprüfen?
Mein erstes Problem hängt sehr wahrscheinlich mit einem Trennungsproblem zusammen. Es tritt nämlich immer dann auf, wenn am Ende der Überschrift, die ins Inhaltsverzeichnis übernommen wird, Worte kommen, die nicht oder nur schlecht zu trennen sind (wie Akronyme usw.). Statt in die Seitenspalte weiter zu schreiben sollte da besser eine neue Zeile begonnen werden. Frage ist, wie ich das erzwingen kann.
Frage 2 kann verallgemeinert werden, wie man den Wert einer Variablen (wie z.B. \itemsep) global im Stylefile ändern kann.
Danke und Gruß
Hermann-Josef
Verfasst: Sa 29. Jun 2013, 19:02
von Johannes_B
Ich habe den Link korrigiert. Übrigens empfiehlt es sich statt, in einer Klassendatei zu basteln, Änderungen mit Hilfe von
renewcommands vorzunehmen. Schau dir zusätzlich zu KOMA bitte auch das Paket
tocloft an.
Bitte lies dir auch genau durch, wieso man bei LaTeX-Problemen Minimalbeispiele erstellt und welchen Zweck das alles hat. Den Link finfest du oben.
Verfasst: Sa 29. Jun 2013, 19:18
von Jossie
Danke, hab durch googeln das Paket inzwischen gefunden.
Dass man mit einem Minimalbeispiel effizient arbeitet, ist mir schon klar. Ich hatte versucht, das Problem des Inhaltsverzeichnisses zu isolieren -- ohne Erfolg. Und ich kann hier aber nicht das ganze Paket mit seinen 400 Seiten posten ... Dabei war mir die Sache mit der Trennung aufgefallen.
Zu Punkt 2, der Änderung von \itemsep, habe ich ebenfalls durch googeln inzwischen Lösungsvorschläge gefunden. Ich muss allerdings erst mal ausprobieren, ob das bei mir zum Erfolg führt.
Danke und beste Grüße
Hermann-Josef
Die vielleicht bessere Alternative
Verfasst: Sa 29. Jun 2013, 19:34
von localghost
Jossie hat geschrieben:Danke, hab durch googeln das Paket inzwischen gefunden. […]
Verschwende deine Zeit nicht mit der Suche im Internet. Gehe direkt zu
CTAN. Für die Anpassung der Listen kannst Du dir
enumitem ansehen.
Johannes_B hat geschrieben:[…] Schau dir zusätzlich zu KOMA bitte auch das Paket
tocloft an. […]
Das ist nicht unbedingt zu empfehlen. Das zu
KOMA-Script gehörende Paket »tocstyle« wäre hier vorzuziehen. Es hat eine eigene Anleitung, die ganz bequem über die
Kommandozeile abrufbar ist.
In Sachen
Minimalbeispiel stimme ich vollkommen zu.
Thorsten
Verfasst: So 30. Jun 2013, 01:03
von Johannes_B
Danke Thorsten, an tocstyle hatte ich gar nicht gedacht.
Der Vorteil des Ladens der Standardklasse mit Änderungen mittels renewcommand wäre unter anderem auch, dass bloß Änderungen "sichtbar" (und damit nachvollziehbar) gemacht werden.
Nachtrag
Verfasst: So 30. Jun 2013, 09:47
von localghost
Johannes_B hat geschrieben:[…] Der Vorteil des Ladens der Standardklasse mit Änderungen mittels renewcommand wäre unter anderem auch, dass bloß Änderungen "sichtbar" (und damit nachvollziehbar) gemacht werden.
Ich habe das etwas missverständlich geschrieben, weil ich (mal wieder) nicht richtig gelesen habe. Bei den Standardklassen kann man natürlich Pakete wie
titletoc oder
tocloft nehmen. Deren Handhabung ist ja recht einfach. Bei Klassen aus
KOMA-Script könnten die allerdings versagen, weil dort viel Dinge etwas anders umgesetzt sind.