\index 在文本中添加空格

\index 在文本中添加空格

我正在编写包含许多索引条目的文档。我注意到这会在文本中添加额外的不必要的空间。这是 MWE。

\documentclass{article}
\usepackage{amsthm}
\usepackage{imakeidx}
\makeindex
\newtheorem{Theorem}{Theorem}
\begin{document}
\begin{Theorem}
Here.
The statement.
\end{Theorem}
\begin{Theorem}
Here.
\index{1}
\index{2}
\index{3}
\index{4}
\index{5}
The statement.
\end{Theorem}
\end{document}

结果是

%我可以通过在每一个之后添加一个来解决问题\index{},但我想知道是否有更好的解决方案......(我有超过 2000 个索引条目)

答案1

\index没有添加空格,您正在使用换行符添加空格,因此在命令%之后添加空格是最自然的修复方法,但是您可以在使用命令钩子之前插入一个以删除空格,如下所示。Here.\index\unskip\index

\documentclass{article}
\usepackage{amsthm}
\usepackage{imakeidx}
\makeindex
\AddToHook{cmd/index/before}{\ifhmode\unskip\fi}
\newtheorem{Theorem}{Theorem}
\begin{document}
\begin{Theorem}
Here.
The statement.
\end{Theorem}
\begin{Theorem}
Here.
\index{1}
\index{2}
\index{3}
\index{4}
\index{5}
The statement.
\end{Theorem}
\end{document}

相关内容