在页边空白处用 ¶ 表示段落的开始

在页边空白处用 ¶ 表示段落的开始

如何最轻松地在每个段落开头的边距内排版段落标记?

对于段落边界的标示有不同的做法。

  • 每个段落的缩进:形成视觉一致的外观。
  • 标题后除第一个段落外,每个段落均缩进:更具功能性;我认为与通用缩进相比,这是一个品味问题。
  • 无段落缩进:在我看来,问题并不像有些人想让你想象的那么严重:前面一段恰好在右边空白处结束的情况并不常见,即使发生了:问题是什么?许多印刷语言中的其他歧义(包括与拼写、句子结构和标点符号过多相关的歧义)。

我对每个段落缩进的实际问题是,我发现它丑陋的[免责声明:主观意见!] 当有很多短行时。这种情况可能发生在有大量短对话的小说中,也可能发生,尤其是在有大量数学内容的文本中。当每个数学公式以及这些公式周围的许多行都缩进时(通常缩进只有轻微的差异),这显然使它更难辨别文档结构。我个人也认为,在任何浮点数或公式后不缩进是可以的,无论浮点数或公式后的第一行是否开始一个新段落 - 但我不会声称我的观点是普遍的。顺便说一句,如果段落的缩进和数学材料的缩进明显不同(比如说,相差 2 倍),我会喜欢它。

解决段落缩进是否正确的问题的一个“解决方案”是根本不缩进,而是在每个段落前面加上一个标记。以下是其中一种方法:

\documentclass{article}
\usepackage{xcolor}
\usepackage{lipsum}

\parindent0pt % no paragraph indentation

\newcommand*{\parindicator}%
  {\everypar{\llap{\textcolor{gray}{\raisebox{0.5ex}[0pt][0pt]{\footnotesize \P}}\quad}}}


\begin{document}

\parindicator
\lipsum[1-2]

\begin{itemize}
  \item Text.
  \item Text.
  \item \parindicator \lipsum[3] \lipsum*[4]
  \item Text.
\end{itemize}

\parindicator
\lipsum[5-6]
\lipsum[7-8]

\end{document}

这将在每个段落开头的空白处排版一个“¶”。我选择“¶”是因为它的含义,尽管它已经过时了。对于现代人来说,这可能是一个有点不寻常的选择,但为什么不把这个字符用在实际用途上呢?如果它永远留在 ASCII 中,那就太糟糕了。我把它弄小了一点,还把它弄灰了,让它不那么显眼。

以上是风格上的理由,是的,这样做会被视为不寻常的 - 但为什么不尝试一下呢。我问:如何最轻松地在每个段落开头的边距内排版段落标记?在我上面的代码中,\parindicator必须重复使用,项目符号列表的结果并不令人满意。也许可以只对非起始段落使用“¶”,或者可以将这些标记移到右侧边距。

答案1

您可以使用\vadjust以下方式将标记放置在边缘:

示例输出

\documentclass{article}
\usepackage{xcolor}
\usepackage{lipsum}

\parindent0pt % no paragraph indentation

\newcommand*{\lparind}{\leavevmode\vadjust{\llap{\textcolor{gray}{\raisebox{0.5ex}[0pt][0pt]{\footnotesize \P\quad}}}}}

\newcommand*{\rparind}{\leavevmode\vadjust{\hbox to \hsize{\hfill\rlap{\textcolor{gray}{\raisebox{0.5ex}[0pt][0pt]{\footnotesize \quad\P}}}}}}

\newcommand*{\parindicator}{\everypar{\lparind}}

\newcommand*{\rtparindicator}{\everypar{\rparind}}

\begin{document}

\parindicator
\lipsum[1-2]

\begin{itemize}
  \item \rparind Text.
  \item \rparind Text.
  \item \rparind \lipsum[3] \rtparindicator \lipsum*[4]
  \item \rparind Text.
\end{itemize}

\parindicator
\lipsum[5-6]
\lipsum[7-8]

\end{document}

您可能知道,标准\item命令会\everypar自行设置,这就是我在此处明确插入符号的原因。自动执行此操作需要重写\item

相关内容