
Ich möchte Linien (wie die gezeigte rote) hinzufügen/zeichnen überUndunter den Buchstaben A, B und D (nicht am \cdots
) -jeweils zum oberen und unteren Ende der Matrix.
Was ist die richtige Methode von Nicematrix dafür?
· Es scheint ein Problem beim Zeichnen in „leeren Zellen“ zu geben. Kennt nicematrix einen Schlüssel wie TikZ-matrix nodes into empty cells
?
·Kann ich diese Aufgabe elegant mit einer Foreach-Schleife erledigen?
\documentclass{article}
\usepackage{amsmath}
\usepackage{nicematrix}
\usepackage{tikz}
\begin{document}
$\begin{NiceArray}{(c c c c) }
& & & \\
A & B & \cdots & D \\
& & & \\
\CodeAfter
\begin{tikzpicture}[]
%\draw[red] (2-1) -- (1-1); % does not work-->' No shape named `1-1' is known.'
\draw[red] (2-1) -- (1.5|-1); % work
\end{tikzpicture}
\end{NiceArray}$
\end{document}
Antwort1
Ihre Tikz-Anleitung \draw (2-1) -- (1-|1.5) ;
scheint gut zu sein (wenn ich überhaupt verstehe, was Sie zeichnen möchten ...).
Für eine Schleife kann (beispielsweise) eine foreach
Schleife verwendet werden (bereitgestellt von pgffor
, die von geladen wird pgf
und selbst von geladen wird nicematrix
).
Hier ist ein Beispiel:
\documentclass{article}
\usepackage{nicematrix}
\usepackage{tikz}
\begin{document}
$\begin{NiceArray}{(c c c c)}
\NotEmpty & & & \\
A & B & \cdots & D \\
& & & \\
\CodeAfter
\begin{tikzpicture} [red]
\foreach \i in {1,...,\value{jCol}}
{
\draw (2-\i) -- (1-|\i.5) ;
\draw (2-\i) -- (last-|\i.5) ;
} ;
\end{tikzpicture}
\end{NiceArray}$
\end{document}
In \CodeAfter
LaTeX enthält der Zähler jCol
die Gesamtzahl der Spalten des Arrays (während er im Hauptteil des Arrays die Nummer der aktuellen Spalte enthält).
Sie sagen in Ihrer Frage, dass Sie keine Regel über und unter dem möchten \cdots
. Natürlich erkennt der vorherige Code den Befehl \cdots
in der Zelle nicht automatisch ... Möchten Sie tatsächlich einen Code mit automatischer Erkennung der Position der potenziellen Befehle \cdots
(es ist möglich, einen Code mit einer solchen Funktion zu schreiben, aber es ist nicht so einfach)?