我希望索引中出现的每个单词在正文中都以粗体显示,这与这个问题(其中以粗体输入的所有内容都应被编入索引)。
以下是 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}