ragged2e 以换行符结尾后,诗句中第一行的缩进很奇怪

ragged2e 以换行符结尾后,诗句中第一行的缩进很奇怪

在一个多作者项目中,我注意到,如果环境以换行符 ( ) 结尾,则verse紧跟在任何环境之后的环境第一行中会出现奇怪的缩进:ragged2e\\

\documentclass{article}
\usepackage{ragged2e,verse}

\begin{document}

\begin{FlushLeft}
    Hallo\\
    Hallo\\
\end{FlushLeft}

\begin{verse}
    Hallo\\
    Hallo
\end{verse}

\end{document}

行尾换行后的奇怪缩进

删除尾随换行符时或使用非 ragged2e 等效环境(flushleft在本例中)时不会发生这种情况:

常规环境中无缩进

当然,通过删除(不必要的)尾随换行符可以轻松解决这个问题,但由于这是一个多作者项目,我想实现一个更通用的解决方案。在实际文档中,两个环境的内容都作为命令的参数给出,因此有一些“修补”解决方案的空间。

答案1

这是一个错误,完全是我的错。我在 ragged2e repo 中准备了一个修复程序,并在完成测试后发布 ragged2e 的新版本。完成后我可以在这里添加注释。

答案2

使用 ragged2e,每行实际上都是一个段落。并且\\命令被重新定义,并将(全局)代码添加到下一个段落的开头,从而删除其缩进。

因此,如果在最后一行后面有一个,\\则下一段将没有缩进,并且在像诗句环境这样的列表中,它会混淆间距。您可以清除钩子(但最好不要用 结束段落和类似的东西\\):

\documentclass{article}
\usepackage{ragged2e}
\usepackage{verse}
\AddToHook{env/RaggedRight/after}{\ClearHookNext{para/begin}}
\begin{document}

\begin{RaggedRight}
    Hallo\\
    Hallo\\    
\end{RaggedRight}

\begin{verse}
    Hallo\\
    Hallo
\end{verse}

\end{document}

答案3

\documentclass{article}
\usepackage{ragged2e,verse}

\begin{document}

\begin{FlushLeft}
    Hallo\\
    Hallo\\
\end{FlushLeft}

\begin{verse}
    Hallo\\
    Hallo
\end{verse}

\end{document}

生产

在此处输入图片描述

在 texlive 2021 或更早版本中

在此处输入图片描述

在 texlive 2022 或更高版本中。

这意味着其中一个包需要更新,可能是为了匹配格式中的段落钩子的添加。

这些包可能很容易更新(我稍后会看),但在此之前没有尾随\\是最简单的(也可以使用Flush...环境形式而不是Ragged..用于命令使用的形式。类似于标准乳胶flushleft作为环境形式\raggedright

相关内容