Установка локального шрифта на MacTex 2020 на Catalina

Установка локального шрифта на MacTex 2020 на Catalina

[Предыстория: исчерпав место и терпение, я очистил системный диск и переустановил Catalina с нуля. Теперь я переустанавливаю все приложения, которые я все еще использую, одно за другим.] Я установил MacTex сhttp://www.tug.org/mactex/mactex-download.htmlи это в основном работает, но мне нужно установить дополнительный несвободный шрифт Sabon, на который у меня есть лицензия и соответствующие файлы. Заметки для себя несколько лет назад говорят мне, что (учитывая файл sabon2.tgz, который я подготовил в свое время, который содержит структуру каталогов с кучей файлов, относящихся к Sabon), я должен создать персональный каталог texmf в . ~/Library/texmf/Там,

tar zxvf sabon2.tgz
texhash
updmap --enable Map=psb.map

Этот рецепт, который я адаптировал из чего-то, что работало на Linux, успешно работал у меня на Mac где-то в 2017 году. Если я что-то и менял за это время, то забывал это записывать. Однако, когда я попробовал свои собственные инструкции сегодня, они не сработали. Texhash сказал, что куча каталогов недоступна для записи:

$ texhash
texhash: /usr/local/texlive/2020/texmf-config: directory not writable. Skipping...
texhash: /usr/local/texlive/2020/texmf-dist: directory not writable. Skipping...
texhash: /usr/local/texlive/2020/texmf-var: directory not writable. Skipping...
texhash: /usr/local/texlive/texmf-local: directory not writable. Skipping...
texhash: Done.

Я обошел это, запустив texhash как sudo, хотя я не уверен, что это то, что я должен был сделать. FAQ QM05 наhttps://tug.org/mactex/faq/faq.html#qm05говорит, что не обязательно запускать texhash при добавлении файлов в ~/Library/texmf, поэтому я предполагаю, что этот шаг стал ненужным в 2020 году. Хорошо, идем дальше. Следующая ошибка:

$ updmap --enable Map=psb.map
updmap [ERROR]: Either -sys or -user mode is required.
updmap [ERROR]: In nearly all cases you should use updmap -sys.
updmap [ERROR]: For special cases see https://tug.org/texlive/scripts-sys-user.html

После сообщения об ошибке я добавляю -sys...

$ updmap -sys --enable Map=psb.map
updmap will read the following updmap.cfg files (in precedence order):
  /usr/local/texlive/2020/texmf-dist/web2c/updmap.cfg
updmap may write changes to the following updmap.cfg file:
  /usr/local/texlive/2020/texmf-config/web2c/updmap.cfg
updmap: can't write to /usr/local/texlive/2020/texmf-config/web2c/updmap.cfg: Permission denied at /Library/TeX/texbin/updmap line 1589.

...но снова ошибка разрешения. Здесь я тоже добавляю sudo и повторяю попытку:

$ sudo updmap -sys --enable Map=psb.map
updmap [WARNING]: resetting $HOME value (was /Users/XXX) to root's actual home (/var/root).
updmap will read the following updmap.cfg files (in precedence order):
  /usr/local/texlive/2020/texmf-dist/web2c/updmap.cfg
updmap may write changes to the following updmap.cfg file:
  /usr/local/texlive/2020/texmf-config/web2c/updmap.cfg
Creating new config file /usr/local/texlive/2020/texmf-config/web2c/updmap.cfg
dvips output dir: "/usr/local/texlive/2020/texmf-var/fonts/map/dvips/updmap"
pdftex output dir: "/usr/local/texlive/2020/texmf-var/fonts/map/pdftex/updmap"
dvipdfmx output dir: "/usr/local/texlive/2020/texmf-var/fonts/map/dvipdfmx/updmap"
updmap [ERROR]: The following map file(s) couldn't be found:
updmap [ERROR]:     psb.map (in /usr/local/texlive/2020/texmf-config/web2c/updmap.cfg)
updmap [ERROR]: Did you run mktexlsr?

    You can disable non-existent map entries using the option
      --syncwithtrees.

Я полагаю, что причина, по которой updmap не может найти psb.map, заключается в том, что psb.map находится в моем пользовательском ~/Library/texmf, но если я запускаю updmap как root, то он не ищет в этом месте. С другой стороны, если я запускаю его как я, он не может обновить файл.

Благодаря этому вопросу,Проблемы с установкой локальных шрифтов, я обнаружил, что могу написать updmap-sys без пробела, и это будет работать без sudo:

$ updmap-sys --enable Map=psb.map
updmap will read the following updmap.cfg files (in precedence order):
  /usr/local/texlive/2020/texmf-config/web2c/updmap.cfg
  /usr/local/texlive/2020/texmf-dist/web2c/updmap.cfg
updmap may write changes to the following updmap.cfg file:
  /usr/local/texlive/2020/texmf-config/web2c/updmap.cfg
/usr/local/texlive/2020/texmf-config/web2c/updmap.cfg unchanged.  Map files not recreated.
updmap: Updating ls-R files.

И теперь этот файл содержал единственную строку «Map psb.map»:

$ cat /usr/local/texlive/2020/texmf-config/web2c/updmap.cfg
Map psb.map

Однако при компиляции заведомо исправного tex-файла, использующего Sabon, я получил

$ pdflatex test.tex 
...
kpathsea: Running mktexpk --mfmode / --bdpi 600 --mag 1+264/600 --dpi 864 psbb8r
mktexpk: don't know how to create bitmap font for psbb8r.
mktexpk: perhaps psbb8r is missing from the map file.
kpathsea: Appending font creation commands to missfont.log.
(see the transcript file for additional information)
!pdfTeX error: pdflatex (file psbb8r): Font psbb8r at 864 not found
 ==> Fatal error occurred, no output PDF file produced!

Зачем он вообще хочет создавать какие-то растровые шрифты? Мне просто нужны векторные шрифты. Сейчас уже не 20-й век.

Что я упускаю и что мне следует делать вместо этого?

решение1

После некоторого обсуждения в комментариях наилучшим решением было распаковать файлы в свой TEXMFLOCALкаталог (Здесь, /usr/local/texlive/texmf-local), а не TEXMFHOME(Здесь, ~/Library/texmf).

MacTeX FAQ рекомендует помещать локальные файлы в последнее, но 8-битные карты шрифтов являются исключением. Вы никогда не захотите работать updmapв пользовательском режиме. Это ловушка, которая переопределит ваши системные карты шрифтов вместо того, чтобы дополнять их, и будет становиться все более и более устаревшей по мере обновления вашего системного дерева. Однако updmap-sysне ищет TEXMFHOME.

Связанный контент