我的包裹里有几条这样的信息:
\msg_new:nnn { my-module }
{ something-not-define }
{ "#1"~cannot~be~defined,~a~command~with~the~same~name~has~already~existed. }
其中#1
是命令的名称。我想在它前面添加一个反斜杠,但不知道如何操作——我试过\string
或\protect
,但在最后一条消息中\string\ #1
却产生了一个额外的空格,而\string\#1
只是变成了。\#1
答案1
我通常使用\iow_char:N \\
:
\msg_new:nnn { my-module }
{ something-not-define }
{
"\iow_char:N \\#1"~cannot~be~defined,~a~command~
with~the~same~name~has~already~exists.
}
但你也可以使用\c_backslash_str
:
\msg_new:nnn { my-module }
{ something-not-define }
{
"\c_backslash_str #1"~cannot~be~defined,~a~command~
with~the~same~name~has~already~exists.
}
\c_backslash_str
是一个包含\
12 的字符串变量,同时\iow_char:N
将以下内容转换\⟨char⟩
为⟨char⟩
,因此它适用于其他通常不易写出的字符,如\{
、\}
、#
和。%