我正在编写包含许多索引条目的文档。我注意到这会在文本中添加额外的不必要的空间。这是 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}