Blog sobre educación

Categoría: LaTeX (Página 1 de 2)

Inteligencia artificial y matemáticas: cálculo y formato

Recientemente y hablando de matemáticas, he visto comentarios acerca de que los chatbots son incapaces de resolver problemas matemáticos donde hay algún tipo de cálculo o que no pueden comprender lo que se les sube, por ejemplo, en PDF.

Estas críticas entroncan directamente con dos capacidades matemáticas importantes: la capacidad de realizar operaciones matemáticas y, una más genérica, que es el formato con el que leen mejor los datos.

Chatbots con capacidad de cálculo

El primer error que suele cometer el docente inexperto consiste en pensar que da igual usar un chatbot u otro, pongamos, por ejemplo, Copilot o ChatGPT, para resolver un problema. Nada más lejos de la realidad, porque las diferencias en las capacidades matemáticas entre chatbots son abismales. Como veremos a continuación, los chatbots dan resultados incorrectos porque intentan hacer los cálculos «de cabeza» y se equivocan. Son muy pocos los que pueden utilizar herramientas informáticas de cálculo (programación).

Veamos un ejemplo donde les pedimos la media de 39 números. Hemos utilizado tres prompts en el mismo chat. El primero ha sido:

El segundo ha sido:

Y, por último:

En la siguiente tabla podemos ver los resultados obtenidos con cada uno de los chatbots.

ChatbotResultados de los prompts:
1 / 2 / 3
¿Resultado correcto?
Claude53.5 / 53.5 / 53.5✅ / ✅ / ✅
ChatGPT53.8 / 53.5 / 53.5❌ / ✅ / ✅
Gemini53.4 / 53.4 / 53.5❌ / ❌ / ✅
DeepSeek51.3 / 51.3 / 53.5❌ / ❌ / ✅
Grok53.6 / 53.6 / 53.5❌ / ❌ / ✅
Copilot57.4 / 57.4 / –❌ / ❌ / ❌
Perplexity52.0* / 52.0 / –❌ / ❌ / ❌

* Perplexity da un primer resultado válido, pero no los siguientes. El motivo es que, en la versión gratuita, la opción Pro Search se desactiva automáticamente, por lo tanto se considera un resultado negativo.

  • Claude ha utilizado programación desde el primer momento (hizo un programa en JavaScript), por lo que su resultado ha sido exacto desde el principio. De hecho, cuando se le puso el segundo prompt se «quejó» diciendo que ya lo había hecho antes.
  • ChatGPT confió en sus capacidades de cálculo y lo resolvió en un primer momento sin usar programación; el resultado fue, lógicamente, erróneo. ChatGPT no siempre hace esto, cuando ve operaciones complejas, suele utilizar programación desde un primer momento (hace programas en Python). Para asegurarnos de que siempre lo hará así, lo mejor es decirle desde el principio que use programación para los cálculos, de este modo su resultado será siempre acertado.
  • Gemini, DeepSeek y Grok dan un resultado erróneo en un primer momento. Cuando se les pide que usen programación en el chat con el segundo prompt, los tres hacen un programa que no ejecutan, por lo que tampoco dan el resultado correcto. Se limitan a decir que con ese programa el usuario podrá comprobar que el primer resultado era válido. Cuando se les pide un programa en HTML, los tres lo hacen, lo permiten ejecutar desde el mismo chat y se obtiene el resultado correcto.
  • Copilot y Perplexity no dan el resultado correcto en ningún caso, ya que no pueden ejecutar programas en el chat y tampoco son capaces de ejecutar los programas que crean en HTML, por lo que no es posible comprobar sin salir del chat, si los programas realmente funcionan.

Como conclusión, podemos decir que, cuando hay implicados cálculos matemáticos, debemos limitarnos a utilizar Claude y ChatGPT. Por seguridad, siempre es preferible decirles desde el principio que usen programación para calcular los resultados.

Podemos utilizar Gemini, DeepSeek o Grok (aquí también entraría el chatbot Qwen) siempre que les hagamos hacer programas en HTML para poder ejecutarlos una vez que los hayan creado.

Bajo ningún concepto deberíamos usar Copilot o Perplexity, ya que los resultados tienen una alta probabilidad de ser erróneos.

