TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

If I write:


LaTeX generates

axioms, 184
    ZermeloFraenkel, 203, 208

How do I stop the hyphen from disappearing?




(also (MiKTeX version 2.9); compiled via WinEdt's pdftexify option)

share|improve this question
up vote 4 down vote accepted

You're using the "en-dash" character, Unicode U+2013, without setting the input to interpret Unicode as UTF-8. This is different from a hyphen.

By compiling your code, the contents of the .idx file is


where I use the "byte" representation for non ASCII (0-127) characters. The .ind file contains


  \item axioms
    \subitem Zermelo<E2><80><93>Fraenkel, 1


and, not so surprisingly, the .log file reports

Missing character: There is no <E2> in font cmr10!
Missing character: There is no <80> in font cmr10!
Missing character: There is no <93> in font cmr10!

Adding \usepackage[utf8]{inputenc} corrects the problem:

enter image description here

share|improve this answer

Seems to be a code problem with your given - in your code snippet.

The following MWE compiles without problems (errors and warnings) on my system and gives the print you want:


\usepackage{makeidx}   % load package
\makeindex             % make file(s) *.idx

Test\index{Test} Text\index{Text|textbf} 
test\index{axioms!Zermelo-Fraenkel} % - should be printed

\printindex            % print index here

(MiKTeX version 2.9)

share|improve this answer
Ah... by 'code problem' , I thought you meant, 'a problem with your code'. Just figured it out. Thank you. – Mohan Oct 4 '12 at 10:08

Your Answer


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.