为什么跳线在这里会引起问题?
\documentclass{article}
\usepackage{multicol,xparse}
\NewDocumentEnvironment{DeuxCols}
{
D<>{30pt}
O{.5pt}
mm
}{%
\setlength{\multicolsep}{0pt}%
\setlength{\columnsep}{#1}%
\setlength{\columnseprule}{#2}%
\begin{multicols}{#3}%
#4}{%
\end{multicols}%
\addvspace{2pt}}
\begin{document}
\begin{DeuxCols}{2} % works
Bla
\end{DeuxCols}
\begin{DeuxCols}{2} % doesn't work
Bla
\end{DeuxCols}
\end{document}
答案1
这里您不需要它,只需在第一种情况下#4
拾取环境的第一个标记,在第二种情况下(产生错误)拾取环境的第一个标记。B
\par
\NewDocumentEnvironment{DeuxCols}
{
D<>{30pt}
O{.5pt}
m
}{%
\setlength{\multicolsep}{0pt}%
\setlength{\columnsep}{#1}%
\setlength{\columnseprule}{#2}%
\begin{multicols}{#3}%
}{%
\end{multicols}%
\addvspace{2pt}}