将 latex 源代码编译成 unicode 字符串

将 latex 源代码编译成 unicode 字符串

我有一堆单行 LaTeX 字符串,我想将其编译成 unicode 字符串(最好使用 Python,但任何解决方案都可以)。具体实现

in: '\"o{A}c'
out: 'öAc'

(我意识到latexcodec,但我发现它不可靠,所以我正在寻找替代方法。)

我认为唯一可靠的方法是使用系统 LaTeX 编译器,具体来说

  • 将字符串编译成 PDF,然后
  • 读取 PDF 文件的输出。

有没有更简化的方法?例如:是否可以将 LaTeX 编译为内存中的 unicode 字符串而不是 PDF?

答案1

潘多克对于不太复杂的文档来说,它表现不错。尝试

echo "\\\"o{A}c" | pandoc -f latex -t plain

或者,在 Python 中,

def latex_to_unicode(latex_string):
    '''Convert a LaTeX string to unicode.
    '''
    # Use pandoc for the job
    try:
        # This works in Python 3.4+
        return subprocess.check_output(
            ['pandoc', '-f', 'latex', '-t', 'plain'],
            input=latex_string
            )
    except TypeError:  # unexpected keyword 'input'
        p = subprocess.Popen(
            ['pandoc', '-f', 'latex', '-t', 'plain'],
            stdin=subprocess.PIPE,
            stdout=subprocess.PIPE,
            stderr=subprocess.PIPE
            )
        stdout, stderr = p.communicate(latex_string)
        return stdout.replace('\n', ' ').strip().decode('utf-8')

相关内容