考虑一下代码
\documentclass{article}
\usepackage{tcolorbox}
\usepackage{scalefnt}
\usepackage{xcolor}
\usepackage{lipsum}
\newtcbox{\logo}{nobeforeafter, notitle, %sharpcorners,
colframe=blue,
colback=blue!30,
fontupper=\sffamily\bfseries,
tcbox raise base}
\begin{document}
\tableofcontents
\newpage
\begin{center}
\begin{LARGE}
\section*{\logo{April 1}}
\end{LARGE}
\end{center}
\begin{center}
{\LARGE{\textbf{\textcolor{red}{\textit{April, come she will}}}}}
\end{center}
%\addcontentsline{toc}{subsection}{\normalsize\color{black} 1. Add to contents.}
\begin{center}
\begin{normalsize}
\begin{minipage}{4.25in}
\lipsum[3]
\end{minipage}
\end{normalsize}
\end{center}
\end{document}
产生输出
但是,当我运行以下未注释掉的行的代码时
\addcontentsline{toc}{subsection}{\normalsize\color{black} 1. Add to contents.}
我明白了
问题:为什么使用该\addcontentsline
命令时小页面与其上方文本之间的间距会增加?我该如何防止这种情况发生?
谢谢。
答案1
两个相邻的显示环境将第一个显示环境之后的空间与第二个显示环境之前的空间中的最大值相加。
通过在两者之间添加一个写入节点,可以阻止第二个节点center
“看到”第一个节点添加的空间,从而得到总和。
无论如何都不应\addcontentsline{toc}
在该点添加,因为该空间会添加分页符点,因此目录条目最终可能会引用错误的页面。
在与文本同一行添加写内容。
没有直接关系,但是
\begin{center}
\begin{LARGE}
\section*{\logo{April 1}}
\end{LARGE}
\end{center}
既不会影响格式,center
也不会影响添加垂直空间的复杂方法。LARGE
\section*
答案2
这不是答案,而是一个例子。通常 TeX 会忽略多个\par
s,但如果您在它们之间放置其他任何东西……
\documentclass{article}
\parskip=\baselineskip
\begin{document}
\verb|\par\par|
\par\par
\verb|\par\hbox{}\par|
\par\hbox{}\par
end
\end{document}