Expose latex command tool chain

Dvi isn't compatible with quite a few Latex packages. I have been trying to include chemical formulas with the chemfig package. Exposing the tool chain to plugins would be very useful. For the record, I'm currently using:

´´´python
latexCmds = [
    ["pdflatex", "-interaction=nonstopmode", "tmp.tex"],
    ["pdflatex", "-interaction=nonstopmode", "tmp.tex"],
    ["pdfcrop", "tmp.pdf"],
    ["convert", "-density", "300", "tmp-crop.pdf", "tmp.png"]
]
´´´
This commit is contained in:
Joel Meyer-Hamme 2014-05-20 19:08:54 +02:00
parent 7134da4cd6
commit 980c68b2b0

View file

@ -7,8 +7,11 @@ from anki.utils import checksum, call, namedtmp, tmpdir, isMac, stripHTML
from anki.hooks import addHook
from anki.lang import _
latexCmd = ["latex", "-interaction=nonstopmode"]
latexDviPngCmd = ["dvipng", "-D", "200", "-T", "tight"]
latexCmds = [
["latex", "-interaction=nonstopmode", "tmp.tex"],
["dvipng", "-D", "200", "-T", "tight", "tmp.dvi", "-o", "tmp.png"]
]
build = True # if off, use existing media but don't create new
regexps = {
"standard": re.compile(r"\[latex\](.+?)\[/latex\]", re.DOTALL | re.IGNORECASE),
@ -89,14 +92,10 @@ package in the LaTeX header instead.""") % bad
oldcwd = os.getcwd()
png = namedtmp("tmp.png")
try:
# generate dvi
os.chdir(tmpdir())
if call(latexCmd + ["tmp.tex"], stdout=log, stderr=log):
return _errMsg("latex", texpath)
# and png
if call(latexDviPngCmd + ["tmp.dvi", "-o", "tmp.png"],
stdout=log, stderr=log):
return _errMsg("dvipng", texpath)
# generate png
for latexCmd in latexCmds:
if call(latexCmd, stdout=log, stderr=log):
return _errMsg(latexCmd[0], texpath)
# add to media
shutil.copyfile(png, os.path.join(mdir, fname))
return