我有以下无法编译的 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
可以\fpeval
和xfp
套餐一起使用。
长度将自动转换为单位点,因此您只需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}