我已经这样做了:
\documentclass[12pt,a4paper]{article}
\usepackage{amsmath, mathptmx, amssymb}
\usepackage{tasks}[newest]
\settasks{label = \textbf{\Alph*.}}
\usepackage{enumitem}
\setlist[enumerate]{
label = \textbf{Question \arabic*.},
ref = \arabic*
}
\newcommand\correct{\label{\theenumi}}
%=========================================================
\begin{document}
\begin{enumerate}
\item How many letters in the word ``Tea'' ?
\begin{tasks}(4)
\task $1$
\task $3$ \correct
\task $2$
\task $4$.
\end{tasks}
\end{enumerate}
The answer is \ref{1}.
\end{document}
我打算自动标记(例如,\label{1}
针对问题 1)并手动引用。
我需要在最后一行写“答案是 B”(不带粗体和点),但保留\ref{1}
以供以后使用(因为 {1} 指的是问题 1)。
tasks
如果解决方案保持在环境中将会很有帮助enumerate
,因为我已经将它们用于我的整个文档。
答案1
发送给您的 MWE文件aux
包含以下行:
\newlabel{{1}}{{\textbf {B.}}{1}}
这意味着您需要使用\ref{{1}}
您的方法。但是,引用将是\textbf {B.}
,IE. 带有粗体点的粗体 B。
但是如果你将格式和标签分开,你就会得到你想要的。你可以这样做
\newcommand*\tasklabelformat[1]{\textbf{#1.}}
然后设置
\settasks{
label = \Alph* ,
label-format = \tasklabelformat
}
一个完整的示例,它还label-width
根据日志中的警告进行设置:
\documentclass[12pt,a4paper]{article}
\usepackage{amsmath, mathptmx, amssymb}
\newcommand*\tasklabelformat[1]{\textbf{#1.}}
\usepackage{tasks}[newest]
\settasks{
label = \Alph* ,
label-format = \tasklabelformat ,
label-width = 12pt
}
\usepackage{enumitem}
\setlist[enumerate]{
label = \textbf{Question \arabic*.},
ref = \arabic*
}
\newcommand\correct{\label{\theenumi}}
\begin{document}
\begin{enumerate}
\item How many letters are in the word ``Tea''?
\begin{tasks}(4)
\task $1$
\task $3$ \correct
\task $2$
\task $4$.
\end{tasks}
\end{enumerate}
The answer is \ref{{1}}.
\end{document}