2014 dxdy logo

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

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




Начать новую тему Ответить на тему На страницу 1, 2  След.
 
 Проблема с нумерацией формул
Сообщение06.02.2014, 01:32 


06/02/14
9
Доброго времени суток.
Как новичок, столкнулся со следующей небольшой, но довольно неприятной для меня проблемой: поскольку в местном издательстве требуют, чтобы после номера главы или секции обязательно стояла точка, то я использовал команду
Код:
\renewcommand{\thechapter}{\arabic{chapter}.}
\renewcommand{\thesection}{\arabic{section}.}

А счётчик формул привязана к секциям:
Код:
\numberwithin{equation}{section}

Но теперь при нумерации формул между номером секции и непосредственно формулы ставится две точки. (2..1 вместо 2.1).
Делать нумерацию везде через \eqno не очень-то удобно.

Помимо этого почему-то вообще не работают переносы, хотя, как я понял из документации, они должны работать автоматически.
Прошу подсказать, в чём я ошибся.

 Профиль  
                  
 
 Re: Проблема с нумерацией формул
Сообщение06.02.2014, 13:28 
Аватара пользователя


11/09/08
150
Могилев
Переопределите формат номеров формул, рисунков и таблиц:
Код:
\renewcommand{\theequation}{\thesection.\arabic{equation}}
\renewcommand{\thefigure}{\thesection.\arabic{figure}}
\renewcommand{\thetable}{\thesection.\arabic{table}}

Another в сообщении #823243 писал(а):
Помимо этого почему-то вообще не работают переносы, хотя, как я понял из документации, они должны работать автоматически.
Прошу подсказать, в чём я ошибся.

Пакет babel подключен?

 Профиль  
                  
 
 Re: Проблема с нумерацией формул
Сообщение06.02.2014, 14:04 


06/02/14
9
yurik78 в сообщении #823360 писал(а):
Переопределите формат номеров формул, рисунков и таблиц:

Почему-то не сработало, всё так же проставляются две точки.
yurik78 в сообщении #823360 писал(а):
Пакет babel подключен?

Да, конечно.

 Профиль  
                  
 
 Re: Проблема с нумерацией формул
Сообщение06.02.2014, 15:11 


29/09/06
4552
Львовский, стр. 301 писал(а):
К сожалению, не так просто\raisebox{4pt}{${\color{white}.}\strut^2${\color{white}-}} заставить LATEX автоматически добавлять текст после номера, хотя такая потребность порой возникает (например, хочется, чтобы в заголовках разделов после номеров стояли точки, чего стандартное LATEX’овское оформление не предусматривает).

____________________________________________
\raisebox{4pt}{${\color{white}.}\strut^2$} Но возможно: это сделано, например, в пакете russcorr, использованном при подготовке данной книги. См. приложения Е и Ж.



Модератору: это всё же не "Проблема с нумерацией формул". Скорее, "Точка после номера раздела".

-- 06 фев 2014, 16:45:23 --

Хе-хе:

