Как использовать сербскую кириллицу с полиглоссией и чеканкой

Как использовать сербскую кириллицу с полиглоссией и чеканкой

Я использую его polyglossiaдля написания документа на сербской кириллице, но при попытке использовать его mintedдля подсветки синтаксиса исходного кода возникает ошибка (хотя PDF-файл создается):

polyglossia: The current roman font does not contain the Cyrill(polyglossia) Please define \cyrillicfont with \newfontfamily. ...l=lst:rssfeeder,caption=RssItemView.java]

PDF генерируется, но без кириллических слов в mintedокружении. Обратите внимание, что ошибки не возникает, если я не использую minted.

Я определил cyrillicfontв преамбуле:

\documentclass[12pt,a4paper,serbian,oneside]{book}

% minted  - paket za prikaz programa
\usepackage{minted}

% srpski jezik
\usepackage{fontspec}
\usepackage{polyglossia}
\setmainlanguage[Script=Cyrillic]{serbian}
\setmainfont{Times New Roman}
\newfontfamily\cyrillicfont{Times New Roman}

\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{textcomp}
\usepackage{amsfonts}
\usepackage{graphicx}
\usepackage{ucs}
\usepackage{pdfsync}
\usepackage[left=2.5cm,right=2.5cm,top=2.5cm,bottom=2.5cm]{geometry}


% Numerisanje subsubcetion
\setcounter{secnumdepth}{3}

%Prikaz subsubsection u sadrzaju
%\setcounter{tocdepth}{3}

% Komanda za horizontal ruler
\newcommand{\HRule}{\rule{\linewidth}{0.5mm}}

Я пытаюсь показать этот coffeescriptфрагмент с помощью minted:

\begin{minted}[mathescape,
               linenos]{coffeescript}
  http = require 'http'

  app.get '/', (req, res) =>
    res.send 'cao'
  # Коментар / Comment : const double pi = 3.1415926535
\end{minted}

PDF генерируется, код отображается, но вместо Коментар - пробелы. Выводятся следующие ошибки и предупреждения:

polyglossia: The current roman font does not contain the Cyrill(polyglossia) Please define \cyrillicfont with \newfontfamily. ...\catcode`\$=3\catcode`\^=7\catcode`\_=8}, ]
Unused global option(s): [serbian].
Font shape `EU1/TimesNewRoman(0)/m/sc' undefined(Font) using `EU1/TimesNewRoman(0)/m/n' instead
Some font shapes were not available, defaults substituted.

Я использую TexStudioи xelatexс --shell-escapeопцией для minted.

  1. Почему появляется ошибка с определением кириллического шрифта, если я включил его в преамбулу?
  2. Как отобразить кириллические слова в mintedокружении?

решение1

Вам необходимо определить моноширинный шрифт, поддерживающий кириллицу; шрифт по умолчанию (Latin Modern Mono) ее не поддерживает.

\documentclass[12pt,a4paper,serbian,oneside]{book}

% minted  - paket za prikaz programa
\usepackage{minted}

% srpski jezik
\usepackage{fontspec}
\usepackage{polyglossia}
\setmainlanguage[Script=Cyrillic]{serbian}
\setmainfont{Times New Roman}
\newfontfamily\cyrillicfont{Times New Roman}
\setmonofont{CMU Typewriter Text}

\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{textcomp}
\usepackage{amsfonts}
\usepackage{graphicx}
\usepackage[left=2.5cm,right=2.5cm,top=2.5cm,bottom=2.5cm]{geometry}


% Numerisanje subsubcetion
\setcounter{secnumdepth}{3}

%Prikaz subsubsection u sadrzaju
%\setcounter{tocdepth}{3}

% Komanda za horizontal ruler
\newcommand{\HRule}{\rule{\linewidth}{0.5mm}}

\begin{document}
I'm trying to show this coffeescript snippet with minted:

\begin{minted}[mathescape,
               linenos]{coffeescript}
  http = require 'http'

  app.get '/', (req, res) =>
    res.send 'cao'
  # Коментар / Comment : const double pi = 3.1415926535
\end{minted}
\end{document}

Найдите моноширинный шрифт, который у вас есть. Если CMU Typewriter Text не установлен как системный шрифт, вам следует сделать с

\setmonofont{cmuntt.otf}

при условии, что у вас есть полный дистрибутив TeX.

Не загружайте ucsс помощью XeLaTeX; этого также pdfsyncследует избегать: его возможности синхронизации намного хуже, чем у современного механизма SyncTeX, который автоматически предоставляется более поздними дистрибутивами TeX (добавьте опцию -pdfsync=1, которую большинство интерфейсов уже делают).

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

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