Draw a checker pattern with a black X in the centerRotate a node but not its content: the case of the ellipse decorationHow to define the default vertical distance between nodes?Numerical conditional within tikz keys?Input/Output Nodes - Specification and Description LanguageDrawing a flag in Tikz!TikZ: Drawing an arc from an intersection to an intersectionDrawing rectilinear curves in Tikz, aka an Etch-a-Sketch drawingClose scope for global options in a tikz-pgf pathHow can I define a key that adds a coloured border inside a closed path, but plays nice with fill?Line up nested tikz enviroments or how to get rid of them

Professor Roman loves to teach unorthodox Chemistry

How (un)safe is it to ride barefoot?

What exactly "triggers an additional time" in the interaction between Afterlife and Teysa Karlov?

Do Veracrypt encrypted volumes have any kind of brute force protection?

What is the STRONGEST end-of-line knot to use if you want to use a steel-thimble at the end, so that you've got a steel-eyelet at the end of the line?

one-hot-encoding categorical data gives error

How does AFV select the winning videos?

What does "lit." mean in boiling point or melting point specification?

Was self-modifying code possible using BASIC?

Realistic, logical way for men with medieval-era weaponry to compete with much larger and physically stronger foes

Find all letter Combinations of a Phone Number

Why does there seem to be an extreme lack of public trashcans in Taiwan?

A life of PhD: is it feasible?

Are regulatory compliance checks performed within the EU bloc?

Who is "He that flies" in Lord of the Rings?

How can you estimate a spike story?

Why is long-term living in Almost-Earth causing severe health problems?

What is Gilligan's full Name?

Is Lambda Calculus purely syntactic?

How do I make a Magical Dart Thrower more economical in Adventurers League?

How to Handle Many Times Series Simultaneously?

Why does plot not show where Piecewise function is not zero?

What is the theme of analysis?

How to befriend someone who doesn't like to talk?



Draw a checker pattern with a black X in the center


Rotate a node but not its content: the case of the ellipse decorationHow to define the default vertical distance between nodes?Numerical conditional within tikz keys?Input/Output Nodes - Specification and Description LanguageDrawing a flag in Tikz!TikZ: Drawing an arc from an intersection to an intersectionDrawing rectilinear curves in Tikz, aka an Etch-a-Sketch drawingClose scope for global options in a tikz-pgf pathHow can I define a key that adds a coloured border inside a closed path, but plays nice with fill?Line up nested tikz enviroments or how to get rid of them













12















I am trying to recreate the following image in TikZ



enter image description here



Using some old code I was able to produce the following result



enter image description here



While I was able to produce the correct result, I feel that my solution was a bit strange as it required two passes. Any suggestions for alternative approaches, or improvements to the code are more than welcome.



documentclass[tikz]standalone

begindocument

begintikzpicture[x=1cm]
edefsize4
foreach x in 0,...,size foreach y in 0,...,size

pgfmathparsemod(x+y,size) ? "none" : "black"
edefcolourpgfmathresult
path[draw=black, fill=colour] (x,y) rectangle ++ (1,1);

pgfmathparsex==y ? "black" : "none"
edefcolourpgfmathresult
path[fill=colour] (x,y) rectangle ++ (1,1);

draw (0,0)--(0,size+1)--(size+1,size+1)--(size+1,0)--cycle;
endtikzpicture

enddocument