Debemos tener en cuenta que tanto ChatGPT como Claude pueden utilizar librerías como SymPy o mathjs con las que se puede hacer cálculo simbólico como, por ejemplo, derivadas de funciones y también librerías gráficas con las que podremos tener gráficos en el transcurso de nuestra conversación en el chat. Estos dos chatbots están muy por delante de cualquiera de sus competidores.

ChatGPT hace los programas en Python y Claude en JavaScript, dado que Python es más potente para la manipulación y cálculo matemático, ChatGPT se presenta como el chatbot más potente en matemáticas, no obstante, para las tareas habituales ambos nos irán igualmente bien.

En el artículo ¿Qué IA me conviene? hay una tabla, que se actualiza periódicamente, donde se indica la capacidad de las diferentes IA para hacer cálculos (fila 7). En el caso de que otros chatbots adquieran posteriormente la capacidad de hacer cálculos matemáticos, se indicará puntualmente allí.

El formato matemático desde la perspectiva de los chatbots

El formato que mejor manejan los chatbots es el de texto puro. Todos ellos utilizan para sus respuestas el formato Markdown, que es texto puro, pero con ciertas marcas que definen formatos, listas de viñetas o fórmulas. Cuando usamos el botón copiar del chat, lo que estamos copiando es el texto en formato Markdown.

Aunque podemos escribir una fracción como: (x+1)/(3x+2), hay expresiones que pueden ser más complicadas de representar y la recomendación es usar LaTeX. La fórmula anterior se escribiría como \frac{x+1}{3x+2} que se vería como \(\frac{x+1}{3x+2}\). No se trata ahora de aprender LaTeX, aunque recomiendo muy encarecidamente conocer lo más básico que son unas pocas expresiones como la de la fracción anterior (en esta página tienes lo más usado).

Documentos

Para convertir un texto en formato DOCX o PDF a Markdown podemos utilizar Gemini, ya que hace una conversión más que aceptable. Podemos usar un prompt como este:

La coletilla «no añadas citas» es para evitar que nos añada enlaces al documento con la localización del texto, aunque si las pone tampoco supondrá un problema.

El texto producido hay que copiarlo con el botón que hay en la base del chat (nunca seleccionando con el ratón) y lo podremos pegar directamente en ChatGPT o Claude. También lo podemos guardar en un archivo de texto, utilizando un programa como el bloc de notas de Windows, con la extensión: md. Por ejemplo: mi_examen.md o guardándolo como texto sin formato en Word o Google Docs. No debemos guardarlo con el formato por defecto de estos procesadores de texto.

Si actuamos de este modo, los chatbots entenderán perfectamente el texto que les estamos proporcionando y ya no tendremos la impresión de que la IA no nos entiende cuando le pedimos algo (cuando, en realidad, lo que no entiende son los datos que le subimos).

Utilidades para las fórmulas

Estos programas son de utilidad para el que trabaja habitualmente con fórmulas. El primero es para reutilizar las conversaciones con los chatbots y el segundo para hacer fórmulas.

MDAITex. Con este programa podremos hacer el paso inverso al explicado antes: el resultado proporcionado por el chatbot (la solución de un examen, ejercicios, etc.) lo podremos pasar a nuestro procesador de textos favorito.

EdiCuaTeX. Es un editor de fórmulas gráfico con el que podemos hacer fórmulas que obtendremos en LaTeX y que también podremos descargar como imagen.

Imágenes

Aunque no es tan preciso como lo anterior, todos los chatbots pueden descifrar las imágenes, por lo que si subimos fotos no debería haber ningún problema, incluso si el texto y las fórmulas están escritas a mano.

Conclusiones

Los mejores chatbots para usar en matemáticas y otras asignaturas científicas, son ChatGPT y Claude. En las conversaciones conviene indicarles que hagan los cálculos mediante programación. Para pasarles documentos hay que pedirle a Gemini que los transcriba a formato Markdown y se los proporcionaremos en este formato.

Pódcast creado con NotebookLM

FAQ del artículo

1. ¿Son todos los chatbots igualmente capaces de resolver problemas matemáticos?

