LaTeX é excelente para moitas cousas. Traballar con variables, condicionais e bucles non é unha delas.
Non é que sexa de todo imposible, pero é bastante engorroso.

Claro está que tampouco imos programar en LaTeX (veña, vamos, se tal desempolvamos os nosos vellos coñecementos de Fortran, hahaha) pero aínda así ocasionalmente pode ser interesante separar casos e comprobar distintas condicións.

Hay unha serie de variables enteiras que LaTeX usa con moita frecuencia: son os índices (contadores, counters) que emprega nas enumeracións, como pode ser por exemplo o número do capítulo, sección, figura ou elemento dunha lista numerada.
Adoitan ser máis que suficientes para as ocasións nas que eu preciso un condicional (p.ex., executar algo cada certo número de iteracións) e evitámonos definir variables reais (que tamén se pode, pero é un chisco delicado) ou macros (que é utilísimo para outras cousas; xa falarei deste tema noutra ocasión).

Neste exemplo fixen unha tabla en TikZ, empregando dous bucles e un condicional para que colorease as celas nas que a suma é 8.

Índices

Para definir un índice, debo escoller un nome (que teña só letras, nada de números tipo elemento1):

\newcounter{indice}

Se non se lle indica nada, o valor inicial será 0. Se queremos modificalo por exemplo para que o seu valor sexa 3:

\setcounter{indice}{3}

Para imprimir (ou empregar) o valor nun momento dado, podemos escribir calquera de estos dous xeitos:

\theindice

\value{indice}

Estos valores imprímense por defecto con números arábigos, se precisamos outro formato de impresión pode facerse tamén en números romanos ou en letras (ambas posibles en maiúsculas ou minúsculas):

\Roman{indice}
\roman{indice}
\Alph{indice}
\alph{indice}

Condicionais

Agora que xa temos un valor numérico, podemos comparalo.
Por defecto, LaTeX ofrécenos dous funcións interesantes (ifnum e ifodd), unha que nos permite comparar con outro valor e outra que nos permite comparar se é impar.
En caso de que a condición lóxica se cumpla realizarase unha claúsula e se non a outra, puidendo estar calquera das dúas valeiras.

\ifnum\value{indice}=3 {Certo} \else {Falso} \fi

\ifodd\value{indice} {Impar} \else {Par} \fi

Eu emprego case sempre un paquetiño que facilita a xestión dos condicionais.

\usepackage{ifthen}

A sintaxe tampouco é que teña moita ciencia:

\ifthenelse{\value{indice}=3}{Certo}{Falso}

Pero ten a vantaxe de que é moi cómodo o emprego de negacións (\NOT) e conxuncións (\AND, \OR).

\ifthenelse{\NOT \value{indice}>3 AND \value{columna}=6}{Certo}{Falso}

Seica hai ferramentas máis potentes, como etoolbox, pero eu de momento non as emprego e probablemente non as precise nun futuro próximo.

Leave a Reply

Tu dirección de correo electrónico no será publicada.

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>