A coisa mais estranha aconteceu comigo hoje:
Eu estava procurando uma maneira de vincular uma abreviatura a uma entrada do glossário e encontreiesta resposta. Ao emular no meu código, não funcionou - pdflatex
ignoraria o see
atributo.
Brincando, descobri que isso só acontece quando o glossaries
pacote está incluído no nonumberlist
atributo - algo que não deve ter nenhuma influência nos links.
Exemplo de código mínimo:
\documentclass{article}
\usepackage{hyperref}
\usepackage[nonumberlist, acronym]{glossaries}
\makeglossaries
%%% define the acronym and use the see= option
\newglossaryentry{css}{type=\acronymtype, name={CSS}, description={Cascading Style Sheets}, first={Cascading Style Sheets (CSS)}, see=[Glossary:]{cssg}}
\newglossaryentry{cssg}{name={Cascading Style Sheets},
description={A language for specifying presentation attributed of XML documents.}}
\begin{document}
\glsaddall
% Acronyms
\printglossary[type=\acronymtype]
% Glossary
\printglossary[style=altlist,title=Glossary]
\end{document}
Como posso consertar isso? E por que isso está acontecendo?
Responder1
Este é um comportamento documentado. Citando deo manual:
lista sem númerosEsta opção irá suprimir as listas de números associadas nos glossários (ver também a Secção 5).
veja lista de numeração automáticaSe você suprimir as listas de números comlista sem números, descrito acima, isso também suprimirá qualquer informação de referência cruzada fornecida pela chave see em
\newglossaryentry
ou\glssee
. Se você usarveja lista de numeração automática, a chave see será implementada automaticamentenonumberlist=false
para essa entrada. (Observe que isso não afeta\glssee
.) Para obter mais detalhes, consulte a Seção 8.
Portanto, uma solução possível é definir também seeautonumberlist
. Isso pode ter o efeito indesejado de que a entrada do acrônimo agora obtenha o número da página que você queria evitar nonumberlist
em primeiro lugar:
% arara: pdflatex
% arara: makeglossaries
% arara: pdflatex
\documentclass{article}
\usepackage{hyperref}
\usepackage[nonumberlist,seeautonumberlist,acronym]{glossaries}
\makeglossaries
%%% define the acronym and use the see= option
\newglossaryentry{css}{
type=\acronymtype,
name={CSS},
description={Cascading Style Sheets},
first={Cascading Style Sheets (CSS)},
see=[Glossary:]{cssg}
}
\newglossaryentry{cssg}{
name={Cascading Style Sheets},
description={A language for specifying presentation attributed of XML documents}
}
\begin{document}
\glsaddall
% Acronyms
\printglossary[type=\acronymtype]
% Glossary
\printglossary[style=altlist,title=Glossary]
\end{document}
Uma alternativa é adicionar a referência manualmente à descrição da sigla. Dessa forma, você também não obtém o número da página na entrada do acrônimo:
% arara: pdflatex
% arara: makeglossaries
% arara: pdflatex
\documentclass{article}
\usepackage{hyperref}
\usepackage[nonumberlist,acronym]{glossaries}
\makeglossaries
%%% define the acronym
\newglossaryentry{css}{
type=\acronymtype,
name={CSS},
description={Cascading Style Sheets. \textit{Glossary:} \gls{cssg}},
first={Cascading Style Sheets (CSS)}
}
\newglossaryentry{cssg}{
name={Cascading Style Sheets},
description={A language for specifying presentation attributed of XML documents}
}
\begin{document}
\glsaddall
% Acronyms
\printglossary[type=\acronymtype]
% Glossary
\printglossary[style=altlist,title=Glossary]
\end{document}