我在排版试卷答案的时候,想用一个fontawesome
标志来标记题目的正确选项,于是我用task
包和fontawesome5
包排版出了下面的内容
\begin{tasks}(2)
\task The choice A
\task[\faIcon{check-square}.] The choice B
\addtocounter{task}{1}
\task The choice C
\task The choice D
\end{tasks}
看起来有点麻烦,所以想创建一个可以快速实现效果的新命令
\def\true{\task[\faIcon{check-square}.]}
然后我使用该true
命令,它返回了以下错误
Undefined control sequence.
\true ->\task
我也尝试过使用hook
\AtBeginEnvironment{tasks}{\def\true{\task[\faIcon{check-square}.]}}
但是,它不起作用。那么,我该如何实现这个效果呢?
完整的 MWE 如下
\documentclass{article}
\usepackage{tasks,fontawesome5}
\settasks{label=\Alph*.}
\begin{document}
\def\true{\task[\faIcon{check-square}.]}
\begin{tasks}(2)
\task The choice A
\task[\faIcon{check-square}.] The choice B
\addtocounter{task}{1}
\task The choice C
\task The choice D
\end{tasks}
The simplified code I'd like is
\begin{verbatim}
\begin{tasks}(2)
\task The choice A
\true The choice B
\task The choice C
\task The choice D
\end{tasks}
\end{verbatim}
\end{document}
答案1
抱歉,如果不对包代码进行大修,它就无法工作。问题是包代码使用文字\task
将输入拆分为项目。因此您的\true
命令不会创建新项目,从而导致混乱。
我能提供的最好的是诸如的语法\task[\true]
,因此您可以\true
根据自己的喜好进行定义。
\documentclass{article}
\usepackage{tasks,fontawesome5}
\settasks{label=\Alph*.}
\newcommand\true{%
\addtocounter{task}{1}%
\ifinstructor\makebox[0pt][r]{\faIcon{check-square} }\fi
\thetask
}
\newif\ifinstructor % starts false
\begin{document}
\begin{tasks}(2)
\task The choice A
\task[\true] The choice B
\task The choice C
\task The choice D
\end{tasks}
\instructortrue
\begin{tasks}(2)
\task The choice A
\task[\true] The choice B
\task The choice C
\task The choice D
\end{tasks}
\end{document}
当然,\instructortrue
如果你想打印解决方案密钥,你需要在开始文档时进行设置。这里我使用相同的环境作为示例。