如何在 Plain TeX / ConTeXt 上使用 tikzducks?

如何在 Plain TeX / ConTeXt 上使用 tikzducks?

是否可以tikzducks在 Plain TeX 或 ConTeXt 中使用/移植?据我所知,tikzducks.sty它有一些 LaTeX 主义作为\begin .. \end环境,因此它在 LaTeX 之外不起作用。

答案1

对于 ConTeXt 用户,我尝试获取 TikZ 鸭子:

  1. 我删除了 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
  1. 从命令名称中删除@,因为它有点麻烦。
  2. 用 ConTeXt 对应命令替换一些命令,\starttikzpicture .. \stoptikzpicture例如\begin{tikzpicture} .. \end{tikzpicture}
  3. \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 
}
  1. 其他一些小的变化。

虽然由于 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 对应版本就好了。

相关内容