goLaTeX - Mein LaTeX-Forum

Mein LaTeX-Forum


Login  | Registrieren
Direktlinks:
Zuletzt aktive Beiträge
Unbeantwortete Beiträge
[Erweitert]

Forenstatistik:
Beiträge: 97668
Top-Poster: Johannes_B (5052)

Wir begrüßen unseren neuesten Benutzer davidebond.

Links:


Mit Unterstützung von DANTE e.V.: Deutschsprachige Anwendervereinigung TeX. Danke den Mitgliedern!





Forum
      Option
[Erweitert]
  • Diese Seite weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Querverweise mit \autoref

 

HenningSch
Forum-Newbie
Forum-Newbie

Beiträge: 6
Anmeldedatum: 30.04.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.05.2019, 16:52     Titel: Querverweise mit \autoref
  Antworten mit Zitat      
Hallo zusammen,

ich möchte die Bezeichnung der Querverweise mit \autoref ändern, wenn auf ein Kapitel des Anhangs verwiesen wird. Ich habe schon diese Anweisungen gefunden:
Code • Öffne in Overleaf

\addto\extrasngerman{%
   \renewcommand{\sectionautorefname}{Kapitel}%
   \let\subsectionautorefname\sectionautorefname%
   \let\subsubsectionautorefname\sectionautorefname%
   \let\subsubsubsectionautorefname\sectionautorefname%
}
 

Wie ihr sicher an dem Codeschnipsel schon gesehen habt, brauche ich auch eine 4. Ebene im Inhaltsverzeichnis (inwiefern das für das Problem relevant ist, weiß ich nicht, daher lasse ich es mal drin.)
Das Problem, vor dem ich jetzt stehe, ist, dass ich Kapitel
vor dem Anhang mit "Kapitel"
in dem Anhang mit "Anhang"
nach dem Anhang wieder mit "Kapitel"
referenzieren soll.
Ich habe ein kleines Beispiel gemacht, das die Problematik, denke ich, gut verdeutlicht und hoffe ihr könnt mir helfen:
Code • Öffne in Overleaf

\documentclass[12pt]{scrartcl}
\usepackage[ngerman]{babel} % Silbentrennung
\usepackage[utf8]{inputenc} % Utf8-Kodierung für Umlaute usw
\usepackage[T1]{fontenc} % Ligaturen, richtige Umlaute im PDF
\usepackage{blindtext}
\usepackage{hyperref}

% 4. Ebene der Überschriften
\setcounter{secnumdepth}{4}
\setcounter{tocdepth}{4}
\setkomafont{sectionentrypagenumber}{\rmfamily\normalfont}

\RedeclareSectionCommands[
level=5,
toclevel=5,
increaselevel=1
]{paragraph,subparagraph}

\DeclareNewSectionCommand[
style=section,
level=4,
counterwithin=subsubsection,
indent=0pt,
beforeskip=-3.25ex plus -1ex minus -0.2ex,
afterskip=1.5ex plus .2ex,
font=\normalfont\bfseries\large,
toclevel=4,
tocindent=7em,
tocnumwidth=4.1em
]{subsubsubsection}

