在以下最小示例中
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{mindmap}
\begin{document}
\begin{tikzpicture}[every annotation/.style = {draw, font = \Large}]
\node [annotation] at (4,4) {\parskip 0pt \parindent 0pt %
\list{$\bullet$}{\topsep=0pt\itemsep=0pt\parsep=0pt\parskip=0pt\labelwidth=8pt\leftmargin=8pt\itemindent=0pt\labelsep=2pt}%
\item Item%
\endlist};
\node [annotation] at (2,2) {Hallo};
\end{tikzpicture}
\end{document}
我在列表前得到了一个垂直距离,根据我的理解,它不应该存在在那里。
它为什么在那里?是 bug 还是我不理解的功能?删除它的正确方法是什么?我无法使用enumitem
- 这是 MWE,但原始文档存在与 不兼容的情况enumitem
。
答案1
使用该enumitem
包:
\documentclass[border=3.141592]{standalone}
\usepackage{tikz}
\usetikzlibrary{mindmap}
\usepackage{enumitem}
\begin{document}
\begin{tikzpicture}[
annotation/.style = {draw, rounded corners, font = \Large,
text width=5em} % <---
]
\node [annotation] {\begin{itemize}[nosep,leftmargin=*, before=\vspace{-0.5\baselineskip}]
\item Item
\end{itemize}
};
\node [annotation] at (0,-1) {Hallo};
\end{tikzpicture}
\end{document}
附录:
建议的解决方案不适用于 beamer。因为它更适合包含itemize
在 minipage 中:
\documentclass{beamer}
\usepackage{tikz}
\begin{document}
\begin{frame}[fragile]
\begin{tikzpicture}[
annotation/.style = {draw, rounded corners, font = \Large,
text width=6em} % <---
]
\node [annotation] {\begin{minipage}{\linewidth}
\begin{itemize}
\item Item
\end{itemize}
\end{minipage}
};
\node [annotation] at (0,-1) {Hallo};
\end{tikzpicture}
\end{frame}
\end{document}
standalone
上述解决方案在文档以及article
其他默认 LaTeX 文档类中也运行良好。
答案2
@Zarko 的回答指出了一个很好的方向。看起来垂直空间与 相连\baselineskip
。如果我 ,\baselineskip0pt
问题就解决了(但是在其他地方会产生不良副作用)。从美学上讲\vspace
,对进行否定0.5\baselineskip
是最令人愉悦的解决方案,但它还有另一个不良副作用:我想将其作为宏构造的一部分,而不想手动区分不同的情况(在 MWE 中看不到这一点,只有在宏构造中才会变得明显)。
我现在将为我的宏包采用的解决方案是使用,\par\nointerlineskip
因为它的工作方式与内容的延续无关。就 MWE 而言,这意味着:
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{mindmap}
\begin{document}
\begin{tikzpicture}[every annotation/.style = {draw, font = \Large}]
\node [annotation] at (4,4) {\par\nointerlineskip%
\list{$\bullet$}{\topsep=0pt\itemsep=0pt\parsep=0pt\parskip=0pt\labelwidth=8pt\leftmargin=8pt\itemindent=0pt\labelsep=2pt}%
\item Item%
\endlist};
\node [annotation] at (2,2) {\par\nointerlineskip%
Hallo};
\end{tikzpicture}
\end{document}
并产生