Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

Is it possible to write a word in uppercase in the glossaries but in lowercase in the text? I could use \glslink instead of \gls, but is there no better solution?

Here is an example to clarify what I want:

\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}

This yields:

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
share|improve this question

2 Answers 2

up vote 10 down vote accepted

There is a simple solution. You can set the text that appears in the glossary and the text that appears in the... text separatly.

\newglossaryentry{uppercase}{
    name={Uppercase},
    text={uppercase},
    description={Appears uppercase in the glossary and lowercase in the text}
}
share|improve this answer
    
The most brilliantly simple solution among some really hacky ones elsewhere, ty sir/ma'm :) –  akaIDIOT Mar 8 '13 at 9:56

For future users encountering same trouble:

I ran into the problem myself and found this question and its duplicate. @Nitram's solution was useful in the case of a first word defined as a macro. However:

  • I didn't want to duplicate all the name entries,
  • I did want to keep control of what is capitalized and what isn't (case of mathematical symbols as first characters),
  • I wanted to keep the usual behaviour if nothing is specifically asked.

From an answer by @nicola-talbot there, I found a simple redefinition that does the trick:

\usepackage{mfirstuc}
\renewcommand{\glsnamefont}[2][]{\capitalisewords{#1}\xspace#2}

Examples:

Usage: outputs "First word capitalized" in the glossary, and \gls{firstexample} in-text outputs "first word capitalized":

\newglossaryentry{firstexample}{
  name={first}{word capitalized}
}

This won't work with a macro (will capitalize whole word), hence use of text field:

\newglossaryentry{boite}{
  name={\Boite de valeurs},
  text={\boite de valeurs}
}

I have maths first, normal use of name: both in the glossary and in-text \gls{firstexample} output "$i$-th blabla":

\newglossaryentry{iblabla}{
  name={$i$-th blabla}
}
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.