\startcomponent ma-cb-en-whatever \enablemode[**en-us] \project ma-cb \startchapter[title=Miscellaneous] \startsection[title=A titlepage] \index{titlepage} \Command{\tex{startstandardmakeup}} \Command{\tex{definemakeup}} \Command{\tex{setupmakeup}} In the first example of this manual on \at{page}[inputfile] we used the command: \shortsetup{startnamemakeup} %\shortsetup{start<>makeup} % does not work This command can be used to define titlepages. Such a command is needed since title pages often have a different layout than that of the bodytext. With the command pair \type{\start ... \stopstandardmakeup} you can make up a page within the default page dimensions. A simple titlepage may look like this: \startbuffer \startstandardmakeup \blank \rightaligned{\tfd Hasselt in the 21st century} \blank \rightaligned{\tfb The future} \vfill \rightaligned{\tfa C. van Marle} \rightaligned{Hasselt, 2013} \stopstandardmakeup \stopbuffer \typebuffer In a doublesided document you have to go through some additional actions to typeset the back of the titlepage. \startbuffer \startstandardmakeup[doublesided=no] \blank \rightaligned{\tfd Hasselt in the 21st century} \blank \rightaligned{\tfb The future} \vfill \rightaligned{\tfa C. van Marle} \rightaligned{Hasselt, \currentdate[year]} \stopstandardmakeup \startstandardmakeup[page=no] \vfill \copyright \currentdate[year] This book is dedicated to the people living in Hasselt. We want to thank photographer J. Jonker for manipulating the photos in this book in such a way that readers can get a clear picture of Hasselt's future look. \stopstandardmakeup \stopbuffer \typebuffer Your own make ups can be made and set up with: \shortsetup{definemakeup} and \shortsetup{setupmakeup} Please refer to the \goto {\CONTEXTWIKI} [ url (http://wiki.contextgarden.net/Command/setupmakeup) ] for more information on the \type{\start...\stopmakeup} command. \stopsection \startsection[reference=overlays,title=Overlays] \index{overlay} The overlay mechanism gives you the opportunity to add a specific layout to a text component. When there is a background option in a \CONTEXT\ command you can use overlays. \startbuffer \defineoverlay [verticalbar] [{\blackrule[height=2cm,width=.5cm,color=red]}] \defineoverlay [horizontalbar] [{\blackrule[height=.5cm,width=12cm,color=red]}] \framed [width=12cm, height=6cm, background={color,foreground,verticalbar,horizontalbar}, offset=overlay, backgroundcolor=blue, frame=off] {\blackrule[width=12cm,height=2cm,color=white]} \stopbuffer The flag of Hasselt could be defined with framed and a number of overlays: \typebuffer This will become: \startlinecorrection \getbuffer \stoplinecorrection The pagenumber in this manual has a background with an overlay where the \type{\MPclipFive} command takes care of drawing the image with \METAPOST. \startbuffer \defineoverlay [NumberBackground] [\MPclipFive{\overlaywidth}{\overlayheight}{30pt}{5pt}] \setuppagenumbering [\location={footer,middle}, \command=\NummerCommand] \def\NummerCommand#1% {\framed [\background=NumberBackground, \frame=off, \offset=6pt] {\lower.5\dp\strutbox\hbox spread 60pt{\hss#1\hss}}} \stopbuffer \typebuffer \stopsection \startsection[reference=setups,title=Setups] \index{setups} \Command{\tex{setup}} While defining the layout of a document you can define setups with \type{\start...\stopsetups}. Setups are placed in the setup area of input file and mostly used to combine a number of commands. \startbuffer \startsetups colorize \blue \stopsetups \startsetups decolorize \black \stopsetups \setupitemize [before=\setups{colorize}, after=\setups{decolorize}] Some data on the church are: \startitemize[packed,3*broad] \sym{997} mentioned for the first time \sym{1380} destroyed by fire \sym{1466} rebuild \sym{1657} restored after shelling by enemy troops \sym{1725} struck by lightning \stopitemize \stopbuffer \typebuffer Which would result in: \start % AFO: to keep color and distance local \getbuffer \stop Another way of invoking the setups is by the \type{setups} option that comes with some \CONTEXT\ commands: \startbuffer \definestartstop[remark] \setupstartstop[remark] [before=\startframed, after=\stopframed] \startsetups important \inleftmargin [scope=local, hoffset=1em]{\bf\color[blue]{→}} \stopsetups \setupframed [align=normal, setups=important, frame=on, framecolor=blue, offset=5pt] \startremark The Stephanus Church was built in 997. After an enormous fire in 1380 it was rebuilt and that's why it has Gothic features. The rebuilding was finished in 1466.\endgraf \stopremark \stopbuffer \typebuffer This becomes: \blank \start \getbuffer \stop \stopsection \startsection[reference=variables,title=Variables] \index{variables} \Command{\tex{getvariable}} \Command{\tex{setvariables}} There is a mechanism in \CONTEXT\ that enables you to compact information in a list of variables that you can recall throughout the document. \shortsetup{setvariables} The example below shows how to use variables in defining a coverpage. \startbuffer \setvariables [cover] [set=\setups{coverpage}, student=no, teacher=yes, title=From Hasselt to America, subtitle=An Odyssey, authors=\setup{allauthors}, edition=2012, isbn=0123456789] \stopbuffer \typebuffer The moment you need the title on your cover page (or somewhere else in your document) you can summon it by: \startbuffer \getvariable{cover}{title} \stopbuffer \typebuffer \stopsection \startsection[reference=floatingblocks,title=Floating blocks] \index{floating blocks} \index{postponing a block} \Command{\tex{definefloat}} \Command{\tex{setupfloat}} \Command{\tex{setupfloats}} \Command{\tex{setupcaptions}} \Command{\tex{placeintermezzo}} A block in \CONTEXT\ is a text element, for example a table or a figure that you can process in a special way. You have already seen the use of \type{\placefigure} and \type{\placetable}. These are both examples of floating blocks. The floating mechanism is described in \in{chapter}[figures] and \in[tables]. You can define these kind of blocks yourself with: \shortsetup{definefloat} The bracket pairs are used for the name in singular and plural form. For example: \starttyping \definefloat[intermezzo][intermezzi] \stoptyping Now the following commands are available: \starttyping \placeintermezzo[][]{}{} \startintermezzotext ... \stopintermezzotext \placelistofintermezzi \completelistofintermezzi \stoptyping The newly defined floating block can be set up with: \shortsetup{setupfloat} You can set up the layout of floating blocks with: \shortsetup{setupfloats} You can set up the numbering and the labels with: \shortsetup{setupcaption} These commands are typed in the set up area of your input file and will have a global effect on all floating blocks. \setupframedtexts [width=.8\makeupwidth, background=color, backgroundcolor=gray, corner=round, framecolor=blue, rulethickness=2pt] \startbuffer \setupfloat[intermezzo][location=middle] \setupcaption[location=bottom,headstyle=boldslanted] \placeintermezzo{An intermezzo.} \startframedtext At the beginning of this century there was a tram line from Zwolle to Blokzijl via Hasselt. Other means of transport became more important and just before the second world war the tram line was stopped. Nowadays such a tram line would have been very profitable. \stopframedtext \stopbuffer \typebuffer \start \getbuffer \stop The framed texts inherits its layout from the example \at{page}[block:bridge]. Tables or figures may take up a lot of space. The placing of these text elements can be postponed till the next page break. This is done with: \type{\start ... \stoppostponing}: \startbuffer \startpostponing \placefigure {A postponed figure.} {\externalfigure[ma-cb-16][width=\textwidth]} \stoppostponing \stopbuffer \typebuffer The figure will be placed at the top of the next page and will cause minimal disruption of the running text. \getbuffer \stopsection % \startsection[reference=textblocks,title=Text blocks] % AFO 2013: weggehaald, wordt toch nooit gebruikt % \index{text blocks} % \Command{\tex{defineblock}} % \Command{\tex{useblocks}} % \Command{\tex{hideblocks}} % \Command{\tex{setupblock}} % \stopsection \startsection[title=Storing text for later use] \index{storing text} \Command{\tex{startbuffer}} \Command{\tex{getbuffer}} \Command{\tex{typebuffer}} \Command{\tex{savebuffer}} \Command{\tex{setupbuffer}} You can store information temporarily for future use in your document with: \shortsetup{startbuffer} For example: \starttyping \startbuffer[visit] If you want to see what Hasselt has in store you should come and visit it some time. If you take this manual with you, you will recognise some locations. \stopbuffer \getbuffer[visit] \stoptyping With \type{\getbuffer[visit]} you recall the stored text. The logical name is optional. With \type{\typebuffer[visit]} you get back the typeset version of the content of the buffer. Buffers are set up with: \shortsetup{setupbuffer} You can also save a buffer to an external file with: \shortsetup{savebuffer} If you want to save the buffer \type{visit} in an external file called \type{myfile-sightseeing.tmp} you type: \starttyping \savebuffer[visit][sightseeing] \stoptyping \stopsection \startsection[title=Lines] \index{lines} \Command{\tex{hairline}} \Command{\tex{starttextrule}} \Command{\tex{thinrule}} \Command{\tex{thinrules}} \Command{\tex{setupthinrules}} \Command{\tex{underbar}} \Command{\tex{overstrikes}} \Command{\tex{periods}} There are many comands to draw lines. For a single line you type: \shortsetup{hairline} or: \shortsetup{thinrule} For more lines you type: \shortsetup{thinrules} Text in combination with lines is also possible: \startbuffer \starttextrule{Hasselt -- Amsterdam} If you draw a straight line from Hasselt to Amsterdam you would have to cover a distance of almost 145 \unit{Kilo Meter}. \stoptextrule If you draw two straight lines from Hasselt to Amsterdam you would have to cover a distance of almost 290 \unit{Kilo Meter}. Amsterdam \thinrules[n=3] Hasselt \stopbuffer \getbuffer The code of this example is: \typebuffer You always have to be careful in drawing lines. Empty lines around \type{\thinrules} must not be forgotten and the vertical spacing is always a point of concern. You can set up line spacing with: \shortsetup{setupthinrules} There are a few complementary commands that might be very useful. \shortsetup{setupfillinrules} These commands are introduced in the examples below: \startbuffer \setupfillinrules[width=2cm] \setupfillinlines[width=3cm] \fillinrules[n=1]{\bf name} \fillinrules[n=3]{\bf adress} \fillinline{Can you please state the \underbar{number} of houses in Hasselt.} \par Strike out \overstrikes{Hasselt in this text}\periods[18] \stopbuffer \typebuffer This will become: \getbuffer These commands are used in questionaires. Text that is struck out or underlined will not be hyphenated. In \in{section}[overlays] you have already seen the use of the \type{\blackrule} command that can be set up with: \shortsetup{setupblackrules} \startbuffer \blank \blackrule[width=\textwidth,height=1cm,color=blue] \stopbuffer \typebuffer This will result in a rather fat line: \getbuffer \stopsection \startsection[title=Super- and subscript in text] \index{subscript} \index{superscript} \Command{\tex{low}} \Command{\tex{high}} \Command{\tex{lohi}} \startbuffer Hasselt's economy has known its \high{ups} and \low{downs}. Since the nineties of the last century its economy is \lohi{so}{so}. \stopbuffer \getbuffer This ugly text was made with \type{\low{}}, \type{\high{}} and \type{\lohi{}{}}. The text was placed between the curly braces. \stopsection \startsection[title=Date] \index{date} \Command{\tex{currentdate}} You can invoke the system date in your text with: \shortsetup{currentdate} With \type{\currentdate[day]}, \type{\currentdate[month]} and \type{\currentdate[year]} you can invoke day, month and year separately. \stopsection \startsection[title=Rotating text, figures and tables] \index{rotating} \Command{\tex{rotate}} Sometimes you may want to rotate text or images. You can rotate text and other objects with: \shortsetup{rotate} The first bracket pair is optional. Within that bracket pair you specify the rotation: \type{rotation=90}. The curly braces contain the text or object you want to rotate. \startbuffer Hasselt got its municipal rights in 1252. From that time on it had the \rotate[rotation=90]{right} to use its own seal on official documents. This seal showed Holy Stephanus known as one of the first Christian martyrs, and was the \rotate[rotation=270]{patron} of Hasselt. After the Reformation the seal was redesigned and Stephanus lost his \quote{holiness} and was from that time on depicted without his aureole. \stopbuffer \typebuffer This results in a very ugly paragraph: \getbuffer You can rotate an image just as easily: % \placetable[rotate][]{}{} \startbuffer \placefigure [][fig:rotation] {The 180 \unit{Degrees} rotated fishing port (de Vispoort).} {\rotate[rotation=180]{\externalfigure[ma-cb-15][width=10cm]}} \stopbuffer \typebuffer You can see in \in{figure}[fig:rotation] that it is not always clear what you get when you rotate. \getbuffer We can set up rotating with: \shortsetup{setuprotate} In the example above you could also rotate image and caption by: \startbuffer \placefigure [180][fig:rotation] {The 180 \unit{Degrees} rotated fishing port (de Vispoort).} {\externalfigure[ma-cb-15][width=10cm]} \stopbuffer \typebuffer \stopsection \startsection[title=Scaling text] \index{scaling} \Command{\tex{scale}} \Command{\tex{setupscale}} For some obscure reasons you may want to scale text. You can scale text and other objects with: \shortsetup{scale} \startbuffer After 1810 the Dedemsvaart brought some prosperity to Hasselt. All ships went through the canals of Hasselt and the \scale[factor=10]{shops} on both sides of the canals \scale[factor=10]{prospered}. \stopbuffer \typebuffer Which will result in: \getbuffer \stopsection \startsection[title=Space] \index{space} \index{tilde} \index{non-breakable space} \Command{\tex{space}} \Command{\tex{fixedspaces}} The command \type{\space} will produce a space. In \CONTEXT\ the \type{~} (tilde) is a non-breakable space. \startbuffer The Ridderstraat in Hasselt is about 160~m long and 5 to 6~m wide with houses on both sides of the street. \stopbuffer \typebuffer Tildes can also be used to align numbers in a row. The command \type{\fixedspaces} will give the tilde the fixed width of a number. \startbuffer \fixedspaces \bTABLE[frame=off] \bTR \bTD Ridderstraat \eTD \bTD 160 m \eTD \eTR \bTR \bTD Prinsengracht \eTD \bTD 240 m \eTD \eTR \bTR \bTD Kalverstraat \eTD \bTD ~60 m \eTD \eTR \bTR \bTD Meestersteeg \eTD \bTD ~45 m \eTD \eTR \eTABLE \stopbuffer \typebuffer \stopsection \startsection[title=Carriage return] \index{carriage return} \Command{\tex{crlf}} \Command{\tex{startlines}} A new line can be enforced with: \shortsetup{crlf} As a \CONTEXT\ user you should use this command only as a last resort. When a number of lines should be followed by a {\em carriage return and line feed} you can use: \shortsetup{startlines} \starttyping \startlines . . . \stoplines \stoptyping \startbuffer On a wooden panel in the town hall of Hasselt you can read: \startlines Heimelijcken haet eigen baet jongen raet Door diese drie wilt verstaen is het Roomsche Rijck vergaen. \stoplines This little rhyme contains a warning for the magistrates of Hasselt: don't allow personal benefits or feelings to influence your wisdom in decision making. \stopbuffer \typebuffer This will become: \getbuffer In a few commands new lines are generated by \type{\\}. For example if you type \type{\inmargin{in the\\margin}} then the text will be divided over two lines. \stopsection \startsection[title=Hyphenation] \index{hyphenation} \index{language} \Command{\tex{mainlanguage}} \Command{\tex{language}} \Command{\tex{nl}} \Command{\tex{en}} When writing multi-lingual texts you have to be aware of the fact that hyphenation may differ from one language to another. To activate a language you type: \shortsetup{mainlanguage} Between the brackets you fill in \type{af}, \type{ca}, \type{cs}, \type{cs}, \type{da}, \type{de}, \type{en}, \type{fi}, \type{fr}, \type{it}, \type{la}, \type{nl}, \type{nb}, \type{nn}, \type{pl}, \type{pt}, \type{es}, \type{sv} and \type{tr} for afrikaans, catalan, czech, slovak, danish, german, english, finnish, french, italian, latin, dutch, bokmal, nnynorsk, polish, portuguese, spanish, swedish and turkish respectively. To change from one language to another you can use: \starttyping \language[nl] \language[en] \language[de] \language[fr] \language[sp] ... \stoptyping or the shorthand versions: \starttyping \nl \en \de \fr \sp ... \stoptyping An example: \startbuffer If you want to know more about Hasselt, the best book to read is probably \quote{\nl Uit de geschiedenis van Hasselt} by F.~Peereboom. \stopbuffer \typebuffer \getbuffer If a word is wrongly hyphenated you can define the hyphenation points yourself. This is done in the set up area of your input file: \startbuffer \hyphenation{his-to-ry} \stopbuffer \typebuffer Note that the language setting is also responsible for the way quotes are placed around quotes and quotations (see \in{section}[quotations]). In some languages (like Dutch) compound words are used that are connected with a hyphen. The separate words have to be hyphenated correctly. In order to do that you can use \type{||}. \startbuffer If your looking for an English||speaking person in Hasselt you should go to the Tourist Information Office. There you may expect to find full|| and part||time employees who are fluent in German, English, French and of course Dutch. \stopbuffer \typebuffer This will become: \getbuffer The double \type{||} takes care of the hyphen and the correct hyphenation of the separate words. Also note the suspended compounds. \stopsection \startsection[title=Charts] \index{chart} \Command{\tex{FLOWchart}} To enable you to draw flow diagrams \CONTEXT\ contains the core module \type{chart}. A simple organogram may look like this: \startbuffer \setupFLOWcharts [width=9\bodyfontsize, height=2\bodyfontsize, dx=1\bodyfontsize, dy=1\bodyfontsize] \setupFLOWlines [arrow=no] \startFLOWchart[organogram] \startFLOWcell \shape {action} \name {01} \location {2,1} \text {Zwartewaterland} \connect [bt]{02} \connect [bt]{03} \connect [bt]{04} \stopFLOWcell \startFLOWcell \shape {action} \name {02} \location {1,2} \text {Hasselt} \stopFLOWcell \startFLOWcell \shape {action} \name {03} \location {2,2} \text {Zwartsluis} \stopFLOWcell \startFLOWcell \shape {action} \name {04} \location {3,2} \text {Genemuiden} \stopFLOWcell \stopFLOWchart \stopbuffer \midaligned{\getbuffer\FLOWchart[organogram]} This diagram is defined with the commands below: \typebuffer It is of good practice to define your setups and flow diagrams in separate definition files (environments). \startbuffer \FLOWchart[organogram] \stopbuffer The flowchart can then be invoked by: \typebuffer \stopsection \startsection[title=Comment in input file] \index{comment} \index[percent]{\% in input file} All text between \type{\start...\stoptext} will be processed while running \CONTEXT. Sometimes however you may have text fragments you don't want to be processed or you want to comment on your \CONTEXT\ commands. If you preceed your text with the percentage sign \type{%} it will not be processed. \startbuffer % In very big documents you can use the command \input for % different files. % % For example: % % \input hass01.tex % chapter 1 on Hasselt % \input hass02.tex % chapter 2 on Hasselt % \input hass03.tex % chapter 3 on Hasselt \stopbuffer \typebuffer When you delete the \type{%} before \type{\input} the three files will be processed. The comment describing the contents of the files will not be processed. \stopsection \startsection[title=Notes] \index{note} \Command{\tex{startcomment}} If you want your comment in the input file visible as a 'note' in the PDF file you can use: \shortsetup{startcomment} \startbuffer \startcomment The image of the Vispoort should be in color. \stopcomment \stopbuffer \typebuffer The command will produce a sticky note in the PDF. The note is only visible when interactivity is set with \type{\setupinteraction} and the comment with \type{\setupcomment}. \stopsection \startsection[title=Hiding text] \index{hiding text} \Command{\tex{starthiding}} Text can be hidden with: \shortsetup{starthiding} The text between \type{\start ... \stophiding} will not be processed. \stopsection \startsection[title=Input of another {\tt tex} file] \index{input other \TEX--files} \Command{\tex{input}} In a number of situations you may want to insert other \TEX\ files in your input file. For example, sometimes it is more efficient to specify \CONTEXT\ sources in more than one file in order to be able to partially process your files. Another file (with the name \type{another.tex}) can be inserted by: \starttyping \input another.tex \stoptyping The extension is optional so this will work too: \starttyping \input another \stoptyping The command \type{\input} is a \TEX\ command. For a more systematic approach in maintaining your documents \CONTEXT\ supports a project structure with commands like \type{\start...\stopenvironment} and \type{\start...\stopproduct}. Please refer to the magazine \goto {\em Project structure} [ url(thisway:proj-struc) ] for more information. \stopsection \startsection[title=XML (eXtended Markup Language)] \index{xml} \index{mathml} \index{openmath} Normally you code your document with \CONTEXT\ commands so you can tell \CONTEXT\ what to do with the coded text elements. A more rigid way to code your content is \XML\ (eXtended Markup Language) which enables you to have more control over your content (scripting, xslt, validation). A simple \XML\ coded document could look like this: \startbuffer
Hasselt in winter

In winter scating is a very popular sport in Hasselt. All over Hasselt the frozen canals offer children a great play ground.

...

\stopbuffer \typebuffer \CONTEXT\ is able to deal with \XML\ directly without underlying XML2TEX conversions. Please refer to the manual \goto {Dealing with XML} [ url (manual:xml) ] for more information on how to process \XML\ documents. \CONTEXT\ also supports \MATHML\ (presentational and content markup) and \OPENMATH\ with which math expressions can be coded in \XML\ documents. \stopsection \stopchapter \stopcomponent