Hallo Regina, Am 16.10.2011 13:21, schrieb Regina Henschel:
Hier meinte ich eigentlich das Math-Handbuch. Und ich wollte hier auch nur beschreiben, wie im OASIS Standard die Math-Formeln behandelt werden. Auch bei Makros geht es mir nicht um Makros an sich, sondern darum, wie man mit Math-Formeln in Makros umgeht. Einen ersten Entwurf kopiere ich hier rein, damit du siehst worum es mir geht. Beim ersten Abschnitt über den Standard allgemein bin ich mir über den Ort nicht sicher; das würde wohl eher in das Glossar gehören.
Ja. IMHO im Glossar unterbringen. Im Glossar existiert jedoch bereits ein Eintrag bzgl. "OASIS" [1]. Allerdings ist Dein Text ein Tick ausführlicher und sollte IMHO übernommen/eingearbeitet werden. Kannst Du das evtl. machen? Bitte denke daran, die Farbe zu ändern.
Den Rest Deines Vorschlags arbeite bitte in das Handbuch Math ein. Ich werde dann gegenlesen.
[1] http://wiki.documentfoundation.org/DE/Doku/Glossar/Tabelle_LO Gruß Jochen
=Technische Einzelheiten= ==OASIS Open Document Format for Office Applications== Das OpenDocument Format ist ein von der OASIS entwickelter Standard. Die Spezifikationen befinden sich auf http://www.oasis-open.org/standards. LibreOffice berücksichtigt aber auch schon neuere Entwicklungen wie sie im technischen Komitee erarbeitet werden. Eine Übersicht bietet die Website des Komitees http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=office. Diese Spezifikationen beziehen sich alle darauf, wie die Information gespeichert ist. Sie enthalten keine Festlegungen wie die Benutzeroberfläche aussieht und wie der Benutzer die Formeln bearbeitet. 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) wurde übernommen, siehe 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, das in Kommandofenster 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, sonder werden wie int_{i=1}^3 in MathML übertragen. Die ursprüngliche Formel aus dem Kommandofenster ist eine StarMath 5.0 Kodierung. Damit diese nicht verloren geht, wird sie in einem annotation-Element gespeichert. Andere Anwendungen brauchen dieses Element weder auswerten noch bewahren und 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 Basic, 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 von Typ SwXTextEmbeddedObjects. oCurrentController = ThisComponent.getCurrentController() oTextDocument = oCurrentController.Model oEmbeddedObjects = 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 Sevice unterstützt, der nur von Formeln unterstützt wird. oModel = oMathObject.Model if oModel.supportsService("com.sun.star.formula.FormulaProperties") then oder Sie überprüfen, ob die CLSID, die jedes OLE-Object 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 = 12 Damit die Änderungen sichtbar werden, müssen die Formeln neu gezeichnet werden. Die Eigenschaft ExtendedControlOverEmbeddedObject stellt einige Methoden bereit, die sich speziell auf OLE-Objekte beziehen, oXCOEO = oMathObject.ExtendedControlOverEmbeddedObject oXCOEO.update() ==Formeln in einem Draw/Impress/Calc-Dokument== In einem Draw-, Impress- oder Calc-Dokument, werden auch OLE-Objekte als Zeichenobjekte angesehen. 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" then oModelFormula = oShape.Model oModelFormula.BaseFontHeight = 12 Ein explizites Update ist in hier nicht erforderlich.
-- Informationen zum Abmelden: E-Mail an discuss+h...@de.libreoffice.org Tips zu Listenmails: http://wiki.documentfoundation.org/Netiquette/de Listenarchiv: http://listarchives.libreoffice.org/de/discuss/ Alle E-Mails an diese Liste werden unlöschbar öffentlich archiviert