我有一个 LaTeX 文档,其中包含以下两个索引条目:
\index{Farbmodell!$\text{LCh}_{ab}$|main}
\index{Farbmodell!$\text{LCh}_{ab}$}
虽然在我看来是“相同的”,但文件中创建了两个不同的条目.ind
:
\item Farbmodell
\subitem $\text {LCh}_{ab}$\hspace{1em}\dotfill\hspace{1em}61
\subitem $\text{LCh}_{ab}$\hspace{1em}\dotfill\hspace{1em}\main{39}
|main
仅表示主索引条目,使用\newcommand{\main}[1]{\textbf{#1}}
。我不明白这些额外的空格是从哪里来的。
使用的 LaTeX 软件包有:
\documentclass[a4paper,twoside]{report}
\usepackage{german}
\usepackage[latin1]{inputenc}
\usepackage{a4}
\usepackage{makeidx}
\usepackage{showidx}
\usepackage{amsmath}
\usepackage{url}
\usepackage{graphicx}
\usepackage{ifthen}
%
\makeindex
\begin{document}
第一个索引直接输入在章节中的某个部分内,而第二个索引则输入在附录中某个部分内的表格标题内。该标题(表格后的表格内)如下所示:
\caption[Pr... im $\text{LCh}_{ab}$ Farbmodell]%
{\label{\Lt{PRMG}}Pr... im $\text{LCh}_{ab}$ Farbmodell%
\index{Farbmodell!$\text{LCh}_{ab}$}
nach \cite[Table~10, S.~15]{ICC.1:2010}}
答案1
sed
我决定使用(无论如何我都有一个)来解决这个问题Makefile
。
这Makefile
有点复杂,因为它做了一些其他聪明的事情,但这是解决方案的核心:
#...
echo "\# fixing $(MAIN).idx"; \
sed -E -e 's/(\\[^ ]+) +\{/\1{/' $(MAIN).idx > $(MAIN).idx~ && \
mv $(MAIN).idx~ $(MAIN).idx; \
echo "\# running makeindex on $(MAIN).idx"; \
$(Do.Makeindex) $(MAIN); \
#...
(其实我觉得 LaTeX 还是makeindex
应该这么做)