如何获取具有作者年份样式的两列参考文献

如何获取具有作者年份样式的两列参考文献

有没有办法获得作者年份引用的两列布局,第一列标签为“(Wolfram 2002)”,第二列标签为“Wolfram,S. 2002。一种新科学。Wolfram Media,伊利诺伊州香槟市。”。

我能得到的最好的结果是标签后面直接跟着带有缩进的引用,并在以下几行中找到了一些我发现但不太理解的东西:

\usepackage[round, authoryear]{natbib}
\setcitestyle{aysep={}}

\makeatletter
       \def\@lbibitem[#1]#2{%
       \if\relax\@extra@b@citeb\relax\else
       \@ifundefined{br@#2\@extra@b@citeb}{}{%
       \@namedef{br@#2}{\@nameuse{br@#2\@extra@b@citeb}}}\fi
       \@ifundefined{b@#2\@extra@b@citeb}{\def\NAT@num{}}{\NAT@parse{#2}}%
       \item[\hfil\hyper@natanchorstart{#2\@extra@b@citeb}\citep{#2}%
       \hyper@natanchorend]%
       \NAT@ifcmd#1(@)(@)\@nil{#2}}
\makeatother

我正在使用 Bibtex 和 pdflatex。感谢您的帮助。

答案1

如果我理解正确的话,您正在寻找一个文本列和一个引用列。这可以使用边距和 biblatex 来实现。

\usepackage[backend=biber, style=authoryear]{biblatex}
\newcommand{\mycite}[1]{%
(\cite{#1})%
\marginpar{\footnotesize\fullcite{#1}}}

如果这就是你要找的页边引用

我使用了以下代码(部分借鉴自另一个问题):

\documentclass{book}

\usepackage[backend=biber, style=authoryear]{biblatex}
\usepackage[paperwidth=170mm, paperheight=240mm, left=40pt, top=40pt, textwidth=280pt, marginparsep=20pt, marginparwidth=100pt, textheight=560pt, footskip=40pt]{geometry}
\usepackage{lipsum}
\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}
@incollection{Baauw2001,
    Address = {Somerville, MA},
    Author = {Sergio Baauw},
    Booktitle = {Proceedings of the 25th Annual Boston University Conference on Language Development},
    Editor = {A. H.-J. Do and L. Dom{\'\i}nguez and A. Johansen},
    Pages = {82-93},
    Publisher = {Cascadilla Press},
    Title = {Expletive determiners in child Dutch and Spanish},
    Year = {2001}}

@article{barker1998,
    Author = {Chris Barker},
    Journal = {Natural Language \& Linguistic Theory},
    Pages = {679-717},
    Title = {Partitives, Double Genitives and Anti-Uniqueness},
    Volume = {16},
    Year = {1998}}

@book{Berwick1985,
    Address = {Cambridge, MA},
    Author = {Berwick, Robert C.},
    Publisher = {MIT Press},
    Title = {Acquisition of syntactic knowledge},
    Year = {1985}}

@phdthesis{Carlson1977,
    Author = {Carlson, Gregory N.},
    School = {University of Massachusetts, Amherst},
    Title = {Reference to Kinds in {E}nglish},
    Year = {1977}}

\end{filecontents}
\addbibresource{\jobname}

\newcommand{\mycite}[1]{%
(\cite{#1})%
\marginpar{\footnotesize\fullcite{#1}}}

\begin{document}
\chapter{One}
\lipsum[2]Some text \mycite{Carlson1977}
\lipsum[1]

\end{document}

答案2

有几种作者年份书目样式,其中标签后跟作者,顺序按照您想要的顺序排列。 Ken Turner 的旧 Bibtex 样式列表显示了几种可能性。其中大多数使用\bibhang尺寸(实际上是跳过,因此您可以使用胶水)来控制缩进,因此您可以通过选择任何这些样式并设置\bibhang为足够大的尺寸来复制您引用的代码似乎正在做的事情。其他使用\bibindent\bibleftmargin分别说明条目的第一行和后续每一行是什么,这是等效的。

这与您的问题描述的并不完全一致,因为作者姓名直接跟在键后面。您可以通过将标签放在足够宽的框中来强制留出足够的空白。您必须修改 Bibtex 样式代码才能做到这一点。幸运的话,以下代码将适合您:

\makeatletter 
   \let\ur@lbibitem=@lbibitem
   \def\@lbibitem[#1]#2{
       \ifempty{#1}
           \ur@lbibitem[\hbox to \bibhang {#2}]{#2}
         \else \ur@lbibitem[\hbox to \bibhang {\cite{#1}}]{#2}
       \fi}
\makeatother   

注意事项:以上内容未经测试,需要 eplain 包(它使用\ifempty),可能会很丑陋(hbox 太宽,\cite很可能是您想要的错误命令),并且假设\bibhang定义正确,但并非所有 Bibtex 样式都是如此。

相关内容