
[Antecedentes: sem espaço e paciência, limpei a unidade do sistema e reinstalei o Catalina do zero. Agora estou reinstalando todos os aplicativos que ainda uso, um por um.] Instalei o MacTex dehttp://www.tug.org/mactex/mactex-download.htmle funciona em grande parte, mas preciso instalar uma fonte não gratuita adicional, Sabon, para a qual tenho uma licença e os arquivos relevantes. As notas para mim mesmo de alguns anos atrás me dizem que (dado um arquivo sabon2.tgz que preparei de cada vez, que contém uma estrutura de diretórios com vários arquivos relevantes para o Sabon), eu deveria criar um diretório texmf pessoal em ~/Library/texmf/
. Lá,
tar zxvf sabon2.tgz
texhash
updmap --enable Map=psb.map
Esta receita, que adaptei de algo que funcionava no Linux, funcionou com sucesso para mim no Mac por volta de 2017. Se eu mudei alguma coisa nesse meio tempo, esqueci de anotar. Quando tentei minhas próprias instruções hoje, porém, elas não funcionaram. Texhash disse que vários diretórios não eram graváveis:
$ 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.
Eu contornei isso executando texhash como sudo, embora não tenha certeza se era isso que deveria fazer. Perguntas frequentes QM05 emhttps://tug.org/mactex/faq/faq.html#qm05diz que não é necessário executar texhash ao adicionar arquivos a ~/Library/texmf, então presumo que esta etapa se tornou desnecessária em 2020. OK, então seguimos em frente. Próxima falha:
$ 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
Após a mensagem de erro, adiciono -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.
... mas novamente um erro de permissão. Aqui também adiciono sudo e tento novamente:
$ 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.
Imagino que a razão pela qual o updmap não conseguiu encontrar o psb.map é porque o psb.map está no ~/Library/texmf do meu usuário, mas se eu executar o updmap como root, ele não estará pesquisando naquele local. Por outro lado, se eu executá-lo como eu, ele não poderá atualizar o arquivo.
Graças a esta pergunta,Problemas de instalação de fontes locais, descobri que poderia escrever updmap-sys sem espaço e que funcionaria sem 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.
E esse arquivo agora continha a única linha "Map psb.map":
$ cat /usr/local/texlive/2020/texmf-config/web2c/updmap.cfg
Map psb.map
No entanto, ao compilar um arquivo tex em bom estado que usava Sabon, obtive
$ 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!
Por que ele deseja criar fontes bitmap em primeiro lugar? Eu só quero fontes vetoriais de qualquer maneira. Não estamos mais no século XX.
O que estou perdendo e o que devo fazer?
Responder1
Após alguma discussão nos comentários, a melhor solução foi descompactar os arquivos no seu TEXMFLOCAL
diretório (Aqui, /usr/local/texlive/texmf-local
), em vez de TEXMFHOME
(Aqui, ~/Library/texmf
).
O FAQ do MacTeX recomenda colocar arquivos locais neste último, mas mapas de fontes de 8 bits são uma exceção. Você nunca quer executar updmap
no modo de usuário. É uma armadilha que substituirá os mapas de fontes do sistema em vez de complementá-los e ficará cada vez mais desatualizada à medida que você atualizar a árvore do sistema. Porém, updmap-sys
não pesquisa TEXMFHOME
.