
여러 가지로 Tikz 피규어를 만들어 보려고 합니다.pgfplots
. 그들은 모두 동일한 곡선을 가지고 있기 때문에 나는 그들에 대해 하나의 범례를 갖고 싶습니다. 에서 알아냈어요이 질문각 곡선에 라벨을 붙이고 참조할 수 있습니다. 나는 그것을 서브플롯 하단에 간단한 범례를 만드는 데 사용했습니다. 그리고 별도의 파일로 시도해 보니 괜찮아 보였습니다. 그런 다음 external
플롯이 많기 때문에 이전에 겪었던 TeX 메모리 문제를 해결하는 Tikz 라이브러리를 사용하는 논문에 넣었습니다 . 발생하는 문제는 다음 MWE로 재현될 수 있습니다.
\documentclass{article}
\usepackage{pgfplots}
\usetikzlibrary{external}
\tikzexternalize
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot coordinates { (0,0) (1,1) };\label{plot:p1}
\end{axis}
\node (A) at (1,-1) {\ref{plot:p1} Plot 1};
\end{tikzpicture}
\end{document}
이는 다음을 생성합니다.
대신에:
(단순화를 위해 여기서는 하위 플롯 대신 하나의 플롯만 사용하고 있습니다.) 첫 번째 이미지에서 누락된 참조에 대한 물음표를 확인하세요. 물론, 네 번째 줄을 주석 처리하면(외부화를 사용하지 않음) 참조는 괜찮게 나타납니다(두 번째 이미지). 그래서 나는 궁금하다:
참조를 얻고 외부화를 계속 사용하려면 어떻게 해야 합니까?
추신: Ubuntu 11.10의 TexLive 2011
답변1
Ignasi가 의견에서 말했듯이 이것은 완전히 자동으로 작동하지 않습니다.
로부터pgfplots 매뉴얼:
\label
a /\ref
가 로 그려진 경우에는 특별한 경우가 있습니다tikzpicture
. 예를 들어 범례\ref
이미지나 기능의 경우입니다\pgfplotslegendfromname
. 이러한 경우에는mode=convert with system call
자체적으로 처리할 수 없으므로 a)의 경우와 같이 진행해야 합니다 .
사례 a)는 다음과 같이 제안합니다.
mode=list and make
이미지에 대한 시스템 호출을 사용 하거나 복사하여 붙여넣고 수동으로 발행하십시오.
내가 추가하면 귀하의 예가 나에게 효과적입니다.
\pgfkeys{
/tikz/external/mode=list and make
}
파일에 추가하고 make -B -f <filename>.makefile
첫 번째 컴파일 실행 후에 실행합니다.