为什么?有解决办法吗?
\documentclass{article}
\usepackage[utf8]{inputenc}
\inputencoding{latin1}
\usepackage{xparse}
\usepackage{etoolbox}
\ExplSyntaxOn
\tl_const:Nx \lang_and
{
croatian=i,
czech=a,
hungarian=\'es,
% romanian=\c{s}i, % ERROR: Illegal parameter number in definition of \erw_foo.
slovak=a,
slovenian=in
}
\ExplSyntaxOff
\begin{document}
\ifcsdef{c}{
romanian=\c{s}i,
}{}
\end{document}
答案1
因为 \c 不可扩展(\' 也不可扩展:请尝试 \show \lang_and 查看),并且它会因 x 扩展而爆炸。请使用 \tl_const:Nn 或使用 \exp_not:n { romanian=\c{s}i } 来避免 \c 的扩展 – Phelype Oleinik
答案2
我看不出有什么理由
\inputencoding{latin1}
加载后utf8
;- 一个标记列表常量;
x
扩张。
最有可能的是你想要
\prop_gset_from_keyval:Nn \g_erwann_lang_and_prop
{
croatian=i,
czech=a,
hungarian=\'es,
romanian=\textcommabelow{s}i,
slovak=a,
slovenian=in
}