使用嵌入式书目数据库的多个书目(参考列表)

使用嵌入式书目数据库的多个书目(参考列表)

我希望有多个书目(参考文献列表),如下所述 Airminded · LaTeX 中的多个参考书目TeX 常见问题 -- 问题标签“multbib”)。

不过,我想使用一个 .tex 文件,其中包含嵌入的参考书目数据库,如下所示LaTeX/书目管理:#1 嵌入式系统...

现在,我想使用letterdocumentclass,需要为其定义参考书目(回复:使用字母时环境 thebibliography 未定义

所以我最终得到了这个例子(下面的代码,只用编译pdflatex,没有bibtex在这种情况下我想避免这种情况):

multibib-嵌入.png

... 显然,有些东西起作用了(multibib识别主要和次要引用,为它们分配数字“1”作为开始)——但是我没有得到两个单独的主要和次要参考列表;在这种情况下这可能吗?(不必与multibib,但我想避免单独的.bib文件和bibtex调用

编辑:我还想使用单独的引用键(即呈现为[a1][b1];尚不确定是否multibib可以这样做;编辑:不可以,多书目.pdf说“您还可以编辑由 BibTEX 创建的 .bbl 文件并向标签添加“a”、“b”……,但您的更改将被后续的 BibTEX 运行覆盖。“并建议\cite[a]{key})——这怎么可能呢?

 

代码如下:

\documentclass{letter}

% Environment thebibliography undefined when using letter: http://www.latex-community.org/forum/viewtopic.php?f=4&t=3359
\makeatletter
\setlength \labelsep {.5em}
\newcommand\newblock{\hskip
  .11em\@plus.33em\@minus.07em} \let\@openbib@code\@empty
\newcommand\refname{References}
\newcommand\section{\@startsection
  {section}{1}{\z@}%
  {-3.5ex \@plus -1ex \@minus -.2ex}%
  {2.3ex \@plus.2ex}%
  {\normalfont\Large\bfseries}}
\newenvironment{thebibliography}[1]
{\section*{\refname}%
  \@mkboth{\MakeUppercase\refname}{\MakeUppercase\refname}%
  \list{\@biblabel{\@arabic\c@enumiv}}%
  {\settowidth\labelwidth{\@biblabel{#1}}%
    \leftmargin\labelwidth \advance\leftmargin\labelsep \@openbib@code
    \usecounter{enumiv}%
    \let\p@enumiv\@empty \renewcommand\theenumiv{\@arabic\c@enumiv}}%
  \sloppy \clubpenalty4000 \@clubpenalty \clubpenalty
  \widowpenalty4000%
  \sfcode`\.\@m} {\def\@noitemerr {\@latex@warning{Empty
      `thebibliography' environment}}%
      \endlist}
\makeatother

\usepackage{multibib}
\newcites{pri}{Primary sources}
\newcites{sec}{Secondary sources}

\begin{document}


\begin{letter}{Addressee}
Blah, blah - content...

Primary cite: \citepri{lamport94} ...

Secondary cite: \citesec{lamport94} ...


\begin{thebibliography}{9}

\bibitem{lamport94}
  Leslie Lamport,
  \emph{\LaTeX: A Document Preparation System}.
  Addison Wesley, Massachusetts,
  2nd Edition,
  1994.

\bibitem{lamport95}
  Leslie Lamport,
  \emph{\LaTeX: A Document Preparation System}.
  Addison Wesley, Massachusetts,
  2nd Edition,
  1995.

\end{thebibliography}

\end{letter}


\end{document}

答案1

在您keyword使用 的过滤方法下biblatex,可以通过重新定义格式对字段进行表面调整labelnumber(例如添加后缀ab并重置二次条目计数)labelnumber。以下是示例。

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[american]{babel}
\usepackage{csquotes}
\usepackage[colorlinks=true,citecolor=red]{hyperref}
\usepackage[defernumbers=true]{biblatex}

\newcounter{bbx:primcount}
\setcounter{bbx:primcount}{0}

% Count number of  primary entries; expand labelnumberwidth
% to accommodate suffixes (NB: this might need tweaking when there
% are relatively many more secondary entries)
\makeatletter
\AtDataInput{%
  \ifkeyword{secondary}
    {}
    {\addtocounter{bbx:primcount}{1}%
     \blx@setlabwidth{\labelnumberwidth}{%
       \csuse{abx@ffd@*@labelnumberwidth}{\thefield{labelnumber}a}}}}
\makeatother

% Print labelnumbers with suffixes, adjust secondary labelnumber
\DeclareFieldFormat{labelnumber}{%
  \ifkeyword{secondary}
    {{\number\numexpr#1-\value{bbx:primcount}}b}
    {#1a}}

\addbibresource{biblatex-examples.bib}

\begin{document}
Filler text \cites[10--15]{aristotle:anima}{aristotle:physics}.
Filler text \cite[23--25]{nussbaum}. Filler text \cite{hyman}.
\printbibheading
\printbibliography[keyword=primary,heading=subbibliography,title={Primary Sources (a)}]
\printbibliography[keyword=secondary,heading=subbibliography,title={Secondary Sources (b)}]
\end{document}

在此处输入图片描述

此解决方案假定所有条目都分配有关键字primary或之一,但如果将过滤器替换为 ,secondary则可以将没有后一个关键字的条目视为主要条目。keyword=primarynotkeyword=secondary

相同的问题,但是使用前缀,labelnumber使用该选项相对容易prefixnumbers

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[american]{babel}
\usepackage{csquotes}
\usepackage[colorlinks=true,citecolor=red]{hyperref}
\usepackage[defernumbers=true]{biblatex}

\addbibresource{biblatex-examples.bib}

\begin{document}
Filler text \cites[10--15]{aristotle:anima}{aristotle:physics}.
Filler text \cite[23--25]{nussbaum}. Filler text \cite{hyman}.
\printbibheading
\printbibliography[keyword=primary,heading=subbibliography,title={Primary Sources},prefixnumbers={A}]
\printbibliography[keyword=secondary,heading=subbibliography,title={Secondary Sources},prefixnumbers={B}]
\end{document}

答案2

嗯..来自回复:Biblatex 包和多个参考书目, 我明白了 ”Biblatex 为多种书目提供原生支持。“,在这种情况下multibib是不需要的,并且您仍然可以拥有一个内联文件。

因此,只需使用biblatex(使用示例2905#2922),我设法或多或少地得到了我想要的东西(所有内容都在一个文件中,没有 bibtex 调用,分割参考书目):

biblatex-multi

...代码如下:

\documentclass{letter}

\usepackage{biblatex} % tlmgr install biblatex etoolbox logreq
\usepackage{filecontents} % tlmgr install filecontents
\usepackage{hyperref}
\hypersetup{colorlinks=true, linkcolor=blue, citecolor=blue, filecolor=blue, urlcolor=blue}

% unicode characters
% note \usepackage[utf8x]{inputenx} breaks biblatex
%  with "Package biblatex Error: Incompatible package 'ucs'"
\usepackage[utf8]{inputenx} %

% letter doesn't have \section,\subsection, so:
\def\section*#1{#1}
\def\subsection*#1{#1}

\begin{filecontents}{\jobname.bib}
@article{Bli74,
  keywords = {primary},
  author = {Blinder, Alan S.},
  year = {1974},
  title = {The economics of brushing teeth},
  journaltitle = {Journal of Political Economy},
  volume = {82},
  number = {4},
  pages = {887--891},
}
@article{audactor2005pflanzen,
  keywords = {secondary},
  title = {Wie Pflanzen hören... die Geheimnisse der Sonobotanik},
  author = {Prof. Dr. Hortensia Audactor},
  journal = {Draft: \url{http://www.inventionen.de/vortrag_audactor.html}},
  year = {2005}
}
\end{filecontents}

\bibliography{\jobname}

% \usepackage{multibib} % incompatible


\begin{document}


\begin{letter}{Addressee}
Blah, blah - content...

Primary cite: \cite[\nopp a]{Bli74},

Secondary cite:  \cite[\nopp b]{audactor2005pflanzen}

\ \\

\hrule
\printbibheading
\hrule

\printbibliography[keyword=primary,heading=subbibliography,%
title={Primary Sources (a)}]
\printbibliography[keyword=secondary,heading=subbibliography,%
title={Secondary Sources (b)}]


\end{letter}
\end{document}

编辑:注意使用关键词来分割参考书目;Biblatex 软件包 pdf也注意到一些其他方法。

相关内容