About theme
Slide look and feel is independent of slide source format. It's theme.
There is a slide for testing theme at sample/theme-bench-en.rab. It's useful to confirm theme.
Where do I place the theme?
Rabbit searches for themes by using ruby's $LOAD_PATH. If you make a theme, place it into PATH_OF_INCLUDED_IN_$LOAD_PATH/rabbit/theme/THEME_NAME/THEME_NAME.rb or DIRECTORY_OF_SOURCE_FILE/THEME_NAME.rb.
How do I write a theme?
A theme is just a Ruby script.
You may enumerate the following descriptions in your theme.
- Select some elements (paragraphs, titles and so on) of the slide as a target.
- Change properties of selected elements and add actions.
For example, the following changes color of the title of each page except the title page.
match(Page, HeadLine) do |heads| heads.prop_set("foreground", "red") end
Property
You can set some properties by using
prop_set
. Pango Text Attribute
Markup
has more information.
- font_desc
- Specifies font description.
- font_family
-
Specifies font family.
You can get a list of font families by using
font_families
. - face
- Same as font_family.
- size
-
Specifies size of font.
If you specify size of font by numeric value, you should convert the value by
screen_size
and multiply it byPango::SCALE
. The following example shows how to specify size of font to 2 (in the Rabbit's theme world).screen_size(2) * Pango::SCALE
- style
- Specifies style of font.
- weight
- Specifies weight of font.
- variant
- Specifies variant of font.
- stretch
- Specifies stretch of font.
- foreground
- Specifies foreground.
- background
- Specifies background.
- underline
- Specifies kind of underline.
- rise
- Specifies vertical position of character.
- strike through
- Specifies whether use strike line or not.
- fallback
- Specifies whether use alternative font or not when specified font is not found.
- lang
- Specifies the language.
- b
- Changed to bold.
- big
- Changed size of font to big.
- i
- Changed to italic.
- s
- Draws a strike line.
- sub
- Changed to subscript.
- sup
- Changed to superscript.
- small
- Changed size of font to small.
- tt
- Changed font family to fixed width font.
- u
- Draws a underline.
Hooks
You can add procedures which are executed before/after
element is drawn by
add_pre_draw_proc
/add_post_draw_proc
. And you
can remove them by
clear_pre_draw_procs
/clear_post_draw_procs
.
The `default' theme has more code. Please see it.