Как использовать латекс в записной книжке Jupyter внутри кода Visual Studio?

Я уже видел некоторые другие ссылки, связанные с этим вопросом, которые указаны ниже:

  1. Как написать LaTeX в IPython Notebook?
  2. https://towardsdatascience.com/write-markdown-latex-in-the-jupyter-notebook-10985edb91fd
  3. https://colab.research.google.com/drive/18_2yFdH8G-6NXY_7fTcshMoScgJ-SYac#scrollTo=go3imAWqE9au

Тем не менее, я все еще сталкиваюсь с некоторыми проблемами при использовании кода Latex в записной книжке Jupyter.

Например,

\begin{align*}
  f(x) &= x^2\\
  g(x) &= \frac{1}{x}\\
  F(x) &= \int^a_b \frac{1}{3}x^3
\end{align*}

Это отлично работает как Markdown, но

\begin{equation*}
  f(x) &= x^2\\
  g(x) &= \frac{1}{x}\\
  F(x) &= \int^a_b \frac{1}{3}x^3
\end{equation*}

не.

При попытке создать упорядоченный список, используя следующие

\begin{enumerate}
  \item The labels consists of sequential numbers.
  \item The numbers starts at 1 with every call to the enumerate environment.
\end{enumerate}

Однако $\textbf{This is a bold text.}$ работает.

Это действительно сбивает с толку, что я могу использовать и еще много чего. Есть ли способ, чтобы я мог использовать только латексный код (без HTML или другого кода) внутри кода Visual Studio для форматирования моих текстов и уравнений, не беспокоясь о том, что будет работать, а что нет?


person Majis    schedule 13.07.2020    source источник


Ответы (2)


Короткий и очень прагматичный ответ: вы не можете.

Когда вы вводите что-то вроде $ a^2 $ в ячейку уценки, Jupyter Notebook фактически отправляет его в библиотеку с именем MathJax. Mathjax, в свою очередь, не компилирует код TeX, который вы ввели с помощью стандартного компилятора LaTeX. Вместо этого он просто ищет математические среды и пытается преобразовать синтаксис, подобный TeX, во что-то, что может понять MathJax.

Дайвинг в LaTeX-ерунде

В (La) TeX есть два режима: текстовый режим и математический режим, которые обрабатываются компилятором TeX отдельно. Например, откройте свой редактор TeX и попробуйте скомпилировать следующий код.

\documentclass{article}
\begin{document}
a^2

$ ação $
\end{document}

Вы получите эту ошибку:

! Missing $ inserted.
<inserted text> 
$
l.4     
   
I've inserted a begin-math/end-math symbol since I think
you left one out. Proceed, with fingers crossed.

Missing character: There is no ç (U+00E7) in font cmmi10!
Missing character: There is no ç (U+00E7) in font cmmi10!
Missing character: There is no ã (U+00E3) in font cmmi10!
Missing character: There is no ã (U+00E3) in font cmmi10!

Он сообщает вам, что (1) вы не можете использовать ^ в текстовом режиме; (2) вы не можете использовать символы Юникода, такие как ç и ã, в математическом режиме.

На этом этапе важно помнить, что align среды являются любезными amsmath или mathtools пакетами и не существуют в простом LaTeX.

Вернуться к MathJax

В отличие от настоящего компилятора LaTeX, MathJax не реализует всю вселенную макросов TeX, а только те, которые связаны с математическим режимом (как следует из названия). Из документации:

Обратите внимание, что процессор ввода TeX реализует только макросы математического режима TeX и LaTeX, но не макросы текстового режима. MathJax ожидает, что вы будете использовать стандартные теги HTML для обработки форматирования текста вашей страницы; он занимается только математикой. Так, например, MathJax не реализует \emph или \begin{enumerate}...\end{enumerate} или другие макросы или среды текстового режима. Вы должны использовать HTML для обработки таких задач форматирования. Если вам нужен конвертер LaTeX в HTML, вам следует рассмотреть другие варианты..

Однако есть и исключения. конфигурация по умолчанию процессора ввода TeX позволяет обнаружение сред вне математического режима, поэтому среда, связанная с математикой (equation, align, matrix и т. д.), может быть правильно набрана. Напомним, что LaTeX не реализует align из коробки, в то время как MathJax делает.

А как насчет equation глючной среды?

Что касается вашей equation среды с ошибками, это больше похоже на LaTeX. equation среды не поддерживают разрывы строк (\\) и & (первый, я не могу точно объяснить, почему, но, конечно, кто-то из TeX SE может), поэтому введенные вами данные недействительны.

person Héliton Martins    schedule 13.11.2020

Теперь вы можете использовать последнюю версию VS Code. Функция все еще находится в предварительной версии (на момент написания), поэтому вы должны включить ее в settings.json, добавив "notebook.experimental.useMarkdownRenderer": true

Перезапустите VS Code и попробуйте $$ y = x ^ 2 $$ и нажмите ctrl + enter, чтобы увидеть его отрисовку. Я думаю, что на данный момент уравнение должно быть выделено отдельной строкой.

Вот объявление: https://code.visualstudio.com/updates/v1_55#_preview-features

person daniekpo    schedule 27.04.2021