表のセルの上隅に境界線のある小さなセルを作成するにはどうすればよいですか?

表のセルの上隅に境界線のある小さなセルを作成するにはどうすればよいですか?

ここに画像の説明を入力してください境界線のあるテーブル内のセルの上隅にあるノードを取得し、テーブル内の空のセルの配置を乱さないようにするにはどうすればよいですか?

\documentclass[12pt]{standalone}
\usepackage{tikz}
\usepackage{array}
\begin{document}
\begin{tabular}{|c|c|c|c|c}\cline{1-4} 
20 \raisebox{0.2cm}{\small 4} & \raisebox{0.2cm}{\small 6} & \raisebox{0.2cm}{\small 8} & \raisebox{0.2cm}{\small 8} & 40\\ 
\cline{1-4} 
& & & & 60\\ \cline{1-4} 
& & & & 50 \\ \cline{1-4} 
\multicolumn{1}{c}{20} & \multicolumn{1}{c}{30} & \multicolumn{1}{c}{50} & \multicolumn{1}{c}{50} & 
150\\ 
\end{tabular}

答え1

TiとinlayZこれはとても簡単です。この回答は、それらに使用できるスタイルを定義します。それぞれのセルに追加できます

|[inlay=<content>]|

コード:

\documentclass[tikz,border=3mm]{standalone}
\usepackage{amsmath}
\usetikzlibrary{matrix}
\begin{document}
\begin{tikzpicture}[mmat/.style={matrix of math nodes,nodes in empty cells,
        row sep=-\pgflinewidth,column sep=-\pgflinewidth,
        nodes={minimum width=5.5em,minimum height=3.5em,
            draw,anchor=center,
            text depth=0.25ex,text height=0.8em}},
        inlay/.style={label={[draw,thin,anchor=north east,minimum width=0em,
        minimum height=0em,inner sep=1.4pt]north east:#1}}]
 \matrix[mmat] (mat){
 &  P & Q & R & S & \textit{Supply} \\
 A & |[inlay=180]| 12& |[inlay=150]| 10 & |[inlay=170]| 12 & 13 & 500 \\
 };         
 \draw (mat-1-1.north west) -- (mat-1-1.south east);
 \draw[stealth-] ([yshift=2ex,xshift=-0.5ex]mat-1-1.east) 
    -- ++ (-2ex,0) node[left,font=\itshape]{To};
 \draw[stealth-] ([xshift=3ex,yshift=0.5ex]mat-1-1.south west) 
    -- ++ (0,2ex) node[above,font=\itshape]{From};
\end{tikzpicture}
\end{document}

ここに画像の説明を入力してください

答え2

{NiceArray}以下はを使用したソリューションですnicematrix。この環境は の従来の環境{nicearray}( array) に似ていますが、セル、行、列の下に PGF/Tikz ノードを作成します。これらのノードを使用して、配列の構築後に小さなコーナーを追加します。

\documentclass{article}
\usepackage{nicematrix,tikz}

\ExplSyntaxOn
\makeatletter
\cs_new_protected:Nn \__rakatex_draw_angle:nnn 
  { 
    \begin{tikzpicture}
    \draw ([xshift=-5.5mm]#1-|#2) |- ([yshift=-4mm]#1-|#2) ; 
    \node at ([xshift=-2.75mm,yshift=-2mm]#1-|#2) { \small #3 } ;
    \end{tikzpicture}
  }

\NewDocumentCommand{\Cell}{mm}
  {
    #1
    \tl_gput_right:Nx \g_nicematrix_code_after_tl
      { 
        \__rakatex_draw_angle:nnn
          { \int_use:N \c@iRow } 
          { \int_eval:n { \c@jCol + 1 } } 
          { #2 } 
      }
  }
\makeatother
\ExplSyntaxOff

\begin{document}

\renewcommand{\arraystretch}{2}
$\begin{NiceArray}{c*{4}{wc{1.5cm}}c}[hvlines]
\diagbox{\downarrow\emph{From}}{\emph{To}\to}& P & Q & R & S & \text{\emph{Supply}} \\
A & \Cell{12}{180} & \Cell{10}{150} & \Cell{12}{170} & 13 & 500 \\
B & 7 & 11 & \Cell{8}{180} & \Cell{14}{120} & 300 \\
C & 6 & 16 & 11 & \Cell{7}{200} & 200 \\
\text{Demand} & 180 & 150 & 350 & 320 & 1000
\end{NiceArray}$


\end{document}

上記コードの出力

関連情報