diff options
author | Norbert Preining <preining@logic.at> | 2008-07-29 15:51:50 +0000 |
---|---|---|
committer | Norbert Preining <preining@logic.at> | 2008-07-29 15:51:50 +0000 |
commit | 053efa6f13982fba08efedcb6da18883fd312d6f (patch) | |
tree | 3d5a1f7c222508d27ed924d753b2a26280db8c18 /Master/texmf-dist/tex/context | |
parent | a51ebdee895b5fbcada72092437712499f1be4ba (diff) |
add context-typearea
git-svn-id: svn://tug.org/texlive/trunk@9886 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/context')
-rw-r--r-- | Master/texmf-dist/tex/context/third/typearea/t-typearea.tex | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/context/third/typearea/t-typearea.tex b/Master/texmf-dist/tex/context/third/typearea/t-typearea.tex new file mode 100644 index 00000000000..8d429100c82 --- /dev/null +++ b/Master/texmf-dist/tex/context/third/typearea/t-typearea.tex @@ -0,0 +1,99 @@ +%D \module +%D [ file=t-typearea, +%D version=2008.04.05, +%D title=\CONTEXT\ User Module, +%D subtitle=Something like KOMA-TypeArea, +%D author=Peter Münster, +%D date=\currentdate, +%D copyright={Peter Münster}] +%C This module is copyrighted by Peter Münster. +%C Please send any comments to pmrb at free.fr. + +% This program is free software; you can redistribute it and/or +% modify it under the terms of the GNU General Public License +% as published by the Free Software Foundation; either version 2 +% of the License, or (at your option) any later version. + +% This program is distributed in the hope that it will be useful, +% but without any warranty; without even the implied warranty of +% merchantability or fitness for a particular purpose. See the +% GNU General Public License for more details. + +\writestatus{loading}{Something like KOMA-TypeArea} + +\unprotect + +%D \macros{setupTypeArea} +%D Setting up some values. +%D +%D Default setup: +%D +%D \starttyping +%D \setupTypeArea[bcor=0pt,oneside=no,alphabets=2.6] +%D \stoptyping +%D +%D Example: +%D +%D \starttyping +%D \setupTypeArea[bcor=3mm,oneside=yes,alphabets=3.1] +%D \stoptyping +\def\setupTypeArea[#1]{\getparameters[TA@][#1]\doTypeArea} + +%D Some internal dimensions: +\newdimen\PageWidth \newdimen\Back +\doifundefined{Width}{\newdimen\Width} +\doifundefined{Height}{\newdimen\Height} + +%D This internal macro does the whole work: +\def\doTypeArea{ + +%D Set visible page width: +\PageWidth=\dimexpr\paperwidth-\TA@bcor\relax + +%D Determine the paper aspect ratio: +\edef\Ratio{\withoutpt{\the\dimexpr2\paperheight/(\PageWidth/32768)\relax}} + +%D Set the textarea width to X alphabets: +\setbox\scratchbox\hbox{\dorecurse{26}{\character\recurselevel}} +\Width=\dimexpr\TA@alphabets\wd\scratchbox\relax +\ifdim\Width<\PageWidth\else +\writestatus{error}{line wider than page}\end\fi + +%D Set the textarea height proportional to the width: +\Height=\dimexpr(\Ratio\Width) + +%D Set the margin/gutter widths to be equal on a full spread: +\doifelse\TA@oneside{yes} + {\Back=\dimexpr(\PageWidth - \Width) / 2 + \TA@bcor\relax} + {\Back=\dimexpr(\PageWidth - \Width) / 3 + \TA@bcor\relax} + +%D Set the top and bottom margins in a 1:2 ratio, ignoring headers: +\edef\Top{\the\dimexpr(\paperheight - \Height) / 3 - 3\lineheight\relax} + +%D Redefine \type{\Height} to include header and footer space: +\Height=\dimexpr(\Height + 8\lineheight) + +%D Set up the page layout using the calculated parameters: +\setuplayout[ + backspace=\the\Back, + height=\the\Height, + width=\the\Width, + header=2\lineheight, + headerdistance=\lineheight, + footer=2\lineheight, + footerdistance=3\lineheight, + topspace=\Top] +} +\protect + +\setupTypeArea[bcor=0pt,oneside=no,alphabets=2.6] + +\doifnotmode{demo}{\endinput} + +%D Usage example: +\usemodule[typearea] +\setupTypeArea[bcor=0mm,alphabets=3.1] +\setuppagenumbering[alternative=doublesided] +\starttext +\dorecurse4{\framed[width=\textwidth,height=\textheight]{test}\page} +\stoptext |