三省堂 大辞林 |
ルビ 1 [ruby]
ルビー 1 [ruby]
(2)五・五ポイントの欧文活字の古称。
→ルビ
印刷関係用語集 |
広告用語辞典 |
OSS用語集 |
Ruby
まつもとゆきひろが開発しているオブジェクト指向スクリプト言語。GPLとRubyのライセンス(ライセンスに名前は付いていない)のデュアルライセンスで配布されるオープンソースソフトウェア。
Perlと同様、正規表現などを使ったテキスト処理を得意とする。PerlやPythonと同様に汎用性の高い言語である。C/C++で書かれたライブラリによって、データベースアクセスを始めとする各種機能を追加することができる。Webアプリケーション、GUIアプリケーションなどさまざまな用途で用いられる。
日本発のソフトウェアであることもあり、日本でのユーザー・開発者のコミュニティが活発に活動している。
関連見出し
GNU General Public License
デュアルライセンス
Python
Perl
関連URL
オブジェクト指向言語Ruby(http://www.ruby-lang.org/)
IT用語辞典バイナリ |
Ruby
Rubyとは、まつもとゆきひろ氏によって開発されたオブジェクト指向のスクリプト言語の名称である。
Rubyはシンプルな文法や、可読性の高い構文、優れたテキスト処理などを特徴としている。本格的なオブジェクト指向を備えているが、手続き型の処理を行うことも可能である。
Rubyはオープンソースソフトウェア(OSS)として無償で提供されており、公式Webサイトなどからダウンロードして利用することができる。また、UNIXをはじめとして、Linux、Windows、Mac OSなど、様々なプラットフォーム上で動作させることができる。
Rubyは手軽に本格的なプログラミングが可能な言語として、日本はもとより海外でも高い人気を得ている。特に実用のWebアプリケーションを迅速に作成するためのフレームワークとして提唱されたRuby on Rails(RoR)は、アジャイルソフトウェア開発の手法として一大潮流を引き起こした。
参照リンク
オブジェクト指向スクリプト言語 Ruby
鉱物図鑑 |
ルビー(Ruby)
通常光

紫外線照射

Jagdalek,Sorobi,Afghanistan
赤色の発光は上手く撮影出来ませんでした。
上手く撮影できる方法を知ってる人は教えて!
ルビー(Ruby)

Jagdalek,Sorobi,Afghanistan
ルビー(Ruby)

Rais Mine,Polar,Ural,Russia
Al2O3 画像の幅約3.5cm
6角板状の結晶が雲母のように層状に重なっている標本です。
ルビー(Ruby)

Jegdalek,Sarubi,Kabul,Afghanistan
Al2O3 画像の幅約1.8cm
標本としては貴重なルビーの透明結晶です。
原色大辞典 |
ウィキペディア |
Ruby
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2012/01/21 15:34 UTC 版)
| Ruby | |
|---|---|
![]() |
|
| パラダイム | 構造化、命令型、オブジェクト指向 |
| 登場時期 | 1995年 |
| 設計者 | まつもとゆきひろ |
| 最新リリース | 1.8.7-p352 2011年7月2日 / 1.9.3-p0 2011年10月31日 |
| 型付け | 強い動的型付け、ダック・タイピング |
| 主な処理系 | Ruby、JRuby |
| 影響を受けた言語 | Smalltalk、Lisp、Perl、Python、CLU |
| 影響を与えた言語 | Groovy |
| ライセンス | 1.9.2まで: GPLとRubyライセンスのデュアル, (次バージョンの)1.9.3から: BSDLとRubyライセンスのデュアル [1] |
| ウェブサイト | www.ruby-lang.org |
Ruby(ルビー)は、まつもとゆきひろ(通称Matz)により開発されたオブジェクト指向スクリプト言語であり、従来Perlなどのスクリプト言語が用いられてきた領域でのオブジェクト指向プログラミングを実現する。Rubyは当初1993年2月24日に生まれ、1995年12月にfj上で発表された。名称のRubyは、プログラミング言語Perlが6月の誕生石であるPearl(真珠)と同じ発音をすることから、まつもとの同僚の誕生石(7月)のルビーを取って名付けられた。
機能として、クラス定義、ガベージコレクション、強力な正規表現処理、マルチスレッド、例外処理、イテレータ・クロージャ、Mixin、演算子オーバーロードなどがある。Perlの代替となることができることが初期の段階から重視されている。Perlと同様にグルー言語としての使い方が可能で、Cプログラムやライブラリを呼び出す拡張モジュールを組み込むことができる。
Ruby処理系は、主にインタプリタとして実装されている(詳しくは#実装を参照)。
構文は、ALGOL系を継承しながら、可読性を重視している。Rubyにおいては整数や文字列なども含めデータ型はすべてがオブジェクトであり、純粋なオブジェクト指向言語といえる。
長らく言語仕様が明文化されず、まつもとによる実装が言語仕様に準ずるものとして扱われて来たが、2010年6月現在、JRubyやen:Rubiniusといった互換実装の作者を中心に機械実行可能な形で明文化するen:RubySpecという試みが行われている。公的規格としては2011年3月22日にJIS規格(JIS X 3017)が制定され、ISO化を目指している[2]。
フリーソフトウェアとしてRubyライセンス(Ruby License や Ruby's と表記されることもある。GPLかArtisticに似た独自ライセンスを選択するデュアルライセンス。)で配布されている。
目次 |
Ruby哲学
開発者のまつもとゆきひろは、「Rubyの言語仕様策定において最も重視しているのはストレスなくプログラミングを楽しむことである (Enjoy programming)」と述べている。(ただし、まつもとによる明文化された言語仕様は存在しない。)Perlのモットー「やり方はいろいろある (TMTOWTDI; There's More Than One Way To Do It)」は「多様性は善(Diversity is Good)」というスローガンでRubyに引き継がれてはいるものの最重要なものではないとも述べており、非推奨な手法も可能にするとともに、そのような手法を言語仕様により使いにくくすることによって自粛を促している。これは言語仕様が「望ましい」習慣の押し付けを行うということであり、洗脳言語(Babel-17)と言われる一面でもある。
実装
公式な実装
Rubyの公式な実装には、以下の二種類が存在する。
- MRI(Matz' Ruby Implementation)
- 1.8.x以前の公式実装。まつもとゆきひろによって開発されはじめたC言語による実装であり、最も広く使われている。JRubyなどに対してCRubyと呼ばれることもある。また、JRubyなどに対しては、広義の意味で後述のYARVを取り込んだ1.9.xも含んでMRIと言うこともある。
- YARV
- 1.9で採用された、MRIを拡張した公式な処理系。これはソースコードをバイトコードへコンパイルした後、バイトコードを仮想機械上で実行するインタプリタである。もともとは開発中におけるその仮想機械の名前。
その他の実装
- JRuby
- Javaベースの実装。純粋なJavaで行われているため、プラットフォーム非依存の利用が可能。ほとんどのRubyクラスが組み込みで提供されている。インタープリタ・実行時コンパイラ・事前コンパイラの3種類が用意されている。事前コンパイラでは、Javaバイトコードへ変換し、JRubyが無くても他のJavaプラットフォーム上で動作させることが可能となる。
- IronRuby
- .NET Framework上でRubyを動作させる実装であり、.NET Frameworkのライブラリと連携させることができる。JIT方式のバイトコードインタプリタ。共通言語基盤に準拠した実装(Monoなど)で動作するため、プラットフォーム非依存の利用も可能(ただし、ソースコードが.NET Frameworkのライブラリに依存している場合はMonoでの動作は不可能)。
- MacRuby
- いずれもMac OS X上で動作するRuby実装。Cocoaを含む様々なフレームワークとの連携が可能。MacRubyはRubyCocoaの問題点を解決するために開発されている。
- Rubinius
- 仮想機械上でRubyを実行するJIT方式のバイトコードインタプリタ。大部分がRubyで実装されている。
- その他
- Parrot上でRubyを動作させるための実装なども開発されている。
競合言語
プログラミング言語としてのRubyはオブジェクト指向の動的型付け言語のインタプリタ言語として最も人気あるもののひとつであり、多くの分野でPerlやPythonと競合する。特にPythonとは共通する点が多く、このことがそれぞれの言語のユーザ同士の間で「どちらの言語が優れているか」といった論争を生んできた。しかしその論争は技術的な細部にとらわれた不毛な議論になることも多かった。
ここであえて両者の細部を比較はしないが、ユーザ数や書かれたシステムの数量・質、同等な機能を持つプログラムの実行速度などを現時点で比べると世界的にはPythonの方が人気が高い。一方、日本では開発者が日本人であることもあり、Rubyの人気は高く書籍も多く出版されている。とはいえ2004年前後まで圧倒的なキラーアプリがなく、tDiaryやバグトラッキングシステム「影舞」程度しか知られていなかったため、大きな普及には至らなかった。ところが2004年末に発表され2005年に大ブレイクしたRuby on Railsにより注目を集めている。
例
基本的なコード
# 文字列、数値を含め、全てがオブジェクトである -199.abs # 199 "ruby is cool".length # 12 "Rick".index("c") # 2 "Nice Day Isn't It?".split(//).uniq.sort.join # " '?DINaceinsty"
コレクション
配列の作成と使用法
a = [1, 'hi', 3.14, 1, 2, [4, 5]] a[2] # 3.14 a.reverse # [[4, 5], 2, 1, 3.14, 'hi', 1] a.flatten.uniq # [1, 'hi', 3.14, 2, 4, 5]
ハッシュの作成と使用法
hash = {'water' => 'wet', 'fire' => 'hot'} hash = {water: 'wet', fire: 'hot'} # シンボルリテラルをキーとする場合、Ruby 1.9 からはこのような Javascript 風の表記ができる。 puts hash['fire'] # 表示: hot hash.each do |key, value| puts "#{key} is #{value}" end # 表示: water is wet # fire is hot hash.delete_if {|key, value| key == 'water'} # Deletes 'water' => 'wet'
制御構造
ほかの言語でもよくみられるような制御構造を用いることができる
if "fablic".length > 3 puts 'ya' else puts 'nop' end # 表示: ya n = 0 while n < 3 puts 'foobar' n += 1 end # 表示: foobar # foobar # foobar
一部の制御構造は後述するイテレータで代替することができる。
ブロック付きメソッド呼び出し
Rubyではブロック付きメソッド呼び出しを用いるコードが好まれることが多い。これを用いると、ユーザー定義の制御構造やコールバックなど様々な処理を簡潔に記述できるからである。
ブロックとは波括弧({, })またはdo, endによって囲まれたコード列のことである。メソッド呼び出しの末尾に記述することが出来る。
# { ... } method1 { puts "Hello, World!" } # do ... end method2 do puts "Hello, world!" end
ブロック付きメソッド呼び出しが繰り返し処理を主な役割としていたことから、イテレータと呼ばれていた時期がある。しかし、実際には繰り返し処理にとどまらず、様々な使われ方をしているので、最近はブロック付きメソッド呼び出し全体の総称としてイテレータという名称を用いるのは適切でないと考えられている。[1]
繰り返し処理
配列の各要素への繰り返し処理
list = [1, 2, 5, 13, 21] p list.map {|item| item * 2} # listの各要素を2倍するmap処理。collectはその別名である。 p list # mapでは元の配列の内容は変更されない。 list.map! {|item| item * 2} # mapではなくmap!を実行すると元の内容が変更される。 p list # map! を実行した結果元の配列の内容が変更されていることが確認できる
以下はブロックを使わずに同じことを行う場合
list = [1, 2, 5, 13, 21] n = 0 while n < list.length list[n] *= 2 n += 1 end
指定した回数の繰り返し処理
3.times { puts 'foobar' } # 制御構造の項のwhileの例と同じ
後処理の省力化
ブロックの内容を実行してから、決められた後処理を行うメソッドもある
File.open('file.txt', 'w+b') do |file| file.puts 'Wrote some text.' end # Fileはここで自動的にcloseされる
これは次の例と同様の処理を行う(ensureについては例外処理の項を参照)
begin file = File.open('file.txt', 'w+b') file.puts 'Wrote some text.' ensure file.close end
本処理を後から指定
実際に行いたい処理をブロックで記述する。 前項の後処理の省力化もこれの一例といえる。
def bfs(list) #配列をツリーに見立てた処理 until list.empty? unit = list.shift yield unit #ブロックの内容を実行 unit.each{|v| list.push v} if defined? unit.push end end bfs([0,1,[2,3],4,[5,[6,7,8]],9]) {|v| p v}
この例は"ツリーから要素と分枝をつぎつぎと取り出し"て"取り出したものになんらかの処理を行う" ものである。メソッドの利用者は、"なんらかの処理"のみを記述すればよく、取り出しのアルゴリズムなど、本質的でない内容に意識を向ける必要がなくなる。
クロージャ
クロージャとなるようなブロックの引数渡し
# オブジェクトのインスタンス変数(変数名の頭に@が付く)でブロックを記憶。 def remember(&p) @block = p end # nameを受け取るブロックを引数に、上記のメソッドを呼び出す。 remember {|name| puts "Hello, " + name + "!"} # 後に必要になった時点でクロージャを呼び出す。 @block.call("John") # 表示:"Hello, John!"
メソッドからクロージャを返す例
def create_set_and_get(value = 0) return proc {|x| value = x}, proc { value } end setter, getter = create_set_and_get setter.call(21) getter.call # => 21
クラス
次のコードはPersonという名前のクラスである。その中、まずinitializeはオブジェクトを初期化するコンストラクタである。ほかに2つのメソッドがあり、1つは比較演算子である<=>をオーバーライドしておりArray#sortによりプロパティageでソートすることができる。もう1つのオーバーライド箇所のto_sメソッドは Kernel#puts での表示の形式を整える。attr_readerはRubyにおけるメタプログラミングの例であり、attr はインスタンス変数の入出力を司る、いわゆるgetterやsetterメソッド(アクセサ)を定義する。attr_readerはgetterメソッドのみの定義である。なおメソッド中では最後に評価された式が返り値となり、明示的なreturnは省略できる。
class Person def initialize(name, age) @name, @age = name, age end def <=>(person) @age <=> person.age end def to_s "#{@name} (#{@age})" end attr_reader :name, :age end group = [ Person.new("John", 20), Person.new("Markus", 63), Person.new("Ash", 16) ] puts group.sort.reverse
結果は3つの名前が年の大きい順に表示される
Markus (63) John (20) Ash (16)
例外処理
例外はなにか不具合が起こったときraiseの呼び出しで発生させることができる。 Rubyでの例外はExceptionクラスか、そのサブクラスのインスタンスである。
例外にはメッセージを追加することもできる
raise "This is a message"
さらに例外のタイプも指定できる
raise ArgumentError, "Illegal arguments!"
例外はrescue節で処理することができ、次のようにコードにrescueを付加するだけである
begin # 通常処理 rescue # 例外処理。引数を省略すると、StandardErrorのサブクラスの例外のみ処理する rescue SomeError # 例外処理。SomeErrorの例外のみ処理する。 ensure # 例外の発生に関わらず必ず実行される処理 else # 例外が発生しなかったときに実行される処理 end
Rubyの周辺技術
- 分散オブジェクトを実現するdRuby
- Apache HTTP Serverに組み込むためのmod ruby
- サーバサイドでHTMLへの埋め込みRuby文を実現するeRuby
- Rubyスクリプトに埋め込むことができる文書形式RD
- RubyによるRDを採用したWikiクローン、RWiki
- RubyからSDLライブラリを扱えるようにするRuby/SDL
- RubyからDelphiを扱えるようにするApollo
- RubyによるWebアプリケーションフレームワークRuby on Rails
- Rubyの別の処理系であるYARV(Yet another RubyVM)
- Rubyの統合開発環境RDE(Ruby Development Environment)
- RubyのコードをWindowsの実行形式ファイルに変換するExerb
- Ruby用のライブラリ管理システムであるRubyGems
- Microsoft WindowsのActiveX環境でrubyインタープリターを呼び出すActiveScriptRuby (Internet Explorer限定だがHTMLに埋めこんでクライアント上で動かすスクリプト言語としてRubyを指定できるようになる - サーバ上で動作する eRubyとは区別すること)
- RubyからWin32APIやCOMコンポーネントを呼び出すためのライブラリー WIN32OLE
- JavaScriptやFlash上で動くRubyの処理系HotRuby
- Rubyによるビヘイビア駆動開発のためのフレームワークRSpec
- Rubyで書かれたビルドツール Rake
Rubyで開発されたアプリケーション
Rubyを組み込んだアプリケーション
- RPGツクールXP・RPGツクールVX
- 株式会社エンターブレインから発売されているRPG制作ソフトシリーズのうち、RPGツクールXPとRPGツクールVXでは、Rubyをツクール専用にカスタマイズした Ruby Game Scripting System (RGSS)を搭載している。同シリーズの従来ソフトではあらかじめ用意された機能しか使えなかったが、これにより戦闘などのシステムを一から構築する事が出来るようになった。
エピソード
Rubyではブロック構造をendで終える構文が採用されているが、開発者のまつもとゆきひろは他の構文が採用される可能性があったことを述べている。当時、Emacs上でendで終える構文をオートインデントさせた例はあまりなく、Ruby言語用の編集モードにオートインデント機能を持たせられるかどうかが問題になっていたためである[注釈 1]。実際には数日の試行でオートインデント可能であることがわかり、現在の構文になった。C言語のような{}を使った構文を採用することも検討されていたが、結局これは採用されなかった[3]。
参考文献
- 高橋征義・後藤裕蔵 『たのしいRuby Rubyではじめる気軽なプログラミング』 まつもとゆきひろ監修、ソフトバンクパブリッシング、2002年4月。ISBN 4-7973-1408-7。 - プログラム未経験者向けの入門書。
- 高橋征義・後藤裕蔵 『たのしいRuby Rubyではじめる気軽なプログラミング』 まつもとゆきひろ監修、ソフトバンクパブリッシング、2006年8月、第2版。ISBN 4-7973-3661-7。
- 高橋征義・後藤裕蔵 『たのしいRuby』 まつもとゆきひろ監修、ソフトバンクパブリッシング、2010年3月、第3版。ISBN 978-4-7973-5740-0。
- デビット・トーマス・アンドリュー・ハント 『プログラミングRuby 達人プログラマーガイド』 田和勝訳、まつもとゆきひろ監修、ピアソン・エデュケーション、2001年9月。ISBN 4-89471-453-1。
- Dave Thomas・Chad Fowler・Andy Hunt 『プログラミングRuby 言語編』 田和勝訳、まつもとゆきひろ監修、オーム社、2006年8月、第2版。ISBN 4-274-06642-8。
- Dave Thomas・Chad Fowler・Andy Hunt 『プログラミングRuby ライブラリ編』 田和勝訳、まつもとゆきひろ監修、オーム社、2006年8月、第2版。ISBN 4-274-06643-6。
- Dave Thomas・Chad Fowler・Andy Hunt 『プログラミングRuby 1.9 言語編』 田和勝訳、まつもとゆきひろ監修、オーム社、2010年5月。ISBN 978-4-274-06809-6。
- Dave Thomas・Chad Fowler・Andy Hunt 『プログラミングRuby 1.9 ライブラリ編』 田和勝訳、まつもとゆきひろ監修、オーム社、2010年5月。ISBN 978-4-274-06810-2。
- David Flanagan・まつもとゆきひろ 『プログラミング言語Ruby』 卜部昌平監訳、長尾高弘訳、オライリー・ジャパン、2009年1月。ISBN 978-4-87311-394-4。
- まつもとゆきひろ・石塚圭樹 『オブジェクト指向スクリプト言語Ruby』 アスキー〈ASCII software science : Language 11〉、1999年11月。ISBN 4-7561-3254-5。
- まつもとゆきひろ 『まつもとゆきひろ コードの世界~スーパー・プログラマになる14の思考法』 日経Linux編集、日経BP社、2009年5月。ISBN 978-4-8222-3431-7。
関連項目
- Rubyアソシエーション
- RHDL - Ruby言語ベースのハードウェア記述言語
脚注
注釈
出典
- ^ “Ruby'sライセンスの、BSDLとのデュアルライセンスへの変更” (日本語). ruby-dev mailing list. (2010年9月24日) 2011年4月20日閲覧。
- ^ http://itpro.nikkeibp.co.jp/article/NEWS/20110920/368907/
- ^ まつもとゆきひろ 「探訪 Ruby 第6回」『Linux Magazine』56号、株式会社アスキー、2004年。
外部リンク
- オブジェクト指向言語Rubyホームページ
- スラッシュドット・ジャパンでの まつもとゆきひろ へのインタビュー
- Open Directory - Ruby カテゴリ
- Ruby Application Archive
- RubyForge
- Ruby Tutorial
- RubyWorldConference
- RubySpec - The Standard You Trust
- 中高生国際Rubyプログラミングコンテスト
- 情報処理推進機構:プレス発表:プログラム言語RubyのJIS規格(JIS X 3017)制定について
|
||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||
ルビ
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2011/12/22 03:04 UTC 版)
(ruby から転送)
ルビ(英: ruby)とは、文章内の任意の文字に対しふりがな/説明/異なる読み方といった役割の文字をより小さな文字で、通常縦書きの際は文字の右側/横書きの際は文字の上側に記されるものである。
目次 |
概要
明治時代からの日本の活版印刷用語であり、「ルビ活字」を使用し振り仮名(日本語の場合)やピン音(中国語の場合)などを表示したもの。日本で通常使用された5号活字にルビを振る際7号活字(5.25ポイント相当)を用いたが、一方、イギリスから輸入された5.5ポイント活字の呼び名が英: ruby(ルビー)であったことから、この活字を「ルビ活字」とよび、それによってつけられた(振られた)文字を「ルビ」とよぶようになった。明治期つまり19世紀後半のイギリスでは活字の大きさを宝石の名前をつけてよんでいた[1]。
ルビの振り方
ルビをつけることを一般的に「ルビを振る」と表現する。より専門的な用語として組版業界用語では「ルビを組む」と表現する。
ルビが必要となる場合
- 漢字に読みをつける際に用いる。通常、ひらがなが用いられる。
- 人名や地名など、一般的でない読み方をする場合に読み方をガイドする。
- 漢字に限らず、任意の文字・単語に対して別の読み方を指定したい場合に使用する。
- 外来語を翻訳した用語の場合に、その用語自体の読み方は一般的に自明だが元の外来語の発音を提示したい場合に用いる。この場合はカタカナが用いられる。
- その他、文書の対象年齢が低い場合など必要に応じ総ルビを施す(少年向け漫画など)。また、かつての新聞はルビが多かった(「今日(けふ)」など簡易な物にも振ってあり、総ルビに近い)。
- 未就学児向けの絵本などにおいて、カタカナにひらがなのルビを振ることがある。
ルビの実現方法
組版規則におけるルビ
組版についての詳細は組版を参照。
ルビの組み方
一般的な組版規則において、ルビの組み方は以下に挙げるような基本的なルールがある。
親文字との位置
親文字とは、ルビを振る対象となる元の文字(文字群)のこと。
- 縦組みならば親文字の右、横組みならば上に付けるのが基本である。
- ただし人物名に生没年をつけたり、漢文の書き下し文の組版をする場合には左右ないし上下の両方に付く。
- 親文字に対する位置は肩付き、センタリング、ジャスティファイなどのルールがある。
- 親文字の前後の文字が仮名もしくは空白の場合、半角分まで食い込みが可能。
- 前後に食い込み可能な領域がある場合、後ろにはみ出すことが優先される。
- 下記のことから、半角分とはつまりルビ1字に相当する。
- 食い込み可能な領域がない、もしくは不足する場合、前後の文字との字間を空ける。
- このときも後ろを空けるのが優先される。
ルビ文字のサイズ
組版において、ルビは基本的に親文字の半分のサイズの文字を用いる。冒頭にあるように基本の本文サイズが10.5ポイントならば5.25ポイントであるし、本文が14級なら7級とするのがベーシックな組み方である。これには、振り仮名としては親文字となる漢字1字に対して2-3文字の仮名が振れれば多くの場合は充分、ということもある。
そのため漢字2字に対してはルビ4文字が基本であり、それを越える場合には親文字(単語)の字間を少しずつ空けるか写植以降ではルビ文字を変形加工(平体/長体という)するか、「3字ルビ」といった特殊ルビ文字を使用するなどの処理が行われる。
グループルビとモノルビ
漢字1文字ごとに読み仮名を振るルビをモノルビ、単語単位に振るルビをグループルビという。文字と読みの関係を学ぶ目的の文章、教科書や教材(特に低年齢用)ではモノルビが使用される。熟字訓や当て字についてはグループルビが使用される。 
捨て仮名
捨て仮名とは、「あ」に対する「ぁ」のように小字で表される仮名を指す印刷用語。
和文組版において、一般的に「基本」とされる組み方では捨て仮名は使わない。そのため、仮に「自由百科事典」に「ウィキペディア」とルビを付けるとしたら、「ウイキペデイア」となる。これには小さすぎるポイント・号数の活字では却って読みづらいという問題もあり、読みを助ける意味ではこれで充分であった。
ところが、既に日本語にある単語の振り仮名であるなら一般原則がわかっている読者であるためそれほど問題とはならないのであるが、外来語に関してはそれが一般的でないために「ウィキペディア」なのか「ウイキペデイア」(という単語)なのか分からなくなる。いいかえれば、そこに教育的啓蒙的な配慮が必要かどうかという問題が生じる。
上述したような教科書などの出版物では日本語の読みも含めて捨て仮名が使用されるし、近年はその他の出版物でも捨て仮名を使ったルビ組みも増加傾向にある模様である。
ルビ字形
ワープロソフトなどでは(一般的なデジタルフォント製品自体が対応していないので当然なのだが)ルビには通常の文字が使用される。ただし活字時代も含め、専用の組版機(写植、電算写植など)ではルビ専用の仮名文字があることは当たり前だった。OpenTypeフォント製品にはこれを装備しているものがある。
HTML上のルビ
XHTML1.1でルビモジュールが導入され、ルビを記述できるようになった。それ以前からInternet Explorerが規格提唱とともに先行実装しており、レンダリングが可能である。Mozilla財団が開発しているブラウザ・Mozilla FirefoxをはじめとするGeckoブラウザでは拡張機能のXHTMLルビサポートによって対応されている。なお、ウィキペディアをはじめとしたXHTML1.0文章、HTML文章でのルビの使用は文法違反である。もっとも、ウィキペディアそのものでルビを使う事はウィキペディア日本語版を支えるソフトウェアであるMediaWikiで問題無く使えるHTMLルビの範囲にルビモジュールが許可されているので、使用上の問題は無く許されている。
- 記述
- 表意文字である<ruby><rb>漢字</rb><rp>(</rp><rt>かんじ</rt><rp>)</rp></ruby>にルビを振る
- 現在使用しているブラウザで表示した結果
- 表意文字である
漢字 にルビを振る - ルビに対応していないブラウザでの表示結果(例)
- 表意文字である漢字(かんじ)にルビを振る
- ルビに対応しているブラウザでの表示結果(例)
-
か ん じ 表意文字である 漢字 にルビを振る
ユニコード上のルビ
Unicode(ユニコード)での標準的なルビ表示制御文字である[2]。ただし、HTMLのタグなどが使える環境の場合はタグによる指定に置き換えるべきである。
- U+
FFF9— Interlinear annotation anchor - 親文字開始指定文字 - U+
FFFA— Interlinear annotation separator - ルビ開始指定文字 - U+
FFFB— Interlinear annotation terminator - ルビ終止指定文字
- 記述
- 表意文字である漢字かんじにルビを振る
- 現在使用しているブラウザで表示した結果
- 表意文字である漢字かんじにルビを振る
JIS X 4052上のルビ
JIS X 4052「日本語文書の組版指定交換形式(Exchange format for Japanese documents with composition markup)」でのルビの記述は、タグ付け及び特殊記号によるものである。規格上はJIS P 0138とJIS X 0201とJIS X 0208とJIS X 0213とJIS X 0221とJIS X 4051とJIS Z 8305とを適用する。
タグ付けによる対象要素の指定
#HTML上のルビ指定と同じ形式である。ただし、rp要素は使わない。
- グループルビ記述
- 表意文字である<RUBY><RB>漢字</RB><RT>かんじ</RT></RUBY>にルビを振る
- 現在使用しているブラウザで表示した結果
- 表意文字である
漢字 にルビを振る - モノルビ記述
- 表意文字である<RUBY><RBC><RB>漢</RB><RB>字</RB></RBC><RTC><RT>かん</RT><RT>じ</RT></RTC></RUBY>にルビを振る
- 現在使用しているブラウザで表示した結果
- 表意文字である<RBC>
漢 字 </RBC><RTC></RTC>にルビを振る
特殊記号による対象要素の指定
ルビ文字列及び親文字列からなる親文字群は、次のように指定する。開始記号列 _^。終止記号列 ^_。ルビ指定括弧は( )を使う。
- グループルビ記述
- 表意文字である_^漢字(かんじ)^_にルビを振る
- モノルビ記述
- 表意文字である_^漢(かん)字(じ)^_にルビを振る
JIS X 4081上のルビ
JIS X 4081「日本語電子出版検索データ構造(Retrieval data structure for Japanese electronic publication)」でのルビの記述は、表示制御記述子によるものである。規格上はJIS X 0208との組み合わせのみであるが、説明として数値文字参照表記で代用表記する。
- 記述
- 表意文字である἖漢字ἆかんじἇにルビを振る
青空文庫上のルビ
青空文庫でのルビの記述は、視覚障碍者読書支援協会(BBA)の原文入力ルールであるルビ指定括弧《 》および親文字開始指定文字としての|を踏襲したものである。
- 記述
- 表意文字である|漢字《かんじ》にルビを振る
脚注
- ^ 参考:19世紀後半におけるイギリスでの文字サイズ名称として、他にエメラルド(6.5ポイント)、パール(5ポイント)、ダイアモンド(4.5ポイント)などが存在した。出典:屋内恭輔「XMLがわかる本」毎日コミュニケーションズ, p120。ISBN 4-8399-0762-5
- ^ http://www.unicode.org/unicode/reports/tr20/#Interlinear 3.6 Interlinear Annotation Characters, U+FFF9-U+FFFB
関連項目
外部リンク
- W3C Recommendation - Ruby Annotation(英語)
- ルビ付注(W3C勧告 2001年5月31日邦訳版)
- Mozilla Bug 33339 - XHTML <ruby> support(英語)
- XHTMLルビサポートfor Netscape7 & Mozilla & Firefox(Geckoブラウザでルビ表示を可能にする)
- Firefox Add-ons - XHTML Ruby Support
- 外国人向け多言語文字ルビ振り
固有名詞の分類
rubyに関連した本
- Ruby on Rails 3 ポケットリファレンス 山田 祥寛 技術評論社
- Ruby on Rails 3 アプリケーションプログラミング 山田 祥寛 技術評論社
- たのしいRuby 第3版 後藤 裕蔵 ソフトバンククリエイティブ
