¿Atajo para escribir expresiones largas y comunes?

¿Atajo para escribir expresiones largas y comunes?

Estoy escribiendo un artículo de astronomía y tengo algunos símbolos y variables que son comunes en todas partes. Se está volviendo engorroso escribirlos cada vez. ¿Hay alguna manera de crear una especie de atajo para estos? Tenga en cuenta que la mayoría están en modo matemático.

Por ejemplo:
iniciar sesión (hola)

$\log(\textrm{H}\textsc{i})$

registro(SFR/M*)

$\log(\textrm{SFR} / \textrm{M}_{\odot})$

Respuesta1

Crear macros que proporcionen accesos directos a cadenas de uso frecuente es una muy buena idea. Para obtener una introducción básica a los usos de la \newcommanddirectiva LaTeX, consulte, por ejemplo, el Capítulo 6, "Personalizar LaTeX", de la guía.La no tan breve introducción a LATEX2e.

Por ejemplo, podría emitir las instrucciones

\newcommand\loghi{\log(\mathrm{H}\textsc{i})}
\newcommand\sfrm{\log(\mathrm{SFR} / \mathrm{M}_{\odot})}

en el preámbulo y, más adelante en el cuerpo del texto, escriba algo como

bleet bleet $\loghi=\sfrm$ more bleet bleet

Como ya has notado en un comentario, surge una complicación si estas macros también se pueden usar enatrevidoentornos como cabeceras de sección. Específicamente, dada la definición anterior de \loghi, LaTeX intentará escribir la letra ien negrita y versalitas. Como ha descubierto, si la familia de fuentes que está utilizando no incluye una fuente en negrita y versalitas, la letra se establecerá en negrita "normal", es decir, comoi. No es el efecto deseado, ¿verdad?

¿Qué hacer? Creo que tienes (al menos) dos opciones. La primera es utilizar una familia de fuentes que incluya una fuente en negrita y minúscula. Dos de esas familias son newt xtext/ newtxmathy newpxtext/ newpxmath. El primero proporciona un aspecto "Times Roman", el segundo un aspecto "Palatino". Esto puede (o no...) ser aceptable para usted.

En segundo lugar, puede configurar la macro que define \loghide tal manera que ni siquiera intente utilizar un glifo en negrita en minúsculas (posiblemente inexistente). Por ejemplo,

\newcommand\loghi{\log(\mathrm{H}\textsc{\mdseries i})}

(tenga en cuenta la adición de \mdseriesal argumento de \textsc) indica a LaTeX que se aplique \textsca una versión de "peso medio" (en lugar de una versión "en negrita") de i. Siempre que la fuente de peso medio incluya glifos en versalitas, se le garantizará el éxito.

Respuesta2

Dividiría el problema en dos partes. Primero se definen los símbolos elementales, luego las expresiones en términos de ellos:

\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}

Agregué un poco a la definición de \Hisolo para mostrar cómo se puede redefinir el símbolo elemental sin necesidad de modificar también la definición de la expresión definida en términos de él.

Con \textnormal{...}nos aseguramos que la fuente será la “inicial”, independientemente del contexto. Esto es necesario para \Hi, pero no para \SFR; dado que \mathrmes más eficiente que \textnormal, es preferible cuando sea posible utilizarlo.

ingrese la descripción de la imagen aquí

información relacionada