我正在写一篇天文学论文,其中有一些符号和变量在论文中很常见。每次都把它们写出来很麻烦。有没有办法为它们创建某种快捷方式?注意,大多数都是数学模式。
例如:
对数(嗨)
$\log(\textrm{H}\textsc{i})$
对数(SFR/M*)
$\log(\textrm{SFR} / \textrm{M}_{\odot})$
答案1
创建提供常用字符串快捷方式的宏是个好主意。有关 LaTeX\newcommand
指令用法的入门级介绍,请参阅指南的第 6 章“自定义 LaTeX”LATEX2e 的简短介绍。
例如,你可以发出指令
\newcommand\loghi{\log(\mathrm{H}\textsc{i})}
\newcommand\sfrm{\log(\mathrm{SFR} / \mathrm{M}_{\odot})}
在序言中,以及随后的正文中,写一些类似
bleet bleet $\loghi=\sfrm$ more bleet bleet
正如您在评论中指出的那样,如果这些宏也可以用于大胆的周围环境,例如节标题。具体来说,给定上述 的定义\loghi
,LaTeX 将尝试将字母排版i
为粗体小写字母。正如您所发现的,如果您使用的字体系列不包含粗体小写字母,则字母将设置为“普通”粗体,即我。这不是想要的效果吧?!
该怎么办?我认为您(至少)有两个选择。第一个是使用具有粗体小写字体的字体系列。两个这样的系列是newt xtext
/newtxmath
和newpxtext
/ newpxmath
。前者提供“Times Roman”外观,后者提供“Palatino”外观。这可能(或可能不...)对您来说可以接受。
其次,您可以设置宏,使其\loghi
定义不会尝试使用(可能不存在的)粗体小写字母字形。例如,
\newcommand\loghi{\log(\mathrm{H}\textsc{\mdseries i})}
\mdseries
(请注意在 的参数中添加\textsc
)指示 LaTeX 应用于\textsc
的“中等粗细”(而不是“粗体粗细”)版本i
。只要中等粗细字体具有小型大写字母字形,您就一定会成功。
答案2
我会把这个问题分成两部分。首先定义基本符号,然后用它们来表达:
\documentclass{article}
\usepackage{amsmath}
%% first the symbols
\newcommand{\Hi}{\textnormal{H\kern-.1em\textsc{i}}}
\newcommand{\SFR}{\mathrm{SFR}}
\newcommand{\Mo}{\mathrm{M}_{\odot}}
%% then common expressions
\newcommand{\lHi}{\log\Hi}
\newcommand{\lsfrmo}{\log(\SFR/\Mo)}
\begin{document}
\begin{gather*}
\log\Hi + \log(\SFR/\Mo)\\
\lHi+\lsfrmo
\end{gather*}
\end{document}
我添加了一些定义,\Hi
只是为了展示如何重新定义基本符号,而不需要修改根据它定义的表达式的定义。
使用 ,\textnormal{...}
我们确保字体将是“初始”字体,与上下文无关。这对于 是必需的\Hi
,但对于 不是\SFR
;由于\mathrm
比 更高效\textnormal
,因此在可能的情况下最好使用它。