ConTeXtにおいて,索引部首は【A】~【Z】(【a】~【z】)であり,
【あ】~【ん】はありません.また,mendex のようなツール
もありません.コンパイルは1パスで完結します.
コマンドは \index[option]{索引語} となっており,日本語索引の
場合には,個人的には[option]部を利用して\index[`読み']{索引語}
の形式としています.`読み' は alphabetic でなければなりませんので,
実際には,ローマ字か英語で書くことになります.例えば,
\index[kumihan]{組版}とすれば【K】の部に「組版」が登録され,
\index[typeset]{組版}とすれば【T】の部に「組版」が登録されます.
[option]部を使わない方法として{接頭語-索引語}とすることもできます.
例えば,
\index{k-組版}とか,\index{k-コンピュータ}ですが,k- も印字されるため
k- が邪魔です.また,ソート順は無視されることになります.
接頭語無しで,単に \index{組版}とすると,索引部首(【A】~【Z】)が表示されません.
個人的には \index[`ローマ字']{索引語} を使っています.
mendexのような索引部首【あ】~【ん】があればよいのですが...欲しいところです.
参考資料が皆無に近いので,上記は勘違いがあるかも知れません.
と,言うことで何かいい方法がありましたら,教えてください.
以下は \index{k-組版} と \index[kumihan]{組版} で
【K】の部に「組版」が登録された一例です.
----------
Sortに関してはUCAとかJIS X 4061をキーワードに調べればよいと思います。
すぐ見つかるところは以下です。(英語のサイト)
Unicode collation algorithm
http://www.unicode.org/reports/tr10/
Unicode.org -> FAQ -> Collation
http://www.unicode.org/faq/collation.html
ICU - International Components for Unicode
http://site.icu-project.org/
ICU -> collation
http://userguide.icu-project.org/collation
ICU -> collation -> Sorting of Japanese Text (JIS X 4061)
http://userguide.icu-project.org/collation/concepts#TOC-Sorting-of-Japanese-Text-JIS-X-4061-
CPAN -> Lingua::JA::Sort::JIS - compares and sorts strings encoded in UTF-8
http://search.cpan.org/~sadahiro/Lingua-JA-Sort-JIS-0.10/JIS.pod
鹿野さんの講演と組み合わせると、かなりの部分が説明できそうです。
すぐ見つかるところは以下です。(英語のサイト)
Unicode collation algorithm
http://www.unicode.org/reports/tr10/
Unicode.org -> FAQ -> Collation
http://www.unicode.org/faq/collation.html
ICU - International Components for Unicode
http://site.icu-project.org/
ICU -> collation
http://userguide.icu-project.org/collation
ICU -> collation -> Sorting of Japanese Text (JIS X 4061)
http://userguide.icu-project.org/collation/concepts#TOC-Sorting-of-Japanese-Text-JIS-X-4061-
CPAN -> Lingua::JA::Sort::JIS - compares and sorts strings encoded in UTF-8
http://search.cpan.org/~sadahiro/Lingua-JA-Sort-JIS-0.10/JIS.pod
鹿野さんの講演と組み合わせると、かなりの部分が説明できそうです。
ちょっと私の考えていることとずれているような気がします。
Hansさんがどういうおつもりなのかは不明ですが、会話すればよい話なので、置いておきます。
私の想像を以下に述べます。
ICUはすでにJIS X 4061の実際に動く実装(C言語, C++, Java)なので、改めてスクラッチから実装する必要はない。
JIS X 4061 の「読み・表記照合」は、ICUに丸投げすればよく、詳細は知らなくてよい。
ただし、ConTeXtの主要部分はRubyとPerlとluaのようなので、ICUとのつなぎは実装する必要があるかも。
ICUは日本語以外も対応しているので、あわよくば、もっと多言語も対応できるようになるかも。
各言語の詳細に立ち入らなくても一気に多言語対応が進む、ということができるなら実装者にとっても、ユーザーにとっても、魅力が増すのでは。
SortがICUに丸投げできてしまえば、
残りは、欧文のindexには無い部分の理解があればよく、
漢字と読みの関係、読みでソートすること、
見出し文字(mendexでいうところの "Japanese index head")との関係などの
概念を説明することに集中すればよいと思います。
そこらへんは、鹿野さんの TUG 2013 の資料にかなり説明されていましたので、
もう一息の追加説明でよいと思います。
ICUはTeX Liveにも入っており、XeTeXで利用されています。
ConTeXtからも利用しやすいのではないか、と思います。
ICUをRubyから呼ぶものもすでにあるようです↓
ICU4R - ICU Unicode bindings for Ruby
https://rubygems.org/gems/icu4r
http://icu4r.rubyforge.org/
http://icu4r.rubyforge.org/classes/UCollator.html
2006年から更新されていないのが気になりますが。
ICU CollatorをPerlから呼ぶものもありました↓
http://search.cpan.org/~tonyc/Unicode-ICU-Collator-0.002/
これは2012年と新しい。
Hansさんがどういうおつもりなのかは不明ですが、会話すればよい話なので、置いておきます。
私の想像を以下に述べます。
ICUはすでにJIS X 4061の実際に動く実装(C言語, C++, Java)なので、改めてスクラッチから実装する必要はない。
JIS X 4061 の「読み・表記照合」は、ICUに丸投げすればよく、詳細は知らなくてよい。
ただし、ConTeXtの主要部分はRubyとPerlとluaのようなので、ICUとのつなぎは実装する必要があるかも。
ICUは日本語以外も対応しているので、あわよくば、もっと多言語も対応できるようになるかも。
各言語の詳細に立ち入らなくても一気に多言語対応が進む、ということができるなら実装者にとっても、ユーザーにとっても、魅力が増すのでは。
SortがICUに丸投げできてしまえば、
残りは、欧文のindexには無い部分の理解があればよく、
漢字と読みの関係、読みでソートすること、
見出し文字(mendexでいうところの "Japanese index head")との関係などの
概念を説明することに集中すればよいと思います。
そこらへんは、鹿野さんの TUG 2013 の資料にかなり説明されていましたので、
もう一息の追加説明でよいと思います。
ICUはTeX Liveにも入っており、XeTeXで利用されています。
ConTeXtからも利用しやすいのではないか、と思います。
ICUをRubyから呼ぶものもすでにあるようです↓
ICU4R - ICU Unicode bindings for Ruby
https://rubygems.org/gems/icu4r
http://icu4r.rubyforge.org/
http://icu4r.rubyforge.org/classes/UCollator.html
2006年から更新されていないのが気になりますが。
ICU CollatorをPerlから呼ぶものもありました↓
http://search.cpan.org/~tonyc/Unicode-ICU-Collator-0.002/
これは2012年と新しい。
Luaで一から実装したいとのこと.
- すでにたくさんの言語について準備されているし,
- 実装を持っていることによって違うルールにしたいときにすぐに対応できる
ということのようです.
多言語について実装していることから,道具は結構揃っている印象です.
漢字については読みをかなで与えるようにユーザへ要求してよいと思います.
カタカナはひらがなに正規化してソートするように要請するのがよいですね.
\enabletrackers[sorters.*]
\definefont[testfont][msmincho] [script=kana,Xlanguage=jan]
\starttext
\startscript[nihongo]
\testfont
\index{ア}ア,\index{オー}オー,\index{オア}オア,\index{オオ}オオ,\index{い}い,および,\index[いるい]{衣類}。
\completeindex[Xlanguage=jp]
\stopscript
\stoptext
みたいにして実験しながらコミュニケーションしていくことになるかと.
# 私の手元ではIndex entriesがPDFに印字されないのですが,Hansの手元では印字されます.(OSはどちらともWindowsです.)
- すでにたくさんの言語について準備されているし,
- 実装を持っていることによって違うルールにしたいときにすぐに対応できる
ということのようです.
多言語について実装していることから,道具は結構揃っている印象です.
漢字については読みをかなで与えるようにユーザへ要求してよいと思います.
カタカナはひらがなに正規化してソートするように要請するのがよいですね.
\enabletrackers[sorters.*]
\definefont[testfont][msmincho] [script=kana,Xlanguage=jan]
\starttext
\startscript[nihongo]
\testfont
\index{ア}ア,\index{オー}オー,\index{オア}オア,\index{オオ}オオ,\index{い}い,および,\index[いるい]{衣類}。
\completeindex[Xlanguage=jp]
\stopscript
\stoptext
みたいにして実験しながらコミュニケーションしていくことになるかと.
# 私の手元ではIndex entriesがPDFに印字されないのですが,Hansの手元では印字されます.(OSはどちらともWindowsです.)
以下のソースの出力を添付します。
%
% test.tex
%
\enabletrackers[sorters.*]
\definefont[testfont][msmincho] [script=kana,Xlanguage=jp]
\starttext
\startscript[nihongo]
\testfont
\index[あ]{ア}ア,\index[おー]{オー}オー,\index[おあ]{オア}オア,
\index[おお]{オオ}オオ,\index{い}い,および,衣類\index[いるい]{衣類}。
世界\index[せかい]{世界}, 田舎\index[いなか]{田舎},
憲法\index[けんほう]{憲法},全国\index[せんこく]{全国},
槍ヶ岳\index[やりかたけ]{槍ヶ岳}。
\completeindex[Xlanguage=jp]
\stopscript
\stoptext
%
% test.tex
%
\enabletrackers[sorters.*]
\definefont[testfont][msmincho] [script=kana,Xlanguage=jp]
\starttext
\startscript[nihongo]
\testfont
\index[あ]{ア}ア,\index[おー]{オー}オー,\index[おあ]{オア}オア,
\index[おお]{オオ}オオ,\index{い}い,および,衣類\index[いるい]{衣類}。
世界\index[せかい]{世界}, 田舎\index[いなか]{田舎},
憲法\index[けんほう]{憲法},全国\index[せんこく]{全国},
槍ヶ岳\index[やりかたけ]{槍ヶ岳}。
\completeindex[Xlanguage=jp]
\stopscript
\stoptext
Xlanguage などと余分な綴り X を紛れ込ませてしまっていたので,以下のようなサンプルのほうがよかったですね.フォント名も,ipaexm で通ります.
% \enabletrackers[sorters.*]
\definefont[testfont][ipaexm] [script=kana,language=jp]
\starttext
\startscript[nihongo]
\testfont
\index{ア}ア,\index{オー}オー,\index{オア}オア,\index{オオ}オオ,\index{い}い,および,\index[いるい]{衣類}衣類,
\index{チェック}チェック,\index{チエック}チエック,\index{チエツク}チエツク,\index{チェツク}チェツク。
\completeindex[language=jp]
\stopscript
\stoptext
取り急ぎ.
% \enabletrackers[sorters.*]
\definefont[testfont][ipaexm] [script=kana,language=jp]
\starttext
\startscript[nihongo]
\testfont
\index{ア}ア,\index{オー}オー,\index{オア}オア,\index{オオ}オオ,\index{い}い,および,\index[いるい]{衣類}衣類,
\index{チェック}チェック,\index{チエック}チエック,\index{チエツク}チエツク,\index{チェツク}チェツク。
\completeindex[language=jp]
\stopscript
\stoptext
取り急ぎ.
mkii では,ひらがな読みでは,私の経験ではうまくソート
できない場合があったので,浮亭夢介さんの方法にしてみました:
%
% test.tex (W32TeX only)
% encoding sjis
% texexec --eptex test
%
\starttext
{\tf A漢字}{\tfa A漢字}{\tfb A漢字}{\tfc A漢字}{\tfd A漢字}
{\bf A漢字}{\bfa A漢字}{\bfb A漢字}{\bfc A漢字}{\bfd A漢字}
{\it A漢字}{\ita A漢字}{\itb A漢字}{\itc A漢字}{\itd A漢字}
{\sl A漢字}{\sla A漢字}{\slb A漢字}{\slc A漢字}{\sld A漢字}
{\bi A漢字}{\bia A漢字}{\bib A漢字}{\bic A漢字}{\bid A漢字}
{\bs A漢字}{\bsa A漢字}{\bsb A漢字}{\bsc A漢字}{\bsd A漢字}
\index[kanji]{漢字}漢字,
\index[aisatsu]{挨拶}挨拶,
\index[anbai]{塩梅}塩梅,
\index[inji]{印字}印字,
\index[inshi]{因子}因子
\completeindex
\stoptext
できない場合があったので,浮亭夢介さんの方法にしてみました:
%
% test.tex (W32TeX only)
% encoding sjis
% texexec --eptex test
%
\starttext
{\tf A漢字}{\tfa A漢字}{\tfb A漢字}{\tfc A漢字}{\tfd A漢字}
{\bf A漢字}{\bfa A漢字}{\bfb A漢字}{\bfc A漢字}{\bfd A漢字}
{\it A漢字}{\ita A漢字}{\itb A漢字}{\itc A漢字}{\itd A漢字}
{\sl A漢字}{\sla A漢字}{\slb A漢字}{\slc A漢字}{\sld A漢字}
{\bi A漢字}{\bia A漢字}{\bib A漢字}{\bic A漢字}{\bid A漢字}
{\bs A漢字}{\bsa A漢字}{\bsb A漢字}{\bsc A漢字}{\bsd A漢字}
\index[kanji]{漢字}漢字,
\index[aisatsu]{挨拶}挨拶,
\index[anbai]{塩梅}塩梅,
\index[inji]{印字}印字,
\index[inshi]{因子}因子
\completeindex
\stoptext
索引項目の階層化表示をplatex(mendex)とConTeXtの場合
についての実験してみました.
1)platex(mendex)の場合
\index{くみはん@組版}
\index{くみはん@組版 ! くみはんこう@組版工}
\index{くみはん@組版 ! くみはんてくにっく@組版テクニック}
\index{くみはん@組版 ! くみはんこう@組版工 ! くみはんこうのぎりょう@組版工の技量}
2)ConTeXt(markII)の場合
(上記の ! → + 記号に変更します.)
\index[kumihan]{組版}
\index[kumihan]{組版 + 組版工}
\index[kumihan]{組版 + 組版テクニック}
\index[kumihan]{組版 + 組版工 + 組版工の技量}
1)(platex)は索引語すべてに ”読み”が付きますが,2)(ConTeXt)は一つだけしか ”読み”が
付きませんので,sorting が怪しくなると思います.結果は次のようになりました.
についての実験してみました.
1)platex(mendex)の場合
\index{くみはん@組版}
\index{くみはん@組版 ! くみはんこう@組版工}
\index{くみはん@組版 ! くみはんてくにっく@組版テクニック}
\index{くみはん@組版 ! くみはんこう@組版工 ! くみはんこうのぎりょう@組版工の技量}
2)ConTeXt(markII)の場合
(上記の ! → + 記号に変更します.)
\index[kumihan]{組版}
\index[kumihan]{組版 + 組版工}
\index[kumihan]{組版 + 組版テクニック}
\index[kumihan]{組版 + 組版工 + 組版工の技量}
1)(platex)は索引語すべてに ”読み”が付きますが,2)(ConTeXt)は一つだけしか ”読み”が
付きませんので,sorting が怪しくなると思います.結果は次のようになりました.