bucle y entrada @ ruta

bucle y entrada @ ruta

Estoy intentando tener una ruta recursiva en el comando \input@path, pero parece imposible (según leí, estoy con TexLive 2012 y Linux).

Entonces tuve la siguiente idea, hacer un bucle \input@path, pero no funciona y no sé por qué...

Esto es lo que hice :

\newcounter{path}
\setcounter{path}{0}
\def\nom{%
  \ifcase\thepath Cours%
  \or Livres%
  \fi
}
\def\input@path{%
 \loop \ifnum \thepath<3
   {~/Exercices/\nom/Derivee/}
 \stepcounter{path} \repeat
}

Si alguien tiene una idea, será de gran ayuda.

Respuesta1

El formato de \input@pathes fijo, cada entrada de ruta está rodeada por llaves sin más separadores. Cualquier otro material, como bucles, está prohibido. Pero es posible agregar entradas:

\makeatletter
\newcounter{path}
\setcounter{path}{0}
\newcommand*{\nom}{%
  \ifcase\value{path}%
    Cours% 0
  \or
    Livres% 1
  \or
    Two% 2
  \fi
}
\@ifundefined{input@path}{%
  \let\input@path\@empty
}{}
\loop
\ifnum\value{path}<3 %
  \edef\input@path{%
    \input@path
    {\string~/Exercises/\nom/Derivee/}%
  }%
  \stepcounter{path}%
\repeat
\typeout{input@path: \input@path}
\makeatother

Algunas observaciones:

  • Las cadenas de entrada se expanden con \edef, porque tarde o temprano se expanden de todos modos. La tilde ~suele ser un carácter activo; para evitar la expansión, tiene el prefijo \stringque convierte el carácter activo en un carácter no activo (con código cat 12).

  • En el ejemplo se utiliza \value{<counter>}en lugar de \the<counter>, porque esta última forma está destinada a la impresión y es posible que no siempre se expanda a un número arábigo simple.

  • \ifcaseFaltaba la definición del número 2 .

información relacionada