Biblatex: bbl 포함, "동사" 필드 문제

Biblatex: bbl 포함, "동사" 필드 문제

에 대한 후속 질문입니다.Biblatex: 저널에 제출.

댓글에서 언급했듯이허버트의 대답, 일부 사용자는 컴파일 시 오류가 발생하여 솔루션에 문제가 있습니다 Use of \blx@bbl@verbadd@i doesn't match its definition \blx@bblfile@biber ...2004} \verb {eprint} \verb cond-mat/0407066 \endverb.

문제의 범위를 좁혔습니다. 문제는 \verbbbl의 "필드"입니다. 해당 항목이 있는 경우(예: DOI 또는 URL) 위의 오류가 발생합니다.~하지 않는 한bbl은 를 통해 포함됩니다 \input.

다음 MWE를 참조하세요.

\documentclass[a4paper,10pt]{article}
\usepackage{biblatex}

%-------------- start insert modified commands ------------------
\makeatletter
\def\blx@bblfile@biber{%
  \blx@secinit
  \begingroup
  \blx@bblstart

\refsection{0}
  \sortlist{entry}{nty}
    \entry{Agarwal2007}{article}{}
      \verb{doi}
      \verb 10.2139/ssrn.943524  %%--PROBLEM--%%
      \endverb
    \endentry
  \endsortlist
\endrefsection

  \blx@bblend
  \endgroup
  \csnumgdef{blx@labelnumber@\the\c@refsection}{0}}
\makeatother
%-------------- end insert modified commands --------------

\begin{document}

Some words \cite{Agarwal2007}.

\printbibliography

\end{document}

주석을 달지 않으면 컴파일이 작동하지 않습니다 \verb 10.2139/ssrn.943524.

편집: bbl을 생성하는 코드는 다음과 같습니다.

@article{Agarwal2007,
author = {Agarwal, S.},
doi = {10.2139/ssrn.943524},
year = {2006}
}

답변1

문제가 있는 부분은 외부 파일에 있을 것입니다. 따라서 filecontents-environment를 사용하여 생성하십시오.

\documentclass[a4paper,10pt]{article}
\usepackage{biblatex}
\usepackage{filecontents}
\begin{filecontents}{testinput-bbl.bbl}
\refsection{0}
  \sortlist{entry}{nty}
    \entry{Agarwal2007}{article}{}
      \verb{doi}
      \verb 10.2139/ssrn.943524  
      \endverb
    \endentry
  \endsortlist
\endrefsection
\end{filecontents}
%-------------- start insert modified commands ------------------
\makeatletter
\def\blx@bblfile@biber{%
  \blx@secinit
  \begingroup
  \blx@bblstart
  \input{testinput-bbl.bbl}%<------------
  \blx@bblend
  \endgroup
  \csnumgdef{blx@labelnumber@\the\c@refsection}{0}}
\makeatother
%-------------- end insert modified commands --------------

\begin{document}

Some words \cite{Agarwal2007}.

\printbibliography

\end{document}

2017년 4월 수정

biblatex의 변경으로 인해 \blx@bblfile@biber명령이 더 이상 존재하지 않으므로 재정의가 더 이상 작동하지 않습니다. 다음은 교체입니다. 또한 오래된 biblatex에서도 작동해야 합니다. 또한 bbl의 내용이 biblatex 버전에 맞지 않으면 경고가 표시됩니다.

\documentclass[a4paper,10pt]{article}
\usepackage{biblatex}
\usepackage{filecontents}
%Use the starred version of filecontents to avoid comments in the written file
%Insert the complete bbl in the environment including the starting comments!

\begin{filecontents*}{testinput-bbl.bbl}
% $ biblatex auxiliary file $
% $ biblatex bbl format version 2.8 $
% Do not modify the above lines!
%
% This is an auxiliary file used by the 'biblatex' package.
% This file may safely be deleted. It will be recreated by
% biber as required.
%
\begingroup
\makeatletter
\@ifundefined{[email protected]}
  {\@latex@error
     {Missing 'biblatex' package}
     {The bibliography requires the 'biblatex' package.}
      \aftergroup\endinput}
  {}
