Verweisen Sie mit \ref auf den nummerierten Abschnitt in der moderncv-Klasse

Verweisen Sie mit \ref auf den nummerierten Abschnitt in der moderncv-Klasse

moderncvIch möchte mithilfe von auf einen nummerierten Abschnitt im Unterricht zurückgreifen, \refkann dies jedoch nicht.

Ich habe den Beitrag mit dem Titel gelesen Verwenden von \ref in der ModernCV-Klasse und ich konnte Folgendes herausfinden:

\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}

Dies führt zu folgender Ausgabe:

Bildbeschreibung hier eingeben

Wie wir sehen können, wird die Abschnittsnummer nicht an der Position angezeigt, an der ich den \refBefehl verwende.

Ich habe versucht, dieses Problem zu lösen, indem ich den Beitrag mit dem Titel gelesen habeVerwenden von \ref in der ModernCV-Klasse ich hatte jedoch keinen Erfolg.

Ist es möglich, \refeinen nummerierten Abschnitt, der im Unterricht beschriftet wurde, zu verwenden und darauf zu verweisen moderncv?

Notiz:Mir ist bewusst, dass dies eine ungewöhnliche Anfrage sein könnte, aber ich stelle diese Frage, weil ich bereits einen Lebenslauf mit der moderncvKlasse erstellt habe und außerdem ein ergänzendes Dokument schreiben muss, das nummerierte Abschnitte erfordert. Ich möchte die moderncvKlasse (mit Änderungen) für dieses ergänzende Dokument verwenden, um die visuelle und stilistische Konsistenz zwischen dem Lebenslauf und dem ergänzenden Dokument zu wahren. Der Grund für die Anforderung von Referenzen im ergänzenden Dokument besteht darin, die Wiederholung von Informationen zu vermeiden, indem der Leser aufgefordert wird, auf einen bestimmten nummerierten Abschnitt zurückzugreifen.

Antwort1

Das Problem liegt an dem ziemlich komplizierten Code, der zur Erzeugung der Zahl verwendet wird. Wenn wir diesen Code vereinfachen, \labelfunktionieren die Befehle wie erwartet. Anstatt den Zähler innerhalb des \sectionstyleMakros zu erhöhen, stellen wir ihn dem \sectionBefehl voran. Dadurch kann auf das Label richtig zugegriffen werden, unabhängig davon, ob sich der \labelBefehl innerhalb des \section{...}Befehls befindet (wie ich in meinem Kommentar vorgeschlagen habe) oder direkt danach (wie Sie es erwarten würden).

\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}

Teilausgabe des Codes

verwandte Informationen