tex2lyx: add beamer test file

This commit is contained in:
Juergen Spitzmueller 2018-03-17 13:20:48 +01:00
parent d93076c128
commit 63b67fee83
5 changed files with 5121 additions and 0 deletions

View File

@ -25,6 +25,7 @@ TEST_FILES = \
test/runtests.cmake \
test/runtests.py \
test/algo2e.tex \
test/beamer.tex \
test/box-color-size-space-align.tex \
test/CJK.tex \
test/CJKutf8.tex \
@ -49,6 +50,7 @@ TEST_FILES = \
TEST_RESULTS = \
test/algo2e.lyx.lyx \
test/beamer.lyx.lyx \
test/box-color-size-space-align.lyx.lyx \
test/CJK.lyx.lyx \
test/CJKutf8.lyx.lyx \

View File

@ -12,6 +12,7 @@ project(testTex2lyx)
set(_tex_tests test.ltx
algo2e.tex
beamer.tex
box-color-size-space-align.tex
CJK.tex
CJKutf8.tex

File diff suppressed because it is too large Load Diff

706
src/tex2lyx/test/beamer.tex Normal file
View File

@ -0,0 +1,706 @@
\documentclass[english]{beamer}
\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}
\usepackage{babel}
\usetheme[left,width=3.45em]{Berkeley}
\begin{document}
\title{Presentations with Beamer}
\subtitle{An Introduction to the Basics}
\author{John Doe}
\date{Version~2.3}
\maketitle
\begin{frame}
\frametitle<presentation>{Contents}
\tableofcontents
\end{frame}
\section{Purposes}
\begin{frame}[<+->]{Purpose of the Beamer class}
With the \structure{Beamer} class, you can produce presentation slides,
which
\begin{itemize}
\item are visually highly customizable
\item can be very well structured
\item can be constructed step-by-step (``overlay'' concept)
\item may contain different navigation paths (note that the slides contain
all sorts of hyperlinks)
\item use \LaTeX 's superb output quality
\item might embed multimedia content (audio, video)
\item can easily be transformed to accompanying material (such as an article-like
handout)
\item and much more \ldots{}
\end{itemize}
\end{frame}
\begin{frame}{Purpose of this presentation}
This presentation
\begin{itemize}[<+->]
\item describes some basic features of \structure{Beamer}
\item especially how they can be used
\end{itemize}
For more general and comprehensive information on \structure<presentation>{Beamer}
itself, please refer to the extensive class manual \cite{beamer-ug}
\end{frame}
\section*{Segments of a presentation}
\begin{frame}{The global structure}
A presentation usually consists of
\begin{itemize}
\item<+-> a title page
\item<+-> slides that might be grouped to sections/parts
\item[extra]<+-> an appendix with additional information, such as a bibliography
\end{itemize}
We describe these global segments in what follows.
\end{frame}
\begin{frame}{The title page}
A title page is constructed by the layouts \structure{Title},
\structure{Subtitle}, \structure<2>{Author}, \structure{Institute},
\structure{Date} and \structure{TitleGraphic}.
\begin{itemize}
\item None of these elements is mandatory, but at least one must be given
\item The order of insertion does not matter (the real order is defined
in the \structure{Beamer} theme)
\item For \structure{Title}, \structure{Subtitle}, \structure{Author},
\structure{Institute} and \structure{Date}, you can define ``short''
forms via \alert{Insert \textrightarrow Short Title\slash Date\slash\ldots}
These are used in the sidebar\slash heading (given the theme actually
provides a sidebar\slash heading)
\item If you select \structure{Title (Plain Frame)} instead of \structure{Title},
the title page will have no sidebar or heading
\end{itemize}
\end{frame}
\begin{frame}<1-2>[label=myframe]{Frames can be repeated}
Frames can be repeated fully or only in terms of selected sub-slides,
multiple times at any later point of the presentation.
You just need to give the respective frame a label name via the frame
option ``label'' (as done here).
\pause{}
Then you can repeat this frame by means of the \structure{AgainFrame}
layout later in the presentation. Just enter the label name in the
\structure{AgainFrame} layout and specify, if required, which sub-slides
you want to be repeated via \alert{Insert \textrightarrow Overlay Specifications}
(again, see below for the concept of ``overlays'').
\begin{proof}<3>
\alert{Here's the proof!} (This text is only shown on sub-slide
3 which is itself only shown when this frame is repeated later on)
\end{proof}
\end{frame}
\begin{frame}{Keeping frames together}
\framesubtitle{Use nesting!}
\begin{itemize}
\item Note that all frame content, if the style is not \structure{Frame},
must be nested to the frame environment (via \alert{Edit \textrightarrow Increase List Depth}
or \textsf{Alt+Shift+Right}). This is done automatically if you
insert new frame paragraphs.
\item Nested content is marked by a red bar in the margin of the LyX workarea
\end{itemize}
\end{frame}
\begin{itemize}
\item Non-nested content (such as this) will also be displayed in the presentation
(on a separate slide), but not properly aligned
\item So please avoid this
\end{itemize}
\begin{frame}{Separating frames}
\noindent Consecutive frames have to be separated from each other.
This is done by means of the \structure{\noindent Separator} inset,
which can be produced by hitting return in an empty Standard paragraph
right below the frame (see UserGuide, sec.~3.4.6).
\begin{block}{Tip}
There is a simple and much more convenient way to start a new frame:
Issue \alert{Insert \textrightarrow Separated Frame Below} (\textsf{undefiniert}
if you are in a non-nested \structure{Frame} paragraph, or \textsf{Alt+A Shift+Return},
respectively, if you are in a nested paragraph within the frame).
If you are in the frame heading, \alert{Insert \textrightarrow Separated Frame Above}
inserts a new, properly separated frame above the current one!
\end{block}
\end{frame}
\againframe<3>{myframe}
\begin{frame}[plain]{Special frame types}
LyX provides two special frame types:
\begin{enumerate}
\item \structure{Frame (plain)} is a frame without a sidebar/header (such
as this one). This is useful for slides with much content\slash wide
tables
\item \structure{Frame (fragile)} is to be used if the frame consists of
``fragile'' content, especially verbatim stuff such as program listings
\end{enumerate}
If you want a fragile plain frame, pass the option ``plain'' to
a fragile frame or the option ``fragile'' to a plain frame.
\end{frame}
\begin{frame}{Re-arranging frames}
\begin{block}{Tip}
Did you know that you can easily move and re-arrange whole frames
via the outliner (\alert{View \textrightarrow Outline Pane})?
Also, you can navigate to a specific frame via the \alert{Navigate}
menu!
\end{block}
\end{frame}
\section<article>*{The overlay concept}
\begin{frame}{What are overlays?}
Basically, the overlay concept allows to change the slide content
dynamically. You can uncover things/text piecewise, fade out content,
highlight things, replace text, images etc.
\pause{}
\begin{itemize}[<+->]
\item Overlays are useful to build up slides as you speak
\item They help you to shift your audience's focus on specific things
\item And they help your audience to follow you
\item So use overlays! \alert<6>{Really, use them!}
\end{itemize}
\end{frame}
%
\begin{frame}{Overlay types}
\structure{Beamer} provides many different overlay types. The most
important ones are:
\begin{description}
\item [{Hidden~content:}] Stuff that is completely invisible up to a point
\item [{Covered~content:}] Stuff that is faded out (not completely invisible)
\item [{Highlighted~content:}] Stuff that is somehow emphasized at a certain
point
\end{description}
We give examples for these types in what follows, but begin with some
general remarks on overlay possibilities
\end{frame}
\begin{frame}{General overlay/action possibilities}
Many \structure{Beamer} elements provide overlay settings. Basically,
you can define on which sub-slide(s) a given content appears (``2'',
``2-4'', ``3-'', ``1,3'' etc.), or in which output mode (``presentation'',
``article'' etc.)
\begin{itemize}
\item In LyX, these settings are generally accessible via \alert{Insert \textrightarrow Overlay Specifications}
or \alert{Insert \textrightarrow Action Specifications}
\end{itemize}
\begin{overprint}
\onslide<2>
\begin{definition}
``Action'' is a more general concept, which does not only include
what we have called ``overlays'' (``on which sub-slide{[}s{]} is
this to be shown\slash hidden\slash highlighted''), but also tasks
such as ``only show this in the presentation, not on the handout''
or ``show this on the second screen only'' (so-called ``modes'').
\end{definition}
\onslide<3>
\begin{alertblock}{Note to the \LaTeX{} aficionados}
The mentioned overlay/action settings conform to those command/environment
options embraced by\alert{\ <\ldots >} and \alert{{[}<\ldots >{]}}
in the \LaTeX{} output.
Note that LyX adds those braces on export, so you must not enter
them yourself. In other words, enter ``1'' or ``+-'' to the overlay/action
insets, not ``<1>'' or ``{[}<+->{]}''!
\end{alertblock}
\end{overprint}
\end{frame}
%
\begin{frame}{An example}
Take for example a quote. In a \structure{Quote} environment, you
can specify the overlay settings via \alert{Insert \textrightarrow Overlay Specifications}.
If you do this and enter ``2'', the quote will only appear on (sub-)slide
2:
\begin{quote}<2>
Fear no more the heat o\textquoteright{} the sun
Nor the furious winter\textquoteright s rages
Thou thy worldly task hast done
Home art gone, and ta\textquoteright en thy wages
\end{quote}
This is how the concept works, basically.
\end{frame}
%
\begin{frame}{Covering vs. hiding}
The difference between ``covering'' and ``hiding'' is that hidden
content is treated as if it isn't there, while covered content is
just covered (and the space is reserved). If we would have hidden
the quote on the last slide and not covered, it would only have taken
space on appearance:
\begin{quote}<only@2>
Fear no more the heat o\textquoteright{} the sun
Nor the furious winter\textquoteright s rages
Thou thy worldly task hast done
Home art gone, and ta\textquoteright en thy wages
\end{quote}
You can see how this text moves when the quote is un-hidden.
\end{frame}
%
\begin{frame}{Coverage degrees}
\setbeamercovered{transparent}
\structure{Beamer} offers several degrees of ``coverage'', which
can be set via the command \alert{\textbackslash setbeamercovered}
either globally (for the whole presentation) or locally (e.\,g. for
a single frame, as here). By default, content is completely covered.
In ``transparent'' mode, you can see covered text greyed-out:
\begin{quote}<2>
Fear no more the heat o\textquoteright{} the sun
Nor the furious winter\textquoteright s rages
Thou thy worldly task hast done
Home art gone, and ta\textquoteright en thy wages
\end{quote}
Check the \structure{Beamer} manual for more possibilities.
\end{frame}
%
\begin{frame}{Default overlay/action specifications vs.\\
(normal) overlay/action specifications}
\begin{itemize}
\item For some environments (such as lists and also frames), you can set
``default specifications'' additionally to normal overlay/action
specifications (or in the case of lists: ``overlay specifications''
for the whole list and ``item overlay specifications'' for singular
items)
\item Default specifications apply to all content of the given environment,
if not individually specified otherwise
\item They use a placeholder syntax. E.\,g., ``+(1)-'' will uncover all
items in a list step by step (with a start offset of 1) if they have
no individual item specification:
\begin{itemize}[<+(1)->]
\item One
\item Two
\item Three
\item<1-> Always
\end{itemize}
\end{itemize}
Please consult the \structure{Beamer} manual for details on this
syntax.
\end{frame}
%
\begin{frame}[<+->]{Default overlay/action specifications vs.\\
(normal) overlay/action specifications}
\noindent This frame uses a specific default overlay specification
which causes each overlay-aware paragraph \ldots{}
\begin{itemize}
\item \ldots{} or list item \ldots{}
\item \ldots{} to appear \ldots{}
\item \ldots{} on a subsequent sub-slide \ldots{}
\end{itemize}
\begin{block}{A block}
\ldots{} one after the other
\end{block}
\end{frame}
%
\begin{frame}[<alert@+>]{Default overlay/action specifications vs.\\
(normal) overlay/action specifications}
\noindent And this frame uses a specific default overlay specification
\ldots{}
\begin{itemize}
\item \ldots{} which causes each overlay-aware list item \ldots{}
\item \ldots{} to be highlighted \ldots{}
\item \ldots{} on respective sub-slides
\end{itemize}
\end{frame}
%
\begin{frame}{Pause}
The \structure{Pause} layout lets you mark a point where all following
content will be covered (by default for one slide, with regard to
the content preceding the pause):
\pause{}
After first pause
\pause{}
After second pause
\pause[2]{}
By default, consecutive pauses also end consecutively.
Via \alert{Insert \textrightarrow Pause Number}, however, you can specify
a specific sub-slide at which the given pause ends, independent from
the number of pauses inserted before this one.
\end{frame}
%
\begin{frame}{Paragraph-wide overlays}
\structure{Beamer} and LyX provide you with paragraph layouts whose
purpose it is to show/hide whole paragraphs or sequences of paragraphs
on specific slides. These are particularly:
\begin{uncoverenv}<2->
The \structure{Uncovered} layout which uncovers all content on the
specified slides \ldots{}
\begin{itemize}
\item \ldots{} including nested paragraphs of other layout.
\end{itemize}
\end{uncoverenv}
\begin{onlyenv}<3->
The \structure{Only} layout which un-hides content (note again how
the surrounding text ``moves'' when this gets visible).
\end{onlyenv}
\begin{overprint}
\onslide<4>
And the \structure{Overprint} environment which lets you enter \ldots{}
\onslide<5>
\ldots{} alternative text taking a specific space on specified slides.
\end{overprint}
as demonstrated here.
\end{frame}
%
\begin{frame}{Inline overlays}
\setbeamercovered{transparent}
\structure{Beamer} also supports inline overlays for text parts (as
opposed to whole paragraphs), which are accessible via \alert{Edit \textrightarrow Text Style}
in LyX:
\begin{itemize}
\item You can \structure{uncover} \uncover<2->{text} on specific slides
\item You can make \visible<3->{text} \structure{visible} (which makes
a difference to ``uncover'' only with ``transparent'' coverage
setting, as used locally on this slide)
\item You can show \only<4->{text }\structure{only} on specific slides
\item You can make \invisible<5->{text} \structure{invisible}
\item And you can show \alt<6->{different}{\structure{alternative}} text
\end{itemize}
As for the paragraph layouts, the overlay settings can be accessed
via the \alert{Insert} menu.
\end{frame}
%
\begin{frame}{Overlay-aware commands}
Many ``inline'' commands (also to be found at \alert{Edit \textrightarrow Text Style})
are overlay-aware.
\begin{itemize}
\item Thus, you can make for instance text on specific slides \emph<2>{emphasized},
\textbf<3>{bold}, shown in \alert<4>{alert} or \structure<5>{structure}
color.
\end{itemize}
\begin{block}<6>{Tip}
Use these Emphasize and Bold insets (instead of the usual respective
font settings) also if you do not need overlay specifications. Due
to the way emphasized and bold is defined in \structure{Beamer},
normal emphasizing and boldface can lead to \LaTeX{} errors, e.\,g.
when used in section headings.
\end{block}
\end{frame}
\section{Specific environments}
\begin{frame}{Specific environments}
Specific environments, particularly suited for presentations are:
\begin{itemize}
\item Diverse ``blocks''
\item Theorem-style environments
\item Columns
\end{itemize}
We sketch them briefly in what follows.
\end{frame}
%
\begin{frame}{Blocks}
Blocks can contain all sorts of information. We used them here for
``tips'' and ``hints''. The class provides 3 pre-defined blocks
with different look:
\begin{block}<2->{Block}
A general-purpose block
\end{block}
\begin{exampleblock}<3->{Example Block}
A block for ``examples''
\end{exampleblock}
\begin{alertblock}<4->{Alert Block}
And an ``alert'' block for important remarks.
\end{alertblock}
\end{frame}
%
\begin{frame}{Handling Blocks}
\begin{itemize}
\item In LyX, blocks have a similar user interface to frames, which means
that
\begin{itemize}
\item Content inside blocks needs to be nested (if the paragraph layout
is not \structure{Block})
\item Consecutive blocks of the same type must be separated by the \structure{Separator}
paragraph style
\begin{block}<only@2>{Tip}
Use \alert{Edit \textrightarrow Start New Environment} (\textsf{undefiniert})
to quickly start a new block from within a previous block!
\end{block}
\end{itemize}
\item Blocks are overlay-aware
\end{itemize}
\end{frame}
%
\begin{frame}{Theorem-style environments}
\framesubtitle{(Theorem, Corollary, Definition, Definitions, Example, Examples,
Fact, Proof)}
Theorems look similar to blocks in the output, but they have a fixed
title (depending on the type).
\begin{theorem}
This is a theorem!
\end{theorem}
\begin{fact}
This is a fact!
\end{fact}
\pause{}
Via \alert{Insert \textrightarrow Additional Theorem Text}, you can add
some extra text to this fixed title
\begin{example}[a bad one!]
An example with additional text (brackets added automatically)
\end{example}
\end{frame}
%
\begin{frame}{Columns}
Sometimes it is useful to divide a presentation into columns
\begin{columns}[t]
\column{.4\textwidth}
To do this, first select \structure{Columns} (note the plural) to
start the columns
\pause{}
\column{.4\textwidth}
And then, in the following paragraph, select \structure{Column} (singular)
to start a specific column
\end{columns}
\pause{}
\medskip{}
Note:
\begin{itemize}
\item In the \structure{Column} (singular) environment, you need to specify
the width using \LaTeX{} syntax (but also something like ``3.5cm''
will work)
\item Any (singular) \structure{Column} must be nested to the (plural)
\structure{Columns}. Likewise, column content can be any paragraph
style that is nested to a singular \structure{Column}
\end{itemize}
\end{frame}
\section{Short remarks on modes}
\begin{frame}{Modes}
In \structure{Beamer} terms, a ``mode'' is a specific output route.
There are several modes for different purposes. We just want to highlight
three:
\begin{enumerate}
\item The ``beamer'' mode
\item The ``presentation'' mode
\item The ``article'' mode
\end{enumerate}
The beamer mode is the default. Unless explicitly specified otherwise,
your \structure{Beamer} document is in ``beamer'' mode.
\end{frame}
%
\begin{frame}<presentation>{Switching Modes}
However, you can switch document parts, frames, headings and all ``action''-aware
environments to a different mode. For instance, we have switched this
frame to ``presentation'' mode.
\begin{itemize}
\item What does this mean?
\begin{itemize}
\item It means that this frame will only be visible in the presentation,
not in the accompanying ``article'', if you produce such an article
(we will elaborate on this a bit below)
\end{itemize}
\end{itemize}
\end{frame}
%
\begin{frame}<article>{Switching Modes}
This frame will not be visible in the presentation, but only in the
article, since it is in ``article'' mode.
\end{frame}
%
\begin{frame}{So what?}
This is actually pretty useful! You can set up a single document and
produce both a presentation and \textendash{} using the article mode
\textendash{} a handout.
\begin{itemize}
\item And we mean a \emph{real}, useful handout, not one of those scaled
slide printouts that are so common nowadays (but if you insist, you
can produce one of those as well)
\item Modes allow you to add extra text to the handout or hide parts from
it
\item You can use for instance different graphics for the presentation and
the handout
\item and so on \ldots{}
\end{itemize}
\end{frame}
%
\begin{frame}{Examples}
As said, many elements are mode-aware.
\begin{itemize}
\item You can show particular text \only<presentation>{only in the presentation}\only<article>{only in the article}
via \alert{\noindent Edit \textrightarrow Text Style \textrightarrow Only}
\end{itemize}
\mode<article>{\begin{itemize}
\item Or put all sorts of complex contents via \alert{Insert \textrightarrow Custom Insets \textrightarrow ArticleMode}
in an inset that will only be output in article mode
\end{itemize}
}\mode<presentation>{\begin{itemize}
\item Or put all sorts of complex contents via \alert{Insert \textrightarrow Custom Insets \textrightarrow PresentationMode}
in an inset that will only be output in presentation mode
\end{itemize}
}
\begin{itemize}
\item Or you can define that an \emph<presentation>{emphasizing} should
only apply to the presentation, \textbf<article>{a bold face} only
to article
\item You can also show section headings or frame titles\slash subtitles
only in the presentation\slash article (like we do for the ``Contents''
and ``References'' frame titles in this presentation)
\item And much more of this sort \ldots{}
\end{itemize}
\end{frame}
%
\begin{frame}{Setting up an article}
Setting up a beamer article with LyX is easy.
\begin{itemize}
\item Just create a new document with the class \structure{\noindent Beamer Article (Standard Class)}
or \structure{\noindent Beamer Article (KOMA-Script)}
\item Then add the presentation to this document as a child (via \alert{Insert \textrightarrow File \textrightarrow Child Document\ldots})
\item And that's it. Now you can produce the handout and the presentation
by compiling one of these two documents, while you only need to edit
one, namely the presentation
\end{itemize}
Check out the accompanying beamer-article example document for this
presentation. You can find it in the same folder as this document.
\end{frame}
\section{Changing the look}
\begin{frame}{Themes}
\begin{itemize}
\item \structure{Beamer} presentations are themeable. Themes determine
the colors used, the macro structure (use of sidebars, headlines etc.),
the fonts, the look of list items, blocks and in general the whole
look and feel of a presentation
\item \structure{Beamer} itself ships a number of different-looking themes
to chose from (we use the ``Berkeley'' theme in this presentation;
see \alert{Document \textrightarrow Settings \textrightarrow LaTeX~Preamble} for
how we activated and slightly tweaked the theme)
\item In addition to this standard set, you can get more themes from \href{http://www.ctan.org}{CTAN}
and other places at the Internet
\item If you still are not satisified or if you need a theme matching to
your University's or company's corporate design, the \structure{Beamer}
manual \cite{beamer-ug} explains how you can setup your own theme
\end{itemize}
\end{frame}
%
\begin{frame}{Themes can be modified}
But you do not need to write a theme from scratch if you want to alter
the look.
\begin{itemize}
\item Existing themes can be modified both in details and in major areas
(such as the coloring)
\item Consult the \structure{Beamer} manual \cite{beamer-ug} for details
\end{itemize}
\end{frame}
\section{And more \ldots}
\begin{frame}{\ldots{} much more!}
Note that \structure{Beamer} can do much more than we have described
here. The \structure{Beamer} manual \cite{beamer-ug} provides a
comprehensive documentation.
Also, have a look at the \structure{Beamer} examples and templates
shipped with LyX!
\end{frame}
\appendix
\section{Appendix}
\begin{frame}
\frametitle<presentation>{References}
\begin{thebibliography}{1}
\bibitem{beamer-ug}Tantau, Till et al.:\newblock The beamer class.
\url{https://ctan.org/tex-archive/macros/latex/contrib/beamer/doc/beameruserguide.pdf}.
\end{thebibliography}
\end{frame}
\end{document}

View File

@ -74,6 +74,7 @@ def main(argv):
else:
files = ['test.ltx', \
'algo2e.tex', \
'beamer.tex', \
'box-color-size-space-align.tex', \
'CJK.tex', \
'CJKutf8.tex', \