Generated: October 29, 2003, 11:05:14Copyright ©2003, Kurt NørmarkThe local LAML software home page

Reference Manual of the XML-in-LAML Lecture Note System

Kurt Nørmark ©    normark@cs.auc.dk    Department of Computer Science    Aalborg University    Denmark    

Source file: styles/xml-in-laml/lecture-notes/lecture-notes.scm
LAML Version 22.00 (October 29, 2003, alpha-3)

This is the reference manual of the LENO Lecture Note System. This manual pertains to the XML-in-LAML interface of LENO. The older interface - the original LENO system - is now obsolete.

Using LENO it is possible to make web-based teaching material. The collection is structured in chapters. Each chapter is used in a separate lecture. LENO supports a comprehensive linking of slides within a chapter, and linking between the chapters. Overview pages are generated for each chapter, and lecture wide for all chapters. LENO also supports an alphabetic index with links to slides given selected index words, concepts, and slide titles.

LENO supports three different views on the slide: Slide view, annotated slide view, and a more book-like view. In slide view, the main text of the slides are shown in using a relatively large font. In the annotated slide view, the slide is shown to the left, and the annotations are shown to the right. In the book-like view, the slide contents and the annotations are mixed into a single, long text with marginal comments. All three views can be seen from any Internet browser, because it is translated to simple and plain HTML.

LENO is implemented by means of LAML, which means 'Lisp Abstracted Markup Language'. In LAML a number of Scheme expressions are executed with the purpose to generate HTML counterparts.

This document is the reference manual of LENO. It documents the primary user level 'markup' functions, which act as special purpose slide markup functions. The markup functions mirror the elements of the LENO XML language, which is defined by the LENO DTD.

There exists a separate overview of the CSS support for LENO. This overview has a brief description of the LENO CSS stylesheet support as well.

The Meta Lecture Notes is gives a concrete example of each Leno means of expression. As a distinguished feature, the example give access to the LENO source using the source-program clause to read relevant parts of the underlying LAML file. Try it out!

You should also consult the comprehensive, elucidative LENO tutorial which features a variety of LENO examples.

You should also pay attention to the very simple (and somewhat artificial) introductory LENO examples provided with this software.

Table of Contents:
1. Single lecture materials5. Preamble stuff9. Special Scheme level functionality
2. Multi lecture materials6. Top level functions10. LENO Emacs Support
3. Overall directory organization7. Clauses of the note-page form11. Cross Reference Support
4. The surrrounding leno element8. Additional Scheme level functionality12. Show and speak functionality

Alphabetic index:
annotation(annotation text)The annotation of the enclosing form.
answer(answer (quote correctness) percent-number (answer-possibility answer) (answer-clarification clarification))Define a single answering possibility side by side with other possible answers.
answer-clarification(answer-clarification answer)The explanation given if the user choses a particular answer in a quiz.
answer-possibility(answer-possibility answer)The actual answer of an answer form
answers(answers (answer (quote correctness) percent-number (answer-possibility answer) (answer-clarification clarification)) ...)Define a number of possible answers of a quiz clause
applet-program(applet-program class-file codebase explanation width height)Defines and inserts a Java applet
begin-notes(begin-notes)This form marks the ending of the preamble and the beginning of the note page definition part.
bibtex-reference(bibtex-reference (quote key) key)Defines a reference to a bibtex item.
book-url(slide-url lecture-id . slide-id)Return a URL of particular aggregated lecture.
cell(cell text-or-number)The definition of a cell in a row or row-width form of a LENO table
color-decoration(color-decoration attributes...)The color decoration of a color-decorations form
color-decorations(color-decorations (color-decoration ...) ...)The color decorations of a source program
comment(comment comment-text)Present an internal comment.
concept(concept (quote concept-name) concept (main-text concept-definition) (annotation annotation))Defines a concept in terms of its name, a concept definition, and a concept explanation.
concept-list(concept-list (concept (quote concept-name) concept (main-text concept-definition) (annotation annotation)) ...)Defines a number of concepts.
course-absolute-url(course-absolute-url suffix)A function which is supposed to return an absoute URL to the a resource in the directory, which this lecture is located.
course-dircourse-dirA variable which defines the course directory, in which the course plan files resides.
cross-reference-location-hints(cross-reference-location-hints location-hints)A function which may return a hint of the location of a cross reference.
cross-references(cross-references list-of-references)Define a number of cross references to other material.
current-lecturecurrent-lectureAn integer variable defining the chapter number of the last lecture to be generated.
element-name(element-name name)A list item in leno-elements
elucidate(elucidate description (quote href) url (quote target) target)Insert a link to an elucidator (accompanied with an eluciator icon) which explains a program.
end-notes(end-notes)States the ending of this lecture note file.
example(example (main-text primary example text) (annotation secondary example text))Defines an example which is shown in all views.
exercise(exercise (quote id) id (quote title) title (formulation exercise-text) (solution solution-text))Defines an exercise in terms of an id, a title, a formulation and an optional solution.
exercise-formulation-url(exercise-formulation-url lecture-id page-id presentation-kind exercise-number)Return a URL to an exercise formulation in a given lecture, and on a given page.
exercise-formulation-url-given-id(exercise-formulation-url-given-id lecture-id exercise-id . presentation-kind)Return a URL to an exercise formulation identified with exercise-id, located in a particular lecture.
exercise-solution-url(exercise-solution-url lecture-id page-id exercise-number)Return a URL to an exercise solution in a particular lecture, on a particular page.
flash-image(flasg-image (quote src) flash-file (quote width) w (quote height) h (main-text image caption))Inserts a Flash image from an external file.
formulation(formulation exercise-formulation-text)Defines the exercise formulation text
front-abstract(front-abtract abstract)The abstract/summary of this lecture
front-affiliation(front-affiliation author)The affiliation of the author(s)
front-author(front-author author)The authors name(s)
front-subtitle(front-subtitle subtitle)The subtitle to the title.
front-title(front-title title)The title of the lecture.
generating-system(generating-system)A parameter less function which is supposed to return a string describing the system, which has generated these notes.
hint(hint text)A hint item of a location-hints clause
image(image (quote src) image-file-name (main-text image caption))Inserts an image (gif, jpg, ...) from an external file.
image-part(image-part (quote seconds) sec)The individual item which describes how many seconds to show an image in an image series.
image-series(image-series (quote title) Title of series (image-series-item (quote src) file-name caption) ...)Defines a series of images, which may define a number of steps.
image-series-item(image-series-item (quote src) image-file caption)The items of an image-series
image-series-part(image-series-part (quote number) image-part)Define an image-series part of the surrounding show and speak clause.
index-word(index-word text)The individual index word of an index-words clause
index-words(index-words (index-word word) ...)Defines a number of index words of this page.
informal-reference(informal-reference anchor-text reference-text . location-hints)Defines a reference to an off line resource, such that a paper or a book
internet-reference(internet-reference (quote href) url (main-text Reference anchor text))Defines a reference to an Internet resource addressed by means of an URL
item(item (main-text txt) (annotation ann) (items ...))Describes a single item in terms of main-tex, optional annotations, and - recursively, subitems.
items(items (item (main-text txt) (annotation ann) (items ...)) ...)Defines one of more items, to be presented as a bullet list.
lecture-sectionslecture-sectionsA variable which keep track of the names of all lecture chapters in these lecture notes.
lecture-title-page?lecture-title-page?A variable that controls the generation of a title page and an abstract page.
lecturer-photos(lecturer-photos (quote start-number) n (quote number-of-photos) m)Present a number of lecturer photos on the current note page.
lecturer-photos-and-logo(lecturer-photos-and-logo (quote start-number) n)Show two lecturer photos and a logo.
left-item(left-item text)The left item of an opposing clause
leno(leno (leno-front-matters ...) (begin-notes) (note-page ...) ... (end-notes))A surrounding element, which we typically do NOT use at the XML-in-LAML level.
leno-elements(leno-elements (element-name n1) ...)An enumeration (or list) of Leno elements to include or exclude in the clauses splice-page-with and splice-page-without.
leno-front-matters(leno-front-matters (front-title title) (front-subtitle sub) (front-author author) (front-affiliation af) (front-abstract abstract) attributes...)Defines the overall characteristics of a LENO lecture.
location-hints(location-hints (hint text) ...)A location hint of a cross reference item.
main-text(main-text text)The main text of the enclosing form.
meta-tag-clauses(meta-tag-clauses)Returns meta information about these notes in terms of a list of list.
meta-text(meta-text (quote type) readers-guide meta text)Defines a meta text - a text about the material at the meta level.
note-page(note-page page-id (quote id) ID note-page-sub-elements)Describes a single note page in terms of a number of sub elements.
note-reference(note-reference (quote lecture-id) lecture-id (quote page-id) page-id (main-text Reference anchor text))Describes a reference to another part (possibly in another section) of the current lecture notes.
note-specific-image-filesnote-specific-image-filesThis variable is a list of image file names (without path, with extension such a gif) used specifically in these notes.
note-text(note-text note text)Defines a text clause to appear in note page view and annotated slide view only.
note-url(note-url lecture-id slide-id)Return a URL of particular note page in a particular lecture
notes-titlenotes-titleA variable which holds the title of the entire set of lecture notes (a string).
opposing(opposing (opposing-item (left-item left) (right-item right)) ...)Presents a number of opposing items in a two column setup.
opposing-item(opposing-item (left-item left) (right-item right))An item the the opposing clause
point(point (main-text primary-text) (annotation secondary-text))A point is a distinguished observation which is presented with special emphasis in all views.
preferred-maximum-filename-lengthpreferred-maximum-filename-lengthThe preferred maximum length of file names.
primary-view-url(primary-view-url lecture-id slide-id)Return a URL of particular page in a particular lecture using the designated primary-view
program-part(program-part (quote number) n (quote seconds) sec)Define a program-part of the surrounding show and speak clause.
question(question question-formulation)Defines the question of a quiz clause
quiz(quiz (question question) (answers (answer ...) ...))

Define a contribution to a quiz about the current lecture.

quotation(quotation quotation-text quotation-comment)Defines a quotation, which is presented within quote characters.
relative-source-html-destination-path-fragment(relative-source-html-destination-path-fragment)A non-argument function which returns the difference between the note-source-directory and the note destination HTML directory.
right-item(right-item text)The right item of an opposing clause
row(row (cell text) ...)The definition of a row of a LENO table
row-widths(row-widths (cell number) ...)The definition of the row width list of a LENO table
section-title(section-title section-title-string)Defines the title of a section of slides.
show-and-speak(show-and-speak . show-and-speak-parts)

Define a number of 'show and speak' clause of the surrounding note page.

side-track(side-track (main-text side track caption) (annotation annotation) (quote track-lecture-id) lid)Define a side track.
slide-image(slide-image filename)Show an image (gif, jpg, ...) in slide view and in the annotated slide view.
slide-part(slide-part (quote number) n (quote seconds) sec)Define a slide-part of a surrounding show and speak clause.
slide-space(slide-space)Add some vertical space on in slide view only.
slide-text(slide-text text)Defines a text clause to appear in slides views only.
slide-url(slide-url lecture-id slide-id)Return a URL of particular slide page in a particular lecture
solution(solution exercise-solution-text)Defines the exercise solution text
solution-passwordssolution-passwordsA variable the of which is to define a number of password for exercise solution files.
source-program(source-program (quote src) file (quote from-mark) start (quote to-mark) end (quote slide-mode) mode (quote book-mode) mode (color-decorations ...) (main-text caption))Shows a source program (or a similar text of an artificial language) in 'verbatim style'.
splice-page-with(splice-page-with (quote lecture-id) lid (quote page-id) pid (leno-elements (element-name n) ...))Splice the elements of another page from a specified lecture-id including certain kinds of elements.
splice-page-without(splice-page-without tag-list lecture-id page-id)Splice the elements of another page from a specified lecture-id excluding certain types of elements.
svg-image(svg-image (quote src) svg-file (quote width) w (quote height) h (main-text image caption))Inserts an SVG image from an external file.
synopsis(synopsis (synopsis-item (main-text item) (annotation annotation)) ...)Defines a synopsis in terms of a list of synopsis item elements.
synopsis-item(synopsis-item (main-text item) (annotation annotation))Defines a single item in a synopsis clause
syntax(syntax (main-text syntax-rule) (annotation explanation))Defines a syntax description in terms of a syntax rule and an explanation
tabular(tabular (quote border) int (row-widths (cell ..) ...) (row (cell ..) ...) ... (annotation comment))Defines a tabular presentation of table-contents.
text(text (main-text primary text) (annotation secondary text))Defines a text clause of a note page.
theme-text(theme-text theme text)Defines a contribution to the thematic view, which is a special LENO view (not generally supported by the distributed version of LENO).
title(title (main-text title) (annotation comments))Defines the title of a note-page

 

