2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 как затехать только часть tikzpicture?
Сообщение01.02.2015, 22:06 
Можно ли получить часть затеханной картинки изнутри теха?

Например, такой код:

Код:
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows,automata}

\begin{document}

\begin{tikzpicture}[->,>=stealth', shorten >=1pt, auto, node distance=2cm, semithick]

\tikzstyle{every state}=[fill=gray!20, draw=black, text=black]

  \node[state] (A)                    {$Z^\gamma$};
  \node[state] (B) [right of=A] {$St$};

  \path (A) edge               (B);
  \path (A) edge [loop above] (A);
  \path (B) edge [loop above] (B);
 
\end{tikzpicture}

\end{document}


даёт картинку

Изображение

а нужна только часть; навроде

Изображение

Пример, понятное дело, от балды. Но, вообще, можно ли подобное сделать (срендерить только прямоугольный участок tikzpicture), и как? На SE ответа не нашёл.

 
 
 
 Re: как затехать только часть tikzpicture?
Сообщение01.02.2015, 22:35 
Аватара пользователя
longstreet в сообщении #972355 писал(а):
Но, вообще, можно ли подобное сделать (срендерить только прямоугольный участок tikzpicture), и как? На SE ответа не нашёл.


Сделаем вот что

Используется синтаксис LaTeX
\draw [step=.1, ultra thin] (-1,-1) grid (2,3);
\foreach \j in {-2, ..., 12} \draw[red,-] (\j *.2 cm,-1 cm ) -- (\j*.2 cm,  -1.2 cm) node[below] {\tiny $\j$};
\foreach \j in {-2, ..., 12} \draw[red,-] (-1 cm, \j *.2 cm ) -- ( -1.2 cm, \j*.2 cm) node[below] {\tiny $\j$};


После этого Вы определяете, что хочется отрезать (помните, что цифирки масштабированы), и примерка

Используется синтаксис LaTeX
\draw [red] (-.3,-.2) rectangle (2.5,1);


и заменяете \draw на \clip и выбрасываете те 3 линии.

 
 
 
 Re: как затехать только часть tikzpicture?
Сообщение01.02.2015, 22:55 
Идея с примеркой по сетке изящна, спасибо большое за совет!

Далее, до замены draw на clip всё хорошо, но с этой заменой получаю
Цитата:
Package tikz Error: Extra options not allowed for clipping path command.. \clip [red] (-.3,-.2) rectangle (2.5,1);

За лишнюю опцию я посчитал (или ошибочно посчитал?) [red], и оставил
Код:
\clip (-.3,-.2) rectangle (2.5,1);

но результат тот же, что и вообще без этой строчки (исходная картинка полностью, на разлинованном листе с красными делениями и их подписями).

-- 01.02.2015, 22:57 --

Код полностью:

(Оффтоп)

Код:
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows,automata}



\begin{document}

\begin{tikzpicture}[->,>=stealth', shorten >=1pt, auto, node distance=2cm, semithick]

\tikzstyle{every state}=[fill=gray!20, draw=black, text=black]

  \node[state] (A)                    {$Z^\gamma$};
  \node[state] (B) [right of=A] {$St$};

  \path (A) edge               (B);
  \path (A) edge [loop above] (A);
  \path (B) edge [loop above] (B);
 
 
  \draw [step=.1, ultra thin] (-1,-1) grid (2,3);
  \foreach \j in {-2, ..., 12} \draw[red,-] (\j *.2 cm,-1 cm ) -- (\j*.2 cm,  -1.2 cm) node[below] {\tiny $\j$};
  \foreach \j in {-2, ..., 12} \draw[red,-] (-1 cm, \j *.2 cm ) -- ( -1.2 cm, \j*.2 cm) node[below] {\tiny $\j$};
 
  \clip (-.3,-.2) rectangle (2.5,1);
\end{tikzpicture}

\end{document}

 
 
 
 Re: как затехать только часть tikzpicture?
Сообщение01.02.2015, 23:17 
Аватара пользователя
код: [ скачать ] [ спрятать ]
Используется синтаксис LaTeX
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows,automata}
\begin{document}
\begin{tikzpicture}[->,>=stealth', shorten >=1pt, auto, node distance=2cm, semithick]
\clip (-.3,-.2) rectangle (2.5,1); % clip до того, что обрезается
\tikzstyle{every state}=[fill=gray!20, draw=black, text=black]
  \node[state] (A)                    {$Z^\gamma$};
  \node[state] (B) [right of=A] {$St$};
  \path (A) edge               (B);
  \path (A) edge [loop above] (A);
  \path (B) edge [loop above] (B);
% \draw [step=.1, ultra thin] (-1,-1) grid (2,3); % А это уже не нужно—после примерки
%  \foreach \j in {-2, ..., 12} \draw[red,-] (\j *.2 cm,-1 cm ) -- (\j*.2 cm,  -1.2 cm) node[below] {\tiny $\j$};% А это уже не нужно—после примерки
%  \foreach \j in {-2, ..., 12} \draw[red,-] (-1 cm, \j *.2 cm ) -- ( -1.2 cm, \j*.2 cm) node[below] {\tiny $\j$};% А это уже не нужно—после примерки
\end{tikzpicture}
\end{document}


-- 01.02.2015, 15:19 --

Если же надо ограничить действие \clip то


Используется синтаксис LaTeX
\begin{scope}
\clip ……
……...
……..
\end{scope}

 
 
 
 Re: как затехать только часть tikzpicture?
Сообщение02.02.2015, 01:46 
Red_Herring, огромное спасибо: Ваш результат лучше всех моих ожиданий!

 
 
 [ Сообщений: 5 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group