\nameref unterbricht die Sternversionen von Abschnitten/Absätzen, wenn titlesec geladen wird

\nameref unterbricht die Sternversionen von Abschnitten/Absätzen, wenn titlesec geladen wird

\namerefbricht für die starVersionen von ab section, paragraphwenn titlesecgeladen wird. Ich habe ein Dokument, das Absätze standardmäßig nummeriert, aber ich habe einige, die ich nicht nummerieren möchte, auf die ich aber verweisen möchte. Diese sind mit gekennzeichnet. \paragraph*Wenn das titlesecPaket jedoch gleichzeitig geladen wird, wird namerefeine leere Zeichenfolge angezeigt (das Linkfeld von Hyperref ist weiterhin sichtbar).

MWE:

\documentclass[12pt]{article}
\usepackage[sf]{titlesec} %comment this out and it works fine.
\usepackage{hyperref}
\begin{document}
\section{Sections}
\label{sec}
This is \nameref{sec}
\paragraph{A named Paragraph}
\label{par}
This is \nameref{par}
\paragraph*{A starred named Paragraph}
\label{par:star}
This is \nameref{par:star}
\end{document}

Ich vermute, dass Titlesec diesen Defekt bei ALLEN Star-Varianten von Abschnittsbefehlen verursacht, habe dies aber nicht getestet. Für mich paragraph*ist das nur relevant, aber ein Fix für alle Varianten wäre das Beste.

Ich habe so eine Ahnung, dass es damit zusammenhängen könnte:https://tex.stackexchange.com/a/6658/19326Dies geht jedoch bei weitem über mein Latex-Wissen hinaus und ist für mich einfach „Magie“.

Antwort1

Fügen Sie Ihrer Präambel Folgendes hinzu:

\makeatletter
\def\ttl@useclass#1#2{%
  \@ifstar
    {\ttl@labeltrue\@dblarg{#1{#2}}}% {\ttl@labelfalse#1{#2}[]}%
    {\ttl@labeltrue\@dblarg{#1{#2}}}}
\makeatother

Dies ermöglicht die Verarbeitung der regulären Argumente \<section>[<ToC>]{<regular>}mit der Sektionseinheit \<section>. Zusätzlich \ttl@labeltruefügt die Einstellung die entsprechendenhyperrefAnker.

Bildbeschreibung hier eingeben

\documentclass[12pt]{article}
\usepackage[sf]{titlesec} %comment this out and it works fine.
\usepackage{hyperref}
\makeatletter
\def\ttl@useclass#1#2{%
  \@ifstar
    {\ttl@labelfalse\@dblarg{#1{#2}}}% {\ttl@labelfalse#1{#2}[]}%
    {\ttl@labeltrue\@dblarg{#1{#2}}}}
\makeatother
\begin{document}
\section{Sections}
\label{sec}
This is \nameref{sec}
\paragraph{A named Paragraph}
\label{par}
This is \nameref{par}
\paragraph*{A starred named Paragraph}
\label{par:star}
This is \nameref{par:star}
\end{document}

Nicht ausführlich getestet.

verwandte Informationen