ConTeXt e o gerenciamento de documentos complexos
Na maioria das vezes, trabalhar com combinação de
\input
e
\starttext ... \stoptext
é o suficiente.
Porém, um dos recursos do ConTeXt que mais me chamou a atenção foi o poderoso gerenciamento de documentos. Nele, existem quatro níveis de abstração:
- projeto:
- Conjunto de textos que devem ser manuseados como um todo. Geralmente, apenas listam ambientes e produtos
- ambiente:
- macros e características de leiaute são preferencialmente definidas à parte.
- produto:
- textos que pertencem a um projeto. São processados de forma aninhada no projeto. Além disso, cada produto pode ser processado de forma indepentente e pode pertencer a mais de um projeto.
- componente:
- textos que compõe um produto. São processados de forma aninhada em um produto. Podem ser processados independentemente e podem pertencer a mais de um produto.
Observações: Projetos devem enunciar produtos e estes, componentes. Já o inverso, componente enunciar produto ou projeto e produto enunciar projeto não é obrigatório, mas é permitido. Ambientes são aceitos em qualquer uma das partes.
Com os próximos comandos, projetos, ambientes, produtos ou componentes podem ser:
delimitados:
\startproject ... \stopproject \startenvironment ... \stopenvironment \startproduct ... \stopproduct \startcomponent ... \stopcomponent
Observação: comandos podem ser inseridos antes dos pares start-stop nos arquivos, no chamado preâmbulo. Use com cautela.
inseridos:
\project \environment \product \component
Observação: se um arquivo inseridos não for encontrado no mesmo diretório da requisição, ConTeXt procurará em um nível acima. Isso facilita a organização.
Exemplo
Ambiente 1: ambiente1.tex
\startenvironment ambiente1 ... configurações... \stopenvironment
Ambiente 2: ambiente2.tex
\startenvironment ambiente2 ... configurações... \stopenvironment
Componente 1: componente1.tex
\startcomponent componente1 \chapter {A} ..... text ..... \chapter {B} ..... text ..... \stopcomponent
Componente 2: componente2.tex
\startcomponent componente2 \chapter {C} ..... text ..... \chapter {D} ..... text ..... \stopcomponent
Componente 3: componente3.tex
\startcomponent componente3 \chapter {E} ..... text ..... \chapter {F} ..... text ..... \stopcomponent
Produto 1: produto1.tex
\startproduct produto1 \environment ambiente2 \component componente1 \component componente2 \stopproduct
Produto 2: produto2.tex
\startproduct produto2 \component componente3 \stopproduct
Projeto: exemplo.tex
\startproject exemplo \environment ambiente1 \product produto1 \product produto2 \stopproject