Подтвердить что ты не робот

Латексная рендеринг в README.md на Github

Есть ли способ рендеринга LaTex в README.md в репозитории GitHub? Я искал его и искал в переполнении стека, но ни один из связанных ответов не представляется возможным.

4b9b3361

Ответ 1

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

- <img src="https://latex.codecogs.com/gif.latex?O_t=\text { Onset event at time bin } t " /> 
- <img src="https://latex.codecogs.com/gif.latex?s=\text { sensor reading }  " /> 
- <img src="https://latex.codecogs.com/gif.latex?P(s | O_t )=\text { Probability of a sensor reading value when sleep onset is observed at a time bin } t " />

Что должно привести к чему-то вроде следующего

gif.latex?O_t=%5Ctext%20%7B%20Onset%20event%20at%20time%20bin%20%7D%20t%20

gif.latex?s=%5Ctext%20%7B%20sensor%20reading%20%7D%20%20

gif.latex?P(s%20|%20O_t%20)=%5Ctext%20%7B%20Probability%20of%20a%20sensor%20reading%20value%20when%20sleep%20onset%20is%20observed%20at%20a%20time%20bin%20%7D%20t%20

Обновление: это прекрасно работает в Eclipse, но, к сожалению, не в GitHub. Единственный обходной путь следующий:

Возьмите свое уравнение латекса и перейдите по адресу http://www.codecogs.com/latex/eqneditor.php. В нижней части области, где отображается ваше уравнение, есть небольшое выпадающее меню, выберите закодированный URL-адрес и вставьте его в свой файл. Уценка GitHub следующим образом:

