¿Es posible escribir una palabra en mayúscula en los glosarios pero en minúscula en el texto? Podría usarlo \glslink
en lugar de \gls
, pero ¿no hay una solución mejor?
Aquí hay un ejemplo para aclarar lo que quiero:
\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}
Esto produce:
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
Respuesta1
Existe una solución simple. Puede configurar el texto que aparece en el glosario y el texto que aparece en... el texto por separado.
\newglossaryentry{uppercase}{
name={Uppercase},
text={uppercase},
description={Appears uppercase in the glossary and lowercase in the text}
}
Respuesta2
Para futuros usuarios que encuentren el mismo problema:
Me encontré con el problema yo mismo y encontré esta pregunta y suduplicar. La solución de @Nitram fue útil en el caso de una primera palabra definida como macro. Sin embargo:
- No quería duplicar todas las entradas de nombres,
- Quería mantener el control de lo que está en mayúscula y lo que no (caso de símbolos matemáticos como primeros caracteres),
- Quería mantener el comportamiento habitual si no se pregunta nada específicamente.
De una respuesta de @nicola-talbotallá, encontré una redefinición simple que funciona:
\usepackage{mfirstuc}
\renewcommand{\glsnamefont}[2][]{\capitalisewords{#1}\xspace#2}
Ejemplos:
Uso: genera "Primera palabra en mayúscula" en el glosario y \gls{firstexample} en el texto genera "primera palabra en mayúscula":
\newglossaryentry{firstexample}{
name={first}{word capitalized}
}
Esto no funcionará con una macro (pondrá en mayúscula toda la palabra), de ahí el uso del campo de texto:
\newglossaryentry{boite}{
name={\Boite de valeurs},
text={\boite de valeurs}
}
Primero tengo matemáticas, uso normal del nombre: tanto en el glosario como en el texto \gls{firstexample} salida "$i$-th blabla":
\newglossaryentry{iblabla}{
name={$i$-th blabla}
}
Respuesta3
he usadoLa respuesta de Nicola, ya que ninguna de las respuestas aquí funcionó para mí.
El glossaries-extra
paquete permite configurar fácilmente las mayúsculas con firstuc
. No tuve que cambiar mucho de mi código de vistas previas, ni de llamadas. Simplemente cambie el paquete y agregue el siguiente código:
\setglossarystyle{long}
\setabbreviationstyle[acronym]{long-short}
\glssetcategoryattribute{acronym}{glossdesc}{firstuc}
Respuesta4
Es posible utilizar tanto mayúsculas como minúsculas en el texto; \Gls{}
dará la palabra o término en mayúscula, como al principio de la oración. En otras ubicaciones, \gls{}
también se puede utilizar para la forma minúscula. Véase la sección 3 de laGuía para principiantes. No estoy seguro de si esto responde exactamente a la pregunta formulada, pero es un uso común por el cual la gente puede encontrar esta pregunta.