![如何在不修改 .bst 文件或使用 BibLaTeX 的情况下指定参考书目字母键](https://linux22.com/image/357821/%E5%A6%82%E4%BD%95%E5%9C%A8%E4%B8%8D%E4%BF%AE%E6%94%B9%20.bst%20%E6%96%87%E4%BB%B6%E6%88%96%E4%BD%BF%E7%94%A8%20BibLaTeX%20%E7%9A%84%E6%83%85%E5%86%B5%E4%B8%8B%E6%8C%87%E5%AE%9A%E5%8F%82%E8%80%83%E4%B9%A6%E7%9B%AE%E5%AD%97%E6%AF%8D%E9%94%AE.png)
如何在不修改文件的情况下告诉 LaTeX 哪个字母键给出参考书目条目.bst
?
例如:我想要一个带有
author = {no one 910 (StackOverflow User 118593)}
显示为 [StO17],而不是 [noSU17]。
工作 tex 文件:
\documentclass{article}
\begin{document}
Hereby I cite \cite{myself}.
\bibliographystyle{alpha}
\bibliography{bibliography}
\end{document}
书目.bib:
@misc{myself,
author = {no one 910 (StackOverflow User 118593)},
title = {{StackOverflow Answer}},
howpublished = "https://stackoverflow.com",
year = {2017}
}
输出:
答案1
这会非常容易biblatex
:
\documentclass{article}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@misc{myself,
shorthand = {StO17},
author = {no one 910 (StackOverflow User 118593)},
title = {{StackOverflow Answer}},
howpublished = "https://stackoverflow.com",
year = {2017}
}
\end{filecontents*}
\usepackage[style=alphabetic]{biblatex}
\addbibresource{\jobname.bib}
\begin{document}
Hereby I cite \cite{myself}.
\printbibliography
\end{document}
答案2
因为没人愿意以正确的方式做事,所以这里有一个窍门:
- 这仅适用于不包含以小写字母开头的单词的作者
- 附加
\Bibkeyhack StO
到您的作者,以 StO 为关键词。
命令定义:(就这样!)
\newcommand{\Bibkeyhack}[3]{}
如果您想要不同长度的密钥,请将 3 替换为您的长度。
对于 1.,有一个解决方法:
\newcommand{\SmallHack}[1]{\lowercase{#1}}
请注意,两个命令都以大写字母开头,因此不违反规则 1。
工作示例:
author = {\SmallHack No \SmallHack One 910 (StackOverflow User 118593)\Bibkeyhack StO}
重要的)
:如果在和之间加一个空格\Bibkeyhack
,结果将如下所示:
完整的 tex 文件:
\documentclass{article}
\newcommand{\SmallHack}[1]{\lowercase{#1}}
\newcommand{\Bibkeyhack}[3]{}
\begin{document}
Hereby I cite \cite{myself}.
\bibliographystyle{alpha}
\bibliography{bibliography}
\end{document}
书目.bib:
@misc{myself,
author = {\SmallHack No \SmallHack One 910 (StackOverflow User 118593)\Bibkeyhack StO},
title = {{StackOverflow Answer}},
howpublished = "https://stackoverflow.com",
year = {2017}
}
输出: