2014 dxdy logo

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

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




Начать новую тему Ответить на тему
 
 \subsection и новая строка
Сообщение28.10.2016, 02:06 


22/05/11
3
Здравствуйте. Есть документ примерно следующего содержания:

Код:
\documentclass[a4paper,12pt,twoside]{article}
\usepackage[english,russian]{babel}
\usepackage[utf8]{inputenc}

%Переопределение заголовков секций и субсекций:
\makeatletter%Надо чтобы работало "@"
\renewcommand{\section}{\@startsection{section}{1}{0pt}{-3.5ex plus -1ex minus -.2ex}{2.3ex plus .2ex}{\normalfont\Large\bfseries}}
\renewcommand{\subsection}{\@startsection{subsection}{2}{0pt}{-0.1ex plus -1ex}{0ex plus 1ex}{\normalfont\large\bfseries}}
\makeatother

\begin{document}
\section{Первый раздел}
Hello world! Hello world!
\subsection{Первый подраздел}
Goodbye world!

Goodbye world!
\subsection{Второй подраздел}
I am here.

I am here.
\section{Второй раздел}
$x^2 + y^2 = z^2$

$x^n + y^n = z^n; x,y,z,n \in N; x,y,z \ge 2; n \ge 3$
\subsection{Первый подраздел}
Теорема Пифагора.

Теорема Пифагора.
\subsection{Второй подраздел}
Теорема Ферма.

Теорема Ферма.

\end{document}


В результате получается такой текст:

Цитата:
1 Первый раздел
Hello world! Hello world!
1.1 Первый подраздел Goodbye world!
Goodbye world!
1.2 Второй подраздел I am here.
I am here.
2 Второй раздел
$x^2 + y^2 = z^2$
$x^n + y^n = z^n; x,y,z,n \in N; x,y,z \ge 2; n \ge 3$
2.1 Первый подраздел Теорема Пифагора.
Теорема Пифагора.
2.2 Второй подраздел Теорема Ферма.
Теорема Ферма.


Почему после подразделов \subsection не происходит переноса на следующую строку? Как добиться того, чтобы после \subsection происходил автоматический перенос на следующую строку - как после \section? Короче говоря, как сделать, чтобы было так:

Цитата:
...
1.1 Первый подраздел
Goodbye world!
Goodbye world!
...


Пробовал добавить:
Код:
\newcommand{\mysubsection}[1]{\subsection{#1}\par}

и соответственно заменить все "subsection" на "mysubsection" - никакого результата.

 Профиль  
                  
 
 Re: \subsection и новая строка
Сообщение29.10.2016, 19:43 


22/05/11
3
Пока что придумал только такой костыль:

Код:
\documentclass[12pt]{article}
\usepackage[english,russian]{babel}
\usepackage[utf8]{inputenc}

\newcounter{sect}
\newcounter{subsect}
\setcounter{sect}{0}
\parindent=1.5cm%абзацный отступ

\newcommand{\mysection}[1]{
\refstepcounter{sect}
     \newpage
     \vspace{-3.5ex plus -1ex minus -.2ex}
     \section*{\hspace{0pt}\makebox[\textwidth][l]{\normalfont\Large\bfseries\thesect\quad #1\hfill}}
     \addcontentsline{toc}{section}{\thesect\quad #1\hfill}
     \vspace{2.3ex plus .2ex}
     \setcounter{subsect}{1}
     \addtolength{\parindent}{-0.4cm}
     \hspace{\parindent}
     \addtolength{\parindent}{0.4cm}
}

\newcommand{\mysubsection}[1]{
\refstepcounter{subsect}
     \vspace{-0.1ex plus -1ex}
     \subsection*{\hspace{1pt}\makebox[\textwidth][l]{\normalfont\large\bfseries\slshape\thesect.\thesubsect\quad#1\hfill}}
     \addcontentsline{toc}{subsection}{\thesect.\thesubsect\quad #1}
     \vspace{0ex}
     \nopagebreak
     \addtolength{\parindent}{-0.4cm}
     \hspace{\parindent}
     \addtolength{\parindent}{0.4cm}
}


   
\begin{document}

\tableofcontents
\newpage

\mysection{Первый раздел}
Hello world!

Hello world!
\mysubsection{Первый подраздел}
Goodbye world!

Goodbye world!
\mysubsection{Второй подраздел}
I am here.

I am here.
\mysection{Второй раздел}
$x^2 + y^2 = z^2$

$x^n + y^n = z^n; x,y,z,n \in N; x,y,z \ge 2; n \ge 3$
\mysubsection{Первый подраздел}
Теорема Пифагора.

Теорема Пифагора.
\mysubsection{Второй подраздел}
Теорема Ферма.

Теорема Ферма.

\end{document}


Значение в 0.4 cm определил экспериментальным путём. Если есть у кого более приемлемый вариант решения проблемы, то буду рад услышать.

 Профиль  
                  
 
 Re: \subsection и новая строка
Сообщение29.10.2016, 21:00 
Заслуженный участник
Аватара пользователя


31/01/14
11305
Hogtown
Используется синтаксис LaTeX
\renewcommand{\subsection}{\@startsection{subsection}{2}{0pt}{-0.1ex plus -1ex}{0ex plus 1ex}{\normalfont\large\bfseries}}


Вот в этом {0ex plus 1ex} и проблема. Замените 0 на что-то большее. И вообще смотрите на строки в article.cls

код: [ скачать ] [ спрятать ]
Используется синтаксис LaTeX
\newcommand\section{\@startsection {section}{1}{\z@}%
                                   {-3.5ex \@plus -1ex \@minus -.2ex}%
                                   {2.3ex \@plus.2ex}%
                                   {\normalfont\Large\bfseries}}
\newcommand\subsection{\@startsection{subsection}{2}{\z@}%
                                     {-3.25ex\@plus -1ex \@minus -.2ex}%
                                     {1.5ex \@plus .2ex}%
                                     {\normalfont\large\bfseries}}
\newcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}%
                                     {-3.25ex\@plus -1ex \@minus -.2ex}%
                                     {1.5ex \@plus .2ex}%
                                     {\normalfont\normalsize\bfseries}}
\newcommand\paragraph{\@startsection{paragraph}{4}{\z@}%
                                    {3.25ex \@plus1ex \@minus.2ex}%
                                    {-1em}%
                                    {\normalfont\normalsize\bfseries}}
\newcommand\subparagraph{\@startsection{subparagraph}{5}{\parindent}%
                                       {3.25ex \@plus1ex \@minus .2ex}%
                                       {-1em}%
                                      {\normalfont\normalsize\bfseries}}



А вообще, какова цель этих прыжков и плясок?

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

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



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

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


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

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