如何使用括号内的十进制计算图像的高度?

如何使用括号内的十进制计算图像的高度?

我有以下无法编译的 LaTeX 文件:

\documentclass{report}

\usepackage{calc}
\usepackage{graphicx}

\newcommand\AFiveHeight{210mm}

\newcommand\BodyToLayoutRatio{0.7}

\newcommand\Margin{3mm}

\newcommand\MarginRatio{0.67}

\begin{document}

  \includegraphics[height = \AFiveHeight * (1 - \BodyToLayoutRatio) / (1 + \MarginRatio) - \Margin * 2]{EAN.png}

\end{document}

此计算应确保 EAN 条形码整齐地位于封底的底部边缘,而不会侵占封面文本的正文区域。当然,我可以手动计算高度并对其进行硬编码,但如果可能的话,我想避免这样做,这样我就可以随时更改\BodyToLayoutRatio或并使文档仍然按预期显示,而无需进行任何进一步的更改。\MarginRatio

是否可能?如果是,那么执行此计算的正确语法是什么?

答案1

可以\fpevalxfp套餐一起使用。

长度将自动转换为单位点,因此您只需pt在末尾添加即可。

\documentclass{report}

\usepackage{graphicx}
\usepackage{xfp}

\newcommand\AFiveHeight{210mm}
\newcommand\BodyToLayoutRatio{0.7}
\newcommand\Margin{3mm}
\newcommand\MarginRatio{0.67}

\begin{document}

\noindent
\includegraphics[
  height =
  \fpeval{\AFiveHeight * (1 - \BodyToLayoutRatio) / (1 + \MarginRatio) - \Margin * 2}pt
]{example-image}

\end{document}

相关内容