diff options
author | Taco Hoekwater <taco@elvenkind.com> | 2011-06-01 08:54:21 +0000 |
---|---|---|
committer | Taco Hoekwater <taco@elvenkind.com> | 2011-06-01 08:54:21 +0000 |
commit | d7ccb42582f85acf30568913610ccf4d602023fb (patch) | |
tree | 7292e3545a420676878e7451b68892d360c62cb6 /Master/texmf-dist/tex/context/base/x-res-01.mkii | |
parent | 2d62a6fe9b80def59c392268022f1f9a2d6e358f (diff) |
commit context 2011.05.18
git-svn-id: svn://tug.org/texlive/trunk@22719 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/context/base/x-res-01.mkii')
-rw-r--r-- | Master/texmf-dist/tex/context/base/x-res-01.mkii | 487 |
1 files changed, 487 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/context/base/x-res-01.mkii b/Master/texmf-dist/tex/context/base/x-res-01.mkii new file mode 100644 index 00000000000..dc14e70548b --- /dev/null +++ b/Master/texmf-dist/tex/context/base/x-res-01.mkii @@ -0,0 +1,487 @@ +%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 / Hans Hagen \& Ton Otten}] +%C +%C This module is part of the \CONTEXT\ macro||package and is +%C therefore copyrighted by \PRAGMA. See mreadme.pdf for +%C details. + +%D See \type {x-fig-00.tex} and \type {x-fig-04.tex} for more +%D information on how to use and generate figure databases. +%D This file loads the file named \type {\jobfilename} +%D (\TEXEXEC\ will set this variable). You can apply this +%D style to a database by 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 \NC clipgrid-distance \NC add a copy with grid overlayed \NC \NR +%D \NC clipgrid-steps \NC add a copy with grid overlayed \NC \NR +%D \NC previewpage-A4 \NC show graphic relative to A4 \NC \NR +%D \NC previewpage-letter \NC show graphic relative to letter \NC \NR +%D \NC previewpage-S6 \NC show graphic relative to S6 \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[res-00] + +\autoXMLnamespace[rl] + +\setupoutput[pdftex] \overcomePDFspacefalse + +\setjobfullname {xml} % default suffix + +\doifnothing {\jobfullname} {\end} +\doiffileelse {\jobfullname} {} {\end} + +\definesymbol [attachment] [{\bf\color[darkred]{\jobname.xml}}] +\setupattachments [symbol=attachment] +\useattachment [datafile] [\jobname.xml] + +\def\StartDescription + {\bgroup} + +\def\StopDescription + {\subject {Figure collection} + \starttabulate[|lBe|p|] + \doifXMLdataelse{rl:organization} + {\NC organization \NC \XMLflush{rl:organization} \NC \NR}{} + \doifXMLdataelse{rl:project} + {\NC project \NC \XMLflush{rl:project} \NC \NR}{} + \doifXMLdataelse{rl:product} + {\NC product \NC \XMLflush{rl:product} \NC \NR}{} + \doifXMLdataelse{rl:comment} + {\NC comment \NC \XMLflush{rl:comment} \NC \NR}{} + \NC specification \NC \attachment[datafile] \NC \NR + \stoptabulate + \blank[2*big] + \egroup} + + +\def\localexternalfigurereplacement#1#2#3% hack, no reuse of dummies (yet), todo: pass objname + {\doifelsenothing{\XMLflush{rl:label}} + {\edef\FigureName{\XMLflush{rl:label}}} + {\edef\FigureName{\XMLflush{rl:file}}}% + \doifobjectfoundelse{rl}\FigureName + {} + {\setobject{rl}\FigureName\vbox{\normalexternalfigurereplacement{#1}{#2}{#3}}}% + \getobject{rl}\FigureName} + +\startmode[dummy] + + \useMPlibrary[dum] + + \def\StartFigureA + {\bgroup + \XMLassign{rl:file}{dummy}} + + \let\normalexternalfigurereplacement\externalfigurereplacement + \let\externalfigurereplacement \localexternalfigurereplacement + +\stopmode + +\startnotmode[dummy] + + \def\StartFigureA + {\bgroup + \XMLassign{rl:file}{unknown}} + +\stopnotmode + +\startbuffer[unknown] + \framed + [width=\XMLpar{rl:dummy}{width}{12cm}, + height=\XMLpar{rl:dummy}{height}{8cm}, + background=color, + backgroundcolor=gray, + foregroundcolor=darkred, + align={lohi,middle}, % normal, + frame=off] + {\bf \XMLflush{rl:dummy}} +\stopbuffer + +\useexternalfigure[unknown][unknown][type=buffer,object=no] + +\defineoverlay[page][\overlaybutton{Description}] + +% \def\externalfigurereplacement#1#2#3% +% {\getbuffer[rl-unknown]} + +\def\StopFigureA + {\doglobal\increment\CurrentPage + \setupbackgrounds[page][background=page] + \doifelsenothing{\XMLflush{rl:label}} + {\expanded{\definereference[Description][about:\XMLflush{rl:file}]}% + \expanded{\pagereference[\XMLflush{rl:file}]}} + {\expanded{\definereference[Description][about:\XMLflush{rl:label}]}% + \expanded{\pagereference[\XMLflush{rl:label}]}} + \pagefigure[\XMLflush{rl: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] + +% Ulgy: + +\startmode[letter] % downward compatible + \enablemode[previewpage-letter] +\stopmode + +\startnotmode[previewpage-letter,previewpage-S6] + \enablemode[previewpage-A4] +\stopnotmode + +\startsetups[paper] +\startmode[previewpage-A4] + \framed + [width=210mm,height=297mm,offset=overlay,frame=off, + background=color,backgroundcolor=white] + {\externalfigure[\XMLflush{rl:file}][reset=yes]} +\stopmode +\startmode[previewpage-letter] + \framed + [width=8.5in,height=11in,offset=overlay,frame=off, + background=color,backgroundcolor=white] + {\externalfigure[\XMLflush{rl:file}][reset=yes]} +\stopmode +\startmode[previewpage-S6] + \framed + [width=600pt,height=450pt,offset=overlay,frame=off, + background=color,backgroundcolor=white] + {\externalfigure[\XMLflush{rl:file}][reset=yes]} +\stopmode +\stopsetups + +\setupbuttons + [offset=10pt, + width=broad, + strut=no, + rulethickness=1pt, + framecolor=darkred] + +\definecolor[XMLRLcolor][white] + +\def\StopFigureB + {\doglobal\increment\CurrentPage + \doifelsenothing{\XMLflush{rl:label}} + {\expanded{\definereference[Figure][\XMLflush{rl:file}]}% + \expanded{\definereference[GridPg][grid:\XMLflush{rl:file}]}} + {\expanded{\definereference[Figure][\XMLflush{rl:label}]}% + \expanded{\definereference[GridPg][grid:\XMLflush{rl:label}]}}% + \button + {\hbox to \hsize + {\forgetall \dontcomplain + \doifelsenothing{\XMLflush{rl:label}} + {\expanded{\pagereference[about:\XMLflush{rl:file}]}} + {\expanded{\pagereference[about:\XMLflush{rl:label}]}}% + % moved here, because descriptions may be absent + \ifnum\CurrentPage=1 \pagereference[begin]\fi + % + \expanded{\writetolist[figurelist]{\CurrentPage}{\XMLflush{rl:label}}}% + \expanded{\figureindex{\CurrentPage}{\XMLflush{rl: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 + [\XMLflush{rl:file}] + %[maxheight=80pt,frame=off,maxwidth=130pt,factor=max]}% + [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]}}% + \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 \XMLflush{rl:file} \NC \NR + \doifXMLdata{rl:label} + {\NC label \NC \XMLflush{rl:label} \NC \NR} + \NC w$\times$h \NC \FigWid$\times$\FigHei \NC \NR + \doifXMLdata{rl:copyright} + {\NC copyright \NC \XMLflush{rl:copyright} \NC \NR} + \doifXMLdata{rl:status} + {\doifelse{\XMLflush{rl:status}}{obsolete} + {\NC status \NC \dontleavehmode \color[darkred]{\bf\XMLflush{rl:status}} \NC \NR} + {\NC status \NC \XMLflush{rl:status} \NC \NR}} + \doifXMLdata{rl:comment} + {\NC comment \NC \XMLflush{rl: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 [rl:figurelibrary] \StartLibrary \StopLibrary +\defineXMLenvironment [rl:library] \StartLibrary \StopLibrary + +\starttext + +\def\StartLibrary{\mainlanguage[\XMLpar{rl:library}{language}{en}]} +\def\StopLibrary {} + +\defineXMLignore [rl:description] +\defineXMLenvironment [rl:figure] \StartFigureC \StopFigureC + +\doglobal\newcounter\CurrentPage + +\processXMLfilegrouped{\jobfullname} + +\increment\NumberOfFigures + +\defineXMLignore [rl:description] +\defineXMLenvironment [rl:figure] \StartFigureA \StopFigureA + +\doglobal\newcounter\CurrentPage + +\processXMLfilegrouped{\jobfullname} + +\setuppapersize + [S6][S6] + +\setupbackgrounds + [page] + [background=color] + +\setupinteraction + [menu=on] + +\defineXMLenvironment [rl:description] \StartDescription \StopDescription +\defineXMLenvironment [rl:figure] \StartFigureB \StopFigureB + +\doglobal\newcounter\CurrentPage + +\processXMLfilegrouped{\jobfullname} \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[\XMLflush{rl:file}][offset=20pt]% + \doifelsenothing{\XMLflush{rl:label}} + {\expanded{\definereference[Description][about:\XMLflush{rl:file}]}% + \expanded{\pagereference[grid:\XMLflush{rl:file}]}} + {\expanded{\definereference[Description][about:\XMLflush{rl:label}]}% + \expanded{\pagereference[grid:\XMLflush{rl:label}]}} + \stoppagefigure + %\pagefigure[\XMLflush{rl:file}][offset=20pt] + \setupbackgrounds[page][background=] + \egroup} + +\defineXMLignore [rl:description] +\defineXMLenvironment [rl:figure] \StartFigureD \StopFigureD + +\doglobal\newcounter\CurrentPage + +\processXMLfilegrouped{\jobfullname} \page + +\stoptext |