
私は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}
問題はコマンドにあります。tikzpictureの前とtikzpicture の後に\tikzexternalize[prefix=fig/]
追加することでこの問題を回避しました。\tikzexternaldisable
\tikzexternalenable
答え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
便利かもしれません。
- biblatex の概要 (初心者向け)(Alan Munn が提案したリンク)
- biblatexに切り替えるにはどうすればいいですか
- bibtex と biblatex の違いは何ですか?
biblatex
のドキュメント