Viertelchen (ein viertel Leerzeichen) einfügen

Das Textverarbeitungsprogramm

Moderator: Moderatoren

molnium
**
Beiträge: 40
Registriert: So, 26.06.2005 13:29

Beitrag von molnium »

moin,

das ging ja schnell: dank viewtopic.php?t=8840 hab ich in die Autokorrektur das halbe geschützte Lerzeichen mal eingefügt. (also nicht direkt, sondern dann vom .odt reinkopiert)

Aber das Ergebnis ist ziemlich ernüchternd: in allen Schriftarten, die ich ausprobiert habe besitzt dieses Leerzeichen die gleiche Breite wie ein normales - wenn es denn überhaupt im Zeichensatz vorhanden ist. In Arial Unicode MS ist das zumindest nicht der Fall.

Also bleibt wohl echt nur das umwandeln im Nachhinein per suchen und ersetzen bzw. mit Makro.

mFg
m

##
wie es mit den anderen Leerzeichen aussieht hab ich nicht getestet. für mich was erstmal das wichtigste, dass das halbe >geschützte< funktioniert
Karbrüggen
**
Beiträge: 31
Registriert: Fr, 25.08.2006 23:24

Beitrag von Karbrüggen »

Sorry, unformatierter Code mach komische Dinge mit mir ;-)

Code: Alles auswählen

Sub GroKlei
	Dim sText As String
	sText=""

	'aktuelles Dokument
	xDoc=ThisComponent
	xController=xDoc.CurrentController
	
	'Cursor im Doc
	xVCrsr=xController.getViewCursor
	CurPos=xVCrsr.getPosition()
	
	'gesamtes Dokument
	oText=xDoc.Text
	xSelection = xDoc.CurrentController.getSelection
	
	'Range des aktuellen Selection
	xRange=xSelection(0)
	xCursor=xRange.getText.createTExtCursorByRange(xRange)
	
	'Wort markieren
	sText=xCursor.GetString()
	
	If Len(sText) <= 0 Then
		xCursor.gotoStartOfWord(False)
		xCursor.GotoEndOfWord(True)
		
		'String aus Wort ermitteln
		sText=xCursor.GetString()
	End If
	
	'klein > groß
	If sText=LCase(sText) Then
		sText=UCase(Left$(sText,1)) + Right$(sText, Len(sText)-1)

		'Einfügen
		oText.InsertString(xCursor,sText,True)
		Exit Sub
	End If
	
	'groß > klein
	If sText=UCase(sText) Then
		oText.InsertString(xCursor,strConvert(stext,0),True)
		Exit Sub
	End If
	
	'gemischt
	If Left$(sText,1) = UCase(Left$(sText,1)) Then
		oText.InsertString(xCursor,strConvert(stext,1),True)
		Exit Sub
	End If
	oText.InsertString(xCursor,strConvert(stext,1),True)
End Sub

