LaTeX. Греческие буквы в листингах

LaTeX. Греческие буквы в листингах.

Содержание

1 Общая информация

  • В качестве пакета для листингов будем рассматривать minted.

2 Использование Unicode

  • При использовании Unicode можно в листингах использовать настоящие греческие символы:
    1\begin{minted}{python}
    2  ε = …
    3  μ = …
    4  n = …
    5\end{minted}
    
  • При этом необходимо использовать компиляторы, понимающие Unicode: xelatex и lualatex.

3 Не-unicode компиляторы

  • При использовании не-unicode компиляторов (например, pdflatex), необходимо обозначать греческие буквы командными последовательностями.
  • Возможно использовать пакет textgreek:
    1\usepackage{textgreek}
    
  • При этом греческие символы в листингах набираются в ограничителях.
  • Ограничители задаются опцией escapeinside для minted:
    1\begin{minted}[escapeinside=||]{python}
    2  |\textepsilon| = …
    3  |\textmu| = …
    4  n = …
    5\end{minted}
    
  • Ограничители escapeinside не срабатывают в комментариях и строках.
  • Можно обойти проблему со строками, задав оператор, заключающий аргумент в кавычки, заданные с помощью внутренних команд minted.
  • Зададим оператор:
    1\newcommand{\mintescapestring}[1]{\PYG{l+s}{\PYGZsq{}}\PYG{l+s}{#1}\PYG{l+s}{\PYGZsq{}}}
    
  • Тогда его можно применять следующим образом:
    1\begin{minted}[escapeinside=||]{python}
    2  |\texttheta| = sp.Symbol(|\mintescapestring{\texttheta}|, real=True)
    3  (|\texttheta|*i).exp()
    4\end{minted}
    
  • В кодировке unicode это выглядит следующим образом:
    1\begin{minted}{python}
    2  θ = sp.Symbol('θ', real=True)
    3  (θ*i).exp()
    4\end{minted}
    

Дмитрий Сергеевич Кулябов
Дмитрий Сергеевич Кулябов
Профессор кафедры теории вероятностей и кибербезопасности

Мои научные интересы включают физику, администрирование Unix и сетей.

Похожие