
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 , acronym
chamamos \AC@starredtrue
. Podemos usar isso para redefinir \AC@hyperlink
a produção de um hiperlink apenas se uma versão sem estrela for usada. Sem hyperref
\AC@hyperlink
é essencialmente o mesmo que \@secondoftwo
e com hyperref
ele é \let
o \hyperlink
documento inicial. Isso significa que a redefinição deve ser feita com o \AtBeginDocument
gancho.
A definição a seguir permite \AC@hyperlink
o uso \@secondoftwo
em versões com estrela e \hyperlink
sem 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}