Saltar al contenido

¿Hay algún comando “if” como “ifnum” en LaTeX?

Después de buscar en diferentes repositorios y páginas de internet al final descubrimos la resolución que te compartiremos a continuación.

Solución:

los if... Los comandos son en su mayoría primitivos de TeX (con newif es posible definir otros condicionales).

hay algo como ifstringpero usa ifnum; El comando pdfstrcmp toma dos cadenas como argumento y las compara, devolviendo -1 si la primera precede a la segunda (en el orden lexicográfico basado en códigos ASCII), 0 si las cadenas son iguales y 1 en caso contrario. Las formas habituales de explotarlo son

ifnumpdfstrcmpstring1string2=0
   
else
   
fi

o

ifcasepdfstrcmpstring1string2%
   
or
   
else
   
fi

En XeTeX hay strcmp que hace lo mismo; cargando pdftexcmds uno puede usar [email protected] con pdftex, xetex y luatex.

En los pseudocódigos anteriores "cadena1" y "cadena2" también pueden haber macros, que se expandirán de manera similar a lo que sucede con edef y al final (cuando no se pueden realizar más expansiones) los tokens se "destokenizan" para la comparación (por lo que relax se convierte en un personaje de seis string seguido de un espacio; por ejemplo pdfstrcmprelaxstringrelaxspace devuelve 0).

los etoolbox El paquete tiene muchos comandos condicionales que van más allá de las primitivas de TeX. Eche un vistazo al manual que le resultará muy útil.

Una alternativa es expl3. La capa de lenguaje básico de LaTeX3 proporciona varios condicionales. Para manejar cadenas puedes usar la función str_if_eq:nnTF. Al lado de este condicional expl3 proporciona también una función de caso para strings nombrada str_case:nn(TF).

str_if_eq:nnTF tiene la siguiente sintaxis:

str_if_eq:nnTF      
   
   

str_case:nn(TF) tiene la siguiente sintaxis:

str_case:nnTF   
  
    string case 1   code case 1 
    string case 2   code case 2 
   ...
    string case n   code case n 
 
   
   

(Cualquiera de los T o F las ramas se pueden omitir siempre que la letra del argumento coincidente también lo sea).

el manual completo

Si entiendes que te ha resultado provechoso este artículo, sería de mucha ayuda si lo compartieras con el resto seniors y nos ayudes a extender nuestro contenido.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Respuestas a preguntas comunes sobre programacion y tecnología