Function strConvert (cText As String, Flag As Integer) As String
	iRun = 1
	while iRun < Len(cText)+1
	If Flag=1 Then
		Mid( cText ,iRun, 1, UCase(Mid(cText,iRun,1))
		Else
		Mid( cText ,iRun, 1, LCase(Mid(cText,iRun,1))
	End If
	iRun = iRun + 1
	Wend
	strConvert=cText
End Function

sub halbesLeer
	'define variables
	dim document as object
	dim dispatcher as object
	
	'get access to the document
	document = ThisComponent.CurrentController.Frame
	dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
	dispatcher.executeDispatch(document, ".uno:InsertNonBreakingSpace", "", 0, Array())
	
	dim args2(1) as new com.sun.star.beans.PropertyValue
	args2(0).Name = "Count"
	args2(0).Value = 1
	args2(1).Name = "Select"
	args2(1).Value = true
	dispatcher.executeDispatch(document, ".uno:GoLeft", "", 0, args2())
	
	dim args3(2) as new com.sun.star.beans.PropertyValue
	args3(0).Name = "Escapement.Escapement"
	args3(0).Value = -101
	args3(1).Name = "Escapement.Height"
	args3(1).Value = 45
	args3(2).Name = "Escapement.Auto"
	args3(2).Value = true
	dispatcher.executeDispatch(document, ".uno:Escapement", "", 0, args3())
	
	dim args4(1) as new com.sun.star.beans.PropertyValue
	args4(0).Name = "Count"
	args4(0).Value = 1
	args4(1).Name = "Select"
	args4(1).Value = false
	dispatcher.executeDispatch(document, ".uno:GoRight", "", 0, args4())
end sub

sub halbgeviertstrich
	'define variables
	dim document as object
	dim dispatcher as object

	'get access to the document
	document = ThisComponent.CurrentController.Frame
	dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

	dim args1(0) as new com.sun.star.beans.PropertyValue
	args1(0).Name = "Text"
	args1(0).Value = "–"
	dispatcher.executeDispatch(document, ".uno:InsertText", "", 0, args1())
end sub

Sub Typo_Zeichen
	oDoc = thisComponent
	oViewC = oDoc.getCurrentController().getViewCursor()
	oDoc.text.insertString(oViewC.start, chr(8222), false)
	oDoc.text.insertString(oViewC.end, chr(8220), false)
End Sub

sub zumBeispiel
	'define variables
	dim document as object
	dim dispatcher as object

	'get access to the document
	document = ThisComponent.CurrentController.Frame
	dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
	
	dim args1(0) as new com.sun.star.beans.PropertyValue
	args1(0).Name = "Text"
	args1(0).Value = "z."
	dispatcher.executeDispatch(document, ".uno:InsertText", "", 0, args1())
	
	dispatcher.executeDispatch(document, ".uno:InsertNonBreakingSpace", "", 0, Array())
	
	dim args3(0) as new com.sun.star.beans.PropertyValue
	args3(0).Name = "Text"
	args3(0).Value = "B."
	dispatcher.executeDispatch(document, ".uno:InsertText", "", 0, args3())
	
	dim args4(1) as new com.sun.star.beans.PropertyValue
	args4(0).Name = "Count"
	args4(0).Value = 1
	args4(1).Name = "Select"
	args4(1).Value = false
	dispatcher.executeDispatch(document, ".uno:GoLeft", "", 0, args4())
	
	dim args5(1) as new com.sun.star.beans.PropertyValue
	args5(0).Name = "Count"
	args5(0).Value = 1
	args5(1).Name = "Select"
	args5(1).Value = false
	dispatcher.executeDispatch(document, ".uno:GoLeft", "", 0, args5())
	
	dim args6(1) as new com.sun.star.beans.PropertyValue
	args6(0).Name = "Count"
	args6(0).Value = 1
	args6(1).Name = "Select"
	args6(1).Value = true
	dispatcher.executeDispatch(document, ".uno:GoLeft", "", 0, args6())
	
	dim args7(2) as new com.sun.star.beans.PropertyValue
	args7(0).Name = "Escapement.Escapement"
	args7(0).Value = 101
	args7(1).Name = "Escapement.Height"
	args7(1).Value = 40
	args7(2).Name = "Escapement.Auto"
	args7(2).Value = true
	dispatcher.executeDispatch(document, ".uno:Escapement", "", 0, args7())
	
	dim args8(1) as new com.sun.star.beans.PropertyValue
	args8(0).Name = "Count"
	args8(0).Value = 1
	args8(1).Name = "Select"
	args8(1).Value = false
	dispatcher.executeDispatch(document, ".uno:GoRight", "", 0, args8())
	
	dim args9(1) as new com.sun.star.beans.PropertyValue
	args9(0).Name = "Count"
	args9(0).Value = 1
	args9(1).Name = "Select"
	args9(1).Value = false
	dispatcher.executeDispatch(document, ".uno:GoRight", "", 0, args9())
	
	dim args10(1) as new com.sun.star.beans.PropertyValue
	args10(0).Name = "Count"
	args10(0).Value = 1
	args10(1).Name = "Select"
	args10(1).Value = false
	dispatcher.executeDispatch(document, ".uno:GoRight", "", 0, args10())
end sub
Ich hab lang genug Python geschrieben um zu wissen, wie nützlich Einrückungen und Abstände im Quellcode sind ;-)
(Dies führt michzurück zu (La)TeX: der Erfinder (Donald Knuth) ist Autor der Bücherserie "The Art of Computer Programming" - darin beschreibt er u.a. wie wichtig es ist, Code ordentlich zu schreiben ;-))
OberHoffis
***
Beiträge: 61
Registriert: Fr, 23.12.2005 09:17

Beitrag von OberHoffis »

