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.pdf
el archivo. EX:
pdflatex "\def \parameter {arg2 arg3} input{myfile.tex}"
Entonces myfile.pdf
debería haber
chapter_name2
section_name1
He oído hablar de paquetes xargs
y xkeyval
pero 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 user1
y user3
como '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 \chapter
y \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 \include
el cual está diseñado para admitir la compilación parcial, lo que parece ser su caso de uso real.
Al usarlo \include
debesnousa la extensión de archivo, solo debes usar
\include{file3}
De lo contrario, LaTeX no encontrará los aux
archivos 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 file3
se incluya y \include
se omita cualquier otro archivo al que se haga referencia.