根据当前显示样式设置 \includegraphics{} 的高度

根据当前显示样式设置 \includegraphics{} 的高度

我正在考虑建立一个新的符号库,我需要测试命令集。我使用一组命令快速拼凑了一组数学符号

\newcommand{\example}{\includegraphics[height=\height]{example.jpg}}

和扫描仪。对于临时解决方案来说,它工作得很好,但问题是我希望将参数\height设置为等于1em当前显示样式中的值(即,下标和上标的值较小,等等)。我找不到任何信息,也不知道是否有办法做到这一点(这不是 graphicx 包的设计目的)。有什么建议吗?

答案1

您要查找的高度是:当前符号字体(系列 2)的文本样式中\fontdimen6\textfont2的长度(定义为 1em)。当然,如果您使用的是 scriptstyle 或 scripscriptstyle,则需要或,并且可以使用不同的系列(最多 15;我不确定它们的意义是什么,但如果您正在设计字体,也许您是)。\quad\scriptfont\scriptscriptfont

我应该提到,如果您在第一次$ $使用数学对之前使用它,则符号字体将不会被加载,并且您将收到一个神秘的错误\nullfont

答案2

您需要使用\mathchoice原始数据来设置每个数学尺寸:

\def\something{\mathchoice
  {\includegraphics[height=\fontdimen6\textfont2]{...}}%
  {\includegraphics[height=\fontdimen6\textfont2]{...}}%
  {\includegraphics[height=\fontdimen6\scriptfont2]{...}}%
  {\includegraphics[height=\fontdimen6\scriptscriptfont2]{...}}%
}

(使用graphicx包来包含图形)

或者更简单地让 AMS 来照顾你,使用amstext包然后:

 \def\something{\text{\includegraphics[height=1em]{...}}%

相关内容