我有一份 latex 文档,其中包含 24 个问题,每个问题都标有从 1 到 8 的数字。我想在序言中为 latex 指定一个介于 1 和 8 之间的数字 x,以便除标有 x 的问题之外的所有问题都得到注释。可以这样做吗?
我的想法是写类似的东西:
\def\label{3} %this number says which question is not going to be commented.
\newcommand\qone[1]{\ifstrequal{label}{1}{#1}{}}
\newcommand\qtwo[1]{\ifstrequal{label}{2}{#1}{}}
\newcommand\qthree[1]{\ifstrequal{label}{3}{#1}{}}
\newcommand\qfour[1]{\ifstrequal{label}{4}{#1}{}}
\newcommand\qfive[1]{\ifstrequal{label}{5}{#1}{}}
\newcommand\qsix[1]{\ifstrequal{label}}{6}{#1}{}}
\newcommand\qseven[1]{\ifstrequal{label}{7}{#1}{}}
\newcommand\qeight[1]{\ifstrequal{label}{8}{#1}{}}
然后将问题 1 括在 中\qone{...}
,将问题 2 括在 中,\qtwo{...}
依此类推。我知道这行不通,但我不知道如何从 etoolbox 用户指南中编写它。
答案1
不要使用\label
标准的乳胶命令。
我会使用一个带有问题类型/编号作为参数的命令,而不是很多命令,如下所示
\documentclass{article}
\newcommand\usequestion{2}
\newcommand\question[2]{\ifnum\usequestion=#1\relax#2\fi}
\begin{document}
\question{1}{this is a one qn}
\question{2}{this is a two qn}
\question{3}{this is a three qn}
\question{1}{this is another one qn}
\question{2}{this is another two qn}
\question{3}{this is another three qn}
\end{document}