这个问题就像在文本本身中标记索引条目?, 除了用于memoir
文档类。
如何在命令所在的文本中标记索引条目\index
——以及不是在页面的角落showidx
,也可以:
- 在线之上,这样
showkeys
做的方式;和/或 - 在出现 的行的边缘处
\index
?
理想情况下,用户应该能够控制出现的条目的格式(字体系列、大小和颜色)。
所引用问题的答案不适用memoir
。
解决方案需要与以下方面配合使用:
hyperref
(以及 Heiko Oberdiek 的“快速而粗糙的解决方案,以允许showidx
并hyperref
共存)。- 多个索引,例如主索引和名称索引(其中使用
\index[names]{..}
)。
这是一个示例源文件,尽管只有一个索引:
\documentclass[draft]{memoir}
\usepackage[usenames]{xcolor}
\makeindex
\usepackage[final]{hyperref}
\hypersetup{colorlinks,citecolor=red,linkcolor=blue}
%Begin the ``quick and dirty hack'' due to Heiko Oberdiek which loads showidx
\makeatletter
\ifHy@hyperindex
\def\HyInd@ParenLeft{(}%
% Hook in \HyInd@@wrindex
\let\HyInd@showidx\@empty
% Hook in \HyInd@@wrindex for package showidx
\def\HyInd@showidx#1{%
\@showidx{#1}%
\if@nobreak
\ifvmode
\nobrak
\fi
\fi
}%
% Load package showidx
\let\siOrg@makeindex\makeindex
\let\siOrg@@index\@index
\let\siOrg@@wrindex\@wrindex
\let\siOrg@index\index
\RequirePackage{showidx}
\let\makeindex\siOrg@makeindex
\let\@index\siOrg@@index
\let\@wrindex\siOrg@@wrindex
\let\index\siOrg@index
% rest of hyperref part
\@ifpackageloaded{multind}{%
\let\HyInd@org@wrindex\@wrindex
\def\@wrindex#1#2{\HyInd@@wrindex{#1}#2||\\}%
\def\HyInd@@wrindex#1#2|#3|#4\\{%
\ifx\\#3\\%
\HyInd@org@wrindex{#1}{#2|hyperpage}%
\else
\def\Hy@temp@A{#3}%
\ifx\Hy@temp@A\HyInd@ParenLeft
HyInd@org@wrindex{#1}{#2|#3hyperpage}%
\else
\HyInd@org@wrindex{#1}{#2|#3}%
\fi
\fi
}%
}{%
\def\@wrindex#1{\@@wrindex#1||\\}
\def\@@wrindex#1|#2|#3\\{%
\ifx\\#2\\%
\protected@write\@indexfile{}{%
\string\indexentry{#1|hyperpage}{\thepage}%
}%
\else
\def\Hy@temp@A{#2}%
\ifx\Hy@temp@A\HyInd@ParenLeft
\protected@write\@indexfile{}{%
\string\indexentry{#1|#2hyperpage}{\thepage}%
}%
\else
\protected@write\@indexfile{}{%
\string\indexentry{#1|#2}{\thepage}%
}%
\fi
\fi
\endgroup
\HyInd@showidx{#1}%
\@esphack
}%
}%
\fi
\makeatother
%
%End the ``quick and dirty hack'' due to Heiko Oberdiek which loads showidx
\begin{document}
\tableofcontents
\chapter{We begin}\index{beginning}
Hello\index{greeting!hello|(}%
\index{Hello} %
to the World!\index{World}
\index{greeting|seealso{Hello,World}}
\newpage
abc\index{abc}%
\index{alphabet|see{abc}} %
is before def.\index{greeting!hello|)}
\printindex
\end{document}
以下是附带的.ist
文件:
headings_flag 1
heading_prefix "{\\medskip\\hfill\\large\\textsf{\\textbf{"
heading_suffix "}}\\hfill}\\medskip\\nopagebreak\n"