如何在表格單元格的頂角創建一個帶有邊框的小單元格?

如何在表格單元格的頂角創建一個帶有邊框的小單元格?

在此輸入影像描述如何使表格中單元格頂角的節點帶有邊框,並且不會擾亂表格中空單元格的對齊方式?

\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

含鈦kZ 這很容易。這個答案定義了一種inlay可以用於這些的樣式。您可以新增到對應的儲存格

|[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}

上述程式碼的輸出

相關內容