1.   SINGLE LECTURE MATERIALS

A single lecture material consist on a single lecture only, and as such it is somewhat simpler than muliti section materials.

The following shows a template of single lecture LENO source file:

(load (string-append laml-dir "laml.scm"))       
(laml-style "lecture-notes/leno")

(leno-front-matters
  (front-title "TITLE")           
  (front-subtitle "SUBTITLE")   
  (front-author "AUTHOR NAME")           
  (front-affiliation "INSTITUTION")  
  (front-abstract "")  

  'scheme-suffix "post-notes.scm"
  'course-home-url "http://www.cs.auc.dk/~normark/"   
  'author-home-url "http://www.cs.auc.dk/~normark/"   
  'note-download-url ""   
  'logo-url "http://www.auc.dk/"  
  'note-contents-description ""    
  'slide-header "minimal"  ; minimal/normal/none 
  'trail-of-lecture "false"  
  'language "danish"      
  'show-and-speak "false" 
    'default-showing-time "2"    
    'additional-showing-time "0" 
    'sound-source "real-audio" 
    'speak-url-prefix "../../speak/"
  'exercise-model "none"   
  'mouse-advancement "double-press" 
  'word-index "true"  
  'apply-css-styling "false"
  'news-flash-string  ""  
  'news-flash-level   "2"
  'quiz-support "false"   
  'verbosity-level "1"
)

(begin-notes)


  (note-page 'id "sec-id"
    (section-title "TITLE")
  )
  
  (note-page 'id "page-id"
    (title (main-text "TITLE")
           (annotation "ANNOTATION")
    )

    (point
     (main-text "TEXT OF POINT")
     (annotation "ANNOTATION OF POINT")
    )
  )


(end-notes)


It is easy to initiate a single lecture material in LENO when you work LAML in Emacs. Just initiate the command M-x make-lecture-notes,and you are started. Use the templates in the LAML LENO menu to construct your document.

The scheme-suffix attribute of the leno-front-matters clause allows you to read a Scheme file with ordinary Scheme definitions. Use this file to collect ad hoc convenience functions, which help you manage a complex material. There is also a similar scheme-prefix attribute, which you probably not need to care about for single chapter materials. The Scheme definitions in the scheme-prefix file are read before the LENO software is loaded. Here is an example of a Scheme suffix file:

; The Scheme suffix file

