La ley es un requisito (mínimo) de variedad (complejidad)

La ley es un requisito (mínimo) de variedad (complejidad)

Recientemente me he vuelto cada vez más ansioso de que LaTeX sea (posiblemente) superado pormecanografiadodebido a su sencillez.esta respuestamuestra varias aristas de Typst sobre LaTeX.

He estado discutiendo con uno de mis compañeros de clase sobre por qué sigo eligiendo LaTeX en lugar de Typst:

  • La calidad tipográfica de LaTeX es superior(aunque Typst se está poniendo al día rápidamente)
  • amo a tikZ, mientras que en Typst no hay equivalente(en realidad ahora hayCeTZ)
  • La compatibilidad con CJK en Typst es deficiente, mientras que XeLaTeX y LuaLaTeX manejan bien las fuentes CJK(Aunque creo que solucionarán esto pronto)
  • Las matemáticas en Typst son horribles, LaTeX ya ha marcado el estándar
  • En realidad, como estoy acostumbrado a LaTeX, no quiero cambiarme a Typst.:-(

Sin embargo, me han sorprendido algunos hechos:

  • Las macros en LaTeX no son tan convenientes como la programación real, aunque existe LaTeX3 para mitigar el problema.
  • La compilación de documentos LaTeX puede ser lenta, en comparación con Typst que usa Rust.
  • Una sintaxis más sencilla de Typst hará que las personas estén más inclinadas a aprender Typst en lugar de LaTeX.. LaTeX tiene muchos paquetes (y algunos incluso entran en conflicto), lo que puede resultar muy confuso para los alumnos.

He visto algunos de los cambios realizados dentro de la comunidad LaTeX, incluyendotectónicoreescribiendo LaTeX usando Rust.

Entonces, ¿cuál es el plan de la comunidad TeX para que TeX/LaTeX, este hermoso lenguaje, siga floreciendo? Estoy ansioso por aprender más y deseo contribuir.

Respuesta1

Bueno, al principio sería bastante cauteloso con la afirmación de "fácil" y "rápido". Hace 10 años respondí una pregunta sobre en qué se diferencia Word de LaTeX con

Sí, puedes hacer la mayoría de las cosas normales sin problemas (y a veces más rápido o más fácilmente) con Word. Pero ¿qué pasa con las "cosas ligeramente anormales"?

mecanógrafo es "moderno", que es otra palabra para joven. Cuando comenzó, ni siquiera podía hacer cosas bastante normales como notas al pie, elementos flotantes, marcadores, diseños de doble página, campos de formulario o comentarios en PDF. Y aunque algunos de ellos ya están implementados, todavía carecen de muchas de las opciones de configuración que existen en LaTeX o en los paquetes de soporte. Un ejemplo actual es esta discusión sobre cómo obtener algo tan básico como un \pagereftipo de letra:https://github.com/typst/typst/issues/2873.

Es fácil hacer cosas sencillas con una sintaxis fácil de aprender y estoy bastante de acuerdo en que # my chapteres una forma agradable y corta de crear un título (pero la sintaxis de LaTeX \chapter{my chapter}tampoco es larga), pero la pregunta es qué sucede si quieres más. cosas complicadas. ¿Existe una sintaxis intuitiva para una sección sin numerar? ¿Cómo se puede adaptar la entrada en el toc o en el encabezado? ¿Está integrado o requiere buscar y copiar diez o más líneas de código como en el caso de pageref en el problema citado anteriormente? ¿Seguirá siendo fácil de usar typst una vez que madure y reciba solicitudes de funciones sobre funciones de documentos más sofisticadas?

En segundo lugar, me preocupa bastante que un sistema "moderno" como typst no admita funciones de accesibilidad de PDF desde el principio. Es posible que la accesibilidad no importe en el caso de documentos privados, pero cualquiera que escriba para alguna organización tendrá que considerar este tema pronto. Los autores tipógrafos lo sabían y sabían que necesitaban los datos de estructura para un PDF etiquetado, pero aun así escribieron su compilador para que los pierda: "Dado que actualmente los marcos solo contienen localizadores y no una asignación inversa completa a la estructura del documento, el exportador no puede escribir esta información de estructura." EllosafirmarQue ellos sonen una buena posición porque hay bastante información semántica disponible, pero LaTeX tiene información semántica disponible desde hace 30 años y eso no facilita la producción de PDF etiquetados y accesibles.

Si hubiera pensado en escribir una máquina de composición tipográfica desde cero (lo cual no haría porque creo que los grandes sistemas deberían cambiarse mediante la evolución, no derribándolos y reconstruyéndolos), no se puede sacar a todos los habitantes de una ciudad mientras se rediseñarlo desde cero), entonces me habría asegurado de que el diseño principal considere la accesibilidad desde el principio y no lo hubiera agregado como una ocurrencia tardía. El hecho de que hayan perdido esta oportunidad hace que, en mi opinión, el mecanografiado sea muy poco moderno.

