我更喜欢使用\begin{multicols}{2}
over,\documentclass[12pt,twocolumn]{article}
这样我就可以控制何时有 2 列,何时没有。
问题出现在使用时\begin{Verbatim}....\end{Verbatim}
。
使用\documentclass[12pt,twocolumn]{article}
verbatim 时,会自动换行到每列内,不会溢出到另一列。但是使用时 \begin{multicols}{2}
不会这样做,它会溢出到旁边的列。
梅威瑟:
\documentclass[12pt]{article}
\usepackage{multicol}
\setlength{\columnsep}{20pt}
\setlength{\columnseprule}{0.01pt}
\usepackage{fancyvrb}
\begin{document}
\begin{multicols}{2}
\begin{Verbatim}
blablabla blablabla blablabla blablabla
blablabla blablabla blablabla blablabla
blablabla blablabla blablabla blablabla
blablabla blablabla blablabla blablabla
blablabla blablabla blablabla blablabla
\end{Verbatim}
\end{multicols}
\end{document}
MWE 用于twocolumn
\documentclass[12pt,twocolumn]{article}
\setlength{\columnsep}{20pt}
\setlength{\columnseprule}{0.01pt}
\usepackage{fancyvrb}
\begin{document}
\begin{Verbatim}
blablabla blablabla blablabla blablabla
blablabla blablabla blablabla blablabla
blablabla blablabla blablabla blablabla
blablabla blablabla blablabla blablabla
blablabla blablabla blablabla blablabla
blablabla blablabla blablabla blablabla
\end{Verbatim}
\end{document}
并排
我想到解决方案是放入Verbatim
minipage,使用columnwidth
其大小作为 minipage 的宽度,这种方法在一定程度上有效,但由于某种原因,我无法使 minipage 的宽度小于列宽,因为逐字逐句仍然稍微超出了一点。
当我写说它0.6\columnwidth
对结果没有影响时。对于我尝试的任何值,它看起来都一样。
\documentclass[12pt]{article}
\usepackage{multicol}
\setlength{\columnsep}{20pt}
\setlength{\columnseprule}{0.01pt}
\usepackage{fancyvrb}
\begin{document}
\begin{multicols}{2}
\begin{minipage}{0.6\columnwidth}
\begin{Verbatim}
blablabla blablabla blablabla blablabla
blablabla blablabla blablabla blablabla
blablabla blablabla blablabla blablabla
blablabla blablabla blablabla blablabla
blablabla blablabla blablabla blablabla
\end{Verbatim}
\end{minipage}
\end{multicols}
\end{document}
Verbatim
问题是:在多列环境中处理的最佳方法是什么?
答案1
您的假设是错误的。在任何情况下都不会Verbatim
“包裹”到列宽。示例:
\documentclass[12pt,twocolumn]{article}
\setlength{\columnsep}{20pt}
\setlength{\columnseprule}{0.01pt}
\usepackage{fancyvrb}
\begin{document}
\begin{Verbatim}
blablabla blablabla blablabla blablabla blablablx
blablabla blablabla blablabla blablabla blablablx
blablabla blablabla blablabla blablabla blablablx
blablabla blablabla blablabla blablabla blablablx
blablabla blablabla blablabla blablabla blablablx
\end{Verbatim}
\end{document}
正如您所见,这些线条远远超出了分离规则。
中的行Verbatim
永远不会跨行分割,因此您必须确保它们不会超出列宽。
您的比较也是错误的,因为您没有考虑到选项twocolumn
会article
导致文本宽度增加到 469pt,而不是使用onecolumn
(默认)选项的 390pt。如果您尝试您的multicol
示例并扩展文本宽度,同时使用multicols*
以不进行列平衡,
\documentclass[12pt]{article}
\usepackage{multicol}
\setlength{\columnsep}{20pt}
\setlength{\columnseprule}{0.01pt}
\usepackage{fancyvrb}
\setlength{\textwidth}{469pt}
\begin{document}
\begin{multicols*}{2}
\begin{Verbatim}
blablabla blablabla blablabla blablabla
blablabla blablabla blablabla blablabla
blablabla blablabla blablabla blablabla
blablabla blablabla blablabla blablabla
blablabla blablabla blablabla blablabla
\end{Verbatim}
\end{multicols*}
\end{document}
您将获得相同的输出,如下所示。
如果你想要一个逐字模式并且换行,请使用listings
:
\documentclass[12pt]{article}
\usepackage{multicol}
\setlength{\columnsep}{20pt}
\setlength{\columnseprule}{0.01pt}
\usepackage{listings}
\lstset{basicstyle=\ttfamily,
breaklines=true}
\setlength{\textwidth}{469pt}
\begin{document}
\begin{multicols*}{2}
\begin{lstlisting}
blablabla blablabla blablabla blablabla
blablabla blablabla blablabla blablabla
blablabla blablabla blablabla blablabla
blablabla blablabla blablabla blablabla
blablabla blablabla blablabla blablabla
\end{lstlisting}
\end{multicols*}
\end{document}