背景
有许多印刷上不同的方法可以将段落彼此分开,最常见的方法是将每个段落放在新行上,并缩进或添加垂直空格。(有些人同时使用这两种方法,但这是多余的,而且在印刷界通常不受欢迎。)¶ 另一种节省空间的替代方法是使用特殊字符(通常是段落号\P
)来分隔段落。(Bringhurst 在印刷风格的要素对该技术和其他技术的优点进行了很好的讨论。
问题
\P
在 LaTeX 中用段落符号“¶”( ) 连接段落的最佳方法是什么?
讨论
显而易见的解决方案是手动将段落标记插入文本,而不是使用换行符,但是,这妨碍了在各种不同格式之间快速切换。可以使用自定义宏,然后将其重新定义为 或\P
,\par
但这似乎仍然不是最好的解决方案,因为它不能应用于以典型方式用空白行构造的源(例如,混淆了非常有用的lipsum
包)。¶ 一个合适的解决方案可能涉及重新定义\par
:类似于\def\par{ \P~}
。这对于正确分组的短文本区域来说很好,但我怀疑在整个文档中实现时会遇到许多微妙的困难。以下最小示例演示了一些问题:
\documentclass{article}
\usepackage{lipsum}
\def\par{ \P~}
\begin{document}
\lipsum[1-5]
\let\par\endgraf
\begin{enumerate}
\item This is a list item.
\item And another.
\end{enumerate}
\def\par{ \P~}
\lipsum[6-11]
\def\par{\endgraf}
\end{document}
必须\let\par\endgraf
在列表之前和之前恢复原来的功能\end{document}
原始功能。即使手动执行此操作,也会在列表前和文档末尾的最后一段之后插入虚假的 Pillcrow。(Pillcrow 应该只出现在之间连接段落,而不是在换行符、节标题、等式等之后的段落之后)纠正解决方案是什么?
更多信息
Frank Mittelbach 解释道TeX 执行段落构建器的具体位置还有一些关于如何改变的讨论\par
在 LaTeX 中(在哪里\@setpar
提到)以及如何避免破坏其他用途\par
在环境、列表等中。其他一些相关讨论是:
答案1
尽管如此,这不是人们推荐用于现代排版的段落格式类型,您可以采取的方法就是您建议的;即手动在文本中插入段落标记,而不是使用换行符。
由于您似乎需要在各种不同格式之间快速切换,我建议您创建一个宏来打开或关闭 Pilcrow 宏的效果:
\let\cacheP\P
\def\Poff{\def\P{\leavevmode\par}}
\def\Pon{\let\P\cacheP}
在标记中,您可以根据需要使用\Pon
和\Poff
。以下是 MWE:
\documentclass{article}
\usepackage{lipsum}
\let\cacheP\P
\def\Poff{\def\P{\leavevmode\par}}
\def\Pon{\let\P\cacheP}
\begin{document}
This is a short paragraph. \P This is another and this is another.
\P And another.
And this is a normal one.\lipsum*[1]
This is how you negate the effect.
\Poff
This is a short paragraph.
\P This is another and this is another.
\P and another.
\Pon
This is a short paragraph.
\P This is another and this is another.
\P and another.
\end{document}