محاذاة غير صحيحة من العقد في المخططات الفرعية

StackOverflow https://stackoverflow.com/questions/3804192

  •  25-09-2019
  •  | 
  •  

سؤال

أنا أستخدم Tikz إلى Typeet رسم بياني في وثيقة اللاتكس.

لديّ شبكة من "شبكات الشبكة" ، مع رسم كل شبكات الشبكة كصورة Tikz منفصلة ثم رتبت في الشبكة كعقد.

أرغب في رسم عقدة دائرة (والتي ستحتوي في نهاية المطاف على ملصق) في مربع اليد السفلي اليمنى لكل شبكة.

أستخدم نفس الكود بالضبط لكل شبكة ديجرام ، ولكن يتم رسم الدائرة في مكان مختلف في كل مرة.

هل أفعل شيئًا خاطئًا ، أم أن هذا خطأ في Tikz؟ على وجه الخصوص ، هل مقاربي في تضمين الصور الفرعية المسموح بها/الممارسة القياسية/الجيدة؟

نرى هنا لصورة.

\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}
هل كانت مفيدة؟

المحلول

لست متأكدًا من سبب عدم محاذاة الدوائر في مثالك ، ولكن قد يكون له علاقة بالمواقع النسبية باستخدام 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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top