# -*- mode: Perl -*-
# /=====================================================================\ #
# | tikz.sty | #
# | Implementation for LaTeXML | #
# |=====================================================================| #
# | Part of LaTeXML: | #
# | Public domain software, produced as part of work done by the | #
# | United States Government & not subject to copyright in the US. | #
# |---------------------------------------------------------------------| #
# | Thanks to Silviu Vlad Oprea <s.oprea@jacobs-university.de> | #
# | of the arXMLiv group for initial implementation | #
# | http://arxmliv.kwarc.info/ | #
# | Released under the Gnu Public License | #
# | Released to the Public Domain | #
# |---------------------------------------------------------------------| #
# | Bruce Miller <bruce.miller@nist.gov> #_# | #
# | http://dlmf.nist.gov/LaTeXML/ (o o) | #
# \=========================================================ooo==U==ooo=/ #
package LaTeXML::Package::Pool;
use strict;
use warnings;
use LaTeXML::Package;
InputDefinitions('tikz', type => 'sty', noltxml => 1);
# Not absolutely necessary to redefine this, but it makes sure
# we load the file as definitions rather than content,
# with some slight efficiencies
## \def\usetikzlibrary{\pgfutil@ifnextchar[{\use@tikzlibrary}{\use@@tikzlibrary}}%}
## \def\use@tikzlibrary[#1]{\use@@tikzlibrary{#1}}
DefPrimitive('\use@@tikzlibrary{}', sub {
my ($gullet, $libs) = @_;
foreach my $lib (split(/,/, $libs = ToString(Expand($libs)))) {
$lib =~ s/^\s+//; $lib =~ s/\s+$//;
if ($lib && !LookupDefinition(T_CS('\tikz@library@' . $lib . '@loaded'))) {
NoteLog("TIKZ LIBRARY $lib");
Let(T_CS('\tikz@library@' . $lib . '@loaded'), T_CS('\pgfutil@empty'));
my $barcc = LookupCatcode('|');
AssignCatcode('|', CC_OTHER);
if (InputDefinitions('tikzlibrary' . $lib . '.code.tex', noerror => 1)
|| InputDefinitions('pgflibrary' . $lib . '.code.tex', noerror => 1)) { }
else {
Warn('missing_file', $lib, $STATE->getStomach->getGullet,
"Can't find tikz library '$lib' (neither pgf nor tikz)",
"Anticipate undefined macros or environments or keys"); }
AssignCatcode('|', $barcc);
} }
return; });
# TODO: What do we need to do to get the native emulation working?
DefMacro('\tikz@align@temp', '\pgfmathresult');
# TODO: Why is this macro failing to get picked up?
DefMacro('\tikzcdset', '\pgfqkeys{/tikz/commutative diagrams}');
1;