LaTeX

mr wong   google bookmarks   del.icio.us   yigg   digg   folkd
LaTeX LaTeX Diese Demo bietet die Möglichkeit, LaTeX (sprich »Lah-tech« oder »Lej-tech«) Dokumente in eine PNG-Grafik umwandeln zu lassen. LaTeX geht auf TeX (sprich »Tech«) von Donald E. Knuth zurück. Besonders geeignet ist LaTeX für wissenschaftliche und technische Dokumente. Der eingegebene Quelltext wird mit Hilfe von LaTeX in das DVI- Format (DeVice-Independent) übersetzt - dieses wird dann mit Hilfe des Tools dvips (DVI-to-PostScript) in das EPS-Format (Encapsulated PostScript) umgewandelt. Mit Hilfe von Ghostscript wird dann die entsprechende EPS-Datei in das web-taugliche PNG-Format (Portable Network Graphik) umgewandelt. Alternativ sind PDF und diverse andere Grafikformate möglich. Installierte Software: TexLive 2008 (scheme-full) und Ghostscript 8.63. Diese Demo steht auch als Adobe Flash-Applet zur Verfügung.

Hinweis: Benutzen Sie bitte \usepackage[utf8]{inputenc} statt z.B. \usepackage[latin1]{inputenc}, oder deaktivieren Sie im Menü explizit den UTF-8 Support! Neu: Datei-Upload mit optionaler JPG/PNG nach EPS-Konvertierung!

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 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();
        }
    }
}

Bedienung

  • Die Schaltfläche LaTeX starten wandelt den Quelltext im Eingabefeld in eine Grafik um.
  • Das Eingabefeld DPI (Dots Per Inch) gibt an, mit welcher Auflösung die Grafik berechnet wird (gültiger Bereich: 60-600 DPI).
  • Das Kontrollkästchen UTF-8 legt fest, ob der Quelltext als UTF-8 oder Latin-1 gepeichert wird.
  • Die Schaltfläche Löschen löscht das komplette Eingabefeld.
  • Über die Auswahlliste Vorlagen & Beispiele und die Schaltfläche laden können Vorlagen oder Beispiele in das Eingabefeld kopiert werden.
  • Mit Hilfe der Auswahlliste Format kann das Ausgabeformat festgelegt werden. Zusätzlich zu den diversen Grafikformaten kann mit pdfwrite eine PDF-Datei erzeugt werden.