Vielleicht werden nach Behebung der Software-Bugs phab:T20443 und phab:T15619 verschiedene Leerzeichen automatisch gesetzt werden können. Beim Prozentzeichen ist dies bereits jetzt der Fall („50 %“ im Wiki-Sourcecode wird im HTML-Sourcecode zu „50 %“, sodass ein Browser zwischen „50“ und dem Prozentzeichen nicht umbricht). Künftig soll dieser Automatismus verbessert und ausgeweitet werden. Es ist jedoch unklar, ob und wann das passieren wird.

Auf dieser Seite werden Fälle aufgelistet, in denen künftig bei der Anzeige automatisiert schmale umbruchgeschützte Leerzeichen dargestellt werden sollen. Der Wiki-Sourcecode bräuchte dadurch nicht mehr geändert zu werden, um eine typografisch schönere Ausgabe zu erhalten.

Bitte beachte auch die Diskussionsseite zu dieser Seite.

Substitutionstabelle Bearbeiten

Wiki-Sourcecode[S 1][S 2] Substitution Satzanfang möglich
(erster Buchstabe groß)
mögliche vorige Zeichen[S 3] mögliche nachfolgende Zeichen
„a.a.O.“ oder „a. a. O.“ a.¦a.¦O. ja \n )],;:?!'"‘’‚“”«»‹›
„a.D.“ oder „a. D.“ a.¦D. nein \n )],;:?!“”
„d.h.“ oder „d. h.“ d.¦h. ja \n )],:“”
„d.i.“ oder „d. i.“ d.¦i. ja \n )],:“”
„d.Ä.“ oder „d. Ä.“ d.¦Ä. nein
„d.J." oder „d. J.“ d.¦J. nein
„d.R.“ oder „d. R.“ d.¦R. nein
„e.V.“ oder „e. V.“ e.¦V. nein
„h.c." oder „h. c.“ h.¦c. nein
„i.A.“ oder „i. A.“ i.¦A. ja
„i.d.R.“ oder „i. d. R.“ i.¦d.¦R. ja
„i.R.“ oder „i. R.“ i.¦R.
„i.V.“ oder „i. V.“ i.¦V. ja
„i.V.m“ oder „i. V. m.“ i.¦V.¦m. zu selten
„n.Chr.“ oder „n. Chr.“ n.¦Chr. nein
„o.Ä.“ oder „o. Ä.“ o.¦Ä. nein
„o.g.“ oder „o. g.“ o.¦g. Ja \n )],:“”
„o.J.“ oder „o. J.“ o.¦J. nein
„s.o.“ oder „s. o.“ s.¦o. nein
„s.u.“ oder „s. u.“ s.¦u. nein
„u.a.m.“ oder „u. a. m.“ u.¦a.¦m. nein
„u.a.“ oder „u. a.“ u.¦a. ja
„u.Ä.“ oder „u. Ä.“ u.¦Ä. nein
„u.U.“ oder „u. U.“ u.¦U. zu selten ,
„u.v.a.m.“ oder „u. v. a. m.“ u.¦v.¦a.¦m. nein \n )],:“”
„u.v.a.“ oder „u. v. a.“ u.¦v.¦a. nein \n )],:“”
„v.a.“ oder „v. a.“ v.¦a. ja \n )],:“”
„v.Chr.“ oder „v. Chr.“ v.¦Chr. nein
„z.B.“ oder „z. B.“ z.¦B. ja \n ,:)
„z.T.“ oder „z. T.“ z.¦T. ja ,
„z.Z.“ oder „z. Z.“ z.¦Z. ja
„z.Zt.“ oder „z. Zt.“ z.¦Zt. ja ,
„Art.1“ oder „Art. 1“ Art.¦1 -
„Abs.1“ oder „Abs. 1“ Abs.¦1 -
„S.1“ oder „S. 1“ S.¦1 -
„S.10ff.“ oder „S. 10ff.“ oder „S.10 ff.“ oder „S. 10 ff.“ S.¦10 ff. -
„(† 1865“ (†¦1865 -
„(* 1634“ (*¦1634 -
„12. August“ 12.¦August -
„12. Jh.“ 12.¦Jh. -
  1. „¦“ steht hier symbolhaft für ein schmales Leerzeichen.
  2. Das gewöhnliche Leerzeichen „ “ steht hier symbolhaft für ein gewöhnliches Leerzeichen oder ein umbruchgeschütztes Leerzeichen ( ).
  3. stets \n ([„, falls nicht anders angegeben (\n ist ein Zeilenumbruch)

Reguläre Ausdrücke für die Umsetzung des Automatismus:

These are the regular expressions (in php) concerning the implementation of the automatic insertion of narrow non-breaking spaces:

<?php
# last character before an abbr.
 $wb   = '[ \n([\x{201E}]';
 # first character after an abbr.
 $we   = '[ )\x5D,;:?!\'"\x{2018}-\x{201A}\x{201C}-\x{201D}\xAB\xBB\x{2039}\x{203A}]';
 # some space character
 $s_re = '(?:&(?:nbsp|#160);|\x20)';
 # narrow non-breaking space
 $nns  = '<span style="margin-left:0.167em"><span style="display:none">&nbsp;</span></span>';
 # replacements
 $fixtags = array(
	 "/${wb}a\.\K$s_re?a\.$s_re?(?=O\.$we)/u"          => "${nns}a.$nns", # a.a.O.
	 "/${wb}a\.\K$s_re?(?=D\.$we)/u"                   => $nns,           # a.D.
	 "/${wb}[dD]\.\K$s_re?(?=h\.[ ,])/u"               => $nns,           # d.h.
	 "/${wb}[iI]\.\K$s_re?d\.$s_re?(?=R\.$we)/u"       => "${nns}d.$nns", # i.d.R.
	 "/${wb}d\.\K$s_re?(?=[iJR\\xC4]\.$we)/u"          => $nns,           # d.i., d.J, d.R, d.Ä
	 "/${wb}e\.\K$s_re?(?=V\.$we)/u"                   => $nns,           # e.V.
	 "/${wb}h\.\K$s_re?(?=c\.$we)/u"                   => $nns,           # h.c.
	 "/${wb}i\.\K$s_re?V\.$s_re?(?=m\.$we)/u"          => "${nns}V.$nns", # i.V.m.
	 "/${wb}i\.\K$s_re?(?=[ARV]\.$we)/u"               => $nns,           # i.A., i.R, i.V.
	 "/${wb}[nv]\.\K$s_re?(?=Chr\.$we)/u"              => $nns,           # n.Chr., v.Chr.
	 "/${wb}o\.\K$s_re?(?=[J\\xC4\\xE4]\.$we)/u"       => $nns,           # o.J., o.Ä, o.ä.
	 "/${wb}[sS]\.\K$s_re?(?=[ou]\.$we)/u"             => $nns,           # s.o., s.u.
	 "/${wb}u\.\K$s_re?a\.$s_re?(?=m\.$we)/u"          => "${nns}a.$nns", # u.a.m.
	 "/${wb}u\.\K$s_re?v\.$s_re?a\.$s_re?(?=m\.$we)/u" => "${nns}v.${nns}a.", # u.v.a.m.
	 "/${wb}u\.\K$s_re?v\.$s_re?(?=a\.$we)/u"          => "${nns}v.$nns", # u.v.a.
	 "/${wb}u\.\K$s_re?(?=[\\xC4\\xE4]\.$we)/u"        => $nns,           # u.Ä., u.ä.
	 "/${wb}[uU]\.\K$s_re?(?=a\.$we)/u"                => $nns,           # u.a.
	 "/${wb}u\.\K$s_re?(?=U\.[ ,])/u"                  => $nns,           # u.U.
	 "/${wb}[vV]\.\K$s_re?(?=a\.$we)/u"                => $nns,           # v.a.
	 "/${wb}[zZ]\.\K$s_re?(?=(?:[BT]|Zt?)\.[ ,])/u"    => $nns,           # z.B., z.T., z.Zt.
	 "/(?:\(|,$s_re)[*\x{2020}]\K$s_re?(?=\d+[ ,)])/u" => $nns,           # († 1865), (* 1634), ...
	 "/${wb}(?:A(?:rt|bs)|S)\.\K$s_re?(?=\d+$s_re?ff\.$we)/u" => "$nns$1$nns", # Art. 1 ff., Abs. 1 ff., S. 1 ff.
	 "/${wb}(?:A(?:rt|bs)|S)\.\K$s_re?(?=\d)/u"        => $nns,           # Art. 1, Abs. 1, S. 1
	 "/${wb}[1-3]?\d\.\K$s_re(?=(?:Januar|J\\xE4nner|Februar|M\\xE4rz|April|Mai|Ju[nl]i|August|September|Oktober|November|Dezember)\b)/u" => $nns, # 12. August, ...
	 "/${wb}\d+\.\K$s_re(?=(?:Jh\.|Jahrhundert\b))/u"  => $nns,           # 13. Jh., ...
	 "/\b\d+\K$s_re?(?=(?:[\\x24\\xA2\\xA5\x{09F3}\x{0E3F}\x{17DB}\x{20A0}-\x{20B5}\x{2133}\x{2116}]|DM|US[D\\x24]|EUR|CHF|CAD|AUD|GBP|\\xB0[CFR]|[stHNT]|[KMGT]iB|[kMGT]?(?:B|Wh?)|[cdhkm\\xB5\x{03BC}]?m|[cdh]?l|m?(?:mol|W)|Bq|Cd|Pa|pF|sm|kn|ha|Ar|eV|Ws|[km\\xB5\x{03BC}]?(?:Sv|[VAFg])|[mk]?\x{03A9}|VA?)\b)/u" => $nns, # <number> <[prefix]unit|currency>
 );
?>

Häufigkeiten von Abkürzungen Bearbeiten

Basierend auf einem Dump der Artikel der deutschsprachigen Wikipedia ergeben sich folgende Häufigkeiten für die oben genannten Abkürzungen.

Abk. #Vorkommnisse #Vorkommnisse (erstes Zeichen case-insensitive)
z.B. 177.529 178.332
u.a. 166.383 167.105
v.Chr. 119.595 119.603
e.V. 78.183 78.519
d.h. 34.266 34.931
n.Chr. 21.738 21.739
z.T. 6.278 6.312
a.D. 4.535 6.197
o.J. 5.698 5.907
a.a.O. 5.512 5.551
v.a. 4.921 4.947
d.J. 2.925 3.714
d.Ä. 3.455 3.459
s.u. 2.975 3.007
s.o. 2.455 2.460
h.c. 2.185 2.192
i.d.R. 1.628 1.640
d.R. 488 1.330
d.i. 958 966
u.U. 885 890
i.R. 704 840
u.v.a. 734 735
i.A. 406 683
z.Zt. 548 557
u.a.m. 477 477
z.Z. 423 455
i.V.m 359 359
i.V. 267 389
o.Ä. 336 339
u.Ä. 335 335
folgende Abkürzungen werden nur selten verwendet:
i.d.F. 153 153
i.S.d. 144 144
v.u.Z. 138 142
z.S. 83 94
m.W.v. 8 8