Post principal actualizado a 27/06/2023.He escrito un script con el programa de scripting
espanso cuya función es poder escribir código \( \LaTeX \) lo más rápido posible. Lo que hace el script es reemplazar unos tecleos por otros.
Aquí en esta dirección se puede encontrar todo el material referente a dicho script.
Cómo funciona:El script es un archivo de texto donde se define una lista de reemplazos automáticos de tecleos, es decir, al escribir una cadena de texto ésta es reemplazada automáticamente por otra cadena de texto. He diseñado el script de tal manera que las cadenas que desencadenan los reemplazos suelen terminar en
ñ y en total tener menos de cinco caracteres.
Para conocer los reemplazos que he ido definiendo hay que ver el texto del script, es decir, abrir el archivo TeX.yml con cualquier editor de texto.
Qué significa lo que hay escrito en el archivo TeX.yml:En el archivo TeX.yml las sustituciones se definen así:
- trigger: "str1"
replace: "str2"donde
str1 es la cadena de teclas que es sustituida por
str2. Algunas cadenas que aparecen como reemplazos necesitan ser "escapadas" para ser sustituidas correctamente, por ejemplo la barra \ debe escribirse como \\. Para más detalles mejor consultar
aquí. La cadena especial \n significa salto de línea, y la cadena $|$ define la posición del cursor después de la sustitución.
Instalación y puesta en marcha del script en cualquiera de sus versiones:Detallado
aquí.
A continuación unos ejemplos de los tipos de reemplazos que hace el script:
Letras griegas y hebreas:
Para escribir letras griegas el intercambio es una letra seguido del sufijo
gg, por ejemplo, la cadena
agg es intercambiada por
\alpha seguido de un espacio, es decir, el símbolo de alfa (minúscula) escrito en \( \LaTeX \) y luego seguido de un espacio (no un espacio de \( \LaTeX \) sino una pulsación de la tecla espaciadora).
Las letras mayúsculas van en mayúsculas, es decir que
Ggg es intercambiada por
\Gamma, etc... Además si una letra tiene una variación ésta se escribe colocando una
v delante de la cadena, es decir que
vfgg se intercambia por
\varphi seguido de un espacio.
He añadido además cuatro letras hebreas, éstas se escriben con el sufijo
hh en vez de
gg, es decir que
ahh deja el texto
\aleph seguido de un espacio.
Operadores y relaciones:En general son dos o tres letras (generalmente letras significativas del texto en \( \LaTeX \) al que reemplazan) seguidas de
ñ, por ejemplo la cadena
lñ es sustituida por
\lim_{} con el cursor entre los corchetes. O por ejemplo
sñ que sustituye a
\sum_{} dejando el cursor entre el par de corchetes, o
iñ que es reemplazada por
\int_{} dejando de nuevo el cursor entre los corchetes.
Otros formas en los reemplazos son por ejemplo cadenas como
xx que es sustituida por
\times seguido de un espacio,
== por
\equiv seguido de un espacio, etc... Lo he ido configurando a mi gusto de tal forma que me resulte sencillo recordar los reemplazos y sea rápido de teclear.
Otro tipo de reemplazos:Por ejemplo los símbolos comúnmente asociados a conjuntos comunes siguen el patrón de letra en mayúsculas repetida, por ejemplo
ZZ por
\mathbb{Z} o
NN por
\mathbb{N} seguido de un espacio, o
CC (dos Cs mayúsculas seguidas de un espacio) por
\mathbb{C}, o
RR (dos rs mayúsculas seguidas de un espacio) por
\mathbb{R}, en estos dos últimos casos el espacio al final es para evitar que el reemplazo se produzca en palabras como ACCIÓN o PERRO.
Funciones comunes utilizan el sufijo
¡ (un signo de exclamación) en vez de
ñ, por ejemplo
s¡ sustituye a
\sin seguido de un espacio, y
l¡ sustituye a
\log seguido de un espacio, o por ejemplo
1¡ es reemplazado por
\mathbf{1}_{} donde el cursor se queda entre los corchetes, otro ejemplo sería
fl¡ que sustituye a
\lfloor \rfloor quedando el cursor entre medias. Etcétera.
También hay sustituciones para etiquetas de bbcode, que se utilizan con el sufijo
bb. Y dos sustituciones específicas para rincón matemático:
çç por [tex][/tex] colocándose el cursor entre medias, y
ññ para una sustitución similar para escribir matemáticas en modo \display y centrado.
O sustituciones para construcciones comunes como
fñ que es reemplazada por
\frac{}{} (con el cursor entre el primer par de corchetes), o
bñ que es sustituida por
\binom{}{}, con el cursor en el primer par de corchetes, que es para escribir números binomiales. Etcétera.
Filosofía en el diseño del script:La filosofía que tiene el script es posibilitar una velocidad de tecleo de \( \LaTeX \) máxima a aquellos que ya saben escribir en \( \LaTeX \), usando cadenas de texto muy cortas (menos de cinco pulsaciones, de media tres), fáciles de asociar a las cadenas de \( \LaTeX \) que sustituyen, y muy accesibles en un teclado con distribución española.
La elección de cada cadena corta proviene, en general salvo excepciones, de dos o tres letras (a veces una) del código en \( \LaTeX \) que sustituye.
Alguna cadena podría entrar en conflicto con la escritura normal (es raro que esto ocurra pero puede ocurrir alguna vez) como por ejemplo la cadena
iñ que está contenida en la palabra niño, por eso algunas veces será necesario desactivar momentáneamente el script.
El script no pretende ser exhaustivo sino sólo simplificar la escritura de código \( \LaTeX \) de uso común. Va evolucionando conforme su uso lo demande, y cada uno puede retocar o escribir un script a su gusto, el mío es sólo un ejemplo que puede servir como punto de partida para que cada uno haga un script adecuado a su propio gusto.
La ventaja de un script como éste frente a otro tipo de sistemas para escribir \( \LaTeX \) más rápido como macros en editores de texto y semejantes es que puede utilizarse en cualquier editor o caja de texto ya que sólo sustituye una cadena de tecleos por otros tecleos. Puede usarse en este foro, en MSE o en cualquier editor de texto (obviamente también en cualquier editor de \( \LaTeX \)).
Errores de ejecución o de diseño:Iré mejorando el script poco a poco a medida que lo vaya usando. Ya llevo usándolo a diario desde que lo creé, hace algo menos de diez meses, y he ido haciendo pequeñas variaciones para mejorar mi experiencia personal, añadiendo construcciones comunes como listas de elementos o cosas así.