Changes

Jump to navigation Jump to search
436 bytes added ,  19:10, 4 October 2018
move \product and \project below \start...
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.
In addition, you have to keep in mind that when compiling a product or component file, ConTeXt goes "up" to the project file and compiles everything it finds in there that is not a <{{cmd>|product</cmd> }} (e.g. table of content, sectioning commands, text, <{{cmd>|component</cmd> }} etc.). So all the things on project level have to be put inside a <{{cmd>|product</cmd>}}, otherwise they will show up in the individual components (or products), too. That also makes it problematic to use <{{cmd>|component</cmd> }} directly inside a project file, i.e. you '''have ''' to use <{{cmd>|product</cmd>}}, you can't skip it. While you can compile ("tex") products and single components, the project is not intended for compiling; trying might lead to infinite inclusion loops and the error message "TeX capacity exceeded".
==File and directory setup==
\product prd_year2004-03
\product prd_year2004-04
 
\product tableofcontent
\stopproject
\startcomponent c_editorial
\product prd_year2004-01 % but you can use it in other products anyway
\project project_mymag
\title{Editorial}
</texcode>
(This is untested. I assume that ConTeXt automatically looks automatically into parent directories.)
==Command behaviour==
Depending on the (Within a <code>\start-...\stop) ...</code> environment, project, product, and environment a command will either load a file definition files are loaded only once, or many times or not while component files are loaded at allevery mention. In addition, certain loading commands are ignored inside certain environments -- for example, it makes no sense to load a <code>\component</code> inside a <code>\startenvironment</code> block. The following table specifies what happens when: below gives an overview.
{|
| || <{{cmd>|project</cmd> }} || <{{cmd>|environment</cmd> }} || <{{cmd>|product</cmd> }} || <{{cmd>|component</cmd> }}
|-
| <{{cmd>|starttext</cmd> }} || once &mdash; || once || once &mdash; || many at every mention
|-
| <{{cmd>|startproject</cmd> }} || once &mdash; || none once || once || none &mdash;
|-
| <{{cmd>|startenvironment</cmd> }} || once &mdash; || none once || once &mdash; || none &mdash;
|-
| <{{cmd>|startproduct</cmd> }} || once || once || once &mdash; || none at every mention
|-
| <{{cmd>|startcomponent</cmd> }} || once || once || once &mdash; || none at every mention
|}
==See also==
 
Hans Hagen (2011) [http://pragma-ade.com/general/magazines/mag-1101.pdf Project Structure], ConTeXt magazine #1101.

Navigation menu