我想参考moderncv
课堂上已编号的部分\ref
,但我无法这样做。
我读了标题为 在 moderncv 类中使用 \ref 我得到了以下信息:
\documentclass[11pt,a4paper]{moderncv}
\moderncvstyle{banking}
\moderncvcolor{blue}
\usepackage[margin=1in]{geometry}
\usepackage{etoolbox}
\newcounter{secnumber}
\newcommand{\numbersec}{\refstepcounter{secnumber}\thesecnumber~}
\patchcmd{\section}{\sectionstyle{#1}}{\sectionstyle{\numbersec #1}}{}{}
\renewcommand\sectionstyle[1]{{%
\refstepcounter{secnumber}%
\sectionfont
\textcolor{color1}{\thesecnumber.\quad#1}%
}}
\firstname{First Name}
\familyname{Last Name}
\begin{document}
\makecvtitle
\section{A Section}
\label{sec.one}
Text goes here
\section{Another Section}
\label{sec.two}
Text goes here
\section{Yet Another Section}
\label{sec.three}
Recall in section \ref{sec.one} that we mentioned ...
\end{document}
这将提供以下输出:
我们可以看到,章节编号没有出现在我使用该命令的位置\ref
。
我试图通过阅读标题为在 moderncv 类中使用 \ref 但我没有成功。
是否可以使用\ref
并引用课堂上已标记的编号部分moderncv
?
笔记:我知道这可能是一个不寻常的要求,但提出这个问题的原因是我已经使用该类制作了简历moderncv
,并且我还需要编写一份需要编号部分的补充文件。我想moderncv
对该补充文件使用该类(经过修改),以保持简历和补充文件之间的视觉和样式一致性。要求在补充文件中引用的原因是通过要求读者参考某个编号部分来避免重复信息。
答案1
问题在于用于生成数字的代码相当复杂。如果我们简化该代码,那么命令\label
将按您期望的方式工作。\sectionstyle
我们不是在宏内增加计数器,而是将其添加到命令的前面。这样,无论命令是在命令内部(如我在评论中所建议的那样)还是紧跟在命令之后(如您期望的那样),\section
都可以正确访问标签。\label
\section{...}
\documentclass[11pt,a4paper]{moderncv}
\moderncvstyle{banking}
\moderncvcolor{blue}
\usepackage[margin=1in]{geometry}
\usepackage{etoolbox}
\newcounter{secnumber}
\pretocmd{\section}{\refstepcounter{secnumber}}{}{}
\renewcommand\sectionstyle[1]{{%
\sectionfont
\textcolor{color1}{\thesecnumber.\quad#1}%
}}
\firstname{First Name}
\familyname{Last Name}
\begin{document}
\makecvtitle
\section{A Section}
\label{sec.one}
Text goes here
\section{Another Section}
\label{sec.two}
Text goes here
\section{Yet Another Section}
\label{sec.three}
Recall in section \ref{sec.one} that we mentioned and in section \ref{sec.two} ... and in section \ref{sec.three} we see
\end{document}