.png)
Sehr geehrte Damen und Herren,
Ich habe kürzlich Verse und Prosa gesetzt und habe Probleme mit Datumsangaben. Insbesondere möchte ich, dass das Datum unmittelbar auf den vorhergehenden Text folgt und dabei bleibt (also keinen Seitenumbruch). Dies scheint offensichtlich zu sein, wenn Prosa gesetzt wird – siehe diese Problemumgehung:
\newcommand{\dated}[1]{\nobreak\par\noindent\null\hfill\textit{#1}}
Bei Versen in verse
der Umgebung wird dies jedoch praktisch unmöglich, da LaTeX davon ausgeht, dass ein Umbruch nach dem \end{verse}
, dem Ende der Umgebung, immer vorteilhaft ist. Ich habe gegoogelt, konnte aber keinen Weg finden, um den Umbruch zu verhindern.nachdie Umgebung.
Bei Prosa klappt es wunderbar:
\documentclass[12pt, oneside]{article}
\usepackage[utf8]{inputenc}
\usepackage[papersize={11cm, 15cm}, textwidth=10cm, textheight=11.2cm]{geometry}
\usepackage{lipsum}
\newcommand{\dated}[1]{\nobreak\par\noindent\null\hfill\textit{#1}}
\begin{document}
\null\vspace{2.3cm}
\lipsum[1]
\dated{30.01.2018}
\end{document}
Bei Poesie ist das jedoch nicht so sehr der Fall:
\documentclass[12pt, oneside]{article}
\usepackage[utf8]{inputenc}
\usepackage[papersize={11cm, 15cm}, textwidth=10cm, textheight=11.2cm]{geometry}
\usepackage{lipsum}
\newcommand{\dated}[1]{\nobreak\par\noindent\null\hfill\textit{#1}}
\begin{document}
\lipsum[1]
\begin{verse}
THERE was a young lady of Niger \\
Who smiled as she rode on a Tiger; \\
They came back from the ride \\
With the lady inside, \\
And the smile on the face of the Tiger.
\end{verse}
\dated{30.01.2018}
\end{document}
Ich kann es nicht verwenden \needspace
, da alle Verse dazwischen gehören \begin{verse}
... \end{verse}
, und es gibt mehrere Hundert Gedichte, sodass ich nicht \needspace
für jede letzte Verszeile einfügen kann.
Vielleicht ist es möglich, den Vers irgendwie neu zu definieren? Oder gibt es einen anderen Trick, damit es \nobreak
danach funktioniert \end{verse}
?
Jede Hilfe ist willkommen!
Antwort1
Diese Lösung platziert das Datum INNERHALB der Versumgebung und hängt es an die letzte Zeile an. Zwar kann man \unskip
oder verwenden \vskip-\lastskip
, um einen Teil des Leerzeichens am Ende der Versumgebung zu entfernen, aber wenn Sie sich bereits auf der nächsten Seite befinden, nützt Ihnen das nichts.
\documentclass[12pt, oneside]{article}
\usepackage[utf8]{inputenc}
\usepackage[papersize={11cm, 15cm}, textwidth=10cm, textheight=11.2cm, showframe]{geometry}
\usepackage{lipsum}
\newcommand{\dateverse}[1]{\hfill\rlap{\hspace{\rightmargin}%
\llap{\raisebox{-\baselineskip}{\textit{#1}}}}}
\begin{document}
\lipsum[1]
\begin{verse}
THERE was a young lady of Niger \\
Who smiled as she rode on a Tiger; \\
They came back from the ride \\
With the lady inside, \\
And the smile on the face of the Tiger.
\dateverse{30.01.2018}
\end{verse}
\end{document}
Mir fiel auf, dass \raisebox
das Datum in eine Unterlänge umgewandelt wurde, und LaTeX richtet nur Grundlinien am unteren Seitenrand aus, keine Unterlängen. Um die Grundlinie zu verschieben, muss man die vorherige Zeile in ein Kästchen einschließen.
\documentclass[12pt, oneside]{article}
\usepackage[utf8]{inputenc}
\usepackage[papersize={11cm, 15cm}, textwidth=10cm, textheight=11.2cm, showframe]{geometry}
\usepackage{lipsum}
\newcommand{\dated}[1]{\ifvmode\else\newline\fi
\null\hfill\rlap{\hspace{\rightmargin}\llap{\textit{#1}}}}
\begin{document}
\lipsum[1]
\begin{verse}
THERE was a young lady of Niger \\
Who smiled as she rode on a Tiger; \\
They came back from the ride \\
With the lady inside, \\
\parbox[b]{\dimexpr \linewidth-\itemindent}%
{And the smile on the face of the Tiger.
\dated{30.01.2018}}
\end{verse}
\end{document}