new \subsubsection{Configuring conversion tables and keyboard bindings}
Thu, 12 Sep 1996 11:47:42 +0200
changeset 1986 36f6bbf41477
parent 1985 84cf16192e03
child 1987 209071ef2c79
new \subsubsection{Configuring conversion tables and keyboard bindings} (by Franz Regensburger) added to the manual.
Binary file src/Tools/8bit/doc/fkmatrix.dvi has changed
Binary file src/Tools/8bit/doc/fontindex.dvi has changed
Binary file src/Tools/8bit/doc/keyindex.dvi has changed
Binary file src/Tools/8bit/doc/manual.dvi has changed
--- a/src/Tools/8bit/doc/manual.itex	Thu Sep 12 10:40:05 1996 +0200
+++ b/src/Tools/8bit/doc/manual.itex	Thu Sep 12 11:47:42 1996 +0200
@@ -57,11 +57,15 @@
 Without graphical characters, the operator is defined as follows.
     	Ball	:: "'a set => ('a => bool) => bool"
-	"@Ball"	:: "pttrn => 'a set => bool => bool"	("(3!_:_./ _)" 10)
+	"@Ball"	:: "pttrn => 'a set => bool => bool"
+						("(3!_:_./ _)" 10)
 		"!x:A. P" == "Ball A (%x. P)"
@@ -75,7 +79,8 @@
 	Ball	:: "'a set  ('a  bool)  bool"
-	"GBall"	:: "pttrn  'a set  bool  bool"	("(3__./ _)" 10)
+	"GBall"	:: "pttrn  'a set  bool  bool"
+						("(3__./ _)" 10)
 		"xA. P" == "Ball A (x. P)"
@@ -99,7 +104,8 @@
-	"GBall"	:: "pttrn => 'a set => bool => bool"	("(3__./ _)" 10)
+	"GBall"	:: "pttrn => 'a set => bool => bool"
+						("(3__./ _)" 10)
 		"xA. P" == "!x:A. P"
@@ -111,6 +117,8 @@
 and should therefore be designed carefully.
 \subsection{User commands}
@@ -215,6 +223,8 @@
 For example, this manual itself is converted to a \bt{.tex} file by \\
 \bt{isa2latex -x -e -o manual.tex doc/manual.itex}
 \subsection{Conversion modes}
 To handle the different parts of an input file, \bt{isa2latex} has several 
@@ -273,6 +283,8 @@
 \subsection{Ambiguity problems}
@@ -291,14 +303,14 @@
 \I@\E\E@\E@@\I@, i.e. the string becomes `\I@|\E\E@\E@@\E\E@\E@@ \I@'. 
 You may also redefine the critical entries of the conversion tables in the file
-\bt{config/conv-tables.inp}. The entry for the `\I@|\I@' character
+\bt{config/conv-tables.inp}. The entry for the `\I@|\I@' character, for example,
 looks like
 >  "\|\ "		"|"		"\mbox{$\vee$}" 
 The first string, which (as described by the verbose comments in that file)
 is the lex expression for the ASCII input, could be adapted to require an 
-additional blank character before the `\I@|\I@', for example.
+additional blank character before the `\I@|\I@'.
 Most of these amibiguity problems can be avoided if you decide to employ the
 graphical font for your Isabelle source files. In this case, we recommend 
@@ -318,6 +330,7 @@
 to generate a better output than in the example conversion given in subsection
 \section{Technical issues}
@@ -362,7 +375,8 @@
 If you want to adapt the configuration of the font (keyboard bindings or
 conversion tables used by \bt{isa2latex}), change directory to\\
 \bt{\$ISABELLE8BIT/config} ,
-edit the files \bt{key-table.inp} respectively \bt{conv-tables.inp},
+edit the files \bt{key-table.inp} and \bt{conv-tables.inp} 
+as described below, 
 and run \bt{gmake} in this directory to generate new versions of 
 \bt{isa2latex}, editor support, and documentation.
@@ -370,6 +384,50 @@
 \bt{\$ISABELLE8BIT/c-sources/a2isa}, edit the file \bt{lex.x}
 accordingly, and run \bt{gmake} there.
+%%%% FRANZ
+\subsubsection{Configuring conversion tables and keyboard bindings}
+The 8bit package comes along with several perl%
+\footnote{the scripts are written in perl4. In order to run them with later
+  versions of perl, you have to patch the scripts in some places since perl4
+  and later versions differ in the way they expand backslashes.} scripts that
+allow you to configure the package for your own needs in a convenient way.
+Keyboard bindings and the major behaviour of the converter \bt{isa2latex} are
+controlled by the two configuration files \bt{key-table.inp} and
+\bt{conv-tables.inp} which reside in the directory \bt{\$ISABELLE8BIT/config}.
+As these files contain a lot of comments, their formats are rather 
+self explanatory.
+To change the conversions performed by \bt{isa2latex}, you just
+have to alter the file \bt{conv-tables.inp}. This file mainly contains the
+conversion tables for single characters in the code ranges 32 -- 127 and
+(usually) 161 -- 255.  The last part of the configuration file describes how the
+lexical analyser of the converter \bt{isa2latex} treats special character
+sequences. It is most likely that you change this part of the configuration
+In order to activate your changes, you have to run the Makefile with \bt{gmake}.
+This invokes the perl script \bt{gen-isa2latex} with \bt{conv-tables.inp} as
+an argument. See the man page on \bt{gen-isa2latex} for more details about
+command line arguments. According to the configuration file, the perl script
+patches specific portions of the C source of the 
+converter in the directory \bt{\$ISABELLE8BIT/c-sources/isa2latex} and
+calls the C compiler to generate a new binary for \bt{isa2latex}.
+If you want to alter the keyboard bindings for the various editors and the
+terminal, you have to change the configuration file \bt{key-table.inp}. 
+The file contains as its main part a table relating keystrokes to the 
+keyboard codes to be generated. Then run the Makefile with \bt{gmake}.
+For every editor that the 8bit package supports, \bt{gmake} starts a perl script
+that patches the start up file for the specific editor. For example, for the 
+\bt{vim} editor the script \bt{gen-isavim} is started, which patches the shell 
+\bt{\$ISABELLE8BIT/vim/isavim}.  As the last action, the perl script
+\bt{gen-isadoc} is invoked which generates some \bt{.dvi} files for reference
+cards which document the new keyboard mapping.
+%%%% FRANZ
 \subsection{Management of alternative sources}
 If you retain ASCII versions of logical operators for compatibility reasons,
@@ -379,11 +437,10 @@
 solely with the 8bit font with suitable begin and end pragmas (some pair of 
 unique comment lines) and configure three configuration files analogously to\\
-Then you can call the \bt{patcher} with the first file to extract and store to
+You can call the \bt{patcher} than with the first file to extract and store to
 a file, the second to remove, and the third to re-add the 8bit section of the
 Isabelle files. See also the man page of \bt{patcher}.