如何在不修改文件的情况下告诉 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}
}
输出: