在MathJax这样的浏览器中使用TikZ

Ale*_*old 4 tikz mathjax

我猜想这是以前在线程中完成的,但是我只花了两个小时阅读各种线程,却无法解决一个非常基本的问题。

长话短说:我正在尝试在网络浏览器中为作业生成器创建动态方程式/图表。到目前为止,我一直在使用MathJax并将其用于事物的方程式方面。这很简单,因为我只需要包含一行Javascript代码,然后开始编写代码就很好了:

<script type="text/x-mathjax-config">
  MathJax.Hub.Config({tex2jax: {inlineMath: [['|','|'], ['\\ 
(','\\)']]}});
</script>
<script type="text/javascript"
  src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX- AMS-MML_HTMLorMML">
</script>

<?
$x = rand(2,5);
echo "x|^2| = ".pow($x,2).", so x = |\pm|$x";
?>
Run Code Online (Sandbox Code Playgroud)

并将其正确地转换为浏览器上的方程式。

现在,我的目标是做类似的事情,TikZ因此我可以使用以下代码动态创建三角形等:

<?
$vertex1 = rand(2,5);
$vertex2 = rand(2,5);
?> 
\documentclass[12pt, border=5mm]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw (0,0) node[anchor=north]{$A$}
  -- (<? echo $vertex1; ?>,0) node[anchor=north]{$C$}
  -- (<? echo $vertex1; ?>,<? echo $vertex2; ?>) node[anchor=south]{$B$}
  -- cycle;
\end{tikzpicture}
\end{document}
Run Code Online (Sandbox Code Playgroud)

所以我的第一个问题,我认为回答“否”,但无论如何都值得检查-是否有一种简单的方法可以TikZ像MathJax一样调用Javascript?因为那太神奇了。

如果没有,我怎么能到达可以实际使用的TikZ地方HTML/Javascript?我相信有些网站会显示TikZ代码,但是我找不到关于此的任何文档(所有内容都假设我使用的LaTeX程序可以TikZ通过简单的\usepackage{tikz}调用进行召唤,我认为MathJax不能做到)。

现在,我正在通过MAMP在Macbook的本地主机上运行脚本,但最终我想将其移动到实际的Web服务器上-但是如果需要在根目录下安装它,我可以研究一下那。只是需要一些清楚的解释,因为我真的是LaTeX技术方面的新手。

小智 6

是的,您可以通过https://github.com/kisonecat/tikzjax在JavaScript中运行TikZ 并获取SVG输出。加载适当的CSS和JavaScript后,它将转换为

<script type="text/tikz">
  \begin{tikzpicture}
    \draw (0,0) circle (1in);
  \end{tikzpicture}
</script>
Run Code Online (Sandbox Code Playgroud)

进入预期的SVG。

TikZJax通过实际在浏览器中运行TeX本身来工作。使用web2js,e-TeX的Pascal源码被编译为WebAssembly。在节点下运行,将加载乳胶格式(不包含所有连字符数据),并且

\documentclass[margin=0pt]{standalone}
\def\pgfsysdriver{pgfsys-ximera.def}
\usepackage{tikz}
Run Code Online (Sandbox Code Playgroud)

被执行。然后内存被转储;通过在浏览器中重新加载转储的内存,可以非常快地到达已加载TikZ的地步。(这相当于玩virtexinitex游戏,但在浏览器中。)通过将SVG驱动程序与dvi2html一起用于PGF ,DVI输出将转换为SVG。

所有这些实际上都发生在浏览器中!如果您访问http://tikzjax.com/并打开Web控制台,则会看到熟悉的输出

This is e-TeX, Version 3.14159265-2.6 (preloaded format=latex 2019.2.22)
Run Code Online (Sandbox Code Playgroud)