* Placement of \makeatletter with \beamer@frametextheight @ 2018-11-28 15:09 Loris Bennett 2018-11-28 15:37 ` Eric S Fraga 0 siblings, 1 reply; 13+ messages in thread From: Loris Bennett @ 2018-11-28 15:09 UTC (permalink / raw) To: emacs-orgmode Hi, I want to specify the size of a graphic in an Beamer presentation generated from my org file. The following #+ATTR_LATEX: :height 0.75\textheight works, but #+ATTR_LATEX: :height 0.75\beamer@frametextheight I get the error ! Undefined control sequence. \Gin@@eheight ->0.5\beamer @frametextheight I assume I need to insert a \makeatletter at the appropriate point. Where would that be? Cheers, Loris -- This signature is currently under construction. ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Placement of \makeatletter with \beamer@frametextheight 2018-11-28 15:09 Placement of \makeatletter with \beamer@frametextheight Loris Bennett @ 2018-11-28 15:37 ` Eric S Fraga 2018-11-29 7:17 ` Loris Bennett 0 siblings, 1 reply; 13+ messages in thread From: Eric S Fraga @ 2018-11-28 15:37 UTC (permalink / raw) To: Loris Bennett; +Cc: emacs-orgmode On Wednesday, 28 Nov 2018 at 16:09, Loris Bennett wrote: > Hi, > > I want to specify the size of a graphic in an Beamer presentation > generated from my org file. The following > > #+ATTR_LATEX: :height 0.75\textheight > > works, but > > #+ATTR_LATEX: :height 0.75\beamer@frametextheight > > I get the error > > ! Undefined control sequence. > \Gin@@eheight ->0.5\beamer > @frametextheight > > I assume I need to insert a \makeatletter at the appropriate point. > Where would that be? You might find it easier to create your own variable in the header of the LaTeX file and use that directly, as in (untested): #+latex_header: \makeatletter\let\mytextheight\beamer@frametexheight\makeatother ... #+attr_latex: :height 0.75\mytextheight -- Eric S Fraga via Emacs 27.0.50, Org release_9.1.14-1035-gfeb442 ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Placement of \makeatletter with \beamer@frametextheight 2018-11-28 15:37 ` Eric S Fraga @ 2018-11-29 7:17 ` Loris Bennett 2018-11-29 8:13 ` Julius Dittmar 0 siblings, 1 reply; 13+ messages in thread From: Loris Bennett @ 2018-11-29 7:17 UTC (permalink / raw) To: emacs-orgmode Hi Eric, Eric S Fraga <esflists@gmail.com> writes: > On Wednesday, 28 Nov 2018 at 16:09, Loris Bennett wrote: >> Hi, >> >> I want to specify the size of a graphic in an Beamer presentation >> generated from my org file. The following >> >> #+ATTR_LATEX: :height 0.75\textheight >> >> works, but >> >> #+ATTR_LATEX: :height 0.75\beamer@frametextheight >> >> I get the error >> >> ! Undefined control sequence. >> \Gin@@eheight ->0.5\beamer >> @frametextheight >> >> I assume I need to insert a \makeatletter at the appropriate point. >> Where would that be? > > You might find it easier to create your own variable in the header of > the LaTeX file and use that directly, as in (untested): > > #+latex_header: \makeatletter\let\mytextheight\beamer@frametexheight\makeatother > > ... > > #+attr_latex: :height 0.75\mytextheight Thanks, but with that I get ! Undefined control sequence. \Gin@@eheight ->0.75\mytextheight However, the tex file looks OK: ... \usepackage[sfdefault]{Fira Sans} \makeatletter\let\mytextheight\beamer@frametexheight\makeatother \definecolor{mFubMainGreen}{HTML}{99CC00} ... \begin{center} \includegraphics[height=0.75\mytextheight]{../../common/resources.png} \end{center} ... Any ideas what might still be going wrong? Cheers, Loris -- This signature is currently under construction. ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Placement of \makeatletter with \beamer@frametextheight 2018-11-29 7:17 ` Loris Bennett @ 2018-11-29 8:13 ` Julius Dittmar 2018-11-29 8:38 ` Julius Dittmar 0 siblings, 1 reply; 13+ messages in thread From: Julius Dittmar @ 2018-11-29 8:13 UTC (permalink / raw) To: emacs-orgmode Hi Loris, I don't know beamer enough to propose an elegant solution. Nonetheless I have ideas what might go wrong here. Am 29.11.18 um 08:17 schrieb Loris Bennett: >> #+latex_header: \makeatletter\let\mytextheight\beamer@frametexheight\makeatother >> #+attr_latex: :height 0.75\mytextheight First, \let copies the at-the-moment-of-definition version of \beamer@frametexheight to \mytextheight. This happens in the preamble. I expect beamer to set up things like frame height at the begin of the document (exactly the \begin{document} line), not earlier. Thus at the point of that \let, that length isn't what you want yet. Solution to this: #+begin_export latex \makeatletter... #+end_export Second, \let creates a macro whereas it then is used as a length for the figure. I doubt that is possible. If that's the reason, you might try #+begin_export latex \newlength\mytextheight \makeatletter \setlength\mytextheight{\beamer@frametexheight} \makeatother #+end_export Perhaps this gives you a starting point to further play with it. HTH, Julius ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Placement of \makeatletter with \beamer@frametextheight 2018-11-29 8:13 ` Julius Dittmar @ 2018-11-29 8:38 ` Julius Dittmar 2018-11-29 9:26 ` Eric S Fraga 0 siblings, 1 reply; 13+ messages in thread From: Julius Dittmar @ 2018-11-29 8:38 UTC (permalink / raw) To: emacs-orgmode Am 29.11.18 um 09:13 schrieb Julius Dittmar: > Am 29.11.18 um 08:17 schrieb Loris Bennett: >>> #+latex_header: \makeatletter\let\mytextheight\beamer@frametexheight\makeatother >>> #+attr_latex: :height 0.75\mytextheight Oh, or perhaps just a typo is involved: is it really \beamer@frametexheight or rather \beamer@frametextheight you are chasing after? HTH, Julius ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Placement of \makeatletter with \beamer@frametextheight 2018-11-29 8:38 ` Julius Dittmar @ 2018-11-29 9:26 ` Eric S Fraga 2018-11-29 13:07 ` Loris Bennett 0 siblings, 1 reply; 13+ messages in thread From: Eric S Fraga @ 2018-11-29 9:26 UTC (permalink / raw) To: Julius Dittmar; +Cc: emacs-orgmode On Thursday, 29 Nov 2018 at 09:38, Julius Dittmar wrote: > Am 29.11.18 um 09:13 schrieb Julius Dittmar: >> Am 29.11.18 um 08:17 schrieb Loris Bennett: >>>> #+latex_header: \makeatletter\let\mytextheight\beamer@frametexheight\makeatother >>>> #+attr_latex: :height 0.75\mytextheight > > Oh, or perhaps just a typo is involved: is it really > \beamer@frametexheight or rather \beamer@frametextheight you are chasing > after? Also, you may need to define your mytextheight as a length and then use \setlength instead of \let. -- Eric S Fraga via Emacs 27.0.50, Org release_9.1.13-894-gf79545 ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Placement of \makeatletter with \beamer@frametextheight 2018-11-29 9:26 ` Eric S Fraga @ 2018-11-29 13:07 ` Loris Bennett 2018-11-29 13:24 ` Gustavo Barros 2018-11-29 13:47 ` Julius Müller 0 siblings, 2 replies; 13+ messages in thread From: Loris Bennett @ 2018-11-29 13:07 UTC (permalink / raw) To: emacs-orgmode Eric S Fraga <esflists@gmail.com> writes: > On Thursday, 29 Nov 2018 at 09:38, Julius Dittmar wrote: >> Am 29.11.18 um 09:13 schrieb Julius Dittmar: >>> Am 29.11.18 um 08:17 schrieb Loris Bennett: >>>>> #+latex_header: \makeatletter\let\mytextheight\beamer@frametexheight\makeatother >>>>> #+attr_latex: :height 0.75\mytextheight >> >> Oh, or perhaps just a typo is involved: is it really >> \beamer@frametexheight or rather \beamer@frametextheight you are chasing >> after? > > Also, you may need to define your mytextheight as a length and then use \setlength instead of \let. After correcting the typo I followed Eric's and Julius's suggestions and I tried adding #+LATEX_HEADER: \newlength\mytextheight\makeatletter\setlength\mytextheight{\beamer@frametextheight}\makeatother to the beginning of the Org file, but in this case \the\mytextheight is 0.0pt. After that I tried adding the definition on the slide itself: #+BEGIN_SRC latex \newlength\mytextheight\makeatletter\setlength\mytextheight{\beamer@frametextheight}\makeatother #+END_SRC but got the error ! Undefined control sequence. <argument> \beamer l.153 \end{frame} ! Missing number, treated as zero. <to be read again> @ l.153 \end{frame} Any thoughts? Cheers, Loris -- This signature is currently under construction. ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Placement of \makeatletter with \beamer@frametextheight 2018-11-29 13:07 ` Loris Bennett @ 2018-11-29 13:24 ` Gustavo Barros 2018-11-29 13:41 ` Joost Kremers 2018-11-29 13:47 ` Julius Müller 1 sibling, 1 reply; 13+ messages in thread From: Gustavo Barros @ 2018-11-29 13:24 UTC (permalink / raw) To: Loris Bennett, emacs-orgmode [-- Attachment #1: Type: text/plain, Size: 1925 bytes --] Louis, a hunch, which might work. It seems that, if you try to set the length in your preamble, `\beamer@frametextheight` is not yet defined. So, you might try the hook `\AtBeginDocument` to see if the definition comes at a better timing. #+LATEX_HEADER: \newlength\mytextheight\AtBeginDocument{\makeatletter\setlength\mytextheight{\beamer@frametextheight}\makeatother} As I said, it's a hunch, for I haven't tested. But I think it may be it. Best, Gustavo. On 29/11/2018 11:07, Loris Bennett wrote: > Eric S Fraga <esflists@gmail.com> writes: > >> On Thursday, 29 Nov 2018 at 09:38, Julius Dittmar wrote: >>> Am 29.11.18 um 09:13 schrieb Julius Dittmar: >>>> Am 29.11.18 um 08:17 schrieb Loris Bennett: >>>>>> #+latex_header: \makeatletter\let\mytextheight\beamer@frametexheight\makeatother >>>>>> #+attr_latex: :height 0.75\mytextheight >>> Oh, or perhaps just a typo is involved: is it really >>> \beamer@frametexheight or rather \beamer@frametextheight you are chasing >>> after? >> Also, you may need to define your mytextheight as a length and then use \setlength instead of \let. > After correcting the typo I followed Eric's and Julius's suggestions and > I tried adding > > #+LATEX_HEADER: \newlength\mytextheight\makeatletter\setlength\mytextheight{\beamer@frametextheight}\makeatother > > to the beginning of the Org file, but in this case > > \the\mytextheight > > is 0.0pt. After that I tried adding the definition on the slide itself: > > #+BEGIN_SRC latex > \newlength\mytextheight\makeatletter\setlength\mytextheight{\beamer@frametextheight}\makeatother > #+END_SRC > > but got the error > > ! Undefined control sequence. > <argument> \beamer > > l.153 \end{frame} > > ! Missing number, treated as zero. > <to be read again> > @ > l.153 \end{frame} > > Any thoughts? > > Cheers, > > Loris > [-- Attachment #2: Type: text/html, Size: 3112 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Placement of \makeatletter with \beamer@frametextheight 2018-11-29 13:24 ` Gustavo Barros @ 2018-11-29 13:41 ` Joost Kremers 2018-11-29 15:12 ` Loris Bennett 0 siblings, 1 reply; 13+ messages in thread From: Joost Kremers @ 2018-11-29 13:41 UTC (permalink / raw) To: emacs-orgmode; +Cc: Loris Bennett On Thu, Nov 29 2018, Gustavo Barros wrote: > Louis, > > a hunch, which might work. > It seems that, if you try to set the length in your preamble, > `\beamer@frametextheight` is not yet defined. > So, you might try the hook `\AtBeginDocument` to see if the > definition comes at > a better timing. > > #+LATEX_HEADER: > \newlength\mytextheight\AtBeginDocument{\makeatletter\setlength\mytextheight{\beamer@frametextheight}\makeatother} > > As I said, it's a hunch, for I haven't tested. But I think it > may be it. Why not put the entire thing inside \AtBeginDocument? To the OP: \paperheight does seem to be available in Beamer. Couldn't you use that? -- Joost Kremers Life has its moments ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Placement of \makeatletter with \beamer@frametextheight 2018-11-29 13:41 ` Joost Kremers @ 2018-11-29 15:12 ` Loris Bennett 2018-11-29 17:50 ` Eric S Fraga 0 siblings, 1 reply; 13+ messages in thread From: Loris Bennett @ 2018-11-29 15:12 UTC (permalink / raw) To: emacs-orgmode; +Cc: Joost Kremers Joost Kremers <joostkremers@fastmail.fm> writes: > On Thu, Nov 29 2018, Gustavo Barros wrote: >> Louis, >> >> a hunch, which might work. >> It seems that, if you try to set the length in your preamble, >> `\beamer@frametextheight` is not yet defined. >> So, you might try the hook `\AtBeginDocument` to see if the definition comes >> at >> a better timing. >> >> #+LATEX_HEADER: >> \newlength\mytextheight\AtBeginDocument{\makeatletter\setlength\mytextheight{\beamer@frametextheight}\makeatother} >> >> As I said, it's a hunch, for I haven't tested. But I think it may be it. > > Why not put the entire thing inside \AtBeginDocument? > > To the OP: \paperheight does seem to be available in Beamer. Couldn't you use > that? Using #+LATEX_HEADER: \newlength\mytextheight\AtBeginDocument{\makeatletter\setlength\mytextheight{\beamer@frametextheight}\makeatother} also leads to the error ! Undefined control sequence. <argument> \beamer So I went with \paperheight instead, which works fine. Regards Loris -- This signature is currently under construction. ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Placement of \makeatletter with \beamer@frametextheight 2018-11-29 15:12 ` Loris Bennett @ 2018-11-29 17:50 ` Eric S Fraga 0 siblings, 0 replies; 13+ messages in thread From: Eric S Fraga @ 2018-11-29 17:50 UTC (permalink / raw) To: Loris Bennett; +Cc: Joost Kremers, emacs-orgmode On Thursday, 29 Nov 2018 at 16:12, Loris Bennett wrote: > So I went with \paperheight instead, which works fine. :-) sometimes we get caught up with complex solutions (and fail) when easy solutions exist! Glad you got it sorted in any case. -- Eric S Fraga via Emacs 27.0.50, Org release_9.1.13-894-gf79545 ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Placement of \makeatletter with \beamer@frametextheight 2018-11-29 13:07 ` Loris Bennett 2018-11-29 13:24 ` Gustavo Barros @ 2018-11-29 13:47 ` Julius Müller 2018-11-30 7:13 ` Loris Bennett 1 sibling, 1 reply; 13+ messages in thread From: Julius Müller @ 2018-11-29 13:47 UTC (permalink / raw) To: emacs-orgmode Am 29.11.18 um 14:07 schrieb Loris Bennett: > Eric S Fraga <esflists@gmail.com> writes: > >> On Thursday, 29 Nov 2018 at 09:38, Julius Dittmar wrote: >>> Am 29.11.18 um 09:13 schrieb Julius Dittmar: >>>> Am 29.11.18 um 08:17 schrieb Loris Bennett: >>>>>> #+latex_header: \makeatletter\let\mytextheight\beamer@frametexheight\makeatother >>>>>> #+attr_latex: :height 0.75\mytextheight >>> >>> Oh, or perhaps just a typo is involved: is it really >>> \beamer@frametexheight or rather \beamer@frametextheight you are chasing >>> after? >> >> Also, you may need to define your mytextheight as a length and then use \setlength instead of \let. > > After correcting the typo I followed Eric's and Julius's suggestions and > I tried adding > > #+LATEX_HEADER: \newlength\mytextheight\makeatletter\setlength\mytextheight{\beamer@frametextheight}\makeatother > > to the beginning of the Org file, but in this case > > \the\mytextheight > > is 0.0pt. That's what I suspected. You could try to wrap this line in an #+begin_export latex block (as I suggested), then it will be within the document instead of in the preamble. I usually refrain from using AtBeginDocument hooks (Gustavo Barros' suggestion) because I do not know enough about them, so I rather add the commands to a place I can see ;-) > After that I tried adding the definition on the slide itself > > #+BEGIN_SRC latex > \newlength\mytextheight\makeatletter\setlength\mytextheight{\beamer@frametextheight}\makeatother > #+END_SRC Hm, src-block? I would have thought you should wrap that in an export-block, so those commands get added to the exported document, not quoted within as a source code. That would mean #+begin_export latex \newlength\mytextheight\makeatletter\setlength\mytextheight{\beamer@frametextheight}\makeatother #+end_export HTH, Julius ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Placement of \makeatletter with \beamer@frametextheight 2018-11-29 13:47 ` Julius Müller @ 2018-11-30 7:13 ` Loris Bennett 0 siblings, 0 replies; 13+ messages in thread From: Loris Bennett @ 2018-11-30 7:13 UTC (permalink / raw) To: emacs-orgmode Julius Müller <Julius.S.Mueller@eureca.de> writes: > Am 29.11.18 um 14:07 schrieb Loris Bennett: [snip (33 lines)] >> After that I tried adding the definition on the slide itself >> >> #+BEGIN_SRC latex >> \newlength\mytextheight\makeatletter\setlength\mytextheight{\beamer@frametextheight}\makeatother >> #+END_SRC > > Hm, src-block? I would have thought you should wrap that in an > export-block, so those commands get added to the exported document, not > quoted within as a source code. That would mean > > #+begin_export latex > \newlength\mytextheight\makeatletter\setlength\mytextheight{\beamer@frametextheight}\makeatother > #+end_export I tried that, but still got the error about \beamer being undefined. However, my understanding is that, if I am exporting to LaTeX, then BEGIN_SRC latex and BEGIN_EXPORT latex do the same thing. So if I have the following in my org file: #+BEGIN_EXPORT latex \newlength\mytextheight\makeatletter\setlength\mytextheight{\beamer@frametextheight}\makeatother #+END_EXPORT #+BEGIN_SRC latex \newlength\mytextheight\makeatletter\setlength\mytextheight{\beamer@frametextheight}\makeatother #+END_SRC I get \newlength\mytextheight\makeatletter\setlength\mytextheight{\beamer@frametextheight}\makeatother \newlength\mytextheight\makeatletter\setlength\mytextheight{\beamer@frametextheight}\makeatother in my tex file. Cheers, Loris -- This signature is currently under construction. ^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2018-11-30 7:13 UTC | newest] Thread overview: 13+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2018-11-28 15:09 Placement of \makeatletter with \beamer@frametextheight Loris Bennett 2018-11-28 15:37 ` Eric S Fraga 2018-11-29 7:17 ` Loris Bennett 2018-11-29 8:13 ` Julius Dittmar 2018-11-29 8:38 ` Julius Dittmar 2018-11-29 9:26 ` Eric S Fraga 2018-11-29 13:07 ` Loris Bennett 2018-11-29 13:24 ` Gustavo Barros 2018-11-29 13:41 ` Joost Kremers 2018-11-29 15:12 ` Loris Bennett 2018-11-29 17:50 ` Eric S Fraga 2018-11-29 13:47 ` Julius Müller 2018-11-30 7:13 ` Loris Bennett
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).