vertikale Position von Formeln

Das Textverarbeitungsprogramm

Moderator: Moderatoren

stbartelslg
Beiträge: 4
Registriert: Sa, 11.09.2010 20:57

vertikale Position von Formeln

Beitrag von stbartelslg »

Eigentlich ist das Thema schon "abgehakt", aber es gibt immer noch Probleme.
Konkret: Wenn man in einem Text eine Formel wie z. B. "H^{7^2 over T^4}" verwendete, wurde bei den alten OO-Versionen die Formel nie so positioniert, dass die Grundlinie unter dem H der Formel mit der Grundlinie der umgebenden Zeile übereinstimmte. (Dies sieht man besonders gut, wenn man vor der Formel "Hallo" schreibt.)

Mit der Version 3.4 sollte dieses Problem eigentlich behoben sein, und ich wunderte mich, warum das bei mir nicht klappte. Ich hoffte also auf die neue Version (jetzt als 4.0 erschienen), aber bei dieser Version stieß ich jetzt auf ein Phänomen, dass - wie ich im Nachhinein feststellte - bei beiden Versionen (also 3.4.1 und 4.0) auftritt:
  • Wenn man eine neues Dokument aufmacht und dort die obige Formel eingibt, ist alles in Ordnung.
  • Wenn man ein altes Dokument öffnet, das mit einer OO-Version vor 3.4 erstellt wurde, und dort die obige Formel eingibt, ist die vertikale Position falsch!
Interessanterweise ist auch das im Kontextmenü unter "Objekt..." aufgerufene Menü unterschiedlich: Bei der korrekten Formel ist der Bereich "Position" im Register "Typ" grau, kann also nicht verändert werden, und die dort eingetragenen Werte scheinen automatisch berechnet zu sein. Bei dem alten Dokument kann man diese Werte jedoch bei allen Formeln manuell anpassen.

Wenn man eine "neue" Formel in ein altes Dokument kopiert, ist die Ausrichtung falsch, und die Positionswerte können wieder verändert werden.
Wenn man eine "alte" Formel in einer neues Dokument kopiert, wird sie nicht korrekt ausgerichtet. Außerdem kann ihre vertikale Position nicht mehr verändert werden. Wenn also im "alten" Dokument als Position z. B. "Mitte zur Zeile" angegeben war, kann das für das Layout im neuen Dokument verheerende Folgen haben.

Es scheint also so zu sein, dass sowohl im alten Dokument als auch in einer alten Formel eine Information "versteckt" ist, die dafür sorgt, dass Formeln nur dann korrekt ausgerichtet werden, wenn man eine neues Dokument mit neuen Formeln erstellt.

Abgesehen davon, dass ich dieses Verhalten für einen Bug in OO halte: Hat jemand eine Idee, wie ich alte Dokumente so "konvertieren" kann, dass meine Formeln endlich korrekt ausgerichtet werden, ohne dass ich alle Formeln neu eingeben muss?

Stefan Bartels
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: vertikale Position von Formeln

Beitrag von F3K Total »

Hi,
versuche mal an einer Kopie, dieses Makro drüberlaufen zu lassen:

Code: Alles auswählen

sub S_change_Object_Position
    oembeddedObjectsenumeration = thiscomponent.embeddedObjects.createenumeration
    while oembeddedObjectsenumeration.hasmoreelements
        oformula = oembeddedObjectsenumeration.nextelement
        if oformula.CLSID = "078B7ABA-54FC-457F-8551-6147e776a997" then
            oformula.VertOrient = 6 'unten, 5 = Mitte
            oXEO = oformula.ExtendedControlOverEmbeddedObject
            oXEO.changeState(3)'(com.sun.star.embed.EmbedStates.UI_ACTIVE)LOADED = 0,RUNNING = 1,ACTIVE = 2,INPLACE_ACTIVE = 3,UI_ACTIVE = 4
            oXEO.changeState(1)
        endif   
    wend
end sub
Im angehängten Beispiel, erstellt in OOo 3.3.0, klappt es
Viel Erfolg
Gruß R
Dateianhänge
Formel_vertikal_ausrichten.odt
(49.16 KiB) 67-mal heruntergeladen
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: vertikale Position von Formeln

Beitrag von F3K Total »

