一般来说,我会在单独的 tex 文件中创建所有 tikzpictures,然后使用命令将其输入\input
到主 tex 文件中。
我开始使用我大学的模板作为主文件,现在我发现在编译时在最终的 pdf 中没有出现任何内容\draw
(\node
或者至少我在绘图区域内看不到它们)。
似乎只有 pgfplots 有效。我已将以下软件包包含在内:蒂克兹和pgf图在主文件中仍然没有任何内容。在我的其中一个图中,节点确实出现了,但它们在 y 轴上有另一个刻度(我必须将节点中 y 坐标的值乘以 10 才能将它们固定到正确的位置)。
知道为什么使用 tikzpicture 插入\input{mytikz.tex}
tikz 项目无法正常工作吗?如何修复它?
以下是我所讲内容的一个例子:
示例代码:
\documentclass[border=10pt]{standalone}
\usepackage{tikz,pgf,pgfplots}
% Libraries
\usetikzlibrary{intersections}
\usetikzlibrary{arrows}
\usetikzlibrary{calc}
% Others
\pgfplotsset{compat=newest}
\begin{document}
%\resizebox{6cm}{!}{
\begin{tikzpicture}[dots/.style={circle,draw=blue,fill=blue, inner sep=-1pt}]
\begin{semilogxaxis}[
scale only axis, % scale axis to specified size, otherwise the complete picture takes the size
% scale=1,
% normalsize,
% x=8cm,
% xmin=1, xmax=200,
% ymin=-1, ymax=0,
width=6cm,
height={},
% ticks=none,
axis x line=top,
axis y line=left,
y axis line style={stealth-},
% xlabel={$ln(\tau_{rz})$},
x label style={above,font=\large,at={(1,1)}},
% ylabel={$\delta_{head}$},
y label style={font=\Large},
legend style={at={(0.01,0.01)},anchor=south west,font=\scriptsize},
legend columns=1,
legend style={/tikz/column 3/.style={column sep=10pt}},
legend cell align=left,
log ticks with fixed point,
]
\addlegendimage{empty legend}
\addlegendentry{A $\rightarrow$ B $\Delta\tau$=0 with t}
\addlegendimage{empty legend}
\addlegendentry{A $\rightarrow$ C $\Delta\tau$=change with t}
% NC-line
\addplot[name path global=nc1,domain=30:60]{-0.01*ln(x)}
coordinate [pos=0.3] (K1)
coordinate [pos=0.6] (K2)
;
\addplot[name path global=nc2,domain=60.01:160]{-0.1*ln(x)+(0.1*ln(60)-0.01*ln(60))}
coordinate [pos=0.3] (L1)
coordinate [pos=0.4] (L2)
;
% Isotachs
\addplot[domain=50.01:160]{-0.1*ln(x)+(0.1*ln(60.01)-0.01*ln(60))-0.03};
\addplot[name path global=iso2,domain=45.01:160]{-0.1*ln(x)+(0.1*ln(60.01)-0.01*ln(60))-0.05};
\addplot[domain=40.01:160]{-0.1*ln(x)+(0.1*ln(60.01)-0.01*ln(60))-0.07};
% Dots
\node[dots,label=right:\normalsize A] (A1) at (100,-0.092) {};
\node[dots,label=right:\normalsize B] (B1) at (100,-0.092-0.05) {};
\node[dots,label=left:\normalsize C] (C1) at (90,-0.081-0.05) {};
\node[label=right:\normalsize time] (t11) at (120,-0.092) {};
\node[] (t22) at (120,-0.092-0.05) {};
% Arrows
\draw [->,black,thick,shorten <=1pt, shorten >=1pt,densely dashed] (A1.south)--(B1.north);
\draw [->,black,thick,shorten <=1pt, shorten >=1pt,densely dashed] (A1.south)--(C1.north);
\draw [|->,red,thick,shorten <=1pt, shorten >=1pt,solid] (t11.south)--(t22.north);
\end{semilogxaxis}
\end{tikzpicture}
%}
\end{document}
注释掉单文件前言后,我在主文件中输入:
\begin{figure}
\input{../plots/model/myplot.tex}
\end{figure}
顺便说一下,我的图是半对数刻度的。删除刻度后,节点显示在图空间的某个位置,但我不知道为什么它们与指定的坐标不匹配。
答案1
我是 Gabriel 使用的模板的作者,我确实使用了覆盖并记住图片作为封面。
axis cs
但我很确定这个问题的真正解决方案是在指定绘图轴 cs 中的节点时使用
这pgfplots 画廊展示它的多种用途。
\node[...] at (axis cs:0.18,0.74,0.08) {...};
(我可能错了)