LaTeX

mr wong   google bookmarks   del.icio.us   yigg   digg   folkd
LaTeX LaTeX This demo allows the user to convert LaTeX (pronounced "Lah-tek" or "Lej-tek") documents into a PNG-image. LaTeX goes back to Donald E. Knuth's TeX (pronounced "Tek"). LaTeX is very well suited for scientific and technical documents. LaTeX translates the input source text into the DVI-format (DeVice-Independent) - which is converted into the EPS-format Encapsulated PostScript) by means of the tool dvips (DVI-to-PostScript). Then, Ghostscript is used to convert the corresponding EPS-file into the PNG-format (Portable Network Graphics) which is fit for the world wide web. As alternative PDF and various other graphic formats are possible. Installed software: TexLive 2008 (scheme-full) and Ghostscript 8.63 This demo is also available as an Adobe Flash-Applet.

Hint: Please use \usepackage[utf8]{inputenc} instead of encodings like \usepackage[latin1]{inputenc}, or disable explicitly the UTF-8 checkbox! New: File upload with optional PNG/JPG to EPS conversion!

Alternativ kann diese Demo direkt über eine CGI-Schnittstelle angesprochen werden.
Wichtiger Hinweis: Diese Schnittstelle steht nur für nicht kommerzielle Zwecke zur Verfügung.
Bei kommerzieller Nutzung wenden Sie sich bitte an office@sciencesoft.at. Weiters bitten wir
Sie, uns auch bei nicht-kommerzieller Nutzung dieser Schnittstelle über obige E-Mail-Adresse
zu benachrichtigen, damit wir Sie bei Änderung der Schnittstelle gegebenfalls informieren zu können.
Beispiel: liefert als Ergebnis folgende Grafik zurück:
LaTeX
CGI-Parameter:
URL
http://sciencesoft.at/image/latexurl/?...
oder mit einem optionalen Dateinamen
http://sciencesoft.at/image/latexurl/image.png?...
Der POST-Request wird im Format UTF-8 erwartet.
src
LaTeX Quelltext - maximale Länge 131072 Bytes
dev
Dieser Parameter legt das Ausgabeformat fest und kann folgende Werte annehmen:
png16m|pngalpha|png256|png16|pngmono|pdfwrite|bmp16|bmp256|bmp16m|jpeg|
jpeggray|pnm|tiffgray|tiff12nc|tiff24nc|tiff32nc|tiffg3|tiffg4|psdrgb|swf
Der Default-Wert für diesen Parameter ist png16m. Im Kontext mit dem Wert pdfwrite ist
der Parameter papersize mit folgenden Werten zulässig:
a4|letter|legal|tabloid|a6|a5|a3|a1|a0|b6|b5|b4|b3
pngalpha hat den optionale Parmetern bgcolor (=Hintergrundfarbe) im 6-stelligen HEX-Format.
dpi
Auflösung im Bereich von 60 - 600 dpi. Default-Wert ist 120 dpi.
ochem
Hat dieser optionale Parameter den Wert true, dann steht das OCHEM-Paket zur Verfügung.
error
Hat dieser optionale Parameter den Wert true, dann wird im Falle eines Fehlers die LaTeX-Fehlermeldung
zurückgegeben.
result
Hat dieser optionale Parameter den Wert true, dann wird das Ergebnis im Textformat
zurückgegeben: Status-Code OK & URL auf die generiere Grapfik
OK
http://sciencesoft.at/image/latexurl/latex.png?hash=2129519513&ext=png
Im Falle eines Fehlers: ERROR & mehrzeilige LaTeX Fehlermeldung
ERROR
This is pdfeTeXk, Version 3.141592-1.30.3-2.2 (Web2c 7.5.5) (format=latex 2006.1.3) 23 SEP 2008 07:18
...
urlencoding
latin1|utf8
Dieser optionale Parameter hat den Standardwert utf8. Achtung, dieser Wert wird nur im Falles
eines GET-Requests ausgwertet:
utf8:
  http://sciencesoft.at/image/latexurl/img.png?template=textutf8&src=Test:%20%C3%B6
latin1:
  http://sciencesoft.at/image/latexurl/img.png?template=textutf8&urlencoding=latin1&src=Test:%20%F6
