XeTeX 中的西里尔字体问题

XeTeX 中的西里尔字体问题

我的文档包含俄语文本。以前,它以不带 BOM 的 UTF-8 格式存储,并使用 LaTeX 编译。所有操作均正常,但前言如下:

\documentclass[11pt,a4paper,final]{moderncv}

\usepackage[T2A]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[russian]{babel}

\renewcommand{\rmdefault}{cmr} % Шрифт с засечками
\renewcommand{\sfdefault}{cmss} % Шрифт без засечек
\renewcommand{\ttdefault}{cmtt} % Моноширинный шрифт

但是有些实用程序由于缺少 BOM 而无法识别 UTF-8,因此我添加了它。从现在起,LaTeX 无法编译文档,因为 BOM。我切换到 XeTeX 并替换了前言:

\documentclass[11pt,a4paper,final]{moderncv}

% Resolving "Failed to convert input string to UTF16" error. See http://tex.stackexchange.com/q/66722/24133
\usepackage[unicode,pdfencoding=auto]{hyperref}

\usepackage{polyglossia}   %% загружает пакет многоязыковой вёрстки
\setdefaultlanguage[spelling=modern]{russian}  %% устанавливает главный язык документа
\setotherlanguage{english} %% объявляет второй язык документа

\setmainfont{CMU Serif}           %% задаёт основной шрифт документа
\setsansfont{CMU Sans Serif}      %% задаёт шрифт без засечек
\setmonofont{CMU Typewriter Text} %% задаёт моноширинный шрифт

%\renewcommand{\rmdefault}{cmr} % Шрифт с засечками
%\renewcommand{\sfdefault}{cmss} % Шрифт без засечек
%\renewcommand{\ttdefault}{cmtt} % Моноширинный шрифт

但在这种情况下我遇到了几个问题:

  1. 字体略有不同
  2. 斜体缺失!
  3. 引号<<&>>未解析

查看之前和之后的图像: 前 后

如何解决这些问题?我想如果我可以告诉 XeTeX 使用与 LaTeX 相同的非 Unicode 字体,那将会有所帮助。

请提供建议全部这些问题,因为我需要它们全部等待修复。

附言我在 Windows 7 (x64) 下使用 MiKTeX 2.9 (x64)。

更新以 LaTeX 为例,一切正常:

\documentclass[11pt,a4paper,final]{moderncv}

\usepackage[T2A]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[russian]{babel}

\renewcommand{\rmdefault}{cmr}
\renewcommand{\sfdefault}{cmss}
\renewcommand{\ttdefault}{cmtt}

\moderncvstyle{classic}
\moderncvcolor{green}
\name{Михаил \vspace{0.5ex} \\}{Матросов}

\begin{document}

\section{Свои проекты и вклады}

\cvitem{2014}{
    \httplink[\textbf{C++ User Group, Russia}]{meetingcpp.ru}, \emph{Докладчик} \newline{} 
    Доклад \httplink[<<С++ без new и delete>>]{meetingcpp.ru/?p=250}.
}

\end{document}

以 XeTeX 为例,存在上述问题(文档主体没有改变):

\documentclass[11pt,a4paper,final]{moderncv}

% Resolving "Failed to convert input string to UTF16" error. See http://tex.stackexchange.com/q/66722/24133
\usepackage[unicode,pdfencoding=auto]{hyperref}

\usepackage{polyglossia}
\setdefaultlanguage[spelling=modern]{russian}
\setotherlanguage{english}

\setmainfont{CMU Serif}  
\setsansfont{CMU Sans Serif}
\setmonofont{CMU Typewriter Text}

\moderncvstyle{classic}
\moderncvcolor{green}
\name{Михаил \vspace{0.5ex} \\}{Матросов}

\begin{document}

\section{Свои проекты и вклады}

\cvitem{2014}{
    \httplink[\textbf{C++ User Group, Russia}]{meetingcpp.ru}, \emph{Докладчик} \newline{} 
    Доклад \httplink[<<С++ без new и delete>>]{meetingcpp.ru/?p=250}.
}

\end{document}

答案1

这不是答案,但评论不能包含MWE和图片

如果您能多做一些工作来诊断问题发生的位置,那将会很有帮助。简化您的示例并编译代码XeLaTeX对我来说没有任何问题。

\documentclass{article}
\usepackage{fontspec}
\setmainfont{CMU Serif}  
\begin{document}
\section{Свои проекты и вклады}
\emph{Докладчик}Доклад <<С++ без new и delete>>.
\end{document}

在此处输入图片描述

相关内容