4

I want to include source file using listing package. In that file there are some cyrillic symbols in comments.

I setup listings like:

\lstset{extendedchars=\true,basicstyle=\ttfamily}

And in result I get no spaces between russian words: вд instead of desired в д.

Not working minimal sample:

\documentclass[a4paper]{article}
\usepackage{xltxtra}
\usepackage{xunicode}
\usepackage{fontspec}
\usepackage{polyglossia}
\usepackage{listings}
\lstset{extendedchars=\true,basicstyle=\ttfamily}
\setmonofont[Scale=0.8]{DejaVu Sans Mono}

\begin{document}
\begin{lstlisting}
привет мир
\end{lstlisting}
\end{document}

I'm using XeTeX.

@Micha If I try to use libertine package with xetex I get errors like:

Cannot use \XeTeXOTfeaturetag with nullfont; not an OpenType Layout font. [ ]{Linux Libertine O}]

Also I tried to run in pdflatex with literate setup, it works, thanks. But in xetex I get the same problem.

Is it possible to use listings in such way with xetex?

  • Could you please add an example of a lstlisting you want to typeset? – egreg Mar 22 '13 at 0:52
  • @egreg I've added failing example. – Gregory Kalabin Mar 23 '13 at 10:22
  • 1
    I'm afraid it's a design problem of listings. :( – egreg Mar 23 '13 at 10:27
  • it seems to be. In the documentation there is no hint about XeTeX or XeLaTeX. :( – Micha Mar 23 '13 at 19:28
  • @Micha can you please add this to your second answer? – Gregory Kalabin Mar 24 '13 at 21:06
2

I do not have the CMU Serif font, but it should not be relevant for the listing. With:

\usepackage{libertine}

instead of \setmainfont[Mapping=tex-text]{CMU Serif} the document looks fine. (TeX-Live 2012)

  • sorry, I understand the problem to late. The next answer gives a hint, but you have to use pdflatex instead of xelatex – Micha Mar 22 '13 at 0:45
  • 3
    It would be good if you would merge your answers. – Stefan Kottwitz Mar 22 '13 at 12:09
2

Now I've understand the problem. It is not related to the font, which was my first mention. The issue was discussed at Роман Химов » Кириллица в листингах LaTeX but I'm not able to do it with xelatex. The following MWE works fine with pdflatex

\documentclass[a4paper,10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[russian]{babel}
\usepackage[T2A]{fontenc}
\usepackage{listings}
\lstset{extendedchars=true,basicstyle=\ttfamily,literate={Ö}{{\"O}}1
  {Ä}{{\"A}}1
  {Ü}{{\"U}}1
  {ß}{{\ss}}1
  {ü}{{\"u}}1
  {ä}{{\"a}}1
  {ö}{{\"o}}1
  {~}{{\textasciitilde}}1
  {а}{{\selectfont\char224}}1
  {б}{{\selectfont\char225}}1
  {в}{{\selectfont\char226}}1
  {г}{{\selectfont\char227}}1
  {д}{{\selectfont\char228}}1
  {е}{{\selectfont\char229}}1
  {ё}{{\"e}}1
  {ж}{{\selectfont\char230}}1
  {з}{{\selectfont\char231}}1
  {и}{{\selectfont\char232}}1
  {й}{{\selectfont\char233}}1
  {к}{{\selectfont\char234}}1
  {л}{{\selectfont\char235}}1
  {м}{{\selectfont\char236}}1
  {н}{{\selectfont\char237}}1
  {о}{{\selectfont\char238}}1
  {п}{{\selectfont\char239}}1
  {р}{{\selectfont\char240}}1
  {с}{{\selectfont\char241}}1
  {т}{{\selectfont\char242}}1
  {у}{{\selectfont\char243}}1
  {ф}{{\selectfont\char244}}1
  {х}{{\selectfont\char245}}1
  {ц}{{\selectfont\char246}}1
  {ч}{{\selectfont\char247}}1
  {ш}{{\selectfont\char248}}1
  {щ}{{\selectfont\char249}}1
  {ъ}{{\selectfont\char250}}1
  {ы}{{\selectfont\char251}}1
  {ь}{{\selectfont\char252}}1
  {э}{{\selectfont\char253}}1
  {ю}{{\selectfont\char254}}1
  {я}{{\selectfont\char255}}1
  {А}{{\selectfont\char192}}1
  {Б}{{\selectfont\char193}}1
  {В}{{\selectfont\char194}}1
  {Г}{{\selectfont\char195}}1
  {Д}{{\selectfont\char196}}1
  {Е}{{\selectfont\char197}}1
  {Ё}{{\"E}}1
  {Ж}{{\selectfont\char198}}1
  {З}{{\selectfont\char199}}1
  {И}{{\selectfont\char200}}1
  {Й}{{\selectfont\char201}}1
  {К}{{\selectfont\char202}}1
  {Л}{{\selectfont\char203}}1
  {М}{{\selectfont\char204}}1
  {Н}{{\selectfont\char205}}1
  {О}{{\selectfont\char206}}1
  {П}{{\selectfont\char207}}1
  {Р}{{\selectfont\char208}}1
  {С}{{\selectfont\char209}}1
  {Т}{{\selectfont\char210}}1
  {У}{{\selectfont\char211}}1
  {Ф}{{\selectfont\char212}}1
  {Х}{{\selectfont\char213}}1
  {Ц}{{\selectfont\char214}}1
  {Ч}{{\selectfont\char215}}1
  {Ш}{{\selectfont\char216}}1
  {Щ}{{\selectfont\char217}}1
  {Ъ}{{\selectfont\char218}}1
  {Ы}{{\selectfont\char219}}1
  {Ь}{{\selectfont\char220}}1
  {Э}{{\selectfont\char221}}1
  {Ю}{{\selectfont\char222}}1
  {Я}{{\selectfont\char223}}1
}

\begin{document}
\begin{lstlisting}
(ä ö ü) (a b c) (а б в)
\end{lstlisting}
\end{document}
  • 1
    The question is about XeLaTeX or LuaLaTeX. – egreg Mar 22 '13 at 0:47
  • The strange result is the same with xelatex and lualatex as well; maybe listings is not 100% compatible with it because with pdflatex everything is fine – Micha Mar 22 '13 at 1:04

Your Answer

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

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