2014 dxdy logo

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

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




 
 Изменение команд в LaTeX
Сообщение05.02.2012, 20:33 
Помогите плиз, нада изменить команду \section{} так чтобы в заголовке печатались не цифры: 1. "заголовок", 2. "заголовок", ... , а Глава 1. "заголовок", Глава 2. "заголовок", ... Так как работаю в классе article

 
 
 
 Re: Изменение команд в LaTeX
Сообщение06.02.2012, 13:10 
Аватара пользователя
Как-то так:
Используется синтаксис LaTeX
\def\thesection{Глава \arabic{section}}

 
 
 
 Re: Изменение команд в LaTeX
Сообщение06.02.2012, 18:49 
Помогло, но не полностью!
Теперь у меня "Глава" сливается с названием главы!Т.е. название главы налазиет на слово Глава
Причом этот косяк, только в оглавлении виден
Как быть дальше??:)

 
 
 
 Re: Изменение команд в LaTeX
Сообщение28.02.2012, 23:30 
Аватара пользователя
Я бы попробовал переопределить команду:
Код:
\renewcommand{\thesection}{Глава\ \arabic{section}}

Код:
\renewcommand{то что переопределяем}{взамен переопределяемого объекта}

 
 
 
 Re: Изменение команд в LaTeX
Сообщение29.02.2012, 18:35 
aposto48 в сообщении #535801 писал(а):
Помогло, но не полностью!
Теперь у меня "Глава" сливается с названием главы!Т.е. название главы налазиет на слово Глава
Причом этот косяк, только в оглавлении виден
Как быть дальше??:)

Чтобы не налезало в оглавлении, можно попробовать следующий хак:
1. Влезть в article.cls и скопировать оттуда команду \l@section к себе.
2. Добавить в неё одну строку:
Код:
\usepackage{calc} % для \widthof
\renewcommand{\thesection}{Глава\ \arabic{section}}
\makeatletter
\renewcommand*\l@section[2]{%
  \ifnum \c@tocdepth >\z@
    \addpenalty\@secpenalty
    \addvspace{1.0em \@plus\p@}%
    \setlength\@tempdima{1.5em}%
    \addtolength\@tempdima{\widthof{Глава\ }}%  << вот эту строку добавить
    \begingroup
      \parindent \z@ \rightskip \@pnumwidth
      \parfillskip -\@pnumwidth
      \leavevmode \bfseries
      \advance\leftskip\@tempdima
      \hskip -\leftskip
      #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par
    \endgroup
  \fi}
\makeatother
(соответственно: \renewcommand* вместо \newcommand*, так как команда уже есть в article.cls;
\makeatletter...\makeatother — чтоб компилятор на собаку не ругался).

P.S.
А почему именно article?

 
 
 [ Сообщений: 5 ] 


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