LaTeX reader: handle includes without surrounding blanklines.
In addition, `\input` can now be used in an inline context, e.g. to provide part of a paragraph, as it can in LaTeX. Closes #4553.
This commit is contained in:
parent
0fc7d38544
commit
d32e866449
4 changed files with 26 additions and 7 deletions
|
@ -192,6 +192,7 @@ extra-source-files:
|
|||
test/command/inkscape-cube.svg
|
||||
test/command/sub-file-chapter-1.tex
|
||||
test/command/sub-file-chapter-2.tex
|
||||
test/command/bar.tex
|
||||
test/command/3510-subdoc.org
|
||||
test/command/3510-export.latex
|
||||
test/command/3510-src.hs
|
||||
|
|
|
@ -1642,6 +1642,8 @@ inlineCommands = M.union inlineLanguageCommands $ M.fromList
|
|||
, ("Rn", romanNumeralLower)
|
||||
-- babel
|
||||
, ("foreignlanguage", foreignlanguage)
|
||||
-- include
|
||||
, ("input", include "input")
|
||||
]
|
||||
|
||||
makeUppercase :: Inlines -> Inlines
|
||||
|
@ -1917,7 +1919,6 @@ end_ t = try (do
|
|||
preamble :: PandocMonad m => LP m Blocks
|
||||
preamble = mempty <$ many preambleBlock
|
||||
where preambleBlock = spaces1
|
||||
<|> void include
|
||||
<|> void macroDef
|
||||
<|> void blockCommand
|
||||
<|> void braced
|
||||
|
@ -1930,11 +1931,8 @@ paragraph = do
|
|||
then return mempty
|
||||
else return $ para x
|
||||
|
||||
include :: PandocMonad m => LP m Blocks
|
||||
include = do
|
||||
(Tok _ (CtrlSeq name) _) <-
|
||||
controlSeq "include" <|> controlSeq "input" <|>
|
||||
controlSeq "subfile" <|> controlSeq "usepackage"
|
||||
include :: (PandocMonad m, Monoid a) => Text -> LP m a
|
||||
include name = do
|
||||
skipMany opt
|
||||
fs <- (map (T.unpack . removeDoubleQuotes . T.strip) . T.splitOn "," .
|
||||
untokenize) <$> braced
|
||||
|
@ -2251,6 +2249,11 @@ blockCommands = M.fromList
|
|||
-- LaTeX colors
|
||||
, ("textcolor", coloredBlock "color")
|
||||
, ("colorbox", coloredBlock "background-color")
|
||||
-- include
|
||||
, ("include", include "include")
|
||||
, ("input", include "input")
|
||||
, ("subfile", include "subfile")
|
||||
, ("usepackage", include "usepackage")
|
||||
]
|
||||
|
||||
|
||||
|
@ -2689,7 +2692,6 @@ block :: PandocMonad m => LP m Blocks
|
|||
block = do
|
||||
res <- (mempty <$ spaces1)
|
||||
<|> environment
|
||||
<|> include
|
||||
<|> macroDef
|
||||
<|> blockCommand
|
||||
<|> paragraph
|
||||
|
|
15
test/command/4553.md
Normal file
15
test/command/4553.md
Normal file
|
@ -0,0 +1,15 @@
|
|||
```
|
||||
pandoc -f latex -t native
|
||||
foo \include{command/bar}
|
||||
^D
|
||||
[Para [Str "foo"]
|
||||
,Para [Emph [Str "hi",Space,Str "there"]]]
|
||||
```
|
||||
|
||||
```
|
||||
pandoc -f latex -t native
|
||||
foo \input{command/bar}
|
||||
^D
|
||||
[Para [Str "foo",Space,Emph [Str "hi",Space,Str "there"]]]
|
||||
```
|
||||
|
1
test/command/bar.tex
Normal file
1
test/command/bar.tex
Normal file
|
@ -0,0 +1 @@
|
|||
\emph{hi there}
|
Loading…
Add table
Reference in a new issue