Neudefinition von \autoref für Paragraph ohne Nummer Thema ist als GELÖST markiert

Redefinition von Makros, Definition eigener Befehle sowie neuer Umgebungen


Frankthetank
Forum-Anfänger
Forum-Anfänger
Beiträge: 16
Registriert: So 19. Jun 2022, 17:54

Neudefinition von \autoref für Paragraph ohne Nummer

Beitrag von Frankthetank »

Hallo zusammen,

ich habe umnummerierte \paragraph in meinem Dokument.

Wenn man nun mit \autoref diese referenziert, wird die Nummer der vorangehenden \subsubsection ausgegeben. Ich suche nun nach einer Lösung, wo ich den Befehl für \autoref für unnummerierte \paragraph umbauen/neu definieren kann, sodass nicht die Nummerierung der subsubsection ausgegeben wird, sondern der Name des \paragraph, also

"Absatz *Name des referenzierten paragraph*"

und nicht wie aktuell

"Absatz *Nummer subsubsection".

Derselbe Sachverhalt wurde mehr oder weniger auch schon hier vorgetragen:

https://tex.stackexchange.com/questions/476396/redefine-autoref-for-paragraphs/649446?noredirect=1#comment1618574_649446

Über Hilfe hierzu würde ich mich sehr freuen :)
Zuletzt geändert von Frankthetank am Do 30. Jun 2022, 21:43, insgesamt 1-mal geändert.

ich meine ja nur

Re: Neudefinition von \autoref für Paragraph ohne Nummer

Beitrag von ich meine ja nur »

Du suchst nicht \autoref, sondern \nameref. Das dafür benötigte Paket nameref, in dessen Anleitung der Befehl dokumentiert ist, wird von hyperref automatisch geladen:
\documentclass[ngerman]{article}
\usepackage{babel}
\usepackage[svgnames]{xcolor}
\usepackage{mwe}
\usepackage{hyperref}
\begin{document}
\tableofcontents
\section{Ein Verweis}
\dots{} auf: \nameref{dashier}
\blinddocument
\paragraph{Ein Paragraph}
\label{dashier}
\end{document}

Frankthetank
Forum-Anfänger
Forum-Anfänger
Beiträge: 16
Registriert: So 19. Jun 2022, 17:54

Re: Neudefinition von \autoref für Paragraph ohne Nummer

Beitrag von Frankthetank »

Vielen Dank für den Hinweis,

\nameref ist mir bekannt, da ich jedoch von Abbildungen, Tabellen, Überschriften über Gleichungen alles mit \autoref bereits referenziere, würde ich ungern für den Paragraph \nameref nehmen. Zumal dort nur der Titel/Name des Paragraph wiedergegeben wird und kein "Absatz" vorangestellt wird, was ich dann händisch davor schreiben müsste, damit der Titel des Paragraph als Wort nicht alleine im Fließtext steht.

Es sei denn, ich kann \nameref so umdefinieren, dass es mir immer das Wort "Absatz" voranstellen tut, was man dann aber wieder mit \autoref für den Paragraph ebenfalls machen könnte. Ich weiß nur nicht wie ich \renewcaptionname für \paragraphautorefname anpassen müsste.

Benutzeravatar
u_fischer
Forum-Meister
Forum-Meister
Beiträge: 4266
Registriert: Do 22. Nov 2012, 11:09
Kontaktdaten:

Re: Neudefinition von \autoref für Paragraph ohne Nummer

Beitrag von u_fischer »

\autoref ist an den Counternamen gebunden (den es aus dem Destinationname extrahiert). Da dein Paragraph keinen Counter erhöht, hat \autoref keine Chance. Außerdem gibt \autoref die Nummer aus. Das alles umzubiegen, ist ausnehmend mühselig. Definiere dir einen \pararef Befehl oder so was.

ich meine ja nur

Re: Neudefinition von \autoref für Paragraph ohne Nummer

Beitrag von ich meine ja nur »

