我有以下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“。
有人能告诉我我做错了什么吗?
谢谢
发布于 2009-09-29 00:17:11
你已经差不多了,你只需要重新定义\thealgoctr,就像这样:
\renewcommand\thealgoctr{\arabic{chapter}.\arabic{algoctr}}(未经测试。)然后在您的环境中使用\thealgoctr,而不是显式地引用计数器。
发布于 2009-09-29 03:35:40
我不知道你的计数器如何,但我可以推荐另一种可行的方法:
\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}https://stackoverflow.com/questions/1488534
复制相似问题