19/02/2020, 05:03:06 *
Bienvenido(a), Visitante. Por favor, ingresa o regístrate.
¿Perdiste tu email de activación?

Ingresar con nombre de usuario, contraseña y duración de la sesión
Noticias: Homenaje a aladan
 
 
Páginas: [1]   Ir Abajo
  Imprimir  
Autor Tema: Escribir LaTeX a la velocidad de la luz  (Leído 430 veces)
0 Usuarios y 1 Visitante están viendo este tema.
Masacroso
Pleno*
*****

Karma: +3/-0
Desconectado Desconectado

España España

Mensajes: 1.776


Ver Perfil
« : 18/08/2019, 11:42:48 »

He escrito un script con el programa de scripting autohotkey para escribir [texx]\LaTeX[/texx] lo más rápido posible. Lo que hace el script es reemplazar una cadena de caracteres por otra. El script sólo funciona en windows y (creo que también) en linux bajo wine, pero esto último no lo he testeado.

(Igualmente existen otros programas de scripting semejantes para linux y macos. Consultar aquí.)

Cómo funciona:

El script contiene 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. Las cadenas que desencadenan los reemplazos suelen terminar en ñ y en total tener menos de cinco caracteres.

Lo mejor para conocer los reemplazos es consultar el texto del script, es decir, abrir el archivo TeX.ahk del script con cualquier editor de notas.

Qué significa lo que hay escrito en el script:

En cada línea hay un hotstring o un hotkey, un hostring es la sustitución de una cadena de texto por otra, y un hotkey es la activación de una función al pulsar dos o más teclas a la vez. Si es un hotstring entonces tiene la forma

Código:
::str1::str2

donde str1 y str2 con cadenas de caracteres. La primera cadena de texto será sustituida por la segunda, y en la segunda puede haber caracteres que deben ir "escapados" entre llaves para que sean correctamente reconocidos, por ejemplo para que autohotkey reconozca en la segunda cadena el carácter { debe escribirse como {{}.

También en la segunda cadena de texto puede haber palabras clave como {Space} que lo que hace es insertar un espacio o {left x}, donde x es un número, que significa de después de escribir la cadena mueve el cursor x veces hacia atrás.

Instalación y puesta en marcha:

Descargar este archivo zip y descomprimirlo en una misma carpeta, luego ejecutar el archivo TeX.exe. El archivo TeX.exe se ha compilado del archivo TeX.ahk que se encuentra aquí.

(La compilación se realiza fácilmente una vez instalado autohotkey ya que al hacer click con el botón derecho del ratón sobre un archivo *.ahk aparece la opción de compilar.)

Cuando los reemplazos del script están activos aparecerá un icono de color rojo en la barra de tareas y unas delgadas bandas rojas en los bordes del escritorio, y cuando los reemplazos están inactivos el icono cambia a color verde (y las barras rojas desaparecen).

El script se inicia por defecto con los reemplazos inactivos, ya que esto es más conveniente por varios motivos, por ejemplo si se inicia con el sistema. Para activar el script (o volverlo a desactivar, si éste está activo) se puede usar la tecla de pausa o la combinación Alt+Espacio.



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{Space}, es decir, el símbolo de alfa (minúscula) escrito en [texx]\LaTeX[/texx] y luego seguido de un espacio (no un espacio de [texx]\LaTeX[/texx] sino una pulsación de la tecla espaciadora).

Las letras mayúsculas van en mayúsculas, es decir que Ggg es intercambiada por \Gamma{Space}, 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{Space}.

He añadido además unas cuatro letras hebreas o así, éstas se escriben con el sufijo hh en vez de gg, es decir que ahh deja el texto \aleph{Space}.

Operadores, relaciones y operadores:

En general son dos o tres letras (generalmente letras significativas del texto en [texx]\LaTeX[/texx] al que reemplazan) seguidas de ñ.

Otro tipo de reemplazos:

Hay otros tipos de reemplazos, por ejemplo la cadena .. es sustituida por \cdot{Space}, xx por \times{Space}, == por \equiv{Space}, etc... Y los símbolos comúnmente asociados a conjuntos comunes siguen el patrón de letra en mayúsculas repetida, por ejemplo CC por \Bbb C{Space}.

Funciones comunes utilizan el sufijo ¡ en vez de ñ, por ejemplo s¡ sustituye a \sin{Space}, y l¡ sustituye a \ln{Space}.

También hay hotstrings para bbcode, que se utilizan con el sufijo bb. Y dos sustituciones específicas para rincón matemático: ++ por [texx][/tex] (sin la x adicional) y ññ para una sustitución similar para escribir matemáticas en modo \display y centrado.

Hay también algunos hotkeys con funciones especiales, por ejemplo ç mueve el cursor dos veces a la derecha, y shift+ç dos veces a la izquierda, lo que resulta muy útil para saltar de dentro de un par de llaves {} a otro par de llaves o al final de la cadena insertada.

Hay dos hotkeys que suspenden o quitan la suspensión del script que son la tecla de pausa y la combinación Alt+Espacio. Cuando el script está suspendido el icono de la barra de tareas cambia a una letra S sobre fondo verde y todas sus funciones están desactivadas.



Filosofía en el diseño del script:

La filosofía que tiene el script es posibilitar una velocidad de tecleo de [texx]\LaTeX[/texx] máxima a aquellos que ya saben escribir en [texx]\LaTeX[/texx], usando cadenas de texto muy cortas (menos de cinco pulsaciones, de medio tres), fáciles de asociar a las cadenas de [texx]\LaTeX[/texx] 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 [texx]\LaTeX[/texx] 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 cuando se escribe texto lo mejor es desactivar momentáneamente el script pulsando la tecla de pausa (o Alt+Espacio).

El script no pretende ser exhaustivo sino sólo simplificar la escritura de código [texx]\LaTeX[/texx] de uso común.

Además este script puede utilizarse en cualquier editor o caja de texto ya que sólo sustituye tecleos por otros tecleos. Puede usarse en este foro, en MSE o en cualquier editor de [texx]\LaTeX[/texx].

Errores de ejecución o de diseño:

Iré mejorando el script poco a poco a medida que lo vaya usando. Cada poco, si puedo añadir algo o mejorar algo del script lo hago, así que si os habéis descargado el script un día seguramente al siguiente ya haya hecho algún cambio, al menos por ahora. Supongo que dentro de un tiempo, con más pruebas y uso, llegaré a una versión sólida en su utilidad y funcionamiento que no precise cambios. En cualquier caso las contribuciones y críticas serán bien recibidas.

Por lo que llevo testeado de momento no conozco una forma de escribir [texx]\LaTeX[/texx] más rápido para alguien que ya conoce el lenguaje, al menos para un uso no excesivamente complejo: ni vim, ni texmacs, ni lyx, ni macros del texstudio ni nada de nada es tan rápido como esta solución que he encontrado. He quedado gratamente sorprendido con mi creación :cara_de_queso:



Actualización del 28-08-2019: cambiada la redacción para ajustar a los cambios recientes. Ahora las barras laterales se ven en cualquier resolución de pantalla.
En línea
Páginas: [1]   Ir Arriba
  Imprimir  
 
Ir a:  

Impulsado por MySQL Impulsado por PHP Powered by SMF 1.1.4 | SMF © 2006, Simple Machines LLC XHTML 1.0 válido! CSS válido!