2012-03-08 4 views
3

С BEAMER кадров можно повторить путем маркировки кадр, который должен быть повторен, такие какКак я могу повторить рамку луча с Org-mode?

\begin{frame}[label=framelabel] 
... 
\end{frame} 

, а затем с помощью \againframe{framelabel} в том месте, где, что кадр должен быть повторен.

Как этот метод можно использовать для экспорта Beamer в Org-режиме? Этикетка очевидно, может быть добавлен, поместив его в BEAMER_envargs, такие как:

* Org-mode section 
:PROPERTIES: 
:BEAMER_envargs: [label=questions] 
:END: 

Но есть две проблемы при использовании \againframe через Org-режиме:

  1. \againframe помещается плохо, как если он будет помещен под раздел режима Org и если он помещен непосредственно в раздел режима Org. Проблема в том, что в первом случае это то, что находится внутри рамки, когда оно должно быть размещено между ними. В последнем случае проблема заключается в том, что она помещается внутри \frametitle.
  2. \againframe либо проглатывается секциями Org-mode, либо помечен как один. Оба являются плохими логическими представлениями о его функции.

Так есть ли эффективный способ использования \againframe с Beamer или есть ли другой способ повторить кадры с Org-режимом, который я упустил?

Я уже посмотрел на http://lists.gnu.org/archive/html/emacs-orgmode/2011-05/msg00954.html, пытаясь решить эту проблему.

Я запускаю Org-mode 7.6 в Emacs 23.3.1, и я использую Beamer 3.13.

+0

Это не является оптимальным решением, но в прошлом я просто рухнул раздел, а затем убил и рывок области, соответствующую секцию. Еще один янки, и у вас есть еще одна копия раздела. В качестве альтернативы, используя конструкцию Beamer 'only <>' для чего вы хотите? – cm2

+0

@ cm2 Спасибо за предложения. Если я правильно понимаю ваши предложения, они хрупки по-разному. Вы имеете в виду использование C-c C-x C-w', чтобы просто сделать две копии раздела и поместить их так, как вы хотите? Это было бы хрупким в том, что если один раздел изменен, его копия не будет автоматически изменена.Если я правильно понимаю подход '\ only', вам нужно будет подсчитать правильное слайд, чтобы оно было повторено и, таким образом, оно сломается, если слайды вставлены между ними, верно? –

+0

Да, оба хрупкие. Предложение '\ only' было только в том случае, если вы хотели повторить слайд с небольшим изменением - как это можно сделать, если поэтапно показывать части слайда. Действительно, если вы хотите полностью повторить слайд в более поздней точке презентации, '\ only' не будет работать. – cm2

ответ

2

Я не думаю, что в настоящее время это возможно. Ограничение заключается в древовидной структуре документа org. Насколько я понял из вашего вопроса, команда \againframe{...} в основном повторяет слайд как есть. В терминах org это означает, что исходное дерево, используемое для создания слайда, повторяется. Поскольку формат документа org не позволяет вам иметь какой-либо контент, который не является частью дерева (кроме заголовка frontmatter/header в верхней части файла), я считаю, что это невозможно. Это несколько раз обсуждалось в списке рассылки, из того, что я понял, нет планов реализовать что-то подобное.

+0

Это * есть возможность передать аргументы в кадры, как я пишу в своем ответе. Вы просто добавляете ': BEAMER_envargs: [label = questions]' к свойствам раздела, чтобы добавить аргумент '[label = questions]' to '\ begin {frame}'. Если вы прочитаете мой вопрос, вы видите, что проблема заключается скорее в том, как использовать макрос '\ againframe' с Org-mode. –

+0

@ N.N. Извините, я полностью не понял ваш вопрос. Теперь, когда я понимаю, я все еще думаю, что это невозможно. По крайней мере, не тривиально. Я объясню свой первоначальный ответ, чтобы объяснить. – suvayu

7

В текущем орг-режиме есть поддержка для повторного кадра. Просто создайте фрейм и добавьте параметр луча BEAMER_env = againframe в соответствующий раздел. Или используйте C-c C-b a, чтобы вставить его, если вы инициализировали режим луча на org-startup.

Дополнительную информацию можно найти в the org-mode documentation.

Пример доступен в original proposal синтаксисе:

* section 
** My frame title      :B_frame: 
:PROPERTIES: 
:BEAMER_env: frame 
:END: 

Some text. Some text. Some text. Some text. 
Some text. Some text. Some text. Some text. 

** section           :B_againframe: 
    :PROPERTIES: 
    :BEAMER_env: againframe 
    :BEAMER_act: 2 
    :BEAMER_ref: *My frame title 
    :END: 

    This section will create "\againframe<2>{sec-1-2}". 

** Following frame 
etc.