#author("2026-03-03T18:09:10+09:00","","")
#author("2026-03-03T18:10:40+09:00","","")
[[TeX/Manual]]

*upmendex [#o5caa10c]

**概要 [#sa3e130c]

+内部までUnicode化されたmendex.
+さまざまな文字を扱える.
+ICUライブラリを使って文字の順番を自由に制御できる.

**コマンド [#z8e1d582]

 $ upmendex -s index_lang.ist -o example_lang.ind -t example_lang.ilg example.idx

**サンプル [#de03279b]

-/usr/local/texlive/2025/texmf-dist/doc/support/upmendex/

**印欧祖語 [#c8aee58d]

'''LIV'''²などを参照.見出し文字は以下のようにする.

> a b bʰ d dʰ e ǵ ǵʰ g gʰ gʷ gʷʰ H hₓ h₁ h₂ h₃ ị ḱ k kʷ l m n o p r s t tʰ ụ z

+*は無視.
+-は無視.
+ịはi̯の,ụはu̯の代用.
+次は同一視し,同じ綴りの単語が並んだ場合は左端の文字をもつ単語を先に並べる.ǎなどはā́の代用.

> a á à ā ǎ
> e é è ē ḗ ḕ
> i í ì ī ǐ
> l ḷ
> m ḿ
> o ó ò ō ṓ ṑ
> r ṛ ṝ
> u ú ù ū ǔ

***.istファイルの例 [#cce7123b]

 icu_rules "
  &[before 1] ị < i
  &[before 1] ụ < u
  &a << á << à << ā << ǎ < b < bʰ < d < dʰ < e << é << è << ē << ḗ << ḕ < ǵ < ǵʰ < g < gʰ < gʷ < gʷʰ < H < hₓ < h₁ < h₂ < h₃ < i << í << ì << ī << ǐ < ḱ < k < kʷ < l << ḷ < m << ḿ < n < o << ó << ò << ō << ṓ < p < r << ṛ << ṝ < s < t < tʰ < u << ú << ù << ū << ǔ < z"

***上記.istファイルの問題点 [#q77e7f8e]

+文字が変わっているのに間に空行が入らないことがある.

**サンスクリット語 [#o911f734]

 a ā i ī u ū ṛ ṝ ḷ e ai o au ṃ ḥ ẖ ḫ k kh g gh ṅ c ch j jh ñ ṭ ṭh ḍ ḍh ṇ t th d dh n p ph b bh m y r l v ś ṣ s h

次は同一視.

 āとǎ

***.istファイルの例 [#eaa2bc89]

 %% index_style.ist
 icu_rules "&a < ā < i < ī < u < ū < ṛ < ṝ < ḷ < e < ai < o < au < ṃ < ḥ < ẖ < ḫ < k < kh < g < gh < ṅ < c < ch < j < jh < ñ < ṭ < ṭh < ḍ < ḍh < ṇ < t < th < d < dh < n < p < ph < b < bh < m < y < r < l < v < ś < ṣ < s < h"

***ゲルマン祖語 [#i05d9c6b]

Kroonen, '''Etymological Dictionary of Proto-Germanic'''など参照.

 a b d e f g h i j k l m n o p r s t þ u w (z)

次は大文字と小文字の違い.一般的なアルファベット以外はどれとどれが同じ小文字と大文字なのか教えてあげる必要がある.

 þ Þ

次は同一視.

 e ē
 i ī
 u ū

āとŏはないので区別の必要はなし.

必要に応じてƀ, đ, ǥに変える.

upmendexの.istファイルの記述例.

 icu_locale "root"
 icu_rules "&a < b < d < e = ē < f < g < h < i = ī < j < k < l < m < n < o < p < r < s < t < þ <<< Þ < u = ū < w < z"

再建形の * は.idxファイルをsedやperlで書き換えるのが簡単.以下のオプションはmacOS用のsed (BSD sed)用.必要に応じて -eなどに変える.

 sed -E 's/\\indexentry \{\*([^|]*)/\\indexentry {\1@*\1/'

**仕様 [#xc77f72f]

-http://tug.tug.org/pipermail/tex-live-commits/2021-November/019717.html

***icu_attributes [#e1c994e2]

 alternate:shifted
 alternate:non-ignorable

**ICU [#q1dd3078]

-< (Primary): 全く別の文字として扱う.e.g. a < b(aの次にbが来る).
-<< (Secondary): アクセントや濁点の違い.e.g. a << á.
-<<< (Tertiary): 大文字・小文字の違い.e.g. a <<< A.
-= (Identity): 完全に同じ文字として扱う.e.g. a = ⓐ.
-& (Reset): ここを基準にする.e.g. & a < b「aを基準にしてその直後にbを置く」.
-& [before 1] b < x:「bの直前の位置を基準にしてそこにxを置く」a, x, b, cになる.

**参考 [#o1a535db]

-https://qiita.com/munepi/items/2e1524859e24b5fb44bc

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS