Criando uma interface de usuário para controlar o conteúdo de um documento

Criando uma interface de usuário para controlar o conteúdo de um documento

Estou procurando a maneira mais fácil possível de permitir que alguém (que, por exemplo, não seja forte com LaTeX) controle o conteúdo de um documento específico. Para dar mais contexto, procuro criar uma coleção de documentos "principais" com o mesmo formato, composta quase exclusivamente por diferentes combinações de um conjunto de cerca de 30 documentos "menores" (cada um deles são essencialmente seções ou subseções dentro do documentos "principais"). Uma observação importante é que os documentos “menores” geralmente passam por pequenas atualizações, por isso são chamados para os documentos “principais” a partir de arquivos separados (para evitar a necessidade de alterar muitos documentos “principais” manualmente quando ocorrem pequenas alterações).

O que cheguei até agora é um documento "principal" geral que contém botões de alternância no preâmbulo que controlam quais documentos "menores" aparecem no documento "principal". Tudo está funcionando bem neste ponto, onde o único passo para a pessoa que cria os documentos "principais" é comentar " %" antes \toggletrueno preâmbulo se não quiser aquele documento "menor" específico no documento "principal" que está criação (por exemplo, abaixo de "TheFirstDocument" não apareceria no documento "principal"). Além disso, o que escrevi abaixo não se destina a compilar, é claro (faltam arquivos e pacotes), é apenas para mostrar um exemplo geral.

Minha pergunta é: existe uma maneira de criar uma interface de usuário muito amigável, onde talvez a pessoa que cria os documentos "principais" possa simplesmente marcar as caixas dos documentos "menores" que deseja incluir? Se isso não for possível com o próprio LaTeX, alguém tem sugestões sobre a coisa mais fácil de recorrer a partir daqui para conseguir isso?

\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}

Responder1

A metade LaTeX de uma resposta:

Primeiro, você pode dividir Main.texem três arquivos:

InitMain.texcontém o arquivo \documentcalss, alguns pacotes essenciais para o segundo arquivo e todos os arquivos \newtoggleque você precisa.

\documentclass{article}
\usepackage{etoolbox}

\newtoggle{TheFirstDocument}
\newtoggle{TheSecondDocument}

O segundo arquivo ( Main_A.tex) \inputs InitMain.tex, contém todos os \toggletrues que você precisa e finalmente \inputsMain.tex

\input{InitMain}
\toggletrue{TheFirstDocument}
%\toggletrue{TheSecondDocument}
\input{Main}

E Main.texpode conter \usepackageprogramas adicionais e outras coisas que você precisa. E é claro que você insere condicionalmente os pequenos documentos aqui.

% additional preamble stuff

\begin{document}

\iftoggle{TheFirstDocument}
{\input{TheFirstDocument.tex}
}
{%nothing
}

\iftoggle{TheSecondDocument}
{\input{TheSecondDocument.tex}
}
{%nothing
}

\end{document}

Então você só precisa compilar Main_A.texpara obter o documento final.

Com isso, os usuários só precisam editar o arquivo pequeno Main_A.texe você poderá ter arquivos Main_B.tex, Main_C.texe assim por diante com configurações diferentes.

A outra metade da resposta depende do sistema operacional, das linguagens de script disponíveis, das habilidades e muito mais. Você poderia escrever um script que leia Main_A.tex, inicialize as caixas de seleção e finalmente escreva uma nova versão com %sinais adicionados ou removidos. Por exemplo: no Windows, o jscript pode ser usado para construir uma GUI como a que você mostrou. Lá você pode até adicionar um botão, que chama, por exemplo, latexmk (nunca usei isso) para produzir o documento final diretamente da caixa de diálogo, desde que haja uma instalação do LaTeX no computador.

informação relacionada