\twocolumn[{\begin{@twocolumnfalse} 解释

\twocolumn[{\begin{@twocolumnfalse} 解释

我正在以该格式排版文档[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}

我想:

  1. 了解代码的实际作用。
  2. 询问是否有更好的方法来实现这一点。
  3. 获取一些带有[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

相关内容