Hallo noch'n Gast,
das hört sich gut an, und ich hätte erwartet, wenn ich die Vorlage "Formel" den Formeln einmal zugeordnet habe, dass ich dann die Vorlage ändere und alle Formeln, denen die Vorlage zugewiesen wurde, ändern sich mit.
Klappt aber nicht. (AOO 3.4.1/4.0.0)
Eine Änderung in der Vorlage wird nicht weitergereicht, mache ich etwas falsch?

Gruß R
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: vertikale Position von Formeln

Beitrag von F3K Total »

Hallo noch'n Gast,
noch'n Gast hat geschrieben:... Das ganze funktioniert wie erwartet, wenn du eine selbsterstellte Vorlage zuweist.
Ich bekomme es nicht hin, eine Vorlage zu erzeugen, bei der das funktioniert.
Kannst Du einmal erläutern, wie das in diesem Falle geht?
Gruß R
stbartelslg
Beiträge: 4
Registriert: Sa, 11.09.2010 20:57

Re: vertikale Position von Formeln

Beitrag von stbartelslg »

F3K Total hat geschrieben:versuche mal an einer Kopie, dieses Makro drüberlaufen zu lassen:
Herzlichen Dank für die Info.
Ja, es klappt bei einem alten Dokument mit den vorhandenen Formeln, das Dokument ist dann aber immer noch "alt" (im Sinne meines ersten Beitrags), so dass nach Ausführung des Makros eingefügte neue Formeln wieder falsch positioniert sind. Es werden also alte Formeln "repariert", aber neue Formeln werden immer noch falsch dargestellt.

Eigentlich wollte ich nicht das Makro nach jedem Einfügen einer Formel wieder ausführen. :?

Stefan Bartels
stbartelslg
Beiträge: 4
Registriert: Sa, 11.09.2010 20:57

Re: vertikale Position von Formeln

Beitrag von stbartelslg »

noch'n Gast hat geschrieben:Offenbar hast du dich noch nicht mit dem OpenOffice Konzept der Formatvorlagen beschäftigt.
Meinst Du nicht, dass ein solcher "Vorwurf" etwas schnell geschrieben war??

Offensichtlich war Dein Vorschlag aber auch etwas schnell geschrieben:
Selbstverständlich setze ich Formatvorlagen - auch für Formeln - ein. Bei der Formatvorlage "Formel" ist es jedoch so, dass die Möglichkeiten der vertikalen Positionierung nur die der "alten" Formeln sind. "Neue" Formeln ignorieren diesen Eintrag einfach, führen bei der vertikalen Position eine automatische Berechnung durch und tragen diesen Wert dann ein, der nicht mehr verändert werden kann.

Daran wird wohl auch eine selbst erstellte Formatvorlage nichts ändern können. Abgesehen davon: Soll ich jeder neu erstellten Formel manuell die selbst erstellte Formatvorlage zuweisen? Das muss doch schneller gehen, oder?

Stefan Bartels
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: vertikale Position von Formeln

Beitrag von F3K Total »

Moin;
stbartelslg hat geschrieben:Eigentlich wollte ich nicht das Makro nach jedem Einfügen einer Formel wieder ausführen. :?
Musst Du auch nicht! Lass es bleiben und lösche das Makro.
Lies unterdessen mal hier nach.
R
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: vertikale Position von Formeln

Beitrag von F3K Total »

Hallo noch'n Gast,
noch'n Gast hat geschrieben:Erstell also z.B. in OOo 3.3 eine eigene Formatvorlage und weise die zu, speichere das Dokument und öffne es in AOO. Ändere dort die Formatvorlage.
Ich habe wirklich zig Varianten versucht, in AOO400 tut sich nix, wenn ich die zugewiesene Vorlage ändere, zumindest unter Windows 7.
Kannst Du mal ein so erstelltes und funktionierendes Beispiel hochladen, nur um zu sehen, ob es an meiner Vorgehensweise liegt? Vielleicht mache ich ja doch noch etwas falsch, wenn ich eine neue Vorlage erstelle.
Gruß R
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: vertikale Position von Formeln

Beitrag von F3K Total »

hallo noch'n Gast,
vielen Dank für die umfangreiche Analyse, und die damit verbundene Arbeitm, die du dir gemacht hast.
Jetzt sollte klar sein: Es funktioniert nicht mehr. Ist also ein Bug.
Gruß R
Antworten