![Palavra maiúscula no glossário, minúscula no texto](https://rvso.com/image/254682/Palavra%20mai%C3%BAscula%20no%20gloss%C3%A1rio%2C%20min%C3%BAscula%20no%20texto.png)
É possível escrever uma palavra em maiúscula nos glossários mas em minúscula no texto? Eu poderia usar \glslink
em vez de \gls
, mas não há solução melhor?
Aqui está um exemplo para esclarecer o que eu quero:
\documentclass[a4paper]{article}
\usepackage{hyperref}
\usepackage{glossaries}
\makeglossaries
\newglossaryentry{lowercase}{name={lowercase}, description={In the glossary, this word should be capitalized}}
\newglossaryentry{uppercase}{name={Uppercase}, description={This word is capitalized}}
\begin{document}
Should both be lowercase: \gls{lowercase}, \gls{uppercase}.
Workaround: \gls{lowercase}, \glslink{uppercase}{uppercase}.
\printglossaries
\end{document}
Isso produz:
Should both be lowercase: lowercase, Uppercase.
Workaround: lowercase, uppercase.
Glossary
lowercase In the glossary, this word should be capitalized. 1
Uppercase This word is capitalized. 1
Responder1
Há uma solução simples. Você pode definir o texto que aparece no glossário e o texto que aparece no... texto separadamente.
\newglossaryentry{uppercase}{
name={Uppercase},
text={uppercase},
description={Appears uppercase in the glossary and lowercase in the text}
}
Responder2
Para futuros usuários que encontrarem o mesmo problema:
Eu mesmo encontrei o problema e encontrei esta pergunta e suaduplicado. A solução da @Nitram foi útil no caso de uma primeira palavra definida como macro. No entanto:
- Eu não queria duplicar todas as entradas de nomes,
- Eu queria manter o controle do que está em maiúscula e do que não está (caso de símbolos matemáticos como primeiros caracteres),
- Queria manter o comportamento habitual caso nada fosse solicitado especificamente.
De uma resposta de @nicola-talbotlá, encontrei uma redefinição simples que resolve o problema:
\usepackage{mfirstuc}
\renewcommand{\glsnamefont}[2][]{\capitalisewords{#1}\xspace#2}
Exemplos:
Uso: gera "Primeira palavra em maiúscula" no glossário, e \gls{firstexample} no texto gera "primeira palavra em maiúscula":
\newglossaryentry{firstexample}{
name={first}{word capitalized}
}
Isso não funcionará com uma macro (colocará a palavra inteira em maiúscula), daí o uso do campo de texto:
\newglossaryentry{boite}{
name={\Boite de valeurs},
text={\boite de valeurs}
}
Eu tenho matemática primeiro, uso normal do nome: tanto no glossário quanto no texto \gls{firstexample} produz "$i$-th blabla":
\newglossaryentry{iblabla}{
name={$i$-th blabla}
}
Responder3
eu useiA resposta de Nicola, já que nenhuma das respostas aqui funcionou para mim.
O glossaries-extra
pacote permite configurar facilmente a capitalização com firstuc
. Não tive que alterar muito meu código de visualização, nem chamadas. Basta alterar o pacote e adicionar o seguinte código:
\setglossarystyle{long}
\setabbreviationstyle[acronym]{long-short}
\glssetcategoryattribute{acronym}{glossdesc}{firstuc}
Responder4
É possível usar letras maiúsculas e minúsculas no texto; \Gls{}
dará a palavra ou termo em maiúscula, como no início da frase. Em outros locais, \gls{}
também pode ser usado para o formato minúsculo. Consulte a seção 3 doGuia do iniciante. Não tenho certeza se isso aborda exatamente a pergunta feita, mas é um uso comum para o qual as pessoas podem encontrar essa pergunta.