如何在 pdflatex 或 xelatex 中安装和使用 TI-Calculator 的主要字体

如何在 pdflatex 或 xelatex 中安装和使用 TI-Calculator 的主要字体

这个答案https://tex.stackexchange.com/a/37550/4011建议可以安装一种字体,以便排版 TI 计算器的键。

现在我的问题是,如何在 texlive Linux 系统上与 pdflatex 或 xelatex 一起安装和使用它。

例如我想要这个:http://education.ti.com/educationportal/sites/US/productDetail/us_key_font_83p_84p.html

第一个问题是只有exehqx文件可供下载。

编辑 我按照 ArTourters 的建议,将字体提取到/home/myuser/Downloads/TiKeys/

并尝试编译以下内容xelatex

\documentclass{article}
\usepackage{fontspec}

\fontspec [ Path = /home/myuser/Downloads/TiKeys/]
{TI83____.TTF}


\begin{document}
Test.
\end{document}

然后我得到:

! Font \zf@basefont=TI83____.TTF at 10.0pt not loadable: Metric (TFM) file or i
nstalled font not found.
\zf@fontspec ...ntname \zf@suffix " at \f@size pt 
                                                  \unless \ifzf@icu \zf@set@...
l.12 {TI83____.TTF}

还有许多其他消息。

它生成一个使用标准字体的 pdf。我不想在整个文档中都使用这种字体,我只想排版 TI-Calculator 键。那么该怎么做呢?

答案1

Windows 版本是一个自解压的 zip 文件。您可以通过以下方式获取文件:

unzip ti83pkeys.exe
存档:ti83pkeys.exe
  充气:Ti83keys.txt            
  充气:TI83____.PFB            
  充气:TI83____.PFM            
  充气:TI83____.TTF            
  充气:README.TXT              

然后,您可以使用您喜欢的方式在乳胶中使用字体来包含 True Type 或 Postscript Type 1 字体。

回答可能会帮助你PDFLaTeX

编辑1:

我不得不说我开始困惑了。

使用以下代码和 LuaLaTex 应该可以工作,但不知何故,尽管 lualatex 可以看到并加载了字体,但 tex 本身并没有出现在生成的 pdf 中,字体也没有嵌入。

\documentclass{article}
\usepackage{fontspec}
\newfontfamily{\TIfont}{TI83____.TTF}
\DeclareTextFontCommand{\tifont}{\TIfont}

\begin{document}

\tifont{A}

\end{document}

并非所有字符都在此字体中定义,但A应该显示类似 [TAN⁻¹] 的内容。

查看日志,加载字体时会出现以下信息:

fontspec info: Font TI83____.TTF does not contain any OpenType `Script' information.

\g_fontspec_family_TI83____.TTF_int=\count363
 fontspec info: Defining font family 'TI83____.TTF(0)' for font 'TI83____.TTF' 
with options [].

\g_fontspec_TI83____.TTF(0)_prop=\toks38
 fontspec info: Defining shape 'normal' with NFSS spec.:<br>
(fontspec)  <->"file:TI83____.TTF:mode=node;"

我尝试添加[Script={Latn,Common}]\newfontfamily调用中,虽然警告消失了,但它并没有改变输出的任何内容。

我会继续寻找,但如果@khaled-hosny 愿意提供一些线索...

编辑2:

我尝试使用 XeLaTeX 编写相同的代码,它提供了更多信息。代码编译后,字体已嵌入,但字符显示为矩形,日志中出现以下注释:

Missing character: There is no A in font [TI83____.TTF]/ICU:!

现在我猜这是一个找到包含数据的字符及其编码的问题。我以为 A 是其中之一,但 LaTeX 似乎也这么认为。

编辑3:这是最后一个!

谢谢这个问题这个问题我认为我已经解决了。问题出在字体没有 UTF-8 字符,因此您需要其他方法来获取它们。

这可以通过XeLaTeX使用\XeTeXglyph命令来完成,或者使用 lualatex 进行一些 hacking,通过定义以下形式的命令\def\fontchar#1{\directlua{fonts.otf.char("#1")}}

以下代码将对和都起作用,XeLaTeX并定义以字形名称为参数的LuaLaTeX命令(如果使用字形编号,虽然会按预期工作,但 lua将恢复为 TeX ,在这种情况下不起作用。 \TI\XeTeXglyph<number>fonts.otf.char("<number>")\char

\documentclass{standalone}
\usepackage{fontspec}
\usepackage{ifluatex,ifxetex}
\newfontfamily{\TIfont}{TI83____.TTF}
\DeclareTextFontCommand{\tifont}{\TIfont}

\ifluatex
 \def\TI#1{\tifont{\directlua{fonts.otf.char("#1")}}}
\fi
\ifxetex
 \def\TI#1{\tifont{\XeTeXglyph\the\XeTeXglyphindex"#1"}}
\fi

\begin{document}

A sample text \\
\TI{A}\TI{B}\TI{C}\TI{D}\TI{E}\TI{F}\TI{G}\TI{H}

\end{document}

这使:

在此处输入图片描述

如果您使用 LuaLaTex,则会创建一个文件~/.texlive2011/texmf-var/luatex-cache/generic/fonts/otf/temp-ti83-.lua或类似文件,其中将详细说明字体及其字符。如果您查看它(它是纯文本),您可以找到每个字符的名称。否则我不知道如何获取此信息。

相关内容