web commit by PatrickWinnertz
[ikiwiki.git] / doc / todo / latex.mdwn
1 How about a plugin adding a
2 [[preprocessor_directive|preprocessordirective]] to render some given LaTeX
3 and include it in the page?  This could either render the LaTeX as a PNG via
4 [[debpkg dvipng]] and include the resulting image in the page, or perhaps
5 render via [HeVeA](http://pauillac.inria.fr/~maranget/hevea/index.html),
6 [TeX2page](http://www.ccs.neu.edu/~dorai/tex2page/tex2page-doc.html), or
7 similar. Useful for mathematics, as well as for stuff like the LaTeX version
8 of the ikiwiki [[/logo]].
9
10 ----
11
12 ikiwiki could also support LaTeX as a document type, again rendering to HTML.
13
14 ----
15
16 Conversely, how about adding a plugin to support exporting to LaTeX?
17
18 >> I did some tests with using Markdown and a customized HTML::Latex and html2latex
19 >> and it appears it will work for me now. (I hope to use ikiwiki for many
20 >> to collaborate on a printed book that will be generated at least once per day in PDF format.)
21 >>
22 >> --JeremyReed
23
24 >>> Have a look at [pandoc](http://code.google.com/p/pandoc/).  It can make PDFs via pdflatex. --[[roktas]]
25
26 ----
27
28 [here](http://ng.l4x.org/gitweb/gitweb.cgi?p=ikiwiki.git/.git;a=blob;f=IkiWiki/Plugin/latex.pm) is a first stab at
29 a latex plugin. Examples [here](http://ng.l4x.org/latex/). Currently without image support for hevea. And the latex2html
30 output has the wrong charset and no command line switch to change that. Dreamland.
31
32 ----
33
34 Okay, now is the time for a mid term report i think.
35
36 The LaTeX Plugin for ikiwiki is now usable, except for the security check. This means at the moment the latex code is not validated, but only added into a very basic latex template. and the image is generated via this path: latex -> dvips -> convert (.tex -> .dvi -> .ps -> .png).
37 The resulting .png is moved into the imagefolder. The name of this image is the md5hash of the code the user wrote into the wiki. So on a second run there is no need to recreate this image, if it exists. This will fasten up all but the first generation of the page. 
38 The generation of the image is done in an temporary folder in /tmp created with tempdir from File::Temp. The tmp-folder name is something like: $md5sumdigest.XXXXXXXX. if there is an .tex file already in this dir it will be overwritten. 
39
40 So until now i finished the basic things, now the most important task is to make an good input validation.
41 This is a bit eased since it is not possible to execute shell commands in perl. Furthermore adding additional packages won't work since the code comes from the user is inserted after \begin{document}. Therefore this will result in an error (and this will stop latex from working --> no image is created).
42
43 So my task for the next weeks is to write an good input validation. 
44 I think this progress is okay, since I'll had to learn the last 5-6 weeks for my final exams in university therefore I can't do anything. From now on I have 3 months of freetime and I'll use them to work heavily on this plugin. 
45 So I think I'm inside my own timetable. :)
46
47 ps: Since I found nothere the possibility to upload an file, here is an link to my page where you can have a look. Comments are very welcome ;-)
48 https://www.der-winnie.de/~winnie/gsoc07/tex.pm
49
50 You'll find an demo site here:
51 https://www.der-winnie.de/wiki/opensource/gsoc2007/
52 I'll add some more complex formulas over the days. But this is basically only pure latex. ;-)
53
54 -- Patrick Winnertz
55
56 ----
57
58 [[tag soc]]