我想画一条水平线来分隔文档中的内容,如下所示:
但是,我注意到段落和方程式之间的垂直间距并不像它应该的那样:
奇怪的是,如果我评论分隔线,它就能正常工作。
这是我的命令:
\newcommand*{\labline}[1]{%
\setbox\z@\hbox{#1}\relax%
\begin{center}%
\hrulefill\raisebox{-0.45\ht\z@}{\:#1\:}\hrulefill\null%
\end{center}%
}%
生成段落和方程的代码
\kant[9]
\labline{Separator}
\kant[10]
\[ \text{Total derivative: }\frac{\mathrm{d}^3f}{\mathrm{d}x^3} \]
平均能量损失
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{kantlipsum}
\usepackage{amsmath}
%% The command %%
\makeatletter
\newcommand*{\labline}[1]{%
\setbox\z@\hbox{#1}\relax%
\begin{center}%
\hrulefill\raisebox{-0.45\ht\z@}{\:#1\:}\hrulefill\null%
\end{center}%
}%
\makeatother
\title{}
\author{}
\date{\today}
\begin{document}
\section{With the separator}
\kant[1]
\labline{Separator}
\kant[1]
\[ \text{Total derivative: }\frac{\mathrm{d}^3f}{\mathrm{d}x^3} \]
\newpage
\section{Without the separator}
\kant[1]
\kant[1]
\[ \text{Total derivative: }\frac{\mathrm{d}^3f}{\mathrm{d}x^3} \]
\end{document}
答案1
这只是\kant
宏的一个产物,以段落分隔符结尾。您永远不应该在显示的公式前有段落分隔符。这里您得到的\abovedisplayshortskip
是自然大小为 0pt 的文本,但仅适用于段落的最后一行不与公式重叠的情况。
请\kant[1]x
参阅 ,了解不以段落分隔符结束并触发 预期用途的文本\abovedisplayshortskip
。
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{kantlipsum}
\usepackage{amsmath}
%% The command %%
\makeatletter
\newcommand*{\labline}[1]{%
\setbox\z@\hbox{#1}\relax%
\begin{center}%
\hrulefill\raisebox{-0.45\ht\z@}{\:#1\:}\hrulefill\null%
\end{center}%
}%
\makeatother
\title{}
\author{}
\date{\today}
\begin{document}
\section{With the separator}
\kant[1]
\labline{Separator}
\kant[1]x
\[ \text{Total derivative: }\frac{\mathrm{d}^3f}{\mathrm{d}x^3} \]
\newpage
\showoutput
\section{Without the separator}
\kant[1]
\kant[1]x
\[ \text{Total derivative: }\frac{\mathrm{d}^3f}{\mathrm{d}x^3} \]
\end{document}