\endgroup


\refsection{0}
  \sortlist[entry]{nty/global/}
    \entry{doody}{article}{}
      \name{author}{1}{}{%
        {{hash=936cee5fdd47aac6238f650db8b23a07}{%
           family={Doody},
           familyi={D\bibinitperiod},
           given={Terrence},
           giveni={T\bibinitperiod}}}%
      }
      \strng{namehash}{936cee5fdd47aac6238f650db8b23a07}
      \strng{fullhash}{936cee5fdd47aac6238f650db8b23a07}
      \strng{authornamehash}{936cee5fdd47aac6238f650db8b23a07}
      \strng{authorfullhash}{936cee5fdd47aac6238f650db8b23a07}
      \field{sortinit}{D}
      \field{sortinithash}{d10b5413de1f3d197b20897dd0d565bb}
      \field{labelnamesource}{author}
      \field{labeltitlesource}{title}
      \field{annotation}{An \texttt{article} entry cited as an excerpt from a \texttt{collection} entry. Note the format of the \texttt{related} and \texttt{relatedstring} fields}
      \field{journaltitle}{The Journal of Narrative Technique}
      \field{langid}{english}
      \field{langidopts}{variant=american}
      \field{number}{3}
      \field{relatedstring}{\autocap{e}xcerpt in}
      \field{title}{Hemingway's Style and {Jake's} Narration}
      \field{volume}{4}
      \field{year}{1974}
      \field{related}{1e63d4bbc14872275675171be2dfa906}
      \field{pages}{212\bibrangedash 225}
      \range{pages}{14}
    \endentry
    \entry{1e63d4bbc14872275675171be2dfa906}{collection}{dataonly}
      \name{editor}{1}{}{%
        {{hash=cf369effe2b1de0066543cc38f7f8369}{%
           family={Matuz},
           familyi={M\bibinitperiod},
           given={Roger},
           giveni={R\bibinitperiod}}}%
      }
      \list{location}{1}{%
        {Detroit}%
      }
      \list{publisher}{1}{%
        {Gale}%
      }
      \strng{namehash}{cf369effe2b1de0066543cc38f7f8369}
      \strng{fullhash}{cf369effe2b1de0066543cc38f7f8369}
      \strng{editornamehash}{cf369effe2b1de0066543cc38f7f8369}
      \strng{editorfullhash}{cf369effe2b1de0066543cc38f7f8369}
      \field{sortinit}{M}
      \field{sortinithash}{c26a05ef03e4429073ed5c825140fac3}
      \field{labelnamesource}{editor}
      \field{labeltitlesource}{title}
      \field{clonesourcekey}{matuz:doody}
      \field{annotation}{A \texttt{collection} entry providing the excerpt information for the \texttt{doody} entry. Note the format of the \texttt{pages} field}
      \field{langid}{english}
      \field{langidopts}{variant=american}
      \field{title}{Contemporary Literary Criticism}
      \field{volume}{61}
      \field{year}{1990}
      \field{pages}{204\bibrangedash 208}
      \range{pages}{5}
    \endentry
  \endsortlist
\endrefsection
\endinput
\end{filecontents*}

\usepackage{xpatch}

%Patch the biblatex input command.
%replace "testinput-bbl" if you change the name above.
%disable if you want to run biblatex/biber normally
\makeatletter         
\patchcmd\blx@bblinput{\blx@blxinit}
                      {\blx@blxinit
                       \def\jobname{testinput-bbl}%new jobname
                      }{}{\fail}
\makeatother

\addbibresource{biblatex-examples.bib} %not needed but doesn't harm either

\begin{document}

Some words \cite{doody}.

\printbibliography

\end{document}

답변2

두 개의 동사 라인에 사용::

...
  \field{doi}{10.2139/ssrn.943524}
...

그것은 나를 위해 일했습니다 :

여기에 이미지 설명을 입력하세요

관련 정보