使用 multicol 包调整 LaTeX 中的列宽

使用 multicol 包调整 LaTeX 中的列宽

我正在尝试在我的 LaTeX 论文上实现两列“学术风格”论文布局。我知道至少有两种常用方法可以做到这一点,要么调整 \documentclass,要么使用更通用的 multicol 包。我使用的是后者。

最初我只是尝试获取一个我发现有效的模板,它如下:

\documentclass{article}
\usepackage{multicol}

\begin{document}
\begin{multicols*}{2}
\addtolength{\linewidth}{2.5in}
A lot of text here ...
\end{multicols*}
\end{document}

我一直在尝试使用各种参数,例如如上例中给予 \addtolength 的 \linewidth,但它似乎对生成的文档没有任何影响。

列宽如何调整?按照我的方法调整是否正确?

答案1

不要尝试直接调整列宽:multicol设计用于计算列宽。您应该做的是首先设置一个带有“文本块”的概念页面,该文本块表示如果您只有一列,您将获得的文本。这涉及相当多的潜在长度,建议您使用包geometry来执行此操作:大多数非排版人员发现最直观的做法是设置边距,并geometry会让您这样做,然后计算其他长度,而不是强迫您直接这样做。

完成此操作后,由 生成的两列(或三列、四列……)环境multicol将计算所需的宽度,将可用文本块划分为适当数量的列,并\columnsep在列之间留出空间(由 定义)。如果需要,您可以单独调整。

例如:

\documentclass{article}
\usepackage[margin={1cm,1cm}]{geometry}
\usepackage{multicol}
\usepackage{lipsum}

\begin{document}

\begin{multicols*}{2}
\lipsum
\end{multicols*}

\end{document}

为您提供宽的文本块和宽的列。

在此处输入图片描述

但是如果你改变边距,文本块就会变窄:

\usepackage[margin={5cm,5cm}]{geometry}

你得到窄列

在此处输入图片描述

为了完整性,如果您调整这些列之间的间距,\setlength{\columnsep}{2cm}您可以看到结果:

在此处输入图片描述

(请注意,这些设置非常丑陋:它们向您展示了想法,并不旨在作为良好排版的指南!)

答案2

对于使用列,我建议使用 usenix-2e.sty,它可以很容易地使用内置变量来修改文本块

变量应该很容易理解

\setlength{\textheight}{9.25in}
\setlength{\columnsep}{0.25in}
\setlength{\textwidth}{6.75in}
%\setlength{\footheight}{0.0in}
\setlength{\topmargin}{-0.25in}
\setlength{\headheight}{0.0in}
\setlength{\headsep}{0.0in}
\setlength{\evensidemargin}{-0.125in}
\setlength{\oddsidemargin}{-0.125in}

相关内容