Commit cd6dda80 authored by Axel Beckert's avatar Axel Beckert

Imported Upstream version 1.3.1

parent 7ec5d00e
1.3.1:
- added patch by Gregor Herrman to close the boxes
- implemented some kind of auto-advance-after-n-seconds
- added german translation of README, thanks
Thomas Winde and Frank Hofmann
1.3:
- implemented text output mode
- implemented (working) LaTeX output mode
......
......@@ -199,24 +199,24 @@ this file at http://www.trish.de/downloads/tpp.vim
License
-------
#############################################################################################
# #
# tpp - text presentation program #
# Copyright (C) 2004-2005 Andreas Krennmair <ak@synflood.at>, Nico Golde <nico@ngolde.de> #
# #
# This program is free software; you can redistribute it and/or modify #
# it under the terms of the GNU General Public License as published by #
# the Free Software Foundation; either version 2 of the License, or #
# (at your option) any later version. #
# #
# This program is distributed in the hope that it will be useful, #
# but WITHOUT ANY WARRANTY; without even the implied warranty of #
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
# GNU General Public License for more details. #
# #
# You should have received a copy of the GNU General Public License #
# along with this program; if not, write to the Free Software #
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #
# #
#############################################################################################
##################################################################################################
# #
# tpp - text presentation program #
# Copyright (C) 2004-2005, 2007 Andreas Krennmair <ak@synflood.at>, Nico Golde <nico@ngolde.de> #
# #
# This program is free software; you can redistribute it and/or modify #
# it under the terms of the GNU General Public License as published by #
# the Free Software Foundation; either version 2 of the License, or #
# (at your option) any later version. #
# #
# This program is distributed in the hope that it will be useful, #
# but WITHOUT ANY WARRANTY; without even the implied warranty of #
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
# GNU General Public License for more details. #
# #
# You should have received a copy of the GNU General Public License #
# along with this program; if not, write to the Free Software #
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #
# #
##################################################################################################
tpp - Text - Präsentations - Programm
=====================================
Was ist tpp?
------------
Tpp steht für Text Präsentations Programm und ist ein ncurses-basierendes
Präsentationswerkzeug. Die Präsentation kann man mit seinem Lieblingseditor
in einem einfachen Beschreibungsformat erstellen und danach in einem xterm
seiner Wahl - welches von ncurses unterstützt wird - vorführen. Das reicht
von einem alten VT 100, einem Linux Framebuffer Terminal bis zum xterm.
Installation
------------
Voraussetzungen:
* Ruby 1.8 <http://www.ruby-lang.org/>
* Eine aktuelle Version der ncurses-Biliothek
* ncurses-ruby <http://ncurses-ruby.berlios.de/>
Zusätzlich:
* FIGlet (für die Darstellung größerer Buchstaben im Textmodus)
Installation von tpp:
1. Debianpaket (ttp.deb) installieren oder
2. Mit root-Rechten make install eingeben.
Anwendung von tpp
-----------------
Starten von tpp mit der Präsentationdatei, die man anzeigen möchte:
$ tpp presentation.tpp
Zur Steuerung von tpp sind folgende Tastenfunktionen verfügbar:
Leertaste............................... nächster Eintrag innerhalb der Seite
Leertaste, cursor-unten, cursor-rechts.. Bewegung zur nächsten Seite
b, cursor-oben, cursor-links............ Bewegung zur vorherigen Seite
q, Q ................................... tpp beenden
j, J ................................... Direktsprung zur Seite
l, L ................................... Neuladen der laufenden Datei
s, S ................................... Sprung zur Startseite
e, E ................................... Sprung zur letzten Seite
c, C ................................... Start einer Kommandozeile
?, h ................................... zeige Hilfebildschirm
Auf der linken unteren Seite des Terminals steht in eckigen Klammern die
laufende Seitennummer und Gesamtseitenzahl. Links davon erscheint ein "*", wenn
das Ende der aktuellen Seite erreicht wurde. Wenn kein "*" sichtbar ist, wurde
die Ausgabe angehalten (durch den Befehl `---`) und kann mit der Leertaste
weitergeschaltet werden. Man kann so mit der Leertaste von Punkt zu Punkt die
gesamte Präsentation vorführen.
Wenn man die Tasten 'l' (kleines L) oder 'L' drückt, wird die laufende
Präsentation erneut aus der Datei geladen. Dies ist besonders günstig, wenn
man eine tpp-Präsentationen erstellt und dabei eine ständige Vorschau benötigt.
Schreiben einer tpp-Präsentation
--------------------------------
Das Präsentationsformat besteht aus normalen Textzeilen und speziellen
Kommandos. Die Kommandozeilen beginnen immer mit "--", gefolgt von den
speziellen Kommandowörtern.
Die Präsentation besteht aus einer oder mehreren Seiten, die durch den Befehl
"--newpage" getrennt werden. Vor dem ersten "--newpage"-Kommando kann eine
Zusammenfassung für die gesamte Präsentation stehen. Hier lassen sich der Titel,
Autor und das Datum setzen. Zusätzlich kann jede Seite der Präsentation
benannt werden. Nach dem "--newpage"-Kommando und einem Leerzeichen wird der
Name der nächsten Seite angegeben, falls nicht, wird ein entsprechender Name
automatisch erzeugt.
Die folgenden Kommandos sind in der Zusammenfassung erlaubt:
--author ............... Setzt den Autor der Präsentation
--title ................ Setzt den Titel der Präsentation
--date ................. Setzt das Datum der Präsentation. Mit "today" fügt man
das aktuelle Datum ein. Zusätzlich kann das Datumsformat angegeben werden.
Es entspricht dem Format des date(1)-Befehls und ist in der man-page
dokumentiert (%M %T %J ist voreingestellt).
--bgcolor <color> ...... Setzt die Hintergrundfarbe. Wird keine Farbe angegeben
(Transparenz), wird der aktuelle Hintergrund des Terminals verwendet.
--fgcolor <color> ...... Setzt die Vordergrundfarbe (Textfarbe)
Gültige Farben sind white (weiß), yellow (gelb), red (rot), green (grün),
blue (blau), cyan (hellblau), magenta (lila), black (schwarz).
--heading <heading> .... Setzt die Kopfzeile für alle Seiten. Die Kopfzeile
wird zentriert und fett dargestellt (wenn es das Terminal zulässt).
Innerhalb der einzelnen Seiten kann man folgende "page-local"-Befehle verwenden:
--withborder ........... Darstellung mit Seitenrand
--horline .............. Stellt eine horizontale Linie dar
--header <text> ........ Fügt eine Kopfzeile ein
--footer <text> ........ Fügt eine Fußzeile ein
--color <color> ........ Setze eine neue Textfarbe (erlaubte Farben siehe oben)
--left <text> .......... Linksbündige Textdarstellung (Voreinstellung)
--center <text> ........ Zentrierte Textdarstellung
--right <text> ......... Rechtsbündige Textdarstellung
--- .................... Stoppt die Textausgabe, Fortsetzung mit Leertaste
--sleep <seconds> ...... Stoppt die Ausgabe für <seconds> Sekunden
--beginoutput .......... markiert den Anfang des gerahmten Textes
--endoutput ............ markiert das Ende des gerahmten Textes
--beginshelloutput ..... Setzt den Beginn der gerahmten Shellausgabe.
Jede Zeile, die mit einem $ beginnt, erscheint so, als wenn die Buchstaben
direkt eingegeben werden.
--endshelloutput ....... Setzt das Ende der gerahmten Shellausgabe
--boldon ............... Beginn Text fett
--boldoff .............. Ende Text fett
--revon ................ Beginn der inversen Darstellung
--revoff ............... Ende der inversen Darstellung
--ulon ................. Beginn Text unterstrichen
--uloff ................ Ende Text unterstrichen
--beginslideleft ....... Beginn einfliegender Text von links
--endslideleft ......... Ende einfliegender Text von links
--beginslideright ...... Beginn einfliegender Text von rechts
--endslideright ........ Ende einfliegender Text von rechts
--beginslidetop ........ Beginn einfliegender Text von oben
--endslidetop .......... Ende einfliegender Text von oben
--beginslidebottom ..... Beginn einfliegender Text von unten
--endslidebottom ....... Ende einfliegender Text von unten
--huge <text> .......... Der <text> wird in sehr großen Buchstaben dargestellt.
Das Programm FIGlet wird benutzt, um die sehr großen Buchstaben darzustellen
--sethugefont <font> ... Wenn man den --huge Befehl und FIGlet verwendet, wird
mit diesem Befehl die entsprechende FIGlet Schrift ausgewählt (siehe auch
FIGlet man-page).
--exec <cmd> ........... führt den in <cmd> angegebenen Befehl aus. Nützlich,
um z.B. einen Bildbetrachter aufzurufen
--## <zeile> ........... Zeilen auskommentieren
Beispiele
---------
Einige Beispiele, die die Funktionen von tpp demonstrieren, liegen dem
tpp-Programm im Unterverzeichnis examples bei.
Optionen
--------
tpp --help
zeigt die Hilfe im Textmodus
tpp -l output input.tpp
Konvertiert die tpp-Datei in eine LaTeX-Datei. Diese Funktion ist
derzeit in Überarbeitung.
tpp --version
zeigt die tpp-Versionsnummer
Vim-Syntax-Datei
----------------
Um die Vim-Syntax-Datei zu nutzen, muß die Datei in das Verzeichnis
~/.vim/syntax kopiert werden. Falls das Verzeichnis noch nicht existiert, muß
es angelegt werden. Danach muß das folgende in die Datei ~/.vim/filetype.vim
eingefügt werden:
if exists("did_load_filetypes")
finish
endif
augroup filetype detect
au! BufRead,BufNewFile *.tpp setfiletype tpp
augroup END
Falls der Vim keine Syntaxhervorhebung unterstützt, kann das mit dem Kommando
syntax on
aktiviert werden.
Neben der Datei tpp.vim im Verzeichnis contrib existiert eine weitere,
verbesserte Variante, welche wir aus Lizenzgründen nicht verbreiten können.
Diese Datei kann unter http://www.trish.de/downloads/tpp.vim bezogen werden.
Übersetzung
-----------
letzte Überarbeitung der Übersetzung April 2006
Thomas Winde <tom@linux-tage.de>, Frank Hofmann <frank.hofmann@efho.de>
Lizenz
------
################################################################################
# #
# tpp - text presentation program #
# Copyright (C) 2004-2005, 2007 Andreas Krennmair <ak@synflood.at>, #
# Nico Golde <nico@ngolde.de> #
# #
# This program is free software; you can redistribute it and/or modify #
# it under the terms of the GNU General Public License as published by #
# the Free Software Foundation; either version 2 of the License, or #
# (at your option) any later version. #
# #
# This program is distributed in the hope that it will be useful, #
# but WITHOUT ANY WARRANTY; without even the implied warranty of #
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
# GNU General Public License for more details. #
# #
# You should have received a copy of the GNU General Public License #
# along with this program; if not, write to the Free Software #
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #
# #
################################################################################
......@@ -2,3 +2,4 @@ Sven Guckes, Florian Cramer initial idea of tpp
Patricia Jung <trish@trish.de> for supporting tpp and making the vim syntax file
Gerfried Fuchs for making another vim syntax file
Christian Dietrich <stettberger@gmx.de> for emacs file
Thomas Winde Frank, Frank Hofmann for the German translation of README
.TH TPP "1" "June 2005" "tpp 1.3" "User Commands"
.TH TPP "1" "April 2007" "tpp 1.3.1" "User Commands"
.SH NAME
TPP - Text Presentation Program
.SH SYNOPSIS
......
#!/usr/bin/env ruby
version_number = "1.3"
version_number = "1.3.1"
# Loads the ncurses-ruby module and imports "Ncurses" into the
# current namespace. It stops the program if loading the
......@@ -670,6 +670,10 @@ class NcursesVisualizer < TppVisualizer
x = (@termwidth - l.length)/2
@screen.move(@cur_line,x)
@screen.addstr(l)
if @output or @shelloutput then
@screen.move(@cur_line,@termwidth - @indent - 2)
@screen.addstr(" |")
end
@cur_line += 1
end
end
......@@ -685,9 +689,12 @@ class NcursesVisualizer < TppVisualizer
if @output or @shelloutput then
@screen.addstr("| ")
end
x = (@termwidth - l.length - 2)
x = (@termwidth - l.length - 5)
@screen.move(@cur_line,x)
@screen.addstr(l)
if @output or @shelloutput then
@screen.addstr(" |")
end
@cur_line += 1
end
end
......@@ -731,7 +738,8 @@ class NcursesVisualizer < TppVisualizer
def do_beginoutput
@screen.move(@cur_line,@indent)
@screen.addstr(".")
((@termwidth - @indent)/2).times { @screen.addstr("-") }
(@termwidth - @indent*2 - 2).times { @screen.addstr("-") }
@screen.addstr(".")
@output = true
@cur_line += 1
end
......@@ -739,7 +747,8 @@ class NcursesVisualizer < TppVisualizer
def do_beginshelloutput
@screen.move(@cur_line,@indent)
@screen.addstr(".")
((@termwidth - @indent)/2).times { @screen.addstr("-") }
(@termwidth - @indent*2 - 2).times { @screen.addstr("-") }
@screen.addstr(".")
@shelloutput = true
@cur_line += 1
end
......@@ -748,7 +757,8 @@ class NcursesVisualizer < TppVisualizer
if @output then
@screen.move(@cur_line,@indent)
@screen.addstr("`")
((@termwidth - @indent)/2).times { @screen.addstr("-") }
(@termwidth - @indent*2 - 2).times { @screen.addstr("-") }
@screen.addstr("'")
@output = false
@cur_line += 1
end
......@@ -785,7 +795,8 @@ class NcursesVisualizer < TppVisualizer
if @shelloutput then
@screen.move(@cur_line,@indent)
@screen.addstr("`")
((@termwidth - @indent)/2).times { @screen.addstr("-") }
(@termwidth - @indent*2 - 2).times { @screen.addstr("-") }
@screen.addstr("'")
@shelloutput = false
@cur_line += 1
end
......@@ -948,7 +959,7 @@ class NcursesVisualizer < TppVisualizer
lines = split_lines(line,width)
lines.each do |l|
@screen.move(@cur_line,@indent)
if @output or @shelloutput then
if (@output or @shelloutput) and ! @slideoutput then
@screen.addstr("| ")
end
if @shelloutput and (l =~ /^\$/ or l=~ /^%/ or l =~ /^#/) then # allow sh and csh style prompts
......@@ -958,6 +969,10 @@ class NcursesVisualizer < TppVisualizer
else
@screen.addstr(l)
end
if (@output or @shelloutput) and ! @slideoutput then
@screen.move(@cur_line,@termwidth - @indent - 2)
@screen.addstr(" |")
end
@cur_line += 1
end
end
......@@ -1279,9 +1294,10 @@ end
# unattended presentation.
class AutoplayController < TppController
def initialize(filename,visualizer_class)
def initialize(filename,secs,visualizer_class)
@filename = filename
@vis = visualizer_class.new
@seconds = secs
@cur_page = 0
end
......@@ -1327,7 +1343,7 @@ class AutoplayController < TppController
@vis.new_page
end
Kernel.sleep(1)
Kernel.sleep(@seconds)
end # loop
end
......@@ -1664,11 +1680,12 @@ end
# Prints a nicely formatted usage message.
def usage
$stderr.puts "usage: #{$0} [-t <type> -o <file>] <file>\n"
$stderr.puts "\t -t <type>\t\tset filetype <type> as output format"
$stderr.puts "\t -o <file>\t\twrite output to file <file>"
$stderr.puts "\t --version\t\tprint the version"
$stderr.puts "\t --help\t\t\tprint this help"
$stderr.puts "\n\t currently available types: ncurses (default), latex, txt"
$stderr.puts "\t -t <type>\tset filetype <type> as output format"
$stderr.puts "\t -o <file>\twrite output to file <file>"
$stderr.puts "\t -s <seconds>\twait <seconds> seconds between slides (with -t autoplay)"
$stderr.puts "\t --version\tprint the version"
$stderr.puts "\t --help\t\tprint this help"
$stderr.puts "\n\t currently available types: ncurses (default), autoplay, latex, txt"
Kernel.exit(1)
end
......@@ -1681,6 +1698,7 @@ end
input = nil
output = nil
type = "ncurses"
time = 1
skip_next = false
......@@ -1699,6 +1717,9 @@ ARGV.each_index do |i|
elsif ARGV[i] == '-o' then
output = ARGV[i+1]
skip_next = true
elsif ARGV[i] == "-s" then
time = ARGV[i+1].to_i
skip_next = true
elsif input == nil then
input = ARGV[i]
end
......@@ -1721,7 +1742,7 @@ case type
ctrl = InteractiveController.new(input,NcursesVisualizer)
when "autoplay"
load_ncurses
ctrl = AutoplayController.new(input,NcursesVisualizer)
ctrl = AutoplayController.new(input,time,NcursesVisualizer)
when "txt"
if output == nil then
usage
......@@ -1732,7 +1753,7 @@ case type
if output == nil then
usage
else
ctrl = ConversionController.new(input,output,TextVisualizer)
ctrl = ConversionController.new(input,output,LatexVisualizer)
end
else
usage
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment