我正在尝试使用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}