在文本本身中标记索引条目?

在文本本身中标记索引条目?

我将与一位老派的专业索引编制者合作——这意味着她更喜欢用铅笔在卡片上做索引,同时看着一本页码不会改变的成品书——并且正在寻找可以减轻我们双方压力的工具。索引卡和静态分页在目前的情况下都不是可行的选择。

是否有任何工具可以让我以某种不引人注目的方式准确显示在给定行中已被索引的单词 - 例如通过在文本中加下划线或阴影?

我知道这个\showidx包很有用。在我的处境下,它的缺点是它将整个页面作为其操作范围,索引器很难遵循这一点;我正在寻找一些可以实际标记索引文本的东西,或者至少在索引文本的\showidx同一行上做出类似边距的标记。

答案1

我只是提出这个想法;不确定它是否有帮助。它在某种程度上受到了 David 的启发showkeys包裹:

在此处输入图片描述

\documentclass{article}
\makeindex
\makeatletter
\newcommand{\@theindexentry}[1]{%
  \smash{%
    \rlap{\rule{.4pt}{.8\baselineskip}}% Vertical rule
    \begin{lrbox}{\@tempboxa}\tiny\ttfamily#1\end{lrbox}% Box index entry
    \rlap{\raisebox{.6\baselineskip}{\usebox{\@tempboxa}}}% key
  }%
}
\def\@wrindex#1{%
  \protected@write\@indexfile{}%
    {\string\indexentry{#1}{\thepage}}%
  \endgroup
  \@esphack%
  \@theindexentry{#1}%
}
\def\@index#1{\endgroup\@esphack\@theindexentry{#1}}
\makeatother
\begin{document}
Lorem\index{Alpha} ipsum dolor sit amet, consectetur\index{alpha} adipiscing elit. 
Proin ullamcorper\index{gnat} quam magna, quis convallis\index{gnus!good} sapien. Donec 
at ligula vel dolor varius\index{bites!vegetable} lobortis id ut orci\index{gnat!size of}. Maecenas 
commodo fringilla elit\index{Alphabet}, et pellentesque purus ornare vitae. 
Aenean non metus ipsum. Lorem\index{gnat!anatomy} ipsum dolor sit amet, consectetur 
adipiscing\index{alphas} elit. Ut mauris lorem, accumsan a sagittis ut, 
rutrum fringilla arcu. Cras ullamcorper faucibus\index{alpha bet} quam id molestie.

Nunc et\index{alphabet} sem et turpis semper adipiscing et id nibh. In nibh 
mauris, placerat sed consequat placerat, dignissim ut\index{at!bat|see {bat, at}} arcu. 
Aenean eleifend justo volutpat lectus\index{gnus!bad} interdum pellentesque. 
Etiam cursus varius\index{twenty@xx} tellus, non pretium nibh tempus sit amet. 
Suspendisse sed mauris nisl. Cum sociis natoque penatibus et 
magnis dis parturient montes, nascetur\index{alpha@$\alpha$} ridiculus mus. Nullam 
at feugiat nisi\index{bites!animal!gnats}.
\end{document}

它为每个 打印\index一条垂直线,显示参考点,以及 中使用的键(为简单起见,减号{}\tiny\ttfamily。使用xcolor可以通过打印以下black!30内容来减少外观的干扰:

在此处输入图片描述

\@theindexentry打印与索引相关的内容。\smash处理任何垂直调整,而整个索引条目设置在零宽度内\rlap以删除任何水平调整。

\@wrindex(在存在的情况下\makeindex)和的定义\@index直接取自latex.ltx

答案2

我知道这是一篇旧帖子,但是为了将来参考,我已成功使用以下内容imakeidx

\newcommand{\@theindexentry}[1]{%
  \smash{%
    \rlap{\rule{.4pt}{.8\baselineskip}}% Vertical rule
    \begin{lrbox}{\@tempboxa}\tiny\ttfamily#1\end{lrbox}% Box index entry
    \rlap{\raisebox{.6\baselineskip}{\usebox{\@tempboxa}}}% key
  }%
}

\renewcommand\imki@wrindexentrysplit[3]{%
  \expandafter\protected@write\csname#1@idxfile\endcsname{}%
    {\string\indexentry{#2}{#3}}%
    \@theindexentry{#1}%
}

@theindexentry 直接取自 Werner 的帖子。

相关内容