LaTeX
template
Dieser Paramter bewirkt, dass der per src übergebene LaTeX Quelltext in eine
bestehende Vorlage eingefügt wird. Der Default-Wert für diesen Parameter ist inlinemath
no - keine Vorlage
inlinemath
    \documentclass[12pt]{article}
    \pagestyle{empty}
    \begin{document}\\begin{math}
    ...
    \end{math}\\end{document}
    
text
    \documentclass[12pt]{article}
    \pagestyle{empty}
    \begin{document}
    ...
    \end{document}
    
textutf8
    \documentclass[12pt]{article}
    \pagestyle{empty}
    \usepackage[utf8]{inputenc}
    \usepackage[T1]{fontenc}
    \begin{document}
    ...
    \end{document}
    
math
    \documentclass[12pt]{article}
    \pagestyle{empty}
    \begin{document}
    \begin{displaymath}
    ...
    \end{displaymath}
    \end{document}
    
ams
    \documentclass[12pt]{article}
    \usepackage{amssymb,amsmath}
    \pagestyle{empty}
    \begin{document}
    \begin{displaymath}
    ...
    \end{displaymath}
    \end{document}
    
ochem
    \documentclass{article}
    \pagestyle{empty}
    \usepackage{ochem}
    \begin{document}
    \begin{chemspecial}
    include(`utils.inc')
    include(`natur.inc')
    require("bicyclib")
    \end{chemspecial}
    \begin{chemistry}
    ...
    \end{chemistry}
    \end{document}
    
Beispiel

Dieses Beispiel generiert über die CGI-Schnittstelle eine PDF-Datei im Papierformat A4 mit
der Schrödingergleichung als Inhalt. Sie können dieses Beispiel inklusive aller notwendigen Libraries über
folgenden Link herunterladen.

/*
 * LaTeXClient.java - LaTeX CGI access example
 * Author: Peter Sauer (peter.sauer@sciencesoft.at)
 * Date of last modification: 2008-09-25
 * HTTPClient: http://hc.apache.org/httpclient-3.x/userguide.html
 */

package at.sciencesoft.test;
import org.apache.commons.httpclient.*;
import org.apache.commons.httpclient.methods.*;
import java.io.*;

public class LaTeXClient {
    private static String url = "http://sciencesoft.at/image/latexurl";
    private static String schroedinger =
            "\\documentclass[12pt]{article}\n" +
            "\\pagestyle{empty}\n" +
            "\\begin{document}\n"+
            "\\begin{displaymath}\n" +
            "\\bf\n" +
            "\\int H(x,x')\\psi(x')dx' = -\\frac{\\hbar^2}{2m}\\frac{d^2}{dx^2}\n" +
            "\\psi(x)+V(x)\\psi(x)\n" +
            "\\end{displaymath}\n" +
            "\\end{document}\n";

    public static void main(String[] args) throws Exception {
        // Prepare HTTP post
        PostMethod post = new PostMethod(url);
        // Request content will be retrieved directly from the input stream
        NameValuePair[] postdata = {
            new NameValuePair("src", schroedinger),
            new NameValuePair("dev", "pdfwrite"),
            new NameValuePair("papersize", "a4"),
            new NameValuePair("template", "no")
        };
        // Set charset to UTF-8
        post.setRequestHeader("Content-Type",
            PostMethod.FORM_URL_ENCODED_CONTENT_TYPE + ";charset=utf-8");
        post.setRequestBody(postdata);
        // Get HTTP client
        HttpClient httpclient = new HttpClient();
        // Execute request
        try {
            int result = httpclient.executeMethod(post);
            // Display status code
            System.out.println("Response status code: " + result);
            if (result == 200) {
                FileOutputStream test = new FileOutputStream("test.pdf");
                test.write(post.getResponseBody());
                test.close();
                System.out.println("Success!");
            }
        } finally {
            // Release current connection to the connection pool once you are done
            post.releaseConnection();
        }
    }
}

Handling

  • The Start LaTeX button converts the source text in the input field into a graphical representation.
  • The DPI(Dots Per Inch) input field indicates the resolution that is used to calculate the graphic representation (valid range: 60-600 DPI).
  • This checkbox UTF-8 sets the encoding of the LaTeX source file. UTF-8 vs. Latin-1
  • The Reset button clears the entire input field
  • Templates or examples can be copied into the input field via the Load button and the pull-down-menu.
  • The selection list Format enables the specification of the output format. In addition to the various image formats a PDF document can be produced with pdfwrite.