![equation](http://latex.codecogs.com/gif.latex?O_t%3D%5Ctext%20%7B%20Onset%20event%20at%20time%20bin%20%7D%20t)
![equation](http://latex.codecogs.com/gif.latex?s%3D%5Ctext%20%7B%20sensor%20reading%20%7D) 
![equation](http://latex.codecogs.com/gif.latex?P%28s%20%7C%20O_t%20%29%3D%5Ctext%20%7B%20Probability%20of%20a%20sensor%20reading%20value%20when%20sleep%20onset%20is%20observed%20at%20a%20time%20bin%20%7D%20t)

Ответ 2

Readme2Tex

Я работал над script, который автоматизирует большую часть беспорядка из-за того, что вы легко набираете LaTeX-набор в уценку Github: https://github.com/leegao/readme2tex

Есть несколько проблем с рендерингом LaTeX для Github. Во-первых, уценка Github - это самые разные теги и большинство атрибутов. Это не означает, что библиотеки, основанные на Javascript (например, Mathjax), ни CSS-стиль.

Естественное решение, по-видимому, заключается в том, чтобы вставлять изображения предварительно скомпилированных уравнений. Тем не менее, вы скоро поймете, что LaTeX делает больше, чем просто превращает формулы, заключенные в доллары, в изображения.

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

Простое вложение изображений из онлайн-компиляторов дает этот неестественный взгляд на ваш документ. На самом деле, я бы сказал, что он еще более читабельен в вашем повседневном математическом сленге x ^ 2, чем прыгать c068b57af6b6fa949824f73dcb828783.svg.

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

Например, вот выдержка из файла .md относительно некоторых перечисляемых свойств набора регулярных выражений с помощью readme2tex:

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

Как и следовало ожидать, набор уравнений вверху задается путем запуска соответствующей среды align*

**Theorem**: The translation $[\![e]\!]$ given by
\begin{align*}
...
\end{align*}
...

Обратите внимание, что в то время как встроенные уравнения ($... $) работают с текстом, отображаемые уравнения (те, которые ограничены символом \begin{ENV}...\end{ENV} или $$...$$), центрированы. Это облегчает людям, которые уже привыкли к LaTeX, чтобы быть продуктивными.

Если это звучит как нечто, что может помочь, обязательно проверьте его. https://github.com/leegao/readme2tex

Ответ 3

Моя хитрость заключается в использовании ноутбука Jupyter.

GitHub имеет встроенную поддержку для рендеринга файлов .ipynb. Вы можете написать inline и отобразить код LaTeX в блокноте, и GitHub предоставит его вам.

Вот пример файла тетради: https://gist.github.com/cyhsutw/d5983d166fb70ff651f027b2aa56ee4e

Ответ 4

Можно также использовать этот онлайн-редактор: https://www.codecogs.com/latex/eqneditor.php, который генерирует файлы SVG на лету. Вы можете поместить ссылку в свой документ следующим образом ![](https://latex.codecogs.com/svg.latex?y%3Dx%5E2) что приведет к: .

Ответ 5

Я загружаю репозитории с уравнениями в Gitlab, потому что он имеет встроенную поддержку LaTeX в файлах .md:

'''math
SE = \frac{\sigma}{\sqrt{n}}
'''

Синтаксис для встроенного латекса: $'\sqrt{2}'$.

Gitlab отображает уравнения с помощью JavaScript в браузере вместо отображения изображений, что улучшает качество уравнений.

Больше информации здесь.

Давайте надеяться, что Github осуществит это и в будущем.

Ответ 6

Для автоматического преобразования при загрузке в GitHub, взгляните на приложение TeXify:

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

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

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

Ответ 7

Я тестирую какое-то решение, предложенное другими, и я бы хотел порекомендовать TeXify, созданную и предложенную в комментарии agurodriguez и далее описанную Томом Хейлом, - я хотел бы развить его ответ и объяснить, почему это очень хорошее решение:

  • TeXify - это оболочка Readme2Tex (упомяните в ответе Ли). Чтобы использовать Readme2Tex, вы должны установить большое количество программного обеспечения на свой локальный компьютер (python, latex,...), но TeXify - это плагин github, поэтому вам не нужно ничего устанавливать на локальный компьютер - вам нужна только онлайн-установка, которая подключите свою учетную запись github, нажав одну кнопку, и выберите репозитории, для которых TeXify будет иметь доступ на чтение/запись для анализа ваших текстовых формул и создания изображений.
  • Когда в вашем хранилище вы создаете или обновляете файл *.tex.md, TeXify обнаружит изменения и сгенерирует файл *.md котором будут заменены латексные формулы его изображениями, сохраненными в каталоге tex в вашем репо. Поэтому, если вы создадите файл README.tex.md, TeXify сгенерирует README.md с изображениями вместо текстовых формул. Таким образом, синтаксический анализ формул tex и создание документации выполняется автоматически при каждом коммите и нажатии :)
  • Поскольку все ваши формулы превращаются в рисунки в каталоге tex а в файле README.md используются ссылки на эти рисунки, вы даже можете удалить TeXify, и вся ваша старая документация все равно будет работать :). Каталог tex и файлы *.tex.md останутся в хранилище, поэтому у вас есть доступ к исходным формулам и рисункам из латекса (вы также можете безопасно хранить в каталоге tex ваши другие изображения документации, "сделанные вручную" - TeXify их не трогает),
  • Вы можете использовать синтаксис латексных уравнений непосредственно в файле README.tex.md (без потери синтаксиса уценки .md), что очень удобно. Юлий в своем ответе предложил использовать специальные ссылки (с формулами) на внешний сервис, например. http://latex.codecogs.com/gif.latex?s%3D%5Ctext%20%7B%20sensor%20reading%20%7D что хорошо, однако, имеет некоторые недостатки: формулы в ссылках не легко (удобно) читать и обновлять, и если возникнет какая-то проблема с этим сторонним сервисом, ваша старая документация перестанет работать... В TeXify ваша старая документация будет работать всегда, даже если вы удалите этот плагин (потому что все ваши изображения, созданные из латексных формул, остаться в репо в tex каталоге).
  • Yuchao Jiang в своем ответе предложил использовать Jupyter Notebook, что также неплохо, но имеет некоторые недостатки: вы не можете использовать формулы непосредственно в файле README.md, вам нужно сделать ссылку на другой файл *.ipynb в вашем репо, который содержит латекс (MathJax) формулы. Формат файла *.ipynb - JSON, который не очень удобен в обслуживании (например, Gist не показывает подробную ошибку с номером строки в файле *.ipynb, когда вы забыли поставить запятую в нужном месте...).

Вот ссылка на некоторые из моих репо, где я использую TeXify, для которого документация была сгенерирована из файла README.tex.md.