如果页码为粗体,则 Hyperref 和 splitindex 不起作用

如果页码为粗体,则 Hyperref 和 splitindex 不起作用

我有以下 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}

相关内容