summaryrefslogtreecommitdiff
path: root/tex/context/modules/mkiv/s-tugboat-columns.mkiv
diff options
context:
space:
mode:
authorContext Git Mirror Bot <phg42.2a@gmail.com>2016-03-02 17:15:08 +0100
committerContext Git Mirror Bot <phg42.2a@gmail.com>2016-03-02 17:15:08 +0100
commit62676780b4363d25d7a247f39484b1e4a34ef7b7 (patch)
tree8678e13eee0b805e7c972b9885f21b9747493ee4 /tex/context/modules/mkiv/s-tugboat-columns.mkiv
parent2a958dcf22dd71ba1e4408648676d44c16d7e3bf (diff)
downloadcontext-62676780b4363d25d7a247f39484b1e4a34ef7b7.tar.gz
2016-03-02 16:58:00
Diffstat (limited to 'tex/context/modules/mkiv/s-tugboat-columns.mkiv')
-rw-r--r--tex/context/modules/mkiv/s-tugboat-columns.mkiv556
1 files changed, 556 insertions, 0 deletions
diff --git a/tex/context/modules/mkiv/s-tugboat-columns.mkiv b/tex/context/modules/mkiv/s-tugboat-columns.mkiv
new file mode 100644
index 000000000..f8cace1e9
--- /dev/null
+++ b/tex/context/modules/mkiv/s-tugboat-columns.mkiv
@@ -0,0 +1,556 @@
+%D \module
+%D [ file=t-tugboat
+%D version=$Id: t-tugboat.tex 91 2011-08-14 16:48:04Z karl $
+%D title=\CONTEXT\ Style File,
+%D subtitle=\TUGBOAT\ base style,
+%D author={Hans Hagen, Aditya Mahajan, \unknown},
+%D date=\currentdate,
+%D copyright=Public Domain]
+
+%D This file is derived t-tugboat by Aditya Mahajan which in turn is derived
+%D from older files. Here we use columnsets.
+
+\usemodule[newcolumnsets]
+
+%D We store the information about the article in variables.
+
+
+\setvariables
+ [tugboat]
+ [type=article,
+ %
+ year=1900,
+ volume=0,
+ number=0,
+ page=1001,
+ %
+ title=ConTeXt style for TUGboat,
+ subtitle=,
+ keywords=,
+ author=T. Boat,
+ address={Harbour Master KB \\ Harbour St. 1 \\ 8061GH Hasselt NL},
+ email={tugboat@tug.org}]
+
+%D \TUGBOAT\ uses slightly different interline space than the default. So we change
+%D the interline space.
+
+\definebodyfontenvironment [8pt] [interlinespace=9.5pt, big=9pt, small=7pt]
+\definebodyfontenvironment [9pt] [interlinespace=11pt, big=10pt, small=8pt]
+\definebodyfontenvironment [10pt] [interlinespace=12pt, big=12pt, small=9pt]
+\definebodyfontenvironment [12pt] [interlinespace=14pt, big=14.4pt,small=10pt]
+\definebodyfontenvironment [14.4pt] [interlinespace=18pt, big=14.4pt,small=12pt]
+
+%D We us e italic rather than slanted for emphasis.
+
+\setupbodyfontenvironment
+ [default]
+ [em=italic]
+
+%D \TUGBOAT\ uses Computer Modern fonts, and \CONTEXT\ uses Latin Modern by default.
+%D So, we just specify the font size.
+
+\setupbodyfont
+ [10pt]
+
+%D We break after these chars in urls, not before.
+
+\sethyphenatedurlafter /
+\sethyphenatedurlafter .
+\sethyphenatedurlafter _
+
+%D The original layout used in the \LATEX\ style for \TUGBOAT\ is a bit ambiguous.
+%D It uses low|-|level \TEX\ syntax, rather than changing the layout in a human
+%D understandable way (for example, by using the \mono{geometry} package. I have
+%D tried to translate it to \CONTEXT\ as far as I understand.
+
+\setuppapersize
+ [letter]
+ [letter]
+
+\setuplayout
+ [topspace=3.8pc,% was 3.5pc
+ header=1pc,
+ headerdistance=1.5pc,
+ height=middle,
+ footerdistance=2pc,
+ footer=1pc,
+ bottomspace=3pc,
+ %
+ backspace=6pc,
+ width=middle,
+ cutspace=6pc,
+ %
+ margin=4pc,
+ margindistance=1pc]
+
+\setupcolumnset
+ [distance=1.5pc]
+
+\setuppagenumbering
+ [location=,
+ alternative=doublesided]
+
+%D In \TUGBOAT\ different articles are glued together to form the final journal, so
+%D we do not want each article to occupy even number of pages.
+
+\installpagebreakhandler {last} {}
+
+%D We use automatic indentation control, that is: no indentation after titles and
+%D skips.
+
+\setupindenting
+ [20pt,yes]
+
+%D We do not want indentation after lists.
+
+\setupenumerations [indentnext=no]
+\setupdescriptions [indentnext=no]
+
+%D And these. We typeset itemizations ragged right.
+
+\setupitemgroup
+ [itemize]
+ [indentnext=no,
+ align=right]
+
+%D We align them at the paragraph indentation and pack them by default.
+
+\setupitemgroup
+ [itemize]
+ [each]
+ [margin=1pc,
+ width=1em,
+ distance=0pt]
+
+\setupitemgroup
+ [itemize]
+ [1]
+ [packed]
+
+%D We follow the \TUGBOAT\ style for sections. I do not know if \type {align=right}
+%D also disables hyphenation. Lets wait and see on this. Rest all is straight
+%D forward. It took me a while to realize that in \LATEX\ \type {\@startsection} the
+%D absolute value of before skip (fourth argument) is important and not the sign.
+
+\setuphead
+ [section,subsection,subsubsection,
+ subject,subsubject,subsubsubject]
+ [style=bold,
+ align=right,
+ before={\blank[8pt]},
+ after={\blank[4pt]}]
+
+%D We define a logical skip. This is equal to the \tex{topsep} in the normal style,
+%D and most environments should have this skip.
+
+\definevspacingamount[tugsmallamount] [3pt plus 1pt minus 1pt][.5\lineheight]
+\definevspacingamount[tugmediumamount][9pt plus 3pt minus 3pt][.5\lineheight]
+\definevspacingamount[tuglargeamount] [10pt plus 4pt minus 4pt][\lineheight]
+
+\defineblank[tugblank] [tugsmallamount]
+\defineblank[tugsmall] [tugsmallamount]
+\defineblank[tugmedium][tugmediumamount]
+\defineblank[tuglarge] [tuglargeamount]
+\defineblank[tughalf] [halfline]
+
+\setupblank
+ [tugblank]
+
+\setupitemize
+ [1]
+ [before={\blank[tugblank]},
+ after={\blank[tugblank]},
+ inbetween={\blank[tugblank]}]
+
+\setuplines
+ [before={\blank[tugblank]},
+ after={\blank[tugblank]},
+ inbetween={\blank[tugblank]}]
+
+%D \TUGBOAT\ uses a smaller font size for verbatim typesetting.
+
+\setuptyping
+ [option=none,
+ before={\blank[tugblank]\switchtobodyfont[small]},
+ after={\blank[tugblank]}]
+
+%D Not entirely a la \TUGBOAT:
+
+\unexpanded\def\MyFootNoteRule
+ {\hrule width 5pc height .4pt depth 0pt\relax \kern \strutdepth}
+
+\setupfootnotes
+ [bodyfont=8pt,
+ location=columns,
+ rule=on,
+ rulecommand=\MyFootNoteRule]
+
+\setupnotations
+ [location=joinedup,
+ width=fit,
+ headstyle=normal,
+ distance=.5em]
+
+%D We define a standard description and enumeration environment.
+
+\definedescription
+ [description]
+ [location=hanging,
+ width=broad,
+ before={\blank[tugblank]},
+ after={\blank[tugblank]}]
+
+\defineenumeration
+ [enumeration]
+ [location=hanging,
+ width=broad,
+ before={\blank[tugblank]},
+ after={\blank[tugblank]}]
+
+%D The bib does not handle urls nicely. So we provide a stop gap solution.
+
+\definereferenceformat
+ [cite]
+ [left={[},
+ right={]}]
+
+\defineitemgroup
+ [bibliography]
+ [levels=1]
+
+\setupitemgroup
+ [bibliography]
+ [symbol=n,
+ left={[},
+ right={]},
+ width=1.5em,
+ stopper=,
+ itemalign=flushright,
+ inbetween={\blank[small]}]
+
+%D Instead of color, we use weighted gray scales:
+
+\setupcolors
+ [conversion=always]
+
+%D English it is.
+
+\mainlanguage
+ [en]
+
+%D We define some logical skips
+
+\defineblank [tugbefore] [big]
+\defineblank [tuginbetween][big]
+\defineblank [tugafter] [tugbefore]
+
+%D Some real macros:
+
+\unexpanded\def\StartAbstract
+ {\dostartbuffer[abstract][StartAbstract][StopAbstract]}
+
+\startsetups tugboat:abstract:setup
+
+ \setuptolerance
+ [horizontal, tolerant]
+
+ \setupnarrower
+ [before={\blank[tughalf]},
+ after={\blank[tuglarge]},
+ middle=4.875pc]
+
+\stopsetups
+
+%D Headers and footers are different for normal issues and proceedings.
+
+\startsetups tugboat:banner:text:article
+
+% {\sl TUGboat},\space
+% Volume \getvariable{tugboat}{volume}\space
+% (\getvariable{tugboat}{year}),\space
+% No.\space\getvariable{tugboat}{number}
+
+\stopsetups
+
+\def\postissno{Proceedings of the \tubyear\ Annual Meeting}
+
+\startsetups tugboat:banner:text:proceedings
+
+ \setups[tugboat:banner:text:article]
+ \thinspace\emdash\thinspace
+ \postissno
+
+\stopsetups
+
+\startsetups tugboat:banner:setup:article
+
+ \setupheadertexts
+ [\setups{tugboat:banner:text:article}]
+ [pagenumber]
+
+% There are no footers in regular articles
+%
+% \setupfootertexts
+% [][\getvariable{tugboat}{author}]
+% [\getvariable{tugboat}{title}][]
+
+\stopsetups
+
+\startsetups tugboat:banner:setup:proceedings
+
+ \setupheadertexts
+ [][\getvariable{tugboat}{title}]
+ [\getvariable{tugboat}{author}][]
+
+ \setupfootertexts
+ [\setups{tugboat:banner:text:proceedings}]
+ [pagenumber]
+
+\stopsetups
+
+%D Article is default so,
+
+\setups[tugboat:banner:setup:article]
+
+%D It all starts here:
+
+\unexpanded\def\StartArticle{\directsetup{tugboat:\getvariable{tugboat}{type}:start}}
+\unexpanded\def\StopArticle {\directsetup{tugboat:article:stop}}
+
+\startsetups tugboat:introduction:article
+
+ \start
+ \unexpanded\def\\{\unskip\space\&\space\ignorespaces}
+ \hbox{\indent\getvariable{tugboat}{author}}
+ \par
+ \stop
+
+\stopsetups
+
+\startsetups tugboat:introduction:proceedings
+
+ \blank[20pt]
+
+ \start
+ \switchtobodyfont[12pt]
+ \def\\{\unskip\space\&\space\ignorespaces}
+ \getvariable{tugboat}{author}
+ \par
+ \stop
+
+ \start
+ \switchtobodyfont[9pt]
+ \unexpanded\def\\{\unskip,\space\ignorespaces}
+ \getvariable{tugboat}{address}
+ \par
+ \start
+ \tt
+ \getvariable{tugboat}{email}
+ \stop
+ \par
+ \stop
+
+\stopsetups
+
+\startsetups tugboat:columns:presets
+
+ % balancing data (heights)
+
+\stopsetups
+
+\startsetups tugboat:article:start
+
+ \starttext
+
+ \setups{tugboat:columns:presets}
+
+ \setups{tugboat:banner:setup:\getvariable{tugboat}{type}}
+
+ \startcolumnset
+
+ \setupheadertexts
+ [\setups{tugboat:banner:text:article}]
+ [pagenumber]
+
+ \setuppagenumber
+ [number=\getvariable{tugboat}{page}]
+
+ \snaptogrid \vbox \bgroup
+ \forgetall
+ \hrule height .6pt
+ \blank[halfline]
+ \start
+ \let\\=\par
+ \start
+ \bf
+ \getvariable{tugboat}{title}
+ \stop
+ \par
+ \blank[halfline]
+ \hskip20pt\getvariable{tugboat}{author}
+ \stop
+
+ \blank[line]
+
+ \doiftext {\getbuffer[abstract]} {
+ \let\\=\endgraf
+ \setups[tugboat:abstract:setup]
+ \startsubject[title={Abstract}]
+ \getbuffer[abstract]
+ \stopsubject
+ }
+ \egroup
+
+\stopsetups
+
+\startsetups tugboat:proceedings:start
+
+ \starttext
+
+ \setups{tugboat:banner:setup:\getvariable{tugboat}{type}}
+
+ \setupheader
+ [state=empty]
+
+ \setuppagenumber
+ [number=\getvariable{tugboat}{page}]
+
+ \snaptogrid \vbox \bgroup
+
+ \forgetall
+
+ \start
+ \switchtobodyfont[14.4pt]
+ \let\\=\par
+ \getvariable{tugboat}{title}
+ \par
+ \stop
+
+ \setups{tugboat:introduction:\getvariable{tugboat}{type}}
+
+ \blank[tugmedium]
+
+ \let\\=\par
+
+ \setups[tugboat:abstract:setup]
+
+ \midaligned{\bf Abstract}
+
+ \startnarrower[middle]
+ \getbuffer[abstract]
+ \stopnarrower
+
+ \egroup
+
+ \startcolumnset
+
+\stopsetups
+
+\def\signaturewidth{13pc}
+
+\startsetups tugboat:affiliation:article
+
+ \blank[line]
+
+ \snaptogrid \vbox \bgroup
+
+ \forgetall
+
+ \leftskip=\dimexpr\textwidth-\signaturewidth\relax
+
+ \let\\=\par
+
+ \dontleavehmode\llap {
+ $\diamond$\enspace
+ }
+ \getvariable{tugboat}{author}
+ \par
+
+ \getvariable{tugboat}{address}
+ \par
+
+ {\tt\getvariable{tugboat}{email}}
+
+ \egroup
+
+\stopsetups
+
+\startsetups tugboat:affiliation:proceedings
+
+ % nothing fancy at the end
+
+\stopsetups
+
+\startsetups tugboat:article:stop
+
+ \setups{tugboat:affiliation:\getvariable{tugboat}{type}}
+
+ \blank[line]
+
+ \startpacked
+ \placenote[endnotes]
+ \stoppacked
+
+ \stopcolumnset
+
+ \page
+
+ \stoptext
+
+\stopsetups
+
+%D Normal word spacing, really?
+
+\setuptolerance
+ [strict]
+
+%D Use this in documents:
+
+% \setuptolerance
+% [verytolerant,stretch]
+
+%D Logos, abbreviations (load a local file if needed).
+
+\usemodule[abr-03]
+
+% \unexpanded\def\Dash {\unskip\thinspace\emdash\thinspace\ignorespaces}
+% \unexpanded\def\slash{/\penalty\zerocount\hskip\zeropoint\relax} % |/|
+
+%D Language stuff.
+
+\hyphenation{Post-Script data-base data-bases}
+
+\setuplanguage
+ [lefthyphenmin=2,
+ rightthyphenmin=3]
+
+%D A hack to read tugboat.dates settings.
+
+\newcount\issueseqno
+
+\def\tubyear{1234}
+\def\tubvol {5}
+\def\tubnum {6}
+
+\def\issyear #1.{\def\tubyear{#1}}
+\def\vol #1, #2.{\def\tubvol {#1}%
+ \def\tubnum {#2}}
+
+%D Good bye.
+
+\continueifinputfile{s-tugboat-columns.mkiv}
+
+\StartArticle
+
+ \StartAbstract
+ \input bryson
+ \StopAbstract
+
+ \dorecurse{30}{\input ward \par} \page
+
+ \startitemize
+ \startitem \input ward \stopitem
+ \startitem \input ward \stopitem
+ \stopitemize
+
+\StopArticle