пятница, 13 июня 2008 г.

Верстаем диплом в LaTeX: заключение - полезные мелочи


Пришла пора для последней статьи серии о верстке диплома в LaTeX. Сегодня мы поговорим о всяких мелочах, в то же время имеющих очень важное значение в глазах любого нормоконтролера. Ведь, как известно, вся наша жизнь складывается из мелочей.

Рассмотрим следующие моменты:
1. Верстка аннотации.
2. Добавление в оглавление разделов без номера (Введение, Заключение, Библиография)
3. Среднее тире в перечислениях (ненумерованых списках)
4. Использование арабских цифр для нумерованых списков, подавление точки после номера
5. Подавление точки после номера в списке литературы
6. Подчеркивание интернет-ссылок.

Итак, пожалуй начнем.


Верстка аннотации
Аннотация - это страница, следующая перед оглавлением. Аннотация состоит из слова "Аннотация", размещенного посредине страницы (обратите внимание, это - не заголовок), блока описания документа, сдвинутого на 3.5 сантиметра относительно левого поля. Далее идет текст аннотации, отделенный от блока описания документа двойным межстрочным интервалом.

Для того, чтобы выровнять слово "Аннотация" по центру используется стандартный способ - окружение center:

\begin{center}Аннотация\end{center}


Далее начинается самое интересное - блок описания документа, который нужно сдвинуть на 3.5 сантиметра, относительно левого поля. Для этого будем использовать абзац нестандартной формы, довольно хорошо описаный у Львовского. Приведу код создания данного обзаца:

\hangindent=3.5cm \hangafter=0 \noindent


Для того, чтобы после данного абзаца вставить пустую строку используется стандартная команда переноса строки - \\

Обратите внимание, что в блоке описания документа необходимо указать сколько в документе страниц и рисунков. Для страниц есть счетчик LastPage, который описан в классе lastpage (данный класс подключается вместе с eskdpz). Получить значение данного счетчика можно с помощью команды \pageref{LastPage}.

К сожалению для рисунков и таблиц такого счетчика я не нашел и поступил абсолютно неправильным образом - написал колличество рисунков вручную (благо, я использовал сквозную нумерацию). Однако можно сделать счетчик рисунков и добавить его инкрементацию в описание команды вставки рисунка. Это будет правильнее.

