Ya vimos en este artículo cómo escribir versalitas en varios programas, ente ellos Word, PowerPoint, InDesign y Trados Studio (una aplicación de traducción asistida). Pues bien, hoy vamos a ver cómo puedes escribir versalitas en Word con AutoHotkey, con el mínimo esfuerzo.
Planteamiento del problema
Suponte que estás traduciendo unas páginas sobre Historia en Microsoft Word, y necesitas teclear muchas veces los siglos xiv, xv, xvi, xvii, xviii, etc. Por otra parte, quieres escribir estos números romanos en versalitas porque es lo recomendado por los doctos de la lengua.
Lo habitual sería que escribieras xviii, por ejemplo, y aplicaras después el formato de versalita. Si tienes que hacer esto muchas veces, sería muy farragoso, ¿verdad? Entonces te recomiendo el método de este artículo, que consiste en aprovechar una herramienta superútil, que es AutoHotkey.
¿Qué son las versalitas?
No quiero repetir aquí lo ya dicho en este artículo, así que te resumo muy gráficamente qué son las versalitas:
Estas letras son MAYÚSCULAS,
mientras que estas son versalitas.
¿Se ve la diferencia, verdad?
Si es la primera vez que te pasas por Gonduana, te recomiendo encarecidamente que leas ese artículo de versalitas.
¿Qué es AutoHotkey?
Ya hemos hablado bastante de AutoHotkey en este blog. Solo decirte que es una aplicación muy sencilla que te puede servir como sistema taquigráfico personal.
Por ejemplo, puedes escribir «maaee» y este texto se desdoblará automáticamente en «Ministerio de Asuntos Exteriores». No está mal: escribes solo 5 caracteres y AutoHotkey te escribe 32.
Si sigues tus propias reglas nemotécnicas, podrías decidir que «maaeeyc» se expanda a «Ministerio de Asuntos Exteriores y Cooperación».
Estas dos reglas taquigráficas las puedes conseguir con estas líneas en una sencilla macro de AutoHotkey:
::maaee::Ministerio de Asuntos Exteriores ::maaeeyc::Ministerio de Asuntos Exteriores y Cooperación
Aparte de servirte como taquigrafía personal, AutoHotkey permite ejecutar funciones dentro de tu ordenador cuando tú quieras. En el artículo de hoy aprovecharemos justamente esta otra cara de AutoHotkey.
Tampoco quiero repetir lo ya dicho en los otros artículos de AutoHotkey, así que te aconsejo que si AutoHotkey es algo nuevo para ti, eches un vistazo a todos estos artículos de la serie de AutoHotkey en Gonduana.
Versalitas en Word con AutoHotkey
Entramos de lleno en la creación de la macro para aplicar el formato de versalitas en Word con AutoHotkey.
Atajo de versalitas en Word
Para aplicar el formato de versalitas en Word, hay que emplear el atajo de teclado CTRL+MAYÚS+L para la versión española de Word, o bien CTRL+MAYÚS+K para la versión inglesa. Son los atajos predeterminados; ya sabes los puedes cambiar en cualquier momento.
Supondremos que tienes la versión española de Word, o sea, que el atajo es CTRL+MAYÚS+L.
Procedimiento para aplicar versalitas en Word
Si lo analizas tranquilamente, verás que los pasos para aplicar el formato de versalita a xviii, por ejemplo, serían los siguientes:
- escribir «xviii» (OJO: en minúsculas, esto es importante);
- seleccionar «xviii»;
- aplicar el estilo de versalita con el atajo;
- pulsar la tecla DERECHA para poder seguir escribiendo detrás de «xviii»;
- quitar el estilo versalitas, para poder escribiendo con el formato normal.
Pues bien, excepto el primer paso de teclear «xviii», vamos a ejecutar los siguientes pasos de forma automática aprovechando las maravillosas virtudes de AutoHotkey.
Si lo hacemos todo con el teclado, sin usar el ratón, el paso 2 implica pulsar la tecla MAYÚSCULAS y CONTROL mientras se pulsa una vez la tecla IZQUIERDA.
Se ve, ¿verdad? Si no es así, para un segundo y compruébalo por ti mismo.
El paso 3, sin el ratón, implica pulsar la combinación CTRL+MAYÚS+L, que es el atajo para aplicar versalitas en Word.
El paso 4, es bastante directo y no hay nada más que comentar, pero harías bien en comprobar por ti mismo que funciona en la secuencia completa.
El paso 5 de quitar las versalitas se consigue con el mismo atajo que para aplicar versalitas (CTRL+MAYÚS+L).
A continuación vamos a ver unas macros de AutoHotkey que hacen estos pasos. Veremos desde la primera que se nos puede ocurrir hasta la versión más simplificada.
Empezaremos solo con un siglo, el xviii, y luego lo extrapolaremos al resto de siglos.
1.ª macro de AutoHotkey
La macro de AutoHotkey que hace todo esto es:
:C:siglo xviii:: ; volver a escribir «siglo xviii» SendInput siglo xviii ; pulsar sin liberar las teclas MAYÚS. y CONTROL SendInput {Shift down}{control down} ; seleccionar «xviii» SendInput {Left} ; liberar las teclas MAYÚS. y CONTROL SendInput {Shift up}{control up} ; CTRL + MAYÚS + L (aplicar versalitas a «xviii» en Word) SendInput ^+l ; colocar el cursor de la derecha del siglo SendInput {Right} ; quitar versalitas con CTRL + MAYÚS + L (atajo de Word) SendInput ^+l Return
Para ejecutar la macro, tienes que teclear un espacio, un punto, una coma o cualquier otro signo «terminador» después de «siglo xviii».
La opción C de la línea 1 hace que se ejecute la macro solo cuando se escribe todas las letras de «siglo xviii» en minúsculas. El motivo es que para aplicar versalitas, las letras deben estar en minúsculas. Si te ves seguro para escribir siempre los siglos en minúsculas, puedes borrar esta «C» de la línea 1.
Si te fijas, la línea 3 reescribe «siglo xviii». Esto es necesario porque AutoHotkey cambia «siglo xviii» por lo que digamos en la macro, que es justamente «siglo xviii» con un procesado para cambiar el formato a versalitas (lo vemos ahora).
El resto de líneas siguen el procedimiento descrito antes. Si tienes alguna duda, párate y trata de ver la correspondencia.
2.ª macro de AutoHotkey
Hay otra posibilidad, que es aprovechar la opción B0 (letra be y número cero) para que no se borre la abreviatura («siglo xviii ») antes de ejecutar la macro. Esto simplifica algo la macro:
:B0:siglo xviii:: ; salta 1 posición a la izquierda SendInput {Left} ; pulsar sin liberar las teclas MAYÚS. y CONTROL SendInput {Shift down}{control down} ; seleccionar «xviii» SendInput {Left} ; liberar las teclas MAYÚS. y CONTROL SendInput {Shift up}{control up} ; CTRL + MAYÚS + L (aplicar versalitas a «xviii» en Word) SendInput ^+l ; Mover 2 posiciones a la derecha (siglo + espacio) SendInput {Right 2} Return
No hemos incluido aquí la opción C, para distinguir mayúsculas de minúsculas.
Como no se borra la abreviatura («siglo xviii »), no hace falta reescribirla.
En su lugar, en la línea 3 ahora es SendInput {Left} que envía 1 pulsación de la tecla IZQUIERDA. El motivo es que tenemos que saltar el espacio.
Para seleccionar el siglo y aplicar versalitas es lo mismo que en la primera macro.
La diferencia es en la línea 13: hemos añadido SendInput {Right 2}, para enviar 2 pulsaciones de la tecla DERECHA, ya que hay que saltar el siglo y el espacio posterior.
Por último, en esta 2.ª macro no hay que quitar el formato versalita, ya que solo se aplicó versalitas al siglo, no al espacio posterior.
3.ª macro de AutoHotkey
Podemos simplificar aún más la macro si nos damos cuenta de que podemos unificar las 4 primeras líneas con SendInput.
Simplificamos, pues, esta macro a:
:B0:siglo xviii:: SendInput {Left}{Shift down}{control down}{Left}{Shift up}{control up} SendInput ^+l SendInput {Right 2} Return
Donde hemos agrupado las líneas 3 a 9 en una única línea y hemos borrado todos los comentarios.
Así se ve mejor, ¿verdad?
4.ª macro de AutoHotkey
Si ponemos todos los siglos posibles, del i al xxi, tenemos nuestra primera macro completa:
:B0:siglo i:: SendInput {Left}{Shift down}{control down}{Left}{Shift up}{control up} SendInput ^+l SendInput {Right 2} Return :B0:siglo ii:: SendInput {Left}{Shift down}{control down}{Left}{Shift up}{control up} SendInput ^+l SendInput {Right 2} Return ; … resto de siglos :B0*:siglo xviii:: SendInput {Left}{Shift down}{control down}{Left}{Shift up}{control up} SendInput ^+l SendInput {Right 2} Return ; … resto de siglos
Esta macro funcionaría, pero la vamos a simplificar más, porque si te fijas, hay 3 líneas que se repiten en cada siglo.
¿Te imaginas cómo podemos simplificar?
5.ª macro de AutoHotkey
Para simplificar aún más la macro, aprovecharemos lo aprendido en el artículo de funciones de AutoHotkey, y crearemos una función versalitasEnWord con esas 3 líneas que se repiten y llamaremos a esa función desde un único punto:
#IfWinActive ahk_exe WINWORD.EXE :B0:siglo i:: :B0:siglo ii:: :B0:siglo iii:: :B0:siglo iv:: :B0:siglo v:: :B0:siglo vi:: :B0:siglo vii:: :B0:siglo viii:: :B0:siglo ix:: :B0:siglo x:: :B0:siglo xi:: :B0:siglo xii:: :B0:siglo xiii:: :B0:siglo xiv:: :B0:siglo xv:: :B0:siglo xvi:: :B0:siglo xvii:: :B0:siglo xviii:: :B0:siglo xix:: :B0:siglo xx:: :B0:siglo xxi:: versalitasEnWord() Return versalitasEnWord() { SendInput {Left}{Shift down}{control down}{Left}{Shift up}{control up} SendInput ^+l SendInput {Right 2} } #IfWinActive
Si te fijas, he añadido la línea 1, con la directiva #IfWinActive, para que se ejecute la macro solo si estás escribiendo en Word.
Puedes descargarte esta 5.ª macro completa aquí:
Otras posibilidades
Si lo piensas con detenimiento, y ya dejo para ti esta tarea, podrías añadir otras líneas a la 5.ª macro para los plurales de «siglo», es decir:
:B0:siglo i:: :B0:siglos i:: :B0:siglo ii:: :B0:siglos ii:: ; resto de siglos
De esta forma, cubrirás la posibilidad de que escribas «entre los siglos i y iii». Se aplicaría el formato versalitas a la primera cifra de forma automática y habría que aplicar versalitas de forma manual a la segunda cifra romana, pero algo ayuda, ¿verdad?
Una última idea sería convertir el número de siglo a minúsculas antes de aplicar las versalitas. De esta manera, te aseguras de que, aunque escribas «siglo XVIII» y no «siglo viii», las versalitas se verán correctamente en Word, es decir, «siglo xviii».
6.ª macro de AutoHotkey (otra filosofía)
Quería darte otra posibilidad de escribir los siglos en versalitas. Se trata de una forma más taquigráfica:
- teclear «s1» para que AutoHotkey escriba en versalitas el siglo i;
- teclear «s2» para que AutoHotkey escriba en versalitas el siglo ii;
- teclear «s3» para que AutoHotkey escriba en versalitas el siglo iii;
- teclear «s4» para que AutoHotkey escriba en versalitas el siglo iv;
- …
- teclear «s21» para que AutoHotkey escriba en versalitas el siglo xxi.
Una macro de AutoHotkey con esta filosofía tendría esta pinta:
#IfWinActive ahk_exe WINWORD.EXE :C:s1:: versalitasEnWord(i) Return :C:s2:: versalitasEnWord(ii) Return :C:s3:: versalitasEnWord(iii) Return :C:s4:: versalitasEnWord(iv) Return ; ---------------------- ; resto de siglos aquí ; ---------------------- versalitasEnWord(siglo) { ; escribir «xviii» SendInput, %siglo% ; escribir el carácter terminador SendInput %A_EndChar% ; seleccionar el siglo, «xviii», por ejemplo SendInput {Left}{Shift down}{control down}{Left}{Shift up}{control up} ; aplicar versalitas SendInput ^+l ; cursor a la derecha 2 posiciones SendInput {Right 2} } #IfWinActive
Se ve la idea, ¿verdad?
Vamos a ver los cambios de esta macro respecto a la 5.ª:
- Cada abreviatura de siglo, «s18», por ejemplo, llama a la función versalitasEnWord con el número de siglo como parámetro, en cifras romas y en minúsculas.
- Dentro de esta función versalitasEnWord:
- Se envía el siglo en minúsculas, «xviii», que se había recibido como parámetro, con la función SendInput.
- La línea 22 es diferente: añade el carácter «terminador» tecleado después de «s18» (un espacio o un punto, por ejemplo). Se consigue con la función SendInput y la variable A_EndChar interna de AutoHotkey.
- Las siguientes líneas son básicamente las mismas que la 5.ª macro.
Puedes descargarte esta 6.ª macro completa aquí con todos los siglos hasta el xxi:
Quizás te interese saber que empleo esta 6.ª macro y no la 5.ª. Dos motivos:
- Es más breve de escribir que la versión con «siglo…».
- No solo los siglos van en versalita; no cierro otras posibilidades.
⁂
Pues nada más…
Espero que sepas cómo escribir versalitas de la forma más rápida posible y que puedas extrapolar el método a otras posibilidades, no solo los siglos.
Estas macros de AutoHotkey nos facilitan la vida para escribir versalitas, pero son mejorables, por supuesto.
Si tienes ideas y otras formas de atacar las versalitas de Word con AutoHotkey, no dudes en compartirlas.
No quiero despedirme sin un chiste relativo sobre los números romanos:
Un romano nunca entendería
que una talla L
sea más pequeña que una XL
🙂