Home / LinuxUser / 2003 / 10 / The Answer Girl: Das Geheimnis der Compose-Taste

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Mandriva gibt Distribution in die Hände der Community
(268 Punkte bei 24 Stimmen)
Neues vom Systemd
(161 Punkte bei 4 Stimmen)
Mandriva in Nöten
(161 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Shopping
Topsuche
 
Yatego Deutschlands größte Shoppingmall. 10000 Shops,
3.5 Mio Artikel. Alle Bestseller, Servertechnik und Technik Themenwelten.

Notebooks und Netzwerkhardware bei Mercateo günstig kaufen.
Internet Telefonie mit VoIP Telefonen von Gigaset
Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.
Günstige Digitalkameras finden Sie im Preisvergleich.

Die Freiheit, Akzente zu setzen

The Answer Girl: Das Geheimnis der Compose-Taste

Compose-Tabelle

Wer jetzt allerdings übermütig mit [Umschalt-AltGr][Umschalt-^] versucht, das Gradzeichen ° über einem a zu platzieren, um ein skandinavisches å zu erzeugen, stößt bei den meisten Distributionen auf Schwierigkeiten: Es funktioniert einfach nicht. Da wäre es gut, irgendwo nachzulesen, welche Möglichkeiten [Compose] denn nun tatsächlich bietet.

locate Compose entpuppt sich überraschenderweise als der richtige Suchansatz und spuckt (unter anderem) Dateien wie

/usr/X11R6/lib/X11/locale/iso8859-1/Compose
/usr/X11R6/lib/X11/locale/iso8859-15/Compose
[…]
/usr/X11R6/lib/X11/locale/koi8-r/Compose

aus. Ein Blick in /usr/X11R6/lib/X11/locale/iso8859-1/Compose (Listing 3) überzeugt davon, dass es sich hierbei um die Definitionstabelle handelt: [Umschalt-AltGr][+][+] erzeugt tatsächlich ein #, das Copyright-Zeichen © lässt sich per [Compose]-Tastendruck und [C][O],[Umschalt-C][Umschalt-O],[Umschalt-C][0] und anderen Kombinationen von c und 0 oder o in beliebiger Groß-Kleinschreibung und Reihenfolge ebenso erzeugen wie mit [Umschalt-AltGr][(][C] (<Multi_key> <parenleft> C). Allerdings funktionieren nicht auf allen Systemen alle angegebenen Kombinationen.

Weiter unten findet sich dann auch das gesuchte a mit Kreis darüber, aring. Des Rätsels Lösung: Nicht das Gradzeichen ° soll man mit a kombinieren, sondern den Stern * (asterisk). Alternativ geht auch [Umschalt-AltGr][A][A] – natürlich nur dann, wenn dies in der Compose-Tabelle so definiert ist.

Listing 3

Ausschnitt aus der Compose-Tabelle

iso8859-1/Compose
[…]
# <Multi_key> Means <Compose>
# Special Character
<Multi_key> <plus> <plus>               : "#"   numbersign
[…]
<Multi_key> <c> <o>                     : "\251"        copyright
<Multi_key> <o> <c>                     : "\251"        copyright
<Multi_key> <C> <O>                     : "\251"        copyright
<Multi_key> <O> <C>                     : "\251"        copyright
<Multi_key> <c> <O>                     : "\251"        copyright
<Multi_key> <O> <c>                     : "\251"        copyright
<Multi_key> <C> <o>                     : "\251"        copyright
<Multi_key> <o> <C>                     : "\251"        copyright
<Multi_key> <c> <0>                     : "\251"        copyright
<Multi_key> <0> <c>                     : "\251"        copyright
<Multi_key> <C> <0>                     : "\251"        copyright
<Multi_key> <0> <C>                     : "\251"        copyright
<Multi_key> <parenleft> <c>             : "\251"        copyright
[…]
<Multi_key> <a> <asterisk>              : "\345"        aring
<Multi_key> <asterisk> <a>              : "\345"        aring
<Multi_key> <a> <a>                     : "\345"        aring
<Multi_key> <a> <o>                     : "\345"        aring
<Multi_key> <a> <e>                     : "\346"        ae
<Multi_key> <acute> <C>                 : "\307"        Ccedilla
[…]

Unerkannte Bugs

Sie fragen sich bereits, warum wir uns die ganze Zeit über iso8859-1/Compose unterhalten? Schlicht und ergreifend, weil diese Tabelle bei den meisten hierzulande verbreiteten Distributionen automatisch zum Einsatz kommt. Ob das auch bei Ihnen der Fall ist, lässt sich ganz leicht nachprüfen: Sie müssen lediglich schauen, welche Compose-Tabelle zuletzt (das heißt normalerweise beim Starten von X oder beim grafischen Einloggen) gelesen wurde.

Der Befehl dazu heißt – Überraschung – ls: Die Ausgabe des langen Listings (Option -l) erhält das Datum der letzten Dateiänderung. Wer stattdessen das Datum des letzten Zugriffs generell (das kann auch ein Lesezugriff sein) sehen möchte, modifiziert die Listing-Ausgabe wie in Listing 4 mit der Zusatzoption -u. Dort erkennt man deutlich, dass iso8859-1/Compose zuletzt angefasst wurde, auf die anderen hat schon lange niemand mehr zugegriffen.

Listing 4

Welche Compose-Tabelle kommt zum Einsatz?

pjung@linux> ls -lu /usr/X11R6/lib/X11/locale/*/Compose
-r--r--r-- 1 root root 35389 Aug 22 16:01 /usr/X11R6/lib/X11/locale/iso8859-1/Compose
-r--r--r-- 1 root root 19260 Aug 13 20:16 /usr/X11R6/lib/X11/locale/iso8859-15/Compose
-r--r--r-- 1 root root 19223 Oct 20  2000 /usr/X11R6/lib/X11/locale/iso8859-2/Compose
[…]

Doch wo steht der Grund dafür? Theoretisch in /usr/X11R6/lib/X11/locale/compose.dir. Diese Datei definiert, welche Compose-Tabelle zum Einsatz kommen soll, wenn die Anwenderin einen bestimmten Zeichensatz wählt:

iso8859-1/Compose   C
[…]
iso8859-15/Compose  de_DE.ISO8859-15

Entscheidet sie (oder der Distributor) sich für keine bestimmte Locale (dieser Fall nennt sich C), käme hier die iso8859-1-Tabelle zum Einsatz. Wählt sie hingegen den für die deutsche Sprache (de) in Deutschland (DE) nötigen Zeichenvorrat nach dem Standard ISO 8859-15, hofft sie, mit [Shift-AltGr][c][=] ein Euro-Zeichen zusammensetzen zu dürfen:

pjung@linux:~> grep Euro /usr/X11R6/lib/X11/locale/iso8859-15/Compose
<Multi_key> <C> <equal> : "\244" EuroSign

Ein Blick auf die eingestellte Locale zeigt, der Euro sollte möglich sein:

pjung@linux> locale
LANG=C
LC_CTYPE=de_DE.ISO8859-15
[…]

(Welche Schreibweisen für eine bestimmte Locale-Angabe noch erlaubt sind, definiert übrigens /usr/X11R6/lib/X11/locale/locale.alias.) Doch folgt die Ernüchterung auf den Fuß: Auf keinem der für diesen Artikel getesteten Systeme änderten die Werte der Variablen LANG oder LC_CTYPE irgendetwas daran, welche Compose-Tabelle zum Zuge kam. Obwohl Compose.dir (zum Beispiel beim Starten des X-Servers) definitiv gelesen wurde, half nicht einmal die Notlösung, ein Umschreiben des Compose.dir-Eintrags für die vom System vorgegebene Locale. Teilweise gab es sogar den überraschenden Effekt, dass im Anschluss an die Locale-Änderung gestartete Programme nur noch auf die Compose-Kombinationen reagierten, die sowohl die alte als auch die gewünschte Compose-Tabelle definierten.

Selbst Red-Hat-9-User, die triumphierend "Bei mir ergibt [Umschalt-AltGr][C][=] aber den Euro!" rufen, freuen sich zu früh: Diese Distribution verwendet stur die Tabelle en_US.UTF-8/Compose, die besagte Belegung definiert. Sie lässt sich aber ebenfalls nicht auf dem vorgesehenen Weg überreden, eine alternative Compose-Tabelle zu verwenden. Linux – und in diesem Falle XFree86 – ist halt nicht perfekt…

Glossar

grep

Dieses Kommando sucht aus dem ihm übergebenen Text (hier aus der Ausgabe von "xmodmap -pk") alle Zeilen heraus, die die als Argument angegebene Zeichenkette (hier: "Mod") enthalten.

ISO 8859-15

Erweiterung des unter anderem für den deutschsprachigen Raum anwendbaren Zeichensatzes ISO 8859-1 um das Euro-Zeichen.

Locale

Definition orts- und sprachtypischer ("lokaler") Einstellungen wie Sprache der Systemmeldungen (in der Variablen LC_MESSAGES), zu verwendender Zeichensatz (LC_CTYPE), die Art und Weise der Datumsangabe (LC_TIME) etc. Mehrere dieser Einstellungen auf einen Schlag deckt die Variable LANG ("language" – Sprache") ab, alle die Variable LC_ALL. Wer englische Systemausgaben, aber das "deutsche Alphabet" bevorzugt, lässt LANG auf C stehen und setzt lediglich LC_CTYPE.

Infos

[1] Patricia Jung: "Tastenwirbel", LinuxUser 06/2002, S. 74 ff., http://www.linux-user.de/ausgabe/2002/06/074-answergirl/answergirl.html

[2] Patricia Jung: "Kommandozeilen-Jongleur", LinuxUser 02/2002, Listing 1 S. 81, http://www.linux-user.de/Ausgabe/2002/02/080-answergirl/answergirl.html

[3] xkeycaps: http://www.jwz.org/xkeycaps/

Einem Freund empfehlen    Druckansicht Bookmark and Share
Kommentare

Hits
Wertung: 69 Punkte (1 Stimme)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 06/2012

Aktuelle Ausgabe kaufen:

Heft bestellen Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,50 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 56,10) können Sie im LNM-Shop bestellen.

Tipp der Woche

Adobe AIR
Adobe-AIR-Programme installieren und (manuell) starten
Tim Schürmann, 14.05.2012 13:09, 0 Kommentare

Es gibt sie noch: neue Anwendungen, die Adobes Integrated Runtime voraussetzen. Aktuellstes und vermutlich auch größtes Beispiel ist das Adventure Botanicula

Aktuelle Fragen

gibt es ein Kommandozeilen Tool, um ein X11-Fenster in ein Anderes einzubetten?
GoaSkin , 21.05.2012 16:44, 0 Antworten
Das XEmbed-Protokoll ist u.A. dazu gedacht, dass man eine X11-Anwendung in eine andere wie ein Wi...
Apache2, Options -Indexes geht nicht
no no, 12.05.2012 19:01, 8 Antworten
Habe in apache2.conf folgendes stehen: Options -Indexes ...
LInux auf Dell LS H500
Andreas Endresl, 09.05.2012 08:54, 2 Antworten
Habe einen alten Dell Latitude LS H500 nur mit ext. Floppy und CD es geht nur immer eines von den...
Datenwiederherstellung unter Ubuntu 12.04 mit "Simple Backup" nach Umzug von Linux Mint
Christian Lottmann, 07.05.2012 13:33, 0 Antworten
Vor dem Umzug auf Ubuntu 12.04 habe ich unter Linux MInt mit "Simple Backup" voll (15.4.2012) und...
DKMS für den propritären NVIDIA-Treiber
Commander Data, 26.04.2012 22:02, 2 Antworten
Hallo an die Gemeinde. Ich habe hier ein interessantes Stück openSuSE gefunden. http://forums.op...