自定义 bst 书籍条目无编辑

自定义 bst 书籍条目无编辑

我创建了一个自定义 .bst 文件,但它不能正确显示编辑器。

我当前的书籍 .bst 条目如下:

FUNCTION {book}
{ output.bibitem
  author empty$
    { format.editors "author and editor" output.check
      editor format.key output
    }
    { format.authors output.nonnull
      crossref missing$
        { "author and editor" editor either.or.check }
        'skip$
      if$
    }
  if$
  format.date "year" output.check
  date.block
  format.btitle "title" output.check
  crossref missing$
    { format.bvolume output
      new.block
      format.number.series output
      format.edition output
      new.sentence
      format.publisher.address output
    }
    {
      new.block
      format.book.crossref output.nonnull
    }
  if$
  format.isbn output
  new.block
  format.note output
  fin.entry
  write.url
}

我收到的以下号码布参赛作品是:

@Book{brink2016real,
  title         = {Real-world machine learning},
  publisher     = {Manning Publications Company},
  year          = {2016},
  author        = {Brink, Henrik and Richards, Joseph and Fetherolf, Mark},
  editor        = {Kline, Susanna and Scherer, Al and Booth, Olivia and Harlovic, Ozren},
  address       = {Greenwich, USA},
  __markedentry = {[Hp i7:1]},
  keywords      = {rank5},
}

在我的参考文献中,它根本不显示编辑器。为什么会发生这种情况?

Brink, H.、Richards, J. 和 Fetherolf, M. 2016 年。现实世界的机器 学习. 格林威治,美国:曼宁出版公司。

这可能是一个 MWP:

\documentclass[11pt]{article} 
\pagestyle{plain}
\usepackage{url}
\usepackage{hyperref}
\usepackage[longnamesfirst,semicolon]{usbib}
\renewcommand{\bibname}{Reference List}
\bibliographystyle{CUSTOM.bst}
\begin{document}
\section*{CUSTOM}
In this section we reference the books \citet{brink2016real}.


\bibliography{Thesisbib.bib}

\end{document}

随着编辑器的显示,我希望它们显示如下:

Brink, H.、Richards, J. 和 Fetherolf, M. 2016 年。现实世界的机器 学习. Horn, K. 和 Manning, F. (eds). 格林威治,美国:Manning Publications Company。

答案1

正如所提到的马塞尔·克鲁格在目前的评论中,您的样式只能打印authoreditor字段,其中authors 是首选。

我们可以稍微修改一下文件,这样editor如果字段存在,s 就会打印在 title 后面author。请注意,我还移动了一些定义,因为它们在用于某些会导致错误的情况之前没有定义。必要的 diff 是

--- CUSTOM-orig.bst 2018-08-23 14:50:16.153874000 +0200
+++ CUSTOM.bst  2018-08-23 14:53:31.858917200 +0200
@@ -1,5 +1,5 @@
 %%
-%% This is file `ussagus.bst',
+%% This is file `CUSTOM.bst',
 %% generated with the docstrip utility.
 %%
 %% The original source files were:
@@ -79,7 +79,7 @@
     url
     volume
     year
-   doi
+    doi
   }
   {}
   { label extra.label sort.label short.list }
@@ -130,27 +130,6 @@
   newline$
 }

-FUNCTION {write.doi}
-{ doi empty$
-    { "" }
-   { new.block "doi:" doi * "" * }
-  if$ 
-}
-
-FUNCTION {write.dois}
-{ doi empty$ 'skip$
-    { swap$ empty$
-        {pop$ doi}
-        {
-          new.block ". doi:" doi * "" * 
-          %swap$
-          n.dashify
-          *
-        }
-      if$
-    }
-  if$
-}

 FUNCTION {new.block}
 { output.state before.all =
@@ -1101,6 +1080,29 @@
 { organization "organization" bibinfo.check format.org.or.pub
 }

+FUNCTION {write.doi}
+{ doi empty$
+    { "" }
+    { new.block "doi:" doi * "" * }
+  if$ 
+}
+
+FUNCTION {write.dois}
+{ doi empty$ 'skip$
+    { swap$ empty$
+        {pop$ doi}
+        {
+          new.block ". doi:" doi * "" * 
+          %swap$
+          n.dashify
+          *
+        }
+      if$
+    }
+  if$
+}
+
+
 FUNCTION {article}
 { output.bibitem
   format.authors "author" output.check
@@ -1133,12 +1135,7 @@
     { format.editors "author and editor" output.check
       editor format.key output
     }
-    { format.authors output.nonnull
-      crossref missing$
-        { "author and editor" editor either.or.check }
-        'skip$
-      if$
-    }
+    { format.authors output.nonnull }
   if$
   format.date "year" output.check
   date.block
@@ -1146,6 +1143,11 @@
   crossref missing$
     { format.bvolume output
       new.block
+      author empty$
+        'skip$
+        { format.editors output }
+      if$
+      new.block
       format.number.series output
       format.edition output
       new.sentence
@@ -1266,15 +1268,13 @@
         { format.organization.address output }
         { organization "organization" bibinfo.check output
           format.publisher.address output
-         format.proceeds.pages output  
-         write.dois output
+          format.proceeds.pages output  
+          write.dois output
         }
-       
       if$
       format.isbn output
       format.issn output
     }
-   
     { format.incoll.inproc.crossref output.nonnull
       format.proceeds.pages output
     }

您可以在以下位置找到修改后的版本以及“更改历史记录”https://gist.github.com/moewew/cb8da22cda4fb12d38572130cf46ce9d

随着新的CUSTOM.bstMWE

\documentclass[11pt]{article}
\usepackage[longnamesfirst,semicolon]{usbib}
\usepackage{hyperref}
\renewcommand{\bibname}{Reference List}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@Book{brink2016real,
  title         = {Real-world machine learning},
  publisher     = {Manning Publications Company},
  year          = {2016},
  author        = {Brink, Henrik and Richards, Joseph and Fetherolf, Mark},
  editor        = {Kline, Susanna and Scherer, Al and Booth, Olivia and Harlovic, Ozren},
  address       = {Greenwich, USA},
}
\end{filecontents}

\begin{document}
In this section we reference the books \citet{brink2016real}.

\bibliographystyle{CUSTOM}
\bibliography{\jobname}
\end{document}

给出

Brink, H.、Richards, J. 和 Fetherolf, M. 2016 年。现实世界的机器学习. Kline, S.、Scherer, A.、Booth, O. 和 Harlovic, O. (eds.)。格林威治,美国:Manning Publications Company。

请注意,在这个特定案例中,我认为不需要显示编辑。编辑没有列在书的封面或标题页上。他们只能在标题页的背面以及参与出版该书的其他人员中找到。

通常,@book只有对作品有重大贡献的条目编辑者才会被列入(例如古代作品的编辑者或文集的编纂者)。 seditor中的 s@collection@incollections 中的 s 不同,他们通常是必需的,因为他们是(相应)的主要创建者@collection

相关内容