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

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.