diff options
Diffstat (limited to 'Master/texmf-dist/doc/context/sources/general/magazines/mag-1101-mkiv.tex')
-rw-r--r-- | Master/texmf-dist/doc/context/sources/general/magazines/mag-1101-mkiv.tex | 254 |
1 files changed, 254 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/context/sources/general/magazines/mag-1101-mkiv.tex b/Master/texmf-dist/doc/context/sources/general/magazines/mag-1101-mkiv.tex new file mode 100644 index 00000000000..f56dbfe3915 --- /dev/null +++ b/Master/texmf-dist/doc/context/sources/general/magazines/mag-1101-mkiv.tex @@ -0,0 +1,254 @@ +% language=uk + +% author : Hans Hagen +% copyright : PRAGMA ADE & ConTeXt Development Team +% license : Creative Commons Attribution ShareAlike 4.0 International +% reference : pragma-ade.nl | contextgarden.net | texlive (related) distributions +% origin : the ConTeXt distribution +% +% comment : Because this manual is distributed with TeX distributions it comes with a rather +% liberal license. We try to adapt these documents to upgrades in the (sub)systems +% that they describe. Using parts of the content otherwise can therefore conflict +% with existing functionality and we cannot be held responsible for that. Many of +% the manuals contain characteristic graphics and personal notes or examples that +% make no sense when used out-of-context. +% +% comment : Some chapters might have been published in TugBoat, the NTG Maps, the ConTeXt +% Group journal or otherwise. Thanks to the editors for corrections. Also thanks +% to users for testing, feedback and corrections. + +\usemodule[mag-01,abr-02,job-01] + +\startbuffer[abstract] + For a long time already \CONTEXT\ provides a way to organize your document(s) + in a structure that permits processing of components. This mechanism has been + upgraded a bit in \MKIV\ and here we will summarize the status quo. +\stopbuffer + +\startdocument + [title={Project Structure}, + author=Hans Hagen, + affiliation=PRAGMA ADE, + date=July 2011, + number=1101 \MKIV] + +A regular document has a simple structure. When we talk about structure here, we +only refer to the overall document structure. + +\startscite[tex] +% style specification + +\starttext + % the document content +\stoptext +\stopscite + +For practical reasons we delay initial font loading till the first \type +{\starttext} so that one can overload the defaults. This means that when no +bodyfont is specified, and {\starttext} is not given, there will be hardly any +visible output. + +An example of a more elaborate structure is the following: + +% \enabletrackers[context.trace] + +\startscite[tex] +\environment environment-1 +\environment environment-2 + +\startproduct product-1 + + \component component-1.tex + \component component-2.mkiv + \component component-3.cld + + \component component-1 + \component component-2 + +\stopproduct +\stopscite + +Here we have a specific product, made up out of components and using a few +environment files that specify the style. By default we assume tex files, but you +can be specific and use known suffixes. A less abstract example is the following: + +\startscite[tex] +\environment my-fonts +\environment my-style +\environment my-abbreviations +\environment my-urls + +\startproduct manual + + \component titlepage + \component contents + + \component chapter-1 + \component chapter-2 + \component chapter-3 + + \component index + +\stopproduct +\stopscite + +You can process components and products independently but be aware that you won't +get cross document (or chapter) references then. + +There is one more level: projects. + +\startscite[tex] +\environment my-fonts +\environment my-style +\environment my-abbreviations +\environment my-urls + +\startproject documentation + + \product manual + \product faqs + +\stopproject +\stopscite + +This means that we can also define the manual as follows: + +\startscite[tex] +\project documentation + +\startproduct manual + + \component titlepage + \component contents + + \component chapter-1 + \component chapter-2 + \component chapter-3 + + \component index + +\stopproduct +\stopscite + +Environments are only loaded once and when you run a component or product that +refers to environments or when environments are picked up from an encapsulating +structure you need to be aware of the order of loading. + +The names given after the start command are not that important but the names +after the simple commands refer to filenames, so in the next case there need to +be a file called \type {index.tex}: + +\startscite[tex] +\component index +\stopscite + +Equally valid is: + +\startscite[tex] +\component[index] +\stopscite + +Subpaths are also permitted: + +\startscite[tex] +\component manual/index +\stopscite + +The meaning of the mentioned commands is not frozen but adapts itself to the +current situation. A file can be processed many times, only once or never. The +following table shows what will happen when: + +\ctxlua{moduledata.jobs.showprocessors()} + +When you load an environment or component, you can specify it to be a \LUA\ file +by using the \type {lua} or \type {cld} suffix. In that case the file will be +loaded in the right way. From the table you can deduce that the following is also +valid: + +\startscite[tex] +\environment mystyle + +\starttext + % the content +\stoptext +\stopscite + +combined with: + +\startscite[tex] +\startenvironment mystyle + % the definitions +\stopenvironment +\stopscite + +This is about the simplest structure that you can use that still gives a bit of +abstraction. + +In addition to files in a project structure, you can load predefined modules. + +\startscite[tex] +\usemodule[mathml] +\stopscite + +or more specific: + +\startscite[tex] +\usemodule[x][mathml] +\stopscite + +Which limits the lookup to the \type {x} namespace. The first match quits the +search and the order of lookups is: \type {mkvi}, \type {mkiv}, \type {tex}, +\type {cld}, \type {lua}. It follows that modules can be \LUA\ files. + +When you use structure in the files you will find an overview in the log file. +This looks as follows: + +\starttyping +system > structure > start used structure + +used structure > text: product-1 +used structure > environment: environment-1 +used structure > environment: environment-2 +used structure > product: product-1 +used structure > component: component-1 +used structure > component: component-2 +used structure > component: component-1 +used structure > component: component-2 + +system > structure > stop used structure +\stoptyping + +Some basic logging on the console can be enabled with: + +\startscite[tex] +\enabletrackers[system.jobfiles] +\stopscite + +A new command pair is the following: + +\starttyping +\startdocument[settings] + structured content +\stopdocument +\stoptyping + +The settings are key|/|value pairs and the values can be retrieved using: + +\starttyping +\documentvariable{key} +\stoptyping + +You can set \type {before} and \type {after} parameters and by default these are +set up as follows: + +\starttyping +\setvariables + [document] + [before=\directsetup{document:start}, + after=\directsetup{document:stop}] +\stoptyping + +You can for instance define these setups to generate a title page (using document +variables) and a colophon page. In the future more functionality might be added. + +\stopdocument |