这是Using bullets list in tikz's node label in rmarkdown的后续问题。我有一些TikZ
代码可以在纯LaTex
中正常工作,但是在我将其传输到rmarkdown
并引发错误! LaTeX Error: Something's wrong--perhaps a missing \item.
的情况下却无法正常工作。 Using bullets list in tikz's node label in rmarkdown的答案已解决了该问题,但应用我在那里获得的解决方案又出现了另一个问题。
您可以参考原始问题(Using bullets list in tikz's node label in rmarkdown),但基本上我有一些TikZ
代码,可将图片用作更大的rmarkdown
文件的一部分。正如我在https://www.overleaf.com/上进行测试时,它可以在LaTex
中工作,但一旦在rmarkdown
中进行测试,就会引发缺少项错误。在Using bullets list in tikz's node label in rmarkdown中提出的解决方案是在\minipage
中添加一个rmarkdown
环境(请参见下面的代码)。
在使用\minipage
环境时,我遇到的问题是,在创建应该作为一部分的节点之前,我将不得不手动设置其宽度(或者至少我不知道如何自动执行此操作) TikZ
大图片的图片。换句话说,我需要知道为每个节点分配的空间来重现rmarkdown
中的图片。我想知道是否有一种方法可以预先推断节点的大小,以便我可以创建一个与将包含的节点大小匹配的小页面。
\documentclass{article}
\usepackage{tikz}
\usepackage{enumitem}
\begin{document}
\definecolor{BulletsColor}{rgb}{0, 0, 0.9}
\newlist{myBullets}{itemize}{1}
\setlist[myBullets]{
label=\textcolor{BulletsColor}{\textbullet},
leftmargin=*,
topsep=0ex,
partopsep=0ex,
parsep=0ex,
itemsep=0ex,
before={\color{BulletsColor}\itshape}
}
\begin{tikzpicture}
\node[draw, rounded corners] (a) {
\begin{minipage}{2.5cm}
p
\begin{myBullets}
\item first item
\item second item
\end{myBullets}
\end{minipage}
}
;
\end{tikzpicture}
\end{document}
我也愿意接受其他解决方案,只要我不必手动指定节点的大小即可。例如,做(注意注释行)
\begin{tikzpicture}
\node[draw, rounded corners] (a) {
% \begin{minipage}{2.5cm}
p
\begin{myBullets}
\item first item
\item second item
\end{myBullets}
% \end{minipage}
}
;
\end{tikzpicture}
TikZ
中的将根据其文本大小推断出节点的大小,而我正在寻找可以使我在rmarkdown
中使用相同代码的东西,而不必手动指定每个小页面的大小跨我的节点。
答案 0 :(得分:1)
您可以从具有相同名称的软件包中将minipage
替换为varwidth
环境:
\documentclass{article}
\usepackage{tikz}
\usepackage{enumitem}
\usepackage{varwidth}
\begin{document}
\definecolor{BulletsColor}{rgb}{0, 0, 0.9}
\newlist{myBullets}{itemize}{1}
\setlist[myBullets]{
label=\textcolor{BulletsColor}{\textbullet},
leftmargin=*,
topsep=0ex,
partopsep=0ex,
parsep=0ex,
itemsep=0ex,
% before={\color{BulletsColor}\itshape}
}
\begin{tikzpicture}
\node[draw, rounded corners, font=\itshape, text=BulletsColor] (a) {
\begin{varwidth}{\textwidth}
p
\begin{myBullets}
\item \textcolor{BulletsColor}{first item}
\item \textcolor{BulletsColor}{second item}
\end{myBullets}
\end{varwidth}
}
;
\end{tikzpicture}
\end{document}