一個輕量級命令列 Latex 軟體

一個輕量級命令列 Latex 軟體

我對 LaTeX 非常陌生,希望在 Open Office 中實作 Latex 來編寫數學方程,如下所示:http://www.hostmath.com/這樣我就可以直接編寫數學方程式(無需套件)並將其轉換為適用於 Windows 的 png 圖像。 (如果軟體支援Linux/mac就好了)

喜歡:

xyz.exe -convert "\oint \frac-b \pm \sqrt{b^2 - 4ac}}{2a}, \space \forall a,b,c \in \mathbb{N}, \text{xyz text} dr" C:/temp/latex/001.png

由於 OpenOffice 不支援 LaTeX,我很樂意為社群擴展它。

另外,需要一個輕型命令列軟體(最好是<5mb,否則其他人很難下載我的擴充功能。)

答案1

可以利用該類別standalonepdflatex呼叫convert程式的工具imagemagick,從而.png一次性編譯並轉換為方程式(參見這個答案進行總結)。

製作命令列小工具所需的只是一個簡短的腳本,用於將標準輸入插入到具有正確前導碼的最小文件中。對於大多數語言來說這應該是可能的;我使用 python (3),因為我熟悉語法。在一個名為的檔案中textopng.py

#!/usr/bin/env python
import sys, os, subprocess
# Tested with Python 3.7.2 (4.20.10-arch1-1-ARCH)
# Requires imagemagick
# Name of .tex created (.png will have same name up to the extension)
tex_file = 'outf.tex'
# Preamble code - add additional \usepackage{} calls to this string
# Note: The size option of convert may be useful e.g. size=640
preamble = r'\documentclass[convert={density=900,outext=.png},preview,border=1pt]{standalone}\usepackage{amsmath}'
# Place input in inline math environment
equation = r'\(' + sys.argv[1] + r'\)'
# Construct our mini latex document
latex_string =  preamble + '\n' + r'\begin{document}' + equation + r'\end{document}'
# Write to tex_file
with open(tex_file, 'w') as f:
    f.write(latex_string)
try:
    # Compile .tex with pdflatex. -shell-escape parameter required for convert option of standalone class to work
    proc = subprocess.run(["pdflatex", "-shell-escape", tex_file], capture_output=True, text=True,stdin=subprocess.DEVNULL, timeout=3)
    if proc.stderr != '':
        # Print any error
        print('Process error:\n{}'.format(proc.stderr))
    if proc.stdout != '':
        # Print standard output from pdflatex
        print('Process output:\n{}'.format(proc.stdout))
# Timeout for process currently set to 3 seconds
except subprocess.TimeoutExpired:
    print('pdflatex process timed out.')

那麼,例如,

python3 textopng.py  "x=\frac{y^2}{32}"

產生了.png

輸出png

您可能需要編輯序言代碼以加載其他包並更改獨立選項(有關這些的詳細信息,請參閱獨立文檔)。如果您需要幫助使腳本正常工作或使其更加健壯,請告訴我。

相關內容