tikzpictures 내에서 biber와 함께 \cite 사용

tikzpictures 내에서 biber와 함께 \cite 사용

저는 biber를 사용하고 있으며 tikzpicture 내부에 참고 자료를 인용하고 싶습니다. 나는 이것을 따랐다답변bibtex를 사용하여 수행하는 방법을 설명했으며 훌륭하게 작동하지만 biber 사용으로 전환하면 더 이상 작동하지 않습니다.

\documentclass{article}
\usepackage{tikz}

\usepackage[backend=biber]{biblatex}

\begin{document}

\begin{tikzpicture}[show/.style={circle,draw}]
\node[show]    (newpaper)    at    (0,2)    
    [label=right:{This 2011 paper ...}]    
    {\cite{newpaper}};
\node[show]    (oldpaper)   at     (0,0)    
     [label=right:{This paper came out in 1900 ...}]    
    {\cite{oldpaper}};
\draw[->]    (oldpaper) -- (newpaper);
\end{tikzpicture}


%\bibliographystyle{amsplain}
\begin{thebibliography}{10}
\bibitem{newerpaper}B. Becker, \emph{Even Newer Stuff}, 2012.
\bibitem{newpaper}C. Charles, \emph{New Stuff}, 2011.
\bibitem{oldpaper}H. Huckley, \emph{Old Stuff}, 1900.
\end{thebibliography}
\end{document} 

예제 출력

bibtex를 사용하도록 전환하지 않고도 솔루션을 아는 사람이 있습니까?

업데이트:

아래 여러 사람이 언급했듯이 제가 게시한 원래 코드는 쉽게 수정되었습니다. 내가 발견한 실제 버그는 더 큰 LaTeX 코드의 결과였으며 문제를 발견했습니다. 문제가 있는 업데이트된 코드는 다음과 같습니다.

\documentclass{article}
\usepackage{tikz}

\usetikzlibrary{external}
\tikzexternalize[prefix=fig/]

\usepackage[backend=biber]{biblatex}

\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}
@book{newerpaper,
    author={B. Becker},
    title={Even Newer Stuff},
    date={2012}
}

@book{newpaper,
    author={C. Charles},
    title={New Stuff},
    date={2011}
}

@book{oldpaper,
    author={H. Huckley},
    title={Old Stuff},
    date={1900}
}

\end{filecontents}

\addbibresource{\jobname.bib}

\begin{document}

%\tikzexternaldisable
\begin{tikzpicture}[show/.style={circle,draw}]
\node[show]    (newpaper)    at    (0,2)    
[label=right:{This 2011 paper ...}]    
{\cite{newpaper}};
\node[show]    (oldpaper)   at     (0,0)    
[label=right:{This paper came out in 1900 ...}]    
{\cite{oldpaper}};
\draw[->]    (oldpaper) -- (newpaper);
\end{tikzpicture}
%\tikzexternalenable

\printbibliography

\end{document} 

문제는 \tikzexternalize[prefix=fig/]명령에 있습니다. 나는 \tikzexternaldisabletikzpicture 앞과 \tikzexternalenabletikzpicture 뒤에 추가하여 이 문제를 해결했습니다 .

답변1

댓글에서 제안한 대로, biblatex참고문헌을 손으로 다루는 방식이 아닌 님의 참고문헌을 다루는 방식으로 옮겨가야 합니다. 예:

\documentclass{article}
\usepackage{tikz}

\usepackage[backend=biber]{biblatex}

\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}
@book{newerpaper,
    author={B. Becker},
    title={Even Newer Stuff},
    date={2012}
}

@book{newpaper,
    author={C. Charles},
    title={New Stuff},
    date={2011}
}

@book{oldpaper,
    author={H. Huckley},
    title={Old Stuff},
    date={1900}
}

\end{filecontents}

\addbibresource{\jobname.bib}

\begin{document}

\begin{tikzpicture}[show/.style={circle,draw}]
\node[show]    (newpaper)    at    (0,2)    
    [label=right:{This 2011 paper ...}]    
    {\cite{newpaper}};
\node[show]    (oldpaper)   at     (0,0)    
     [label=right:{This paper came out in 1900 ...}]    
    {\cite{oldpaper}};
\draw[->]    (oldpaper) -- (newpaper);
\end{tikzpicture}

\printbibliography

\end{document} 

다음을 생성합니다.

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

편집하다:결과적으로 이 문제는 본질적으로 biblatex/ 의 올바른 사용 중 하나 biber이며 TikZ와는 거의 관련이 없으므로 시작 목록이 biblatex유용할 수 있습니다.

관련 정보