任务环境中的自动标记

任务环境中的自动标记

我已经这样做了:

\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}

相关内容