Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

A simple question (in theory): is there any (La)TeX distribution for Windows that is capable of running as a daemon? I am not aware that either MiKTeX or TeX Live are capable as running as daemons on Windows, but are there any other solutions? Failing this, if I wanted to hack an existing TeX distribution to run as a daemon, what would be the best approach?

A few features that the daemon should have, ideally:

  • One-time loading.
  • Load the preamble separately, so multiple documents can be generated without reloading the preamble.
  • Run as a Windows Service. (optional)
  • Callable as a library/API. (optional)
  • Input TeX and output DVI/PNG via standard I/O or pipes. (optional)

Any information or suggestions on the subject would be much appreciated.

Edit 1: Specifically, I am also rather curious how the preview-latex package for EMACS works. This seems to have a very similar usage in mind to what I intend.

Edit 2: I've just recalled that the Instant Preview feature of LyX also closely represents what I want to achieve. Additionally, this seems to work on Windows. An explanation/overview of this system and the daemon it uses would be very helpful.

share|improve this question
add comment

4 Answers

There is William Blum's LaTeXDaemon:

http://william.famille-blum.org/software/latexdaemon/index.html

It's on Google code as well, but I am only allowed one hyperlink.

It will generate a format for the preamble and re-compile every time the document is saved.

share|improve this answer
1  
Thanks for the suggestion. I've actually looked at this before and it doesn't seem to be a true TeX daemon. It's mainly a file system watcher from what I can tell. It is also mysterious how it "precompiles" the preamble using only a standard MiKTeX distribution. –  Noldorin Aug 5 '10 at 11:45
    
In response to your other answer: Cheers, that explains half the story. However, doesn't this LaTeXDaemon still have to relaunch the LaTeX program on each run? Where is the preamble preserved in that case? –  Noldorin Aug 5 '10 at 16:13
add comment

MathTran runs TeX as a daemon. For macros it runs a secure variant of plain TeX, but with some LaTeX additions, such as \frac. Several years ago it could typeset a single formula in about 10 milliseconds (and so too cheap to be worth caching).

There's an experimental online editor, which gives instant preview (if you have a good internet connection).

To learn more about the technology behind MathTran go to its wiki.

Disclaimer: I'm the developer of MathTran.

share|improve this answer
    
Looks like a pretty nice project there. Judging by the username, it seems you're also a main developer on the TeX Daemon project on SF.net, though this and the (forked?) PyTeX project look to be Linux only - correct me if I'm wrong. What does MathTran use internally? I suppose there's no chance of open-sourcing it? :) –  Noldorin Aug 5 '10 at 11:58
    
Yes, I'm behind the TeX daemon also. The MathTran site is open-source, but not as easy to get hold of and install as I would like. For technical reasons, the TeX daemon requires Unix style sockets (so that it can make a select()). –  Jonathan Fine Aug 5 '10 at 14:07
    
I see... In that case, do you have any idea what Instant Preview does (for LyX), especially when running on Windows? It seems you're responsible for this project to, judging by a paper written in 2001. –  Noldorin Aug 5 '10 at 15:03
add comment

The "mysterious precompilation" by LaTeXDeamon is done by creating a custom format using mylatex http://ctan.org/pkg/mylatex.

share|improve this answer
    
LaTeXDaemon must compile your document again loading of packages and definitions from the preamble are dumped to a format file and is therefore much quicker than if you compile in the tradidtional way. Try making a document (test.tex) that loads TikZ or other huge packages and then create a custom format with mylatex: (one line): pdftex -ini -fmt=mytest -jobname=mytest -progname=pdflatex \&pdflatex mylatex.ltx test.tex this will generate mytest.fmt and you can now compile the document with pdftex -fmt=mytest.fmt test.tex –  Martin Heller Aug 5 '10 at 16:39
    
Thanks Martin, that makes things pretty clear to me now. This sort of confirms my view though, that LaTeXDaemon is not a true daemon in that stays running indefinitely and can serve multiple users. –  Noldorin Aug 5 '10 at 16:54
add comment

The BaKoMa TeX system http://www.bakoma-tex.com/ has a dynamical preview feature that you might find interesting as well.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.