98

This is with ref to my previous question Package clash in multilingual report.

\documentclass[11pt,table,a4paper]{article}
\usepackage{lmodern}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\usepackage{CJKutf8}
\usepackage[english,russian]{babel}

\newenvironment{SChinese}{%
 \CJKfamily{gbsn}%
 \CJKtilde
 \CJKnospace}{}

 \begin{document}
 \selectlanguage{russian}
  Это мой первый многоязычный докладе.
  Инфантильный гипертрофический стеноз привратника - это серьёзное 
 \selectlanguage{english}
  This is my first multilingual report.

 \begin{CJK}{UTF8}{}
  \begin{SChinese}
    这是我的第一个多语种的报告。
  \end{SChinese}
  \end{CJK}

  \end{document}

when I try to compile it, I get following error message.

LaTeX Warning: Unused global option(s):
    [table].

(./data.aux
(/usr/local/texlive/2011/texmf-dist/tex/latex/cyrillic/t2acmr.fd))
(/usr/local/texlive/2011/texmf-dist/tex/latex/lm/t1lmr.fd)

LaTeX Font Warning: Font shape `T2A/lmr/m/n' undefined (Font)         
using `T2A/cmr/m/n' instead on input line 15.


! Package inputenc Error: Unicode char \u8:  not set up for use with
LaTeX.

See the inputenc package documentation for explanation. Type  H
<return>  for immediate help.  ...                                    

l.18 ...�ный гипертрофический стеноз привра...

How can I avoid such error message.

  • 4
    Try loading fontenc with \usepackage[T1,T2A]{fontenc}. The T2A option is needed for Russian letters. Also note that lmodern doesn't load any cyrillic characters, hence the name "Latin Modern" (if you didn't already know this). – user2473 Nov 20 '12 at 4:01
  • 3
    I used \usepackage[T1,T2A]{fontenc} still same error message. – Manish Nov 20 '12 at 4:04
  • 1
    Your example compiles fine on my machine. I see you're using TeX Live 2011. Something seems to be acting funny with your fonts. I suggest upgrading to an updated version of TeX Live 2012. In the meantime, perhaps removing \usepackage{lmodern} might help? – user2473 Nov 20 '12 at 4:07
  • I installed Tex Live 2012 and remove lmodern message but i m still getting same error message. – Manish Nov 20 '12 at 6:11
  • 4
    The problem seems to be in the "no-break space" character. Add \DeclareUnicodeCharacter{00A0}{~} to your preamble. – egreg Nov 20 '12 at 7:36

11 Answers 11

77

The error you get is due to a "no-break space" character, according to what I can gather by copying an pasting your message.

This character is not usually set up by the [utf8] option and it's invisible to many editors, so it can slip in a document without the typist knowing it.

Solution: add in your preamble

\DeclareUnicodeCharacter{00A0}{ }

if you don't mean to type a no-break space, or

\DeclareUnicodeCharacter{00A0}{~}

if you want that the character stands for what its name says.

UPDATE

Recent (after 2015-01-01) versions of the UTF8 configuration file for inputenc do define U+00A0 as \nobreakspace, so this should be of no concern, now.

  • Sorry, I was wrong in my last comment. The fffe I got was put there by the command I used to see the encoding of the pasted text. Anyway, I cannot get the 00A0 either, so I hold my question. How did you came to it? – JLDiaz Mar 18 '13 at 11:36
  • 1
    @JLDiaz Copy paste the error message; the conversion of the char \u8:  not bit gives the following sequence of Unicode points: 0063 0068 0061 0072 0020 005C 0075 0038 003A 00A0 0020 006E 006F 0074, where you clearly see 00A0. – egreg Mar 18 '13 at 11:36
  • @egreg Thanks. That's what I did, but I got 0020 instead. I guess that my browser was "too smart" when copying characters to the clipboard. I pasted then at several Unicode converters online, and also in a terminal and used xxd, but I got always 0020 for the 00A0 char. – JLDiaz Mar 18 '13 at 12:29
  • 3
    @nuttyaboutnatty You can use \newunicodechar{^^a0}{~} after loading \usepackage{newunicodechar} – egreg Jul 8 '13 at 20:51
  • 1
    @Nicolas You don't load inputenc with LuaLaTeX – egreg May 18 '16 at 16:52
57

As this is one of the top google hits for this error message, here's a more general answer with an example:

