diff options
Diffstat (limited to 'tex/context/base/x-fig-00.tex')
-rw-r--r-- | tex/context/base/x-fig-00.tex | 41 |
1 files changed, 29 insertions, 12 deletions
diff --git a/tex/context/base/x-fig-00.tex b/tex/context/base/x-fig-00.tex index e83584392..7665a0da3 100644 --- a/tex/context/base/x-fig-00.tex +++ b/tex/context/base/x-fig-00.tex @@ -102,13 +102,14 @@ \newcounter\figurefilepage -\def\figbase@StartFigure% +\def\figbase@StartFigure {\bgroup} -\def\figbase@StopFigure% +\def\figbase@StopFigure {\doglobal\increment\figurefilepage - \doif{\askedlabel}{\XMLpop{label}} - {\xdef\figurefilename{\XMLpop{file}}\endinput}% + \doif\askedlabel{\XMLpop{label}} + {\doglobal\settrue\figurefiledone + \xdef\figurefilename{\XMLpop{file}}\endinput}% \egroup} \def\getfigurefilename#1#2% @@ -122,14 +123,29 @@ \xdef\figurefilebase{#1}% \doglobal\newcounter\figurefilepage \def\askedlabel{#2} - \processXMLfilegrouped{#1.xml} % grouped ? + \processcommacommand[\figurepathlist]\dogetfigurefilename \stopXMLmapping \stopnointerference} -\def\resetfigurefilebase% - {\global\let\figurefilebase\empty - \global\let\figurefilename\empty - \global\let\figurefilepage\empty} +\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 @@ -148,13 +164,14 @@ \normalcalculateexternalfigure [#1][#2][\figurefilename][#4][#5][#6]% \else - \normalcalculateexternalfigure - [#1][#2][\figurefilebase.pdf][\c!pagina=\figurefilepage,#4][#5][#6]% + \let\figurepathlist\figurefilebasepath + \normalcalculateexternalfigure + [#1][#2][\figurefilebase.pdf][\c!pagina=\figurefilepage,#4][#5][#6]% \fi \fi} \def\usefigurebase[#1]% - {\doifelse{#1}{\v!reset} + {\doifelse{#1}\v!reset {\let\figurebaselist\empty} {\addtocommalist{#1}\figurebaselist}} |