使用 poetryscol 包缩进

使用 poetryscol 包缩进

我正在尝试排版一本诗集poemscol。结果如下:

屏幕截图显示了诗歌标题和署名的缩进方式

我想控制用红色标记的距离(我不想向右移动);但使用\setlength\leftmargin的所有尝试\titleindentamount都不起作用,而且我从未深入研究过页面设置细节。有人能提示一下这通常是如何工作的吗?

当前代码:

\documentclass[9pt, a5paper]{scrbook}
\usepackage[a5paper]{geometry}
\usepackage{fancyhdr}
\usepackage{poemscol}
\begin{document}
\poemtitle{I dwell in Possibility}
\attribution{E. Dickinson (1830--1886)}
\begin{poem}
\begin{stanza}
\textsc{I dwell} in Possibility --\\
A fairer House than Prose --
\end{stanza}
\end{poem}
\end{document}

我尝试跟踪包中的缩进poemscol,但没有成功。我找不到包中控制此行为的命令。它们的名字是什么?它们在哪里?

答案1

在 的最新版本中,您可以通过更改或poemscol的值来调整题词的左边距和右边距。\epigraphquoteleftmargin\epigraphquoterightmargin

您可以通过改变长度的值来调整诗句块的位置\versemarginadjust

答案2

正如 egreg 所评论的那样,诗歌作者的缩进确实是在环境中硬编码的epigraphquote,因此您必须更改其定义。用于正确排版诗歌的环境是pmclverse(它从环境中继承了一个可选参数poem)。其确定边距的公式似乎只允许增加,而不允许减少左边距,因此我决定也更改(简化)其定义。

\documentclass[9pt, a5paper]{scrbook}
\usepackage[a5paper]{geometry}
\usepackage{fancyhdr}
\usepackage{poemscol}
\renewenvironment{epigraphquote}%
{\list{}{%
  \topsep 0pt%
  \partopsep 0pt%
  \listparindent 0pt%
  \leftmargin  1em% original value: 1.5em
  \rightmargin 1em% original value: 1.5em
}%
\item\relax}
{\endlist}
\makeatletter
\renewenvironment{pmclverse}[1][]{%
\let\\=\@centercr%
\list{}{%
  \itemsep\z@
  \itemindent -\runoverindentvalue
  \listparindent \itemindent
  \leftmargin 2em% change as desired
  \rightmargin 2em% change as desired
  \advance\leftmargin\runoverindentvalue
}%
\item[]}
{\endlist}
\makeatother
\begin{document}
\poemtitle{I dwell in Possibility}
\attribution{E. Dickinson (1830--1886)}
\begin{poem}
\begin{stanza}
\textsc{I dwell} in Possibility --\\
A fairer House than Prose --
\end{stanza}
\end{poem}
\end{document}

相关内容