表形式のセルに背景(縦線)を作成するにはどうすればいいですか?

表形式のセルに背景(縦線)を作成するにはどうすればいいですか?

セルの背景に次の 2 本の水平線を描く方法はありますか?セルの中央には青または緑の水平線が含まれている必要があります。または、3 番目のオプションでは両方が含まれます。

以下に、適用したい簡略化された表を示しますが、どういうわけか方法がわかりません。

\documentclass[landscape,11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[czech, english]{babel}
%How to make background in tabular cell (vertical lines)?

%USEPACKAGE
\usepackage{tikz}
\usepackage{tcolorbox}
\usepackage{color}
\usepackage{multicol}
\usepackage{multirow}
\usepackage{hhline}

%--------------------
\usepackage{geometry}
\geometry{
    a4paper,
    total={210mm,297mm},
    left=10mm,
    right=10mm,
    top=6mm,
    bottom=2mm,
    bindingoffset=0mm
}

\begin{document}
\pagestyle{empty}
\thispagestyle{empty}
\shorthandoff{-}

\begin{tabular}{|c|c|c|c|}
\hline
\multicolumn{4}{|c|}{Tabular XY} \\
\hline\hline

\multirow{2}{*}{1} & \parbox[c][1cm][c]{2cm}{\centering \scriptsize Lorem ipsum dolor sit amet} & \parbox[c][1cm][c]{1cm}{\centering \scriptsize Lorem ipsum} & Y \\

\hhline{*{1}{|~}*{2}{|-}|-|}

& \parbox[c][1cm][c]{2cm}{\centering \scriptsize Lorem ipsum dolor sit amet} & \parbox[c][1cm][c]{1cm}{\centering \scriptsize Lorem ipsum} & X \\

\hline
\end{tabular}

\end{document}

ここに画像の説明を入力してください

答え1

ここに画像の説明を入力してください

\documentclass[landscape,11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[czech, english]{babel}
%How to make background in tabular cell (vertical lines)?

%USEPACKAGE
\usepackage{tikz}
\usepackage{tcolorbox}
\usepackage{color}
\usepackage{multicol}
\usepackage{multirow}
\usepackage{hhline}

%--------------------
\usepackage{geometry}
\geometry{
    a4paper,
    total={210mm,297mm},
    left=10mm,
    right=10mm,
    top=6mm,
    bottom=2mm,
    bindingoffset=0mm
}

\usepackage{colortbl}
\begin{document}
\pagestyle{empty}
\thispagestyle{empty}
\shorthandoff{-}

\newcommand\R[1]{\mbox{}\hspace{\dimexpr#1-2.5pt}\textcolor{red}{\vrule width 5pt}\hspace{\dimexpr-#1-2.5pt}\mbox{}}
\newcommand\G[1]{\mbox{}\hspace{\dimexpr#1-2.5pt}\textcolor{green}{\vrule width 5pt}\hspace{\dimexpr-#1-2.5pt}\mbox{}}
\newcommand\RG[1]{\mbox{}\hspace{\dimexpr#1-7.5pt}\textcolor{red}{\vrule width 5pt}%
                                                 \hspace{5pt}%
                                                 \textcolor{green}{\vrule width 5pt}%
                                                 \hspace{\dimexpr-#1-7.5pt}\mbox{}}
\begin{tabular}{|c|c|c|c|}
\hline
\multicolumn{4}{|c|}{Tabular XY} \\
\hline\hline

\multirow{2}{*}{1} &\R{1cm} \parbox[c][1cm][c]{2cm}{\centering \scriptsize Lorem ipsum dolor sit amet} & \G{.5cm}\parbox[c][1cm][c]{1cm}{\centering \scriptsize Lorem ipsum} & Y \\

\hhline{*{1}{|~}*{2}{|-}|-|}

& \RG{1cm}\parbox[c][1cm][c]{2cm}{\centering \scriptsize Lorem ipsum dolor sit amet} & \parbox[c][1cm][c]{1cm}{\centering \scriptsize Lorem ipsum} & X \\

\hline
\end{tabular}

\end{document}

答え2

{NiceTabular}以下はを使用したソリューションですnicematrix。この環境は の従来の環境{tabular}( array) に似ていますが、セル、行、列の下に PGF/Tikz ノードも作成します。

\CodeBefore次に、 Tikz でこれらのノードを使用して、必要なルールを描画することが可能になります。

\documentclass{article}
\usepackage[table]{xcolor}
\doublerulesepcolor{white}

\usepackage{nicematrix,tikz}
\usetikzlibrary{calc}

\begin{document}


\begin{NiceTabular}{cm[c]{25mm}m[c]{15mm}c}[vlines,cell-space-limits=3pt]
\CodeBefore
  \begin{tikzpicture} [line width = 2mm]
  \draw [green] (2-|2.5) -- (3-|2.5) ; 
  \draw [blue!50] (2-|3.5) -- (3-|3.5) ; 
  % now, the cell with both rules
  \draw [green] ($(3-|2)!0.4!(3-|3)$) -- ($(4-|2)!0.4!(4-|3)$) ;
  \draw [blue!50] ($(3-|2)!0.6!(3-|3)$) -- ($(4-|2)!0.6!(4-|3)$) ;
  \end{tikzpicture}
\Body
  \Hline
  \Block{1-*}{Tabular XY} \\
  \Hline\Hline
  \Block{2-1}{1} & Lorem ipsum dolor sit amet & Lorem ipsum & Y \\
  \Hline
  & Lorem ipsum dolor sit amet & Lorem ipsum & X \\
  \Hline
\end{NiceTabular}

\end{document}

複数のコンパイルが必要です (PGF/Tikz ノードのため)。 上記コードの出力

関連情報