대각선으로 임의의 표 셀을 지웁니다.단일 셀을 교차시키는 방법을 보여줍니다. 여러 행 및/또는 여러 열에 걸쳐 있는 셀에 줄을 그어 지울 수 있나요?
편집: 이것은 중복되지 않습니다. 왜냐하면 정확히 한 줄로 줄을 그어야 하기 때문입니다. 반면에 해당 질문은 실제 십자가로 셀을 지워야 합니다. 나는 이것이 어떤 사람들에게는 정말 간단할 수 있다는 것을 알고 있지만 나에게는 거의 완전히 불투명합니다(변경 방법).
답변1
다음은 단지 빠른 적응입니다해결책은 여기.
\documentclass{article}
\pagestyle{empty}% for cropping
\usepackage{tikz}
\usetikzlibrary{calc}
\usepackage{zref-savepos}
\usepackage{multirow}
\newcounter{NoTableEntry}
\renewcommand*{\theNoTableEntry}{NTE-\the\value{NoTableEntry}}
\newcommand*{\smulticolumn}[3]{%
\multicolumn{#1}{#2}{%
\scell{#3}
}%
}
\newcommand*{\smultirow}[3]{%
\multirow{#1}{#2}{%
\scell{#3}
}%
}
\newcommand*{\scell}[1]{
\stepcounter{NoTableEntry}%
\vadjust pre{\zsavepos{\theNoTableEntry t}}% top
\vadjust{\zsavepos{\theNoTableEntry b}}% bottom
\zsavepos{\theNoTableEntry l}% left
\hspace{0pt plus 1filll}%
#1% content
\hspace{0pt plus 1filll}%
\zsavepos{\theNoTableEntry r}% right
\tikz[overlay]{%
\draw
let
\n{llx}={\zposx{\theNoTableEntry l}sp-\zposx{\theNoTableEntry r}sp-\tabcolsep},
\n{urx}={\tabcolsep},
\n{lly}={\zposy{\theNoTableEntry b}sp-\zposy{\theNoTableEntry r}sp},
\n{ury}={\zposy{\theNoTableEntry t}sp-\zposy{\theNoTableEntry r}sp}
in
(\n{llx}, \n{lly}) -- (\n{urx}, \n{ury})
;
}%
}
\begin{document}
\begin{tabular}{|c|c|c|}
\hline
foo & bar & baz \\\hline
\smulticolumn{2}{|c|}{double} & B \\\hline
C & D & \smultirow{2}{*}{$\delta$} \\
E & F & \\\hline
\end{tabular}
\end{document}
불행하게도 다중 행에서는 잘 작동하지 않지만 적어도 합리적인 시작점처럼 보입니다.
답변2
.\tikzmark
정확한 위치를 자동으로 계산해 주는 방법이 있는 것 같은데, 그건 제 지식 수준을 넘어선 수준입니다.
지워야 할 셀이 거의 없다면 (저처럼) 시행착오를 거쳐 큰 문제 없이 수동으로 계산할 수 있습니다.
\documentclass{book}
\usepackage{tikz}
\usetikzlibrary{tikzmark, calc}
\usepackage{array}
\usepackage{multirow}
\setlength{\extrarowheight}{2pt}
\begin{document}
\begin{tabular}{|c|c|c|}
\hline
foo & bar & baz \\
\hline
\multicolumn{2}{|c|}{\tikzmark{smc}\hfill double\hfill\tikzmark{emc}} & B \\
\hline
C & D & \tikzmark{smr}\multirow{2}{*}{$\delta$}\tikzmark{smr} \\
E & F & \\
\hline
\end{tabular}
\begin{tikzpicture}[overlay,remember picture]
\draw ($(pic cs:smc)-(\tabcolsep,3.6pt)$) -- ($(pic cs:emc)+(\tabcolsep,10.4pt)$);
\draw ($(pic cs:smr)-(16pt,17.6pt)$) -- ($(pic cs:emr)+(-3.7pt,2.2pt)$);
\end{tikzpicture}
\end{document}
\tikzmark
은 안에 넣어야 합니다 \multicolumn
.여기.