2014-03-27 21:37 GMT+01:00 Csikos Bela:

>  That is, the frame environment is a standard environment placed in a
> frame, but keeps its nested status. Therefore I don't have to change it to
> 'standard' environment and nest it manually. Is this correct?
>

Not quite. The frame environment is a frame environment. It can consists of
several paragraphs, but only one frame title, which is normally given in
the first line. It behaves exatly as any other environment now. If you use,
to stick with the beamer class, an example or block environment, it is
conceptually the same than the frame environment. You do not change the
paragraph style of a block environment to Standard and nest it, do you?
Neither don't you change the content of a quote environment to Standard and
nest it. So why would you want to do it with the frame environment?


> Based on your suggestions I created a frame with title and content with
> keeping 'frame' environment for the content. Then I inserted a subtitle
> below the title (moving cursor after title, pressing enter and applying
> 'subtitle' environment). This resulted in a non-indented subtitle and
> messed up the frame. I had to manually increase depth for the subtitle.
> I find it messy that I have to manually nest subtitle but I don't have to
>  nest standard frame content.


Look, the subtitle is a command, while the frame is an environment. In
LaTeX, it looks like this

\begin{frame}{title}
  \subtitle{Subtitle}
frame text
frame text
\end{frame}

This is conceptually the same as if you would nest a chapter within a quote
environment. You would also need to nest it.

Why is this so? Because the beamer author decided to implement it that way
(he could also have implemented it via a further optional argument, but he
didn't).

Furthermore if I add list environment to the frame content it is not nested
> either, have to be indented manually.


This is the normal way LyX treats _any_ environment. Content inside
environments must be nested. Frame was the only exception.


> The previous method (in lyx 2.0, 1.6) was much more straightforward and
> more usable. In that version the nesting problem appeared only when I used
> the columns environment  (and usually it drove me nuts). Now, as I see this
> complication have been extended to the whole frame composition. There must
> be some big advantage of this approach, what is it?
>

Let me put it the reverse way: What was the bid disadvantage of the old
approach? It was based on a huge, ugly, completely opaque hack. The old
frame layout in fact did not use a real beamer frame, but this hack (take
out your brown paper bag):

    \long\def\lyxframe#1{\@lyxframe#1\@lyxframestop}%
    \def\@lyxframe{\@ifnextchar<{\@@lyxframe}{\@@lyxframe<*>}}%
    \def\@@lyxframe<#1>{\@ifnextchar[{\@@@lyxframe<#1>}{\@@@lyxframe<#1>[]}}

\def\@@@lyxframe<#1>[{\@ifnextchar<{\@@@@@lyxframe<#1>[}{\@@@@lyxframe<#1>[<*>][}}

\def\@@@@@lyxframe<#1>[#2]{\@ifnextchar[{\@@@@lyxframe<#1>[#2]}{\@@@@lyxframe<#1>[#2][]}}
    \long\def\@@@@lyxframe<#1>[#2][#3]#4\@lyxframestop#5\lyxframeend{%
      \frame<#1>[#2][#3]{\frametitle{#4}#5}}

And plainframe:

    \long\def\lyxplainframe#1{\@lyxplainframe#1\@lyxframestop}%

\def\@lyxplainframe{\@ifnextchar<{\@@lyxplainframe}{\@@lyxplainframe<*>}}%
    \long\def\@@lyxplainframe<#1>#2\@lyxframestop#3\lyxframeend{%
      \frame<#1>[plain]{\frametitle{#2}#3}}

And againframe:

    \long\def\lyxagainframe#1{\@lyxagainframe#1\@lyxframestop}%

\def\@lyxagainframe{\@ifnextchar<{\@@lyxagainframe}{\@@lyxagainframe<*>}}%

\def\@@lyxagainframe<#1>{\@ifnextchar[{\@@@lyxagainframe<#1>}{\@@@lyxagainframe<#1>[]}}
    \long\def\@@@lyxagainframe<#1>[#2]#3\@lyxframestop{%
      \againframe<#1>[#2]{#3}}

Do you understand these definitions? No? Good: Me neither. No LyX developer
does. Not even the current beamer developers do. It was written many years
ago by the original beamer developer (who is not active anymore) just for
the sake of the LyX user interface.

The problem with this definition, apart from its opaqueness, is that it is
a dead end street. Nobody knows how long it will continue to work as beamer
is developed further. It was the reason that LyX could not support many
beamer features (fragile frame was not supported at all, beamer handout
could only be supported in a very limited way, only a subset of frame
options could be supported, optional arguments did not work, and so on and
so forth). All these problems were unfixable on the basis of the old
approach.

And finally, LyX exported nonstandard LaTeX output. With the old layout,
you got this LyXism in the LaTeX export:

 \lyxframeend{}\lyxframe{Frame title}


Frame content



\lyxframeend{}



With LyX 2.1, you get _proper_ LaTeX output:


\begin{frame}{Frame title}


Frame content


\end{frame}



I completely understand that it is demanding to get used to a new UI when
you were used to the old one. I felt the same. But I can assure you, that
you can get used to it. And then, the new UI is just introduced. As LyX
develops, it will be imporved.


Regards,

Jürgen



>
> bcsikos
>
>

Reply via email to