Как показать математические уравнения в общем уценке GitHub (не блог GitHub)


151

После расследования я обнаружил, что mathjax может сделать это. Но когда я пишу какой-то пример в моем файле уценки, он не показывает правильные уравнения:

Я добавил это в заголовок файла уценки:

<script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=default"></script>

И введите заявление mathjax:

(E = mc ^ 2) , $$ x_ {1,2} = \ frac {-b \ pm \ sqrt {b ^ 2-4ac}} {2b}. $$

Но Github ничего не показывает для математических символов! Пожалуйста, помогите мне, спасибо! Подскажите, как отображать математические символы на страницах разметки github.


2
Это не решает проблему для обычных пользователей, но в этом ответе предлагается скрипт браузера, который, по крайней мере, позволяет увидеть уравнения: stackoverflow.com/q/11255900/180892
Jeromy Anglim

gitlab использует Katex
FOAD

Ответы:


144

Но github ничего не показывает для математических символов! пожалуйста, помогите мне, спасибо!

Разбор уценки GitHub выполняется библиотекой SunDown (ex libUpSkirt).

Девиз библиотеки - «Соответствующая стандартам, быстрая и безопасная библиотека обработки уценок в C» . Важное слово "безопасное" там, учитывая ваш вопрос :).

Действительно, разрешение выполнения javascript будет немного отличаться от стандартного контракта MarkDown text-to-HTML.

Более того, все, что выглядит как тег HTML, либо экранируется, либо удаляется.

Подскажите, как показывать математические символы в общем уценке github.

Лучше всего было бы найти сайт, похожий на yuml.me, который может генерировать изображения на лету, анализируя предоставленную строку запроса URL.

Обновить

Я нашел несколько сайтов, предоставляющих пользователям такую ​​услугу: codedogs.com ( кажется, больше не поддерживает встраивание ) или iTex2Img . Вы можете попробовать их. Конечно, могут существовать другие, и некоторые Google-фу помогут вам их найти.

учитывая следующий синтаксис уценки

![equation](http://www.sciweavers.org/tex2img.php?eq=1%2Bsin%28mc%5E2%29&bc=White&fc=Black&im=jpg&fs=12&ff=arev&edit=)

будет отображаться следующее изображение

уравнение http://www.sciweavers.org/tex2img.php?eq=1%2Bsin%28mc%5E2%29&bc=White&fc=Black&im=jpg&fs=12&ff=arev&edit=

Примечание . Чтобы изображение отображалось правильно, необходимо убедиться, что часть строки запроса в URL- адресе закодирована в процентах . Вы можете легко найти онлайн-инструменты, которые помогут вам с этой задачей, такие как www.url-encode-decode.com


6
@nultoken, спасибо за полезный ответ. Я использовал веб-сайт iTex2Img, на который вы ссылались выше, и добавил две формулы в свою документацию. У меня проблема с тем, что когда я открываю страницу документации на GitHub, обе формулы отображаются одинаково, хотя на самом деле они разные. Вы случайно не знаете, почему это происходит?
Сэм

3
mathurl.com также заслуживает внимания, если вам нужно сгенерировать изображение.
Мартин Тома

2
Это, похоже, не работает на GitHub, хотя. Изображение не отображается. Кто-нибудь знает почему?
OganM

1
@OganM Синтаксис изменился. Ссылка также была исправлена ​​и протестирована в GitHub
nulltoken

1
Сайт iTex2Img, похоже, не работает для меня постоянно. Изображение не отображается на Github.
Тимбрам

91

Markdown поддерживает встроенный HTML. Встроенный HTML можно использовать как для быстрых, так и для простых встроенных уравнений, а также с помощью внешнего инструмента и более сложного рендеринга.

Быстрый и простой встроенный

Для быстрых и простых встроенных элементов используйте амперсанд HTML и коды объектов . Пример , который сочетает в себе эта идея с индексом текста в уценки составляет: ч θ (х) = Q O X + & thetas 1 х, код , для которого следует.

    h<sub>&theta;</sub>(x) = &theta;<sub>o</sub> x + &theta;<sub>1</sub>x

HTML амперсанд и коды сущностей для общих математических символов можно найти здесь . Коды для греческих букв здесь .

Хотя этот подход имеет ограничения, он работает практически во всех уценках и не требует никаких внешних библиотек.

Сложный масштабируемый встроенный рендеринг с LaTeX и Codecogs

Если ваши потребности больше, используйте внешний рендерер LaTeX, такой как CodeCogs. Создайте уравнение с помощью редактора CodeCogs . Выберите svg для рендеринга и HTML для встраивания кода. SVG оказывает хорошо на изменение размера. HTML позволяет легко читать LaTeX, когда вы смотрите на источник. Скопируйте код для вставки в нижней части страницы и вставьте его в уценку.

<img src="https://latex.codecogs.com/svg.latex?\Large&space;x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}" title="\Large x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}" />

Это объединяет этот ответ и этот ответ .

Поддержка GitHub только иногда работала с использованием вышеупомянутого необработанного синтаксиса html для читаемого LaTeX для меня. Если вышеупомянутое не работает для вас, другой вариант - вместо этого выбрать URL-кодирование и использовать этот вывод для создания вручную ссылки, например:

\ Large x = \ frac {-b \ pm \ sqrt {b ^ 2-4ac}} {2a}

![\Large x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}](https://latex.codecogs.com/svg.latex?x%3D%5Cfrac%7B-b%5Cpm%5Csqrt%7Bb%5E2-4ac%7D%7D%7B2a%7D)

Это вручную включает LaTex в текст альтернативного изображения и использует закодированный URL для рендеринга на GitHub.

Многострочный рендеринг

Если вам нужен многострочный рендеринг, проверьте этот ответ .


1
это работало отлично. Мне пришлось конвертировать блокнот Jupyter (.ipynb), .mdи уравнения были по сути многострочным латексным кодом.
Марк Максмейстер

12

Если вы просто хотите показать математику в браузере для себя, вы можете попробовать расширение Chrome GitHub с MathJax . Это довольно удобно.


1
при иконке icon16.png возникает ошибка
Homero Esmeraldo

11

Еще один обходной путь - использовать записные книжки Jupyter и использовать режим уценки в ячейках для визуализации уравнений.

Основные вещи, кажется, работают отлично, как центрированные уравнения

\begin{equation}
...
\end{equation}

или встроенные уравнения

$ \sum_{\forall i}{x_i^{2}} $

Хотя одна из функций, которые я действительно хотел, вообще не выполнялась в github \mbox{}, что было обломом. Но в целом это был самый успешный способ рендеринга уравнений на github.


3
Спасибо за этот ответ, но есть одна проблема: мне удалось использовать ноутбук Jupyter в режиме уценки, и уравнение выглядит нормально. Однако, как теперь вы можете перенести эту уценку Jupyter readme.mdна GitHub?
DavidC.

1
Уравнения не отображаются непосредственно в файлах Markdown. Уравнения в значительной степени должны быть изображениями, чтобы быть на readme.md. Тем не менее, вы всегда можете просто надеть file.ipynbGitHub, и GitHub делает его хорошо.
helicle

8

Сейчас 2020 год, позвольте мне подвести итоги прогресса в оказании поддержки математической формулы для хостов репозитория исходного кода.

GitHub & Bitbucket

GitHub и Bitbucket по- прежнему не поддерживают отображение математических формул, будь то разделители по умолчанию или другие.

Bitbucket Cloud / BCLOUD-11192 - добавлена ​​поддержка LaTeX в документах MarkDown (BB-12552)

GitHub / разметка - рендеринг математических уравнений

GitHub / разметка - поддержка латекса

Форум сообщества GitHub - [ЗАПРОС ОСОБЕННОСТИ] LaTeX Math в Markdown

talk.commonmark.org - Может ли математическая формула добавлена ​​к уценке?

В последние годы GitHub практически не достиг существенного прогресса.

GitLab

GitLab уже поддерживается, но не самым распространенным способом. Он использует свой собственный разделитель.

This math is inline $`a^2+b^2=c^2`$.

This is on a separate line

```math
a^2+b^2=c^2
```

GitLab ароматизированная уценка - математика

Кто поддерживает универсальные разделители?

Парсер Markdown, используемый Hugo

Другие способы рендеринга


6

Хотя GitHub не будет интерпретировать формулы MathJax, вы можете автоматически создать новый документ Markdown с заменой формул изображениями.

Я предлагаю вам взглянуть на приложение GitHub TeXify :

Приложение GitHub, которое ищет в ваших файлах файлы с расширением * .tex.md и отображает их выражения TeX как изображения SVG.

Как это работает (из исходного репозитория ):

Всякий раз, когда вы нажимаете, TeXify будет запускаться и искать файлы * .tex.md в вашем последнем коммите. Для каждого из них он запустит readme2tex, который примет выражения LaTeX, заключенные в знаки доллара, преобразует его в простые изображения SVG, а затем сохранит вывод в файл расширения .md (это означает, что файл с именем README.tex.md будет обработан и вывод будет сохранен как README.md). После этого выходной файл и новые изображения SVG затем фиксируются и возвращаются в репозиторий.


2

Есть хорошее решение для вашей проблемы - используйте плагин TeXify github (упомянутый в ответе Тома Хейла - но я разработал его ответ в приведенной ниже ссылке) - более подробную информацию об этом плагине github и объяснение, почему это хороший подход, вы можете найти в этом ответе .


2

Я использую нижеупомянутый процесс, чтобы преобразовать уравнения в уценку. Это работает очень хорошо для меня. Это очень просто!

Допустим, я хочу представить матричное уравнение умножения

Шаг 1:

Получите скрипт для ваших формул здесь - https://csrgxtu.github.io/2015/03/20/Writing-Mathematic-Fomulars-in-Markdown/

Мой пример: я хотел представить Z(i,j)=X(i,k) * Y(k, j); k=1 to nформулы суммирования. При ссылке на сайт необходим скрипт был =>

введите описание изображения здесь

Z_i_j=\sum_{k=1}^{10} X_i_k * Y_k_j

Шаг 2:

Используйте URL-кодировщик - https://www.urlencoder.org/, чтобы преобразовать скрипт в действительный URL-адрес.

Мой пример:

введите описание изображения здесь

Шаг 3:

Используйте этот веб-сайт для генерации изображения, скопировав результат шага 2 в параметре запроса «eq» - http://www.sciweavers.org/tex2img.php?eq=<b><i>paste-output-here</i></b>&bc=White&fc=Black&im=jpg&fs=12&ff=arev&edit=

- Мой пример:
http://www.sciweavers.org/tex2img.php?eq=Z_i_j=\sum_ndomk = 1} ^ {10}% 20X_i_k% 20 *% 20Y_k_j & Ьс = White & к = Black & им = JPG & фс = 12 & ФФ = Arev и редактировать =

введите описание изображения здесь

Шаг 4:

Эталонное изображение с использованием синтаксиса уценки ![alt text](enter url here)

- скопируйте его в уценку, и все готово:

![Z(i,j)=X(i,k) * Y(k, j); k=1 to n](http://www.sciweavers.org/tex2img.php?eq=Z_i_j%3D%5Csum_%7Bi%3D1%7D%5E%7B10%7D%20X_i_k%20%2A%20Y_k_j&bc=White&fc=Black&im=jpg&fs=12&ff=arev&edit=)

Изображение ниже - результат уценки. Ура!!


введите описание изображения здесь


Любой, кто читает это, "Typora" - мое новое любимое приложение уценки ... просто говорю
Декстер

0

Что касается преобразования текста → изображения, инструмент LaTeXiT производит намного более качественный вывод. Я считаю, что он является стандартным в большинстве дистрибутивов TeX, но вы наверняка найдете его в Интернете, если у вас его еще нет. Все, что вам нужно сделать, это поместить его в TeX, перетащить изображение на рабочий стол, а затем перетащить с рабочего стола на сайт хостинга изображений (я использую imgur).


Следует отметить, что LaTeXiT, похоже, работает только под MacOS (хотя это явно не указано на веб-сайте).
ƒacu.-

0

Я использовал следующее в заголовке файла вниз

<script type="text/javascript" async
src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js? 
config=TeX-MML-AM_CHTML"
</script>

Затем набрал следующий оператор mathjax
$$ x_ {1,2} = \ frac {-b \ pm \ sqrt {b ^ 2-4ac}} {2b}. $$
Это сработало для меня

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.