mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-24 18:43:37 +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(sourcedoc "${TOP_BINARY_DIR}/sourcedoc")
|
||||
add_subdirectory(development/autotests "${TOP_BINARY_DIR}/autotests")
|
||||
add_subdirectory(development/batchtests "${TOP_BINARY_DIR}/batchtests")
|
||||
|
||||
message(STATUS)
|
||||
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)
|
||||
endif()
|
||||
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