2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Уменьшение отступа перед главой.
Сообщение13.06.2013, 10:05 


13/06/13
7
Добрый день.
Использую класс report. Нужно уменьшить вертикальные отступы перед и после названия главы в тексте (\chapter*). В Львовском нашел такое определение команды chapter*:
\newcommand{\@makeschapterhead}[1]{%
\vspace*{50 pt}%
{\parindent=0pt \raggedright
\normalfont\Huge\bfseries #1\par
\nopagebreak
\vspace{40 pt}}}
Вполне понятно, где тут нужные мне отступы. Логично, что заменяя \newcommand на \renewcommand и значения отступов на нужные мне, получу необходимый результат.
Однако миктех ругается на макропараметр в переопределении: you can't use macro parameter character #' in horizontal mode.
Собственно, как решить проблему изменения отступов названия главы?

 Профиль  
                  
 
 Re: Уменьшение отступа перед главой.
Сообщение13.06.2013, 11:00 
Заслуженный участник
Аватара пользователя


23/07/05
17989
Москва
Gu_Ru в сообщении #736180 писал(а):
Однако миктех ругается на макропараметр в переопределении: you can't use macro parameter character #' in horizontal mode.
Э-э-э... Переопределение расположено в преамбуле? У меня не ругается. Точнее, ругается, но на \vspace{40 pt}. И ещё
"! LaTeX Error: Command \@makeschapterhead already defined.
Or name \end... illegal, see p.192 of the manual".
Скорее всего, у меня преамбула неправильная.
А \makeatletter перед определением и \makeatother после определения написали?

 Профиль  
                  
 
 Re: Уменьшение отступа перед главой.
Сообщение13.06.2013, 11:09 


13/06/13
7
а как переопределение писать в преамбуле-то? оно ведь обязательно после \begin{document} должно быть

-- 13.06.2013, 11:12 --

Someone в сообщении #736196 писал(а):
А \makeatletter перед определением и \makeatother после определения написали?

теперь не ругается, если после бегина написано, однако не изменяет отступы

 Профиль  
                  
 
 Re: Уменьшение отступа перед главой.
Сообщение13.06.2013, 11:53 
Заслуженный участник
Аватара пользователя


23/07/05
17989
Москва
Gu_Ru в сообщении #736200 писал(а):
а как переопределение писать в преамбуле-то? оно ведь обязательно после \begin{document} должно быть
Ничего подобного, переопределения положено писать в преамбуле. Ну, может быть, не "положено", а рекомендуется. Почитав литературу, всегда писал все определения и переопределения в преамбуле, даже не задумываясь о других возможностях.

 Профиль  
                  
 
 Re: Уменьшение отступа перед главой.
Сообщение13.06.2013, 11:58 


13/06/13
7
Someone в сообщении #736220 писал(а):
Gu_Ru в сообщении #736200 писал(а):
а как переопределение писать в преамбуле-то? оно ведь обязательно после \begin{document} должно быть
Ничего подобного, переопределения положено писать в преамбуле. Ну, может быть, не "положено", а рекомендуется. Почитав литературу, всегда писал все определения и переопределения в преамбуле, даже не задумываясь о других возможностях.

так миктех не дает писать в преамбуле, требует, чтоб после \begin{document} оно было. Собственно, в теле документа сделал с мейками, но результат не изменился

 Профиль  
                  
 
 Re: Уменьшение отступа перед главой.
Сообщение13.06.2013, 12:13 
Заслуженный участник
Аватара пользователя


23/07/05
17989
Москва
Gu_Ru в сообщении #736223 писал(а):
так миктех не дает писать в преамбуле, требует, чтоб после \begin{document} оно было
Странно, никогда с таким не сталкивался. У меня MiKTeX 2.9, но и в более ранних версиях ничего подобного не наблюдал.

-- Чт июн 13, 2013 13:15:58 --

Минимальный рабочий пример можно посмотреть? Ваша преамбула (может быть, без несущественных для дела частей) и какое-нибудь "бла-бла-бла" в теле документа.

 Профиль  
                  
 
 Re: Уменьшение отступа перед главой.
Сообщение13.06.2013, 12:17 


13/06/13
7
Someone в сообщении #736234 писал(а):
Gu_Ru в сообщении #736223 писал(а):
так миктех не дает писать в преамбуле, требует, чтоб после \begin{document} оно было
Странно, никогда с таким не сталкивался. У меня MiKTeX 2.9, но и в более ранних версиях ничего подобного не наблюдал.

у меня 2.9. При написании мейков перед и после переопределения оно нормально съедается что в преамбуле, что в теле документа, но не оказывает никакого влияния. Без мейков в преамбуле требует, чтоб было в теле (Missing \begin{document}), если в теле, то выдает обозначенную в первом посте проблему

-- 13.06.2013, 12:20 --

