Инструмент, подобный 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 с помощью стандартной утилиты. В противном случае вы можете просто использовать отрендеренный вывод напрямую.

Связанный контент