Я хотел бы добавить атрибуции к некоторым стихотворениям в мемуарах. Код ниже делает это, но сбрасывает атрибуции с правой стороны текстового блока. Я хотел бы, чтобы они сбрасывались с правой стороны ширины стиха.
\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}
решение1
Макрос \attrib
здесь может принимать необязательный аргумент для ручного переопределения \versewidth
. Установка необязательного аргумента в \textwidth
значение выровняет атрибуцию по правому краю относительно страницы, как показано в 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}