LINUX.ORG.RU

LaTeX Алфавитный указатель терминов в 2 столбца


0

2

Добрый день.

Делаю книгу в LaTex. Вылезает алфавитный указатель терминов за нижнюю границу. Последние две или одна строка обеих колонок должны переходить на следующую (новую) страницу, но этого не происходит! Они налезают на колонтитул. Так получается на второй странице указателя. На первой все нормально.

Как это исправить?

Использую класс

\documentclass[twoside]{extbook}
и пакет
makeidx

Это фрагмент отвечающий за оформление алфавитного указателя

\renewenvironment*{theindex}{
\columnseprule=0pt\columnsep=35pt
\parindent=0pt
\setlength{\parskip}{0pt plus .3pt}%
\let\item=\@idxitem
\begin{multicols}{2}}%
{\end{multicols}}

Заранее спасибо.


Хоть бы теги прописал! cast Eddy_Em

Deleted
()
Ответ на: комментарий от Eddy_Em

Добрый день.

Извиняюсь, уезжал!

Не помогает.

У меня книга была сверстана с моим стилевым шаблоном и все работало. Сейчас делаю на его основе другую книгу и появились ошибки, которые раньше не проявлялись!

Я сделал пример на основе моего стиля. Меняя выличину отступа от заголовка можно увидеть, как вылезает список на нижнее поле второй страницы!

Попробовал с английскими терминами. Вроде работает нормально! Странно!

Посмотрите в чем у меня ошибка. Заранее спасибо.

\documentclass[twoside]{extbook}
\RequirePackage[pdftex, unicode=true, plainpages=true, pdfpagelabels=true]{hyperref}
\usepackage[T2A]{fontenc}
%\usepackage{pscyr}
\usepackage[cp1251]{inputenc}
\usepackage[english,russian]{babel}
\usepackage[a4paper, left=25mm, right=25mm, top=25mm, bottom=25mm]{geometry}
\usepackage[explicit]{titlesec}
\usepackage{titletoc, titleps}
\usepackage{makeidx}
\makeindex
\usepackage{multicol}
\usepackage[babel=true,tracking=true]{microtype}
\clubpenalty=10000
\widowpenalty=10000

\makeatletter

\renewcommand{\tiny}{\fontsize{8.4}{10.08pt}\selectfont}
\renewcommand{\scriptsize}{\fontsize{10.8}{13.2pt}\selectfont}
\renewcommand{\footnotesize}{\fontsize{13.2}{16.32pt}\selectfont}
\renewcommand{\small}{\fontsize{14.2}{17.4pt}\selectfont}
\renewcommand{\normalsize}{\fontsize{16.8}{21.6pt}\selectfont}
\renewcommand{\large}{\fontsize{19.2}{23.04pt}\selectfont}
\renewcommand{\Large}{\fontsize{24}{30pt}\selectfont}
\renewcommand{\LARGE}{\fontsize{30}{36pt}\selectfont}

\newpagestyle{basicstyle}
[\small]
{\headrule
\sethead
[\footnotesize\slshape{xxx}][][]{}{}
{\hfill\footnotesize\slshape{xxx}}
\setfoot
[\slshape{\thepage}][][]{}{}
{\slshape{\thepage}}
\footrule}

\renewenvironment*{theindex}{
\columnseprule=0pt\columnsep=35pt
\parindent=0pt
\setlength{\parskip}{0pt plus .3pt}
\let\item=\@idxitem
\begin{multicols}{2}
\raggedbottom}
{\end{multicols}}

\makeatother

\begin{document}
\pagestyle{basicstyle}
\centerline{\textbf{Алфавитный указатель терминов}}
\vspace{3ex}% не работает!!!
%\vspace{7ex}% работает!!!

