ConTeXt の 索引 について

ConTeXt の 索引 について

- 浮亭 夢介 の投稿
返信数: 13
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】の部に「組版」が登録された一例です.
 
----------
 

添付 index.png
浮亭 夢介 への返信

Re: ConTeXt の 索引 について

- KUROKI Yusuke の投稿
Hans 曰く,ハングルには対応しているらしいので,ルールさえ説明できれば,日本語の索引についても(相当高い確率で)実装してもらえる可能性があります.

英語(またはオランダ語)のドキュメントで,日本語の索引について書いてあるものをご存じないでしょうか? ここ1~2日のうちにHansに(少なくとも概要は)説明しようと思います.
# 鹿野さんの TUG 2013 の資料はもちろん存じております.Hans もあの講演を聞いていましたが,もっと技術的な定義がないと実装者としては取りかかれないようです.
KUROKI Yusuke への返信

Re: ConTeXt の 索引 について

- t tk の投稿
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


鹿野さんの講演と組み合わせると、かなりの部分が説明できそうです。

t tk への返信

Re: ConTeXt の 索引 について

- KUROKI Yusuke の投稿
参考資料へのリンクありがとうございます.

ただ,私が実装者なら,これらの文書からちゃんと実装できる気がしません.

おそらく,JIS X 4061 の「読み・表記照合」を説明すればよくて,
漢字に関してはすべて読みが与えられるインタフェースを想定して,
ひらがな・カタカナ・漢字の順および拗促音や長音符の順についての定義を明確に説明することが大事な気がします.

KUROKI Yusuke への返信

Re: ConTeXt の 索引 について

- t tk の投稿
ちょっと私の考えていることとずれているような気がします。
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年と新しい。
t tk への返信

Re: ConTeXt の 索引 について

- KUROKI Yusuke の投稿
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です.)

KUROKI Yusuke への返信

Re: ConTeXt の 索引 について

- Akira Kakuto の投稿
> Hansの手元では印字されます.(OSはどちらともWindowsです.)

こちらも Windows ですが,やって見ると印字されました。
Akira Kakuto への返信

Re: ConTeXt の 索引 について

- Akira Kakuto の投稿
以下のソースの出力を添付します。

%
% 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
Akira Kakuto への返信

Re: ConTeXt の 索引 について

- Akira Kakuto の投稿
Index entries
[あ]

のようなものは印字されていないですね。誤解していました。
すみません。 Hans は新しい実験をしているのでしょう。
Akira Kakuto への返信

Re: ConTeXt の 索引 について

- KUROKI Yusuke の投稿
私の手元でタイプセットした結果も張り付けておきます.Hansの手元では角藤先生のような結果が出ます.「あ」「か」などの見出しはまだ出なくて正解です(昨日簡単に説明したところです).

ちなみに,私のところの環境はTeX Live 2013(美文書第6版のもの)で,context test としたときに出てくるバージョン情報は以下の通りです:

> ConTeXt ver: 2013.05.28 00:36 MKIV current fmt: 2014.5.2 int: english/english
KUROKI Yusuke への返信

Re: ConTeXt の 索引 について

- Akira Kakuto の投稿
バージョンの違いでした:

ConTeXt  ver: 2014.04.28 23:24 MKIV beta  fmt: 2014.4.29  int: english/english

beta の最新版なので, Hans さんに近いか,ちょっと
古いぐらいと思います。
KUROKI Yusuke への返信

Re: ConTeXt の 索引 について

- KUROKI Yusuke の投稿
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

取り急ぎ.
KUROKI Yusuke への返信

Re: ConTeXt の 索引 について

- Akira Kakuto の投稿
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
Akira Kakuto への返信

Re: ConTeXt の 索引 について

- 浮亭 夢介 の投稿
索引項目の階層化表示を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 が怪しくなると思います.結果は次のようになりました.



添付 index01.png