所以我想同时圈出数组中的两个元素。即使它们位于不同的行或列中。以下是我目前所得到的。
\documentclass{article}
\begin{document}
$
\begin{array}{cccc}
x_{1}&x_{2}&x_{3}&x_{4}\\
y_{1}&y_{2}&y_{3}&y_{4}
\end{array}
$
\end{document}
我想在x_{1}
和周围画一个大圆圈,y_{1}
并在x_{3}
和周围画一个圆圈x_{4}
。有什么想法可以实现吗?
答案1
一个简单的解决方案,如果你不必使用圆圈:
\documentclass{article}
\newcommand\mul[1]{\multicolumn{1}{c}{#1}}
\begin{document}
\[
\begin{array}{|c|c|cc|}
\cline{1-1}\cline{3-4}
x_{1} & \multicolumn{1}{c|}{x_{2}} & x_{3} & x_{4} \\
\cline{3-4}
y_{1} & \mul{y_{2}} & \mul{y_{3}} & \mul{y_{4}} \\
\cline{1-1}
\end{array}
\]
\end{document}
使用 TikZ 的一个选项(我使用了带圆角的矩形;我认为圆圈太大了):
\documentclass{article}
\usepackage{tikz}
\newcommand\Circle[1]{%
\tikz[baseline=(char.base)]\node[circle,draw,inner sep=2pt] (char) {#1};}
\newcommand\tikzmark[2]{
\tikz[remember picture, overlay]\node[inner sep=0pt] (#1) {#2};}
\begin{document}
\[
\begin{array}{cccc}
\Circle{$x_{1}$} & x_{2} & \Circle{$x_{3}$} & \Circle{$x_{4}$} \\
\Circle{$y_{1}$} & y_{2} & y_{3} & y_{4}
\end{array}
\]
\[
\begin{array}{cccc}
\tikzmark{starta}{$x_{1}$} & x_{2} & \tikzmark{startb}{$x_{3}$} & \tikzmark{endb}{$x_{4}$} \\
\tikzmark{enda}{$y_{1}$} & y_{2} & y_{3} & y_{4}
\end{array}
\]
\begin{tikzpicture}[remember picture,overlay]
\draw[cyan,rounded corners]
([xshift=-5pt,yshift=5pt]starta.north west)
rectangle
([xshift=8pt,yshift=-5pt]enda);
\draw[cyan,rounded corners]
([xshift=-5pt,yshift=5pt]startb.north west)
rectangle
([xshift=8pt,yshift=-6pt]endb);
\end{tikzpicture}
\end{document}
并使用hf-tikz
:
\documentclass{article}
\usepackage[markings]{hf-tikz}
\begin{document}
\[
\begin{array}{cccc}
\tikzmarkin[mark at=0.93]{col 1}(0.5,0.35)(-0.2,-0.7)
x_{1} & x_{2} & \tikzmarkin[mark at=0.93]{col 1}(1.2,0.35)(-0.2,-0.15)x_{3} & x_{4} \\
y_{1} & y_{2} & y_{3} & y_{4}
\end{array}
\]
\end{document}