\begin{theindex}
{\bfseries A}\nopagebreak

  \item ANSI, \hyperpage{15}

  \indexspace
{\bfseries C}\nopagebreak

  \item COBOL, \hyperpage{12}
  \item Cуперкласс, \hyperpage{36}

  \indexspace
{\bfseries D}\nopagebreak

  \item DBTG, \hyperpage{13}
  \item DDL, \hyperpage{22}
  \item DML, \hyperpage{22}

  \indexspace
{\bfseries G}\nopagebreak

  \item GUI, \hyperpage{16}

  \indexspace
{\bfseries I}\nopagebreak

  \item ISO, \hyperpage{15}

  \indexspace
{\bfseries M}\nopagebreak

  \item Microsoft, \hyperpage{15}

  \indexspace
{\bfseries O}\nopagebreak

  \item ODBC, \hyperpage{15}

  \indexspace
{\bfseries S}\nopagebreak

  \item Simba Technologies, \hyperpage{15}
  \item SQL, \hyperpage{15}, \hyperpage{32}

  \indexspace
{\bfseries T}\nopagebreak

  \item Teradata Corporation, \hyperpage{16}

  \indexspace
{\bfseries U}\nopagebreak

  \item UNISERVO, \hyperpage{11}
  \item UNIVAC I, \hyperpage{11}

  \indexspace
{\bfseries W}\nopagebreak

  \item W3C, \hyperpage{18}

  \indexspace
{\bfseries X}\nopagebreak

  \item XML, \hyperpage{17}

  \indexspace
{\bfseries А}\nopagebreak

  \item АБД, \hyperpage{19}
  \item Агрегацию, \hyperpage{36}
  \item Аномалия, \hyperpage{41}, \hyperpage{43}
    \subitem ввода, \hyperpage{42}
    \subitem обновления, \hyperpage{42}
    \subitem удаления, \hyperpage{42}
  \item Архитектура
    \subitem ANSI-SPARC, \hyperpage{18}
    \subitem клиент-сервер, \hyperpage{15}, \hyperpage{25}
      \subsubitem трехуровневый вариант, \hyperpage{27}
    \subitem файл-сервер, \hyperpage{24}

  \indexspace
{\bfseries Б}\nopagebreak

  \item БД, \hyperpage{10}
  \item БнД, \hyperpage{10}

  \indexspace
{\bfseries В}\nopagebreak

  \item Виды связей, \hyperpage{39}
  \item ВТ, \hyperpage{7}

  \indexspace
{\bfseries Г}\nopagebreak

  \item Генерализация, \hyperpage{36}

  \indexspace
{\bfseries И}\nopagebreak

  \item ИC, \hyperpage{7}
  \item Избыточность данных, \hyperpage{43}
  \item Избыточностью данных, \hyperpage{41}
  \item ИЛМ, \hyperpage{37}
  \item Инкапсуляция, \hyperpage{35}
  \item Инфологическая модель, \hyperpage{37}, \hyperpage{40, 41}

  \indexspace
{\bfseries К}\nopagebreak

  \item Класс, \hyperpage{34}
    \subitem закрытая область, \hyperpage{35}
    \subitem интерфейс, \hyperpage{34}
    \subitem метод, \hyperpage{34}
    \subitem свойства, \hyperpage{34}
    \subitem экземпляр, \hyperpage{35}
  \item Классификация, \hyperpage{36}
  \item Контроллер
    \subitem БД, \hyperpage{20}, \hyperpage{22}
    \subitem буферов, \hyperpage{22}
    \subitem восстановления, \hyperpage{22}
    \subitem словаря, \hyperpage{22}
    \subitem транзакций, \hyperpage{22}
    \subitem файлов, \hyperpage{20}
  \item Контроль прав доступа, \hyperpage{22}
  \item Кортеж, \hyperpage{32}

  \indexspace
{\bfseries М}\nopagebreak

  \item Модель данных
    \subitem иерархическая, \hyperpage{28}
    \subitem реляционная, \hyperpage{14}, \hyperpage{32}
    \subitem сетевая, \hyperpage{28}
  \item Монитор телеобработки, \hyperpage{13}

  \indexspace
{\bfseries Н}\nopagebreak

  \item Наследование, \hyperpage{36}

  \indexspace
{\bfseries О}\nopagebreak

  \item Объект, \hyperpage{34}
  \item ООСУБД, \hyperpage{17}, \hyperpage{35, 36}
  \item Оптимизатор запросов, \hyperpage{22}
  \item Отношение, \hyperpage{29}, \hyperpage{32}

  \indexspace
{\bfseries П}\nopagebreak

  \item Первичный ключ, \hyperpage{30}
  \item Перфокарта, \hyperpage{10, 11}
  \item Планировщик, \hyperpage{22}
  \item ПО, \hyperpage{12}
  \item Полиморфизм, \hyperpage{35}
  \item Процессор
    \subitem запросов, \hyperpage{20}
    \subitem команд, \hyperpage{22}

  \indexspace
{\bfseries С}\nopagebreak

  \item Сервер
    \subitem приложений, \hyperpage{27}
  \item Системный каталог, \hyperpage{22}
  \item Специализация, \hyperpage{36}
  \item Средства
    \subitem контроля целостности, \hyperpage{22}
  \item СУБД, \hyperpage{9, 10}, \hyperpage{19}, \hyperpage{21}, 
		\hyperpage{25}, \hyperpage{27}
  \item Сущность, \hyperpage{39}
  \item Схема БД, \hyperpage{32}
  \item Схема отношения, \hyperpage{32}

  \indexspace
{\bfseries Т}\nopagebreak

  \item Тип, \hyperpage{39}
  \item Тип данных, \hyperpage{30}
  \item Транзакция, \hyperpage{14}

  \indexspace
{\bfseries Ф}\nopagebreak

  \item Файл, \hyperpage{8}

  \indexspace
{\bfseries Э}\nopagebreak

  \item Эволюция схемы, \hyperpage{32}
  \item Экземпляр, \hyperpage{39}

\end{theindex}
\end{document}
Youra_P
() автор топика
Последнее исправление: Youra_P (всего исправлений: 1)
Ответ на: комментарий от Youra_P

С английскими терминами аналогичный глюк!

Youra_P
() автор топика
Ответ на: комментарий от Youra_P
diff -r dbf307f11594 1.tex
--- a/1.tex     Tue Aug 26 23:31:04 2014 +0400
+++ b/1.tex     Tue Aug 26 23:43:42 2014 +0400
@@ -41,8 +41,8 @@
 \parindent=0pt
 \setlength{\parskip}{0pt plus .3pt}
 \let\item=\@idxitem
-\begin{multicols}{2}
-\raggedbottom}
+\def\indexspace{\vspace{1ex plus 2em}\goodbreak}
+\begin{multicols}{2}}
 {\end{multicols}}
 
 \makeatother
@@ -50,7 +50,7 @@
 \begin{document}
 \pagestyle{basicstyle}
 \centerline{\textbf{Алфавитный указатель терминов}}
-\vspace{3ex}% не работает!!!
+\vspace*{3ex}% не работает!!!
 %\vspace{7ex}% работает!!!
 
 \begin{theindex}
Eddy_Em ☆☆☆☆☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.