LaTeX中的单列长索引页

LaTeX中的单列长索引页,latex,indexing,Latex,Indexing,在LaTeX中实现单列索引时遇到了一些问题 我一直在使用idxlayout包和multind来创建一个索引,该索引是从大量其他源idx文件链接而来的。首先,索引总是设置为使用两列。即使idxlayout包设置为columns=1,itemlayout设置为singlepar,也没有骰子。此外(更令人沮丧的是),生成的输出文件由索引行组成,其中包含跨行拆分的页面实例,如下所示: Index Data Term: Target Document with long filen

在LaTeX中实现单列索引时遇到了一些问题

我一直在使用idxlayout包和multind来创建一个索引,该索引是从大量其他源idx文件链接而来的。首先,索引总是设置为使用两列。即使idxlayout包设置为columns=1,itemlayout设置为singlepar,也没有骰子。此外(更令人沮丧的是),生成的输出文件由索引行组成,其中包含跨行拆分的页面实例,如下所示:

Index Data Term:
            Target Document with long filename A, pp(docA)
                                    , pp (docA)
更具体地说

Data Term:
                LongFilename.pdf, 45, 
                         59
Data Term:
                LongFilename.pdf, 45, 59
是否有任何方法可以强制索引行与以下内容位于同一行上:

Index Data Term:
            Target Document with long filename A, pp(docA), pp(docA)
更具体地说

Data Term:
                LongFilename.pdf, 45, 
                         59
Data Term:
                LongFilename.pdf, 45, 59
理想情况下,索引应如下所示:

XXXXXXXXXXX:
             XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX   XX, XX, XX, XXX
XXXXXXXXXXX:
             XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX   XX, XX, XX, XXX
XXXXXXXXXXX:
             XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX   XX, XX, XX, XXX
             XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX   XX, XX, XX, XXX
             XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX   XX, XX, XX, XXX
而不是

XXXXXXXXXXX:                                XXXXXXXXXXX:
         XXXXXXXXXXXXXXXXXXXXX   XX,                 XXXXXXXXXXXXXXXXXXXXX   XX,
                XX, XX, XXX                                 XX, XX, XXX
XXXXXXXXXXX:                                XXXXXXXXXXX:
         XXXXXXXXXXXXXXXXXXXXX   XX,                 XXXXXXXXXXXXXXXXXXXXX   XX,
                XX, XX, XXX                                 XX, XX, XXX
         XXXXXXXXXXXXXXXXXXXXX   XX,        XXXXXXXXXXX:
         XXXXXXXXXXXXXXXXXXXXX   XX,                 XXXXXXXXXXXXXXXXXXXXX   XX,
XXXXXXXXXXX:                                               XX, XX, XXX                 
         XXXXXXXXXXXXXXXXXXXXX   XX,       
                XX, XX, XXX         
有什么想法吗?

建议使用

\renewenvironment{theindex}{%
  \@makeschapterhead{\indexname}%
  \@mkboth{\MakeUppercase\indexname}%
          {\MakeUppercase\indexname}%
  \thispagestyle{plain}%
  \parindent\z@
  \parskip\z@ \@plus .3\p@\relax
  \let\item\@idxitem
  \addcontentsline{toc}{chapter}{\indexname}
}{%
  \clearpage
}
也许你可以试试这个软件包,甚至是这个软件包,而不是idxlayout。对于切割:


标准LaTeX只能在页面顶部的\onecolumn和\twocolumn之间切换;命令本身清除上一页。该软件包取消了限制,允许您在同一页面上混合使用单列和两列模式。

上述方法对我都不起作用;然而,下面的黑客却做到了。它的工作原理是在排版索引时重新定义(即中和)\twoocolumn命令。通常键入\printindex,而不是键入:

\let\oldtwocolumn\twocolumn
\renewcommand{\twocolumn}[1][]{#1}
\printindex
\renewcommand{\twocolumn}[1][]{\oldtwocolumn}

与上面的剪切解决方案不同,这甚至允许一列索引跨越多个页面。

我希望您使用makeidx包。对于单列索引页面,您可以使用idxlayout包:

\usepackage{makeidx}
\usepackage[columns=1]{idxlayout}
\makeindex

切割后的包装效果很好。谢谢你的建议。我在makeindex样式文件的前导码和后导码参数中设置了/begin{strip}和/end{strip},这给出了正确的结果。