# Ruby Annotation

Ruby (japanisch ルビ rubi) bezeichnet ein Anmerkungssystem, bei dem der Text zusammen mit seiner Anmerkung in einer Zeile erscheint. Dies wird vor allem bei japanischen und chinesischen Texten zur Angabe der Aussprache genutzt, da die dort verwendeten chinesischen Schriftzeichen in vielen Fällen keinen Aufschluss über die tatsächliche Aussprache geben. Im Japanischen nennt sich diese Nutzung auch Furigana. Beispiele:
| | とう | きょう | tō | kyō | Japanische Aussprachehinweise in Hiragana und Rōmaji |
| Tokio | 東 | 京 | 東 | 京 | Japanische Aussprachehinweise in Hiragana und Rōmaji |
| | ㄅㄟˇ | ㄐㄧㄥ | běi | jīng |
| Peking | 北 | 京 | 北 | 京 | Chinesische Aussprachehinweise in Zhuyin und Pinyin |
Hierbei wird im Allgemeinen zusätzlich zu dem eigentlichen Text, der in chinesischen Schriftzeichen verfasst ist, eine phonetische Schrift verwendet. Im Japanischen sind dies die Kana, im Chinesischen hauptsächlich Zhuyin oder Pinyin.

## Anwendungen von Ruby

Ruby kann aus verschiedenen Gründen eingesetzt werden:
* weil das Schriftzeichen selten ist und die Aussprache den meisten Menschen nicht bekannt ist (z. B. Schriftzeichen für Personennamen);
* weil das Schriftzeichen mehr als eine Aussprache hat und der Kontext nicht ausreicht, um zu bestimmen, welche zu verwenden ist;
* weil die Zielgruppe des Textes die Sprache noch lernt und von ihr nicht erwartet werden kann, dass sie immer die Aussprache und/oder die Bedeutung des Ausdruckes kennt,
* weil der Autor eine nichtstandardisierte Aussprache für die Schriftzeichen verwendet, z. B. um Kalauer-Wortspiele (dajare) hervorzuheben oder zu verdeutlichen, dass sie in einer anderen Sprache gesprochen werden.
Darüber hinaus kann Ruby dazu verwendet werden, die Bedeutung eines möglicherweise ungebräuchlichen (gewöhnlich fremdsprachigen) Slang-Ausdruckes anzugeben statt der Aussprache. Dies wird im Allgemeinen bei gesprochenen Dialogen verwendet und gilt ausschließlich für japanische Veröffentlichungen. Die üblichste Form von Ruby wird furigana oder yomigana genannt und kann man in japanischen Lehrbüchern, Tageszeitungen, Comics und Kinderbüchern finden.
Im Japanischen werden manche Schriftzeichen (z. B. das Sokuon tsu っ, das eine Verdopplung des Konsonanten, vor dem es steht, anzeigt) normalerweise mit der halben Größe eines normalen Schriftzeichens geschrieben. Mit Ruby geschrieben waren jedoch alle Zeichen gleich groß. Erst technologische Fortschritte erlauben jetzt, gewisse Schriftzeichen akkurat zu rendern.
Im Chinesischen ist die Praxis, phonetische Hinweise mittels Ruby zu geben, selten, wird aber systematisch in Grundschullehrbüchern oder -wörterbüchern eingesetzt. Die Chinesen haben dafür keinen besonderen Namen, da es nicht so weit verbreitet ist wie in Japan. In Taiwan ist es unter der Bezeichnung Zhuyin bekannt, dem Namen des phonetischen Systems, das zu diesem Zweck eingesetzt wird. Es wird gewissermaßen immer vertikal eingesetzt, da Veröffentlichungen normalerweise im Vertikalformat erscheinen und Zhuyin waagerecht geschrieben nicht einfach zu lesen ist. Wo Zhuyin nicht verwendet wird, werden andere chinesische phonetische Systeme (z. B. Hanyu Pinyin) eingesetzt.
Ruby-Zeichen werden normalerweise nicht bei Wort-für-Wort-Übersetzungen zwischen Sprachen eingesetzt, noch nicht einmal für identische klassische chinesischen Schriftzeichen, da alle natürlichen Sprachen idiomatische Redewendungen einschließen (in denen Wortkombinationen eine andere Bedeutung besitzen als die Einzelwörter), die Beziehung nicht-benachbarter Wörter ist oft schwierig zu erfassen und normalerweise gibt es keine exakte und eindeutige Übersetzung zu einem gegebenen Wort. Es gibt auch Schwierigkeiten, wenn die Ausgangs- und Zielsprache unterschiedliche Schreibrichtungen haben (z. B. wird Deutsch von links nach rechts geschrieben, Hebräisch von rechts nach links). Ein bekanntes Beispiel hierfür ist die christliche Bibel, die ursprünglich in Koine, Hebräisch und etwas Aramäisch geschrieben war. Nur ganz wenige können diese Originalsprachen fließend lesen. Daher enthalten viele Veröffentlichungen der christlichen Bibel in ihren Originalsprachen Ruby-Texte mit Wort-für-Wort-Übersetzungen in eine andere Sprache, z. B. Deutsch als Hilfe. Solche Dokumente werden häufig als Dokumente mit Interlinearversion bezeichnet (wobei die Betonung darauf liegt, übersetzte Texte „zwischen den Zeilen“ zu geben) und oft enthielten sie auch eine getrennte vollständige Übersetzung des Textes, statt nur Ruby-Schriftzeichen zu verwenden, aber auch hier gibt es Ausnahmen.
Die Ruby-Annotation wird auch in Handschriften verwendet.

