Я хочу нарисовать фигуру, максимально приближенную к нарисованной от руки фигуре ниже.
Я попытался сделать следующее:
\documentclass[a4paper, 12 pt]{article}
\usepackage{tikz}
\usetikzlibrary{positioning}
\usepackage{enumitem}
\begin{document}
\begin{figure}
\setlist[itemize]{nosep, leftmargin=*}
\begin{tikzpicture}[
node distance = 0mm and 0.02\linewidth,
box/.style = {inner xsep=0pt, outer sep=0pt,
text width=0.32\linewidth,
align=left, font=\small}
]
\node (n1) [box]
{ \begin{itemize}
\item Households can produce or consume $x$ with equal probability
\item Young entrepreneurs borrow bank deposits to buy $x$ for investment
\item Young bankers issue deposits and loans
\end{itemize}
};
\node (n2) [box, below right=of n1.north east]
{ \begin{itemize}
\item $\frac{1}{4}$ probability of type $l$ consumers
\item $\frac{1}{4}$ probability of type $h$ consumers
\item $\frac{1}{2}$ probability of producers
\end{itemize}
};
\node (n3) [box, below right=of n2.north east]
{ \begin{itemize}
\item Old entrepreneurs get output, repay loans, consume $x$ and die
\item Old bankers receive loan repayments, consume $x$ and die
\end{itemize}
};
\draw[thick, -latex] (n1.north west) -- (n3.north east);
\draw (n1.north) -- + (0,3mm) node[above] {Day};
\draw (n2.north) -- + (0,3mm) node[above] {Night};
\draw (n3.north) -- + (0,3mm) node[above] {Day};
\end{tikzpicture}
\end{figure}
\end{document}
Приведенные выше коды дают следующую цифру:
Это отличается от того, что я хочу. Я хочу включить $t$ и $t+1$, а также сделать так, чтобы деления были прорезаны по линии, и они будут отображаться по центру линии, если это имеет смысл? Также, вероятно, было бы лучше добавить часть текста над линией, как они отображаются на нарисованной от руки фигуре.
решение1
Вот подход на основе PGFKeys, который \tikztimeline
ожидает список записей, в котором вы можете задать ни одного или все четыре значения top
, above
, below
, bottom
для каждого элемента в списке.
Вы можете использовать \tikztimelineset
для настройки значений по умолчанию в глобальном масштабе или использовать необязательный аргумент для \tikztimeline
установки значений только для одной диаграммы.
Длину segment width
можно tick length
регулировать.
Вы убедитесь, что segment width
записи × не будут слишком длинными для вашей страницы.
Код
\documentclass[a4paper, 12pt]{article}
\usepackage{tikz}
\usetikzlibrary{arrows.meta}
\newcommand*\tikztimelineset{\pgfqkeys{/tikz/timeline}}
\tikztimelineset{
segment width/.initial=4cm, tick length/.initial=6pt,
topbot/.style={
align=flush left,
text width=\pgfkeysvalueof{/tikz/timeline/segment width}
-2*(\pgfkeysvalueof{/pgf/inner xsep})},
top/.initial=, above/.initial=, below/.initial=, bottom/.initial=}
\newcommand*\tikztimeline[2][]{
\begin{tikzpicture}[timeline/every timeline/.try,timeline/.cd,#1]
\foreach[count=\CNT] \elem in {#2}{
\tikztimelineset{/tikz/style/.expand once=\elem}
\tikzset{xshift=\CNT*(\pgfkeysvalueof{/tikz/timeline/segment width})}
\unless\ifnum\CNT=1\relax
\draw (down:\pgfkeysvalueof{/tikz/timeline/tick length}) -- coordinate (lasttick)
( up:\pgfkeysvalueof{/tikz/timeline/tick length});
\fi
\node[above] (@above) at (right:{.5*(\pgfkeysvalueof{/tikz/timeline/segment width})})
{\strut$\pgfkeysvalueof{/tikz/timeline/above}$};
\node[above, timeline/topbot] at (@above.north) {\pgfkeysvalueof{/tikz/timeline/top}};
\node[below] (@below) at (@above.south) {\strut\pgfkeysvalueof{/tikz/timeline/below}};
\node[below, timeline/topbot] at (@below.south) {\pgfkeysvalueof{/tikz/timeline/bottom}};
}
\draw[->] (right:\pgfkeysvalueof{/tikz/timeline/segment width})
-- ([xshift=\pgfkeysvalueof{/tikz/timeline/segment width}] lasttick);
\end{tikzpicture}}
\tikztimelineset{every timeline/.append style={>=Latex}}
\begin{document}
\tikztimeline{
{
top=Households can produce or consume $x$ with equal probabilit.,
above=t,
below=Day,
bottom=Young entrepreneurs borrow bank deposits to buy $x$ for investment.\\
Young bankers issue deposits and loans.
}, {
top=$\frac{1}{4}$ probability of type $l$ consumers.
$\frac{1}{4}$ probability of type $h$ consumers.
$\frac{1}{2}$ probability of producers.,
below=Night
}, {
above=t+1,
below=Day,
bottom={Old entrepreneurs get output, repay loans, consume $x$ and die.\\
Old bankers receive loan repayments, consume $x$ and die.}
}}
\end{document}