
我正在寫一篇天文學論文,並且有一些全文中常見的符號和變數。每次都把它們寫出來變得很麻煩。有沒有辦法為這些創建某種快捷方式?請注意,大多數都處於數學模式。
例如:
日誌(嗨)
$\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
,因此在可以使用它時更可取。