创建一个 9x9 的正方形网格

创建一个 9x9 的正方形网格

我是 Latex 新手。有没有办法使用 tikzpicture 创建类似此图的将棋图?我尝试过使用方形单元格的表格和旋转汉字的旋转包,并创建了一些非常简单的图表。我搜索了一下,似乎使用 tikzpicture 网格方法(以中心节点输入汉字)是更好的解决方案,但我不知道该怎么做。我需要以下方面的帮助:

  1. 1.9x9 方格网格,外边框加粗
  2. 2.网格外部的坐标(我尝试了多列,但它弄乱了我的方格)
  3. 3.3x3 正方形交叉处的黑点
  4. 4.汉字居中并完全填满正方形(我不知道如何让字母用表格完全填满正方形)

在此处输入图片描述

在此处输入图片描述

答案1

我不认识汉字,所以我不使用它们。我认为其他要点已在此示例中得到解决。

\documentclass[tikz,border=3.14mm]{standalone}
\usetikzlibrary{matrix}
\begin{document}
\begin{tikzpicture}[font=\sffamily]
 \matrix[matrix of nodes,column sep=-\pgflinewidth,row sep=-\pgflinewidth,
 inner sep=0pt,
 draw,thick,nodes={draw,minimum width=1.2em,minimum height=1.2em,anchor=center,
 inner sep=0pt,scale=1.2,outer sep=0pt},
 nodes in empty cells] 
 (mat) {
 A & B & & & & & & & \\
 & & & & & & & & \\
 & & & & & & & & \\
 & & & & & & & & \\
 & & & & C & & & & \\
 & & & & & & & & \\
 & & & & & & & & \\
 & & & & & & & & \\
 & & & & & & & & \\
 };
 \foreach \X [evaluate=\X as \Y using {int(10-\X)}]  in {1,...,9}
 {\node[above] at (mat-1-\Y.north) {\X};}
 \foreach \X [count=\Y]  in {A,B,...,I}
 {\node[right] at (mat-\Y-9.east) {\X};}
 \foreach \X/\Y  in {3/3,6/3,3/6,6/6}
 {\path (mat-\X-\Y) -- (mat-\the\numexpr\X+1\relax-\the\numexpr\Y+1\relax)
 node[midway,circle,fill,inner sep=1.5pt]{};}
\end{tikzpicture}
\end{document}

在此处输入图片描述

答案2

您可以滥用该logicpuzzle包。

\documentclass{article}
\usepackage{xcolor}
\usepackage{logicpuzzle}
\renewcommand\familydefault{\sfdefault}
\let\shogiH\shipH
\let\shogiV\sumV
\begin{document}
\begin{logicpuzzle}[rows=9,columns=9,color=yellow,fontsize=huge]
\shogiH{9,8,7,6,5,4,3,2,1}
\shogiV{9,8,7,6,5,4,3,2,1}
\foreach \X/\Y  in {4/4,7/4,4/7,7/7}
  {\node[circle,fill,text width=4mm,inner sep=0pt] at (\X,\Y) {};}
\fillcell{5}{3}
\setrow{7}{4,7,1,{\textcolor{red}{5}},{},2}
\setrow{5}{{},{},{},{},C}
\setrow{3}{3,8,5,{},{4},{},1}
\framepuzzle
\end{logicpuzzle}
\end{document}

示例图片

和 marmot 一样,我对汉字一无所知。但这对你来说是一项很好的练习!;-)

相关内容