
Есть ли более простой способ, чем писать эти команды дважды?
\newfontfamily\codefont[
Scale=MatchLowercase,
Path = fonts/]
{Inconsolata-dz}
\setmonofont[
Scale=MatchLowercase,
Path = fonts/]
{Inconsolata-dz}
Я думаю о чем-то подобном, \setmonofont{\codefont}
но, похоже, это не сработает.
решение1
Я не совсем понимаю, почему вы хотите сделать именно так; однако вы можете указать имя семейства NFSS, соответствующее \codefont
:
\newfontfamily\codefont[
NFSSFamily=Inconsolata,
Scale=MatchLowercase,
Path = fonts/
]{Inconsolata-dz}
\renewcommand{\ttdefault}{Inconsolata}
Полный тест, где я использовал Inconsolatazi4
и прокомментировал Path
строку.
\documentclass{article}
\usepackage{fontspec}
\newfontfamily\codefont[
NFSSFamily=Inconsolata,
Scale=MatchLowercase,
% Path = fonts/
]{Inconsolatazi4}
\renewcommand{\ttdefault}{Inconsolata}
\begin{document}
This should be Inconsolata: {\codefont Test of mono font}
This should be Inconsolata: \texttt{Test of mono font}
\end{document}
решение2
Вы можете использовать \newfontfamily{}[]{}
команду в XeLaTeX, ее синтаксис похож на\setmainfont
\documentclass{article}
\usepackage{fontspec}
\setmainfont[Extension=.ttf]{f1}
\newfontfamily{\myone}[Extension=.ttf]{f2}
\newfontfamily{\mytwo}[
BoldFont = f3_bold.ttf,
ItalicFont = f3_italic.ttf,
BoldItalicFont = f3_bold_italic.ttf
]{f3.ttf}
\begin{document}
fhsdfhhrth
{\myone gfhjjrjtyjsdjry}
{\mytwo dshthrsht\textbf{rjrtj} rtjjtrjjt \textit{dfhdhsrh} }
gthfrshtr
\end{document}