Es posible que hayáis oido hablar de LateX. En comparación con otros editores, LateX te ofrece muchísimas ventajas, aunque bueno; como todo en esta vida, también hay inconvenientes.
LateX es un sistema de composición de textos para artículos académicos que abstrae el formato del contenido. Para crear un documento hay que tener unas nociones de programación y es necesario compilarlo una vez que está terminado con los consiguientes errores que suelen aparecer en todo lenguaje programado.
No voy a explicar cómo funciona, sino que voy a redactar un aspecto curioso que me ha dejado perplejo y que nunca antes podría pensar que pudiera ocurrir una cosa así.
Bien, estaba yo redactando un documento y una de las primeras taréas que hago para empezar a escribir es estructurar las partes de dicho trabajo. Para ello hago uso de un índice, y LateX te permite utilizar un paquete para crear esta primera carilla que te informa de cada fase del contenido.
Hay diferentes formas de crear un índice con Latex, pero mi preferida es definir el contenido en diferentes secciones y que luego dicho paquete me construya la carilla de índice.
\documentclass[paper=a4,fontsize=11pt]{scrartcl} \usepackage[english]{babel} \usepackage[utf8x]{inputenc} \usepackage{makeidx} \makeindex \begin{document} \printindex \index{Introducción|(} Esta es la introducción y escribo un miniresumen. \index{Introducción|)} \index{Capítulo 1|(} Aquí puedo escribir un resumen de qué va el capítulo 1. \index{Capítulo 1! Primera parte del capítulo 1|(} Aquí empiezo a escribir una subsección del capítulo 1. \index{Capítulo 1! Primera parte del capítulo 1|)} \index{Capítulo 1|)} \end{document}
Para que se entienda un poco, cuando hay una barra invertida “\” se define un tipo de función. Como véis se llama a un paquete con \usepackage o se introduce un índice con \index.
Estos índices se abren y se cierran con los paréntesis, que como véis se abren con “(“ dentro de las lllaves “}”, se escribe el contenido y se cierra con “)” dentro de otras llaves del final dirigido al mismo nombre del índice; en este caso tenemos una “Introducción” y un “Capítulo 1”. Y dentro del “Capítulo 1” tenemos una subsección llamada “Primera parte del capítulo uno”.
Para esto hacemos uso del paquete “\usepackage{makeidx}”.
El caso es que al compilar el índice con MakeIndex, nos debería aparecer la introducción primero, ya que va antes del capítulo 1.
Pues no. Lo que hace Latex es ordenar el índice por orden alfabético, y he buscado por sitios para que no lo haga de esta manera pero me dí por vencido.
NOTA: El paquete “\usepackage[utf8x]{inputenc}”, hace que aparezcan tildes y demás símbolos de la lengua castellana. Para ser correctos lo añado.
Así que se me ocurrió poner números a las secciones y subsecciones. Así que el mismo ejemplo quedaría de la siguiente manera.
\documentclass[paper=a4,fontsize=11pt]{scrartcl} \usepackage[english]{babel} \usepackage[utf8x]{inputenc} \usepackage{makeidx} \makeindex \begin{document} \printindex \index{1.Introducción|(} Esta es la introducción y escribo un miniresumen. \index{1.Introducción|)} \index{2.Capítulo 1|(} Aquí puedo escribir un resumen de qué va el capítulo 1. \index{2.Capítulo 1! 2.1 Primera parte del capítulo 1|(} Aquí empiezo a escribir una subsección del capítulo 1. \index{2.Capítulo 1! 2.1 Primera parte del capítulo 1|)} \index{2.Capítulo 1|)} \end{document}
De esta manera, se ordenará según números. Que no quedan mal. Pero en fin, es cuestión de gustos.
Lo increible viene ahora.
Como había veces que quería cambiar algún título de sección, me daba mucho trabajo tener que recorrer todo el documento para ver donde se abría y se cerraba cada uno. Y aún peor si tenía muchas subsecciones, porque las subsecciones deben ir seguidas de sus correspondiente sección padre.
Pues en Latex se pueden declarar variables, así que de esta manera, guardo en una variable el título de la sección y así solo tendré que cambiar ese valor y el resto se modificarán según como lo cambie. Las variables se declaran de la siguiente manera:
\newcommand{\foo}{Texto contenido en foo} Y solo hay que citar \foo para que aparezca dicho texto en el documento
\documentclass[paper=a4,fontsize=11pt]{scrartcl} \usepackage[english]{babel} \usepackage[utf8x]{inputenc} \newcommand{\Intro}{Introducción} \newcommand{\Chapter}{Capítulo 1} \usepackage{makeidx} \makeindex \begin{document} \printindex \index{\Intro|(} Esta es la introducción y escribo un miniresumen. \index{\Intro|)} \index{\Chapter|(} Aquí puedo escribir un resumen de qué va el capítulo 1. \index{\Chapter! Primera parte del capítulo 1|(} Aquí empiezo a escribir una subsección del capítulo 1. \index{\Chapter! Primera parte del capítulo 1|)} \index{\Chapter|)} \end{document}
NOTA: Hay que tener cuidado con el nombre que se le da a la variable, porque no permite barra baja ni números.
Cuando compilo me vuelve a salir el mismo problema, la parte de Introducción aparece después que la del primer capítulo.
Pues esto ocurre porque no sé cómo demonios declara una variable LateX, pero las ordena también por orden alfabético. NO a la cadena que se asocia ala variable, sino al nombre de la variable.
Por lo que finalmente tuve que redeclarar las variables de la siguiente manera para que funcionara bien.
\documentclass[paper=a4,fontsize=11pt]{scrartcl} \usepackage[english]{babel} \usepackage[utf8x]{inputenc} \newcommand{\AIntro}{Introducción} \newcommand{\BChapter}{Capítulo 1} \usepackage{makeidx} \makeindex \begin{document} \printindex \index{\AIntro|(} Esta es la introducción y escribo un miniresumen. \index{\AIntro|)} \index{\BChapter|(} Aquí puedo escribir un resumen de qué va el capítulo 1. \index{\BChapter! Primera parte del capítulo 1|(} Aquí empiezo a escribir una subsección del capítulo 1. \index{\BChapter! Primera parte del capítulo 1|)} \index{\BChapter|)} \end{document}
De esta manera, puedo cambiar cuántas veces quiera los títulos de las variables con el orden deseado, pero realmente me parece increible que en siglo XXI estas cosas puedan ocurrir. 🙁