Math Handbuch

Anhang B
Technische Einzelheiten
Wissenswertes über Math

Dokumentationen zu LibreOffice unter http://de.libreoffice.org

CopyrightDieses Dokument unterliegt dem Copyright © 2010–2014. Die Beitragenden sind unten aufgeführt.
Sie dürfen dieses Dokument unter den Bedingungen der GNU General Public License(http://www.gnu.org/licenses/gpl.html), Version 3 oder höher, oder der Creative Commons
Attribution License (http://creativecommons.org/licenses/by/3.0/), Version 3.0 oder höher,verändern und/oder weitergeben.
Warennamen werden ohne Gewährleistung der freien Verwendbarkeit benutzt.
Fast alle Hardware- und Softwarebezeichnungen sowie weitere Stichworte und sonstige Angaben,
die in diesem Buch verwendet werden, sind als eingetragene Marken geschützt.
Da es nicht möglich ist, in allen Fällen zeitnah zu ermitteln, ob ein Markenschutz besteht, wird dasSymbol (R) in diesem Buch nicht verwendet.

Mitwirkende/Autoren
Christian Kühl

Rückmeldung (Feedback)Kommentare oder Vorschläge zu diesem Dokument können Sie in deutscher Sprache an dieAdresse discuss@de.libreoffice.org senden.

Vorsicht

Alles, was an eine Mailingliste geschickt wird, inklusive der E-Mail-Adresse undanderer persönlicher Daten, die die E-Mail enthält, wird öffentlich archiviert und kannnicht gelöscht werden. Also, schreiben Sie mit bedacht!

Danksagung
An vorherigen Versionen dieses Kapitels haben mitgearbeitet:
Gisbert Friege
Regina Henschel

Christian Kühl
Florian Reisinger

Jochen Schiffers

Datum der Veröffentlichung und Softwareversion
Veröffentlicht am 22.06.2014. Basierend auf der LibreOffice Version 4.2.

Anmerkung für Macintosh NutzerEinige Tastenbelegungen und Menüeinträge unterscheiden sich zwischen der Macintosh Versionund denen für Windows- und Linux-Rechner. Die unten stehende Tabelle gibt Ihnen einige
grundlegende Hinweise dazu. Eine ausführlichere Aufstellung dazu finden Sie in der Hilfe desjeweiligen Moduls.
Windows/Linux

entspricht am Mac

EffektMenü Extras → Optionen...

LibreOffice → EinstellungenZugriff auf die Programmoptionen

Rechtsklick

Control+Klicköffnet ein Kontextmenü

Strg (Steuerung)⌘ (Command)(in Verbindung mit anderen Tasten)

F5Shift+⌘+F5öffnet den NavigatorF11⌘+Töffnet den Dialog Formatvorlagen

Technische Einzelheiten

2Inhalt
Anmerkung für Macintosh Nutzer.................................................................................................2
Technische Einzelheiten................................................................................................................4
OASIS Open Document Format for Office Applications...............................................................4
Handhabung von Formeln in Basic..............................................................................................4
Formeln im einem Writer-Dokument........................................................................................4
Formeln in einem Draw/Impress/Calc Dokument....................................................................6

Technische Einzelheiten

3Technische Einzelheiten
OASIS Open Document Format for Office Applications
In den ODF-Spezifikationen wurde für die Math Formeln kein vollständig neuer Standard
festgelegt, sondern der schon vom World Wide Web Consortium (W3C) für Formeln in Webseiten
erarbeitete Standard Mathematical Markup Language (MathML) übernommen (vergleichen Sie
http://www.w3.org/TR/2003/REC-MathML2-20031021). Von den dort vorgesehenen zwei Arten„Presentation Markup“ und „Content Markup“ wird in ODF die erstere benutzt. Es wird also mehr
die Darstellung einer Formel beschrieben als ihre mathematische Bedeutung.
Die Markup-Sprache MathML unterscheidet sich von dem Markup-Code, das in derKommandozeile benutzt wird. So lassen sich beispielsweise in der Formel „int from {i=1} to
3 {f(t) {nitalic d}t}“ die Teile „from… to…“ nicht übersetzen, sondern werden wie„int_{i=1}^3“ in MathML übertragen. Die ursprüngliche Formel aus der Kommandozeile ist eine
StarMath1 5.0 Kodierung. Damit diese nicht verloren geht, wird sie in einem Annotation-Elementgespeichert. Andere Anwendungen brauchen dieses Element weder auswerten noch bewahrenund erzeugen ihrerseits auch keins.
Zu den Formeln gehört bei LibreOffice auch jeweils eine Ersatzgrafik. In den Containerformaten
odt, odf usw. liegen diese Grafiken in einem separaten Ordner und sind zu dem eigentlichen
Dokument intern verlinkt. Benutzen Sie jedoch das Speicherformat „Open Dokument (Flat XML)“oder den Export nach XHTML, müssen diese Grafiken eingebettet werden. Dazu werden sie in
BASE64 kodiert.

Handhabung von Formeln in Basic
Dieser Abschnitt enthält keine Einführung in Basic2, sondern beschreibt nur einige spezielle
Aspekte von Formeln.
Nähere Informationen zu den unten benutzten Typen und Services finden Sie in
http://api.libreoffice.org/common/ref/com/sun/star/module-ix.html. Wenn Sie die hier erwähnten
Bezeichnungen über den Index suchen, gelangen Sie schnell zu den relevanten Beschreibungen.

Formeln im einem Writer-Dokument
In einem Writer Dokument liegen alle OLE-Objekte – und damit auch die Formeln – in einer
Sammlung vom Typ „SwXTextEmbeddedObjects“.
oCurrentController = ThisComponent.getCurrentController()oTextDocument = oCurrentController.ModeloEmbeddedObjects = oTextDocument.EmbeddedObjects
Diese Sammlung ist von 0 an durchnummeriert. Ein einzelnes Objekt erhalten Sie über den Index:
nEndIndex = oEmbeddedObjects.Count-1
for nIndex=0 to nEndIndex
oMathObject = oEmbeddedObjects.getByIndex(nIndex)
Um festzustellen, ob dieses Objekt tatsächlich eine Formel ist, überprüfen Sie, ob es einen Serviceunterstützt, der nur von Formeln unterstützt wird:
12LibreOffice basiert auf der von StarDivision entwickelten Office-Suite StarOffice, vergleichen Sieauch http://de.wikipedia.org/wiki/LibreOffice#Vorgeschichte
Das Basic-Handbuch ist noch nicht fertiggestellt. Verfolgen Sie die Arbeit unter
http://wiki.documentfoundation.org/Documentation/de#Handbuch_Verwendung_von_Makros.

Technische Einzelheiten

4oModel = oMathObject.Model
if oModel.supportsService("com.sun.star.formula.FormulaProperties")
thenOder Sie überprüfen, ob die CLSID, die jedes OLE-Objekt besitzt, dasjenige eines Math-Objekts
ist:if oMathObject.CLSID = "078B7ABA-54FC-457F-8551-6147e776a997" thenÜber das Model ändern Sie dann die Eigenschaften der Formel, wie beispielsweise die
Basisschriftgröße:
oModel.BaseFontHeight = 12Damit die Änderungen sichtbar werden, müssen die Formeln neu gezeichnet werden. Die
Eigenschaft „ExtendedControlOverEmbeddedObject“ stellt einige Methoden bereit, die sichspeziell auf OLE-Objekte beziehen:oXCOEO = oMathObject.ExtendedControlOverEmbeddedObject
oXCOEO.update()
Zur Verdeutlichung im Folgenden ein Beispiel, wie Sie alle Formatierungen aller Formeln in einem
Dokument verändern können:
Sub ChangeFormatFormule
oCurrentController = ThisComponent.getCurrentController()oTextDocument = oCurrentController.ModeloEmbeddedObjects = oTextDocument.EmbeddedObjects
nEndIndex = oEmbeddedObjects.Count-1
for nIndex=0 to nEndIndex
oMathObject = oEmbeddedObjects.getByIndex(nIndex)
oModel = oMathObject.Modelif (not isNull(oModel)) thenif (not isEmpty(oModel)) thenif oModel.supportsService("com.sun.star.formula.FormulaProperties") then' oder: if oMathObject.CLSID =' "078B7ABA-54FC-457F-8551-6147e776a997" thenoModel.BaseFontHeight = 11
policeCommune= "Liberation Serif"' Variables
oModel.FontNameVariables = policeCommune
oModel.FontVariablesIsItalic = true
oModel.FontVariablesIsBold = false' Functions
oModel.FontNameFunctions = policeCommune
oModel.FontFunctionsIsItalic = false
oModel.FontFunctionsIsBold = false' Numbers
oModel.FontNameNumbers = policeCommune
oModel.FontNumbersIsItalic = false
oModel.FontNumbersIsBold = false' TextoModel.FontNameText = policeCommune
oModel.FontTextIsItalic = false

Technische Einzelheiten

5oModel.FontTextIsBold = false' Update
oXCOEO = oMathObject.ExtendedControlOverEmbeddedObject
oXCOEO.update()
endif ' if Formel
endif ' if nicht leer
endif ' if nicht Nullnext nIndex
ThisComponent.reformat() ' Aktualisiert alle Elemente im Dokument
End Sub
Besuchen Sie auf der Hilfeseite3 den Abschnitt „FormularProperties“, um eine Liste aller
Einstellungen zu erhalten, die Sie verändern können.

Formeln in einem Draw/Impress/Calc Dokument
In einem Draw, Impress oder Calc Dokument, werden auch OLE-Objekte als Zeichenobjekteangesehen. Nachdem Sie Zugriff auf ein einzelnes Objekt haben, testen Sie, ob es ein OLE-Objekt
ist und anschließend, ob es eine Formel ist. Kernstück eines Makros ist dann beispielsweise:
if oShape.supportsService("com.sun.star.drawing.OLE2Shape") then
if oShape.CLSID = "078B7ABA-54FC-457F-8551-6147e776a997" thenoModelFormula = oShape.ModeloModelFormula.BaseFontHeight = 12Ein explizites Update ist in hier nicht erforderlich.

3

http://api.libreoffice.org/common/ref/com/sun/star/formula/FormulaProperties.html

Technische Einzelheiten

6