Palabra en mayúscula en el glosario, en minúscula en el texto

Palabra en mayúscula en el glosario, en minúscula en el texto

¿Es posible escribir una palabra en mayúscula en los glosarios pero en minúscula en el texto? Podría usarlo \glslinken 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-extrapaquete 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.

información relacionada