![如何使上下文框架的字母自动获得比例大小?](https://linux22.com/image/233670/%E5%A6%82%E4%BD%95%E4%BD%BF%E4%B8%8A%E4%B8%8B%E6%96%87%E6%A1%86%E6%9E%B6%E7%9A%84%E5%AD%97%E6%AF%8D%E8%87%AA%E5%8A%A8%E8%8E%B7%E5%BE%97%E6%AF%94%E4%BE%8B%E5%A4%A7%E5%B0%8F%EF%BC%9F.png)
我正在使用一种方法(我不知道确切的名称,可能是气泡表格式)创建问题表,如下所示:
我的问题是如何改善外观,使框架字母根据上下文获得成比例的大小。如果框架字母必须用作指数,则它必须更小。如果它用作积分或总和中的下标,它也必须更小。
以下是“规范化”之后的代码片段:-)
\documentclass[dvipsnames,dvips,cmyk]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{xcolor}
\usepackage{amsmath}
\usepackage{bera}
\fboxsep=2pt
\fboxrule=0.8pt
\newcommand{\boxy}[1]{\ensuremath{\,\fbox{\;\,{\color{red}\bf#1}\,\;}\,}}
\newcommand{\ltr}[1]{{\color{red}\bf#1}}
\begin{document}
\noindent%
Each letter \ltr{A}, \ltr{B}, \ltr{C}, etc in the equations represents a numeral (from 0 to 9) or the minus sign ($-$).
\[
\int_{\boxy{A}}^{\boxy{B}}f(x)\,\textrm{d}x=\frac{1-\boxy{P}}{\boxy{Q}+\boxy{R}}
\]
\[
-2 x^{\boxy{XYZ}}-\boxy{W}\sqrt{\boxy{V}+1}
\]
\[
\sum_{i=\boxy{A}}^{\boxy{BC}}=\tan\left(\boxy{D}-\boxy{E}\right)
\]
\end{document}
答案1
使用该\text
命令,它采用正确的字体设置:
\documentclass{article}
\usepackage{xcolor}
\usepackage{amsmath}
\fboxsep=2pt
\fboxrule=0.8pt
\newcommand\boxy[1]{\text{\,\fbox{\;\,{\color{red}$\mathbf{#1}$}\,\;}\,}}
\newcommand{\ltr}[1]{{\color{red}\bf#1}}
\begin{document}
\noindent%
Each letter \ltr{A}, \ltr{B}, \ltr{C}, etc in the equations
represents a numeral (from 0 to 9) or the minus sign ($-$).
%
\[
\int\limits_{\boxy{A}}^{\boxy{B}}f(x)\,\textrm{d}x=\frac{1-\boxy{P}}{\boxy{Q}+\boxy{R}}
\]
%
\[
-2 x^{\boxy{XYZ}}-\boxy{W}\sqrt{\boxy{V}+1}
\]
%
\[
\sum_{i=\boxy{A}}^{\boxy{BC}}=\tan\left(\boxy{D}-\boxy{E}\right)
\]
\end{document}
答案2
您将需要使用\mathpalette
:将您的定义替换\boxy
为
\makeatletter
\newcommand{\boxy}[1]{\ensuremath{\mathpalette\boxy@helper{#1}}}
\newcommand{\boxy@helper}[2]{\,\fbox{\;\,{\color{red}$\m@th#1\mathbf{#2}$}\,\;}\,}
\makeatother
请注意,我对您的宏做了另一项更改:我在中使用了$
s 和,并且我添加了以确保您不会获得额外的水平空间。\mathbf
\fbox
\m@th