Alinhe a atribuição do poema com o lado direito da largura do verso em vez de com o lado direito da página

Alinhe a atribuição do poema com o lado direito da largura do verso em vez de com o lado direito da página

Gostaria de acrescentar atribuições a alguns poemas do livro de memórias. O código abaixo faz isso, mas libera as atribuições à direita do bloco de texto. Eu gostaria que eles ficassem alinhados à direita da largura do verso.

\documentclass[11pt]{memoir}

\newcommand{\attrib}[1]{%
  \vskip2ex\nopagebreak{\raggedleft\footnotesize #1\par}}

\begin{document}

\settowidth{\versewidth}{``This boy is forest-born.''}
\begin{verse}[\versewidth]
``This boy is forest-born.''\\
\attrib{\textit{-- As You Like It}}
\end{verse}

\end{document}

Responder1

A macro \attribaqui pode receber um argumento opcional para substituir manualmente o arquivo \versewidth. Definir o argumento opcional como \textwidthalinhará à direita a atribuição relativa à página, conforme mostrado no MWE.

\documentclass[11pt]{memoir}
\newcommand{\attrib}[2][\versewidth]{%
  \vskip2ex\nopagebreak{\raggedleft\footnotesize%
  #2\hspace{\dimexpr.5\textwidth-.5\dimexpr#1}\mbox{}\par}}

\begin{document}

\settowidth{\versewidth}{``This boy is forest-born.''}
\begin{verse}[\versewidth]
``This boy is forest-born.''\\
\attrib{\textit{-- As You Like It}}
\end{verse}

\settowidth{\versewidth}{``This boy is forest-born blah blah.''}
\begin{verse}[\versewidth]
``This boy is forest-born blah blah.''\\
\attrib{\textit{-- As You Like It}}
\end{verse}

\settowidth{\versewidth}{``Override the default attib placement.''}
\begin{verse}[\versewidth]
``Override the default attib placement.''\\
\attrib[\textwidth]{\textit{-- As You Like It}}
\end{verse}

\end{document}

insira a descrição da imagem aqui

informação relacionada