Estoy escribiendo mi tesis de doctorado, y lo estoy haciendo en español porque al fin y al cabo los artículos sobre los que estará basada ya los escribí en inglés, y no le veo sentido a andarme rompiendo la cabeza de nuevo escribiendo en inglés cuando puedo hacerlo en español, y soy mucho mejor escritor en mi idioma natal.
Como sea, escribiendo en español de nuevo ha hecho que descubra (o redescubra) varios trucos interesantes. Lo primero es hacer que
hable español, por supuesto, que se logra con un simple
\usepackage[spanish]{babel}
Lo siguiente es hacer que use UTF-8 para entender acentos, para así poder escribir á, y no \'a. Yo esperaría que ya todo mundo lo supiera, pero me he encontrado con varias personas que siguen usando el modo “tradicional”, que es por supuesto lento, propenso a errores, y en español hace que un documento sea ilegible. Para que
use UTF-8, sólo se necesita un simple
\usepackage[utf8]{inputenc}
Con eso al 99% de la gente que escribe en español debería bastarle; para los neuróticos como yo, el que sigue está interesante. Con los dos paquetes de arriba
ya genera un documento correcto usando español, pero si uno usa
(como yo, que ya le perdí la fe para siempre a PostScript), en el documento resultante no están sincronizados el texto dibujado en pantalla, y el texto subyaciente. Para que me entiendan, creen un documento
con los dos paquetes que mencioné, compílenlo con
, y luego seleccionen una parte del documento con acentos. Debería pasarles algo así:
Eso no sólo se ve horrible; la búsqueda en el PDF deja de funcionar, y afecta también cosas como buscadores automáticos (como el de Google) que analizan los PDFs por el texto subyaciente, no por cómo se dibuje en la pantalla. Repararlo es bien sencillo:
\usepackage[T1]{fontenc}
Con este paquete, el PDF ya sincroniza el texto subyaciente con el dibujado en la pantalla, y todos los problemas que mencioné arriba se corrigen:
El siguiente truco está relacionado; para las tesis en la UNAM, la portada siempre tiene que seguir un cierto formato del que sencillamente no hay forma de escapar. La manera más sencilla (para mí) de cumplir con el requerimiento de la portada, fue hacerla en Inkscape, exportarla a PDF, e incluirla como página completa en mi documento con \includepdf, del paquete pdfpages. Ahora, todo el texto en la portada lo hice con dentro de Inkscape para que usara la misma fuente que el resto del documento, para esto usé la extensión textext de Inkscape que permite insertar la salida de
como SVG dentro de un archivo de Inkscape (que también es SVG).
Todo esto funciona muy bien, pero como el texto de se inserta como SVG (dícese, líneas, curvas de Bézier, y cosas así), el PDF resultante no tiene texto subyaciente, y por lo tanto no es seleccionable, buscable, analizable, etc., porque de hecho no hay tal. Para arreglarlo es muy fácil; uno toma su documento en Inkscape:
Y le agrega texto de Inkscape, o sea, el texto que de hecho SVG sabe manejar:
Por supuesto, uno selecciona la fuente de Inkscape que mejor se acerque a la de aunque dado el cuidado que pone
para dibujar texto, por mucho que se parezca la fuente de Inkscape no se verá igual (que es la razón por la cual uso texto de
y no de Inkscape en primer lugar). Hecho esto, uno centra el texto de Inkscape sobre el de
, para que estén casi uno encima del otro:
Y por último uno selecciona el texto de Inkscape, y lo hace invisible:
Y ya, con esto el texto subyaciente del PDF será el de Inkscape, y aunque no se verá idéntico al dibujado en el PDF, sí será seleccionable:
Por supuesto, cuando no se esté seleccionando, el texto de Inkscape será invisible, dejando únicamente visible (e imprimible) el texto bonito de . Ya que tuve mi portada lista, lo siguiente que pensé fue si valía la pena hacer las figuras de mi tesis seleccionables. Son chorroscientas, y además tendría que estar poniendo caracteres griegos la mayor parte del tiempo, y eso me dio mucha flojera. Sin embargo, hice una pequeña extensión para Inkscape que toma el texto de
generado por textext, e inserta el código
que generó el texto. Por ejemplo, la siguiente figura:
esto es lo que se ve cuando uno selecciona texto dentro de ella:
No es terriblemente útil, pero como ligué mi extensión en Inkscape a un atajo del teclado, es bastante fácil de hacer, y se ve mamón. Esos son todos los trucos que he aprendido (o vuelto a aprender); si encuentro otros luego los publico.

Creo que nadie se hubiera quejado si dejabas la portada como mera imagen sin texto seleccionable… :)
No sabía de \usepackage[T1]{fontenc}, que bueno que lo mencionaste (no escribo mucho en español pero vale la pena usar UTF8 aunque sea para nombres de personas y los ocasionales términos técnicos en francés). Digo, para la comodidad del autor basta usar inputenc, pero además usar fontenc es más cómodo para el lector y no cuesta nada.
> Creo que nadie se hubiera quejado si dejabas la portada como mera imagen sin texto seleccionable… :)
De ahí el “para los neuróticos como yo”…
Oye, qué bien están los trucos. Una pregunta, el \usepackage[T1]{fontenc} no evita el \textquestiondown, ¿verdad?
gracias.
No tengo idea; nunca he usado \textquestiondown.
Está bien explicado lo del idioma Español, a mí a veces me falla cuando el documento es de grande, y acabo cambiando de á a \’a por que no deja de fallar.
Saludos
Hola, disculpa… borré, por equivocación, todo el código de mi archivo en LaTex, tengo el PDF que LaTex te genera pero aún tengo que hacerle cambios aunque sin el código es imposible entonces, ¿sabrás alguna forma de pasar mi PDF a código?
Saludos.
No se puede. Sólo puedes copiar el texto plano, y a veces ni eso.
En ArchLinux, la instalación de latex incluye los programas pdftotext y pdftosrc.
pdftotext simplificaría recuperar el text del pdf, si se generó a partir de Latex. pdftosrc no funciona como se esperaría, pero supongo que vale la pena intentar
Hola, he intentado crear texto seleccionable en imagenes como dices, exportando el pdf con las opciones convertir texto en trayectos y no me crea el efecto de texto seleccionable, no se cual sea el error, te agradeceria me pudieras orientar