Someone в сообщении #736234 писал(а):
Минимальный рабочий пример можно посмотреть? Ваша преамбула (может быть, без несущественных для дела частей) и какое-нибудь "бла-бла-бла" в теле документа.

собственно, вся преамбула:
Код:
\documentclass[12pt]{report}
\usepackage[english,russian]{babel}
\usepackage[cp1251]{inputenc}
\usepackage{graphicx}
\usepackage{epstopdf}
\usepackage{geometry}
\usepackage{amsmath}
\usepackage[usenames]{color}
\usepackage{setspace}
\usepackage{hyperref}
\usepackage{indentfirst}
\usepackage{rotating}
\usepackage{makecell}
\usepackage{longtable}
\usepackage{tocloft}
\setlength{\cftbeforetoctitleskip}{-12pt}
\setlength{\cftaftertoctitleskip}{10pt}

%\renewcommand{\@makeschapterhead}[1]{\vspace*{20 pt}{\parindent=0pt \raggedright\normalfont\Huge\bfseries #1\par\nopagebreak\vspace{20 pt}}}

\geometry{left=3cm}
\geometry{right=1cm}
\geometry{top=2cm}
\geometry{bottom=2cm}
\renewcommand\normalsize{\fontsize{14}{19pt}\selectfont}


чтоб манипуляции с изменением отступа использовать для оглавления, я использовал пакет tocloft, там все нормально сдвинулось.

 Профиль  
                  
 
 Re: Уменьшение отступа перед главой.
Сообщение13.06.2013, 12:20 
Заслуженный участник
Аватара пользователя


23/07/05
17989
Москва
Без "мейков" его писать нельзя, символы @ мешают. Они в документе обрабатываются не так, как в стилевом файле.

 Профиль  
                  
 
 Re: Уменьшение отступа перед главой.
Сообщение13.06.2013, 12:24 


13/06/13
7
Someone в сообщении #736240 писал(а):
Без "мейков" его писать нельзя, символы @ мешают. Они в документе обрабатываются не так, как в стилевом файле.

понятно, что мейки ставятся, чтоб защитить теховские макросы. но банально не работает изменение класса главы в таком случае

 Профиль  
                  
 
 Re: Уменьшение отступа перед главой.
Сообщение13.06.2013, 12:28 
Заслуженный участник
Аватара пользователя


23/07/05
17989
Москва
А в теле документа что-нибудь напишите, чтобы посмотреть, на что должно действовать.

 Профиль  
                  
 
 Re: Уменьшение отступа перед главой.
Сообщение13.06.2013, 12:33 


13/06/13
7
\begin{document}
\chapter*{Введение}
\addcontentsline{toc}{chapter}{Введение}
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
\end{document}

собственно, у стандартного класса главы 50 пт до и 40 пт после названия отступ. мне нужен порядка 25-30

 Профиль  
                  
 
 Re: Уменьшение отступа перед главой.
Сообщение13.06.2013, 13:13 
Заслуженный участник
Аватара пользователя


23/07/05
17989
Москва
У меня Ваш пример работает. Отступы меняет, что хорошо видно. С "мейками", естественно; без них нельзя.

код: [ скачать ] [ спрятать ]
Используется синтаксис LaTeX
\documentclass[12pt]{report}
\usepackage[english,russian]{babel}
\usepackage[cp1251]{inputenc}
\usepackage{graphicx}
\usepackage{epstopdf}
\usepackage{geometry}
\usepackage{amsmath}
\usepackage[usenames]{color}
\usepackage{setspace}
\usepackage{hyperref}
\usepackage{indentfirst}
\usepackage{rotating}
\usepackage{makecell}
\usepackage{longtable}
\usepackage{tocloft}
\setlength{\cftbeforetoctitleskip}{-12pt}
\setlength{\cftaftertoctitleskip}{10pt}

\makeatletter
\renewcommand{\@makeschapterhead}[1]{\vspace*{20 pt}{\parindent=0pt \raggedright\normalfont\Huge\bfseries #1\par\nopagebreak\vspace{20 pt}}}
\makeatother

\geometry{left=3cm}
\geometry{right=1cm}
\geometry{top=2cm}
\geometry{bottom=2cm}
\renewcommand\normalsize{\fontsize{14}{19pt}\selectfont}
\begin{document}
\chapter*{Введение}
\addcontentsline{toc}{chapter}{Введение}
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
\end{document}
 

P.S. Обратите внимание на тег Syntax: http://dxdy.ru/topic26708.html.

 Профиль  
                  
 
 Re: Уменьшение отступа перед главой.
Сообщение13.06.2013, 13:33 


13/06/13
7
Спасибо, разобрался, все работает.

Но есть еще проблема с уезжающими за пределы страницы длинными сносками-ссылками в нижнем колонтитуле страницы и с так же уезжающими длинными названиями разделов в оглавлении, которые объявляются как
Используется синтаксис LaTeX
\section*{Name}
\addcontentsline{toc}{section}{Name}

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 13 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group