2014 dxdy logo

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

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




Начать новую тему Ответить на тему
 
 заголовок на одной странице с текстом
Сообщение25.10.2015, 16:58 


11/04/08
632
Марс
У меня latex оставляет заголовок в конце одной странице, а текст начинается с другой. По-моему, это как-то неправильно. Ставить вручную newpage не идеальный вариант. Можно ли latex научить делать это автоматом?

 Профиль  
                  
 
 Re: заголовок на одной странице с текстом
Сообщение25.10.2015, 18:21 
Заслуженный участник
Аватара пользователя


31/01/14
11348
Hogtown
Учить не надо, надо отучивать. Для начала разбежитесь с шапкой и с тем кто ее Вам подсунул

 Профиль  
                  
 
 Re: заголовок на одной странице с текстом
Сообщение03.11.2015, 23:18 


11/04/08
632
Марс
Ну вообще да, сам latex заголовки внизу страницы не оставляет, а переносит их на новую страницу, но при этом текст предыдущей страницы выравнивает по нижнему краю. И здесь возникает другая проблема - возникают большие пробелы там, где их быть не должно, например после доказательства теоремы, либо увеличиваются интервалы перед и после заголовка. Не знаю, может так и должно быть по задумке разработчиков, но боюсь в ВАКе это не оценят. Вот часть шапки, которая за это должна отвечать:
Код:
\usepackage{titlesec}
\usepackage{titletoc}
\titleformat{\tableofcontents}{\normalfont\bfseries}{\thetableofcontents}{0em}{}
\titlespacing*{\tableofcontents}{0pt}{30pt}{30pt}
\titlespacing*{\chapter}{0pt}{30pt}{30pt}
\titlespacing*{\section}{\parindent}{*1}{*1}
\titlespacing*{\subsection}{\parindent}{*3}{*3}
\titlespacing*{\subsubsection}{\parindent}{*3}{*3}


А вот результат (но не то, что хочется):
http://i.imgur.com/DcS1DOC.png

 Профиль  
                  
 
 Re: заголовок на одной странице с текстом
Сообщение04.11.2015, 00:27 


13/07/14
257
На теорему применяются правила оформления заголовка?!
MWE не помешало бы.

 Профиль  
                  
 
 Re: заголовок на одной странице с текстом
Сообщение04.11.2015, 01:29 
Заслуженный участник
Аватара пользователя


31/01/14
11348
Hogtown
spyphy в сообщении #1070016 писал(а):
И здесь возникает другая проблема - возникают большие пробелы там, где их быть не должно, например после доказательства теоремы, либо увеличиваются интервалы перед и после заголовка


Опять какой-то самопал в шапке. Нормально эти пробелы очень небольшие, а (почти) вся пустота уходит вниз страницы. Найдите этот самопал и на помойку (хорошо бы автора туда же). А если внизу страницы хочется порегулировать, есть команда (несколько выше конца страницы)
Используется синтаксис LaTeX
\enlargethispage{1.5\baselineskip}


и поиграйтесь с коэффициентом. Не надейтесь на автоматику: тонкую регулировку—вручную

 Профиль  
                  
 
 Re: заголовок на одной странице с текстом
Сообщение04.11.2015, 01:59 


11/04/08
632
Марс
Red_Herring в сообщении #1070057 писал(а):
\enlargethispage{1.5\baselineskip}
Да, можно и так. Либо \newpage как вариант.

Lenchik в сообщении #1070041 писал(а):
На теорему применяются правила оформления заголовка?!

Этого я сам понять не могу. Дополнительно я никаких оптий не задавал. Только если titlesec как-то влияет.

 Профиль  
                  
 
 Re: заголовок на одной странице с текстом
Сообщение04.11.2015, 02:04 


13/07/14
257
http://tex.stackexchange.com/q/140490/79756 - вдруг поможет?

 Профиль  
                  
 
 Re: заголовок на одной странице с текстом
Сообщение04.11.2015, 06:35 
Заслуженный участник
Аватара пользователя


31/01/14
11348
Hogtown
\newpage и \pagebreak оканчивают страницу (по-разному), \enlargethispage наоборот

 Профиль  
                  
 
 Re: заголовок на одной странице с текстом
Сообщение08.11.2015, 20:31 


11/04/08
632
Марс
Причина пустот в том, что у меня latex не хочет разрывать абзацы на две страницы, даже достаточно большие. Я могу понять еще, что одну строчку некрасиво переносить на новую страницу, но он даже абзац из 4-х строк не хочет пополам делить.
Можно где-то подкрутить эти настройки?

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


31/01/14
11348
Hogtown
spyphy в сообщении #1071418 писал(а):
Можно где-то подкрутить эти настройки?

Их уже кто-то накрутил. Есть такие люди, что тащат к себе в шапку весь интернатский мусор. А потом делятся с другими.

 Профиль  
                  
 
 Re: заголовок на одной странице с текстом
Сообщение08.11.2015, 21:23 


