
Я хотел бы вернуться к пронумерованному разделу в moderncv
классе, \ref
но не могу этого сделать.
Я прочитал пост под названием Использование \ref в классе moderncv и мне удалось получить следующее:
\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
.
Я попытался решить эту проблему, прочитав пост под названиемИспользование \ref в классе moderncv однако мне это не удалось.
Можно ли использовать \ref
и ссылаться на пронумерованный раздел, который был обозначен в moderncv
классе?
Примечание:Я понимаю, что это может быть необычным запросом, однако причина, по которой я задаю этот вопрос, заключается в том, что у меня уже есть CV, созданное с использованием класса, moderncv
и мне также нужно написать дополнительный документ, который требует пронумерованных разделов. Я хотел бы использовать класс moderncv
(с изменениями) для этого дополнительного документа, чтобы сохранить визуальную и стилистическую согласованность между CV и дополнительным документом. Причина, по которой требуется ссылка в дополнительном документе, заключается в том, чтобы избежать повторения информации, попросив читателя вернуться к определенному пронумерованному разделу.
решение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}