![Как нарисовать такую блок-схему в LaTeX](https://rvso.com/image/405356/%D0%9A%D0%B0%D0%BA%20%D0%BD%D0%B0%D1%80%D0%B8%D1%81%D0%BE%D0%B2%D0%B0%D1%82%D1%8C%20%D1%82%D0%B0%D0%BA%D1%83%D1%8E%20%E2%80%8B%E2%80%8B%D0%B1%D0%BB%D0%BE%D0%BA-%D1%81%D1%85%D0%B5%D0%BC%D1%83%20%D0%B2%20LaTeX.png)
Я пытался нарисовать блок-схему, похожую на ту, что показана на рисунке, но у меня не получается. Пожалуйста, кто-нибудь подскажите мне способ, как нарисовать такую блок-схему. Спасибо.
Я пытался до сих пор,
\usepackage{forest}
\useforestlibrary{edges}
\begin{forest}
for tree={draw, minimum width=2cm, minimum height=1cm, rounded corners},
forked edges,
[IDS for Automotive CAN Bus System [Deployment Strategy[ECU][CAN][Gateway]][Detection Approach[Specification Based][Anomaly Based[Machine Learning][Hybrid Based][Frequency Based]][Signature Based]][Attacking Technique[DoS][Replay]]]
\end{forest}
Я получаю такой вывод в формате PDF.неправильный вывод]1
решение1
Это в значительной степени адаптировано изздесь. Вам нужно вводить for tree={folder, grow'=0}
всякий раз, когда вы хотите начать папку. Ваше дерево слишком широкое, поэтому я уменьшил ширину текста для всех узлов, кроме корневых.
\documentclass{article}
\usepackage[showframe]{geometry}
\usepackage{forest}
\useforestlibrary{edges}
\makeatletter
% remove the stray space https://tex.stackexchange.com/a/513549
\patchcmd{\pgfutilsolvetwotwoleqfloat}
{ \noexpand\pgfmathfloatdivide@}
{\noexpand\pgfmathfloatdivide@}
{}{}
\makeatother
\begin{document}
\noindent\begin{forest}
before typesetting nodes={
if={isodd(n_children("!r"))}{
for nodewalk/.wrap pgfmath arg={{fake=r,n=#1}{calign with current edge}}{int((n_children("!r")+1)/2)},
}{},
},
forked edges,
for tree={draw, minimum width=2cm, minimum height=1cm, rounded corners,
if level=0{}{text width=2cm}},
[IDS for Automotive CAN Bus System
[Deployment Strategy,for tree={folder, grow'=0}
[ECU]
[CAN]
[Gateway]
]
[Detection Approach
[Specification Based]
[Anomaly Based,for tree={folder, grow'=0}
[Machine Learning]
[Hybrid Based]
[Frequency Based]
]
[Signature Based]
]
[Attacking Technique,for tree={folder, grow'=0}
[DoS]
[Replay]
]
]
\end{forest}
\end{document}
showframe
только для того, чтобы показать, что это дерево помещается (хотя простая загрузка пакета геометрии делает страницу немного шире).
РЕДАКТИРОВАТЬ: Удалил tempcounta/.max={level}{tree},
то, что не использовалось, большое спасибо @cfr.
2-е ИЗМЕНЕНИЕ: Добавлено исправление изhttps://tex.stackexchange.com/a/513549, следуя предложению @cfr.