Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[(up)mendex] -s styfile オプションで複数のファイル読み込み, 新オプション kana_head #116

Closed
t-tk opened this issue May 30, 2021 · 14 comments

Comments

@t-tk
Copy link
Collaborator

t-tk commented May 30, 2021

upmendex のスタイルファイルの説明 t-tk/upmendex-package#3@aminophen さんからご提案のあった style file の複数読み込みを実装しようと思います。

@t-tk
Copy link
Collaborator Author

t-tk commented May 30, 2021

複数 style file の読み込みの機能自体は c092fe7 で動いているようです。
初期化や読み込みなどの順番を少々入れ替えたので少し不安があり、もう少しテストするつもりです。

標準として配布する .ist としてはどんなものが適当か議論していただけるとありがたいです。

@aminophen
Copy link
Member

複数 style file の読み込み

私の突然の思い付きにもかかわらず,ご検討いただきありがとうございます。テストしてみます。

標準として配布する .ist

複数 style file の読み込み機能があれば,想定としては「makeindex 用に配布されている style file にちょい足しできる,とにかくミニマムな日本語書籍用設定」があればよいと思います。upmendex のサンプルがたくさんあるようですので,そこから (up)mendex 特有の設定値のみを抽出するイメージです。

@aminophen
Copy link
Member

aminophen commented Jun 2, 2021

複数 style file の読み込み

初期化順序を変えた影響を調べてみました。普通の挙動については問題なさそうです。

一方,styfile.c を見ると

if (getparam(buff,"atama",atama)) continue;

という行があり,この "atama" というどこにもドキュメントされていない謎のキーを認識するようです。この "atama" というキーは元々 style file でどう与えても無視される挙動でしたが,初期化順の変更(具体的には initkanatable() より後に styread する)により「style file で "atama" に無意味な文字列を与えると,区切り文字(アイウエオまたはアカサタナ)が壊れる」という挙動に変化します。 したがって,styfile.c の上記1行は削除しましょうか。

@aminophen
Copy link
Member

aminophen commented Jun 2, 2021

"atama" というどこにもドキュメントされていない謎のキー

追記です。mendex については「単に styfile.c の例の1行を削除」で良いと思います。upmendex には "atama" とよく似た動作をする "tumunja" があり,この "tumunja" の方はドキュメント通り(*1)に動作していたようですので

  • 単に "atama" を消すのか
  • それとも "atama" も "tumunja" 並みの動作と定めてドキュメント化するのか

検討の余地があると思います。

(*1) ドキュメント通り … forum:1308 も記載あり

見出しの文字はdefaultでは
"ㄱㄴㄷㄹㅁㅂㅅㅇㅈㅊㅋㅌㅍㅎ"
Hangul Compatibility Jamo (U+3131 ~)
を使用しています。

style fileの中で
tumunja "가나다라마바사아자차카타파하"
tumunja "㉠㉡㉢㉣㉤㉥㉦㉧㉨㉩㉪㉫㉬㉭"
tumunja "㉮㉯㉰㉱㉲㉳㉴㉵㉶㉷㉸㉹㉺㉻"
tumunja "㈀㈁㈂㈃㈄㈅㈆㈇㈈㈉㈊㈋㈌㈍"
tumunja "㈎㈏㈐㈑㈒㈓㈔㈕㈖㈗㈘㈙㈚㈛"
等のいずれかを指定すると、見出しの文字を変更できます。
tumunja "ㄱㄴㄷㄹㅁㅂㅅㅇㅈㅋ"
等と一部を抜くことで、一部の見出しを飛ばすこともできます。

@t-tk
Copy link
Collaborator Author

t-tk commented Jun 3, 2021

  1. 単に "atama" を消すのか
  2. それとも "atama" も "tumunja" 並みの動作と定めてドキュメント化するのか

実は、upmendex にハングルを導入するときに少々悩んだ上、atama の実装をまねして tumunja を実装しました。
そして将来 atamatumunja なみの公式な動作にしようかと構想だけは持っていました。
今回、初期化の順番を入れ替えたのもその狙いに沿ってやりました。
c092fe7 では、style fileでatama を指定してもデフォルトで letter_head が 1 になっていて style file の atama を有効にするためには letter_head を 0,1,2 以外に指定する必要があります。そんな仕様では少々分かりにくいので style file で atama を読み込んだ場合はそちらを優先するような実装に変えようか、とも思います。

