У меня есть код tikz для генерации некоторых графиков, которые работают должным образом в latex
(проверено на оборотной стороне: https://www.overleaf.com). Однако, предполагается, что это часть большого файла rmarkdown
, но я не могу использовать список маркеров в некоторых из моих ярлыков узлов в rmarkdown
. Мои вопросы:
- как я могу использовать список пуль в качестве метки узла tikz в
rmarkdown
?
- как мне настроить этот список, включив в него некоторое форматирование, такое как цвет, поля и т. Д .?
- Куда идут вещи, определенные в
latex
с использованием \newlist
, \setlist
при использовании rmarkdown
?
Я мог бы сгенерировать эти цифры в latex
и включить их, используя knitr :: include_graphics (...), но я предпочитаю использовать более автоматический способ, где я мог бы просто позволить коду генерировать фигуры и встраивать их по мере их появления в файл.
---
title: "Title"
author: "Me"
output:
bookdown::pdf_document2:
keep_tex: yes
latex_engine: xelatex
---
Следующее отлично работает вне блока knitr.
p
\begin{itemize}
\item first item
\item second item
\end{itemize}
Он также будет работать внутри блока knitr как метка узла, когда эта метка не включает список элементов. В противном случае это приводит к: ! LaTeX Error: Something's wrong--perhaps a missing \item.
```{tikz, tikz-ex, echo=F, fig.cap = "Funky tikz", fig.ext = 'png', cache=TRUE, eval=T, engine.opts = list(template = "tikz2pdf.tex")}
\usetikzlibrary{arrows, shapes}
\definecolor{myColor}{rgb}{0.98, 0.94, 0.9}
\begin{tikzpicture}
\tikzstyle {stile} = [
ellipse,
draw=myColor,
fill=myColor,
thick,
inner sep=0pt,
text centered,
align=center
]
\node [stile](P){
p
\begin{itemize}
\item first item
\item second item
\end{itemize}
};
\end{tikzpicture}
Файл tikz2pdf.tex содержит следующее:
\documentclass{article}
\include{preview}
\usepackage[utf8]{inputenc}
\usepackage[skins]{tcolorbox}
\usepackage{
tikz,
enumitem,
xcolor
}
\usetikzlibrary{
shapes,
arrows
}
\begin{document}
\begin{preview}
\end{preview}
\end{document}
В конечном счете, я хотел бы настроить этот список, чтобы изменить форматирование элементов, таких как цвета, поля и т. Д. Для этого у меня есть следующий код, который также работает в latex
, но я не уверен, куда его поместить при использовании rmarkdown
.
\definecolor{BulletsColor}{rgb}{0.98, 0.94, 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}
}
В идеале я бы хотел использовать это так же, как я бы использовал в latex
как:
\node [stile](P){
p
\begin{myBullets}
\item first item
\item second item
\end{myBullets}
};
Я ожидаю (и извините, что не смогу предоставить полную картину) результат будет примерно таким:
P
- первый предмет
- второй пункт
в метке узла.