我正在编写软件文档。在文档中,我讨论了可能在下一版本软件中实现的新想法以及错误问题。我认为应该提及与新想法和错误问题相关的项目,\footnote
以使正文更简洁,并且它们出现在底部。
但是,有一天我必须更新文档,所以如果我必须浏览所有页面来编辑脚注以反映软件中所做的更改(或删除与已修复错误有关的不相关脚注),那将是乏味的。
所以我的想法是收集所有脚注并将它们及其位置(页码)打印在某个位置(可能是在附录中)。
有这样的包吗?如果没有,如何以最简单的方式实现?
答案1
如果您永远不需要可选参数\footnote
,这里可以修改endnotes
操作以执行延迟写入而不是立即写入,这样就可以正确计算页码。
\documentclass{article}
\usepackage{endnotes}
\makeatletter
\renewcommand\endnote{%
\@ifnextchar[\@xendnote{\stepcounter{endnote}\protected@xdef\@theenmark{\theendnote}%
%\@endnotemark % removed
\@endnotetext}%
}
\renewcommand\@endnotetext[1]{%
\if@enotesopen\else\@openenotes\fi
\begingroup\edef\x{\endgroup\write\@enotes{\noexpand\@doanenote{\@theenmark}}}\x
\begingroup
\def\next{#1}%
\newlinechar='40
\edef\x{\endgroup\write\@enotes{\meaning\next\space-- Page \noexpand\thepage}}\x
\begingroup\edef\x{\endgroup\write\@enotes{\@endanenote}}\x
}
\let\endnotes@theendnotes\theendnotes
\def\theendnotes{\clearpage\endnotes@theendnotes}
\makeatother
\newcommand\Footnote[1]{\footnote{#1}\endnote{#1}}
%\let\Footnote\footnote % for the final version
\begin{document}
abc\Footnote{abc}
def\Footnote{def}
\newpage
ghi\Footnote{ghi}
\theendnotes
\end{document}
当您不再需要尾注时,只需切换最后的注释并删除该\theendnotes
命令。
答案2
这是一个使用todonotes
一些技巧的解决方案:
\documentclass{article}
\usepackage[bordercolor=white,color=white]{todonotes}
\newcommand{\future}[1]{%
\footnote{Future: #1}
\todo[noline,noinline,caption={#1}]{}%
}
\begin{document}
Lala lala lala lala lala
lala lala\future{We might do this}
lala lala lala lala lala
lala lala lala lala lala
lala lala lala lala lala.
Lala lala lala lala lala
lala lala\future{or we might do that}
\listoftodos
\end{document}
这提供了一个\future{}
宏,可将您的文本设置在脚注和待办事项列表中,但在文本正文中,它会创建一个边缘的、全白的、不可见的待办事项标志。
当然,您可以通过多种方式进行调整,例如,在边缘放置一个小的彩色斑点来吸引注意力。
答案3
你可以使用尾注收集附录中的脚注。
但为了你的目的我建议待办事项。您还可以将错误修复和想法分开。
如果您已经有脚注,则可以用 todo 替换脚注:
\documentclass[english,11pt]{article} % use larger type; default would be 10pt
\usepackage[utf8]{inputenc}
\usepackage{todonotes}
\usepackage{babel,blindtext}
\let\footnote=\todo
\begin{document}
\listoftodos %All 'footnotes' with page.
\section{Start of document}
\blindtext\footnote{remark A}
\Blindtext\footnote{remark B}
\end{document}
如果您仍在编写文档,我建议定义新的宏。
这里有一个例子,说明如何定义\bug
和\idea
:
\documentclass[english,11pt]{article} % use larger type; default would be 10pt
\usepackage[utf8]{inputenc}
\usepackage{todonotes}
\usepackage{babel,blindtext}
\newcommand{\bug}[2][]{\todo[color=red,#1]{Bug: #2}}
\newcommand{\idea}[2][]{\todo[color=green,#1]{Idea: #2}}
\begin{document}
\listoftodos
\section{Start of document}
\blindtext\bug{remark A}
\Blindtext\idea{remark B}
\end{document}
您还可以使用整我-package。还有以下选项footnote
:在脚注中显示注释。因此,您可以在类似脚注和 fixme 的列表之间切换。
包含所有“修复程序”和脚注列表的示例。错误也在页边空白处标记。(请参阅软件包的选项和\fxfatal
):
\documentclass[english,11pt]{article}
\usepackage[draft,footnote,nomargin]{fixme}
\usepackage{babel,blindtext}
\newcommand{\bug}[2][]{\fxfatal[margin,#1]{Bug: #2}}
\newcommand{\idea}[2][]{\fxfatal[#1]{Idea: #2}}
\begin{document}
\listoffixmes
\section{Start of document}
\blindtext\bug{remark A}
\Blindtext\idea{remark B}
\end{document}