如何使用塞尔维亚西里尔字母与 Polyglossia 和 minted

如何使用塞尔维亚西里尔字母与 Polyglossia 和 minted

我正在用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.

我正在使用TexStudioxelatex选项。--shell-escapeminted

  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应该避免:它的同步能力比较新的 TeX 发行版自动提供的现代 SyncTeX 机制差得多(添加选项-pdfsync=1,大多数前端已经这样做了)。

在此处输入图片描述

相关内容