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

时间:2018-05-20 06:33:42

标签: mathjax tikz

我猜测这已经在一个帖子中完成了,但是我花了两个小时阅读各种各样的主题并且无法理解一个非常基本的问题。

长话短说: 我试图在Web浏览器中为家庭作业生成器创建动态方程/图表。到目前为止,我一直在使用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";
?>

它正确地将其转换为浏览器中的等式形式。

现在,我的目标是与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}

所以我的第一个问题,我认为已经回答了#34;没有&#34;但是无论如何都值得检查 - 有没有像MathJax一样在Javascript中调用TikZ的简单方法?因为那太棒了。

如果没有,我怎样才能到TikZ HTML/Javascript实际使用TikZ的地方?我相信有些网站显示TikZ代码,但我找不到任何关于此的文档(一切都假设我使用的LaTeX程序可以召唤\usepackage{tikz}一个简单的pd.get_dummies(df.stack(0).one, prefix='one').stack().unstack(0).T.join( df.xs('two', axis=1, level=1, drop_level=False) ).sort_index(1) A B C one_a one_b two one_a one_b two one_a one_b two 0 1 0 b 0 1 a 0 1 a 1 1 0 a 0 1 a 1 0 b 2 0 1 a 1 0 a 0 1 a 电话,我不认为MathJax可以这样做。

现在,我通过MAMP在我的Macbook本地主机上运行我的脚本,但最终我想将它移动到实际的Web服务器 - 但是如果它需要在根级别安装它,我可以调查一下。只需要一些明确的解释,因为我对LaTeX的技术方面很陌生。

1 个答案:

答案 0 :(得分:1)

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

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

进入预期的SVG。

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

\documentclass[margin=0pt]{standalone}
\def\pgfsysdriver{pgfsys-ximera.def}
\usepackage{tikz}

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

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

This is e-TeX, Version 3.14159265-2.6 (preloaded format=latex 2019.2.22)