使用 XeLaTeX 和 fontspec 的简历中的西里尔字母存在问题

使用 XeLaTeX 和 fontspec 的简历中的西里尔字母存在问题

我对 TeX 还很陌生,但用一个相当知名的Deedy-简历模板。我使用 overleaf 将我的 .tex 代码编译成 pdf。一切都很顺利,直到有一天我必须将我的简历翻译成俄语。代码不能立即使用,我尝试了 Overleaf 建议的解决方案,即将以下代码块放在标题中

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

这是 .tex 文件的 MRE 及其生成的输出输出损坏

该项目有 .tex 和 .cls 文件,我尝试编辑这两个文件,但似乎都不起作用。如果我尝试从文件中删除与字体相关的部分,它根本不起作用

\documentclass[]{deedy-resume-openfont}
\usepackage{fancyhdr}

 
\pagestyle{fancy}
\fancyhf{}
 
\begin{document}

\namesection{}{\Huge Василий Петров}{ 
\urlstyle{same}\href{}{}
\href{}{}\\
\href{mailto:[email protected]}{[email protected]} | +7 999 333-76-26 | \href{}{}
}

\begin{minipage}[t]{0.33\textwidth} 

\section{Education} 
\subsection{University of Nonsense}

\descript{Россия in Banking and Microbiology}
\location{Grad. Jun 2077 | Moscow, RU}
EMFSS Academic Award 2067 \\
\textbf{Diploma with First Class Honours}
\sectionsep
\end{minipage} 
\end{document}  \documentclass[]{article}

另外,我必须完整发布 .cls(名称应为 deedy-resume-openfont.cls)文件,因为我不知道哪部分可以省略

% Intro Options
\ProvidesClass{deedy-resume-openfont}[2014/04/30 CV class]
\NeedsTeXFormat{LaTeX2e}
\DeclareOption{print}{\def\@cv@print{}}
\DeclareOption*{%
  \PassOptionsToClass{\CurrentOption}{article}
}
\ProcessOptions\relax
\LoadClass{article}

% Package Imports
\usepackage[hmargin=1.25cm, vmargin=0.75cm]{geometry}
\usepackage[hidelinks]{hyperref}

% Publications
\usepackage{cite}
\renewcommand\refname{\vskip -1.5cm}

% Color definitions
\usepackage[usenames,dvipsnames]{xcolor} 
\definecolor{date}{HTML}{666666} 
\definecolor{primary}{HTML}{2b2b2b} 
\definecolor{headings}{HTML}{6A6A6A}
\definecolor{subheadings}{HTML}{333333}

% Set main fonts
\usepackage{fontspec}
\setmainfont[Color=primary, Path = fonts/lato/,BoldItalicFont=Lato-RegIta,BoldFont=Lato-Reg,ItalicFont=Lato-LigIta]{Lato-Lig}
\setsansfont[Scale=MatchLowercase,Mapping=tex-text, Path = fonts/raleway/]{Raleway-ExtraLight}

% Date command
\usepackage[absolute]{textpos}
\usepackage[UKenglish]{isodate}
\setlength{\TPHorizModule}{1mm}
\setlength{\TPVertModule}{1mm}
\newcommand{\lastupdated}{\begin{textblock}{60}(155,5)
\color{date}\fontspec[Path = fonts/raleway/]{Raleway-ExtraLight}\fontsize{8pt}{10pt}\selectfont 
Last Updated on \today
\end{textblock}}

