Removendo hyperref para comandos com estrela de acrônimo

Removendo hyperref para comandos com estrela de acrônimo

No pacote de siglas, os comandos marcados com estrela \ac* e \acp* omitem a sigla da lista de siglas com a opção "printonlyused". Meu problema é que siglas inseridas assim ainda são links de hiperref em PDFs criados com pdflatex. Eu gostaria de ter siglas sem link se elas fossem inseridas com os comandos marcados com estrela e, portanto, não estivessem na tabela de siglas. Como eu faria isso?

No exemplo abaixo, pdflatex cria três páginas, uma página fictícia 1, a tabela de acrônimos na página 2 e dois acrônimos usados ​​na página 3. O primeiro acrônimo está vinculado corretamente à tabela de acrônimos. No entanto, o comando estrelado também é um hiperref. Em meus testes, todos os comandos marcados com estrela produziram links de hiperref para a página 1, o que não tem nada a ver com siglas.

\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}

Responder1

Para versões marcadas com estrela de seus comandos , acronymchamamos \AC@starredtrue. Podemos usar isso para redefinir \AC@hyperlinka produção de um hiperlink apenas se uma versão sem estrela for usada. Sem hyperref \AC@hyperlinké essencialmente o mesmo que \@secondoftwoe com hyperrefele é \leto \hyperlinkdocumento inicial. Isso significa que a redefinição deve ser feita com o \AtBeginDocumentgancho.

A definição a seguir permite \AC@hyperlinko uso \@secondoftwoem versões com estrela e \hyperlinksem estrela.

\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}

insira a descrição da imagem aqui

informação relacionada