On 1/25/2021 4:42 PM, Henning Hraban Ramm wrote:
Hi,

did anyone succeed in externalizing TikZ graphics with ConTeXt?

It’s about a project with hundreds of diagrams that (in the current state) 
clutter the main directory with cryptically-named PDFs (at least sorted by 
component name) and that on each ConTeXt run take a lot of runtime (I guess 
also the many log lines slow the process).

In 2013, Aditya said it wasn’t possible to externalize pgf/TikZ graphics as documented in 
the pgf manual, and "perhaps" it would make sense to use his filter module:

https://mailman.ntg.nl/pipermail/ntg-context/2013/071162.html

Did anyone try to do that? I didn’t find anything in this list’s archives.

The original pgf way is two-pass, and you’d need to call LaTeX with the 
intended graphics name as --jobname; that’s far too much of a hassle for that 
many graphics.

I generally like how the filter module works, as you can also define the name 
of every buffer, but my only experience with that is my LilyPond setup.

If nobody has better advice, I’ll try to come up with a filter setup. That 
would mean we’d avoid the tikz module, every TikZ diagram will get written to a 
buffer of configurable name, and that (with preamble setup) will get run 
through LaTeX. I read pgf had some restrictions in plain TeX mode, but perhaps 
we can also use LuaTeX in plain mode to avoid the LaTeX dependency.
In the following case the buffer only gets typeset when it changes:

\starttext

\startbuffer[foo]
    % maybe include a style / enviroment
    \usemodule[tikz] \usetikzlibrary[patterns]
    \startTEXpage
        \starttikzpicture
           \draw[pattern color=red,pattern=bricks] (0,0) circle (1cm);
        \stoptikzpicture
    \stopTEXpage
\stopbuffer

\framed[offset=overlay]{\typesetbuffer[foo]}

\stoptext

Hans


-----------------------------------------------------------------
                                          Hans Hagen | PRAGMA ADE
              Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
       tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl
-----------------------------------------------------------------
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki     : http://contextgarden.net
___________________________________________________________________________________

Reply via email to