使索引词在正文中显示为粗体

使索引词在正文中显示为粗体

我希望索引中出现的每个单词在正文中都以粗体显示,这与这个问题(其中以粗体输入的所有内容都应被编入索引)。

以下是 MWE:

\documentclass{article}

\usepackage{lipsum}

\usepackage{imakeidx}
\makeindex

\begin{document}

\section{Minimal Working Example}

\lipsum[1-3]
minimal\index{minimal}
\lipsum[4-6]
working\index{working}
\lipsum[7-9]
example\index{example}

\printindex

\end{document}

答案1

我认为这符合您的要求。当然,当索引中出现的单词出现在文本中未编入索引的地方时,它不会将其加粗。这会困难得多...

\documentclass{article}

\newcommand{\boldindex}[1]{%
  \textbf{#1}\index{#1}%
}

\usepackage{lipsum}

\usepackage{imakeidx}
\makeindex

\begin{document}

\section{Minimal Working Example}

\lipsum[1-3]
\boldindex{minimal}
\lipsum[4-6]
\boldindex{working}
\lipsum[7-9]
\boldindex{example}

\printindex

\end{document}

答案2

这是对 Ethan Bolker 的答案的一些扩展,它考虑imakeidx并打印索引列表中的最后一个索引条目foo!bar!stuff

\documentclass{article}

\usepackage{blindtext}


\usepackage{etoolbox}
\usepackage{imakeidx}
\usepackage{xstring}


\AtBeginDocument{%
  \newcommand{\indexbold}[2][]{%
    \StrCount{#2}{!}[\mycount]% Count the ! in the string
    \ifnum\mycount = 0
    \textbf{#2}%
    \else%
    \expandarg\StrBehind[\mycount]{#2}{!}[\myrestindex]%  get the last entry
    \textbf{\myrestindex}%
    \fi%
    \ifblank{#1}{%
      \index{#2}%
    }{%
      \index[#1]{#2}%
    }%
  }%
}


\makeindex
\begin{document}

\indexbold{foo}
\blindtext[5]

\indexbold{foo again}
\blindtext[5]

\indexbold{foo!bar}
\printindex

\end{document}

相关内容