Knitr variieren die Größe der Figur im selben Chunk

Ich habe eine R-Schleife, die mit metafor in jeder Iteration ein Gesamtstrukturdiagramm erstellt. Ein Waldgraph enthält eine Zeile pro Stichprobe und jede Iteration enthält eine andere Anzahl von Stichproben. Daher muss die Höhe erheblich variieren (derzeit zwischen 2,5 und 8 Zoll).

Ich habe verschiedene Optionen ausprobiert, z. B.diese, aber egal was ich mache, jede Grafik, die ich erstelle, hat die gleiche Höhe in der PDF-Datei-Ausgabe (es scheint einfach die Dateien quadratisch zu machen), es gibt nur sehr große weiße Ränder oben und unten.

Ich habe auch den Hinweis auf benutzerdefinierten Grafikgeräten gefundenHie, aber ich weiß nicht, wie ich das Grafikgerät mitten in einem Chunk ändern soll. Ich habe versucht, einfach @ zu verwendopts_chunk$set(fig.width=fheight) in jeder Schleifeniteration, aber kein Glück.

MWE

\documentclass{article}

\begin{document}

 <<Mwe, echo=FALSE, results = 'asis', message='FALSE', fig.width=7,warning='FALSE'>>=

 heights <- c(2.5, 8)

 for(counter in 1:length(heights)) {
  opts_chunk$set(fig.height=heights[counter]) #This doesn't appear to change anything
  par(fin=c(7, heights[counter]) #this makes the plot have the correct height, but I get a 2.5 inch high plot vertically centered in a 7 inch high pdf. 
  hist(rnorm(100))

  cat("Some long text which describes a lot of stuff about this graphic before making a new subsection for the next one")
 }

@

\end{document}