LaTeX中的单列,长索引页

时间:2010-03-05 20:16:58

标签: latex indexing

在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

有没有办法可以将索引行强行放在同一行:

Index Data Term:
            Target Document with long filename A, pp(docA), pp(docA)

更具体地说,

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         

有什么想法吗?

4 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:2)

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

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

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

答案 2 :(得分:0)

This page建议使用

\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
}

答案 3 :(得分:0)

也许您可以尝试cuted包,甚至是multicol包,而不是idxlayout。对于 cuted

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