以随机顺序打印宏的参数

以随机顺序打印宏的参数

我有以下(简化的) LaTeX 代码,它只是打印其所有参数。

\newcommand{\mm}[4]{#1 #2 #3 #4}

现在,我想将参数打印在随机顺序例如#2 #1 #4 #3。这可能吗?如果可以,怎么做?

答案1

看来这段代码正在做我想要的事情:

\documentclass{article}
\usepackage{xstring}
\input random
\newcount\randnum
\newcommand\argrandom[4]{%
    \def\listarg{{#1}{#2}{#3}{#4}}%
    \setrannum\randnum{1}{4}%
    \StrChar{\listarg}{\randnum}[\mychar]
    \StrDel{\listarg}{\mychar}[\listarg]\mychar\ 
    \setrannum\randnum{1}{3}%
    \StrChar{\listarg}{\randnum}[\mychar]\mychar\ 
    \StrDel{\listarg}{\mychar}[\listarg]%
    \setrannum\randnum{1}{2}%
    \StrChar{\listarg}{\randnum}[\mychar]\mychar\ 
    \StrDel{\listarg}{\mychar}%
}
\begin{document}
\argrandom{un}{deux}{trois}{quatre}
\end{document}

感谢 nino_ras此链接回答我的问题。

相关内容