如何使用修改的中心环境将文本居中而不添加空间

如何使用修改的中心环境将文本居中而不添加空间

首先我很抱歉,因为这个问题实际上已经回答过了。我只对以下答案有疑问,我不能直接在那里发表评论: https://tex.stackexchange.com/a/24197/73704

我喜欢这个回复,Leo 的小例子也运行得很好。不幸的是,我使用的文档很大,而且已经定义了 parskip(它应该留在那里)。

我调整了他的示例以适合我的情况,问题变得明显:“foo”后面有一个垂直空格。

\documentclass{article}

\parskip1.5ex plus0.5ex minus0.5ex

\newenvironment{tightcenter}{%
  \setlength\topsep{0pt}
  \setlength\parskip{0pt}
  \begin{center}
}{%
  \end{center}
}

\begin{document}
text text text text text text text text text text text text text text text text text text text text text text text text
\begin{tightcenter}
foo
\end{tightcenter}
text text text text text text text text text text text text text text text text text text text text text text text text

\end{document}

有人知道为什么会出现这个问题以及如何解决吗?

答案1

也许是这样的,但我不确定这是否是最好的解决方案。

环境center会添加垂直空间,而环境\centering不会。TeX 将换行符读作空格,因此环境结束后的换行符会导致下一行看起来部分缩进,因为添加了空格。注释换行符可避免此问题。

\documentclass{article}

\parskip1.5ex plus0.5ex minus0.5ex

\newenvironment{tightcenter}{%
  \setlength\topsep{0pt}%
  \setlength\parskip{0pt}%
  \par\centering}{\par\noindent\ignorespacesafterend}

\begin{document}
  text text text text text text text text text text text text text text text text text text text text text text text text
  \begin{tightcenter}
    foo
  \end{tightcenter}
  text text text text text text text text text text text text text text text text text text text text text text text text
\end{document}

中心线

编辑%感谢 karlkoeller 的建议,避免需要标志。

答案2

这是一个很好的例子,说明为什么\parskip不应该被触碰。;-)

让我们滥用显示数学模式。

\documentclass{article}

\newlength{\normalparskip}
\AtBeginDocument{%
  \setlength{\normalparskip}{1.5ex plus0.5ex minus0.5ex}%
  \setlength{\parskip}{\normalparskip}%
}

\newenvironment{tightcenter}{%
  \setlength\abovedisplayskip{0pt}
  \setlength\abovedisplayshortskip{0pt}
  \setlength\belowdisplayskip{0pt}
  \setlength\belowdisplayshortskip{0pt}
  $$
  \begin{minipage}[t]{\textwidth}\centering
}{%
  \unskip\strut\par
  \end{minipage}
  $$
}

\begin{document}

text text text text text text text text text text text text
text text text text text text text text text text text text
text text text text text text text text text text text text
text text text text text text text text text text text text
text text text text text text text text text text text text
text text text text text text
\begin{tightcenter}
foo\\
foo
\end{tightcenter}
text text text text text text text text text text text text
text text text text text text text text text text text text
text text text text text text text text text text text text
text text text text text text text text text text text text
text text text text text text text text text text text text
text text text text text text text text text text text text

text text text text text text text text text text text text
text text text text text text text text text text text text
text text text text text text text text text text text text
text text text text text text text text text text text text
text text text text text text text text text text text text
text text text text text text text text text text text text
\end{document}

在此处输入图片描述

相关内容