Вставка разделов без номера в оглавление
Теперь разберемся со следующей проблемой - как вставить в оглавление разлел без номера (созданный командой \section*{). Для этого используется команда \addcontentsline. Аргументы данной команды следующие: тип оглавления куда вставляется строка (оглавление документа, список иллюстраций и т.д.), команда для вставки (section, subsection и т.д.). Данная команда описывает как будет в оглавление вставляться строка. Ну и последним аргументом является собственно строка, которая вставляется, например:

\addcontentsline{toc}{section}{\hspace{15mm}Введение}


Команда \hspace здесь используется для того, чтобы вставить отступ в 15мм перед словом, как того требует ГОСТ.

Есть одна особенность: по ГОСТ между разделами в оглавлении вставляется 15мм промежуток, а вот между "Заключение" и "Библиография" - нет. Решается проблема просто - заключение и библиография вставляются как подразделы, т.е. вот так:

\addcontentsline{toc}{subsection}{\hspace{15mm}Библиография}


Среднее тире в перечислениях
Для того чтобы в перечислениях (окружение itemize) использовалось короткое тире необходимо добавить в файл стилей следующие строки (собственно они уже есть в стандартной поставке eskdpz):

\renewcommand{\labelitemi}{\normalfont\bfseries{--}}

 


Нумерованые списки
Теперь разберемся с нумероваными списками. По ГОСТ в списках допускается использование арабских цифр или букв кирилицы, однако предпочтение нормоконтролера отдается обычно именно цифрам, в то время как в пакете eskdpz используются буквы. Чтобы настроить использование цифр необходимо заменить команды определения отображения списков на следующие:

\renewcommand{\theenumi}{\arabic{enumi}}

\renewcommand{\theenumii}{\arabic{enumii}}

\renewcommand\labelenumi{\theenumi}

\renewcommand\labelenumii{\theenumii}  

 


Т.к. после команд \arabic{enumi} и \arabic{enumii} нет точек, то и после цифр не будет точек, что и требуется по ГОСТ.

Кстати позволю себе сделать одно замечание по поводу многоуровневых списков. Не рекомендуется делать более чем 2-х уровневые списки. В случае двухуровневых списков первый уровень рекомендуется делать нумерованым, а второй - маркированым. Ну и все помним, что в случае нумерованого списка после номера пишем с заглавной буквы, в конце ставим точку. В случае маркированого - пишем с маленькой буквы, в конце ставим точку с запятой (у последнего элемента списка - естественно точку).

Подавление точки после номера в библиографии
По умолчанию в библиографии после номера элемента в списке ставится точка. По всеми нами любимому ГОСТ точки быть не должно. Для этого необходимо переопределить команду отрисовки номера списка:

\renewcommand{\@biblabel}[1]{#1}


Подчеркивание интернет-ссылок
По ГОСТ требуется чтобы URL ссылки на интернет-ресурс был подчеркнут. Для подчеркивания используется пакет ulem, который содержит много различных паттернов линий, возможность задавать толщину линии и т.д. Нам же нужен самый примитив - тонкая одиночная сплошная линия, для чего служит команда \uline. Текст, который нужно подчеркнуть, является аргументом данной команды, например:

\uline{http://www.cryptopro.ru/cryptopro/documentation /dig-cert.htm}


Вот собственно и все, что я хотел рассказать о верстке диплома в замечательной системе LaTeX. Мой диплом был инженерным, а не математическим, поэтому различные тонкости, связанные с версткой формул (у меня они и по дефолту сверстались нормально), химических формул и прочих разных нотных знаков я не рассматривал. И конечно прошу помнить, что требования к оформлению обычно определяются СТП предприятия, а значит в вашем Вузе могут немного отличаться.

Легкого вам прохождения нормоконтроля и удачи на защите!

Другие статьи серии:



Понравилось сообщение - подпишись на блог

7 комментариев:

virens комментирует...

Интересная серия постов, думаю, будет полезна студентам.

Вообще можно попользовать уже готовое решение, а именно пакет disser. Жаль, что документации к нему очень мало.

P.S> заходите в гости :-)

Vsevolod комментирует...

Для страниц есть счетчик LastPage, который описан в классе lastpage... Получить значение данного счетчика можно с помощью команды \pageref{LastPage}.

К сожалению для рисунков и таблиц такого счетчика я не нашел... можно сделать счетчик рисунков и добавить его инкрементацию в описание команды вставки рисунка...


Неприятно то, что \pageref{LastPage} ссылается на последнюю страницу в документе, а не на последнюю страницу перед приложениями. Так что если они есть, нужно заводить отдельную переменную, присваивать ей перед \appendix значение счётчика страниц и, в итоге, мы попадём в ту же ситуацию, что и с рисунками.

Насчёт подсчёта рисунков Вы предлагаете хороший вариант, но что делать дальше?

Есть значение счётчика и как его использовать ДО того, как оно получено? По идее, его нужно записать в aux-файл и считать оттуда при повторном прогоне LaTeX'а, но вот как это сделать, не создавая собственного класса? Мне почему-то казалось, что никак.

St.MPA3b комментирует...

\captionsetup{figurewithin=none}
делов-то, надо было просто посмотреть руководство по caption :)

Анонимный комментирует...

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

Samolisov Pavel комментирует...

Да, мы такие. А вообще мы даже работаем днем )))

Татьяна комментирует...

Добрый вечер! Может, кто поможет, а то я запуталась и не знаю уже, где искать ответ. Есть такие перечни:
\newcounter{tmp}\setcounter{tmp}{1}
\begin{list}{\asbuk{tmp}.}
{\usecounter{tmp}}
\setlength{\itemsep}{-4pt}
\setlength{\labelwidth}{10mm}
\item \textsl{RAW}. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст.
\item \textsl{WAW}.
\item \textsl{WAR}.
\end{list}

\begin{list}{-- }{\leftmargin=5mm\itemsep=-4pt}
\item {\textsl{RAW1}. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст. Текст.
\item {\textsl{WAW1}.
\item {\textsl{WAR1}.
\end{list}

Второй работает и отступ от левого края отсутсвует. А первый действует так: либо нет отступа, либо нумерация пропадает.
Мне же надо, чтобы нумеровалось арабскими цифрами, а как вариант - русскими буквами, не было отступа от левого края, а вторая строка, если не помещается на одной, начиналась точно под тестом (а не номером!) первой.
Стандартное оформление не устраивает иак как весь список сдвинут вправо на \itemindent? как я понимаю, а это не нравится (не мне!).
В общем, помогите, если кто сталкивался с такой ситуацией.

Дмитрий Кириллов комментирует...

Здравствуйте. Подскажите пожалуйста, как можно алфавитный указатель печатать в виде таблицы, а не списком \item? То есть хотелось бы, чтобы при компиляции исходного файла MakeIndex в процедуре \theindex вставляла таблицу с алфавитным указателем (указатель в левом столбце, страница его упоминания – в правом; каждый следующий указатель – в новой строке).

Отправить комментарий

Любой Ваш комментарий важен для меня, однако, помните, что действует предмодерация. Давайте уважать друг друга!