
저는 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
유용할 수 있습니다.