我有以下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”。
有人可以让我知道我做错了吗?
由于
答案 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}