我希望 ConTeXt 中实现与 LaTeX 中相同的效果。
\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}
\draw (0,0) rectangle (2,3);
\end{tikzpicture}
\end{document}
也就是说,我只想要一张图片的结果,而不是整个页面上的图片。有人能告诉我该怎么做吗?
提前致谢。
答案1
要获取裁剪为其内容的页面,请使用\start...\stopTeXpage
。该\startTEXpage
指令还充当隐式的\starttext
,因此如果您的文档应该只包含带有绘图的单页,则以下内容就足够了:
\usemodule[tikz]
\startTEXpage
\starttikzpicture
\draw (0,0) rectangle (2,3);
\stoptikzpicture
\stopTEXpage
如果适合的页面应该包含 MetaFun 绘图,那么还有一种更简短的方法来实现: \start...\stopMPpage
。
\startMPpage
draw fullsquare xyscaled (2cm,3cm) ;
\stopMPpage
答案2
根据 Wolfgang Schuster 的建议,更正后的答案如下。
% example.tex
\usemodule[tikz]
\setupTEXpage[pagestate=start]
\starttext
\startTEXpage
\starttikzpicture
\draw (-1.5,0) -- (1.5,0);
\draw (0,-1.5) -- (0,1.5);
\stoptikzpicture
\stopTEXpage
\startTEXpage
\starttikzpicture
\draw (0,0) rectangle (2,3);
\stoptikzpicture
\stopTEXpage
\startTEXpage
\starttikzpicture
\draw (0,0) circle (3cm);
\stoptikzpicture
\stopTEXpage
\stoptext
答案3
经过多次尝试和错误后,我发现了如何制作多个适合的页面,所以我想在这里与其他人分享。
% example.tex
\usemodule[tikz]
\setcounter[userpage][0]
\starttext
\incrementcounter[userpage]
\startTEXpage
\starttikzpicture
\draw (-1.5,0) -- (1.5,0);
\draw (0,-1.5) -- (0,1.5);
\stoptikzpicture
\stopTEXpage
\incrementcounter[userpage]
\startTEXpage
\starttikzpicture
\draw (0,0) rectangle (2,3);
\stoptikzpicture
\stopTEXpage
\incrementcounter[userpage]
\startTEXpage
\starttikzpicture
\draw (0,0) circle (3cm);
\stoptikzpicture
\stopTEXpage
\stoptext
以下是如何将结果的.pdf 文件中的每个页面转换为.svg 文件。
$ context example.tex
$ pdf2svg
Usage: pdf2svg <in file.pdf> <out file.svg> [<page no>]
$ pdf2svg example.pdf example-1.svg 1
$ pdf2svg example.pdf example-2.svg 2
$ pdf2svg example.pdf example-3.svg 3
$ ls -l example-?.svg
-rw-r--r-- 1 philos philos 1039 Jun 10 15:21 example-1.svg
-rw-r--r-- 1 philos philos 735 Jun 10 15:21 example-2.svg
-rw-r--r-- 1 philos philos 939 Jun 10 15:21 example-3.svg