您可以配置 bibtex 以忽略某些 \cite 命令吗?

您可以配置 bibtex 以忽略某些 \cite 命令吗?

当我写作时,我经常会意识到我需要为我写的东西添加引文,但我没有。我喜欢给自己留点东西来提醒自己,一旦将其添加到 .bib 文件中,我需要添加哪个参考资料。就像这样:

This important thing\cite{Author's 2010 paper about stuff} is important 

我在 vim 中编辑我的 tex 源代码,并且定义了一个 vimscript 来编译我的文档,但是无效\cite{}命令处理得不是很好。因此,我的 vimscript 调用一个 bash 脚本,该脚本复制我的 tex 源代码,并将所有此类命令注释掉。我使用与我的引用密钥格式匹配的正则表达式找到“无效”引用。当我的大学要求我帮助他们为自己设置类似的东西时,如果他们没有明确定义的引用密钥格式,事情就会变得非常混乱。

我想重新定义\cite{}命令的解析方式,以忽略以特定字符开头的命令*,比如 ,尽管如果一个选择比另一个更好,那么特定字符并不重要。所以

Words in the sentence\cite{author:1990-0} more words. 

可以正确处理,但说

Words in the sentence\cite{*not a real key just a note} more words.

将被忽略。这可能吗?我如何才能发现?

我还希望在文本中出现一个标记来提醒我需要在那里添加一些内容,但这就像是一种奖励,而不是我需要的主要目标。

答案1

如果您需要可选参数,\cite那么您必须扩展代码:

\documentclass{article}
\let\myCite\cite
\makeatletter
\def\cite#1{\cite@I#1!!}
\def\cite@I{\@ifnextchar*\cite@II\cite@III}
\def\cite@II#1!!{}
\def\cite@III#1!!{\myCite{#1}}
\makeatother

\begin{document}

foo\cite{article-minimal} and bar\cite{*article-full}

foo\cite{*article-minimal} and bar\cite{article-full}

foo\cite{article-crossref} and bar\cite{*whole-journal}

foo\cite{*article-crossref} and bar\cite{whole-journal}

\bibliographystyle{plain}
\bibliography{xampl}
\end{document}

在此处输入图片描述

相关内容