Frankthetank hat geschrieben:
Do 30. Jun 2022, 21:43
Es sei denn, ich kann \nameref so umdefinieren, dass es mir immer das Wort "Absatz" voranstel[…]t
\documentclass[ngerman]{article}
\usepackage{babel}
\usepackage{mwe}
\usepackage{hyperref}
\newcommand*{\pararef}{%
  Paragraph \nameref%
}
\begin{document}
\tableofcontents
\section{Ein Verweis}
\dots{} auf: \pararef{dashier}, oder ohne Link: \pararef*{dashier}.
\blinddocument
\paragraph{Ein Beispielparagraph}\label{dashier}
\blindtext
\end{document}
Wie Ulrike schon sagte, \autoref umbiegen wäre extrem aufwändig. Den Präfix (im Beispiel „Paragraph”) kann man mit Hilfe von cleveref ggf. auch noch automatisieren:
\documentclass[ngerman]{article}
\usepackage{babel}
\usepackage[svgnames]{xcolor}
\usepackage{mwe}
\usepackage{hyperref}
\usepackage{cleveref}% Nach hyperref laden!
\NewDocumentCommand{\cnameref}{sm}{%
  \namecref{#2} \IfBooleanTF{#1}{\nameref*{#2}}{\nameref{#2}}%
}
\begin{document}
\tableofcontents
\section{Ein Verweis}
\dots{} auf: \cnameref{dashier}, oder ohne Link: \cnameref*{dashier}
\blinddocument
\paragraph{Ein Paragraph}
\label{dashier}
\end{document}
Wie man dabei die Ausgabe von \namecref ändern kann, ist der cleveref-Anleitung zu entnehmen.

Frankthetank
Forum-Anfänger
Forum-Anfänger
Beiträge: 16
Registriert: So 19. Jun 2022, 17:54

Re: Neudefinition von \autoref für Paragraph ohne Nummer

Beitrag von Frankthetank »

Danke nochmals für den Input. Angesichts der Tatsache, dass der Umbau von \autoref zu umständlich wäre, habe ich mich an den Vorschlägen orientiert und einen eigenen Befehl \pararef kreiert:
\newcommand{\pararef}[1]{Absatz \textit{\nameref{#1}}}
Um die Autovervollständigung in Verbindung mit Labels nutzen zu können, habe ich hierfür eine .cwl-Datei erstellt mit dem Inhalt
\pararef{key}#r

Frankthetank
Forum-Anfänger
Forum-Anfänger
Beiträge: 16
Registriert: So 19. Jun 2022, 17:54

Re: Neudefinition von \autoref für Paragraph ohne Nummer

Beitrag von Frankthetank »

Ich muss nochmal nachhaken :D

Wenn ich einen \paragraph referenziere, der ein Symbol/Buchstabe/etc. im Mathemodus enthält, der mit \bm fett hervorgehoben wird wie der Paragraph selbst, wird bei der Referenz der Teil im Mathemodus ebenfalls wieder fett ausgegeben, während der Rest wie gewünscht kursiv geschrieben wird. Wie kann ich dass via \bm fett geschriebene bei der Referenz "deaktivieren", sodass es wie der Rest ausschaut?

Danke vorab schonmal ;)

Beispiel:
\documentclass[ngerman]{article}
\usepackage{babel}
\usepackage{mwe}
\usepackage{hyperref}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{bm}

\newcommand{\pararef}[1]{Absatz \textit{\nameref{#1}}}

\begin{document}

\paragraph{Paragraph mit $\bm{\sigma}$ als Beispiel}
\label{para:Test}

Das ist die Referenz von \pararef{para:Test}, dabei wird $\sigma$ fett ausgegeben, was es nicht soll.

\end{document}

Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2958
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Re: Neudefinition von \autoref für Paragraph ohne Nummer

Beitrag von KOMA »

Verwende das optionale Argument von \paragraph:
\documentclass[ngerman]{article}
\usepackage{babel}
\usepackage{mwe}
\usepackage{hyperref}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{bm}

\newcommand{\pararef}[1]{Absatz \textit{\nameref{#1}}}

\begin{document}

\paragraph[Paragraph mit $\sigma$ als Beispiel]{Paragraph mit $\bm{\sigma}$ als Beispiel}
\label{para:Test}

Das ist die Referenz von \pararef{para:Test}, dabei wird $\sigma$ nicht fett ausgegeben.

\end{document}
Siehe auch: Wie Mathematik in Überschriften fett gesetzt werden kann. Auch, wenn ich das dort mit Bezug auf KOMA-Script erklärt habe, bleibt die grundsätzliche Problematik gleich bzw. ist mit den Standardklassen allenfalls noch unangenehmer.

Frankthetank
Forum-Anfänger
Forum-Anfänger
Beiträge: 16
Registriert: So 19. Jun 2022, 17:54

Re: Neudefinition von \autoref für Paragraph ohne Nummer

Beitrag von Frankthetank »

Stabil, warum kam ich da selbst nicht drauf :roll:

Ich nutze das optionale Argument zu Hauf für \chapter, \section, etc. mit Quellenangaben, sodass diese nicht in Verzeichnisses mit auftauchen. Aber dieses in Verbindung mit explizit fett gedruckten Symbolen zu verwenden kam mir irgendwie nicht in den Sinn. Den Wald vor lauter Bäumen und so...

Daher vielen Dank, vor allem auch für die schnelle Antwort :wink:

Antworten