使用 xeindex 包时出现“!Missing } inserting.”错误

使用 xeindex 包时出现“!Missing } inserting.”错误

在下面的例子中,当我foo\IndexList命令中使用这个词(和其他一些词一起),不孤单),我会得到以下错误:

! Missing } inserted.
<inserted text> 
                }
l.7 \section{foo}

当我使用该环境时也会出现同样的错误tabular。(我没有尝试过任何其他命令和环境,所以错误可能也出现在那里。)这是我的代码:

\documentclass{article}
\usepackage{xeindex}
\makeindex
\IndexList{mylist}{hello,foo and bar,hi}
\begin{document}
\section{foo}
\newpage
%\begin{tabular}{c}
%foo 
%\end{tabular} 
\printindex
\end{document}

我怎么解决这个问题?

答案1

xeindex包裹在这种情况下似乎有很多错误。

仅当“foo”后面没有文本(\section\printindex和不算)时\end{table}才会出现此问题。\\

作品:

  • \section{foo and nothing else}
  • \section{foo and bar}

休息:

  • \section{foo}
  • … foo \printindex \end{document}

帮助:

  • 肮脏的解决方法就像f{}oo在各处工作,但很痛苦并且会破坏连字符。
  • 该软件包提供了\StopIndex{<list>}\StopSearching\StartSearching。它们需要分部分进行\protect编辑。
    • 两者\StopSearching foo \StartSearching任一
    • {\StopSearching foo}

该套餐甚至提供\NoIndex

\def\NoIndex#1{%
  \bgroup
  \StopIndex
  #1%
  \egroup
  }

但失败了。它至少需要一个,\protect但又缺少一个}

下面的定义确实有效,但没有排版任何内容(这并不奇怪,只是随机添加\egroups 是行不通的解决方案。

\def\NoIndex#1{\bgroup\protect\StopIndex #1\egroup\egroup}

因此,我定义了一个可以在任何地方起作用的自定义命令\PreventIndex{<to not be indexed>}(?)。

代码(MWE)

\documentclass{article}
\usepackage[paperheight=8cm,paperwidth=8cm]{geometry}
\usepackage{xeindex} \makeindex
\IndexList{mylist}{hello,foo and bar,hi}

\newcommand*\PreventIndex[1]{{\protect\StopSearching #1}}

\AtBeginDocument{\LARGE}                       % only for this MWE
\begin{document}
\section{I give a \PreventIndex{foo}}          % Nothing after foo => \PreventIndex
Foo is horrible!                               % some plain text after foo => no need to stop Searching

\section{Foo, nothing else}                    % some plain text after foo => no need to stop Searching
There is really nothing else then foo?         % some plain text after foo => no need to stop Searching

\section{Let's index!}
Foo and bar are always together.               % Works, gets indexed
Bar was born ten minutes later then
\PreventIndex{foo} \(\Longleftarrow\)          % :(
needs {\small\texttt{\textbackslash PreventIndex}}

\newpage
\begin{tabular}{c}
 Foo and bar \\
 sitting on a \PreventIndex{foo} \\            %
 foo?                                          %
\end{tabular}
\printindex
\end{document}

输出

更好的 MWE

相关内容