Один столбец, длинные индексные страницы в LaTeX - PullRequest
3 голосов
/ 05 марта 2010

Возникли проблемы с реализацией индекса из одного столбца в 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 ]

4 голосов
/ 06 августа 2013

Я полагаю, вы используете пакет makeidx .Для индексных страниц с одним столбцом вы можете использовать пакет idxlayout :

\usepackage{makeidx}
\usepackage[columns=1]{idxlayout}
\makeindex
2 голосов
/ 02 апреля 2011

Ни один из вышеперечисленных подходов не работал для меня;однако, следующий взлом сделал.Он работает путем переопределения (то есть нейтрализации) команды \ twocolumn, пока индекс набирается.Там, где вы обычно набираете \ printindex, вместо этого введите:

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

В отличие от приведенного выше решения, это позволяет даже индексу из одного столбца охватывать несколько страниц.

0 голосов
/ 05 марта 2010

Возможно, вы можете попробовать пакет cuted или даже пакет multicol вместо idxlayout. Для cuted :

Стандартный LaTeX будет переключаться только между \ onecolumn и \ twocolumn вверху страницы; Сами команды очищают предыдущую страницу. Этот пакет снимает ограничение и позволяет смешивать режимы с одним и двумя столбцами на одной странице.

0 голосов
/ 05 марта 2010

Эта страница предлагает использовать

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