Как лучше всего набрать 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}