OK, for today's purposes, I will call this version the solution.
library(tidyverse)
library(ggtext)
p <- iris %>%
filter(Species == 'versicolor') %>%
ggplot() +
aes(x= Sepal.Width, y = Sepal.Length) +
geom_point()+
theme_minimal() +
geom_smooth(method = 'lm') +
theme(plot.background = element_rect(color='black'))
p + labs(
title = "<b>The Unmitigated Awesomeness of Statins</b>",
caption = "<b>Figure 1.</b>
<span style = 'font-size:10pt'>This is an Amazing Plot. *Look at this
preliminary data*, **It is great.**
<span style = 'color:red;'>This work will advance the field,</span>
You should *definitely* fund this grant.</span>",
x = "Exposure to statin medications (years * mg/d / 50)",
y = "Survival (years)<br><span style = 'font-size:8pt'>A measure of
the effect of exposure.</span>"
) +
theme(
plot.title.position = "plot",
plot.title = element_textbox_simple(
size = 15,
lineheight = 1,
padding = margin(4, 5.5, 4, 5.5), #padding inside the box, (trouble)
margin = margin(0, 0, 7, 0), #margins outside the box, t,r,b,l
linetype = 1,
r = grid::unit(0, "pt"),
fill = 'gray90'
),
plot.caption.position = "plot",
plot.caption = element_textbox_simple(
size = 11,
lineheight = 1.1,
padding = margin(5.5, 5.5, 5.5, 5.5),
margin = margin(0, 0, 0, 0),
r = grid::unit(0, "pt"),
linetype = 1
),
axis.title.x = element_textbox_simple(
width = NULL,
padding = margin(4, 4, 4, 4),
margin = margin(4, 0, 4, 0),
linetype = 1,
r = grid::unit(8, "pt"),
fill = "azure1"
),
axis.title.y = element_textbox_simple(
hjust = 0,
orientation = "left-rotated",
minwidth = unit(1, "in"),
maxwidth = unit(2, "in"),
padding = margin(4, 4, 2, 4),
margin = margin(0, 0, 2, 0),
fill = "lightsteelblue1"
)
)
#> `geom_smooth()` using formula 'y ~ x'

Created on 2020-02-09 by the reprex package (v0.3.0)