Blog sobre educación

Mes: agosto 2020

Qué es \(\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.

Hemos elaborado una guía para hacer fórmulas en LaTeX que quizás te interese revisar, ya que aborda únicamente la cuestión de cómo hacer fórmulas, no documentos completos: Fórmulas matemáticas con LaTeX. Fundamentos básicos y su uso con eXeLearning.

Estructura del documento

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:

ClaseUtilidad
articleArtículos y otros documentos cortos
examExámenes y otros documentos cortos
bookPara libros y documentos extensos
reportPara informes técnicos, muy semejante a book
beamerPara 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:

Resultado del código anterior

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.

Preguntas de selección múltiple y espacios en blanco de la clase ‘exam’ en \(\LaTeX\)

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í.

Preguntas de selección múltiple

Las preguntas se escriben siempre dentro del entorno questions, véase el artículo Exámenes con la clase ‘exam’ en LaTeX para los detalles.

Entorno choices

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}
Las opciones quedan en línea con el texto añadiendo una línea en blanco quedarán aparte.

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}
Línea de respuesta: \answerline

Modificar las letras de las opciones

En principio las diferentes opciones aparecen con letras mayúsculas pero las podemos modificar por lo siguiente:

\arabicNúmeros
\alphLetras minúsculas
\AlphLetras mayúsculas
\romanNúmeros romanos en minúsculas
\RomanNúmeros romanos en mayúsculas
\greeknumLetras 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}
Opciones en horizontal.

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:

Substitución del círculo por \Box

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 opción correcta aparece en negrita pero este comportamiento puede cambiarse.

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}

Quizás te interese también…

Este artículo forma parte de la serie: La clase exam de \(\LaTeX\)

Encabezados y pies de la clase ‘exam’ en \(\LaTeX\)

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.

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:

\header{Texto izquierda}{Texto centro}{Texto derecha}

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:

  • \lhead{Texto izquierdo}
  • \chead{Texto central}
  • \rhead{Texto derecho}

Exactamente lo mismo se aplica al pie con:

\footer{Texto izquierda}{Texto centro}{Texto derecha}

y

  • \lfoot{Texto izquierdo}
  • \cfoot{Texto central}
  • \rfoot{Texto 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í:

Encabezado, la parte central se dejó vacía.

Y el pie:

El número de página se consigue con \thepage y el número total con \numpages, esto último requiere una doble compilación para que las cuente correctamente.

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}

Encabezado de la primera página. No se ha definido ningún tipo de pie para esta página.

Encabezado de la segunda página y siguientes.

Pie de página de la segunda página y siguientes.

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.

\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[]{ \oddeven{Nombre:}{Examen de Biología}}

\runningheadrule 

Texto página 1
\newpage
Texto página 2
\newpage
Texto página 3
\newpage
Texto página 4

\end{document}

Diferenciar la última página

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

Pie de una de las páginas que no es la última.

Pie de la última página.

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.

\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}

\extraheadheight{0.25cm}
\header{}{La célula\\Examen de Ciencias Naturales}{}
\headrule

Texto

\end{document}

Encabezado con dos líneas, se consigue poniendo: \\

Numeración de las páginas

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.

Quizás te interese también…

Este artículo forma parte de la serie: La clase exam de \(\LaTeX\)

Exámenes con la clase ‘exam’ en \(\LaTeX\)

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.

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:

Resultado del código anterior

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}

Resultado de añadir dos niveles extra en las preguntas: \part y \subpart

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:

\renewcommand{\thepartno}{\arabic{partno}}
\renewcommand{\partlabel}{\thequestion.\thepartno}

\renewcommand{\thesubpart}{\arabic{subpart}}
\renewcommand{\subpartlabel}{\thequestion.\thepartno.\thesubpart}

\renewcommand{\thesubsubpart}{\arabic{subsubpart}}
\renewcommand{\subsubpartlabel}{\thequestion.\thepartno.\thesubpart.\thesubsubpart}

Si hay más de un subnivel de preguntas quizás esta forma sea más clara.

Puntuación

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}

Si no se especifica nada los puntos aparecen al principio entre paréntesis, pero este comportamiento puede ser cambiado.

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}

Puntuación en el margen

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.

\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[1] Pregunta
    \begin{solution}[4cm]
        Solución...
    \end{solution}
    \question[1] Otra pregunta
\end{questions}

\end{document}

Se ha creado un espacio en blanco de 4cm.

solutionorbox

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}

Caja de 4cm de altura.

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}

Líneas, la distancia entre líneas se puede controlar.

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} 

Soluciones al final del examen

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:

Resultado del código anterior, sin soluciones

Si descomentamos \printanswers, eliminando el % que tiene delante, obtendremos las soluciones:

Las soluciones aparecen tras cada pregunta, intercaladas entre ellas.

(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.

Quizás te interese también…

Este artículo forma parte de la serie: La clase exam de \(\LaTeX\)

Últimas entradas

Categorías del blog

© 2024 Bilateria

Tema por Anders NorenArriba ↑