## Code

```
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
= 0.25
ALPHA
with plt.xkcd():
'font.size': 22})
plt.rcParams.update({= np.arange(0, 1, 0.1)
x = 40 * x**2 + 2
word_y = 2 * x**2 + 5
latex_y = np.array([3, 3.1, 3.2, 1.5, 1.6, 3, 3.7, 7.5, 7.75, 8, 100])
markdown_y = np.array([0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.61, 0.7, 0.8, 0.9])
markdown_x = 22.5 * (x-0.3)**2 + 0.75
quarto_y = plt.subplots(1, 1, figsize=(16, 10))
fig, axs = axs
ax
= [0.25, 0.5, 0.75]
segment_positions
= ['Basic Reports OR\nStandard Documents', 'Papers with Figures\nbased on Results', 'Per-Page Layout\nOR Web Content', 'Professional\nBook Layout']
segment_labels
= [0, 0.25, 0.5, 0.75]
range_starts = [0.25, 0.5, 0.75, 0.9]
range_ends
= -0.15
y_pos_annotations = -0.1
y_pos_arrows
for start, end, label in zip(range_starts, range_ends, segment_labels):
'',
ax.annotate(=(start, y_pos_arrows), xycoords=('data', 'axes fraction'),
xy=(end, y_pos_arrows), textcoords=('data', 'axes fraction'),
xytext=dict(arrowstyle='<->', color='black'))
arrowprops
for i, position in enumerate(segment_positions):
=position, color='black', linestyle='-.', linewidth=0.5, alpha = 0.5)
ax.axvline(x
ax.annotate(segment_labels[i],=(position, 0), xycoords=('data', 'axes fraction'),
xy=(-125, -50), textcoords='offset points',
xytext='center', va='baseline', alpha = 0.5)
ha
-1],
ax.annotate(segment_labels[=(1, 0), xycoords=('axes fraction', 'axes fraction'),
xy=(-75, -50), textcoords='offset points',
xytext='center', va='baseline', alpha = 0.5)
ha
= ax.plot(x, word_y, label="Word")
word_line, = ax.plot(x, latex_y, label="LaTeX")
latex_line, = ax.plot(markdown_x, markdown_y, alpha=ALPHA, label="Markdown")
markdown_line, = ax.plot(x, quarto_y, linewidth=5, label="Quarto")
quarto_line,
=[word_line, latex_line, markdown_line, quarto_line], loc="upper left")
ax.legend(handles
0, 10)
ax.set_ylim(0, 0.9)
ax.set_xlim(
= dict(arrowstyle="->", alpha=ALPHA)
arrowprops "WHEN YOU START\n USING MAKEFILES", xy=(0.2, 3.3), arrowprops=arrowprops, xytext=(0.025, 3.75), alpha = ALPHA/5)
ax.annotate("WHEN YOU START USING\n UNSUPPORTED SYNTAX", xy=(0.6, 3.7), arrowprops=arrowprops, xytext=(0.30, 4), alpha = ALPHA/5)
ax.annotate("WHEN YOU DISCOVER\n PANDOCFILTERS", xy=(0.61, 7.5), arrowprops=arrowprops, xytext=(0.375, 6.25), alpha = ALPHA/5)
ax.annotate("WHEN YOU REALIZE YOU \nHAVE TO LEARN HASKELL", xy=(0.8, 8), arrowprops=arrowprops, xytext=(0.45, 8.5), alpha=ALPHA/5)
ax.annotate(
ax.get_xaxis().set_ticks([])
ax.get_yaxis().set_ticks([])
"DOCUMENT COMPLEXITY")
ax.set_xlabel('top')
ax.xaxis.set_label_position("IMPLEMENTATION DIFFICULTY")
ax.set_ylabel(
```