Tengo un amigo que escribe un documento bastante largo. A estas alturas tiene alrededor de 130 páginas (PDF). Utiliza TexWorks en Windows y su documento a veces tarda entre 2 y 3 minutos en compilarse.
No pregunto si este tiempo es normal para un archivo tan largo. Sé que depende de muchas cosas y cada PC tendría tiempos diferentes dependiendo de la CPU, etc.
Pero me preguntaba qué construcciones en un archivo tex tomarían mucho tiempo si hay muchas en un documento.
Por ejemplo, podría imaginar que incluir muchas imágenes llevaría mucho tiempo ya que cada archivo externo debe cargarse en el documento (se supone que draft
no está habilitado).
También en su documento utiliza muy a menudo mbox
para evitar la separación de palabras. Si se dieran muchos de ellos, ¿aumentaría eso el tiempo que lleva compilar el documento?
Como último ejemplo: no conocía la opción openright
y, por lo tanto, la utilizó \newpage
en todos los lugares donde quería que se abriera un nuevo capítulo en la página correcta. ¿Esto causa tiempo de compilación adicional?
Espero que mi pregunta sea lo suficientemente clara.
Editar: Una cosa más que vi en su documento. Como la primera línea que vi \documentclass[all]{...}
. No sabía que all
existía la opción. ¿Hace lo que imagino? ¿Realmente permite todas las opciones posibles? ¿Pero no es eso contradictorio? Por ejemplo para parskip
y halfparskip
? ¿Esto perjudicaría el rendimiento? Me imagino que será como en Java import *
.
Respuesta1
Entiendo que las matemáticas pueden llevar más tiempo que el texto simple, debido a las muchas consideraciones adicionales que implican. Incluir imágenes en formato (que no sean pdf o mps) también aumentará los tiempos de compilación, porque deben procesarse en lugar de simplemente incluirse en el código.
Pero TeX es un motor de composición tipográfica y, si bien es Turing completo, las cosas que requieren mucho procesamiento no serán particularmente eficientes cuando le pedimos a TeX que las haga. El ejemplo que más inmediatamente me viene a la mente (debido a su reciente lanzamiento) es el qrcode
paquete, que utiliza TeX para convertir cadenas de texto en datos binarios y luego construye códigos QR gráficos a partir de ellas. TeX es capaz de hacer este tipo de cosas, pero no fue diseñado para ello; por lo que lleva un poco más de tiempo procesar un código QR que un simple texto. (No mucho más en este caso; qrcode
parece bastante excelente. Pero aún así.)
Como también se mencionó en los comentarios, dibujar extensamente en TeX también llevará más tiempo. tikz
y los amigos sufren por esto; aunque nuevamente, la eficiencia de estos programas es notable dado lo lejos que están llevando a TeX más allá de sus límites originales. shapepar
, aunque utiliza TeX para el propósito previsto, obliga a TeX a componer párrafos en formas extrañas y creativas, y tiene que ejecutar pruebas repetidas para determinar la mejor manera de adaptar textos determinados a esas formas; como resultado, a menudo lleva más tiempo ejecutarlo que simplemente escribir texto en párrafos rectangulares normales.
La conclusión es que TeX fue diseñado para dividir líneas en párrafos, párrafos en páginas y fórmulas en unidades bien compuestas; cualquier otra cosa que no sea eso será más lenta.