diff --git a/content/blog/hiding-answers-lecture-slides-latex-beamer.md b/content/blog/hiding-answers-lecture-slides-latex-beamer.md new file mode 100644 index 0000000..eaeb181 --- /dev/null +++ b/content/blog/hiding-answers-lecture-slides-latex-beamer.md @@ -0,0 +1,85 @@ +--- +title: "Hiding Answers in Lecture Slides using Latex Beamer" +date: 2023-10-09T11:40:36-04:00 +draft: false +tags: ["LaTex"] +math: false +medium_enabled: false +--- + +Asking questions is a great way to try to solicitate engagement from students. However, it can feel at odds with trying to provide a fully comprehensive slide deck at times. Similar to having notes [hidden for yourself](/blog/notes-beamer-latex/), we should also have a way to hide answers for the students of the present but not the students of the future. + +LaTex beamer has the `\invisible` command which holds the space for the text but doesn't display it. We can create a new command with an if statement stating whether or not we want to use `\invisible`. + +For this, I called the variable `showanswer`, but you can call it whatever you like. Put the following code in the preamble of your beamer document. + +```latex +\newif\ifshowanswer +%\showanswertrue % Uncomment when you want to show the answer +\newcommand{\HideAns}[1]{\unless\ifshowanswer \invisible{#1} \else #1 \fi} +``` + +To write `if not` in LaTex, we need to use `\unless\if`. + +Now let's see this in action. Here is a slide I gave in a recent lecture about Unification: + +```latex +\begin{frame}{Examples} + \begin{enumerate} + \item $f(x, y) \eq f(g(x), b)$ + \begin{itemize} + \item Answer: \HideAns{None - Occurs Check} + \end{itemize} + + \item $f(x, a) \eq f(a, b)$ + \begin{itemize} + \item Answer: \HideAns{None - Function Clash} + \end{itemize} + + \item $g(x) \eq g(y)$ + \begin{itemize} + \item Answer: \HideAns{$x \mapsto y$} + \end{itemize} + \end{enumerate} +\end{frame} +``` + +The left shows the hidden version, and the right shows the version I can distribute afterwards. + +![Screenshot showing example with and without hidden answers](/files/images/blog/20231009120041.png) + +Minimal Working Example: +```latex +\documentclass{beamer} +\usetheme{Copenhagen} +\usepackage[utf8]{inputenc} + +\newcommand{\eq}{\stackrel{?}{=}} + +\newif\ifshowanswer +% \showanswertrue % Uncomment when you want to show the answer +\newcommand{\HideAns}[1]{\unless\ifshowanswer \invisible{#1} \else #1 \fi} + +\begin{document} +\begin{frame}{Examples} + \begin{enumerate} + \item $f(x, y) \eq f(g(x), b)$ + \begin{itemize} + \item Answer: \HideAns{None - Occurs Check} + \end{itemize} + \item $f(x, a) \eq f(a, b)$ + \begin{itemize} + \item Answer: \HideAns{None - Function Clash} + \end{itemize} + \item $g(x) \eq g(y)$ + \begin{itemize} + \item Answer: \HideAns{$x \mapsto y$} + \end{itemize} + \end{enumerate} +\end{frame} +\end{document} + +``` + + + diff --git a/static/files/images/blog/20231009120041.png b/static/files/images/blog/20231009120041.png new file mode 100644 index 0000000..98d6ea0 Binary files /dev/null and b/static/files/images/blog/20231009120041.png differ