% Anhangsverzeichnis (nach https://komascript.de/comment/5578#comment-5578)
\makeatletter
\DeclareNewTOC[owner=\jobname,listname={Anhang},name={Anhang}]{atoc}
\AfterTOCHead[atoc]{\let\if@dynlist\if@tocleft}
\newcommand*{\useappendixtoc}{%
   \renewcommand*{\ext@toc}{atoc}%
   \scr@ifundefinedorrelax{hypersetup}{}{%
      \hypersetup{bookmarkstype=atoc}%
   }%
}
\setuptoc{atoc}{totoc}

\newcommand*{\usestandardtoc}{%
   \renewcommand*{\ext@toc}{toc}%
   \scr@ifundefinedorrelax{hypersetup}{}{%
      \hypersetup{bookmarkstype=toc}%
   }%
}
\makeatother

\usepackage{xpatch}
\xapptocmd\appendix{%
   \listofatocs%
   \useappendixtoc%
   % Katitelnummerierungen ändern
   \renewcommand*{\thesubsection}{\Alph{section}.\Roman{subsection}}%
   \renewcommand*{\thesubsubsection}{\Alph{section}.\Roman{subsection}.\alph{subsubsection}}%
   \renewcommand*{\thesubsubsubsection}{\Alph{section}.\Roman{subsection}.\alph{subsubsection}.\roman{subsubsubsection}}%
   \newpage%
}{}{}

\newcommand{\postappendix
}{%
   \usestandardtoc%
   % Katitelnummerierungen ändern
   \renewcommand{\thesection}{\arabic{section}}%
   \renewcommand{\thesubsection}{\arabic{section}.\arabic{subsection}}%
   \renewcommand{\thesubsubsection}{\arabic{section}.\arabic{subsection}.\arabic{subsubsection}}%
   \renewcommand{\thesubsubsubsection}{\arabic{section}.\arabic{subsection}.\arabic{subsubsection}.\arabic{subsubsubsection}}%
}

% Autorefbezeichnung ändern
\addto\extrasngerman{%
   \renewcommand{\sectionautorefname}{Kapitel}%
   \let\subsectionautorefname\sectionautorefname%
   \let\subsubsectionautorefname\sectionautorefname%
   \let\subsubsubsectionautorefname\sectionautorefname%
}

\newcommand{\reftab}{%
\begin{tabular}{|p{0.3\linewidth}|p{0.3\linewidth}|p{0.3\linewidth}|}
   \hline
   \textbf{Ebene}   & \textbf{erwartet} & \textbf{tatsächlich}          \\ \hline
   section          & Kapitel 1         & \autoref{sec:Kapitel 1}       \\ \hline
   subsection       & Kapitel 1.1       & \autoref{sec:Kapitel 1.1}     \\ \hline
   subsubsection    & Kapitel 1.1.1     & \autoref{sec:Kapitel 1.1.1}   \\ \hline
   subsubsubsection & Kapitel 1.1.1.1   & \autoref{sec:Kapitel 1.1.1.1} \\ \hline
   section          & Anhang A          & \autoref{sec:Anhang A}        \\ \hline
   subsection       & Anhang A.I        & \autoref{sec:Anhang A.I}      \\ \hline
   subsubection     & Anhang A.I.a      & \autoref{sec:Anhang A.I.a}    \\ \hline
   subsubsubection  & Anhang A.I.a.i    & \autoref{sec:Anhang A.I.a.i}  \\ \hline
   section          & Kapitel 2         & \autoref{sec:Kapitel 2}       \\ \hline
   subsection       & Kapitel 2.1       & \autoref{sec:Kapitel 2.1}     \\ \hline
   subsubsection    & Kapitel 2.1.1     & \autoref{sec:Kapitel 2.1.1}   \\ \hline
   subsubsubsection & Kapitel 2.1.1.1   & \autoref{sec:Kapitel 2.1.1.1} \\ \hline
\end{tabular}
}

\begin{document}
\tableofcontents
\newpage

\section{Kapitel 1}\label{sec:Kapitel 1}
\reftab
\subsection{Kapitel 1.1}\label{sec:Kapitel 1.1}
\reftab
\subsubsection{Kapitel 1.1.1}\label{sec:Kapitel 1.1.1}
\reftab
\subsubsubsection{Kapitel 1.1.1.1}\label{sec:Kapitel 1.1.1.1}
\reftab
\newpage

\appendix
\section{Anhang A}\label{sec:Anhang A}
\reftab
\subsection{Anhang A.I}\label{sec:Anhang A.I}
\reftab
\subsubsection{Anhang A.I.a}\label{sec:Anhang A.I.a}
\reftab
\subsubsubsection{Anhang A.I.a.i}\label{sec:Anhang A.I.a.i}
\reftab
\newpage

\postappendix
\section{Post-Anhang 2}\label{sec:Kapitel 2}
\reftab
\subsection{Post-Anhang 2.1}\label{sec:Kapitel 2.1}
\reftab
\subsubsection{Post-Anhang 2.1.1}\label{sec:Kapitel 2.1.1}
\reftab
\subsubsubsection{Post-Anhang 2.1.1.1}\label{sec:Kapitel 2.1.1.1}
\reftab
\end{document}
 

Ich habe einmal versucht die Bezeichnung beim Umschalten der Verzeichnisse wieder zu ändern (ohne Erfolg):
Code • Öffne in Overleaf

\usepackage{xpatch}
\xapptocmd\appendix{%
   \listofatocs%
   \useappendixtoc%
   % Katitelnummerierungen ändern
   \renewcommand*{\thesubsection}{\Alph{section}.\Roman{subsection}}%
   \renewcommand*{\thesubsubsection}{\Alph{section}.\Roman{subsection}.\alph{subsubsection}}%
   \renewcommand*{\thesubsubsubsection}{\Alph{section}.\Roman{subsection}.\alph{subsubsection}.\roman{subsubsubsection}}%
   \newpage%
   % Autorefbezeichnung ändern
   \addto\extrasngerman{%
      \renewcommand{\sectionautorefname}{Anhang}%
      \let\subsectionautorefname\sectionautorefname%
      \let\subsubsectionautorefname\sectionautorefname%
      \let\subsubsubsectionautorefname\sectionautorefname%
   }
}{}{}
 
Private Nachricht senden Benutzer-Profile anzeigen

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.05.2019, 17:59     Titel:
  Antworten mit Zitat      
Hüstel: So etwas wie nach dem Anhang gibt es eigentlich nicht. Deshalb heißt es Anhang und nicht Zwischenhang.

Außerdem hat scrartcl eigentlich gar keine Kapitel …

Aber, wenn das so sein soll, dann probier eben mal:
Code • Öffne in Overleaf
\documentclass[12pt]{scrartcl}
\usepackage[ngerman]{babel} % Silbentrennung
\usepackage[utf8]{inputenc} % Utf8-Kodierung für Umlaute usw
\usepackage[T1]{fontenc} % Ligaturen, richtige Umlaute im PDF
\usepackage{blindtext}
\usepackage{hyperref}

% 4. Ebene der Überschriften
\setcounter{secnumdepth}{4}
\setcounter{tocdepth}{4}
\setkomafont{sectionentrypagenumber}{\rmfamily\normalfont}

\RedeclareSectionCommands[
level=5,
toclevel=5,
increaselevel=1
]{paragraph,subparagraph}

\DeclareNewSectionCommand[
style=section,
level=4,
counterwithin=subsubsection,
indent=0pt,
beforeskip=-3.25ex plus -1ex minus -0.2ex,
afterskip=1.5ex plus .2ex,
font=\normalfont\bfseries\large,
toclevel=4,
tocindent=7em,
tocnumwidth=4.1em
]{subsubsubsection}

% Anhangsverzeichnis (nach https://komascript.de/comment/5578#comment-5578)
\makeatletter
\DeclareNewTOC[owner=\jobname,listname={Anhang},name={Anhang}]{atoc}
\AfterTOCHead[atoc]{\let\if@dynlist\if@tocleft}
\newcommand*{\useappendixtoc}{%
   \renewcommand*{\ext@toc}{atoc}%
   \scr@ifundefinedorrelax{hypersetup}{}{%
      \hypersetup{bookmarkstype=atoc}%
   }%
}
\setuptoc{atoc}{totoc}

\newcommand*{\usestandardtoc}{%
   \renewcommand*{\ext@toc}{toc}%
   \scr@ifundefinedorrelax{hypersetup}{}{%
      \hypersetup{bookmarkstype=toc}%
   }%
}
\makeatother

\usepackage{xpatch}
\makeatletter
\xpatchcmd{\hyper@makecurrent}{%
  \edef\Hy@param{#1}%
  \ifx\Hy@param\Hy@chapterstring
    \let\Hy@param\Hy@chapapp
  \fi
}{%
  \let\Hy@param\Hy@chapapp
}{}{\undefined}    
\makeatother

\xapptocmd\appendix{%
   \listofatocs%
   \useappendixtoc%
   % Katitelnummerierungen ändern
   \renewcommand*{\thesubsection}{\thesection.\Roman{subsection}}%
   \renewcommand*{\thesubsubsection}{\thesubsection.\alph{subsubsection}}%
   \renewcommand*{\thesubsubsubsection}{\thesubsubsection.\roman{subsubsubsection}}%
   \newpage%
}{}{}

\makeatletter
\newcommand{\postappendix
}{%
   \usestandardtoc%
   % Katitelnummerierungen ändern
   \renewcommand{\thesection}{\arabic{section}}%
   \renewcommand{\thesubsection}{\thesection.\arabic{subsection}}%
   \renewcommand{\thesubsubsection}{\thesubsection.\arabic{subsubsection}}%
   \renewcommand{\thesubsubsubsection}{\thesubsubsection.\arabic{subsubsubsection}}%
  \xdef\Hy@chapapp{\Hy@chapterstring}%  
}
\makeatother

% Autorefbezeichnung ändern
\addto\extrasngerman{%
   \def\sectionautorefname{Kaptitel}%
   \def\subsectionautorefname{\sectionautorefname}%
   \def\subsubsectionautorefname{\sectionautorefname}%
   \def\subsubsubsectionautorefname{\sectionautorefname}%
}

\newcommand{\reftab}{%
\begin{tabular}{|p{0.3\linewidth}|p{0.3\linewidth}|p{0.3\linewidth}|}
   \hline
   \textbf{Ebene}   & \textbf{erwartet} & \textbf{tatsächlich}          \\ \hline
   section          & Kapitel 1         & \autoref{sec:Kapitel 1}       \\ \hline
   subsection       & Kapitel 1.1       & \autoref{sec:Kapitel 1.1}     \\ \hline
   subsubsection    & Kapitel 1.1.1     & \autoref{sec:Kapitel 1.1.1}   \\ \hline
   subsubsubsection & Kapitel 1.1.1.1   & \autoref{sec:Kapitel 1.1.1.1} \\ \hline
   section          & Anhang A          & \autoref{sec:Anhang A}        \\ \hline
   subsection       & Anhang A.I        & \autoref{sec:Anhang A.I}      \\ \hline
   subsubection     & Anhang A.I.a      & \autoref{sec:Anhang A.I.a}    \\ \hline
   subsubsubection  & Anhang A.I.a.i    & \autoref{sec:Anhang A.I.a.i}  \\ \hline
   section          & Kapitel 2         & \autoref{sec:Kapitel 2}       \\ \hline
   subsection       & Kapitel 2.1       & \autoref{sec:Kapitel 2.1}     \\ \hline
   subsubsection    & Kapitel 2.1.1     & \autoref{sec:Kapitel 2.1.1}   \\ \hline
   subsubsubsection & Kapitel 2.1.1.1   & \autoref{sec:Kapitel 2.1.1.1} \\ \hline
\end{tabular}
}

\begin{document}
\tableofcontents
\newpage

\section{Kapitel 1}\label{sec:Kapitel 1}
\reftab
\subsection{Kapitel 1.1}\label{sec:Kapitel 1.1}
\reftab
\subsubsection{Kapitel 1.1.1}\label{sec:Kapitel 1.1.1}
\reftab
\subsubsubsection{Kapitel 1.1.1.1}\label{sec:Kapitel 1.1.1.1}
\reftab
\newpage

\appendix
\section{Anhang A}\label{sec:Anhang A}
\reftab
\subsection{Anhang A.I}\label{sec:Anhang A.I}
\reftab
\subsubsection{Anhang A.I.a}\label{sec:Anhang A.I.a}
\reftab
\subsubsubsection{Anhang A.I.a.i}\label{sec:Anhang A.I.a.i}
\reftab
\newpage

\postappendix
\section{Post-Anhang 2}\label{sec:Kapitel 2}
\reftab
\subsection{Post-Anhang 2.1}\label{sec:Kapitel 2.1}
\reftab
\subsubsection{Post-Anhang 2.1.1}\label{sec:Kapitel 2.1.1}
\reftab
\subsubsubsection{Post-Anhang 2.1.1.1}\label{sec:Kapitel 2.1.1.1}
\reftab
\end{document}
 

Erklärung: hyperref verwendet \Hy@param zur Bestimmung u. a. des Namens der Ebene. Normalerweise wird Aufwand getrieben, um festzustellen, ob aktuell die aktuelle Ebene \Hy@chapterstring ist, um dann als Name nicht mehr den eigentlichen Namen der Ebene (Argument 1 von \hyper@makecurrent) zu verwenden sondern \Hy@chapapp.

Es könnte allerdings sein, dass jetzt auch Abbildungen und Tabellen als Anhang bezeichnet werden. Das habe ich nicht ausprobiert. In dem Fall muss man an der Stelle doch eine Fallunterscheidung verwenden, die dann aber etwas komplexer sein muss, als die normalerweise von hyperref verwendete.

HenningSch
Forum-Newbie
Forum-Newbie

Beiträge: 6
Anmeldedatum: 30.04.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.05.2019, 08:29     Titel:
  Antworten mit Zitat      
Anonymous hat Folgendes geschrieben:
Hüstel: So etwas wie nach dem Anhang gibt es eigentlich nicht. Deshalb heißt es Anhang und nicht Zwischenhang.
Nach dem Anhang kommen Dinge, die "inhaltlich nicht mehr zur Arbeit gehören, wie z.B. Erklärungen, Literaturverzeichnis, Physischer Datenträger, etc."

Anonymous hat Folgendes geschrieben:
Es könnte allerdings sein, dass jetzt auch Abbildungen und Tabellen als Anhang bezeichnet werden.
Habe ich getestet und ja. Je nachdem wo sie stehen werden sie als Kapitel oder Anhang bezeichnet. Da ich nicht glaube, dass ich eine Referenz zu den Post-Anhangs-Kapiteln brauchen werde, da sie "inhaltlich nicht dazu gehören", würde es auch reichen, dass nur die Unterkapitel des Anhangs als Anhang referenziert werden.
Vor dem Anhang funktioniert es ja wie erwartet. Als Workaround hätte ich für alles danach sonst das hier:
Code • Öffne in Overleaf
\newcommand{\refanhang}[1]{\hyperref[#1]{Anhang \ref{#1}}}

Anonymous hat Folgendes geschrieben:
Außerdem hat scrartcl eigentlich gar keine Kapitel …
Ich habe bisher nur kurze Ausarbeitungen geschrieben (5-15 Seiten Inhalt) und einen Crashkurs bekommen Da haben wir diese Vorlage erstellt. Als ich das Ganze testweise auf scrbook ging das Ganze in die Brüche und ich habe mit scrartcl weiter gemacht. Welche Klasse würdest Du denn empfehlen? Die Arbeit soll etwa 50 Seiten Inhalt (=zwischen Einleitung und Fazit) haben, gebunden werden und nur einseitig bedruckt sein. scrreprt?
Private Nachricht senden Benutzer-Profile anzeigen

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.05.2019, 13:48     Titel:
  Antworten mit Zitat      
Wenn es Kapitel haben soll scrreprt. Wenn es Vorder-, Haupt- und Hinterteil haben soll, sogar scrbook (ggf. mit oneside). Von den tatsächlich existierenden Kapiteln abgesehen unterscheiden sich scrartcl und scrreprt bzw. scrbook nur wenig und hauptsächlich in Voreinstellungen.

Neues Thema eröffnen Neue Antwort erstellen



Options and Permissions
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen
.

goLaTeX ist Teil der goForen
goForen.de goMATLAB.de goLaTeX.de


  Datenschutzerklärung | Impressum | FAQ | goLaTeX RSS Button RSS-Feed

Copyright © 2008 - 2019 goLaTeX.de