10 如何通过一个命令,往几个连续的汉字中添加相同的水平空白?

发布于 2025-08-21 22:32:15

现有一个需求,欲往甲乙丙丁这四个字中,在后面添加一个\quad,而后面不管。

一个命令设想是\AddMyTextSpace{<arg1>}{<arg2>}
其中<arg1>是要添加的东西,例如上面提到的\quad
<arg2>是要排版的文本,例如上面提到的甲乙丙丁。它通常只是很短的数个连续的汉字,不带标点符号、非汉字字符、数学公式、用命令排版的文本(例如:使用\def\textlipsuma{Aa}然后把\texlipsuma写到正文区中)等。

一个希望的效果是:输入\AddMyTextSpace{\quad }{甲乙丙丁},其效果等同于甲\quad 乙\quad 丙\quad 丁

最小工作示例:

% !TeX program = xelatex
\documentclass{ctexart}
\usepackage[scale=.85,showframe,papersize={10.5cm,14.85cm},centering]{geometry}
\NewDocumentCommand{\AddMyTextSpace}{mm}{???}
\begin{document}
\AddMyTextSpace{\quad }{甲乙丙丁}。

甲\quad 乙\quad 丙\quad 丁。
\end{document}

查看更多

关注者
0
被浏览
98
1 个回答
鱼香肉丝没有鱼先生
脾气不好,别来惹我!!!
\documentclass{ctexart}
\usepackage[scale=.85,showframe,papersize={10.5cm,14.85cm},centering]{geometry}
\ExplSyntaxOn
\NewDocumentCommand{\AddMyTextSpace}{mm}{
    \int_step_inline:nn { \tl_count:n { #2 } } {
        \tl_item:nn { #2} { ##1 }
        \int_compare:nF { ##1 = \tl_count:n { #2 } }{ #1 }
    }
}
\ExplSyntaxOff
\begin{document}
\AddMyTextSpace{\quad }{甲乙丙丁}。

\end{document}

撰写答案

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

发布
问题

分享
好友

手机
浏览

扫码手机浏览