2

Problem

I am using the listings package to produce HTML-code and everything works except that the letters åäö do not format in accordance to the defined colors.

Minimal Working Example

\documentclass[11pt,twoside,a4paper,export]{article}

\usepackage[swedish]{babel}
\usepackage{listings}
\usepackage{tikz}

\lstdefinelanguage{HTML5}{
  language=html,
  sensitive=true,
  tagstyle=\color{blue},
  markfirstintag=true
}

\lstset{%
  % General design
  inputencoding=utf8,
  backgroundcolor=\color{white},
  basicstyle=\tiny\ttfamily\upshape,
  frame=l,
  % line-numbers
  xleftmargin={14pt},
  numbers=left,
  stepnumber=1,
  firstnumber=1,
  numberfirstline=true,
  numberstyle=\color{black},
  % Code design
  identifierstyle=\color{orange},
  keywordstyle=\color{black},
  commentstyle=\color{gray},
  stringstyle=\color{purple},
  % Code
  language=html,
  alsodigit={.:},
  tabsize=2,
  showtabs=false,
  showspaces=false,
  showstringspaces=false,
  extendedchars=true,
  breaklines=false,
  % German umlauts
  literate=
  {á}{{\'a}}1 {é}{{\'e}}1 {í}{{\'i}}1 {ó}{{\'o}}1 {ú}{{\'u}}1
  {Á}{{\'A}}1 {É}{{\'E}}1 {Í}{{\'I}}1 {Ó}{{\'O}}1 {Ú}{{\'U}}1
  {à}{{\`a}}1 {è}{{\`e}}1 {ì}{{\`i}}1 {ò}{{\`o}}1 {ù}{{\`u}}1
  {À}{{\`A}}1 {È}{{\'E}}1 {Ì}{{\`I}}1 {Ò}{{\`O}}1 {Ù}{{\`U}}1
  {ä}{{\"a}}1 {ë}{{\"e}}1 {ï}{{\"i}}1 {ö}{{\"o}}1 {ü}{{\"u}}1
  {Ä}{{\"A}}1 {Ë}{{\"E}}1 {Ï}{{\"I}}1 {Ö}{{\"O}}1 {Ü}{{\"U}}1
  {â}{{\^a}}1 {ê}{{\^e}}1 {î}{{\^i}}1 {ô}{{\^o}}1 {û}{{\^u}}1
  {Â}{{\^A}}1 {Ê}{{\^E}}1 {Î}{{\^I}}1 {Ô}{{\^O}}1 {Û}{{\^U}}1
  {œ}{{\oe}}1 {Œ}{{\OE}}1 {æ}{{\ae}}1 {Æ}{{\AE}}1 {ß}{{\ss}}1
  {ç}{{\c c}}1 {Ç}{{\c C}}1 {ø}{{\o}}1 {å}{{\r a}}1 {Å}{{\r A}}1
  {€}{{\EUR}}1 {£}{{\pounds}}1
}

\begin{document}

\begin{lstlisting}[language=HTML5,numbers=left,firstnumber=1]
<!DOCTYPE html>
<html>
  <head>
    <title>Omvandla strängar</title>
    <meta charset="utf-8">
  </head>
  <body>
  </body>
</html>
\end{lstlisting}

\end{document}

Output

enter image description here

Notice how the letter ä does not format in orange color like the rest of the letters in the <title> element.

  • The unicode-aware engine solution given to the related question you asked before works here as well, see the result – alwaysask Aug 9 '16 at 19:26
  • @alwaysask I know, the only reason I ask is because the solution was a "hack" and not a really sufficient solution when you have a large number of code examples. It works nice for a small number but become unmaintainable when expanded. A long-term solution is what is needed, requiring minimal adjustments. – kexxcream Aug 9 '16 at 19:31
  • Since you are looking for a stable long-term solution I'd suggest to take a look at the minted package (I haven't checked whether the same problem occurs, but I am quite sure it won't – minted is worth a try anyway, if you need high quality syntax highlighting ) – JBantje Aug 9 '16 at 21:29

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.