Fix regression in handling of columns in beamer slides.

Columns in title slides were causing problems with
slide division.  Closes #6033.
This commit is contained in:
John MacFarlane 2020-01-07 11:11:23 -08:00
parent 2a67b7aea9
commit ad5f7ecfce
2 changed files with 97 additions and 5 deletions

View file

@ -460,13 +460,14 @@ elementToBeamer slideLevel (Div (ident,"section":dclasses,dkvs)
| lvl > slideLevel
= return $ Div (ident,"block":dclasses,dkvs) xs
| lvl < slideLevel
= do let isDiv (Div{}) = True
isDiv _ = False
let (titleBs, slideBs) = break isDiv ys
= do let isSlide (Div (_,"slide":_,_) _) = True
isSlide (Div (_,"section":_,_) _) = True
isSlide _ = False
let (titleBs, slideBs) = break isSlide ys
return $
if null titleBs
then Div (ident,dclasses,dkvs) xs
else Div (ident,dclasses,dkvs)
then Div (ident,"section":dclasses,dkvs) xs
else Div (ident,"section":dclasses,dkvs)
(h : Div ("","slide":dclasses,dkvs) (h:titleBs) : slideBs)
| otherwise
= return $ Div (ident,"slide":dclasses,dkvs) xs

91
test/command/6033.md Normal file
View file

@ -0,0 +1,91 @@
```
% pandoc -t beamer --slide-level=4
# One
## One-A
:::: columns
::: column
- One column.
:::
::: column
- Another column.
:::
::::
- Some more text.
## One-B
- Text.
# Two
## Two-A
- More text.
^D
\hypertarget{one}{%
\section{One}\label{one}}
\hypertarget{one-a}{%
\subsection{One-A}\label{one-a}}
\begin{frame}{One-A}
\begin{columns}[T]
\begin{column}{0.48\textwidth}
\begin{itemize}
\tightlist
\item
One column.
\end{itemize}
\end{column}
\begin{column}{0.48\textwidth}
\begin{itemize}
\tightlist
\item
Another column.
\end{itemize}
\end{column}
\end{columns}
\begin{itemize}
\tightlist
\item
Some more text.
\end{itemize}
\end{frame}
\hypertarget{one-b}{%
\subsection{One-B}\label{one-b}}
\begin{frame}{One-B}
\begin{itemize}
\tightlist
\item
Text.
\end{itemize}
\end{frame}
\hypertarget{two}{%
\section{Two}\label{two}}
\hypertarget{two-a}{%
\subsection{Two-A}\label{two-a}}
\begin{frame}{Two-A}
\begin{itemize}
\tightlist
\item
More text.
\end{itemize}
\end{frame}
```