Ссылка на пронумерованный раздел в классе moderncv с помощью \ref

Ссылка на пронумерованный раздел в классе moderncv с помощью \ref

Я хотел бы вернуться к пронумерованному разделу в 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}

частичный вывод кода

Связанный контент