Un software de látex de línea de comandos ligero

Un software de látex de línea de comandos ligero

Soy muy nuevo en LaTeX y quiero implementar Latex en Open Office solo para escribir ecuaciones matemáticas como:http://www.hostmath.com/para poder escribir ecuaciones matemáticas directamente (sin paquetes) y convertirlas en una imagen png, para Windows. (sería bueno si ese software fuera compatible con Linux/mac)

como:

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

Dado que OpenOffice no es compatible con LaTeX, estaré encantado de extenderlo a la comunidad.

Además, se necesita un software de línea de comandos liviano (<5 MB, preferiblemente; de ​​lo contrario, sería difícil para otros descargar mi extensión).

Respuesta1

Es posible utilizar la standaloneclase para pdflatexllamar a la convertherramienta del programa imagemagickpara compilar y convertir a .pnguna ecuación de una sola vez (veresta respuestapara un resumen).

Un breve script para insertar la entrada estándar en un documento mínimo con el preámbulo correcto es todo lo que se necesita para crear su widget de línea de comando. Esto debería ser posible con la mayoría de los idiomas; Utilicé Python (3) porque estoy familiarizado con la sintaxis. En un archivo llamado 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.')

Entonces, por ejemplo,

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

produjo el.png

salidapng

Es posible que desee editar el código del preámbulo para cargar paquetes adicionales y cambiar las opciones independientes (consulte la documentación independiente para obtener detalles sobre estas). Déjame saber si necesitas ayuda para que el script funcione o para hacerlo más sólido.

información relacionada