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 SOAP-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.
WDSL
SOAP-Request
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:def="http://DefaultNamespace">
   <soapenv:Header/>
   <soapenv:Body>
      <def:compile>
         <def:source>?</def:source>
         <def:device>?</def:device>
         <def:deviceInfo>?</def:deviceInfo>
         <def:dpi>?</def:dpi>
         <def:utf8>?</def:utf8>
         <def:ochem>?</def:ochem>
         <def:embeddedData>?/def:embeddedData>
      </def:compile>
   </soapenv:Body>
</soapenv:Envelope>
  
<def:source>
Dieses Element beinhaltet den LaTeX Quelltext - maximale Länge 131072 Bytes
<def:device>
Dieses Element 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
<def:deviceInfo>
Dieses Element beinhaltet optionale Paramter im Kontext mit dem Element device.
Für device mit dem Wert pdfwrite sind folgenden Werte für deviceInfo zulässig:
a4|letter|legal|tabloid|a6|a5|a3|a1|a0|b6|b5|b4|b3
Für device mit dem Wert pngalpha ist die Hintergrundfarbe im 6-stelligen HEX-Format zulässig.
<def:dpi>
Auflösung im Bereich von 60 - 600 dpi.
<def:utf8>
Legt fest, ob die eingehenden Daten als UTF-8 (true) oder als Latin-1 (false) gespeichert werden.
<def:ochem>
Hat dieses Element den Wert true, dann steht das OCHEM-Paket zur Verfügung. false keine
OCHEM Unterstützung
<def:embeddedData>
Dieses Element legt mit dem Wert true fest, ob die Grafaikdaten base-64 kodiert in die SOAP-Antwort
eingebettet werden. false bewirkt, dass die SOAP-Antwort einen Link auf die erzeugte Grafik beihaltet.
SOAP-Response
  <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <soap:Body>
      <ns1:compileResponse xmlns:ns1="http://DefaultNamespace">
         <ns1:out>
            <success xmlns="http://DefaultNamespace">?</success>
            <error xsi:nil="true" xmlns="http://DefaultNamespace">?</error>
            <embeddedData xmlns="http://DefaultNamespace">false</embeddedData>
            <width xmlns="http://DefaultNamespace">?</width>
            <height xmlns="http://DefaultNamespace">?</height>
            <size xmlns="http://DefaultNamespace">?</size>
            <fileExt xmlns="http://DefaultNamespace">?</fileExt>
            <data xsi:nil="true" xmlns="http://DefaultNamespace">?</data>
            <url xmlns="http://DefaultNamespace">?</url>
         </ns1:out>
      </ns1:compileResponse>
   </soap:Body>
</soap:Envelope>
succces
true kein Fehler, oder false im Falle eines Fehlers
error
Im Falle eines Fehlers beinhaltet dieses Element die Fehlermeldung.
embeddedData
Ist dieser Wert true, so wurden die Grafaikdaten base-64 kodiert über das Element data in die SOAP-Antwort
eingebettet. Ist der Wert hingegen false, so beinhaltet das Element url einen Link auf die berechnete Grafik.
url oder data
Diese Elemente beinhalten das Ergebnis - siehe Element embeddedData
size
Größe der Grafikdaten in Bytes.
fileExt
Dateierweiterung der generierten Grafik.
width & height
Im Falle einer PNG oder JPG-Grafik beinhalten diese Elemente die Breite und die Höhe der Grafik in Punkten.
Beispiel

Dieses Beispiel erzeugt über die SOAP-Schnittstelle eine PDF-Datei und speichert diese.
Sie können dieses Beispiel inklusive aller notwenigen Libraries über folgenden Link herunterladen.


/*
 * LaTeXSOPAClient.java - LaTeX SOAP access example
 * Author: Peter Sauer (peter.sauer@sciencesoft.at)
 * Date of last modification: 2008-11-07
 */
package at.sciencesoft.test;

import at.sciencesoft.soap.latex.*;
import java.io.*;

public class LaTeXSOAPClient {
    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 writeByteStream(String fileName, byte[] stream) throws Exception {
        File file = new File(fileName);
        FileOutputStream writer = new FileOutputStream(file);
        writer.write(stream, 0, stream.length);
        writer.close();
    }

    public static void main(String[] args) {
        try {
            Latex_Service serv = new Latex_Service();
            Latex latex = serv.getLatexHttpPort();
            SOAPlatexResult lr = latex.compile(schroedinger, "pdfwrite", "a4", 120, true,false, true);
            if (lr.isSuccess()) {
                System.out.println("Success!");
                writeByteStream("test.pdf", lr.getData().getValue());
            } else {
                System.out.println("Error:");
                System.out.println(lr.getError().getValue());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

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.