에 대한 후속 질문입니다.Biblatex: 저널에 제출.
댓글에서 언급했듯이허버트의 대답, 일부 사용자는 컴파일 시 오류가 발생하여 솔루션에 문제가 있습니다 Use of \blx@bbl@verbadd@i doesn't match its definition \blx@bblfile@biber ...2004} \verb {eprint} \verb cond-mat/0407066 \endverb
.
문제의 범위를 좁혔습니다. 문제는 \verb
bbl의 "필드"입니다. 해당 항목이 있는 경우(예: 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}
...
그것은 나를 위해 일했습니다 :