NiceTabular (NiceMatrix) Leere Zeile ohne vertikale Linien

NiceTabular (NiceMatrix) Leere Zeile ohne vertikale Linien

NiceTabularIch versuche, eine kleine, leere Zeile in eine Umgebung einzufügen .NiceMatrix HandbuchStaaten (Abschnitt 5.1.1 Die vertikalen Regeln):

In den Umgebungen von nicematrix werden die durch | in den Präambeln der Umgebungen angegebenen vertikalen Regeln niemals gebrochen, auch nicht durch eine unvollständige Zeile oder eine doppelte horizontale Regel, die durch \hline\hline angegeben wird.

Das bedeutet, dass die leere Zeile hier die vertikalen Linien zeigt:

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

Bildbeschreibung hier eingeben

Ein schneller Versuch, einen Block zu erstellen, ergab eine Linie in voller Höhe, die noch immer die äußersten (= Rand-)vertikalen Linien enthielt.

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

Bildbeschreibung hier eingeben

Wie kann ich eine kleine leere Linie zwischen den Zeilen ohne vertikale Linien erhalten?

Antwort1

Sie können die Regeln der klassischen Version {tabular}(des Pakets array, das von geladen wird nicematrix) verwenden.

Das bedeutet, dass:

  • Sie verwenden den klassischen Befehl \hline(und \hline\hlinefür die Doppelregel);
  • Sie müssen einen Spaltentyp mit dem Verhalten des klassischen |Of definieren array(das klassische |Of arraywurde durch überschrieben nicematrix): \newcolumntype{I}{!{\vrule}}das erledigt die Aufgabe.
\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}

Natürlich macht es in diesem Beispiel keinen Sinn, zu verwenden {NiceTabular}(ich würde verwenden {tabular}), aber Sie möchten wahrscheinlich andere Funktionen verwenden, die nicematrixin Ihrer echten Tabelle bereitgestellt werden).

Ausgabe des obigen Codes


Denken Sie andererseits daran, dass die Hauptfunktion von darin nicematrixbesteht, PGF/Tikz-Knoten unter den Zellen, Spalten und Zeilen eines klassischen einzufügen {tabular}. Das bedeutet, dass es mit Tikz immer möglich ist, mithilfe dieser Knoten jede beliebige Regel zu zeichnen.


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

Ausgabe des zweiten Codes

verwandte Informationen