设置之间有什么区别吗
\parindent
到 1em
并设置
\parindent
改为 0em、\hangindent
1em 和\hangafter
-1
在实际使用中会显示什么?TeX 创建的节点有所不同,但这会在排版中显示出来吗?我看到的一个区别是 hang* 设置是段落本地的,但我不在乎这一点,因为我使用 LuaTeX 的tex.linebreak()
这个问题是针对 LuaTeX 的,但我猜答案适用于所有引擎。
示例代码:
\documentclass{article}
\begin{document}
\linewidth 300pt
\newcommand\text{A wonderful serenity has taken possession of my entire soul, like
these sweet mornings of spring which I enjoy with my whole heart. I am
alone, and feel the charm of existence in this spot, which was created
for the bliss of souls like mine. I am so happy, my dear friend, so
absorbed in the exquisite sense of mere tranquil existence, that I
neglect my talents.}
\text
\hangindent=\parindent
\parindent 0pt
\hangafter=-1
\text
\end{document}
答案1
LaTeX 列表环境使用\parshape
(\hangafter
本质上是一种简写),因此那里的行为可能会有所不同。
但也许第一个需要注意的区别是,LaTeX 在节标题后(以及段落中间显示环境后)抑制段落缩进的机制会删除 parindent 节点,但不会看到 hangafter。
比较:
\section{aaa}
\text
在这两种情况下。
答案2
最重要的区别是 TeX 记住了\parindent
,但它会在段落末尾重置\hangindent
和。\hangafter
\documentclass{article}
\begin{document}
\linewidth 100pt
\newcommand\texta{A wonderful serenity has taken possession of my entire soul, like
these sweet mornings of spring which I enjoy with my whole heart. I am
alone, and feel the charm of existence in this spot, which was created
for the bliss of souls like mine.}
\newcommand\textb{I am so happy, my dear friend, so
absorbed in the exquisite sense of mere tranquil existence, that I
neglect my talents.}
\texta
\textb
\hangindent=\parindent
\parindent 0pt
\hangafter=-1
\texta
\textb
\end{document}
第二个\textb
没有缩进。如果你在 后面也留一个空行\hangafter=-1
,你会看到第二个\texta
没有缩进,因为重置了。事实上,\par
在垂直模式下几乎无作用:它所做的是重置段落形状参数(\hangindent
,\hangafter
,\parshape
,\looseness
)。
TeX、pdfTeX、XeTeX 和 LuaTeX 中的行为相同。