share|improve this question




























    12















    I am trying to recreate the following image in TikZ



    enter image description here



    Using some old code I was able to produce the following result



    enter image description here



    While I was able to produce the correct result, I feel that my solution was a bit strange as it required two passes. Any suggestions for alternative approaches, or improvements to the code are more than welcome.



    documentclass[tikz]standalone

    begindocument

    begintikzpicture[x=1cm]
    edefsize4
    foreach x in 0,...,size foreach y in 0,...,size

    pgfmathparsemod(x+y,size) ? "none" : "black"
    edefcolourpgfmathresult
    path[draw=black, fill=colour] (x,y) rectangle ++ (1,1);

    pgfmathparsex==y ? "black" : "none"
    edefcolourpgfmathresult
    path[fill=colour] (x,y) rectangle ++ (1,1);

    draw (0,0)--(0,size+1)--(size+1,size+1)--(size+1,0)--cycle;
    endtikzpicture

    enddocument









    share|improve this question


























      12












      12








      12


      1






      I am trying to recreate the following image in TikZ



      enter image description here



      Using some old code I was able to produce the following result



      enter image description here



      While I was able to produce the correct result, I feel that my solution was a bit strange as it required two passes. Any suggestions for alternative approaches, or improvements to the code are more than welcome.



      documentclass[tikz]standalone

      begindocument

      begintikzpicture[x=1cm]
      edefsize4
      foreach x in 0,...,size foreach y in 0,...,size

      pgfmathparsemod(x+y,size) ? "none" : "black"
      edefcolourpgfmathresult
      path[draw=black, fill=colour] (x,y) rectangle ++ (1,1);

      pgfmathparsex==y ? "black" : "none"
      edefcolourpgfmathresult
      path[fill=colour] (x,y) rectangle ++ (1,1);

      draw (0,0)--(0,size+1)--(size+1,size+1)--(size+1,0)--cycle;
      endtikzpicture

      enddocument









      share|improve this question
















      I am trying to recreate the following image in TikZ



      enter image description here



      Using some old code I was able to produce the following result



      enter image description here



      While I was able to produce the correct result, I feel that my solution was a bit strange as it required two passes. Any suggestions for alternative approaches, or improvements to the code are more than welcome.



      documentclass[tikz]standalone

      begindocument

      begintikzpicture[x=1cm]
      edefsize4
      foreach x in 0,...,size foreach y in 0,...,size

      pgfmathparsemod(x+y,size) ? "none" : "black"
      edefcolourpgfmathresult
      path[draw=black, fill=colour] (x,y) rectangle ++ (1,1);

      pgfmathparsex==y ? "black" : "none"
      edefcolourpgfmathresult
      path[fill=colour] (x,y) rectangle ++ (1,1);

      draw (0,0)--(0,size+1)--(size+1,size+1)--(size+1,0)--cycle;
      endtikzpicture

      enddocument






      tikz-pgf code-review






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited May 28 at 4:14









      Community

      1




      1










      asked May 27 at 14:00









      N3buchadnezzarN3buchadnezzar

      4,28954191




      4,28954191




















          4 Answers
          4






          active

          oldest

          votes


















          15














          With tikz:



          documentclass[tikz]standalone

          begindocument
          begintikzpicture[
          node distance = 0mm,
          box/.style = draw, minimum size=10mm, fill=black,
          outer sep=0pt,
          ]
          edefsize4
          foreach y in 0,...,size
          foreach x in 0,...,size
          ifnumx=y
          node[box] at (x,size-y) ;
          node[box] at (x,y) ;
          else
          node[box,fill=none] at (x,y) ;
          fi

          endtikzpicture
          enddocument


          enter image description here



          Note: Value of size had to be zero or any even natural number (0, 2, 4, ...)



          addendum:



          • default baseline of above image is as (current bounding box.south)˙ For series of those images for different value ofsize` is:

          documentclassarticle
          usepackagetikz
          usepackagetabularx
          newcolumntypeC>centeringarraybackslashX

          begindocument
          beginfigure
          begintabularxlinewidth>hsize=0.5hsizeC C >hsize=1.5hsizeC
          begintikzpicture[baseline=(current bounding box.south),
          node distance = 0mm,
          box/.style = draw, minimum size=10mm, fill=black,
          outer sep=0pt,
          ]
          edefsize0 % in this MWE the meaning of `size` is changed
          foreach y in 0,...,size
          foreach x in 0,...,size
          ifnumx=y
          node[box] at (x,size-y) ;
          node[box] at (x,y) ;
          else
          node[box,fill=none] at (x,y) ;
          fi

          endtikzpicture
          caption
          &
          begintikzpicture[%baseline=(current bounding box.south),
          node distance = 0mm,
          box/.style = draw, minimum size=10mm, fill=black,
          outer sep=0pt,
          ]
          edefsize1
          foreach y in 0,...,2*size % changed, now number of boxes is odd
          foreach x in 0,...,2*size % changed,
          ifnumx=y
          node[box] at (x,size-y) ;
          node[box] at (x,y) ;
          else
          node[box,fill=none] at (x,y) ;
          fi

          endtikzpicture
          caption
          &
          begintikzpicture[baseline=(current bounding box.south),
          node distance = 0mm,
          box/.style = draw, minimum size=10mm, fill=black,
          outer sep=0pt,
          ]
          edefsize2
          foreach y in 0,...,size
          foreach x in 0,...,size
          ifnumx=y
          node[box] at (x,size-y) ;
          node[box] at (x,y) ;
          else
          node[box,fill=none] at (x,y) ;
          fi

          endtikzpicture
          caption
          endtabularx
          endfigure
          enddocument


          enter image description here






          share|improve this answer

























          • How can this produce the correct case with only one black box?

            – N3buchadnezzar
            May 27 at 15:33











          • With edefsize1? I'm not sure if I understood your comment correctly.

            – Zarko
            May 27 at 15:36











          • size1 produces 4 black squares not 1. Here is how it looks for n=1 and n=2, not the same baseheight either. i.imgur.com/0OamEbM.png

            – N3buchadnezzar
            May 27 at 15:37












          • Indeed. It should be size0.

            – Zarko
            May 27 at 15:41






          • 1





            @N3buchadnezzar, images are aligned to their bottom side. also see "Note" in edited answer.

            – Zarko
            May 27 at 16:06



















          10














          A PSTricks solution only for fun purposes!



          enter image description here



          documentclass[border=1pt]standalone
          usepackagepstricks
          defobj#1%
          pspicture[dimen=m](#1,#1)
          multips(0,0)(0,1)#1multips(0,0)(1,0)#1psframe(1,1)
          multips(0,0)(1,1)#1psframe*(1,1)
          multips(0,#1)(1,-1)#1psframe*(1,-1)
          endpspicture

          begindocument
          foreach i in 3,5,7objiquad
          enddocument


          Edit



          I invented the algorithm (that has not been patented yet) as follows. No nested loop is needed.



          enter image description here



          documentclass[border=12pt]standalone
          usepackage[nomessages]fp
          usepackagexintexpr
          usepackagepstricks
          pssetunit=5mm
          defobj#1%
          pspicture[dimen=m](#1,#1)
          FPevalN#1*#1-1
          foreach j in 0,...,N

          FPevalytrunc(j/#1:0)
          FPevalxj-#1*y
          xintifboolexpr
          psframe[fillstyle=solid,fillcolor=black](x,y)(+x+1,y+1)
          psframe(x,y)(+x+1,y+1)

          endpspicture
          begindocument
          foreach i in 1,3,5,7,9objiquad
          enddocument





          share|improve this answer

























          • One downvote detected...

            – Money Oriented Programmer
            May 27 at 14:31











          • Accessing 2 dimensional arrays with a single-indexed pointer is much faster.

            – Money Oriented Programmer
            May 27 at 17:04



















          9














          Edit:
          The following works for all values of size



          documentclass[tikz]standalone

          begindocument

          begintikzpicture
          edefsize4
          foreach x in 0,...,size foreach y in 0,...,size
          pgfmathsetmacrocolour(x==y
          draw[fill=colour] (x,y) rectangle ++ (1,1);

          endtikzpicture

          enddocument


          enter image description here






          share|improve this answer

























          • How can this produce the correct case with only one black box?

            – N3buchadnezzar
            May 27 at 15:33











          • The mod function was not a good choice, pgfmathparsex+y==size ? "black" : "colour" is better.

            – AboAmmar
            May 27 at 17:00



















          1














          I do not see the reason for a double loop, nor complicated conditions.



          documentclass[tikz,border=3.14mm]standalone
          begindocument
          begintikzpicture[xboard/.style=insert path=
          (0,0) grid (#1,#1)
          foreach X in 1,...,#1
          (X-0.5,X-0.5) picbx (X-0.5,#1-X+0.5) picbx,
          pics/bx/.style=code=fill (-0.5,-0.5) rectangle (0.5,0.5);]
          draw[xboard=1] [xshift=2cm,xboard=3]
          [xshift=4cm,xboard=5] [xshift=6cm,xboard=7];
          endtikzpicture
          enddocument


          enter image description here






          share|improve this answer























            Your Answer








            StackExchange.ready(function()
            var channelOptions =
            tags: "".split(" "),
            id: "85"
            ;
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function()
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled)
            StackExchange.using("snippets", function()
            createEditor();
            );

            else
            createEditor();

            );

            function createEditor()
            StackExchange.prepareEditor(
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: false,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: null,
            bindNavPrevention: true,
            postfix: "",
            imageUploader:
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            ,
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            );



            );













            draft saved

            draft discarded


















            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f492863%2fdraw-a-checker-pattern-with-a-black-x-in-the-center%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown

























            4 Answers
            4






            active

            oldest

            votes








            4 Answers
            4






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            15














            With tikz:



            documentclass[tikz]standalone

            begindocument
            begintikzpicture[
            node distance = 0mm,
            box/.style = draw, minimum size=10mm, fill=black,
            outer sep=0pt,
            ]
            edefsize4
            foreach y in 0,...,size
            foreach x in 0,...,size
            ifnumx=y
            node[box] at (x,size-y) ;
            node[box] at (x,y) ;
            else
            node[box,fill=none] at (x,y) ;
            fi

            endtikzpicture
            enddocument


            enter image description here



            Note: Value of size had to be zero or any even natural number (0, 2, 4, ...)



            addendum:



            • default baseline of above image is as (current bounding box.south)˙ For series of those images for different value ofsize` is:

            documentclassarticle
            usepackagetikz
            usepackagetabularx
            newcolumntypeC>centeringarraybackslashX

            begindocument
            beginfigure
            begintabularxlinewidth>hsize=0.5hsizeC C >hsize=1.5hsizeC
            begintikzpicture[baseline=(current bounding box.south),
            node distance = 0mm,
            box/.style = draw, minimum size=10mm, fill=black,
            outer sep=0pt,
            ]
            edefsize0 % in this MWE the meaning of `size` is changed
            foreach y in 0,...,size
            foreach x in 0,...,size
            ifnumx=y
            node[box] at (x,size-y) ;
            node[box] at (x,y) ;
            else
            node[box,fill=none] at (x,y) ;
            fi

            endtikzpicture
            caption
            &
            begintikzpicture[%baseline=(current bounding box.south),
            node distance = 0mm,
            box/.style = draw, minimum size=10mm, fill=black,
            outer sep=0pt,
            ]
            edefsize1
            foreach y in 0,...,2*size % changed, now number of boxes is odd
            foreach x in 0,...,2*size % changed,
            ifnumx=y
            node[box] at (x,size-y) ;
            node[box] at (x,y) ;
            else
            node[box,fill=none] at (x,y) ;
            fi

            endtikzpicture
            caption
            &
            begintikzpicture[baseline=(current bounding box.south),
            node distance = 0mm,
            box/.style = draw, minimum size=10mm, fill=black,
            outer sep=0pt,
            ]
            edefsize2
            foreach y in 0,...,size
            foreach x in 0,...,size
            ifnumx=y
            node[box] at (x,size-y) ;
            node[box] at (x,y) ;
            else
            node[box,fill=none] at (x,y) ;
            fi

            endtikzpicture
            caption
            endtabularx
            endfigure
            enddocument


            enter image description here






            share|improve this answer

























            • How can this produce the correct case with only one black box?

              – N3buchadnezzar
              May 27 at 15:33











            • With edefsize1? I'm not sure if I understood your comment correctly.

              – Zarko
              May 27 at 15:36











            • size1 produces 4 black squares not 1. Here is how it looks for n=1 and n=2, not the same baseheight either. i.imgur.com/0OamEbM.png

              – N3buchadnezzar
              May 27 at 15:37












            • Indeed. It should be size0.

              – Zarko
              May 27 at 15:41






            • 1





              @N3buchadnezzar, images are aligned to their bottom side. also see "Note" in edited answer.

              – Zarko
              May 27 at 16:06
















            15














            With tikz:



            documentclass[tikz]standalone

            begindocument
            begintikzpicture[
            node distance = 0mm,
            box/.style = draw, minimum size=10mm, fill=black,
            outer sep=0pt,
            ]
            edefsize4
            foreach y in 0,...,size
            foreach x in 0,...,size
            ifnumx=y
            node[box] at (x,size-y) ;
            node[box] at (x,y) ;
            else
            node[box,fill=none] at (x,y) ;
            fi

            endtikzpicture
            enddocument


            enter image description here



            Note: Value of size had to be zero or any even natural number (0, 2, 4, ...)



            addendum:



            • default baseline of above image is as (current bounding box.south)˙ For series of those images for different value ofsize` is:

            documentclassarticle
            usepackagetikz
            usepackagetabularx
            newcolumntypeC>centeringarraybackslashX

            begindocument
            beginfigure
            begintabularxlinewidth>hsize=0.5hsizeC C >hsize=1.5hsizeC
            begintikzpicture[baseline=(current bounding box.south),
            node distance = 0mm,
            box/.style = draw, minimum size=10mm, fill=black,
            outer sep=0pt,
            ]
            edefsize0 % in this MWE the meaning of `size` is changed
            foreach y in 0,...,size
            foreach x in 0,...,size
            ifnumx=y
            node[box] at (x,size-y) ;
            node[box] at (x,y) ;
            else
            node[box,fill=none] at (x,y) ;
            fi

            endtikzpicture
            caption
            &
            begintikzpicture[%baseline=(current bounding box.south),
            node distance = 0mm,
            box/.style = draw, minimum size=10mm, fill=black,
            outer sep=0pt,
            ]
            edefsize1
            foreach y in 0,...,2*size % changed, now number of boxes is odd
            foreach x in 0,...,2*size % changed,
            ifnumx=y
            node[box] at (x,size-y) ;
            node[box] at (x,y) ;
            else
            node[box,fill=none] at (x,y) ;
            fi

            endtikzpicture
            caption
            &
            begintikzpicture[baseline=(current bounding box.south),
            node distance = 0mm,
            box/.style = draw, minimum size=10mm, fill=black,
            outer sep=0pt,
            ]
            edefsize2
            foreach y in 0,...,size
            foreach x in 0,...,size
            ifnumx=y
            node[box] at (x,size-y) ;
            node[box] at (x,y) ;
            else
            node[box,fill=none] at (x,y) ;
            fi

            endtikzpicture
            caption
            endtabularx
            endfigure
            enddocument


            enter image description here






            share|improve this answer

























            • How can this produce the correct case with only one black box?

              – N3buchadnezzar
              May 27 at 15:33











            • With edefsize1? I'm not sure if I understood your comment correctly.

              – Zarko
              May 27 at 15:36











            • size1 produces 4 black squares not 1. Here is how it looks for n=1 and n=2, not the same baseheight either. i.imgur.com/0OamEbM.png

              – N3buchadnezzar
              May 27 at 15:37












            • Indeed. It should be size0.

              – Zarko
              May 27 at 15:41






            • 1





              @N3buchadnezzar, images are aligned to their bottom side. also see "Note" in edited answer.

              – Zarko
              May 27 at 16:06














            15












            15








            15







            With tikz:



            documentclass[tikz]standalone

            begindocument
            begintikzpicture[
            node distance = 0mm,
            box/.style = draw, minimum size=10mm, fill=black,
            outer sep=0pt,
            ]
            edefsize4
            foreach y in 0,...,size
            foreach x in 0,...,size
            ifnumx=y
            node[box] at (x,size-y) ;
            node[box] at (x,y) ;
            else
            node[box,fill=none] at (x,y) ;
            fi

            endtikzpicture
            enddocument


            enter image description here



            Note: Value of size had to be zero or any even natural number (0, 2, 4, ...)



            addendum:



            • default baseline of above image is as (current bounding box.south)˙ For series of those images for different value ofsize` is:

            documentclassarticle
            usepackagetikz
            usepackagetabularx
            newcolumntypeC>centeringarraybackslashX

            begindocument
            beginfigure
            begintabularxlinewidth>hsize=0.5hsizeC C >hsize=1.5hsizeC
            begintikzpicture[baseline=(current bounding box.south),
            node distance = 0mm,
            box/.style = draw, minimum size=10mm, fill=black,
            outer sep=0pt,
            ]
            edefsize0 % in this MWE the meaning of `size` is changed
            foreach y in 0,...,size
            foreach x in 0,...,size
            ifnumx=y
            node[box] at (x,size-y) ;
            node[box] at (x,y) ;
            else
            node[box,fill=none] at (x,y) ;
            fi

            endtikzpicture
            caption
            &
            begintikzpicture[%baseline=(current bounding box.south),
            node distance = 0mm,
            box/.style = draw, minimum size=10mm, fill=black,
            outer sep=0pt,
            ]
            edefsize1
            foreach y in 0,...,2*size % changed, now number of boxes is odd
            foreach x in 0,...,2*size % changed,
            ifnumx=y
            node[box] at (x,size-y) ;
            node[box] at (x,y) ;
            else
            node[box,fill=none] at (x,y) ;
            fi

            endtikzpicture
            caption
            &
            begintikzpicture[baseline=(current bounding box.south),
            node distance = 0mm,
            box/.style = draw, minimum size=10mm, fill=black,
            outer sep=0pt,
            ]
            edefsize2
            foreach y in 0,...,size
            foreach x in 0,...,size
            ifnumx=y
            node[box] at (x,size-y) ;
            node[box] at (x,y) ;
            else
            node[box,fill=none] at (x,y) ;
            fi

            endtikzpicture
            caption
            endtabularx
            endfigure
            enddocument


            enter image description here






            share|improve this answer















            With tikz:



            documentclass[tikz]standalone

            begindocument
            begintikzpicture[
            node distance = 0mm,
            box/.style = draw, minimum size=10mm, fill=black,
            outer sep=0pt,
            ]
            edefsize4
            foreach y in 0,...,size
            foreach x in 0,...,size
            ifnumx=y
            node[box] at (x,size-y) ;
            node[box] at (x,y) ;
            else
            node[box,fill=none] at (x,y) ;
            fi

            endtikzpicture
            enddocument


            enter image description here



            Note: Value of size had to be zero or any even natural number (0, 2, 4, ...)



            addendum:



            • default baseline of above image is as (current bounding box.south)˙ For series of those images for different value ofsize` is:

            documentclassarticle
            usepackagetikz
            usepackagetabularx
            newcolumntypeC>centeringarraybackslashX

            begindocument
            beginfigure
            begintabularxlinewidth>hsize=0.5hsizeC C >hsize=1.5hsizeC
            begintikzpicture[baseline=(current bounding box.south),
            node distance = 0mm,
            box/.style = draw, minimum size=10mm, fill=black,
            outer sep=0pt,
            ]
            edefsize0 % in this MWE the meaning of `size` is changed
            foreach y in 0,...,size
            foreach x in 0,...,size
            ifnumx=y
            node[box] at (x,size-y) ;
            node[box] at (x,y) ;
            else
            node[box,fill=none] at (x,y) ;
            fi

            endtikzpicture
            caption
            &
            begintikzpicture[%baseline=(current bounding box.south),
            node distance = 0mm,
            box/.style = draw, minimum size=10mm, fill=black,
            outer sep=0pt,
            ]
            edefsize1
            foreach y in 0,...,2*size % changed, now number of boxes is odd
            foreach x in 0,...,2*size % changed,
            ifnumx=y
            node[box] at (x,size-y) ;
            node[box] at (x,y) ;
            else
            node[box,fill=none] at (x,y) ;
            fi

            endtikzpicture
            caption
            &
            begintikzpicture[baseline=(current bounding box.south),
            node distance = 0mm,
            box/.style = draw, minimum size=10mm, fill=black,
            outer sep=0pt,
            ]
            edefsize2
            foreach y in 0,...,size
            foreach x in 0,...,size
            ifnumx=y
            node[box] at (x,size-y) ;
            node[box] at (x,y) ;
            else
            node[box,fill=none] at (x,y) ;
            fi

            endtikzpicture
            caption
            endtabularx
            endfigure
            enddocument


            enter image description here







            share|improve this answer














            share|improve this answer



            share|improve this answer








            edited May 27 at 18:04

























            answered May 27 at 15:01









            ZarkoZarko

            137k872180




            137k872180












            • How can this produce the correct case with only one black box?

              – N3buchadnezzar
              May 27 at 15:33











            • With edefsize1? I'm not sure if I understood your comment correctly.

              – Zarko
              May 27 at 15:36











            • size1 produces 4 black squares not 1. Here is how it looks for n=1 and n=2, not the same baseheight either. i.imgur.com/0OamEbM.png

              – N3buchadnezzar
              May 27 at 15:37












            • Indeed. It should be size0.

              – Zarko
              May 27 at 15:41






            • 1





              @N3buchadnezzar, images are aligned to their bottom side. also see "Note" in edited answer.

              – Zarko
              May 27 at 16:06


















            • How can this produce the correct case with only one black box?

              – N3buchadnezzar
              May 27 at 15:33











            • With edefsize1? I'm not sure if I understood your comment correctly.

              – Zarko
              May 27 at 15:36











            • size1 produces 4 black squares not 1. Here is how it looks for n=1 and n=2, not the same baseheight either. i.imgur.com/0OamEbM.png

              – N3buchadnezzar
              May 27 at 15:37












            • Indeed. It should be size0.

              – Zarko
              May 27 at 15:41






            • 1





              @N3buchadnezzar, images are aligned to their bottom side. also see "Note" in edited answer.

              – Zarko
              May 27 at 16:06

















            How can this produce the correct case with only one black box?

            – N3buchadnezzar
            May 27 at 15:33





            How can this produce the correct case with only one black box?

            – N3buchadnezzar
            May 27 at 15:33













            With edefsize1? I'm not sure if I understood your comment correctly.

            – Zarko
            May 27 at 15:36





            With edefsize1? I'm not sure if I understood your comment correctly.

            – Zarko
            May 27 at 15:36













            size1 produces 4 black squares not 1. Here is how it looks for n=1 and n=2, not the same baseheight either. i.imgur.com/0OamEbM.png

            – N3buchadnezzar
            May 27 at 15:37






            size1 produces 4 black squares not 1. Here is how it looks for n=1 and n=2, not the same baseheight either. i.imgur.com/0OamEbM.png

            – N3buchadnezzar
            May 27 at 15:37














            Indeed. It should be size0.

            – Zarko
            May 27 at 15:41





            Indeed. It should be size0.

            – Zarko
            May 27 at 15:41




            1




            1





            @N3buchadnezzar, images are aligned to their bottom side. also see "Note" in edited answer.

            – Zarko
            May 27 at 16:06






            @N3buchadnezzar, images are aligned to their bottom side. also see "Note" in edited answer.

            – Zarko
            May 27 at 16:06












            10














            A PSTricks solution only for fun purposes!



            enter image description here



            documentclass[border=1pt]standalone
            usepackagepstricks
            defobj#1%
            pspicture[dimen=m](#1,#1)
            multips(0,0)(0,1)#1multips(0,0)(1,0)#1psframe(1,1)
            multips(0,0)(1,1)#1psframe*(1,1)
            multips(0,#1)(1,-1)#1psframe*(1,-1)
            endpspicture

            begindocument
            foreach i in 3,5,7objiquad
            enddocument


            Edit



            I invented the algorithm (that has not been patented yet) as follows. No nested loop is needed.



            enter image description here



            documentclass[border=12pt]standalone
            usepackage[nomessages]fp
            usepackagexintexpr
            usepackagepstricks
            pssetunit=5mm
            defobj#1%
            pspicture[dimen=m](#1,#1)
            FPevalN#1*#1-1
            foreach j in 0,...,N

            FPevalytrunc(j/#1:0)
            FPevalxj-#1*y
            xintifboolexpr
            psframe[fillstyle=solid,fillcolor=black](x,y)(+x+1,y+1)
            psframe(x,y)(+x+1,y+1)

            endpspicture
            begindocument
            foreach i in 1,3,5,7,9objiquad
            enddocument





            share|improve this answer

























            • One downvote detected...

              – Money Oriented Programmer
              May 27 at 14:31











            • Accessing 2 dimensional arrays with a single-indexed pointer is much faster.

              – Money Oriented Programmer
              May 27 at 17:04
















            10














            A PSTricks solution only for fun purposes!



            enter image description here



            documentclass[border=1pt]standalone
            usepackagepstricks
            defobj#1%
            pspicture[dimen=m](#1,#1)
            multips(0,0)(0,1)#1multips(0,0)(1,0)#1psframe(1,1)
            multips(0,0)(1,1)#1psframe*(1,1)
            multips(0,#1)(1,-1)#1psframe*(1,-1)
            endpspicture

            begindocument
            foreach i in 3,5,7objiquad
            enddocument


            Edit



            I invented the algorithm (that has not been patented yet) as follows. No nested loop is needed.



            enter image description here



            documentclass[border=12pt]standalone
            usepackage[nomessages]fp
            usepackagexintexpr
            usepackagepstricks
            pssetunit=5mm
            defobj#1%
            pspicture[dimen=m](#1,#1)
            FPevalN#1*#1-1
            foreach j in 0,...,N

            FPevalytrunc(j/#1:0)
            FPevalxj-#1*y
            xintifboolexpr
            psframe[fillstyle=solid,fillcolor=black](x,y)(+x+1,y+1)
            psframe(x,y)(+x+1,y+1)

            endpspicture
            begindocument
            foreach i in 1,3,5,7,9objiquad
            enddocument





            share|improve this answer

























            • One downvote detected...

              – Money Oriented Programmer
              May 27 at 14:31











            • Accessing 2 dimensional arrays with a single-indexed pointer is much faster.

              – Money Oriented Programmer
              May 27 at 17:04














            10












            10








            10







            A PSTricks solution only for fun purposes!



            enter image description here



            documentclass[border=1pt]standalone
            usepackagepstricks
            defobj#1%
            pspicture[dimen=m](#1,#1)
            multips(0,0)(0,1)#1multips(0,0)(1,0)#1psframe(1,1)
            multips(0,0)(1,1)#1psframe*(1,1)
            multips(0,#1)(1,-1)#1psframe*(1,-1)
            endpspicture

            begindocument
            foreach i in 3,5,7objiquad
            enddocument


            Edit



            I invented the algorithm (that has not been patented yet) as follows. No nested loop is needed.



            enter image description here



            documentclass[border=12pt]standalone
            usepackage[nomessages]fp
            usepackagexintexpr
            usepackagepstricks
            pssetunit=5mm
            defobj#1%
            pspicture[dimen=m](#1,#1)
            FPevalN#1*#1-1
            foreach j in 0,...,N

            FPevalytrunc(j/#1:0)
            FPevalxj-#1*y
            xintifboolexpr
            psframe[fillstyle=solid,fillcolor=black](x,y)(+x+1,y+1)
            psframe(x,y)(+x+1,y+1)

            endpspicture
            begindocument
            foreach i in 1,3,5,7,9objiquad
            enddocument





            share|improve this answer















            A PSTricks solution only for fun purposes!



            enter image description here



            documentclass[border=1pt]standalone
            usepackagepstricks
            defobj#1%
            pspicture[dimen=m](#1,#1)
            multips(0,0)(0,1)#1multips(0,0)(1,0)#1psframe(1,1)
            multips(0,0)(1,1)#1psframe*(1,1)
            multips(0,#1)(1,-1)#1psframe*(1,-1)
            endpspicture

            begindocument
            foreach i in 3,5,7objiquad
            enddocument


            Edit



            I invented the algorithm (that has not been patented yet) as follows. No nested loop is needed.



            enter image description here



            documentclass[border=12pt]standalone
            usepackage[nomessages]fp
            usepackagexintexpr
            usepackagepstricks
            pssetunit=5mm
            defobj#1%
            pspicture[dimen=m](#1,#1)
            FPevalN#1*#1-1
            foreach j in 0,...,N

            FPevalytrunc(j/#1:0)
            FPevalxj-#1*y
            xintifboolexpr
            psframe[fillstyle=solid,fillcolor=black](x,y)(+x+1,y+1)
            psframe(x,y)(+x+1,y+1)

            endpspicture
            begindocument
            foreach i in 1,3,5,7,9objiquad
            enddocument






            share|improve this answer














            share|improve this answer



            share|improve this answer








            edited May 27 at 16:55

























            answered May 27 at 14:23









            Money Oriented ProgrammerMoney Oriented Programmer

            5,90411346




            5,90411346












            • One downvote detected...

              – Money Oriented Programmer
              May 27 at 14:31











            • Accessing 2 dimensional arrays with a single-indexed pointer is much faster.

              – Money Oriented Programmer
              May 27 at 17:04


















            • One downvote detected...

              – Money Oriented Programmer
              May 27 at 14:31











            • Accessing 2 dimensional arrays with a single-indexed pointer is much faster.

              – Money Oriented Programmer
              May 27 at 17:04

















            One downvote detected...

            – Money Oriented Programmer
            May 27 at 14:31





            One downvote detected...

            – Money Oriented Programmer
            May 27 at 14:31













            Accessing 2 dimensional arrays with a single-indexed pointer is much faster.

            – Money Oriented Programmer
            May 27 at 17:04






            Accessing 2 dimensional arrays with a single-indexed pointer is much faster.

            – Money Oriented Programmer
            May 27 at 17:04












            9














            Edit:
            The following works for all values of size



            documentclass[tikz]standalone

            begindocument

            begintikzpicture
            edefsize4
            foreach x in 0,...,size foreach y in 0,...,size
            pgfmathsetmacrocolour(x==y
            draw[fill=colour] (x,y) rectangle ++ (1,1);

            endtikzpicture

            enddocument


            enter image description here






            share|improve this answer

























            • How can this produce the correct case with only one black box?

              – N3buchadnezzar
              May 27 at 15:33











            • The mod function was not a good choice, pgfmathparsex+y==size ? "black" : "colour" is better.

              – AboAmmar
              May 27 at 17:00
















            9














            Edit:
            The following works for all values of size



            documentclass[tikz]standalone

            begindocument

            begintikzpicture
            edefsize4
            foreach x in 0,...,size foreach y in 0,...,size
            pgfmathsetmacrocolour(x==y
            draw[fill=colour] (x,y) rectangle ++ (1,1);

            endtikzpicture

            enddocument


            enter image description here






            share|improve this answer

























            • How can this produce the correct case with only one black box?

              – N3buchadnezzar
              May 27 at 15:33











            • The mod function was not a good choice, pgfmathparsex+y==size ? "black" : "colour" is better.

              – AboAmmar
              May 27 at 17:00














            9












            9








            9







            Edit:
            The following works for all values of size



            documentclass[tikz]standalone

            begindocument

            begintikzpicture
            edefsize4
            foreach x in 0,...,size foreach y in 0,...,size
            pgfmathsetmacrocolour(x==y
            draw[fill=colour] (x,y) rectangle ++ (1,1);

            endtikzpicture

            enddocument


            enter image description here






            share|improve this answer















            Edit:
            The following works for all values of size



            documentclass[tikz]standalone

            begindocument

            begintikzpicture
            edefsize4
            foreach x in 0,...,size foreach y in 0,...,size
            pgfmathsetmacrocolour(x==y
            draw[fill=colour] (x,y) rectangle ++ (1,1);

            endtikzpicture

            enddocument


            enter image description here







            share|improve this answer














            share|improve this answer



            share|improve this answer








            edited May 27 at 17:45

























            answered May 27 at 14:50









            AboAmmarAboAmmar

            35.7k32985




            35.7k32985












            • How can this produce the correct case with only one black box?

              – N3buchadnezzar
              May 27 at 15:33











            • The mod function was not a good choice, pgfmathparsex+y==size ? "black" : "colour" is better.

              – AboAmmar
              May 27 at 17:00


















            • How can this produce the correct case with only one black box?

              – N3buchadnezzar
              May 27 at 15:33











            • The mod function was not a good choice, pgfmathparsex+y==size ? "black" : "colour" is better.

              – AboAmmar
              May 27 at 17:00

















            How can this produce the correct case with only one black box?

            – N3buchadnezzar
            May 27 at 15:33





            How can this produce the correct case with only one black box?

            – N3buchadnezzar
            May 27 at 15:33













            The mod function was not a good choice, pgfmathparsex+y==size ? "black" : "colour" is better.

            – AboAmmar
            May 27 at 17:00






            The mod function was not a good choice, pgfmathparsex+y==size ? "black" : "colour" is better.

            – AboAmmar
            May 27 at 17:00












            1














            I do not see the reason for a double loop, nor complicated conditions.



            documentclass[tikz,border=3.14mm]standalone
            begindocument
            begintikzpicture[xboard/.style=insert path=
            (0,0) grid (#1,#1)
            foreach X in 1,...,#1
            (X-0.5,X-0.5) picbx (X-0.5,#1-X+0.5) picbx,
            pics/bx/.style=code=fill (-0.5,-0.5) rectangle (0.5,0.5);]
            draw[xboard=1] [xshift=2cm,xboard=3]
            [xshift=4cm,xboard=5] [xshift=6cm,xboard=7];
            endtikzpicture
            enddocument


            enter image description here






            share|improve this answer



























              1














              I do not see the reason for a double loop, nor complicated conditions.



              documentclass[tikz,border=3.14mm]standalone
              begindocument
              begintikzpicture[xboard/.style=insert path=
              (0,0) grid (#1,#1)
              foreach X in 1,...,#1
              (X-0.5,X-0.5) picbx (X-0.5,#1-X+0.5) picbx,
              pics/bx/.style=code=fill (-0.5,-0.5) rectangle (0.5,0.5);]
              draw[xboard=1] [xshift=2cm,xboard=3]
              [xshift=4cm,xboard=5] [xshift=6cm,xboard=7];
              endtikzpicture
              enddocument


              enter image description here






              share|improve this answer

























                1












                1








                1







                I do not see the reason for a double loop, nor complicated conditions.



                documentclass[tikz,border=3.14mm]standalone
                begindocument
                begintikzpicture[xboard/.style=insert path=
                (0,0) grid (#1,#1)
                foreach X in 1,...,#1
                (X-0.5,X-0.5) picbx (X-0.5,#1-X+0.5) picbx,
                pics/bx/.style=code=fill (-0.5,-0.5) rectangle (0.5,0.5);]
                draw[xboard=1] [xshift=2cm,xboard=3]
                [xshift=4cm,xboard=5] [xshift=6cm,xboard=7];
                endtikzpicture
                enddocument


                enter image description here






                share|improve this answer













                I do not see the reason for a double loop, nor complicated conditions.



                documentclass[tikz,border=3.14mm]standalone
                begindocument
                begintikzpicture[xboard/.style=insert path=
                (0,0) grid (#1,#1)
                foreach X in 1,...,#1
                (X-0.5,X-0.5) picbx (X-0.5,#1-X+0.5) picbx,
                pics/bx/.style=code=fill (-0.5,-0.5) rectangle (0.5,0.5);]
                draw[xboard=1] [xshift=2cm,xboard=3]
                [xshift=4cm,xboard=5] [xshift=6cm,xboard=7];
                endtikzpicture
                enddocument


                enter image description here







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered May 28 at 3:26









                marmotmarmot

                135k6175323




                135k6175323



























                    draft saved

                    draft discarded
















































                    Thanks for contributing an answer to TeX - LaTeX Stack Exchange!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid


                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.

                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function ()
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f492863%2fdraw-a-checker-pattern-with-a-black-x-in-the-center%23new-answer', 'question_page');

                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    How to write a 12-bar blues melodyI-IV-V blues progressionHow to play the bridges in a standard blues progressionHow does Gdim7 fit in C# minor?question on a certain chord progressionMusicology of Melody12 bar blues, spread rhythm: alternative to 6th chord to avoid finger stretchChord progressions/ Root key/ MelodiesHow to put chords (POP-EDM) under a given lead vocal melody (starting from a good knowledge in music theory)Are there “rules” for improvising with the minor pentatonic scale over 12-bar shuffle?Confusion about blues scale and chords

                    What if the end-user didn't have the required library?What is setup.py?What is a clean, pythonic way to have multiple constructors in Python?What does Ruby have that Python doesn't, and vice versa?What is the reason for having '//' in Python?How do I create a namespace package in Python?How to package shared objects that python modules depend on?setuptools vs. distutils: why is distutils still a thing?Navigation in Windows 10 vs code not going to virtualenv library when the same library is installed at user levelPython create package for local usePackaging a project that uses multiple python versionsWhy is permission denied on pip install except for when “--user” is included at end of command?

                    Esgonzo ibérico Índice Descrición Distribución Hábitat Ameazas Notas Véxase tamén "Acerca dos nomes dos anfibios e réptiles galegos""Chalcides bedriagai"Chalcides bedriagai en Carrascal, L. M. Salvador, A. (Eds). Enciclopedia virtual de los vertebrados españoles. Museo Nacional de Ciencias Naturales, Madrid. España.Fotos