Programación con LaTeX xkeyval

Programación con LaTeX xkeyval

Me han asignado realizar la siguiente tarea. Como no soy bueno con el látex, me pregunto sus posibilidades.

Me gustaría asignar un parámetro mientras desarrollo el documento. EX:

file1.tex

\chapter chapter_name1 [arg1=true]or [arg1]

file2.tex

\chapter chapter_name2 [arg1][arg2]
\include<file3> (here it should go to file3.tex and again checks there relevant argument in order to include correct chapter/section)

file3.tex

\section chapter_name1 [arg2][arg3]
\subsection sunsection_name [arg4]

myfile.tex

Tiene algunos bucles y un analizador para dividir los parámetros de entrada para incluir archivos relevantes.

Al momento de compilar en la terminal, debo decidir (pasando argumentos) qué capítulo se insertará en myfile.pdfel archivo. EX:

pdflatex "\def \parameter {arg2 arg3} input{myfile.tex}"

Entonces myfile.pdfdebería haber

chapter_name2 
section_name1

He oído hablar de paquetes xargsy xkeyvalpero apenas lo entiendo. Todavía no estoy seguro de cómo me ayudará. ¿Es posible mi tarea? Si es así, ¿sugiérame qué debo hacer?


Para evitar confusiones he modificado la pregunta.

Tengo un gran conjunto de competencias para el usuario. Para diferentes usuarios me gustaría mostrar diferentes contenidos. para esto, me gustaría producir resultados diferentes mostrando y no mostrando algunos de los contenidos (por ejemplo, subsección de secciones de capítulos) del documento.

Mi idea es: mientras escribo un capítulo/sección, declaro que puedo mostrarle a qué tipo de usuario estableciendo el argumento en verdadero o falso.

si usuario1==true entonces debería estar ahí en usuario1.pdf

Por ejemplo

La macro es (por ejemplo): \Modifiedchapter [bool arg1][bool arg2][bool arg3]

\Modifiedchapter <chapterName1> [user1==true][user2==false][user3==false] 

\Modifiedchapter <chapterName2> [user1==true][user2==true][user3==false]

\Modifiedsection <sectionName1> [user1==true][user2==true][user3==true]

Si paso user1y user3como 'Verdadero', entonces mi salida debería contener

comando (ej.): "\def\arg1=true, arg2=false, arg1=true \input{miarchivo}"

chapterName1

sectionName1

¿Cómo puedo hacer esto?

Respuesta1

Es una buena ideanopara cambiar la sintaxis de comandos estándar como \chaptery \section. Aunque LaTeX le permite perfeccionar cualquier parte del sistema, aprovechar esa flexibilidad hará que los fragmentos de su documento sean difíciles de procesar en cualquier otro contexto.

Ya está utilizando \includeel cual está diseñado para admitir la compilación parcial, lo que parece ser su caso de uso real.

Al usarlo \includedebesnousa la extensión de archivo, solo debes usar

\include{file3}

De lo contrario, LaTeX no encontrará los auxarchivos relevantes.

agregar \includeonly{file3}(que se puede hacer a través de una línea de comando similar a su ejemplo, o simplemente agregarlo a su archivo principal) hará que file3se incluya y \includese omita cualquier otro archivo al que se haga referencia.

información relacionada