![texlive 使用已安装的字体,不完整的 ifx](https://linux22.com/image/257397/texlive%20%E4%BD%BF%E7%94%A8%E5%B7%B2%E5%AE%89%E8%A3%85%E7%9A%84%E5%AD%97%E4%BD%93%EF%BC%8C%E4%B8%8D%E5%AE%8C%E6%95%B4%E7%9A%84%20ifx.png)
我在使用 LaTeX 中的字体时遇到问题。我通过脚本安装了字体installfont-tl
,但无法使用它来创建文档。当我添加时,\usepackage{$fontname}
我收到一个我无法真正解释的错误:
! LaTeX Error: Missing begin{document}.
See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
...
l.9 n
\expandafter\ifx\csname Sfpr@scale\endcsname\relaxn \let\Sfpr@@scale\@...
You're in trouble here. Try typing <return> to proceed.
If that doesn't work, type X <return> to quit.
)
! Incomplete ifx; all text was ignored after line 9.
<inserted text>
fi
l.4 \begin{document}
The file ended while I was skipping conditional text.
This kind of error happens when you say `\if...' and forget
the matching `\fi'. I've inserted a `\fi'; this might work.
我尝试寻找解决方案,但却找不到。
(字体样式文件fingerpaint.sty
)如下所示:
\NeedsTeXFormat{LaTeX2e}%
\ProvidesPackage{fingerpaint}[2010/03/05 v1.0 FingerPaint-Regular]%
\RequirePackage{textcomp}%
\RequirePackage{xkeyval}%
\define@key{fingerpaint.sty}{scaled}[1.0]%
{%
\def\Sfpr@scale{#1}%
}%
\define@key{fingerpaint.sty}{leading}[1.0]%
{%
\linespread{#1}%
}%
\ExecuteOptionsX{scaled}%
\ProcessOptionsX\relax%
\renewcommand*{\rmdefault}{fpr}%
\newcommand\FFfpr{\fontfamily{fpr}\fontseries{m}\fontshape{n}\selectfont}%
\endinput%
希望有人能帮助我解决这个问题。
我这边的一些意见:我正在通过编辑脚本中的默认值来使用脚本,因为调用脚本时某些参数似乎被忽略了。因此,如果您无法使其工作,您可以直接编辑脚本文件本身中的默认值。这样就可以了。此外,如果您在转换文件时遇到问题,.ttf
只需使用脚本自行处理即可ttf2pt1
。
ttf2pt1 -a -b -l adobestd $filename
答案1
.fd 文件中的 \relax 后面似乎多了一个字母“n”(ot1fpr.fd、t1fpr.fd,名称取决于使用的字体编码)。这可能是脚本中的错误installtl-font
。版本 v1.6b(2012/01/25)似乎是正确的:
((STEP++))
echo -e "\n\n$STEP) Insert scale factor into the fd files"
cat >installfont.sed <<EOF
9 i\\
\\n\\\\expandafter\\\\ifx\\\\csname ${FONTSCALEPREFIX}@scale\\\\endcsname\\\\relax\\n \\\\let\\\\${FONTSCALEPREFIX}@@scale\\\\@empty\\n\\\\else\\n \\\\edef\\\\${FONTSCALEPREFIX}@@scale{s*[\\\\csname ${FONTSCALEPREFIX}@scale\\\\endcsname]}\\n\\\\fi\\n
s/<-> /<-> \\\\${FONTSCALEPREFIX}@@scale /
EOF
它包含“ \\\\endcsname\\\\relax\\n \\\\let
”,也许您的版本只有一个反弹“ \\\\relax\n
”。