NiceTabular (NiceMatrix) Пустая строка без вертикальных линий

NiceTabular (NiceMatrix) Пустая строка без вертикальных линий

Я пытаюсь добавить небольшую пустую строку в NiceTabularсреду.NiceMatrix руководствогласит (Раздел 5.1.1 Вертикальные правила):

В средах nicematrix вертикальные правила, указанные в преамбулах сред с помощью |, никогда не нарушаются, даже неполной строкой или двойной горизонтальной линией, указанной с помощью \hline\hline

Это означает, что пустая строка здесь показывает вертикальные правила:

\begin{table}[h]
    \small
    \centering
    \begin{NiceTabularX}{\textwidth}{ll}[hvlines]
        \textit{Year}
        &
        \textit{Fruit}
    \\ \hline \hline
        2022
        &
        Apple
    \\
    \end{NiceTabularX}
\end{table}

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

Быстрая попытка создания блока дала строку полной высоты, которая все еще включала самые внешние (=граничные) вертикальные линии.

\begin{table}[h]
    \small
    \centering
    \begin{NiceTabularX}{\textwidth}{ll}[hvlines]
        \textit{Year}
        &
        \textit{Fruit}
    \\ \Block{1-2}{\hline \hline} \\
        2022
        &
        Apple
    \\
    \end{NiceTabularX}
\end{table}

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

Как сделать маленькую пустую линию между строками без каких-либо вертикальных линий?

решение1

Вы можете использовать правила классики {tabular}(пакета array, который загружается nicematrix).

Что означает, что:

  • вы используете классическую команду \hline\hline\hlineдля двойного правила);
  • вам нужно определить тип столбца с поведением классического |of array(этот классический |of arrayбыл перезаписан на nicematrix): \newcolumntype{I}{!{\vrule}}сделает эту работу.
\documentclass{article}
\usepackage{nicematrix}

\begin{document}

\newcolumntype{I}{!{\vrule}}

\begin{table}[h]
\small
\centering
\begin{NiceTabular}{IlIlI}
    \hline
    \textit{Year}
    &
    \textit{Fruit} \\
    \hline\hline
    2022
    &
    Apple \\
    \hline
\end{NiceTabular}
\end{table}

\end{document}

Конечно, в этом примере нет смысла использовать {NiceTabular}(я бы использовал {tabular}), но вы, вероятно, захотите использовать другие функции, предоставляемые nicematrixв вашей реальной таблице).

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


С другой стороны, помните, что главная функция заключается в том, nicematrixчтобы вставлять узлы PGF/Tikz под ячейки, столбцы и строки классического {tabular}. Это означает, что всегда можно нарисовать любое правило с помощью Tikz, используя эти узлы.


\begin{table}[h]
\small
\centering
\renewcommand{\arraystretch}{1.4}
\begin{NiceTabular}{ll}[hvlines]
    \textit{Year}
    &
    \textit{Fruit} \\
    2022
    &
    Apple \\
\CodeAfter
    \tikz \draw [line width = 2 \pgflinewidth] (2-|1) -- (2-|last) ; 
    \tikz \draw [white, shorten > = -1 pt, shorten <= -1 pt] (2-|1) -- (2-|last) ; 
\end{NiceTabular}
\end{table}

\end{document}

Вывод второго кода

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