![Crear una interfaz de usuario para controlar el contenido de un documento.](https://rvso.com/image/353028/Crear%20una%20interfaz%20de%20usuario%20para%20controlar%20el%20contenido%20de%20un%20documento..png)
Estoy buscando la forma más fácil posible de permitir que alguien (que, por ejemplo, puede no ser bueno con LaTeX) controle el contenido de un documento específico. Para dar más contexto, busco crear una colección de documentos "principales" con el mismo formato, compuestos casi exclusivamente de diferentes combinaciones de un conjunto de unos 30 documentos "más pequeños" (cada uno de ellos son esencialmente secciones o subsecciones dentro del documentos "principales"). Una nota importante es que los documentos "más pequeños" a menudo sufren actualizaciones menores, por lo que se llaman a los documentos "principales" desde archivos separados (para evitar tener que cambiar muchos documentos "principales" a mano cuando se producen pequeños cambios).
A lo que he llegado hasta ahora es a un documento "principal" general que contiene opciones en el preámbulo que controlan qué documentos "más pequeños" aparecen en el documento "principal". Todo está funcionando bien en este punto, donde el único paso para la persona que crea los documentos "principales" es comentar " %
" antes \toggletrue
en el preámbulo si no quiere ese documento "más pequeño" específico en el documento "principal" que está. haciendo (por ejemplo debajo de "TheFirstDocument" no aparecería en el documento "principal"). Además, lo que he escrito a continuación no está destinado a compilar, por supuesto (faltan archivos y paquetes), es solo para mostrar un ejemplo general.
Mi pregunta es, ¿hay alguna manera de crear una interfaz de usuario muy amigable en la que tal vez la persona que elabora los documentos "principales" pueda simplemente marcar las casillas de los documentos "más pequeños" que desea incluir? Si esto no es posible con LaTeX, ¿alguien tiene sugerencias sobre lo más fácil a lo que recurrir desde aquí para lograrlo?
\documentclass{article}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% Select Desired Documents %%%
\newtoggle{TheFirstDocument}
%\toggletrue{TheFirstDocument}
\newtoggle{TheSecondDocument}
\toggletrue{TheSecondDocument}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\iftoggle{TheFirstDocument}
{ExecuteMetaData[TheFirstDocument.tex]{tag}
}
{%nothing
}
\iftoggle{TheSecondDocument}
{ExecuteMetaData[TheSecondDocument.tex]{tag}
}
{%nothing
}
\end{document}
Respuesta1
La mitad de una respuesta de LaTeX:
Primero, puedes dividirlo Main.tex
en tres archivos:
InitMain.tex
contiene el \documentcalss
, algunos paquetes esenciales para el segundo archivo y todos los \newtoggle
correos electrónicos que necesita.
\documentclass{article}
\usepackage{etoolbox}
\newtoggle{TheFirstDocument}
\newtoggle{TheSecondDocument}
El segundo archivo ( Main_A.tex
) \input
s InitMain.tex
, luego contiene todos los \toggletrue
s que necesita y finalmente \input
sMain.tex
\input{InitMain}
\toggletrue{TheFirstDocument}
%\toggletrue{TheSecondDocument}
\input{Main}
Y Main.tex
puede contener \usepackage
mensajes de correo electrónico adicionales y otras cosas que necesite. Y, por supuesto, usted introduce aquí los documentos pequeños de forma condicional.
% additional preamble stuff
\begin{document}
\iftoggle{TheFirstDocument}
{\input{TheFirstDocument.tex}
}
{%nothing
}
\iftoggle{TheSecondDocument}
{\input{TheSecondDocument.tex}
}
{%nothing
}
\end{document}
Luego solo necesitas compilar Main_A.tex
para obtener el documento final.
Con esto, los usuarios solo tienen que editar el archivo pequeño Main_A.tex
y usted podría tener archivos Main_B.tex
, Main_C.tex
etc. con diferentes configuraciones.
La otra mitad de la respuesta depende del sistema operativo, los lenguajes de programación disponibles, las habilidades y más. Puede escribir un script que lea Main_A.tex
, inicialice las casillas de verificación y finalmente escriba una nueva versión con %
signos agregados o eliminados. Por ejemplo: en Windows, jscript podría usarse para crear una GUI como la que mostró. Allí incluso podría agregar un botón que llame, por ejemplo, a latexmk (nunca usé esto) para producir el documento final directamente desde el cuadro de diálogo, siempre que haya una instalación de LaTeX en la computadora.