PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : lange Kopfzeile ohne Umbruch



Clavain
01-04-2006, 23:11
Hallo!
Ich benutz fancyhdr für meine Kopfzeile in folgendem Format


\rhead{\nouppercase{\rightmark}}
\lhead{\nouppercase{\leftmark}}


Das sieht normalerweise so aus


linker Text rechter Text
-----------------------------------------------------


wenn aber \rightmark und \leftmark zu lang werden, dann überschneiden sie sich.
Ich weiß, dass man sie in eine \parbox geben könnt, um einen Umbruch zu erzwingen, das gefällt mir aber nicht. Was ich möcht ist, dass es aussieht wie oben, wenn die Texte kurz sind, aber folgendermaßen, wenn sie zu lang sind:



linker Text
rechter sehr, sehr, sehr langer Text
-----------------------------------------------------


Meine Idee dazu wäre folgende gewesen:


\rhead{\nouppercase{\rightmark}}
\lhead{
\ifthenels{länge-von{\leftmark} + länge-von{\rightmark] > \textwidth}
{\raisebox{-3ex}{\nouppercase{\leftmark}}
{\nouppercase{\leftmark}}
}


Das Problem das ich hab, dass ich nicht weiß, wie man

länge-von{\leftmark} + länge-von{\rightmark] > \textwidth
berechnen könnt.
Hat jemand einen Vorschlag? Oder vielleciht eine andere Lösung für das selbe Problem?

bischi
02-04-2006, 00:03
Und sowas (ungetestet):

\lhead{\parbox{ \mbox{linker Text} \hfill \mbox{rechter Text} }}

MfG Bischi

Clavain
02-04-2006, 01:02
Erstmal danke für die schnelle Antwort.
Ich habs getestet, und zwar mit folgendem Code


\lhead{
\parbox{\textwidth}{
\mbox{\nouppercase{\leftmark}}
\hfill
\mbox{\nouppercase{\rightmark}}
}
}


Das liefert folgendes Ergebniss:
Bei kurzen Überschriften:


llllllllllllllll rrrrrrrrrrrrrrrr
--------------------------------------------

(also so wie gewünscht)

aber bei langen Überschriften:


llllllllllllllllllllllllllrrrrrrrrrrrrrrrrrrrrrrrr rrrrrrrrrrrrrrrrrrrrrrrrrrr
-------------------------------------------

geht der rechte Text einfach über den Seitenrand hinaus


Kennt keiner ein Makro, das einem die Textlänge eines Satzes bei der aktuellen Formatierung liefert?

lg,
Clavain


PS: wobei "l" der linke Text und "r" der Rechte ist

edico
02-04-2006, 09:41
Entschuldige, aber das ist doch Mist. Langer Text gehört in den Fliesstext. Und asserdem - wie lang soll denn ein rightmark (und ein leftmark und/oder beide) werden dürfen - 1 Zeile, 2 Zeilen ...? Könner machen's kurz.
edico

Clavain
02-04-2006, 10:16
das ist natürlich kein langer Fließtext.
Das sind nur entwas längere Überschriften, die aber auch alle einzeilig sind.
Es ist nur so, dass ich links die aktuelle Section und rechts die actuelle Subsection stehen haben möcht. Für sich allein sind beide kürzer als eine Zeile, zusammen aber nicht.


Könner machen's kurz.
Wenn ich ein solche wär, hätt ich die Frage nicht posten müssen...

mfg,
Clavain

edico
02-04-2006, 11:42
... versuch es so:
\chead{\parbox{\linewidth}{\leftmark\newline\hspac e*{\fill}\rightmark}}
wenn du nicht die shorttitle-Lösung favorisierst.
ßsection[shorttitle]{longtitle}
edico

Clavain
02-04-2006, 12:52
Ich 1 -- LaTeX 0!
Wär hätte gedacht, dass es so anstrengend ist, gegenüber LaTeX seinen Kopf durchzusetzten....

Hier nun die Lösung:


\chead{
\pretolerance=10000
\parbox{\linewidth}{
\mbox{\nouppercase{\leftmark}}
\linebreak[3]\hspace*{\fill}
\mbox{\nouppercase{\rightmark}}
}
}


Und an dieser Stelle: Danke edico, Danke bischi!