Hallo Peter,
vielen Dank für Deine fundierte Antwort - zu Deinem Ausblick komme ich später.
Wie ich bereits in meinem ursprünglichen Beitrag erwähnte, arbeite ich mit der Schriftart 'DejaVu' (
http://dejavu.sourceforge.net/wiki/index.php/Download), die das Zeichen meiner Begierde zur Verfügung stellt; ich wusste nur bisher nicht, wie ich es praktikabel zum Einsatz bringen konnte. Inzwischen habe ich weitergeforscht und (als absolutes Macro Greenhorn) eine wenig ästhetische, aber funktionierende Lösung gefunden.
Sie besteht aus einem uno-basierten Code einer entsprechenden Makro-Aufzeichnung (ich weiß nicht, wie man das richtig nennt, und habe praktisch nichts zu den Befehlen und deren Syntax gefunden), ergänzt durch einen angepassten VB-Code aus einem Forum-Beitrag. Diese Ergänzung ist notwendig, damit nach dem Einfügen des Sonderzeichens &H202F in 'DejaVu Sans' die ursprüngliche Schriftart wieder zu Verfügung steht:
sub SchmalesGeschuetztesLeerzeichen
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
' ------------------------------------------------------------------------
' Mit dem folgenden Programmcode wird die aktuelle Schriftart gesichert,
' um sie später wieder zu reaktivieren:
' ------------------------------------------------------------------------
oDoc = StarDesktop.getCurrentComponent( )
oText = oDoc.getText( )
oController = oDoc.getCurrentController( )
oViewCursor = oController.getViewCursor( )
oOldFontName = oViewCursor.CharFontName
rem ----------------------------------------------------------------------
dim args1(1) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Symbols"
args1(0).Value = Chr$(&H202F) ' Schmales geschütztes Leerzeichen
args1(1).Name = "FontName"
args1(1).Value = "DejaVu Sans"
dispatcher.executeDispatch(document, ".uno:InsertSymbol", "", 0, args1())
' ------------------------------------------------------------------------
' Hier wird die ursprüngliche Schriftart wieder reaktivert:
' ------------------------------------------------------------------------
dim args2(4) as new com.sun.star.beans.PropertyValue
args2(0).Name = "CharFontName.StyleName"
args2(0).Value = ""
args2(1).Name = "CharFontName.Pitch"
args2(1).Value = -1
args2(2).Name = "CharFontName.CharSet"
args2(2).Value = -1
args2(3).Name = "CharFontName.Family"
args2(3).Value = -1
args2(4).Name = "CharFontName.FamilyName"
args2(4).Value = oOldFontName
dispatcher.executeDispatch(document, ".uno:CharFontName", "", 0, args2())
end sub
Noch ein kleiner Hinweis: Mit einer abschließenden Anweisung ' oViewCursor.CharFontName = oOldFontName' anstelle des letzten uno-Blocks wird am Absatzende (wo ich normalerweise schreibe) nicht die ursprüngliche Schriftart reaktiviert.
Nachteile dieser Lösung: Man muss 'DejaVu' installieren und bekommt z. B. bei Verwendung der Schriftart 'Arial' schmale (geschützte) Leerzeichen, die fast genauso breit sind wie deren normale. Da ich allerdings 'DejaVu' zu "meiner" Standard-Schriftart erklärt habe, bin ich erst einmal zufrieden mit meiner Lösung. Nur das Makro würde ich ich gerne irgendwie in sich konsistenter gestaltet.
Der Grund, weshalb ich mich überhaupt damit beschäftige, ist folgender: Ich habe für meinen Writer den Korrektor (vom Duden-Verlag) installiert. Und der meckert (aus typographischer Sicht zu Recht) z. B. bei Abkürzungen wie z. B. oder bei Datums-Angaben wie 23. 11. 2007, wenn nach den Punkten kein (schmaler) Festabstand eingefügt wird - und ein breites Leerzeichen (wie in diesem Text verwendet) finde ich einfach nicht sonderlich ästhetisch.
Nun zu Deinem Ausblick: Ich würde da schon gerne mitarbeiten, bin aber ein absoluter Anfänger auf diesem Gebiet. Ich könnte mich allerdings (als kleiner Beitrag zu Anfang) in die Grundlagen zu der betreffenden Typographie einarbeiten. Zu weiteren Zusagen fehlt mir zur Zeit einfach der Überblick.
So, jetzt ist Wochenende ... viele Grüße und ein schönes selbiges.
Uodalrich