(define bibtex-files '())   ; A list of full paths to parsed bibtex files


 

2.   MULTI LECTURE MATERIALS

A multi lecture material consist on a number of LAML source files which each represents a chapter (lecture) in the material. Usually, we organize the common aspects in Scheme prefix and Scheme suffix files, which are shared among all the chapters.

The Scheme prefix file, addressed by the scheme-prefix attribute of leno-front-matters clauses, must be present for multi-lecture materials. Here is an example of this file:

(define notes-title "LECTURE NOTE TITLE")
(define notes-subtitle "LECTURE NOTE SUBTITLE")

(define note-abstract
  "ABSTRACT")


(define lecture-sections
  (list
     "lect1"
     "lect2"
     "lect3"
  ))

(define current-lecture (length lecture-sections))



As it appears, the Scheme prefix file defines the note titles, the abstract, and perhaps most important a list of lecture names (proper file names of the each lecture/chapter). The variable current-lecture can be set to a value smaller than the length of the lecture-sections, in case you do not want to link to details in the latter chapters yet.

The Scheme suffix file, addressed by the scheme-suffix attribute of the leno-front-matters clauses, can contain additional Scheme definitions. Here is an example:

; The Scheme suffix file

(define bibtex-files '())   ; A list of full paths to parsed bibtex files

The following shows a template of a lecture in a multi lecture LENO material:

(load (string-append laml-dir "laml.scm"))       
(laml-style "lecture-notes/leno")

(load "common-front-matters-stuff.scm")

(leno-front-matters
  (front-title "TITLE")           
  (front-subtitle "SUBTITLE")   
  (front-author authors)           
  (front-affiliation institutions)  
  (front-abstract "ABSTRACT")  

  common-attributes
  'process-all-lectures "true"
)

(begin-notes)


  (note-page 'id "sec-id"
    (section-title "TITLE")
  )
  
  (note-page 'id "page-id"
    (title (main-text "TITLE")
           (annotation "ANNOTATION")
    )

    (point
     (main-text "TEXT OF POINT")
     (annotation "ANNOTATION OF POINT")
    )
  )


(end-notes)


Notice the loading of 'commont-front-matters-stuff.scm' which conveniently define a number of properties shared by the leno-front-matters clauses in all lectures. (We cannot define this in the scheme-prefix or scheme-suffix clauses, because these are first brought to the attention of LENO through the leno-front-matters clause itself. Here is a typical 'commont-front-matters-stuff.scm' file:

(define authors "AUTHORS")
(define institutions "AFFILIATIONS")


(define common-attributes
 (list

  'scheme-prefix "pre-notes.scm"
  'scheme-suffix "post-notes.scm"

  'course-home-url "http://www.cs.auc.dk/~normark/"   
  'author-home-url "http://www.cs.auc.dk/~normark/"   
  'note-download-url ""   
  'logo-url ""  
  'note-contents-description ""    
  'slide-header "normal"  ; minimal/normal/none 
  'trail-of-lecture "false"  
  'language "english"      
  'show-and-speak "false" 
    'default-showing-time "2"    
    'additional-showing-time "0" 
    'sound-source "real-audio" 
    'speak-url-prefix "../../speak/"
  'exercise-model "none"   
  'mouse-advancement "double-press" 
  'word-index "true"  
  'apply-css-styling "false"
  'news-flash-string  ""  
  'news-flash-level   "2"
  'quiz-support "false"   
  'verbosity-level "1"
 )
)

As of now, there is no easy way to make all the pieces of a multi lecture material. It is probably easiest first to iniate a single lecture material, and to create the missing pieces (as described above) manually.



 

3.   OVERALL DIRECTORY ORGANIZATION
We start with a description of the overall organization of a set of lecture notes. Here follows the subdirectory structure of the directory with LENO lecture notes:

notes
  html
    graphics
      small
    images
    javascript
    applets
    external-html
  graphics
    small
  images
  includes
  internal
  stylesheets
All of the names above are directory names.

The notes directory contains the laml files (one laml file per chapter in the notes), the Scheme prefix and Scheme suffix files, and other source related files. Your are in control of the real name of this directory. When LENO is executed, an HTML file per lecture is placed in the notes directory. The html directory contais all the generated html files, and as can be seen, it contains a number of sub-directories. This organization is handy, because you can pack the html directory in order to obtain a total, complete and self contained set of information at HTML level. In other words, the contents of the html directory is enough to use the material in an Internet browser. The javascript directory contains a tiny amount of javascript stuff used by Leno. When LAML processing a note file, this directory is populated automatically.

It is possible to organize that the html directory is placed outside the notes directory. In order to do that you should redefine the function relative-source-html-destination-path-fragment, which defines the path 'difference' between the note source directory and the HTML destination directory. In the default case, this function just returns "html/" .

The notes/graphics directory contains gif files for all the figures of the notes. The author of the notes is responsible for the population of this directory, as well as the subdirectory called small. If f.gif is a file in html/graphics, f.fig must in addition be found in html/graphics/small. The idea is to reduce the figure in f, and to place the reduced figure in the small directory. This turns out to be necessary, because a browser makes very rough and poor reductions of pictures. The variable copy-note-graphics? controls the copying of files from notes/graphics to html/graphics. If the variable copy-note-graphics? is #t, the graphics file from notes/graphics are copied to the html/graphics. If this variable is #f (false) you are supposed to put the graphics file into the html/graphics directory yourselves. Similarly, the notes/graphics/small files are copied to html/graphics/small.

The images directory contains note-specific icons that are used throughout the LENO systems. (The LENO software support its own images, which are organized in the LAML directories). When you run LENO (thus generating the HTML version of the slides etc) the relevant image icons are copied from the notes/images directoy to the html/images directory. Therefore we do not need to copy the images into this directory on beforehand.

In the applets directory you should place java class files with applets.

The directory external-html is intended to contain html files, which are considered an integrated part of a set of lecture notes, but being outside the LAML domain. In other words, here you can put html files, which somehow are relevant for the lecture notes.

The internal directory contains helping files in Lisp format with extensions aux, crs, exc, spk, lsp, and idx. Most users of LENO do not need to care about these files. They are generated when a lecture on a LAML file is processsed. The aux file contains the name of the lecture together with an 'record' for each page in the lecture. The crs file contains information about all cross references found in a lecture. The exc file contains information about all the exercises of a lecture. lsp files contains a complete representation of the slides in a list representation. spk files contains information about show-and-speak details (if applied). And finally, an idx file contains all contributions to the index file from a given section.

The includes directory can be used to material which is included (copied into) the notes. In other words, the material in the include directory is source material, which is addressed from the LAML note files. Such included material can also come from other places in your file system.

The stylesheets directory contains note-specific CSS stylesheets. Most users need not care about this, either because no CSS stylesheets are used, or because a common set of LENO stylesheets are used.

The latex directory is intended to contain a latex version of the lecture notes, generated by means of the style "lecture-notes/lecture-notes-latex". This directory is still experimental and ad hoc.



 

4.   THE SURRROUNDING LENO ELEMENT
We will first discuss the outer LENO element, which plays a special, and not very important role.


leno


Example form
(leno (leno-front-matters ...) (begin-notes) (note-page ...) ... (end-notes))

Description
A surrounding element, which we typically do NOT use at the XML-in-LAML level. According to the DTD (grammar) of LENO, the outer element is called leno. It is supposed to surround the leno-front-matters, begin-notes, all note pages, and end-notes. In a programmatic authoring situation with LAML and Scheme we usually ignore this outer structuring. It is far more flexible to work with a number of top level forms (leno-front-matters, begin-notes, etc) than a single on (leno). Also, this allows us to have Scheme define forms side by side with activations of leno mirror functions.

XML Attributes

XML content model
(leno-front-matters,begin-notes,note-page*,end-notes)


 

5.   PREAMBLE STUFF
The LENO preamble consist of a single leno-front-matters element instance with a few embedded elements and a lot of possible attributes.


leno-front-matters


Example form
(leno-front-matters (front-title "title") (front-subtitle "sub") (front-author "author") (front-affiliation "af") (front-abstract "abstract") attributes...)

Description
Defines the overall characteristics of a LENO lecture.

XML Attributes
Required: *
Default values: red
slide-view(true | false)Generate the slide view of the material
annotated-slide-view(true | false)Generate the annotated slide view of the material
aggregated-view(true | false)Generate the aggregated lecture note view of the material
theme-view(true | false)Link to the theme view. An advanced attribute. Theme are generated from a secondary source, controlled by the attribute theme-source
primary-view(slide-view | annotated-slide-view | aggregated-view)Controls the primary view of the material. Normally, it is slide-view, but it may also be annotated-slide view or aggregated-view
course-home-url *CDATAThe URL of an associated course home page. Becomes the target of the 'Home' link of LENO.
author-home-url *CDATAThe URL of (one of) the author's home page(s). Less important than course-home-url.
note-download-url *CDATAThe relative URL of a download page. The URL is reletive from the HTML target directory. If an empty string, no link to download page is provided.
logo-url *CDATAThe URL asssocited with a logo. This attribute controls logo dispay. If an empty string, no logo is displayed.
note-contents-description *CDATAMeta description of the lecture. Goes into the content meta tag description of the material
slide-header *(normal | none | minimal)Controls the amount of slide header, including the icons present in the header
lecture-type(normal | side-track)Provides for marking of lectures that serve as side tracks only. Use normal for non-side track lectures
scheme-prefixCDATAThe name of a Scheme file (proper name and extension) which is loaded before the LENO software is loaded. Necessary for multi lecture materials
scheme-suffixCDATAThe name of a Scheme file (proper name and extension) which is loaded after the LENO software. Good for ad hoc conveniences abstractions
trail-of-lecture(true | false)If true, the whole lecture will - as an additional means - be available in a 'dummy trail'. This causes generation of a lot of frame and frameset files in addtion to the normal HTML files
language(danish | english)Controls the language of the fixed texts in the LENO software
show-and-speak(true | false)If true, the show and speak facility is enabeled. Defaults to false
default-showing-timeCDATAOnly relevant if show-and-speak is true. The number of seconds to show a page if nothing is specified in a show-and-speak clause.
additional-showing-timeCDATAOnly relevant if show-and-speak is true: A fixed amount of seconds always added to any showing time to compensate for download time etc.
sound-source(real-audio | wave-file | mp3-file)Controls the source of the sound files
speak-url-prefixCDATAThe URL prefix to the sound files. The URL prefix is relative to the HTML target directory. It can also be a prefix of an absolute URL. Notice that this attribute is coupled to speak-file-prefix.
speak-file-prefixCDATAThe relative path from the LENO source directory to the sound directory. Notice that this attribute is coupled to speak-url-prefix.
show-and-speak-author-mode(true | false)If true, display the name of sound souce files in annotated slide view. This is helpful while recording sound files. Should be false in normal use.
exercise-model(none | make-indexes | make-indexes-and-solutions-per-lecture | make-indexes-and-solutions-lecture-wide | synchronous-exercises)Controls the various presentation modes of exercises and solutions supported by LENO. none: Do no include exercises in the material. make-index: Include exercise formulations, and make indexes of these of a given lecture. make-indexes-and-solutions-per-lecture: Include exercise formulations and solutions lecture wide. synchronous-exercises: A special exercise mode targeted at an external server-based tool: The exercise manager (advanced aspect).
mouse-advancement(double-press | single-press)Controls whether to proceed to next page by double click or single cliking the mouse. Defaults to double click.
word-index(true | false)Controls whether to generate a comprehensive index - based on the information in the index-words clauses and other informations
css-stylesheetCDATAThe name of the CSS stylesheet to apply on the LENO material. The name corresponds to the proper file names (without extension) of a CSS stylesheet in either the stylesheets directory of the LENO software directory or the note source directory. If both exist, they are appended in such a way that the stylesheet of the source directory comes last. If this attribute is not present, no CSS styling is done.
css-stylesheet-copying(true | false)A boolean variable that controls the copying of stylesheets from the LENO software directory or the LENO source directory to the LENO target directory. If false, a stylesheet file is not copied. A false value is useful in a development situation, during which you experiment with CSS settings in the HTML target directory. In normal use, the value should be true. True is the default value.
news-flash-stringCDATAA news flash string to be shown on selected index pages in LENO. If empty, no newsflash is shown.
news-flash-levelCDATA     (1)A number between 0 and 3. Level 0 means no news flash. Level 1: Show on main index page. Level 2: Show on all lecture pages. Level 3: Add news flash to other overview pages
quiz-support(true | false)Controls the linking to an external LAML server quiz service, based on information in the quiz clauses
verbosity-levelCDATA     (1)A number between 0 and 2. Controls how much LENO gives while processing. 0: Be almost silent. 1: A line pr. note page. 2: A line pr. subclause of note page.
process-all-lectures(true | false)If true, all lectures in a multi lecture collection is processed after the processing of this lecture
clean-html-directory(true | false)If true, relevant files are removed from the LENO html target directories. This includes html files from the html directory, graphics files from the images and the graphics directories, and css files from the stylesheet directory. Use a true value every now and then to remove old stuff
theme-source(overwrite | new | none)Controls the generation of the secondary theme source file. An advanced aspect. If overwrite, overwrite the canonical theme source file. If new, make a new uniquely name theme source file. If none, do not derive any theme source file.
theme-auto-process(true | false)If true, process the secondary theme source file automatically after processing of the primary LENO source file.
make-print-page(true | false)It true, generate a PDF print page which links to PDF files, and link to it from the overall LENO index pages via the 'printer icon'.
trail-source(overwrite | new | none)If non none, generate a secondary trail source file covering all note pages in all lectures. Overwrite existing if the value is 'overwrite'. Generate a new one if the value is 'new'.
source-destination-deltaCDATA     (html/)The relative file path from the LENO source directory to the HTML target directory
html-pdf-deltaCDATA     (../pdf/)The relative file path from the HTML target directory to the PDF directory. This attribute is only relevant if the attribute make-print-page is true.
source-program-index(true | false)Controls the generation, and the linking to, an index of the source-programs in a lecture.

XML content model
(front-title,front-subtitle?,front-author,front-affiliation,front-abstract)

See also
Meta exampleexample with access to the leno-front-matters form


front-title


Example form
(front-title "title")

Description
The title of the lecture. If we are working with a single lecture, the this title automatically becomes the title of the notes-title.

XML Attributes

XML content model
(#PCDATA)

See also
Meta exampleexample with access to the LENO form
Enclosing formleno-front-matters    

Note
The title of a set of multi lectures (several chapter) is defined in the Scheme prefix file, by
(define notes-title "NOTES TITLE")


front-subtitle


Example form
(front-subtitle "subtitle")

Description
The subtitle to the title. If we are working with a single lecture, the this subtitle automatically becomes the sub title of the notes-title.

XML Attributes

XML content model
(#PCDATA)

See also
Meta exampleexample with access to the LENO form
Related clausefront-title    
Enclosing formleno-front-matters    

Note
The subtitle of a set of multi lectures (several chapter) is defined in the Scheme prefix file, by
(define notes-subtitle "SUBTITLE")


front-author


Example form
(front-author "author")

Description
The authors name(s)

XML Attributes

XML content model
(#PCDATA)

See also
Enclosing formleno-front-matters    

Note
We may, in a future version, want to impose further structure, in terms of individual author names


front-affiliation


Example form
(front-affiliation "author")

Description
The affiliation of the author(s)

XML Attributes

XML content model
(#PCDATA)

See also
Meta exampleexample with access to the LENO form
Related clausefront-author    
Enclosing formleno-front-matters    


front-abstract


Example form
(front-abtract "abstract")

Description
The abstract/summary of this lecture

XML Attributes

XML content model
(#PCDATA)

See also
Meta exampleexample with access to the LENO form
Enclosing formleno-front-matters    

Note
Please notice that the abtract of the entire lecture note material is defined in the Scheme prefix by
(define note-abstract "ABSTRACT")


 

6.   TOP LEVEL FUNCTIONS

The element mirror functions described in this section are really sub elements of the leno element. However, as already explained, we recommend that the leno top level structuring is ignored. With this, the forms in this section becomes top level elements side by side with

A number of attributes are widely available in many note page subclauses. These are

begin-notes


Example form
(begin-notes)

Description
This form marks the ending of the preamble and the beginning of the note page definition part. It must be matched by exactly one (end-notes)

XML Attributes

XML content model
EMPTY

See also
Related clausesend-notes    

Note
This element may seem of little importance, because it carries no additional attributes or sub elements. However, in the LENO system it is important, because it is an action element. It means that it initiates a lot of initial actions in in LENO.


end-notes


Example form
(end-notes)

Description
States the ending of this lecture note file. This form matches the (begin-notes) form. The end-note form must be the last clause in a lecture note file.

XML Attributes

XML content model
EMPTY

See also
Related clausesbegin-notes    

Note
Like, begin-notes, this element may seem of little importance, because it carries no additional attributes or sub elements. However, in the LENO system it is important, because it is an action element. In reality, most important LENO functionality is initiated by end-notes.


note-page


Example form
(note-page page-id 'id "ID" note-page-sub-elements)

Description
Describes a single note page in terms of a number of sub elements. A page corresponds to a slide in slide view. The ordering of note-page-elements is significant for all elements appart from title, section-title, and show-and-speak. The mutual ordering determines the sequence of element presentations in all views.

XML Attributes
Required: *
Default values: red
id *CDATAA symbol which in a unique way identifies this note page within the lecture. The value of the id attribute must be compose of lower case alphabetic chars, numeric chars, and '-'.
drop(true | false)If true, disregard this note page in all respects. Defaults to false

XML content model
((section-title,(show-and-speak | lecturer-photos | lecturer-photos-and-logo | splice-page-with | splice-page-without | comment | index-words | quiz | theme-text)*) | (title,(text | point | items | source-program | image | example | opposing | comment | syntax | tabular | note-text | slide-text | cross-references | exercise | index-words | image-series | slide-image | show-and-speak | lecturer-photos | lecturer-photos-and-logo | elucidate | splice-page-with | splice-page-without | side-track | slide-space | quiz | quotation | synopsis | applet-program | concept-list | svg-image | flash-image | theme-text | meta-text)*))

See also
Reference to note-pageslide-url    note-url    book-url    

Note
As it appears from the content model, a note page must at least contain a title or a section-title form. The Emacs commands insert-notepage and insert-notesection insert templates of this form.


 

7.   CLAUSES OF THE NOTE-PAGE FORM
In this section follows all the possible note-page clauses. All of these must appear within a note-page form. Some of the clauses must appear at the top level within a note-page form. Others must be further nested. Please consult the preconditions of the clauses for information about this


title


Example form
(title (main-text "title") (annotation "comments"))

Description
Defines the title of a note-page

XML Attributes
Required: *
Default values: red
idCDATACf. common attribute explanations
marginCDATACf. common attribute explanations
margin-leftCDATACf. common attribute explanations
margin-rightCDATACf. common attribute explanations
margin-bottomCDATACf. common attribute explanations
margin-topCDATACf. common attribute explanations
drop(true | false)Cf. common attribute explanations
annotations(unfold-before | unfold-after | keep | merge | ignore)Cf. common attribute explanations

XML content model
(main-text,annotation?)

Parameters
title-stringthe title itself
title-commentremarks to the title which are used on the annotated slides and in the lecture notes, but not in the slide view

See also
Meta exampleexample with access to the underlying note-page form
Related clausessection-title    
Surrounding clausesnote-page    


main-text


Example form
(main-text "text")

Description
The main text of the enclosing form.

XML Attributes

XML content model
(#PCDATA)


annotation


Example form
(annotation "text")

Description
The annotation of the enclosing form.

XML Attributes

XML content model
(#PCDATA)


section-title


Example form
(section-title "section-title-string")

Description
Defines the title of a section of slides. In the lecture note view this can be thought of as a starting a new section in a chapter. In this context, a chapter is a single lecture note file.

XML Attributes
Required: *
Default values: red
idCDATACf. common attribute explanations

XML content model
(#PCDATA)

See also
Meta exampleexample with access to the underlying note-page form
Related clausestitle    
Surrounding clausesnote-page    

Note
Please notice that only a limited subset of the note page subclauses can co-exist with the section-title clause. For more information se the content model of the note-page clause


text


Example form
(text (main-text "primary text") (annotation "secondary text"))

Description
Defines a text clause of a note page. The primary text is shown in all views, whereas the secondary text is shown in the annotated slides and in the note page views only. The secondary text is used for additional comments to the primary text. The second parameter is optional

XML Attributes
Required: *
Default values: red
idCDATACf. common attribute explanations
marginCDATACf. common attribute explanations
margin-leftCDATACf. common attribute explanations
margin-rightCDATACf. common attribute explanations
margin-bottomCDATACf. common attribute explanations
margin-topCDATACf. common attribute explanations
drop(true | false)Cf. common attribute explanations
annotations(unfold-before | unfold-after | keep | merge | ignore)Cf. common attribute explanations

XML content model
(main-text,annotation?)

See also
Meta exampleexample with access to the underlying note-page form
Related clausesnote-text    slide-text    items    
Surrounding clausesnote-page    


slide-text


Example form
(slide-text "text")

Description
Defines a text clause to appear in slides views only. Does not affect slide annotations nor note page views at all

XML Attributes
Required: *
Default values: red
idCDATACf. common attribute explanations
marginCDATACf. common attribute explanations
margin-leftCDATACf. common attribute explanations
margin-rightCDATACf. common attribute explanations
margin-bottomCDATACf. common attribute explanations
margin-topCDATACf. common attribute explanations
drop(true | false)Cf. common attribute explanations

XML content model
(#PCDATA)

See also
Meta exampleexample with access to the underlying note-page form
Related clausesnote-text    text    
Surrounding clausesnote-page    


note-text


Example form
(note-text "note text")

Description
Defines a text clause to appear in note page view and annotated slide view only. Does not affect slide view at all.

XML Attributes
Required: *
Default values: red
idCDATACf. common attribute explanations
marginCDATACf. common attribute explanations
margin-leftCDATACf. common attribute explanations
margin-rightCDATACf. common attribute explanations
margin-bottomCDATACf. common attribute explanations
margin-topCDATACf. common attribute explanations
drop(true | false)Cf. common attribute explanations

XML content model
(#PCDATA)

See also
Meta exampleexample with access to the underlying note-page form
Related clausesslide-text    text    
Surrounding clausesnote-page    


meta-text


Example form
(meta-text 'type "readers-guide" "meta text")

Description
Defines a meta text - a text about the material at the meta level. When using type 'readers-guide' this will be rendered specially as a reader's guide to the material. Does not affect the slide view at all.

XML Attributes
Required: *
Default values: red
type(readers-guide | normal)The type or role of the meta text
idCDATACf. common attribute explanations
drop(true | false)Cf. common attribute explanations

XML content model
(#PCDATA)

See also
Meta exampleexample with access to the underlying note-page form
Related clausesslide-text    text    note-text    theme-text    
Surrounding clausesnote-page    


theme-text


Example form
(theme-text "theme text")

Description
Defines a contribution to the thematic view, which is a special LENO view (not generally supported by the distributed version of LENO). This clause does not affect the slide slide view, the annotated slide view, or the aggregated view.

XML Attributes
Required: *
Default values: red
idCDATACf. common attribute explanations
drop(true | false)Cf. common attribute explanations

XML content model
(#PCDATA)

See also
Meta exampleexample with access to the underlying note-page form
Related clausesslide-text    text    note-text    meta-text    
Surrounding clausesnote-page    

Note
A theme-text contribution is similar to a theme-text contribution, as found in the secondary theme source file. Sometimes it is convenient to 'single source' the material in the original LAML file, by putting theme contributions side by side with all the other note page subclauses.


items


Example form
(items (item (main-text "txt") (annotation "ann") (items ...)) ...)

Description
Defines one of more items, to be presented as a bullet list. Each items clause contains one or more item clauses, each of which contains main-text, an optional annotation, and - recursively - a new items clause.

XML Attributes
Required: *
Default values: red
idCDATACf. common attribute explanations
marginCDATACf. common attribute explanations
margin-leftCDATACf. common attribute explanations
margin-rightCDATACf. common attribute explanations
margin-bottomCDATACf. common attribute explanations
margin-topCDATACf. common attribute explanations
drop(true | false)Cf. common attribute explanations
annotations(unfold-before | unfold-after | keep | merge | ignore)Cf. common attribute explanations

XML content model
(item)*

See also
Meta exampleexample with access to the underlying note-page form
Related clausesConstituent form    item    
Surrounding clausesnote-page    

Note
The Emacs command insert-items is very helpful to construct correcly structured items clauses.


item


Example form
(item (main-text "txt") (annotation "ann") (items ...))

Description
Describes a single item in terms of main-tex, optional annotations, and - recursively, subitems.

XML Attributes
Required: *
Default values: red
idCDATACf. common attribute explanations
drop(true | false)Cf. common attribute explanations
annotations(unfold-before | unfold-after | keep | merge | ignore)Cf. common attribute explanations

XML content model
(main-text,annotation?,items?)

See also
Enclosing formitems    
Surrounding clausesnote-page    


point


Example form
(point (main-text "primary-text") (annotation "secondary-text"))

Description
A point is a distinguished observation which is presented with special emphasis in all views. The annotation form is optional

XML Attributes
Required: *
Default values: red
idCDATACf. common attribute explanations
marginCDATACf. common attribute explanations
margin-leftCDATACf. common attribute explanations
margin-rightCDATACf. common attribute explanations
margin-bottomCDATACf. common attribute explanations
margin-topCDATACf. common attribute explanations
drop(true | false)Cf. common attribute explanations
annotations(unfold-before | unfold-after | keep | merge | ignore)Cf. common attribute explanations

XML content model
(main-text,annotation?)

See also
Meta exampleexample with access to the underlying note-page form
Surrounding clausesnote-page    


example


Example form
(example (main-text "primary example text") (annotation "secondary example text"))

Description
Defines an example which is shown in all views. The annotation clause is optional

XML Attributes
Required: *
Default values: red
idCDATACf. common attribute explanations
marginCDATACf. common attribute explanations
margin-leftCDATACf. common attribute explanations
margin-rightCDATACf. common attribute explanations
margin-bottomCDATACf. common attribute explanations
margin-topCDATACf. common attribute explanations
drop(true | false)Cf. common attribute explanations
annotations(unfold-before | unfold-after | keep | merge | ignore)Cf. common attribute explanations

XML content model
(main-text,annotation?)

See also
Meta exampleexample with access to the underlying note-page form
Related clausetext    
Surrounding clausesnote-page    

Internal remark
It is perhaps doubtful whether this clause is worthwhile, although of course, it defines a semantic difference between an example and a more general text clause


opposing


Example form
(opposing (opposing-item (left-item "left") (right-item "right")) ...)

Description
Presents a number of opposing items in a two column setup. This is good to discuss a number of issues against each other.

XML Attributes
Required: *
Default values: red
idCDATACf. common attribute explanations
marginCDATACf. common attribute explanations
margin-leftCDATACf. common attribute explanations
margin-rightCDATACf. common attribute explanations
margin-bottomCDATACf. common attribute explanations
margin-topCDATACf. common attribute explanations
drop(true | false)Cf. common attribute explanations

XML content model
(opposing-item)+

See also
Meta exampleexample with access to the underlying note-page form
Constituent formsitem    
Surrounding clausesnote-page    

Note
The emacs command insert-opposing is very useful to constuct a well-formed opposing clause.


opposing-item


Example form
(opposing-item (left-item "left") (right-item "right"))

Description
An item the the opposing clause

XML Attributes

XML content model
(left-item,right-item)

See also
Enclosing formopposing    
Surrounding clausesnote-page    


left-item


Example form
(left-item "text")

Description
The left item of an opposing clause

XML Attributes

XML content model
(#PCDATA)

See also
Enclosing formopposing-item    
Related clauseright-item    


right-item


Example form
(right-item "text")

Description
The right item of an opposing clause

XML Attributes

XML content model
(#PCDATA)

See also
Enclosing formopposing-item    
Related clauseleft-item    


comment


Example form
(comment comment-text)

Description
Present an internal comment. A comment is only intended as a remark, which should be removed in the final version

XML Attributes
Required: *
Default values: red
idCDATACf. common attribute explanations
marginCDATACf. common attribute explanations
margin-leftCDATACf. common attribute explanations
margin-rightCDATACf. common attribute explanations
margin-bottomCDATACf. common attribute explanations
margin-topCDATACf. common attribute explanations
drop(true | false)Cf. common attribute explanations

XML content model
(#PCDATA)

See also
Meta exampleexample with access to the underlying note-page form
Surrounding clausesnote-page    


index-words


Example form
(index-words (index-word "word") ...)

Description
Defines a number of index words of this page. The index words are added to the central lecture note index with a link to the enclosing note page. This clause leaves no trace in any of the views. The index-words clause may be given at an arbitrary position within a note-page form

XML Attributes
Required: *
Default values: red
idCDATACf. common attribute explanations
marginCDATACf. common attribute explanations
margin-leftCDATACf. common attribute explanations
margin-rightCDATACf. common attribute explanations
margin-bottomCDATACf. common attribute explanations
margin-topCDATACf. common attribute explanations
drop(true | false)Cf. common attribute explanations

XML content model
(index-word)*

See also
Meta exampleexample with access to the underlying note-page form
Related clauseconcept    
Surrounding clausesnote-page    


index-word


Example form
(index-word "text")

Description
The individual index word of an index-words clause

XML Attributes

XML content model
(#PCDATA)

See also
Enclosing formindex-words    


concept-list


Example form
(concept-list (concept 'concept-name "concept" (main-text "concept-definition") (annotation "annotation")) ...)

Description
Defines a number of concepts. Each concept is defined via a separate concept clause

XML Attributes
Required: *
Default values: red
idCDATACf. common attribute explanations
marginCDATACf. common attribute explanations
margin-leftCDATACf. common attribute explanations
margin-rightCDATACf. common attribute explanations
margin-bottomCDATACf. common attribute explanations
margin-topCDATACf. common attribute explanations
drop(true | false)Cf. common attribute explanations

XML content model
(concept)+

See also
Meta exampleexample with access to the underlying note-page form
Constituent formconcept    
Surrounding clausesnote-page    


concept


Example form
(concept 'concept-name "concept" (main-text "concept-definition") (annotation "annotation"))

Description
Defines a concept in terms of its name, a concept definition, and a concept explanation. The concept name goes into the index. The concept definition is shown in slide view. The concept explanation is, together with the concept definition, shown in the two other views

XML Attributes
Required: *
Default values: red
idCDATAA unique id within the enclosing note-page clause that allows us to address the concept
concept-name *CDATAThe name of the concept. Instances of this string is emphasized in the concept definition
annotations(unfold-before | unfold-after | keep | merge | ignore)Cf. common attribute explanations

XML content model
(main-text,annotation?)

See also
Enclosing formconcept-list    
Related clauseindex-words    
Meta exampleexample with access to the underlying note-page form


quotation


Example form
(quotation quotation-text quotation-comment)

Description
Defines a quotation, which is presented within quote characters. The second parameter is optional

XML Attributes
Required: *
Default values: red
idCDATACf. common attribute explanations
marginCDATACf. common attribute explanations
margin-leftCDATACf. common attribute explanations
margin-rightCDATACf. common attribute explanations
margin-bottomCDATACf. common attribute explanations
margin-topCDATACf. common attribute explanations
drop(true | false)Cf. common attribute explanations
annotations(unfold-before | unfold-after | keep | merge | ignore)Cf. common attribute explanations

XML content model
(main-text,annotation?)

See also
Meta exampleexample with access to the underlying note-page form
Surrounding clausesnote-page    


image


Example form
(image 'src "image-file-name" (main-text "image caption"))

Description
Inserts an image (gif, jpg, ...) from an external file. Image files must be located in the graphics directory. A downsized version must be located in graphics/small.

XML Attributes
Required: *
Default values: red
idCDATACf. common attribute explanations
marginCDATACf. common attribute explanations
margin-leftCDATACf. common attribute explanations
margin-rightCDATACf. common attribute explanations
margin-bottomCDATACf. common attribute explanations
margin-topCDATACf. common attribute explanations
drop(true | false)Cf. common attribute explanations
src *CDATAthe name of the image file (as located in the graphics and graphics/small directories). Include file extension.
alignment(vertical | horizontal)if the caption (main-text) is shown in slide view, this attribute tell how the image and the text is alligned with each other. In simple cases, this attribute can be igored together with first and second.
first(picture | text)tells whether the text or picture comes first (top or left)
second(picture | text)tells whether the text of picture comes second (bottom or right)

XML content model
(main-text)

See also
Meta exampleexample with access to the underlying note-page form
Surrounding clausesnote-page    
Related clausesvg-image    image-series    

Note
Notice that all images must be stored in a directory named graphics which is a subdirectory of the catalogue in which the generated html files reside. The graphics directory, in turn, must have a sub directory called small in which a smaller version of all images reside. This is in order to ensure good reduction of images in the annotated slide view and in the lecture note view


svg-image


Example form
(svg-image 'src "svg-file" 'width "w" 'height "h" (main-text "image caption"))

Description
Inserts an SVG image from an external file. The SVG image files must be located in the graphics directory. No downsized version in graphics/small is necessary, nor possible.

XML Attributes
Required: *
Default values: red
idCDATACf. common attribute explanations
marginCDATACf. common attribute explanations
margin-leftCDATACf. common attribute explanations
margin-rightCDATACf. common attribute explanations
margin-bottomCDATACf. common attribute explanations
margin-topCDATACf. common attribute explanations
drop(true | false)Cf. common attribute explanations
width *CDATAThe preferred width of the image in pixels - a number
height *CDATAThe preferred height of the image in pixels - a number
src *CDATAthe name of the image file (as located in the graphics and graphics/small directories). Include file extension.

XML content model
(main-text)

See also
Meta exampleexample with access to the underlying note-page form
Surrounding clausesnote-page    
Related clauseimage    

Note
Notice that svg images, like gif and jpg images, must be stored in a directory named graphics which is a subdirectory of the catalogue in which the generated html files reside. Contrary to gif and jpg images, SVG images scale in an elegant way. Therefore it is only necessary to define the image in the graphics directory (and not also in graphics/small).


flash-image


Example form
(flasg-image 'src "flash-file" 'width "w" 'height "h" (main-text "image caption"))

Description
Inserts a Flash image from an external file. The Flash image files must be located in the graphics directory. No downsized version in graphics/small is necessary, nor possible.

XML Attributes
Required: *
Default values: red
idCDATACf. common attribute explanations
marginCDATACf. common attribute explanations
margin-leftCDATACf. common attribute explanations
margin-rightCDATACf. common attribute explanations
margin-bottomCDATACf. common attribute explanations
margin-topCDATACf. common attribute explanations
drop(true | false)Cf. common attribute explanations
width *CDATAThe preferred width of the image in pixels - a number
height *CDATAThe preferred height of the image in pixels - a number
src *CDATAthe name of the image file (as located in the graphics and graphics/small directories). Include file extension.

XML content model
(main-text)

See also
Surrounding clausesnote-page    
Related clauseimage    svg-image    

Note
Notice that flash images, like gif, jpg, and SVG images, must be stored in a directory named graphics which is a subdirectory of the catalogue in which the generated html files reside. Flash images scale like SVG, and therefore it is only necessary to define the image in the graphics directory (and not also in graphics/small). The extension of flash images is assumed to be 'swf'


slide-image


Example form
(slide-image filename)

Description
Show an image (gif, jpg, ...) in slide view and in the annotated slide view. The note page view is not affected. This clause is useful to duplicate an already shown picture in a slide. The first occurence of the picture is shown via the image clause

XML Attributes
Required: *
Default values: red
idCDATACf. common attribute explanations
marginCDATACf. common attribute explanations
margin-leftCDATACf. common attribute explanations
margin-rightCDATACf. common attribute explanations
margin-bottomCDATACf. common attribute explanations
margin-topCDATACf. common attribute explanations
drop(true | false)Cf. common attribute explanations
src *CDATAthe name of the image file (as located in the graphics and graphics/small directories). Include file extension.

XML content model
EMPTY

See also
Meta exampleexample with access to the underlying note-page form
Surrounding clausesnote-page    
Related clausesimage    image-series    

Note
This clause is much simpler, and less important than image. It's sole purpose is duplication of already shown images


image-series


Example form
(image-series 'title "Title of series" (image-series-item 'src "file-name" "caption") ...)

Description
Defines a series of images, which may define a number of steps. Each step can be explained separately via the caption. The slide-mode and book-mode attributes controls how to show the series in the slide view and the aggregated view respectively.

XML Attributes
Required: *
Default values: red
idCDATACf. common attribute explanations
marginCDATACf. common attribute explanations
margin-leftCDATACf. common attribute explanations
margin-rightCDATACf. common attribute explanations
margin-bottomCDATACf. common attribute explanations
margin-topCDATACf. common attribute explanations
drop(true | false)Cf. common attribute explanations
title *CDATAThe caption of the entire series of images
slide-mode(inline | external)How to show the image series in the slide view. With external, we link to a series of pages. With inline, the whole series is shown one after the other on the slide page.
book-mode(inline | external)How to show the image series in the aggregated view. With external, we link to a series of pages. With inline, the whole series is shown one after the other on the slide page.

XML content model
(image-series-item)*

See also
Meta exampleexample with access to the underlying note-page form
Related clausesimage    slide-image    
Surrounding clausesnote-page    

Note
Tip: The most useful configuration of slide-mode/bookmode is '(external/inline) because we in that way use minimal space on slides. In this configuration, the full image series is shown together in the aggreaged view


image-series-item


Example form
(image-series-item 'src "image-file" "caption")

Description
The items of an image-series

XML Attributes
Required: *
Default values: red
src *CDATAthe name of the image file (as located in the graphics and graphics/small directories). Include file extension.

XML content model
(#PCDATA)

See also
Enclosing formimage-series    


cross-references


Example form
(cross-references list-of-references)

Description
Define a number of cross references to other material. The references may be to Internet materials, to other locations in the current collection of lecture notes, to BibTex references, or to off materials

XML Attributes
Required: *
Default values: red
idCDATACf. common attribute explanations
marginCDATACf. common attribute explanations
margin-leftCDATACf. common attribute explanations
margin-rightCDATACf. common attribute explanations
margin-bottomCDATACf. common attribute explanations
margin-topCDATACf. common attribute explanations
drop(true | false)Cf. common attribute explanations

XML content model
(internet-reference | note-reference | informal-reference | bibtex-reference)*

See also
Meta exampleexample with access to the underlying note-page form
Constituent clausesnote-reference    internet-reference    informal-reference    bibtex-reference    
See alsoslide-url    note-url    book-url    exercise-formulation-url    exercise-formulation-url-given-id    exercise-solution-url    
Surrounding clausesnote-page    


note-reference


Example form
(note-reference 'lecture-id "lecture-id" 'page-id "page-id" (main-text "Reference anchor text"))

Description
Describes a reference to another part (possibly in another section) of the current lecture notes. It can be a page in this chapter, or a page in a sibling chapter

XML Attributes
Required: *
Default values: red
idCDATACf. common attribute explanations
lecture-id *CDATAThe id of LENO lecture. The corresponds to the proper file name of a LAML file.
page-id *CDATAThe id of a page. This corresponds to the value of a page-note id attribute

XML content model
(main-text,location-hints?)

See also
Meta exampleexample with access to the underlying note-page form
Enclosing clausecross-references    
Related clausesinternet-reference    informal-reference    bibtex-reference    
About location hintslocation-hints    


internet-reference


Form
(internet-reference (quote href) url (main-text Reference anchor text))

Description
Defines a reference to an Internet resource addressed by means of an URL

XML Attributes
Required: *
Default values: red
idCDATACf. common attribute explanations
href *CDATAThe URL of the internet reference
targetCDATAThe target window of the reference. Affects the window in which the target is displayed. Corresponds to the HTML attribute of the same name.

XML content model
(main-text,location-hints?)

See also
Meta exampleexample with access to the underlying note-page form
Enclosing clausecross-references    
Related clausesnote-reference    informal-reference    
Description of Scheme suffixleno-front-matters    
About location hintslocation-hints    

Note
It is often very useful to generate URLs via Scheme functions. This is the case if several references are made to information located at the same server and/or directory. In that way only the function needs redefintion in case we want a set of internet references to be moved. Such URL functions should be located in the Scheme suffix file, as described in the leno front matters clause


bibtex-reference


Example form
(bibtex-reference 'key "key")

Description
Defines a reference to a bibtex item. Bibtex is the LaTeX formalism for definition of bibliographic information. In order to use bibtex references in the material you must define a list of bibtex parsed files. Currently, this is done via the Scheme suffix file, in the LENO front matters clause. In the Scheme suffix file, define the variable bibtex-files to a list of absolute file paths to LAML parsed bibtex files.

XML Attributes
Required: *
Default values: red
key *CDATAA bibtex key in one of the involved bibtex files. A key identifies a bibtex record uniquely.

XML content model
(location-hints?)

See also
Meta exampleexample with access to the underlying note-page form
Enclosing clausecross-references    
Related clausesnote-reference    informal-reference    internet-reference    
Description of Scheme suffixleno-front-matters    
About location hintslocation-hints    


informal-reference


Form
(informal-reference anchor-text reference-text . location-hints)

Description
Defines a reference to an off line resource, such that a paper or a book

XML Attributes
Required: *
Default values: red
idCDATACf. common attribute explanations
title *CDATAThe title of the informal reference

XML content model
(main-text,location-hints?)

See also
Meta exampleexample with access to the underlying note-page form
Enclosing clausecross-references    
Related clausesnote-reference    internet-reference    
About location hintslocation-hints    

Note
The informal reference is not really very useful any more. Use bibtex-reference for non-web materials.


location-hints


Example form
(location-hints (hint "text") ...)

Description
A location hint of a cross reference item. A location hint gives the reader a hint on the location of the reference, (such as local, cd, net, etc). In order to use location hints you should define the function cross-reference-location-hints

XML Attributes

XML content model
(hint)+

See also
Enclosing clausenote-reference    internet-reference    bibtex-reference    informal-reference    
Related Scheme functioncross-reference-location-hints    


hint


Example form
(hint "text")

Description
A hint item of a location-hints clause

XML Attributes

XML content model
(#PCDATA)

See also
Enclosing clauselocation-hints    


syntax


Example form
(syntax (main-text "syntax-rule") (annotation "explanation"))

Description
Defines a syntax description in terms of a syntax rule and an explanation

XML Attributes
Required: *
Default values: red
idCDATACf. common attribute explanations
marginCDATACf. common attribute explanations
margin-leftCDATACf. common attribute explanations
margin-rightCDATACf. common attribute explanations
margin-bottomCDATACf. common attribute explanations
margin-topCDATACf. common attribute explanations
drop(true | false)Cf. common attribute explanations
annotations(unfold-before | unfold-after | keep | merge | ignore)Cf. common attribute explanations

XML content model
(main-text,annotation?)

See also
Meta exampleexample with access to the underlying note-page form
Surrounding clausesnote-page    

Note
It is often most convenient to read the syntax-rule string from an external file. The meta example referred to above shows an example. The function read-text-file is useful for reading a text from on a textfile. Similarly, the function read-text-file-between-marks is useful for reading a substring from an external textfile. In order to decorate the syntax-rule with fonting and coloring the function colorize-substrings is useful.


source-program


Example form
(source-program 'src "file" 'from-mark "start" 'to-mark "end" 'slide-mode "mode" 'book-mode "mode" (color-decorations ...) (main-text "caption"))

Description
Shows a source program (or a similar text of an artificial language) in 'verbatim style'. The source program text is taken from an external file. It is possible to extract a substring from the external file via the from-mark and to-mark attributes. If no from-mark and to-mark attributes are given, show the entire file. Substrings of the extracted source program (part) can be decorated with colors and font-faces be use of a color-decorations subclause.

XML Attributes
Required: *
Default values: red
idCDATACf. common attribute explanations
marginCDATACf. common attribute explanations
margin-leftCDATACf. common attribute explanations
margin-rightCDATACf. common attribute explanations
margin-bottomCDATACf. common attribute explanations
margin-topCDATACf. common attribute explanations
drop(true | false)Cf. common attribute explanations
src *CDATAThe name of the source file to include (path relative to the note source directory, in which the LAML leno file is located.
from-markCDATAA substring of the source file, at which to begin the source extract
to-markCDATAA substring of the source file, at which to end the source extract
slide-mode(inline | external)The mode of presentation in slide view and note-view
book-mode(inline | external)The mode of presentation in the aggregated view
background-colorCDATAThe background color of the source program. There exists 16 color constants which can be used, such as red, green, blue, yellow, etc. In addition, the Scheme function (rgb-color-encoding r g b) is useful. It is defined in the LAML Color library.
indexed(true | false)Does this source program appear in the source program index?
index-titleCDATAIf this source program is indexed, the title of the source program, as it appears in the index, becomes value of this attribute. Defaults to the first sentence of the main-text constituent of the source-program element.

XML content model
(color-decorations?,main-text,annotation?)

See also
Meta exampleexample with access to the underlying note-page form
Surrounding clausesnote-page    

Note
It will be very useful to consult the meta examples regarding the source-program clause. The meta examples show how portions of the laml source file can be included in its own html presentation. The example also illustrate various options for use of colors.


color-decorations


Example form
(color-decorations (color-decoration ...) ...)

Description
The color decorations of a source program

XML Attributes

XML content model
(color-decoration)*

See also
Meta exampleexample with access to the underlying note-page form
Constituent formsource-program    


color-decoration


Example form
(color-decoration attributes...)

Description
The color decoration of a color-decorations form

XML Attributes
Required: *
Default values: red
from-mark *CDATAThe substring at which this color decoration starts. The from-mark is included.
to-mark *CDATAThe substring at which this color decoration ens. The to-mark is included.
color *CDATAThe color to use. There exists 16 color constants which can be used, such as red, green, blue, yellow, etc. In addition, the Scheme function (rgb-color-encoding r g b) is useful. It is defined in the LAML Color library.
face(bold | italic | typewriter | underlined | plain)The font face to use
repetitionCDATAHow many times to apply the color decorations. The default repetition is 1.

XML content model
EMPTY

See also
Meta exampleexample with access to the underlying note-page form
Constituent formcolor-decorations    


exercise


Form
(exercise (quote id) id (quote title) title (formulation exercise-text) (solution solution-text))

Description
Defines an exercise in terms of an id, a title, a formulation and an optional solution. A link will be provided to a separate page where the title and formulation appear. The exercise solution is optional. The Leno front matters attribute exercise model is important for the actual handling of the exercise solution.

XML Attributes
Required: *
Default values: red
id *CDATAThe mandatory id of the exercise
title *CDATAThe title of the exercise
rankCDATAThe rank of the exercise. A numeric field. A low rank means an easy or low priority exercise. We use a star notation (**) to present the exercise rank

XML content model
(formulation,solution?)

See also
References toexercise-formulation-url    exercise-formulation-url-given-id    exercise-solution-url    
See alsoexercise-model    
Meta exampleexample with access to the underlying note-page form
Enclosing formleno-front-matters    
Surrounding clausesnote-page    


formulation


Example form
(formulation exercise-formulation-text)

Description
Defines the exercise formulation text

XML Attributes

XML content model
(#PCDATA)

See also
Enclosing formexercise    
Meta exampleexample with access to the underlying note-page form
Reference toexercise-formulation-url    exercise-formulation-url-given-id    


solution


Form
(solution exercise-solution-text)

Description
Defines the exercise solution text

XML Attributes

XML content model
(#PCDATA)

See also
Enclosing formexercise    
Meta exampleexample with access to the underlying note-page form
Reference toexercise-solution-url    


tabular


Example form
(tabular 'border "int" (row-widths (cell "..") ...) (row (cell "..") ...) ... (annotation "comment"))

Description
Defines a tabular presentation of table-contents. A tabular clause is defined in terms of border, a row-widths clause which defines the width of the columns (!!), and the individual rows.

XML Attributes
Required: *
Default values: red
idCDATACf. common attribute explanations
marginCDATACf. common attribute explanations
margin-leftCDATACf. common attribute explanations
margin-rightCDATACf. common attribute explanations
margin-bottomCDATACf. common attribute explanations
margin-topCDATACf. common attribute explanations
drop(true | false)Cf. common attribute explanations
borderCDATAThe table border. An integer.
annotations(unfold-before | unfold-after | keep | merge | ignore)Cf. common attribute explanations

XML content model
(row-widths,row*,annotation?)

See also
Meta exampleexample with access to the underlying note-page form
Constituent clausesrow-widths    row    cell    annotation    
Surrounding clausenote-page    

Note
This clause resembles the set of Scheme table functions, on which much of the LAML formatting work is based


row-widths


Example form
(row-widths (cell "number") ...)

Description
The definition of the row width list of a LENO table

XML Attributes

XML content model
(cell)*

See also
Enclosing formtabular    


row


Example form
(row (cell "text") ...)

Description
The definition of a row of a LENO table

XML Attributes

XML content model
(cell)*

See also
Enclosing formtabular    


cell


Example form
(cell "text-or-number")

Description
The definition of a cell in a row or row-width form of a LENO table

XML Attributes

XML content model
(#PCDATA)

See also
Context formrow    row-widths    


applet-program


Form
(applet-program class-file codebase explanation width height)

Description
Defines and inserts a Java applet

XML Attributes
Required: *
Default values: red
idCDATACf. common attribute explanations
marginCDATACf. common attribute explanations
margin-leftCDATACf. common attribute explanations
margin-rightCDATACf. common attribute explanations
margin-bottomCDATACf. common attribute explanations
margin-topCDATACf. common attribute explanations
drop(true | false)Cf. common attribute explanations
code *CDATAthe name of the file where the applet is located. Must include the class file extension. The location of the file is relative to codebase (the next parameter). The type of this parameter is string
code-base *CDATAthe directory or url in which the class file is located. The code base is taken relative to the directory in which the generated html files reside
height *CDATAan integer describing the height of the applet (integer, in pixels)
width *CDATAan integer describing the widht of the applet (integer, in pixels)

XML content model
(main-text,applet-param*)

See also
Meta exampleexample with access to the underlying note-page form
Surrounding clausenote-page    


synopsis


Example form
(synopsis (synopsis-item (main-text "item") (annotation "annotation")) ...)

Description
Defines a synopsis in terms of a list of synopsis item elements. A synopsis is useful to summarize a number of points in a graphically distinguished manner

XML Attributes
Required: *
Default values: red
idCDATACf. common attribute explanations
marginCDATACf. common attribute explanations
margin-leftCDATACf. common attribute explanations
margin-rightCDATACf. common attribute explanations
margin-bottomCDATACf. common attribute explanations
margin-topCDATACf. common attribute explanations
drop(true | false)Cf. common attribute explanations

XML content model
(synopsis-item)*

See also
Meta exampleexample with access to the underlying note-page form
Constituent clausesynopsis-item    


synopsis-item


Example form
(synopsis-item (main-text "item") (annotation "annotation"))

Description
Defines a single item in a synopsis clause

XML Attributes
Required: *
Default values: red
idCDATACf. common attribute explanations
annotations(unfold-before | unfold-after | keep | merge | ignore)Cf. common attribute explanations

XML content model
(main-text,annotation?)

See also
Meta exampleexample with access to the underlying note-page form
Enclosing clausesynopsis    


quiz


Example form
(quiz (question "question") (answers (answer ...) ...))

Description

Define a contribution to a quiz about the current lecture. A quiz clause does not add anything to the note-page to which it belongs. Rather it adds to an internal quiz structure (in the internal directory, which can be used by a WWW quiz service). In order to use quizes the Leno front matters attribute quiz-support must be true.

Quizzes are managed by a separate side server program, which is not part of the LAML distribution. As of now, the quiz facility can only be used at www.cs.auc.dk because it depends on additional software, including server side checking software. You will find the link to the all quiz elements of the lecutere on the lecture overview page ('Quiz about this lecture').

As an aside, the use of the quizzes in LENO requires that the function course-absolute-url is defined. Define it in the Scheme suffix file.


XML Attributes
Required: *
Default values: red
idCDATACf. common attribute explanations
marginCDATACf. common attribute explanations
margin-leftCDATACf. common attribute explanations
margin-rightCDATACf. common attribute explanations
margin-bottomCDATACf. common attribute explanations
margin-topCDATACf. common attribute explanations
drop(true | false)Cf. common attribute explanations

XML content model
(question,answers)

See also
Meta exampleexample with access to the underlying note-page form
Enclosing formleno-front-matters    
Constituent clausesquestion    answers    answer    
Surrounding clausenote-page    
Necessary function course-absolute-url    


question


Example form
(question "question-formulation")

Description
Defines the question of a quiz clause

XML Attributes

XML content model
(#PCDATA)

See also
Meta exampleexample with access to the underlying note-page form
Surrounding clausequiz    
Sibling clauseanswers    


answers


Example form
(answers (answer 'correctness "percent-number" (answer-possibility "answer") (answer-clarification "clarification")) ...)

Description
Define a number of possible answers of a quiz clause

XML Attributes

XML content model
(answer)*

See also
Meta exampleexample with access to the underlying note-page form
Surrounding clausequiz    
Sibling clausequestion    


answer


Form
(answer (quote correctness) percent-number (answer-possibility answer) (answer-clarification clarification))

Description
Define a single answering possibility side by side with other possible answers. Clarifiation: An explanation of why - or why not - the answer possibility is right or wrong.

XML Attributes
Required: *
Default values: red
correctness *CDATAA measure of correctness. A number between 0 and 100. 0 means wrong, 100 means correct. Numbers in between 0 and 100 means partially correct.

XML content model
(answer-possibility,answer-clarification)

See also
Meta exampleexample with access to the underlying note-page form
Surrounding clausesanswers    quiz    


answer-possibility


Example form
(answer-possibility "answer")

Description
The actual answer of an answer form

XML Attributes

XML content model
(#PCDATA)

See also
Enclosing formanswer    


answer-clarification


Example form
(answer-clarification "answer")

Description
The explanation given if the user choses a particular answer in a quiz. This explains why the sibling answer possibility is right or wrong

XML Attributes

XML content model
(#PCDATA)

See also
Meta exampleexample with access to the underlying note-page form
Enclosing formanswer    


show-and-speak


Example form
(show-and-speak . show-and-speak-parts)

Description

Define a number of 'show and speak' clause of the surrounding note page. A show and speak clause controls the speaker's sound and the sequencing in an automatically progressing slide show.

In order to enable 'show and speak' the attribute show-and-speak of the leno-front-matters element should be turned to true


XML Attributes
Required: *
Default values: red
idCDATACf. common attribute explanations
marginCDATACf. common attribute explanations
margin-leftCDATACf. common attribute explanations
margin-rightCDATACf. common attribute explanations
margin-bottomCDATACf. common attribute explanations
margin-topCDATACf. common attribute explanations
drop(true | false)Cf. common attribute explanations

XML content model
(slide-part | program-part | image-series-part)*

See also
Meta exampleexample with access to the underlying note-page form
Constituent clausesslide-part    program-part    image-series-part    
The show-and-speak attributeleno-front-matters    
About show and speakSECTION12    
Surrounding clausenote-page    


slide-part


Form
(slide-part (quote number) n (quote seconds) sec)

Description
Define a slide-part of a surrounding show and speak clause. A slide-part asks for presentation of the slide for a certain amount of time.

XML Attributes
Required: *
Default values: red
number *CDATAA slide page can be show a number of time an an automatically progressing slide show. Each time there will be a different speaker sound related to the slide. This parameter defines the number associated with this presentation.
seconds *CDATAThe number of seconds (an integer) to show this page. As a convention, seconds = 0 means that there is no sound defined. Such as page is shown additional-showing-time seconds (a front-matters attribute).

XML content model
EMPTY

See also
Meta exampleexample with access to the underlying note-page form
Sibling clausesprogram-part    image-series-part    
Surrounding clauseshow-and-speak    


program-part


Example form
(program-part 'number "n" 'seconds "sec")

Description
Define a program-part of the surrounding show and speak clause. A program-part presents one of the external source programs on this page.

XML Attributes
Required: *
Default values: red
number *CDATAA program page can be show a number of time an an automatically progressing slide show. Each time there will be a different speaker sound related to the slide. This parameter defines the number associated with this presentation.
seconds *CDATACf. common attribute explanations

XML content model
EMPTY

See also
Meta exampleexample with access to the underlying note-page form
Sibling clausesslide-part    image-series-part    
Surrounding clauseshow-and-speak    


image-series-part


Form
(image-series-part (quote number) image-part)

Description
Define an image-series part of the surrounding show and speak clause. An image-series-part presents one of the image-series on this page.

XML Attributes
Required: *
Default values: red
number *CDATAA slide page can be show a number of time an an automatically progressing slide show. Each time there will be a different speaker sound related to the slide. This parameter defines the number associated with this presentation.

XML content model
(image-part)*

See also
Meta exampleexample with access to the underlying note-page form
Sibling clausesslide-part    program-part    
Surrounding clauseshow-and-speak    


image-part


Example form
(image-part 'seconds "sec")

Description
The individual item which describes how many seconds to show an image in an image series. Relates to show-and-speak.

XML Attributes
Required: *
Default values: red
seconds *CDATAThe number of seconds (an integer) to show this page. As a convention, seconds = 0 means that there is no sound defined. Such as page is shown additional-showing-time seconds (a front-matters attribute).

XML content model
EMPTY

See also
Meta exampleexample with access to the underlying note-page form
Enclosing formimage-series-part    
Related clausesshow-and-speak    


lecturer-photos


Example form
(lecturer-photos 'start-number "n" 'number-of-photos "m")

Description
Present a number of lecturer photos on the current note page. The photos are only shown in the automatically progressing 'show-and-speak' slide show (slide view only). This clause depends on the list lecturer-photo-list, which must enumerate the available photos. Defined it in the Scheme suffix file. The lecturer photos must be organized in the sub-directory lecturer-photos in the lecture note source directory (the directory in which your lecture laml files are found). The photos will be copied to the html destination directory as part of LENO processing.

XML Attributes
Required: *
Default values: red
idCDATACf. common attribute explanations
marginCDATACf. common attribute explanations
margin-leftCDATACf. common attribute explanations
margin-rightCDATACf. common attribute explanations
margin-bottomCDATACf. common attribute explanations
margin-topCDATACf. common attribute explanations
drop(true | false)Cf. common attribute explanations
start-number *CDATAThe first photo to show relative to the enumeration in lecturer-photo-list. The first photo is number 1
number-of-photos *CDATAThe number of photos to show

XML content model
EMPTY

See also
Meta exampleexample with access to the underlying note-page form
Related clauselecturer-photos-and-logo    
Surrounding clausenote-page    


lecturer-photos-and-logo


Example form
(lecturer-photos-and-logo 'start-number "n")

Description
Show two lecturer photos and a logo. The photos are only shown in the automatically progressing 'show-and-speak' slide show (slide view only). The parameter determines which photos to show. The logo is a gif file organized together with the other images which are important for LENO. You should define your logo in the images directory of your lecture note directory (the note specific images files). The Aalborg University logo comes together with LENO, however, so it is automatically there. The logo image must have the name 'logo.gif'. In case you want to link from the logo, define the variable logo-url to an appropriate WWW address.

XML Attributes
Required: *
Default values: red
idCDATACf. common attribute explanations
marginCDATACf. common attribute explanations
margin-leftCDATACf. common attribute explanations
margin-rightCDATACf. common attribute explanations
margin-bottomCDATACf. common attribute explanations
margin-topCDATACf. common attribute explanations
drop(true | false)Cf. common attribute explanations
start-number *CDATAThe first photo to show relative to the enumeration in lecturer-photo-list. The first photo is number 1

XML content model
EMPTY

See also
Meta exampleexample with access to the underlying note-page form
Related clause with necessary informationlecturer-photos    
Surrounding clausenote-page    


elucidate


Form
(elucidate description (quote href) url (quote target) target)

Description
Insert a link to an elucidator (accompanied with an eluciator icon) which explains a program. Only available for Scheme and Java.

XML Attributes
Required: *
Default values: red
idCDATACf. common attribute explanations
marginCDATACf. common attribute explanations
margin-leftCDATACf. common attribute explanations
margin-rightCDATACf. common attribute explanations
margin-bottomCDATACf. common attribute explanations
margin-topCDATACf. common attribute explanations
drop(true | false)Cf. common attribute explanations
href *CDATAThe url with the WWW address of the top level elucidator page.
targetCDATADefines the anchor target. Defaults to the value of elucidator-default-target. Similar to the HTML attribute of the same name, as used in the a (anchor) element.

XML content model
(#PCDATA)

See also
Meta exampleexample with access to the underlying note-page form
Enclosing formnote-page    


splice-page-with


Example form
(splice-page-with 'lecture-id "lid" 'page-id "pid" (leno-elements (element-name "n") ...))

Description
Splice the elements of another page from a specified lecture-id including certain kinds of elements. With this, it is possible to include selected elements from another page without copying its elements. Only the type of elements mentioned in tag-list are included. If the optional id parameter is supplied, only include an element (of the given type) with the given id. In practice, this implies that only a single element is included (because ids of subclauses have to be unique in a note page). In case a certain kind of element appears more than once, all occurrences are included. Only pages from the current lecture or a sibling lecture can be include. In other words, you cannot address pages in lectures located in other directories.

XML Attributes
Required: *
Default values: red
idCDATAThe id of an element on the specified note page (optional parameter)
marginCDATACf. common attribute explanations
margin-leftCDATACf. common attribute explanations
margin-rightCDATACf. common attribute explanations
margin-bottomCDATACf. common attribute explanations
margin-topCDATACf. common attribute explanations
drop(true | false)Cf. common attribute explanations
lecture-id *CDATAThe lecture id of the lecture from which to splice a page - a symbol
page-id *CDATAThe page id of the page from which to splice
element-idCDATACf. common attribute explanations

XML content model
(leno-elements)

See also
Meta exampleexample with access to the underlying note-page form
Related clausesplice-page-without    
Surrounding clausenote-page    

Note
The internal lsp representation of the lecture contains the splice-page-with and splice-page-without clauses in contrast to the spliced elements. It is not possible to splice (part of) a page into itself recursively (you get an error). Mutual splicing of two pages into each other should be avoided - the result is undefined and it will break LENO. (We could easily support mutual recursive splicing by a very minial change in the information saved on the -.lsp file, but it would cause confusing results - ever expanding pages - which are not interesting for practical purposes).


splice-page-without


Form
(splice-page-without tag-list lecture-id page-id)

Description
Splice the elements of another page from a specified lecture-id excluding certain types of elements. With this, it is possible to include selected elements from another page without copying its elements. The type of elements mentioned in tag-list are not included; All others than the tags in tag-list are incuded. Only pages from the current lecture or a sibling lecture can be include. In other words, you cannot address pages in lectures located in other directories.

XML Attributes
Required: *
Default values: red
idCDATACf. common attribute explanations
marginCDATACf. common attribute explanations
margin-leftCDATACf. common attribute explanations
margin-rightCDATACf. common attribute explanations
margin-bottomCDATACf. common attribute explanations
margin-topCDATACf. common attribute explanations
drop(true | false)Cf. common attribute explanations
lecture-id *CDATAThe lecture id of the lecture from which to splice a page - a symbol
page-id *CDATAThe page id of the page from which to splice

XML content model
(leno-elements)

See also
Meta exampleexample with access to the underlying note-page form
Related clausesplice-page-with    
See also note ofsplice-page-with    
Surrounding clausenote-page    


leno-elements


Example form
(leno-elements (element-name "n1") ...)

Description
An enumeration (or list) of Leno elements to include or exclude in the clauses splice-page-with and splice-page-without.

XML Attributes

XML content model
(element-name)*

See also
Meta exampleexample with access to the underlying note-page form
Enclosing formssplice-page-with    splice-page-without    


element-name


Example form
(element-name "name")

Description
A list item in leno-elements

XML Attributes

XML content model
(#PCDATA)

See also
Meta exampleexample with access to the underlying note-page form
Enclosing formleno-elements    
Context formssplice-page-with    splice-page-without    


side-track


Example form
(side-track (main-text "side track caption") (annotation "annotation") 'track-lecture-id "lid")

Description
Define a side track. A side track is meant to explain a given topic in some additional detail. In LENO terminology, a side track is a lecture of its own. This lecture is dedicated to the side track.

XML Attributes
Required: *
Default values: red
idCDATACf. common attribute explanations
marginCDATACf. common attribute explanations
margin-leftCDATACf. common attribute explanations
margin-rightCDATACf. common attribute explanations
margin-bottomCDATACf. common attribute explanations
margin-topCDATACf. common attribute explanations
drop(true | false)Cf. common attribute explanations
track-lecture-id *CDATAThe lecture id of the side track lecture
annotations(unfold-before | unfold-after | keep | merge | ignore)Cf. common attribute explanations

XML content model
(main-text,annotation?)

See also
Meta exampleexample with access to the underlying note-page form
Enclosing formnote-page    


slide-space


Example form
(slide-space)

Description
Add some vertical space on in slide view only. This element is now obsolete. It is much better to use the top-margin attribute which applies to all note page sub elements

XML Attributes
Required: *
Default values: red
idCDATACf. common attribute explanations
marginCDATACf. common attribute explanations
margin-leftCDATACf. common attribute explanations
margin-rightCDATACf. common attribute explanations
margin-bottomCDATACf. common attribute explanations
margin-topCDATACf. common attribute explanations
drop(true | false)Cf. common attribute explanations
amountCDATACf. common attribute explanations

XML content model
EMPTY

See also
Meta exampleexample with access to the underlying note-page form
Enclosing formnote-page    


 

8.   ADDITIONAL SCHEME LEVEL FUNCTIONALITY
In this section we describe additional LENO functionality at the Scheme level. Use of these expressions the Scheme prefix and Scheme suffix files, as referred to by the attributes scheme-prefix and scheme-suffix of the leno-front-matters clause. If nothing is mentioned, the expressions should be used in the scheme-suffix file.


note-specific-image-files


Form
note-specific-image-files

Description
This variable is a list of image file names (without path, with extension such a gif) used specifically in these notes. The images must reside in the images directory of note-source-directory. This list of files is copied automatically to the html directory during processing together with a set of general images files, defined together with the LENO software. In simple notes, just define this variable to the empty list: '()

Note
Use a define form to set this variable. Define it in the Scheme suffix files if you need it. If not, the default value is the empty list.


notes-title


Form
notes-title

Description
A variable which holds the title of the entire set of lecture notes (a string). You must define this variable in the Scheme prefix file.

Note
Use the Scheme define form to define the value of the variable: (define notes-title ...)


lecture-sections


Form
lecture-sections

Description
A variable which keep track of the names of all lecture chapters in these lecture notes. As such, this variable holds very important bookkeeping information. The value of the variable must be a list of strings. In other words, it must be a list of lecture-chapter names. Each chapter name corresponds to the proper name of a LAML file, which represents a LENO lecture. This variable must always be defined in the Scheme prefix file if you work with materials that consist of more than one chapter (lecture).

Note
Use the Scheme define form to define the value of the variable: (define lecture-sections ...)


current-lecture


Form
current-lecture

Description
An integer variable defining the chapter number of the last lecture to be generated. The number is relative to the lecture-sections list (see above). If current-lecture is 1, only the first lecture-chapter is taken into consideration. This variable is useful if the collection consist of, say. 10 chapters, but we currently working at chapter 3. In that case, the value of current-lecture is 3. Lecuture 4 - 10 are not processed. If used, this variable must be defined in the Scheme prefix file.

Note
Use the Scheme define form to define the value of the variable: (define current-lecture ...)


cross-reference-location-hints


Form
(cross-reference-location-hints location-hints)

Description
A function which may return a hint of the location of a cross reference. The parameter is a list of symbols. The function is called by LENO, and its default implementation returns the empty string. You can redefine it to return an arbitrary string, which will be shown as the location hint. We recommend that you return an icon. (Lecture note specific icons can be organized in the graphics subdirectory). This function must be defined in the Scheme suffix file. It is legal always to return the empty string from this function, in which case no location hints will be given.

Parameters
location-lista list of symbols, the first of which is the kind of reference (note-reference, internet-reference, informal-reference, or bibtex-reference). The remaining symbols are the given hints.

See also
cross reference clausescross-references    note-reference    internet-reference    bibtex-reference    informal-reference    

Note
Tip: Use the hint to signal if a note-reference goes to a location before or after the current page. Use a hint to signal if the reference goes to a piece of information on a CD, on the WEB, on the local host, etc.


meta-tag-clauses


Form
(meta-tag-clauses)

Description
Returns meta information about these notes in terms of a list of list. In other words, this function is required to return a list of list. Each inner list must be an even length list of key (symbol) value (string) pairs. Each list generates a single HTML meta tag. It is intended that this function returns the general meta information, such as the charset used, the generator applied, the language used, etc. Page specific meta information can be supplied as parameters to functions such as html:page. This function is, in fact, called by html:page and by html:page-with-keypress-script in the html-v1 library

Note
Must be defined in the Scheme prefix file.


preferred-maximum-filename-length


Form
preferred-maximum-filename-length

Description
The preferred maximum length of file names. The length includes the including extension, but excludes the initial path. This size may be important for CD file systems. A warning is issued if the preferred maxiumum length is exceeded. The type is integer. The default value is 64.

Note
Use the Scheme define form to change the value of the variable: (define preferred-maximum-filename-length ...).


generating-system


Form
(generating-system)

Description
A parameter less function which is supposed to return a string describing the system, which has generated these notes. This information is useful of you use LENO on more than one machine in slightly different contexts. The default implementation returns the empty string (no information)

Note
If needed, define this function in post-notes.scm


relative-source-html-destination-path-fragment


Form
(relative-source-html-destination-path-fragment)

Description
A non-argument function which returns the difference between the note-source-directory and the note destination HTML directory. The default value is "html/". Redefine this function in the Scheme suffix file in case you wish another placement of the destination HTML directory


lecture-title-page?


Form
lecture-title-page?

Description
A variable that controls the generation of a title page and an abstract page.

Note
Use the Scheme define form to change the value of the variable: (define lecture-title-page? ...)


course-absolute-url


Form
(course-absolute-url suffix)

Description
A function which is supposed to return an absoute URL to the a resource in the directory, which this lecture is located.

Parameters
suffixthe last part of the URL, which address a specific file in the 'course directory'

See also
relevant inquiz    


 

9.   SPECIAL SCHEME LEVEL FUNCTIONALITY
In this section you will find a few special Scheme functions. Most users can just ignore these.


course-dir


Form
course-dir

Description
A variable which defines the course directory, in which the course plan files resides.

Note
Define this variable using a Scheme define form.


solution-passwords


Form
solution-passwords

Description
A variable the of which is to define a number of password for exercise solution files. We do not want users to be able to guess the names of solution files. Therefore we can add a component to solution file names, which cannot be guessed: a password component. Such a component is defined pr. lecture. The value of the variable is a list of password entries. A password entry is a cons pair (lecture-id-symbol . password-string). The default value is an empty list, meaning that no passwords are mixed into the solution files.

Note
Define this variable via a Scheme define form in the post-notes.scm


 

10.   LENO EMACS SUPPORT
There is a number of useful Emacs commands that make it easy and conveninent to author LENO material. Most important, perhaps, is the function which help initiate a new set of slides (a single lecture only). This command is called make-lecture-notes.

In Emacs, the Laml menu contains a LENO part, in which all the LENO relevant editor commands are available. This is very useful for newcommers.

The table below lists the other LENO specific Emacs Lisp commands. These will all be available if you have installed the LAML system appropriately. The list is not necessarily complete, but the LAML LENO menu is!

CommandKey bindingEffect
make-lecture-notesnonemake the directory structure of a LENO set of slides. You are prompted for directory and the name of slides. You are adviced to organize each single-chaper slide set in a new directory.
leno-insert-notepagenoneinsert a note-page form in a set of slides
leno-insert-notesectionnoneinsert a note-page form in a set of slides
leno-insert-titlenoneinsert a title form in a note page
leno-insert-itemsC-l C-iinsert an item form in a note page. This command prompts for the number of items at top level, and the number of subitems of each item. A very useful function if you use many items on your slides.
leno-insert-opposingnoneinsert an opposing form in a note page. This command prompts for the number of opposing items.
leno-insert-concept-listnoneinsert a concept-list form in a note page. This command prompts for the number of concepts to define.
leno-insert-synopsisnoneinsert a synopsis form in a note page. This command promps for the number of synopsis items.
leno-insert-titlenoneinsert a title form in a note page
leno-insert-textnoneinsert a text form in a note page
leno-insert-pointC-l C-pinsert a point form in a note page
leno-insert-source-programnoneinsert a source-program form in a note page
leno-insert-imagenoneinsert a title form in a note page
leno-insert-examplenoneinsert an example form in a note page
leno-insert-syntaxnoneinsert a syntax form in a note page
leno-insert-slide-spacenoneinsert a slide-space form in a note page
leno-insert-tabularnoneinsert a tabular form in a note page
leno-insert-note-textnoneinsert a note-text form in a note page
leno-insert-slide-textnoneinsert a slide-text form in a note page
leno-insert-cross-referencesnoneinsert a cross-references form in a note page
leno-insert-internet-referencenoneinsert an internet-reference form in a cross-references form
leno-insert-inforal-referencenoneinsert an informal-reference form in a cross-references form
leno-insert-note-referencenoneinsert a note-reference form in a cross-references form
leno-insert-exercisenoneinsert an exercise form in note page
leno-insert-long-slidenoneinsert a long-slide form in note page
leno-insert-index-wordsnoneinsert an index-words form in note page
leno-insert-image-seriesnoneinsert an image-series form in note page
leno-insert-section-titlenoneinsert a section-titel form in note section page
leno-insert-slide-imagenoneinsert a slide-image form in note page page
leno-insert-applet-programnoneinsert an applet-program form in note page page
leno-insert-quotationnoneinsert a quotation form in note page page

The emacs lisp variable laml-pp-helpful (of type boolean) controls the detailed working of most of the leno-insert-... functions from above. If the value of laml-pp-helpful is t (for true) it shows the roles of the individual constituents. If nil (for false) just empty string placeholders are presented.

The leno-insert-... commands are found in the LENO section of the LAML menu in Emacs.

The variable leno-version controls which version of LENO to use. As the default, the value is xml-in-laml (a symbol). The old version of LENO is supported by the value original (a symbol). You can change leno-version via LAML customization.

Please also notice the following generally useful LAML Emacs commands:

CommandKey bindingEffect
embedC-x C-eEmbeds the current selection into a Lisp form. Handles the necessary string splitting and surrounding concatenation. The variables laml-single-string-approach, smart-word-determination, concatenate-form controls the behavior of the embed command
unembedC-x C-rThe opposite command of embed
splitC-x C-qSplit a string in two pieces
unsplitC-x C-aJoin two strings - the opposite of split.
nestC-x C-nNest a lisp form into another. A generic and generally useful Lisp programming primitive
unnestC-x C-mThe opposite command of nest


 

11.   CROSS REFERENCE SUPPORT
It is often useful and necessary to refer from one piece of LENO information to another. In this section we will document the various cross reference facilities supported by LENO. The functions in this section return URLs to other pages generated by LENO.

Recall the cross-references clause of LENO, the purpose of which is to define cross references to other note pages, or to external material. The cross-references clause is a constituent of a note-page.


slide-url


Form
(slide-url lecture-id slide-id)

Description
Return a URL of particular slide page in a particular lecture

Parameters
lecture-idA symbol which identifies a lecture
slide-idA symbol which identifies a note pages in the lecture - corresponds to the first parameter of note-page

Note
Use this form in an anchor tag, such as the LAML a-tag


note-url


Form
(note-url lecture-id slide-id)

Description
Return a URL of particular note page in a particular lecture

Parameters
lecture-idA symbol which identifies a lecture
slide-idA symbol which identifies a note pages in the lecture - corresponds to the first parameter of note-page

Note
Use this form in an anchor tag, such as the LAML a-tag


book-url


Form
(slide-url lecture-id . slide-id)

Description
Return a URL of particular aggregated lecture. The slide-id parameter is optional. If it is supplied, return a URL to a particular place in the aggregated lecture

Parameters
lecture-idA symbol which identifies a lecture
slide-idA symbol which identifies a note pages in the lecture - corresponds to the first parameter of note-page

Note
Use this form in an anchor tag, such as the first parameter of an LAML a-tag


primary-view-url


Form
(primary-view-url lecture-id slide-id)

Description
Return a URL of particular page in a particular lecture using the designated primary-view

Parameters
lecture-idA symbol which identifies a lecture
slide-idA symbol which identifies a note pages in the lecture - corresponds to the first parameter of note-page

Note
The primary-view is one of the LENO front matters attributes.


exercise-formulation-url


Form
(exercise-formulation-url lecture-id page-id presentation-kind exercise-number)

Description
Return a URL to an exercise formulation in a given lecture, and on a given page. It is possible to return a URL to either the slide formulation or the note formulation of the exercise (depending on the presentation-kind parameter). Exercise-number refers to a particular exercise number on the page. If there is only one exercise on this page, exercise-number will be 1. Notice that this function does not use the exercise-id parameter; Rather it identifies the exercise by means of the lecture, page (slide-id) and which number of exercise on the page.

Parameters
lecture-idA symbol which identifies the lecture
page-idA symbol which identifies a page in a lecture - corresponds to the first parameter of note-page
presentation-kindOne of the symbols 'slide or 'note, giving the kind of presentation addressed by the URL
exercise-numberAn integer giving the number of the exericise to address with the resulting URL

See also
Relevant LENO clausesexercise    formulation    
Similar functionexercise-formulation-url-given-id    

Note
Use this form in an anchor tag, such as the first parameter of an LAML a-tag


exercise-formulation-url-given-id


Form
(exercise-formulation-url-given-id lecture-id exercise-id . presentation-kind)

Description
Return a URL to an exercise formulation identified with exercise-id, located in a particular lecture. Presentation-kind determines the kind of presentation addressed by the URL (optional parameter which defaults to note). This function finds the page and the exercise-number on the page via the internally generated -.exc files. Thus, this function assumes that the -.exc file of lecture-id exists. If not, this function returns "???" and issues a warning.

Preconditions

Parameters
lecture-idA symbol which identifies the lecture
exercise-idA symbol identifying the lecture - correspond to the first parameter of the exercise clause
presentation-kindOne of the symbols 'slide or 'note, giving the kind of presentation addressed by the URL

See also
Relevant LENO clausesexercise    formulation    
Similar functionexercise-formulation-url    

Note
Use this form in an anchor tag, such as the first parameter of an LAML a-tag


exercise-solution-url


Form
(exercise-solution-url lecture-id page-id exercise-number)

Description
Return a URL to an exercise solution in a particular lecture, on a particular page. The URL always addresses a note-size solution - there is no slide style solution page generated. The parameter exericse-number addresses a particular exercise on a note page. If there is only one exercise on the page, exercise-number will be one

Parameters
lecture-idA symbol which identifies the lecture
page-idA symbol which identifies a page in a lecture - corresponds to the first parameter of note-page
exercise-numberAn integer giving the number of the exericise to address with the resulting URL

See also
Relevant LENO clausesexercise    solution    

Note
Use this form in an anchor tag, such as the first parameter of an LAML a-tag


 

12.   SHOW AND SPEAK FUNCTIONALITY
In this section we describe the show and speak functionality of LENO. This facility provides for an automatically progressing lectures with the lecturer's speaker sound.

The LENO clauses related to the facility is described elsewhere. Here we will focus on the practical procedure for recording and arranging the sound clips in reation to a LENO material.

At the overall level, we can observe that the show and speak facility is based on the following:

  1. To each note page there is one or more corresponding sound clips

  2. On each note page we specify the sequencing and timing of the sound clips using a show-and-speak clause

  3. The sound clips are brought to the appropriate sound files by means of a LENO utility tool, found in the xml-in-laml LENO source program directory's util branch.

  4. A number of variables control the show and speak facility: show-and-speak?, default-showing-time, sound-source, default-show-and-speak-clause, speak-url-prefix, and speak-file-prefix. These are all attributes in the leno-front-matters element.

The practical procedure for making and arranging a set of sound files is the following:

  1. Specify the sounds in the leno source, using (show-and-speak ...) clauses

  2. Be sure that (define show-and-speak? #t). This is a leno-front-matter attribute.

  3. Process the lecture with the variable show-and-speak-recording? set to #t. Set in post-notes.scm. This will cause the numbers of the source sound files to appear in the annotated slide view. Using this information it is easy to find out where to locate a given sound clip.

  4. Record the sounds, on files 1.wav, 2.wav, etc. in a subdirectory of the sound dir. We recommend to organize the sounds outside the note source directory, because they are too voluminous.

  5. Move the sound files from its subdirectory up one level to the sound directory. During the moving, the files should be renamed appropritely. The mentioned utility program does this, based on the information in the internal -.spk file.

  6. Process the leno LAML source file again. In this processing, be sure to set <kbd>show-and-speak-recording?</kbd> to false - #f.

As another practical information, the processing of a LENO laml file with show-and-speak clauses (and with show-and-speak? set to #t) generates a -.spk file in the internal directory. This file holds all the bookkeeping information about the show-and-speak clauses in a LENO laml file.


Generated: October 29, 2003, 11:05:15