根据 BibTeX 条目创建表格

根据 BibTeX 条目创建表格

我的工作单位要求我以特定的表格格式提交已发表论文的清单。我的论文已保存在 BibTeX 文件中,我想使用它来生成 LaTeX 表格,如下所示:

year & title & jorunal name, etc. & ISSN, DOI, etc. & comment \\

BibTeX 数据如下所示:

@article{id,
  title={Lorum Ipsum Dolor Sit Amet},
  author={LastName, FirstName},
  journal={Journal of Some Fancy Studies},
  volume={1},
  year={2018},
  doi={DOI},
  issn={ISSN},
  comment={indexed by Scopus},
  langid = "english"
}

关于如何提取相关的 BibTeX 字段,有什么指示吗?

答案1

您可以使用该包usbib从您的条目中提取字段.bib并使用它构建表格式书目。但我觉得用它usebib来创建完整的书目是滥用该包。该包在名称字段方面也有一些限制(它不解析它们),并且不执行 BibTeX 和 Biber 可以执行的任何排序和其他额外操作。

如果您想(必须)坚持使用 BibTeX,则必须采用自己的.bst风格来生成表格书目输出。这当然并非不可能,但这将需要一些工作,而且 BibTeX 文件的基于堆栈的逆波兰表示法并不适合胆小的人。我没有找到一个可以.bst生成tabular环境的文件,所以您只能自己在那里,没有任何可以构建的东西。

如果你可以使用biblatexbiblatex-ext安装了我的软件包,那么你可以使用它的biblatex-ext-tabular(子)软件包来生成表格书目。主要思想来自 Audrey 对使用 biblatex 的表格书目,但代码很好地隐藏在包中,因此您不必担心细节。

以下适用于@articles 并粗略地给出您问题中的输出。

\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}

\usepackage[style=authortitle, sorting=ydnt, backend=biber]{biblatex}
\usepackage{biblatex-ext-tabular}


\usepackage{longtable}
\usepackage{array}
\newcolumntype{L}[1]{%
  >{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}p{#1}}

\defbibtabular{bibtabular}
  {\renewbibmacro{issue+date}{\printfield{issue}}%
   \setlength{\LTpre}{0pt}%
   \setlength{\LTpost}{0pt}%
   \renewcommand*{\arraystretch}{2}%
   \begin{longtable}{%
     @{}
     L{\dimexpr0.08\textwidth-\tabcolsep\relax}
     L{\dimexpr0.3\textwidth-2\tabcolsep\relax}
     L{\dimexpr0.25\textwidth-2\tabcolsep\relax}
     L{\dimexpr0.25\textwidth-2\tabcolsep\relax}
     L{\dimexpr0.12\textwidth-\tabcolsep\relax}
     @{}}}
  {\end{longtable}}
  {\anchorlang{\usebibmacro{date}} &
   \plainlang{\usebibmacro{title}} &
   \plainlang{\usebibmacro{journal+issuetitle}} &
   \plainlang{\usebibmacro{doi+eprint+url}} &
   \plainlang{\printfield{note}}\\}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@article{id,
  title={Lorum Ipsum Dolor Sit Amet},
  author={LastName, FirstName},
  journal={Journal of Some Fancy Studies},
  volume={1},
  year={2018},
  doi={DOI},
  issn={ISSN},
  note={indexed by Scopus},
  langid = "english"
}
\end{filecontents}

\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}


\begin{document}
\nocite{sigfridsson,id}
\printbibtabular[title={Publications}]
\end{document}

表格式参考书目。

相关内容