这很奇怪。我必须做一些有趣的解决方法才能让它起作用,但我们还有另一个绊脚石。将散列标记包含在用 newcommand替换的LaTeX indexentry中
我一直在努力创建一个单独的文档,该文档使用了一个大的.ind文件(使用来自连接的小型单独.idx文件的makeindex创建的索引),这个想法是我最终将有一个文档,子文档和索引数据发生的页码。
为此,我不得不定义其收集所有索引条目的命令:
\newcommand{\myindexer}[3]
{\index{myindex}{#1 : #2.#3!\href{\doctitle.pdf}}}
结果是在myindex.idx文件索引项为:
\indexentry{IndexedItemA : 55.iii!\href{Volume 1.pdf}{Volume 1.pdf}}{30}}
\indexentry{IndexedItemB : 23.vi!\href{Volume 3.pdf}{Volume 3.pdf}}{114}}
但是,尝试为目标PDF创建超级参考时存在问题。为了在特定页面打开一个PDF格式如下需要采用(感谢有人在这个委员会的指出在包hyperref宏的#page.xx语法人):
\href{FILENAME#page.XX}{Link Text}
wihch手段该散列标记需要被包括在\ newcommand的输出流中时myindex被声明,可能使用转义散列标记#为:
\newcommand{\myindexer}[3]
{\index{myindex}{#1 : #2.#3!\href{\doctitle.pdf\#page.\thepage}}}
或根据一些片段,我发现某处使用双 - 标记为:
对多个文档的胶乳源的编译过程中在以下错误3210\newcommand{\myindexer}[3]
{\index{myindex}{#1 : #2.#3!\href{\doctitle.pdf##page.\thepage}}}
前者结果被索引:
! Illegal parameter number in definition of \@gtempa.
<to be read again>
\thepage
l.31 \myindex{IndexedItemA}{55}{iii}
虽然不希望的反斜杠后者导致在所得myindex.idx文件为:
\indexentry{IndexedItemA : 55.iii!\href {Volume 1.pdf\#page.33}{Volume 1}}{33}
这导致目标PDF无法正确打开。
任何想法如何可以强制newcommand输出哈希标记以支持这种方式的PDF超链接?
是否需要立即扩展'\ thepage'? – 2010-03-05 08:36:56