Minoru 10.05.2011 16:24 netbook

Псто, выручай. Мне нужно уменьшить расстояние между пунктами в окружениях itemize и enumerate. За это отвечает параметр itemsep — это можно выставить в ноль и всё будет ок:

\begin{itemize}
\setlength{\itemsep}{0pt}
\item Item one
...
\end{itemize}

Но проблема в том, что это неудобно. Собственно, вопрос: как мне глобально, для всего документа задать itemsep=0pt? Прописывание \setlength до или внутри окружения document не помогает.

Recommended by: @Kona-chan
1. Kona-chan 10.05.2011 16:25 Mendoza

Первое, что пришло в голову: переопределить itemize.

2. MinoruKona-chan /1 10.05.2011 16:28 netbook

Не получается. Я так понимаю, нужно сделать что-то вроде:

\renewenvironment{itemize}{%
\begin{\ORIGITEMIZE}{%
\setlength{\itemsep}{0pt}}{%
\end{\ORIGITEMIZE}}

а ORIGITEMIZE определить так:

\let\ORIGITEMIZE=\itemize

(естественно, let должен быть перед renewenvironment).

Проблема в том, что LaTeX ругается на let.

3. Kona-chanMinoru /2 10.05.2011 16:29 Mendoza

Тогда определи новый тип списка.

4. MinoruKona-chan /3 10.05.2011 16:30 netbook

Хотеть просто поменять itemize :) Но да, я встречал готовый рецепт для создания нового. Попробовать, что ли…

5. Kona-chanMinoru /4 10.05.2011 16:30 Mendoza

Если ничего другого не найдешь, создавай свой.

6. MinoruKona-chan /5 10.05.2011 16:30 netbook

Не нашёл, потому и спрашиваю же :)

7. Minoru 10.05.2011 16:56 netbook

Добился некоторого прогресса с вот таким кодом:

\let\origenum=\enumerate
\renewenvironment{enumerate}{
\begin{origenum}
\setlength{\itemsep}{0pt}
}{\end{origenum}}

но теперь последний пункт списка почему-то сдвинут влево:

Что делать, псто?

8. Kona-chanMinoru /7 10.05.2011 16:56 Mendoza

Это список литературы?

9. MinoruKona-chan /8 10.05.2011 16:57 netbook

Очевидно же :)

10. Kona-chanMinoru /9 10.05.2011 16:57 Mendoza

Почему тогда не использовать средства латеха для создания списков литературы?

11. MinoruMinoru /9 10.05.2011 16:57 netbook

На самом деле, не совсем так: это список нормативных документов и книг, использовавшихся при создании ПО.

12. MinoruKona-chan /10 10.05.2011 16:58 netbook

Этот список — пример. У меня ещё пара списков есть, не являющихся списками литературы.

13. Minoru 10.05.2011 17:02 netbook

Если после последнего item'а поставить перевод строки (example code given below), всё рендерится нормально.

\begin{enumerate}
\item ...
...
\item ...

\end{enumerate}

14. MinoruMinoru /13 10.05.2011 17:16 netbook

В общем, сделал нечто вроде грязного хака:

% squashing spaces between items in enumerate environment
\let\origenum=\enumerate
\renewenvironment{enumerate}{\begin{origenum}\setlength{\itemsep}{0pt}}{

\end{origenum}}

Да-да, всё верно — там посередине пустая строка. Ну, по крайней мере оно работает :)
@Kona-chan, спасибо за поддержку all along the way!

15. Kona-chanMinoru /14 10.05.2011 17:17 Mendoza

Ох, да не за что, толку с меня было немного.

16. Minoru 10.05.2011 17:26 netbook

…впрочем, LaTeX не сдаётся. Попытался определить такую же штуку для itemize — получил ошибку:

! LaTeX Error: Too deeply nested.

>_<

17. MinoruMinoru /16 10.05.2011 17:45 netbook

Всё, что-то случилось и теперь оно постоянно с такой ошибкой валится :'(

Do you really want to delete ?