这是一个简单的公式,$$ \int_a^b f(x) \, dx $$
我该如何计算盒子高度?我如何四舍五入到最接近的倍数12pt
?
答案1
您可以使用\settoheight
和\settodepth
宏(它们接受两个参数)来测量基线上方的高度和下方的深度。对于 Computer Modern 字体和 10pt 的基本文档字体大小,显示14.0pt
样式和文本样式的积分公式的总高度分别为 25.1pt 和 。
要强制将公式的高度设置为24pt
(在显示样式的情况下)或12pt
(在文本样式的情况下),可以使用\resizebox*
指令。注意:不要使用\resizebox
,而要使用\resizebox*
。
\documentclass[10pt]{article}
\newlength\bxheight
\newlength\bxdepth
\newlength\bxtot
\newcommand\myint{\int_a^b f(x)\,dx} % store the formula (it gets used a lot)
\usepackage{graphicx} % for \resizebox macro
\usepackage{amsmath} % for \text macro
\usepackage{booktabs}
\begin{document}
\settoheight{\bxheight}{$\displaystyle\myint$}
\settodepth{\bxdepth}{$\displaystyle\myint$}
\setlength\bxtot{\dimexpr\bxheight+\bxdepth\relax}
$\displaystyle\myint$ has height \the\bxheight, depth \the\bxdepth, and total height \the\bxtot.
\medskip
\settoheight{\bxheight}{$\myint$}
\settodepth{\bxdepth}{$\myint$}
\setlength\bxtot{\dimexpr\bxheight+\bxdepth\relax}
$\myint$ has height \the\bxheight, depth \the\bxdepth, and total height \the\bxtot.
\[
\begin{array}{@{}lcc@{}}
& \text{natural size} & \text{rounded to nearest } \\
& & \text{multiple of 12pt} \\
\midrule
\text{display style} & \displaystyle\myint & \resizebox*{!}{24pt}{$\displaystyle\myint$} \\[3ex]
\text{text style} & \myint & \resizebox*{!}{12pt}{$\myint$}
\end{array}
\]
\end{document}