Como fazer algo flutuar corretamente, mesmo que ele enrole uma linha?

Como fazer algo flutuar corretamente, mesmo que ele enrole uma linha?

Tenho uma situação em que tenho alguns dados nos títulos das seções (e às vezes em parágrafos normais} que precisam ser:

  • flutuou para a direita
  • não dividido entre linhas

Consegui fazer isso na maioria dos casos com \hfilland \mbox{}, mas no caso de o item mbox ser enviado para a próxima linha, o hfill é deixado na linha anterior. Aqui está um exemplo de código que duplica o problema:

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

Isso está produzindo algo assim para mim:

saída

Como posso fazer com que itens que se embrulham assim flutuem novamente?

Alternativamente, existe uma maneira melhor de colocar o conteúdo lá? Semanticamente eles não precisam andar juntos. Se o conteúdo estivesse fora do título da seção, mas flutuasse em qualquer espaço livre disponível no lado direito (não excedendo o topo do item anterior), isso seria incrível.

Responder1

Se uma pausa for feita em \hfill, ela desaparecerá no início da linha seguinte. Com \hspace{0.5em}introduzimos um ponto de interrupção viável; então \hspace*{\fill}não desaparecerá no início da linha se a quebra for feita naquele espaço.

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

insira a descrição da imagem aqui

informação relacionada