以下 MWE 对我来说不起作用:
% !TeX program = LuaLaTeX
% !TeX encoding = UTF-8
\documentclass{minimal}
\RequirePackage{silence}
\ErrorFilter*{fontspec}{The}
\RequirePackage{fontspec}
\setmainfont{DoesNotExist}
\begin{document}
It was a dark and stormy night.
\end{document}
我的目标是过滤掉上面fontspec
提到的错误消息The font "DoesNotExist" cannot be found.
,我使用“The”作为唯一的过滤词,因为我不确定它是否fontspec
在消息中加入了不间断空格。从silence
软件包文档中,我预计带星号的命令将在编译期间过滤错误消息。但结果并不理想。
可能是fontspec
,或者luatex
,或者expl3
fontspec.sty 中使用的语法与不兼容silence
?还是我做错了什么?
我的最终目标是捕捉fontspec
特定字体的错误,并替换对我更有帮助的错误消息。
答案1
该silence
包对所生成的消息不做任何操作fontspec
,而是使用这些expl3
功能。
错误信息是
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
! fontspec error: "font-not-found"
!
! The font "DoesNotExist" cannot be found.
!
! See the fontspec documentation for further information.
!
! For immediate help type H <return>.
!...............................................
如果您想消除警告或错误消息,有一个简单的重定向机制:
\documentclass{article}
\usepackage{fontspec}
\ExplSyntaxOn
\msg_redirect_name:nnn { fontspec } { font-not-found } { none }
\ExplSyntaxOff
\setmainfont{DoesNotExist}
\begin{document}
It was a dark and stormy night.
\end{document}
然而,这最终会导致较低级别的错误消息:
! Font \EU2/DoesNotExist(0)/m/n/10=DoesNotExist:mode=node;+tlig; at 10pt not lo
adable: metric data not found or bad.