\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 列開始呢?為什麼\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選項 and 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

\columnbreaklike\vspace\pagebreak如果在水平模式下使用,會將其本身插入到\vadjustTeX 的段落分隔符號將插入的節點中當前行文字被分成幾行後。只有當\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}

相關內容