GLE 代码可以嵌入 Latex 文档中吗?

GLE 代码可以嵌入 Latex 文档中吗?

我正在寻找一个好的图表工具,并发现图形布局引擎。我能否将用 GLE 编写的代码包含在 latex 文档中?目的不是将其作为文件包含在文档中,而是作为 latex 脚本中的脚本,可以吗?

谢谢

答案1

\VerbatimOut您可以在文档中插入 GLE 代码,将其写入临时文件,在此文件上调用 GLE,并将输出作为图像包含。可以使用包将环境内容写入文件fancyvrb,请参阅将环境主体逐字写入文件。可以使用以下命令调用外部程序\immediate\write18(例如,参见https://stackoverflow.com/questions/3252957/how-to-execute-shell-script-from-latex),需要--shell-escape在编译文档时进行该标志。

glenum如果您想编译多个图形,则可以使用名为 的计数器来通过创建不同的文件名来防止缓存。

梅威瑟:

\documentclass{article}
\usepackage{graphicx}
\usepackage{fancyvrb}
\newcounter{glenum}
\setcounter{glenum}{0}
\newenvironment{GLEinclude}[1]
  {\xdef\mywd{#1}\VerbatimOut{\jobname.\theglenum.gle}}
  {\endVerbatimOut%
  \immediate\write18{gle -output \jobname.\theglenum.gle.pdf \jobname.\theglenum.gle}%
  \includegraphics[width=\mywd]{{\jobname.\theglenum.gle}.pdf}%
  \stepcounter{glenum}%
  }

\begin{document}
Here is a tree fractal compiled with GLE:

\begin{GLEinclude}{5cm}
size 32 22

a = 3; b = 4; c = sqrt(a^2+b^2)

sub pythagorean n
   local red   = (34+n*92)/(n+1)
   local green = (139+n*64)/(n+1)
   local blue  = (34+n*51)/(n+1)
   box c c fill rgb255(red,green,blue)
   if n = 0 then return
   begin translate c c
      begin rotate todeg(-acos(a/c))
         begin scale a/c a/c
            begin translate -c 0
               pythagorean n-1
            end translate
         end scale
      end rotate
   end translate
   begin translate 0 c
      begin rotate todeg(acos(b/c))
         begin scale b/c b/c
            pythagorean n-1
         end scale
      end rotate
   end translate
end sub

begin translate 16 0
   pythagorean 10
end translate
\end{GLEinclude}

Also known as a \textbf{Pythagorean tree}.
\end{document}

结果:

在此处输入图片描述

相关内容