Использование TikZ в браузере, таком как MathJax - PullRequest
0 голосов
/ 20 мая 2018

Я предполагаю, что это уже было сделано в ветке, но я потратил два часа на чтение разных тем и не могу разобраться в очень простом вопросе.

Короче говоря: я 'Я пытаюсь создать динамические уравнения / диаграммы в веб-браузере для генератора домашних заданий.До сих пор я использовал 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}

Итак, мой первый вопрос, который ядумаю, что ответ "нет", но все равно стоит проверить - есть ли простой способ для вызова TikZ в Javascript, как с MathJax?Потому что это было бы потрясающе.

Если нет, как я могу добраться до места, где я действительно могу использовать TikZ из HTML/Javascript?Я полагаю, что некоторые веб-сайты показывают код TikZ, но я не могу найти никакой документации по этому вопросу (все просто предполагает, что я использую программу LaTeX, которая может вызывать TikZ с помощью простого вызова \usepackage{tikz}, который я не думаю,MathJax может это сделать).

На данный момент я запускаю свои скрипты на локальном хосте моего Macbook через MAMP, но в конце концов я бы хотел переместить его на реальный веб-сервер - но если это потребуетсяустановить его на корневом уровне, я могу посмотреть на это.Просто нужны четкие объяснения, поскольку я действительно новичок в технической части LaTeX.

1 Ответ

0 голосов
/ 23 февраля 2019

Да, вы можете запустить TikZ в JavaScript через https://github.com/kisonecat/tikzjax и получить вывод 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.(Это равносильно игре в virtex и initex, но в браузере.) Используя драйвер SVG для PGF вместе с dvi2html , вывод DVI преобразуется в SVG.

Все это действительно происходит в браузере!Если вы перейдете на http://tikzjax.com/ и откроете веб-консоль, вы увидите знакомый вывод

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