\columnbreak 不起作用

\columnbreak 不起作用

使用以下代码:

\documentclass[a4paper]{report}
\usepackage{multicol}

\begin{document}
\begin{multicols}{2}
\noindent Vediamo un po' di testo a due colonne. Proviamo a cambiar colonna: \columnbreak
\texttt{\textbackslash columnbreak} serve a passare alla colonna successiva, ossia ad inserire un \emph{Column Break}, un'interruzione di colonna, come direbbe Word.
\end{multicols}
\end{document}

我应该得到两列文本,其中一列包含到此为止的文本,colonna:另一列包含其余文本。问题是,我离这个还差得很远:

在此处输入图片描述

\\在前面添加\columnbreak\columnbreak用负数替换\penalty也不起作用。那么我该怎么做才能从\texttt{\textbackslash columnbreak}第 2 列转到第 3 列呢?为什么\columnbreak会完全被忽略呢?

答案1

此示例表明\columnbreak 服从:

\documentclass[a4paper]{report}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}
\usepackage{multicol}

\begin{document}
\begin{multicols}{2}
\noindent Vediamo un po' di testo a due colonne. Proviamo a cambiar colonna: \columnbreak
\texttt{\textbackslash columnbreak} serve a passare alla colonna successiva, ossia a
inserire un \emph{Column Break}, un'interruzione di colonna, come in altri programmi
di scrittura. Chissà che succede ora qui avendo aggiunto testo.
\end{multicols}
\end{document}

在此处输入图片描述

让我们尝试不使用italian选项和fontenc,这样输出应该与你的类似

\documentclass[a4paper]{report}
\usepackage[utf8]{inputenc}
\usepackage{multicol}

\begin{document}
\begin{multicols}{2}
\noindent Vediamo un po' di testo a due colonne. Proviamo a cambiar colonna: \columnbreak
\texttt{\textbackslash columnbreak} serve a passare alla colonna successiva, ossia a
inserire un \emph{Column Break}, un'interruzione di colonna, come in altri programmi
di scrittura. Chissà che succede ora qui avendo aggiunto testo.
\end{multicols}
\end{document}

在此处输入图片描述

\columnbreak出现在段落中时,相应的惩罚将插入到 所在的行之后\columnbreak。在这两种情况下,它都位于包含 的行中\texttt{\textbackslash columnbreak}。将输入更改为

\noindent Vediamo un po' di testo a due colonne. Proviamo a cambiar colonna:\columnbreak
\ \texttt{\textbackslash columnbreak} serve a passare alla colonna successiva, ossia a
inserire un \emph{Column Break}, un'interruzione di colonna, come in altri programmi
di scrittura. Chissà che succede ora qui avendo aggiunto testo.

惩罚附加在冒号上,而不是反斜杠上,实际上输出是

在此处输入图片描述

但是,如果你想在冒号后面添加分栏符,你应该这样做

\documentclass[a4paper]{report}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}
\usepackage{multicol}

\begin{document}
\begin{multicols}{2}
\noindent Vediamo un po' di testo a due colonne. Proviamo a 
cambiar colonna:\columnbreak\linebreak
\verb|\columnbreak| serve a passare alla colonna successiva, ossia a
inserire un \emph{Column Break}, un'interruzione di colonna, come in altri programmi
di scrittura. Chissà che succede ora qui avendo aggiunto testo.
\end{multicols}
\end{document}

在此处输入图片描述

答案2

\columnbreak如果在水平模式下使用,则像等会将自身插入到\vspaceTeX的段落分隔器将插入的节点中\pagebreak\vadjust在当前文本行被分成多行之后仅当\vadjust节点内容以垂直模式解释时,底层惩罚才会影响列拆分。

在这种情况下,节点(只是)被放入文本行中,\columnbreak因此会产生效果该行,通过更多文本可以更容易地看出 id 确实强制中断:

在此处输入图片描述

\documentclass[a4paper]{report}
\usepackage{multicol}

\begin{document}
\begin{multicols}{2}
\noindent Vediamo un po' di testo a due colonne. Proviamo a cambiar colonna: \columnbreak
\texttt{\textbackslash columnbreak} serve a passare alla colonna successiva, ossia ad inserire un \emph{Column Break}, un'interruzione di colonna, come direbbe Word.

zzz

zzz

\end{multicols}
\end{document}

相关内容