詩の帰属をページの右側ではなく、詩の幅の右側に揃える

詩の帰属をページの右側ではなく、詩の幅の右側に揃える

回想録のいくつかの詩に帰属を追加したいと思います。以下のコードはそれを行いますが、帰属をテキスト ブロックの右側に揃えます。詩の幅の右側に揃えたいです。

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

ここに画像の説明を入力してください

関連情報