在我的论文中,我使用了一个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
。
我希望这很清楚...