The cause is a unicode character in one of your input files that isn't mapped to an output. This may -- especially if you're using the (unicode-supporting) biblatex/biber system -- be in your bibliography. This is a good place to look for errors as .bib files downloaded from publishers website are often malformed. You can tell if the error comes from the bib file - the line number in the error message will be that of your \end{document}, which makes tracking down the actual error rather tricky (inspecting various aux files doesn't appear to help).

Some of these errors are subtle, like the non-breaking space in the question, or the hyphen (U+2010) character given to me by one journal, which looks identical to the hyphen-minus produced by the keyboard.

Copying the character after the hyphen and searching for it should help - unless your command window or editor "helps" by converting it to the more common equivalent or replacing unicode with blanks - in that case copy it from your .log and search all the input files.

(I'm happy to expand this in response to comments or watch it grow -- it's just an attempt to be helpful to searchers)

  • 1
    I often mistakenly type this character in ViM on Mac OS X by hitting ALT+SHIFT+SPACE, often after writing {\some-command ...}. Thank you for the explanation! – csl Apr 14 '14 at 18:15
  • It's a good strategy. It's often needed to clean the output files after fixing the problem. – Tactopoda May 13 '15 at 12:49
  • That is one hell of a subtle error. I indeed had a hyphen (U+2010) instead of the hyphen-minus. Thanks. – Roald Dec 6 '16 at 16:31
  • How one may generally view what kind character is causing problems? In my case I somehow got U+FEFF 'ZERO WIDTH NO-BREAK SPACE' (hunted down by modyfying file in git repository and using git diff - but is there a more general solution)? – Mateusz Konieczny Dec 22 '16 at 7:44
  • @MateuszKonieczny for symbols that are invisible or very similar to existing ones it's tricky. Assuming an editor that supports different encodings (I use jEdit, notepad++) if you don't otherwise use unicode, reloading (the log, tex, bib files) with a different (ASCII) encoding and looking for garbage can work. I have an idea for a script that might help - maybe I'll have time to fiddle with it later. – Chris H Dec 22 '16 at 8:02
18

\usepackage[utf8x]{inputenc}

Ubuntu:

You must install texlive-latex-extra before use it.

Fedora:

You must install texlive-collection-latexextra before use it.

3

You may get this error also if you use different language for bibtex. In that case project.bbl may contain characters in different encoding (e.g latin2).

What you need to do is swap encoding when rendering bibliography to latin2 and switch back to utf8 after.

\inputencoding{latin2}
\bibliography{mybib}
\inputencoding{utf8}

Hope this helps.

  • Welcome to TeX.SX! This is an answer to an (old) question. You should elaborate a little bit on your post and show a fully working example – user31729 Nov 23 '14 at 20:06
  • I installed texlive-lang-czechslovak package to use slovak translations of entries in bibtex, but was getting errors while compiling project in utf8. I found out that it is caused by different encoding of .bbl file (evidently czechslovak package uses latin2 for .bbl files by default, bc. before using it I had no problems). – zub0r Nov 25 '14 at 0:11
3

This happened to me when I did save my .tex file with utf8 but forgot to save also the .bib file with the same encoding (it was still in ANSI).

Instead of returning back to ANSI on my .tex file I just opened the .bib file with Notepad++ and chose to convert to utf8.

Then after compiling everything was working OK.

3

I have found the same problem but none of the above answers solved it. In the end, I found the code \'{\i} in my .bib file. This was supposed to yield í but was producing a crazy unicode char that broke compilation. This .bib file was exported from CiteULike based on a reference that I entered mannually or copy-&-pasted from somewhere else. I suppose something wrong happened while converting a mannually entered/pasted í to \'{i}.

3

I had two similar problems:

  1. "Unicode char \u8: "
  2. "Unicode char \u8:." (with dot)

The problems were related to the .bib file (references list).

The first problem was solved based on the \DeclareUnicodeCharacter{00A0}{ } stated by @egreg.

The second one was helped by the @Chris H 's answer. I opened the generated file .log and looked for errors. I found:

! Package inputenc Error: Unicode char \u8:\C3. not set up for use with LaTeX.

Then, I looked the "\C3" string in the generated file .bbl and I found out that the letter "Ó" (the first letter of an author's name, Óscar Oballe-Peinado) was the problem. So, I changed it in the bibliography file for {\'{O}} and voilà!

Despite I'm using "\usepackage[utf8]{inputenc}", it seems not working specifically with the accented first letter of the first name of authors.

2

If this happens in the bibliography, try specifying the language explicitly to bibtextu:

bibtextu -l ru my_paper_with_russian_bibliography

This fixed it for me.

2

I had this Error because I accidentally saved an included .tex file as ANSI while the master file was in UTF-8.

You can change file encoding in Notepad++ for example. But you will need to copy it from the the ANSI version and paste it into the UTF-8 version.

2

XeTeX is more suitable than most other TeX engines for unicode : replace the lines

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}

with

\usepackage{fontspec}

and compile with xelatex myfile.tex.

  • 1
    You mean “XeTeX is more suitable than pdfTeX”, right? Because XeLaTeX is still LaTeX – clemens Jul 4 '17 at 10:39
  • @clemens Thanks for the correction. My bad, I had latex in mind. pdfTeX would be too narrow though. I hope the current formulation is better. – Skippy le Grand Gourou Jul 4 '17 at 10:48
1

Inserting

% !TEX encoding = UTF-8 Unicode

at the beginning of the file solved this issue for me.

protected by Community Mar 6 '17 at 7:38

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

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