Латексная новая этикетка
У меня есть следующее newenvironment
команда:
\newcounter{algoctr}[chapter] \setcounter{algoctr}{0}
\newenvironment{algo}[1] {
\refstepcounter{algoctr}\vspace{0.2cm}\noindent{\bf Algorithm
\arabic{chapter}.\arabic{algoctr}: #1}}{\par}
и я использую это таким образом
\begin{algo}{blabbing a blah}
blah
blah
\label{eq:blabbing}
\end{algo}
Однако каждый раз, когда я ссылаюсь на метку (\ref{eq:blabbing}), я получаю "1" вместо "1.1".
Может ли кто-нибудь любезно сообщить мне, что я делаю не так?
Спасибо
2 ответа
Решение
Вы почти у цели, вам просто нужно переопределить \thealgoctr
а также что-то вроде:
\renewcommand\thealgoctr{\arabic{chapter}.\arabic{algoctr}}
(Не проверено.) А затем используйте \thealgoctr
в вашей среде, а не явно ссылаясь на счетчики.
Я не знаю о вашем счетчике, но я могу порекомендовать другую возможность, в которой это работает:
\usepackage{amsthm}
\newtheoremstyle{algostyle}
{0.2cm}{0cm}% margin top and bottom
{\rmfamily}% text layout
{0cm}% indention of header
{\bfseries}{ }% header font and text after
{0cm}% space after header
{\thmname{#1}\thmnumber{ #2}:\thmnote{ #3}}% header
\theoremstyle{algostyle}
\newtheorem{algo}{Algorithm}[chapter]
\begin{algo}[blabbing a blah]% brackets instead of curly braces for note
blah
blah
\label{eq:blabbing}
\end{algo}