mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-09 18:31:04 +00:00
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:
parent
46826155a8
commit
aed458f007
@ -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:")
|
||||||
|
1
development/batchtests/CMakeLists.txt
Normal file
1
development/batchtests/CMakeLists.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
add_test(NAME "outline-beamer" COMMAND ${PERL_EXECUTABLE} ${CMAKE_BINARY_DIR}/lyx_batch.pl beamer_test)
|
4606
development/batchtests/beamer_test.lyx
Normal file
4606
development/batchtests/beamer_test.lyx
Normal file
File diff suppressed because it is too large
Load Diff
808
development/batchtests/beamer_test.tex.orig
Normal file
808
development/batchtests/beamer_test.tex.orig
Normal 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}
|
@ -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
57
lib/scripts/lyx_batch.pl.in
Executable 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);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user