Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

I am writing a book and one of my chapter has a very long title. As it can't be displayed correctly on the top of even pages, I provide a "short title name" via the \chapter[short title]{long title} command. But then, "short title" appears in the table of contents, instead of the original/true/long one.

How can i have the "short title" in the header of even pages, and the "long title" in the ToC and in the "Title header"?

For reference, here is the code I use:

\documentclass[11pt,a4paper]{book}

\begin{document}

\tableofcontents

\chapter[Short title]{Very vey very very very very very very long title
    i can't display in the header}

Lorem ipsum dolor sit amet, consectetur adipiscing elit.

\cleardoublepage

\end{document}
share|improve this question

4 Answers 4

up vote 42 down vote accepted
\chapter[toc version]{doc version}
\chaptermark{version for header}

http://www.tex.ac.uk/cgi-bin/texfaq2html?label=runheadtoobig

share|improve this answer
1  
you were faster. :-) BTW, is this your third account? If yes, have you thought about asking a moderator to merge your accounts? –  lockstep Dec 10 '10 at 13:39
    
That works perfectly, thanks! –  Thomas ABBALLE Dec 10 '10 at 13:40

The sectioning commands of the memoir class feature a second optional argument:

\documentclass[11pt,a4paper]{memoir}

\begin{document}

\tableofcontents*% Starred form for not including the ToC in the ToC

\chapter[Title displayed in ToC][Title displayed in header]{Title}

Lorem ipsum dolor sit amet, consectetur adipiscing elit.

\clearpage\null

\end{document}

EDIT: Since v3.10, the KOMA-Script classes allow to specify the usage of the optional argument of sectioning commands. The class options are headings=optiontohead, headings=optiontotoc, and headings=optiontoheadandtoc.

\documentclass[headings=optiontohead]{scrbook}

\begin{document}

\tableofcontents

\chapter[Title displayed in header]{Title; also displayed in ToC}

Lorem ipsum dolor sit amet, consectetur adipiscing elit.

\clearpage\null

\end{document}
share|improve this answer

Another option is to use the truncate package, with fancyhdr, which truncates the header if it's too long, and adds an elypsis at the end:

 \usepackage[fit]{truncate}
 \usepackage{fancyhdr}
 \pagestyle{fancy}
 \fancyhead[RO,LE]{\truncate{.95\headwidth}{\leftmark}}
 \fancyfoot[C]{\thepage}
share|improve this answer

the ams document classes behave this way by default -- the optional argument is used only for the running head, and the long form is used in the toc.

because adjustments such as line breaks must sometimes be applied to the long form, the ams classes provide an "in-title" modification mechanism to allow different changes to apply to the header itself vs. what goes into the toc.

two commands are provided:

  • \for{toc}{...} includes the specified material in the toc entry;

  • \except{toc}{...} uses the material in the header itself, but excludes it from the toc.

this mechanism works also for lof and lot entries. additional commentary can be found in the ams author faq.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.