下面的最小示例应将所有 # 字符替换为另一个符号。如果我使用\#
它来转义它,效果很好,但用户稍后应该能够直接输入它,例如输入哈希标签。
我知道#是一个特殊字符,但我想要一个不需要修改字符类和修补宏的解决方案(我们同时需要#作为特殊字符来获取参数值)。
仅供参考:此包的总体目标是创建“在 Twitter 上分享”链接。
\documentclass{minimal}
\usepackage{luacode}
\newcommand{\Test}[1]{
\luaexec{
local x = string.gsub("#1", "\#", "+")
tex.print(x)
}
}
\begin{document}
\Test{With backslash: \#} % Yields "Wit backslash: +"
\Test{Without backslash: #} % Yields "Without backslash: + +"
\end{document}
答案1
您应该在宏中##
写入:\#
\documentclass{minimal}
\usepackage{luacode}
\newcommand{\Test}[1]{
\luaexec{
local x = string.gsub("#1", "##", "+")
tex.print(x)
}
}
\begin{document}
\Test{With backslash: \#} % Throws an error as # is not processable in output
\Test{Without backslash: #} %
\end{document}