
quando executo esse algoritmo não há erro, mas quando combino esse algoritmo em meu arquivo, ocorre um erro. Por favor me dê uma solução.
\documentclass[border=3mm,preview]{standalone}
\usepackage{nicematrix}
\usepackage{tikz}
\usetikzlibrary{fit}
\newcommand\mcc[1]{\multicolumn{1}{c}{#1}}
\begin{document}
\[
\begin{NiceMatrix}
& M_1 & M_2 & M_3 & M_4 \\
J_1 & 0 & 0.66 & 2 & 0.33 \\
J_2 & 1 & 0 & 1.22 & 0.33 \\
J_3 & 0 & 1 & 2 & 1 \\
J_4 & 2.33 & 0.33 & 1.67 & 0 \\
\CodeAfter
\tikz{
\node (f) [draw, inner xsep=1em, fit=(2-2) (5-5)] {};
\draw[line width=3pt, opacity=0.2]
(2-2 |- f.north) -- (5-2 |- f.south)
(3-2 -| f.west) -- (3-5 -| f.east)
(5-2 -| f.west) -- (5-5 -| f.east);
}
\end{NiceMatrix}
\]
\end{document}
Responder1
É quase impossível ajudá-lo, se você não fornecer nenhuma informação sobre o seu documento (qual classe de documento você usa, etc), consequentemente a minha resposta na sua pergunta anterior usa a standalone
classe de documento e não se preocupa em colocar a imagem fornecida no seu documento .
De qualquer forma, meu código, que você usa para sua imagem, é independente da classe de documento usada. Além disso, não há problemas com texto sobreposto ou não visível acima/abaixo da imagem. A compilação não gera nenhum aviso nem erro. Por exemplo:
\documentclass{article}
\usepackage{nicematrix}
\usepackage{tikz}
\usetikzlibrary{fit}
\usepackage{lipsum}
\begin{document}
\lipsum[11]
\[
\begin{NiceMatrix}
& M_1 & M_2 & M_3 & M_4 \\
J_1 & 0 & 0.66 & 2 & 0.33 \\
J_2 & 1 & 0 & 1.22 & 0.33 \\
J_3 & 0 & 1 & 2 & 1 \\
J_4 & 2.33 & 0.33 & 1.67 & 0 \\
\CodeAfter
\tikz{
\node (f) [draw,
inner xsep=1em, inner ysep=1pt,
fit=(2-2) (5-5)] {};
\draw[line width=3pt, opacity=0.2]
(2-2 |- f.north) -- (5-2 |- f.south)
(3-2 -| f.west) -- (3-5 -| f.east)
(5-2 -| f.west) -- (5-5 -| f.east);
}
\end{NiceMatrix}
\]
\lipsum[12]
\[
\NiceMatrixOptions{%
code-for-first-row = \scriptstyle\color{red},
code-for-first-col = \scriptstyle\color{blue}}
%
\begin{NiceMatrix}[first-row,first-col]
& M_1 & M_2 & M_3 & M_4 \\
J_1 & 0 & 0.66 & 2 & 0.33 \\
J_2 & 1 & 0 & 1.22 & 0.33 \\
J_3 & 0 & 1 & 2 & 1 \\
J_4 & 2.33 & 0.33 & 1.67 & 0 \\
\CodeAfter
\tikz{
\node (f) [draw,
inner xsep=0.8em, inner ysep=1pt, outer sep=2pt, % <---
fit=(1-1) (4-4)] {};
\draw[line width=3pt, opacity=0.2]
(1-1 |- f.north) -- (4-1 |- f.south)
(2-1 -| f.west) -- (2-4 -| f.east)
(4-1 -| f.west) -- (4-4 -| f.east);
}
\end{NiceMatrix}
\]
\end{document}
funciona bem. A segunda imagem é apenas uma versão um pouco mais sofisticada da primeira, mostra mais possibilidades de uso NiceMatrix
do ambiente.
Então, não está claro qual é o seu problema. Com certeza não é causado pela solução mostrada no MWE na sua pergunta. A origem do problema que você enfrenta não é causada por ele.
Responder2
A título de informação, com versões recentes do nicematrix
, é possível fazer essa construção sem transparência e sem a biblioteca Tikz fit
.
\documentclass[border=3mm,preview]{standalone}
\usepackage{nicematrix,tikz}
\begin{document}
\[
\begin{NiceArray}{|cccc|}[first-col,first-row,last-col]
\CodeBefore
\begin{tikzpicture} [line width = 3pt,lightgray]
\draw (1-|1.5) -- (last-|1.5) ;
\draw (2.5-|1) -- (2.5-|last) ;
\draw (4.5-|1) -- (4.5-|last) ;
\end{tikzpicture}
\Body
& M_1 & M_2 & M_3 & M_4 & \\
\Hline
J_1 & 0 & 0.66 & 2 & 0.33 \\
J_2 & 1 & 0 & 1.22 & 0.33 \\
J_3 & 0 & 1 & 2 & 1 \\
J_4 & 2.33 & 0.33 & 1.67 & 0 \\
\Hline
\end{NiceArray}
\]
\end{document}