我想使用 xstring 版本 1.7。但是 ş 和 ç 会导致问题。例如
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{xstring}
\begin{document}
\StrSubstitute{ş}{a}{b}
\end{document}
会产生一长串错误,例如:
! Illegal parameter number in definition of \@xs@arg@ii.
我正在使用带有 utf8 选项的编码包,其他字符(例如 ö、ü 和 ğ)都可以。
编辑:这是 mwe 的完整拼写。
答案1
包默认xstring
使用\edef
扩展参数,然后命令可以像 UTF8 字符一样中断。
可以更改扩展模式,例如\noexpandargs
完全阻止扩展。它可以在组内使用,也可以保存扩展模式并在之后恢复:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{xstring}
\begin{document}
\saveexpandmode
\noexpandarg
\StrSubstitute{ş}{a}{b}
\restoreexpandmode
\end{document}