%% This is part of the OpTeX project, see http://petr.olsak.net/optex \slides % OpTeX slides style activated \catcode`<=13 % special printing of \def<#1>{\hbox{$\langle$\it#1\/$\rangle$}} \everyintt={\catcode`\<=13} \hyperlinks\Blue\Blue % hyperlinks are used in the title page \backgroundpic{op-slides-bg.png} % background picture \verbchar` % inline verbatim \enquotes % English quotes \"..." \slideshow %------------------------------------------------------------ \tit \OpTeX/ slides \subtit Petr Olšák\nl petr@olsak.net \subtit\rm \url{http://petr.olsak.net/optex} \pg; %------------------------------------------------------------------ \sec Basics * A simple document looks like: \begtt \slides % style initialized %\wideformat % 16:9 \slideshow % partially uncovering ideas \sec First slide text \pg; \sec Second slide text \pg. \endtt * If `\slideshow` is missing or commented out then \"partially uncovering ideas" (see later) are deactivated. It is useful for printing. * The `\slideshow` must be the last command in the declaration part of the document. * By default, the slides have A5 landscape format. You can declare `\wideformat`. Then the height is the same but width is 263\,mm, i.\,e.~the ratio width:height is 16:9. \pg; %------------------------------------------------------------------ \sec Title slide * Title of the document (used at the first slide) is created by `\tit Title` (terminated by end of line). * The `\subtit Author name etc.`\ (terminated by end of line) can be used after `\tit` at the first slide. * You can use `\nl` for a new line in paragraphs or titles. \sec Default design * The paragraph texts are ragged right. * Titles, subtitles, and section titles are centered. * The `\sec` and `\secc` are printed without numbers. * No paragraph indentation, a little vertical space between paragraphs. * The Heros font family (aka Helvetica) is initialized as default.\nl Sans-serif FiraMath font for math typesetting is used.\nl If `\fontfam[]` precedes `\slides` then it rewrites default. * The items in lists are started by a blue square (`\type X` and `\type x` ). \pg; %------------------------------------------------------------------ \sec One slide (one page) * Top-level item list is activated by default. The asterisk `*` opens new item at the top-level list. * Nested items lists (second and more level) should be created in the `\begitems`\dots`\enditems` environments. * Each slide (page) must be terminated by `\pg;` command. * The last slide must be terminated by `\pg.` command or by `\bye`. \begtt \sec My ideas * First idea * Second idea \begitems * First sub-idea * Second sub-idea \enditems * Final idea \endtt * Note: each page is processed in a group, so: put your own definitions (if~exist) before `\slideshow` or use `\global` assignment. \pg; %------------------------------------------------------------------ \sec Partially uncovering ideas * The control sequence `\pg` must be followed by:\pg+ \begitems * the character `;` -- normal next page,\pg+ * the character `.` -- the end of the document,\pg+ * the character `+` -- next page keeps the same text and a next text is added (usable for partially uncovering of ideas).\pg+ \enditems * Summary: \begtt \pg; ... next page \pg. ... the end of the document \pg+ ... uncover next text on the same page \endtt \pg+ * When `\slideshow` is not declared then `\pg+` is deactivated.\pg+ * The `\pg+` creates a new \"virtual page", so the current paragraph is terminated. \pg; %------------------------------------------------------------------ \sec Example with partially uncovering ideas The previous page was created by: \begtt \sec Partially uncovering ideas * The control sequence `\pg` must be followed by:\pg+ \begitems * the character `.` -- normal next page,\pg+ * the character `;` -- the end of the document,\pg+ * the character `+` -- next ... \pg+ \enditems * Summary ... * When `\slideshow` is not declared then `\pg+` is deactivated.\pg+ * The `\pg+` creates a new \"virtual page", so the current paragraph is terminated. \pg; \endtt \pg; %------------------------------------------------------------------ \sec Notes to `\slideshow` * When `\slideshow` is active then references created by `\ref` point to the first uncovering \"virtual" page where the destination is and references created by `\pgref` point to the last \"virtual" page. * If the text overfulls the page (slide) then it follows to the next page without saying explicitly `\pg;`. But `\slideshow` cannot work in this case.\pg+ * If `\slideshow` then each part of page between two `\pg`'s or between `\slideshow` and the first `\pg` is processed in a local group. * If not `\slideshow` then the document is not separated to groups. This can create different results. So, you can put `\slideopen` command instead of `\slideshow`. Then local groups are opened exactly as when `\slideshow` is used but `\slideshow` is not activated. Example: \begtt \slides \def\foo...{...} % global definitions. %\slideshow \slideopen % opens group for first page. ... first page \pg; % closes group and opens group for second page. ... second page \pg. % closes group of the last page. \endtt \pg; %------------------------------------------------------------------ \sec More about design * You can use `\backgroundpic{}` for putting an image to the background. * You can re-declare `\footline` or re-define internal macros for design as you wish. * The TeXGyre Heros font is used as default text font, the FiraMath is used for math. * If you want to use another text font fmaily, use `\fontfam` {\em before} `\slides` command. * If you want to use different math font, use `\loadmath{[font]}` before `\fontfam` (if used) and before `\slides`. For example: \begtt \loadmath{[Asana-Math]} % Math font: Asana \fontfam[Termes] % Text font: Termes \slides ... \endtt * You can put the images or text wherever using `\putimege` or `\puttext` macros... \pg; %------------------------------------------------------------------ \sec Putting images and texts wherever * `\puttext {}` puts a to the desired place: It moves the current point and , puts the and returns back, so the typesetting continues from previous position. The parameters and are dimensions. For example \begtt \puttext 0mm 50mm {\Red HELLO} \endtt \puttext 0mm 50mm {\Red HELLO} prints red HELLO, as shown here.\pg+ * `\putpic {}` puts the image with desired and at the position like `\puttext` puts the text.\pg+ \putpic .8\hsize 20mm 30mm \nospec {op-ring.png} * The ring above is the result of \begtt \putpic .8\hsize 20mm 30mm \nospec {op-ring.png} \endtt % used at beginning of this paragraph.\pg+ * Use `\nospec` for or of the image if you don't want to specify both dimensions (because you don't want to change the image aspect ratio). \pg; %------------------------------------------------------------------ \sec Limits of the \code{\\pg+} sequence * The \code{\\pg+} sequence (partially uncovering ideas) cannot be used inside a~group. * The exception is the nested environment `\begitems...\enditems`. * The `\pg+` always finalizes the current paragraph. It is impossible to hide only a part of the horizontal mode.\pg+ \sec The \code{\\layers}\,...\code{\\endlayers} environment If you really need something unsupported by `\pg+` then you can use \begtt \catcode`\<=13 \layers \endlayers \endtt * The `\layers` opens following pages with the same surrounding text. The counter `\layernum` is incemented from one to . The should use `\layernum` including conditions like `\ifnum\layernum` or `\ifcase\layernum`. See next page... \pg; %------------------------------------------------------------------ \sec Example of \code{\\layers} environment The `\slides` style provides a shortcut `\use` and a macro `\pshow` (means partially show): \begtt \def\use#1#2{\ifnum\layernum#1\relax#2\fi} \def\pshow#1{\use{=#1}\Red \use{<#1}\Transparent \ignorespaces} \endtt `\use{=}{}` does only if `\layernum=`.\kern-1em The `{\pshow }` prints in Red when current layer is equal to or it prints normally when the current layer is greater than . The transparent (invisible) text is used in other cases. The following dance: \layers 3 {\pshow2 Second text.} {\pshow3 Third text.} {\pshow1 First text.} \endlayers \pg+ was generated by \begtt \layers 3 {\pshow2 Second text.} {\pshow3 Third text.} {\pshow1 First text.} \endlayers \endtt \pg+ * The is treated as a macro parameter. So, you cannot use verbatim nor `\sec` titles here. Maximal one `\layers` environment can be per one page (terminated by `\pg+` or `\pg;` or `\pg.`). \pg; %------------------------------------------------------------------ \sec Comparison \OpTeX/ slides with Beamer\fnote{\url{http://www.ctan.org/pkg/beamer}} The \LaTeX{} package {\bf\Blue Beamer} gives much more features and many themes are prepared for Beamer, {\bf\Red but} \pg+ * the user of Beamer is forced to {\em program} his/her document using dozens of \code{\\begin{foo}} and \code{\\end{foo}} and many other programming constructions,\pg+ * plain \TeX{} gives you a possibility to simply {\em write} your document with minimal markup. The result is more compact. You can concentrate on the contents of your document, not on the programming syntax.\pg+ * User needs to read 250 pages of doc for understanding Beamer,\pg+ * on the other hand, you need to read only eleven slides\fnote{this twelfth slide isn't counted} and you are ready to use {\bf\Blue\OpTeX/ slides}. \pg; %------------------------------------------------------------------ \null \vskip2cm \centerline{\typosize[35/40]\bf Thanks for your attention}\pg+ \vskip2cm \centerline{\Blue\typosize[60/70]\bf Questions?} \pg. %----------------------------- THE END ----------------------------