TransWikia.com

pgfmathdeclarefunction with savebox and tikzexternalize: tikzpicture optimized away

TeX - LaTeX Asked by riddleculous on February 10, 2021

Having solved my previous problem involving savebox and tikzexternalizeI am already facing the next one. I would like to use a function that I have defined either in or after the preamble with pgfmathdeclarefunction in a savebox. It works nicely when using it outside of a tikzpicture, but inside it will get optimized away (see comments in the example below). Why is that so? Or: How can I get TikZ not to optimize the figure away? Note that this solution doesn’t help.

documentclass{article}
usepackage[english]{babel}
usepackage{tikz,pgfplots}
usetikzlibrary{positioning}
usepgfplotslibrary{external}
tikzexternalize

begin{document}
pgfmathdeclarefunction{gauss}{2}{%
    pgfmathparse{1*exp(-(#2)^2/(#1^2))}%
}

newsaveboxboxCPAin
saveboxboxCPAin{
    begin{tikzpicture}
        tikzset{external/optimize=false}%
        draw[domain=-1:1,samples=200] plot(x,{gauss(.33,x)});
    end{tikzpicture}
    }
useboxboxCPAin % works!
begin{tikzpicture}
node (test) {useboxboxCPAin}; % tikzpicture optimized away because it does not contribute to exported PDF
end{tikzpicture}
end{document}

One Answer

Interestingly, it works, when I put the savebox declaration in my tikzpicture environment:

documentclass{article}
usepackage[english]{babel}
usepackage{tikz,pgfplots}
usetikzlibrary{positioning}
usepgfplotslibrary{external}
tikzexternalize

begin{document}
pgfmathdeclarefunction{gauss}{2}{%
    pgfmathparse{1*exp(-(#2)^2/(#1^2))}%
}

begin{tikzpicture}
    newsaveboxboxCPAin
    saveboxboxCPAin{
        begin{tikzpicture}
            tikzset{external/optimize=false}%
            draw[domain=-1:1,samples=200] plot(x,{gauss(.33,x)});
        end{tikzpicture}
        }

    node (test) {useboxboxCPAin}; % works!
end{tikzpicture}
end{document}

Apparently TikZ can't optimize away the savebox since it has just been created in the same tikzpicture.

Answered by riddleculous on February 10, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP