PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : autoref subsubsection / subsection



Steffen1187
02-07-2012, 11:48
Servus zusammen,

direkt mal s Minimalbeispiel:

%test autoref

\documentclass{scrbook}
\usepackage[ngerman]{babel}

\usepackage{hyperref}

\begin{document}
\chapter{Kapitel1}
\label{cha:kapitel1}

\section{Abschnitt1}
\label{sec:Abschnitt1}

\subsection{Unterabschnitt1}
\label{sec:Unterabschnitt1}

\subsubsection{Unterunterabschnitt1}
\label{sec:Unterunterabschnitt1}

\chapter{Kapitel2}
\label{cha:kapitel2}

\section{Abschnitt2}
\label{sec:Abschnitt2}

\subsection{Unterabschnitt2}
\label{sec:Unterabschnitt2}

\subsubsection{Unterunterabschnitt2}
\label{sec:Unterunterabschnitt2}

\autoref{cha:kapitel1}

\autoref{cha:kapitel2}

\autoref{sec:Abschnitt1}

\autoref{sec:Abschnitt2}

\autoref{sec:Unterabschnitt1}

\autoref{sec:Unterabschnitt2}

\autoref{sec:Unterunterabschnitt1}

\autoref{sec:Unterunterabschnitt2}


\end{document}

Ich nummeriere nur bis zur subsection Ebene, benutze teilweise jedoch auch subsubsections, in denen sich Labels verstecken. Das habe ich so gemacht, da ich mir Anfangs nicht sicher war, welcher Inhalt wo im Dokument landen wird und ich deswgen nicht direkt auf die subsections referenzieren konnte.
Referenziere ich nun auf die subsubsections, werden wie gewünscht die aktuellen Nummerierungen der jeweiligen subsection angegeben - allerdings als Abschnitt und nicht als Unterabschnitt.

Kann man dies umstellen?

Grüße
Steffen

Sepp99
02-07-2012, 16:17
Manchmal hilft da

\phantomsection\label{deinlabel}

Gruß, Sepp.-

u_fischer
02-07-2012, 17:04
Das Problem ist, dass \subsubsection (weil es keine Nummer hat), nur ein \phantomsection ausführt. Nach einem \phantomsection werden \label im Typ "section*" gespeichert, und daher von autoref als Abschnitte angesehen.

Man kann den Typ vor dem \label-Befehl zurücksetzen, aber das ändert auch das Linkziel:


\documentclass{scrbook}
\usepackage[ngerman]{babel}

\usepackage{hyperref}
\makeatletter
\newcommand\resetHref[1]{\Hy@MakeCurrentHref{#1}}
\makeatother

\begin{document}
\chapter{B}\label{A}
\newpage Seite 2
\phantomsection\label{B}
\newpage Seite 3
\resetHref{chapter.\thechapter}\label{C}
\newpage
\autoref{A}, \autoref{B}, \autoref{C}

\end{document}