我正在使用unsrt.bst
bib 样式并希望对其进行修改,以便在输出中它以条目类型开头:
[1] 書籍:其他等......
[2] 文章:AN其他等等....
但是.bst
无论我在那里放了“BOOK: ”条目,我都会破坏文件。有什么想法吗?我只使用一小部分引用类型,因此可以轻松地逐个修改,.bst
而不是以一般方式修改。如果我知道如何做的话。
答案1
对于unsrt.bst
以下食谱来说有效。
unsrt.bst
在您的机器上找到。您可以通过kpsewhich unsrt.bst
在命令行/终端中输入来执行此操作。或者,从 CTAN 获取该文件的副本http://mirrors.ctan.org/biblio/bibtex/base/unsrt.bst将文件复制到 TeX 可以找到的位置。文档目录就可以了。另请参阅https://texfaq.org/FAQ-inst-wlcf
将文件重命名为
unsrt-typed.bst
(许可证unsrt.bst
要求您在修改文件时更改名称)查找
FUNCTION {output.bibitem}
(ll. 85-93) 并将完整函数定义替换为FUNCTION {output.bibitem} { newline$ "\bibitem{" write$ cite$ write$ "}" write$ newline$ type$ "u" change.case$ ":" * write$ newline$ "" before.all 'output.state := }
也就是说,添加两行
type$ "u" change.case$ ":" * write$ newline$
请注意,这
"u" change.case$
给了我们全部大写,如果你想要全部小写,你只需说type$ ":" * write$
如果你想应用 LaTeX 宏,你可以说
"\textbf{" type$ * "}:" * write$
在文件顶部添加一条包含您的姓名、当前日期和更改的简短描述的评论。
在您的文档中使用
\bibliographystyle{unsrt-typed}
而不是。\bibliographystyle{unsrt}
作为步骤 1 至 5 的替代方案,您可以在以下位置获取该文件的修补版本https://gist.github.com/moewew/e0c609d7162524a9f82d74cff14bdc61
然后
\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@article{sigfridsson,
author = {Sigfridsson, Emma and Ryde, Ulf},
title = {Comparison of methods for deriving atomic charges from the
electrostatic potential and moments},
journal = {Journal of Computational Chemistry},
year = 1998,
volume = 19,
number = 4,
pages = {377-395},
doi = {10.1002/(SICI)1096-987X(199803)19:4<377::AID-JCC1>3.0.CO;2-P},
}
@book{nussbaum,
author = {Nussbaum, Martha},
title = {Aristotle's \enquote{De Motu Animalium}},
year = 1978,
publisher = {Princeton University Press},
address = {Princeton},
}
@phdthesis{geer,
author = {de Geer, Ingrid},
title = {Earl, Saint, Bishop, Skald~-- and Music:
The {Orkney Earldom} of the Twelfth Century.
{A} Musicological Study},
school = {Uppsala Universitet},
year = 1985,
address = {Uppsala},
}
\end{filecontents}
\begin{document}
\cite{sigfridsson,nussbaum,geer}
\bibliographystyle{unsrt-typed}
\bibliography{\jobname}
\end{document}
生产
一个更简单的方法是添加
"<TYPE>: " write$
output.bibitem
在每种类型之后FUNCTION
。
文章函数将会显示
FUNCTION {article}
{ output.bibitem
"ARTICLE: " write$
format.authors "author" output.check
new.block
format.title "title" output.check
new.block
crossref missing$
{ journal emphasize "journal" output.check
format.vol.num.pages output
format.date "year" output.check
}
{ format.article.crossref output.nonnull
format.pages output
}
if$
new.block
note output
fin.entry
}
但显然这需要做更多工作。参见https://gist.github.com/moewew/e7e53020544f16d3db619ca8b33f1896。从好的方面来说,您在输出时更加灵活,因为您不必依赖于type$
,它只会为您提供正式的 BibTeX 条目类型。(article
有人可能想说“期刊文章”等。)
当然,biblatex
这些事情不需要操作.bst
文件:如何标记书目项目、书籍和文章等?