是否可以tikzducks
在 Plain TeX 或 ConTeXt 中使用/移植?据我所知,tikzducks.sty
它有一些 LaTeX 主义作为\begin .. \end
环境,因此它在 LaTeX 之外不起作用。
答案1
对于 ConTeXt 用户,我尝试获取 TikZ 鸭子:
- 我删除了 LaTeX 标题
tikzducks.sty
并添加了以下内容:
\setupcolors[state=start]
\usecolors[xwi]
\usemodule[tikz]
\enabledirectives[colors.pgf]
\usetikzlibrary[patterns] % for the wizard hat
\usetikzlibrary[calc] % for the sports jerseys
- 从命令名称中删除@,因为它有点麻烦。
- 用 ConTeXt 对应命令替换一些命令,
\starttikzpicture .. \stoptikzpicture
例如\begin{tikzpicture} .. \end{tikzpicture}
。 \duck
根据 ConTeXt 语法重新定义:
\def\duck{\dosingleempty\doduck}
\def\doduck[#1]{%
\iffirstargument
\startscope%
\tikzset{/duck/.cd,#1}%
\duckdraw%
\stopscope%
\else
\startscope%
\tikzset{/duck/.cd}%
\duckdraw%
\stopscope%
\fi
}
- 其他一些小的变化。
虽然由于 ConTeXt 颜色管理的原因,调色板有点混乱(例如 ConTeXtgray
看起来像 LaTeX lightgray
),但最终结果是完全可以接受的。
以下代码:
%\environment_tikzducks and your .tex file must be in the same folder
%unless you use subpath structure, e.g. subfolder/environment_tikzducks
\environment environment_tikzducks
\starttext
Ducks in \CONTEXT\ go brrr
\startcolumns[n=3]
\dorecurse{20}{%
\starttikzpicture \randuck \stoptikzpicture%
}
\stopcolumns
\stoptext
对于任何感兴趣的人,我将分享编辑后的代码这里
编辑
tikzducks 的维护者 Sam Carter 接受了我的请求,添加了一个 ConTeXt 包装器,所以 tikzducks 终于可以在 TeXLive 中使用了。只需执行以下操作:
\usemodule[tikzducks]
\usecolors[xwi]
现在您可以\tikzducks
在 ConTeXt 中使用和关联\starttikzpicture ... \stoptikzpicture
。它在 LuaMetaTeX 中也应该可以正常工作。欢迎提出建议这里。顺便说一句,如果有 Metapost 对应版本就好了。