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 standalone
clase para pdflatex
llamar a la convert
herramienta del programa imagemagick
para compilar y convertir a .png
una 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
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.