![如果页码为粗体,则 Hyperref 和 splitindex 不起作用](https://linux22.com/image/410063/%E5%A6%82%E6%9E%9C%E9%A1%B5%E7%A0%81%E4%B8%BA%E7%B2%97%E4%BD%93%EF%BC%8C%E5%88%99%20Hyperref%20%E5%92%8C%20splitindex%20%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8.png)
我有以下 MWE 测试.tex:
\documentclass[12pt]{report}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{splitidx}
\newindex[Wissenschaftliche Namen]{sci}
\newindex[Deutsche Namen]{dt}
\newcommand{\BTS}[1]{\textbf{\textit{#1\sindex[sci]{#1|textbf}}}} %Index Scientific
\newcommand{\BTD}[1]{#1\sindex[dt]{#1}} %Index deutsch
\usepackage{hyperref}
\makeindex
\begin{document}
\BTS{Thymelicus lineola} (\BTD{Schwarzkolbiger Braun-Dickkopffalter}
\printindex*
\end{document}
使用 pdflatex 和 splitindex 编译后,test-sci.idx 显示
\indexentry{Thymelicus lineola|textbf}{1}
即,hyperpage 属性不存在,就像在 test-dt.idx 中一样:
\indexentry{Schwarzkolbiger Braun-Dickkopffalter|hyperpage}{1}
有什么办法可以解决这个问题吗?
答案1
您可以定义一个结合 \textbf 和 \hyperpage 的新命令:
\documentclass[12pt]{report}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{splitidx,xparse}
\newindex[Wissenschaftliche Namen]{sci}
\newindex[Deutsche Namen]{dt}
\NewDocumentCommand\boldhyperpage{ m } {\textbf{\hyperpage{#1}}}
\newcommand{\BTS}[1]{\textbf{\textit{#1\sindex[sci]{#1|boldhyperpage}}}} %Index Scientific
\newcommand{\BTD}[1]{#1\sindex[dt]{#1}} %Index deutsch
\usepackage{hyperref}
\makeindex
\begin{document}
\BTS{Thymelicus lineola} (\BTD{Schwarzkolbiger Braun-Dickkopffalter}
\printindex*
\end{document}