Entfernen von Hyperref für mit Akronymen markierte Befehle

Entfernen von Hyperref für mit Akronymen markierte Befehle

Im Akronympaket lassen die mit Sternchen versehenen Befehle \ac* und \acp* das Akronym mit der Option „printonlyused“ aus der Liste der Akronyme weg. Mein Problem ist, dass auf diese Weise eingefügte Akronyme in mit pdflatex erstellten PDFs immer noch Hyperref-Links sind. Ich hätte gerne linkfreie Akronyme, wenn sie mit den mit Sternchen versehenen Befehlen eingefügt werden und somit nicht in der Akronymtabelle stehen. Wie mache ich das?

Im folgenden Beispiel erstellt pdflatex drei Seiten, eine Dummy-Seite 1, die Akronymtabelle auf Seite 2 und zwei auf Seite 3 verwendete Akronyme. Das erste Akronym verweist korrekt auf die Akronymtabelle. Der mit Sternchen markierte Befehl ist jedoch auch ein Hyperref. In meinen Versuchen erzeugten alle mit Sternchen markierten Befehle Hyperref-Links zu Seite 1, was überhaupt nichts mit Akronymen zu tun hat.

\documentclass{article}

\PassOptionsToPackage{printonlyused}{acronym}
\usepackage{acronym}
\usepackage{hyperref}

\begin{document}
the initial page

\newpage
the acronym page

\begin{acronym}
  \acro{AAA}{Aaa Abb Acc}
  \acro{TMN}{This Means Nothing}
\end{acronym}

\newpage
\ac{AAA}
\ac*{TMN}

\end{document}

Antwort1

Für mit Sternchen markierte Versionen seiner Befehle acronymruft auf \AC@starredtrue. Wir können dies verwenden, um neu zu definieren, \AC@hyperlinkdass nur dann ein Hyperlink erstellt wird, wenn eine nicht mit Sternchen markierte Version verwendet wird. Ohne hyperref \AC@hyperlinkist im Wesentlichen dasselbe wie \@secondoftwound mit hyperrefist es \letam \hyperlinkAnfang des Dokuments. Dies bedeutet, dass die Neudefinition mit dem Hook erfolgen sollte \AtBeginDocument.

Die folgende Definition ermöglicht \AC@hyperlinkdie Verwendung \@secondoftwoin mit Sternchen versehenen und \hyperlinkin nicht mit Sternchen versehenen Versionen.

\documentclass{article}

\usepackage[printonlyused]{acronym}
\usepackage{hyperref}

\makeatletter
\AtBeginDocument{%
  \renewcommand*\AC@hyperlink{%
    \ifAC@starred
      \expandafter\@secondoftwo
    \else
      \expandafter\hyperlink
    \fi
  }%
}
\makeatother

\begin{document}
the initial page

\newpage
the acronym page

\begin{acronym}
  \acro{AAA}{Aaa Abb Acc}
  \acro{TMN}{This Means Nothing}
\end{acronym}

\newpage
\ac{AAA}
\ac*{TMN}

\end{document}

Bildbeschreibung hier eingeben

verwandte Informationen