Hi,

 

I’m typesetting an XML document where the links to the images contain spaces which are encoded as %20

<graphic xlink:href="a%20filename%20with%20spaces.jpg"/>

 

Using this works in cases without spaces:

 

\startxmlsetups xml:fig:graphic

  \externalfigure[\xmlatt{#1}{xlink:href}]

\stopxmlsetups

 

This also works for normal spaces, but is there a way to decode/expand the %20s to regular spaces?

 

I’ve tried with some Lua, but I don’t really know how to pass data around.

 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\startluacode

function replaceSpaces(s)

  result = string.gsub(s, "%%20", " ")

  context(result)

end

\stopluacode

 

\define[1]\replaceSpaces{\ctxlua{replaceSpaces("#1")}}

 

\startxmlsetups xml:fig:graphic

  \externalfigure[\replaceSpaces{\xmlatt{#1}{xlink:href}}]

\stopxmlsetups

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

 

Any hints, why this does not work?`

 

Also, maybe there’s a simpler way for this kind of scenario?


Best,

Denis