2014 dxdy logo

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

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




 
 \subsection и новая строка
Сообщение28.10.2016, 02:06 
Здравствуйте. Есть документ примерно следующего содержания:

Код:
\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 
Пока что придумал только такой костыль:

Код:
\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 
Аватара пользователя
Используется синтаксис 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 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group