No, las diferencias en las capacidades matemáticas entre los chatbots son abismales. Muchos chatbots cometen errores al intentar realizar cálculos «de cabeza» y no pueden utilizar herramientas de programación. Solo unos pocos chatbots, como Claude y ChatGPT, son fiables para cálculos matemáticos complejos, ya que pueden usar programación.

2. ¿Por qué algunos chatbots dan resultados incorrectos en matemáticas y cómo se puede mejorar su precisión?

Los chatbots dan resultados incorrectos cuando intentan hacer los cálculos sin usar programación. Para asegurar resultados precisos, es fundamental pedirles que usen programación desde el principio. Por ejemplo, al solicitar a ChatGPT que use programación (Python), sus resultados son consistentemente correctos. Otros chatbots como Gemini, DeepSeek, y Grok, aunque pueden generar código, no lo ejecutan internamente, requiriendo que el usuario ejecute el programa (por ejemplo, en HTML) para obtener la respuesta correcta.

3. ¿Cuáles son los chatbots más recomendados para tareas matemáticas y científicas?

Los mejores chatbots para usar en matemáticas y otras asignaturas científicas son ChatGPT y Claude. Claude utiliza JavaScript para su programación interna, mientras que ChatGPT usa Python. Aunque ambos son muy competentes, Python ofrece una mayor potencia para la manipulación y el cálculo matemático, lo que posiciona a ChatGPT como el más potente en matemáticas. Ambos pueden integrar librerías de cálculo simbólico (como SymPy o mathjs) y gráficas.

4. ¿Qué formato de datos es el más efectivo para que los chatbots entiendan la información, especialmente en matemáticas?

El formato que mejor manejan los chatbots es el de texto puro, específicamente Markdown. Markdown permite incluir ciertas marcas para definir formatos, listas o fórmulas. Para expresiones matemáticas complejas, se recomienda usar LaTeX, ya que los chatbots lo interpretan sin problemas. Es crucial copiar el texto directamente con el botón de copiar del chat para asegurar que el formato Markdown se preserve.

5. ¿Cómo se pueden transcribir documentos como DOCX o PDF para que los chatbots los procesen eficazmente?

Para transcribir documentos en formatos como DOCX o PDF a un formato legible para los chatbots, se puede utilizar Gemini. Se le puede pedir a Gemini que transcriba el documento a formato Markdown con un prompt como: «Transcribe el siguiente documento al formato Markdown, no añadas citas». Una vez transcrito, el texto resultante debe copiarse utilizando el botón de copiar del chat y pegarse directamente en chatbots como ChatGPT o Claude, o guardarse como un archivo .md.

6. ¿Es posible que los chatbots entiendan texto y fórmulas escritas a mano en imágenes?

Sí, aunque no con la misma precisión que con texto puro o LaTeX, todos los chatbots pueden descifrar imágenes. Esto significa que si se suben fotos con texto y fórmulas, incluso si están escritas a mano, los chatbots deberían poder procesarlas sin mayores problemas.

7. ¿Qué herramientas externas pueden complementar el uso de chatbots para trabajar con fórmulas matemáticas?

Existen utilidades que facilitan el trabajo con fórmulas. MDAITex es un programa que permite convertir los resultados proporcionados por los chatbots (en Markdown) a un formato compatible con procesadores de texto, invirtiendo el proceso de transcripción. EdiCuaTeX es un editor gráfico de fórmulas que permite crear expresiones en LaTeX y descargarlas como imagen, facilitando la creación de contenido matemático.

8. ¿Qué precauciones deben tomarse al usar chatbots para cálculos matemáticos?

Es crucial indicar a los chatbots (especialmente a Claude y ChatGPT) que realicen los cálculos mediante programación para asegurar la exactitud de los resultados. Además, para proporcionar documentos a los chatbots, se recomienda transcribirlos previamente a formato Markdown usando Gemini. Se desaconseja el uso de chatbots como Copilot o Perplexity para cálculos matemáticos, ya que sus resultados son propensos a errores y no pueden ejecutar programas internamente. Las capacidades mencionadas corresponden a las versiones gratuitas de los chatbots.

Notas

Las versiones de las que hablamos en este artículo son las gratuitas para cada uno de los chatbots, las que aparecen por defecto al abrir su enlace.

