PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Tabellenkalkulation und LaTeX (OpenOfficeCalc als Editor)



ctansearch
27-12-2012, 00:07
Ab und zu taucht die Frage auf, wie man Formeln setzen und deren Berechnungen in LaTeX ausführen kann.
Die Möglichkeiten der Berechnung in LaTeX sind aber sehr begrenzt und die vielen Exportfilter der Tabellenkalkulationen sind ungeeignet.
Andersherum ist es leichter.
Eine einfache Möglichkeit ist, den gesamten Quellcode direkt in der Tabellenkalkulation zu setzen, die Berechnungen dort durchführen zu lassen, und dann den gesamten Code in die TeX-Quelldatei zu kopieren und zu kompilieren.

Wenn es von Interesse ist, erkläre ich es gern genauer.

cookie170
27-12-2012, 10:14
Hallo,

klar ist das interessant. Ich komme zwar mit calc2latex gut aus, aber vielleicht hast Du ja einen besseren Weg gefunden?

Gruß,
Alexander

ctansearch
27-12-2012, 13:21
Hallo, hier ein kurzes Beispiel, das direkt in Calc geschrieben wurde.
Ich benutze dabei die Spalten auch als Übersichtshilfe und zur Strukturierung.
Grundprinzip ist einfach, die Latexbefehle und Zeichen in eigene Spalten zu schreiben und die Werte und Berechnungen auch in eigene Spalten. Beim Kopieren werden die Spalten durch Tabulatoren ersetzt und so erhält man auch im Texteditor eine schöne Strukturierung. Praktisch ist auch eine farbliche Unterlegung der Spalten oder die spaltenweise Einsetzung von wiederholten Zeichen ({[&$) etc.
Mit ein wenig Übung kann man sehr komplexe Strukturen entwickeln und gewöhnt sich schnell an die Methode. Darüber hinaus stehen einem alle Möglichkeiten von Calc zur Verfügung, wie Kommentare, Suchfunktionen, eine Spalte mit Zeilennummer etc.

Im Anhang der Code als PDF aus Calc exportiert.


\documentclass[a4paper]{article}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage{longtable}
\begin{document}
Zum Beispiel steht der Text in Zeilen untereinander
Zum Beispiel steht der Text in Zeilen untereinander
Zum Beispiel steht der Text in Zeilen untereinander
\begin{longtable}{p{3cm}p{3cm}p{3cm}}
Erste Spalte & Zweite Spalte& Dritte Spalte \\
$\sqrt{2}$ & = & 1,4142135624 \\
$\sqrt{3}$ & = & ? \\
\end{longtable}


\end{document}


Das blau markierte Ergebnis ist die Ausgabe der =wurzel(2) Formel in der Calc-Zelle

Goldnas
27-12-2012, 17:50
Hallo,

klar ist das interessant. Ich komme zwar mit calc2latex gut aus, aber vielleicht hast Du ja einen besseren Weg gefunden?

Gruß,
Alexander


mit Excel eine CSV Datei erstellen lassen und dann mit datatool darstellen.

Ist besser, einfacher und schneller.

LG Goldnas

ctansearch
08-01-2013, 00:42
@cookie170

Da Du ja sowohl bei OpenOffice, als auch in der TeX-Entwicklung tätig bist, wäre es schon interessant zu erfahren, was Du aus meiner Idee machst und was Du davon hältst.

In Luatex (http://archiv.dante.de/DTK/PDF/komoedie_2011_2.pdf) werden Berechnungen doch sehr umständlich in den TeX-Code eingefügt, da erscheint es mir besser, den Formatierungscode dem Berechnungscode unterzuordnen.
Es ist viel leichter, die Formatierungsbefehle aus TeX in C++ - Code oder andere Umgebungen (OpenOfficeCalc), einzufügen, als umgekehrt vorzugehen.

Der Einwand von Goldnas ist nicht so treffend, da es mir nicht bloss um die Umsetzung einer Tabelle geht, sondern um die ständige Verfügbarkeit von Berechnungsmöglichkeiten aus Calc an jeder Stelle des Latex-Dokumentes.

Im Artikel (s.o) regst Du an:

"Schwieriger wäre es, eine Zwischensumme beim Seitenumbruch mehrseitiger
Tabellen zu erzeugen. Hier wäre zu untersuchen, ob dies eher von der TEX-Seite
oder der Lua-Seite aus zu erreichen ist. Will jemand vielleicht ein Paket »Lua-
Longtable« schreiben?"

Ich denke, eine Anpassung von longtable ist leichter, ich habe das schon umgesetzt, indem ich kontrollierte Seiten- und Tabellenumbrüche in longtable ermöglicht habe.

Bei Interesse mehr.

cgnieder
08-01-2013, 10:14
odsfile (http://www.ctan.org/pkg/odsfile) (siehe auch hier (http://tex.stackexchange.com/questions/60378/insert-libreoffice-table-as-input/)) und spreadtab (http://www.ctan.org/pkg/spreadtab) sollten hier vielleicht nicht unerwähnt bleiben.

Grüße