Я пытаюсь разместить все свои настройки и шрифты в папке активов, чтобы я мог использовать их в нескольких документах и поддерживать те же стили. К сожалению, всякий раз, когда я пытаюсь поместить шрифты в путь на два уровня глубже, я не могу скомпилировать документ. Я получаю ошибку:
! error: (type 2): cannot find file ''
! ==> Fatal error occurred, no output PDF file produced!
Ниже представлены работы:
\newcommand{\fontmercury}{\setmainfont[Path = ./fonts/,
BoldFont=mercurybd.ttf,
ItalicFont=mercuryi.ttf,
BoldItalicFont=mercurybi.ttf
]{mercury.ttf}
}
Это не работает:
\newcommand{\fontmercury}{\setmainfont[Path = ./assets/fonts/,
BoldFont=mercurybd.ttf,
ItalicFont=mercuryi.ttf,
BoldItalicFont=mercurybi.ttf
]{mercury.ttf}
}
Путь правильный, просто выдает ошибку каждый раз, когда я углубляюсь более чем на один уровень.
EDIT: Я разобрался. Это была проблема с кэшем, о которой здесь говорили. Удаление папки otl в моем случае позволило скомпилировать.LuaTeX не может найти существующий шрифт
решение1
В дополнение к удалению устаревшего otl
каталога, вам также следует рассмотреть возможность использования другой настройки для \fontmercury
. fontspec
Пакет предоставляет \newfontfamily
директиву. В рассматриваемом случае использование \newfontfamily
кажется более эффективным, чем выдача \setmainfont
директивы. Вы можете вставить следующие инструкции в преамбулу:
\newfontfamily{\mercury}{mercury.ttf}%
[Path = ./fonts/,
BoldFont = mercurybd.ttf,
ItalicFont = mercuryi.ttf,
BoldItalicFont = mercurybi.ttf]
\newcommand{\fontmercury}[1]{{\mercury #1}}
Затем в тексте документа вы пишете:
\fontmercury{...}
решение2
Думаю, я опубликую это как ответ, так как не уверен, как отметить это как ответ. Но я разобрался вскоре после публикации. Я использую TeXLive + TeXWorks. Поэтому я удалил папку otl в path C:\texlive\2017\texmf-var\luatex-cache\generic\fonts\otl
. Это сработало, когда дело дошло до сборки документа после.
Подробнее:LuaTeX не может найти существующий шрифт