
Ich befinde mich in einer Situation, in der ich Daten in Abschnittsüberschriften (und manchmal in normalen Absätzen) habe, die wie folgt lauten müssen:
- schwebte rechts
- nicht auf mehrere Zeilen aufgeteilt
Ich konnte dies in den meisten Fällen mit \hfill
und erreichen \mbox{}
, aber für den Fall, dass das mboxed-Element an die nächste Zeile gesendet wird, bleibt das hfill in der vorherigen Zeile. Hier ist ein Beispielcode, der das Problem dupliziert:
\documentclass[a6paper]{scrartcl}
\usepackage{geometry}
\newcommand*\myref[1]{\hfill\mbox{\normalfont#1}}
\newcommand*\mysection[2]{\section*{#1\myref{#2}}}
\begin{document}
\mysection{Title One}{Ref Name NNN}
Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
\mysection{Much Longer Title Two}{Ref Name NNN}
Ut purus elit, vestibulum ut, placerat ac, adipiscing vitae, felis.
\end{document}
Das Ergebnis ist bei mir etwa wie folgt:
Wie kann ich auf diese Weise umbrochene Elemente wieder richtig schweben lassen?
Gibt es alternativ eine bessere Möglichkeit, den Inhalt dort zu platzieren? Semantisch müssen sie nicht zusammenpassen. Wenn der Inhalt außerhalb der Abschnittsüberschrift stünde, aber in einen beliebigen freien Bereich auf der rechten Seite schwebte (nicht über die Oberseite des vorherigen Elements hinaus), wäre das großartig.
Antwort1
Wenn an dieser Stelle ein Umbruch erfolgt \hfill
, verschwindet dieser am Anfang der nächsten Zeile. Mit \hspace{0.5em}
führen wir einen möglichen Umbruch ein; dann \hspace*{\fill}
verschwindet dieser nicht am Anfang der Zeile, wenn an dieser Stelle ein Umbruch erfolgt.
\documentclass[a6paper]{scrartcl}
\usepackage{geometry}
\newcommand*\myref[1]{\hspace{.5em}\hspace*{\fill}\mbox{\normalfont#1}}
\newcommand*\mysection[2]{\section*{#1\myref{#2}}}
\begin{document}
\mysection{Title One}{Ref Name NNN}
Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
\mysection{Much Longer Title Two}{Ref Name NNN}
Ut purus elit, vestibulum ut, placerat ac, adipiscing vitae, felis.
\end{document}