表格中单独列中的参考书目条目

表格中单独列中的参考书目条目

我想要在表格的单独列中显示参考书目条目,如下所示:

Authors      Year   Title           Journal        Vol. No.  Page No.  Note
A, B and C   2016   Article Title   Journal Name    1        10-15     ISI 

MWE 如下:

\documentclass{article}
\usepackage[backend=biber, style=authoryear]{biblatex}

\bibliography{BiblatexTableExample}

\begin{document}

To achieve incentive compatibility, the auction winner has to pay the second highest price \cite{Vickrey1961}.

A good introduction to graph algorithms can be found in \cite{Golumbic2004}.

\printbibliography

\end{document}

其内容BiblatexTableExample为:

@ARTICLE{Vickrey1961,
AUTHOR = {W. Vickrey},
TITLE = {Counterspeculation, auctions and sealed tenders},
JOURNAL = {Journal of Finance},
YEAR = {1961},
volume = {16},
pages = {8--37},
} 

@BOOK{Golumbic2004,
AUTHOR = {M. C. Golumbic},
TITLE = {Algorithmic Graph Theory and Perfect Graphs},
PUBLISHER = {Elsevier Science},
YEAR = {2004},
edition = {2nd Edition},
}

任何有助于完成此任务的帮助都将不胜感激。谢谢

答案1

我建议用我最喜欢的命令来解决问题:\makecell

显然,您可以根据自己的喜好改变列宽,使用注释\showframe\frame查看是否超出页面边框。

当然,如果您有除book和之外的 bib 条目类型article,则必须构建相应的\DeclareBibliographyDriver

我使用 将列标题放在参考书目每一页上\AddThispageHook。由于挂钩一旦堆叠便不可堆叠,因此如果参考书目不是文档的最后一项,则必须在挂钩中包含条件,以使其仅对参考书目页面有效。

\begin{filecontents}{BiblatexTableExample.bib}

    @ARTICLE{Vickrey1961,
        AUTHOR = {W. Vickrey},
        TITLE = {Counterspeculation, auctions and sealed tenders},
        JOURNAL = {Journal of Finance},
        YEAR = {1961},
        volume = {16},
        pages = {8--37},
        note = {a1b2c3}
    } 

    @BOOK{Golumbic2004,
        AUTHOR = {M. C. Golumbic},
        TITLE = {Algorithmic Graph Theory and Perfect Graphs},
        PUBLISHER = {Elsevier Science},
        YEAR = {2004},
        edition = {2nd Edition},
        note={ABC}
    }
\end{filecontents}

\documentclass{article}
\usepackage[backend=biber, style=authoryear]{biblatex}
\usepackage{array}
\usepackage{makecell}
%\usepackage{showframe} % only for test purpose 
\usepackage{atbegshi}   
\usepackage{everypage}

