
ich habe mich gewundert, anstatt see Section \ref{labelname}
Produkte zu haben
siehe Abschnitt 4.1.1
ich könnte es so machen, see Section \ref{labelname}
dass
siehe Abschnitt 4.1.1(Seite 65)
ist das möglich? Würde die Verwendung hyperref
das durcheinander bringen?
Antwort1
Sie können einen Befehl definieren, wie \myref
\newcommand{\myref}[1]{\ref{#1} (p\pageref{#1})}
Dann können Sie verwenden\myref{xxx}
Antwort2
Der sauberere Weg wäre ein neues Makro wie in der Antwort von goodluck
. \ref
Kann aber auch neu definiert werden. Dies sollte so spät wie möglich erfolgen, da viele Pakete es neu definieren. In der Lösung erfolgt dies \AtBeginDocument
am Ende der Präambel, insbesondere nachdem das Paket hyperref
geladen wurde.
Das Paket unterstützt auch hyperref
eine Sternform, die die Referenz ohne den Link generiert. Dies ist beispielsweise nützlich, wenn die Referenz Teil einer anderen Referenz ist, um verschachtelte Links zu vermeiden.
\documentclass{article}
\usepackage{hyperref}
\makeatletter
\AtBeginDocument{%
\newcommand*{\original@ref}{}%
\let\original@ref\ref
\@ifpackageloaded{hyperref}{%
\renewcommand*{\ref}{%
\@ifstar\newrefstar\newref
}%
\newcommand*{\newrefstar}[1]{%
\original@ref*{#1} \textbf{(p\pageref*{#1})}%
}%
\newcommand*{\newref}[1]{%
\hyperref[#1]{\newrefstar{#1}}%
}%
}{%
\renewcommand*{\ref}[1]{%
\original@ref{#1} \textbf{(p\pageref{#1})}%
}%
}%
}
\makeatother
\begin{document}
\section{Introduction}
\section{Foo bar}
\subsection{Hello World}
\label{sec:hello}
This is subsection \ref{sec:hello}.
\end{document}
Antwort3
Vielleicht möchten Sie einen Blick auf dievarioref
Paket mit seinem Befehl \vref
. Dadurch wird die gewünschte Ausgabe generiert. Darüber hinaus hat dies keine Auswirkungen auf Ihre hyperref
Einstellungen.