## Geschichte

In der britischen Typographie war Ruby ursprünglich der Schriftgrad mit einer Höhe von 5,5 Punkten, die für Interlinearversionen in gedruckten Dokumenten verwendet wurde. Im Japanischen verwendete man das Wort für den Schriftsatz furigana statt sich auf die Fontgröße zu beziehen. Bei der Transliteration zurück ins Englische wurde das Wort in manchen Texten mit „rubi“ wiedergegeben (die typische Romanisierung des japanischen Wortes ルビ). Die Buchstabierung „Ruby“ ist jedoch üblicher geworden, seitdem eine Empfehlung des W3C für Ruby markup veröffentlicht worden war.
In den Vereinigten Staaten wurde es zumindest vor den 1950er Jahren „Agate“ genannt:
   „agate: Ein alter Name für eine Typengröße etwas kleiner als 5,5 Punkte, …. In England Ruby genannt.“

## Technische Umsetzung

Die Darstellung von parallelem Text in einer Zeile stellt ein typografisches Problem dar, das von Computern normalerweise nicht angemessen beherrscht wird. Nur in Textverarbeitungsprogrammen, welche speziell Japanisch unterstützen, wie Microsoft Word oder OpenOffice.org, ist eine Unterstützung vorhanden. Allerdings ist diese nicht auf dem typographischen Niveau von normalen japanischen Büchern. Für HTML ist eine Erweiterung im CSS-Standard vorhanden, welcher aber von den wenigsten Browsern unterstützt wird. Daher wird auf Webseiten normalerweise auf die Angabe der Aussprache verzichtet, oder nur in Klammern nach dem Wort angezeigt.
Die Darstellung von Zhuyin im Chinesischen neben dem Zeichen ist auf dem Computer so gut wie gar nicht problemlos möglich. Daher wird in diesem Fall auf spezielle Schriftarten zurückgegriffen, welche die Zhuyin-Zeichen bereits integriert haben.

### Ruby in XHTML 1.1

