PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Kolumnentitel mit Zeilenumbruch



allx
30-11-2010, 21:20
Hallo!

gibt es eine Möglichkeit mit der ich bei einem sehr langen Titel einen Zeilenumbruch in dem Kolumnentitel erzwingen kann.

Momentan wird der Titel von links nach rechts in einer Zeile geschrieben. Alles was nicht reinpasst, fällt raus.

Vielen Dank im voraus
allx

Schweinebacke
01-12-2010, 08:12
Man kann. Allerdings bekommt man dann Probleme mit der Kopfhöhe, die ja normalerweise nur für eine Zeile vorgesehen ist. Deshalb ist es meist besser, den Kolumnentitel mit Hilfe des optionalen Argument des Gliederungsbefehls zu kürzen. Hier mal beides im Vergleich:
\documentclass{article}
\usepackage[automark]{scrpage2}
\pagestyle{scrheadings}
\begin{document}
\section{Das ist ein viel zu langer Titel und passt deshalb keinesfalls in den
Kolumnentitel}

\clearpage

\section[Das ist ein viel zu langer Titel\nobreakspace\dots]{Das ist ein viel zu langer Titel und passt deshalb keinesfalls in den
Kolumnentitel}

\end{document}Dabei zeigt sich auch, dass die Frage der Platzierung der Seitenzahl bei teilweise mehrzeiligen Köpfen eventuell unzureichend gelöst ist. Das Problem kann man mit Boxen ggf. lösen, wobei hier auch gleich dafür gesorgt wird, dass der Kolumnentitel dann einheitlich zweizeilig ist:

\documentclass{article}
\usepackage[automark]{scrpage2}
\pagestyle{scrheadings}
\ihead{\parbox[t][2\baselineskip][t]{\dimexpr\linewidth-2em\relax}{\headmark}}
\ohead{\parbox[t][2\baselineskip][t]{2em}{\raggedleft\pagemark}}
\begin{document}
\section{Das ist ein viel zu langer Titel und passt deshalb keinesfalls in den
Kolumnentitel}

\newpage
\section{Vergleichstitel}

\end{document}Hier stellt sich nun die Frage, ob es nicht schöner wäre, wenn der Kolumnentitel hängend zur Nummer gesetzt würde:
\documentclass{article}
\usepackage[automark]{scrpage2}
\pagestyle{scrheadings}
\ihead{\parbox[t][2\baselineskip][t]{\dimexpr\linewidth-2em\relax}{\headmark}}
\ohead{\parbox[t][2\baselineskip][t]{2em}{\raggedleft\pagemark}}
\makeatletter
\renewcommand*{\sectionmarkformat}{%
\@hangfrom{\thesection. \ }%
}
\makeatother
\renewcommand*{\sectionmark}[1]{%
\markright{\sectionmarkformat\MakeMarkcase{#1}}%
}
\begin{document}
\section{Das ist ein viel zu langer Titel und passt deshalb keinesfalls in den
Kolumnentitel}

\newpage
\section{Vergleichstitel}

\end{document} Einfacher wird es, wenn man die Seitenzahl wie bei den KOMA-Script-Klassen unten hat:
\documentclass[headlines=2]{scrartcl}
\usepackage[automark]{scrpage2}
\pagestyle{scrheadings}
\begin{document}
\section{Das ist ein viel zu langer Titel und passt deshalb keinesfalls
komplett in den
Kolumnentitel}

\newpage
\section{Vergleichstitel}

\end{document} Dabei fällt auch gleich die overfull-\vbox-Meldung auf jeder Seite weg, weil ich die Kopfhöhe bereits für die Seitenspiegelberechnung per Option mit angegeben habe.

Natürlich muss man auch hier nicht zwangsläufig zentrieren und kann alles, was ich oben bereits gezeigt habe, mit verwenden. Hier zum Vergleich eine weitere Variante ohne \parbox, bei der ein mehrzeiliger Kopf nach oben wächst:
\documentclass[headlines=2]{scrartcl}
\usepackage[automark]{scrpage2}
\pagestyle{scrheadings}
\makeatletter
\renewcommand*{\sectionmarkformat}{%
\@hangfrom{\thesection. \ }%
}
\makeatother
\ihead{\headmark}
\chead{}
\makeatother
\begin{document}
\section{Das ist ein viel zu langer Titel und passt deshalb keinesfalls
komplett in den
Kolumnentitel}

\newpage
\section{Vergleichstitel}

\end{document}