
Я пишу статью по астрономии и у меня есть некоторые символы и переменные, которые встречаются повсюду. Становится обременительным выписывать их каждый раз. Есть ли способ создать для них своего рода ярлык? Обратите внимание, что большинство из них находятся в математическом режиме.
Например:
журнал(Привет)
$\log(\textrm{H}\textsc{i})$
log(SFR/M*)
$\log(\textrm{SFR} / \textrm{M}_{\odot})$
решение1
Создание макросов, которые предоставляют ярлыки для часто используемых строк, является очень хорошей идеей. Для начального уровня введения в использование \newcommand
директивы LaTeX см., например, Главу 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
, то предпочтительнее, когда есть возможность его использовать.