排版 HI 以指定分子气体的最佳方式是什么这篇文章的标题,字母大写H
,数字略小I
?我正在使用scrbook
类。
我试图定义
\newcommand{\HI}{H {\uppercase{\romannumeral 1}} }
但结果是H i
,用小写的i
。
我也试过
\newcommand*{\HI}{\textsc{Hi}}
但是当我在 中使用它时,它表现不正确\section{}
,导致“H i”而不是“H I”。
我还没有在中找到类似的东西chemmacros
,它更适合化学家。
这是天体物理学中编写分子的标准方式,因此我很惊讶没有一个软件包可以轻松做到这一点。
答案1
使用与当前字体大小链接的下标大小。
\documentclass{article}
\usepackage{amsmath}
\makeatletter
\DeclareRobustCommand{\HI}{%
\mbox{H\check@mathfonts\fontsize\sf@size\z@\selectfont I}%
}
\makeatother
\textheight=3cm % just to shorten the image
\begin{document}
\section{About \HI}
Here we talk about \HI.\footnote{Yes, about \HI.}
\end{document}
内核命令\check@mathfonts
计算\sf@size
并\ssf@size
从当前字体大小开始,使用存储的参数或\DeclareMathSizes
启发式方法。
答案2
进行调整1.2ex
以适应。
\documentclass{article}
\usepackage{scalerel}
\newcommand\HI{H\protect\scaleto{$I$}{1.2ex}}
\begin{document}
\tableofcontents
\section{This is \HI}
And in text: \HI{} and \LARGE \HI
\end{document}
因为scalerel
默认情况下在数学模式下运行,所以$I$
实际上是一种转义在......之外数学模式。如果这太令人困惑,您可以始终在数学模式下进行操作,如下所示:\newcommand\HI{H\protect\scaleto{\textrm{I}}{1.2ex}}
如果您想要一个没有软件包的版本,您可以这样做,但它需要一个单独的宏来实现粗体样式:
\documentclass{article}
\newcommand\HI{$\textrm{H}\scriptstyle\mathrm{I}$}
\newcommand\HIbold{$\textbf{H}\scriptstyle\mathbf{I}$}
\begin{document}
\tableofcontents
\section{This is \HIbold}
And in text: \HI{} and \LARGE \HI
\end{document}
答案3
另一种方法是通过天文学和天体物理学课。
将此声明添加到标题:
\DeclareRobustCommand{\ion}[2]{%
\relax\ifmmode
\ifx\testbx\f@series
{\mathbf{#1\,\mathsc{#2}}}\else
{\mathrm{#1\,\mathsc{#2}}}\fi
\else\textup{#1\,{\mdseries\textsc{#2}}}%
\fi}
然后在文档正文中使用
\ion{H}{I}