在 macOS 10.14 上为 pdflatex 和 lualatex 安装 crystal 字体

在 macOS 10.14 上为 pdflatex 和 lualatex 安装 crystal 字体

我想在当前文档中使用 pdflatex 和 lualatex 中的以下字体

https://ctan.org/tex-archive/fonts/cryst

以下 MWE 编译成功

\documentclass{article}
\usepackage{tikz}

\DeclareFontFamily{U}{cry}{\hyphenchar\font=-1}
\DeclareFontShape{U}{cry}{m}{n}{ <-> cryst}{}
\newcommand{\cry}[1]{{\usefont{U}{cry}{m}{n} \symbol{#1}}}

\begin{document}
    \begin{tikzpicture}
     \node (a) at (0,0) {\cry{2}};
    \end{tikzpicture}
\end{document}

但是现在我只得到一个位图字体

在此处输入图片描述

日志文件仅包含一行晶体文件:

/Users/hotschke/Library/texlive/2018/texmf-var/fonts/pk
/ljfour/public/cryst/cryst.600pk

最重要的是我的打印机只打印以下错误

ERROR: limitcheck
OFFENDING COMMAND: imagemask

STACK:

(r)
(Sys/Start)
(Sys/Start)

在此处输入图片描述

我在 macOS 10.14 上安装了 MacTeX 2018。

据我了解,这个问题在 miktex 2.9 中加载自定义字体关于在 MikTeX 上使用“cryst”,自述字体‘cryst’已经过时。

有人能帮我在 texmf 本地目录中正确配置它吗?

据我所知,macOS 上默认的 texmf 本地基目录是

$HOME/Library/texmf
/usr/local/texlive/texmf-local/

这里了解为什么你应该不是将字体安装到您的主文件夹中。其他文件(如软件包)可能没问题(http://tug.org/mactex/faq/faq.html#atqm05down)。

这里给出了如何安装字体的一般描述:

https://www.tug.org/fonts/fontinstall.html

网站https://www.tug.org/fonts/fontinstall-personal.html还警告两次关于将字体安装到个人文件夹中。

我已按照 README 的前四个步骤将相关文件复制到 texmf 本地树中:

❯ TEXMFLOCAL=$(kpsewhich -var-value=TEXMFLOCAL)
❯ echo $TEXMFLOCAL
/usr/local/texlive/texmf-local

❯ mkdir -p $TEXMFLOCAL/fonts/{tfm,source,afm,type1}/cryst1
❯ cp $(kpsewhich cryst.tfm) $TEXMFLOCAL/fonts/tfm/cryst1/
❯ cp $(kpsewhich cryst.mf)  $TEXMFLOCAL/fonts/source/cryst1/
❯ cp $(kpsewhich cryst.afm) $TEXMFLOCAL/fonts/afm/cryst1/
❯ cp $(kpsewhich cryst.pfb) $TEXMFLOCAL/fonts/type1/cryst1/

/usr/local/texlive/texmf-local
❯ tree -P '*cryst*' --prune
.
└── fonts
    ├── afm
    │   └── cryst1
    │       └── cryst.afm
    ├── source
    │   └── cryst1
    │       └── cryst.mf
    ├── tfm
    │   └── cryst1
    │       └── cryst.tfm
    └── type1
        └── cryst1
            └── cryst.pfb

9 directories, 4 files

现在,我不确定如何更新文件

  • config.ps(针对 dvips)p +cryst1.map
  • pdftex.cfg对于 pdftexmap +cryst1.map
  • 以及我必须为 lualatex 做些什么。

更新摘录自述文件(无需复制文件的‘简单’步骤):

Tell dvips (for PostScript output) where to find the files.
To this end, insert the following line into the file config.ps:
p +cryst1.map
(config.ps is in a directory like \texmf\dvips\config
or /usr/share/texmf/dvips/config).
If you use pdfTeX, insert
map +cryst1.map
to your pdftex.cfg file
(in \texmf\pdftex\config or /usr/share/texmf/pdftex/config).

Create a new file cryst1.map in a new subdirectory of the directory
of map files (e.g. \texmf\dvips\cryst1 or /usr/share/texmf/dvips/cryst1).
The file cryst1.map consists of one line:
cryst cryst1 <cryst.pfb

Finally, tell TeX which new files and directories exist. This is done
by a command like
initexmf -u  for MikTeX under Windows
or run texhash under root in the shell of Linux RedHat.

答案1

简单的方法是将这一行添加到您的文档中:

 \pdfmapline{=cryst cryst1 <cryst.pfb}

要设置地图文件,请创建一个cryst.map包含内容的小文件

 cryst cryst1 <cryst.pfb

把它放进去texmf-local/fonts/map/cryst

然后在命令行上运行

 mktexlsr

 updmap-sys --enable Map=cryst.map

相关内容