
[Antecedentes: al quedarme sin espacio y sin paciencia, limpié la unidad de mi sistema y reinstalé Catalina desde cero. Ahora estoy reinstalando todas las aplicaciones que todavía uso, una por una.] Instalé MacTex desdehttp://www.tug.org/mactex/mactex-download.htmly funciona en gran medida, pero necesito instalar una fuente adicional no gratuita, Sabon, para la cual tengo una licencia y los archivos pertinentes. Las notas para mí de hace unos años me dicen que (dado un archivo sabon2.tgz que preparé en un momento, que contiene una estructura de directorios con un montón de archivos relevantes para Sabon) debería crear un directorio texmf personal en ~/Library/texmf/
. Ahí,
tar zxvf sabon2.tgz
texhash
updmap --enable Map=psb.map
Esta receta, que adapté de algo que funcionaba en Linux, funcionó exitosamente para mí en Mac alrededor de 2017. Si cambié algo mientras tanto, olvidé anotarlo. Sin embargo, cuando probé mis propias instrucciones hoy, no funcionaron. Texhash dijo que no se podía escribir en varios directorios:
$ 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.
Lo solucioné ejecutando texhash como sudo, aunque no estoy seguro de que sea lo que se suponía que debía hacer. Preguntas frecuentes QM05 enhttps://tug.org/mactex/faq/faq.html#qm05dice que no es necesario ejecutar texhash al agregar archivos a ~/Library/texmf, por lo que supongo que este paso se ha vuelto innecesario en 2020. Bien, seguimos adelante. Próximo fracaso:
$ 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
Siguiendo el mensaje de error agrego -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.
...pero nuevamente un error de permiso. Aquí también agrego sudo y lo vuelvo a intentar:
$ 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.
Me imagino que la razón por la que updmap no pudo encontrar psb.map es porque psb.map está en ~/Library/texmf de mi usuario, pero si ejecuto updmap como root, entonces no busca en ese lugar. Por otro lado, si lo ejecuto como yo, no puede actualizar el archivo.
Gracias a esta pregunta,Problemas de instalación de fuentes locales, descubrí que podía escribir updmap-sys sin espacio y que funcionaría sin 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.
Y ese archivo ahora contenía la única línea "Map psb.map":
$ cat /usr/local/texlive/2020/texmf-config/web2c/updmap.cfg
Map psb.map
Sin embargo, al compilar un archivo tex en buen estado que usaba Sabon, obtuve
$ 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 qué quiere crear fuentes de mapa de bits en primer lugar? De todos modos, solo quiero fuentes vectoriales. Ya no estamos en el siglo XX.
¿Qué me falta y qué debería hacer en su lugar?
Respuesta1
Después de una discusión en los comentarios, la mejor solución fue descomprimir los archivos en su TEXMFLOCAL
directorio (Aquí, /usr/local/texlive/texmf-local
), en lugar de TEXMFHOME
(Aquí, ~/Library/texmf
).
Las preguntas frecuentes de MacTeX recomiendan colocar archivos locales en este último, pero los mapas de fuentes de 8 bits son una excepción. Nunca querrás ejecutar updmap
en modo de usuario. Es una trampa que anulará los mapas de fuentes de su sistema en lugar de complementarlos, y quedará cada vez más obsoleto a medida que actualice el árbol de su sistema. Sin embargo, updmap-sys
no busca TEXMFHOME
.