From f431f67b2f2f5071345fa5800658375afaf44c1b Mon Sep 17 00:00:00 2001
From: John MacFarlane <jgm@berkeley.edu>
Date: Fri, 1 Mar 2019 21:45:57 -0800
Subject: [PATCH] LaTeX(Beamer) writer: include contents under headers <
 slidelevel.

Currently we keep the fancy title slide and add a new
slide with the same title and whatever content was under the
header.

This changes behavior of slides, but is consistent with the
new behavior of the revealjs and other HTML slide show writers.

See #4317.
---
 src/Text/Pandoc/Writers/LaTeX.hs | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/src/Text/Pandoc/Writers/LaTeX.hs b/src/Text/Pandoc/Writers/LaTeX.hs
index 9f381ce3c..2bfde42cf 100644
--- a/src/Text/Pandoc/Writers/LaTeX.hs
+++ b/src/Text/Pandoc/Writers/LaTeX.hs
@@ -448,7 +448,14 @@ elementToBeamer slideLevel  (Sec lvl _num (ident,classes,kvs) tit elts)
                     : tit ++ [RawInline "latex" "}"] )
              : bs ++ [RawBlock "latex" "\\end{block}"]
   | lvl <  slideLevel = do
-      bs <- concat `fmap` mapM (elementToBeamer slideLevel) elts
+      let isSec Sec{} = True
+          isSec _     = False
+      let (contentElts, secElts) = break isSec elts
+      let elts' = if null contentElts
+                     then secElts
+                     else Sec slideLevel [] nullAttr tit contentElts :
+                          secElts
+      bs <- concat `fmap` mapM (elementToBeamer slideLevel) elts'
       return $ Header lvl (ident,classes,kvs) tit : bs
   | otherwise = do -- lvl == slideLevel
       -- note: [fragile] is required or verbatim breaks