正如您在图像中看到的,垂直间距不一致。
我想避免以黑客方式模拟 multicol 使用的间距。
如果我使用 \multicols{1},我会收到警告:
软件包 multicol 警告:使用 `1' 列似乎不是一个好主意。因此,我在第 20 行输入中使用了两列。
在此示例中,获得对称垂直间距的好方法是什么?
\documentclass{article}
\usepackage{multicol,times}
\begin{document}
\hrule
\begin{multicols}{3}
\centering {\bfseries Title 1} \\
\centering Description 1 \\
\columnbreak
\centering {\bfseries Title 2} \\
\centering Description 2 \\
\columnbreak
\centering {\bfseries Title 3} \\
\centering Description 3
\end{multicols}
\hrule
% \begin{multicols}{1}
\centering {\bfseries Title 4} \\
\centering Description 4
% \end{multicols}
\hrule
\begin{multicols}{2}
\centering {\bfseries Title 5} \\
\centering Description 5 \\
\columnbreak
\centering {\bfseries Title 6} \\
\centering Description 5
\end{multicols}
\hrule
\end{document}
答案1
以下提供了一致的间距 - 您必须对垂直间距使用相同的代码:
\documentclass{article}
\usepackage{tabularx}% http://ctan.org/pkg/tabularx
\newcolumntype{Y}{>{\centering\arraybackslash}X}
%----------
% Sections
%----------
\newcommand{\mysec}[2][2]{%
\LARGE\noindent\begin{tabularx}{\textwidth}{*{#1}{Y}}
#2
\end{tabularx}%
\bigskip
}
\newcommand{\mysubsec}[2][3]{
\Large\noindent\begin{tabularx}{\textwidth}{*{#1}{Y}}
#2
\end{tabularx}%
\medskip
}
\newcommand{\mysubsubsec}[2][4]{
\small\noindent\begin{tabularx}{\textwidth}{*{#1}{Y}}
#2
\end{tabularx}%
\smallskip
}
\begin{document}
\mysec{\bfseries Heading}
\mysubsec{\bfseries Subheading 1}
\mysubsubsec[3]{%
{\bfseries Title 1} \par Description 1 &
{\bfseries Title 2} \par Description 2 &
{\bfseries Title 3} \par Description 3
}
\mysubsec{\bfseries Subheading 2}
\mysubsubsec{%
{\bfseries Title 4} \par Description 4
}
\mysubsec{\bfseries Subheading 3}
\mysubsubsec[2]{%
{\bfseries Title 5} \par Description 5 &
{\bfseries Title 6} \par Description 6
}
\end{document}
我用的是全宽tabularx
它将多个Y
-列(定义为居中-列)放在一起X
。\mysec
后面跟着\bigskip
、\mysubsec
by\medskip
和。这提供了某种形式的一致性。您可以对所有都使用相同的方法。\mysubsubsec
\smallskip
如果你想坚持multicol
,使用 3 列布局来实现 1 列用法也是可能的:
\documentclass{article}
\usepackage{multicol}% http://ctan.org/pkg/multicol
\begin{document}
\noindent\hrulefill\smallskip
\begin{multicols}{3}
\centering {\bfseries Title 1} \par
Description 1 \par
\columnbreak
{\bfseries Title 2} \par
Description 2 \par
\columnbreak
{\bfseries Title 3} \par
Description 3
\end{multicols}
\smallskip\noindent\hrulefill\smallskip
\begin{multicols}{3}
\mbox{} \par \mbox{} \par
\columnbreak
\centering {\bfseries Title 4} \par
Description 4
\end{multicols}
\smallskip\noindent\hrulefill\smallskip
\begin{multicols}{2}
\centering {\bfseries Title 5} \par
Description 5 \par
\columnbreak
{\bfseries Title 6} \par
Description 5
\end{multicols}
\smallskip\noindent\hrulefill
\end{document}