Unternehmen
Interaktive Demos
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!
Datei Upload
Dieser Menüpunkt erlaubt den Upload von bis bis zu 10 Dateien. z.B. Bilder, die in den LaTeX-Quelltexteingebunden werden. Die hochgeladenen Dateien dürfen in Summe maximal 2 MB groß sein.
Dieses Kontrollkästchen konvertiert JPG/JPEG/PNG-Dateien automatisch in das EPS-Format.
Keine Daten vorhanden!
| Programm | user | kernel |
|---|---|---|
| LaTeX Quelltext kompilieren | ||
| OCHEM-Perl/M4-Skript ausführen | ||
| LaTeX 2. Durchgang | ||
| dvips (.DVI in .EPS umwandeln) | ||
| GhostScript (.EPS in .PNG umwandeln) | ||
| PDF2SWF (.PDF in SWF umwandeln) | ||
| ungefähre Gesamtzeit: ms |
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.
CGI-Parameter:
URL
oder mit einem optionalen Dateinamen
http://sciencesoft.at/image/latexurl/image.png?...
Der POST-Request wird im Format UTF-8 erwartet.
src
dev
jpeggray|pnm|tiffgray|tiff12nc|tiff24nc|tiff32nc|tiffg3|tiffg4|psdrgb|swf
der Parameter papersize mit folgenden Werten zulässig:
dpi
ochem
error
zurückgegeben.
result
zurückgegeben: Status-Code OK & URL auf die generiere Grapfik
http://sciencesoft.at/image/latexurl/latex.png?hash=2129519513&ext=png
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
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
template
bestehende Vorlage eingefügt wird. Der Default-Wert für diesen Parameter ist inlinemath
\documentclass[12pt]{article}
\pagestyle{empty}
\begin{document}\\begin{math}
...
\end{math}\\end{document}
\documentclass[12pt]{article}
\pagestyle{empty}
\begin{document}
...
\end{document}
\documentclass[12pt]{article}
\pagestyle{empty}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\begin{document}
...
\end{document}
\documentclass[12pt]{article}
\pagestyle{empty}
\begin{document}
\begin{displaymath}
...
\end{displaymath}
\end{document}
\documentclass[12pt]{article}
\usepackage{amssymb,amsmath}
\pagestyle{empty}
\begin{document}
\begin{displaymath}
...
\end{displaymath}
\end{document}
\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();
}
}
}
unterstützt, angesprochen werden.
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.
XML Request
XML-Request wird im UTF-8 Format erwartet.
<?xml version="1.0" encoding="UTF-8"?>
<latex ochem="false">
<dev dpi="120">png16m</dev>
<src><![CDATA[\documentclass[12pt]{article}
\pagestyle{empty}
\begin{document}
Hallo World!
\end{document}]]>
</src>
<embeddedData>false</embeddedData>
</latex>
URL
Unterstützt nur HTTP PUT!
latex
dev
jpeggray|pnm|tiffgray|tiff12nc|tiff24nc|tiff32nc|tiffg3|tiffg4|psdrgb|swf
Das optinale XML-Attribut dpi legt die Auslösung im Bereich von 60 - 600 dpi fest. Default-Wert: 120 dpi
Im Kontext mit dem Wert pdfwrite ist das XML-Attribut papersize mit folgenden Werten zulässig:
HEX-Format zulässig.
src
embeddedData
in die XML-Antwort eingebettet werden. Default-Wert: false
XML Response
<?xml version="1.0" encoding="UTF-8"?> <RESTlatexResult> <success>?</success> <error>?</error> <embeddedData>?</embeddedData> <url>?</url> <data>?</data> <fileExt>?</fileExt> <size>?</size> <width>?</width> <height>?</height> </RESTlatexResult>
succces
error
embeddedData
eingebettet. Ist der Wert hingegen false, so beinhaltet das Element url einen Link auf das Ergebnis.
url oder data
size
fileExt
width & height
Beispiel
Dieses Beispiel erzeugt über die REST-Schnittstelle eine Grafik und speichert diese.
Sie können dieses Beispiel inklusive aller notwenigen Libraries über folgenden
Link herunterladen.
package at.sciencesoft.test;
import org.apache.commons.httpclient.*;
import org.apache.commons.httpclient.methods.*;
import sun.misc.BASE64Decoder;
import java.io.*;
/*
* LaTeXRESTClient.java
* LaTeX REST access example
* Author: Peter Sauer (peter.sauer@sciencesoft.at)
* Date of last modification: 2009-06-13
* HTTPClient: http://hc.apache.org/httpclient-3.x/userguide.html
*/
public class LaTeXRESTClient {
private static String url = "http://sciencesoft.at/latex";
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 char[] readCharStream(String fileName) throws Exception {
File file = new File(fileName);
FileReader reader = new FileReader(file);
int fileLength = (int) file.length();
char[] stream = new char[fileLength];
reader.read(stream, 0, fileLength);
reader.close();
return stream;
}
public static void main(String[] args) throws Exception {
String xml = new String(readCharStream(args[0]));
// Prepare HTTP put
PutMethod put = new PutMethod(url);
// Request content will be retrieved directly
// from the input stream
put.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
put.setRequestEntity(new StringRequestEntity(xml, null, "utf-8"));
// Get HTTP client
HttpClient httpclient = new HttpClient();
// Execute request
try {
int result = httpclient.executeMethod(put);
// Display status code
System.out.println("Response status code: " + result);
if (result == 200) {
// fetching quick & dirty the binary data
xml = put.getResponseBodyAsString();
if (xml.indexOf("<success>true</success>") >= 0) {
int start = xml.indexOf("<data>");
int end = xml.indexOf("</data>");
if (start >= 0 && end >= 0) {
start += "<data>".length();
writeByteStream(args[1],
new BASE64Decoder().decodeBuffer(xml.substring(start, end)));
} else {
System.out.println(xml);
}
} else {
System.out.println(xml);
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
// Release current connection to the connection pool once you are done
put.releaseConnection();
}
}
}
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>
<def:device>
jpeggray|pnm|tiffgray|tiff12nc|tiff24nc|tiff32nc|tiffg3|tiffg4|psdrgb|swf
<def:deviceInfo>
Für device mit dem Wert pdfwrite sind folgenden Werte für deviceInfo zulässig:
<def:dpi>
<def:utf8>
<def:ochem>
OCHEM Unterstützung
<def:embeddedData>
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
error
embeddedData
eingebettet. Ist der Wert hingegen false, so beinhaltet das Element url einen Link auf die berechnete Grafik.
url oder data
size
fileExt
width & height
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();
}
}
}
|
Grafik mit folgender Dimension:
x Punkte
Permanenter Link:
: dummy* SRC: dummy * Der optionale Parameter resize erlaubt es im Wertebereich von 20 bis 150 Prozent die Größe der Grafik zu steuern. resize=150 stellt die Grafik um 50% größer als das Original dar. Für Grafiken mit transparentem Hintergund steht das Ausgabe Format pngalpha zur Verfügung. Fehler: |
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.








