La composición tipográfica de LaTeX como lenguaje de programación
LaTeX es un sistema de composición tipográfica de documentos que sustituye la noción de lo que se ve es lo que se obtiene por ideas estándar de los lenguajes de programación convencionales. Mark Harman demuestra el poder de esta herencia.
Cualquier persona que haya utilizado un editor, procesador de textos o paquete de autoedición del tipo «lo que ves es lo que obtienes» (WYSIWYG) probablemente habrá tenido dos frustraciones:-
WYSIWYG siempre parece ser una mentira Lo que ves es bastante similar a lo que obtienes, o lo que ves es casi siempre lo que obtienes, o lo que ves sería lo que obtienes si tu impresora tuviera las fuentes correctas, pero lo que ves rara vez es exactamente lo que obtienes.
WYSIWYG es restrictivo ¿Supongamos que no puedes llegar a ver lo que quieres? Lo que ves es lo que obtienes tiene la implicación adicional y tácita de que lo que no puedes llegar a ver tampoco lo puedes conseguir. ¿Cuántas veces ha querido que algo tenga un aspecto ligeramente diferente (o quizás muy diferente) pero su editor no se lo permite?
LaTeX (pronunciado Lateck) es un sistema de composición tipográfica que no sigue el enfoque WYSIWYG. En cambio, se inspira en los lenguajes de programación. Hereda todas las ventajas de los lenguajes de programación y algunos de sus inconvenientes. En lugar de componer un documento en la pantalla (el enfoque WYSIWYG), un documento LaTeX es un programa que indica al sistema LaTeX cómo crear el documento. El programa se compila utilizando un compilador LaTeX para producir un documento que puede ser impreso o visualizado.
Esto puede sonar un poco extraño para alguien familiarizado con el enfoque WYSIWYG, pero cualquiera que disfrute (o aprecie) la potencia y la flexibilidad de un lenguaje de programación de alto nivel, pronto encontrará que LaTeX es simplemente una mejor manera de diseñar documentos.
En este artículo, explicaré un poco el lenguaje LaTeX, lo suficiente como para permitirle descargar un sistema LaTeX gratuito y escribir algunos documentos normales. No habrá tiempo para cubrir todas las características de LaTeX (esto llevaría un libro entero), pero espero dejarle con una fuerte sensación de las formas en que escribir un documento podría, usando LaTeX, ser una actividad similar a la de escribir un programa.
Un simple archivo fuente LaTeX
La figura 1 contiene un simple archivo fuente LaTeX. La primera línea es un comando LaTeX predefinido. Todos los comandos comienzan con un carácter de barra invertida. El comando de la primera línea establece las propiedades globales del documento a componer. El estilo de documento artículo es el estilo utilizado para un artículo corto. Otros estilos son libro, informe, tesis, etc. Cada estilo de documento cambia los parámetros globales que describen el diseño del documento. Por ejemplo, en el entorno de libro, se producen cabeceras corridas que dan el título del capítulo y el autor en páginas alternas.
Como todo buen lenguaje de programación, todo esto es, por supuesto, totalmente configurable. Sin embargo, como la mayoría de los lenguajes de programación, cuanta más flexibilidad quiera, más tendrá que saber del lenguaje de programación subyacente. Afortunadamente, la configuración por defecto de todos los entornos LaTeX ofrece resultados muy satisfactorios, por lo que es posible llegar muy lejos sin tener que saber demasiado del lenguaje subyacente. Lo que se obtiene es probable que sea lo que usted quiere, y si no lo es, entonces al menos usted será capaz de cambiarlo.
El texto del documento en sí está contenido dentro de los comandos \begin{documento} … \end{documento}, \begin{} y \end{} son comandos que abren y cierran un entorno. Todos los documentos (y fragmentos de documentos) se componen dentro de un entorno. También podemos anidar entornos, como veremos más adelante.
Los caracteres de espacio no son importantes para LaTeX; un espacio es tan bueno como cien. También se pueden insertar nuevas líneas en cualquier lugar, pero se utilizan dos o más líneas nuevas para denotar el punto en el que termina un párrafo y comienza otro. Cuando se imprime el documento final, LaTeX justifica el texto a la izquierda y a la derecha (insertando guiones, donde la justificación pura llevaría a una salida poco atractiva).
Un documento grande suele estar formado por varias secciones, que pueden contener subsecciones. Una nueva sección se introduce en LaTeX utilizando el comando \section, y una nueva subsección con el comando \subsection. El código fuente de LaTeX de la figura 2 describe un documento con dos secciones, cuyos títulos serán introducción y justificación. Observe que, en el código fuente, no necesitamos dar a las secciones un número de sección. LaTeX lo hará por nosotros cuando compile el documento. Así, la introducción será la sección número 1 y la justificación será la sección número 2. Si intercambiamos el orden en el que aparecen las dos secciones (cortando y pegando el código fuente), la justificación se convertirá en la sección 1, mientras que la introducción se convertirá en la sección 2 automáticamente.
Ahora surge una pregunta importante: ¿Cómo puedo hacer referencias cruzadas de una sección a otra? Por ejemplo, supongamos que quiero hacer referencia a la introducción de la sección en la justificación de la sección. La forma en que esto se consigue ilustra la primera ventaja que obtenemos de la forma de hacer las cosas de LaTeX.
Referencias simbólicas
Debido a que un archivo fuente de LaTeX es un programa, puede utilizar nombres simbólicos para referirse a partes del documento. Esto hace que las referencias cruzadas sean un placer, ya que la referencia cruzada es una entidad lógica, que se refiere a alguna parte del documento con nombre. Si esta parte nombrada del documento debe ser movida, entonces todo lo que tenemos que hacer es recompilar.
Para introducir una referencia simbólica, utilizamos el comando \label{}, y para referirse a ella utilizamos el comando \ref{}. La figura 3 lo ilustra. \label{intro} introduce un nombre simbólico, label, cuyo valor depende del contexto en el que aparece el comando \label. En este caso, como el comando \label se utiliza en la primera sección del documento, el valor asignado a intro será 1. El comando \ref{} simplemente produce el valor de la etiqueta. Ahora bien, si muevo la introducción a una nueva posición, por ejemplo, después de la sección de justificación, el valor de intro cambiará a 2, y la referencia cruzada en la justificación apuntará así a la nueva ubicación de la introducción de la sección.
Este estilo de escritura nos obliga a pensar en el documento a nivel lógico y no a nivel físico. Sería una tontería escribir como hemos visto antes en la sección \ref{intro} por ejemplo, porque podemos mover la etiqueta intro a un punto posterior a la referencia. En lugar de pensar en nuestro documento como un monolito de texto que se produce en un orden determinado, pensamos en él a un nivel superior de abstracción, como una colección de secciones que podemos mover libremente. Podemos incluso reutilizar secciones de un documento en otro, y siempre que nuestros nombres simbólicos sean únicos, encontraremos que todas las referencias cruzadas funcionan correctamente.
Algunos entornos más
LaTeX tiene muchos entornos predefinidos útiles. Supongamos que queremos producir una secuencia de puntos utilizando viñetas. Podemos hacerlo con el entorno itemize, el código fuente de la figura 4 producirá un documento que enumera los tres estados principales de la materia, uno por línea y cada uno precedido por una marca de viñeta. En muchos aspectos, la forma de diseñar un documento en LaTeX es similar a la forma de hacer las cosas en HTML. Por ejemplo, el entorno itemize es bastante parecido al entorno de lista sin ordenar de HTML.
A veces queremos poner los elementos en una lista ordenada y numerada. Esto se consigue con el entorno enumerate. La figura 5, muestra una secuencia anidada de elementos enumerados, describiendo las cuatro eras del tiempo geológico y los periodos dentro de ellas. LaTeX utiliza diferentes sistemas de numeración para cada nivel de anidación (números arábigos para el nivel uno, caracteres alfabéticos para el nivel dos, números romanos para el nivel tres). Esto, como todo lo demás, se puede cambiar si así lo deseamos.
Para enfatizar una porción de texto, se encierra en el entorno em (enfatizar), por lo que simplemente escribimos \begin{em} ¡ayuda! \para enfatizar la palabra ayuda (y el signo de exclamación que la sigue).
Procedimientos
En un lenguaje de programación convencional, la posibilidad de definir procedimientos da al programador una flexibilidad considerable. También en LaTeX podemos definir procedimientos para la disposición del texto. La forma más sencilla de procedimiento es la que no tiene parámetros. Nos permite nombrar una parte del código fuente y llamarla. Supongamos que estoy escribiendo un documento en el que quiero referirme a una fruta, pero aún no he decidido si va a ser una manzana, una naranja o una pera. Podría introducir un procedimiento llamado fruta, y poner un nombre de fruta arbitrario en su cuerpo. Cuando finalmente haya decidido a qué fruta quiero referirme, sólo tendré que cambiar el cuerpo del procedimiento; todos los puntos en los que se llame al procedimiento tendrán en cuenta automáticamente el cambio en su cuerpo.
En LaTeX, un procedimiento se llama comando, y uno nuevo se crea con el comando
Para ser totalmente justos, esto podría lograrse, quizás de forma más sencilla, con un procesador de textos WYSIWYG, simplemente realizando una búsqueda y sustitución. (Por supuesto, esto no habría funcionado si la frase hubiera sido la primera \Nfruta que aparece es la niña de mis ojos). Sin embargo, esto es sólo un simple ejemplo de lo que podemos hacer con las macros de LaTeX. Realmente cobran vida cuando les proporcionamos parámetros.
Parámetros
Supongamos que estoy escribiendo un documento sobre el manejo de matrices. Podría querer describir un algoritmo para encontrar el elemento más grande de un array. Para hacer el documento más genérico y ahorrarme el tener que volver a escribir grandes secciones del mismo, podría producir dos versiones, cada una específica para un lenguaje de programación en particular, por ejemplo, Basic y C. Usando comandos, puedo evitar el uso de la sintaxis particular de los arrays, o al menos puedo capturar las diferencias sintácticas en un solo comando, haciendo mucho más fácil adaptar mi documento a diferentes lenguajes de programación.
La figura 7 ilustra esto. En la definición del comando para \lookup, el le dice al compilador de LaTeX que el comando toma dos parámetros, el primero es referido como #1 y el segundo como #2. En una llamada a un comando, los parámetros se suministran uno tras otro entre llaves. Así, la llamada \lookup{S}{2}, producirá el texto S(2). Esta es la versión Basic del comando \lookup. Si lo sustituimos por la versión de la Figura 8, obtendremos el mismo documento, pero con las referencias al array entre corchetes. Esta es la versión C del documento. Observe que la diferencia entre los dos documentos fuente de LaTeX es precisamente de dos caracteres, es decir, los dos caracteres que conforman la diferencia entre las referencias a arrays en Basic y en C.
Al igual que con los procedimientos del lenguaje de programación, es posible llamar a un procedimiento desde el cuerpo de otro y utilizar el resultado de una llamada a un procedimiento como parámetro real de otro. Así, por ejemplo, podemos escribir \lookup{A}{lookup{B}{1}} que produce el texto A(B(1)) o A] dependiendo de si estamos usando la versión Basic o C del comando \lookup.
Variables
LaTeX tiene sus propias variables, sobre las que podemos realizar aritmética simple (son posibles formas más avanzadas de aritmética, pero la suma es normalmente todo lo que se requiere para la composición tipográfica). Veré dos ejemplos sencillos de la forma en que podemos utilizar las variables, ambas conocidas por los programadores; la variable contador y la variable bandera.
Supongamos que queremos incluir una secuencia de puntos numerados en un documento. Podemos utilizar una variable contador para numerar cada punto, y escribir unos sencillos comandos para controlar la numeración. La figura 9 lo ilustra. El contador se declara con el comando \Nnewcounter. Se establece a un valor específico utilizando el comando \setcounter. El comando \point se utiliza para imprimir el número de punto actual y para escalar el contador (para añadir uno a su valor). El comando \the<name>, para algún contador <name>, hace que se imprima el valor de la variable. Este comando se puede utilizar con cualquier variable, no sólo con las que el usuario ha introducido, así por ejemplo \thesection imprime el valor actual de la variable section. En la Figura 9 utilizamos el comando \point para imprimir tres puntos. Una buena característica de este enfoque es que podemos variar el orden en que se producen los puntos y la numeración cambiará en consecuencia.
Ahora vamos a ver cómo podemos utilizar las variables como banderas para elegir qué texto se produce en un documento. Como veremos, la combinación de banderas y macros nos permite escribir documentos muy genéricos, que pueden ser instanciados simplemente eligiendo un valor adecuado para la bandera. Consideremos de nuevo el problema de escribir un documento sobre matrices, en el que queremos dos formas del comando \lookup, una para Basic y otra para C. Sería mejor si pudiéramos utilizar una bandera en nuestro código fuente LaTeX para indicar si el lenguaje debe ser C o Basic. Todo lo que tendríamos que hacer es dar a la bandera el valor correcto antes de compilar el documento. La figura 10 lo ilustra.
Lo primero que hay que hacer es incluir la opción ifthen en la declaración del estilo del documento. Esto nos permite utilizar más adelante el comando \Nifthenelse. A continuación declaramos una variable contadora, language, que se pone a 1 si el lenguaje va a ser Basic y a 0 si va a ser C. El símbolo % es utilizado por LaTeX para los comentarios; cualquier texto que aparezca después de un símbolo % (y antes del final de la línea) es ignorado por el compilador de LaTeX. A continuación, ponemos el contador a 1, utilizando el comando \setcounter{language}{1}, por lo que el texto que produciremos será, en este caso, especializado para Basic. Esta especialización se consigue utilizando la versión modificada del comando \lookup. La nueva versión de \lookup utiliza el comando incorporado \ifthenesle para comprobar el valor de la variable de idioma. El formato de un comando \ifthenelse es \ifthenelse{<test>}{<then_branch>}{<else_branch>}. Se comporta igual que una sentencia if en un lenguaje de programación convencional. Si <prueba> se evalúa como verdadero, se produce el texto de la <rama_entonces>, si es falso, se produce el texto de la <rama_segundos>.
Usando esta bandera podríamos escribir muchos comandos, cada uno de los cuales produce el texto para un tipo particular de sentencia, el lenguaje depende del valor de la variable contador de la bandera. De esta manera, podríamos escribir un documento genérico sobre programación y simplemente establecer la bandera de manera apropiada para producir la versión especializada del documento que queremos.
La figura 10 muestra cómo podríamos hacer esto. Definimos comandos que producen la sintaxis de Basic o C para la búsqueda de matrices (utilizando la macro \lookup, como se ha descrito anteriormente), la actualización de matrices y, más elaboradamente, un comando que produce la sintaxis apropiada para un bucle for. El último de ellos requiere alguna explicación adicional.
La diferencia entre un bucle for en C y en Basic es en gran medida sintáctica, y podemos utilizar la flexibilidad de LaTeX para escapar de estos detalles sintácticos. El comando \forloop utiliza el lenguaje del contador de banderas para decidir si los cuatro elementos del bucle se disponen en estilo Basic o C. Esto nos permite escribir algún texto sobre la inicialización de arrays y bucles, sin tener que decidir a qué lenguaje se referirá el documento de destino.
Nótese que en la versión C de la sintaxis del bucle for las llaves que encierran las sentencias del cuerpo del bucle se escriben como \N… \}, en lugar de como { … }. Esto se debe a que los símbolos de corchetes ya tienen un significado para LaTeX, por lo que para conseguir que imprima los corchetes los precedemos de una barra invertida.
En la Figura 10, establecemos el lenguaje del contador en 1, por lo que la salida producida será para Basic. A partir del código fuente de la Figura 10, LaTeX producirá la salida de la Figura 11. Si queremos producir un documento que diga lo mismo sobre las matrices de C, simplemente tenemos que cambiar la línea \setcounter{language}{1} por \setcounter{language}{0}. Es así de fácil.
Matemáticas
LaTeX es a menudo (y con razón) elogiado por la forma en que permite la composición tipográfica de las matemáticas complejas. Muchos textos modernos de matemáticas, informática y otras ciencias e ingeniería se componen con LaTeX.
El texto matemático puede presentarse en línea, en cuyo caso aparece en la frase en la que se escribe, o en modo de visualización, en cuyo caso aparece centrado en una línea propia que se muestra como si fuera. Todos los símbolos matemáticos y formas de texto estándar están previstos para el uso de comandos. Como LaTeX existe desde hace tanto tiempo y ha sido utilizado, desarrollado y mejorado por tantos matemáticos de todo el mundo, es muy poco probable que exista alguna forma de salida matemática que no haya sido atendida por alguien. Una rápida búsqueda en su estantería probablemente revelará reconocimientos a LaTeX en varios libros de texto de informática y matemáticas, ya que a menudo se utiliza para preparar libros técnicos, lo que permite al autor o autores proporcionar una copia lista para la cámara para sus editores.
También hay una próspera comunidad de usuarios de LaTeX que asegura que toda esta valiosa información se recoge, mantiene y actualiza. Todos los desarrollos de LaTeX son totalmente compatibles con las versiones anteriores, por lo que no hay que preocuparse de que sus documentos queden desfasados.
Reutilización
Estimo que se tarda entre dos días y una semana en ser productivo utilizando LaTeX. Muchos lectores pueden considerar esto inaceptable si se compara con el tiempo de espera de los editores WYSIWYG. Ciertamente, si sólo tiene que preparar documentos como cartas y memorandos, probablemente no merezca la pena considerar LaTeX. Sin embargo, si está preocupado por la producción de una gran cantidad de texto y está preparado para invertir en un sistema que podría ahorrarle meses de trabajo, entonces LaTeX puede ser la respuesta.
Una de las ventajas más intangibles, aunque más atractivas, que experimentan los usuarios de LaTeX proviene de la forma en que, como un buen lenguaje de programación, LaTeX soporta la reutilización. Rápidamente se encontrará construyendo un conjunto de sus propias macros personales, que le permitirán adaptar sus documentos a su propio gusto. La reutilización de partes de un documento en otro se consigue sin esfuerzo y sin fisuras. Esta fluidez se debe a dos aspectos del enfoque de LaTeX. La denominación simbólica de las partes de un documento permite que las referencias cruzadas se actualicen automáticamente a medida que se edita el documento. El concepto de entorno significa que el mismo trozo de texto fuente puede tener un aspecto diferente cuando se incluye en diferentes contextos. Por supuesto, esto contradice directamente el principio WYSIWYG, pero esta es la fuerza esencial de LaTeX. Muchas revistas de informática, conferencias y editoriales proporcionan sus propios archivos de estilo LaTeX, que, cuando se incluyen en un archivo fuente LaTeX, automáticamente colocan el documento en la forma requerida para su publicación.
Dónde ir ahora
Si está interesado en probar LaTeX por sí mismo, puede obtener una versión para MS-Windows (de forma gratuita) en http://www.eece.ksu.edu/~khc/tex.html. LaTeX viene de serie en la mayoría de las plataformas UNIX, y con la mayoría de las distribuciones de Linux, así que si estás usando una de ellas intenta escribir man latex. Hay un sitio FTP que contiene muchas herramientas útiles de LaTeX, macros y documentos relacionados en ftp.tex.ac.uk.
Hay dos libros indispensables sobre el tema de la escritura de documentos LaTeX. Ambos son muy legibles e informativos. LaTeX A Document Preparation System, de Leslie Lamport (ISBN 0-201-15790-X), describe el sistema básico y es un muy buen libro para empezar. Contiene suficiente información para escribir inmediatamente la mayoría de los documentos normales. The LaTeX Companion, de Mike Goossens, Frank Mittelbach y Alexander Samarin (ISBN 0-201-54199-8), es más detallado y cubre todas las nuevas características añadidas a LaTeX por el proyecto LaTeX2e. Este libro es útil si quiere escribir muchos documentos con LaTeX y personalizar el lenguaje a su gusto. Explica cómo conseguir todo tipo de efectos exóticos, como la disposición del texto en forma de corazón (quizás útil para ciertos documentos escritos justo antes del 14 de febrero). Ambos libros están publicados por Addison-Wesley.
Lógico es mejor
El sistema de preparación de documentos LaTeX ha evolucionado y mejorado a lo largo de los años. Es extremadamente robusto y proporciona características para escribir documentos con estándares publicables que contienen texto y matemáticas. Un documento LaTeX se describe utilizando un lenguaje de programación, lo que proporciona al usuario de LaTeX toda la potencia y flexibilidad de un lenguaje de programación convencional. El estilo de escritura obliga al usuario a ver los documentos a nivel de su organización lógica, en lugar de su aspecto físico. Esto es inicialmente un poco frustrante, pero en última instancia tiene muchas ventajas, como el apoyo a la reutilización y la creación de documentos genéricos que pueden tener varias instancias físicas.
Mark Harman es director de investigación y jefe en funciones de la Escuela de Informática y Tecnología Multimedia de la Universidad del Norte de Londres (http://www.unl.ac.uk/~mark/welcome.html). Se puede contactar con él por correo electrónico en [email protected] o por correo postal a Mark Harman, Project Project, School of Informatics and Multimedia Technology, University of North London, Holloway Road, London N7 8DB.
Figura 1 Un documento LaTeX sencillo.
\documentstyle{article}
\begin{document}
hola mundo
\end{document}
Figura 2 Secciones
\documentstyle{article}
{comenzar{documento}
sección{Introducción}
Este es un documento bastante corto y esta es su introducción.
Sección{Razón}
El documento es tan corto porque es simplemente y ejemplo.
finalizar{documento}
Figura 3 Referencias simbólicas
{comenzar{documento}
{sección{intro}
{etiqueta{intro}
Este es un documento bastante corto y esta es su introducción.
sección{Razón}
Una breve introducción a este documento puede encontrarse en la sección{ref}
finalizar{documento}
Figura 4 El entorno de Itemize.
\begin{itemize}
\item Sólidos
\item Líquidos
\item Gases
\bend{itemize}
Figura 5 El entorno de enumeración.
{comenzar{enumerar}
equipo Cenozoico
{comenzar{enumerar}
equipo Cuaternario
equipo Terciario
finalizar{enumerar}
equipo Mesozoico
comienza{enumerar}
equipo Cretácico
equipo Jurásico
equipo Triásico
termina{enumerar}
equipo Paleozoico
{comienza{enumerar}
equipo Pérmico
equipo Carbonífero
equipo Devónico
equipo Silúrico
equipo Ordovícico
equipo Cámbrico
finalizar{enumerar}
equipo Precámbrico
finalizar{enumerar}
Figura 6 Comandos sin parámetros.
{documentstyle}
{newcommand{\fruit} {manzana}
{begin{document}
La primera \fruta que aparezca será la primera \fruta que comeré.
finalizar{documento}
Parámetros de la figura 7: Versión básica.
{documentstyle}
{newcommand{\a}{mirada} {Para encontrar el elemento más grande de la matriz A, almacene el primer elemento, \lookup{A}{0}, en la variable b. A continuación, introduzca un bucle, controlado por la variable i, empezando por 1 y procediendo hasta el final de la matriz. En cada punto del bucle, comparar el elemento i, \lookup{A}{i}, con el valor en b. Si \lookup{A}{i} es mayor que b, a continuación, asignar \lookup{A}{i} a b.
{final del documento}
Parámetros de la figura 8: Versión C.
{documentstyle}
{newcommand{\a}{mirada} {Para encontrar el elemento más grande de la matriz A, almacene el primer elemento, \lookup{A}{0}, en la variable b. A continuación, introduzca un bucle, controlado por la variable i, empezando por 1 y procediendo hasta el final de la matriz. En cada punto del bucle, compara el elemento i, \lookup{A}{i}, con el valor en b. Si \lookup{A}{i} es mayor que b, entonces asigna \lookup{A}{i} a b.
{finalizar{documento}
Variables del contador.
{newcounter{pointnumber}
{setcounter{pointnumber}{1}
{newcommand{point} {Punto \N – número de punto \N – contador de pasos \N – número de punto}
punto
Algún texto asociado a uno de los puntos
punto
Algún texto asociado a otro punto
punto
Otro punto
Figura 10 Variables de bandera.
\documentstyle{article}
\newcounter{language} % establecido en 1 para Basic y en 0 para C
\counter{idioma}{1}
\newcommand{\lookup}
{{1665>
{subir el valor{de la lengua}{1} {#1(#2)} {#1}
nuevo comando{\a}
{
ifthenelse{valor{idioma} = 1} {SER #1(#2) = #3} {#1 = #3}
}
% El comando forloop toma cuatro parámetros
% 1. El límite inferior del bucle – un entero o una expresión integral.
% 2. El límite superior del bucle – una expresión entera o integral.
% 3. La variable de control del bucle – una variable integral.
% 4. El cuerpo del bucle – una secuencia de sentencias.
% El lenguaje del contador de banderas, se utiliza para determinar el lenguaje en el que
% se escribe la sintaxis del bucle.
{nuevocomando{para el bucle}
{
{supuesto{valor{idioma} = 1} ¡
{
Por #3 = #1 A #2
Siguiente #3
}
{
por(#3=#1;#3 != #2;#3++)
{
\Ndejar el valor 10 en el elemento número 3 de la matriz A, escribimos \Nupdate{A}{3}{10}.
Para inicializar los elementos del 0 al 10 de la matriz A con el valor inicial 0, podemos utilizar un bucle for, empezando por el 0 y subiendo hasta el 10. Esto se escribiría así
forloop{0}{10}{i}{actualizar{A}{i}{0}
{finalizar{documento}
Figura 11 El resultado de compilar el código fuente LaTeX de la Figura 10.
Para almacenar el valor 10 en el elemento número 3 de la matriz A, escribimos LET A(3) = 10.
Para inicializar los elementos del 0 al 10 de la matriz A con el valor inicial 0, podemos utilizar un bucle for, empezando por el 0 y subiendo hasta el 10. Esto se escribiría así
POR i = 0 A 10
LETAR A(i) = 0
SIGUIENTE i
(P)1997, Centaur Communications Ltd. EXE Magazine es una publicación de Centaur Communications Ltd. Ninguna parte de esta obra puede ser publicada, total o parcialmente, por ningún medio, incluido el electrónico, sin el permiso expreso de Centaur Communications y del titular de los derechos de autor cuando éste sea una parte diferente.
EXE Magazine, St Giles House, 50 Poland Street, Londres W1V 4AX, correo electrónico [email protected]