我想根据两个值的最大值动态分配一个变量。我看到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}
。