\tikzmark
は、単一のセルまたは の前後\multirow
、および の後でも常に機能します\multicolumn
。
しかし前に次の\multicolumn
エラーが発生します:
! Misplaced \omit.
\multispan ->\omit
\@multispan
l.55 \tikzmark{cmc}\multicolumn{2}{c}{A and B}
& C\tikzmark{dmc} \\
I expect to see \omit only after tab marks or the \cr of
an alignment. Proceed, and I'll ignore this case.
MWE は次のとおりです。
\documentclass{book}
\usepackage{tikz}
\usetikzlibrary{tikzmark, calc}
\usepackage{array}
\usepackage{multirow}
\renewcommand{\arraystretch}{1.4}
\begin{document}
All these ones work:
\begin{tabular}{ccc}
\tikzmark{a}A & B & \tikzmark{b}C \\
D & E & F \\
\end{tabular}
\begin{tikzpicture}[overlay,remember picture]
\draw (pic cs:a) -- (pic cs:b);
\end{tikzpicture}
\begin{tabular}{ccc}
A\tikzmark{c} & B & C\tikzmark{d} \\
D & E & F \\
\end{tabular}
\begin{tikzpicture}[overlay,remember picture]
\draw (pic cs:c) -- (pic cs:d);
\end{tikzpicture}
\begin{tabular}{ccc}
\tikzmark{amr}\multirow{2}{*}{A and D} & B & \tikzmark{bmr}C \\
& E & F\\
\end{tabular}
\begin{tikzpicture}[overlay,remember picture]
\draw (pic cs:amr) -- (pic cs:bmr);
\end{tikzpicture}
\begin{tabular}{ccc}
\multirow{2}{*}{A and D}\tikzmark{cmr} & B & C\tikzmark{dmr} \\
& E & F\\
\end{tabular}
\begin{tikzpicture}[overlay,remember picture]
\draw (pic cs:cmr) -- (pic cs:dmr);
\end{tikzpicture}
\begin{tabular}{ccc}
\multicolumn{2}{c}{A and B}\tikzmark{amc} & C\tikzmark{bmc} \\
D & E & F \\
\end{tabular}
\begin{tikzpicture}[overlay,remember picture]
\draw (pic cs:amc) -- (pic cs:bmc);
\end{tikzpicture}
But this one doesn't work:
\begin{tabular}{ccc}
\tikzmark{cmc}\multicolumn{2}{c}{A and B} & C\tikzmark{dmc} \\
D & E & F \\
\end{tabular}
\begin{tikzpicture}[overlay,remember picture]
\draw (pic cs:cmc) -- (pic cs:dmc);
\end{tikzpicture}
\end{document}
答え1
はテキスト (\null) としてカウントされるため、 \tikzmark
の内側に配置する必要があります。一方、 は、行間隔が一定であると仮定して、次の数行にテキストを重ねるだけです。これは とほぼ同じです。\multicolumn
\multirow
\smash{\begin{tabular}[t]...\end{tabular}}
\multicolumn
が2 つの列よりも幅が広い場合は、\hfill
は必要ありません。
\documentclass{book}
\usepackage{tikz}
\usetikzlibrary{tikzmark, calc}
\usepackage{array}
\usepackage{multirow}
\renewcommand{\arraystretch}{1.4}
\begin{document}
\begin{tabular}{ccc}
\multicolumn{2}{c}{\tikzmark{cmc}\hfill A and B\hfill\null} & C\tikzmark{dmc} \\
D wider & E & F \\
\end{tabular}
\begin{tikzpicture}[overlay,remember picture]
\draw (pic cs:cmc) -- (pic cs:dmc);
\end{tikzpicture}
\end{document}