% Name command
\newcommand{\namesection}[3]{
\centering{
\fontsize{40pt}{60pt}
\fontspec[Path = fonts/lato/]{Lato-Hai}\selectfont #1 
\fontspec[Path = fonts/lato/]{Lato-Lig}\selectfont #2
} \\[5pt]
\centering{
\color{headings}
\fontspec[Path = fonts/raleway/]{Raleway-Medium}\fontsize{11pt}{14pt}\selectfont #3}
\noindent\makebox[\linewidth]{\color{headings}\rule{\paperwidth}{0.4pt}}
\vspace{-15pt}
}

% Section seperators 
\usepackage{titlesec}
\titlespacing{\section}{0pt}{0pt}{0pt} 
\titlespacing{\subsection}{0pt}{0pt}{0pt}
\newcommand{\sectionsep}{\vspace{8pt}}

% Headings command
\titleformat{\section}{\color{headings}
\scshape\fontspec[Path = fonts/lato/]{Lato-Lig}\fontsize{16pt}{24pt}\selectfont \raggedright\uppercase}{}{0em}{}

% Subeadings command
\titleformat{\subsection}{
\color{subheadings}\fontspec[Path = fonts/lato/]{Lato-Bol}\fontsize{12pt}{12pt}\selectfont\bfseries\uppercase}{}{0em}{}

\newcommand{\runsubsection}[1]{
\color{subheadings}\fontspec[Path = fonts/lato/]{Lato-Bol}\fontsize{12pt}{12pt}\selectfont\bfseries\uppercase {#1} \normalfont}

% Descriptors command
\newcommand{\descript}[1]{
\color{subheadings}\raggedright\scshape\fontspec[Path = fonts/raleway/]{Raleway-Medium}\fontsize{11pt}{13pt}\selectfont {#1 \\} \normalfont}

% Location command
\newcommand{\location}[1]{
\color{headings}\raggedright\fontspec[Path = fonts/raleway/]{Raleway-Medium}\fontsize{10pt}{12pt}\selectfont {#1\\} \normalfont}

% Bullet Lists with fewer gaps command
\newenvironment{tightemize}{
\vspace{-\topsep}\begin{itemize}\itemsep1pt \parskip0pt \parsep0pt}
{\end{itemize}\vspace{-\topsep}}

如你所见,部分文本被替换为方框问号,部分文本则被彻底删除

答案1

我怀疑问题出在fonts/lato/和中安装的字体版本上fonts/raleway/。如果是这样,\tracinglostchars=2在序言中添加该命令将向您发出警告,提示您当前字体不包含每个西里尔字母。(默认情况下,警告会默默地埋在您的文件中.log。)

这是使用 TeX Live 2020 附带的版本的文档类的版本。将您的 TeX 版本设置为 TeX Live 2020 或更高版本,并将您的 TeX 引擎设置为 LuaLaTeX 或 XeLaTeX。

% Intro Options
\ProvidesClass{deedy-resume-openfont}[2014/04/30 CV class]
\NeedsTeXFormat{LaTeX2e}
\DeclareOption{print}{\def\@cv@print{}}
\DeclareOption*{%
  \PassOptionsToClass{\CurrentOption}{article}
}
\ProcessOptions\relax
\LoadClass{article}

% Package Imports
\RequirePackage[hmargin=1.25cm, vmargin=0.75cm]{geometry}
\RequirePackage[hidelinks]{hyperref}

% Publications
\RequirePackage{cite}
\renewcommand\refname{\vskip -1.5cm}

% Color definitions
\RequirePackage[usenames,dvipsnames]{xcolor} 
\definecolor{date}{HTML}{666666} 
\definecolor{primary}{HTML}{2b2b2b} 
\definecolor{headings}{HTML}{6A6A6A}
\definecolor{subheadings}{HTML}{333333}

% Set main fonts
\RequirePackage{fontspec}
\setmainfont{Lato}[
  Scale = 1.0 ,
  UprightFont=*-Light ,
  BoldFont = *-Medium ,
  ItalicFont = *-LightItalic ,
  BoldItalicFont = *-MediumItalic,
  Extension = .ttf ]
\setsansfont{Raleway}[
  Scale = MatchLowercase ,
  UprightFont = *-ExtraLight ,
  BoldFont = *-Medium ,
  ItalicFont = *-ExtraLight-Italic ,
  BoldItalicFont = *-Medium-Italic ,
  Extension = .otf ]

% Date command
\RequirePackage[absolute]{textpos}
\RequirePackage{babel}
\RequirePackage[UKenglish]{isodate}
\setlength{\TPHorizModule}{1mm}
\setlength{\TPVertModule}{1mm}
\newcommand{\lastupdated}{\begin{textblock}{60}(155,5)
\color{date}\normalfont\rmfamily\bfseries\fontsize{8pt}{10pt}\selectfont 
Last Updated on \today
\end{textblock}}

% Name command
\newcommand{\namesection}[3]{
\centering{
\fontsize{40pt}{60pt}
\normalfont\sffamily\bfseries #1 
\normalfont\sffamily \selectfont #2
} \\[5pt]
\centering{
\color{headings}
\normalfont\bfseries\fontsize{11pt}{14pt}\selectfont #3}
\noindent\makebox[\linewidth]{\color{headings}\rule{\paperwidth}{0.4pt}}
\vspace{-15pt}
}

% Section seperators 
\RequirePackage{titlesec}
\titlespacing{\section}{0pt}{0pt}{0pt} 
\titlespacing{\subsection}{0pt}{0pt}{0pt}
\newcommand{\sectionsep}{\vspace{8pt}}

% Headings command
\titleformat{\section}{\color{headings}
\normalfont\sffamily\scshape\fontsize{16pt}{24pt}\selectfont \raggedright\uppercase}{}{0em}{}

% Subeadings command
\titleformat{\subsection}{
\normalfont\color{subheadings}\sffamily\fontsize{12pt}{12pt}\selectfont\bfseries\uppercase}{}{0em}{}

\newcommand{\runsubsection}[1]{
{\normalfont\color{subheadings}\sffamily\fontsize{12pt}{12pt}\selectfont\bfseries\uppercase {#1}}}

% Descriptors command
\newcommand{\descript}[1]{
{\normalfont\color{subheadings}\raggedright\sffamily\scshape\bfseries\fontsize{11pt}{13pt}\selectfont {#1 \\}}}

% Location command
\newcommand{\location}[1]{
{\normalfont\color{headings}\raggedright\rmfamily\fontsize{10pt}{12pt}\selectfont {#1\\}}}

% Bullet Lists with fewer gaps command
\newenvironment{tightemize}{
\vspace{-\topsep}\begin{itemize}\itemsep1pt \parskip0pt \parsep0pt}
{\end{itemize}\vspace{-\topsep}}

我对代码本身做了一些修改,主要是用 和 替换了\fontspec调用\rmfamily\sffamily我还只使用了默认和粗体粗细。如果您想要更多粗细,可以添加。我调整了\normalfont之后设置的命令以恢复以前的设置,删除了冗余的 XeTeX 专用命令,以便该类可以在 LuaLaTeX 中编译,并进行了一两个其他修复。(如果字体命令也使用诸如\small和 之类的大小\Huge,而不是固定大小,则该类也将支持诸如 之类的大小选项\documentclass[12pt]。)

哦,您可能应该更改标题,以便声明该类的不同版本。

经过这些修改后,稍作修改的文档

\documentclass[russian, english]{deedy-resume-openfont}
\tracinglostchars=2
\usepackage{fancyhdr}

 
\pagestyle{fancy}
\fancyhf{}
 
\begin{document}

\namesection{}{\Huge Василий Петров}{ 
\urlstyle{same}\href{}{}
\href{}{}
\href{mailto:[email protected]}{[email protected]} | +7 999 333-76-26 | \href{}{}
}

\begin{minipage}[t]{0.33\textwidth} 

\section{Education} 
\subsection{University of Nonsense}

\descript{Россия in Banking and Microbiology}
\location{Grad. Jun 2077 | Moscow, RU}
EMFSS Academic Award 2067 \\
\textbf{Diploma with First Class Honours}
\sectionsep
\end{minipage} 
\end{document}  \documentclass[]{article}

编译为 Deedy 简历

顺便说一下,Overleaf 给你的命令只有在你不是使用fontspec。它们应该设置传统的 8 位字体,并且您需要一些额外的命令才能使用它们。如果不需要,您不必担心它们。

相关内容