如何获取变量赋值的两个或多个值的最大值/最小值

如何获取变量赋值的两个或多个值的最大值/最小值

我想根据两个值的最大值动态分配一个变量。我看到max这里使用了一个函数:https://tex.stackexchange.com/a/505352/194783。尽管我看不出它是如何使用的。

另外,我想了解其他选项以及最佳选项是什么。

相关问题:

答案1

您可以创建宏,\maxvalue例如:

\def\maxvalue(#1,#2){\ifnum #1>#2 #1\else #2\fi}

\newcount\num
\num=\maxvalue(10,11)

\the\num % prints 11

\bye

答案2

您可以利用 TeX 中的长度始终被标准化的事实pt,并将l3-fp长度转换为其以点为单位的值。

\documentclass{article}

\ExplSyntaxOn

\NewExpandableDocumentCommand{\maxlength}{m}
 {
  \fp_eval:n { max(#1) } pt
 }

\ExplSyntaxOff

\newlength{\testlen}

\begin{document}

\setlength{\testlen}{\maxlength{1pt,2pt,3pt}}

\the\testlen

\maxlength{45pt,0.5\textwidth,20cm}---\the\dimexpr20cm\relax

\maxlength{45pt,3\textwidth,20cm}---\the\dimexpr3\textwidth\relax

\edef\test{\maxlength{600pt,\textwidth,6cm}}

\texttt{\meaning\test}

\end{document}

在此处输入图片描述

与往常一样,对于旧版本的 LaTeX,您可能需要\usepackage{xparse}

相关内容