原始代码存在什么问题?

原始代码存在什么问题?

我正在尝试beamer使用 TikZ 创建自定义项目符号,但由于某种原因,它对齐不正确(特别是项目符号略高于文本中心)。我该如何解决这个问题?

最小示例:

\documentclass[]{beamer}
\setbeamertemplate{itemize items}{\tikz\node[] {\tikz\draw[black,fill=gray] (0,0) circle (0.1);};}
\usepackage{tikz}
\begin{document}
\begin{frame} 
\frametitle{test}
\begin{itemize} 
\item Align this properly
\end{itemize}
\end{frame}
\end{document}

输出结果为, 在此处输入图片描述

(请注意项目符号相对于文本的垂直位置)

答案1

您可以调整baseline。我还修改了绘制子弹的代码。

\documentclass[]{beamer}
\setbeamertemplate{itemize items}{\tikz[baseline={(a.south)}]\node[draw,circle,black,fill=gray,inner sep=0pt,minimum size=2mm] (a){};}
\usepackage{tikz}
\begin{document}
\begin{frame}
\frametitle{test}
\begin{itemize}
\item Align this properly
\end{itemize}
\end{frame}
\end{document}

在此处输入图片描述

答案2

只需不要嵌套tikzpicture(一般规则是应该始终避免这种情况)您就可以保持所有的\draw自由:

\documentclass[]{beamer}
\setbeamertemplate{itemize items}{\tikz\draw[black,fill=gray] (0,0) circle (0.1);}
\usepackage{tikz}
\begin{document}
\begin{frame} 
\frametitle{test}
\begin{itemize} 
\item Align this properly
\end{itemize}
\end{frame}
\end{document}

在此处输入图片描述

放大的图像:

在此处输入图片描述

原始代码存在什么问题?

TikZ\node有一个非零inner sep和一个非零,outer sep它们增加了额外的间距;你可以通过使用

\setbeamertemplate{itemize items}{\tikz\node[inner sep=0pt,outer sep=0pt] {\tikz\draw[black,fill=gray] (0,0) circle (0.1);};}

但是,正如我之前提到的,最好的方法就是不要嵌套 s tikzpicture

相关内容