2014 dxdy logo

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

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




 
 Автоматическая нумерация своих команд
Сообщение22.11.2015, 21:08 
Доброго времени суток!

Возникла проблема с нумерацией алгоритмов.

Сначала создаю свой счетчик и новую команду для оформления алгоритмов в документе.
Код:
\newcounter{algs}
\setcounter{algs}{0}
\newcommand{\alg}{\addtocounter{algs}{1}%
\textbf{Алгоритм \arabic{algs}.} }


Далее в тексте имеется такая структура:
Код:
\chapter{Названиме главы}
\section{Подзаголовок}
\textbf{\alg{\label{alg1}} Название алгоритма.}


Когда в документе встречается:
Код:
Алгоритм \ref{alg1}

выводится номер подзаголовка (section), а не номер алгоритма.

Подскажите, как пронумеровать алгоритм?

 
 
 
 Re: Автоматическая нумерация своих команд
Сообщение22.11.2015, 22:15 
Аватара пользователя
deniskat в сообщении #1075772 писал(а):
Подскажите, как пронумеровать алгоритм?


deniskat в сообщении #1075772 писал(а):
Используется синтаксис LaTeX
\newcommand{\alg}{\addtocounter{algs}{1}%
\textbf{Алгоритм \arabic{algs}.} }


Никак. Так введённый "алгоритм" не нумеруется, потому что это не environment. А как правильно? Самое простое в преамбуле

Используется синтаксис LaTeX
\usepackage{amsthm}
\theoremstyle{definition}
\newtheorem{algorithm}{Алгоритм}
 

а затем

Используется синтаксис LaTeX
\begin{algorithm}\label{alg-1}
Дёрнуть козу за хвост и отскочить
\end{algorithm}
 

 
 
 
 Re: Автоматическая нумерация своих команд
Сообщение22.11.2015, 22:21 
Чтобы увеличить счетчик на 1, можно использовать команду \stepcounter{counter}. Она также обнуляет все "подчиненные" счетчики. Подчиненный счетчик -- этот тот, который объявлен командой \newcounter{subordinate}[counter].

Чтобы делать то же, но еще и объявлять ссылку, на которую реагирует команда \label, есть команда \refstepcounter{counter}.

Но лучше действительно воспользоваться каким-нибудь пакетом для оформления алгоритмов, например, listings.

 
 
 
 Re: Автоматическая нумерация своих команд
Сообщение22.11.2015, 23:06 
И, на всякий случай, пример применения разных листинговых вариантов:
http://github.com/AndreyAkinshin/Russian-Phd-LaTeX-Dissertation-Template/blob/master/Dissertation/appendix.tex

 
 
 
 Re: Автоматическая нумерация своих команд
Сообщение22.11.2015, 23:56 
Огромное всем спасибо за помощь! Заработало :D
За подсказку с листингами - отдельное спасибо. Очень полезная вещь для оформления кода :D

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


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