mendex でも同様の仕様に出来るかもしれませんし、そもそも style file で atama の変数が読めるようになっている事自体 atama のカスタマイズという構想がASCII社さんの開発当初からあったのかもしれません。しかし、実際には現状の実装では動かないしドキュメントにも記載が無いので、mendex の方は単純に「style file で atama を読む動作を消す」のでいいかもしれません。実装しようとすると文字コード混在が問題になりそうなのも懸念です。

私の現在の考えは、upmendex は 2 でさらに使いやすくする、mendex は 1 です。
どうでしょう。

@aminophen
Copy link
Member

upmendex は 2 でさらに使いやすくする、mendex は 1

賛成いたします。mendex で「現状の実装では動かない」「実装しようとすると文字コード混在が問題になりそうなのも懸念」は全くその通りですね。upmendex の構想もソースコードから何となく想像がついていましたので,「style file で atama を読み込んだ場合はそちらを優先するような実装」に変えることも違和感ありません。

t-tk added a commit that referenced this issue Jun 5, 2021
@t-tk t-tk changed the title [(up)mendex] -s styfile オプションで複数のファイル読み込み [(up)mendex] -s styfile オプションで複数のファイル読み込み, 新オプション kana_head Jun 5, 2021
@t-tk
Copy link
Collaborator Author

t-tk commented Jun 5, 2021

5bf039b で mendex, upmendexともに atama を style file から読み込むのはやめました。
upmendex は style file のパラメータとして新規に kana_head を作りました。
style file内にkana_head が存在しない場合(デフォルト)では従来と同じ動作、kana_head が存在する場合は kana_headを内部変数atama に代入して動作させます。
kana_headtumunja と同様の動作を仮名見出しに対して行います。
kana_head に使える文字は通常の平仮名、片仮名に加えて丸囲み片仮名(U+32D0..32FE, ㋐ .. ㋾) が使えます。

例えば style file 内に以下のように指定します。

kana_head  "㋐㋑㋒㋓㋔㋕㋖㋗㋘㋙㋚㋛㋜㋝㋞㋟㋠㋡㋢㋣㋤㋥㋦㋧㋨㋩㋪㋫㋬㋭㋮㋯㋰㋱㋲㋳㋴㋵㋶㋷㋸㋹㋺㋻㋼㋽㋾"

とか

kana_head  "㋐㋕㋚㋟㋤㋩㋮㋳㋶㋻"

などです。この指定で飛ばした分は、出力の見出しも飛ばしたものになります。

style file 内にkana_head が存在する場合、コマンドラインオプション -g とstyle fileの letter_head は無効になります。

@t-tk
Copy link
Collaborator Author

t-tk commented Jun 5, 2021

kana_head のテストを t-tk/upmendex-package@0d025f0 に入れました。

@aminophen
Copy link
Member

ありがとうございます。実装確認と簡単なテストをしてみて,mendex も upmendex も期待通りに動いているようです。

@aminophen
Copy link
Member

標準として配布する .ist

この件は別なので texjporg/mendex-doc#11 に移ることにします。

@t-tk
Copy link
Collaborator Author

t-tk commented Jun 6, 2021

テスト有難うございます。
こちらの実装の方は収束していると思うので後ほど TeX Live svn にコミットしておきます。

@aminophen
Copy link
Member

aminophen commented Jun 6, 2021

よろしくお願いします。TeX Live svn へのコミット時に mendexk/ 以下の mendex.1, mendex.1.ja も texjporg/mendex-doc@7a060c2 で更新していただけると助かります。

@t-tk
Copy link
Collaborator Author

t-tk commented Jun 6, 2021

TeX Live svn にコミットしました。 r59487, r59488

@t-tk
Copy link
Collaborator Author

t-tk commented Jun 7, 2021

話題が2つ残っていますが、ここでの目的は達成したのでここは閉じます。
並べ替え順序のドキュメント texjporg/mendex-doc#10
mendex の標準スタイル texjporg/mendex-doc#11

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants