如何定义一个命令,使它可以接受一个2个汉字的字符串作参数,并自动在中间插入一个空格?

发布于 2025-05-09 09:56:26

例如,我想输入余\quad 华,就是在“余”和“华”中间插入一个空格,比较朴素的想法是把“余”当作#1,把“华”当作#2,这样的命令就需要两个参数,形如\mycmd{余}{华},在写文档时,就必须将人名拆开,可能影响写作思路。

于是就有需求:只需要输入“余华”,然后这个命令自动在中间插入一个空格。形如\mycmd{余华},直接得到结果余\quad 华

考虑到这个命令专门用来输入那些只有两个字的中文人名,即单姓加单名,所以不会考虑含有西文、三字人名、复姓等复杂情况。


联想到\frac{1}{2}其实等同于\frac12。于是其实本质上还是需要两个参数。但是并不想在键入命令时麻烦地输入两个参数。

查看更多

关注者
0
被浏览
232
雾月
雾月 2025-05-09
这家伙很懒,什么也没写!

X-Y problem?
你想要的是在两个字符中间插入任何东西,只要这些字符连同它中间的东西一共是三个字符的宽度就行?还是要保证不论输入几个字符,总宽度固定就行?还是不论输为何,其最终结果是两个汉字,然后在两个汉字中间插入 \quad?还是就是给定两汉字,中间插入 \quad

这几个问题难度不同,解决办法可以说是完全不同。最简单就是第四个,这种你可以直接写 \newcommand\mycmd[2]{#1\quad#2}\mycmd 余华。对于第一个问题还可以还可以看 xecjk 的文档,它有分散对齐汉字的环境。

1 个回答

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览