\chapter{Easy Flash Cards in \LaTeX{} }\label{flashcards}

\section{Introduction}

I was a biology major in college (the first time around, that is) and so I had to memorize \textit{lots} of information. 

\kdivb{Is it worth it?}{0}
A brief moment, if you will, to discuss the value, if any, of memorizing things.

In my high school chemistry class our teacher was explaining the periodic table—something we'd first been introduced to years before, but this time around he was explaining \textit{why} it's actually periodic and not just a random assortment of elements. It seemed he knew most of the periodic table by heart, so I asked him if he had memorized the entire thing. 

``Not deliberately,'' he said. ``But if you use it all the time, you get to the point where you've pretty much memorized most of it.''

Fair enough. There's really no point in memorizing anything unless you are going to use it on a regular basis, and if you are going to use it on a regular basis, you'll have it memorized soon enough. So what's the point of deliberately sitting down and memorizing things?

There isn't, really, outside of a few specialized contexts, like memorizing your lines if you're in a play or memorizing vocabulary if you're learning another language. (Although the best way to learn another langauge is to just use that language as much as possible. The problem is that doing that just isn't feasible most of the time, unless you're willing to just D.B. Cooper yourself out of an airplane into a small village somewhere in southwest France.) Even so, there's always the example of the Shakespearean actor who can pull out just the right pithy Shakespearean line for any given occasion. But even here, the prinicples is still the same: the actor can just pull these lines form memory not because they sat down and memorized them, but because they uttered them every night for weeks or months on end in the context of the entire play, not in isolation. 

So why do we expect students to memorize stuff? Because memorization is the easiest form of learning to test, and thus, it's the easiest way to prove that we have taught them something. It's easy to see if students have memorized all the presidents in order, but it's quite another thing to see if those same students can explain why the vast majority of those presidents are some variation of the average mediocre white guy born into generational wealth. To paraphrase Paulo Freire, all education functions to either support the status quo or to overturn it,\footnote{His actual quote was ``There is no such thing as neutral education. Education either functions as an instrument to bring about conformity or freedom.'' He also said ``When education is not liberating, the dream of the oppressed is to become the oppressor.'' Those two quote say a \textit{lot} about our modern system of education.} and since the people who hire and pay teachers have a great desire to maintain the status quo (where we just don't question our systems regardless of the inequities built into them and the resulting inequalities we see in our society), there is a lot of pressure to just get students to memorize things and to never question the status quo.
\kdive{0}

One of the best ways I've found to memorize information is to use flash cards. As I see it, flash cards have three main advantages. First, you have to write this information onto the flash cards, so you have yet another opportunity to review the information. (I tend to learn better by reading and writing than by listening.) Second, because you have to fit the information on an index card, you have to edit the information, which is yet another opportunity to process the information. Third, because each bit of information is on a separate card, you can easily sort these cards as you study them, gradually setting aside the cards you know, so that you can focus on the material you still need to learn. 

Unfortunately, flash cards are a lot of work to make. (You can buy commercial versions, but they are expensive and may not suit your exact purposes.) Because you have to make them by hand, you're essentially a medieval scribe, copying a text very laboriously by hand. It's not a fun process for most people.\footnote{I will admit to being an exception here. I love writing things out longhand.}

Fortunately, \LaTeX{} has a number of packages that make the production of flash cards a fairly simple process. The main issue with creating flash cards in a word processing program is that you have to remember that the back side of the pages have to be written up in the reverse order of the front sides. This is what \LaTeX{} makes easy, because it can automatically set up the cards for two-sided printing. That is, if the front of your document looks like this:

\label{cards}
\begin{center}
	\begin{tikzpicture}[scale=0.6]
		\draw (0,0) rectangle (11,4.55);
		\draw (1,1) rectangle (5,3.5);
		\node at (3,2.5) {{\Huge A}};
		\node at (3,1.5) {\textsc{front}};
		\draw (6,1) rectangle (10,3.5);
		\node at (8,2.5) {{\Huge B}};
		\node at (8,1.5) {\textsc{front}};
	\end{tikzpicture}
\end{center}

\noindent{}then the back of your document needs to look like this for the cards to print properly:

\begin{center}
	\begin{tikzpicture}[scale=0.6]
		\draw (0,0) rectangle (11,4.55);
		\draw (1,1) rectangle (5,3.5);
		\node at (3,2.5) {{\Huge B}};
		\node at (3,1.5) {\textsc{back}};
		\draw (6,1) rectangle (10,3.5);
		\node at (8,2.5) {{\Huge A}};
		\node at (8,1.5) {\textsc{back}};
	\end{tikzpicture}
