使用以下代码:
\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
如果在水平模式下使用,则像等会将自身插入到\vspace
TeX的段落分隔器将插入的节点中\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}