LaTeX Programming
Learning Objectives:
- Variable:
\newcommand
,newenvironment
- Conditional: if
- Iteration: for loop
Newcommand
Basic Newcommand
\newcommand\NUS{National University of Singapore}
I like \NUS{}. Do you like \NUS{}?
Math newcommand
\newcommand\sumx{\ensuremath{x_1+\cdots+x_n}}
I like \sumx{}.
Newcommand with argument
\newcommand\poem[1]{#1 eats an apple.}
\poem{Peter}
\poem{Mary}
\newcommand\poems[2]{#1 eats #2.}
\poems{Peter}{apple}
\poems{John}{banana}
Math newcommand with argument
\newcommand\sumint[1]{\ensuremath{1+\cdots+#1}}
I like to do \sumint{3} and \sumint{n}.
\newcommand\sumints[2]{\ensuremath{#1+\cdots+#2}}
I like to do \sumints{1}{2} and \sumints{3}{n}.
New Environment
Baisc newenvironment
\newenvironment{important}
{\begin{center}\color{red}}
{\end{center}}
I like think the following is important:
\begin{important}
I eat an apple.
\end{important}
Newenvironemt with argument
\newenvironment{important}[1]
{\begin{center}\color{#1}}
{\end{center}}
I like think the following is important:
\begin{important}{blue}
I eat an apple.
\end{important}
Newenvironment with arguments
\newenvironment{important}[2]
{\begin{center}\textbf{#2:} \color{#1}}
{\end{center}}
I like think the following is important:
\begin{important}{blue}{Peter}
I eat an apple.
\end{important}
Conditional
Conditional If
\newenvironment{important}[2]
{\begin{center}\textbf{#2:} \color{#1}}
{\end{center}}
I like think the following is important:
\begin{important}{blue}{Peter}
I eat an apple.
\end{important}
Conditional If else
\newif\ifcond
\condfalse % try \condtrue
\ifcond
Yes, this is not me. % run if true
\else
No, this is you. % run if false
\fi
Iteration
Iteration for each loop
\usepackage{pgffor}
\foreach \person in {Peter, John, Mary}
{\person{} eats an apple.\par}
\foreach \n in {1,...,10}
{\n +}