我有一本书,里面有很多地名,最后还有几张地图。
我已经使用包和文本中的multind
许多命令制作了地名索引。\index{geo}{Australia}
我使用xindy
并获取提及这些地名的页面列表,例如
Australia 10, 23-25
现在我想将地图上的位置添加到这个索引中,因此它看起来像
Australia 10, 23-25, II:A1-K9, IV:B2-C4
其中II
&IV
是地图编号,A1-K9
&B2-C4
是地图网格方块,覆盖澳大利亚。
我该怎么做?
也许我应该定义一些命令,比如\mapindex{2}{A1-K9}
使用\index{map}{...}
,并给出说明xindy
,但我不知道细节。
当然,我可以.ind
手动编辑我的文件,但这不是我想要的方式;-)
答案1
好吧,这并不是太难。
这是map.xdy
我写的:
(define-alphabet "map-letters" ("А" "Б" "В" "Г" "Д" "Е" "Ж" "И"))
(define-location-class "map-place" :var
("roman-numerals-uppercase" :sep ":"
"map-letters"
"arabic-numbers" :sep "-"
"map-letters"
"arabic-numbers"
)
)
"map-letters"
就是用俄文字母,你可以用别的办法"ALPHA"
代替。
:var
重要的是有变化 I:А1 和 I:A1-Г3
如果我geo.idx
这样
\indexentry{Австралия|(}{375}
\indexentry{Австралия|)}{381}
\indexentry{Австралия}{447}
\indexentry{Австралия}{489}
\indexentry{Австралия}{IV:А1}
\indexentry{Австралия}{I:Г3}
\indexentry{Австралия}{II:Б2-Д4}
并使用
xindy -M texindy -M page-ranges -M map -L russian -C utf8 -o geo.ind geo.idx
我得到了geo.ind
我想要的东西:
\item Австралия, 375--381, 447, 489, I:Г3, II:Б2-Д4, IV:А1
因此,我可以手动编写一个包含地名坐标的文件 ( toponyms.idx
),并像这样编写我的书:
xelatex ...
xindy ... toponyms.idx geo.idx
xelatex ...