![我是否应该将 \mathsmaller 与 \frac 中的上标和下标一起使用?](https://linux22.com/image/295903/%E6%88%91%E6%98%AF%E5%90%A6%E5%BA%94%E8%AF%A5%E5%B0%86%20%5Cmathsmaller%20%E4%B8%8E%20%5Cfrac%20%E4%B8%AD%E7%9A%84%E4%B8%8A%E6%A0%87%E5%92%8C%E4%B8%8B%E6%A0%87%E4%B8%80%E8%B5%B7%E4%BD%BF%E7%94%A8%EF%BC%9F.png)
我不知道如何最好地格式化这个等式,如果你们这些时尚的tex-heads能够帮助我我将非常感激。
它看起来像这样:
我很满意,除了:
我认为 2 和 0 太大,而且靠近 k。乍一看,它看起来很乱。所以我把它改了,让任何上标或下标都使用 \mathsmaller{}。它看起来像这样:
我现在更喜欢 k_0^2,但我不确定方程的其余部分是否一样好。但如果我从 e^{ikr} 中删除 /mathsmaller{},那么它看起来太大了,而且与 2 不一致。我应该混合搭配吗,还是有更好、更一致的方式来解决这个问题?
梅威瑟:
\documentclass{article}
\usepackage{relsize,amsmath}
\begin{document}
\newcommand{\vecr}{{\bar{r}}}
\newcommand{\vecq}{{\bar{q}}}
\newcommand{\vecE}{{\bar{E}}}
\newcommand{\veck}{{\bar{k}}}
\newcommand{\ee}{\mathrm{e}}
\newcommand{\ii}{\mathrm{i}}
\newcommand{\II}{\mathrm{I}}
\newcommand{\kk}{\mathrm{k}}
\renewcommand{\ss}{\mathrm{s}}
\begin{equation} %without mathsmaller
\vecE_{s}(\vecr,t) = \frac{k_{0}^2}{4 \pi} \frac{\ee^{\ii kr}}{r} \left( \hat{\II} - \hat{\kk}_{\ss} \hat{\kk}_{\ss} \right) \int_{V} \ee^{\ii \veck^{\prime} \cdot \vecr^{\prime}} \vecE (\vecr^{\prime},t)
\end{equation}
\begin{equation} %with mathsmaller
\vecE_{s}(\vecr,t) = \frac{k_{\mathsmaller{0}}^\mathsmaller{2}}{4 \pi} \frac{\ee^{\mathsmaller{\ii kr}}}{r} \left( \hat{\II} - \hat{\kk}_\mathsmaller{\ss} \hat{\kk}_\mathsmaller{\ss} \right) \int_{V} \ee^{\ii \veck^{\mathsmaller{\prime}} \cdot \vecr^{\mathsmaller{\prime}}} \vecE (\vecr^{\mathsmaller{\prime}},t)
\end{equation}
\end{document}
答案1
\mathsmaller
在我看来(当然不是那么谦虚和毫无歉意的主观......),表达式的下标和上标位置带来的改进k_0^2
还不够。具体来说,我认为下标0
和上标都“蹲”得太低了。考虑向分子2
添加指令:\mathstrut
k_{\mathsmaller 0}^{\mathstrut \mathsmaller 2}
如下面的截图所示,插入 之后,0
和术语都不再看起来像是蹲着的。2
\mathstrut
如果您喜欢这种外观并且有很多这样的术语,您可以定义一个名为的快捷宏\kzerosq
,以简化该术语的重复输入。
\documentclass{article}
\usepackage{relsize,amsmath}
\newcommand\kzerosq%
{k_{\mathsmaller 0}^{\mathstrut \mathsmaller 2}}
\begin{document}
$k_0^2$ vs.\ $k_{\mathsmaller 0}^{\mathsmaller 2}$ vs.\ $k_{\mathsmaller 0}^{\mathstrut \mathsmaller 2}$
\bigskip
$\displaystyle
\frac{k_{0}^2}{4 \pi}
\text{ vs.\ }
\frac{k_{\mathsmaller0}^{\mathsmaller2}}{4 \pi}
\text{ vs.\ }
\frac{\kzerosq}{4 \pi}$
\end{document}
答案2
这是一个切换到\scriptscriptstyle
而不是 \scriptstyle 的解决方案for digits only
,这要归功于我从 @egreg 借用并改编的代码。顺便说一句,我认为与其使用\bar
,不如使用\widebar
字体mathx
(mathabx
包,它不存在于基本字体中)和\widehat
相同字体(我认为基本字体中的字体太宽了)。
比较:
\documentclass{article}
\usepackage{relsize,amsmath}
\makeatletter
\def\changedigit#1{%
\begingroup\uccode`~=`#1\uppercase{\endgroup
\edef~}{{\mathchoice
{\mathchar\the\mathcode`#1}
{\mathchar\the\mathcode`#1}
{\scriptscriptstyle\mathchar\the\mathcode`#1}
{\mathchar\the\mathcode`#1}
}}
\AtBeginDocument{\mathcode`#1=\string"8000 }
}
\@for\next:=1,2,3,4,5,6,7,8,9,0\do{\expandafter\changedigit\next}
\let\changedigit\@undefined
\makeatother
\DeclareFontFamily{U}{mathx}{\hyphenchar\font45}
\DeclareFontShape{U}{mathx}{m}{n}{ <-> mathx10}{}
\DeclareSymbolFont{mathx}{U}{mathx}{m}{n}
\DeclareFontSubstitution{U}{mathx}{m}{n}
\DeclareMathAccent{\widebar}{0}{mathx}{"73}
\DeclareMathAccent{\widehat}{0}{mathx}{"70}
\newcommand{\vvecr}{{\widebar{r}}}
\newcommand{\vvecq}{{\widebar{q}}}
\newcommand{\vvecE}{{\widebar{E}}}
\newcommand{\vveck}{{\widebar{k}}}
\begin{document}
\newcommand{\vecr}{{\bar{r}}}
\newcommand{\vecq}{{\bar{q}}}
\newcommand{\vecE}{{\bar{E}}}
\newcommand{\veck}{{\bar{k}}}
\newcommand{\ee}{\mathrm{e}}
\newcommand{\ii}{\mathrm{i}}
\newcommand{\II}{\mathrm{I}}
\newcommand{\kk}{\mathrm{k}}
\renewcommand{\ss}{\mathrm{s}}
\begin{equation}
\vvecE_{s}(\vecr,t) = \frac{k_{0}^{2}}{4 \pi} \frac{\ee^{\ii kr}}{r} \left( \widehat{\II} - \widehat{\kk}_{\ss} \widehat{\kk}_{\ss} \right) \int_{V} \ee^{\ii \vveck^{\prime} \cdot \vvecr^{\prime}} \vvecE (\vecr^{\prime},t)
\end{equation}
\vskip 1cm
With \texttt{\textbackslash mathsmaller}:
\begin{equation} %with mathsmaller
\vecE_{s}(\vecr,t) = \frac{k_{\mathsmaller{0}}^\mathsmaller{2}}{4 \pi} \frac{\ee^{\mathsmaller{\ii kr}}}{r} \left( \hat{\II} - \hat{\kk}_\mathsmaller{\ss} \hat{\kk}_\mathsmaller{\ss} \right) \int_{V} \ee^{\ii \veck^{\mathsmaller{\prime}} \cdot \vecr^{\mathsmaller{\prime}}} \vecE (\vecr^{\mathsmaller{\prime}},t)
\end{equation}
\end{document}