рдЬреИрд╕рд╛ рдХрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдПрдорд╕реАрдИ рджреНрд╡рд╛рд░рд╛ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдХрдХреНрд╖рд╛ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ "рдкреИрдХреЗрдЬ" рд╕рдВрджреЗрд╢ рд╣реЛрдиреЗ рдХрд╛ рджрд╛рд╡рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
\begin{filecontents*}[overwrite]{myclass.cls}
\ProvidesExplClass
{myclass}
{2021/04/26}
{0.1}
{
My Nice Class
}
\NeedsTeXFormat{LaTeX2e}
\LoadClass { article }
%
\msg_new:nnn {myclass} {Foo} {Bar}
\msg_warning:nn {myclass} {Foo}
\end{filecontents*}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass{myclass}
\begin{document}
\end{document}
рд▓рд┐рдЦрддрд╛ рд╣реИ:
рдкреИрдХреЗрдЬ myclass рдЪреЗрддрд╛рд╡рдиреА: рдмрд╛рд░
рдХреНрдпрд╛ l3msg
рдореЙрдбреНрдпреВрд▓ \ProvidesExplClass
рдФрд░ \ProvidesExplPackage
рдмреАрдЪ рдЕрдВрддрд░ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП?
рдпрд╣ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдЕрдкрдиреА рдлрд╝рд╛рдЗрд▓ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ \g_msg_module_type_prop
рдЬреЛрдбрд╝рдХрд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдмрддрд╛рдирд╛ рд╣реЛрдЧрд╛:
\prop_gput:Nnn \g_msg_module_type_prop { myclass } { Class }
рдФрд░ рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ рдЗрд╕рдХрд╛ рдирд╛рдо \g_msg_module_name_prop
:
\prop_gput:Nnn \g_msg_module_name_prop { myclass } { My~Nice~Class }
рддреЛ рдЖрдкрдХреЛ рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рдорд┐рд▓рддреА рд╣реИ рдЬреИрд╕реЗ:
Class My Nice Class Warning: Bar
рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ l3msg
рдпрджрд┐ \ProvidesExpl<Thing>
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛ рддреЛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЛ рд╕реНрд╡рддрдГ рднрд░ рд╕рдХрддрд╛ рд╣реИ...
рдореЗрдЧрд╛рд╡рд╛рдЯ:
\begin{filecontents*}[overwrite]{myclass.cls}
\ProvidesExplClass
{myclass}
{2021/04/26}
{0.1}
{
My Nice Class
}
\NeedsTeXFormat{LaTeX2e}
\LoadClass { article }
%
\prop_gput:Nnn \g_msg_module_type_prop { myclass } { Class }
\prop_gput:Nnn \g_msg_module_name_prop { myclass } { My~Nice~Class }
\msg_new:nnn {myclass} {Foo} {Bar}
\msg_warning:nn {myclass} {Foo}
\end{filecontents*}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass{myclass}
\begin{document}
\end{document}
рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐
l3msg
рдпрджрд┐\ProvidesExpl<Thing>
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛ рддреЛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЛ рд╕реНрд╡рддрдГ рднрд░ рд╕рдХрддрд╛ рд╣реИ...
рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛! :рдореБрд╕реНрдХреБрд░рд╛рдУ:
\ProvidesExpl...
рдФрд░ рдХреЛрдб рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдореЙрдбреНрдпреВрд▓ рдЙрдкрд╕рд░реНрдЧ рдХреЗ рдмреАрдЪ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖ рд╕рдВрдмрдВрдз рдирд╣реАрдВ рд╣реИ: рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдХрд░рдирд╛ рд╣реИред
рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдкреВрд░реА 'рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ expl3
рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП' - рдпрд╣ рдПрдХ рдРрд╕рд╛ рд╡рд┐рдЪрд╛рд░ рдерд╛ рдЬреЛ рдХрд╛рдлреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рдерд╛ред (рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ рдЕрднреА рднреА рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ, рд▓реЗрдХрд┐рди рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдирд╣реАрдВ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП, рдЬреЛ рдкреИрдХреЗрдЬ рдореЗрдВ рд╣реИред)
\ProvidesExpl...
рдФрд░ рдХреЛрдб рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдореЙрдбреНрдпреВрд▓ рдЙрдкрд╕рд░реНрдЧ рдХреЗ рдмреАрдЪ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖ рд╕рдВрдмрдВрдз рдирд╣реАрдВ рд╣реИ: рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдХрд░рдирд╛ рд╣реИред
рдореИрдВ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рдХреНрдпреЛрдВред
рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдкреВрд░реА 'рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ
expl3
рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП' - рдпрд╣ рдПрдХ рдРрд╕рд╛ рд╡рд┐рдЪрд╛рд░ рдерд╛ рдЬреЛ рдХрд╛рдлреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рдерд╛ред (рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ рдЕрднреА рднреА рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ, рд▓реЗрдХрд┐рди рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдирд╣реАрдВ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП, рдЬреЛ рдкреИрдХреЗрдЬ рдореЗрдВ рд╣реИред)
рдореБрдЭреЗ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛ рдХрд┐ рдРрд╕рд╛ рдХреНрдпрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ рдЬреЛ рдХрд╛рдлреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
\ProvidesExpl...
рдФрд░ рдХреЛрдб рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рдореЙрдбреНрдпреВрд▓ рдЙрдкрд╕рд░реНрдЧ рдХреЗ рдмреАрдЪ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖ рд╕рдВрдмрдВрдз рдирд╣реАрдВ рд╣реИ: рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдХрд░рдирд╛ рд╣реИредрдореИрдВ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рдХреНрдпреЛрдВред
\ProvidesExplClass
рдореЗрдВ рд╡рд░реНрдЧ рдХрд╛ рдирд╛рдо рдХреЛрдб рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдЙрдкрд╕рд░реНрдЧ рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддрд╛ рд╣реИред рдпрд╛ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреИрдХреЗрдЬ рдФрд░ рд╡рд░реНрдЧ рджреЛрдиреЛрдВ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдореИрдВ рдЗрд╕реЗ LaTeX2e рд╢рдмреНрджреЛрдВ рдореЗрдВ achemso
рдореЗрдВ рдХрд░рддрд╛ рд╣реВрдВ), рдЗрд╕рд▓рд┐рдП рд▓рд┐рдВрдХ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред
рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдкреВрд░реА 'рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ
expl3
рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП' - рдпрд╣ рдПрдХ рдРрд╕рд╛ рд╡рд┐рдЪрд╛рд░ рдерд╛ рдЬреЛ рдХрд╛рдлреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рдерд╛ред (рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ рдЕрднреА рднреА рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ, рд▓реЗрдХрд┐рди рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдирд╣реАрдВ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП, рдЬреЛ рдкреИрдХреЗрдЬ рдореЗрдВ рд╣реИред)рдореБрдЭреЗ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛ рдХрд┐ рдРрд╕рд╛ рдХреНрдпрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ рдЬреЛ рдХрд╛рдлреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдХрдХреНрд╖рд╛рдПрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реНрд╡рд░реВрдкрдг/рд╢реИрд▓реА/рдЖрджрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдирд╣реАрдВред рдЙрддреНрддрд░рд╛рд░реНрджреНрдз рдХреЛ рд╕рдВрдХреБрд▓ рджреНрд╡рд╛рд░рд╛ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреЛ рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рдЙрди рд╡рд░реНрдЧреЛрдВ рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд╣реЛрдЧрд╛ рдЬрд┐рдирдХрд╛ рд╡реЗ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдЖрджрд░реНрд╢ рдирд╣реАрдВ рд╣реИ, рдФрд░ рд╢реБрд░реБрдЖрдд рдореЗрдВ \ProvidesExpl...
рд╕реЗрдЯ рдХреЛ LaTeX2e рдХрд░реНрдиреЗрд▓ рд╕реЗ рдХреЗрд╡рд▓ \Provides...
рдХреЛ рдорд┐рд░рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд▓реЗрдХрд┐рди рдЕрдВрдд рдореЗрдВ рдпрд╣ рдЧрд▓рдд рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИ: _packages_ рдХреЛ expl3
рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, _classes_ рдХреЛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝- рдпрд╛ рдбрд┐рдЬрд╝рд╛рдЗрди-рд╕реНрддрд░реАрдп рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд┐рд╕реЗ _might_ expl3
рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдХрдХреНрд╖рд╛рдПрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реНрд╡рд░реВрдкрдг/рд╢реИрд▓реА/рдЖрджрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдирд╣реАрдВред
рдЬрд┐рд╕ рд╡рд░реНрдЧ рдкрд░ рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЙрд╕реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рдкрд╣рд▓реЗ рдкреГрд╖реНрда рдкрд░ рдПрдХ рдЧреНрд░рд╛рдлрд┐рдХ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП ... рдпрджрд┐ рдпрд╣ рдЧреНрд░рд╛рдлрд┐рдХ рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЕрдиреНрдпрдерд╛ рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП (рд▓реЙрдЧ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЪреЗрддрд╛рд╡рдиреА рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд)ред рдХреНрдпрд╛ рдпрд╣ рдбрд┐рдЬрд╛рдЗрди рдпрд╛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╣реИ?
рдореИрдВ рдХреЗ рдкреНрд░рд▓реЗрдЦрди рд▓реЗ рдЬрд╛рдХрд░ рд╣рд╛рде рдореЗрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж \g_msg_module_name_prop
рдФрд░ \g_msg_module_type_prop
рдореЗрдВ рдкрд╣рд▓реЗ l3msg
рдкреНрд░рд▓реЗрдЦрдиред
@dbitouze рдЬрдмрдХрд┐ рдЖрдк рдбрд┐рдЬрд╝рд╛рдЗрди рдмрдирд╛рдо рдХреЛрдб рдкрд░ рдПрдХ рдЕрдЪреНрдЫрд╛ рдкреНрд░рд╢реНрди рдкреВрдЫ рд░рд╣реЗ рд╣реИрдВ, рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╕рд╣реА рдЬрдЧрд╣ рд╣реИред рд╢рд╛рдпрдж рд╕реНрдЯреИрдХрдПрдХреНрд╕рдЪреЗрдВрдЬ рдкрд░ рдПрдХ рдкреНрд░рд╢реНрди рдкреЛрд╕реНрдЯ рдХрд░рдирд╛ рдФрд░ рдЯреАрдо рдХреЗ рд╕рджрд╕реНрдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдирд╛ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ? рдпрд╛ рд▓рд╛рдЯреЗрдХреНрд╕-рдПрд▓ рдореЗрд▓рд┐рдВрдЧ рд╕реВрдЪреА рдкрд░ рдПрдХ рдкреНрд░рд╢реНрдиред рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ред
рд╣реЛ рдЧрдпрд╛ ред
рдореИрдВ рдХреЗ рдкреНрд░рд▓реЗрдЦрди рд▓реЗ рдЬрд╛рдХрд░ рд╣рд╛рде рдореЗрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж
\g_msg_module_name_prop
рдФрд░\g_msg_module_type_prop
рдореЗрдВ рдкрд╣рд▓реЗl3msg
рдкреНрд░рд▓реЗрдЦрдиред
AFAICS, рдУрдкреА рдореЗрдВ MCE рдЕрднреА рднреА рд▓рд┐рдЦрддрд╛ рд╣реИ:
рдкреИрдХреЗрдЬ myclass рдЪреЗрддрд╛рд╡рдиреА: рдмрд╛рд░
pdflatex-dev
ред рдпрд╣рд╛рдБ рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рд╣реИ (рдкреНрд▓рд╕ рдлрд╝рд╛рдЗрд▓ рд╕реВрдЪреА):
This is pdfTeX, Version 3.141592653-2.6-1.40.22 (TeX Live 2021) (preloaded format=pdflatex-dev)
restricted \write18 enabled.
entering extended mode
(./test.tex
LaTeX2e <2021-12-01> pre-release-0 (develop 2021-6-6 branch)
L3 programming layer <2021-06-01>
LaTeX Warning: Writing or overwriting file `./myclass.cls'.
(./myclass.cls
Document Class: myclass 2021/04/26 v0.1 My Nice Class
(/usr/local/texlive/2021/texmf-dist/tex/latex-dev/base/article.cls
Document Class: article 2021/02/12 v1.4n Standard LaTeX document class
(/usr/local/texlive/2021/texmf-dist/tex/latex-dev/base/size10.clo))
Package myclass Warning: Bar
) (/usr/local/texlive/2021/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def)
(./test.aux) (./test.aux)
*File List*
myclass.cls 2021/04/26 v0.1 My Nice Class
article.cls 2021/02/12 v1.4n Standard LaTeX document class
size10.clo 2021/02/12 v1.4n Standard LaTeX file (size option)
l3backend-pdftex.def 2021-05-07 L3 backend support: PDF output (pdfTeX)
***********
)
No pages of output.
Transcript written on test.log.
@dbitouze рдХреНрдпрд╛ рдЖрдкрдиреЗ рдЖрд╡реЗрджрди рдХрд┐рдпрд╛ рд╣реИ
\prop_gput:Nnn \g_msg_module_type_prop { myclass } { Class }
рдмреНрд░реВрдиреЛ рдХреЗ рд╕рдВрджреЗрд╢ рдореЗрдВ "рдлрд┐рдХреНрд╕реНрдб" рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреЛ рдкрд╣рд▓реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рдерд╛ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреА рд▓рд╛рдЗрди рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреА рдЕрдм рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
@dbitouze рдХреНрдпрд╛ рдЖрдкрдиреЗ рдЖрд╡реЗрджрди рдХрд┐рдпрд╛ рд╣реИ
\prop_gput:Nnn \g_msg_module_type_prop { myclass } { Class }
рд╣рдо, рдирд╣реАрдВ, рдЧрд▓рддрдлрд╣рдореА рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИред
рдмреНрд░реВрдиреЛ рдХреЗ рд╕рдВрджреЗрд╢ рдореЗрдВ "рдлрд┐рдХреНрд╕реНрдб" рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреЛ рдкрд╣рд▓реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рдерд╛ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреА рд▓рд╛рдЗрди рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреА рдЕрдм рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рдмрд╣реБрдд рдмреБрд░рд╛: рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ (рдФрд░ рдЖрд╢рд╛ рд╡реНрдпрдХреНрдд рдХреА) рдлрд┐рдХреНрд╕ рдХреЛ рдЕрдм рд╡рд░реНрдЧ рд▓реЗрдЦрдХ рд╕реЗ рдХрд┐рд╕реА рднреА рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ: рдореБрд╕реНрдХрд╛рди: рдХреНрдпрд╛ рдпрд╣ рдпреЛрдЬрдирд╛рдмрджреНрдз рд╣реИ?
рдЬреИрд╕рд╛ рдХрд┐ @josephwright рдиреЗ рд╕рдордЭрд╛рдпрд╛ рдХрд┐ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдЙрдкрд╕рд░реНрдЧ рдФрд░ рд╡рд░реНрдЧ рдпрд╛ рдкреИрдХреЗрдЬ рдирд╛рдо рдХреЗ рдмреАрдЪ рдХреЛрдИ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдпреЛрдЧреНрдп рдХрдиреЗрдХреНрд╢рди рдирд╣реАрдВ рд╣реИред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ \ClassWarning
рдХрд╣рдиреЗ рдФрд░ рдлрд┐рд░ рдирд╛рдо рджреЗрдиреЗ рдХреА рдкреБрд░рд╛рдиреА 2e рдкрджреНрдзрддрд┐ рд╕реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрд▓рдЧ рдирд╣реАрдВ рд╣реИ, рдХреЗрд╡рд▓ рдЕрдм рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рдХрдиреЗрдХреНрд╢рди рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЕрддреАрдд рдореЗрдВ рдЖрдкрдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдХреЙрд▓ рдкрд░ рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдРрд╕рд╛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред \Class...
рдХрдорд╛рдВрдб рдФрд░ рдЙрд╕реЗ рдХреНрд▓рд╛рд╕ рдХрд╛ рдирд╛рдо рджреЗрдирд╛ред
рддреЛ "рдорд╛рдИрдХреНрд▓рд╛рд╕" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рд╕рдВрджреЗрд╢ рдкреНрд░рдгрд╛рд▓реА рдХреЛ рдкрд╛рд░рд┐рдд рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИ рдФрд░ рдЬрдм рд╣рдо рдЗрдВрд╕рд╛рди рд╕реЛрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдирд╛рдо рдореЗрдВ "рдХрдХреНрд╖рд╛" рджреЗрдЦрдиреЗ рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рд╡рд░реНрдЧ рд╣реИ рддреЛ рд╕рдВрджреЗрд╢ рдкреНрд░рдгрд╛рд▓реА рдЙрд╕ рдХрдЯреМрддреА рдХреЛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреА рд╣реИ (рдФрд░ рдпрд╣ рд╡реИрд╕реЗ рднреА рдЧрд▓рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ)ред рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рд╡рд░реНрдЧ рд▓реЗрдЦрдХ рд╕реЗ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдЕрддреАрдд рдореЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА рдЬрд╣рд╛рдВ рдЖрдкрдиреЗ \ClassWarning{<classname>}
рд▓рд┐рдЦрд╛ рдерд╛ред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рд╡рд░реНрдЧ рдХрд╛ рдирд╛рдо \ProvidesExplClass
рд▓рд┐рдП рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╕рдВрджреЗрд╢ рдореЗрдВ рдкреНрд░рдпреБрдХреНрдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЙрд╕ рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдкреИрдХреЗрдЬ рдирд╛рдо рд▓рдВрдмреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЙрдкрд╕рд░реНрдЧ рдХрд╛рдлреА рдХрдо рд╣реИрдВред рддреЛ рдЖрдкрдХреЛ рд╕рдВрджреЗрд╢ рдкреНрд░рдгрд╛рд▓реА рдХреЛ рдмрддрд╛рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдПрдХ рд╡рд░реНрдЧ рд╣реИред
рдЬрдм \ProvidesExplClass рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░
\g_msg_module_type_prop рдХреЛ рдкреНрд░рд╛рд░рдВрдн рдФрд░ рдЕрдВрдд рдХреЗ рдмреАрдЪ рд╕рдВрд╢реЛрдзрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
рдлрд╝рд╛рдЗрд▓ (рд╢рд╛рдпрдж рдХреЗрд╡рд▓ рддрднреА рдЪреЗрддрд╛рд╡рдиреА рджреЗрдВ рдЬрдм \msg_new:nnnn рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛ)ред
рдпрд╣ рдмрд╣реБрдд рдмрджрд╕реВрд░рдд рдирд╣реАрдВ рд▓рдЧрддрд╛, рдФрд░ рдпрд╣ рдЗрд╕ рдЖрд╕рд╛рди рдЧрд▓рддреА рд╕реЗ рдмрдЪ рд╕рдХрддрд╛ рд╣реИред
рд╣рдо рдХрд░ рд╕рдХрддреЗ рдереЗ, рд▓реЗрдХрд┐рди рдпрд╣ рдкреНрд░рддреНрдпреЗрдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рд▓рд┐рдП рдПрдХ рд░рдирдЯрд╛рдЗрдо рд▓рд╛рдЧрдд рд╣реИ рдЬрдмрдХрд┐ рддреНрд░реБрдЯрд┐ рдПрдХ рд╡рд░реНрдЧ рддреНрд░реБрдЯрд┐ рд╣реИ рдЬреЛ рд╕реНрд╡рдпрдВ рдХреЛ рдЧрд▓рдд (рд▓реЗрдХрд┐рди рд╣рд╛рдирд┐рд░рд╣рд┐рдд) рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд╕рд╛рде рдкреНрд░рдХрдЯ рдХрд░рддреА рд╣реИ рдФрд░ рдЗрд╕реЗ рдПрдХ рдмрд╛рд░ рдФрд░ рд╕рднреА рдХреЗ рд▓рд┐рдП рдЖрд╕рд╛рдиреА рд╕реЗ рдареАрдХ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рддреЛ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд░рдирдЯрд╛рдЗрдо рдЪреЗрдХ рдХреЗ рд╕рд╛рде рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдзреАрдорд╛ рдХрд░рдиреЗ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдирд╣реАрдВ рд╣реВрдВред рдЕрдЧрд░ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдЪреЗрдХ рд╡рд┐рдХрд▓реНрдк рдореЗрдВ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рд░рдирдЯрд╛рдЗрдо рд▓рд╛рдЧрдд рд╕рднреА рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдЫреЛрдЯреА рд╣реИрдВ рд▓реЗрдХрд┐рди рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░ рд╡реЗ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред