我从 LaTeX 开始,对段落格式有一个基本问题。我想在文本中间添加一个公式标题,但我找不到任何不让公式飘走的方便方法,所以我决定在下一个段落中居中一行作为标题。为此,我必须使用 将文本居中\centering
。如何防止以下段落居中,而是“正常”?
答案1
请注意,接受答案的方法
{\centering Text}
不起作用,因为没有空行(=\par
)前结束括号。同样适用于\begingroup\centering ... \endgroup
还请注意
center
环境添加明显的垂直间距标题之前和之后(可能是或不是您想要的)。等式后面一行标题就足够了,不需要额外的空间
\hfil
。如果在显示数学模式和之间留有空行
\hfil
,请注意文本会居中并考虑段落缩进。另外,
\hfil
您还可以使用宽的线宽,因为默认情况下其内容居中。除非您想要在标题周围\makebox
设置一个宽,否则获取相同的值不必要地复杂。\fbox
MWE(空白行被转换为\par
以标记它们所在的位置):
\documentclass{article}
\begin{document}
\[ a^2+b^2=c^2 \]
\hfil This is the Pythagorean Theorem.\par % works
\hfil This is the Pythagorean Theorem.\par % works if \parindent is 0pt
\begin{center}
This is the Pythagorean Theorem. % note the vertical spacing
\end{center}
{\centering This is the Pythagorean Theorem.}\par % oooooopps !
{\centering This is the Pythagorean Theorem.\par } % works
\noindent\makebox[\textwidth]{This is the Pythagorean Theorem.}\par % works too
\end{document}
编辑:
顺便说一下,为了使用带有标题的公式,我将制作一种新类型的浮点数或没有浮点数的真正标题,MWE:
\documentclass{article}
\usepackage{amsmath,lipsum}
\usepackage{float}
\floatstyle{boxed}
\floatname{eq}{Equation}
\newfloat{eq}{H}{eqn}
\usepackage{caption}
\captionsetup[eq]{skip=20pt,position=top}
\begin{document}
\lipsum[2]
\begin{eq}
\[ a^2+b^2=c^2 \]
\caption{This is the Pythagorean Theorem.}
\end{eq}
\begin{eq}
\[\mathbf{F} = \frac{d \mathbf{p}}{dt} = \frac{d (m \mathbf{v})}{dt} = m \frac{d \mathbf{v}}{dt} = m\mathbf{a}\]
\caption{Newton's second law of motion}
\end{eq}
\lipsum*[13] Or maybe mora compact and simple fake floats:
\[ a^2+b^2=c^2 \]
\captionof{eq}{This is the Pythagorean Theorem.}
\[\mathbf{F} = \frac{d \mathbf{p}}{dt} = \frac{d (m \mathbf{v})}{dt} = m \frac{d \mathbf{v}}{dt} = m\mathbf{a}\]
\captionof{eq}{Newton's second law of motion}
\lipsum*[2]
\end{document}
尽管我真的更喜欢公式右侧的经典编号,没有标题。;)
答案2
如果要将普通文本居中,通常使用以下center
环境:
\documentclass{article}
\begin{document}
\[ a^2+b^2=c^2 \]
\begin{center}
This is the Pythagorean Theorem.
\end{center}
\end{document}
如果您坚持使用centering
,请确保在文本周围加上括号,例如{\centering This is the Pythagorean Theorem}
。
答案3
答案4
一个简单的方法是使用 switch 命令来实现您想要的对齐方式。下面是一个在多列环境中将文本居中并将以下内容返回到对齐文本的示例。可能有更好的方法,但我在尝试使用居中环境或 \par 时出错。\justify 命令也可以放在 \Blindtext 之前。
\documentclass{report}
\usepackage{multicol}
\usepackage{ragged2e}
\usepackage{blindtext}
\begin{document}
\begin{multicols}{3}
[\centering Some over text\\\justify
\rule{\textwidth}{0.4pt}
]
\Blindtext
\end{multicols}
\noindent\rule{\textwidth}{0.4pt}
\end{document}