当下标为大写时,是否可以使数学模式下的下标自动选择较小的字体?
例如,如果我有A,那么“A”会显得很大。是否可以告诉下标运算符_
在看到大写字母时使用较小的字体?
一种解决方法是定义,比如说\newcommand{\l}[1]{\scalebox{0.x}{$#1$}}
。但我想看看是否可以自动实现我想要的功能?
答案1
以下是不同下标的一些示例s_A
,s_a
供参考:
\documentclass{article}
\usepackage{relsize}
\usepackage{lmodern}
\usepackage{slantsc}
\begin{document}
\begin{displaymath}
s_{\textsc{a}}
s_{\textsc{\textsl{a}}}
s_{\textsc{\relsize{-2}{\textsl{a}}}}
s_A
s_{\!\mathsmaller{A}}
s_{\!_A}
s_a
\end{displaymath}
\end{document}
我必须说,简单的较小字体大小解决方案实际上比小型大写字母看起来更好,至少在 Computer Modern 中是这样。太糟糕了。顺便说一句,在所有示例中,字距调整看起来都很糟糕。不知何故,我越来越对 TeX 产生的自动字距调整感到失望。
无论如何,我想我会选择右边的第三个解决方案,制作一个类似这样的宏:
\newcommand{\l}[1]{_{\!\mathsmaller{#1}}}
您需要这个relsize
包。
答案2
\documentclass{article}
\begin{document}
\[
s_A
s_{\!_A} \]
\end{document}
您可以为此定义一个快捷方式
答案3
尺寸的正常设置决定如下:
\DeclareMathSizes{5}{5}{5}{5}
\DeclareMathSizes{6}{6}{5}{5}
\DeclareMathSizes{7}{7}{5}{5}
\DeclareMathSizes{8}{8}{6}{5}
\DeclareMathSizes{9}{9}{6}{5}
\DeclareMathSizes{\@xpt}{\@xpt}{7}{5}
\DeclareMathSizes{\@xipt}{\@xipt}{8}{6}
\DeclareMathSizes{\@xiipt}{\@xiipt}{8}{6}
\DeclareMathSizes{\@xivpt}{\@xivpt}{\@xpt}{7}
\DeclareMathSizes{\@xviipt}{\@xviipt}{\@xiipt}{\@xpt}
\DeclareMathSizes{\@xxpt}{\@xxpt}{\@xivpt}{\@xiipt}
\DeclareMathSizes{\@xxvpt}{\@xxvpt}{\@xxpt}{\@xviipt}
这意味着当字体大小为 10 时,正常数学为 10pt 大小,第一级下标(和上标)为 7pt,第二级下标(和上标)为 5pt。
例如,您可以在序言中更改此设置
\makeatletter
\DeclareMathSizes{\@xpt}{\@xpt}{6}{5}
\makeatother
这样就\[ s_{A} \]
可以
\usepackage{lmodern}
您必须根据实际使用的点大小修改所有条目。如果您想提供分数大小(或fix-cm
包),最好加载。
还有一个值得注意的技巧:可以通过插入一个空的上标将下标向下移动一点。以下是\[s_{A}\,s^{}_{A}\]
以下是将之前的更改与以下结果相加的结果\DeclareMathSizes
通过加载包可以自动执行此操作subdepth
。
答案4
答案来自(http://www.latex-community.org/forum/viewtopic.php?f=5&p=4872)对我有用:
==================== 回复:我可以对我的下标有更多的控制权吗? ptoche 于 2008 年 8 月 7 日星期四发表
很棒的建议。
我的贡献绝对微不足道:
在序言中定义:\newcommand{\ms}{\scriptscriptstyle}
在文本中输入:{\ms TEXT}
其中“ms”代表“math small”
输入 {\ms TEXT} 比输入 {\scriptscriptstyle TEXT} 更省事