Списки и символы Unicode

Списки и символы Unicode

Я хочу записать некоторые символы unicode в lstlistingсреду, но они отображаются в строке вывода, что не то, что я ожидаю. Как мне заставить их работать как стандартные символы? Спасибо.

\documentclass{article}

\usepackage{fontspec}
\setmonofont{Consolas}

\usepackage{listings}
\lstset{
    basicstyle=\ttfamily
}

\begin{document}
    \begin{lstlisting}
    \end{lstlisting}    
\end{document}

решение1

Извините, если вы посчитаете мой ответ неуместным, но, поработав некоторое время с вашим кодом, я нашел самый простой вариант — перейти с lstlistingпакета на minted.

Почему minted?

Плюсы:

  • Отлично работает с pdflatex, xelatex и т. д.
  • Поддерживает гораздо больше языков для выделения, чемlstlisting
  • Иногда выполняет выделение выглядит лучше
  • Никаких проблем с символами UTF-8 из коробки.

Минусы:

  • Требуется дополнительное программное обеспечение (хотя его установка занимает 2–5 минут)
  • Необходимо отредактировать флаги команды компиляции (еще 30 секунд)

Хорошей новостью является то, чтодополнительное программное обеспечениеВыше упоминается Python, который, скорее всего, будет поставляться с вашей системой, если вы используете OS X или любой популярный дистрибутив Linux, а также его пакет Pygments, который можно установить с помощью одной строки в оболочке.

Вы можете направиться вminted руководствои проверьте раздел 2.1, инструкции очень короткие и информативные.

Также вам нужно проверить настройки вашего редактора TeX и изменить что-то вроде

/Library/tex/texbin/xelatex -synctex=1 %.tex

добавляем -shell-escapeфлаг, теперь это выглядит примерно так

/Library/tex/texbin/xelatex -shell-escape -synctex=1 %.tex

Это необходимо для того, чтобы XeLaTeX мог вызывать что-то за пределами своей «песочницы» (в нашем случае — вызывать Python).

После этих шагов вы готовы к использованию minted. Никакой настройки больше не потребуется.


Теперь ваш MWE, адаптированный для minted:

\documentclass{article}

\usepackage{fontspec}
\setmonofont{Consolas}

\usepackage{minted}

\begin{document}
    \begin{minted}{text}
    \end{minted}    
\end{document}

Обратите внимание на опцию {text}— она позволяет указать язык (в нашем случае — обычный текст).

И вот результат:

введите описание изображения здесь


P.S. Я никогда раньше не работал с minted, но пытаясь решить вашу проблему, я потратил более 40 минут на игру lstlistingи всего 2 минуты на установку и привыкание minted, так что попробовать определенно стоит.

Связанный контент