我正在写一本书,在书的最后,我写下了练习答案。为了获得更好的布局,我使用了multicols
如下环境:
\begin{multicols}{2}
\setlength{\columnseprule}{0.4pt}
\begin{enumerate}
\item answer 1
\item answer 2
\end{enumerate}
\end{multicols}
但是,当练习包含两个或更多项(如 1a) 1b)时,如果我在另一个multicols
环境中编写这些解决方案,垂直线就会延伸到它。我尝试使用\setlength{\columnseprule}{0.0pt}
它来修复它,但当我这样做时,它会擦除垂直线。
我得到了这样的信息:
1. # 6.
2a) | b) # 7.
c) | d) # 8.
3. # 9.
4. # 10.
5. # 11.
其中#
表示主垂直线(我想要保留)并且|
表示练习的垂直线(我试图使用 擦除0.0pt
)。
我希望你理解我的问题。
谢谢 :)
答案1
您可以在列数后使用可选参数来指定要在环境之前执行的代码。这是一个最小示例(就像您将其放入问题中会很有帮助的示例一样)。
\documentclass{article}
\usepackage{multicol}
\usepackage{etoolbox}
\setlength{\columnseprule}{.4pt}
\begin{document}
\begin{multicols}{2}
\begin{enumerate}
\item answer 1
\begin{multicols}{2}[\setlength{\columnseprule}{0pt}]
\begin{enumerate}
\item Foo
\item Barr
\item Foo
\item bar
\end{enumerate}
\end{multicols}
\item answer 2
\end{enumerate}
\end{multicols}
\end{document}
答案2
您可以使用本地值:
\documentclass{article}
\usepackage{multicol}
\begin{document}
\begin{multicols}{2}
\setlength{\columnseprule}{0.4pt}
\begin{enumerate}
\item answer 1
{% here (P.S)
\setlength{\columnseprule}{0pt}
\begin{multicols}{2}
\begin{enumerate}
\item answer 1
\item answer 2
\end{enumerate}
\end{multicols}}
\item answer 2
\end{enumerate}
\end{multicols}
\end{document}