Как добавить пользовательские формы SVG в уравнение, созданное с помощью MathJax? - PullRequest
0 голосов
/ 27 октября 2018

Я бы хотел использовать MathJax для написания различных уравнений, включающих фигуры SVG по следующим линиям:

(2 * [red box]) + [red box] = [three red boxes]

Где каждый элемент в скобках будет пользовательским элементом SVG, определенным в диапазоне HTMLот простого (одна коробка) до более сложного (несколько форм).Причиной этого является то, что я хочу использовать способность MathJax для форматирования математических уравнений, заменяя некоторые символы фигурами SVG.Возможно, мне придется указать и другой HTML.

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

Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 15 декабря 2018

Если вы используете ввод MathML, вы можете использовать элемент <mglyph>, чтобы включить изображение svg в ваше выражение, например:

<math>
  <mglyph src="dice.svg" height="42px" width="42px" valign="-14px" alt="Dice showing five dots"></mglyph>
</math>

или даже

<math>
  <mglyph src='data:image/svg+xml,
    <svg xmlns="http://www.w3.org/2000/svg" height="42px" width="42px">
      <rect stroke="black" fill="none" x="1px" y="1px" stroke-width="2px" rx="5px" width="40px" height="40px"></rect>
      <circle stroke="black" fill="black" cy="30px" cx="30px" r="5px"></circle>
      <circle stroke="black" fill="black" cy="30px" cx="10px" r="5px"></circle>
      <circle stroke="black" fill="black" cy="20px" cx="20px" r="5px"></circle>
      <circle stroke="black" fill="black" cy="10px" cx="30px" r="5px"></circle>
      <circle stroke="black" fill="black" cy="10px" cx="10px" r="5px"></circle>
    </svg>'
    valign="-14px"
    alt="Dice showing five dots">
  </mglyph>
</math>

Если вы используете ввод TeX, вы можете создать mglyph с помощью макроса \mmlToken:

\mmlToken{mglyph}[src="dice.svg" width="42px" height="42px" valign="-14px" alt="Dice showing five dots"]{}

Вы также можете использовать расширение "img" из сторонней библиотеки расширений.,Это определяет макрос \img, который немного упрощает загрузку изображения:

\img[-14px][42px][42px]{dice.svg}

Я думаю, вы должны быть в состоянии сделать то, что вы хотите, используя один из них.(Это мой ответ на кросс-пост на форуме пользователя MathJax )

...