Silbentrennungen im Inhaltsverzeichnis und in
Überschriften sehen meist recht albern aus, vor
allem, wenn nur die letzte Silbe getrennt wird.
Wie kann ich erreichen, daß dort Worte nicht
getrennt, sondern einfach in die nächste Zeile
übernommen werden ?
Silbentrennungen oder einen Zeilenumbruch
vorzugeben ist keine gute Idee, da die Trennungen
in Inhaltsverzeichnis und Überschrift je an anderen
Stellen erfolgen.
Folgende Ansätze führten nicht zum Ziel:
1.) \raggedright
2.) \begin{flushleft}
\section{Versuchsmaterial, ... }
\label{sec:Untersuchungssystem}
\end{flushleft}
Das ließ sich mit LaTeX gar nicht übersetzen.
Wahrscheinlich arbeiten die Anweisungen nicht
ohne explizit gesetzten Zeilentrenner \\ ,
wenn die Zeile zu lang ist.
3.) \begin{sloppypar}
...
\end{sloppypar}
Das sollte großzügigere Wortabstände erlauben,
blieb aber ohne Auswirkung.
Vielen Dank im voraus.
Gruss Stefan
In eine \mbox{} packen? Ich wuesste zumindest nicht, warum das nicht
gehen sollte.
Cheers
Ina
--
Ina Reichel rei...@slac.stanford.edu
"In the quiet of the night let our candle always burn
let us never lose the lessons we have learned." B.M. 1976
> Silbentrennungen im Inhaltsverzeichnis und in
> Überschriften sehen meist recht albern aus, vor
> allem, wenn nur die letzte Silbe getrennt wird.
> Wie kann ich erreichen, daß dort Worte nicht
> getrennt, sondern einfach in die nächste Zeile
> übernommen werden ?
>
> Folgende Ansätze führten nicht zum Ziel:
>
> 1.) \raggedright
Das ist die eine Haelfte zur Loesung, die andere
ist, die Trennung zu verhindern, etwa durch
\hyphenpenalty10000 %
\exhyphenpenalty10000 %
Viele Gruesse
Heiko <ober...@uni-freiburg.de>
Dann ragt das letzte Wort aber viel zu weit rechts über den
Zeilenrand hinaus. Wie kann ich das letzte Wort in die neue
Zeile umbrechen ?
Der Umbruch muß im laufenden Text in der Überschrift natürlich
an anderer Stelle erfolgen als im Inhaltsverzeichnis, wo die
Schriftgröße ja kleiner ist.
> \exhyphenpenalty10000 %
Was ist der Unterschied zu \hyphenpenalty ?
Welcher penalty- Wert ist eigentlich voreingestellt ?
Kann ich den abfragen ?
> Viele Gruesse Heiko
Viele Gruesse Stefan
> In eine \mbox{} packen? Ich wuesste zumindest nicht, warum das nicht
> gehen sollte.
>
> Cheers
> Ina
Was soll die \mbox{} bringen ?
Diese Box ist doch starr, für den laufenden Texte kann ich z.B.
den Zeilenumbruch vorgeben, aber nicht für das Inhaltsverzeichnis.
LaTeX erlaubt sich sogar, den Text in der mbox im Inhaltsverzeichnis
umzubrechen.
Wenn ich im Masterdokument \tableofcontents schreibe, wo wo will
ich da eine mbox anwenden ?
Ein Problem bei der Sache ist, daß in der Überschrift eine andere
Schriftgröße verwandt wird als im Inhaltsverzeichnis und daher
die Zeile mit einem anderen Wort umgebrochen werden muß.
Gruss Stefan
Dass das Wort darin eben nicht umbrochen wird?
> Diese Box ist doch starr, für den laufenden Texte kann ich z.B.
> den Zeilenumbruch vorgeben, aber nicht für das Inhaltsverzeichnis.
Ich meinte eher, dass Du nur die betroffenen Woerter einzeln in \mbox
packen sollst.
> LaTeX erlaubt sich sogar, den Text in der mbox im Inhaltsverzeichnis
> umzubrechen.
Das kann ich mir eigentlich nicht vorstellen.
> Wenn ich im Masterdokument \tableofcontents schreibe, wo wo will
> ich da eine mbox anwenden ?
\chapter{Furchtbar lange Ueberschrift Furchtbar lange Ueberschrift
\mbox{Furchtbar} lange Ueberschrift}
> Ein Problem bei der Sache ist, daß in der Überschrift eine andere
> Schriftgröße verwandt wird als im Inhaltsverzeichnis und daher
> die Zeile mit einem anderen Wort umgebrochen werden muß.
Mein Vorschlag ging in die Richtung, nur die betroffenen Woerter in
\mbox zu packen. Wenn man eine mehr als einzeilige Ueberschrift
reinpackt, kann ich mir vorstellen, dass LaTeX alles moegliche damit
anstellt.
> Heiko Oberdiek wrote:
> >
> > On Wed, 29 Aug 2001 23:03:57 +0100, Stefan Franke
> > <Stefan...@Fernuni-Hagen.de> wrote:
> >
> > > 1.) \raggedright
> >
> > Das ist die eine Haelfte zur Loesung, die andere
> > ist, die Trennung zu verhindern, etwa durch
> > \hyphenpenalty10000 %
>
> Dann ragt das letzte Wort aber viel zu weit rechts über den
> Zeilenrand hinaus. Wie kann ich das letzte Wort in die neue
> Zeile umbrechen ?
\raggedright + \hyphenpenalty10000
> Der Umbruch muß im laufenden Text in der Überschrift natürlich
> an anderer Stelle erfolgen als im Inhaltsverzeichnis, wo die
> Schriftgröße ja kleiner ist.
Durch "\raggedright + \hyphenpenalty..." ist die
Umbruchstelle ja nicht fest vorgegeben, sondern
wird nach Bedarf von TeX automatisch ermittelt.
> > \exhyphenpenalty10000 %
>
> Was ist der Unterschied zu \hyphenpenalty ?
\hyphenpenalty wirkt auf implizite "hyphen", die etwa
bei der Trennung entstehen. \exhyphenpenalty ist
fuer explizite "hyphen", etwa bei zusammengesetzen
Woertern mit Bindestrich: Meier-Schulze.
> Welcher penalty- Wert ist eigentlich voreingestellt ?
> Kann ich den abfragen ?
\showthe\hyphenpenalty
Dann stoppt TeX und zeigt den Wert an.
Fuer Protokollierungen kann man beispielsweise
verwenden:
\typeout{\string\hyphenpenalty: \the\hyphenpenalty}
Viele Gruesse
Heiko <ober...@uni-freiburg.de>
PS: Du laesst einen Abstand vor dem Fragezeichen,
das ist unschoen und ist. so viel ich weiss, als
"Plenken" verpoent.
Das funktioniert nur in der Textueberschrift, nicht im
Inhaltsverzeichnis. Hier mein kurzes Codefragment:
------ 8< --------
\documentclass[a4paper,11pt]{report}
\usepackage{german}
\usepackage{isolatin1}
\begin{document}
\raggedright + \hyphenpenalty10000 %
\tableofcontents
\hyphenpenalty50 %
\chapter{Material und Methoden}
\raggedright + \hyphenpenalty10000 %
\section{Versuchsmaterial, Versuchsaufbau und Durchführung
der Perkolationsexperimente}
\hyphenpenalty50 %
Hier folgt nun ein neuer Textblock, in dem bei Bedarf
wieder Silbentrennungen vorgenommen werden. Das Strafmaß für
Silbentrennungen wurde wieder auf die Voreinstellung von 50
herabgesetzt.
\end{document}
------- 8< --------
Eine weitere Frage:
Wie komme ich nach dem \raggedright wieder zum Blocksatz
zurueck? Die uebrigen Textaustrichtungen \raggedleft und
\centering kann ich ja auch direkt angeben.
Mal etwas allgemeiner:
Wenn ich bestimmte Textbereiche speziell formatieren
moechte, halte ich eine Klammerung mit begin{}... end{}
oder bei einzeiligen Anweisugen nur mit einfachen Klammern
wie z.B. mbox{} fuer gut lesbar und wartbar.
Anweisungen wie \raggedright oder \hyphenpenalty10000
benutze ich ungern, weil
1.) nicht offensichtlich ist, wie ich sie wieder zuruecksetze.
2.) Zustände (z.B. der vorherige Wert für penalty) kontext-
abhaengig sind und ich mir Abhaengigkeiten schaffe, die
mir bei spaeteren Aenderungen Probleme bereiten koennen.
Kann ich \raggedright und \hyphenpenalty50 eleganter
formulieren?
> Fuer Protokollierungen kann man beispielsweise
> verwenden:
> \typeout{\string\hyphenpenalty: \the\hyphenpenalty}
Das funktioniert bei mir und ist praktisch.
> PS: Du laesst einen Abstand vor dem Fragezeichen,
> das ist unschoen und ist. so viel ich weiss, als
> "Plenken" verpoent.
Sorry - ja unschoen ist, wenn nach vielem Zitieren dann
ein einzelnes Fragezeichen umgebrochen wird ;-)
Gruss Stefan
Du kannst mit
\section[Inhaltsverzeichniseintrag]{Überschrift}
Inhaltverzeichnis und Überschrift unabhängig voneinander angeben.
Dein Beispiel könnte dann so
\section[Versuchsmaterial, Versuchsaufbau und Durchführung der
\\Perkolationsexperimente]{Versuchsmaterial, Versuchsaufbau und
\\Durchführung der Perkolationsexperimente}
gesetzt werden.
Spricht aus Sicht der TeX-Experten was gegen diese Lösung?
Hilko
> \raggedright + \hyphenpenalty10000 %
> \tableofcontents
> \hyphenpenalty50 %
Das Plus-Zeichen ist nur ein Metacharacter
und macht hier keinen Sinn.
Im Inhaltsverzeichnis werden viele Eintraege
mit \@dottedtocline gesetzt. Hier kann helfen,
den Wert von \@tocrmarg um eine Fill-Komponente
zu erweitern (in report ist er als "2.55em" definiert):
\makeatletter
\edef\@tocrmarg{\@tocrmarg\space plus 1fill}
\makeatother
(Sauberer geht es vermutlich mit
\renewcommand*{\@tocrmarg}{2.55em plus 1fill}
)
Damit sollten die Faelle \section und darunter abgedeckt
sein. Fuer Kapitel wird es aufwendiger:
Man kopiert sich den Code fuer \l@chapter aus der
Klassendatei und aendert ihn an drei Stellen:
* Aus \newcommand wird \renewcommand (LaTeX-
Trivialitaet).
* Aus \rightskip\@pnumwidth wird
\rightskip\@pnumwidth plus 1fil\relax
* Aus #1\nobreak\hfil \nobreak\hb@xt@ wird
#1\nobreak\hfill \nobreak\hb@xt@
> \raggedright + \hyphenpenalty10000 %
> \section{Versuchsmaterial, Versuchsaufbau und Durchführung
> der Perkolationsexperimente}
> \hyphenpenalty50 %
Im Text kann man sich den ganzen Aufwand sparen,
dafuer gibt es schliesslich das Paket titlesec:
\usepackage[raggedright]{titlesec}
Viele Gruesse
Heiko <ober...@uni-freiburg.de>
> Sorry - ja unschoen ist, wenn nach vielem Zitieren dann
> ein einzelnes Fragezeichen umgebrochen wird ;-)
Es ist schlimm genug, wenn ein einzelnes Satzzeichen
umbrochen wird, wenn es dann auch noch umgebrochen
wie ein Zaun wird ... ;-)
> Silbentrennungen im Inhaltsverzeichnis und in Überschriften sehen
> meist recht albern aus
Jep. Daher wird in KOMA-Script die Trennung in Ueberschriften auf
unterlassen.
Tschoe, wa!
--
Axel Reichert -- http://www.axel-reichert.de