2015-11-12 2 views
3

Я хочу улучшить скорость компиляции моего тезиса латекса. Я прочитал, что с помощью \ tikzexternalize, только когда происходит изменение кодов tikz, они компилируются.Использование tikzexternalize

Проблема в том, что я не могу использовать \ tikzexternalize правильно. Это моя преамбула:

\usepackage{circuitikz} 
\usepackage{tikz} 
\usetikzlibrary{shapes.geometric, arrows, shadows, calc,positioning} 
\tikzexternalize 

И это совсем не работает. Я получил следующее сообщение об ошибке:

Undefined control sequence. \tikzexternalize 

Если это полезно, я использую MikTex с TextStudio и TextLive с Textstudio также под Ubuntu. Он не работает ни в одной из этих систем.

Надеюсь, вы можете мне помочь.

ответ

0

Вы не забыли добавить

\usetikzlibrary{external} 

? Я просто нашел его здесь: tex.stackexchange

+0

На самом деле это была моя первая мысль. Дело в том, что документация tikz комментирует это предложение. В разделе 50.4 представлено следующее: % основной документ, называемый main.tex \ usepackage {tikz} \ usetikzlibrary {внешний} \ tikzexternalize% активировать! –

+0

Как вы объявили свою цифру тикза? Можете ли вы показать код? – naurel

+0

Я отправил код в вопрос. –

1

Я сделал это. Теперь у меня нет сообщений об ошибках, но цифры не сохраняются в папке TikzFigures. Это моя преамбула:

\usepackage{circuitikz} 
\usepackage{tikz}       
\usetikzlibrary{shapes.geometric, arrows, shadows, calc,positioning,external} 
\tikzexternalize[mode=graphics if exists, 
figure list=true, 
prefix=TikzFigures/] 

Вот как я добавляю свои цифры tikz. Первый пример - использование circuitikz.

\begin{figure}[h] 
    \centering 
    \tikzsetnextfilename{nonInverter} 
    \begin{circuitikz}[scale=1]\draw 
     (4,.5) node [op amp](opamp) {} % Amplificador Operacional 
     (0,0) node [ ground]{} to (0,1) 
     to [R=$Sensor A201$,-*] (opamp.-) 
     (opamp.out)|- (5,2.5) to [R=$R_{F}$](2.8,2.5) to (opamp.-) 
     (opamp.+) to [short,-o] (2.8,-1) node [right] {$V_{+}$} 
     (opamp.out) to [short, *-o] (6,.5) node[right] {$V_{ADC}$} 
    ;\end{circuitikz} 
\end{figure} 

Следующая один, заключается в использовании общего пакета tikz:

\begin{figure}[h] 
    \begin{center} 
    \tikzsetnextfilename{masterFlowChart} 
    \begin{tikzpicture}[node distance = 2cm, auto] 
     % Colocamos los nodos 
     \node [cloud] (init) {Initialize System}; 
     \node [block, below of=init] (connection) {Connection to the master}; 
     \node [block, below of=connection] (wait) {Wait for master events}; 
     \node [block, below of=wait] (measure) {Measure and send to master}; 
     % invisible node helpful later 
     \node[right of=wait,scale=0.05](inv){}; 
     % Colocamos las relaciones entre nodos 
     \path [line] (init) -- (connection); 
     \path [line] (connection) edge[loop left] node {No Network}(); 
     \path [line] (connection) -- (wait); 
     \path[-,draw] (wait) -| node{} (inv.north); 
     \path[line]{} (inv.north) |- node[above]{Reconnect} (connection); 
     \path [line] (wait) edge[loop left] node {Sleep}(); 
     \path [line] (wait) -- (measure); 
     \path [line] (measure) -- (wait); 
    \end{tikzpicture} 
    \end{center} 
    \label{fig:slave_flowchart} 
\end{figure} 

И последний из которых с помощью пакета диаграмма последовательности, что, если я не ошибаюсь, также основан на tikz.

\begin{figure}[h] 
    \begin{center} 
     \tikzsetnextfilename{sequenceDiagramaECnsole10} 
     \begin{sequencediagram} 
       \newthread{pc}{PC} 
       \newinst[2]{master}{Master} 
       \newinst[2]{slave}{Slave}{} 
       \node[below right of=master,font=\scriptsize](master_state){Idle}; 
       \node[below right of=slave,font=\scriptsize](slave_state){Sleep}; 
       \begin{sdblock}{Run Loop}{} 
        \begin{call}{pc}{Start Measurement}{master}{Master Data} 
         \begin{call}{master}{Data Request}{slave}{Slave Data} 
         \end{call} 
        \end{call} 
       \end{sdblock} 
       \node[below of=master_state,font=\scriptsize, node distance= 4cm]{Idle}; 
       \node[below of=slave_state,font=\scriptsize, node distance= 4cm]{Sleep}; 
      \end{sequencediagram} 
    \end{center} 
    \label{fig:ecnsole_sequence_diagram} 
\end{figure}