Ich weiß, es ist OT, aber ich lese gerade das in diesem Thread empfohlene typokurz.pdf. Die Anmerkungen zu Tabellen finde ich seltsam.
mushroomlady
**
Beiträge: 33
Registriert: Mi, 24.05.2006 16:51

Beitrag von mushroomlady »

Hallo Oberhoffis,
finde den Dreh mit den vertikalen Linien gar nicht schlecht! Die Tabelle wird so wirklich lesbarer! Außerdem erscheint dann die ganze Seite nicht so überladen.
Hast Du es mal ausprobiert?
Gruß,
Nicki
Karbrüggen
**
Beiträge: 31
Registriert: Fr, 25.08.2006 23:24

Beitrag von Karbrüggen »

wolle2000 hat geschrieben:Du hast schon 'ne sehr merkwürdige Art, Danke zu sagen :shock:
Hehe... äh, ja... öhm - danke ;-)

OberHoffis hat geschrieben:Ich weiß, es ist OT, aber ich lese gerade das in diesem Thread empfohlene typokurz.pdf. Die Anmerkungen zu Tabellen finde ich seltsam.
Anstelle der horizontalen Linien kannst du auch jede 2. Zeile 10% grau einfärben (oder eine andere helle/blasse Farbe zum Layout passend). Wichtig ist auch hier ein gegebener Abstand vom Inhalt zum Zellenrand (padding).

Wenn deine Tabelle komisch ausschaut, würde ich dir empfehlen den Grauwert zu verändern (Text statt Blocksatz links ausgerichtet, manuelle Umbrüche...)

Schlussendlich ist es auch eine Frage der Schrift. In Tabellen sind Serifen keine gute Wahl, wenn die Spalten sehr schmal sind. Hier bieten sich serifenlose wie Tahoma an. Du solltest jedoch konsequent in (allen!) Tabellen die selbe Schrift verweden - wenn du nur ein paar schmal-spaltige Tabellen, jedoch einige mehr mit satterem Tabellenlayout verwendest, solltest du (auch wenns zunächst blöd ausschaut) dort ebenfalls serifenbetonte Schriften verwenden. Für den Druck eignet sich sehr gut die Gentium (die sieht nur auf dem Schirm bescheiden aus) oder aber Garamond und Georgia (letztere macht auch auf nem CRT/TFT ne gute Figur)...

So, genug Offtopic ;-)

LG
Dominik
Benutzeravatar
Arran
***
Beiträge: 90
Registriert: Mi, 11.04.2007 19:06
Wohnort: Isle of Arran, Schottland
Kontaktdaten:

Re:

Beitrag von Arran »

Karbrüggen hat geschrieben:Und wenn wir schon dabei sind: Ich hätte gerne auch eine Unterstützung für Ligaturen in OOo.
Hallo Dominik:
In guten Fonts, sind oft viele Ligaturen bereits integriert. Die kannst Du ohne Probleme über die Zeichentabelle integrieren, resp. Du suchst die Liste der ASCII Codes. das ae ist zB die Alt-Taste und 0230 tippen. Probiers mal: «æ». ich habe mir so eine Tabelle in PDF-Form gebastelt. Wer will kann mir eine Email schicken, ich sende sie dann gerne zu. Email Adresse im Profil. In Kauf-Fonts geht es dann noch weiter, die haben auch «ffl», «ffi» und andere Ligaturen. Ein Font, den ich kaufte, die Cardo (Ersatz für die Bembo, eine der schönsten klassischen Antiquas) sind total an die 500 Zeichen. Auch die Frutiger Next verfügt über solche Feinhzeiten. Leider sind Kauffonts nicht gerade günstig.

Und noch etwas: Im Buch Sprachschule für Schriftsetzer von Walter Heuer (NZZ Verlag) ist klar gefordert, dass die Anführungszeichen als « (alt+0171) und » (alt+0187) gesezt werden und nicht »...«. Siehe auch http://de.wikipedia.org/wiki/Guillemets. Dort ist beschrieben, dass es in Deutschland eine Ausnahme-Regel gibt.
Herzliche Grüsse von Schottlands schönster Ferieninsel

Betriebssystem: Linux Mint Debian Edition, Grafikkarte: Nvidia I-8400-GS, Monitor: HP LP2065, drehbar, Prozessor: Intel 3core. Abgesehen davon, zeimlich gesund.
Antworten