我之前从未使用过 tkiz,我甚至无法理解如何绘制这个简单的东西。
我讨厌乞求“有人能帮我做这个吗”,但在尝试做之后此解决方案我花了好几个小时来摆弄、调整、阅读和摸索,却没有找到任何解决方案,所以我不得不向我的网友寻求帮助......
所以:基本上我需要上面的图画,排列到页面的中间......
感谢您的帮助!
答案1
LaTeX 允许您\Roman{<counter>}
自动插入正确的罗马数字。
\documentclass[tikz,border=3.14mm]{standalone}
\newcounter{pft}
\begin{document}
\begin{tikzpicture}
\foreach \X in {1,...,5}
{\node[minimum width=6mm] (\X) at (\X,0) {\setcounter{pft}{\X}\Roman{pft}};
\draw(\X.north west) rectangle ([yshift=-3mm]\X.south east);}
\draw([xshift=-1em]1.south west) -- ++ (0,2.5em) -| ([xshift=1em]5.south east);
\end{tikzpicture}
\end{document}
或者text depth
使用焦耳五世的答案和Martin Scharrer 的回答无需计数器,更加自动化。
\documentclass[tikz,border=3.14mm]{standalone}
\begin{document}
\begin{tikzpicture}
\foreach \X in {1,...,5}
{\node[minimum width=8mm,text depth=2ex,draw] (\X) at (1.2*\X,0)
{\uppercase\expandafter{\romannumeral\X\relax}};}
\draw([xshift=-1em]1.west) -- ++ (0,2.5em) -| ([xshift=1em]5.east);
\end{tikzpicture}
\end{document}
答案2
\documentclass[tikz]{standalone}
\tikzset{mynode/.style={draw,minimum size=1.5cm,text depth=2\baselineskip}}
\begin{document}
\begin{tikzpicture}
\foreach \i/\ins in {1/I,2/II,3/III,4/IV,5/V}
\node[mynode] (\i) at (2*\i,0) {\ins};
\draw ([xshift=-.5cm]1.west) |- ([shift={(.5cm,.5cm)}]5.north east) -- ++ (0,-1);
\end{tikzpicture}
\end{document}
答案3
使用 TikZ 库chains
和positioning
:
\documentclass[tikz, margin=3mm]{standalone}
\usetikzlibrary{chains, positioning}
\begin{document}
\begin{tikzpicture}[
node distance = 4mm,
start chain = A going right,
box/.style = {draw, minimum size=1.5cm,
label={[anchor=north,font=\large]:#1},
on chain=A}
]
\foreach \i in {I, II, III, IV, V}
\node[box=\i] {};
\draw ([xshift=-5mm] A-1.west) |- ([yshift=5mm] A-1.north) -| ([xshift=5mm] A-5.east);
\end{tikzpicture}
\end{document}
并使用 Stefan Kottwitz回答罗马数字,可以绘制任意长的节点链:
\documentclass[tikz, margin=3mm]{standalone}
\usetikzlibrary{chains, positioning}
\makeatletter
\newcommand*{\rom}[1]{\expandafter\@slowromancap\romannumeral #1@}
\makeatother
\begin{document}
\begin{tikzpicture}[
node distance = 4mm,
start chain = A going right,
box/.style = {draw, minimum size=1.5cm,
label={[anchor=north,font=\large]:\rom{#1}}, % <---
on chain=A}
]
\def\Nmax{5} % <---
\foreach \i in {1,...,\Nmax} % <---
\node[box=\i] {};
\draw ([xshift=-5mm] A-1.west) |-
([yshift=5mm] A-1.north) -| ([xshift=5mm] A-\Nmax.east); % <---
\end{tikzpicture}
\end{document}
结果和以前一样。