¿Qué construcciones provocarían un tiempo de compilación prolongado en un documento?

¿Qué construcciones provocarían un tiempo de compilación prolongado en un documento?

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 draftno está habilitado).

También en su documento utiliza muy a menudo mboxpara 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 openrighty, por lo tanto, la utilizó \newpageen 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 allexistía la opción. ¿Hace lo que imagino? ¿Realmente permite todas las opciones posibles? ¿Pero no es eso contradictorio? Por ejemplo para parskipy 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 qrcodepaquete, 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; qrcodeparece bastante excelente. Pero aún así.)

Como también se mencionó en los comentarios, dibujar extensamente en TeX también llevará más tiempo. tikzy 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.

información relacionada