我正在以该格式排版文档[twocolumn]
。我发现(谷歌搜索)一种将一些材料分布在两列上的方法如下代码所示:
\documentclass[twocolumn]{article}
\usepackage{lipsum}
\begin{document}
\twocolumn[\begin{@twocolumnfalse}
\centerline{\Large\bfseries This is my manually set ``wide'' title}
\vspace{3ex}
\end{@twocolumnfalse}]
\lipsum
\end{document}
我想:
- 了解代码的实际作用。
- 询问是否有更好的方法来实现这一点。
- 获取一些带有
[twocolumn]
解释的好的文档。
答案1
引用 Kopka 和 Daly 的话,LaTeX 指南,第 54 页:
\twocolumn[<header text>]
终止当前页面,开始新的页面两列每页。可选标题文本以一列的形式写在页面顶部,宽度与整个页面相同。
[...]
twocolumn
与单栏格式相比,[standard class] 选项会自动更改某些页面样式参数,例如缩进。使用命令 不会发生这种情况\twocolumn
。如果需要,必须使用相应的声明进行这些额外的更改\setlength
。如果文档的大部分内容都是双栏格式,则应优先使用 class 选项。
请注意,的参数\chapter
也将在模式下跨越整个页面的宽度twocolumn
。\chapter
在的可选参数中使用\twocolumn
将产生错误(Float(s) lost
)。
编辑:根据TeX 常见问题解答, 那里是标准 LaTeX 中至少有一种情况@twocolumnfalse
需要手动切换到:在两列的 中显示单列摘要。尝试在以下示例中article
注释掉\begin{@twocolumnfalse}
和:\end{@twocolumnfalse}
\documentclass{article}
\newcommand*{\sometext}{Lorem ipsum dolor sit amet, consectetuer
adipiscing elit. Ut purus elit, vestibulum ut, placerat ac,
adipiscing vitae, felis. Curabitur dictum gravida mauris.}
\begin{document}
\twocolumn[
\begin{@twocolumnfalse}
\begin{abstract}
\sometext
\end{abstract}
\end{@twocolumnfalse}
]
\sometext
\end{document}
答案2
它与以下内容相同:
\twocolumn[\@twocolumnfalse
\centerline{\Large\bfseries This is my manually set ``wide'' title}
\vspace{3ex}
]
除了它(滥用)使用\begin
来执行\csname @twocolumnfalse\endcsname
,从而避免弄乱\makeatletter
。
twocolumn 的可选参数在列开始之前设置为全宽框。\@iftwocolumn
设置为 false 在该示例中不会产生任何影响,但如果该部分中有更复杂的代码,则可能会测试该标志。我在标准 latex 中唯一能看到的测试内容 \if@twocolumn
是与浮动相关的内容,而\clearpage
这两个内容在该位置都无关。但可能还有其他包代码需要知道它是在全页设置中还是在单个列中。
** 正如聊天和@lockstep的回答所指出的那样,标准类在定义中测试这个开关,\abstract
因此在可选参数中抽象\twocolumn
是受到添加的设置的影响@twocolumnfalse
。