我尝试定义快捷方式
\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}
您可以定义一个“新任务”\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}