我希望 tikzmark 位于表格行的中心,可选参数似乎不起作用或者我误用了它:
\documentclass{article}
\usepackage{tikz,array}
\usetikzlibrary{tikzmark}
\begin{document}
\renewcommand{\arraystretch}{1.2}
\begin{tabular}{|c|}\noalign{\tikzmark[yshift=-5pt]{Z0}}\hline
foo
\end{tabular}
\tikz[overlay,remember picture]
\fill[orange] (pic cs:Z0) circle (.5pt) ;
\begin{tabular}{|c|}\noalign{\tikzmark[yshift=-5pt]{Z1}}
foo
\end{tabular}
\tikz[overlay,remember picture]
\fill[orange] (pic cs:Z1) circle (.5pt) ;
\end{document}
答案1
\begin{tikzpicture}[yshift=-5pt]
我猜这和为什么不将 向下移动 的原因是一样的tikzpicture
。该选项应用于tikzpicture
图表坐标系中的 的内容,但不会影响tikzpicture
基线/页面上的 的位置。
另一方面,foo\raisebox{5pt}{\tikzmark{Z0}}\tikzmark{Z1}bar \tikz[overlay,remember picture] \draw[orange] (pic cs:Z0) -- (pic cs:Z1);
它是有效的,因为它在页面上\raisebox
移动,就像字母一样。tikzmark
x
把一个放在\raisebox
里面\noalign
是行不通的,但可以采用一种稍微迂回的方式这样做:
\documentclass{article}
\usepackage{tikz,array}
\usetikzlibrary{tikzmark}
\begin{document}
\renewcommand{\arraystretch}{1.2}
\begin{tabular}{|c|}\noalign{\tikzmark{top}}\hline
\raisebox{5pt}{\tikzmark{baseline}}foo
\end{tabular}
\begin{tikzpicture}[overlay,remember picture]
% if you want to use the same coordinate multiple times
% it makes sense to define a named \coordinate
\coordinate (foo) at ({pic cs:top} |- {pic cs:baseline});
\fill[orange] (foo) circle[radius=.5pt];
\end{tikzpicture}
% foo can of course be used in other tikzpictures as well
\tikz[remember picture,overlay]
\draw [->] (foo) -- ++(1cm,1cm);
\end{document}