![如何在 pdflatex 或 xelatex 中安装和使用 TI-Calculator 的主要字体](https://linux22.com/image/249980/%E5%A6%82%E4%BD%95%E5%9C%A8%20pdflatex%20%E6%88%96%20xelatex%20%E4%B8%AD%E5%AE%89%E8%A3%85%E5%92%8C%E4%BD%BF%E7%94%A8%20TI-Calculator%20%E7%9A%84%E4%B8%BB%E8%A6%81%E5%AD%97%E4%BD%93.png)
这个答案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
第一个问题是只有exe
和hqx
文件可供下载。
编辑
我按照 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
或类似文件,其中将详细说明字体及其字符。如果您查看它(它是纯文本),您可以找到每个字符的名称。否则我不知道如何获取此信息。