# [texhax] How to structure conditionals?

Chris Bergstresser chris at subtlety.com
Mon Oct 24 06:49:00 CEST 2005

Karl Berry wrote:
> I'm not sure from your description how you intend \question to be
> called.  Could you give an example?

Sure.  Here's what I've ended up with so far:

% Define the question format
\newcommand{\question}[3]{
\samepage{}
\setcounter{questionconclude}{\substring{%
%
12112012221 % This is the definition of the
% question conclusions to use
%
}{\thequestionnum}{\thequestionnum}}
\thequestionnum) #1
\ifthenelse{\equal{\thequestionconclude}{1}}{#2}{
\ifthenelse{\equal{\thequestionconclude}{2}}{#3}{#2 \\ \ldots #3}}
}
\newcounter{questionnum}
\newcounter{questionconclude}

% Define the substring command
\def\substring#1#2#3{\expandafter\subm\romannumeral#3000x.{}%
#1\relax\relax{#2}}
\def\subm#1#2.#3#4\relax#5\relax{\csname
sub#1\endcsname#2.#4\relax#5#3\relax}
\def\subx#1.#2\relax#3\relax#4{\expandafter\submb\romannumeral#4000x.{}%
{}#3\relax}
\def\submb#1#2.#3{\csname sub#1b\endcsname#2.}
\def\subxb#1.#2\relax{#2}

Then the questions are like:
\question{
I like to eat
}
{chocolate.}
{ice cream.}

\question{
I hate
}
{rainy days.}
{Mondays.}

> I don't know how to use LaTeX conditionals, but the primitives \if and
> \ifx can check these things, or maybe \ifcase would be better.  For
> example, you gave this example:

\ifcase is probably a better way of doing the above than I currently
am.  Although I'd really like to define the question conclusions above
the question definition (I can't seem to find documentation for \def)
and I'd love to find a more general solution than the one I currently have.

-- Chris