Im Jahre 2001 veröffentlichte das W3C die Spezifikationen für die Ruby-Annotation zur Ergänzung von XHTML mit Ruby-Markup. Ruby-Markup ist kein standardmäßiger Bestandteil von HTML 4.01 oder irgendeiner der XHTML 1.0 Spezifikationen (XHTML-1.0-Strict, XHTML-1.0-Transitional und XHTML-1.0-Frameset), wurde aber in die XHTML 1.1 Spezifikation aufgenommen. Die Unterstützung der Markup-Sprache ist aufgrund der schleppenden Implementierung von XHTML 1.1 noch nicht ausgereift.
Das Ruby-Markup besteht aus den Elementen ruby, rbc, rtc, rb, rt und rp. Es ist die einzige Erweiterung gegenüber HTML 4.0.
Als einfaches Beispiel wird, unter Verzicht von fernöstlichen Schriftzeichen, ein Markup verwendet, das eine Basis und eine Zeile mit Ruby-Text darstellt:
Ausgabe: WWWWorld Wide Web
Nach den Empfehlungen des W3C sollte dieses Markup wie folgt gerendert werden:
Browser, die kein Ruby unterstützen, geben die Inhalte ohne Auszeichnung aus, was zu Verständnisfehlern führen kann, mindestens jedoch unschön aussieht. So würde das genannte Beispiel als „WWWWorld Wide Web“ ausgegeben werden. Um dieses Problem teilweise zu beheben, existiert das rp-Tag, dessen Inhalt von Ruby-Implementierungen nicht ausgegeben wird. Durch folgendes Markup bleibt die Darstellung mit Browsern mit Ruby-Unterstützung unverändert, Browser ohne geben jedoch „WWW (World Wide Web)“ aus, was eventuelle Verständnisfehler ausräumt:
Ausgabe: WWW (World Wide Web)
Üblicherweise wird der Ruby-Text über der Basis gesetzt, sowie im vertikalen Schriftsatz – der jedoch ebenfalls nur von einem Teil der Browser unterstützt wird – rechts neben der Basis:
| Schreibweise | Soll | Ist |
| horizontal | | 東京(とうきょう) |
| vertikal | | 漢字(かんじ) |

### Ruby in CSS level 2

Das W3C arbeitet auch an einem spezifischen Ruby-Modul für CSS level 2.
Dieses erlaubt komplexeres Markup mit der Gruppierung von Elementen um präzise den einzelnen Schriftzeichen ihre Furigana zuzuordnen, wobei automatisch Furigana die identisch zum annotierten Schriftzeichen sind (im folgenden Beispiel り) unterdrückt werden:
Ausgabe: 振り仮名(ふりがな)

### Browser-Unterstützung

Einfaches XHTML1.1-Ruby-Markup wird vom Internet Explorer (ab Version 5.0 für Windows und Macintosh) und von WebKit-Browsern (ab Chrome 5, Safari 5, Opera 15) unterstützt. Firefox unterstützt ab Version 38 die CSS-Variante vollständig.

### Unicode

Unicode unterstützt Ruby-Annotationen über spezielle Zeichen zur interlinearen Annotation:
* U+FFF9: Interlinear annotation anchor zur Markierung des Beginns des annotierten Textes
* U+FFFA: Interlinear annotation separator zur Markierung des Endes des annotierten Textes und Beginns der Ruby-Annotation
* U+FFFB: Interlinear annotation terminator zur Markierung des Endes der Ruby-Annotation
Das Unicode-Konsortium empfiehlt jedoch die Verwendung von Ruby-Markup zur besseren Ausgabe.

### ANSI

ECMA-48, auch standardisiert als ISO/IEC 6429, definiert Escapesequenzen zur Nutzung von Ruby-Annotationen für ANSI-Textterminals, auch wenn dies kaum unterstützt wird. Der Escapecode PTX (parallel texts) besitzt die folgenden Parameter:
* CSI 0 \ (oder kurz CSI \) zur Markierung des Endes der Annotationen
* CSI 1 \ zur Markierung des Anfangs des annotierten Textes
* CSI 2 \ zur Markierung des Anfangs der Ruby-Annotation
* CSI 3 \ zur Markierung des Anfangs der japanischen Ruby-Annotation
* CSI 4 \ zur Markierung des Anfangs der chinesischen Ruby-Annotation
* CSI 5 \ zur Markierung des Endes einer Ruby-Annotation