乳胶新环境标签

时间:2009-09-28 18:14:23

标签: latex newenvironment

我有以下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 个答案:

答案 0 :(得分:3)

你几乎就在那里,你只需要重新定义\thealgoctr,例如:

\renewcommand\thealgoctr{\arabic{chapter}.\arabic{algoctr}}

(未测试)。 然后在您的环境中使用\thealgoctr,而不是明确引用计数器。

答案 1 :(得分:1)

我不知道你的计数器,但我可以推荐另一种可行的方法:

\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}