![如何最好地分割长字符串?](https://linux22.com/image/261349/%E5%A6%82%E4%BD%95%E6%9C%80%E5%A5%BD%E5%9C%B0%E5%88%86%E5%89%B2%E9%95%BF%E5%AD%97%E7%AC%A6%E4%B8%B2%EF%BC%9F.png)
我想对\StrSplit
我拥有的字符串做一个简单的操作(来自 xstring 包),但是,所讨论的字符串可能包含一个\par
,并且看起来\@xs@StrSpl@t@@
,我只能想象它是一个内部 xstring 宏,不是一个长宏,所以它会导致错误。
\par
有什么解决方法吗?其他具有类似功能的软件包可以接受长字符串吗?暂时删除然后再放回去的方法是什么?
编辑:我实际上只需要分离第一个字符,因此如果有办法直接在任意字符串上执行此操作(具有的语义\noexpand
),那么这也可以行得通。
答案1
您可以尝试这样做来获取第一个字符:
\documentclass{article}
\begin{document}
\makeatletter
\long\def\test#1{%
\long\def\getfirstchar##1##2;{%
\def\storeone{##1}
}
\getfirstchar#1;
}
\makeatother
\test{This is \par something}
\storeone
\end{document}
该宏获取第一个字母并将其存储到另一个名为的宏中,storeone.
我不确定您到底想做什么,除了获取第一个字母之外,也许您可以稍微扩展一下您的问题。您也可以查看source2e
,有类似的命令,例如\@firstoftwo
。