Estou usando polyglossia
para escrever um documento em script cirílico sérvio, mas quando tento usar minted
para realçar a sintaxe do código-fonte, há um erro (embora o pdf seja gerado):
polyglossia: The current roman font does not contain the Cyrill(polyglossia) Please define \cyrillicfont with \newfontfamily. ...l=lst:rssfeeder,caption=RssItemView.java]
O PDF é gerado, mas sem palavras cirílicas no minted
ambiente. Observe que não há erro se eu não usar o minted
.
Eu defini cyrillicfont
no preâmbulo:
\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}}
Estou tentando mostrar este coffeescript
trecho com minted
:
\begin{minted}[mathescape,
linenos]{coffeescript}
http = require 'http'
app.get '/', (req, res) =>
res.send 'cao'
# Коментар / Comment : const double pi = 3.1415926535
\end{minted}
O PDF é gerado, o código é mostrado, mas em vez de Коментар há espaços em branco. Os seguintes erros e avisos são exibidos:
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.
Estou usando TexStudio
e xelatex
com --shell-escape
opção para minted
.
- Por que o erro ao definir a fonte cirílica é exibido quando a incluí no preâmbulo?
- Como mostrar palavras cirílicas no
minted
ambiente?
Responder1
Você deve definir uma fonte monoespaçada que suporte cirílico; o padrão (Latin Modern Mono) não.
\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}
Encontre uma fonte monoespaçada disponível. Se o texto da máquina de escrever CMU não estiver instalado como fonte do sistema, você deve fazer isso com
\setmonofont{cmuntt.otf}
desde que você tenha uma distribuição TeX completa.
Não carregue ucs
com XeLaTeX; também pdfsync
deve ser evitado: suas capacidades de sincronização são muito piores do que o mecanismo moderno SyncTeX que é fornecido automaticamente pelas distribuições TeX mais recentes (adicione a opção -pdfsync=1
, que a maioria dos front-ends já faz).