TransWikia.com

Problem with Cyrillic in resume with XeLaTeX and fontspec

TeX - LaTeX Asked by zeebrah on February 22, 2021

So I’m fairly new to TeX but managed to make myself a decent resume using quite a well-known Deedy-Resume template. I use overleaf to complie my .tex code into pdfs. I all worked fine enough until one day I had to translate my resume into Russian. The code doesn’t work out of the box, I’ve tried suggested solution by Overleaf, which is to put the following code chunk in the header

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

Here is an MRE for the .tex file and output it produces broken output

The project has .tex and .cls files, I’ve tried to edit both but it doesn’t seem to work either way. If I attempt to remove font related section from the file it doesn’t work at all

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.33textwidth} 

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}

Also, I would have to post .cls (should be names deedy-resume-openfont.cls) file in its entirety since I don’t know which part can be omitted

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

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

% Publications
usepackage{cite}
renewcommandrefname{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}
noindentmakebox[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}
scshapefontspec[Path = fonts/lato/]{Lato-Lig}fontsize{16pt}{24pt}selectfont raggedrightuppercase}{}{0em}{}

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

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

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

% Location command
newcommand{location}[1]{
color{headings}raggedrightfontspec[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}}

As you can see, some of the text is replaces with boxed question marks and some is outright erased

One Answer

I suspect that the problem is with the versions of the fonts installed in fonts/lato/ and fonts/raleway/. If so, adding the command tracinglostchars=2 in your preamble will give you a warning that the current font does not have each Cyrillic letter. (By default, the warnings are silently buried in your .log file.)

Here’s a version of the document class that uses the versions included with TeX Live 2020. Set your TeX version to TeX Live 2020 or later and your TeX engine to LuaLaTeX or XeLaTeX.

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

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

% Publications
RequirePackage{cite}
renewcommandrefname{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}normalfontrmfamilybfseriesfontsize{8pt}{10pt}selectfont 
Last Updated on today
end{textblock}}

% Name command
newcommand{namesection}[3]{
centering{
fontsize{40pt}{60pt}
normalfontsffamilybfseries #1 
normalfontsffamily selectfont #2
} [5pt]
centering{
color{headings}
normalfontbfseriesfontsize{11pt}{14pt}selectfont #3}
noindentmakebox[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}
normalfontsffamilyscshapefontsize{16pt}{24pt}selectfont raggedrightuppercase}{}{0em}{}

% Subeadings command
titleformat{subsection}{
normalfontcolor{subheadings}sffamilyfontsize{12pt}{12pt}selectfontbfseriesuppercase}{}{0em}{}

newcommand{runsubsection}[1]{
{normalfontcolor{subheadings}sffamilyfontsize{12pt}{12pt}selectfontbfseriesuppercase {#1}}}

% Descriptors command
newcommand{descript}[1]{
{normalfontcolor{subheadings}raggedrightsffamilyscshapebfseriesfontsize{11pt}{13pt}selectfont {#1 }}}

% Location command
newcommand{location}[1]{
{normalfontcolor{headings}raggedrightrmfamilyfontsize{10pt}{12pt}selectfont {#1}}}

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

I made some changes to the code itself, mainly replacing fontspec calls with rmfamily and sffamily. I also used only the default and bold weights. If you want more weights, they are possible to add. I tweaked commands that set normalfont afterward to instead restore the previous settings, removed a redundant XeTeX-only command so that the class will compile in LuaLaTeX, and made one or two other fixes. (If the font commands also used sizes such as small and Huge, rather than fixed sizes, the class would support size options such as documentclass[12pt] as well.)

Oh, and you should probably change the header so this declares a different version of the class.

With these changes, the slightly-modified document

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.33textwidth} 

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}

compiles to Deedy Résumé

By the way, the commands Overleaf gave you only work if you are not using fontspec. They are supposed to set up legacy 8-bit fonts, and you would need some extra commands to use them. You should not worry about them if you don’t have to.

Answered by Davislor on February 22, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP