From 8d8d528d2ad52599f11250cfc567fea4f37f2a8b Mon Sep 17 00:00:00 2001 From: Context Git Mirror Bot Date: Tue, 12 Jan 2016 17:15:07 +0100 Subject: 2016-01-12 16:26:00 --- tex/context/modules/mkii/x-fig-01.mkii | 461 +++++++++++++++++++++++++++++++++ 1 file changed, 461 insertions(+) create mode 100644 tex/context/modules/mkii/x-fig-01.mkii (limited to 'tex/context/modules/mkii/x-fig-01.mkii') diff --git a/tex/context/modules/mkii/x-fig-01.mkii b/tex/context/modules/mkii/x-fig-01.mkii new file mode 100644 index 000000000..5a2ea20c8 --- /dev/null +++ b/tex/context/modules/mkii/x-fig-01.mkii @@ -0,0 +1,461 @@ +%D \module +%D [ file=x-fig-01, +%D version=2001.03.21, +%D title=\CONTEXT\ Style File, +%D subtitle=Figure Base Generation, +%D author=Hans Hagen, +%D date=\currentdate, +%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] +%C +%C This module is part of the \CONTEXT\ macro||package and is +%C therefore copyrighted by \PRAGMA. See mreadme.pdf for +%C details. + +% \readfile {x-res-01} \donothing \donothing \endinput + +%D See \type {x-fig-00.tex} for more information on how to use +%D and generate figure databases. This file loads the file +%D named \type {\jobfilename} (\TEXEXEC\ will set this +%D variable). You can apply this style to a database by +%D saying: +%D +%D \starttyping +%D texexec --pdf --use=fig-make yourfile.xml +%D \stoptyping +%D +%D The following modes are supported: +%D +%D \starttabulate[|lT|l|] +%D \NC letter \NC map the preview on letter size \NC \NR +%D \NC compact \NC use an alternative presentation \NC \NR +%D \stoptabulate +%D +%D The resulting file has the following characteristics: +%D +%D \startitemize[packed] +%D \item the document is split into three sections: first each +%D figure is shown at its own page, then an overview of +%D figures is shown with some data alongside, and +%D finally an index and table of contents shows up +%D \item there is no title page, which means that one can +%D access a figure by page number without offset +%D \item the document is opened at the first overview page, +%D that is, when the viewer supports it +%D \item the graphic is shown 3~times: on a page of its own, +%D scaled to a fixed dimension, and relative to a4 or +%D letter paper size +%D \item the labels can be accessed in an index and list at +%D the end of the document +%D \stopitemize +%D +%D We use named destinations, which means that one can +%D access a figure by name from an external application. + +\usemodule[fig-00] + +\setupoutput[pdftex] \overcomePDFspacefalse + +\doifnothing {\jobfilename} {\end} +\doiffileelse {\jobfilename.xml} {} {\end} + +\definesymbol [attachment] [{\bf\color[darkred]{\jobname.xml}}] +\setupattachments [symbol=attachment] +\useattachment [datafile] [\jobname.xml] + +\def\StartDescription + {\bgroup + \defineXMLpush[organization] + \defineXMLpush[project] + \defineXMLpush[product] + \defineXMLpush[comment]} + +\def\StopDescription + {\subject {Figure collection} + \starttabulate[|lBe|p|] + \doifXMLdataelse{organization} + {\NC organization \NC \XMLpop{organization} \NC \NR}{} + \doifXMLdataelse{project} + {\NC project \NC \XMLpop{project} \NC \NR}{} + \doifXMLdataelse{product} + {\NC product \NC \XMLpop{product} \NC \NR}{} + \doifXMLdataelse{comment} + {\NC comment \NC \XMLpop{comment} \NC \NR}{} + \NC specification \NC \attachment[datafile] \NC \NR + \stoptabulate + \blank[2*big] + \egroup} + +\def\StartFigureA + {\bgroup + \defineXMLpush[file] + \XMLassign{file}{buffer} + \defineXMLpush[dummy] + \defineXMLpush[label] + \defineXMLpush[copyright] + \defineXMLpush[comment] + \defineXMLpush[status]} + +\defineoverlay[page][\overlaybutton{Description}] + +\startbuffer + \framed + [width=\XMLpar{dummy}{width}{12cm}, + height=\XMLpar{dummy}{height}{8cm}, + background=color, + backgroundcolor=gray, + foregroundcolor=darkred, + frame=off] + {\bf \XMLpop{dummy}} +\stopbuffer + +\def\StopFigureA + {\doglobal\increment\CurrentPage + \setupbackgrounds[page][background=page] + \doifelsenothing{\XMLpop{label}} + {\expanded{\definereference[Description][about: \XMLpop{file}]}% + \pagereference[\XMLpop{file}]} + {\expanded{\definereference[Description][about: \XMLpop{label}]}% + \pagereference[\XMLpop{label}]} + \pagefigure[\XMLpop{file}] + \setupbackgrounds[page][background=] + \egroup} + +\def\StartFigureB + {\StartFigureA} + +\defineregister + [figureindex] + [figureindices] + +\setupregister + [figureindex] + [ownnumber=yes, + criterium=text, + interaction=text, + indicator=no] + +\definelist + [figurelist] + +\setuplist + [figurelist] + [criterium=text, + pagenumber=no, + width=2em, + interaction=all] + +\setupcolors + [state=start] + +\setuptolerance + [verytolerant] + +% Ugly: + +\startnotmode[previewpage-letter,previewpage-S6] + \enablemode[previewpage-A4] +\stopnotmode + +\startmode[letter] % downward compatible + \enablemode[previewpage-letter] +\stopmode + +%startbuffer[paper] +\startsetups[paper] +\startmode[previewpage-A4] + \framed + [width=210mm,height=297mm,offset=overlay,frame=off, + background=color,backgroundcolor=white] + {\externalfigure[\XMLpop{file}][reset=yes]} +\stopmode +\startmode[previewpage-letter] + \framed + [width=8.5in,height=11in,offset=overlay,frame=off, + background=color,backgroundcolor=white] + {\externalfigure[\XMLpop{file}][reset=yes]} +\stopmode +\startmode[previewpage-S6] + \framed + [width=600pt,height=450pt,offset=overlay,frame=off, + background=color,backgroundcolor=white] + {\externalfigure[\XMLpop{file}][reset=yes]} +\stopmode +\stopsetups +%stopbuffer + +\setupbuttons + [offset=10pt, + width=broad, + strut=no, + rulethickness=1pt, + framecolor=darkred] + +\def\StopFigureB + {\par + \doglobal\increment\CurrentPage + \doifelsenothing{\XMLpop{label}} + {\expanded{\definereference[Figure][\XMLpop{file}]}% + \expanded{\definereference[GridPg][grid:\XMLpop{file}]}} + {\expanded{\definereference[Figure][\XMLpop{label}]}% + \expanded{\definereference[GridPg][grid:\XMLpop{label}]}}% + \button % content in setup + {\hbox to \hsize + {\forgetall \dontcomplain + \doifelsenothing{\XMLpop{label}} + {\pagereference[about: \XMLpop{file}]} + {\pagereference[about: \XMLpop{label}]}% + % moved here, because descriptions may be absent + \ifnum\CurrentPage=1 \pagereference[begin]\fi + % + \expanded{\writetolist[figurelist]{\CurrentPage}{\XMLpop{label}}}% + \expanded{\figureindex{\CurrentPage}{\XMLpop{label}}}% + \startnotmode[compact]% + \vbox to 100pt + {\hsize30pt + \vskip5pt + \hbox to \hsize{\hss\strut\bf\CurrentPage\hss}% + \vfill}% + \advance\hsize by -30pt + \stopnotmode + \startmode[compact]% + \advance\hsize by -10pt + \hskip10pt + \stopmode + \button % \framed + [width=150pt,height=100pt,offset=10pt,frame=off, + background=color,backgroundcolor=white,color=] + {\externalfigure + [\XMLpop{file}] + [maxheight=80pt,frame=off,maxwidth=130pt,factor=max]}% + [GridPg]% + \let\FigWid\figurenaturalwidth + \let\FigHei\figurenaturalheight + \advance\hsize by -150pt + \hskip10pt + \advance\hsize by -10pt + \vbox to 100pt + {\hsize40pt + %\externalfigure + % [paper] + % [type=buffer,frame=on, + % framecolor=darkred,rulethickness=.5pt, + % width=40pt,object=no] + \framed + [offset=overlay, + framecolor=darkred, + rulethickness=.5pt] + {\scale[width=40pt]{\setups[paper]}}% {\disableXML\getbuffer[paper]}}% + \startmode[compact]% + \vfill + \hbox to \hsize{\hss\strut\bf\CurrentPage\hss}% + \stopmode + \vfill}% + \advance\hsize by -40pt + \hskip10pt + \advance\hsize by -10pt + \vbox to 100pt + {\blank[disable] + \starttabulate[|Bel|p|] + \NC file \NC \XMLpop{file} \NC \NR + \doifXMLdata{label} + {\NC label \NC \XMLpop{label} \NC \NR} + \NC w$\times$h \NC \FigWid$\times$\FigHei \NC \NR + \doifXMLdata{copyright} + {\NC copyright \NC \XMLpop{copyright} \NC \NR} + \doifXMLdata{status} + {\doifelse{\XMLpop{status}}{obsolete} + {\NC status \NC \bf\darkred\XMLpop{status} \NC \NR} + {\NC status \NC \XMLpop{status} \NC \NR}} + \doifXMLdata{comment} + {\NC comment \NC \XMLpop{comment} \NC \NR} + \stoptabulate + \vfill}}}% + [Figure] + \vskip10pt + \egroup} + +\def\StartFigureC + {\StartFigureA} + +\def\StopFigureC + {\doglobal\increment\NumberOfFigures + \egroup} + +\setuplayout + [topspace=15pt,backspace=15pt, + header=0pt,footer=0pt,bottom=20pt,bottomdistance=10pt, + width=middle,height=fit] + +\setupbackgrounds + [page] + [background=, + backgroundcolor=gray] + +\setupinteractionscreen + [width=max, + height=max] + +\setupcolors + [state=start] + +\setupinteraction + [style=, + color=, + contrastcolor=, + state=start] + +\setuphead + [section] + [style=bfb] + +\setupbodyfont + [pos] + +\setupinteractionmenu + [bottom] + [left=\hfill, + middle=\hskip10pt, + frame=off, + style=bold, + background=color, + backgroundcolor=darkred, + foregroundcolor=white] + +\startinteractionmenu[bottom] + \but [begin] begin \\ + \but [index] index \\ + \but [list] list \\ + \but [CloseDocument] close \\ + \but [PreviousJump] go back \\ +\stopinteractionmenu + +\setupinteraction + [openaction=begin] + +\defineXMLenvironment [figurelibrary] \StartLibrary \StopLibrary + +\starttext + +\def\StartLibrary{\mainlanguage[\XMLpar{figurelibrary}{language}{en}]} +\def\StopLibrary {} + +\defineXMLignore [description] +\defineXMLenvironment [figure] \StartFigureC \StopFigureC + +\doglobal\newcounter\CurrentPage + +\processXMLfilegrouped{\jobfilename.xml} + +\increment\NumberOfFigures + +\defineXMLignore [description] +\defineXMLenvironment [figure] \StartFigureA \StopFigureA + +\doglobal\newcounter\CurrentPage + +\processXMLfilegrouped{\jobfilename.xml} + +\setuppapersize + [S6][S6] + +\setupbackgrounds + [page] + [background=color] + +\setupinteraction + [menu=on] + +\defineXMLenvironment [description] \StartDescription \StopDescription +\defineXMLenvironment [figure] \StartFigureB \StopFigureB + +\doglobal\newcounter\CurrentPage + +\processXMLfilegrouped{\jobfilename.xml} \page + +\subject [list] {List of figures} + +\placelist[figurelist] \page + +\subject [index] {Index of figures} + +\startcolumns +\placeregister[figureindex] +\stopcolumns + +\doifmodeelse{clipgrid-distance,clipgrid-steps}{\page}{\stoptext} + +\startuniqueMPgraphic{clipgrid}{dx,dy,nx,ny,type} + numeric gdx, gdy, lbx, lby ; + if \MPvar{type}=1 : + gdx := \MPvar{dy} ; + gdy := \MPvar{dx} ; + else : + gdx := OverlayWidth /\MPvar{nx} ; + gdy := OverlayHeight/\MPvar{ny} ; + fi ; + lbx := gdx ; + lby := gdy ; + defaultfont := "\truefontname{Mono}" ; + defaultscale := .5 ; + numeric pen ; pen := .25pt ; + def MyGrid text t = + draw vlingrid (0,OverlayWidth ,gdy,OverlayWidth ,OverlayHeight) t ; + draw hlingrid (0,OverlayHeight,gdx,OverlayHeight,OverlayWidth ) t ; + enddef ; + pickup pencircle scaled pen ; + MyGrid withcolor white ; + MyGrid dashed evenly scaled pen ; + draw OverlayBox withcolor white ; + draw OverlayBox dashed evenly scaled pen ; + draw vlinlabel.bot(0,eps+OverlayWidth /lby,2,OverlayWidth ) ; + draw hlinlabel.lft(0,eps+OverlayHeight/lbx,2,OverlayHeight) ; + setbounds currentpicture to OverlayBox enlarged (2*EmWidth) ; +\stopuniqueMPgraphic + +\presetMPvariable[clipgrid][dx=10pt] +\presetMPvariable[clipgrid][dy=10pt] +\presetMPvariable[clipgrid][nx=10] +\presetMPvariable[clipgrid][ny=10] + +\startmode[clipgrid-distance] + \defineoverlay[grid][\uniqueMPgraphic{clipgrid}{type=1}] +\stopmode + +\startmode[clipgrid-steps] + \defineoverlay[grid][\uniqueMPgraphic{clipgrid}{type=2}] +\stopmode + +\setupexternalfigures + [background={color,foreground,grid}, + backgroundcolor=white] + +\def\StartFigureD + {\StartFigureA} + +\def\StopFigureD + {\doglobal\increment\CurrentPage + \setupbackgrounds[page][background=page] + \startpagefigure[\XMLpop{file}][offset=20pt]% + \doifelsenothing{\XMLpop{label}} + {\expanded{\definereference[Description][about: \XMLpop{file}]}% + \pagereference[grid:\XMLpop{file}]} + {\expanded{\definereference[Description][about: \XMLpop{label}]}% + \pagereference[grid:\XMLpop{label}]} + \stoppagefigure + %\pagefigure[\XMLpop{file}][offset=20pt] + \setupbackgrounds[page][background=] + \egroup} + +\defineXMLignore + [description] + +\defineXMLenvironment + [figure] + \StartFigureD + \StopFigureD + +\doglobal\newcounter\CurrentPage + +\processXMLfilegrouped{\jobfilename.xml} \page + +\stoptext -- cgit v1.2.3