2010-09-27 2 views
2

Я использую tikz для набора диаграммы в латексном документе.Неправильное выравнивание узлов в субтитрах

У меня есть сетка «grid-диаграмм», каждая диаграмма сетки нарисована как отдельное изображение tikz, а затем помещается в сетку в виде узлов.

Я хочу нарисовать узел круга (который в конечном итоге будет содержать метку) в правом нижнем квадрате каждой диаграммы сетки.

Я использую точно такой же код для каждой диаграммы сетки, но круг рисуется в другом месте каждый раз.

Я делаю что-то неправильно или это ошибка в tikz? В частности, мой подход к включению суб-картин разрешен/стандарт/хорошая практика?

См. here для изображения.

\documentclass{article} 
\usepackage{tikz} 
\usetikzlibrary{arrows,positioning} 
\usepackage{verbatim} 
\usepackage[active,tightpage]{preview} 
\PreviewEnvironment{tikzpicture} 
\setlength\PreviewBorder{5pt}% 
\begin{document} 
\begin{tikzpicture}[scale=1, node distance = .5cm] 
    \node (a) at (0,0) { 
    \begin{tikzpicture} 
    \draw[step=.5cm,gray,very thin] (-0.1,-1.6) grid (1.6, 0.1); 
     \node at (1.25, -1.25) [fill=white, shape=circle, draw=black] {}; 
    \end{tikzpicture} 
    }; 
    \node[right=of a] (b) { 
    \begin{tikzpicture} 
    \draw[step=.5cm,gray,very thin] (-0.1,-1.6) grid (1.6, 0.1); 
     \node at (1.25, -1.25) [fill=white, shape=circle, draw=black] {}; 
    \end{tikzpicture} 
    }; 
    \node[below=of a] (c) { 
    \begin{tikzpicture} 
    \draw[step=.5cm,gray,very thin] (-0.1,-1.6) grid (1.6, 0.1); 
     \node at (1.25, -1.25) [fill=white, shape=circle, draw=black] {}; 
    \end{tikzpicture} 
    }; 
    \node[right=of b] (d){ 
    \begin{tikzpicture} 
    \draw[step=.5cm,gray,very thin] (-0.1,-1.6) grid (1.6, 0.1); 
     \node at (1.2, -1.5) [fill=white, shape=circle, draw=black] {}; 
    \end{tikzpicture} 
    }; 
    \node[below=of b] (e){ 
    \begin{tikzpicture} 
    \draw[step=.5cm,gray,very thin] (-0.1,-1.6) grid (1.6, 0.1); 
     \node at (1.25, -1.25) [fill=white, shape=circle, draw=black] {}; 
    \end{tikzpicture} 
    }; 
    \node[below = of c] (f) { 
    \begin{tikzpicture} 
    \draw[step=.5cm,gray,very thin] (-0.1,-1.6) grid (1.6, 0.1); 
     \node at (1.25, -1.25) [fill=white, shape=circle, draw=black] {}; 
     \end{tikzpicture} 
    }; 
\end{tikzpicture} 
\end{document} 
+0

Я не знал, что можно было бы гнездо tikzpictures. Спасибо за пример! –

ответ

0

Я не знаю, почему круги не выровнены в вашем примере, но это, возможно, придется делать с относительным позиционированием с помощью of.

Я не знаю, если это лучшая практика, но вы можете использовать foreach автоматизировать построение сетки:

\begin{document} 
\begin{tikzpicture}[scale=1] 
    \foreach \x in {-0.01cm,2.99cm,5.99cm} 
    \foreach \y in {-0.01cm,2.99cm,5.99cm} { 
     \draw[step=.5cm,gray,thin] (\x,\y) grid +(1.52cm,1.52cm); 
     \draw[fill=white, draw=black] (\x,\y) +(1.255cm,0.25cm) circle (0.2cm); 
    } 
\end{tikzpicture} 
\end{document} 

alt text

+0

Спасибо. Это было «из», которое вызывало поведение. Когда я изменил каждый из вышеперечисленных узлов на абсолютное позиционирование (т. Е. \ Node (b) в (3, 0)), изображение получилось идеально, даже с включенными суб-картинками tikz. (Каждая диаграмма сетки в конечном итоге будет отличаться, со стрелками, связывающими их, что я пошел на этот подход, прежде всего, используя цикл \ foreach.) –