类似 Markdown 的工具,用于将“人类”文本转换为合理的 LaTeX 代码?

类似 Markdown 的工具,用于将“人类”文本转换为合理的 LaTeX 代码?

在我的理想世界里,我能够写出类似

So here are the steps:
- So now we define x^* = min { x | sum_kk ||f(x_kk^20)|| } and then do blah
    - But this requires another indented bullet point with a couple equations:
        a = 1/2 + 1
        b = c + d
- Now I have another step

并让它自动转换为 LaTeX 中相当类似的内容,例如:

So here are the steps:
\begin{itemize}
    \item So now we define $x^* = \min \left\{ x \middle| \sum_{kk} \lVert f(x_{kk}^{20}) \rVert \right\}$ and then do blah
        \begin{itemize}
            \item But this requires another indented bullet point
            \begin{align*}
                a &= 1/2 + 1  \\
                b &= c + d
            \end{align*}
        \begin{itemize}
    \item Now I have another step
\end{itemize}

我意识到可能没有工具可以确切地我想要的,但是有没有什么工具可以帮助我做任何类似的事情,帮助我节省手指并减少打字?

笔记:

  1. 我是不是尝试转换手写内容。关于这一点,已经有一个问题了。

  2. “正确”的输出是主观的。没关系。我只想要合理的东西。

  3. 如果需要,我可以输入$...$和以及所有内容,但我希望输入的 内容\尽可能少。
    远的最难输入的是\begin{ENVIRONMENT}...\end{ENVIRONMENT}、、\left...\middle...\right和这类冗长的结构。

答案1

正如我们在评论和聊天中所讨论的那样,没有办法以明确的方式解析数学。因此,大多数将某些内容转换为 LaTeX 的工具都没有实现任何复杂的数学解析技术,如您的问题所示。

但是,该pandoc工具接受内联 LaTeX 数学。请考虑以下保存为的示例test.md

So here are the steps:

- So now we define $x^* = \min\left\{ x \middle| \sum_{kk} \|f(x_{kk}^{20})\| \right\}$ and then do blah
    - But this requires another indented bullet point with a couple equations:
      \begin{align*}
        a &= 1/2 + 1 \\
        b &= c + d \\
      \end{align*}
- Now I have another step

现在您可以将此pandoc代码片段转换为 LaTeX。

pandoc -f markdown -t latex -o test.tex test.md

结果text.tex将包含以下内容

So here are the steps:

\begin{itemize}
\itemsep1pt\parskip0pt\parsep0pt
\item
  So now we define
  $x^* = \min\left\{ x \middle| \sum_{kk} \|f(x_{kk}^{20})\| \right\}$
  and then do blah

  \begin{itemize}
  \itemsep1pt\parskip0pt\parsep0pt
  \item
    But this requires another indented bullet point with a couple
    equations:

    \begin{align*}
        a &= 1/2 + 1 \\
        b &= c + d \\
      \end{align*}
  \end{itemize}
\item
  Now I have another step
\end{itemize}

答案2

事实证明它存在并且被称为 ASCIIMath

它似乎将 HTML 中的数学转换为 MathML,以便 MathJax 进行渲染。

之后,如果您确实想要 LaTeX 代码,您可以使用标准实用程序将 MathML 转换为 LaTeX。否则,您可以直接使用渲染的输出。

相关内容