apalike2 - 多個作者

apalike2 - 多個作者

我正在使用 apalike2 的修改版本。

目前,輸出如下圖所示:

約翰·R·奧尼爾、布魯斯·魯塞特和邁克爾·L·貝爾鮑姆 (2003),和平事業:民主、相互依存和國際組織,1885-1992 年,國際研究季刊,47(1),371-393。

但是,我想要這樣的:

約翰·R·奧尼爾(Oneal)、布魯斯·拉塞特(Bruce Russett) 和邁克爾·L·貝爾鮑姆(Michael L. Berbaum) (2003),和平事業:民主、相互依存和國際組織,1885-1992年,國際研究季刊,47(1),371-393。

在這種特殊情況下,如何更改第二和第三(等)作者的 vv/ll/jj/ff 順序?

這是 format.names 函數:

FUNCTION {format.names}
{ 's :=
  #1 'nameptr :=
  s num.names$ 'numnames :=
  numnames 'namesleft :=
    { namesleft #0 > }
    { s nameptr "{vv~}{ll}{, jj}{, ff}" format.name$ 't :=   % last name first
      nameptr #1 >
    { namesleft #1 >
        { ", " * t * }
        { numnames #2 >
        { "," * }
        'skip$
          if$
          t "others" =
        { " et~al." * }
        { " \& " * t * }    % changed from " and " for names -- BJR 10/5/89
          if$
        }
      if$
    }
    't
      if$
      nameptr #1 + 'nameptr :=
      namesleft #1 - 'namesleft :=
    }
  while$
}

答案1

我建議您(i)製作 的副本apalike2.bst,命名副本(例如) ,並且(ii)用以下程式碼myapalike2.bst替換整個函數:names.format

FUNCTION {format.names}
{ duplicate$ empty$ 'skip$ {
  's :=
  "" 't :=
  #1 'nameptr :=
  s num.names$ 'numnames :=
  numnames 'namesleft :=
    { namesleft #0 > }
    { s nameptr
      duplicate$ #1 >
        { "{ff~}{vv~}{ll}{, jj}" }
        { "{vv~}{ll}{, jj}{, ff}" }
      if$
      format.name$
      't :=
      nameptr #1 >
        {
          namesleft #1 >
            { ", " * t * }
            {
              numnames #2 >
                { "," * }
                'skip$
              if$
              t "others" =
                { " et~al." * }
                { " \& " * t * }
              if$
            }
          if$
        }
        't
      if$
      nameptr #1 + 'nameptr :=
      namesleft #1 - 'namesleft :=
    }
  while$
  } if$
}

新程式碼的完整細節解釋起來很乏味,但主要區別在於單行

s nameptr "{vv~}{ll}{, jj}{, ff}" format.name$ 't :=

舊函數中已替換為

    { namesleft #0 > }
    { s nameptr
      duplicate$ #1 >
        { "{ff~}{vv~}{ll}{, jj}" }
        { "{vv~}{ll}{, jj}{, ff}" }
      if$
      format.name$
      't :=

結果是提供了兩種不同的格式化規則,取決於正在格式化的是第一個作者的姓名還是後來的某個作者的姓名。

將檔案儲存myapalike2.bst在與主 tex 檔案相同的目錄中,或儲存在 BibTeX 搜尋的目錄中。如果您選擇第二種方法,請確保適當更新您的 TeX 發行版的檔案名稱資料庫。

透過提供說明開始使用新的參考書目樣式\bibliographystyle{myapalike2}。請務必再運行 LaTeX、BibTeX 和 LaTeX 兩次,以完全傳播所有變更。

BibTeXing 快樂!

在此輸入影像描述

\documentclass{article}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@article{oneal:2003,
  author = "Oneal, John R. and Russett, Bruce and Berbaum, Michael L.",
  year  =  2003, 
  title = "Causes of Peace: {Democracy}, Interdependence, and International Organizations, 1885--1992", 
  journal = "International Studies Quarterly", 
  volume  = 47,
  number  = 1, 
  pages   = "371-393",
}
\end{filecontents*}
\usepackage{natbib}  % citation management package
\begin{document}
\cite{oneal:2003}
\bibliographystyle{myapalike2}  % the new bibliography style
\bibliography{\jobname} 
\end{document}

相關內容