为什么练习的交叉引用不能与“exsheets”一起使用?

为什么练习的交叉引用不能与“exsheets”一起使用?

我正在尝试使用cleveref包为使用创建的练习创建自定义引用方案exsheets。我使用类似于下面的代码很好地自定义了浮点数和方程的交叉引用。

下面代码的输出没有显示对任何问题的正确引用。即使使用调试也\SetupExSheets{debug=true}显示问题尚未被标记。

我的源代码

\documentclass[]{book}
\usepackage[no-math]{fontspec}

\usepackage{cleveref}

    \crefformat{question}{Question. (#1)}
    \crefrangeformat{question}{Questions. (#1) to (#2)}
    \crefmultiformat{question}{Questions. (#1)}{ and (#1)}{, (#1)}{ and (#1)}
    \crefrangemultiformat{question}{Questions. (#1) to (#2)}{ and (#1) to (#2)}{, (#1) to (#2)}{ and (#1) to (#2)}


\usepackage{exsheets}

\SetupExSheets[points]{format=\bfseries, number-format=\itshape}            
\SetupExSheets{counter-format=\thesection.(qu[A]), counter-within=section}
\SetupExSheets{solution/print=true}
\SetupExSheets{debug=true,auto-label={false},ref-cmd={\cref},label-format={#1}}


\begin{document}


\chapter{My Chapter}



\section{Section 1}

\begin{question}
    \label[question]{qu:1}
    Question
\end{question}

\begin{solution}
    \label[question]{qu:2}
    Solution
\end{solution}

\begin{question}
    \label[question]{qu:3}
    Question
\end{question}

\begin{solution}
    \label[question]{qu:4}
    Solution
\end{solution}

\begin{question}
    \label[question]{qu:5}
    Question
\end{question}

\begin{solution}
    \label[question]{qu:7}
    Solution
\end{solution}



\section{Section 2}

\begin{question}
    \label[question]{qu:6}
    Question
\end{question}

\begin{solution}
    \label[question]{qu:7}
    Solution
\end{solution}

\begin{question}
    \label[question]{qu:8}
    Question
\end{question}

\begin{solution}
    \label[question]{qu:9}
    Solution
\end{solution}

\begin{question}
    \label[question]{qu:10}
    Question
\end{question}

\begin{question}
    \label[question]{qu:10}
    Question
\end{question}


\cref{qu:1,qu:2,qu:3,qu:4,qu:5}

\cref{qu:1,,qu:2,,qu:3,,qu:4,,qu:5}

\cref{qu:1,qu:6,qu:9,qu:2,qu:3,qu:4,qu:5,,qu:10}

\end{document}

答案1

在此处输入图片描述

我们使用\renewcommand{\thequestion}{\thesection.(\Alph{question})}。我们可以根据需要编辑表示。更一般的情况可能是:

\renewcommand{\thequestion}{\the<parent label><type of seperation>(\<type of numbering>{question})}

我们在这里写的定义必须与我们counter-format在 中的选项中写的定义相匹配\SetupExSheets。否则,方程标签可能为 1.3,而\cref输出可能为 1.III。

\documentclass[]{book}
\usepackage[no-math]{fontspec}

\usepackage[x11names]{xcolor}
\usepackage{exsheets}

\SetupExSheets[points]{format=\bfseries, number-format=\itshape}            
\SetupExSheets{counter-format=\thesection.(qu[A]), counter-within=section}
\SetupExSheets{solution/print=true}
\SetupExSheets{debug=true,auto-label={false},ref-cmd={\cref},label-format={#1}}

\usepackage{hyperref}
\hypersetup{linkcolor=DodgerBlue3, colorlinks=true}

\usepackage{cleveref}

\crefformat{question}{Question #2#1#3}
\crefrangeformat{question}{Questions #3#1#4 to #5#2#6}
\crefmultiformat{question}{Questions #2#1#3}{ and #2#1#3}{, #2#1#3}{ and #2#1#3}
\crefrangemultiformat{question}{Questions #3#1#4 to #5#2#6}{ and #3#1#4 to #5#2#6}{, #3#1#4 to #5#2#6}{ and #3#1#4 to #5#2#6}
\renewcommand{\thequestion}{\thesection.(\Alph{question})}

\begin{document}


\chapter{My Chapter}



\section{Section 1}

\begin{question}
    \label[question]{qu:1}
    Question
\end{question}


\begin{solution}
    \label[solution]{sol:1}
    Solution
\end{solution}

\begin{question}
    \label[question]{qu:2}
    Question
\end{question}

\begin{solution}
    \label[solution]{sol:2}
    Solution
\end{solution}

\begin{question}
    \label[question]{qu:3}
    Question
\end{question}

\begin{solution}
    \label[solution]{sol:3}
    Solution
\end{solution}



\section{Section 2}

\begin{question}
    \label[question]{qu:4}
    Question
\end{question}

\begin{solution}
    \label[solution]{sol:4}
    Solution
\end{solution}

\begin{question}
    \label[question]{qu:5}
    Question
\end{question}

\begin{solution}
    \label[solution]{sol:5}
    Solution
\end{solution}

\begin{question}
    \label[question]{qu:6}
    Question
\end{question}

\begin{question}
    \label[question]{qu:7}
    Question
\end{question}

\begin{question}
    \label[question]{qu:8}
    Question
\end{question}

\begin{solution}
    \label[solution]{sol:6}
    Solution
\end{solution}

\begin{question}
    \label[question]{qu:9}
    Question
\end{question}

\begin{solution}
    \label[solution]{sol:7}
    Solution
\end{solution}


\newpage
\cref{qu:1}

\cref{qu:1,qu:2,qu:3}

\cref{qu:4,,qu:5,,qu:6}

\cref{qu:1,qu:2,qu:3,qu:5,qu:6,qu:9}

\cref{qu:2,qu:3,qu:5,qu:6,qu:7,qu:8,,qu:9}

\cref{qu:1,qu:2,qu:3,qu:5,qu:6,qu:7,qu:8,qu:9}


\end{document}

相关内容