diff options
Diffstat (limited to 'Master/texmf-dist/tex/context/base/x-fig-00.tex')
-rw-r--r-- | Master/texmf-dist/tex/context/base/x-fig-00.tex | 196 |
1 files changed, 196 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/context/base/x-fig-00.tex b/Master/texmf-dist/tex/context/base/x-fig-00.tex new file mode 100644 index 00000000000..858d23bf382 --- /dev/null +++ b/Master/texmf-dist/tex/context/base/x-fig-00.tex @@ -0,0 +1,196 @@ +%D \module +%D [ file=x-fig-00, +%D version=2001.03.21, +%D title=\CONTEXT\ Style File, +%D subtitle=Figure Base Loading, +%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. + +% \readfile{x-res-04} \donothing \donothing \endinput + +% naast label, ook fig als ref en dan naar fig ref springen + +%D This module implements an interface to a figure database +%D and file. The database is formatted in \XML\ conforming +%D the following \DTD: +%D +%D \typefile{x-fig-00.dtd} +%D +%D A figure base coded this way looks like: +%D +%D \starttyping +%D <!-- texexec --pdf --use=fig-01 figtest.xml --> +%D +%D <figurelibrary language="nl"> +%D +%D <description> +%D <organization>PRAGMA Advanced Document Engineering</organization> +%D <project>Manuals</project> +%D <product>Beginners Manual</product> +%D <comment>A bunch of figures.</comment> +%D </description> +%D +%D <figure> +%D <file>koe.pdf</file> +%D <label>a dutch cow</label> +%D <copyright>Corel Draw Suite</copyright> +%D <comment>I bet that you've seen this cow before.</comment> +%D </figure> +%D +%D <figure> +%D <dummy width="4cm" height="3cm">non existent</dummy> +%D <label>a european cow</label> +%D <copyright>Nobody</copyright> +%D <comment>When will we talk about European cows?</comment> +%D </figure> +%D +%D </figurelibrary> +%D \stoptyping +%D +%D You can convert this base into a \PDF\ file using +%D \TEXEXEC\ and another module in this suite. +%D +%D \starttyping +%D texexec --pdf --use=fig-make yourfile.xml +%D \stoptyping +%D +%D You can now select a graphic from this file using the +%D +%D \starttyping +%D \externalfigure[a dutch cow][width=4cm] +%D \stoptyping +%D +%D This module overloads this command so that a figure is +%D it first searched in the list of databases. +%D +%D \starttyping +%D \usemodule [fig-base] +%D \usefigurebases[yourfile] +%D \stoptyping +%D +%D The special keyword \type {reset} can be used to reset +%D this list. + +\startcommands dutch english + german czech + italian romanian + + usefigurebase: gebruikfiguurbestand usefigurebase + usefigurebase usefigurebase + usefigurebase usefigurebase + +\stopcommands + +\unprotect + +\consultutilityfilefalse + +\startXMLmapping [-] [figbase] + +\defineXMLprocess [figurelibrary] +\defineXMLignore [description] +\defineXMLignore [copyright] +\defineXMLignore [comment] +\defineXMLignore [status] +\defineXMLpush [file] +\defineXMLpush [label] +\defineXMLpush [dummy] +\defineXMLenvironment [figure] \figbase@StartFigure \figbase@StopFigure + +\stopXMLmapping + +\newcounter\figurefilepage + +\def\figbase@StartFigure + {\bgroup} + +\def\figbase@StopFigure + {\doglobal\increment\figurefilepage + \doif\askedlabel{\XMLpop{label}} + {\doglobal\settrue\figurefiledone + \xdef\figurefilename{\XMLpop{file}}\endinput}% + \egroup} + +\def\getfigurefilename#1#2% + {\startnointerference + \traceXMLelementsfalse + \startXMLmapping[-][figbase] + \resetfigurefilebase + \XMLerase{file} + \XMLerase{dummy} + \XMLerase{label} + \xdef\figurefilebase{#1}% + \doglobal\newcounter\figurefilepage + \def\askedlabel{#2} + \processcommacommand[\figurepathlist]\dogetfigurefilename + \stopXMLmapping + \stopnointerference} + +\globalletempty\figurebasepath + +\def\dogetfigurefilename#1% + {\ifx\figurefilename\empty + \bgroup + \xdef\figurefilebasepath{#1}% + \assignfullfilename{#1}\figurefilebase\to\filename + \expanded{\processXMLfilegrouped{\filename.xml}}% + \ifx\figurefilename\empty\else + \globallet\figurefilebase\figurefilebase + \fi + \egroup + \fi} + +\def\resetfigurefilebase + {\globalletempty\figurefilebase + \globalletempty\figurefilename + \globalletempty\figurefilebasepath + \globalletempty\figurefilepage} + +\let\normalcalculateexternalfigure\calculateexternalfigure + +\def\calculateexternalfigure[#1][#2][#3][#4][#5][#6]% + {\resetfigurefilebase + \ifx\figurebaselist\empty + \normalcalculateexternalfigure + [#1][#2][#3][#4][#5][#6]% + \else + \def\docommando##1% + {\getfigurefilename{##1}{#3}% + \ifx\figurefilename\empty\else\quitcommalist\fi}% + \processcommacommand[\figurebaselist]\docommando + \ifx\figurefilename\empty + \stripspaces\from#3\to\figurefilename % to be sure + \normalcalculateexternalfigure + [#1][#2][\figurefilename][#4][#5][#6]% + \else + \let\figurepathlist\figurefilebasepath + \normalcalculateexternalfigure + [#1][#2][\figurefilebase.pdf][\c!page=\figurefilepage,#4][#5][#6]% + \fi + \fi} + +\def\usefigurebase[#1]% + {\doifelse{#1}\v!reset + {\let\figurebaselist\empty} + {\addtocommalist{#1}\figurebaselist}} + +\let\figurebaselist\empty + +\resetfigurefilebase + +\protect \endinput + +\usefigurebase[figtest] + +\externalfigure[koetje] [width=3cm] +\externalfigure[de molen op de dijk][width=3cm] +\externalfigure[de molen op de dijk][width=2cm] +\externalfigure[weet ik veel] [width=3cm] +\externalfigure[weet ik veel] [width=2cm] +\externalfigure[weet ik wat] [width=2cm] +\externalfigure[koe] [width=2cm] |