\end{center}

This way the back of card A and front of card A will appear on opposite sides of the same card.\footnote{This is an incredibly difficult concept for some people to understand. (If you don't beleive me, just ask anyone who's ever worked in a copy shop.) Some people just have a lot of trouble re-orienting three-dimensional ojbects in their mind. I have a funny feeling that these are the people who just never got to build anything when they were children, or who never got to play with building toys like Lego or Tinker Toys.}

\subsection{Online Examples}

I had a lot of fun playing around with these packages, and have created a number of example documents for you to download and play around with. I've posted these to both my personal git repository and Codeberg. You can see them here: 

\label{online-examples}
\begin{itemize}
\item \textbf{Personal:} \kref{https://git.kjodle.net/kjodle/flashcard-examples}{https://git.kjodle.net/kjodle/flashcard-examples}
\item \textbf{Codeberg:} \kref{https://codeberg.org/kjodle/flashcard-examples}{https://codeberg.org/kjodle/flashcard-examples}
\end{itemize}

\section{The \textsf{FlashCards} Package}

The \textsf{FlashCards}\footnote{Available at \kref{https://www.ctan.org/pkg/flashcards}{https://www.ctan.org/pkg/flashcards}.} package (and note that it is written in CamelCase) allows you to easily create flashcards and then print them on standard sheet-fed business-card stock which is equivalent to Avery 5371.\footnote{This is for North American business-card stock, which is 8.5 $\times$ 11 inches.} (Avery products are pretty expensive, but I can usually find a less expensive off-brand version elsewhere.)

\textsf{FlashCards} offers you a limited set of options, which is just fine, since it's more about the information on these cards, rather than how they look. Flash cards don't need to be fancy, but you can do a certain amount of customization with this package. 

\subsection{Using the \textsf{FlashCards} Package}

The \textsf{FlashCards} package defines a new document class (called, natch, ``\texttt{flash\-cards}'') with one required option and a few non-required options. The required option is the type of Avery cardstock you will be printing your cards on. Out of the box, it only supports business cards (Avery 5371) and index cards (Avery 5388) but it is easy enough to configure your own, which we'll see in a bit. 

The non-required options include \texttt{fronts} and \texttt{backs} for typesetting only the fronts or backs of your cards, \texttt{grid} to draw lines where the perforations are (which is handy if you are printing on non-perforated card stock, because you can just cut them apart on the lines), and \texttt{frame} to draw a frame around the content of each card. 

\textsf{FlashCards} defines a new environment (\texttt{flashcard}) with a single required argument, which is the text on the front of the card. Anything contained within the environment (which can include both math and \texttt{tikz} drawings) goes on the back of the card, like so:

\begin{Verbatim}[frame=lines, numbers=left, xleftmargin=5mm, framesep=3mm, breaklines=true, label=\fbox{FlashCards example}]
\begin{flashcard}[]{This is the front of the card}
This is the back of the card
\end{flashcard}
\end{Verbatim}

The argument contained in square brackets (which is absent in our example) allows you to add a header to the card, which will only appear if you used the \verb|\cardfrontstyle{headings}| command. This allows you to describe some cards in your flash card deck according to what they are (definition, formula, etc.). If you then use the \verb|\cardfrontfoot{<text>}| you can define a footer that will appear on \textit{every} card in your document (e.g. Biology 101).

You do have some options for modifying how the headers and footers are typeset, which is described clearly in the package documentation. You can also look at the sample files I've posted online for other examples.

\subsection{Having Fun with \textsf{FlashCards}}

When I originally set up my own Git repo,\footnote{See chapter \ref{codeberg}.} one of the first things I did was add a list of the Ferengi Rules of Acquisition. When I started playing around with flash cards in \LaTeX{} I didn't really have anything I was studying at the time, so I decided to use the Rules as an example. However, there were a couple of issues that I wanted to see if the \textsf{FlashCards} package could deal with.

The first is that I wanted the front side of the card to be in a unique font. That is, I wanted it to be something that didn't scream ``LaTeX'' when people saw it. The second is that the rules are numbered, and I have no desire to add all those numbers by hand, so I wanted to see how easy it was to use a counter with this package. 

Tackling a new font was relatively easy. I looked around and liked the ``Roman Rustic'' font,\footnote{Which you can see at \kref{https://tug.org/FontCatalogue/romanrustic/}{https://tug.org/FontCatalogue/romanrustic/}.} so I added these lines to my preamble: 

\begin{Verbatim}[frame=lines, numbers=left, xleftmargin=5mm, framesep=3mm, breaklines=true, ]
% Font for front side of cards
% Use \rustfamily to apply font
\usepackage{rustic}
\usepackage[T1]{fontenc}

\cardfrontstyle[\large\itshape\bfseries\rustfamily]{headings}
\cardbackstyle{plain} % plain option centers text
%\cardfrontfoot{Rules of Acquisition}
\end{Verbatim}

Lines 3 and 4 add our font\footnote{Notice that I also added comments on lines 1 and 2 regarding what this was and how to use it. I am not going to remember this next week, much less a year from now. Comments are free. Use them.} and line 6 applies it to the card front. That line also says that we are going to use the \texttt{headings} option, although I decided not to when setting up the actual cards. 

I experimented with various fonts, and some of them contained a hash character (\#) and some of them did not. So I added a macro that would allow me to easily change that from a symbol to words or vice versa, based on the font. 

\begin{Verbatim}[frame=lines, numbers=left, xleftmargin=5mm, framesep=3mm, breaklines=true, ]
% A new command in case we want to change what we use to indicate 'number'
% May need to change this based on the font
\newcommand{\ksep}{\\ \vspace{5mm} No.}
\end{Verbatim}

(Is this a hack? No, not really. It's more of a kludge than anything else. Sometimes the thing you need is just a good hard slash through the Gordian knot of your current situation.\footnote{Also, again, comments.})

I then needed to add my counter, which I did with 

\begin{Verbatim}[frame=lines, numbers=left, xleftmargin=5mm, framesep=3mm, breaklines=true, ]
\newcounter{rule}
\setcounter{rule}{1}
\end{Verbatim}

I then started adding my cards, making sure to increment the counter after each card:

\begin{Verbatim}[frame=lines, numbers=left, xleftmargin=5mm, framesep=3mm, breaklines=true, label=\fbox{Rules of Acquisition FlashCards exampleS}]
\begin{flashcard}[]{Rule of Acquisition \ksep \arabic{rule}}
Once you have their money, you never give it back.
\end{flashcard}
\addtocounter{rule}{1}
\end{Verbatim}

Compiling that document gave me these beautiful flash cards:

\begin{center}
\frame{\includegraphics[scale=0.25]{roa-card-front}} \hspace{10mm} \frame{\includegraphics[scale=0.25]{roa-card-back}}
\end{center}

You can see the full file in either of the repos I mentioned earlier.

\subsection{Modifying the \textsf{FlashCards} Configuration Files}

There's just one catch with the FlashCards package: it only includes support for business cards and $3\times5$ index cards.\footnote{In letter sized paper. I'm sorry that the rest of the world quite sensibly uses metric-sized paper and the United States chooses not to. It seems that the only time we're good with the metric system is when we're buying drugs or guns or soda.} The documentation says that variants are easy to generate, but it doesn't describe \textit{how} to do it. But the author says there is a way, so there has to be a way. And since no instructions are included, it should be fairly simple, right? As it turned out, it was, pretty much. \footnote{Again, this is an example where a package author assumes that you have the same amount of knowledge and information that they do. As they have no idea who you are and where you are in your journey, this is a fair starting point. Figuring this out is up to you. I figured it out, and I'm fairly confident that 1) you can too, and 2) I can figure out similar things in the future.}

The first step is to find those configuration files. We have a couple of options here. One is to look in the \texttt{.log} file of any project we've used the \texttt{flashcards} package. Looking at my ``Rules of Acquisition'' I saw this on line 9: 

\begin{Verbatim}[frame=lines, numbers=left, xleftmargin=5mm, framesep=3mm, breaklines=true, label=\fbox{Location of FlashCards class file}]
(/usr/share/texlive/texmf-dist/tex/latex/flashcards/flashca rds.cls
\end{Verbatim}

and this on lines 41-43:

\begin{Verbatim}[frame=lines, numbers=left, xleftmargin=5mm, framesep=3mm, breaklines=true, label=\fbox{Location of FlashCards configuration file}]
(/usr/share/texlive/texmf-dist/tex/latex/flashcards/avery537 1.cfg
File: avery5371.cfg 
)
\end{Verbatim}

If we're on the command line, we could also use the \texttt{kpsewhich} command to look for the \texttt{<package\_name>.cls} file, like this: 

\input{include/kpsewhich}

which gives us this output:

\begin{Verbatim}[frame=lines, numbers=left, xleftmargin=5mm, framesep=3mm, breaklines=true, label=\fbox{Output of kpsewhich Command}]
ls
/usr/share/texlive/texmf-dist/tex/latex/flashcards/flashcar ds.cls
\end{Verbatim}

Since I don't want to edit files in my \texttt{/usr} directory (which would require \texttt{sudo} and is not something that can be backed up easily), the solution is to use our own \texttt{texmf} directory, where we can install our own packages and make modifications to them easily.\footnote{See \S 7.1.2 ``Method \#2'' in issue \#3 for more information.}

I already had that folder, so I duplicated the file path (\texttt{/tex/latex/flas\\hcards}) there, copied over the \texttt{avery5371.cfg} file, and renamed it to \texttt{avery5389.cfg}, which is the format for a 2-up $4\times6$ index card, and opened it up for editing in my text editor. 

I started with a quick search and replace, swapping out ``5389'' for ``5371''. Then I had to change the relevant lines in the config file to fit the $4\times6$ card format, So I changed all of these lines:

\begin{Verbatim}[frame=lines, numbers=left, xleftmargin=5mm, framesep=3mm, breaklines=true, label=\fbox{Configuration for Avery 5371 Stock}]
\newcommand{\cardpapermode}{portrait}
\newcommand{\cardpaper}{letterpaper}
\newcommand{\cardrows}{5}
\newcommand{\cardcolumns}{2}
\setlength{\cardheight}{2.0in}
\setlength{\cardwidth}{3.5in}
\setlength{\topoffset}{0.50in}
\setlength{\oddoffset}{0.75in}
\setlength{\evenoffset}{0.75in}
\end{Verbatim}

to have these values:

\begin{Verbatim}[frame=lines, numbers=left, xleftmargin=5mm, framesep=3mm, breaklines=true, label=\fbox{Configuration for Avery 5389 Stock}]
\newcommand{\cardpapermode}{portrait}
\newcommand{\cardpaper}{letterpaper}
\newcommand{\cardrows}{2}
\newcommand{\cardcolumns}{1}
\setlength{\cardheight}{4.0in}
\setlength{\cardwidth}{6.0in}
\setlength{\topoffset}{1.5in}
\setlength{\oddoffset}{1.25in}
\setlength{\evenoffset}{1.25in}
\end{Verbatim}

I then saved the file and closed it.

The only thing left to do was to inform \TeX{} about this new file by running 

\input{include/mktexlsr}

I then changed the first line of my ``Rules of Acquistion'' flashcards project to 

\begin{Verbatim}[]
\documentclass[avery5389,grid]{flashcards}
\end{Verbatim}

I re-compiled the project, and indeed, I now had the Ferengi Rules of Acquistion on $4\times6$ index cards! Easy-peasy!

\section{The \textsf{flacards} Package}

Next is the \textsf{flacards}\footnote{Available at \kref{https://www.ctan.org/pkg/flacards}{https://www.ctan.org/pkg/flacards}.} package, which is not quite as straighforward as \textsf{FlashCards} because you have to do more work up front to set up the page layout. But this package does offer more options for laying out each card, so if you need a more complex card layout, the trade-off is worth it. 

This package also creates a new document class (``\texttt{flacards}'') which is based on the \texttt{article} class. To create a flash card, you use the \texttt{card} environment, which has two required options, one for the front of the card, and one for the back. (The class also has two options, \texttt{frontgrid} and \texttt{backgrid} for drawing gridlines around your cards.)

You will probably need to change the default pagelayout options, as the default margins are one centimeter on all sides, and the default card layout is eight rows of three cards each. Because this package already loads the \textsf{geometry} package, you can just add the new margin declarations to your \texttt{documentclass} declaration. For example, to use the Avery 5371 business cards I have on hand, I would use this in my preamble:

\begin{Verbatim}[frame=lines, numbers=left, xleftmargin=5mm, framesep=3mm, breaklines=true, label=\fbox{geometry options for Avery5371 cards}]
\geometry{
 top=0.5in,
 bottom=0.5in,
 inner=0.75in,
 outer=0.75in,
}
\end{Verbatim}

\noindent{}and then add this just after \verb|\begin{document}|:

\begin{Verbatim}[]
\pagesetup{2}{5}
\end{Verbatim}

The \textsf{flacards} packages include options for left, center, and right headers and footers, which allows you to add a great deal of information to your flash cards. The documentation includes a chart and a diagram that shows the commands for modifying these. For example, if I wanted to add ``Botany'' the bottom center of the front of my flash cards, I would use this command:

\begin{Verbatim}[]
\renewcommand{\fcfoot}{Botany}
\end{Verbatim}

I created a set of botany flashcards which you can see in either of the repos I mentioned on page \pageref{online-examples}, where I use this code to set up my cards:

\begin{Verbatim}[frame=lines, numbers=left, xleftmargin=5mm, framesep=3mm, breaklines=true, label=\fbox{Card options for Botany flash cards}]
\renewcommand{\frfoot}{}
\renewcommand{\fcfoot}{\vspace{4mm}\scshape{Botany}}
\renewcommand{\cardtextstylef}{\rmfamily\Large}
\renewcommand{\cardtextstyleb}{\raggedright\rmfamily\normal size}
\fboxsep=10pt
\end{Verbatim}

Line 1 removes the counter that normally exists in the front right footer. Line 2 places the word \textsc{Botany} in the front center footer. Line 3 changes the font on the front of the cards to a Roman font (instead of italics) in \texttt{Large} size. Line 4 left-aligns the font on the back side, and also changes it to Roman in \texttt{normal} size. Line 5 adds a 10 point speapration between the edges of the cards and their content.

The flashcards themselves are really simple to make. Here are the first four:

\begin{Verbatim}[frame=lines, numbers=left, xleftmargin=5mm, framesep=3mm, breaklines=true, label=\fbox{Botany flash cards using the flacards package}]
\card{Seed}{A mature ovule.}
\card{Fruit}{A mature carpel.}
\card{Flower}{The reproductive structure of the angiosperms.}
\card{Pistil}{The female organ of the flower.}
\card{Stamen}{A modified leaf which produces pollen grains.}
\end{Verbatim}

Note that you can also renew any of these commands whenever you want. If you look at that example, you'll see that I threw in a geometry card at the very end:

\begin{Verbatim}[frame=lines, numbers=left, xleftmargin=5mm, framesep=3mm, breaklines=true, label=\fbox{flacards example with math mode and tikz}]
\renewcommand{\fcfoot}{\vspace{4mm}\scshape{Geometry}}
\renewcommand{\cardtextstyleb}{\centering\rmfamily\normalsize}

\card{The Pythagorean Theorem}{
$a^2 + b^2 = c^2$ \\
\vspace{2mm}
\begin{tikzpicture}[scale=0.4]
 \coordinate (A) at (-1.5cm,-1.cm);
 \coordinate (C) at (1.5cm,-1.0cm);
 \coordinate (B) at (1.5cm,1.0cm);
 \draw (A) -- node[above] {$c$} (B) -- node[right] {$b$} (C) -- node[below] {$b$} (A);
 \draw (1.25cm,-1.0cm) rectangle (1.5cm,-0.75cm);
\end{tikzpicture}
}
\end{Verbatim}


The \textsf{flacards} package also has a lot of other options for designing your cards, including color options. I could go into them here, since the package documentation doesn't really get into them very much. However, it does include this sentence, which I absolutely love: 

\begin{quote}
\textit{You might want to look into the source code for deeper \\understanding.}
\end{quote}

In this case, I highly recommend it.\footnote{I actually need this on a t-shirt!} The source code includes a number of example files that you can examine and compile yourself to get an excellent understanding of how this package works. And of course, looking into the source code may cause a lot of confusion initially, but it is worth digging through that confusion to achieve a much deeper level of understanding than you ever could by just guessing at options. (This concept is so true of all things, not just software projects.) 


\section{The \textsf{elzcards} Package}

If you are creating flash cards that you are going to send to a commercial printer, you might want to look into the \textsf{elzcards}\footnote{Available at \kref{https://www.ctan.org/pkg/elzcards}{https://www.ctan.org/pkg/elzcards}.} package because it offers a \textit{lot} of options for setting up crop marks that the printer will use to cut the cards apart.

What's nice about this package is that it can also produce business cards, either single-sided or double-sided. You define the card contents once and the package does the rest. (You will need to add the \textsf{geometry} package to set up your page and margin dimensions.)

A unique feature of this package is that you define your cards first (using either an \texttt{IndexCard} or \texttt{FlashCard} environment) and then output them with the \verb|\MakeIC| or \verb|MakeFC| command. This allows you to output the cards in a different order than you entered them.  I'm not entirely sure why this would be handy, but I feel that it will come in very useful for some people.

The biggest disappointment with this package, however, is that there is no easy way to format the front and back of the cards. In fact, the package documentation includes a macro that essentially centers the text both vertically and horizontally. This seems to be a klunky approach, since you need to invoke that macro every time you create a new flash card, which is tedious. 

Since the only way to do this is to use a macro, I had to create my own. To add some padding for the backs of the cards (where I don't necessarily want to center the text), I used the \textsf{adjustbox} package. My macros for the front and back look like this:

\begin{Verbatim}[frame=lines, numbers=left, xleftmargin=5mm, framesep=3mm, breaklines=true, label=\fbox{Macros for formatting cards in elzcards package}]
\newcommand{\kfront}[1]{
 \vspace*{\stretch{1}}
  \begin{center}
   {{\LARGE #1}}
  \end{center}
 \vspace*{\stretch{1}}
}
\newcommand{\kback}[1]{
 \vspace*{\stretch{1}}
  \begin{adjustbox}{padding = 10mm 10mm 0mm 0mm}
   \parbox{0.8\linewidth}{\raggedright #1}
  \end{adjustbox}
 \vspace*{\stretch{1}}
}
\end{Verbatim}

\noindent{}which makes an actual card look like this:

\begin{Verbatim}[frame=lines, numbers=left, xleftmargin=5mm, framesep=3mm, breaklines=true, label=\fbox{Samples flashcards with macros}]
\FlashCard
 {\kfront{Apex}}
 [\kback{The single point on a code or pyramid that is furthest from the base. For a pyramid, the apex is where all the triangular faces meet.}]

\FlashCard
 {\kfront{Arc}}
 [\kback{The part of circle lying between two points on the circle.}]
\end{Verbatim}

Where this package really shines, however, is in its ability to make business cards. In this case, no macros are necessary, since you are only defining the business card content once. I've included samples of both flash cards and business cards online.

\section{The \textsf{eCards} Package}

This is a package for creating \textit{electronic} flash cards, such as the type you might project to a screen in front of an entire class. This one looks like a lot of fun, but I ran out of time (and space). If I get the chance, I'll write this up in a future issue.

\section{Summary}

Which of these packages is best? That depends upon what you need to accomplish and how much time you have to invest. To help you evaluate which package to use, I've summarized their characteristics as best I can in this table.

\begin{longtblr}
[
	caption = {A Comparison of the \textsf{FlashCards}, \textsf{flacards}, and \textsf{ezlcards} Packages},
	label   = {tb: flashcards-summary},
%	theme   = {custom1}
]{
	width      = {\textwidth},
	colspec    = { X[1,0.7] X[1,c] X[1,c] X[1,c] },
	hlines     = {0.5pt,solid},
	vline{1,5} = {0.5pt,solid},
	rows       = {5mm, m, rowsep=1.5pt},
	rowhead    = 1,
	cells	   = {font=\sffamily\fontsize{8pt}{10pt}\selectfont},
	row{1}     = {font=\bfseries},
}
Parameter & \textsf{FlashCards} & \textsf{flacards} & \textsf{elzcards} \\
{Document \\class} & \texttt{flashcards} & \texttt{flacards} & \texttt{article} \\
{\texttt{geometry} \\package} & Pre-loaded & Pre-loaded & Need to load \\
{Card \\environment} & \texttt{flashcard} & \texttt{card} & {\texttt{FlashCard} \textit{or} \\ \texttt{IndexCard} \textit{or} \\ \texttt{BusinessCard}} \\
Card size & Only two options available, but others can be configured & Need to be defined explicitly & Defaults to either business card or index card but can be overridden \\
Grid lines & {Can print on \\front or back} & {Can print on \\front or back} & {Can print on \\front only} \\
Frame & Yes & & Yes, with either a macro or defining in each card \\
Counter included? & No & Yes & Yes \\
Define card margin & Yes & & No \\
Card header and footer options & Limited & Extensive & Available only through a macro \\
\end{longtblr}
