我试图将节点作为项目包含在内,以便文本像普通项目一样对齐,但我仍然可以包含箭头和框,如下面的 MWE 所示:
\documentclass{beamer}
\usepackage{tikz}
\usetikzlibrary{positioning,calc,decorations.pathreplacing}
\begin{document}
\begin{frame}
\begin{minipage}{.5\textwidth}
\includegraphics[width=\linewidth]{example-image}
\vspace{0.5cm}
\includegraphics[width=\linewidth]{example-image}
\end{minipage}\hfill
\begin{minipage}{.475\textwidth}
\begin{itemize}
\item Mutated self proteins in tumor cells can be potential antigens presented by HLA-A
\item
\begin{tikzpicture}
\node[align=left] (A) at (0,0) {Study immune system and cancer cells interactions};
\node[below=1cm of A, anchor=center, fill=yellow] (B) {Immunotherapies};
\draw[->, >=latex, blue!40!white, line width=5pt] (A) -- (B);
\end{tikzpicture}
\end{itemize}
\end{minipage}\hfill
\end{frame}
\end{document}
产生以下内容(文本未与项目符号和上面的文本对齐,就好像它是一个普通项目;过度装箱警告):
答案1
主要问题是您的图片tikzpicture
太宽,超出了行上剩余的空间,因此会向下移动一行。要解决此问题,您需要text width
在节点中指定(或剪切图片,但这没有帮助)。这样做会给您带来一些对齐问题:
您需要指定
anchor
节点的 t 是base
第一行文本的 ,然后将其用作整个图片的垂直对齐点,方法是指定baseline
然后您会注意到您的文本缩进的量来自
inner sep
节点的量,因此您需要将其放入0
。
\documentclass{beamer}
\usepackage{tikz}
\usetikzlibrary{positioning,calc,decorations.pathreplacing}
\begin{document}
\begin{frame}
\begin{minipage}{.5\textwidth}
\includegraphics[width=\linewidth]{example-image}
\vspace{0.5cm}
\includegraphics[width=\linewidth]{example-image}
\end{minipage}\hfill
\begin{minipage}{.475\textwidth}
\begin{itemize}
\item Mutated self proteins in tumor cells can be potential
antigens presented by HLA-A
\item%
\begin{tikzpicture}[baseline=0]
\node[align=left,inner sep=0pt,text width=0.9\linewidth,anchor=base]
(A) at (0,0) {Study immune system and cancer cells interactions};
\node[below=1.5cm of A, anchor=center, fill=yellow] (B) {Immunotherapies};
\draw[->, >=latex, blue!40!white, line width=5pt] (A) -- (B);
\end{tikzpicture}
\end{itemize}
\end{minipage}\hfill
\end{frame}
\end{document}
顺便说一句,我假设您知道 的columns
构造beamer
,而不必使用minipages
。