我尝试使用我在 Windows 10 上以用户身份安装的一些字体,但 XeLaTeX 找不到它们。字体已安装在 中C:\Users\<My User>\AppData\Local\Microsoft\Windows\Fonts
。
据我了解,我需要扩展变量OSFONTDIR
以包含此目录。当然,我仍然希望在搜索自己的字体之后搜索系统字体。
在我尝试之前,这是变量的值(PowerShell 中的输出):
> kpsewhich --var-value=OSFONTDIR
C:/Windows/fonts//
> $env:OSFONTDIR
<empty>
然后我尝试OSFONTDIR
设置
C:\Users\<My User>\AppData\Local\Microsoft\Windows\Fonts:
在 Windows 中的相应对话框中。
通过阅读文档,我认为在路径末尾添加冒号将确保搜索用户字体和系统字体,但 kpsewhich 现在返回:
> kpsewhich --var-value=OSFONTDIR
C:/Users/<My User>/AppData/Local/Microsoft/Windows/Fonts:
我还尝试按照在 Linux 下的 bash 中的方式附加到变量,使用
C:/Users/<My User>/AppData/Local/Microsoft/Windows/Fonts:%OSFONTDIR%
目前我只能搜索一个目录或另一个目录。我应该使用什么语法来搜索两者?
答案1
我有 Windows 10 并使用一些系统字体。使用xelatex
和lualatex
您必须使用正确的文件名称来定义每个文件\newfontfamily
,这不是 Windows 或 Word 向您显示的一些花哨名称。已安装字体的实际文件名中没有空格。您需要查看目录\Windows\Fonts
,单击系列以查看所有文件,然后右键单击其中一个文件选择Properties
。
在这个例子中,我使用了 Windows 安装附带的三种字体来显示如何指定各种形状。
% !TeX TS-program =xelatex
\documentclass{article}
\usepackage{fontspec}
\newfontfamily\berlinfamily[%Berlins Sans FB
Extension = .ttf,%
BoldFont = *DB,%
UprightFont=*R,%
]{BRLNS}
\newfontfamily\segoefamily[% Segoe UI
Extension = .ttf,%
UprightFont=*,%
BoldFont = *B,%
ItalicFont=*I,%
BoldItalicFont = *Z,
]{SEGOEUI}
\newfontfamily\magneto{MAGNETOB.TTF}% Magneto Bold
\newcommand{\ABC}{A B C D E F G H I J K L M N O P Q R S T U V W X Y Z}
\newcommand{\abc}{a b c d e f g h i j k l m n o p q r s t u v w x y z}
\begin{document}
\begin{center}
The Berlin Large normal font \\
{\berlinfamily\Large \ABC\\ }
\end{center}
\begin{center}
The font in its normal size \\
{\berlinfamily \ABC} \\
and the Computer Modern Roman for comparison \\
\ABC
\end{center}
\begin{center}
The Segoe Huge bold font \\
{\segoefamily\Huge\bfseries \ABC\\ }
\end{center}
\begin{center}
The Segoe Huge bold italic font \\
{\segoefamily\Huge\bfseries\slshape \abc\\ }
\end{center}
\begin{center}
The Magneto Bold \\
{\magneto\Huge \ABC\\ }
\end{center}
\end{document}