我正在使用titlesec
包来设置我的部分标题的样式,包括居中和着色。有时我的部分会出现在 中,minipage
因为我经常有长而窄的图表贯穿整个页面,并且我希望文本在它旁边。但是,我发现当 出现\section
在 的开头时minipage
,页面顶部会有额外的垂直空间。以下 MWE 显示了这一点:
\documentclass[10pt]{article}
\usepackage[a6paper,showframe]{geometry}
\usepackage{xcolor}
\definecolor{headcol}{cmyk}{0,.75,.75,.2}
\usepackage{titlesec}
\newcommand\sectheadfont{\fontsize{12pt}{14.4pt}\selectfont\color{headcol}}
\titleformat{\section}[block]{\sectheadfont}{}{0pt}{\filcenter}
\begin{document}
\section{Foo}
\clearpage
\begin{minipage}[t]{0.8\textwidth}
\section{Bar}
\end{minipage}
\end{document}
第一页标题前没有空格,而第二页标题上方有 1em 的空格。如果我注释掉该\titleformat
行,就不会发生这种情况。此外,如果我\color{headcol}
从定义中删除\sectheadfont
它,也不会发生这种情况。我被要求使用彩色标题的方式是造成额外空格的原因。
\vspace{-1em}
我知道我可以在 的开头用 手动解决minipage
,但这似乎有点不可靠,因为所需的确切空间似乎取决于字体大小和其他类似的东西,并不总是恰好是 1em。有人能帮我在序言中解决这个问题吗?
答案1
我真的不明白为什么要采用这种结构。无论如何,删除前面的空格minipage
就足够了:
\vspace{-\abovedisplayskip}
在下面的 MWE 中,我定义了新的strangeenv
环境,但您也可以不用它,只需使用:
\begin{minipage}[t]{0.8\textwidth}
\vspace{-\abovedisplayskip}
\section{Bar}
...
\end{minipage}
平均能量损失
\documentclass[10pt]{article}
\usepackage[a6paper,showframe]{geometry}
\usepackage{kantlipsum}
\usepackage{xcolor}
\definecolor{headcol}{cmyk}{0,.75,.75,.2}
\usepackage{titlesec}
\newcommand\sectheadfont{\fontsize{12pt}{14.4pt}\selectfont\color{headcol}}
\titleformat{\section}[block]{\sectheadfont}{}{0pt}{\filcenter}
\newenvironment{strangeenv}[1]
{\begin{minipage}[t]{#1}
\vspace{-\abovedisplayskip}}
{\end{minipage}}
\begin{document}
\section{Foo}
\kant[1]
\clearpage
\begin{strangeenv}{0.8\textwidth}
\section{Bar}
\kant[9]
\end{strangeenv}
\end{document}
答案2
如果您想并排运行文本和高而窄的图像,我推荐 paracol。
\documentclass[10pt]{article}
\usepackage[a6paper,showframe]{geometry}
\usepackage{xcolor}
\definecolor{headcol}{cmyk}{0,.75,.75,.2}
\usepackage{titlesec}
\newcommand\sectheadfont{\fontsize{12pt}{14.4pt}\selectfont\color{headcol}}
\titleformat{\section}[block]{\sectheadfont}{}{0pt}{\filcenter}
\usepackage{paracol}
\globalcounter{section}
\begin{document}
\section{Foo}
\clearpage
\setcolumnwidth{0.8\textwidth}
\begin{paracol}{2}
\section{Bar}
\switchcolumn
\noindent\rule{\columnwidth}{\textheight}
\end{paracol}
\end{document}