如何在 expl3 消息中添加反斜杠?

如何在 expl3 消息中添加反斜杠?

我的包裹里有几条这样的信息:

\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⟩,因此它适用于其他通常不易写出的字符,如\{\}#和。%

相关内容