我目前正在使用回忆录课程排版一些诗歌。 \ poemtitle命令给了我一个集中的诗歌标题,但我宁愿让标题与诗体的边缘齐平。我重新定义了\ poemtitle命令以删除自动居中。 \ verse环境耦合\ settowidth {\ versewidth} {}将使诗歌以左对齐为中心...因此,为了使标题与诗歌环境齐平,我在\ verse环境中调用标题,如下所示:
\settowidth{\versewidth}{longest poem line here}
\begin{verse}[\versewidth]
\PoemTitle*{Poem Tite}
\PlainPoemTitle
...Poem body...
\end{verse}
然而,这有时会缩进诗的第一行,或者将标题设置为缩进。我看到的唯一其他解决方案是在自己的诗歌环境中设置标题,如下所示:
\settowidth{\versewidth}{longest poem line here}
\begin{verse}[\versewidth]
\PoemTitle*{Poem Tite}
\PlainPoemTitle
\end{verse}
\settowidth{\versewidth}{longest poem line here}
\begin{verse}
...Poem body...
\end{verse}
有更好的方法吗?或者我是否遗漏了回忆录文件中的内容(我已多次阅读过)?
编辑:也许我应该问一个更明确的问题:我可以向胶乳发出任何一组命令来计算来自\ verse命令的边际缩进,然后将该边距应用于\ poemtitle以便这首诗标题最终与文本的左边缘齐平,而没有在自己的\ verse环境中设置\ poemtitle?答案 0 :(得分:2)
我对memoir
课程或排版诗歌没有任何经验,所以我不知道你是否有其他方式可以做到这一点,但这里的解决方案似乎做了什么你想要的(假设你总是使用\PoemTitle
的星号形式。)
\newcommand{\leftPoemTitle}[1]{{\PoemTitlefont{#1}}\\[\afterPoemTitleskip]} \settowidth{\versewidth}{longest poem line here} \begin{verse} \leftPoemTitle{Poem Title} ...Poem body... \end{verse}
这使得诗歌标题左对齐,如诗体,正确地与诗体分开,以正确的字体,并且没有不期望的缩进。此外,它可以很好地与其他人一起使用:如果某个命令(或包选项)修改标题字体或间距,则此\leftPoemTitle
宏继续正常运行。
如果我理解你的编辑正确,你希望诗歌标题在外面包含诗体的verse
环境,但仍然以这样的方式缩进,即标题留下与身体合理。除非你有一些特殊的理由要这样做,我认为上面的解决方案更好,但不要紧,因为。
memoir
类手册的第19章说verse
环境缩进了\vleftmargin
长度,因此您可以按照该长度缩进标题。我假设你仍然希望标题有一个稍微大一点的字体,所以下面的解决方案应该可以解决这个问题:
\newcommand{\myPoemTitle}[1]{\noindent\hspace{\vleftmargin}{\PoemTitlefont #1}} \myPoemTitle{Poem Title} \settowidth{\versewidth}{longest poem line here} \begin{verse} ...Poem body... \end{verse}
请注意,这使得标题比第一个解决方案更贴近身体。您可以通过重新定义\afterPoemTitleskip
来在第一个解决方案中获得此行为。
答案 1 :(得分:0)
从2020年开始,最简单的方法是先加载诗歌环境,再加载gmverse环境。
然后将上面的代码替换为:
\poemtitle*{Poem Title here}
%use epigraph package for a subtile, author, etc
\begin{verse}
...Poem body...
\end{verse}
这将根据平均行长将诗歌和标题居中。有多种计算平均值的方法(请参阅gmverse文档)。我发现默认值看起来不错。
它还将包裹更长的行,因此溢价被设置为与经书中的正常对齐。我还没有找到另一种自动执行此操作的方法。
Gmverse还允许您在每行的末尾设置不带\\的行,仅使用行尾即可(并使用额外的一行来获取节之间的间隔)。这对于快速,轻松地键入或复制并粘贴非常有用。
可能的不利之处:可能与回忆录不兼容。自从我将标准书籍类用于我的藏书以来,我就没有进行过测试。