我正在使用 overleaf,我必须绘制 2 个正方形,如下面的代码所示。我无法执行以下操作:
- 把两个正方形放在页面中央。我尝试用
\begin{center}
和,\begin{figure} \centering
但是没有用; - 在第一个方块的白色部分中间添加文字“A”,在第二个方块下方添加一个箭头,箭头的开头和结尾分别带有字母 B 和 C。
有人能帮助我吗?
谢谢!
\begin{multicols}{3}
\begin{tikzpicture}
%Nodes
\draw (0,0) -- (4,0) -- (4,4) -- (0,4) -- (0,0);
\fill[black] (2,0) rectangle (4,4);
\end{tikzpicture}
\columnbreak
\columnbreak
\begin{tikzpicture}
%Nodes
\draw (0,0) -- (4,0) -- (4,4) -- (0,4) -- (0,0);
\shade[left color=white,right color=black] (0,0) rectangle (4,4);
\end{tikzpicture}
\end{multicols}
答案1
您不需要使用列来尝试将您的 tikzpictures 彼此相邻放置,而是可以在单个 tikzpicture 中绘制它们,然后使用环境scope
将其中一个向右移动:
\documentclass{article}
\usepackage{tikz}
\begin{document}
{
\centering
\begin{tikzpicture}
%Nodes
\draw (0,0) -- (4,0) -- (4,4) -- (0,4) -- (0,0);
\fill[black] (2,0) rectangle (4,4);
\node[red,font=\bfseries\Huge] at (1,2) {A};
\begin{scope}[xshift=.5\textwidth]
%Nodes
\draw (0,0) -- (4,0) -- (4,4) -- (0,4) -- (0,0);
\shade[left color=white,right color=black] (0,0) rectangle (4,4);
\node (B) at (0,-0.5) {B};
\node (C) at (4,-0.5) {C};
\draw[->] (B) -- (C) ;
\end{scope}
\end{tikzpicture}
}
\end{document}
答案2
使用两个tikzpicture
s,矩形被节点替换并被 取代\hfil
:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{arrows.meta,
positioning}
\begin{document}
\begin{center}
\begin{tikzpicture}[baseline,
node distance = 0pt,
N/.style = {draw, fill=#1, minimum width=2cm, minimum height=4cm, font=\Large}
]
\node (n1) [N=white] {A};
\node (n2) [N=black, right=of n1] {};
\end{tikzpicture}
\hfil
\begin{tikzpicture}[baseline,
node distance = 0pt]
\node (n1) [draw, minimum size=4cm,
left color=white,right color=black] {};
\node (a) [below=of n1.south west] {B};
\node (b) [below=of n1.south east] {C};
\draw[-Straight Barb] (a) -- (b);
\end{tikzpicture}
\end{center}
\end{document}