summaryrefslogtreecommitdiff
path: root/macros/plain/contrib/hyplain/hydoc.tex
diff options
context:
space:
mode:
Diffstat (limited to 'macros/plain/contrib/hyplain/hydoc.tex')
-rw-r--r--macros/plain/contrib/hyplain/hydoc.tex191
1 files changed, 191 insertions, 0 deletions
diff --git a/macros/plain/contrib/hyplain/hydoc.tex b/macros/plain/contrib/hyplain/hydoc.tex
new file mode 100644
index 0000000000..3a6c37c6a1
--- /dev/null
+++ b/macros/plain/contrib/hyplain/hydoc.tex
@@ -0,0 +1,191 @@
+%%% This is part of the hyplain package by Enrico Gregorio
+%%% You are allowed to do anything you want with this as long
+%%% as you cite the source and change name to the file
+
+\hoffset=.46truecm
+\hsize=15truecm
+\advance\voffset by -2.5\baselineskip
+\advance\vsize by 5\baselineskip
+
+\font\tensf=cmss10
+
+\def\manyhyphens{%
+\hyphenpenalty=-1000
+\pretolerance=-1
+\tolerance=1000
+\doublehyphendemerits=-100000
+\finalhyphendemerits=-100000
+}
+
+\def\LaTeX{L\kern-.36em\setbox0=\hbox{T}\vbox to\ht0
+ {\hbox{\sevenrm A}\vss}\kern-.15em\TeX}
+\def\LaTeXe{\LaTeX$2_{\textstyle\varepsilon}$}
+
+\def\cs#1{\char`\\#1}
+\def\ar#1{\char`\{#1\char`\}}
+\def\showcommand#1{\par\nobreak\medskip\begingroup\tt#1\endgroup\par\medskip
+ \noindent\ignorespaces}
+
+\addto{it}{IT}{\frenchspacing}{\nonfrenchspacing}
+
+\begingroup\manyhyphens
+
+\centerline{\bf How to use hyplain --- version 1.0}
+
+\medskip
+
+Many (well, at least more than twelve) years ago, \LaTeX{} was not as usable as it is today.
+So we were forced to use AMS-\TeX{} for typesetting mathematical papers.
+
+At the very beginning there were two plain formats to use, the original one and the one
+(called plainit) for Italian hyphenation. With the advent of \TeX3 we could use only one and
+define some switch for selecting the language.
+
+I found a package called HyMaster that could be used for this purpose; it was developed by
+Daniel Flipo and Laurent Siebenmann for French. Since Italian typesetting rules do not
+require the contortions of the French, it was simple to adapt only one file for canning a
+format file.
+
+With the advent of \LaTeXe, everything was forgotten. Until recently, when a user in a
+discussion forum showed some code that I recognized as my modifications to HyMaster! He
+proposed some procedure to build the format which was very complicated (you see, at that
+time we were using Oz\TeX; nowadays, te\TeX{} or MiK\TeX{} require different actions). So I
+tried to rethink to the business.
+
+\IT
+
+\bigskip
+
+\hrule
+
+\medskip
+
+\centerline{\bf Come usare hyplain}
+
+\medskip
+
+Parecchi (be', almeno dodici) anni fa, \LaTeX{} non era cos\`{\i} facile da usare come \`e
+oggi. Per comporre testi matematici eravamo quindi costretti a usare AMS-\TeX{}.
+
+All'inizio c'erano due formati plain da usare, l'originale e quello (chiamato plainit) per
+la sillabazione italiana. Con l'avvento di \TeX3, si pot\'e usare un solo formato con la
+possibilit\`a di cambiare le regole di sillabazione con un comando.
+
+Trovai un pacchetto chiamato HyMaster che poteva essere usato per questo scopo; era stato
+sviluppato da Daniel Flipo e Laurent Siebenmann per il francese. Siccome la tipografia
+italiana non richiede le contorsioni di quella francese, fu semplice adattare un solo {\it
+file\/} per costruire un formato.
+
+Con l'avvento di \LaTeXe, tutto fu dimenticato. Finch\'e, recentemente, un utente di un
+gruppo di discussione esib\`{\i} del codice che riconobbi come le mie modifiche a HyMaster!
+Proponeva una procedura piuttosto complicata per costruire il formato (a quel tempo usavamo
+Oz\TeX; ora te\TeX{} e MiK\TeX{} richiedono azioni diverse). Perci\`o ho provato a ripensare
+alla faccenda.
+
+\medskip
+
+\hrule
+
+\bigskip
+
+\endgroup
+
+\US
+
+As you can see, hyphenation in US~English and in Italian behave properly. The text above has
+been typeset with more hyphens than usual.
+
+\medskip
+
+The package consists of three files: {\tt hyplain.tex}, {\tt hyrules.tex} and {\tt
+hylang.tex}. Only the third one needs to be modified by the users who want to define
+languages to employ.
+
+The basic definition of a language is given by a command
+\showcommand{\cs{definelanguage}\ar{xx}\ar{YY}\ar{filename}} where {\tt xx} is the ISO
+abbreviation for the language ({\tt en} for English, {\tt it} for Italian, {\tt de} for
+German), {\tt YY} is the ISO abbreviation for the nation and {\tt filename} is the name of
+the hyphenation pattern file. Thus
+\showcommand{\cs{definelanguage}\ar{it}\ar{IT}\ar{ithyph}} defines Italian.
+
+There is also {\tt\cs{definedialect}} for defining a language which shares hyphenation
+patterns with another; for example
+\showcommand{\cs{definedialect}\ar{de}\ar{AT}\ar{de}\ar{DE}} defines ``German for Austria'',
+assuming that \showcommand{\cs{definelanguage}\ar{de}\ar{DE}\ar{dehypht}} has already been
+given.
+
+After a {\tt\cs{definelanguage}} command, {\tt\cs{refinelanguage}} should be given; it has
+four arguments
+
+\nobreak\smallskip
+\item{\tt\#1} the two-letter language abbreviation,
+
+\item{\tt\#2} the two-letter nation abbreviation,
+
+\item{\tt\#3} the code to be executed when the language comes into action,
+
+\item{\tt\#4} the code to be executed when another language is called.
+\smallskip
+
+This command should always contain in the third argument the left and right hyphenation
+minima: for example, we set
+\showcommand{\cs{refinelanguage}\ar{en}\ar{US}%
+ \ar{\cs{hyphenmins}\ar{2}\ar{3}}\ar{}}
+in order to enforce the usual conventions for American English; as another example, we set
+\showcommand{\cs{refinelanguage}\ar{it}\ar{IT}%
+ \ar{\cs{hyphenmins}\ar{2}\ar{2}\cs{lccode}`\char`\\'=`\char`\\'}%
+ \ar{\cs{lccode}`\char`\\'=0 }}
+because the lower case code of the right quote should not be zero for correct Italian
+hyphenation. We need to ``undo'' the effect since we don't know whether the user calls the
+language switch inside a group or not. The command
+\showcommand{\cs{hyphenmins}\ar{x}\ar{y}}
+is an abbreviation for {\tt\cs{lefthyphenmin}=x\cs{righthyphenmin}=y} and it is not
+necessary to ``undo'' it.
+
+The commands {\tt\cs{definedialect}} and {\tt\cs{refinedialect}} (analog to
+{\tt\cs{refinelanguage}}) can be given also in the user's document where, of course, it is
+too late to define new languages with their hyphenation patterns. Anyway, users can simulate
+new language definitions by defining a dialect to language {\tt\cs{zz\_ZZ}}, which is a
+fallback without hyphenation tables.
+
+If one wants to extend the functionalities of a language, there is also the command
+\showcommand{\cs{addto}\ar{xx}\ar{YY}\ar{do}\ar{undo}}
+which can be used, for example, in the following way
+\showcommand{\cs{addto}\ar{it}\ar{IT}%
+ \ar{\cs{frenchspacing}}\ar{\cs{nonfrenchspacing}}}
+in order to enforce French spacing for Italian (in Italy).
+
+Finally, there is a command to choose a defined language (or even an undefined one, try it)
+\showcommand{\cs{selectlanguage}\ar{xx}\ar{YY}}
+which selects language {\tt xx} for {\tt YY}. Users can add aliases for this with
+\showcommand{\cs{addalias}\ar{\cs{command}}\ar{xx}\ar{YY}}
+(see {\tt hylang.tex} for examples). After saying
+\showcommand{\cs{addalias}\ar{\cs{IT}}\ar{it}\ar{IT}}
+you can simply say {\tt\cs{IT}} to switch to Italian. This alias is actually predefined in
+the present version of {\tt hylang.tex} as well as {\tt\cs{US}} for US~English.
+
+\bigskip
+
+\centerline{\bf Installation}
+
+\nobreak\medskip
+
+Put the three files in some directory and process with
+\showcommand{tex -ini hyplain}
+and after this put the produced format in some suitable place of the \TeX{} tree. After this
+\showcommand{tex -fmt hyplain filename}
+will typeset {\tt filename.tex} using the new format. This is for a *nix system and a
+{\tensf Web2C} distribution like te\TeX{} or \TeX{}Live; for MiK\TeX{} find the way, I don't
+use it. You can use also {\tt pdftex} and you can use the newly created {\tt hyplain.fmt} to
+build AMS-\TeX{} over it. For {\tt pdftex} you should use
+\showcommand{pdftex -ini hypdfplain.ini}
+and then
+\showcommand{pdftex -fmt hypdfplain filename}
+If you want to access the extended features of $\varepsilon$-\TeX{}, then do
+\showcommand{pdftex -ini '*hypdfplain.ini'}
+
+\vfill
+
+\rightline{Enrico Gregorio}
+\rightline{October 17, 2006}
+\bye