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.

I'd like to use the \hl command from the soul package in a French text. However, it does not work whenever the part to highlight contains French accents (e.g.: \hl{é}).

I could use \'e instead of é (\hl{\'e}) but it would be quite long to substitute all the accents just in case I will have to highlight them later (and there are several accents in French : é, è, ù, à, ...).

Do you know whether it's possible to make \hl works with accents without substituing all the accents?

Here is an example file:

\documentclass[15pt , a4paper]{article}

\usepackage[french]{babel}
\usepackage[utf8] {inputenc}
\usepackage{soul}
\usepackage{color}

\definecolor{y}{RGB}{245, 255, 189}
\sethlcolor{y}

\begin{document}
  \hl{\'e} % works
  %\hl{é} % doesn't work
\end{document}
share|improve this question
    
What do you mean by "doesn't work"? Be more specific. –  Jubobs Feb 13 at 10:44
    
It returns : "ERROR: Argument of \UTFviii@two@octets has an extra }." With the package soulutf8 it works. –  Zach Feb 14 at 15:28

3 Answers 3

up vote 12 down vote accepted

For UTF-8 input, use soulutf8; don't forget fontenc!

\documentclass[a4paper]{article}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[french]{babel}
\usepackage{soulutf8}
\usepackage{color}

\definecolor{y}{RGB}{245, 255, 189}
\sethlcolor{y}

\begin{document}

\hl{\'e}
\hl{é}

\end{document}

enter image description here

There is no 15pt option for article.

share|improve this answer
    
Perfect, thanks ! –  Zach Feb 14 at 15:27
    
+1 for this so unimaginable solution! –  Sigur Jun 6 at 13:27

use xelatex instead:

\documentclass[12pt , a4paper]{article}
\usepackage{fontspec}
\usepackage[french]{babel}
%\usepackage[utf8] {inputenc}
\usepackage{soul}
\usepackage{color}

\definecolor{y}{RGB}{245, 255, 19}
\sethlcolor{y}

\begin{document}
  \hl{\'e} % works
  \hl{é} % works
\end{document}
share|improve this answer

The soul package has its limitations. This one seems to be one of them.

You can let it work by putting accented characters in a \mbox:

\documentclass[a4paper]{article}

\usepackage[french]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{soul}
\usepackage{color}

\definecolor{y}{RGB}{245, 255, 189}
\sethlcolor{y}

\begin{document}
  \hl{\'e} % works
  \hl{\mbox{é}} % works as well
\end{document} 

Output:

enter image description here

Otherwise you have to use XeLaTeX

\documentclass[a4paper]{article}

\usepackage[french]{babel}
\usepackage{fontspec}
\usepackage{xunicode}
\usepackage{soul}
\usepackage{color}

\definecolor{y}{RGB}{245, 255, 189}
\sethlcolor{y}

\begin{document}
  \hl{\'e} % works
  \hl{é} % works as well
\end{document} 
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.