% new commands to avoid repeating widths
\newcommand{\mysep}{\hspace{.01\textwidth}}
\newcommand{\myauthorprint}[1]{\makecell[t{p{.15\textwidth}}]{#1}}%
\newcommand{\myyearprint}[1]{\makecell[t{p{.07\textwidth}}]{#1}}% 
\newcommand{\mytitleprint}[1]{\makecell[t{p{.26\textwidth}}]{#1}}%    
\newcommand{\myjournalprint}[1]{\makecell[t{p{.23\textwidth}}]{#1}}%    
\newcommand{\myvolprint}[1]{\makecell[t{p{.06\textwidth}}]{#1}}% 
\newcommand{\mypageprint}[1]{\makecell[t{p{.07\textwidth}}]{#1}}% 
\newcommand{\mynoteprint}[1]{\makecell[t{p{.10\textwidth}}]{#1}}%
\newcommand{\mybibheader}{
    \myauthorprint{Authors}%
    \mysep
    \myyearprint{Year}% 
    \mysep
    \mytitleprint{Title}%    
    \mysep
    \myjournalprint{Journal}%    
    \mysep
    \myvolprint{Vol. No.}% 
    \mysep
    \mypageprint{Page No.}% 
    \mysep
    \mynoteprint{Note}%
}   

% bib items separation
\setlength\bibitemsep{1.7\itemsep}% plus 1pt minus 1pt} 

% remove dot after year
\renewcommand{\labelnamepunct}{\addspace}

% normal text title (no italics, no ")
\DeclareFieldFormat[article,book]{title}{#1}

% remove dot after title
\renewcommand*{\newunitpunct}{\addspace}

% publisher in italics
\DeclareListFormat[book]{publisher}{\textit{#1}}

% journaltitle in italics
\DeclareFieldFormat[article]{journaltitle}{\textit{#1}}

% remove dot after volume
\renewcommand{\bibpagespunct}{\addspace}

% remove pp.
\DeclareFieldFormat[article]{pages}{#1} 

% remove dot at the end of the bib entry
\renewcommand{\finentrypunct}{}

\DeclareBibliographyDriver{book}{%
    \myauthorprint{\small\raggedright \printnames{author}}%
    \mysep
    \myyearprint{\small\raggedright \printfield{year}}%
    \mysep
    \mytitleprint{\small\raggedright \printfield{title}}%
    \mysep
    \myjournalprint{\small\raggedright \printlist{publisher}}%
    \mysep
    \myvolprint{\addspace}%
    \mysep
    \mypageprint{\addspace}%
    \mysep
    \mynoteprint{\small\raggedright \printfield{note}}%
    \finentry}

\DeclareBibliographyDriver{article}{%
    \myauthorprint{\small\raggedright \printnames{author}}%
    \mysep
    \myyearprint{\small\raggedright \printfield{year}}%
    \mysep
    \mytitleprint{\small\raggedright \printfield{title}}%
    \mysep
    \myjournalprint{\small\raggedright \printfield{journaltitle}}%
    \mysep
    \myvolprint{\small\raggedright \printfield{volume}}%
    \mysep
    \mypageprint{\small\raggedright \printfield{pages}}%
    \mysep
    %\frame{% only for test purpose
    \mynoteprint{\small\raggedright \printfield{note}}%}%
    \finentry}

\addbibresource{BiblatexTableExample.bib}
\addbibresource{biblatex-examples.bib} % only for test purpose

\begin{document}

    To achieve incentive compatibility, the auction winner has to pay the second highest price \cite{Vickrey1961}.

    A good introduction to graph algorithms can be found in \cite{Golumbic2004}.

    Only for test purpose: \cite{knuth:ct} \cite{angenendt} \cite{aristotle:rhetoric}
    \cite{aristotle:anima}
    \cite{coleridge}
    \cite{knuth:ct:d}
    \cite{yoon}
    \cite{gillies}
    \cite{baez/article}

    \defbibnote{myprenote}{\noindent\mybibheader}

    \AddThispageHook{\AtBeginShipout{\mybibheader}}

    \printbibliography[prenote=myprenote]

\end{document}

第一页: 在此处输入图片描述

第二页: 在此处输入图片描述

编辑:

在评论中,OP 要求垂直和水平标尺的第一列为序列号。

这是我能做的最好的(但需要一些专家才能做得更好):

    \begin{filecontents}{BiblatexTableExample.bib}

    @ARTICLE{Vickrey1961,
        AUTHOR = {W. Vickrey},
        TITLE = {Counterspeculation, auctions and sealed tenders},
        JOURNAL = {Journal of Finance},
        YEAR = {1961},
        volume = {16},
        pages = {8--37},
        note = {a1b2c3}
    } 

    @BOOK{Golumbic2004,
        AUTHOR = {M. C. Golumbic},
        TITLE = {Algorithmic Graph Theory and Perfect Graphs},
        PUBLISHER = {Elsevier Science},
        YEAR = {2004},
        edition = {2nd Edition},
        note={ABC}
    }
\end{filecontents}

\documentclass{article}
\usepackage[backend=biber,bibstyle=numeric,citestyle=authoryear]{biblatex}
\usepackage{array}
\usepackage{makecell}
%\usepackage{showframe} % only for test purpose 
\usepackage{atbegshi}   
\usepackage{everypage}

% new commands to avoid repeating widths
\newcommand{\mysep}{\hspace{.01\textwidth}}
\newcommand{\mythickrule}{\hrule height .7pt}
\newcommand{\mynumberprint}[1]{\makecell[t{p{.05\textwidth}}]{#1}}%
\newcommand{\myauthorprint}[1]{\makecell[t{p{.14\textwidth}}]{#1}}%
\newcommand{\myyearprint}[1]{\makecell[t{p{.07\textwidth}}]{#1}}% 
\newcommand{\mytitleprint}[1]{\makecell[t{p{.23\textwidth}}]{#1}}%    
\newcommand{\myjournalprint}[1]{\makecell[t{p{.19\textwidth}}]{#1}}%    
\newcommand{\myvolprint}[1]{\makecell[t{p{.06\textwidth}}]{#1}}% 
\newcommand{\mypageprint}[1]{\makecell[t{p{.07\textwidth}}]{#1}}% 
\newcommand{\mynoteprint}[1]{\makecell[t{p{.10\textwidth}}]{#1}}%
\newcommand{\mybibheader}{%
    \mythickrule 
    \vskip1.2\itemsep
    \mynumberprint{No.}%
    \hspace{.23cm}
    %\frame{% for testing purpose only 
    \myauthorprint{Authors}%}%
    \mysep
    \myyearprint{Year}%
    \mysep
    \mytitleprint{Title}%    
    \mysep
    \myjournalprint{Journal}%    
    \mysep
    \myvolprint{Vol. No.}% 
    \mysep
    \mypageprint{Page No.}% 
    \mysep
    \mynoteprint{Note}%
    \vskip\itemsep
    \mythickrule}   

% bib items separation
\setlength\bibitemsep{1.7\itemsep}% 

% small serial number
\DeclareFieldFormat{labelnumberwidth}{\mynumberprint{\small \raggedleft #1.}}

% remove dot after year
\renewcommand{\labelnamepunct}{\addspace}

% normal text title (no italics, no ")
\DeclareFieldFormat[article,book]{title}{#1}

% remove dot after title
\renewcommand*{\newunitpunct}{\addspace}

% publisher in italics
\DeclareListFormat[book]{publisher}{\textit{#1}}

% journaltitle in italics
\DeclareFieldFormat[article]{journaltitle}{\textit{#1}}

% remove dot after volume
\renewcommand{\bibpagespunct}{\addspace}

% remove pp.
\DeclareFieldFormat[article]{pages}{#1} 

% remove dot at the end of the bib entry
\renewcommand{\finentrypunct}{}

\DeclareBibliographyDriver{book}{%
    \myauthorprint{\small\raggedright \printnames{author}}%
    \mysep
    \myyearprint{\small\raggedright \printfield{year}}%
    \mysep
    \mytitleprint{\small\raggedright \printfield{title}}%
    \mysep
    \myjournalprint{\small\raggedright \printlist{publisher}}%
    \mysep
    \myvolprint{\addspace}%
    \mysep
    \mypageprint{\addspace}%
    \mysep
    \mynoteprint{\small\raggedright \printfield{note}}%
    \finentry}

\DeclareBibliographyDriver{article}{%
    \myauthorprint{\small\raggedright \printnames{author}}%
    \mysep
    \myyearprint{\small\raggedright \printfield{year}}%
    \mysep
    \mytitleprint{\small\raggedright \printfield{title}}%
    \mysep
    \myjournalprint{\small\raggedright \printfield{journaltitle}}%
    \mysep
    \myvolprint{\small\raggedright \printfield{volume}}%
    \mysep
    \mypageprint{\small\raggedright \printfield{pages}}%
    \mysep
    %\frame{% only for test purpose
    \mynoteprint{\small\raggedright \printfield{note}}%}%
    \finentry}

\addbibresource{BiblatexTableExample.bib}
\addbibresource{biblatex-examples.bib} % only for test purpose

\begin{document}

    To achieve incentive compatibility, the auction winner has to pay the second highest price \cite{Vickrey1961}.

    A good introduction to graph algorithms can be found in \cite{Golumbic2004}.

    Only for test purpose: \cite{knuth:ct} \cite{angenendt} \cite{aristotle:rhetoric}
    \cite{aristotle:anima}
    \cite{coleridge}
    \cite{knuth:ct:d}
    \cite{yoon}
    \cite{gillies}
    \cite{baez/article}

    \defbibnote{myprenote}{\noindent\mybibheader}

    \AddThispageHook{\AtBeginShipout{\mybibheader}}
    \printbibliography[prenote=myprenote]
    \mythickrule

\end{document}

在此处输入图片描述 在此处输入图片描述

相关内容