Как правильно разместить что-то, даже если оно заходит за линию?

Как правильно разместить что-то, даже если оно заходит за линию?

У меня возникла ситуация, когда в заголовках разделов (а иногда и в обычных абзацах) есть некоторые данные, которые необходимо:

  • плыл вправо
  • не разделены по строкам

Мне удалось сделать это для большинства случаев с помощью \hfillи \mbox{}, но в случае, если элемент mbox'ed отправляется на следующую строку, hfill остается на предыдущей строке. Вот пример кода, который дублирует проблему:

\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}

У меня это выдает что-то вроде этого:

выход

Как мне заставить предметы, которые так обёртываются, снова плавать правильно?

Или есть ли лучший способ разместить там контент? Семантически они не должны идти вместе. Если бы контент был за пределами заголовка раздела, но всплывал в любое свободное пространство справа (не выходя за верхнюю часть предыдущего элемента), это было бы здорово.

решение1

Если разрыв сделан в \hfill, он исчезнет в начале следующей строки. С помощью \hspace{0.5em}мы вводим допустимую точку разрыва; тогда \hspace*{\fill}не исчезнет в начале строки, если разрыв сделан в этом месте.

\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}

введите описание изображения здесь

Связанный контент