更新环境多学科

更新环境多学科

我有一个较大的文档,其中的文本通常以多列方式排列。现在我必须删除打印布局的列,并想重新定义多列环境。

不幸的是,“Renewenvironment”不能那么容易地工作,显然是因为在环境中指定了列数。

有人能给我什么好的建议吗?

\documentclass{scrreprt}
\usepackage{multicol}
\usepackage{blindtext}

\begin{document}

\blindtext

\begin{multicols}{2} 
\blindtext

\end{multicols} 

\blindtext
\end{document}

答案1

环境multicols有一个强制参数,您只需忽略它,还有一个可选参数,用于在切换到多列格式之前打印文本,通常是一个部分标题。

\documentclass{scrreprt}
\usepackage{multicol}
\usepackage{blindtext}

\RenewDocumentEnvironment{multicols}{mO{}}{\par#2\par}{\par}

\begin{document}

\blindtext

\begin{multicols}{2}
\blindtext
\end{multicols}

\begin{multicols}{2}[\section{Title}]
\blindtext
\end{multicols}

\blindtext

\end{document}

在此处输入图片描述

答案2

以下应该有效

\DeclareDocumentEnvironment{multicols}{mO{}+b}{%
    \IfValueT{#2}{\notblank{#2}{#2}{}}#3}{}

如果您的 LaTeX 版本太旧,则需要加载etoolbox(对于\notblank),也许xparse(对于)。\Declare...

相关内容