* [BUG] beamer export @ 2022-09-28 19:46 Leo Butler 2022-09-29 2:45 ` Ihor Radchenko 0 siblings, 1 reply; 18+ messages in thread From: Leo Butler @ 2022-09-28 19:46 UTC (permalink / raw) To: Org Mode Mailing List [-- Attachment #1: Type: text/plain, Size: 66 bytes --] The following Org document shows a bug in the beamer exporter. [-- Attachment #2: beamer bug.org --] [-- Type: text/plain, Size: 2840 bytes --] #+TITLE: Writing Beamer presentations in org-mode #+AUTHOR: Eric S Fraga #+AUTHOR: (bug report by Leo Butler) #+EMAIL: e.fraga@ucl.ac.uk #+DATE: 2010-03-30 Tue #+DESCRIPTION: #+KEYWORDS: #+LANGUAGE: en #+OPTIONS: H:2 num:t toc:t \n:nil @:t ::t |:t ^:t -:t f:t *:t <:t #+OPTIONS: TeX:t LaTeX:t skip:nil d:nil todo:t pri:nil tags:not-in-toc #+INFOJS_OPT: view:nil toc:nil ltoc:t mouse:underline buttons:0 path:https://orgmode.org/org-info.js #+EXPORT_SELECT_TAGS: export #+EXPORT_EXCLUDE_TAGS: noexport #+HTML_LINK_UP: #+HTML_LINK_HOME: #+LATEX_COMPILER: lualatex #+startup: beamer #+LaTeX_CLASS: beamer #+LaTeX_CLASS_OPTIONS: [bigger] #+COLUMNS: %40ITEM %10BEAMER_env(Env) %9BEAMER_envargs(Env Args) %4BEAMER_col(Col) %10BEAMER_extra(Extra) * A Bug Report about the Beamer Tutorial ** #+begin_src elisp :exports both (org-version) #+end_src #+RESULTS: : 9.5.2 ** The bug The [[https://orgmode.org/worg/exporters/beamer/tutorial.html][Beamer tutorial by Eric Fraga]] ([[https://orgmode.org/worg/exporters/beamer/tutorial.html]]) has an example that shows how to create a two column frame using org. The first column is not identified, though. ** The Org code Here is the org code. \tiny #+begin_src org :exports code ,** Two columns ,*** A block :B_ignoreheading:BMCOL: :PROPERTIES: :BEAMER_env: ignoreheading :BEAMER_col: 0.4 :END: - this slide consists of two columns - the first (left) column has no heading and consists of text - the second (right) column has an image and is enclosed in an @example@ block ,*** A screenshot :BMCOL:B_example: :PROPERTIES: :BEAMER_col: 0.6 :BEAMER_env: example :END: ,#+ATTR_LaTeX: :width \textwidth [[./a-simple-slide.png]] #+end_src ** The \LaTeX{} code Here is the generated \LaTeX{} code. I needed to add comment characters (%) to each line due to a bug in the =verbatim= environment.\pause \tiny #+begin_src latex :exports code % \begin{frame}[label={sec:orgcc0ebff}]{Two columns} % \begin{itemize} % \item this slide consists of two columns % \item the first (left) column has no heading and consists of text % \item the second (right) column has an image and is enclosed in an % @example@ block % \end{itemize} % \begin{column}{0.6\columnwidth} % \begin{example}[A screenshot] % \begin{center} % \includegraphics[width=\textwidth]{./a-simple-slide.png} % \end{center} % \end{example} % \end{column} % \end{columns} % \end{frame} #+end_src \pause\normalsize The first =itemize= environment should have been wrapped by a =column= environment inside the =columns= environment. ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [BUG] beamer export 2022-09-28 19:46 [BUG] beamer export Leo Butler @ 2022-09-29 2:45 ` Ihor Radchenko 2022-09-29 18:43 ` Daniel Fleischer 2024-01-20 14:56 ` Ihor Radchenko 0 siblings, 2 replies; 18+ messages in thread From: Ihor Radchenko @ 2022-09-29 2:45 UTC (permalink / raw) To: Leo Butler, Daniel Fleischer; +Cc: Org Mode Mailing List Leo Butler <Leo.Butler@umanitoba.ca> writes: > The following Org document shows a bug in the beamer exporter. Confirmed on main. There are two bugs reported here: 1. ox-latex export bug for src blocks containing direct LaTeX when org-latex-src-block-backend is set to its default 'verbatim value 2. ox-beamer export bug as described in the attached org file Daniel, can you please take a look at the first bug? I suspect that \commands should be additionally escaped in verbatim environment, similar to https://stackoverflow.com/questions/3019774/how-write-this-in-verbatim-latex -- Ihor Radchenko, Org mode contributor, Learn more about Org mode at https://orgmode.org/. Support Org development at https://liberapay.com/org-mode, or support my work at https://liberapay.com/yantar92 ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [BUG] beamer export 2022-09-29 2:45 ` Ihor Radchenko @ 2022-09-29 18:43 ` Daniel Fleischer 2022-12-10 12:49 ` Ihor Radchenko 2024-01-20 14:56 ` Ihor Radchenko 1 sibling, 1 reply; 18+ messages in thread From: Daniel Fleischer @ 2022-09-29 18:43 UTC (permalink / raw) To: Ihor Radchenko; +Cc: Leo Butler, Org Mode Mailing List [-- Attachment #1: Type: text/plain, Size: 980 bytes --] Hi, I'm on vacation for the next month. I can look at it when I'm back. On Thu, Sep 29, 2022, 03:44 Ihor Radchenko <yantar92@gmail.com> wrote: > Leo Butler <Leo.Butler@umanitoba.ca> writes: > > > The following Org document shows a bug in the beamer exporter. > > Confirmed on main. > > There are two bugs reported here: > 1. ox-latex export bug for src blocks containing direct LaTeX when > org-latex-src-block-backend is set to its default 'verbatim value > 2. ox-beamer export bug as described in the attached org file > > Daniel, can you please take a look at the first bug? > I suspect that \commands should be additionally escaped in verbatim > environment, similar to > > https://stackoverflow.com/questions/3019774/how-write-this-in-verbatim-latex > > -- > Ihor Radchenko, > Org mode contributor, > Learn more about Org mode at https://orgmode.org/. > Support Org development at https://liberapay.com/org-mode, > or support my work at https://liberapay.com/yantar92 > [-- Attachment #2: Type: text/html, Size: 1801 bytes --] ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [BUG] beamer export 2022-09-29 18:43 ` Daniel Fleischer @ 2022-12-10 12:49 ` Ihor Radchenko 0 siblings, 0 replies; 18+ messages in thread From: Ihor Radchenko @ 2022-12-10 12:49 UTC (permalink / raw) To: Daniel Fleischer; +Cc: Ihor Radchenko, Leo Butler, Org Mode Mailing List Daniel Fleischer <danflscr@gmail.com> writes: > Hi, I'm on vacation for the next month. I can look at it when I'm back. There is no activity in this thread for over one month. Bumping. -- Ihor Radchenko // yantar92, Org mode contributor, Learn more about Org mode at <https://orgmode.org/>. Support Org development at <https://liberapay.com/org-mode>, or support my work at <https://liberapay.com/yantar92> ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [BUG] beamer export 2022-09-29 2:45 ` Ihor Radchenko 2022-09-29 18:43 ` Daniel Fleischer @ 2024-01-20 14:56 ` Ihor Radchenko 2024-01-23 16:58 ` Leo Butler 1 sibling, 1 reply; 18+ messages in thread From: Ihor Radchenko @ 2024-01-20 14:56 UTC (permalink / raw) To: Ihor Radchenko; +Cc: Leo Butler, Daniel Fleischer, Org Mode Mailing List Ihor Radchenko <yantar92@gmail.com> writes: > Leo Butler <Leo.Butler@umanitoba.ca> writes: > >> The following Org document shows a bug in the beamer exporter. > > Confirmed on main. I investigated further. > There are two bugs reported here: > 1. ox-latex export bug for src blocks containing direct LaTeX when > org-latex-src-block-backend is set to its default 'verbatim value This appears to be Beamer-specific problem with verbatim environments: https://tex.stackexchange.com/questions/140719/verbatim-in-beamer-showing-error-file-ended-while-scanning-use-of-xverbatim The solution might be to use [fragile] frame parameter, but that might have its own drawbacks: https://tex.stackexchange.com/questions/136240/drawbacks-of-using-fragile-frames-in-beamer > 2. ox-beamer export bug as described in the attached org file This is not a bug. When you specify ignoreheading environment, you imply that the contents of the heading is to be included as is. If you want the contents to become a column, you should specify column environment. -- Ihor Radchenko // yantar92, Org mode contributor, Learn more about Org mode at <https://orgmode.org/>. Support Org development at <https://liberapay.com/org-mode>, or support my work at <https://liberapay.com/yantar92> ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [BUG] beamer export 2024-01-20 14:56 ` Ihor Radchenko @ 2024-01-23 16:58 ` Leo Butler 2024-01-24 16:06 ` Ihor Radchenko 0 siblings, 1 reply; 18+ messages in thread From: Leo Butler @ 2024-01-23 16:58 UTC (permalink / raw) To: Ihor Radchenko; +Cc: Ihor Radchenko, Daniel Fleischer, Org Mode Mailing List [-- Attachment #1: Type: text/plain, Size: 2108 bytes --] On Sat, Jan 20 2024, Ihor Radchenko <yantar92@posteo.net> wrote: > Ihor Radchenko <yantar92@gmail.com> writes: > >> Leo Butler <Leo.Butler@umanitoba.ca> writes: >> >>> The following Org document shows a bug in the beamer exporter. >> >> Confirmed on main. > > I investigated further. Thanks. > >> There are two bugs reported here: >> 1. ox-latex export bug for src blocks containing direct LaTeX when >> org-latex-src-block-backend is set to its default 'verbatim value > > This appears to be Beamer-specific problem with verbatim environments: > https://tex.stackexchange.com/questions/140719/verbatim-in-beamer-showing-error-file-ended-while-scanning-use-of-xverbatim > > The solution might be to use [fragile] frame parameter, but that might > have its own drawbacks: > https://tex.stackexchange.com/questions/136240/drawbacks-of-using-fragile-frames-in-beamer Yes, an *automatic* solution may create more problems than it solves. Although, I do note that ox-beamer does mark some frames as fragile already. I wonder how difficult it would be to add a property drawer to frames, so (amongst other things), they could be marked fragile? > >> 2. ox-beamer export bug as described in the attached org file > > This is not a bug. When you specify ignoreheading environment, you imply > that the contents of the heading is to be included as is. > If you want the contents to become a column, you should specify column > environment. I see. That is not now the ignoreheading property is described. It says [1]: ... As the text in the slide says, the left column is a list and the right one is an image. The left column's headline text is ignored, specified by =C-c C-b i= which tells org to *ignore* the headline text completely. I think the documentation and example needs to be corrected. I have attached a patch. I have also attached a revision of the original org file with the bug report, and its export to pdf to demonstrate that the revised example works as intended. Best, Leo [1] worg/exporters/beamer/tutorial.org [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: beamer-bug.org --] [-- Type: text/x-org; name="beamer-bug.org", Size: 3893 bytes --] #+TITLE: Writing Beamer presentations in org-mode #+AUTHOR: Eric S Fraga #+AUTHOR: (bug report by Leo Butler) #+EMAIL: e.fraga@ucl.ac.uk #+DATE: 2010-03-30 Tue #+DESCRIPTION: #+KEYWORDS: #+LANGUAGE: en #+OPTIONS: H:2 num:t toc:t \n:nil @:t ::t |:t ^:t -:t f:t *:t <:t #+OPTIONS: TeX:t LaTeX:t skip:nil d:nil todo:t pri:nil tags:not-in-toc #+INFOJS_OPT: view:nil toc:nil ltoc:t mouse:underline buttons:0 path:https://orgmode.org/org-info.js #+EXPORT_SELECT_TAGS: export #+EXPORT_EXCLUDE_TAGS: noexport #+HTML_LINK_UP: #+HTML_LINK_HOME: #+LATEX_COMPILER: lualatex #+startup: beamer #+LaTeX_CLASS: beamer #+LaTeX_CLASS_OPTIONS: [bigger] #+COLUMNS: %40ITEM %10BEAMER_env(Env) %9BEAMER_envargs(Env Args) %4BEAMER_col(Col) %10BEAMER_extra(Extra) * A Bug Report about the Beamer Tutorial ** :PROPERTIES: :BEAMER_env: frame :END: #+begin_src elisp :exports both :results list (list (emacs-version) (org-version)) #+end_src #+RESULTS: - GNU Emacs 29.1 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.38, cairo version 1.16.0) of 2023-08-30, modified by Debian - 9.6.10 ** The bug :PROPERTIES: :BEAMER_env: frame :END: The [[https://orgmode.org/worg/exporters/beamer/tutorial.html][Beamer tutorial by Eric Fraga]] ([[https://orgmode.org/worg/exporters/beamer/tutorial.html]]) has an example that shows how to create a two column frame using org. The example is incorrect, though, because it sets the =ignoreheading= property on the first column. The following example removes that property and corrects a minor typo in the example. ** The Org code :PROPERTIES: :BEAMER_env: frame :END: Here is the org code. \tiny #+name: beamer-ex #+begin_src org :exports both :results replace ,** Two columns ,*** A block :BMCOL: :PROPERTIES: :BEAMER_col: 0.4 :END: - this slide consists of two columns - the first (left) column has no heading and consists of text - the second (right) column has an image and is enclosed in an *example* block ,*** A screenshot :BMCOL:B_example: :PROPERTIES: :BEAMER_col: 0.6 :BEAMER_env: example :END: ,#+ATTR_LaTeX: :width \textwidth [[./a-simple-slide.png]] #+end_src #+RESULTS: beamer-ex ** Two columns *** A block :BMCOL: :PROPERTIES: :BEAMER_col: 0.4 :END: - this slide consists of two columns - the first (left) column has no heading and consists of text - the second (right) column has an image and is enclosed in an *example* block *** A screenshot :BMCOL:B_example: :PROPERTIES: :BEAMER_col: 0.6 :BEAMER_env: example :END: #+ATTR_LaTeX: :width \textwidth [[./a-simple-slide.png]] ** The \LaTeX{} code :noexport: Here is the generated \LaTeX{} code. I needed to add comment characters (%) to each line due to a bug in the =verbatim= environment.\pause \tiny #+begin_example %\begin{frame}[label={sec:org8bc49cc}]{Two columns} \begin{columns} \begin{column}{0.4\columnwidth} \begin{itemize} \item this slide consists of two columns \item the first (left) column has no heading and consists of text \item the second (right) column has an image and is enclosed in an \alert{example} block \end{itemize} \end{column} \begin{column}{0.6\columnwidth} \begin{example}[A screenshot] \begin{center} \includegraphics[width=\textwidth]{./a-simple-slide.png} \end{center} \end{example} \end{column} \end{columns} %\end{frame} #+end_example \pause\normalsize The first =itemize= environment should have been wrapped by a =column= environment inside the =columns= environment. [-- Attachment #3: beamer-bug.pdf --] [-- Type: application/pdf, Size: 100158 bytes --] [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #4: 0001-exporters-beamer-tutorial.org-fix-two-column-example.patch --] [-- Type: text/x-diff; name="0001-exporters-beamer-tutorial.org-fix-two-column-example.patch", Size: 2456 bytes --] From 77e2766f5fc5dda2118458f73a0b93ff1f1e6a38 Mon Sep 17 00:00:00 2001 From: Leo Butler <leo.butler@umanitoba.ca> Date: Tue, 23 Jan 2024 10:49:21 -0600 Subject: [PATCH] exporters/beamer/tutorial.org: fix two column example * exporters/beamer/tutorial.org: The ignoreheading environment causes the column property to be ignored, which is opposite to the intent of the Two columns example. Remove that environment and the pertinent comment in the paragraph following, so the example exports as intended. Fix a couple typos in the Org example itself. --- exporters/beamer/tutorial.org | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/exporters/beamer/tutorial.org b/exporters/beamer/tutorial.org index fc32395f..f40425ed 100644 --- a/exporters/beamer/tutorial.org +++ b/exporters/beamer/tutorial.org @@ -198,31 +198,29 @@ column. The following #+BEGIN_Example ,** Two columns -,*** A block :B_ignoreheading:BMCOL: +,*** A block :BMCOL: :PROPERTIES: - :BEAMER_env: ignoreheading :BEAMER_col: 0.4 :END: - this slide consists of two columns - the first (left) column has no heading and consists of text - the second (right) column has an image and is enclosed in an - @example@ block + *example* block ,*** A screenshot :BMCOL:B_example: :PROPERTIES: :BEAMER_col: 0.6 :BEAMER_env: example :END: -, #+ATTR_LaTeX: :width \textwidth - [[file://../../images/org-beamer/a-simple-slide.png]] +,#+ATTR_LaTeX: :width \textwidth +[[file://../../images/org-beamer/a-simple-slide.png]] #+END_Example defines a two column slide. As the text in the slide says, the left column is a list and the right one is an image. The left column's -headline text is ignored, specified by =C-c C-b i= which tells org to -*ignore* the headline text completely. The column on the right -however is placed with an /example/ block (whose appearance will -depend on the Beamer theme). +headline text is ignored. The column on the right however is placed +with an /example/ block (whose appearance will depend on the Beamer +theme). The columns also have widths. By default, these widths are the proportion of the page width to use so I have specified 40% for the -- 2.43.0 ^ permalink raw reply related [flat|nested] 18+ messages in thread
* Re: [BUG] beamer export 2024-01-23 16:58 ` Leo Butler @ 2024-01-24 16:06 ` Ihor Radchenko 2024-01-25 16:13 ` Leo Butler 2024-01-25 22:29 ` Leo Butler 0 siblings, 2 replies; 18+ messages in thread From: Ihor Radchenko @ 2024-01-24 16:06 UTC (permalink / raw) To: Leo Butler; +Cc: Ihor Radchenko, Daniel Fleischer, Org Mode Mailing List Leo Butler <Leo.Butler@umanitoba.ca> writes: >>> 1. ox-latex export bug for src blocks containing direct LaTeX when >>> org-latex-src-block-backend is set to its default 'verbatim value >> >> This appears to be Beamer-specific problem with verbatim environments: >> https://tex.stackexchange.com/questions/140719/verbatim-in-beamer-showing-error-file-ended-while-scanning-use-of-xverbatim >> >> The solution might be to use [fragile] frame parameter, but that might >> have its own drawbacks: >> https://tex.stackexchange.com/questions/136240/drawbacks-of-using-fragile-frames-in-beamer > > Yes, an *automatic* solution may create more problems than it solves. > Although, I do note that ox-beamer does mark some frames as fragile already. > I wonder how difficult it would be to add a property drawer to frames, > so (amongst other things), they could be marked fragile? Hmm. Actually, that frame is already marked fragile. Yet, it is not enough... Apparently, LaTeX has really hard time processing verbatim code inside beamer frames. >>> 2. ox-beamer export bug as described in the attached org file >> >> This is not a bug. When you specify ignoreheading environment, you imply >> that the contents of the heading is to be included as is. >> If you want the contents to become a column, you should specify column >> environment. > > I see. That is not now the ignoreheading property is described. It says > [1]: > > ... As the text in the slide says, the left column is a list and the > right one is an image. The left column's headline text is ignored, > specified by =C-c C-b i= which tells org to *ignore* the headline > text completely. > > I think the documentation and example needs to be corrected. I have > attached a patch. Thanks! Applied. https://git.sr.ht/~bzg/worg/commit/aedea59f -- Ihor Radchenko // yantar92, Org mode contributor, Learn more about Org mode at <https://orgmode.org/>. Support Org development at <https://liberapay.com/org-mode>, or support my work at <https://liberapay.com/yantar92> ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [BUG] beamer export 2024-01-24 16:06 ` Ihor Radchenko @ 2024-01-25 16:13 ` Leo Butler 2024-01-26 11:45 ` Ihor Radchenko 2024-01-25 22:29 ` Leo Butler 1 sibling, 1 reply; 18+ messages in thread From: Leo Butler @ 2024-01-25 16:13 UTC (permalink / raw) To: Ihor Radchenko; +Cc: Ihor Radchenko, Daniel Fleischer, Org Mode Mailing List [-- Attachment #1: Type: text/plain, Size: 2812 bytes --] On Wed, Jan 24 2024, Ihor Radchenko <yantar92@posteo.net> wrote: > Leo Butler <Leo.Butler@umanitoba.ca> writes: > >>>> 1. ox-latex export bug for src blocks containing direct LaTeX when >>>> org-latex-src-block-backend is set to its default 'verbatim value >>> >>> This appears to be Beamer-specific problem with verbatim environments: >>> https://tex.stackexchange.com/questions/140719/verbatim-in-beamer-showing-error-file-ended-while-scanning-use-of-xverbatim >>> >>> The solution might be to use [fragile] frame parameter, but that might >>> have its own drawbacks: >>> https://tex.stackexchange.com/questions/136240/drawbacks-of-using-fragile-frames-in-beamer >> >> Yes, an *automatic* solution may create more problems than it solves. >> Although, I do note that ox-beamer does mark some frames as fragile already. >> I wonder how difficult it would be to add a property drawer to frames, >> so (amongst other things), they could be marked fragile? > > Hmm. Actually, that frame is already marked fragile. > Yet, it is not enough... > Apparently, LaTeX has really hard time processing verbatim code inside > beamer frames. I looked again at the solution here: https://tex.stackexchange.com/questions/140719/verbatim-in-beamer-showing-error-file-ended-while-scanning-use-of-xverbatim and it errors out with a recent version of pdflatex: This is pdfTeX, Version 3.141592653-2.6-1.40.25 (TeX Live 2023/Debian) (preloaded format=pdflatex) This is, apparently, a known problem: https://github.com/josephwright/beamer/issues/360 The end of that issue report includes a work-around that we might apply in org. I have attached a patch for your feedback. The example that stimulated this discussion compiles with the patch and the testsuite shows no errors related to it. > >>>> 2. ox-beamer export bug as described in the attached org file >>> >>> This is not a bug. When you specify ignoreheading environment, you imply >>> that the contents of the heading is to be included as is. >>> If you want the contents to become a column, you should specify column >>> environment. >> >> I see. That is not now the ignoreheading property is described. It says >> [1]: >> >> ... As the text in the slide says, the left column is a list and the >> right one is an image. The left column's headline text is ignored, >> specified by =C-c C-b i= which tells org to *ignore* the headline >> text completely. >> >> I think the documentation and example needs to be corrected. I have >> attached a patch. > > Thanks! Applied. > https://git.sr.ht/~bzg/worg/commit/aedea59f Thanks. I can see the commit on master in git, but the webpage seems to be unchanged. https://orgmode.org/worg/exporters/beamer/tutorial.html Leo [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: 0001-lisp-ox-beamer.el-randomize-the-beamer-frame-environ.patch --] [-- Type: text/x-diff; name="0001-lisp-ox-beamer.el-randomize-the-beamer-frame-environ.patch", Size: 3216 bytes --] From 9cb3489e3fe80fb2e3996b737f528aa4db9ba62d Mon Sep 17 00:00:00 2001 From: Leo Butler <leo.butler@umanitoba.ca> Date: Thu, 25 Jan 2024 09:48:20 -0600 Subject: [PATCH] lisp/ox-beamer.el: randomize the beamer frame environment * lisp/ox-beamer.el (org-beamer--frame-environment): new variable that contains the name of an environment that serves as an alias for the beamer frame environment. The environment's definition is appended to the set-up for beamer export. (org-beamer--format-frame): Replace the occurrence of \begin{frame} and \end{frame} with the new environment's name. Rationale: Code with \begin{frame} or \end{frame} cannot be embedded in a verbatim environment inside a beamer frame due to a design decision made by the beamer developers [1]. As suggested in that report, defining an alias for the beamer frame environment will allow such verbatim examples to compile correctly [2]. Refs: [1] https://github.com/josephwright/beamer/issues/360 [2] https://github.com/josephwright/beamer/issues/360#issuecomment-708705250 [3] https://list.orgmode.org/orgmode/87le8eg1hs.fsf@localhost/T/ --- lisp/ox-beamer.el | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/lisp/ox-beamer.el b/lisp/ox-beamer.el index 82c8841aa..be3003835 100644 --- a/lisp/ox-beamer.el +++ b/lisp/ox-beamer.el @@ -36,11 +36,23 @@ (require 'cl-lib) (require 'ox-latex) +;; Needed to set-up Beamer export. +(defconst org-beamer--frame-environment + (concat "orgframe" (org-id-uuid)) + "Name of the beamer frame environment. +This is randomized to prevent collisions.") + ;; Install a default set-up for Beamer export. (unless (assoc "beamer" org-latex-classes) (add-to-list 'org-latex-classes - '("beamer" - "\\documentclass[presentation]{beamer}" + `("beamer" + ,(concat "\\documentclass[presentation]{beamer}\n" + ;; Define an alias for the beamer frame environment + "\\newenvironment<>{" + org-beamer--frame-environment + "}[1][]{\\begin{frame}[environment=" + org-beamer--frame-environment + ",#1]}{\\end{frame}}") ("\\section{%s}" . "\\section*{%s}") ("\\subsection{%s}" . "\\subsection*{%s}") ("\\subsubsection{%s}" . "\\subsubsection*{%s}")))) @@ -414,7 +426,7 @@ used as a communication channel." ;; among `org-beamer-verbatim-elements'. (org-element-map headline org-beamer-verbatim-elements 'identity info 'first-match))) - (concat "\\begin{frame}" + (concat "\\begin{" org-beamer--frame-environment "}" ;; Overlay specification, if any. When surrounded by ;; square brackets, consider it as a default ;; specification. @@ -481,7 +493,7 @@ used as a communication channel." ;; output. (if (not fragilep) contents (replace-regexp-in-string "\\`\n*" "\\& " (or contents ""))) - "\\end{frame}"))) + "\\end{" org-beamer--frame-environment "}"))) (defun org-beamer--format-block (headline contents info) "Format HEADLINE as a block. -- 2.43.0 ^ permalink raw reply related [flat|nested] 18+ messages in thread
* Re: [BUG] beamer export 2024-01-25 16:13 ` Leo Butler @ 2024-01-26 11:45 ` Ihor Radchenko 2024-01-26 20:54 ` Leo Butler 0 siblings, 1 reply; 18+ messages in thread From: Ihor Radchenko @ 2024-01-26 11:45 UTC (permalink / raw) To: Leo Butler; +Cc: Ihor Radchenko, Daniel Fleischer, Org Mode Mailing List Leo Butler <Leo.Butler@umanitoba.ca> writes: >> Apparently, LaTeX has really hard time processing verbatim code inside >> beamer frames. > > I looked again at the solution here: > https://tex.stackexchange.com/questions/140719/verbatim-in-beamer-showing-error-file-ended-while-scanning-use-of-xverbatim > > and it errors out with a recent version of pdflatex: > > This is pdfTeX, Version 3.141592653-2.6-1.40.25 (TeX Live 2023/Debian) (preloaded format=pdflatex) > > This is, apparently, a known problem: > > https://github.com/josephwright/beamer/issues/360 > > The end of that issue report includes a work-around that we might apply > in org. I have attached a patch for your feedback. The example that > stimulated this discussion compiles with the patch and the testsuite > shows no errors related to it. Thanks! I have concerns about your approach though. You are replacing all the frame environments with custom environment unconditionally. However, custom environment has downsides. For example, \againframe will stop working, as pointed earlier in the linked beamer thread https://github.com/josephwright/beamer/issues/360#issuecomment-708705250 Since the problem appears only when the frame contents contains \end{frame}, it may be sufficient to replace the standard frame environment with the workaround only in such scenario. > +;; Needed to set-up Beamer export. > +(defconst org-beamer--frame-environment > + (concat "orgframe" (org-id-uuid)) > + "Name of the beamer frame environment. > +This is randomized to prevent collisions.") Please use constant name. (org-id-uuid) makes export randomized for no good reason. > ;; Install a default set-up for Beamer export. > (unless (assoc "beamer" org-latex-classes) > (add-to-list 'org-latex-classes > - '("beamer" > - "\\documentclass[presentation]{beamer}" > + `("beamer" > + ,(concat "\\documentclass[presentation]{beamer}\n" > + ;; Define an alias for the beamer frame environment > + "\\newenvironment<>{" > + org-beamer--frame-environment > + "}[1][]{\\begin{frame}[environment=" > + org-beamer--frame-environment > + ",#1]}{\\end{frame}}") Please use `org-beamer-template' rather than modifying the class. Modifying the class may confuse users. -- Ihor Radchenko // yantar92, Org mode contributor, Learn more about Org mode at <https://orgmode.org/>. Support Org development at <https://liberapay.com/org-mode>, or support my work at <https://liberapay.com/yantar92> ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [BUG] beamer export 2024-01-26 11:45 ` Ihor Radchenko @ 2024-01-26 20:54 ` Leo Butler 2024-01-29 21:36 ` Leo Butler 0 siblings, 1 reply; 18+ messages in thread From: Leo Butler @ 2024-01-26 20:54 UTC (permalink / raw) To: Ihor Radchenko; +Cc: Ihor Radchenko, Daniel Fleischer, Org Mode Mailing List [-- Attachment #1: Type: text/plain, Size: 3864 bytes --] On Fri, Jan 26 2024, Ihor Radchenko <yantar92@posteo.net> wrote: > Leo Butler <Leo.Butler@umanitoba.ca> writes: > >>> Apparently, LaTeX has really hard time processing verbatim code inside >>> beamer frames. >> >> I looked again at the solution here: >> https://tex.stackexchange.com/questions/140719/verbatim-in-beamer-showing-error-file-ended-while-scanning-use-of-xverbatim >> >> and it errors out with a recent version of pdflatex: >> >> This is pdfTeX, Version 3.141592653-2.6-1.40.25 (TeX Live 2023/Debian) (preloaded format=pdflatex) >> >> This is, apparently, a known problem: >> >> https://github.com/josephwright/beamer/issues/360 >> >> The end of that issue report includes a work-around that we might apply >> in org. I have attached a patch for your feedback. The example that >> stimulated this discussion compiles with the patch and the testsuite >> shows no errors related to it. > > Thanks! > I have concerns about your approach though. > > You are replacing all the frame environments with custom environment > unconditionally. However, custom environment has downsides. For example, > \againframe will stop working, as pointed earlier in the linked beamer > thread > https://github.com/josephwright/beamer/issues/360#issuecomment-708705250 The comment that you are citing shows how to define the custom environment so that \againframe works correctly. See the attachment `beamer-example-againframe.tex' and pdf. You can see that \againframe works with the custom environment. > > Since the problem appears only when the frame contents contains > \end{frame}, it may be sufficient to replace the standard frame > environment with the workaround only in such scenario. Yes, that might be true. But my feeling is that it would be simpler and more robust to use the custom frame environment in most cases. > >> +;; Needed to set-up Beamer export. >> +(defconst org-beamer--frame-environment >> + (concat "orgframe" (org-id-uuid)) >> + "Name of the beamer frame environment. >> +This is randomized to prevent collisions.") > > Please use constant name. (org-id-uuid) makes export randomized for no > good reason. There is a good reason to randomize (or at least make customize-able) the environment name: so that beamer code generated by ox-beamer can be safely inserted into org files and exported by ox-beamer. With a fixed name for the environment, we will have just recreated the original source of the bug report. As a compromise, in the attached patch, I have made the environment name customize-able. > >> ;; Install a default set-up for Beamer export. >> (unless (assoc "beamer" org-latex-classes) >> (add-to-list 'org-latex-classes >> - '("beamer" >> - "\\documentclass[presentation]{beamer}" >> + `("beamer" >> + ,(concat "\\documentclass[presentation]{beamer}\n" >> + ;; Define an alias for the beamer frame environment >> + "\\newenvironment<>{" >> + org-beamer--frame-environment >> + "}[1][]{\\begin{frame}[environment=" >> + org-beamer--frame-environment >> + ",#1]}{\\end{frame}}") > > Please use `org-beamer-template' rather than modifying the class. > Modifying the class may confuse users. Ok, I have done so. The docstring of `org-latex-classes' says: The HEADER-STRING is the header that will be inserted into the LaTeX file. It should contain the \documentclass macro, and anything else that is needed for this setup. From that, I figured that would be the correct place to put that \newenvironment command. I have moved it, as requested. Please see the revised patch. I believe that I have taken into account your suggestions. Leo [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: beamer-example-againframe.tex --] [-- Type: text/x-tex; name="beamer-example-againframe.tex", Size: 764 bytes --] % Created 2024-01-26 Fri 11:42 % Intended LaTeX compiler: lualatex \documentclass[bigger]{beamer} \newenvironment<>{OrgFrame}[1][]{\begin{frame}[environment=OrgFrame,#1]}{\end{frame}} \usetheme{default} \begin{document} \begin{OrgFrame}[label=repeatit,fragile]{Verbatim inside a Special Frame Environment} \tiny \begin{verbatim} \begin{frame}[label={sec:org8bc49cc}]{Two columns} \begin{columns} \begin{column}{0.4\columnwidth} \begin{itemize} \item this slide consists of two columns \item the first (left) column has no heading and consists of text \item the second (right) column has an image and is enclosed in an \alert{example} block \end{itemize} \end{column} \end{verbatim} \end{OrgFrame} \againframe<2>{repeatit} \end{document} [-- Attachment #3: beamer-example-againframe.pdf --] [-- Type: application/pdf, Size: 11872 bytes --] [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #4: 0001-lisp-ox-beamer.el-customize-the-beamer-frame-environ.patch --] [-- Type: text/x-diff; name="0001-lisp-ox-beamer.el-customize-the-beamer-frame-environ.patch", Size: 3477 bytes --] From bfd182b9ca86c2db5cd514cad0a11fd3f5bd8934 Mon Sep 17 00:00:00 2001 From: Leo Butler <leo.butler@umanitoba.ca> Date: Thu, 25 Jan 2024 09:48:20 -0600 Subject: [PATCH] lisp/ox-beamer.el: customize the beamer frame environment name * lisp/ox-beamer.el (org-beamer-frame-environment): new customize variable that contains the name of an environment that serves as an alias for the beamer frame environment. The environment's definition is appended to the set-up for beamer export. (org-beamer--format-frame): Replace the occurrence of \begin{frame} and \end{frame} with the new environment's name. (org-beamer-template): Add LaTeX code to define the new frame environment. Rationale: Code with \begin{frame} or \end{frame} cannot be embedded in a verbatim environment inside a beamer frame due to a design decision made by the beamer developers [1]. As suggested in that report, defining an alias for the beamer frame environment will allow such verbatim examples to compile correctly [2]. Since the frame environment name is customize-able, beamer code generated by ox-beamer can be included inside the verbatim environment, simply by changing the frame environment name. This solution also works with instances of \againframe. Refs: [1] https://github.com/josephwright/beamer/issues/360 [2] https://github.com/josephwright/beamer/issues/360#issuecomment-708705250 [3] https://list.orgmode.org/orgmode/87le8eg1hs.fsf@localhost/T/ --- lisp/ox-beamer.el | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/lisp/ox-beamer.el b/lisp/ox-beamer.el index 82c8841aa..bab9ae089 100644 --- a/lisp/ox-beamer.el +++ b/lisp/ox-beamer.el @@ -45,7 +45,6 @@ ("\\subsection{%s}" . "\\subsection*{%s}") ("\\subsubsection{%s}" . "\\subsubsection*{%s}")))) - \f ;;; User-Configurable Variables @@ -149,6 +148,11 @@ which is replaced with the subtitle." :package-version '(Org . "8.3") :type '(string :tag "Format string")) +(defcustom org-beamer-frame-environment "orgframe" + "Name of the beamer frame environment." + :group 'org-export-beamer + :type '(string :tag "Beamer frame")) + \f ;;; Internal Variables @@ -414,7 +418,7 @@ used as a communication channel." ;; among `org-beamer-verbatim-elements'. (org-element-map headline org-beamer-verbatim-elements 'identity info 'first-match))) - (concat "\\begin{frame}" + (concat "\\begin{" org-beamer-frame-environment "}" ;; Overlay specification, if any. When surrounded by ;; square brackets, consider it as a default ;; specification. @@ -481,7 +485,7 @@ used as a communication channel." ;; output. (if (not fragilep) contents (replace-regexp-in-string "\\`\n*" "\\& " (or contents ""))) - "\\end{frame}"))) + "\\end{" org-beamer-frame-environment "}"))) (defun org-beamer--format-block (headline contents info) "Format HEADLINE as a block. @@ -825,6 +829,12 @@ holding export options." (org-latex--insert-compiler info) ;; Document class and packages. (org-latex-make-preamble info) + ;; Define the frame environment. + "\\newenvironment<>{" + org-beamer-frame-environment + "}[1][]{\\begin{frame}[environment=" + org-beamer-frame-environment + ",#1]}{\\end{frame}}\n" ;; Insert themes. (let ((format-theme (lambda (prop command) -- 2.43.0 [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #5: A MWE that fails with existing ox-beamer.org --] [-- Type: text/org; name="customize-frame.org", Size: 167 bytes --] #+startup: beamer #+LaTeX_CLASS: beamer * A frame with =verbatim= contents #+begin_example \begin{frame} Here is a beamer frame. \end{frame} #+end_example ^ permalink raw reply related [flat|nested] 18+ messages in thread
* Re: [BUG] beamer export 2024-01-26 20:54 ` Leo Butler @ 2024-01-29 21:36 ` Leo Butler 2024-02-01 15:04 ` Ihor Radchenko 0 siblings, 1 reply; 18+ messages in thread From: Leo Butler @ 2024-01-29 21:36 UTC (permalink / raw) To: Ihor Radchenko; +Cc: Ihor Radchenko, Daniel Fleischer, Org Mode Mailing List [-- Attachment #1: Type: text/plain, Size: 2303 bytes --] On Fri, Jan 26 2024, Leo Butler <Leo.Butler@umanitoba.ca> wrote: > On Fri, Jan 26 2024, Ihor Radchenko <yantar92@posteo.net> wrote: > >> Leo Butler <Leo.Butler@umanitoba.ca> writes: >> >>>> Apparently, LaTeX has really hard time processing verbatim code inside >>>> beamer frames. >>> >>> I looked again at the solution here: >>> https://tex.stackexchange.com/questions/140719/verbatim-in-beamer-showing-error-file-ended-while-scanning-use-of-xverbatim >>> >>> and it errors out with a recent version of pdflatex: >>> >>> This is pdfTeX, Version 3.141592653-2.6-1.40.25 (TeX Live 2023/Debian) (preloaded format=pdflatex) >>> >>> This is, apparently, a known problem: >>> >>> https://github.com/josephwright/beamer/issues/360 >>> >>> The end of that issue report includes a work-around that we might apply >>> in org. I have attached a patch for your feedback. The example that >>> stimulated this discussion compiles with the patch and the testsuite >>> shows no errors related to it. >> >> Thanks! >> I have concerns about your approach though. >> >> You are replacing all the frame environments with custom environment >> unconditionally. However, custom environment has downsides. For example, >> \againframe will stop working, as pointed earlier in the linked beamer >> thread >> https://github.com/josephwright/beamer/issues/360#issuecomment-708705250 > > The comment that you are citing shows how to define the custom > environment so that \againframe works correctly. See the attachment > `beamer-example-againframe.tex' and pdf. You can see that \againframe > works with the custom environment. > >> >> Since the problem appears only when the frame contents contains >> \end{frame}, it may be sufficient to replace the standard frame >> environment with the workaround only in such scenario. > > Yes, that might be true. But my feeling is that it would be simpler and > more robust to use the custom frame environment in most cases. Replying to self: Attached is a patch that adds a property, BEAMER_FRAME, that lets the frame environment name be set on a frame-by-frame basis. In addition, it typesets any fragile frame in the `orgframe' environment. I am not sure if the latter is really needed, given the former. Comments? Leo [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: 0002-lisp-ox-beamer.el-customize-the-beamer-frame-environ.patch --] [-- Type: text/x-diff; name="0002-lisp-ox-beamer.el-customize-the-beamer-frame-environ.patch", Size: 5384 bytes --] From d0117ca35405654c6adc003252eff5a1f629b67a Mon Sep 17 00:00:00 2001 From: Leo Butler <leo.butler@umanitoba.ca> Date: Thu, 25 Jan 2024 09:48:20 -0600 Subject: [PATCH] lisp/ox-beamer.el: customize the beamer frame environment name * lisp/ox-beamer.el (org-beamer-frame-environment): A new customize variable that contains the name of an environment that serves as an alias for the beamer frame environment. (org-beamer--format-frame): Introduce the new property, :BEAMER_FRAME. If set in the headline, use that as name of the frame environment. Otherwise, in frames marked as fragile, the name of the frame environment is taken from `org-beamer--frame-environment'. In all other frames, the default name is frame. Unless the frame name is "frame", the name is added to the list `org-beamer--frame-environments'. (org-beamer--frame-environments): New variable and function. The variable holds a list of names of frame environments found while formatting frames. The function generates the LaTeX code to define each new frame environment. (org-beamer-template): Add a call to `org-beamer--frame-environments' to insert the environment definitions into the beamer document. Rationale: Code with \begin{frame} or \end{frame} cannot be embedded in a verbatim environment inside a beamer frame due to a design decision made by the beamer developers [1]. As suggested in that report, defining an alias for the beamer frame environment will allow such verbatim examples to compile correctly [2]. Since the frame environment name is customize-able, beamer code generated by ox-beamer can be included inside the verbatim environment, simply by changing the frame environment name via the :BEAMER_FRAME property. This solution also works with instances of \againframe. Refs: [1] https://github.com/josephwright/beamer/issues/360 [2] https://github.com/josephwright/beamer/issues/360#issuecomment-708705250 [3] https://list.orgmode.org/orgmode/87le8eg1hs.fsf@localhost/T/ --- lisp/ox-beamer.el | 44 +++++++++++++++++++++++++++++++++++++------- 1 file changed, 37 insertions(+), 7 deletions(-) diff --git a/lisp/ox-beamer.el b/lisp/ox-beamer.el index 82c8841aa..4a1e09b85 100644 --- a/lisp/ox-beamer.el +++ b/lisp/ox-beamer.el @@ -149,9 +149,17 @@ which is replaced with the subtitle." :package-version '(Org . "8.3") :type '(string :tag "Format string")) +(defcustom org-beamer-frame-environment "orgframe" + "Name of the beamer frame environment." + :group 'org-export-beamer + :type '(string :tag "Beamer frame")) + \f ;;; Internal Variables +(defvar org-beamer--frame-environments '() + "List of beamer frame environments.") + (defconst org-beamer-column-widths "0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 0.0 :ETC" "The column widths that should be installed as allowed property values.") @@ -409,12 +417,17 @@ used as a communication channel." "Format HEADLINE as a frame. CONTENTS holds the contents of the headline. INFO is a plist used as a communication channel." - (let ((fragilep - ;; FRAGILEP is non-nil when HEADLINE contains an element - ;; among `org-beamer-verbatim-elements'. - (org-element-map headline org-beamer-verbatim-elements 'identity - info 'first-match))) - (concat "\\begin{frame}" + (let* ((fragilep + ;; FRAGILEP is non-nil when HEADLINE contains an element + ;; among `org-beamer-verbatim-elements'. + (org-element-map headline org-beamer-verbatim-elements 'identity + info 'first-match)) + (frame (or (org-element-property :BEAMER_FRAME headline) + (and fragilep org-beamer-frame-environment) + "frame"))) + (unless (string= frame "frame") + (add-to-list 'org-beamer--frame-environments frame)) + (concat "\\begin{" frame "}" ;; Overlay specification, if any. When surrounded by ;; square brackets, consider it as a default ;; specification. @@ -481,7 +494,7 @@ used as a communication channel." ;; output. (if (not fragilep) contents (replace-regexp-in-string "\\`\n*" "\\& " (or contents ""))) - "\\end{frame}"))) + "\\end{" frame "}"))) (defun org-beamer--format-block (headline contents info) "Format HEADLINE as a block. @@ -805,6 +818,21 @@ contextual information." (org-export-get-reference radio-target info) text)) +;;;; Frame Environments +;; +;; Define any needed frame environments. + +(defun org-beamer--frame-environments () + "Define beamer frame environments. +This function is called once from `org-beamer-template'. As a +side-effect, it resets `org-beamer--frame-environments' to nil." + (prog1 + (string-join + (mapcar + #'(lambda(frame) + (format "\\newenvironment<>{%s}[1][]{\\begin{frame}[environment=%s,#1]}{\\end{frame}}\n" frame frame)) + org-beamer--frame-environments)) + (setq org-beamer--frame-environments '()))) ;;;; Template ;; @@ -825,6 +853,8 @@ holding export options." (org-latex--insert-compiler info) ;; Document class and packages. (org-latex-make-preamble info) + ;; Define the frame environments, if needed. + (org-beamer--frame-environments) ;; Insert themes. (let ((format-theme (lambda (prop command) -- 2.43.0 [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #3: customize-frame.org --] [-- Type: text/org; name="customize-frame.org", Size: 625 bytes --] #+startup: beamer #+LaTeX_CLASS: beamer * A frame with =verbatim= contents #+begin_example \begin{frame} Here is a beamer frame. \end{frame} #+end_example This is typeset in an =orgframe= environment, since it is marked as fragile. * An ordinary frame \[ z^n = x^n + y^n \] This is typeset in a =frame= environment. * A frame with =:BEAMER_FRAME= property set :PROPERTIES: :BEAMER_FRAME: special-frame :END: #+begin_example \begin{orgframe} Here is a beamer orgframe. \end{orgframe} #+end_example This is typeset in a =special-frame= environment, otherwise a LaTeX error will be thrown. ^ permalink raw reply related [flat|nested] 18+ messages in thread
* Re: [BUG] beamer export 2024-01-29 21:36 ` Leo Butler @ 2024-02-01 15:04 ` Ihor Radchenko 2024-02-14 16:13 ` Leo Butler 0 siblings, 1 reply; 18+ messages in thread From: Ihor Radchenko @ 2024-02-01 15:04 UTC (permalink / raw) To: Leo Butler; +Cc: Ihor Radchenko, Daniel Fleischer, Org Mode Mailing List Leo Butler <Leo.Butler@umanitoba.ca> writes: > The docstring of `org-latex-classes' says: > > The HEADER-STRING is the header that will be inserted into the > LaTeX file. It should contain the \documentclass macro, and > anything else that is needed for this setup. > > From that, I figured that would be the correct place to put that > \newenvironment command. I have moved it, as requested. Yes, but org-latex-classes is a custom option. If user accidentally deletes the \newenvironment command, things will not compile. We generally prefer to keep things that we expect to remain constant out of customizations. > Replying to self: Attached is a patch that adds a property, > BEAMER_FRAME, that lets the frame environment name be set on a > frame-by-frame basis. In addition, it typesets any fragile frame in the > `orgframe' environment. I am not sure if the latter is really needed, > given the former. Thanks! > Comments? I am not a big fan of introducing a new BEAMER_FRAME option. We already have BEAMER_ENV. However, BEAMER_ENV is somewhat tricky for frame headings - ox-beamer allows special values of frame and fullframe (the latter is not fully documented) to allow frames nesting different from `org-beamer-frame-level'. What about not adding BEAMER_FRAME, but instead adding org-lint checker that will detect when frame text contains the problematic \end{orgframe}? -- Ihor Radchenko // yantar92, Org mode contributor, Learn more about Org mode at <https://orgmode.org/>. Support Org development at <https://liberapay.com/org-mode>, or support my work at <https://liberapay.com/yantar92> ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [BUG] beamer export 2024-02-01 15:04 ` Ihor Radchenko @ 2024-02-14 16:13 ` Leo Butler 2024-02-19 9:42 ` Ihor Radchenko 0 siblings, 1 reply; 18+ messages in thread From: Leo Butler @ 2024-02-14 16:13 UTC (permalink / raw) To: Ihor Radchenko; +Cc: Ihor Radchenko, Org Mode Mailing List [-- Attachment #1: Type: text/plain, Size: 1231 bytes --] On Thu, Feb 01 2024, Ihor Radchenko <yantar92@posteo.net> wrote: > Leo Butler <Leo.Butler@umanitoba.ca> writes: > >> Replying to self: Attached is a patch that adds a property, >> BEAMER_FRAME, that lets the frame environment name be set on a >> frame-by-frame basis. In addition, it typesets any fragile frame in the >> `orgframe' environment. I am not sure if the latter is really needed, >> given the former. > > Thanks! > >> Comments? > > I am not a big fan of introducing a new BEAMER_FRAME option. > We already have BEAMER_ENV. > > However, BEAMER_ENV is somewhat tricky for frame headings - ox-beamer > allows special values of frame and fullframe (the latter is not fully > documented) to allow frames nesting different from > `org-beamer-frame-level'. I experimented with BEAMER_ENV, but my impression is that that the code for extracting a label is quite brittle. I may re-visit this option, but not at this time. > > What about not adding BEAMER_FRAME, but instead adding org-lint checker > that will detect when frame text contains the problematic \end{orgframe}? Ok, thanks for your feedback. I have modified the patch along the lines you suggested. It is attached. Best, Leo [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: 0001-lisp-ox-beamer.el-customize-the-beamer-frame-environ.patch --] [-- Type: text/x-diff; name="0001-lisp-ox-beamer.el-customize-the-beamer-frame-environ.patch", Size: 6733 bytes --] From cc3e1572e354d18ce57c6a7b89b7fdd96b7fe1a8 Mon Sep 17 00:00:00 2001 From: Leo Butler <leo.butler@umanitoba.ca> Date: Thu, 25 Jan 2024 09:48:20 -0600 Subject: [PATCH] lisp/ox-beamer.el: customize the beamer frame environment name * lisp/ox-beamer.el (org-beamer-frame-environment): A new customize variable. It contains the name of an environment that serves as an alias for the beamer frame environment. (org-beamer--format-frame): Introduce the new property, :BEAMER_FRAME. If set in the headline, use that as name of the frame environment. Otherwise, in frames marked as fragile, the name of the frame environment is taken from `org-beamer--frame-environment'. In all other frames, the default name is frame. Unless the frame name is "frame", the name is added to the list `org-beamer--frame-environments'. (org-beamer--frame-environments): New variable and function. The variable holds a list of names of frame environments found while formatting frames. The function generates the LaTeX code to define each new frame environment. (org-beamer-template): Add a call to `org-beamer--frame-environments' to insert the environment definitions into the beamer document. * lisp/org-lint.el (org-lint-beamer-frame): Check the body of each frame for an occurrence of \begin{orgframe} or \end{orgframe}, or whatever environment name is in `org-beamer-frame-environment' [4]. Rationale: Code with \begin{frame} or \end{frame} cannot be embedded in a verbatim environment inside a beamer frame due to a design decision made by the beamer developers [1]. As suggested in that report, defining an alias for the beamer frame environment will allow such verbatim examples to compile correctly [2]. This solution also works with instances of \againframe. Refs: [1] https://github.com/josephwright/beamer/issues/360 [2] https://github.com/josephwright/beamer/issues/360#issuecomment-708705250 [3] https://list.orgmode.org/orgmode/87le8eg1hs.fsf@localhost/T/ [4] https://list.orgmode.org/orgmode/87il38i5tb.fsf@localhost/T/ --- lisp/org-lint.el | 15 +++++++++++++++ lisp/ox-beamer.el | 43 ++++++++++++++++++++++++++++++++++++------- 2 files changed, 51 insertions(+), 7 deletions(-) diff --git a/lisp/org-lint.el b/lisp/org-lint.el index f68aeab01..7248f687d 100644 --- a/lisp/org-lint.el +++ b/lisp/org-lint.el @@ -1446,6 +1446,17 @@ AST is the buffer parse tree." ((memq (org-element-property :type deadline) '(inactive inactive-range)) (list (org-element-begin planning) "Inactive timestamp in DEADLINE will not appear in agenda.")) (t nil)))))) + +(defun org-lint-beamer-frame (ast) + "Check for occurrences of begin or end frame." + (org-with-point-at ast + (goto-char (point-min)) + (let (result) + (while (re-search-forward + (concat "\\\\\\(begin\\|end\\){" org-beamer-frame-environment "}") nil t) + (push (list (match-beginning 0) "Beamer frame name may cause error when exporting.") result)) + result))) + \f ;;; Checkers declaration @@ -1711,6 +1722,10 @@ AST is the buffer parse tree." "Report $ that might be treated as LaTeX fragment boundary." #'org-lint-LaTeX-$-ambiguous :categories '(markup) :trust 'low) +(org-lint-add-checker 'beamer-frame + "Report that frame text contains beamer frame environment." + #'org-lint-beamer-frame + :categories '(export) :trust 'low) (org-lint-add-checker 'timestamp-syntax "Report malformed timestamps." #'org-lint-timestamp-syntax diff --git a/lisp/ox-beamer.el b/lisp/ox-beamer.el index 82c8841aa..65d8b06ef 100644 --- a/lisp/ox-beamer.el +++ b/lisp/ox-beamer.el @@ -149,9 +149,17 @@ which is replaced with the subtitle." :package-version '(Org . "8.3") :type '(string :tag "Format string")) +(defcustom org-beamer-frame-environment "orgframe" + "Name of the beamer frame environment." + :group 'org-export-beamer + :type '(string :tag "Beamer frame")) + \f ;;; Internal Variables +(defvar org-beamer--frame-environments '() + "List of beamer frame environments.") + (defconst org-beamer-column-widths "0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 0.0 :ETC" "The column widths that should be installed as allowed property values.") @@ -409,12 +417,16 @@ used as a communication channel." "Format HEADLINE as a frame. CONTENTS holds the contents of the headline. INFO is a plist used as a communication channel." - (let ((fragilep - ;; FRAGILEP is non-nil when HEADLINE contains an element - ;; among `org-beamer-verbatim-elements'. - (org-element-map headline org-beamer-verbatim-elements 'identity - info 'first-match))) - (concat "\\begin{frame}" + (let* ((fragilep + ;; FRAGILEP is non-nil when HEADLINE contains an element + ;; among `org-beamer-verbatim-elements'. + (org-element-map headline org-beamer-verbatim-elements 'identity + info 'first-match)) + (frame (or (and fragilep org-beamer-frame-environment) + "frame"))) + (unless (string= frame "frame") + (add-to-list 'org-beamer--frame-environments frame)) + (concat "\\begin{" frame "}" ;; Overlay specification, if any. When surrounded by ;; square brackets, consider it as a default ;; specification. @@ -481,7 +493,7 @@ used as a communication channel." ;; output. (if (not fragilep) contents (replace-regexp-in-string "\\`\n*" "\\& " (or contents ""))) - "\\end{frame}"))) + "\\end{" frame "}"))) (defun org-beamer--format-block (headline contents info) "Format HEADLINE as a block. @@ -805,6 +817,21 @@ contextual information." (org-export-get-reference radio-target info) text)) +;;;; Frame Environments +;; +;; Define any needed frame environments. + +(defun org-beamer--frame-environments () + "Define beamer frame environments. +This function is called once from `org-beamer-template'. As a +side-effect, it resets `org-beamer--frame-environments' to nil." + (prog1 + (string-join + (mapcar + #'(lambda(frame) + (format "\\newenvironment<>{%s}[1][]{\\begin{frame}[environment=%1$s,#1]}{\\end{frame}}\n" frame)) + org-beamer--frame-environments)) + (setq org-beamer--frame-environments '()))) ;;;; Template ;; @@ -825,6 +852,8 @@ holding export options." (org-latex--insert-compiler info) ;; Document class and packages. (org-latex-make-preamble info) + ;; Define the frame environments, if needed. + (org-beamer--frame-environments) ;; Insert themes. (let ((format-theme (lambda (prop command) -- 2.43.0 ^ permalink raw reply related [flat|nested] 18+ messages in thread
* Re: [BUG] beamer export 2024-02-14 16:13 ` Leo Butler @ 2024-02-19 9:42 ` Ihor Radchenko 2024-02-20 20:41 ` Leo Butler 0 siblings, 1 reply; 18+ messages in thread From: Ihor Radchenko @ 2024-02-19 9:42 UTC (permalink / raw) To: Leo Butler; +Cc: Ihor Radchenko, Org Mode Mailing List Leo Butler <Leo.Butler@umanitoba.ca> writes: >> What about not adding BEAMER_FRAME, but instead adding org-lint checker >> that will detect when frame text contains the problematic \end{orgframe}? > > Ok, thanks for your feedback. I have modified the patch along the lines > you suggested. It is attached. Thanks! It looks like you left over some parts from the previous patch version. > (org-beamer--format-frame): Introduce the new property, :BEAMER_FRAME. ... like this. > (org-beamer--frame-environments): New variable and function. The > variable holds a list of names of frame environments found while > formatting frames. The function generates the LaTeX code to define > each new frame environment. > (org-beamer-template): Add a call to `org-beamer--frame-environments' > to insert the environment definitions into the beamer document. And since we only have a single alternative environment in this version of the patch, `org-beamer--frame-environments' does not appear to be necessary. > +(defcustom org-beamer-frame-environment "orgframe" > + "Name of the beamer frame environment." > + :group 'org-export-beamer > + :type '(string :tag "Beamer frame")) It would be nice to provide a mode detailed explanation about the purpose of this custom option. > +(defun org-lint-beamer-frame (ast) > + "Check for occurrences of begin or end frame." > + (org-with-point-at ast > + (goto-char (point-min)) > + (let (result) > + (while (re-search-forward > + (concat "\\\\\\(begin\\|end\\){" org-beamer-frame-environment "}") nil t) > + (push (list (match-beginning 0) "Beamer frame name may cause error when exporting.") result)) > + result))) ... and to link this org-lint warning to the `org-beamer-frame-environment' docstring. -- Ihor Radchenko // yantar92, Org mode contributor, Learn more about Org mode at <https://orgmode.org/>. Support Org development at <https://liberapay.com/org-mode>, or support my work at <https://liberapay.com/yantar92> ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [BUG] beamer export 2024-02-19 9:42 ` Ihor Radchenko @ 2024-02-20 20:41 ` Leo Butler 2024-02-21 10:51 ` Ihor Radchenko 0 siblings, 1 reply; 18+ messages in thread From: Leo Butler @ 2024-02-20 20:41 UTC (permalink / raw) To: Ihor Radchenko; +Cc: Ihor Radchenko, Org Mode Mailing List [-- Attachment #1: Type: text/plain, Size: 2245 bytes --] On Mon, Feb 19 2024, Ihor Radchenko <yantar92@posteo.net> wrote: > Leo Butler <Leo.Butler@umanitoba.ca> writes: > >>> What about not adding BEAMER_FRAME, but instead adding org-lint checker >>> that will detect when frame text contains the problematic \end{orgframe}? >> >> Ok, thanks for your feedback. I have modified the patch along the lines >> you suggested. It is attached. > > Thanks! > It looks like you left over some parts from the previous patch version. > >> (org-beamer--format-frame): Introduce the new property, :BEAMER_FRAME. > > ... like this. > >> (org-beamer--frame-environments): New variable and function. The >> variable holds a list of names of frame environments found while >> formatting frames. The function generates the LaTeX code to define >> each new frame environment. >> (org-beamer-template): Add a call to `org-beamer--frame-environments' >> to insert the environment definitions into the beamer document. > > And since we only have a single alternative environment in this version > of the patch, `org-beamer--frame-environments' does not appear to be > necessary. > >> +(defcustom org-beamer-frame-environment "orgframe" >> + "Name of the beamer frame environment." >> + :group 'org-export-beamer >> + :type '(string :tag "Beamer frame")) > > It would be nice to provide a mode detailed explanation about the > purpose of this custom option. > >> +(defun org-lint-beamer-frame (ast) >> + "Check for occurrences of begin or end frame." >> + (org-with-point-at ast >> + (goto-char (point-min)) >> + (let (result) >> + (while (re-search-forward >> + (concat "\\\\\\(begin\\|end\\){" org-beamer-frame-environment "}") nil t) >> + (push (list (match-beginning 0) "Beamer frame name may cause error when exporting.") result)) >> + result))) > > ... and to link this org-lint warning to the > `org-beamer-frame-environment' docstring. Thanks for your comments. I think the attached patch addresses each of your points. It's not clear to me what you mean by "link(ing) this org-lint warning to the `org-beamer-frame-environment' docstring", but I have expanded the warning include mention of this variable. Leo [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: 0001-lisp-ox-beamer.el-customize-the-beamer-frame-environ.patch --] [-- Type: text/x-diff; name="0001-lisp-ox-beamer.el-customize-the-beamer-frame-environ.patch", Size: 5594 bytes --] From 70262bc2469536eeb3aaec926ec71530cfaeca79 Mon Sep 17 00:00:00 2001 From: Leo Butler <leo.butler@umanitoba.ca> Date: Thu, 25 Jan 2024 09:48:20 -0600 Subject: [PATCH] lisp/ox-beamer.el: customize the beamer frame environment name * lisp/ox-beamer.el (org-beamer-frame-environment): A new customize variable. It contains the name of an environment that serves as an alias for the beamer frame environment. (org-beamer-template): Add a call to `org-beamer--frame-environments' to insert the environment definitions into the beamer document. * lisp/org-lint.el (org-lint-beamer-frame): Check the body of each frame for an occurrence of \begin{orgframe} or \end{orgframe}, or whatever environment name is in `org-beamer-frame-environment' [4]. The warning includes advice to see `org-beamer-frame-environment'. Rationale: Code with \begin{frame} or \end{frame} cannot be embedded in a verbatim environment inside a beamer frame due to a design decision made by the beamer developers [1]. As suggested in that report, defining an alias for the beamer frame environment will allow such verbatim examples to compile correctly [2]. This solution also works with instances of \againframe. Refs: [1] https://github.com/josephwright/beamer/issues/360 [2] https://github.com/josephwright/beamer/issues/360#issuecomment-708705250 [3] https://list.orgmode.org/orgmode/87le8eg1hs.fsf@localhost/T/ [4] https://list.orgmode.org/orgmode/87il38i5tb.fsf@localhost/T/ --- lisp/org-lint.el | 15 +++++++++++++++ lisp/ox-beamer.el | 28 ++++++++++++++++++++-------- 2 files changed, 35 insertions(+), 8 deletions(-) diff --git a/lisp/org-lint.el b/lisp/org-lint.el index 4d2a55d15..91ee2eb2a 100644 --- a/lisp/org-lint.el +++ b/lisp/org-lint.el @@ -1507,6 +1507,17 @@ AST is the buffer parse tree." ((memq (org-element-property :type deadline) '(inactive inactive-range)) (list (org-element-begin planning) "Inactive timestamp in DEADLINE will not appear in agenda.")) (t nil)))))) + +(defun org-lint-beamer-frame (ast) + "Check for occurrences of begin or end frame." + (org-with-point-at ast + (goto-char (point-min)) + (let (result) + (while (re-search-forward + (concat "\\\\\\(begin\\|end\\){" org-beamer-frame-environment "}") nil t) + (push (list (match-beginning 0) "Beamer frame name may cause error when exporting. See `org-beamer--frame-environment'.") result)) + result))) + \f ;;; Checkers declaration @@ -1787,6 +1798,10 @@ AST is the buffer parse tree." "Report $ that might be treated as LaTeX fragment boundary." #'org-lint-LaTeX-$-ambiguous :categories '(markup) :trust 'low) +(org-lint-add-checker 'beamer-frame + "Report that frame text contains beamer frame environment." + #'org-lint-beamer-frame + :categories '(export) :trust 'low) (org-lint-add-checker 'timestamp-syntax "Report malformed timestamps." #'org-lint-timestamp-syntax diff --git a/lisp/ox-beamer.el b/lisp/ox-beamer.el index 571b9c239..c65166e61 100644 --- a/lisp/ox-beamer.el +++ b/lisp/ox-beamer.el @@ -148,6 +148,14 @@ which is replaced with the subtitle." :package-version '(Org . "8.3") :type '(string :tag "Format string")) +(defcustom org-beamer-frame-environment "orgframe" + "Name of the alternative beamer frame environment. +In frames marked as fragile, this environment is used in place of +the usual frame environment. This permits insertion of a beamer +frame inside example blocks." + :group 'org-export-beamer + :type '(string :tag "Beamer frame")) + \f ;;; Internal Variables @@ -408,12 +416,14 @@ used as a communication channel." "Format HEADLINE as a frame. CONTENTS holds the contents of the headline. INFO is a plist used as a communication channel." - (let ((fragilep - ;; FRAGILEP is non-nil when HEADLINE contains an element - ;; among `org-beamer-verbatim-elements'. - (org-element-map headline org-beamer-verbatim-elements 'identity - info 'first-match))) - (concat "\\begin{frame}" + (let* ((fragilep + ;; FRAGILEP is non-nil when HEADLINE contains an element + ;; among `org-beamer-verbatim-elements'. + (org-element-map headline org-beamer-verbatim-elements 'identity + info 'first-match)) + (frame (or (and fragilep org-beamer-frame-environment) + "frame"))) + (concat "\\begin{" frame "}" ;; Overlay specification, if any. When surrounded by ;; square brackets, consider it as a default ;; specification. @@ -480,7 +490,7 @@ used as a communication channel." ;; output. (if (not fragilep) contents (replace-regexp-in-string "\\`\n*" "\\& " (or contents ""))) - "\\end{frame}"))) + "\\end{" frame "}"))) (defun org-beamer--format-block (headline contents info) "Format HEADLINE as a block. @@ -814,7 +824,6 @@ contextual information." (org-export-get-reference radio-target info) text)) - ;;;; Template ;; ;; Template used is similar to the one used in `latex' backend, @@ -834,6 +843,9 @@ holding export options." (org-latex--insert-compiler info) ;; Document class and packages. (org-latex-make-preamble info) + ;; Define the alternative frame environment. + (format "\\newenvironment<>{%s}[1][]{\\begin{frame}[environment=%1$s,#1]}{\\end{frame}}\n" + org-beamer--frame-environment) ;; Insert themes. (let ((format-theme (lambda (prop command) -- 2.43.0 ^ permalink raw reply related [flat|nested] 18+ messages in thread
* Re: [BUG] beamer export 2024-02-20 20:41 ` Leo Butler @ 2024-02-21 10:51 ` Ihor Radchenko 0 siblings, 0 replies; 18+ messages in thread From: Ihor Radchenko @ 2024-02-21 10:51 UTC (permalink / raw) To: Leo Butler; +Cc: Ihor Radchenko, Org Mode Mailing List Leo Butler <Leo.Butler@umanitoba.ca> writes: > Thanks for your comments. > > I think the attached patch addresses each of your points. It's not clear > to me what you mean by "link(ing) this org-lint warning to the > `org-beamer-frame-environment' docstring", but I have expanded the > warning include mention of this variable. Thanks! Applied, onto main; with amendments: - adjusted the commit message, removing the mention of `org-beamer--frame-environments'. - fixed typos using incorrect variable name `org-beamer--frame-environment'. - added etc/ORG-NEWS entry - fixed compiler warnings - re-worded org-lint warning, suggesting customizing `org-beamer-frame-environment' - added :package-description and :safe keywords to defcustom Fixed. -- Ihor Radchenko // yantar92, Org mode contributor, Learn more about Org mode at <https://orgmode.org/>. Support Org development at <https://liberapay.com/org-mode>, or support my work at <https://liberapay.com/yantar92> ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [BUG] beamer export 2024-01-24 16:06 ` Ihor Radchenko 2024-01-25 16:13 ` Leo Butler @ 2024-01-25 22:29 ` Leo Butler 2024-01-26 13:30 ` Ihor Radchenko 1 sibling, 1 reply; 18+ messages in thread From: Leo Butler @ 2024-01-25 22:29 UTC (permalink / raw) To: Ihor Radchenko; +Cc: Ihor Radchenko, Daniel Fleischer, Org Mode Mailing List [-- Attachment #1: Type: text/plain, Size: 357 bytes --] On Wed, Jan 24 2024, Ihor Radchenko <yantar92@posteo.net> wrote: > Leo Butler <Leo.Butler@umanitoba.ca> writes: > >> I think the documentation and example needs to be corrected. I have >> attached a patch. > > Thanks! Applied. > https://git.sr.ht/~bzg/worg/commit/aedea59f Attached is a second patch to de-lint the ox-beamer tutorial. Leo [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: 0001-exporters-beamer-tutorial.org-clean-lint-warnings.patch --] [-- Type: text/x-diff; name="0001-exporters-beamer-tutorial.org-clean-lint-warnings.patch", Size: 2814 bytes --] From 7a52949ce25c7576896785ba185f9bd6afc7f12b Mon Sep 17 00:00:00 2001 From: Leo Butler <leo.butler@umanitoba.ca> Date: Tue, 23 Jan 2024 11:23:18 -0600 Subject: [PATCH] exporters/beamer/tutorial.org: clean lint warnings * exporters/beamer/tutorial.org: convert the informal footnote markers to Org footnotes. --- exporters/beamer/tutorial.org | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/exporters/beamer/tutorial.org b/exporters/beamer/tutorial.org index f40425ed..ae1ec751 100644 --- a/exporters/beamer/tutorial.org +++ b/exporters/beamer/tutorial.org @@ -33,7 +33,7 @@ keybindings]]. * First steps ** The export template -Starting with an empty file called =presentation.org= [1], say, the +Starting with an empty file called =presentation.org= [fn:1], say, the first step is to insert the default org export template (=C-c C-e #= with the default keybindings). This will generate something that looks like this (some specific entries will vary): @@ -74,7 +74,7 @@ Beamer specific options. The following options are what I use: The first line enables the Beamer specific commands for org-mode (more on this below); the next two tell the LaTeX exporter to use the -Beamer class and to use the larger font settings[2]. +Beamer class and to use the larger font settings[fn:2]. ** Outline levels for frames (slides) @@ -178,7 +178,7 @@ org-mode has a special beamer sub-mode which provides an easy to use method for specifying block types (and columns as well, as we shall [[*Column view for slide and block customisation][see in the next section]]). -To specify the type of block, you can type =C-c C-b= [3]. This brings up +To specify the type of block, you can type =C-c C-b= [fn:3]. This brings up a keyboard driven menu in which you type a single letter to select the option you wish to apply to this headline. For the above example, I typed =C-c C-b t=. The options selected in this manner are also shown @@ -348,10 +348,10 @@ changed easily. Please read [[https://orgmode.org/manual/Beamer-Export.html#Bea * Footnotes -[1] [[https://orgmode.org/worg/sources/org-tutorials/org-beamer/presentation.org][A previously created example presentation]] is available. +[fn:1] [[https://orgmode.org/worg/sources/org-tutorials/org-beamer/presentation.org][A previously created example presentation]] is available. -[2] I am a firm believer in using the largest font possible to +[fn:2] I am a firm believer in using the largest font possible to encourage less text on slides. This is obviously a personal view. -[3] org-beamer-mode must be turned on for this keybinding to be available. +[fn:3] org-beamer-mode must be turned on for this keybinding to be available. -- 2.43.0 ^ permalink raw reply related [flat|nested] 18+ messages in thread
* Re: [BUG] beamer export 2024-01-25 22:29 ` Leo Butler @ 2024-01-26 13:30 ` Ihor Radchenko 0 siblings, 0 replies; 18+ messages in thread From: Ihor Radchenko @ 2024-01-26 13:30 UTC (permalink / raw) To: Leo Butler; +Cc: Ihor Radchenko, Daniel Fleischer, Org Mode Mailing List Leo Butler <Leo.Butler@umanitoba.ca> writes: > Attached is a second patch to de-lint the ox-beamer tutorial. Thanks! Applied, onto master. https://git.sr.ht/~bzg/worg/commit/23c54e97 -- Ihor Radchenko // yantar92, Org mode contributor, Learn more about Org mode at <https://orgmode.org/>. Support Org development at <https://liberapay.com/org-mode>, or support my work at <https://liberapay.com/yantar92> ^ permalink raw reply [flat|nested] 18+ messages in thread
end of thread, other threads:[~2024-02-21 15:49 UTC | newest] Thread overview: 18+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2022-09-28 19:46 [BUG] beamer export Leo Butler 2022-09-29 2:45 ` Ihor Radchenko 2022-09-29 18:43 ` Daniel Fleischer 2022-12-10 12:49 ` Ihor Radchenko 2024-01-20 14:56 ` Ihor Radchenko 2024-01-23 16:58 ` Leo Butler 2024-01-24 16:06 ` Ihor Radchenko 2024-01-25 16:13 ` Leo Butler 2024-01-26 11:45 ` Ihor Radchenko 2024-01-26 20:54 ` Leo Butler 2024-01-29 21:36 ` Leo Butler 2024-02-01 15:04 ` Ihor Radchenko 2024-02-14 16:13 ` Leo Butler 2024-02-19 9:42 ` Ihor Radchenko 2024-02-20 20:41 ` Leo Butler 2024-02-21 10:51 ` Ihor Radchenko 2024-01-25 22:29 ` Leo Butler 2024-01-26 13:30 ` Ihor Radchenko
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/emacs/org-mode.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).