![在 Tikz 矩阵场中定位圆圈](https://linux22.com/image/374671/%E5%9C%A8%20Tikz%20%E7%9F%A9%E9%98%B5%E5%9C%BA%E4%B8%AD%E5%AE%9A%E4%BD%8D%E5%9C%86%E5%9C%88.png)
从之前的问题中我已经找到了在矩阵场中放置圆的解决方案。
\documentclass[leqno,8pt,fleqn,table]{beamer}
\usepackage{tikz}
\usetikzlibrary{matrix,shadings}
\def\r{0.1}
\tikzset{
table/.style={
matrix of nodes,
row sep=-\pgflinewidth,
column sep=-\pgflinewidth,
nodes={
rectangle,
draw=black,
align=center,
},
%baseline={([yshift=-0.5ex]current bounding box.center)},
minimum height=1.5em,
text depth=0.5em,
text height=1em,
text centered,
nodes in empty cells,
%%
row 1/.style={
nodes={
fill=black,
text=white,
%font=\bfseries
}
},
rows/.style={nodes={fill=gray!10}},
columns/.style={nodes={text width = 10em}},
%myrowstyle/.style={
%row #1/.style={nodes={fill=gray!10}}
%},
}
}
\begin{document}
\begin{frame}
\begin{center}
\begin{tiny}
\begin{tikzpicture}
\matrix[table, rows={2,...,3}{fill=grey!10}, columns={1,...,5}{text width = 10em}, ampersand replacement=\&] (first)
{
card \# \& date \& 1 \& 2 \& 3 \\
ghul \& 01.01.2016 \& \& \& \\
};
\fill[left color=green,right color=red] (first-2-3) circle (\r);
\fill[red] (first-2-4) circle (\r);
\fill[red] (first-2-5) circle (\r);
\end{tikzpicture}
\end{tiny}
%\vspace{4mm}
\end{center}
\end{frame}
\end{document}
但是,如果我在字段内添加了其他文本,圆圈将刚好位于文本上方并“覆盖”它。如何将圆圈定位在文本的正前方,例如:“o - Blablablablabla”,其中“o”代表圆圈。
答案1
首先,我认为@cfr 提出了两个非常好的观点(但我不想直接删除你的\def\r
观点)。然后,当然你可以把圆圈放在你想要的任何地方。但我必须说,尽管我倾向于(滥用)Ti钾Z 几乎适用于所有事物,值得一提的是,在单色圆圈的情况下,老旧的设计\textbullet
效果很好。请看一下。
\documentclass[leqno,8pt,fleqn,table]{beamer}
\usepackage{tikz}
\usetikzlibrary{matrix,shadings}
\def\r{0.1}
\tikzset{
table/.style={
matrix of nodes,
row sep=-\pgflinewidth,
column sep=-\pgflinewidth,
nodes={
rectangle,
draw=black,
align=center,
},
%baseline={([yshift=-0.5ex]current bounding box.center)},
minimum height=1.5em,
text depth=0.5em,
text height=1em,
text centered,
nodes in empty cells,
%%
row 1/.style={
nodes={
fill=black,
text=white,
%font=\bfseries
}
},
rows/.style={nodes={fill=gray!10}},
columns/.style={nodes={text width = 10em}},
%myrowstyle/.style={
%row #1/.style={nodes={fill=gray!10}}
%},
}
}
\begin{document}
\begin{frame}
\begin{center}
\begin{tiny}
\begin{tikzpicture}
\matrix[table, rows={2,...,3}{fill=grey!10}, columns={1,...,5}{text width = 10em}, ampersand replacement=\&] (first)
{
card \# \& date \& 1 \& 2 \& 3 \\
ghul \& 01.01.2016 \& xyz \&
\raisebox{-2pt}{\textcolor{red}{\huge\textbullet}}~abc \& \\
};
\fill[left color=green,right color=red] ([xshift=3mm]first-2-3.west) circle (\r);
%\fill[red] (first-2-4) circle (\r);
\fill[red] (first-2-5) circle (\r);
\end{tikzpicture}
\end{tiny}
%\vspace{4mm}
\end{center}
\end{frame}
\end{document}
我也想知道文字大小。是不是因为你不想用“ghul”吓到别人?更严肃地说,当内容可读性好时,人们会更好地接受它们。你花了很大的力气把球做成双色,但你却用小字体把它泄露了。考虑改变这一点。