nicematrix: обработка пустых ячеек / рисование линий в NiceArray

nicematrix: обработка пустых ячеек / рисование линий в NiceArray

введите описание изображения здесь

Я хотел бы добавить/нарисовать линии (как показано красным) поверхипод буквами A, B и D (не в \cdots) -каждый к верхнему и нижнему концу матрицы.

Какой правильный метод nicematrix для этого использует?

· Кажется, есть проблема с рисованием в "пустых ячейках". Знает ли nicematrix ключ, подобный ключу TikZ-matrix nodes into empty cells?

·Можно ли выполнить эту задачу элегантно с помощью цикла foreach?

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

решение1

Ваша инструкция по Tikz \draw (2-1) -- (1-|1.5) ;кажется хорошей (если я действительно понимаю, что вы хотите нарисовать...).

Для цикла можно (например) использовать foreachцикл (предоставляемый , pgfforкоторый загружается pgf, а сам загружается nicematrix).

Вот пример:

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

В \CodeAfterсчетчике LaTeX jColсодержится общее количество столбцов массива (тогда как в теле массива он содержит номер текущего столбца).

Вывод кода выше

Вы говорите в своем вопросе, что вам не нужно никаких правил выше и ниже \cdots. Конечно, предыдущий код не определяет команду \cdotsв ячейке автоматически... Вы на самом деле хотите код с автоматическим определением положения потенциальных команд \cdots(написать код с такой функцией можно, но это не так просто)?

Связанный контент