Respuesta2

Como alguien que también está escribiendo un reemplazo de LaTeX, creo que sería bueno que LaTeX fuera reemplazado por algo en el futuro. La programación en lenguaje de macros TeX es un desastre y el compromiso con la compatibilidad con versiones anteriores significa que el progreso es lento, si no imposible (sigo pensando que fue un grave error incorporar LaTeX3 en un LaTeX2e en evolución en lugar de aprovechar un número de versión principal para romper). compatibilidad al revés.

Mi predicción es que el sucesor de LaTeX, si alguna vez surge, conservará el formato de LaTeX pero evitará el modelo de programación basado en macros. Los autores deben poder realizar la transición con poca fricción. No creo que nadie lamente la muerte del frágil macrosistema LaTeX. El hecho de que TeX sea Turing completo no significa que sea la mejor manera de hacer las cosas o incluso una buena manera.

Lo que esperaría ver sería el control de versiones de paquetes y clases de documentos (o su equivalente) para que nadie se sorprenda cuando CTAN actualice un paquete con tres dependencias de profundidad y su documento ya no se compile. Además, no hay ninguna razón en los sistemas informáticos modernos por la que sean necesarias varias ejecuciones para gestionar cosas como referencias y citas. Una sola aplicación podría manejar las capacidades de LaTeX, BibTeX, makeindex, etc.

También siento que en lugar de escribir, por ejemplo,

\documentclass{amsart}

el mejor enfoque podría haber sido hacer algo como

\DocumentStructure{article}
\DocumentFormat{ams}

o mejor aún:

\DocumentStructure{article:1.0}
\DocumentFormat{ams:ams:1.0}

donde no sólo tenemos números de versión sino también espacios de nombres para que no haya esa preocupación continua por chocar con los nombres de los archivos de los demás.

Finalmente, propondría que las dependencias externas del documento se descarguen automáticamente si no existe una copia local para que la distribución principal ya no tenga un tamaño tan cetáceo.

Respuesta3

La mayor desventaja de typst, y creo que un grave error de diseño, es que no es compatible con LaTeX. ¿Qué se hace con grandes volúmenes de documentos, archivos, etc. existentes? ¿Tirar todo y empezar de cero? He estado usando LaTeX desde sus inicios, ¡ya son casi 40 años! Los hitos en las mejoras fueron el uso de Laserjets (adaptado rápidamente), pdfTeX, babel, ahora la l3capa, LuaTeX, PGF/Tikz, BiblaTeX, microtype.

El lenguaje de marcado TeX/LaTeX resistirá y durará, probablemente más que muchos de la generación anterior que todavía lo usamos. Como le dirá cualquiera que haya leído el libro Dragon, no es fácil crear un compilador que recoja comandos y parámetros de un mar de letras a su alrededor.

¿Se puede mejorar? ¡Sí! Áreas en mi opinión que se pueden mejorar:

  1. Reemplazo automático de glifos que faltan en las fuentes, similar a lo que hacen los navegadores web y el IDE. Esto se puede lograr actualmente con LuaTeX/LuaLaTeX con fuentes alternativas, pero se vuelve terriblemente lento.
  2. Rutinas de salida programables. Los valores predeterminados deben estar integrados en el propio motor TeX.
  3. Muchos de los problemas con conflictos en paquetes provienen de hyperef. Debería diseñarse un nuevo mecanismo que permita a los autores utilizar enlaces más fácilmente, en lugar de depender del paquete. Las clases base se pueden modificar para incorporar esto, por lo que no es necesario que Hyperref redefina todos los comandos de sección y referencia. Incorpora esto al formato.
  4. El manejo de documentos índicos y de Asia oriental se puede mejorar contribuyendo a haffbuz y LuaTeX. No debería ser necesario cargar un paquete para cambiar un idioma.
  5. Se puede mejorar la creación de fuentes virtuales.

A todos aquellos que prueban y desarrollan diferentes sistemas, gracias, la competencia es buena y les deseo buena suerte. El otro día estuve mirando algunas estadísticas y noté que entre l3 y LuaTeX se agregaron unas 130.000 locomotoras a lo que se carga en una ejecución. el TeX original tenía unas 20.000 loc. Quizás algunos esfuerzos para mejorar los propios motores para manejar algunas de las áreas que son problemáticas sean más fáciles y útiles que reescribir todo desde cero.

Respuesta4

Sin conocer planes concretos de la comunidad de Latex, podemos anticipate future developmenthacer ambas cosas Latexy, Typsthasta cierto punto, reutilizar 2 hallazgos científicos.

Esto nos aleja de una mirada a planes o especulaciones concretas y nos acerca a una visión sólida y más global.

La ley es un requisito (mínimo) de variedad (complejidad)

