Estoy intentando guardar todas mis personalizaciones y fuentes en una carpeta de activos para poder usarla en varios documentos y mantener los mismos estilos. Desafortunadamente, cada vez que intento colocar las fuentes en una ruta de dos niveles de profundidad, no puedo compilar el documento. Recibo el error:
! error: (type 2): cannot find file ''
! ==> Fatal error occurred, no output PDF file produced!
A continuación se trabaja:
\newcommand{\fontmercury}{\setmainfont[Path = ./fonts/,
BoldFont=mercurybd.ttf,
ItalicFont=mercuryi.ttf,
BoldItalicFont=mercurybi.ttf
]{mercury.ttf}
}
Esto no funciona:
\newcommand{\fontmercury}{\setmainfont[Path = ./assets/fonts/,
BoldFont=mercurybd.ttf,
ItalicFont=mercuryi.ttf,
BoldItalicFont=mercurybi.ttf
]{mercury.ttf}
}
La ruta es correcta, simplemente genera un error cada vez que voy a más de un nivel de profundidad.
EDITAR: lo descubrí. Fue el problema del caché discutido aquí. Eliminar la carpeta otl en mi caso permitió que se compilara.LuaTeX no puede encontrar la fuente existente
Respuesta1
Además de eliminar el directorio desactualizado otl
, también debería considerar usar una configuración diferente para \fontmercury
. El fontspec
paquete proporciona la \newfontfamily
directiva. En el caso que nos ocupa, utilizarla \newfontfamily
parecería más eficaz que emitir una \setmainfont
directiva. Podría insertar las siguientes instrucciones en el preámbulo:
\newfontfamily{\mercury}{mercury.ttf}%
[Path = ./fonts/,
BoldFont = mercurybd.ttf,
ItalicFont = mercuryi.ttf,
BoldItalicFont = mercurybi.ttf]
\newcommand{\fontmercury}[1]{{\mercury #1}}
Luego, en el cuerpo del documento, escribirías
\fontmercury{...}
Respuesta2
Supongo que publicaría esto como respuesta ya que no estoy seguro de cómo marcarlo como respondido. Pero lo descubrí poco después de publicarlo. Yo uso TeXLive + TeXWorks. Entonces eliminé la carpeta otl en la ruta C:\texlive\2017\texmf-var\luatex-cache\generic\fonts\otl
. Funcionó a la hora de crear el documento posterior.
Más detalles:LuaTeX no puede encontrar la fuente existente