¿Existe alguna situación en la que sea preferible utilizar TeX (o quizás TeX simple) en lugar de LaTeX para escribir un documento?
Respuesta1
TeX es útil cuando quieres entender completamente lo que está pasando o quieres tener control total. En principio, esto también es posible con LaTeX, pero hay mucho más que entender. (Es decir, LaTeX esfácilpero nosimple, mientras que TeX simple es simple pero no fácil.Charla relacionada sobre diseño de software.)
TeX es una herramienta para componer tipografía; LaTeX es un sistema de preparación de documentos. IMO TeX es útil cuando quieres desempeñar el papel de impresor/compositor; LaTeX es útil cuando quieres desempeñar el papel del autor.
Para profundizar en el segundo punto: Érase una vez los libros se producían de la siguiente manera:
ElautorEscribiría su manuscrito (el contenido del libro) ya sea a mano (con bolígrafo o lápiz sobre papel), o con una máquina de escribir, o algo así, y luego (después de editarlo y corregirlo, etc.), lo enviaría a una imprenta (un persona).
Elimpresora(¡una persona, no una máquina!) tendría la tarea de tomar este contenido y convertirlo en páginas: recogiendo piezas de metal (para cada letra), espaciándolas en líneas de igual longitud, agregando espacios aquí y allá, etcétera. (Literalmente, tipografía, es decir, tipografista).
TeX fue escrito originalmente para ayudar con este último trabajo (Knuth ya tenía la mayor parte del contenido; solo estaba produciendo la segunda edición de su libro (TAOCP Vol 2)); Más tarde, Leslie Lamport se dio cuenta de que todo esto era un nivel demasiado bajo para los autores y se le ocurrió LaTeX. Por lo tanto, es difícil recomendar escribir un libro desde cero en TeX simple; probablemente terminarás con tus propias macros complejas como LaTeX. Pero si ya tienes el contenido en otro formato y solo quieres resolver un problema muy específico de páginas de un cierto tamaño conocido, es posible que sea más fácil hacerlo usando TeX simple (usando la menor cantidad de macros posible) que con látex.
Para dar un ejemplo algo trivial del primer punto: considere los comandos de cambio de fuente. Plain TeX produce una forma de decir "comience a usar la siguiente fuente", algo específico como "Computer Modern cursiva a 9 puntos". Por supuesto, probablemente quieras volver al tipo romano al final, por lo que debes tener cuidado de incluir este comando en un grupo. Pero no sólo eso: probablemente estés usando cursiva para dar énfasis, y si dentro de algo que está enfatizado quieres enfatizar más, entonces la convención es volver al tipo romano. Además, si desea enfatizar algo en negrita, no debe cambiar a cursiva normal, sino a negrita y cursiva. De manera similar, si su fuente es más grande, debe cambiar a la fuente en cursiva más grande. Todo este tipo de cosas \emph
las hace automáticamente el valor predeterminado de LaTeX . Esto suele ser lo que desea si está escribiendo un documento. Pero si por alguna razón deseas controlar explícitamente qué fuente se usa y dónde, entonces es posible que no sepas cómo hacerlo con LaTeX, y cuando te des cuenta, estarás usando algo tan alejado del LaTeX típico que se acerca más al TeX simple. .
He aquí otro ejemplo, gracias a Bruno Le Flochunravel
paquete. Compare lo que sucede internamente cuando ejecuta LaTeX \newcommand
con el TeX simple \def
:
\documentclass{article}
\usepackage{unravel}
\begin{document}
\unravel{\newcommand*{\foo}[1]{bar(#1)}} % The LaTeX way
\unravel{\def\foo#1{bar(#1)}} % The plain-TeX way
\foo{3}
\end{document}
Según lo impreso unravel
, el primero toma 126 pasos, mientras que el segundo toma 2 pasos. Este ejemplo ilustra bastantes otros puntos de diferencia entre LaTeX y TeX simple:
- La forma simple de TeX todavía está técnicamente disponible en LaTeX, pero no se recomienda.
- El marcado TeX simple a menudo puede ser más corto (haciendo menos: consulte el siguiente punto).
- La forma LaTeX es probablemente lo que la mayoría de los autores quieren, ya que nace de la experiencia y proporciona protecciones adicionales (en este caso, contra la posibilidad muy común de redefinir accidentalmente un comando existente).
- Aún así, en general, muy pocas personas que usan LaTeX estarían al tanto de todo lo que
\newcommand
sucede bajo escena, por lo que es menos propicio para comprender exactamente lo que está sucediendo.
Como otro ejemplo más (el último, lo prometo), compare una forma estándar de LaTeX para obtener una lista con viñetas:
\documentclass{article}
\begin{document}
Some text.
\begin{itemize}
\item first
\item second
\end{itemize}
More text.
\end{document}
con la forma en que lo hace Knuth texbook.tex
(correspondiente a la página 10):
% TeXbook uses "\input manmac"; for this example just need the following from it.
\def\bull{\vrule height .9ex width .8ex depth -.1ex } % square bullet
% These 3 are already in plain.tex, reproduced here as they may be less familiar.
\def\hang{\hangindent\parindent}
\def\textindent#1{\indent\llap{#1\enspace}\ignorespaces}
\def\item{\par\hang\textindent}
Some text.
\nobreak\medskip
\item\bull first
\smallskip
\item\bull second
\medbreak\noindent
More text.
\bye
Si rodea "Algo de texto... Más texto" con \tracingmacros=1
y \tracingmacros=0
, obtendrá aproximadamente 25 veces más líneas en el caso de LaTeX. Más importante aún, el estilo LaTeX probablemente esté más cerca de la mente del autor, y el estilo TeX muestra claramente toda la composición tipográfica que se está produciendo.
Respuesta2
La pregunta no tiene respuesta, en realidad cumple con el estándar de razón cercana "basada en opiniones". pero intentaré una respuesta de todos modos.
TeX es un lenguaje de expansión de macros y
LaTeX se define como un conjunto de macros, por lo que todo lo que escribes en LaTeX se expande eventualmente a alguna secuencia de primitivas de TeX.
Por el contrario, TeX le permite definir macros, por lo que a partir de las primitivas (initex) o de TeX simple, puede definir macros equivalentes a LaTeX.
Entonces, en cierto nivel, las capacidades son idénticas. Para la gran mayoría de las personas durante la mayor parte del tiempo, es mejor usar LaTeX, ya que cualesquiera que sean los pros y los contras técnicos, LateX básicamente forma un lenguaje de comunicación que tiene un significado independiente de su implementación en la tipografía TeX y la escritura en un lenguaje común con una comprensión compartida tiene sus usos. Si escribe sus propias macros TeX, incluso si escriben documentos equivalentes, esos documentos serán más difíciles de entender para otros humanos y otros sistemas.
Aparte de los aspectos del lenguaje compartido, las macros LaTeX no siempre son la implementación que elegirías ahora (fueron diseñadas para máquinas mucho más pequeñas), pero han sido utilizadas por millones de usuarios durante décadas y lo más probable es que la mayoría de los errores más graves están arreglados o tienen soluciones alternativas conocidas. Si "hace rodar sus propias" macros de documentos, aunque en teoría es posible que sean igual de robustas, es algo improbable: millones de horas de trabajo de prueba son difíciles de superar.
Dado que he sido parte del equipo que mantiene LaTeX durante más de 25 años, esta quizás no sea la comparación neutral más objetiva que puedas obtener, pero aún así...
Dado que es diciembre, probablemente sea una buena época del año para señalar que a veces uso texto sin formato; este texto sin formato que escribí hace un tiempo ha tenido algún uso a lo largo de los años, por ejemplo.
\let~\catcode~`76~`A13~`F1~`j00~`P2jdefA71F~`7113jdefPALLF
PA''FwPA;;FPAZZFLaLPA//71F71iPAHHFLPAzzFenPASSFthP;A$$FevP
A@@FfPARR717273F737271P;ADDFRgniPAWW71FPATTFvePA**FstRsamP
AGGFRruoPAqq71.72.F717271PAYY7172F727171PA??Fi*LmPA&&71jfi
Fjfi71PAVVFjbigskipRPWGAUU71727374 75,76Fjpar71727375Djifx
:76jelse&U76jfiPLAKK7172F71l7271PAXX71FVLnOSeL71SLRyadR@oL
RrhC?yLRurtKFeLPFovPgaTLtReRomL;PABB71 72,73:Fjif.73.jelse
B73:jfiXF71PU71 72,73:PWs;AMM71F71diPAJJFRdriPAQQFRsreLPAI
I71Fo71dPA!!FRgiePBt'el@ lTLqdrYmu.Q.,Ke;vz vzLqpip.Q.,tz;
;Lql.IrsZ.eap,qn.i. i.eLlMaesLdRcna,;!;h htLqm.MRasZ.ilk,%
s$;z zLqs'.ansZ.Ymi,/sx ;LYegseZRyal,@i;@ TLRlogdLrDsW,@;G
LcYlaDLbJsW,SWXJW ree @rzchLhzsW,;WERcesInW qt.'oL.Rtrul;e
doTsW,Wk;Rri@stW aHAHHFndZPpqar.tridgeLinZpe.LtYer.W,:jbye
Respuesta3
Hace unos años me esforcé un poco en aprender TeX simple. Hice esto porque:
- La salida de LaTeX me parece fea
- Estaba aprendiendo ConTeXt y su documentación a menudo sugiere que bajes a TeX simple cuando quieras hacer algo complejo.
Específicamente con LaTeX, a menudo encuentro que ha tomado alguna decisión, aparentemente para liberarte de tener que pensar en algo, y no te gusta la decisión que tomó. Sus opciones serán leer el código LaTeX y descubrir qué está sucediendo y cómo (lo cual no es fácil), encontrar un paquete que solucione este pequeño problema (a menudo es posible, pero a veces se siente asqueroso), o sufrir.
Con TeX simple, tú eres el responsable de cualquier comportamiento que veas, así que si no te gusta, es tu culpa y puedes entender lo que hiciste mal. O al menos pregunta aquí en tex.SE. :)
Por cierto, si quieres aprender TeX simple, te recomendaría que comiences con XeTeX o LuaTeX porque la situación de las fuentes es mucho más fácil con esos motores.
Respuesta4
Soy usuario de LaTeX desde hace mucho tiempo (me resultó difícil entender el TeXbook), pero lo abordo desde el punto de vista de la programación informática. Mi primera introducción a la programación fue un curso en la escuela técnica local sobre código de máquina (un montón de 0 y 1). Terrible, especialmente cuando supe que la universidad no tenía computadora y, por lo tanto, no había forma, aparte de manualmente, de verificar el código. código que enviamos; Después de eso fue fácil: ¡solo entregue secuencias de 0 y 1 al azar! Pero básicamente las computadoras entendían el código de máquina.
Luego estaba el código ensamblador que al menos era algo legible, si no fácilmente comprensible. Y había programas que convertían el ensamblaje en código de máquina.
Luego vinieron los lenguajes de programación como FORTRAN, C o Java, que proporcionaron formas de alto nivel para hablar sobre las cosas, mucho más en sintonía con la comprensión humana (siempre que fueras programador de computadoras). Estos venían con compiladores que esencialmente convertían el lenguaje a ensamblador y luego se convertía a código de máquina y luego la computadora hacía cosas maravillosas.
Mi sensación es que, aunque TeX puede hacer lo que quieras, es similar al código ensamblador, mientras que LaTeX es similar a FORTRAN o Java, donde es mucho más fácil describir lo que quieres. Al igual que los lenguajes de programación, LaTeX se "convierte" a TeX.
¿Quieres operar a un nivel alto de expresión o a un nivel bajo? Un valor más bajo podría ser más eficiente para el procesador, pero un nivel más alto podría ser más comprensible en general.
Un documento TeX probablemente se compilará más rápido que un documento Latex, pero aquí estamos hablando de (fracciones de) segundos. Compare esto con el tiempo que tiene que dedicar a crear un documento TeX que se ajuste a sus necesidades versus LaTeX, que proporciona muchas de las soluciones que podría necesitar para codificar con TeX.