11/04/08
632
Марс
У меня там всё нужное. Могу тоже поделиться
Код:
\documentclass[a4paper,14pt,reqno,oneside]{amsart}
\usepackage[14pt]{extsizes}
\usepackage[left=2.5cm,right=1.0cm,top=2.0cm,bottom=2.0cm,bindingoffset=0cm]{geometry}
\usepackage[russian]{babel}
\usepackage[all,arc]{xy}
\usepackage[all]{xy}
\usepackage{latexsym,amssymb,amsmath}
\usepackage{style}  % внешний файл
\usepackage{comment}
\usepackage{caption} 
\DeclareCaptionLabelFormat{continued}{Продолжение таблицы~#2}
\usepackage{multirow} % улучшенное форматирование таблиц
\usepackage[numbers]{natbib} % надо для списка литературы
\usepackage{enumitem}
\setlist{nolistsep}
\usepackage{microtype}
\parindent=1.0cm % абзацный отступ
\linespread{1.15}  % межстрочный интервал  (1.15 -- примерно 18pt)
\sloppy   % перенос формул на следующую строку.
\footskip=30pt
\usepackage{titlesec}
\usepackage{titletoc}
\titleformat{\section}[block]
  {\fontsize{16}{18}\bfseries\filcenter}  % было sffamily
  {\thesection}
  {1em}
  {\MakeUppercase}
 
\titleformat{\subsection}[hang]
  {\fontsize{16}{18}\bfseries\filcenter}
  {\thesubsection}
  {1em}
  {}
 
\titleformat{\subsubsection}[hang]
  {\fontsize{14}{16}\bfseries\filcenter}
  {\thesubsubsection}
  {0.5em}
  {}
 
\titleformat{\paragraph}[hang]
  {\fontsize{14}{16}\bfseries}
  {\thesubsubsection}
  {0.5em}
  {}   
  \contentsmargin{2.55em}

\titleformat{\tableofcontents}{\normalfont\bfseries}{\thetableofcontents}{0em}{}
\titlespacing*{\tableofcontents}{0pt}{30pt}{30pt}
\titlespacing*{\chapter}{0pt}{30pt}{30pt}
\titlespacing*{\section}{\parindent}{*1}{*1}
\titlespacing*{\subsection}{\parindent}{*4}{*3}
\titlespacing*{\subsubsection}{\parindent}{*3}{*3}


\titlecontents{section}
[1.5em]
{}
{\contentslabel{2.3em}}
{\hspace*{-2.3em}}
{\titlerule*[1pc]{.}\contentspage}

\titlecontents{subsection}
[4.2em]
{} % note that 3.8 = 1.5 + 2.3
{\contentslabel{3.2em}}
{\hspace*{-5.0em}}
{\titlerule*[1pc]{.}\contentspage} 

\titlecontents{subsubsection}
[4.8em]
{} % note that 3.8 = 1.5 + 2.3
{\contentslabel{3.2em}}
{\hspace*{-4.0em}}
{\titlerule*[1pc]{.}\contentspage} 

\titlecontents{paragraph}
[4.8em]
{} % note that 3.8 = 1.5 + 2.3
{\contentslabel{4.2em}}
{\hspace*{-4.2em}}
{\titlerule*[1pc]{.}\contentspage} 

\numberwithin{equation}{section}  % отдельная нумерация в каждой section

\setcounter{tocdepth}{4} % уровень в оглавлении -- n=4 до paragraph (по умолчанию n=2)
\addto{\captionsrussian}{\renewcommand*{\contentsname}{\fontsize{16}{18pt}\selectfont\bf ОГЛАВЛЕНИЕ\vspace{8mm}}}
\renewcommand*{\thepage}{\normalsize\arabic{page}}  % шрифт номера страницы
\renewcommand\thetable{\thesection.\arabic{table}} % настройка номера таблицы

\makeatletter
\setlength\abovecaptionskip{2\p@}
\setlength\belowcaptionskip{1\p@}
\long\def\@makecaption#1#2{%
  \vskip\abovecaptionskip
  \ifx\@captype\capfigure
      \centering #1.~--~#2 \par
  \else
      #1.~--~#2 \par
  \fi
  \vskip\belowcaptionskip}
\makeatother


С этим Техом у меня еще одна неприятность вылазит. Весь текст напичкан фразами типа $p$-подгруппа, $p$-блок, $p$-модулярный и т.п., так вот Тех всё время перенос делает именно в месте $p$-. Конечно, можно бороться раставляя \mbox{}, но это долго, да и ошибок в тексте увеличивается.

 Профиль  
                  
 
 Re: заголовок на одной странице с текстом
Сообщение09.11.2015, 07:30 


13/07/14
257
А внешний стилевой файл style что содержит?
LaTeX-код тут вставляют через команду подсветки синтаксиса ;)
Код:
[syntax lang="latex"][/syntax]

По поводу переносов:
- есть команда \nobreakdash из пакета amsmath;
- есть ресурс tex.stackexchange.com, поиск по которому находит, например: http://tex.stackexchange.com/q/46617/79756 и http://tex.stackexchange.com/a/79022/79756
- в шаблоне с http://technomag.bmstu.ru/mdocs/rules2.html есть такая заготовка
Используется синтаксис LaTeX
\def\nb-{\nobreak\hskip0pt\hbox{-}\nobreak\hskip0pt}  %  неразрывный дефис
\def\nf-{\nobreak\hskip0pt\discretionary{-}{}{-}\nobreak\hskip0pt}

снабжённая инструкцией:
Цитата:
Если слово содержит дефис, то TeX автоматически отключает возможные точки разрыва слова при переносе, оставляя лишь место за дефисом. Чтобы восстановить точки разрыва поставьте перед таким дефисом команду \nf (например, кусочно\nf-непрерывный). Аналогична команда \nb, которая запрещает разрыв на самом дефисе (например, в варианте "$n$\nb-мерный").

 Профиль  
                  
 
 Re: заголовок на одной странице с текстом
Сообщение09.11.2015, 20:38 


11/04/08
632
Марс
Это конечно хорошо, но хотелось бы иметь глобальную команду, которая бы во всем тексте запрещала разрыв строки именно в местах, где явно стоит дефис (хотя для гуманитариев это покажется странным, но математикам значительно упростило бы жизнь)

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

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



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

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


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

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