En este artículo veremos cómo pasar una conversación con ChatGPT (y otras IA) que incluya fórmulas matemáticas a formatos estándar de texto como el de LibreOffice (ODT) o Word (DOCX).
Uno de los problemas a la hora de utilizar las fórmulas de matemáticas en los chats de IA como ChatGPT es que no hay una forma directa de reutilizar las fórmulas para elaborar material didáctico. En este artículo explicaremos algunos métodos de fácil utilización para todos.
El formato utilizado por Claude es, en principio compatible con los programas que manipulan Markdown, por lo tanto, se puede copiar y pegar directamente.
Markdown
Los chats de IA utilizan un sistema para dar formato al texto llamado Markdown y es lo que aparece al pulsar el botón del chat para copiar la conversación. Si lo habéis usado alguna vez para copiar y pegar os habrán aparecido almohadillas # asteriscos *, etc. Este es el formato Markdown que se usa para hacer negritas, listas, enlaces, etc. Si deseas más información, puedes leer la entrada de la Wikipedia sobre Markdown.
Delimitadores de fórmulas
Las fórmulas utilizan el formato LaTeX y no nos debemos preocupar por él, se nombra únicamente a título informativo.
Cada fórmula se encierra entre determinados caracteres, llamados delimitadores de fórmula, de forma que, explicado de forma sencilla, el navegador sabe que está frente a una fórmula y la representa correctamente.
Los delimitadores utilizados por ChatGPT son diferentes a los usados por los programas que manipulan Markdown, lo que puede suponer un problema. Para solucionarlo hemos hecho un pequeño programa que los adapta copiando y pegando el contenido generado por la IA en un cuadro de texto. Una vez modificado se puede copiar y pegar o bien guardar en un archivo de tipo Markdown (con extensión .md).
Descargar desde el mismo programa el archivo (que tendrá extensión .md).
Utilizar un servicio de Internet, como los que hay más abajo (Opción 1), para convertir este archivo en ODT (el formato de LibreOffice) o DOCX (el formato de Word).
A continuación encontrarás un ejemplo de cómo usar el convertidor de fórmulas y después 3 opciones para obtener el archivo ODT o DOCX. Estas 3 opciones son:
Opción 1. Utilizar un servicio de Internet para la conversión.
Opción 2. Solo para Linux: utilizar el programa pandoc para hacer la conversión.
Opción 3. Descargar un programa que manipule archivos de tipo Markdown.
Ejemplo de uso del Convertidor de fórmulas: Markdown IA a formato compatible
1. Comenzamos con una conversación con la IA:
2. Seguidamente, copiaremos el texto generado utilizando el botón de copiar:
3. Abrimos la página para convertir las fórmulas, pegamos el texto y guardamos el resultado:
Este archivo (que si no le cambiamos el nombre se llamará resultado.md) lo utilizaremos para cualquiera de los apartados siguientes.
A continuación presentamos tres posibilidades que podéis elegir en función de vuestras preferencias.
Opción 1: Servicios web para pasar el código Markdown de la IA a documento de texto
Una vez hemos guardado el archivo con extensión .md utilizando la página web anterior. Podemos ir a algunos de estos servicios para convertirlo al formato que queramos y desde donde podremos bajar el documento en varios formatos:
1. Vamos a la página de Markdown Converter, seleccionamos el formato y subimos el archivo que hemos generado anteriormente, resultado.md:
2. Seleccionamos el formato, si no lo hemos hecho antes y pulsamos START:
3. Se baja el archivo y ya podemos ver el resultado:
¡Esto es todo! Con estos sencillos pasos tenemos uno de los mensajes en nuestro procesador de texto. Hay que repetir estos pasos para cada respuesta de la IA.
Opción 2: Conversión en Linux con Pandoc
Los usuarios de Linux lo tenemos mucho más fácil, ya que Pandoc es un programa capaz de convertir entre muchos formatos de texto y entre ellos están todos estos y más.
Para instalar Pandoc, si no lo tenemos, utilizaremos los siguientes comandos a través de la consola:
sudo apt update sudo apt install pandoc
Para convertir a ODT (el formato de LibreOffice) abrimos una consola desde la carpeta donde tengamos el archivo resultado.md y escribiremos:
pandoc resultado.md -o resultado.odt
Para convertir a DOCX (el formato de Word) usaremos:
pandoc resultado.md -o resultado.docx
Donde resultado.md es el archivo que deseamos convertir y resultado.odt y resultado.docx son los archivos a los que se convertirá. Al ejecutar cualquiera de estas dos últimas instrucciones tendremos el archivo convertido en la misma carpeta.
Cualquier duda que tengas sobre el uso de Pandoc puedes preguntarla a ChatGPT.
Opción 3: Programas de escritorio para edición de Markdown
Hay muchos programas de escritorio que manejan Markdown, pero su número se reduce drásticamente si lo que deseamos es exportarlos en un formato de texto clásico que podamos manipular como ODT y DOCX.
Este programa para Linux es excelente y permite exportar, entre otros formatos, en ODT, entre ellos no está el formato DOCX, pero sí EPUB, PDF, HTML, etc. Dispone de características avanzadas de exportación que permiten configurar la exportación.
Este programa está disponible para Linux, Windows y Mac y dispone también de diversos formatos de exportación, aunque solo hemos probado la versión para Linux.
Si conocéis más programas que permitan la exportación a formatos estándar de texto, los podéis indicar en los comentarios y se añadirán a la lista.
Advertencia
Para los que usamos editores de LaTeX, como Overleaf, todo esto es innecesario, ya que las fórmulas se pueden copiar y pegar tal como nos las da la IA. Sin embargo, el uso de LaTeX requiere ciertos conocimientos de los que ahora no nos ocuparemos. Para los interesados, en este blog hay una sección dedicada al LaTeX.
\(LaTeX\) es un sistema de composición de textos de alta calidad. Es conocido sobre todo entre los docentes de ciencias porque se utiliza por numerosos programas y servicios de Internet para hacer fórmulas. Por ejemplo, con el código $y=\sqrt{x^2+x}$ obtenemos: \(y=\sqrt{x^2+x}\)
Pero con \(\LaTeX\) podemos hacer muchas más cosas, como todo tipo de documentos, libros, exámenes e incluso presentaciones.
Este artículo no es ningún manual de \(\LaTeX\) solo es una introducción para que el que quiera saber en qué consiste pueda ver unas pinceladas.
Los documentos \(\LaTeX\) constan de texto y el ratón no se utiliza para dar formato o poner los márgenes, todo lo que se tiene que hacer se realiza a través de instrucciones. LaTeX nos ahorra mucho trabajo ya que gran parte del formato nos viene dado y no debemos pretender modificarlo en exceso, si nos centramos en el resultado final en lugar de los colorines o los tipos de letras podremos sacar mucho partido de LaTeX.
Los documentos constan de dos partes: el preámbulo y el cuerpo del texto. El preámbulo es la parte anterior al texto en sí y es donde se especifica el tipo de documento que crearemos así como otras opciones como los paquetes que utilizaremos. Los paquetes aportan características adicionales como soporte para el idioma o gráficos. Los comentarios, es decir texto que no tiene ningún significado para el ordenador sino solo para los usuarios, comienzan con un símbolo de porcentaje %.
Un típico preámbulo sería el que hay a continuación. A la derecha de cada instrucción se indica su utilidad en forma de comentario:
\documentclass{article} % Tipo de documento
\usepackage[utf8]{inputenc} % Soporte para caracteres especiales
\usepackage[T1]{fontenc} % Codificación apropiada para las fuentes
\usepackage[spanish]{babel} % Idioma utilizado
\usepackage{graphicx} % Paquete para añadir gráficos
\usepackage[left=2.00cm, right=2.00cm, top=2.00cm, bottom=2.00cm]{geometry} % Este paquete permite modificar los márgenes
La primera instrucción, documentclass, indica la clase o tipo de documento que queremos. Disponemos de varios tipos:
Clase
Utilidad
article
Artículos y otros documentos cortos
exam
Exámenes y otros documentos cortos
book
Para libros y documentos extensos
report
Para informes técnicos, muy semejante a book
beamer
Para hacer presentaciones
Las clases más habituales en \(\LaTeX\)
En la práctica el más utilizado es la clase article y para los docentes la clase exam, ya que con ella se pueden hacer todos los documentos de uso habitual: exámenes, informes, resúmenes, actas, memorias, manuales, recopilación de ejercicios, etc. Por su importancia a esta clase le hemos dedicado un espacio propio.
El resto de paquetes permiten especificar el idioma y dan soporte para la escritura y los caracteres. El paquete geometry permite modificar los márgenes, entre otras cosas.
Un documento completo, con una frase en su interior, tendría el siguiente aspecto:
\documentclass{article} % Tipo de documento
\usepackage[utf8]{inputenc} % Soporte para caracteres especiales
\usepackage[T1]{fontenc} % Codificación apropiada para las fuentes
\usepackage[spanish]{babel} % Idioma utilizado
\usepackage{amsmath} % Paquete para matemáticas
\usepackage{amsfonts} % Conjunto de fuentes usadas en matemáticas
\usepackage{amssymb} % Colección extendida de símbolos para matemáticas
\usepackage{graphicx} % Paquete para añadir gráficos
\usepackage[left=2.00cm, right=2.00cm, top=2.00cm, bottom=2.00cm]{geometry}
\setlength\parindent{0pt} % Eliminamos la sangría de párrafo
% El documento de texto empieza aquí
\begin{document}
En \(\LaTeX\) las fórmulas como las de
la raíz cuadrada, \(\sqrt x\), empiezan
y acaban con una barra invertida y
paréntesis.
\end{document}
En \(\LaTeX\) los documentos se compilan para producir un PDF, una vez compilado el código anterior obtenemos el siguiente resultado:
Programas para utilizar \(\LaTeX\)
De los numerosos programas que existen nos quedaremos con un par de ellos. Para los más adelantados y atrevidos pueden probar con el programa de escritorio TexStudio que requiere la instalación adicional de TexLive en Linux a través de sus repositorios y de MikTex en Windows.
Para los no iniciados será más sencillo OverLeaf que nos permite utilizar toda la potencia de \(\LaTeX\) sin necesidad de instalar nada ya que es un servicio gratuito que se utiliza a través de Internet. Solo necesitaremos registrarnos, una vez registrados podremos cambiar el idioma.
Manuales de \(\LaTeX\)
Ponemos aquí algunos enlaces a manuales de LaTeX pero existen muchos más, la documentación es realmente enorme.
En el artículo Exámenes con la clase ‘exam’ en LaTeX ya se habló acerca de cómo hacer exámenes con el tipo de documento exam, aunque, sobre todo, se trató el caso de preguntas con respuestas redactadas o escritas por el alumno con diferentes opciones, así como el tema de las calificaciones. Solo muy de pasada, en un par de ejemplos, aparecieron preguntas como las que trataremos aquí.
Este entorno crea preguntas de selección múltiple identificadas por letras y otros símbolos similares.
Para este tipo de preguntas usaremos el entorno \begin{choices}...\end{choices}. Cada selección comenzará por \choice y si deseamos imprimir las soluciones identificaremos la solución correcta con \CorrectChoice.
\documentclass[12pt,a4paper,addpoints]{exam}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[spanish]{babel}
\usepackage[left=2.00cm, right=2.00cm, top=2.00cm,
bottom=2.00cm]{geometry}
\begin{document}
\begin{questions}
\question
Uno de estos objetos es diferente al resto.
Marca el que no sea igual.
\begin{choices}
\choice Tambor
\choice Violín
\CorrectChoice Farola
\choice Guitarra
\choice Flauta
\end{choices}
\end{questions}
\end{document}
Podemos escribir las opciones en horizontal utilizando \begin{oneparchoices}...\end{oneparchoices}
\begin{questions}
\question
Uno de estos objetos es diferente al resto.
Marca el que no sea igual.
\begin{oneparchoices}
\choice Tambor
\choice Violín
\CorrectChoice Farola
\choice Guitarra
\choice Flauta
\end{oneparchoices}
\end{questions}
Como se ve en la imagen anterior las respuestas quedan en línea con la pregunta, si las deseamos aparte bastará con dejar una línea en blanco entre las preguntas y las opciones.
\begin{questions}
\question
Uno de estos objetos es diferente al resto.
Marca el que no sea igual.
\begin{oneparchoices}
\choice Tambor
\choice Violín
\CorrectChoice Farola
\choice Guitarra
\choice Flauta
\end{oneparchoices}
\end{questions}
Podemos añadir una línea para escribir la respuesta, esto se hace con \answerline
\begin{questions}
\question
Uno de estos objetos es diferente al resto.
Marca el que no sea igual.
\begin{oneparchoices}
\choice Tambor
\choice Violín
\CorrectChoice Farola
\choice Guitarra
\choice Flauta
\end{oneparchoices}
\answerline
\end{questions}
Modificar las letras de las opciones
En principio las diferentes opciones aparecen con letras mayúsculas pero las podemos modificar por lo siguiente:
\arabic
Números
\alph
Letras minúsculas
\Alph
Letras mayúsculas
\roman
Números romanos en minúsculas
\Roman
Números romanos en mayúsculas
\greeknum
Letras griegas
Por ejemplo para obtener número romanos en mayúsculas, en lugar de letras, pondríamos en el preámbulo: \renewcommand{\thechoice}{\Roman{choice}} obteniendo:
Solo tendremos que cambiar \Roman del ejemplo anterior por la instrucción que queramos de la tabla anterior.
Entorno checkboxes
Utilizando este entorno se obtienen círculos, o el símbolo que queramos, en lugar de letras para las opciones.
\begin{questions}
\question
Uno de estos objetos es diferente al resto.
Marca el que no sea igual.
\begin{checkboxes}
\choice Tambor
\choice Violín
\CorrectChoice Farola
\choice Guitarra
\choice Flauta
\end{checkboxes}
\end{questions}
El resultado es:
Igual que antes podemos escribir las opciones en horizontal utilizando el entorno \begin{oneparcheckboxes}...\end{oneparcheckboxes}. Las opciones estarán en línea si no dejamos ninguna línea en blanco detrás de la pregunta y estarán en una línea aparte si dejamos una línea vacía en medio.
\begin{questions}
\question
Uno de estos objetos es diferente al resto.
Marca el que no sea igual.
\begin{oneparcheckboxes}
\choice Tambor
\choice Violín
\CorrectChoice Farola
\choice Guitarra
\choice Flauta
\end{oneparcheckboxes}
\end{questions}
Modificar el símbolo de las opciones
Podemos modificar el símbolo con \checkboxchar{}. Por ejemplo, en lugar del círculo podemos poner un cuadrado: \checkboxchar{$\Box$} (este símbolo requiere en el preámbulo: \usepackage{amssymb}). El resultado sería:
Soluciones de las opciones múltiples
Cuando escribimos las opciones a través del comando \choice, indicaremos la solución correcta con \CorrectChoice. Para que estas queden patentes al compilar el documento bastará con añadir \printanswers en el preámbulo.
Ejemplo con choices
\documentclass[12pt,a4paper,addpoints]{exam}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[spanish]{babel}
\usepackage[left=2.00cm, right=2.00cm, top=2.00cm,
bottom=2.00cm]{geometry}
\printanswers
\begin{document}
\begin{questions}
\question
Uno de estos objetos es diferente al resto.
Marca el que no sea igual.
\begin{choices}
\choice Tambor
\choice Violín
\CorrectChoice Farola
\choice Guitarra
\choice Flauta
\end{choices}
\end{questions}
\end{document}
La respuesta correcta aparece en negrita pero si la deseamos de otro modo utilizaremos en el preámbulo: \CorrectChoiceEmphasis{formato} entre llaves incluiremos el formato que queremos. Por ejemplo si lo queremos en negrita y en color rojo deberemos cargar el paquete color: \usepackage{color} y la instrucción quedará como: \CorrectChoiceEmphasis{\bfseries\color{red}}
\documentclass[12pt,a4paper,addpoints]{exam}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[spanish]{babel}
\usepackage[left=2.00cm, right=2.00cm, top=2.00cm,
bottom=2.00cm]{geometry}
\usepackage{color}
\printanswers
% Formato de la respuesta correcta
\CorrectChoiceEmphasis{\bfseries\color{red}}
\begin{document}
\begin{questions}
\question
Uno de estos objetos es diferente al resto.
Marca el que no sea igual.
\begin{choices}
\choice Tambor
\choice Violín
\CorrectChoice Farola
\choice Guitarra
\choice Flauta
\end{choices}
\end{questions}
\end{document}
Ejemplo con checkboxes
En este caso al añadir \printanswers al preámbulo, obtenemos:
Igual que antes podemos utilizar \CorrectChoiceEmphasis{formato} para modificar el formato que actualmente es negrita.
Podemos modificar el símbolo de la solución con \checkedchar{}, por ejemplo lo cambiamos por \(\times\) poniendo \checkedchar{$\times$} en el preámbulo, el resultado será:
Preguntas de rellenar espacios en blanco
Para hacer este tipo de preguntas se utiliza también el entorno questions y basta con escribir el texto poniendo en el lugar que va el espacio en blanco \fillin. Por ejemplo:
\documentclass[12pt,a4paper,addpoints]{exam}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[spanish]{babel}
\usepackage[left=2.00cm, right=2.00cm, top=2.00cm,
bottom=2.00cm]{geometry}
\begin{document}
\begin{questions}
\question Durante el día el cielo es de color
\fillin y durante la noche es \fillin
\end{questions}
\end{document}
Obtendremos algo así:
\fillin admite dos parámetros entre corchetes, el primero es la solución y el segundo es la longitud de la línea. Por ejemplo, si ponemos \fillin[azul][2cm], la solución será azul y aparecerá cuando pongamos \printanswers en el preámbulo y la longitud de la línea para escribir será de 2cm. Si solo estamos interesados en la longitud y no queremos poner la solución entonces los primeros corchetes los dejaremos vacíos.
\documentclass[12pt,a4paper,addpoints]{exam}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[spanish]{babel}
\usepackage[left=2.00cm, right=2.00cm, top=2.00cm,
bottom=2.00cm]{geometry}
\printanswers %Hace aparecer la respuesta al compilar
\begin{document}
\begin{questions}
\question Durante el día el cielo es de color
\fillin[azul][2cm] y durante la noche es \fillin[negro][2cm].
\end{questions}
\end{document}
El código anterior dará como resultado:
Podremos configurar el aspecto de la solución, que actualmente está en negrita, con \CorrectChoiceEmphasis{\bfseries}
En el artículo anterior titulado Exámenes con la clase ‘exam’ en \(\LaTeX\) hablamos del tipo de documento exam, aunque dejamos para otro momento el tema de los encabezados y pies, por lo que le dedicamos ahora este espacio.
Los documentos de la clase exam disponen de un sistema de gestión de encabezados y pies muy completo y que no tiene nada que envidiar a otros paquetes dedicados en exclusiva a este tema.
Tabla de contenidos
Encabezados y pies que afectan a todo el documento
Tanto en los encabezados como en el pie podemos poner texto en la parte izquierda, central o derecha.
Si deseamos el mismo encabezado para todo el documento pondremos:
Podemos dejar cualquiera de las tres llaves vacías. Además, de forma alternativa podremos utilizar estas instrucciones que ponemos a continuación, que hacen exactamente lo mismo aunque tratando por separado los tres espacios izquierdo, central y derecho:
Si queremos una línea horizontal bajo el encabezado pondremos \headrule y en el pie \footrule.
Veamos un ejemplo:
\documentclass[11pt,a4paper,addpoints]{exam}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[spanish]{babel}
\usepackage[left=2.00cm, right=2.00cm, top=2.00cm, bottom=2.00cm]{geometry}
\begin{document}
\header{Agosto de 2020}{}{Bachillerato}
\footer{Tema 1}{Página\ \thepage\ de \numpages}{Encabezados y pies}
\headrule
\footrule
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque sit amet risus ac turpis condimentum tincidunt. Ut scelerisque dolor ac purus aliquam, quis tincidunt metus ultricies. Sed velit augue, ullamcorper sed laoreet sit amet, ultrices eget felis.
\newpage
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque sit amet risus ac turpis condimentum tincidunt. Ut scelerisque dolor ac purus aliquam, quis tincidunt metus ultricies. Sed velit augue, ullamcorper sed laoreet sit amet, ultrices eget felis.
\end{document}
El encabezado se ve así:
Y el pie:
Encabezados y pies de la primera página y del resto
Podemos diferenciar la primera página del resto de páginas. Para poner encabezados y pies en la primera página usaremos:
\firstpageheader{Izquierda}{Centro}{Derecha} para el encabezado de la primera página.
\firstpagefooter{Izquierda}{Centro}{Derecha} para el pie de la primera página.
Para el resto de las páginas, es decir, a partir de la segunda:
\runningheader{Izquierda}{Centro}{Derecha} para el encabezado de las páginas siguientes a la primera.
\runningfooter{Izquierda}{Centro}{Derecha} para el pie de las páginas siguientes a la primera.
Una forma alternativa de indicar esto mismo es indicar entre corchetes el contenido de la primera página y entre llaves el de las siguientes:
Encabezados
Pies
Izquierda
\lhead[Pag1]{Siguientes}
\lfoot[Pag1]{Siguientes}
Centro
\chead[Pag1]{Siguientes}
\cfoot[Pag1]{Siguientes}
Derecha
\rhead[Pag1]{Siguientes}
\rfoot[Pag1]{Siguientes}
Asignación de encabezados y pies a la primera página o a las siguientes en diferentes posiciones.
Por ejemplo, para poner el texto: «Examen» en la parte izquierda del encabezado de la primera página y «Nombre:» en la misma posición del resto de páginas pondríamos: \lhead[Examen]{Nombre:}
Líneas horizontales
Para obtener líneas de separación de los encabezados y pies podemos usar lo siguiente:
Instrucción
Efecto
\headrule
Encabezados: Líneas en todas las páginas
\footrule
Pies: Líneas en todas las páginas
\firstpageheadrule
Encabezados: Línea en la primera página
\firstpagefootrule
Pies: Línea en la primera página
\runningheadrule
Encabezados: Líneas a partir de la segunda página
\runningfootrule
Pies: Líneas a partir de la segunda página
Ejemplo
Veamos un ejemplo donde mezclamos un poco de todo lo anterior.
\documentclass[11pt,a4paper,addpoints]{exam}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[spanish]{babel}
\usepackage[left=2.00cm, right=2.00cm, top=2.00cm, bottom=2.00cm]{geometry}
\begin{document}
\lhead[Lorem ipsum]{Agosto 2020}
\chead[2020]{Lorem ipsum}
\rhead[]{Encabezados}
\runningfooter{Tema 1}{Página\ \thepage\ de \numpages}{Encabezados y pies}
\headrule
\runningfootrule
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque sit amet risus ac turpis condimentum tincidunt. Ut scelerisque dolor ac purus aliquam, quis tincidunt metus ultricies. Sed velit augue, ullamcorper sed laoreet sit amet, ultrices eget felis.
\newpage
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque sit amet risus ac turpis condimentum tincidunt. Ut scelerisque dolor ac purus aliquam, quis tincidunt metus ultricies. Sed velit augue, ullamcorper sed laoreet sit amet, ultrices eget felis.
\end{document}
Páginas pares e impares
Muchas veces es útil diferenciar las páginas pares de las impares. Esto se puede hacer con la orden \oddeven{Texto si página impar}{Texto si página par}. Introduciendo esta instrucción en un encabezado o pie podemos hacer que se imprima un texto u otro según la página en la que estemos sea impar o par. Esta instrucción solo funciona correctamente en los encabezados y pies.
Veamos un ejemplo donde no se imprime encabezado en la primera página y en las impares se pide el nombre del alumno, mientras que en las pares se escribe el nombre del examen.
De forma similar a la instrucción anterior existe \iflastpage que permite escribir texto específico en el encabezado y pie de la última página. El funcionamiento es el siguiente: \iflastpage{texto si es la última}{texto si no lo es}. El siguiente ejemplo imprime el número de páginas en el pie de todas las páginas excepto en la ultima donde imprime «Fin del examen»:
\cfoot{\iflastpage{Fin del examen}{Página\ \thepage\ de\ \numpages}}
\footrule
Encabezados y pies multilínea
Para que el texto de un encabezado o pie ocupe más de una línea bastará con añadir una doble barra invertida para crear un salto de línea: \\. Si necesitamos más espacio usaremos las instrucciones:
\extraheadheight{xcm} Espacio extra para el encabezado.
\extrafootheight{xcm} Espacio extra para el pie.
Veamos un ejemplo con un encabezado con dos líneas en todas las páginas al que damos un espacio extra de 0.25cm.
Podemos poner el número de página en cualquier lugar de los encabezados y pies escribiendo \thepage. El número total de páginas se consigue con \numpages. Si utilizamos esta última instrucción será necesario hacer una doble compilación para que se calcule correctamente el número de páginas.
Aunque en la documentación oficial no habla de esto, se ha visto que si escribimos: Página \thepage de \numpages en lugar de obtener algo así como «Página 3 de 5» se obtiene «Página3de5», sin espacios, por lo que hay que forzar los espacios con la barra invertida: \ , es decir: Página\ \thepage\ de\ \numpages.
¿Algo más sobre encabezados y pies?
Sí, todavía quedan los comandos que detectan si una pregunta continúa desde la página anterior y quizás deseamos indicarlo en el encabezado (o pie) con algo así como «Continuación de la pregunta 7». No obstante, esto lo dejamos para otra ocasión, si deseas averiguar cómo se hace consulta la sección 11.9 del documento Using the exam document class.
LaTeX tiene la clase exam, probablemente poco conocida, que dispone de una enorme cantidad de utilidades para elaborar exámenes escritos. Una de las cosas interesantes que tiene es la posibilidad de hacer los exámenes con las soluciones, que pueden ser imprimidas o no.
Además de esto, podemos controlar la puntuación de cada pregunta y subpregunta, dónde se imprime y cómo, elaborar una tabla final de calificaciones, poner preguntas con puntos extra, disponer de diferentes tipos de espacios para las respuestas (líneas contínuas, de puntos, cuadrícula para gráficas, etc), poner encabezados y pies diferentes en la primera página del resto o elaborar diferentes tipos de preguntas con sus posibles respuestas (tipo test), entre otras muchas cosas. Para ver la descripción completa, con numerosos ejemplos, consultar el documento Using the exam document class.
Tabla de contenidos
Estructura
El preámbulo del documento deberá empezar con: \documentclass{exam}. Si deseamos llevar el control de los puntos añadiremos: \documentclass[addpoints]{exam}, también podremos añadir el tamaño de la letra y del papel como suele ser habitual: \documentclass[12pt,a4paper,addpoints]{exam}
Las preguntas utilizan el entorno questions (en plural) y cada pregunta se identifica con \question (en singular). Un par de preguntas quedarían así:
\begin{questions}
\question Esta es la primera pregunta
\question Esta es la segunda pregunta
\end{questions}
Añadiendo el resto del código que falta al documento:
\documentclass[12pt,a4paper,addpoints]{exam}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[spanish]{babel}
\begin{document}
\begin{questions}
\question Esta es la primera pregunta
\question Esta es la segunda pregunta
\end{questions}
\end{document}
Una vez compilado el resultado de este código no es demasiado espectacular:
Subpreguntas
Es posible dividir una pregunta en subapartados, concretamente \question puede ser dividido en varios \part que a su vez pueden ser subdivididos en varios \subpart que a su vez pueden ser subdivididos en varios \subsubpart. El funcionamiento es idéntico al de \question (atención al uso del plural y singular de cada entorno):
\documentclass[12pt,a4paper,addpoints]{exam}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[spanish]{babel}
\begin{document}
\begin{questions}
\question Esta es la primera pregunta
\begin{parts}
\part Una subpregunta
\part Otra subpregunta
\end{parts}
\question Esta es la segunda pregunta
\begin{parts}
\part Una subpregunta
\begin{subparts}
\subpart Una subsubpregunta
\subpart Otra subsubpregunta
\end{subparts}
\end{parts}
\end{questions}
\end{document}
El estilo de la numeración puede ser cambiado a gusto de cada uno, este es el que se obtienen por defecto. El siguiente código, colocado en el preámbulo, nos transforma la numeración anterior en 1.1, 1.2, 1.2.1, etc:
Vamos a añadir alguna puntuación a las preguntas. Esto se consigue encerrando entre corchetes la numeración detrás de \question, \part, \subpart o \subsubpart. Esta numeración ha de ser entera o bien medios puntos que se representan mediante \half, no es por tanto posible poner 0.25 puntos, 0.1 o números decimales similares. Para evitar que aparezcan los puntos en inglés hay que traducirlos a través de \pointpoints{punto}{puntos}
\documentclass[12pt,a4paper,addpoints]{exam}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[spanish]{babel}
\pointpoints{punto}{puntos}
\begin{document}
\begin{questions}
\question Esta es la primera pregunta
\begin{parts}
\part[2] Una subpregunta
\part[1] Otra subpregunta
\end{parts}
\question[3] Esta es la segunda pregunta
\end{questions}
\end{document}
Hay muchas opciones referentes a los puntos destacamos las siguientes:
Corchetes en lugar de paréntesis: \bracketedpoints
En el margen izquierdo: \pointsinmargin
En el margen derecho: \pointsinrightmargin
En los dos últimos casos aparecerá nada más el número entre paréntesis (o corchetes si lo hemos cambiado) para que aparezca también el texto punto o puntos hay que añadir: \marginpointname{ \points}. Por ejemplo, aquí tenemos la puntuación en el margen izquierdo entre corchetes:
\documentclass[12pt,a4paper,addpoints]{exam}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[spanish]{babel}
\pointpoints{punto}{puntos}
\marginpointname{ \points} %Texto tras el número
\pointsinmargin %Puntos en el margen izquierdo
\bracketedpoints %Puntos entre corchetes
\begin{document}
\begin{questions}
\question Esta es la primera pregunta
\begin{parts}
\part[2] Una subpregunta
\part[1] Otra subpregunta
\end{parts}
\question[3] Esta es la segunda pregunta
\end{questions}
\end{document}
Hay más opciones, como colocar la puntuación al final de las subpreguntas, poner un título a cada pregunta y poner la calificación a este título, etc., véase el apartado 4 de Using the exam document class.
Soluciones
Uno de los aspectos más interesantes de esta clase es la de que podemos poner las soluciones que aparecerán o no según deseemos en cada momento.
Las soluciones utilizan el entorno solution y van justo después de cada pregunta. Para imprimir la solución se utiliza \printanswers. Además aparece el texto Solution (en inglés) para traducirlo usamos \renewcommand{\solutiontitle}{\textbf{Solución: }} y lógicamente podemos cambiarlo por otra expresión o dejar las llaves vacías para que no aparezca nada en absoluto. Veamos un ejemplo, donde además añadimos una pregunta de selección múltiple y otra con espacios en blanco.
\documentclass[12pt,a4paper,addpoints]{exam}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[spanish]{babel}
\pointpoints{punto}{puntos}
\renewcommand{\solutiontitle}{\textbf{Solución: }}
%\printanswers
\begin{document}
\begin{questions}
\question Referente a las <<novelas cortas>> de Alarcón, responde las siguientes preguntas.
\begin{parts}
\part[1] ¿En qué siglo se escribió La Buenaventura?
\begin{checkboxes}
\choice XVII
\choice XVIII
\CorrectChoice XIX
\end{checkboxes}
\part[9] Escribe el primer párrafo de La Buenaventura
\begin{solution}[4cm]
No sé qué día de Agosto del año 1816 llegó a las puertas de
la Capitanía general de Granada cierto haraposo y grotesco
gitano, de sesenta años de edad, de oficio esquilador y de
apellido o sobrenombre Heredia, caballero en flaquísimo y
destartalado burro mohíno, cuyos arneses se reducían a una
soga atada al pescuezo; y, echado que hubo pie a tierra, dijo
con la mayor frescura <<que quería ver al Capitán general.>>
\end{solution}
\end{parts}
\question[2] Pedro Antonio de \fillin[Alarcón] nació en \fillin[1833] y murió en \fillin[1891].
\end{questions}
\end{document}
%\printanswers está desactivado al tener el símbolo del porcentaje delante, por lo tanto, las preguntas se imprimen sin solución. El espacio dejado en la pregunta 1b es de 4cm y lo hemos indicado al iniciar el entorno \begin{solution}[4cm] de esa pregunta. Si se omiten los corchetes no se dejará ningún espacio.
El resultado del código anterior es:
Si ahora eliminamos el % de \printanswers se imprimirá con las respuestas:
Si deseamos eliminar el recuadro de la solución, añadiremos al preámbulo: \unframedsolutions.
La solución empieza donde empieza la pregunta por lo que se puede desaprovechar mucho espacio por el lado izquierdo. Es posible escribir desde el principio izquierdo, para ello hay que utilizar: \fullwidth{\begin{solution}...\end{solution}}
Diferentes entornos ‘solution’
Existen diferentes entornos solution que producen diferencias precisamente cuando la solución no se imprime, ya que se generan diferentes patrones de líneas y espacios para que los alumnos respondan. Recordemos que estos espacios verticales se colocan entre corchetes detrás de \begin{solution}[xcm]. Recordemos también que podemos maximizar el espacio horizontal disponible para escribir con \fullwidth{}.
solution
Este es el que hemos usado en los ejemplos anteriores, genera un espacio en blanco cuando \printanswers está desactivado.
Cuando no imprime la solución, imprime una caja vacía.
\begin{questions}
\question[1] Pregunta
\begin{solutionorbox}[4cm]
Solución...
\end{solutionorbox}
\question[1] Otra pregunta
\end{questions}
solutionorlines
Cuando no imprime la solución, imprime líneas.
\begin{questions}
\question[1] Pregunta
\begin{solutionorlines}[4cm]
Solución...
\end{solutionorlines}
\question[1] Otra pregunta
\end{questions}
solutionordottedlines
Es como la anterior pero con líneas de puntos.
\begin{questions}
\question[1] Pregunta
\begin{solutionordottedlines}[4cm]
Solución...
\end{solutionordottedlines}
\question[1] Otra pregunta
\end{questions}
solutionorgrid
Crea una cuadrícula.
\begin{questions}
\question[1] Pregunta
\begin{solutionorgrid}[4cm]
Solución...
\end{solutionorgrid}
\question[1] Otra pregunta
\end{questions}
solutionbox
Es como solution pero se reserva el mismo espacio vertical tanto si se imprime la solución como si no. Eso significa que el examen tendrá la misma longitud con soluciones y sin soluciones. El espacio reservado no va entre corchetes sino entre llaves.
\begin{questions}
\question[1] Pregunta
\begin{solutionbox}{4cm}
Solución...
\end{solutionbox}
\question[1] Otra pregunta
\end{questions}
Cómo poner todas las soluciones al final
En ocasiones querremos tener todas las soluciones juntas al final del examen. Para esto bastará con copiar las preguntas al final del documento, las encerramos entre \begin{solution}...\end{solution} y sustituimos las preguntas por sus soluciones borrando los enunciados. Si hemos puesto las puntuaciones de cada pregunta, habrá que eliminarlas. Aquí tenemos un ejemplo:
\documentclass[a4paper,addpoints]{exam}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[spanish]{babel}
\usepackage{multicol}
\everymath{\displaystyle} % Todas las fórmulas en modo extendido
\printanswers % Comentar esta línea para ocultar las soluciones
\renewcommand{\solutiontitle}{\textbf{Soluciones:}}
\begin{document}
\begin{questions}
\question Resuelve las siguientes ecuaciones de primer grado:
\begin{parts}
\begin{multicols}{2}
\part $2(x-3)=1-3(x+4)$.
\part $5x-4(1-2x)-7(x+1)=1$.
\part $3(y-2)-2(y-3)=1-2y$.
\part $3(2x-5)+4(1-x)=3+3(x-5)$.
\end{multicols}
\end{parts}
\question Resuelve las siguientes ecuaciones de segundo grado
\begin{parts}
\begin{multicols}{2}
\part $x^2=144$.
\part $(x+2)(x-3)=0$.
\part $2x^2=32$.
\part $x^2+2=123$.
\end{multicols}
\end{parts}
\end{questions}
% Soluciones -------------------------
\begin{solution}
\begin{questions}
\question
\begin{parts}
\begin{multicols}{2}
\part $x=-1$
\part $x=2$
\part $x=\frac{1}{3}$
\part $x=1$
\end{multicols}
\end{parts}
\question
\begin{parts}
\begin{multicols}{2}
\part $x=\pm 12$
\part $x=-2,\ x=+3 $
\part $x=\pm4 $
\part $x=\pm11$
\end{multicols}
\end{parts}
\end{questions}
\end{solution}
\end{document}
Cómo poner la solución en cualquier lado
Utilizando el entorno solution, la solución va siempre separada de la pregunta, en su propio espacio. Sin embargo podemos usar \ifprintanswers para escribirla en cualquier parte que queramos. El funcionamiento es el siguiente:
\ifprintanswers lo que saldrá si se imprime solución \else lo que saldrá si no se imprime solución \fi
La segunda parte, \else, se puede omitir. Veamos un ejemplo donde se escriben las soluciones a continuación del enunciado. Se utiliza multicols para poner las preguntas en dos columnas.
\documentclass[a4paper,addpoints]{exam}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[spanish]{babel}
\usepackage{multicol}
\everymath{\displaystyle} % Todas las fórmulas en modo extenido
%\printanswers % Descomentar esta línea para ver las soluciones
\begin{document}
\begin{questions}
\question Resuelve las siguientes ecuaciones con paréntesis
\begin{parts}
\begin{multicols}{2}
\part $2(x-3)=1-3(x+4)$. \ifprintanswers $x=-1$ \fi
\part $5x-4(1-2x)-7(x+1)=1$. \ifprintanswers $x=2$ \fi
\part $3(y-2)-2(y-3)=1-2y$. \ifprintanswers $x=\frac 1 3 $ \fi
\part $3(2x-5)+4(1-x)=3+3(x-5)$. \ifprintanswers $x=1 $ \fi
\part $4(5x-11)-6(8+x)+x=x-1$. \ifprintanswers $x=\frac{13}2$ \fi
\part $8(5t-3)-1=0$. \ifprintanswers $x=\frac 5 8 $ \fi
\end{multicols}
\end{parts}
\end{questions}
\end{document}
El resultado sin soluciones es:
Si descomentamos \printanswers, eliminando el % que tiene delante, obtendremos las soluciones:
(gracias a Rafa S del grupo @MaTex de Telegram por las ideas de poner las respuestas al final del examen y de mezclarlas con las preguntas)
Para terminar
No hemos hablado de las tablas de calificaciones, puntos extra (bonus), tipos de preguntas o encabezados y pies, entre otras cosas. Si crees que esta clase puede serte útil no dejes de consultar Using the exam document class donde encontrarás una descripción de todas las posibilidades que tiene.
Sería insensato, y contradictorio en sí mismo, pensar que es posible hacer lo que hasta ahora nunca se ha hecho por procedimientos que no sean totalmente nuevos.
Comentarios recientes