当我执行\msg_new:nnnn { module } { errorname } { explenation }
然后\msg_warning { module } { errorname }
我得到Package module Warning:
。我怎样才能让它说Class module Warning:
或LaTeX Warning:
?我尝试使用LaTeX
而不是 ,module
这似乎对错误有效,但对警告无效。我也尝试过class
而不是module
,但这并没有真正起作用。
以下是 MWE:
% Get rid of warnings for filecontents:
\RequirePackage{silence}
\WarningFilter[filecontents]{latex}{Writing or overwriting}
\WarningFilter[filecontents]{latex}{You have requested document class}
\ActivateWarningFilters[filecontents]
% Create class:
\begin{filecontents}[overwrite]{myclass.cls}
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{Code/CV}[2022/06/06 Curriculum Vitae]
\LoadClass[a4paper]{article}
% Class warning/error:
\ExplSyntaxOn
\msg_new:nnn { Class } { class warning } { this~is~some~class~warning }
\msg_new:nnn { Class } { class error } { this~is~some~class~error }
\msg_error:nn { Class } { class error }
\msg_warning:nn { Class } { class warning }
\ExplSyntaxOff
\endinput
\end{filecontents}
\documentclass{myclass}
% Create Package:
\begin{filecontents}[overwrite]{mypack.sty}
% Package warning/error:
\ExplSyntaxOn
\msg_new:nnn { mypack } { mypack error } { this~is~some~package~error.}
\msg_new:nnn { mypack } { mypack warning } { this~is~some~package~warning.}
\msg_warning:nn { mypack } { mypack warning }
\msg_error:nn { mypack } { mypack error }
\ExplSyntaxOff
\endinput
\end{filecontents}
\usepackage{mypack}
\begin{document}
% LaTeX3 warning/error:
\ExplSyntaxOn
\msg_new:nnn { LaTeX } { LaTeX error } { this~is~some~LaTeX~error}
\msg_new:nnn { LaTeX } { LaTeX warning } { this~is~some~LaTeX~error}
\msg_error:nn { LaTeX } { LaTeX error }
\msg_warning:nn { LaTeX } { LaTeX warning}
\ExplSyntaxOff
This is a PDF
\end{document}
由于某种原因,LaTeX3 警告未显示,类错误和警告不正确。这里的问题是什么?我希望它Class myclass error:
像命令\ClassError{myclass}{ }{ }
那样显示。我在这里做错了什么?
答案1
该l3msg
模块包含此映射的全局属性列表。只需将您的类添加到该属性列表中:
\prop_gput:Nnn \g_msg_module_type_prop { mythingy } { Class }