大家好。这是我第二个星期没能解决这个问题。我的系统(Ubuntu)中安装了 ChessSanPin 字体。Xetex 本身可以很好地使用它(使用 fontspec)。例如:
但如果我尝试将它与 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,请小心文件名中的大小写。