From fc42fe56a57eace2dbdb31574c2e161f0eacf839 Mon Sep 17 00:00:00 2001 From: Ludovic Court`es Date: Wed, 15 Jun 2005 13:00:39 +0000 Subject: Initial import of Skribe 1.2d. Initial import of Skribe 1.2d. git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--base-0 --- examples/Makefile | 48 +++++ examples/slide/Makefile | 153 ++++++++++++++++ examples/slide/PPRskribe.sty | 67 +++++++ examples/slide/README | 11 ++ examples/slide/advi.sty | 416 ++++++++++++++++++++++++++++++++++++++++++ examples/slide/ex/skribe.skb | 11 ++ examples/slide/ex/syntax.scr | 1 + examples/slide/skb/slides.skb | 286 +++++++++++++++++++++++++++++ examples/slide/skr/local.skr | 73 ++++++++ 9 files changed, 1066 insertions(+) create mode 100644 examples/Makefile create mode 100644 examples/slide/Makefile create mode 100644 examples/slide/PPRskribe.sty create mode 100644 examples/slide/README create mode 100644 examples/slide/advi.sty create mode 100644 examples/slide/ex/skribe.skb create mode 100644 examples/slide/ex/syntax.scr create mode 100644 examples/slide/skb/slides.skb create mode 100644 examples/slide/skr/local.skr (limited to 'examples') diff --git a/examples/Makefile b/examples/Makefile new file mode 100644 index 0000000..7f47f6e --- /dev/null +++ b/examples/Makefile @@ -0,0 +1,48 @@ +#*=====================================================================*/ +#* serrano/prgm/project/skribe/examples/Makefile */ +#* ------------------------------------------------------------- */ +#* Author : Manuel Serrano */ +#* Creation : Fri Oct 24 13:25:43 2003 */ +#* Last change : Wed Feb 18 11:25:20 2004 (serrano) */ +#* Copyright : 2003-04 Manuel Serrano */ +#* ------------------------------------------------------------- */ +#* The meta Makefile for the examples */ +#*=====================================================================*/ + +#*---------------------------------------------------------------------*/ +#* All the examples */ +#*---------------------------------------------------------------------*/ +EXAMPLES=slide + +#*---------------------------------------------------------------------*/ +#* pop */ +#*---------------------------------------------------------------------*/ +.PHONY: pop + +pop: + @ for p in $(EXAMPLES); do \ + (cd $$p && $(MAKE) pop); \ + done + @ echo examples/Makefile + +#*---------------------------------------------------------------------*/ +#* Install/Uinstall */ +#*---------------------------------------------------------------------*/ +.PHONY: install uninstall + +install: + +uninstall: + +#*---------------------------------------------------------------------*/ +#* cleaning */ +#*---------------------------------------------------------------------*/ +.PHONY: clean distclean + +clean: + for p in $(EXAMPLES); do \ + (cd $$p && $(MAKE) clean); \ + done + +distclean: clean + diff --git a/examples/slide/Makefile b/examples/slide/Makefile new file mode 100644 index 0000000..c9b7a84 --- /dev/null +++ b/examples/slide/Makefile @@ -0,0 +1,153 @@ +#*=====================================================================*/ +#* serrano/prgm/project/skribe/examples/slide/Makefile */ +#* ------------------------------------------------------------- */ +#* Author : Manuel Serrano */ +#* Creation : Fri Jan 11 10:19:46 2002 */ +#* Last change : Thu Dec 18 09:21:41 2003 (serrano) */ +#* Copyright : 2002-03 Manuel Serrano */ +#* ------------------------------------------------------------- */ +#* The Makefile to build the Slides example */ +#*=====================================================================*/ +include ../../etc/Makefile.config +include ../../etc/$(SYSTEM)/Makefile.skb + +#*---------------------------------------------------------------------*/ +#* Compiler and tools */ +#*---------------------------------------------------------------------*/ +BINDIR = ../../bin +LIBDIR = ../../lib + +#*---------------------------------------------------------------------*/ +#* Compilers and Tools */ +#*---------------------------------------------------------------------*/ +SFLAGS = -I txt -I skr -I skb -I ../../skr +LATEX = latex +DVIPS = dvips -Ppdf -G0 +TEXHOME = $$HOME/tex +PS2PDF = ps2pdf -dPDFSETTINGS=/prepress -sPAPERSIZE=a4 +MODE = advi + +#*---------------------------------------------------------------------*/ +#* Skribe variables */ +#*---------------------------------------------------------------------*/ +SKRIBEVARS = --eval "(define *mode* '$(MODE))" + +#*---------------------------------------------------------------------*/ +#* Sources */ +#*---------------------------------------------------------------------*/ +MASTER = skb/slides.skb + +INPUTSNAME = +EXNAME = skribe.skb syntax.scr +INPUTS = $(INPUTSNAME:%=skb/%.skb) $(EXNAME:%=ex/%) + +SOURCESNAME = +SOURCES = $(SOURCESNAME:%=scm/%.scm) + +STYLES = local +LSTYLES = $(STYLE:%=skr/%.skr) + +FIGS_SOURCES = +FIGURES = $(FIGS_SOURCES:%=fig/%.eps) $(FIGS_SOURCES:%=fig/%.png) + +#*---------------------------------------------------------------------*/ +#* Suffixes */ +#*---------------------------------------------------------------------*/ +.SUFFIXES: +.SUFFIXES: .skb .skr .eps .fig .tex .ps .pdf .png .html .dvi + +#*---------------------------------------------------------------------*/ +#* All */ +#*---------------------------------------------------------------------*/ +all: ps html + +ps: slides.ps +slides.ps: slides.dvi + $(DVIPS) -o slides.ps slides.dvi + +pdf: slides.pdf +slides.pdf: slides.ps + $(PS2PDF) slides.ps slides.pdf + +dvi: slides.dvi +slides.dvi: slides.tex + $(LATEX) slides.tex + +slides.tex: $(MASTER) $(INPUTS) $(LSTYLES) $(SOURCES) $(FIGURES) + $(SKRIBE) $(SKRIBEVARS) $(SFLAGS) $(MASTER) -o slides.tex + +html: slides.html +slides.html: $(MASTER) $(INPUTS) $(LSTYLES) $(SOURCES) $(FIGURES) + $(SKRIBE) $(SKRIBEVARS) $(SFLAGS) $(MASTER) -o slides.html + +text: slides.text +slides.text: $(MASTER) $(INPUTS) $(LSTYLES) $(SOURCES) $(FIGURES) + $(SKRIBE) $(SKRIBEVARS) $(SFLAGS) $(MASTER) -t text -o slides.text + +#*---------------------------------------------------------------------*/ +#* pop */ +#*---------------------------------------------------------------------*/ +.PHONY: pop + +pop: + @ echo examples/slide/Makefile \ + examples/slide/README \ + examples/slide/advi.sty \ + examples/slide/PPRskribe.sty \ + examples/slide/skr/local.skr + @ echo $(MASTER:%=examples/slide/%) + @ echo $(EXNAME:%=examples/slide/ex/%) + +#*---------------------------------------------------------------------*/ +#* binary */ +#*---------------------------------------------------------------------*/ +getbinary: + echo "slides" + +#*---------------------------------------------------------------------*/ +#* re */ +#*---------------------------------------------------------------------*/ +.PHONY: re re.ps re.html + +re: re.ps re.html + +re.ps: + touch -m -d 0 slides.tex + $(MAKE) ps + +re.html: + touch -m -d 0 slides.html + $(MAKE) html + +#*---------------------------------------------------------------------*/ +#* .eps.png */ +#*---------------------------------------------------------------------*/ +.eps.png: + @ echo $*.png: + @ convert $*.eps $*.png + +#*---------------------------------------------------------------------*/ +#* .eps.fig */ +#*---------------------------------------------------------------------*/ +.fig.eps: + @ echo $*.fig: + @ fig2dev -L eps $*.fig > $*.eps + +#*---------------------------------------------------------------------*/ +#* Clean */ +#*---------------------------------------------------------------------*/ +clean: + -/bin/rm -f slides.tex 2> /dev/null + -/bin/rm -f slides.dvi 2> /dev/null + -/bin/rm -f *.aux *.log 2> /dev/null + -/bin/rm -f *~ 2> /dev/null + -/bin/rm -f */*~ 2> /dev/null + -/bin/rm -f */*/*~ 2> /dev/null + -/bin/rm -f slides.ps 2> /dev/null + -/bin/rm -f slides.pdf 2> /dev/null + -/bin/rm -f slides*.html 2> /dev/null + -/bin/rm -f slides.text 2> /dev/null + -/bin/rm -f slides.out 2> /dev/null + -/bin/rm -f $(FIGURES) + +cleanall: clean diff --git a/examples/slide/PPRskribe.sty b/examples/slide/PPRskribe.sty new file mode 100644 index 0000000..40b2d08 --- /dev/null +++ b/examples/slide/PPRskribe.sty @@ -0,0 +1,67 @@ +%============================================================================== +% Prosper -- (PPRskribe.sty) Style file +% A LaTeX class for creating slides +% Author: Manuel Serrano +% +% Permission is hereby granted, without written agreement and without +% license or royalty fees, to use, copy, modify, and distribute this +% software and its documentation for any purpose, provided that the +% above copyright notice and the following two paragraphs appear in +% all copies of this software. +% +% IN NO EVENT SHALL THE AUTHOR BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, +% SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF +% THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE AUTHOR HAS BEEN ADVISED +% OF THE POSSIBILITY OF SUCH DAMAGE. +% +% THE AUTHOR SPECIFICALLY DISCLAIMS ANY WARRANTIES, +% INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY +% AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +% ON AN "AS IS" BASIS, AND THE AUTHOR HAS NO OBLIGATION TO +% PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +%============================================================================== +\NeedsTeXFormat{LaTeX2e}[1995/12/01] +\ProvidesPackage{PPRskribe}[2003/10/21] +\typeout{`skribe' style for Prosper ---} +\typeout{ } + +\RequirePackage{amssymb} +% Loading packages necessary to define this slide style. +% none + +\FontTitle{% + \usefont{T1}{ptm}{b}{n}\fontsize{13.82pt}{12pt}\selectfont\blue}{% + \usefont{T1}{ptm}{b}{n}\fontsize{13.82pt}{12pt}\selectfont\blue} +\FontText{% + \black\usefont{T1}{phv}{m}{n}\fontsize{9.4pt}{9pt}\selectfont}{% + \black\usefont{T1}{phv}{m}{n}\fontsize{9.4pt}{9pt}\selectfont} + + +% Positionning of the title of a slide. +\newcommand{\slidetitle}[1]{% + \rput[c](5.25,4.4){\fontTitle{#1}} +} + +% Positionning for a logo +% \LogoPosition{-1,-1.1} + +% Definition of this style for slides. + +\newcommand{\BasicFrame}[1]{% + {#1}} + +%\NewSlideStyle[115mm]{t}{5.3,3.2}{BasicFrame} +\NewSlideStyle[125mm]{t}{5.3,3.8}{BasicFrame} +\PDFCroppingBox{10 40 594 800} +\RequirePackage{semhelv} + +\myitem{1}{$\bullet$} +\myitem{2}{$\circ$} +\myitem{3}{$\diamond$} + +\endinput + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: t +%%% End: diff --git a/examples/slide/README b/examples/slide/README new file mode 100644 index 0000000..cb9f303 --- /dev/null +++ b/examples/slide/README @@ -0,0 +1,11 @@ +This example shows how to program slides with Skribe. Three slide +formats can be produced: + +1. Advi + type `make MODE=advi' + +2. Plain PDF + type `make pdf MODE=pdf' + +3. LaTeX prosper + type `make pdf MODE=prosper' diff --git a/examples/slide/advi.sty b/examples/slide/advi.sty new file mode 100644 index 0000000..9b5e09f --- /dev/null +++ b/examples/slide/advi.sty @@ -0,0 +1,416 @@ +%% +%% This is the original source file advi.sty +%% +%% Package `advi' to use with LaTeX 2e +%% Copyright Roberto Di Cosmo, Jun Furuse, Didier Remy, and Pierre Weis +%% All rights reserved. + +% Which name is ours +\def \ActiveDVI {Active-DVI} + +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{advi} + [2001/29/08 v0.40 Advi Package for advi Previewer] + +%% + +%% Identification +%% Preliminary declarations + +\RequirePackage {keyval} + +%% Options + +\newif \ifadvi@ignore \advi@ignorefalse +\DeclareOption {ignore}{\advi@ignoretrue} + +\ProcessOptions +% \@ifundefined {AdviOptions}{}{\ExecuteOptions {\AdviOptions}} + +%% More declarations + +% Auxilliary macros + + +\def \advi@empty{} +\def \advi@ifempty #1{\def \@test {#1}\ifx \@test \advi@empty + \expandafter \@firstoftwo \else \expandafter \@secondoftwo \fi} +\def \advi@error #1{\PackageError {Advi}{#1}{Type to proceed.}} +\def \advi@warning #1{\PackageWarning {Advi}{#1}} +\def \advi@undefinedenv {\advi@error {Environment \@currenvir\space undefined. +Maybe you mean \@currenvir ing}} +\def \advi@special@ {\advi@ifadvi{\special}{\advi@ignore}} +\def \advi@special #1{\advi@special@ {advi: #1}} +\def \advi@export #1#2{\@ifdefinable #1{\let #1#2}} +\def \advi@exportenv #1#2{% + \@ifundefined {#1}{\expandafter \let \csname #1\expandafter \endcsname + \csname end#1\endcsname }\relax + \expandafter \@ifdefinable \csname #1\endcsname + {\expandafter \let \csname #1\expandafter \endcsname \csname #2\endcsname + \expandafter \let \csname end#1\expandafter \endcsname + \csname end#2\endcsname}} + +\def \advi@ignore #1{} +\def \advi@id #1{#1} + +\def \advi@ifadvi {\ifadvi@ignore + \expandafter \@secondoftwo \else \expandafter \@firstoftwo \fi} +\advi@export \adviignore \advi@ignoretrue +\advi@export \ifadvi \advi@ifadvi + +%%% Record and play + +\newif \ifadvi@recording +\def \advi@ifrecording {\ifadvi@recording + \expandafter \@firstoftwo \else \expandafter \@secondoftwo \fi} +\def \advi@ifrecordenv {\ifx \@currenvir \advi@recordenv + \expandafter \@firstoftwo \else \expandafter \@secondoftwo \fi} + +\def \advi@start {start} +\def \advi@startplay {start play} +\define@key{advi@record}{play}[]{\let \advi@do \advi@startplay} +\def \advi@recordenv {advirecord} + +\newenvironment{advi@recording}[2][]% + {\begingroup + \let \advi@do \advi@start \setkeys{advi@record}{#1}% + \advi@special {proc=#2 record=\advi@do}% + \endgroup} + {\advi@special {proc record=end}} +\newcommand {\advi@record}[3][]{\advi@recording[#1]{#2}#3\endadvi@recording} + +\newcommand {\advi@play}[2][]% + {\begingroup + \advi@ifempty{#1}{}{\color {#1}}{\advi@special {proc=#2 play}}% + \endgroup} + +\advi@exportenv {advirecording}{advi@recording} +\advi@export \advirecord \advi@record +\let \endadvirecord \advi@undefinedenv +\advi@export \adviplay \advi@play + + +%%% Embedded applications + +\def \advi@embed@name{anonymous} +\def \advi@embed@mode{ephemeral} +\def \advi@embed@width{0pt} +\def \advi@embed@height{0pt} +\define@key {advi@embed}{name}{\def \advi@embed@name {#1}} +\define@key {advi@embed}{width}% + {\@tempdima#1\relax \edef \advi@embed@width {\the\@tempdima}} +\define@key {advi@embed}{height}% + {\@tempdima#1\relax \edef \advi@embed@height {\the\@tempdima}} +\def \advi@definemode #1{% + \define@key {advi@embed}{#1}[anonymous]{% + \def \advi@embed@mode {#1}\def\advi@embed@name {##1}% + }} +\advi@definemode{ephemeral} +\advi@definemode{persistent} +\advi@definemode{sticky} + +\def \advi@embed@ #1#2#3#4#5{% + \mbox{\advi@special + {embed name="#1" mode=#2 width=#3 height=#4 command="#5"}% + {\vbox to #4{\hbox to #3{}}}}} +\def \advi@length #1{\@tempdima #1\relax \the\@tempdima} +\newcommand{\advi@embed}[2][]{% + \mbox {\setkeys {advi@embed}{#1}% + \advi@embed@ {\advi@embed@name}{\advi@embed@mode} + {\advi@embed@width}{\advi@embed@height}{#2}}} + +\newcommand{\advi@killembed}[2][]{\advi@special {kill name="#2" signal="#1"}} + +\advi@export \adviembed \advi@embed + +\advi@export \advikillembed \advi@killembed + + +%%% Background colors and images + +\def \do #1{\expandafter \def \csname advi@geom@#1@\endcsname {#1}} +\do {center} +\do {left} +\do {right} +\do {bottom} +\do {top} +\do {topleft} +\do {topright} +\do {bottomleft} +\do {bottomright} +\let \do \relax +\def \advi@ifnine #1#2#3{\@ifundefined {advi@geom@#1@}{#3}{#2}} + +\let \advi@global \relax +\def \advi@global@ {global} +\newif \ifadvi@bgactive + +\def \advi@bg@do + {\do\advi@bgcolor \do\advi@bgimage \do \advi@bgalpha \do\advi@bgblend} +\def \advi@auto@ { fit=auto} +\def \advi@bgreset + {\def \do ##1{\expandafter \advi@global + \expandafter \let \noexpand ##1\advi@empty}\advi@bg@do + \advi@global \let \advi@bgfit \advi@auto@ + \advi@global \advi@bgactivefalse} +\advi@bgreset + +\def \advi@none@ {none} +\def \advi@ifnone #1{\def \@test{#1}\ifx \@test \advi@none@ + \let \@test \advi@empty \fi \ifx \@test \advi@empty + \expandafter \@firstoftwo \else \expandafter \@secondoftwo \fi} + +\def \advi@setbg #1#2#3{\advi@ifnone {#1} + {\advi@global \expandafter \let \noexpand #1\advi@empty} + {\advi@global \expandafter \def \noexpand #1{ #2=#3}% + \advi@global \advi@bgactivetrue}} +\define@key {advi@bg}{color}[]{\advi@setbg{\advi@bgcolor}{color}{#1}} +\define@key {advi@bg}{image}[]{\advi@setbg{\advi@bgimage}{image}{#1}} +\define@key {advi@bg}{alpha}[]{\advi@setbg{\advi@bgalpha}{alpha}{#1}} +\define@key {advi@bg}{blend}[]{\advi@setbg{\advi@bgblend}{blend}{#1}} +\define@key {advi@bg}{fit}[auto]{\def \advi@bgfit {#1}% + \ifx \advi@bgfit \advi@auto@ \else + \advi@ifnine {\advi@bgfit} + {\advi@global \def \advi@bgfit{ fit=#1}} + {\advi@error {Ill formed background fit=#1}}% + \fi} +\def \advi@bgset #1{\advi@ifnone {#1}{\advi@bgreset}{\setkeys {advi@bg}{#1}}} + +%\define@key {advi@bg}{inherit}[]{\advi@special{setbg inherit}} + +\def \advi@bgemit + {\advi@special + {setbg \advi@bgcolor \advi@bgimage \advi@bgalpha \advi@bgblend + \advi@bgfit + }} +\newif \ifadvi@bglocal + +\newcommand{\advi@bg}[2][]{% + \begingroup + \def \@test {#1}\ifx \@test \advi@global@ \let \advi@global \global + \advi@bgset {#2}\else + \ifx \@test \advi@empty \else \advi@warning + {Optional argument [#1] to \string \advibg ignored}\fi + \global \advi@bglocaltrue + \advi@bgset{#2}\advi@bgemit \fi + \endgroup} +\def \advi@bgpage + {\ifadvi@bgactive \ifadvi@bglocal\else \advi@bgemit \fi\fi + \global \advi@bglocalfalse} + +\advi@export \advibg \advi@bg + +%%% Pausing and waiting + +\def\advi@pause {\advi@special{pause}} +\def\advi@wait#1{\advi@special{wait sec=#1}} + +%% export +\newcommand {\adviwait}[1][]% + {\advi@ifempty {#1}{\advi@pause}{\advi@wait {#1}}} + +%%% Transparency and alpha blending +%%% To be revisited. + +\def\advi@epstransparent + {\advi@special{epstransparent push true}% + \aftergroup \advi@resetepstransparent} +\def\advi@epswhite + {\advi@special{epstransparent push false}% + \aftergroup \advi@resetepstransparent} +\def\advi@setalpha#1% + {\advi@special{alpha push #1}% + \aftergroup \advi@resetalpha} +\def\advi@setblend#1% + {\advi@special{blend push #1}% + \aftergroup\advi@resetblend} +\def\advi@resetepstransparent {\advi@special{epstransparent pop}} +\def\advi@resetalpha {\advi@special{alpha pop}} +\def\advi@resetblend {\advi@special{blend pop}} + +\advi@export \epstransparent \advi@epstransparent +\advi@export \epswhite \advi@epswhite +\advi@export \setalpha \advi@setalpha +\advi@export \setblend \advi@setblend + +%%% Animated transitions + +\def \advi@transfrom{} +\def \advi@transsteps{} +\def \advi@settrans {\advi@global \def} +\define@key {advi@trans}{none} []{\advi@settrans \advi@transmode {none}} +\define@key {advi@trans}{slide}[]{\advi@settrans \advi@transmode {slide}} +\define@key {advi@trans}{block}[]{\advi@settrans \advi@transmode {block}} +\define@key {advi@trans}{wipe} []{\advi@settrans \advi@transmode {wipe}} +\define@key {advi@trans}{from} {\advi@settrans \advi@transfrom { from=#1}} +\define@key {advi@trans}{steps}{\advi@settrans \advi@transsteps { steps=#1}} + +\def \advi@transemit + {\advi@special{trans \advi@transmode \advi@transfrom \advi@transsteps}} +\newif \ifadvi@translocal +\newcommand {\advi@transition}[2][]{% + \begingroup + \def \@test {#1}\ifx \@test \advi@global@ \let \advi@global \global + \setkeys {advi@trans}{#2}\else + \ifx \@test \advi@empty \else \advi@warning + {Optional argument [#1] to \string \advitransition ignored}\fi + \global \advi@translocaltrue + \setkeys {advi@trans}{#2}\advi@transemit \fi + \endgroup} + +\def \advi@transpage + {\@ifundefined {advi@transmode}{} + {\ifadvi@translocal\else \advi@transemit \fi}% + \global \advi@translocalfalse} + +%% Hook \advi@setpagesetyle at \@begindvi that run at every page + +\def \advi@setpagestyle {\advi@bgpage \advi@transpage} +\def \endpage@hook {} +\def \AtEndPage {\g@addto@macro \endpage@hook} +\AtEndPage {\advi@setpagestyle} + +% We must patch \@begindvi to put out hook. +% However, hyperref may patch it as well. So we should do it at begin +% document to have the control (no one after us). +% Howver, one must be careful, because \@begindvi redefines itself at the +% first call to its prerecorded final value. +% So our first patch will be overridden with the value that it was +% meant to have after the first page. +% Hence, we patch it a second time to put our hook to this final value. + +% we can use \g@addto@macro which redefines #1 to so that it procedes as +% before and then execute #2 at the end. + +\def \advi@begindvi@patch + {\g@addto@macro \@begindvi + {\endpage@hook \g@addto@macro \@begindvi {\endpage@hook}}} + +\AtBeginDocument {\advi@begindvi@patch} + +% {\let \advi@begindvi@save \@begindvi %% value at begindocument +% \def \@begindvi %% our new value +% {\advi@begindvi@save %% may redefine \@begindvi +% \global\let \advi@begindvi@save %% so we this new value +% \@begindvi +% \gdef \@begindvi %% now and forever +% {\advi@begindvi@save \endpage@hook}% +% \endpage@hook %% our hook for the +% }} + + + +%% Transitions + +\def\advi@transbox@save#1#2#3{\advi@special + {transbox save width=#1 height=#2 depth=#3}} +\def\advi@transbox@go#1{\advi@special{transbox go #1}} + +\def \advi@transslide {slide} +\def \advi@transbox #1{% + \def \advi@afterbox + {\hbox {\advi@transbox@save{\the\wd0 }{\the\ht0 }{\the\dp0}% + \unhbox0\setkeys {advi@trans}{#1}% + \advi@transbox@go + {\advi@transmode \advi@transfrom \advi@transsteps}}}% + \def \advi@@afterbox {\aftergroup \advi@afterbox} + \afterassignment \advi@@afterbox \setbox0 \hbox } + +\advi@export \advitransition \advi@transition +\advi@export \advitransbox \advi@transbox + +%%% For PS Tricks + +\def \advi@moveto {\advi@special {moveto}} +\def\advi@psput@special#1{% +\hbox{% +\pst@Verb{{ \pst@coor } +dup exec 2 copy moveto advi@Dict begin printpos end +\tx@PutCoor +\tx@PutBegin} +\hbox {\advi@moveto \box#1}% +\pst@Verb{\tx@PutEnd}}} + +\def\advi@ncput@iii{% +\leavevmode +\hbox{% +\pst@Verb{% +\pst@nodedict +/t \psk@npos def +tx@NodeDict /LPutPos known { LPutPos } { CP /Y ED /X ED /NAngle 0 +def } ifelse +LPutCoor +end +\tx@PutBegin +}% +\hbox {\box\pst@hbox}% +\pst@Verb{\tx@PutEnd}}} + +\def \advi@pstricks@patch + {\@ifundefined {psput@special}{} + {\let \psput@special \advi@psput@special + %\@ifundefined {ncput@iii}{}{\let \ncput@iii \advi@ncput@iii}% + \pstheader {advi.pro}}} +\AtBeginDocument {\advi@pstricks@patch} + + +%%% Active DVI + +\def \advi@over@ {over} +\def \advi@click@ {click} +\def \advi@null {\hbox {}} + +\newenvironment {advi@anchoring}[2][over]{% + \begingroup + \def \@test {#1}\ifx \@test \advi@over@ + \advi@special@ {html:}\else + \ifx \@test \advi@click@ + \advi@special@ {html:}\else + \advi@error {Incorect anchor mode #1}\fi \fi\endgroup} + {\advi@special@ {html:}} +\newcommand {\advi@anchor}[3][over]% + {\advi@anchoring[#1]{#2}#3\endadvi@anchoring} + +\def \advi@endanchor #1{#1\endadvi@anchor \endgroup} +\advi@exportenv {advianchoring}{advi@anchoring} +\advi@export \advianchor \advi@anchor +\let \endadvianchor \advi@undefinedenv + +%%% Partial patch for overlays -- 0 will be shown > 0 will not be shown + +\def \advi@max {0} +\def \advi@overlay #1{% + \advi@ifadvi + {%\advance \c@overlay by 1 + \ifnum \c@overlay>\advi@max \global \xdef \advi@max {\the \c@overlay}\fi + \advi@recording {overlay@#1}\aftergroup \endadvi@recording} + {\latex@overlay {#1}}} + +\def \advi@overlay@loop + {\advi@ifadvi + {\begingroup + \c@overlay=0 + \@whilenum\c@overlay<\advi@max + \do {\advance \c@overlay by 1% + \adviwait \adviplay{overlay@\the\c@overlay}}% + \endgroup + \gdef \advi@max {0}} + {\latex@overlay@loop}} + +\def \advi@end@slide + {\advi@ifadvi {\overlay@loop}{}\latex@end@slide} + +\def \advi@overlay@patch {% + \let \latex@overlay \@overlay + \let \latex@end@slide \end@slide + \let \latex@overlay@loop \overlay@loop + \let \@overlay \advi@overlay + \let \overlay@loop \advi@overlay@loop + \let \end@slide \advi@end@slide + } + +\@ifundefined {overlay}{} + {\AtBeginDocument {\advi@overlay@patch}} + + +\endinput diff --git a/examples/slide/ex/skribe.skb b/examples/slide/ex/skribe.skb new file mode 100644 index 0000000..d1a525e --- /dev/null +++ b/examples/slide/ex/skribe.skb @@ -0,0 +1,11 @@ +(slide :title [Skribe] + (st [Skribe:]) + (itemize (item [A functional programming language based on Scheme]) + (item [A markup language ,(emph [à la]) XML]) + (item [A document ,(blue [is]) a program, + a program ,(blue [looks like]) a text with markups])) + + (p [ + ,(st [Example:]) + ,(slide-pause) + ,(skribe-prgm :file "ex/skribe.skb")])) diff --git a/examples/slide/ex/syntax.scr b/examples/slide/ex/syntax.scr new file mode 100644 index 0000000..8590f4a --- /dev/null +++ b/examples/slide/ex/syntax.scr @@ -0,0 +1 @@ +[text goodies: ,(bold "bold") and ,(it "italic").] diff --git a/examples/slide/skb/slides.skb b/examples/slide/skb/slides.skb new file mode 100644 index 0000000..c13b102 --- /dev/null +++ b/examples/slide/skb/slides.skb @@ -0,0 +1,286 @@ +;*=====================================================================*/ +;* serrano/prgm/project/skribe/examples/slide/skb/slides.skb */ +;* ------------------------------------------------------------- */ +;* Author : Manuel Serrano */ +;* Creation : Wed Oct 8 16:04:59 2003 */ +;* Last change : Fri Oct 24 13:32:37 2003 (serrano) */ +;* Copyright : 2003 Manuel Serrano */ +;* ------------------------------------------------------------- */ +;* Skribe slide example */ +;*=====================================================================*/ + +;*---------------------------------------------------------------------*/ +;* Style */ +;*---------------------------------------------------------------------*/ +(case *mode* + ((advi) + (skribe-load "slide.skr" :advi #t)) + ((prosper) + (skribe-load "slide.skr" :prosper #t)) + (else + (skribe-load "slide.skr"))) + +(skribe-load "local.skr") + +;*---------------------------------------------------------------------*/ +;* latex configuration ... */ +;*---------------------------------------------------------------------*/ +(let ((le (find-engine 'latex))) + (engine-custom-set! le 'transition 'slide) + (engine-custom-set! le 'usepackage + (string-append (engine-custom le 'usepackage) + "\\usepackage{pstricks,pst-node,pst-text,pst-3d}\n"))) + +;*---------------------------------------------------------------------*/ +;* sk-expression ... */ +;*---------------------------------------------------------------------*/ +(define (sk-expression) + (it "sk-expression")) +(define (sk-expressions) + (it "sk-expressions")) + +;*---------------------------------------------------------------------*/ +;* The document */ +;*---------------------------------------------------------------------*/ +(document +:title (red (sf (font :size +2. "This is Skribe!"))) +:author (author :name (it (magenta "Manuel Serrano, Erick Gallesio")) + :affiliation [Inria Sophia Antipolis, University of Nice] + :address (list "" (tt (skribe-url)))) + +;*---------------------------------------------------------------------*/ +;* First slide */ +;*---------------------------------------------------------------------*/ +(include "ex/skribe.skb") + +;* {*---------------------------------------------------------------------*} */ +;* {* Overview *} */ +;* {*---------------------------------------------------------------------*} */ +;* (slide :title "Skribe overview" */ +;* (center (image :width 90. :file "fig/overview.fig"))) */ + +;* {*---------------------------------------------------------------------*} */ +;* {* Examples *} */ +;* {*---------------------------------------------------------------------*} */ +;* (if (or (skribe-mgp?) (and (skribe-tex?) *skribe-slide-advi*)) */ +;* (slide :title "Skribe examples" */ +;* */ +;* (%embed :geometry *xterm.geo* *xterm*) */ +;* (%embed :geometry *xdvi.geo* *xdvi*) */ +;* */ +;* (st [1 Skribe document, 2 targets:]) */ +;* */ +;* (%vspace 0.0) */ +;* (itemize (item [A ,(sc [Nroff]) target:])) */ +;* (%vspace 3) */ +;* (itemize (item [A ,(sc [Dvi]) target:])))) */ + +;* {*---------------------------------------------------------------------*} */ +;* {* Skribe gallery *} */ +;* {*---------------------------------------------------------------------*} */ +;* {*--- math ------------------------------------------------------------*} */ +;* (slide :title "Gallery (1/2)" */ +;* */ +;* (st [Math skills:]) */ +;* (itemize (item [A ,(LaTeX) math formula in:])) */ +;* (p (font :size -3 */ +;* (color :bg *display-bg* */ +;* (center */ +;* (hook :after */ +;* (lambda () */ +;* (if (skribe-tex?) */ +;* (display "\\(\\sum_{i=1}^{n} x_{i} = \\int_{0}^{1} f\\)") */ +;* (display "∑i=1i=1 = ∫01f")))))))) */ +;* (itemize (item [Denotational semantics:])) */ +;* (p (font :size -3 */ +;* (color :bg *display-bg* */ +;* (prgm :language denotation :monospace (skribe-html?) */ +;* (map (lambda (d) */ +;* (from-file "scm/eval.scm" :definition d)) */ +;* '("ev-lambda1" "ev-funcall1")))))) */ +;* (itemize (item [SOS rule:])) */ +;* (p (font :size -4 */ +;* (color :bg *display-bg* */ +;* (labeled-component */ +;* "Assignment" */ +;* (rule */ +;* (evaluate "exp" "sched, env" "val" "sched', env'") */ +;* (rewrite "var = exp, sched, env" (TERM) "nothing, sched', env'"))))))) */ +;* */ +;* {*--- misc ------------------------------------------------------------*} */ +;* (slide :title "Gallery (2/2)" */ +;* */ +;* (st [Misc:]) */ +;* (itemize (item [A computer program:])) */ +;* (p (font :size -1 (prgm :bg *example-bg* :language c :lnum 1 (from-file "ex/C-code.c")))) */ +;* (itemize (item [Images: */ +;* ,(p (image :width 75 :height 50 :file "img/img.jpg") */ +;* (hook :after (lambda () */ +;* (cond */ +;* ((skribe-tex?) */ +;* (display "\\ \\ \\ \\ ")) */ +;* (else */ +;* (display " "))))) */ +;* (image :width 25 :height 50 :file "img/img.jpg") */ +;* (hook :after (lambda () */ +;* (cond */ +;* ((skribe-tex?) */ +;* (display "\\ \\ \\ \\ ")) */ +;* (else */ +;* (display " "))))) */ +;* (image :width 150 :height 50 :file "img/img.jpg"))]))) */ +;* */ +;*---------------------------------------------------------------------*/ +;* Syntax */ +;*---------------------------------------------------------------------*/ +(slide :title "Skribe Syntax" :vspace 0.3 + +(st [,(sk-expression):]) + +(slide-pause) +(itemize (item [An ,(emph "atom") (a ,(red (it "string")), a ,(red (it "number")), ...)] (slide-pause)) + (item [A ,(emph "list") of ,(!latex "{\\rnode{NA}{$1}}" (sk-expressions))] (slide-pause)) + (item [A ,(emph "text") (,(red (tt [ ,(char "[")... ,(blue [,(char ",")(,(it ""))]) ...,(char "]") ])))] (slide-pause))) + +(slide-vspace 0.3) +(p [,(!latex "{\\rnode{NB}{$1}}" (st [Example:])) + ,(slide-pause) + ,(!latex "{\\nccurve[linecolor=red,angleA=90,angleB=270]{->}{NB}{NA}}") + ,(skribe-prgm :fsize 0 (source :file "ex/syntax.scr"))]) + +(p [is equivalent to: + ,(slide-pause) + ,(skribe-prgm :fsize 0 [(list "text goodies: " (bold "bold") "and" (it "italic") ".")])])) + +;* {*---------------------------------------------------------------------*} */ +;* {* Skribe documents *} */ +;* {*---------------------------------------------------------------------*} */ +;* (slide :title "Skribe Documents (1/2)" :vspace 0.5 */ +;* */ +;* (st [Skribe Document Structure:]) */ +;* (p (skribe-prgm [,(from-file "ex/skel.scr")]))) */ +;* */ +;* {*--- markup ----------------------------------------------------------*} */ +;* (slide :title "Skribe Documents (2/2)" :vspace 0.5 */ +;* (st [XML markup:]) */ +;* (p (prgm :language xml :bg *example-bg* [ */ +;* */ +;* Some text */ +;* */ +;* for the example */ +;* */ +;* ])) */ +;* (%vspace 0.3) */ +;* (st [Sc-markup:]) */ +;* (p (skribe-prgm [,(from-file "ex/xml.scr")]))) */ +;* */ +;* {*---------------------------------------------------------------------*} */ +;* {* Libraries *} */ +;* {*---------------------------------------------------------------------*} */ +;* (slide :title "Skribe Libraries" */ +;* */ +;* (st [A set of libraries containing the ,(q "usual") facilities. For instance:]) */ +;* */ +;* (p (skribe-prgm [,(from-file "ex/itemize.scr")])) */ +;* (%vspace 0.1) */ +;* (st [Produces the following output text:]) */ +;* (center (color :bg *display-bg* (font :size -2 (include "ex/itemize.scr"))))) */ +;* */ +;* {*---------------------------------------------------------------------*} */ +;* {* Dynamic texts *} */ +;* {*---------------------------------------------------------------------*} */ +;* (slide :title "Dynamic texts (1/3)" :vspace 0.2 */ +;* */ +;* (st [Let us assume the factorial table:]) */ +;* (%vspace 0.5) */ +;* */ +;* (center (font :size -1 (color :bg *display-bg* (include "ex/fact.scr"))))) */ +;* */ +;* {*--- dynamic texts: the usual solution -------------------------------*} */ +;* (slide :title "Dynamic texts (2/3)" */ +;* */ +;* (st [The usual solution:]) */ +;* (p (skribe-prgm :fsize -1 (from-file "ex/factb.scr")))) */ +;* */ +;* {*--- dynamic texts: a better solution --------------------------------*} */ +;* (slide :title "Dynamic texts (3/3)" */ +;* */ +;* (st [A better solution:]) */ +;* (p (skribe-prgm (from-file "ex/fact.scr")))) */ +;* */ +;* {*---------------------------------------------------------------------*} */ +;* {* Introspection *} */ +;* {*---------------------------------------------------------------------*} */ +;* {*--- Introspection ---------------------------------------------------*} */ +;* (slide :title "Introspection" */ +;* */ +;* (color :bg *image-bg* */ +;* (center (image :width 1. :file "fig/skribe.fig")))) */ +;* */ +;* {*--- Number of slides ------------------------------------------------*} */ +;* (slide :title "Introspection: an example (1/2)" */ +;* */ +;* (p (color :bg *display-bg* (include "ex/slide.scr")))) */ +;* */ +;* {*--- Number of slides (2/2) ------------------------------------------*} */ +;* (slide :title "Introspection: an example (2/2)" :vspace 0.5 */ +;* */ +;* (st [The previous output is produced with:]) */ +;* (p (skribe-prgm (from-file "ex/slide.scr")))) */ +;* */ +;* {*---------------------------------------------------------------------*} */ +;* {* Conditional evaluation *} */ +;* {*---------------------------------------------------------------------*} */ +;* (slide :title "Conditional evaluation" :vspace 0.5 */ +;* */ +;* (st [Some features are dependent of the target format:]) */ +;* (itemize (item [Only specific back-ends may support specific features]) */ +;* (item [It is in charge of the back-ends to implement */ +;* ,(emph "reasonable") behaviors for unsupported features. */ +;* Examples: */ +;* ,(itemize (item [Hyper links]) */ +;* (item [Images]) */ +;* (item [...]))]) */ +;* (item [Skribe enables conditional evaluation: */ +;* ,(itemize (item [according to the target format]) */ +;* (item [enabling target format commands]))]))) */ +;* */ +;* {*---------------------------------------------------------------------*} */ +;* {* Extensibility *} */ +;* {*---------------------------------------------------------------------*} */ +;* (slide :title "Extensibility" */ +;* */ +;* (st [User level:]) */ +;* (itemize (item [New markups can be defined in a document]) */ +;* (item [A markup is a Skribe (Scheme) function]) */ +;* (item [Example: the ,(code "(%pause)") slide facility:])) */ +;* */ +;* (p (skribe-prgm [ */ +;* (define (%pause) */ +;* (cond */ +;* ((skribe-mgp?) (hook :after (lambda () (display "%pause")))) */ +;* ((skribe-advi-tex?) (hook :after (lambda () (print "\\adviwait")))) */ +;* (else (linebreak))))])) */ +;* (%pause) */ +;* */ +;* (st [System level:]) */ +;* (itemize (item [New back-ends can be dynamically added]) */ +;* (item [The ,(sc-ast) can be extended]))) */ +;* */ +;* {*---------------------------------------------------------------------*} */ +;* {* Conclusion *} */ +;* {*---------------------------------------------------------------------*} */ +;* (slide :title "Conclusion" :vspace 0.5 */ +;* */ +;* (st [Status:]) */ +;* (itemize (item [Available on-line: ,(ref :url (skribe-url))]) */ +;* (item [Available since a couple of months]) */ +;* (item [Used, by the authors, on a daily basis]) */ +;* (item [,(magenta (bold [Still too young])) ,(symbol '=>) */ +;* ,(itemize (item [Very few styles have been implemented]) */ +;* (item [It is still necessary to be aware of the */ +;* targets idiosyncrasies]) */ +;* (item [Difficult to tame the fix-point */ +;* iteration of the computation model]))])))) */ + +) diff --git a/examples/slide/skr/local.skr b/examples/slide/skr/local.skr new file mode 100644 index 0000000..2802a53 --- /dev/null +++ b/examples/slide/skr/local.skr @@ -0,0 +1,73 @@ +;*=====================================================================*/ +;* serrano/prgm/project/skribe/examples/slide/skr/local.skr */ +;* ------------------------------------------------------------- */ +;* Author : Manuel Serrano */ +;* Creation : Mon Jun 3 15:32:25 2002 */ +;* Last change : Wed Oct 8 16:22:42 2003 (serrano) */ +;* Copyright : 2002-03 Manuel Serrano */ +;* ------------------------------------------------------------- */ +;* The local style of the presentation */ +;*=====================================================================*/ + +;* {*---------------------------------------------------------------------*} */ +;* {* fg ... *} */ +;* {*---------------------------------------------------------------------*} */ +;* (define (fg c . body) */ +;* (apply color :fg c body)) */ +;* */ +;* {*---------------------------------------------------------------------*} */ +;* {* bg ... *} */ +;* {*---------------------------------------------------------------------*} */ +;* (define (bg c . body) */ +;* (apply color :bg c body)) */ +;* */ +;*---------------------------------------------------------------------*/ +;* colors ... */ +;*---------------------------------------------------------------------*/ +(define (green body) + (fg "darkgreen" body)) +(define (red body) + (fg "red" body)) +(define (blue body) + (bold (fg "darkblue" body))) +(define (magenta body) + (fg "darkmagenta" body)) +(define (orange body) + (fg "darkorange" body)) + +;*---------------------------------------------------------------------*/ +;* em ... */ +;*---------------------------------------------------------------------*/ +(define (em body) + (bold (magenta body))) + +;*---------------------------------------------------------------------*/ +;* st ... */ +;*---------------------------------------------------------------------*/ +(define (st body) + (sf (red body))) + +;*---------------------------------------------------------------------*/ +;* citem ... */ +;*---------------------------------------------------------------------*/ +(define-markup (citem #!rest opt #!key (color "black") (shape (math 'bullet))) + (item (list (fg color shape) " " (the-body opt)))) + +;*---------------------------------------------------------------------*/ +;* skribe-prgm ... */ +;*---------------------------------------------------------------------*/ +(define-markup (skribe-prgm #!rest opt #!key file definition) + (cond + ((and definition file) + (font :size -4 + (color :bg "#ccffcc" (prog (source :language skribe + :file file + :definition definition))))) + (file + (font :size -4 + (color :bg "#ccffcc" (prog (source :language skribe + :file file))))) + (else + (font :size -4 + (color :bg "#ccffcc" (prog (source :language skribe + (the-body opt)))))))) -- cgit v1.2.3