如何在不修改 .bst 檔案或使用 BibLaTeX 的情況下指定參考書目 alpha 鍵

如何在不修改 .bst 檔案或使用 BibLaTeX 的情況下指定參考書目 alpha 鍵

如何在不修改文件的情況下告訴 LaTeX 哪個字母鍵提供參考書目條目.bst

範例:我想要一個條目

author = {no one 910 (StackOverflow User 118593)}

顯示為 [StO17],而非 [noSU17]。


工作文本檔:

\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。 比基駭客

重要的):如果在和之間添加空格\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}
}

輸出:

更好的號碼布鑰匙

相關內容