
Ich schreibe eine astronomische Arbeit und habe einige Symbole und Variablen, die überall vorkommen. Es wird mühsam, sie jedes Mal neu aufzuschreiben. Gibt es eine Möglichkeit, eine Art Abkürzung dafür zu erstellen? Beachten Sie, dass die meisten im Mathematikmodus sind.
Zum Beispiel:
log(Hallo)
$\log(\textrm{H}\textsc{i})$
log(SFR/M*)
$\log(\textrm{SFR} / \textrm{M}_{\odot})$
Antwort1
Es ist eine gute Idee, Makros zu erstellen, die Abkürzungen für häufig verwendete Zeichenfolgen bieten. Eine Einführung in die Verwendung der LaTeX- \newcommand
Direktive finden Sie beispielsweise in Kapitel 6, „Anpassen von LaTeX“, des HandbuchsDie nicht ganz so kurze Einführung in LATEX2e.
Sie könnten beispielsweise die Anweisungen erteilen
\newcommand\loghi{\log(\mathrm{H}\textsc{i})}
\newcommand\sfrm{\log(\mathrm{SFR} / \mathrm{M}_{\odot})}
in der Präambel und später im Hauptteil des Textes etwas wie
bleet bleet $\loghi=\sfrm$ more bleet bleet
Wie Sie bereits in einem Kommentar angemerkt haben, ergibt sich eine Komplikation, wenn diese Makros auch indeutlichUmgebungen wie Abschnittsüberschriften. Insbesondere \loghi
wird LaTeX bei der obigen Definition von versuchen, den Buchstaben i
in fetten Kapitälchen zu setzen. Wie Sie festgestellt haben, wird der Buchstabe in „normalem“ Fett gesetzt, wenn die von Ihnen verwendete Schriftfamilie keine fetten Kapitälchen enthält, d. h. alsich. Nicht der gewünschte Effekt, oder?!
Was tun? Ich denke, Sie haben (mindestens) zwei Möglichkeiten. Die erste ist, eine Schriftfamilie zu verwenden, die eine fette Smallcap-Schriftart enthält. Zwei solche Familien sind newt xtext
/ newtxmath
und newpxtext
/ newpxmath
. Erstere bietet ein „Times Roman“-Aussehen, letztere ein „Palatino“-Aussehen. Dies kann für Sie akzeptabel sein (oder auch nicht...).
\loghi
Zweitens könnten Sie das Makro so einrichten, dass es nicht einmal versucht, ein (möglicherweise nicht vorhandenes) fettes Kapitälchen-Symbol zu verwenden. Zum Beispiel:
\newcommand\loghi{\log(\mathrm{H}\textsc{\mdseries i})}
(beachten Sie die Hinzufügung von \mdseries
zum Argument von ) weist LaTeX an , eine Version von in „mittlerer Schriftstärke“ (anstatt in „fetter Schriftstärke“) \textsc
anzuwenden . Solange die mittelschwere Schriftart Kapitälchen-Glyphen enthält, ist der Erfolg garantiert.\textsc
i
Antwort2
Ich würde das Problem in zwei Teile aufteilen. Zuerst definiert man die elementaren Symbole, dann Ausdrücke anhand dieser:
\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}
Ich habe der Definition etwas hinzugefügt, \Hi
um zu zeigen, wie Sie das elementare Symbol neu definieren können, ohne auch die Definition des darin definierten Ausdrucks ändern zu müssen.
Mit \textnormal{...}
stellen wir sicher, dass die Schriftart unabhängig vom Kontext die „ursprüngliche“ ist. Dies ist für erforderlich \Hi
, aber nicht für \SFR
. Da \mathrm
effizienter als ist \textnormal
, ist es vorzuziehen, wenn es verwendet werden kann.