Использование \cite с biber внутри tikzpictures

Использование \cite с biber внутри tikzpictures

Я использую 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/]команде. Я обошел эту проблему, добавив \tikzexternaldisableперед tikzpicture и \tikzexternalenableпосле tikzpicture.

решение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может оказаться полезным:

Связанный контент