扩展 Win 10 上的 OSFONTDIR 环境变量以包含用户字体

扩展 Win 10 上的 OSFONTDIR 环境变量以包含用户字体

我尝试使用我在 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 并使用一些系统字体。使用xelatexlualatex您必须使用正确的文件名称来定义每个文件\newfontfamily,这不是 Windows 或 Word 向您显示的一些花哨名称。已安装字体的实际文件名中没有空格。您需要查看目录\Windows\Fonts,单击系列以查看所有文件,然后右键单击其中一个文件选择Properties

在这个例子中,我使用了 Windows 安装附带的三种字体来显示如何指定各种形状。

A

% !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}

相关内容