Xskak 和 xetex:替代字体

Xskak 和 xetex:替代字体

大家好。这是我第二个星期没能解决这个问题。我的系统(Ubuntu)中安装了 ChessSanPin 字体。Xetex 本身可以很好地使用它(使用 fontspec)。例如:

带有字体规格的 ChessSanPin

但如果我尝试将它与 Xskak 包一起使用,我会收到警告

LaTeX 字体警告:LSB/ChessSanPin/m/n' undefined (Font) using输入行 19 上的字体形状为 LSB/skaknew/m/n'。

1(./chess.aux)

LaTeX 字体警告:某些字体形状不可用,已用默认字体替代。

并使用默认字体skaknew。

文档来源:

\documentclass{book}
\usepackage{xskak}

\begin{document}

\setboardfontfamily{ChessSanPin}

\newcommand\testboard{{%
\boardfont
\noindent
rmblkans\\
opopopop\\
0Z0Z0Z0Z\\
Z0Zqj0Z0\\
0Z0LKZ0Z\\
Z0Z0Z0Z0\\
POPOPOPO\\
SNAQJBMR\par}}
\testboard

\end{document}

我不明白,是否存在字体问题、文档问题或其他问题。

你能帮助我让它工作吗?

答案1

尝试这个:

将字体的 afm 和 pfb 放在某个空的测试文件夹中。在那里打开命令行并运行

  afm2tfm ChessSanPin

这应该会创建一个 tfm。(您也可以使用 fontforge 创建 tfm)。

然后在与 tfm 相同的文件夹中创建一个测试文档,内容如下:

\documentclass{article}

\usepackage{xskak}
\usepackage{filecontents}
\begin{filecontents}{lsbchesssanpin.fd}
\ProvidesFile{lsbchesssanpin.fd}
        [2016/10/20 v1.0 Chess font definitions]

\DeclareFontFamily{LSB}{chesssanpin}{}
 \DeclareFontShape{LSB}{chesssanpin}{m}{n}{<-> ChessSanPin}{}
\end{filecontents}

\pdfmapline{=ChessSanPin ChessSanPin <ChessSanPin.pfb}
\setboardfontfamily{chesssanpin}

\begin{document}
\newchessgame
\chessboard

\end{document}

使用以下方法编译pdflatex(不是 xelatex)。如果可以的话请回来,我会告诉你如何为 xelatex 创建正确的地图条目。

如果您使用的是 Linux,请小心文件名中的大小写。

相关内容