我一直在尝试让 tex 包 bodegraph 在我的 Ubuntu 10.04 机器上运行。首先,由于 Ubuntu 附带 Texlive 2009,我不得不卸载默认版本并手动安装 Texlive 2011。
然后我就可以bodegraph
输出半对数网格线、标签等。问题是当我尝试实际绘制传递函数时,bodegraph
必须使用gnuplot
。我收到一条错误消息:
! I can't write on file `gnuplot/test/1.gnuplot'.
test.tex
是我的输入文件的名称,我正在使用pdflatex
。我怀疑这与pdflatex
没有运行权限gnuplot
或在需要的地方写入临时文件有关,但我不知道从哪里开始深入研究。
有谁使用过bodegraph
Ubuntu,或者见过这个问题吗?
编辑- 包括 MWE
\documentclass[10pt]{article}
\usepackage{tikz}
\usepackage{bodegraph}
\usetikzlibrary{intersections}
\usetikzlibrary{calc}
\usetikzlibrary{positioning}
\usepackage[active,tightpage]{preview}
\PreviewEnvironment{tikzpicture}
\begin{document}
\begin{tikzpicture}[>=latex',
ref lines/.style={thin,blue!60},
ref points/.style={circle, black, opacity=0.7, fill, minimum size= 3pt, inner sep=0},
every node/.style={font=small},
bode lines/.style={very thick, blue},
Gclabel/.style={text=blue},
xscale=12/3]
\begin{scope}[yscale=4/110]
\UnitedB
\semilog{-1}{2}{-50}{60}
% Breaks When The Following Line Is Added
\BodeAmp[ref lines, red!60]{-1:1.35}{POAmpAsymp{4}{2.0}+IntAmp{1}}
\end{scope}
\end{tikzpicture}
\end{document}
答案1
我在我的计算机上遇到了同样的错误(Ubuntu 11.04,TL 2011 vanilla)。该bodegraph
包似乎默认配置为使用输出前缀gnuplot/\jobname/
,因此第一个图test.tex
被写入gnuplot/test/1.gnuplot
。但是,您没有为您创建的gnuplot
目录或test
子目录,因此出现错误。
为了解决这个问题,您需要更改prefix
为例如{}
(当前目录):
\documentclass{article}
\usepackage{tikz}
\usepackage{bodegraph}
\begin{document}
\begin{tikzpicture}[
gnuplot def/.append style={prefix={}}, % Fixed the issue (prefix was 'gnuplot/\jobname/' before)
]
\begin{scope}
\UnitedB
\semilog{-1}{2}{-50}{60}
\BodeAmp{-1:1.35}{\POAmpAsymp{4}{2.0}+\IntAmp{1}}
\end{scope}
\end{tikzpicture}
\end{document}
您需要使用来运行它,pdflatex -shell-escape
以便gnuplot
能够执行。
POAmpAsymp
请注意,你忘记在and之前添加反斜杠IntAmp
。我还删除了所有不相关的代码,以便制作一个真正的最小例子。
答案2
你必须在编译之前创建一个 gnuplot/\jobname/ 目录,如果你使用 Windows,则没有必要