如何在不修改 .bst 文件或使用 BibLaTeX 的情况下指定参考书目字母键

如何在不修改 .bst 文件或使用 BibLaTeX 的情况下指定参考书目字母键

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

因为没人愿意以正确的方式做事,所以这里有一个窍门:

  1. 这仅适用于不包含以小写字母开头的单词的作者
  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}

这将导致 [StO17]: 没有人 910。图片证明: bipkey 破解

重要的):如果在和之间加一个空格\Bibkeyhack,结果将如下所示:

丑陋的 bikey 黑客


完整的 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}
}

输出:

更好的围兜钥匙

相关内容