使用 minted 和希腊语输入代码:“!软件包 polyglossia 错误:当前罗马字体不包含希腊语”

使用 minted 和希腊语输入代码:“!软件包 polyglossia 错误:当前罗马字体不包含希腊语”

我已经制作了我的第一个 tex 文本,以便测试如何在我的论文中使用它:

% !TEX TS-program = XeLaTeX

\documentclass[a4paper,draft]{article} 
\usepackage{minted}
\usepackage[Greek,Latin]{ucharclasses}
% Language declaration
\usepackage{xltxtra}
\usepackage{polyglossia}

\setmainlanguage{greek}
\setotherlanguages{english}
\setTransitionsForGreek{\selectlanguage{greek}}{\selectlanguage{english}}

% Fonts
\usepackage{fontspec}
\setmainfont[Kerning=On,Mapping=tex-text]{Linux Libertine O}
\setmainfont{Times New Roman}
\setsansfont{Arial}
\newfontfamily\greekfont[Script=Greek]{Linux Libertine O}
\newfontfamily\greekfontsf[Script=Greek]{Linux Libertine O}


\title{My first document}
\date{2018-03-17}
\author{Dimitrios Desyllas}

\begin{document}
 \maketitle
 \newpage

 \section{Πρώτο κεφάλαιο}
    Καλημέρα Greece. This is an English paragraph
    \subsection{Υποκεφάλαιο 1}
    Στην Ελλάδα έχει ήλιο
    \subsubsection{Υποκεφάλαιο }
    Που καίει πολύ
    \subsubsection{Υπουπόκεφάλαιο 1.1}
    Πάρα πολύ
    \subsection{Υποκεφάλαιο 2}
    Στην Ελλάδα έχει θάλλασα
 \section{Δεύτερο κεφάλαιο}
 Όλα πάνε ρόδινα

\begin{english}
\begin{minted}{java}
import javax.swing.JApplet;
import java.awt.Graphics;

public class Hello extends JApplet {
    public void paintComponent(Graphics g) {
        g.drawString("Hello, world!", 65, 95);
    }    
}
\end{minted}
\end{english}

\end{document}

但在该部分:

\begin{english}
\begin{minted}{java}
import javax.swing.JApplet;
import java.awt.Graphics;

public class Hello extends JApplet {
    public void paintComponent(Graphics g) {
        g.drawString("Hello, world!", 65, 95);
    }    
}
\end{minted}
\end{english}

我收到以下错误:

! Package polyglossia Error: The current roman font does not contain the Greek

我该如何解决它?

答案1

不幸的是,错误信息具有误导性,因为它指的是“罗马字体”而不是单色字体。

\greekfonttt添加选择支持希腊语的字体的声明。

\documentclass[a4paper,draft]{article} 
\usepackage{minted}
\usepackage[Greek,Latin]{ucharclasses}
% Language declaration
\usepackage{polyglossia}

\setmainlanguage{greek}
\setotherlanguages{english}
\setTransitionsForGreek{\selectlanguage{greek}}{\selectlanguage{english}}

% Fonts
\usepackage{fontspec}
\setmainfont[Kerning=On,Mapping=tex-text]{Linux Libertine O}
\setmainfont{Times New Roman}
\setsansfont{Arial}
\newfontfamily\greekfont[Script=Greek]{Linux Libertine O}
\newfontfamily\greekfontsf[Script=Greek]{Linux Libertine O}


\title{My first document}
\date{2018-03-17}
\author{Dimitrios Desyllas}

\begin{document}
 \maketitle
 \newpage

 \section{Πρώτο κεφάλαιο}
    Καλημέρα Greece. This is an English paragraph
    \subsection{Υποκεφάλαιο 1}
    Στην Ελλάδα έχει ήλιο
    \subsubsection{Υποκεφάλαιο }
    Που καίει πολύ
    \subsubsection{Υπουπόκεφάλαιο 1.1}
    Πάρα πολύ
    \subsection{Υποκεφάλαιο 2}
    Στην Ελλάδα έχει θάλασσα
 \section{Δεύτερο κεφάλαιο}
 Όλα πάνε ρόδινα

\begin{english}
\begin{minted}{java}
import javax.swing.JApplet;
import java.awt.Graphics;

public class Hello extends JApplet {
    public void paintComponent(Graphics g) {
        g.drawString("Hello, world!", 65, 95);
    }    
}
\end{minted}
\end{english}

\end{document}

我删除了无用的部分,特别是加载xltxtra和令人困惑的字体设置。

在此处输入图片描述

相关内容