From e3a263df4669450049c49043412f791261e049a4 Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Wed, 11 Aug 2021 16:14:34 -0700 Subject: Fix scope for LaTeX macros. They should by default scope over the group in which they are defined (except `\gdef` and `\xdef`, which are global). In addition, environments must be treated as groups. We handle this by making sMacros in the LaTeX parser state a STACK of macro tables. Opening a group adds a table to the stack, closing one removes one. Only the top of the stack is queried. This commit adds a parameter for scope to the Macro constructor (not exported). Closes #7494. --- test/command/7494.md | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 test/command/7494.md (limited to 'test') diff --git a/test/command/7494.md b/test/command/7494.md new file mode 100644 index 000000000..d8a2ff7a5 --- /dev/null +++ b/test/command/7494.md @@ -0,0 +1,50 @@ +``` +% pandoc -f latex -t plain +\def\foo{BAR} +{\foo +\def\foo{BAZ} +\foo +} +\foo +^D +BAR BAZ BAR +``` + +``` +% pandoc -f latex -t plain +\def\foo{BAR} +{\foo +\gdef\foo{BAZ} +\foo +} +\foo +^D +BAR BAZ BAZ +``` + +``` +% pandoc -f latex -t plain +\newcommand{\aaa}{BBB} +{ +\renewcommand{\aaa}{AAA} +\aaa +} +\aaa +^D +AAA BBB +``` + +``` +% pandoc -f latex -t markdown +\newcommand{\aaa}{BBB} +\begin{quote} +\renewcommand{\aaa}{AAA} +\aaa +\end{quote} +\aaa +^D +> AAA + +BBB +``` + -- cgit v1.2.3