如何在 Visual Studio 代码中的 Jupyter 笔记本中使用 Latex?

Maj*_*jis 8 formatting markdown latex visual-studio-code jupyter-notebook

我已经看到了与这个问题相关的一些其他链接,如下:

  1. 如何在IPython Notebook中编写LaTeX?
  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

然而,我在 Jupyter Notebook 中使用 Latex 代码时仍然面临一些问题。

例如,

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

这工作正常,Markdown但是

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

才不是。

在尝试使用以下命令创建有序列表时

\begin{enumerate}
  \item The labels consists of sequential numbers.
  \item The numbers starts at 1 with every call to the enumerate environment.
\end{enumerate}
Run Code Online (Sandbox Code Playgroud)

然而,$\textbf{This is a bold text.}$有效。

我真的很困惑我能用什么和什么不能用。有什么方法可以让我在 Visual Studio 代码中仅使用 Latex 代码(而不是 HTML 或其他代码)来格式化我的文本和方程,而不必担心哪些有效哪些无效?

Hél*_*ins 2

简短而务实的答案是:你不能。

\n

当您在 Markdown 单元格中键入类似内容时,Jupyter Notebook 实际上所做的是将其发送到名为MathJax$ a^2 $的库。Mathjax 则不会使用标准 LaTeX 编译器来编译您键入的 TeX 代码。相反,它只是寻找数学环境并尝试将类似 TeX 的语法处理成 MathJax 可以理解的东西。

\n

深入研究 LaTeX 材料

\n

(La)TeX 有两种模式:文本模式和数学模式,TeX 编译器分别处理这两种模式。例如,打开 TeX 编辑器并尝试编译以下代码。

\n
\\documentclass{article}\n\\begin{document}\na^2\n\n$ a\xc3\xa7\xc3\xa3o $\n\\end{document}\n
Run Code Online (Sandbox Code Playgroud)\n

您将收到该错误:

\n
! Missing $ inserted.\n<inserted text> \n$\nl.4     \n   \nI\'ve inserted a begin-math/end-math symbol since I think\nyou left one out. Proceed, with fingers crossed.\n\nMissing character: There is no \xc3\xa7 (U+00E7) in font cmmi10!\nMissing character: There is no \xc3\xa7 (U+00E7) in font cmmi10!\nMissing character: There is no \xc3\xa3 (U+00E3) in font cmmi10!\nMissing character: There is no \xc3\xa3 (U+00E3) in font cmmi10!\n
Run Code Online (Sandbox Code Playgroud)\n

它告诉你(1)不能^文本模式下使用;(2)在数学模式下不能\xc3\xa7使用和等 unicode 字符\xc3\xa3

\n

此时,重要的是要记住环境是由包align提供的,并且不存在于“普通”LaTeX 中amsmathmathtools

\n

返回 MathJax

\n

与真正的 LaTeX 编译器不同,MathJax 并不实现整个 TeX 宏宇宙,而仅实现与数学模式相关的宏(顾名思义)。来自文档

\n
\n

请注意,TeX 输入处理器仅实现 TeX 和 LaTeX 的数学模式宏,而不实现文本模式宏。MathJax 希望您使用标准 HTML 标签来处理页面文本的格式;它只处理数学。因此,例如,MathJax 不实现\\emph\\begin{enumerate}...\\end{enumerate}或其他文本模式宏或环境。您必须使用 HTML 来处理此类格式化任务。如果您需要 LaTeX 到 HTML 转换器,您应该考虑其他选项

\n
\n

不过,也有一些例外。TeX 输入处理器的默认配置允许检测数学模式之外的环境,因此与数学相关的环境(equationalignmatrix等)可以正确排版。回想一下,LaTeX 并不是现成align的,而 MathJax 却可以。

\n

那么越野车环境又如何呢equation

\n

关于你的越野equation环境,它更多的是 LaTeX 的东西。equation环境也不支持换行符 ( \\\\) &(第一个我无法确切解释原因,但TeX SE中的某人肯定可以),因此您的输入无效

\n