我有一堆单行 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')