Este artículo tiene nivel 0 en el marco para la integración de la IA generativa en las tareas educativas. Excepto las FAQ y el pódcast que ha sido creado por NotebookLM.

Conversión de texto y fórmulas generadas por ChatGPT (y otras IA) a documentos de texto DOCX, ODT y Google Docs

Aviso importante: El programa utilizado aquí ha sido sustituido por uno más completo llamado MDAITex: editor para textos generados por IA, que permite exportar la conversación con la IA en los formatos DOCX, ODT, HTML, LaTeX y PDF. Te aconsejamos utilizarlo en lugar del método explicado en este artículo que ya ha quedado superado.

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), Word (DOCX) y los documentos de Google.

Conversión en 4 pasos (explicación rápida)

Si tienes prisa por convertir inmediatamente el texto y las fórmulas a un documento de texto, aquí tienes los pasos básicos. Si necesitas más información, abajo tienes un ejemplo completo, con imágenes.

  1. Pega el contenido en el primer cuadro de texto del convertidor.
  2. Copia el contenido generado en el segundo cuadro de texto del convertidor y pégalo en la página de Markdown Converter usando el botón «Paste». Como alternativa, puedes descargar el archivo con el botón «Guardar» y subirlo después a Markdown Converter.
  3. Con el contenido copiado o el archivo descargado, utiliza Markdown Converter para convertirlo a formato ODT (LibreOffice) o DOCX (Word). Si necesitas usarlo en Google Docs, simplemente conviértelo a DOCX y súbelo a Drive.

Introducción

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.

A continuación se explican los problemas que hay con las fórmulas, se da un ejemplo con imágenes de la explicación rápida anterior y se proporcionan más alternativas, además de la ya citada.

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 o preguntar a ChatGPT.

Delimitadores de fórmulas

Las fórmulas utilizan el formato LaTeX y cada una de ellas 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).

El programa en cuestión lo tenéis en la página: Convertidor de fórmulas: Markdown IA a formato compatible.

Siempre deberemos convertir las fórmulas con esta página, usemos el método que usemos, excepto si las fórmulas provienen de Claude, con el que nos podremos saltar este paso.

A continuación encontrarás un ejemplo completo de cómo usar el convertidor de fórmulas y después 3 opciones para obtener el archivo ODT o DOCX (este último lo podrás subir directamente a Drive para convertirlo en un documento de Google). Estas 3 opciones son:

  1. Opción 1. Utilizar un servicio de Internet para la conversión (el método más sencillo).
  2. Opción 2. Solo para Linux: utilizar el programa pandoc para hacer la conversión.
  3. Opción 3. Descargar un programa que se instala en el ordenador 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:

Paso 2. Pulsamos el botón para copiar el texto.

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:

Ejemplo con Markdown Converter

1. Vamos a la página de Markdown Converter, seleccionamos el formato y subimos el archivo que hemos generado anteriormente, resultado.md:

Paso 1. Subimos el archvo md.

2. Seleccionamos el formato, si no lo hemos hecho antes y pulsamos START:

Paso 2. Seleccionar el formato si no lo hemos hecho antes y pulsar 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. Recordemos que si deseamos un documento de Google hay que subir el archivo DOCX a Drive.

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:

Para convertir a ODT (el formato de LibreOffice) abrimos una consola desde la carpeta donde tengamos el archivo resultado.md y escribiremos:

Para convertir a DOCX (el formato de Word) usaremos:

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.

Recordemos que para realizar la conversión necesitamos el archivo resultado.md generado por la página Convertidor de fórmulas: Markdown IA a formato compatible.

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.

Estos programas también necesitan pasar el texto por el Convertidor de fórmulas: Markdown IA a formato compatible para mostrar las fórmulas correctamente.

Apostrophe

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.

GhostWriter

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.

Pódcast del artículo

Este pódcast, generado por IA, explica en detalle y con lenguaje sencillo el contenido del artículo.


Marco para la integración de la IA generativa

  • Para el texto del artículo: Nivel 1.
  • Para la página web Convertidor de fórmulas: Nivel 4.

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

« Entradas anteriores

© 2025 Bilateria

Tema por Anders NorenArriba ↑