一个办法 ?

一个办法 ?

我尝试定义快捷方式

\documentclass{article}

\usepackage{tasks}

\def\bqcmt{\begin{tasks}(2)}
\def\eqcmt{\end{tasks}}
\def\myitem{\task}

\begin{document}
\bqcmt
\myitem This is a test
\eqcmt
\end{document}

但它不起作用。错误是:

LaTeX 错误:\begin{tasks} 在输入第 10 行以 \end {document} 结束。

请参阅 LaTeX 手册或 LaTeX Companion 了解解释。输入 H 可立即获得帮助。...

                                               l.13 \end{document}

为什么会这样?我该如何定义这样的快捷方式?

一个办法 ?

以下似乎有效

\documentclass{article}
\usepackage{tasks}

\def\bqcmt{\csname tasks\endcsname(3)}
\def\eqcmt{\endtasks}
\def\myitem{\csname endtasks\endcsname}

\begin{document}
\bqcmt
\task This is a test
\task This is a test
\task This is a test
\eqcmt
\end{document}

\documentclass{article}
\usepackage{tasks}

\newcommand{\bqcmt}[1]{\csname tasks\endcsname(#1)}
\def\eqcmt{\endtasks}
\def\myitem{\csname endtasks\endcsname}

\begin{document}
\bqcmt{3}
\task This is a test
\task This is a test
\task This is a test
\eqcmt
\end{document}

我的新问题?

但我不知道这是否是个好主意。事实上,\begin{tasks}通常会扫描文件的其余部分\end{tasks}。有了这个“黑客”,我猜这种扫描将不会发生。

答案1

这是一个坏主意。

无论如何,您可以使用带有分隔参数的宏。

\documentclass{article}
\usepackage{tasks}

\long\def\bqcmt#1#2\eqcmt{\begin{tasks}(#1)#2\end{tasks}}

\begin{document}

\bqcmt{3}
\task a
\task b
\task c
\task d
\task e
\task f
\eqcmt

\bigskip

\begin{tasks}(3)
\task a
\task b
\task c
\task d
\task e
\task f
\end{tasks}

\end{document}

enter image description here

您可以定义一个“新任务”\item作为分隔符。

\documentclass{article}
\usepackage{tasks}

\NewTasks{colastasks}[\item]

\long\def\bqcmt#1#2\eqcmt{\begin{colastasks}(#1)#2\end{colastasks}}

\begin{document}

\bqcmt{3}
\item a
\item b
\item c
\item d
\item e
\item f
\eqcmt

\end{document}

相关内容