;; A QUIÉN LE IMPORTA LA PRESENTACIÓN DEL TEXTO EN GOPHER? ;; (CÓDIGO FUENTE) ;; ;; Marc Meléndez Schofield ;; ;; Este es el código fuente del artículo "A quién le importa la presen- ;; tación del texto en Gopher?" que escribí para mi página Gopher. Se ;; puede ver que es posible incluir comentarios por medio del punto y ;; coma. Estos comentarios no se mostrarán en el documento final. ;; Uso elk scheme para generar los ficheros, con el comando siguiente: ;; elk -l format_text_file.gtxt ;; El fichero debe comenzar cargando las definiciones del formato de ;; texto. Se debe incluir la ruta completa hasta el script si éste no ;; se encuentra en el mismo directorio que el fichero de texto *.gtxt. (load "layout_txt.scm") ;; Aquí hay una serie de instrucciones para traducir las definiciones ;; en inglés. (define titulo title) (define autor author) (define p paragraph) (define p1 firstparagraph) (define seccion section) ;; A continuación vienen el título y el autor. (titulo "A QUIÉN LE IMPORTA LA PRESENTACIÓN DEL TEXTO EN GOPHER?") (autor "Marc Meléndez Schofield") ;; Se puede insertar una línea horizontal con (hr) (hr) ;; Como este fichero es en realidad un script en scheme, se pueden ;; utilizar instrucciones de scheme, como la siguiente, para ;; introducir un retorno de carro. (newline) ;; "p1" crea un párrafo sin introducir un sangrado en la primera ;; línea. Los scripts de párrafos elmininan los retornos de carro ;; e intentan escribir el texto en formato justificado (de anchura ;; fija (aunque es posible que hagan falta algunos pequeños ajustes ;; posteriores). (p1 " Las primeras dos líneas de este documento se pueden leer como título y autor, o como una pregunta y su respuesta (¡A mí me importa la presentación del texto!). Creo que Gopher es genial. Sólo tienes que escribir contenido en tu editor de texto favorito, y ya está. Es una pena que los ficheros sean tan incómodos de leer. ") ;; Otros párrafos tienen un sangrado en la primera línea. Los ;; scripts de párrafo siempre eliminan los retornos de carro e ;; insertan los suyos propios, así que si los párrafos se ;; escriben en varias líneas (como he hecho yo aquí), es ;; importante recordar que hay que introducir un espacio al ;; final de cada línea. Esto no es un problema en la mayor ;; parte de los editores de texto, ya que en ellos se cortan ;; las líneas automaticamente, sin eliminar los espacios que ;; tecleó el autor. ;; Nota: Las comillas deben llevar antes el signo \ para que ;; puedan ser interpretadas como parte del texto a generar y ;; no del script. (p " Pero no hay motivos para preocuparse. Estoy trabajando en unos scripts en scheme que permitirán escribir ficheros de texto más legibles con poco esfuerzo extra. Y cuando digo \"poco\" quiero decir poco, porque sería absurdo crear un sistema en el que cuesta más codificar el formato de texto de lo que costartía formatear manualmente el texto en el editor. Así que el script debe ser fácil de usar y mínimo (sin florituras). ") (p " Me doy cuenta, por supuesto, de que todavía hay mucho espacio para la mejora. Una de las ventajas de este enfoque es que es muy fácil de modificar y mejorar. ") (p " Así que, ¿qué hace mi primer script? ") ;; El texto que sigue está preformateado. (pre " * Justifica el texto definido como párrafos. * Permite escribir texto centrado (como en el título). * Se puede definir la anchura de páginas y márgenes. * Las secciones se numeran automáticamente. * Se puede definir texto preformateado. ") ;; Nótese que las secciones se numeran automáticamente. (section "Cómo usar el script") (p " La manera más sencilla de ver cómo se usa el script es mirar el código fuente que generó este archivo de texto. Es bastante explicativo. Se encuentra en mi espacio Gopher, en el directorio de programacion. ") ;; Centred text. (centre "gopher://sdf.lonestar.org/1/users/marcmmw/esp") (newline) (section "Entendiendo cómo funciona script") (p " Se puede consultar el código scheme en el directorio antes mencionado. Si estás interesado en ayudarme, mándame un correo electrónico a SDF (soy el usuario marcmmw). ") (section "Posibles mejoras") (p " Aquí hay una pequeña lista de funciones que se podrían añadir. Es importante recordar que no estamos buscando opciones sofisticadas, sino código que nos facilite la vida. Por ejemplo, no incluí código que generara listas numeradas porque es más fácil escribirlas directamente en texto preformateado. ") (p "Nuevas funciones:") (pre" * Un sistema para numerar las notas al pie. * Una sección de notas. * Cajas de texto y figuras. ") (p " También estaría bien que los espacios entre palabras se distribuyeran más equitativamente en los párrafos (en vez de agruparse en el lado izquierdo de la página). ")