当我写作时,我经常会意识到我需要为我写的东西添加引文,但我没有。我喜欢给自己留点东西来提醒自己,一旦将其添加到 .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}