因此使用 xparse 的代码如下:
\NewDocumentEnvironment{figwcommentary}{O{0.45} m m}
{ \adjustbox{valign=t} {\begin{minipage}{#1\textwidth} #2 \end{minipage} } }
{ \adjustbox{valign=t,right=0.5\textwidth}{ #3 } \bigskip}
那当然right=0.5\textwidth}
应该是无效的代码。right=(1-#1-.05)*\textwidth}
看起来 calc 或 fp 可以用于此,但我不知道如何引用传递的参数。
答案1
没有我想象的那么难:
\NewDocumentEnvironment{figwcommentary}{O{0.45} m m}
{
\FPeval\adjustedlen{1-#1-0.05}
\adjustbox{valign=t} {\begin{minipage}{#1\textwidth} #2 \end{minipage} } }
{ \adjustbox{valign=t,right=\adjustedlen\textwidth}{ #3 } \bigskip}