将地图索引添加到地名索引中

将地图索引添加到地名索引中

我有一本书,里面有很多地名,最后还有几张地图。

我已经使用包和文本中的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 ...

相关内容