Код:
\newcommand{\Chapter}[2]{%
\renewcommand{\thechapter}{\arabic{chapter}.}
\chapter{#1}\label{#2}
\renewcommand{\thechapter}{\arabic{chapter}}
}

Вроде сработало...
Понятно, как?

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


30/01/06
72407
yurik78 в сообщении #823360 писал(а):
Переопределите формат номеров формул, рисунков и таблиц:
Код:
\renewcommand{\theequation}{\thesection.\arabic{equation}}
\renewcommand{\thefigure}{\thesection.\arabic{figure}}
\renewcommand{\thetable}{\thesection.\arabic{table}}

В вашем способе как раз надо писать \thesection без точки, потому что точка в него уже входит. Или так:

 Профиль  
                  
 
 Re: Проблема с нумерацией формул
Сообщение06.02.2014, 16:51 


06/02/14
9
Попробовал все предложенные варианты с точкой после \thesection и без неё — безрезультатно, к сожалению.

 Профиль  
                  
 
 Re: Проблема с нумерацией формул
Сообщение08.02.2014, 07:41 


31/07/13
51
Хабаровск
Another, попробуй так:

Код:
\documentclass{book}
\usepackage[cp1251]{inputenc}
\usepackage[T2A]{fontenc}
\usepackage[russian]{babel}
%\usepackage[math]{pscyr}
%\renewcommand{\rmdefault}{ftm}
\usepackage{array, hhline, multirow, amsmath}
\oddsidemargin=-15.4mm
\topmargin=-25.4mm
\textheight=260mm

\makeatletter
\renewcommand{\@makechapterhead}[1]%
{%
\vspace *{50\p@ }{\parindent \z@ \raggedright \normalfont%
\ifnum \c@secnumdepth >\m@ne\if@mainmatter \huge \bfseries \@chapapp \space \thechapter. \par \nobreak \vskip 20\p@ \fi \fi%
\interlinepenalty \@M \Huge \bfseries #1\par \nobreak \vskip 40\p@ }%
}
\renewcommand{\@seccntformat}[1]
{\csname the#1\endcsname.\hspace{0.5em}}

\makeatother

\begin{document}
\chapter{Первая}

\section{Основные обозначения}
\begin{equation}\label{eq1}
12345
\end{equation}

\section{Заключение}
\begin{equation}\label{eq2}
1
\end{equation}

\begin{equation}\label{eq3}
1
\end{equation}

\end{document}

 Профиль  
                  
 
 Re: Проблема с нумерацией формул
Сообщение11.02.2014, 21:09 


06/02/14
9
andrewkhv, да, так заработало, только теперь нет точек в нумерации оглавления.

 Профиль  
                  
 
 Re: Проблема с нумерацией формул
Сообщение12.02.2014, 09:48 


31/07/13
51
Хабаровск
Код:
\documentclass{book}
\usepackage[cp1251]{inputenc}
\usepackage[T2A]{fontenc}
\usepackage[russian]{babel}
\makeatletter
\def\@chapter[#1]#2%
{\ifnum \c@secnumdepth >\m@ne%
                       \if@mainmatter
                         \refstepcounter{chapter}%
                         \typeout{\@chapapp\space\thechapter.}%
                         \addcontentsline{toc}{chapter}%
                                   {\protect\numberline{\thechapter.}#1}%
                       \else
                         \addcontentsline{toc}{chapter}{#1}%
                       \fi
                    \else
                      \addcontentsline{toc}{chapter}{#1}%
                    \fi
                    \chaptermark{#1}%
                    \addtocontents{lof}{\protect\addvspace{10\p@}}%
                    \addtocontents{lot}{\protect\addvspace{10\p@}}%
                    \if@twocolumn
                      \@topnewpage[\@makechapterhead{#2}]%
                    \else
                      \@makechapterhead{#2}%
                      \@afterheading
                    \fi}

\def\@sect#1#2#3#4#5#6[#7]#8{%
  \ifnum #2>\c@secnumdepth
    \let\@svsec\@empty
  \else
    \refstepcounter{#1}%
    \protected@edef\@svsec{\@seccntformat{#1}\relax}%
  \fi
  \@tempskipa #5\relax
  \ifdim \@tempskipa>\z@
    \begingroup
      #6{%
        \@hangfrom{\hskip #3\relax\@svsec}%
          \interlinepenalty \@M #8\@@par}%
    \endgroup
    \csname #1mark\endcsname{#7}%
    \addcontentsline{toc}{#1}{%
      \ifnum #2>\c@secnumdepth \else
        \protect\numberline{\csname the#1\endcsname.}%
      \fi
      #7}%
  \else
    \def\@svsechd{%
      #6{\hskip #3\relax
      \@svsec #8}%
      \csname #1mark\endcsname{#7}%
      \addcontentsline{toc}{#1}{%
        \ifnum #2>\c@secnumdepth \else
          \protect\numberline{\csname the#1\endcsname.}%
        \fi
        #7}}%
  \fi
  \@xsect{#5}}
\renewcommand{\@makechapterhead}[1]%
{%
\vspace *{50\p@ }{\parindent \z@ \raggedright \normalfont%
\ifnum \c@secnumdepth >\m@ne\if@mainmatter \huge \bfseries \@chapapp \space \thechapter. \par \nobreak \vskip 20\p@ \fi \fi%
\interlinepenalty \@M \Huge \bfseries #1\par \nobreak \vskip 40\p@ }%
}
\renewcommand{\@seccntformat}[1]
{\csname the#1\endcsname.\hspace{0.5em}}
\makeatother

\begin{document}
\tableofcontents
\chapter{Линейные уравнения}

\section{Основные обозначения}
\begin{equation}\label{eq1}
12345
\end{equation}

\section{Заключение}
\begin{equation}\label{eq2}
2
\end{equation}

\begin{equation}\label{eq3}
3
\end{equation}
\chapter{Квадратные уравнения}
\begin{equation}\label{eq4}
4
\end{equation}
\end{document}

 Профиль  
                  
 
 Re: Проблема с нумерацией формул
Сообщение18.04.2014, 21:51 


06/02/14
9
Поднимаю старую тему. Теперь возник вот какой вопрос: можно ли в окружении \eqnarray сделать нумерацию формул не справа от них, а справа и чуть ниже самой формулы? А то выходит так, что сама формула заезжает на номер, а делать перенос нежелательно.

 Профиль  
                  
 
 Re: Проблема с нумерацией формул
Сообщение18.04.2014, 22:30 


29/09/06
4552
Никогда не видел, чтобы наезжало. А вот, действительно, наезжает:

\begin{eqnarray}
x&=&{\color{blue}1+2+3+44+555+6666+77777777777+888888888888888888+99+10000}
\end{eqnarray}

Окружение {eqnarray} не рекомендуется к использованию, объявлено устаревшим. Пробуйте другие, например:

\begin{align}
&x=1+2+3+44+555+6666+77777777777+888888888888888888+99+10000,\\
&y=\sqrt{1+2+3+44+555+6666+77777777777+888888888888888888+99}
\end{align}

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


30/01/06
72407
Есть даже гневная брошюрка Avoid eqnarray! (автор Lars Madsen). Хороший справочник по другим средствам форматирования. И Grätzer Math into LaTeX последний форзац.

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


31/01/14
11053
Hogtown
Another в сообщении #851487 писал(а):
Поднимаю старую тему. Теперь возник вот какой вопрос: можно ли в окружении \eqnarray сделать нумерацию формул не справа от них, а справа и чуть ниже самой формулы? А то выходит так, что сама формула заезжает на номер, а делать перенос нежелательно.


Как правильно отметил Алексей К.:

Не используйте eqnarray. Этот пакет устарел и buggy. См. нмапр. https://tug.org/pracjourn/2006-4/madsen/madsen.pdf (Л.Мадсен очень уважаем в TeX сообществе). Используйте align вместо.

Нумерация слева тривиальна: \usepackage[leqno]{amsmath} (или также в mathtools). Сдвигание вврех или вниз в "правильных" окружениях происходит автоматически. (При нумерации слева--вниз уходит сама формула)

Формулы лучше разбивать с помощью окружения multline (кроме очень редких исключений)

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


30/01/06
72407
Кстати, я искал эту ссылку, а на хоумпейдже Мадсена лежит более свежая версия, за 2012 год
http://tug.org/TUGboat/tb33-1/tb103madsen.pdf

Главное отличие в том, что отформатирована в две колонки. От этого, мне кажется, наглядность примеров страдает.

Red_Herring в сообщении #851522 писал(а):
Формулы лучше разбивать с помощью окружения multline (кроме очень редких исключений)

Смотря какие формулы. multline предоставляет очень мало контроля за размещением формулы, и часто лучше alignedat, split и т. п.

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


31/01/14
11053
Hogtown
Munin в сообщении #851519 писал(а):
Есть даже гневная брошюрка Avoid eqnarray! (автор Lars Madsen). Хороший справочник по другим средствам форматирования. И Grätzer Math into LaTeX последний форзац.


У него есть 2 книжки по ТеХ

ftp://ftp.tex.ac.uk/tex-archive/info/mil/mil.pdf

но я рекомендую вторую (More Math. into LaTeX)

http://server.math.umanitoba.ca/homepages/gratzer/pdfs/short_course.pdf

-- 18.04.2014, 15:37 --

Munin в сообщении #851525"
[quote="Red_Herring в сообщении #851522
писал(а):
Формулы лучше разбивать с помощью окружения multline (кроме очень редких исключений)

Смотря какие формулы. multline предоставляет очень мало контроля за размещением формулы, и часто лучше alignedat, split и т. п.[/quote]

Есть команды \shoveright и \shoveleft, и в некоторых случаях я использую aligned внутри multline:

\begin{multline}
y=\\
{\begin{aligned}
&\sqrt{88888888888888888888}\qquad &&\text{если } x>88888888888888888888\\
&\sqrt{x}\qquad &&\text{если } 0<x<88888888888888888888
\end{aligned}}
\end{multline}


В случае же alignat следует добавлять в соответствующих местах \notag чтобы эта часть формулы не нумеровалась.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 25 ]  На страницу 1, 2  След.

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



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

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


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

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