Project Structure - inheritance rules for environments
Hi, I'm just having a look a project structure again. I am using the example given in the wiki: https://wiki.contextgarden.net/Project_structure, i.e., in my component I'm linking to the product, but not to the project. Now I was expecting that the component inherits the environment set in the project via the product. The wiki currently explains: "If you tex (compile) one single component (e.g. a chapter of a book) or product (e.g. one volume of a magazine), the environment file of the project is used." That does not seem to be the case here. Can anyone confirm this? Is this a bug or does the wiki needs to be revised? Best, Denis
denis.maier@ub.unibe.ch schrieb am 28.02.2021 um 23:09:
Hi,
I’m just having a look a project structure again. I am using the example given in the wiki: https://wiki.contextgarden.net/Project_structure, i.e., in my component I’m linking to the product, but not to the project. Now I was expecting that the component inherits the environment set in the project via the product. The wiki currently explains: “If you tex (compile) one single component (e.g. a chapter of a book) or product (e.g. one volume of a magazine), the environment file of the project is used.” That does not seem to be the case here. Can anyone confirm this? Is this a bug or does the wiki needs to be revised?
The \product command doesn't load any files because it doesn't make any sense. Let us take a look at the following example. When you process only a single component and \product would load the parent file you're running in a problem because the parent file is now loading the previous component file etc. This would end in a loop and to prevent this \product lines are ignored. There are ways to avoid this by redefining \component etc. when the parent file is loaded but it's a mess to take care about all combinations in which files are loaded. The best thing you can do here is to load the environment file in each product and component because the file is only loaded once on the first call. When you use multiple environment files you can collect them in a project file and use \project to load only one file but this is seldom needed. %%%% begin product.tex \startproduct * \environment environment \component component_1 \component component_2 \stopproduct %%%% end product.tex %%%% begin component_1.tex \startcomponent * \environment environment ... \stopcomponent %%%% end component_1.tex Wolfgang
participants (2)
-
denis.maier@ub.unibe.ch
-
Wolfgang Schuster