设置嵌套在章节号下的新计数器

设置嵌套在章节号下的新计数器

在我的论文中,我使用了一个sty文件内的黑客技术,在索引中的条目中添加了边注,如下所示:

\newcommand{\thenota}{\thechapter.{\it \alph{notas}}.}
\newcommand{\nota}[1]{\stepcounter{notas}\marginpar{%
    \scriptsize \thenota\ #1%
    \index{%
        Nota de margem!{\thenota}%
        }%
    }%
}

\newcounter{notas}[chapter]当我添加以下内容时,这个工作正常\begin{document}:条目在索引中按预期显示为“Nota de margem 4.a。”。

过了一会儿,我决定添加另一类侧注,其定义如下:

\newcommand{\themudanca}{\thechapter.{\it \alph{mudanca}}.}
\newcommand{\mudanca}[1]{\stepcounter{mudanca}\marginpar{%
    \scriptsize \themudanca\ #1%
    \index{%
        Alteração no texto!{\themudanca}%
        }%
    }%
}

但是当我添加时\newcounter{mudanca}[chapter],我得到的输出是“Alteração no texto 1”,并且我得到多个页面条目,\mudanca{}每个章节中的每个第一页一个。

MWE 就像

\documentclass{book}
\usepackage[utf8x]{inputenc}

\newcommand{\thenota}{\thechapter.{\it \alph{notas}}.}
\newcommand{\nota}[1]{\stepcounter{notas}\marginpar{%
    \scriptsize \thenota\ #1%
    \index{%
        Nota de margem!{\thenota}%
        }%
    }%
}
\newcommand{\themudanca}{\thechapter.{\it \alph{mudanca}}.}
\newcommand{\mudanca}[1]{\stepcounter{mudanca}\marginpar{%
    \scriptsize \themudanca\ #1%
    \index{%
        Alteração no texto!{\themudanca}%
        }%
    }%
}

\begin{document}
\newcounter{notas}[chapter]
\newcounter{mudanca}[chapter]


\chapter{First}
\nota{aaa}
\mudanca{bbb}
\nota{aaa}
\mudanca{bbb}
\chapter{Second}
\nota{aaa}
\mudanca{bbb}
\end{document}

为什么它们的代码完全相同,但行为却不同?清除aux文件没有解决。

提前致谢。

答案1

您必须首先定义计数器,然后使用\renewcommand{\the<countername>}而不是\newcommand{\the<countername>}重新定义计数器打印其值的方式:

\documentclass{report}

\newcounter{nota}[chapter]
\newcounter{mudanca}[chapter]

\renewcommand{\thenota}{\thechapter.{\it \alph{nota}}.}
\newcommand{\nota}[1]{\stepcounter{nota}\marginpar{%
    \scriptsize \thenota\ #1%
    \index{%
        Nota de margem!{\thenota}%
        }%
    }%
}

\renewcommand{\themudanca}{\thechapter.{\it \alph{mudanca}}.}
\newcommand{\mudanca}[1]{\stepcounter{mudanca}\marginpar{%
    \scriptsize \themudanca\ #1%
    \index{%
        Alteração no texto!{\themudanca}%
        }%
    }%
}

\begin{document}
\chapter{First}
\nota{aaa}
\mudanca{bbb}
\nota{aaa}
\mudanca{bbb}
\chapter{Second}
\nota{aaa}
\mudanca{bbb}
\end{document}

您的代码中的问题在于您定义了命令\themudanca然后mudanca您定义覆盖命令的计数器,\themudanca并赋予其将计数器数字打印为阿拉伯数字的默认值。

在第一种情况下,这种情况不会发生,因为您调用了计数器notas,而您在开始时定义的命令是\thenota而不是thenotas

我希望这很清楚...

相关内容