Esto vuelve aW.Ross Ashby, quien se encuentra entre las mentes fundadoras de la cibernética. Dijo, en parte en mis palabras:

  • para lidiar con la complejidad
  • el regulador/controlador tiene que ser al menos igual de complejo;
  • La regulación falla con reguladores poco complejos
  • especialmente con ruido (disturbios) involucrados.

El ejemplo de Ashby

En su"Introducción a la Cibernética", 1956Utiliza un controlador de temperatura para ilustrar su ecuación básica y sus consideraciones.

Básicamente dice:

  • dentro de un rango normal de variación de temperatura ambiental, el controlador funciona bien
  • sin embargo, en condiciones climáticas muy alteradas falla, ya que simplemente ya no puede compensar el cambio.

Ver por ejemploaquí (un capítulo simplificado), oaquí (Wikipedia sobre Variedades)oaquí (en su libro, citado anteriormente).

variedad-wikipedia

mi ilustración

Pensemos en un ferrocarril sencillo. Una vía, un tren, no hay problema. El tren va y viene todo el día.

Aumentemos la complejidad (C+) paso a paso en respuesta a perturbaciones cada vez mayores (D+).

D+: Pon un segundo tren en la misma vía. Ahora empiezan los problemas, ya que se obstaculizan mutuamente. Como solución necesitamos aumentar la complejidad del sistema.

C+: Introduzcamos un horario que regule qué tren va, dónde, cuándo, con qué frecuencia, etc. Esto puede estar bien para muchas situaciones.

D+: Viajar en ambos trenes se ha vuelto más popular y la gente empieza a molestarse por tener que cambiar de tren todo el tiempo, sólo para ir de un extremo al otro.

C+: Agreguemos un cambio de carril, para que ambos trenes puedan cruzarse. Ajustemos el horario.

Etcétera. Todos conocemos el estado de complejidad que alcanzan los sistemas ferroviarios en la actualidad, como:

  • a menudo tiene al menos dos pistas por dirección
  • tener muchas pistas en o cerca de ciertas estaciones
  • ofreciendo una variedad de trenes
  • usando señales de todo tipo
  • proporcionando muchos tipos diferentes de cruces ferroviarios
  • tener gemelos digitales de "lo que pasa afuera"
  • etc.

Simplificar, como suelen hacer los controladores económicos, y alguien paga un precio.(Callejón sin salida)

Inventary obtenga ambos: más simple Y más complejo.(Innovación)

Donde este último es un resumen del trabajo del inventor de(intención) "La innovación como ciencia", Genrich Altshuller. (TRIZ, acrónimo ruso, mi traducción por significado: una teoría práctica para resolver situaciones inventivas)

¿Qué significa esto para Latex y Typst?

Todos lo sabemos: LatexES complejo. O, en opinión de Ashby: hace frente a una gran cantidad de variedad y perturbaciones. Maduró hasta alcanzar un alto nivel de composición tipográfica... ytodavía lo es, ver aquí.

Por su propio desarrollo Typstaún se encuentra en su denominación infancy state. Comenzó con un determinado concepto en mente, ofreciendo un número todavía limitado de resultados tipográficos, y seguirá evolucionando, como cualquier sistema técnico,

  • de la contradicción(roadblock, trade-off: this EXOR that)
  • a través de una solución(system change, exact solution: this AND that)
  • a la contradicción (next roadblock).

Como mucha gente ha dicho, TypstES más sencillo y así es como pretende serlo. Lo que se traduce en:

  • Typstes menos complejo queLatex
  • Latexpuede manejar más perturbaciones/variedades/requisitos que Typstpor ahora, y tal vez lo haga durante mucho tiempo
  • Para ponerse al día con la variedad ofrecida por Latex, el Typstecosistema (sintaxis, compiladores, paquetes, bibliotecas, etc.) tiene que volverse más complejo, tiene que ser capaz de absorber más requisitos/variedad

Entonces, en consecuencia, probablemente:

  • Será más fácil encontrar Latex2Typsttraductores (eliminando la variedad).
  • Ser difícil o casi imposible encontrar Typst2Latextraductores (agregando variedad/complejidad)(en contraste con simplemente almacenar en un formato de archivo de látex)

Mis conclusiones y estimaciones (habiéndose logrado en el futuro)

En el futuro cercano espero Typstser y seguir siendoYyAno ellaMETROarkuplidioma, mientras que Latexseguirá admitiendo la composición tipográfica...

Algunos vínculos entre los dos (llamados traductores arriba) aparecerán y desaparecerán.

Puede resultar que haya un subconjunto útil (bastante grande) de Typst, que puede ser absorbido (proporcionado) por Latex.

Lo contrario, al menos conservando la complejidad de la composición tipográfica, probablemente nunca alcanzará un estado utilizable.

información relacionada