一旦出现以下(工作)定义
\newcommand
{\TESTFRACTION}
{%
\makebox
[\widthof{${}\left(\frac{a}{1}\right){}$}]
{${}\left(\frac{b}{1}\right){}$}
}
更改为也包括高度
\newcommand
{\TESTFRACTION}
{%
\makebox
(\widthof{${}\left(\frac{a}{1}\right){}$},
\heightof{${}\left(\frac{a}{1}\right){}$})
{${}\left(\frac{b}{1}\right){}$}
}
! Missing number, treated as zero.
\TESTFRACTION
在方程环境内使用的同一行上产生了错误。
以下是一个工作版本,可作为尝试获取\makebox' accept, both, width and height using
\widthof and
\heightof` 的脚手架
\documentclass{standalone}
\usepackage[alignedleftspaceno]{amsmath}
\usepackage{calc}
\usepackage{tikz}
\newcommand
{\TESTFRACTION}
{%
\makebox
[\widthof{${}\left(\frac{a}{1}\right){}$}]
{${}\left(\frac{b}{1}\right){}$}
}
\begin{document}
\begin{tikzpicture}
\path node
{%
$%
\begin{gathered}
\TESTFRACTION
\end{gathered}
$
};
\end{tikzpicture}
\end{document}
答案1
也等待其他人,但我认为,parbox
最好做你想做的事:
我们与 parbox 合作:
\documentclass{standalone}
\usepackage[alignedleftspaceno]{amsmath}
\usepackage{calc}
\usepackage{tikz}
\newcommand
{\TESTFRACTION}
{%
\parbox[c]
[\heightof{${}\left(\frac{a}{1}\right){}$}][c]
{\widthof{${}\left(\frac{a}{1}\right){}$}}
{${}\left(\frac{b}{1}\right){}$}
}
\begin{document}
\begin{tikzpicture}
\path node
{
$%
\begin{gathered}
\TESTFRACTION
\end{gathered}
$
};
\end{tikzpicture}
\end{document}
我还认为,makebox
您尝试使用的版本必须在图片环境中使用。这会使事情变得与您的需求不符。
答案2
钛钾Z 与此无关:calc
相关计算在坐标中不可用,例如在 中\makebox(x,y){BOX}
。顺便说一句,坐标应该是 的倍数,\unitlength
而不是长度。
在这种情况下,你picture
也可以利用传递长度的能力,\widthof
但是\heightof
是不可能的。
\documentclass{standalone}
\usepackage{amsmath}
\usepackage{picture}
\usepackage{tikz}
\newlength{\TFW}\newlength{\TFH}
\newcommand{\TESTFRACTION}{%
\settowidth{\TFW}{$\left(\frac{a}{1}\right)$}%
\settoheight{\TFH}{$\left(\frac{a}{1}\right)$}%
\makebox(\TFW,\TFH){$\left(\frac{b}{1}\right)$}%
}
\begin{document}
\begin{tikzpicture}
\path node {%
$
\begin{gathered}
\TESTFRACTION
\end{gathered}
$%
};
\end{tikzpicture}
\end{document}