如何在不修改文件的情況下告訴 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
由於沒有人願意以正確的方式做事,這裡有一個技巧:
- 這只適用於不包含以小寫字母開頭的單字的作者
- 附加
\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}
}
輸出: