Cmake tests: New test for the outliner with beamer

Test idea from Pavel Šanda
Move insets down and up, then compare with expected latex output.
This commit is contained in:
Kornel Benko 2018-01-14 13:47:27 +01:00
parent 46826155a8
commit aed458f007
6 changed files with 5475 additions and 0 deletions

View File

@ -1049,6 +1049,7 @@ add_subdirectory(lib/scripts "${TOP_BINARY_DIR}/scripts")
add_subdirectory(lib/examples "${TOP_BINARY_DIR}/lib/examples") add_subdirectory(lib/examples "${TOP_BINARY_DIR}/lib/examples")
add_subdirectory(sourcedoc "${TOP_BINARY_DIR}/sourcedoc") add_subdirectory(sourcedoc "${TOP_BINARY_DIR}/sourcedoc")
add_subdirectory(development/autotests "${TOP_BINARY_DIR}/autotests") add_subdirectory(development/autotests "${TOP_BINARY_DIR}/autotests")
add_subdirectory(development/batchtests "${TOP_BINARY_DIR}/batchtests")
message(STATUS) message(STATUS)
message(STATUS "Build params, switch LYX_* options by -DLYX_*=ON or OFF, LYX_* combos by -DLYX_*=value:") message(STATUS "Build params, switch LYX_* options by -DLYX_*=ON or OFF, LYX_* combos by -DLYX_*=value:")

View File

@ -0,0 +1 @@
add_test(NAME "outline-beamer" COMMAND ${PERL_EXECUTABLE} ${CMAKE_BINARY_DIR}/lyx_batch.pl beamer_test)

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,808 @@
%% LyX 2.4.0dev created this file. For more info, see https://www.lyx.org/.
%% Do not edit unless you really know what you are doing.
\documentclass[english]{beamer}
\usepackage{lmodern}
\renewcommand{\sfdefault}{lmss}
\renewcommand{\ttdefault}{lmtt}
\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}
\setcounter{secnumdepth}{3}
\setcounter{tocdepth}{3}
\usepackage{babel}
\usepackage{url}
\ifx\hypersetup\undefined
\AtBeginDocument{%
\hypersetup{unicode=true}
}
\else
\hypersetup{unicode=true}
\fi
\makeatletter
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands.
\providecommand{\LyX}{\texorpdfstring%
{L\kern-.1667em\lower.25em\hbox{Y}\kern-.125emX\@}
{LyX}}
\DeclareRobustCommand*{\lyxarrow}{%
\@ifstar
{\leavevmode\,$\triangleleft$\,\allowbreak}
{\leavevmode\,$\triangleright$\,\allowbreak}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Textclass specific LaTeX commands.
% this default might be overridden by plain title style
\newcommand\makebeamertitle{\frame{\maketitle}}%
% (ERT) argument for the TOC
\AtBeginDocument{%
\let\origtableofcontents=\tableofcontents
\def\tableofcontents{\@ifnextchar[{\origtableofcontents}{\gobbletableofcontents}}
\def\gobbletableofcontents#1{\origtableofcontents}
}
\providecommand{\shortcut}[1]{\mbox{\textsf{#1}}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands.
% We use the "Berkeley" theme with a 3.45em-wide side bar on the left
\usetheme[left,width=3.45em]{Berkeley}
\makeatother
\begin{document}
\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 with \LyX{}
\end{itemize}
For more general and comprehensive information on \structure{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 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}
Within \LyX , a title page is constructed by the layouts \structure{Title},
\structure{Subtitle}, \structure{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\lyxarrow 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}{Slides/Frames}
Slides are called ``frames'' in \structure{Beamer}. Everything
inside a frame is put on one slide (which itself might consist of
sub-slides).
\begin{itemize}
\item Select the \structure{Frame} style to start a frame
\item The frame title is to be inserted in the ``Frame title'' inset,
which is automatically inserted for new frames or can be manually
inserted via \alert{Insert\lyxarrow Frame Title}
\item Alternatively, you can also use the \structure{FrameTitle} layout,
which additionally offers a (rarely used) short frame title option,
and, more importantly, overlay options
\item A subtitle can be added via the \structure{FrameSubtitle} layout
\item Frame options (see \cite{beamer-ug} for the diverse options) are
inserted via \alert{Insert\lyxarrow Frame Options}, overlay options
via \alert{Insert\lyxarrow Overlay Specifications} and \alert{Insert\lyxarrow Default Overlay Specifications}
(we explain later what this is)
\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\lyxarrow 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\lyxarrow Increase List Depth}
or \shortcut{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\lyxarrow Separated Frame Below} (\shortcut{undefined}
if you are in a non-nested \structure{Frame} paragraph, or \shortcut{Alt+P Shift+Return},
respectively, if you are in a nested paragraph within the frame).
If you are in the frame heading, \alert{Insert\lyxarrow 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}{Sectioning a presentation}
\begin{itemize}
\item To group frames, you can use the usual sectioning commands (\structure{Section},
\structure{Subsection} etc.)
\item These are shown in the table of contents, the sidebar\slash header
(depending on the theme) and the article output (for ``article''
see below, the section on ``modes'')
\end{itemize}
\end{frame}
%
\begin{frame}{Parts have special meaning}
\begin{itemize}
\item You can also divide your presentation into \structure{Parts}. Note,
however, that parts behave differently in \structure{Beamer} than
in other document classes: a part is considered to be ``a little
`talk of its own' with its own table of contents, its own navigation
bars, and so on.'' \cite[sec.~10.3]{beamer-ug}
\item This means, for instance, that if you use parts, the table of contents
will only list the sections and subsections of the part that contains
this table of contents, and the sidebar\slash header will also only
show the sections of the current part.
\end{itemize}
\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\lyxarrow Outline Pane})?
Also, you can navigate to a specific frame via the \alert{Navigate}
menu!
\end{block}
\end{frame}
%
\begin{frame}{The appendix}
\begin{itemize}
\item Appendices might be useful for additional\slash reserve material.
The appendix is part of the presentation, but not shown in the table
of contents\slash sidebar\slash header
\item An appendix is inserted as usual in \LyX :
\begin{itemize}
\item Use \alert{Document\lyxarrow Start Appendix Here} at the position
where the appendix should begin
\end{itemize}
\item Typical content of the appendix is the bibliography
\begin{itemize}
\item You insert it as in all other \LyX{} classes, via the \structure{Bibliography}
style (see the bibliography at the end of this presentation as an
example)
\item Note that you can also use Bib\TeX , although not all Bib\TeX{} styles
are prepared to work with \structure{Beamer}
\end{itemize}
\end{itemize}
\end{frame}
%
\section{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\lyxarrow Overlay Specifications}
or \alert{Insert\lyxarrow 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\lyxarrow 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\lyxarrow 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\lyxarrow 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\lyxarrow 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\lyxarrow Start New Environment} (\shortcut{undefined})
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\lyxarrow 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\lyxarrow Text Style\lyxarrow Only}
\end{itemize}
\mode<article>{\begin{itemize}
\item Or put all sorts of complex contents via \alert{Insert\lyxarrow Custom Insets\lyxarrow 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\lyxarrow Custom Insets\lyxarrow 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\lyxarrow File\lyxarrow 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\lyxarrow Settings\lyxarrow\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

@ -10,4 +10,6 @@ if (UNIX)
# include(../PyCompile) # include(../PyCompile)
endif() endif()
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/prefTest.pl.in" "${CMAKE_BINARY_DIR}/prefTest.pl" @ONLY) configure_file("${CMAKE_CURRENT_SOURCE_DIR}/prefTest.pl.in" "${CMAKE_BINARY_DIR}/prefTest.pl" @ONLY)
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/lyx_batch.pl.in" "${CMAKE_BINARY_DIR}/lyx_batch.pl" @ONLY)

57
lib/scripts/lyx_batch.pl.in Executable file
View File

@ -0,0 +1,57 @@
#! /usr/bin/env perl
# -*- mode: perl; -*-
# lyx_batch.pl testname
use strict;
use warnings;
use File::Copy;
use File::Compare;
my $builddir = "@CMAKE_BINARY_DIR@";
my $userdir = "$builddir/Testing/.lyx";
my $workdir = "$builddir/autotests/out-home";
my $vsuffix = "@PROGRAM_SUFFIX@";
my $lyx_exe = "$builddir/bin/lyx$vsuffix";
my $lyxsource = "@LYX_ABS_TOP_SRCDIR@";
my $data = "$lyxsource/development/batchtests";
my %Tests = (
beamer_test => {
create => "beamer_test.tex",
commands => ["file-open beamer_test.lyx",
"buffer-begin",
"repeat 150 outline-down",
"repeat 150 outline-up",
"buffer-export pdflatex",
"repeat 150 outline-down",
"buffer-reload dump",
"lyx-quit"]
}
);
exit(1) if (! defined($ARGV[0]));
my $test = $ARGV[0];
exit(2) if (! defined($Tests{$test}));
my $orig_lyx = "$data/$test.lyx";
my $work_lyx = "$workdir/$test.lyx";
my $expected = "$data/$test.tex.orig";
my $created = "$workdir/$Tests{$test}->{create}";
die("File \"$expected\" does not exist") if (! -e $expected);
# Create lyx-file to work with
copy($orig_lyx, $work_lyx) or die("Copy failed: $!");
unlink($created);
$ENV{LANG} = "en";
$ENV{LC_ALL} = "C";
$ENV{LANGUAGE} = "en_US";
chdir($workdir);
system($lyx_exe, "-userdir", $userdir, "-x", "command-sequence " . join(';', @{$Tests{$test}->{commands}}));
die("Expected and created files differ") if (compare($expected, $created) != 0);
exit(0);