git.iko.soy/typeable/pandoc
on master help sign in
LaTeX writer: Fix unnumbered headers when used with `--top-level`

Fix interaction of top-level divisions `part` or `chapter` with unnumbered headers when emitting LaTeX. Headers are ensured to be written using stared commands (like `\subsection*{}`). Fixes: #3272

commitbfa734c402fab970c1abebf1d6c1429f060082b8 authorAlbert Krewinkel <albert@zeitkraut.de> dateSun 4 Dec 2016, 21:15 (10 years ago) parent85e8afe
2 files changed+23−1
src/Text/Pandoc/Writers/LaTeX.hs+1−1 tests/Tests/Writers/LaTeX.hs+22
src/Text/Pandoc/Writers/LaTeX.hs+1−1
@@ -791,7 +791,7 @@ sectionHeader unnumbered ident level lst = do
791791 -- see http://tex.stackexchange.com/questions/169830/
792792 else empty
793793 lab <- labelFor ident
794− let star = if unnumbered && level < 4 then text "*" else empty
794+ let star = if unnumbered && level' < 4 then text "*" else empty
795795 let stuffing = star <> optional <> contents
796796 stuffing' <- hypertarget ident $ text ('\\':sectionType) <> stuffing <> lab
797797 return $ if level' > 5
tests/Tests/Writers/LaTeX.hs+22
@@ -146,6 +146,28 @@ tests = [ testGroup "code blocks"
146146 , "\\subsection{header2}\n"
147147 , "\\subsubsection{header3}"
148148 ]
149+ , test (latexTopLevelDiv TopLevelPart)
150+ "part top-level, section not in toc" $
151+ ( headerWith ("", ["unnumbered"], []) 1 (text "header1")
152+ <> headerWith ("", ["unnumbered"], []) 2 (text "header2")
153+ <> headerWith ("", ["unnumbered"], []) 3 (text "header3")
154+ <> headerWith ("", ["unnumbered"], []) 4 (text "header4")
155+ <> headerWith ("", ["unnumbered"], []) 5 (text "header5")
156+ <> headerWith ("", ["unnumbered"], []) 6 (text "header6"))
157+ =?>
158+ unlines [ "\\part*{header1}"
159+ , "\\addcontentsline{toc}{part}{header1}\n"
160+ , "\\chapter*{header2}"
161+ , "\\addcontentsline{toc}{chapter}{header2}\n"
162+ , "\\section*{header3}"
163+ , "\\addcontentsline{toc}{section}{header3}\n"
164+ , "\\subsection*{header4}"
165+ , "\\addcontentsline{toc}{subsection}{header4}\n"
166+ , "\\subsubsection*{header5}"
167+ , "\\addcontentsline{toc}{subsubsection}{header5}\n"
168+ , "\\paragraph{header6}"
169+ , "\\addcontentsline{toc}{paragraph}{header6}"
170+ ]
149171 ]
150172 ]
151173 ]