@@ -164,6 +164,7 @@ data LaTeXState = LaTeXState{ sOptions :: ReaderOptions
164 , sInTableCell :: Bool
164 , sInTableCell :: Bool
165 , sLastHeaderNum :: HeaderNum
165 , sLastHeaderNum :: HeaderNum
166 , sLabels :: M.Map String [Inline]
166 , sLabels :: M.Map String [Inline]
167+ , sHasChapters :: Bool
167 , sToggles :: M.Map String Bool
168 , sToggles :: M.Map String Bool
169 deriving Show
170 deriving Show
@@ -183,6 +184,7 @@ defaultLaTeXState = LaTeXState{ sOptions = def
183 , sInTableCell = False
184 , sInTableCell = False
184 , sLastHeaderNum = HeaderNum []
185 , sLastHeaderNum = HeaderNum []
185 , sLabels = M.empty
186 , sLabels = M.empty
187+ , sHasChapters = False
186 , sToggles = M.empty
188 , sToggles = M.empty
@@ -1984,9 +1986,13 @@ section starred (ident, classes, kvs) lvl = do
1984 try (spaces >> controlSeq "label"
1986 try (spaces >> controlSeq "label"
1985 >> spaces >> toksToString <$> braced)
1987 >> spaces >> toksToString <$> braced)
1986 let classes' = if starred then "unnumbered" : classes else classes
1988 let classes' = if starred then "unnumbered" : classes else classes
1990+ updateState $ \st -> st{ sHasChapters = True }
1987 unless starred $ do
1991 unless starred $ do
1988 hn <- sLastHeaderNum <$> getState
1992 hn <- sLastHeaderNum <$> getState
1993+ hasChapters <- sHasChapters <$> getState
1994+ let lvl' = lvl + if hasChapters then 1 else 0
1989− let num = incrementHeaderNum lvl hn
1995+ let num = incrementHeaderNum lvl' hn
1990 updateState $ \st -> st{ sLastHeaderNum = num }
1996 updateState $ \st -> st{ sLastHeaderNum = num }
1991 updateState $ \st -> st{ sLabels = M.insert lab
1997 updateState $ \st -> st{ sLabels = M.insert lab
1992 [Str (renderHeaderNum num)]
1998 [Str (renderHeaderNum num)]