summaryrefslogtreecommitdiff
path: root/language/romanian
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /language/romanian
Initial commit
Diffstat (limited to 'language/romanian')
-rw-r--r--language/romanian/RomanianTeX/hyphen-x.cfg71
-rw-r--r--language/romanian/RomanianTeX/manifest.txt90
-rw-r--r--language/romanian/RomanianTeX/readme.txt103
-rw-r--r--language/romanian/RomanianTeX/rohyphen.tex782
-rw-r--r--language/romanian/RomanianTeX/romanian.dtx1803
-rw-r--r--language/romanian/RomanianTeX/romanian.ins131
6 files changed, 2980 insertions, 0 deletions
diff --git a/language/romanian/RomanianTeX/hyphen-x.cfg b/language/romanian/RomanianTeX/hyphen-x.cfg
new file mode 100644
index 0000000000..16d4fc3b44
--- /dev/null
+++ b/language/romanian/RomanianTeX/hyphen-x.cfg
@@ -0,0 +1,71 @@
+%% hyphen-x.cfg [hyphen.example.cfg]
+%%
+%% This is file `hyphen.example.cfg',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% romanian.generic.dtx (with options: `cfg')
+
+%% -----------------------------------------------------------
+%% Sample hyphen-configuration for LaTeX2e: `hyphen.cfg'.
+%%
+%% As it stands, this file defines the `hyphen.cfg' for
+%% a multi-lingual [minimally: US English + Romanian] TeX.
+%% See the documentation in `romanian.doc'.
+%%
+%% CopyLEFT around, sometime in 1995-1996, by Bernd Raichle.
+%% Ampli- and modiFIED, October 29, 1996, by Adrian Rezus.
+%% -----------------------------------------------------------
+
+\message{== Loading hyphenation patterns:}
+
+\message{English}
+\chardef\l@USenglish=\language
+\chardef\l@english=\l@USenglish % UK Commonwealth
+\input hyphen %% The Knuth patterns. Aliter: `ukhyphen.tex'.
+
+\message{Romanian}
+\newlanguage\l@romanian \language=\l@romanian
+%% \chardef\l@moldavian=\l@romanian % Moldavian Republic
+\input rohyphen %% Use `rohyphen.tex' v 1.1 <29.10.1996>, NOT v 1.0!
+
+% \message{German}
+%\newlanguage\l@german \language=\l@german
+%\chardef\l@austrian=\l@german % Oesterreich
+%\input gehyphen %% Use `ghyph31.tex' v 3.1a <13.02.1994>!
+
+% \message{French}
+% \newlanguage\l@french \language=\l@french
+%% \chardef\l@quebecois=\l@french % French Canada
+% \input frhyphen
+
+%% Other LANGUAGEs on the following scheme:
+% \message{LANGUAGE}
+% \newlanguage\l@LANGUAGE \language=\l@LANGUAGE
+%% \chardef\l@LANGUAGE_DIALECT=\l@LANGUAGE
+% \input LA(NGUAGE)hyph[,en,ex]
+
+%% LR-hyphen-min: English
+\language=\l@USenglish
+\lefthyphenmin=2 \righthyphenmin=3
+
+%% LR-hyphen-min: Romanian
+\language=\l@romanian
+\lefthyphenmin=2 \righthyphenmin=2
+
+%% LR-hyphen-min: German
+%\language=\l@german
+%\lefthyphenmin=2 \righthyphenmin=2
+
+%% LR-hyphen-min: French
+% \language=\l@french
+% \lefthyphenmin=2 \righthyphenmin=3
+
+%% Other LANGUAGEs on the following scheme:
+% \language=\l@LANGUAGE
+% \lefthyphenmin=LANGUAGE_LHM \righthyphenmin=LANGUAGE_RHM
+\message{done.}
+\endinput
+%%
+%% End of file `hyphen.example.cfg'.
diff --git a/language/romanian/RomanianTeX/manifest.txt b/language/romanian/RomanianTeX/manifest.txt
new file mode 100644
index 0000000000..8b301065b0
--- /dev/null
+++ b/language/romanian/RomanianTeX/manifest.txt
@@ -0,0 +1,90 @@
+ %% manifest[.romanian].txt
+ %%
+ %% This file is part of the Romanian TeX system.
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ %% Romanian TeX, version 1.3R <29.10.1996> %%
+ %% (C) 1994-1996 Adrian Rezus [adriaan@{sci,cs}.kun.nl] %%
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+% =======================================================================
+% Romanian TeX standard distribution: release 1996. Package contents.
+% =======================================================================
+%
+% =======================================================================
+% Table of contents [this file]:
+% =======================================================================
+% `manifest.romanian.txt' <29.10.1996> revision [12.11.1996].
+% Short name: `manifest.txt'.
+% Description:
+% Table of contents. The Romanian TeX 1.3R standard distribution.
+% Document type: text.
+% =======================================================================
+% Main modules [packed] (LaTeX2e):
+% =======================================================================
+% `romanian.dtx' version 1.3R <29.10.1996> revision [12.11.1996].
+% Description:
+% LaTeX2e docstrip input archive.
+% TeX document type: Romanian LaTeX2e package.
+% Contents:
+% The documented macro source of Romanian TeX.
+% Generates [short file-name conventions]
+% [with `romanian.ins'] [using standard LaTeX2e format `latex']:
+% Macro-code [Plain TeX modifier/LaTeX style option]:
+% `romanian.sty' by [latex romanian.ins],
+% LaTeX2e driver for the macro-code documentation:
+% `romanian.drv' by [latex romanian.ins],
+% [with `romanian.drv'] [using Romanian LaTeX2e format `rlatex']:
+% Macro-code documentation for Romanian TeX:
+% `romanian.dvi' by [rlatex romanian.drv].
+% =======================================================================
+% Installation module (LaTeX2e):
+% =======================================================================
+% `romanian.ins' version 1.3R <29.10.1996> revision [11.11.1996].
+% Description:
+% Docstrip installation module for the LaTeX2e package `romanian'.
+% TeX document type: LaTeX2e batchfile.
+% Generates [short file-name conventions]
+% [from `romanian.dtx'] [using standard LaTeX2e format]:
+% `romanian.sty' by [latex romanian.ins],
+% `romanian.drv' by [latex romanian.ins].
+% =======================================================================
+% Romanian hyphenation patterns (Plain TeX, LaTeX 2.09, LaTeX2e):
+% =======================================================================
+% `rohyphen.tex' version 1.1 <29.10.1996> revision [7.11.1996].
+% Description:
+% Romanian TeX hyphenation patterns: PatGen2 output.
+% TeX document type: [Romanian TeX modified] plain.
+% Contents:
+% 647 Romanian hyphen patterns, with diacritics.
+% Generates [with `hyphen.cgf', on iniTeX \dump]:
+% `r[omanian.]plain.fmt' by [initex plain.tex],
+% `r[omanian.]lplain.fmt' by [initex lplain.tex],
+% `r[omanian.]latex.fmt' by [initex latex.ltx].
+% =======================================================================
+% Multi-lingual hyphen configuration [example] (LaTeX2e):
+% =======================================================================
+% `hyphen.example.cfg' <29.10.1996> revision [11.11.1996].
+% Short name: `hyphen-x.cfg'.
+% Description:
+% LaTeX2e multi-lingual hyphen configuration file.
+% Requires minimally:
+% US English and Romanian TeX hyphenation patterns.
+% TeX document type: plain [LaTeX2e .cfg file].
+% Further actions:
+% Customize (language choice, etc.).
+% Rename to `hyphen.cfg'.
+% =======================================================================
+% End-user documentation (LaTeX 2.09, LaTeX2e):
+% =======================================================================
+% `romanian.doc.tex' version 1.1E/R <XX.11.1996> revision [YY.ZZ.1996].
+% Short name: `rom-doc.tex'.
+% Description:
+% End-user documentation for Romanian TeX (English/Romanian).
+% TeX document type: LaTeX [2.09][2e] article.
+% Contents:
+% Romanian TeX end-user documentation.
+% Generates [using Romanian LaTeX 2.09/LaTeX2e format]:
+% `romanian.doc.dvi' by [rlplain/rlatex romanian.doc],
+% `rom-doc.dvi' by [rlplain/rlatex rom-doc] (short).
+% =======================================================================
+%% End of file manifest[.romanian].txt
diff --git a/language/romanian/RomanianTeX/readme.txt b/language/romanian/RomanianTeX/readme.txt
new file mode 100644
index 0000000000..1c4850795d
--- /dev/null
+++ b/language/romanian/RomanianTeX/readme.txt
@@ -0,0 +1,103 @@
+---------------------------------------------------------------
+RomanianTeX 1.3R <29.10.1996> [12.11.1996] as a LaTeX2e package
+---------------------------------------------------------------
+
+This is the release of RomanianTeX, version 1.3R <29.10.1996>,
+a LaTeX2e package for type-setting Romanian in a multi-lingual
+TeX environment.
+
+RomanianTeX 1.3R supports LaTeX2e [as of June 1966] and the
+NFSS, version 2, but old (RomanianTeX) input for RomanianTeX
+versions 1.2 and 1.2R compiles unchanged with the new version,
+under both Plain TeX and LaTeX 2.09 (so there is actually no
+need to emulate a Romanian LaTeX 2.09 configuration under a
+new-made Romanian LaTeX2e, just replace the old `romanian.sty'
+file by the new [generated] one).
+
+Files in this distribution [revision 12.11.1996]:
+
+ readme .txt : This file
+ manifest.txt : Table of contents
+ hyphen-x.cfg : LaTeX2e hyphen configuration [eXample]
+ rohyphen.tex : Romanian hyphen patterns [version 1.1]
+ romanian.dtx : LaTeX2e archive [contains .sty and .drv]
+ romanian.ins : LaTeX2e installation file
+ romanian.doc : End-user documentation
+ [misssing as of 12.11.1996]
+
+INSTRUCTIONS. How to generate a RomanianTeX configuration.
+
+Basically, we need a bi-lingual US-English/Romanian LaTeX2e system
+-- call it `rlatex' -- to begin with. To get it, do first
+
+ `hyphen-x.cfg' -> [renaming] `hyphen.cfg',
+
+then make the LaTeX2e (with `hyphen.cfg', and both `[us]hyphen.tex'
+and `rohyphen.tex' around), by
+
+ initex latex.ltx \dump -> [generating] `latex.fmt'
+ `latex.fmt' -> [renaming] `rlatex.fmt'
+ LET rlatex = tex &rlatex [executable batch file, say].
+
+So equipped, do the following:
+
+ rlatex romanian.ins
+ [this works with original LaTeX2e, too]
+ -> [generating] `romanian.sty'
+ -> [generating] `romanian.drv'
+ put `romanian.sty' on the TeX-path
+ rlatex romanian.drv
+ [this needs (US-English + Romanian) LaTeX2e]
+ -> [generating] `romanian.dvi'
+ = the macro-code documentation
+ [not really meant for the end-user].
+
+From now on, we don't need LaTeX2e if we don't want it (generate
+a bi-lingual, etc. Plain TeX or LaTeX 2.09, on the old pattern.)
+
+MINIMAL END-USER INFORMATION (look up `germdoc.tex' too):
+
+ In this version [1.3R], there are practically no
+ changes in the end-user commands [\romanianTeX-mode].
+
+USAGE: with Plain TeX: \input romanian.sty
+ with LaTeX 2.09: \documentstyle[...,romanian]{...}
+ with LaTeX2e: \documentclass[...]{...}
+ \usepackage{romanian}
+ etc.
+
+INPUT-ENCODING. The Romanian diacritics and the Romanian quotes
+have been macro-encoded by double quote escapes ["-prefixing],
+as in German TeX.
+
+Map:: DQ-input: => TeX:
+ -----------------------------
+ "a => \u{a} [no encoding for \u{A}]
+ "A => \^{a} [no encoding for \c{A}]
+ "i => \^{\i}
+ "I => \^{I}
+ "s => \c{s}
+ "S => \c{S}
+ "t => \c{t}
+ "T => \c{T}
+
+while DQ-escaping e, E, o, O, u, U yields trema's resp. Uml\"aute
+(as a bonus). Since the Romanian quotes are like the German ones,
+the macro-encoding is the same as in German TeX.
+
+Local hyphenation tools: as in German TeX (DQ-escaped " - | ~ =).
+
+Language switches:
+
+ \romanianTeX : RomanianTeX [default on initialization]
+ \originalTeX : this is the original [English] TeX
+ \germanTeX : this behaves exactly like German TeX
+ [using `ghyph31.tex' 3.1a <13.02.1994>]
+ [NO need for `german.sty' 2.5c <1.05.1966>]
+ \frenchTeX : this is a French setting.
+
+The detailed end-user documentation will be available at a later date.
+
+Mail box [for error reports]:
+
+ Adrian Rezus <adriaan@cs.kun.nl>
diff --git a/language/romanian/RomanianTeX/rohyphen.tex b/language/romanian/RomanianTeX/rohyphen.tex
new file mode 100644
index 0000000000..339b9b5ab8
--- /dev/null
+++ b/language/romanian/RomanianTeX/rohyphen.tex
@@ -0,0 +1,782 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% ROHYPHEN.TEX, version 1.1 <29.10.1996> R [7.11.1996] %%
+%% (C) 1995-1996 Adrian Rezus [adriaan@{sci,cs}.kun.nl] %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% Romanian TeX hyphenation table: NFSS 2 encoding, medium.
+%% Contents: 647 Romanian hyphen patterns, with diacritics.
+%%
+%% This file is part of the Romanian TeX system.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Romanian TeX, version 1.3R <29.10.1996> %%
+%% (C) 1994-1996 Adrian Rezus %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% History:
+%% ROHYPHEN.TEX 1.0 <10.02.1995>: Plain TeX and LaTeX 2.09.
+%% ROHYPHEN.TEX 1.1 <29.10.1996>: Plain TeX and LaTeX2e.
+%
+% -------------------------------------------------------------------
+% NB This file must be used in conjunction with either one of
+%
+% (1) ROMANIAN.TEX v1.2(R) [1994-1995] [(La)TeX] or
+% (2) ROMANIAN.STY v1.3R [1996] [(La)TeX(2e)]
+%
+% NB Romanian has LR-HYPHEN-MINs [2 2] (like German)!
+% NB Romanian has STRUCTURAL HYPHEN-AMBIGUA:
+% i.e., words that canNOT be hyphenated correctly without
+% additional (e.g., semantic, stress-mark) information.
+% --------------------------------------------------------
+% The Romanian TeX encoding of the Romanian diacritics:
+% --------------------------------------------------------
+% Romanian TeX DQ-macro encodings = (La)TeX macros
+% --------------------------------------------------------
+% "a = \u{a} [-] \u{A} [not encoded]
+% "A = \^{a} [-] \^{A} [not encoded]
+% "i = \^{\i} "I = \^{I}
+% "s = \c{s} "S = \c{S}
+% "t = \c{t} "T = \c{T}
+% -------------------------------------------------------------
+% NB Romanian \^{a} behaves like \^{\i} as regards hyphenation.
+% NB The capital \u{A} and \^{A} are rare in script; as such,
+% they occur only in records of the Romanian substandard.
+% -------------------------------------------------------------------
+%
+\message{Romanian Hyphenation Patterns: `rohyphen' 1.1 <29.10.1996>}
+%
+\begingroup % keep this local
+\ifnum 0\ifx\inputlineno\undefined \else
+ \ifnum\inputlineno<1 \else 1\fi\fi<1
+ \let\x=\endgroup
+\else
+ \def\x{\endgroup
+%
+% The following commands insure correct \catcodes, \lccodes and
+% \uccodes, if the host TeX implementation uses these char-codes.
+%
+\catcode"A0=11 \catcode"80=11 % \u{a} and \u{A}
+\catcode"E2=11 \catcode"C2=11 % \^{a} and \^{A}
+%
+\catcode"EE=11 \catcode"CE=11 % \^{\i} and \^{I}
+%
+\catcode"B3=11 \catcode"93=11 % \c{s} and \c{S}
+\catcode"B5=11 \catcode"95=11 % \c{t} and \c{T}
+%
+\lccode"80="A0 \uccode"80="80 \lccode"A0="A0 \uccode"A0="80 % lc = uc (?)
+\lccode"E2="C2 \uccode"E2="E2 \lccode"C2="C2 \uccode"C2="E2 % lc = uc (?)
+%
+\lccode"EE="CE \uccode"EE="EE \lccode"CE="CE \uccode"CE="EE
+%
+\lccode"93="B3 \uccode"93="93 \lccode"B3="B3 \uccode"B3="93
+\lccode"95="B5 \uccode"95="95 \lccode"B5="B5 \uccode"B5="95
+}
+\fi
+% Make these changes effective for TeX 3.x:
+\x
+
+%
+% Define next commands that might be used inside the patterns
+% (local use: the rest of the file can be enclosed in a group).
+%
+\begingroup
+%
+% As we might be willing to use things like ^^e4, ^^f6, ... in the
+% following definition, we must insure that the catcodes of ^^e and
+% ^^f would work for TeX 2 too.
+%
+\catcode"0E=12 \catcode"0F=12
+%
+% Comply with German TeX [see `romanian.dtx'] (not actually needed):
+%
+\catcode`\^^Y=11 \lccode`\^^Y=`\^^Y % allow ^^Y in hyphen patterns
+%
+% Check the hyphen table integrity by a DQ-macro:
+%
+\catcode`\"=13
+\def"#1{\ifx#1a^^a0\else \ifx#1A^^e2\else \ifx#1i^^ee\else
+ \ifx#1s^^b3\else \ifx#1t^^b5\else
+ \errmessage{Hyphenation pattern file corrupted!}%
+ \fi\fi\fi\fi\fi}
+%
+
+%
+% Allow using this file with TeX 2 and TeX 3.
+\ifnum 0\ifx\inputlineno\undefined \else
+ \ifnum\inputlineno<1 \else 1\fi\fi<1
+ % for TeX 2:
+ % ignore patterns with diacritics [DQ-escaped]
+ \def\n#1{}
+ % ignore duplicated patterns [CM fonts] (unused in v1.1)
+ %\def\c#1{}
+ % Other commands (example):
+ % from German TeX: define \3 to be code ^^Y (\ss in CM layout)
+ %\def\3{^^Y}
+\else
+ % for TeX 3:
+ % accept patterns with diacritics [DQ-escaped]
+ \def\n#1{#1}
+ % accept duplicated patterns [CM fonts] (unused in v1.1)
+ %\def\c#1{#1}
+ % no fonts with a CM layout (unused in v1.1)
+ %\def\c#1{}
+ % Other commands (example):
+ % from German TeX: define \3 to be code `\^^ff (\ss in DC/EC layout)
+ %\def\3{^^ff}
+ % from German TeX: define \9 to be code `\^^Y (\ss in CM layout)
+ %\def\9{^^Y}
+\fi
+%
+%
+\catcode`\"=11 \lccode`\"=`\" % makeDQletter [for Romanian TeX]
+%
+\patterns{ % PatGen2-output hyphen-level 9: do NOT modify this by hand!
+.a3ic
+.a4n3is
+.a2z
+.cre1
+.de2aj
+.de2z1
+.g4
+.i2a
+.i2e
+\n{.i3"t}
+.i4u3
+.i3v
+\n{."i4m}
+.n2
+.ni2
+.p4
+\n{.pre3"s}
+.s4
+\n{."s4}
+.u4i
+.u5ni
+.z2
+a1
+\n{2ac"a}
+achi5
+a3e
+afo3
+a3i2a
+a3i2e
+a3il
+ai3s2
+a3iu
+alie6
+2alt
+a2m
+a2n
+2an.
+a5n2e
+ani2e
+\n{ani3"s4}
+an4s
+2anu
+an2z
+ao2g
+ati4a
+2atr
+a5t4u
+\n{2a"ta}
+\n{2a"t"a}
+2au
+a3ua
+a3ud
+a3ug
+a3ul
+a3un
+a3ur
+a3us
+a3ute
+\n{a3u2"t}
+a3uz
+\n{2"a1}
+\n{"a3i}
+\n{"ai2e}
+\n{"a2m2}
+\n{"anu3}
+\n{"argi5}
+\n{"a3"s}
+\n{"a4"s3t}
+\n{"a2ti.}
+\n{"ati4e}
+\n{"a3u}
+\n{"a3v}
+\n{"a2zi}
+1b
+2b.
+\n{ba2"t}
+\n{b"anu5}
+2bc
+2bd
+bi2a.
+bi2at
+bi2e
+3bii
+b2l
+3b4lim
+b4lu
+bo1
+bo3ric
+2bs
+2bt
+\n{2b"t}
+\n{b"ti4ne.}
+bu3
+1c
+4c.
+ca3ut
+\n{c"a2c}
+\n{c"atu5}
+2cc
+ce2a
+\n{ce2"t}
+2chi.
+2ci.
+ci3ale
+ci2o
+cis2
+ci3sp
+ciza2
+c4l
+2cm
+2c5n
+\n{copia2t"a}
+\n{co2"t}
+2cs
+2ct
+\n{2c"t}
+cu3im
+3cul
+\n{cu2"t}
+2cv
+1d
+4d.
+da4m
+\n{da2"t}
+2dc
+de4sc
+dez3in
+di2an
+\n{dia2t"a}
+2dj
+2dm
+2d1n
+do4il
+3du
+e1ac
+e1aj
+e1al
+\n{e1a"s}
+e1at
+\n{ea2"t}
+e1av
+ebu5i
+2ec
+eci2a
+ecla2re
+edi4ulu
+e3e
+ee2a
+1efa
+e1h
+e3i2a
+e3i2e
+e3ii
+e3il
+e3im
+e3in
+e3i2o
+e3i3s2
+e3it
+e3i4u
+\n{e1"i}
+2el
+e2m
+emon5
+2en
+e5ne
+e1o1
+e3on
+e1r
+2era
+\n{2er"a}
+2erc
+2e2s
+es3co
+es5ti
+\n{2e"s}
+\n{e3"si}
+\n{etan4"t}
+\n{2e"t}
+e3u
+\n{eu5"s}
+1evit
+e2x
+2ez
+\n{ez"a5}
+ezi3a
+e2z1o
+1f4
+2f.
+3fa
+\n{3f"a"s}
+2fi.
+fi3e
+3fo
+2ft
+f5tu
+1g2
+2g.
+\n{g"a3"t}
+2ghi.
+2gi.
+g4l
+2g3m
+2g3n
+go5n
+3gu3
+2g3v
+2h.
+2hi.
+hi2a
+hi3c
+hi4u
+2h1n
+2i1
+4i.
+3i2ac
+ia3g4
+i2ai
+\n{i2a"s}
+\n{ia2"t}
+\n{i3c"a}
+i2ed
+i3ia
+i3ie
+i3ii
+i3il
+i3in
+i3ir
+i3it
+\n{iitu2r"a}
+\n{i2"i}
+4ila
+i3le
+i3lo
+imateri6
+i2n
+i4n1ed
+\n{in2g"a}
+\n{in"ti4i}
+3inv
+i3od
+i3oni
+\n{io2"t}
+\n{ip"a5}
+i2s
+is3f
+4isp
+\n{i"s3t}
+i5ti
+\n{i"ti2a}
+\n{i3"ti2o}
+i3ua
+i3ul
+i3um
+i3und
+i3unu
+i3us
+i3ut
+iz3v
+\n{"i2}
+\n{"i3d}
+\n{"i3e}
+\n{"i3lo}
+\n{"ina3}
+\n{"in5"s}
+\n{"i3ri}
+\n{"i3r"i}
+\n{"ir5"s}
+\n{"i"s3t}
+\n{"i3t}
+\n{"i4ti}
+\n{"i3"t}
+\n{"i4"ti}
+\n{"i5"tii}
+\n{"i3z}
+1j
+2j.
+2jd
+2ji.
+\n{ji2"t}
+2jl
+j4u
+ju3t
+1k
+1l
+4l.
+\n{lara"ti2}
+\n{l"a2ti}
+\n{l"atu5}
+2lb
+2lc
+2ld
+le2a
+2lf
+2lg
+4li.
+li3a
+li3e
+li3o
+2lm
+2l5n
+2lp
+2ls
+\n{2l3"s}
+2lt
+\n{2l"t}
+3lu
+2lv
+1m
+2m.
+3ma
+\n{3m"a}
+2mb
+\n{mbl"in3}
+3me
+me2z
+2mf
+3mi
+4mi.
+\n{mi2"t}
+\n{3m"i}
+2m1n
+3mo
+mon4
+2mp
+2m3s2
+2mt
+\n{2m"t}
+3mu
+\n{mu2"t}
+2mv
+4n.
+3na
+4n1ad
+na3in
+\n{3n"a}
+2nc
+n2cis
+n2ciz
+2nd
+3ne
+ne1ab
+ne1an
+ne1ap
+4nef
+4n1eg
+ne3s2
+4nevi
+4n1ex
+2ng
+\n{ng3"at}
+3ni
+4ni.
+ni3ez
+\n{3n"i}
+n3j
+n1n
+3no
+\n{no4"s}
+n1r
+2n3s2
+ns3f
+\n{n4s"i}
+ns3po
+\n{n3"s2}
+\n{n4"si}
+2nt
+n5ti
+n5t4u
+\n{2n"t}
+5nu
+nu3a
+\n{nu3"a}
+nu5m
+nu3s2
+2nz
+o1ag
+o2al
+o2bi.
+2oca
+ocu5i
+2od
+odi2a
+o3e
+o3i2
+oiecti2
+oi3s2p
+omedi2e.
+om4n
+2on
+o1o
+opi3e
+opla2
+oplagi2
+o1ra
+\n{o1r"a}
+or2c
+o1re
+o1ri
+o2ric
+\n{o1r"i}
+o1ro
+or2te.
+o1ru
+os5ti
+\n{o3"si}
+\n{ota"ti4}
+o5ti
+ot3od
+o3u
+1p2
+2p.
+3pa
+\n{p"ar3"t}
+2p3c
+\n{pec"ti2}
+\n{pe2"t}
+2pi.
+pi2e
+pi3e.
+pi3ez
+pi3o
+\n{pi2"t}
+pi2z
+p4l
+\n{po4"s}
+\n{po2"t}
+2p3s
+\n{2p3"s}
+2p3t
+\n{2p3"t}
+\n{p4"ti.}
+pu3b4
+puri2e
+\n{pu4"s}
+4r.
+2rb
+2rc
+2rd
+r2e
+re2bi
+recizi2
+re3s2cr
+\n{re4"si}
+2rf
+2rg
+2r1h
+4ri.
+ri3a
+ri4ali
+\n{ri3e"t}
+ri3ez
+ri5mi
+2ri3un
+ri3v
+2rk
+2rl
+2rm
+2r1n
+\n{rna2"t}
+rografi6
+2rp
+2r1r
+2rs2
+r3sp
+r3st
+\n{2r3"s}
+2rt
+rtua2le
+\n{2r"t}
+ru3il
+ru3sp
+2rv
+2rz
+1s
+4s.
+5sa
+\n{5s"a}
+\n{s"a4m}
+\n{s"a4"s}
+2sc
+4sc.
+3s2co
+3se
+se2a
+se4e.
+ses2
+se3sp
+\n{se4"s}
+4s2f
+\n{5sf"i}
+3si
+si3p
+\n{3s"i}
+3s4l
+4sm
+s1n
+3so
+so3ric
+2sp
+2st
+sto3
+5su
+\n{su2"t}
+\n{2"s}
+\n{4"s.}
+\n{3"sa}
+\n{"sa2"t}
+\n{3"s"a2}
+\n{3"se}
+\n{1"si}
+\n{4"si.}
+\n{5"sii}
+\n{5"sil}
+\n{3"sin}
+\n{3"s"i}
+\n{4"s5n}
+\n{"snu5}
+\n{3"so}
+\n{"s2p}
+\n{"s2ti}
+\n{4"sti.}
+\n{4"s3tr}
+\n{3"su}
+1t2
+4t.
+ta3ut
+2t3c
+2t3d
+te2a
+te5ni
+\n{teri6al"a}
+te3s2p
+2t3f
+4ti.
+ti3a
+ti3e
+3tii.
+3til
+3tin
+\n{ti2"t}
+\n{2t"i.}
+t4l
+2t3m
+3tol
+3tor
+to2to
+3tru.
+3trul
+3truo
+4t3s2
+2t3t
+tu3a
+tu3im
+4t3un
+\n{tu4"s}
+4t3z
+\n{1"t}
+\n{2"t.}
+\n{3"ta}
+\n{3"t"a}
+\n{"te2"t}
+\n{2"ti.}
+\n{3"tia}
+\n{"ti3a.}
+\n{3"tie}
+\n{3"tii}
+\n{3"til}
+\n{"ti2"t}
+\n{3"tiu}
+\n{"tu3}
+\n{"tu5i}
+2u1
+6u.
+u2a.
+u2ad
+u3au
+\n{u"a3}
+\n{u"as2}
+u2bia
+u2b3l
+u2b1o
+ub3s2
+u3e
+4ugu
+u3i2a
+u3i2e
+u3in
+u3ir
+u3is
+u3it
+\n{u3i2"t}
+u3iz
+u2l
+u3la
+\n{u3l"a}
+u3le
+\n{u3lii}
+\n{u3l"i}
+u3lo
+umi5r
+ur2z
+u2s
+us2pr
+u4st
+\n{u3"s}
+\n{u4"st}
+u2to
+3utor
+u3ui
+u3um
+1v
+2v.
+ve5ni
+\n{ve2"t}
+ve2z
+2vi.
+\n{vi2"t}
+2v1n
+vorbito2
+3vr
+1x
+2x.
+3xa
+\n{3x"a}
+3xe
+xe2z
+3xi
+3xo
+3xu
+1z
+2z.
+\n{za2"t}
+2zb
+2z2g
+2zi.
+zi2an
+zi2ar
+3zii
+3zil
+z4m
+2z1n
+3z2ol
+3zon
+\n{zu2"t}
+2z2v
+\n{z3v"a}
+}
+\endgroup
+\relax\endinput
+% End of file ROHYPHEN.TEX \ No newline at end of file
diff --git a/language/romanian/RomanianTeX/romanian.dtx b/language/romanian/RomanianTeX/romanian.dtx
new file mode 100644
index 0000000000..4f70627356
--- /dev/null
+++ b/language/romanian/RomanianTeX/romanian.dtx
@@ -0,0 +1,1803 @@
+% \iffalse meta-comment %% ROMANIAN.DTX 1.3R <29.10.1996> %%
+%<*!driver>
+% \begin{macrocode}
+ %%
+ %% This file is part of the Romanian TeX system.
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ %% Romanian TeX, version 1.3R <29.10.1996> %%
+ %% (C) 1994-1996 Adrian Rezus [adriaan@{sci,cs}.kun.nl] %%
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\RomanianTeX{Romanian\TeX\/}% %%
+\def\RomanianTeXname{Romanian TeX}% %%
+\def\RomanianTeXid{1.3R}% %%
+\def\RomanianTeXversion{1996/10/29 v1.3R}% %%
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ %% Revision 1.3R [1996/]:[11/03]..[11/07][11/09]..[11/12]%%
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \end{macrocode}
+% ---------------- start of docstrip archive file --------------------
+%
+% \fi
+% \CheckSum{2271}
+%
+% \CharacterTable
+% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+% Digits \0\1\2\3\4\5\6\7\8\9
+% Exclamation \! Double quote \" Hash (number) \#
+% Dollar \$ Percent \% Ampersand \&
+% Acute accent \' Left paren \( Right paren \)
+% Asterisk \* Plus \+ Comma \,
+% Minus \- Point \. Solidus \/
+% Colon \: Semicolon \; Less than \<
+% Equals \= Greater than \> Question mark \?
+% Commercial at \@ Left bracket \[ Backslash \\
+% Right bracket \] Circumflex \^ Underscore \_
+% Grave accent \` Left brace \{ Vertical bar \|
+% Right brace \} Tilde \~}
+%
+% \DoNotIndex{\',\(,\),\-,\.,\/,\{,\},\^,\`,\|,\ ,\@,\x,\Z}
+% \DoNotIndex{\@M,\@m,\m@ne,\z@,\z@skip,\@ne,\tw@,sixt@@n}
+% \DoNotIndex{\count@,\dimen@,\advance,\day,\month,year,\relax}
+% \DoNotIndex{\begin,\end,\bgroup,\egroup,\begingroup,\endgroup}
+% \DoNotIndex{\bf,\em,\it,\rm,\tt,\textbf,\textit,\texttt,\emph}
+% \DoNotIndex{\expandafter,\noexpand,\string,\the,\ifhmode,\ifmmode}
+% \DoNotIndex{\ifcase,\or,\else,\fi,\if,\ifdim,\ifnum,\ifx}
+% \DoNotIndex{\do,\afterassignment,\number,\escapechar,\space}
+% \DoNotIndex{\def,\edef,\let,\newcommand,\undefined,\active}
+% \DoNotIndex{\accent,\box,\dp,\ht,\wd,\char,\chardef,\discretionary}
+% \DoNotIndex{\catcode,\csname,\endcsname,\hbox,\hskip,\kern}
+% \DoNotIndex{\font,\fontdimen,\scriptscriptstyle,\textstyle}
+% \DoNotIndex{\lccode,\lowercase,\sfcode,\spacefactor,\penalty}
+% \DoNotIndex{\mathchar,\mathchardef,\mathaccent,\varepsilon,\m@th}
+% \DoNotIndex{\empty,\@empty,\leavevmode,\makeatletter,\mbox}
+% \DoNotIndex{\errhelp,\errmessage,\message,\wlog,\write,\immediate}
+% \DoNotIndex{\lower,\raise,\sfcode,\spacefactor,\setbox,\toks}
+% \DoNotIndex{\documentclass,\documentstyle,\LaTeX,\LaTeXe,\TeX}
+% \DoNotIndex{\ProvidesPackage,\usepackage,\CodelineIndex,\cs}
+% \DoNotIndex{\input,\endinput,\DocInput}
+%
+% \originalTeX
+% \title{Romanian \TeX{} 1.3R\thanks{%
+% This file is accompanied by
+% a \LaTeXe{} \emph{installation module}
+% (file \texttt{romanian.ins}),
+% the Romanian \emph{hyphenation patterns}
+% (file \texttt{rohyphen.tex}),
+% version 1.1 of October 29, 1996, and
+% the \emph{end-user documentation}
+% (file \texttt{romanian.doc}).
+% [A table of contents for the current release of \RomanianTeX{}
+% can be found in the file \texttt{manifest[.romanian].txt}.]
+% Like its predecessors (essentially:
+% \texttt{romanian.tex}, version 1.2 of December 21, 1994 and
+% \texttt{romanian.sty}, version 1.2R of June 7, 1995),
+% the present design of \RomanianTeX{} is based on the
+% German \TeX{} style implementation [see
+% \texttt{german.dtx}, version 2.5c of May 1st, 1996,
+% \copyright{}~1995--1996 Bernd Raichle and DANTE e.V.,
+% \texttt{german.sty}
+% \copyright{}~1991--1996 Bernd Raichle and DANTE e.V., and
+% \texttt{german.tex}
+% \copyright{}~1987--1990 Hubert Partl].
+% \RomanianTeX{} 1.3R is a \emph{multi-lingual} \TeX{} system.
+% In particular, if set in German \TeX{}-mode, \RomanianTeX{}
+% emulates entirely the German \TeX{} (current version), and,
+% unlike in previous versions, a bi-lingual -- German/Romanian --
+% \RomanianTeX{} configuration does not require \texttt{german.sty}
+% any more. As expected, like the German \TeX{}, \RomanianTeX{}
+% is \emph{not} compatible with the \textsc{babel}\, system
+% [\copyright{}~1989--1995 Johannes~L. Braams], and -- on
+% specific installations using short file-name conventions --
+% one should take similar precautions as regards possible
+% file-name conflicts.}}
+% \date{October 29, 1996}
+% \author{Adrian Rezu\c{s}\thanks{%
+% E-mail: \texttt{adriaan@cs.kun.nl}}}
+% \maketitle
+%
+% \StopEventually{}
+%
+% \begin{abstract}
+% This document describes the \RomanianTeX{} package, version
+% 1.3R. \RomanianTeX{} is a \emph{multi-lingual} environment
+% for type-setting Romanian texts with Plain \TeX, \LaTeX{}~2.09
+% and/or \LaTeXe{}. Its implementation strategy is similar to
+% the design of the German \TeX{} [v2.5c |<1.05.1996>| and older]:
+% \RomanianTeX{} allows the input of the Romanian diacritics and
+% quotes by analogous double quote macros. As a multi-lingual
+% \TeX{} system, if set in `originalTeX', `germanTeX' or `frenchTeX'
+% mode, \RomanianTeX{} emulates the original (US/UK) English,
+% German or French \TeX{}, resp.\ (In particular, a bi-lingual
+% -- German/Romanian -- \TeX{} configuration does \emph{not}
+% require \texttt{german.sty} any more.)
+% \end{abstract}
+% \vfill\eject
+%
+% \tableofcontents
+% \vfill\eject
+%
+% \ifx\emergencystretch\undefined \else
+% \setlength{\emergencystretch}{2em}
+% \fi
+% \hbadness=2000
+%
+% \section{Package identification}
+%
+% In order to function properly, the macro-code of \RomanianTeX{}
+% must be loaded only \emph{once} in a \TeX{} system.
+%
+% \subsection{The file banner}
+%
+% The file banner declares, at the very beginning, several
+% \emph{global} identifiers for the \RomanianTeX{} package.
+% The print-names
+%
+% |\RomanianTeX|, % TeX print-name
+%
+% |\RomanianTeXname|, % ASCII print-name
+%
+% |\RomanianTeXid|, % ASCII: |<version>|
+%
+% |\RomanianTeXversion| % ASCII: |<date>| + |<version>|
+% \par\noindent
+% are exported in every file using \texttt{romanian.sty} and can be
+% changed globally.
+%
+% \subsection{The internal self-identifier}
+%
+% Internally, any specific \RomanianTeX{} macro-construct is
+% identified by a |\csname|-prefix, a |<system-self-id>|
+% (current value: \texttt{ro@}).
+%
+% This `non-public' feature of the package is meant to avoid
+% |\csname| name-conflicts with other \TeX{} internals and/or
+% other packages.
+%
+% \subsection{The self-identifty test}
+%
+% The self-identity test is performed upon system initialization;
+% if \RomanianTeX{} is not yet loaded, the rest of the file is
+% going to be processed:
+%
+% \begin{macrocode}
+\expandafter\ifx\csname romanianTeX\endcsname\relax
+ \else \romanianTeX \expandafter\endinput
+\fi
+% \end{macrocode}
+%
+% \subsection{Broadcast package identity}
+%
+% Upon loading, \RomanianTeX{} identifies itself. Since the package
+% may function as a `style option' for Plain \TeX{}, as well as for
+% different \LaTeX{}-versions, this is done by a |\message| command.
+%
+% \begin{macrocode}
+\message{\RomanianTeXname, \RomanianTeXversion.}
+% \end{macrocode}
+%
+% \subsection{\LaTeXe{} package identification}
+%
+% \LaTeXe{} declares \RomanianTeX{} as a `package'. Other
+% packages could possibly test the command |\ProvidesPackage|
+% only for \texttt{undefined}, so we must prevent the fact that
+% |\ProvidesPackage| might have the meaning |\relax| at this
+% point (by a local test, within a group construct).
+%
+% \begin{macrocode}
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname ProvidesPackage\endcsname\relax\else
+\ProvidesPackage{romanian}[\RomanianTeXversion Package Romanian TeX]
+\fi
+% \end{macrocode}
+%
+% \section{Accessing \TeX{} internals}
+%
+% As expected, \RomanianTeX{} controls the \TeX{} internals by
+% changing the \textit{category code} of the |@|-symbol to
+% the `letter'-category. On completing the required modifications
+% in the underlying \TeX{} behavior, \RomanianTeX{} reverts to
+% the `public' \TeX{} control, by disallowing |@|-|<csname>|'s.
+%
+% While in control of the \TeX{} internals, we must be also able
+% to load \RomanianTeX{} with a simple |\input| command (in Plain
+% \TeX{}, for instance). So the \textit{category code} of the
+% |@|-symbol must be saved \emph{before} performing the change
+% to the `letter'-category.
+%
+% \begin{macrocode}
+\chardef\atcode=\catcode`\@ % save_current_category_code_of |@|
+\catcode`\@=11 % % \makeatletter
+% \end{macrocode}
+%
+% \section{Compatibility macros}
+%
+% \subsection{Low-level macros}
+%
+% As \RomanianTeX{} macros must be possibly usable outside a
+% \LaTeX{}-environment, we must re-define some \LaTeX{}-macros.
+%
+% \subsubsection{The test for `undefined'}
+%
+% We shall need later the test-command |\@ifundefined| (not in
+% Plain \TeX{}). The discriminating action of this macro is encoded
+% by using explicit \emph{selectors} (actually \emph{projections}
+% \textbf{first} and \textbf{second}, see below).
+%
+% \begin{macrocode}
+\expandafter\ifx\csname @ifundefined\endcsname\relax
+ \def\@ifundefined#1{%
+ \expandafter\ifx\csname #1\endcsname\relax
+ \expandafter\ro@DQfirst\else\expandafter\ro@DQsecond\fi}
+\fi
+% \end{macrocode}
+%
+% \subsubsection{The selectors}
+%
+% These selectors are made into \RomanianTeX{} specific macros, by
+% using the global |<system-self-id>| (i.e., the |\ro@|-prefix):
+%
+% \begin{macrocode}
+\def\ro@DQfirst#1#2{#1}
+\def\ro@DQsecond#1#2{#2}
+% \end{macrocode}
+%
+% \subsection{Compatibility macros for NFSS~2}
+%
+% In what follows, we assume that the NFSS~2 is present whenever
+% the command |\DeclareTextSymbol| is defined:
+%
+% \begin{macrocode}
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname DeclareTextSymbol\endcsname\relax \else
+% \end{macrocode}
+%
+% Otherwise, we must learn to live with what we have got\ldots
+%
+% \subsubsection{NFSS~2 macro emulations}
+%
+% \RomanianTeX{} would yield poor results with older versions of
+% \LaTeXe{} and/or NFSS~2. The following piece of macro-code is
+% self-explanatory: if the command |\ProvideTextCommandDefault|
+% is not currently available, we are in the worst possible case
+% and will strongly recommend system-updating!
+%
+% \begin{macrocode}
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname ProvideTextCommandDefault\endcsname\relax
+ \immediate\write17{}
+ \immediate\write17{%
+!! This LaTeX2e-system requires updating.}
+ \immediate\write17{!!}
+ \immediate\write17{}
+\fi
+% \end{macrocode}
+%
+% The NFSS~2 allows a font parameter |\fontencoding|.
+% We also assume that the command |\providecommand| is available.
+%
+% We emulate next a few NFSS~2 macros for environments in need of them.
+%
+% |\UseTextSymbol{|\meta{encoding}|}{|\meta{symbol}|}|
+% is used for the encoding-dependent font-selection with NFSS~2:
+%
+% \begin{macrocode}
+\@ifundefined{UseTextSymbol}{%
+ \def\UseTextSymbol#1#2{{\fontencoding{#1}\selectfont #2}}
+}{}
+% \end{macrocode}
+% |\UseTextAccent{|\meta{encoding}|}{|\meta{accent}|}{|\meta{base}|}|
+% choses an accent symbol from a font with a given encoding,
+% resp.\ with one diverging from its actual encoding.
+%
+% \begin{macrocode}
+\@ifundefined{UseTextAccent}{%
+ \def\UseTextAccent#1#2#3{%
+ {\let\@curr@enc\f@encoding
+ \fontencoding{#1}\selectfont
+ #2{\fontencoding\@curr@enc\selectfont #3}}}%
+}{}
+% \end{macrocode}
+% By |\ProvideTextCommand{|\meta{csname}|}{|\meta{encoding}|}[|^^A
+% \meta{number}|][|\meta{default}|]{|\meta{def}|}|
+% one defines a command applying only to a given encoding,
+% just in case it is not yet defined for this encoding.
+%
+% \begin{macrocode}
+\@ifundefined{ProvideTextCommand}{%
+ \def\ProvideTextCommand#1#2{% misses \RobustTextCommand{#1}{ etc. }
+ \expandafter\providecommand\csname #2\string#1\endcsname}%
+}{}
+% \end{macrocode}
+% |\ProvideTextCommandDefault{|\meta{command}|}{|\meta{def}|}|
+% yields a default definition for all those encodings for which no
+% explicit definition is available.
+%
+% \begin{macrocode}
+\@ifundefined{ProvideTextCommandDefault}{%
+ \def\ProvideTextCommandDefault#1{%
+ \ProvideTextCommand{#1}{U}}%
+}{}
+% \end{macrocode}
+% |\DeclareTextCompositeCommand{|\meta{command}|}{|^^A
+% \meta{encoding}|}{|\meta{char}|}{|\meta{def}|}|
+% enables an easy way of defining the diacritics-input.
+%
+% The following definition relies on \LaTeXe{}/NFSS~2-internals.
+%
+% \begin{macrocode}
+\@ifundefined{DeclareTextCompositeCommand}{%
+ \def\DeclareTextCompositeCommand#1#2#3#4{% a `dummy' text composite
+ \DeclareTextComposite{#1}{#2}{#3}{`\Z}% redefine the command
+ \expandafter\def\csname\expandafter\string\csname
+ #2\endcsname\string#1-\string#3\endcsname##1##2{#4}}%
+}{}
+% \end{macrocode}
+%
+% \subsubsection{Macros for text symbols}
+%
+% We establish the \texttt{OT1}-defaults for the accents and symbols
+% used later:
+%
+% |\"|, % accent: German, French,
+%
+% |\^|, % accent: Romanian, French,
+%
+% |\c|, % accent: Romanian, French,
+%
+% |\u|, % accent: Romanian,
+%
+% |\i|, % symbol: Romanian, German, French,
+%
+% |\ss|, % symbol: German.
+%
+% \begin{macrocode}
+\ProvideTextCommandDefault{\"}{\UseTextAccent{OT1}{\"}} % GF
+\ProvideTextCommandDefault{\^}{\UseTextAccent{OT1}{\^}} % RF
+\ProvideTextCommandDefault{\c}{\UseTextAccent{OT1}{\c}} % RF
+\ProvideTextCommandDefault{\u}{\UseTextAccent{OT1}{\u}} % R
+\ProvideTextCommandDefault{\i}{\UseTextSymbol{OT1}\i} % RGF
+\ProvideTextCommandDefault{\ss}{\UseTextSymbol{OT1}\ss} % G
+% \end{macrocode}
+%
+% We provide also symbolic names for symbols used in the macros
+% for double quotes. As ever, the defaults are taken from the
+% fonts with a~\texttt{OT1} encoding.
+%
+% The macro-encoding for
+% \romanianTeX "`\ldots"' \originalTeX and {\glq}\ldots{\grq}:
+%
+% \begin{macrocode}
+\@ifundefined{textquotedblleft}{%
+ \ProvideTextCommandDefault{\textquotedblleft}{%
+ \UseTextSymbol{OT1}\textquotedblleft}%
+ \DeclareTextSymbol{\textquotedblleft}{OT1}{92}% or: ...{OT1}{``}
+% \end{macrocode}
+%
+% \begin{macrocode}
+ \DeclareTextSymbol{\textquotedblleft}{T1}{16}%
+}{}
+\@ifundefined{textquotedblright}{%
+ \ProvideTextCommandDefault{\textquotedblright}{%
+ \UseTextSymbol{OT1}\textquotedblright}%
+ \DeclareTextSymbol{\textquotedblright}{OT1}{`\"}% or: ...{OT1}{''}
+% \end{macrocode}
+%
+% \begin{macrocode}
+ \DeclareTextSymbol{\textquotedblright}{T1}{17}%
+}{}
+\@ifundefined{textquoteleft}{%
+ \ProvideTextCommandDefault{\textquoteleft}{%
+ \UseTextSymbol{OT1}\textquoteleft}%
+ \DeclareTextSymbol{\textquoteleft}{OT1}{`\`}%
+ \DeclareTextSymbol{\textquoteleft}{T1}{`\`}%
+}{}
+\@ifundefined{textquoteright}{
+ \ProvideTextCommandDefault{\textquoteright}{%
+ \UseTextSymbol{OT1}\textquoteright}%
+ \DeclareTextSymbol{\textquoteright}{OT1}{`\'}%
+ \DeclareTextSymbol{\textquoteright}{T1}{`\'}%
+}{}
+\@ifundefined{quotesinglbase}{%
+ \DeclareTextSymbol{\quotesinglbase}{T1}{13}%
+}{}
+\@ifundefined{quotedblbase}{%
+ \DeclareTextSymbol{\quotedblbase}{T1}{18}%
+}{}
+% \end{macrocode}
+%
+% The macro-encoding for the French quotes
+% \romanianTeX ">\ldots"< \originalTeX and {\frq}\ldots{\flq}:
+%
+% \begin{macrocode}
+\@ifundefined{guillemotleft}{%
+ \DeclareTextSymbol{\guillemotleft}{T1}{19}%
+}{}
+\@ifundefined{guillemotright}{%
+ \DeclareTextSymbol{\guillemotright}{T1}{20}%
+}{}
+\@ifundefined{guilsinglleft}{%
+ \DeclareTextSymbol{\guilsinglleft}{T1}{14}%
+}{}
+\@ifundefined{guilsinglright}{%
+ \DeclareTextSymbol{\guilsinglright}{T1}{15}%
+}{}
+% \end{macrocode}
+%
+% The most important double/single quote macros have been thereby defined.
+%
+% \begin{macrocode}
+\fi
+% \end{macrocode}
+%
+% \section{Low-level commands}
+%
+% \RomanianTeX{} uses low-level \TeX{} commands for the implementation
+% of the double quote mechanism, the specific Romanian diacritics,
+% the trema's, the German \emph{Uml\"aute}, etc. Some of them might
+% be useful for the end-user.
+%
+% We must be able to distinguish the double quotes usage of \RomanianTeX{}
+% from the way of coping with the double quotes in German \TeX{}
+% [cf.\ \texttt{german.dtx} resp.\ \texttt{german.sty}, version 2.5c,
+% |<1.05.1996>|].
+%
+% \subsection{Protect fragile commands}
+%
+% \LaTeX{} uses the command |\protect|, in order to protect \emph{fragile}
+% commands. This has to be re-defined for Plain \TeX{} only.
+%
+% If undefined, |\protect| is defined as |\relax|.
+%
+% \begin{macrocode}
+\expandafter\let\expandafter\protect\csname protect\endcsname
+% \end{macrocode}
+%
+% \subsection{Local hyphenation}
+%
+% The command |\allowhyphens| informs \TeX{} about the fact that
+% a hyphenable word-part will follow (by a |\penalty|-) and
+% that a new one begins (by a |\hskip|-command, introducing a
+% \textit{glue}):
+%
+% \begin{macrocode}
+\def\allowhyphens{\penalty\@M \hskip\z@skip}
+% \end{macrocode}
+% \emph{Provisions for the German \TeX{}-mode}.
+% The |\ss|-symbol (used to input a \emph{scharfes es}) corresponds
+% to the symbol with position~|^^Y| in the~\texttt{OT1} encoding.
+% So, in order to be able to hyphenate words with |\ss|, it is enough
+% to make its |\lccode| non-null. For a~|\ss| taken from a different
+% font this must be done in a macro file re-defining the font and
+% the~|\ss| command.
+%
+% \begin{macrocode}
+\lccode`\^^Y=`\^^Y
+% \end{macrocode}
+%
+% There is no harm done if we leave this active in \RomanianTeX{}.
+%
+% \subsection{The Romanian/German double quotes}
+%
+% The Romanian/German double quotes are obtained by box-manipulation
+% from their English analogues.
+%
+% The macro |\set@low@box| lowers its argument (a symbol) at the
+% level of the usual comma:
+%
+% \begin{macrocode}
+\def\set@low@box#1{\setbox\tw@\hbox{,}\setbox\z@\hbox{#1}%
+ \setbox\z@\hbox{\dimen@\ht\z@ \advance\dimen@ -\ht\tw@
+ \lower\dimen@\box\z@}%
+ \ht\z@\ht\tw@ \dp\z@\dp\tw@}
+% \end{macrocode}
+%
+% After a box-command, \TeX\ sets the |\spacefactor| to~1000:
+% we must save its value:
+%
+% \begin{macrocode}
+\def\save@sf@q#1{{\ifhmode
+ \edef\@SF{\spacefactor\the\spacefactor}\else
+ \let\@SF\empty \fi \leavevmode #1\@SF}}
+% \end{macrocode}
+%
+% \subsection{Uml\"aute and trema's}
+%
+% The macro |\newumlaut| replaces the original \TeX{}-primitive by a
+% construct yielding a better match for the real (German) typography
+% (viz., \emph{Uml\"{a}ute mit etwas tieferen Umlautpunkten}).
+% [See \texttt{german.dtx} for details.]
+%
+% \begin{macrocode}
+\expandafter\ifx\csname roU@D\endcsname\relax
+ \csname newdimen\endcsname\roU@D
+\fi
+\def\newumlaut#1{{\roU@D 1ex%
+ {\setbox\z@\hbox{\char127}\dimen@-.45ex\advance\dimen@\ht\z@
+ \ifdim 1ex<\dimen@ \fontdimen5\font\dimen@ \fi}%
+ \accent127\fontdimen5\font\roU@D #1}\allowhyphens}
+% \end{macrocode}
+%
+% For trema's, the original \TeX{} |\accent|-primitives are used.
+% [See \texttt{german.dtx}.]
+%
+% \begin{macrocode}
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname DeclareTextSymbol\endcsname\relax
+ \def\highumlaut#1{{\accent127 #1}\allowhyphens}
+\else
+ \def\highumlaut#1{\"{#1}\allowhyphens}
+\fi
+% \end{macrocode}
+%
+% \subsection{Activating the double quote mechanism}
+%
+% The macros |\mDQon| and |\mDQoff| are used in order to activate
+% and/or de-activate the double quote mechanism.
+%
+% \begin{macrocode}
+\def\mDQon{\catcode`\"\active}
+\def\mDQoff{\catcode`\"12\relax}
+% \end{macrocode}
+%
+% The symbolic names for the input notation are as follows:
+%
+% \begin{macrocode}
+\begingroup \mDQoff
+\def\x{\endgroup
+ \def\@nUML{\"}% normal mode
+ \def\@mUML{\ddot}% math mode (\mathaccent"707F)
+ \def\@nBRV{\u}% normal mode
+ \def\@mBRV{\breve}% math mode
+ \def\@nHAT{\^}% normal mode
+ \def\@mHAT{\hat}% math mode
+ \def\@nCDL{\c}% normal mode
+ \def\@mCDL{\mathchar"7018 }% math mode
+ \def\@SS{\mathchar"7019 }% math mode (revise)
+ \def\DQ{"}}% or: \textquotedbl (?)
+\x
+% \end{macrocode}
+%
+% The double quotes are now added to |\dospecials| and |\@sanitize|
+% (this is intended for \TeX{} and/or \LaTeX{}-handling):
+%
+% \begin{macrocode}
+\begingroup
+ \def\do{\noexpand\do\noexpand}%
+ \edef\x{\endgroup
+ \def\noexpand\dospecials{\dospecials\do\"}}%
+\x
+% \end{macrocode}
+%
+% But |\@sanitize| is defined only for \LaTeX\, so we ask about it:
+%
+% \begin{macrocode}
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname @sanitize\endcsname\relax \else
+ \begingroup
+ \def\@makeother{\noexpand\@makeother\noexpand}%
+ \edef\x{\endgroup
+ \def\noexpand\@sanitize{\@sanitize\@makeother\"}}%
+ \x
+\fi
+% \end{macrocode}
+%
+% \subsection{Compatibility with other versions}
+%
+% \emph{Provisions for the German \TeX{}-mode}.
+% The German \TeX{} commands |\3| and |\ck| are obsolete: the next piece
+% of macro-code is only maintained for downward-compatibility reasons.
+%
+% \begin{macrocode}
+\let\ro@original@three=\3 % \3 may be defined/undefined
+\def\ck{\penalty\@M\discretionary{k-}{}{c}k\allowhyphens}
+% \end{macrocode}
+%
+% \section{Romanian [German/French] double quotes}
+%
+% The typographically `legal' Romanian double quotes are those that
+% are also `legal' in German. We have also the implicit rule of
+% (typographical) taste that `quotes inside quotes' have to be
+% `French'\ldots\, The corresponding (German) single quotes are
+% \emph{not recommended} in Romanian typography. On the other hand,
+% the English double/single quotes are -- as in German, French, etc.
+% -- \emph{typographically illegal} in their \emph{left}-variant,
+% i.e., if used at the beginning of a word.
+%
+% The macro-constructs:
+%
+% |\glqq|, |\grqq|, % for German/Romanian double quotes
+%
+% |\flqq|, |\frqq|, % for French double quotes
+%
+% |\glq|, |\grq|, % for German/Romanian single quotes
+%
+% |\flq|, |\frq|, % for French single quotes
+% \par\noindent
+% must be defined for the NFSS~2, and so for \LaTeXe{}, as being
+% encoding-dependent.
+%
+% \begin{macrocode}
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname DeclareTextSymbol\endcsname\relax
+% \end{macrocode}
+%
+% \subsection{\ldots~without NFSS~2}
+%
+% Approximations: macros for the Romanian/German double and single quotes
+% \romanianTeX "`\ldots"' \originalTeX and {\glq}\ldots{\grq}.
+%
+% \begin{macrocode}
+\def\@glqq{\save@sf@q{\set@low@box{''\/}\box\z@
+ \kern-.04em\allowhyphens}}
+\def\glqq{\protect\@glqq}
+\def\@grqq{\save@sf@q{\kern-.07em``\kern.07em}}% ('')
+\def\grqq{\protect\@grqq}
+\def\@glq{\save@sf@q{\set@low@box{'\/}\box\z@
+ \kern-.04em\allowhyphens}}
+\def\glq{\protect\@glq}
+\def\@grq{\save@sf@q{\kern-.0125em`\kern.07em}}
+\def\grq{\protect\@grq}
+% \end{macrocode}
+%
+% Approximations: macros for the French double/single quotes
+% \romanianTeX "<\ldots"> \originalTeX and {\flq}\ldots{\frq}.
+%
+% \begin{macrocode}
+\def\@flqq{\relax\ifmmode \ll \else \save@sf@q{\penalty\@M
+ \raise .27ex\hbox{$\m@th\scriptscriptstyle \ll $}%
+ \allowhyphens}\fi}
+\def\flqq{\protect\@flqq}
+\def\@frqq{\relax\ifmmode \gg \else \save@sf@q{\penalty\@M
+ \raise .27ex\hbox{$\m@th\scriptscriptstyle \gg $}%
+ \allowhyphens}\fi}
+\def\frqq{\protect\@frqq}
+\def\@flq{\relax\ifmmode <\else \save@sf@q{\penalty\@M
+ \raise .27ex\hbox{$\m@th\scriptscriptstyle <$}\allowhyphens}\fi}
+\def\flq{\protect\@flq}
+\def\@frq{\relax\ifmmode >\else \save@sf@q{\penalty\@M
+ \raise .27ex\hbox{$\m@th\scriptscriptstyle >$}\allowhyphens}\fi}
+\def\frq{\protect\@frq}
+% \end{macrocode}
+% [See \texttt{german.dtx} for details.]
+%
+% \begin{macrocode}
+\else
+% \end{macrocode}
+%
+% \subsection{\ldots~with NFSS~2}
+%
+% In the newer \LaTeXe{} releases, |\glqq| corresponds to |\quotedblbase|.
+% The definition is extended in a relatively simple way to the
+% \texttt{OT1}-encoded fonts.
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\glqq}{%
+ \ifmmode\hbox{\quotedblbase}\else\quotedblbase\fi}
+\ProvideTextCommandDefault{\quotedblbase}{%
+ \UseTextSymbol{OT1}\quotedblbase}
+\ProvideTextCommand{\quotedblbase}{OT1}{%
+ \save@sf@q{\set@low@box{\textquotedblright\/}\box\z@
+ \kern-.04em\allowhyphens}}
+% \end{macrocode}
+%
+% For |\grqq| there is no \LaTeXe{} counterpart: we use the older version.
+% [For the \texttt{T1}-encoding, see details in \texttt{german.dtx}.]
+%
+% \begin{macrocode}
+\ProvideTextCommand{\grqq}{T1}{\textquotedblleft}
+\ProvideTextCommand{\grqq}{OT1}{%
+ \save@sf@q{\kern-.07em%
+ \ifmmode\hbox{\textquotedblleft}\else\textquotedblleft\fi
+ \kern.07em\relax}}
+\ProvideTextCommandDefault{\grqq}{\UseTextSymbol{OT1}\grqq}
+% \end{macrocode}
+%
+% Define correspondingly the German/Romanian single quotes
+% |\glq| and |\grq|\,\ldots
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\glq}{%
+ \ifmmode\hbox{\quotesinglbase}\else\quotesinglbase\fi}
+\ProvideTextCommandDefault{\quotesinglbase}{%
+ \UseTextSymbol{OT1}\quotesinglbase}
+\ProvideTextCommand{\quotesinglbase}{OT1}{%
+ \save@sf@q{\set@low@box{\textquoteright\/}\box\z@
+ \kern-.04em\allowhyphens}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\ProvideTextCommand{\grq}{T1}{\textquoteleft}
+\ProvideTextCommand{\grq}{OT1}{%
+ \save@sf@q{\kern-.0125em%
+ \ifmmode\hbox{\textquoteleft}\else\textquoteleft\fi
+ \kern.07em\relax}}
+\ProvideTextCommandDefault{\grq}{\UseTextSymbol{OT1}\grq}
+% \end{macrocode}
+%
+% \ldots\,and the French quotes (`guillemots'), both double and single:
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\flqq}{%
+ \ifmmode\hbox{\guillemotleft}\else\guillemotleft\fi}
+\ProvideTextCommandDefault{\guillemotleft}{%
+ \UseTextSymbol{OT1}\guillemotleft}
+\ProvideTextCommand{\guillemotleft}{OT1}{%
+ \ifmmode \ll \else \save@sf@q{\penalty\@M
+ \raise .27ex\hbox{$\m@th\scriptscriptstyle \ll $}%
+ \allowhyphens}\fi}
+\DeclareRobustCommand{\frqq}{%
+ \ifmmode\hbox{\guillemotright}\else\guillemotright\fi}
+\ProvideTextCommandDefault{\guillemotright}{%
+ \UseTextSymbol{OT1}\guillemotright}
+\ProvideTextCommand{\guillemotright}{OT1}{%
+ \ifmmode \gg \else \save@sf@q{\penalty\@M
+ \raise .27ex\hbox{$\m@th\scriptscriptstyle \gg $}%
+ \allowhyphens}\fi}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\flq}{%
+ \ifmmode\hbox{\guilsinglleft}\else\guilsinglleft\fi}
+\ProvideTextCommandDefault{\guilsinglleft}{%
+ \UseTextSymbol{OT1}\guilsinglleft}
+\ProvideTextCommand{\guilsinglleft}{OT1}{%
+ \ifmmode <\else \save@sf@q{\penalty\@M
+ \raise .27ex\hbox{$\m@th\scriptscriptstyle <$}\allowhyphens}\fi}
+\DeclareRobustCommand{\frq}{%
+ \ifmmode\hbox{\guilsinglright}\else\guilsinglright\fi}
+\ProvideTextCommandDefault{\guilsinglright}{%
+ \UseTextSymbol{OT1}\guilsinglright}
+\ProvideTextCommand{\guilsinglright}{OT1}{%
+ \ifmmode >\else \save@sf@q{\penalty\@M
+ \raise .27ex\hbox{$\m@th\scriptscriptstyle >$}\allowhyphens}\fi}
+% \end{macrocode}
+%
+% The Romanian/German and the French double/single quote macros have
+% been thereby defined.
+%
+% \begin{macrocode}
+\fi
+% \end{macrocode}
+%
+% \section{Uml\"aute and trema's: macros}
+%
+% The treatement of the macros for trema's and the German
+% \emph{Uml\"aute} must take into account the presence or the
+% absence of the NFSS~2.
+%
+% \begin{macrocode}
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname DeclareTextSymbol\endcsname\relax
+% \end{macrocode}
+%
+% \subsection{\ldots~without NFSS~2}
+%
+% The internal switch-commands |\umlauthigh| and |\umlautlow| are
+% defined first for situations without NFSS~2.
+%
+% \begin{macrocode}
+\def\umlauthigh{\def\"##1{{\accent127 ##1}}}
+\def\umlautlow{\def\"{\protect\newumlaut}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\else
+% \end{macrocode}
+%
+% \subsection{\ldots~with NFSS~2}
+%
+% For situations where the NFSS~2 is available, this is more involved:
+%
+% \begin{macrocode}
+\def\umlauthigh{\def\ro@OTumlaut##1{{\accent 127 ##1}}}
+\def\umlautlow{\def\ro@OTumlaut{\protect\newumlaut}}
+\umlauthigh
+% \end{macrocode}
+%
+% For fonts with a~\texttt{OT1} and a~\texttt{T1} encoding, one can
+% use standard definitions. [\textbf{Note}. Some of the following are
+% \emph{not} in \texttt{german.sty}.]
+%
+% \begin{macrocode}
+\DeclareTextAccent{\"}{T1}{4}
+\DeclareTextAccent{\"}{OT1}{127}
+\DeclareTextCompositeCommand{\"}{OT1}{a}{\ro@OTumlaut{a}}% -
+\DeclareTextCompositeCommand{\"}{OT1}{A}{\ro@OTumlaut{A}}% -
+\DeclareTextCompositeCommand{\"}{OT1}{e}{\ro@OTumlaut{e}}% -
+\DeclareTextCompositeCommand{\"}{OT1}{E}{\ro@OTumlaut{E}}% -
+\DeclareTextCompositeCommand{\"}{OT1}{\i}{\ro@OTumlaut{\i}}% -
+\DeclareTextCompositeCommand{\"}{OT1}{I}{\ro@OTumlaut{I}}% -
+\DeclareTextCompositeCommand{\"}{OT1}{o}{\ro@OTumlaut{o}}% +
+\DeclareTextCompositeCommand{\"}{OT1}{O}{\ro@OTumlaut{O}}% +
+\DeclareTextCompositeCommand{\"}{OT1}{u}{\ro@OTumlaut{u}}% +
+\DeclareTextCompositeCommand{\"}{OT1}{U}{\ro@OTumlaut{U}}% +
+\DeclareTextComposite{\"}{T1}{a}{228}% +
+\DeclareTextComposite{\"}{T1}{A}{196}% -
+\DeclareTextComposite{\"}{T1}{e}{235}% -
+\DeclareTextComposite{\"}{T1}{E}{203}% -
+\DeclareTextComposite{\"}{T1}{\i}{239}% -
+\DeclareTextComposite{\"}{T1}{I}{207}% -
+\DeclareTextComposite{\"}{T1}{o}{246}% -
+\DeclareTextComposite{\"}{T1}{O}{214}% -
+\DeclareTextComposite{\"}{T1}{u}{252}% -
+\DeclareTextComposite{\"}{T1}{U}{220}% -
+% \end{macrocode}
+%
+% \begin{macrocode}
+\fi
+% \end{macrocode}
+%
+% \section{The Romanian diacritics: macros}
+%
+% The Romanian \emph{breve-, hat-}, and \emph{cedilla}-macros are
+% treated differently if the NFSS~2 is present or not.
+%
+% \begin{macrocode}
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname DeclareTextSymbol\endcsname\relax
+% \end{macrocode}
+%
+% \subsection{\ldots~without NFSS~2}
+%
+% The macros are defined first for situations without the NFSS~2.
+%
+% \begin{macrocode}
+\def\@nBRV{\def\u##1{{\accent21 ##1}}}
+\def\@nHAT{\def\^##1{{\accent94 ##1}}}
+\def\@nCDL{% cf. \c{#1} in Plain TeX
+\def\c##1{{\setbox\z@\hbox{##1}\ifdim\ht\z@=1ex{\accent24 ##1}%
+ \else{\ooalign{\unhbox\z@\crcr\hidewidth\char24\hidewidth}}\fi}}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\else
+% \end{macrocode}
+%
+% \subsection{\ldots~with NFSS~2}
+%
+% For situations with the NFSS~2 is available, one has:
+%
+% \begin{macrocode}
+\def\@rBRV{\def\ro@OTbrv##1{{\accent 21 ##1}}}
+\def\@rHAT{\def\ro@OThat##1{{\accent 94 ##1}}}
+\def\@rCDL{% cf. \c{#1} in Plain TeX
+\def\ro@OTcdl##1{{\setbox\z@\hbox{##1}\ifdim\ht\z@=1ex{\accent24 ##1}%
+ \else{\ooalign{\unhbox\z@\crcr\hidewidth\char24\hidewidth}}\fi}}}
+\@rBRV
+\@rHAT
+\@rCDL
+% \end{macrocode}
+%
+% For fonts with a~\texttt{OT1} and a~\texttt{T1} encoding,
+% one can use standard definitions.
+%
+% \begin{macrocode}
+\DeclareTextAccent{\u}{T1}{8}
+\DeclareTextAccent{\^}{T1}{2}
+\DeclareTextAccent{\c}{T1}{11}
+\DeclareTextAccent{\u}{OT1}{21}
+\DeclareTextAccent{\^}{OT1}{94}
+\DeclareTextAccent{\c}{OT1}{24}
+\DeclareTextCompositeCommand{\u}{OT1}{a}{\ro@OTbrv{a}}%
+\DeclareTextCompositeCommand{\u}{OT1}{A}{\ro@OTbrv{A}}%
+\DeclareTextCompositeCommand{\^}{OT1}{a}{\ro@OThat{a}}%
+\DeclareTextCompositeCommand{\^}{OT1}{A}{\ro@OThat{A}}%
+\DeclareTextCompositeCommand{\^}{OT1}{\i}{\ro@OThat{\i}}%
+\DeclareTextCompositeCommand{\^}{OT1}{I}{\ro@OThat{I}}%
+\DeclareTextCompositeCommand{\c}{OT1}{s}{\ro@OTcdl{s}}%
+\DeclareTextCompositeCommand{\c}{OT1}{S}{\ro@OTcdl{S}}%
+\DeclareTextCompositeCommand{\c}{OT1}{t}{\ro@OTcdl{t}}%
+\DeclareTextCompositeCommand{\c}{OT1}{T}{\ro@OTcdl{T}}%
+\DeclareTextComposite{\u}{T1}{a}{160}
+\DeclareTextComposite{\u}{T1}{A}{128}
+\DeclareTextComposite{\^}{T1}{a}{226}
+\DeclareTextComposite{\^}{T1}{A}{194}
+\DeclareTextComposite{\^}{T1}{\i}{238}
+\DeclareTextComposite{\^}{T1}{I}{206}
+\DeclareTextComposite{\c}{T1}{s}{179}
+\DeclareTextComposite{\c}{T1}{S}{147}
+\DeclareTextComposite{\c}{T1}{t}{181}
+\DeclareTextComposite{\c}{T1}{T}{149}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\fi
+% \end{macrocode}
+%
+% \section{The double quote input notation}
+%
+% The input notation |"<input-symbol>| for diacritics, special
+% hyphens, etc., used in \RomanianTeX{} is implemented by the double
+% quote \textit{active character}. The active DQ-character reads
+% its argument, deciding about the next action to be performed.
+%
+% \subsection{Warnings and errors reports}
+%
+% Upon scanning an undefined |"<input-symbol>|-sequence,
+% \RomanianTeX{} generates warnings and error reports.
+%
+% \begin{macrocode}
+\def\DQwarninglevel#1{\chardef\ro@DQwarninglevel=#1\relax}
+\DQwarninglevel{1}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\expandafter\ifx\csname on@line\endcsname\relax
+ \ifx\inputlineno\undefined \let\on@line\@empty
+ \else
+ \ifnum\inputlineno<\z@ \let\on@line\@empty
+ \else \def\on@line{ on input line \the\inputlineno}
+\fi\fi\fi
+% \end{macrocode}
+%
+% The macros for warnings and error reports are self-explanatory:
+%
+% \begin{macrocode}
+\def\ro@DQ@error#1{%
+ \errhelp{Use `` for a simple double quote character.}%
+ \errmessage{romanian: The command \DQ\string#1 is undefined}}
+\def\ro@DQ@warning#1{%
+ \immediate\write\sixt@@n{romanian: %
+ \DQ\string#1 is possibly wrong\on@line.}}
+% \end{macrocode}
+%
+% \subsection{The defining mechanism for double quote macros}
+%
+% \begin{macrocode}
+\def\ro@DQ@macro#1#2{%
+ \expandafter#1\csname @ro@@\string #2DQ\endcsname}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\def@DQmacro#1#2#3{%
+ \ro@DQredefcheck{#1}%
+ \ro@DQ@macro\def{#1}{{#2}{#3}}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\let@DQmacro#1#2{\begingroup
+ \ro@DQredefcheck{#1}%
+ \edef\x{\endgroup \let
+ \ro@DQ@macro\noexpand{#1}\ro@DQ@macro\noexpand{#2}}%
+ \x}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\ro@DQredefcheck#1{}
+% \end{macrocode}
+%
+% \subsection{Macros for the active double quote}
+%
+% The macro |\@active@DQ| is linked to the active double quote symbol:
+%
+% \begin{macrocode}
+\def\@active@DQ#1{%
+ \ro@DQ@macro\ifx{#1}\relax
+ \ifnum\ro@DQwarninglevel>\z@ \ro@DQ@error{#1}\fi
+ \expandafter\ro@@normal@DQ
+ \else
+ \expandafter\ro@@active@DQ
+ \fi {#1}}
+% \end{macrocode}
+%
+% Cope with the hexadecimal \TeX{} input-notation (a do-nothing case):
+%
+% \begin{macrocode}
+\def\ro@@active@DQ#1{%
+ \ro@DQ@macro\ifx{#1}\noexpand
+ \expandafter\ro@normal@DQ
+ \else
+ \expandafter\ro@@@active@DQ
+ \fi {#1}}
+% \end{macrocode}
+%
+% The command |\ro@@normal@DQ| generates two single quotes
+% (used in error handling), while |\ro@normal@DQ| is used for
+% hexadecimal \TeX{}-input.
+%
+% \begin{macrocode}
+\def\ro@@normal@DQ#1{``#1}
+\def\ro@normal@DQ#1{\DQ #1}
+% \end{macrocode}
+%
+% \subsection{The protection mechanism}
+%
+% The protection mechanism is identical with that of German \TeX{}
+% and is explained in \texttt{german.dtx}.
+%
+% \begin{macrocode}
+\begingroup
+ \catcode`\(=1\lccode`\(=`\{\catcode`\{=12
+ \catcode`\)=2\lccode`\)=`\}\catcode`\}=12
+ \catcode`\ =11\relax% <= do not delete this and the
+\lowercase(\endgroup% <=== following percent characters!
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\ro@@@active@DQ#1(%
+\expandafter\ro@@@@active@DQ\expandafter{\string#1})%
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\ro@@@@active@DQ(%
+\ifx\protect\relax\else\ifx\protect\empty\else%
+\expandafter\expandafter\expandafter\protect%
+\fi\fi%
+\active@DQ \DQ@prtct )%
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\DQ@prtct#1#(\@DQ@prtct)%
+\def\@DQ@prtct#1(\string\DQ@prtct{\string#1})%
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\DQ@prtct #1{#2}(\string\DQ@prtct{\string#2})%
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\active@DQ #1{#2}(\ro@active@@DQ(#2))%
+% \end{macrocode}
+%
+% \begin{macrocode}
+)%
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\active@DQ#1#{\@active@DQ}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\ro@active@@DQ#1{%
+ \csname ro@DQ\ifmmode second\else first\fi
+ \expandafter\expandafter\expandafter\expandafter
+ \ro@DQ@macro\endcsname{#1}}
+% \end{macrocode}
+%
+% \subsection{Differential double quote control}
+%
+% \RomanianTeX{} \emph{specifics}: we introduce a new identifier
+% |DQ@mode|; it will be used as a Boolean [a 2-position flag] in
+% order to discriminate between the German and the Romanian \TeX{}
+% double quote control.
+%
+% \begin{macrocode}
+\newcount\DQ@mode \DQ@mode=0 % allocate a counter and initialize it
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\setRomanianDQ{\DQ@mode=0}
+\def\setGermanDQ{\DQ@mode=1}
+% \end{macrocode}
+%
+% There are obvious discriminators:
+%
+% \begin{macrocode}
+\def\@R#1#2{\ifnum\DQ@mode=0 #1\else #2\fi}
+\def\@G#1#2{\ifnum\DQ@mode=1 #1\else #2\fi}
+% \end{macrocode}
+%
+% In fact, only one -- |\@R| say -- is actually needed later.
+%
+% \subsection{The double quote commands}
+%
+% Most of the |"|-input commands are similar and have the same effect
+% in \RomanianTeX{}~\RomanianTeXid~and in the \emph{current version} of
+% German \TeX{} [cf.\ \texttt{german.dtx}, v2.5c |<1.05.1996>|].
+%
+% \subsubsection{The hexadecimal notation}
+%
+% We handle first the standard \TeX{} hexadecimal double quote input
+% notation:
+%
+% \begin{macrocode}
+\ro@DQ@macro\let{0}=\noexpand
+\let@DQmacro{1}{0}\let@DQmacro{2}{0}\let@DQmacro{3}{0}
+\let@DQmacro{4}{0}\let@DQmacro{5}{0}\let@DQmacro{6}{0}
+\let@DQmacro{7}{0}\let@DQmacro{8}{0}\let@DQmacro{9}{0}
+\let@DQmacro{A}{0}\let@DQmacro{B}{0}\let@DQmacro{C}{0}
+\let@DQmacro{D}{0}\let@DQmacro{E}{0}\let@DQmacro{F}{0}
+% \end{macrocode}
+%
+% \subsubsection{Inputting the double quotes}
+%
+% The macro-encoding for the input of the Romanian/German and
+% French double quotes \romanianTeX ("`\ldots"' and "<\ldots">)
+% \originalTeX is as expected:
+%
+% \begin{macrocode}
+\def@DQmacro{`}{\glqq{}}{\glqq{}} % Romanian/German L-DQ
+\def@DQmacro{'}{\grqq{}}{\grqq{}} % Romanian/German R-DQ
+\def@DQmacro{<}{\flqq{}}{\flqq{}} % French L-`guillemots'
+\def@DQmacro{>}{\frqq{}}{\frqq{}} % French R-`guillemots'
+% \end{macrocode}
+%
+% \subsubsection{The normal double quote input}
+%
+% In older versions of German and Romanian \TeX{} we could generate
+% a normal double quote symbol with |"{}|. This feature is maintained
+% on downward-compatibility reasons:
+%
+% \begin{macrocode}
+\def@DQmacro{}{\DQ{}}{\DQ{}}
+% \end{macrocode}
+%
+% \subsubsection{Hyphenation auxiliaries}
+%
+% The special |"|-prefixed symbolic sequences
+% \verb:"-:, \verb:"|:, \verb:"":, \verb:"~:, and \verb:"=:
+% stand for hyphenation auxiliary commands, allowing us to cope
+% (automatically) with local hyphenation exceptions.
+%
+% \begin{macrocode}
+\def@DQmacro{-}{\penalty\@M\-\allowhyphens}%
+ {\penalty\@M\-\allowhyphens}
+\def@DQmacro{|}{\penalty\@M\discretionary{-}{}{\kern.03em}%
+ \allowhyphens}{}
+\def@DQmacro{"}{\hskip\z@skip}{\hskip\z@skip}
+% \end{macrocode}
+% \begin{macrocode}
+\def@DQmacro{~}{\leavevmode\hbox{-}}{-}
+\def@DQmacro{=}{\penalty\@M-\hskip\z@skip}%
+ {\penalty\@M-\hskip\z@skip}
+% \end{macrocode}
+%
+% \subsubsection{Diacritics: Romanian vowels}
+%
+% The specific input-output mapping of the Romanian/German diacritics
+% on vowels must be as follows. (We document here the case-analysis
+% \RomanianTeX{} \emph{versus} German \TeX{}.
+% The \emph{actual conditional macro-encoding} is summarized in the
+% list appearing at the end of this section.)
+%
+% For |"a| and |"A| we have, differentially: Romanian \romanianTeX
+% "a, "A \emph{versus} German \germanTeX "a, "A; for instance,
+% Romanian \romanianTeX \emph{cas"a} [house], \emph{rom"An}
+% [Romanian] and German \germanTeX \emph{sp"at, SP"AT} [late].
+% \originalTeX (The Romanian upper-case \u{A} and \^{A} are rare
+% in print and are \emph{not} macro-encoded in \RomanianTeX{}.)
+%
+% Analogously, for |"i| and |"I|, one has Romanian \romanianTeX
+% "i, "I (e.g., "in, "In [in]) \emph{versus} German/French trema's
+% \germanTeX "i, "I. \originalTeX
+%
+% On economy reasons, the remaining \emph{Uml\"aute}
+% \romanianTeX ("o, "O and "u, "U) \originalTeX and trema's
+% \romanianTeX ("e, "E, \originalTeX with |\highumlaut|) can be
+% imported as such from the German \TeX{}, although there is no
+% need for them in \RomanianTeX{} (except from borrowings, they
+% do not occur in Romanian).
+%
+% \subsubsection{Diacritics: Romanian consonants 1}
+%
+% Unlike German, Romanian has diacritics on consonants, too:
+% Romanian \romanianTeX "s, "S and "t, "T, resp. \originalTeX
+% In these cases, German \TeX{} uses the |"|-input for genuine
+% purposes.
+%
+% So |"s| and |"S| are used to get \emph{scharfes es} input-encoding.
+% Contrast, e.g., the Romanian \romanianTeX \emph{"stiri, "Stiri}
+% [news] and the German \germanTeX \emph{Stra"se, STRA"SE} [street].
+% \originalTeX
+%
+% Moreover, |"z| and |"Z| have no effect in \RomanianTeX{},
+% while, in German \TeX{}, they are also supposed to generate
+% \emph{scharfes es}, in the form \germanTeX "z and "Z, resp.
+% (contrast, for instance, \romanianTeX \emph{"zar, "Zar} [dice]
+% and \germanTeX \emph{Stra"ze, STRA"ZE} [street]). \originalTeX
+%
+% In \RomanianTeX{}, the original German \TeX{} encodings of
+% |"s|, |"S|, |"z| and |"Z| are neutralized conditionally.
+%
+% On the other hand, in German \TeX{}, the |"t|- and |"T|-input
+% is used to yield an `automatic' German hyphenation exception.
+%
+% \subsubsection{German hyphenation exceptions}
+%
+% The German hyphenation exceptions [cf.\ \texttt{german.dtx}] are
+% handled by a specific mechanism. The next piece of macro-code is
+% used only for the German \TeX{} |DQ@mode|:
+%
+% \begin{macrocode}
+\def\ro@DQgdsc#1#2{\penalty\@M
+ \ifnum\ro@DQwarninglevel>\@ne \ro@DQ@warning{#1}\fi
+ \discretionary{#2-}{}{#1}\allowhyphens}
+% \end{macrocode}
+%
+% The conditional variant must also include a test for Romanian;
+% if a \RomanianTeX{} |DQ@mode| is found, the second argument
+% (meant to allow German discretionary hyphens) must be discarded,
+% and so must be the possible warnings:
+%
+% \begin{macrocode}
+\def\ro@DQdisc#1#2{% Romanian-DQ:
+\ifnum\DQ@mode=0 #1\relax\else% German-DQ:
+ \penalty\@M
+ \ifnum\ro@DQwarninglevel>\@ne \ro@DQ@warning{#1}\fi
+ \discretionary{#2-}{}{#1}\allowhyphens
+\fi}
+% \end{macrocode}
+%
+% The \RomanianTeX{} handles the German hyphenation exceptions
+% conditionally, with |\ro@DQdisc|.
+%
+% We have, for instance, the genuine German hyphenation exception
+% [k-k], [K-K], from input |"ck|, |"CK|, but nothing to do in the
+% case of Romanian (and in German math-mode).
+%
+% Further, except for |"t| and |"T| (see below), the remaining cases
+% (|"l|, |"L|, |"m|, |"M|, |"n|, |"N|, |"p|, |"P|,|"r|, |"R| and |"F|)
+% are similar, and the original German \TeX{} macro-code can be also
+% used in \RomanianTeX{} (with the discriminating |\ro@DQdisc|-macro).
+%
+% Finally, the special lower-case German \texttt{ff}-ligatures require
+% a specific mechanism, |\def@DQmacro{f}{\ro@DQdiscff}{f}|, where:
+%
+% \begin{macrocode}
+\def\ro@DQdiscff{\penalty\@M
+ \ifnum\ro@DQwarninglevel>\@ne \ro@DQ@warning f\fi
+ \afterassignment\ro@DQinsertff \let\ro@DQnextff= }
+\def\ro@DQinsertff{%
+ \if f\ro@DQnextff
+ \expandafter\ro@DQfirst\else\expandafter\ro@DQsecond\fi
+ {\relax\discretionary{ff-}{f}{ff}\allowhyphens}{f\ro@DQnext}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\let\ro@DQnextff=f
+% \end{macrocode}
+% [See \texttt{german.dtx} for explanations.]
+% As there is no \emph{ff} in Romanian (except from borrowings),
+% this piece of macro-code is useless in \RomanianTeX{} and we
+% may either decide to neutralize it conditionally or leave it
+% as it is, with no harm done.
+%
+% \emph{Note}. The \TeX{} math-mode ignores the exceptional German hyphens.
+%
+% \subsubsection{Diacritics: Romanian consonants 2}
+%
+% However, |"t| and |"T| are supposed to yield \romanianTeX "t and "T
+% \originalTeX resp.\ under a \RomanianTeX{} DQ-r\'egime. In this
+% case, in place of the original German \TeX{} macro-code, we have a
+% differential treatement:
+% Romanian \romanianTeX "t, "T, as, e.g., in \emph{"tara, "Tara}
+% [the country] \originalTeX \emph{versus} the genuine German
+% hyphenation exception [tt-t], [TT-T].
+%
+% This can be encoded by using \emph{both} the |\@R|-discriminator
+% \emph{and} the \emph{original} German \TeX{} |\grmn@DQdisc| (called
+% here |\ro@DQgdsc|).
+%
+% \subsection{The actual DQ-translation}
+%
+% We can now display the \emph{actual} |"|-translation map:
+%
+% \subsubsection{Vowels}
+%
+% \begin{macrocode}
+\def\@nDQ@a{\@R{\@nBRV a}{\@nUML a}} % "a: \u{a} | \"{a}
+\def\@mDQ@a{\@R{\@mBRV a}{\@mUML a}} % "a: \u{a} | \"{a}
+\def\@nDQ@A{\@R{\@nHAT a}{\@nUML A}} % "A: \^{a} | \"{A}
+\def\@mDQ@A{\@R{\@mHAT a}{\@mUML A}} % "A: \^{a} | \"{A}
+% \end{macrocode}
+% \begin{macrocode}
+\def@DQmacro{a}{\@nDQ@a}{\@mDQ@a} % "a: \u{a} | \"{a}
+\def@DQmacro{A}{\@nDQ@A}{\@mDQ@A} % "A: \^{a} | \"{A}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def@DQmacro{e}{\highumlaut e}{\@mUML e} % "e: \"{e} | \"{e}
+\def@DQmacro{E}{\highumlaut E}{\@mUML E} % "e: \"{E} | \"{E}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\@nDQ@i{\@R{\@nHAT{\i}}{\highumlaut{\i}}} % "i: \^{\i} | \"{\i}
+\def\@mDQ@i{\@R{\@mHAT\imath}{\@mUML\imath}} % "i: \^{\i} | \"{\i}
+\def\@nDQ@I{\@R{\@nHAT I}{\highumlaut I}} % "I: \^{I} | \"{I}
+\def\@mDQ@I{\@R{\@mHAT I}{\@mUML I}} % "I: \^{I} | \"{I}
+% \end{macrocode}
+% \begin{macrocode}
+\def@DQmacro{i}{\@nDQ@i}{\@mDQ@i} % "i: \^{\i} | \"{\i}
+\def@DQmacro{I}{\@nDQ@I}{\@mQQ@I} % "I: \^{I} | \"{I}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def@DQmacro{o}{\@nUML o}{\@mUML o} % "o: \"{o} | \"{o}
+\def@DQmacro{O}{\@nUML O}{\@mUML O} % "O: \"{O} | \"{O}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def@DQmacro{u}{\@nUML u}{\@mUML u} % "u: \"{u} | \"{u}
+\def@DQmacro{U}{\@nUML U}{\@mUML U} % "U: \"{U} | \"{U}
+% \end{macrocode}
+%
+% \subsubsection{Consonants}
+%
+% \begin{macrocode}
+\def@DQmacro{c}{\ro@DQdisc ck}{c} % "ck: ck | [k-k]
+\def@DQmacro{C}{\ro@DQdisc CK}{C} % "CK: ck | [K-K]
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def@DQmacro{f}{\ro@DQdiscff}{f} % "ff: [ff-f]| [ff-f]
+\def@DQmacro{F}{\ro@DQdisc F{FF}}{F} % "FF: FF | [FF-F]
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def@DQmacro{l}{\ro@DQdisc l{ll}}{l} % "ll: ll | [ll-l]
+\def@DQmacro{L}{\ro@DQdisc L{LL}}{L} % "LL: LL | [LL-L]
+\def@DQmacro{m}{\ro@DQdisc m{mm}}{m} % similar
+\def@DQmacro{M}{\ro@DQdisc M{MM}}{M} % similar
+\def@DQmacro{n}{\ro@DQdisc n{nn}}{n} % similar
+\def@DQmacro{N}{\ro@DQdisc N{NN}}{N} % similar
+\def@DQmacro{p}{\ro@DQdisc p{pp}}{p} % similar
+\def@DQmacro{P}{\ro@DQdisc P{PP}}{P} % similar
+\def@DQmacro{r}{\ro@DQdisc r{rr}}{r} % similar
+\def@DQmacro{R}{\ro@DQdisc R{RR}}{R} % similar
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\@nDQ@s{\@R{\@nCDL s}{\ss{}}} % "s: \c{s} | \ss
+\def\@mDQ@s{\@R{\@mCDL s}{\@SS{}}} % "s: \c{s} | \ss
+\def\@nDQ@S{\@R{\@nCDL S}{SS}} % "S: \c{S} | SS
+\def\@mDQ@S{\@R{\@mCDL S}{SS}} % "S: \c{S} | SS
+% \end{macrocode}
+% \begin{macrocode}
+\def@DQmacro{s}{\@nDQ@s}{\@mDQ@s} % "s: \c{s} | \ss
+\def@DQmacro{S}{\@nDQ@S}{\@mDQ@S} % "S: \c{S} | SS
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\@nDQ@t{\@R{\@nCDL t}{\ro@DQgdsc t{tt}}} % "t: \c{t} | [tt-t]
+\def\@mDQ@t{\@R{\@mCDL t}{t}} % "t: \c{t} | t
+\def\@nDQ@T{\@R{\@nCDL T}{\ro@DQgdsc T{TT}}} % "T: \c{T} | [TT-T]
+\def\@mDQ@T{\@R{\@mCDL T}{T}} % "T: \c{T} | T
+% \end{macrocode}
+% \begin{macrocode}
+\def@DQmacro{t}{\@nDQ@t}{\@mDQ@t} % "t: \c{t} | [tt-t]
+\def@DQmacro{T}{\@nDQ@T}{\@mDQ@T} % "T: \c{T} | [TT-T]
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\@nDQ@z{\@R{z}{\ss{}}} % "z: z | \ss
+\def\@mDQ@z{\@R{z}{\@SS{}}} % "z: z | \ss
+\def\@nDQ@Z{\@R{Z}{SZ}} % "Z: Z | SZ
+\def\@mDQ@Z{\@R{Z}{SZ}} % "Z: Z | SZ
+% \end{macrocode}
+% \begin{macrocode}
+\def@DQmacro{z}{\@nDQ@z}{\@mDQ@z} % "z: z | \ss
+\def@DQmacro{Z}{\@nDQ@Z}{\@mDQ@Z} % "Z: Z | SZ
+% \end{macrocode}
+%
+% \subsection{Re-defining the DQ-commands}
+%
+% \begin{macrocode}
+\def\ro@DQredefcheck#1{%
+ \immediate\write\m@ne{romanian: %
+ \ro@DQ@macro\ifx{#1}\relax \else re\fi
+ defining DQ-command for `\string#1'\on@line.}}%
+% \end{macrocode}
+% [See \texttt{german.dtx}.]
+%
+% \section{Support for other languages}
+%
+% This section copes with material which is by now standard in
+% the \LaTeX{}-world. The interested reader will fruitfully consult
+% \texttt{german.dtx} or any other similar macro-package (as, e.g.,
+% the \textsc{babel}-system), if (s)he is not already aware of the
+% way the language-dependent features (date, caption display, etc.)
+% should work in \LaTeX{}.
+%
+% \subsection{Dates}
+%
+% \subsubsection{The English date}
+%
+% \begin{macrocode}
+\def\month@english{\ifcase\month \or
+ January\or February\or March\or April\or
+ May\or June\or July\or August\or
+ September\or October\or November\or December\fi}
+\def\dateUSenglish{\def\today{\month@english
+ \space\number\day, \number\year}}
+\def\dateenglish{\def\today{\number\day \ifcase\day \or
+ st\or nd\or rd\or th\or th\or th\or th\or th\or th\or th\or% 1..10
+ th\or th\or th\or th\or th\or th\or th\or th\or th\or th\or% 11..20
+ st\or nd\or rd\or th\or th\or th\or th\or th\or th\or th\or% 21..30
+ st\fi
+ ~\month@english \space\number\year}}
+% \end{macrocode}
+%
+% \subsubsection{The Romanian date}
+%
+% \begin{macrocode}
+\def\month@romanian{\ifcase\month \or
+ ianuarie\or februarie\or martie\or aprilie\or
+ mai\or iunie\or iulie\or august\or
+ septembrie\or octombrie\or noiembrie\or decembrie\fi}
+\def\dateromanian{\def\today{\number\day~\month@romanian
+ \space\number\year}}
+% \end{macrocode}
+%
+% \subsubsection{The German and Austrian dates}
+%
+% \begin{macrocode}
+\def\month@german{\ifcase\month \or
+ Januar\or Februar\or M\"arz\or April\or
+ Mai\or Juni\or Juli\or August\or
+ September\or Oktober\or November\or Dezember\fi}
+\def\dategerman{\def\today{\number\day.~\month@german
+ \space\number\year}}
+\def\dateaustrian{\def\today{\number\day.~\ifnum 1=\month
+ J\"anner\else \month@german\fi \space\number\year}}
+% \end{macrocode}
+%
+% \subsubsection{The French date}
+%
+% \begin{macrocode}
+\def\datefrench{\def\today{\number\day \ifnum1=\day \/$^{\rm er}$\fi
+ \space\ifcase\month \or
+ janvier\or f\'evrier\or mars\or avril\or
+ mai\or juin\or juillet\or ao\^ut\or
+ septembre\or octobre\or novembre\or d\'ecembre\fi
+ \space\number\year}}
+% \end{macrocode}
+%
+% \subsection{Captions}
+%
+% \subsubsection{English captions}
+%
+% \begin{macrocode}
+\def\captionsenglish{%
+ \def\prefacename{Preface}%
+ \def\refname{References}%
+ \def\abstractname{Abstract}%
+ \def\bibname{Bibliography}%
+ \def\chaptername{Chapter}%
+ \def\appendixname{Appendix}%
+ \def\contentsname{Contents}%
+ \def\listfigurename{List of Figures}%
+ \def\listtablename{List of Tables}%
+ \def\indexname{Index}%
+ \def\figurename{Figure}%
+ \def\tablename{Table}%
+ \def\partname{Part}%
+ \def\enclname{encl}%
+ \def\ccname{cc}%
+ \def\headtoname{To}%
+ \def\pagename{Page}%
+ \def\seename{see}%
+ \def\alsoname{see also}}
+\let\captionsUSenglish=\captionsenglish
+% \end{macrocode}
+%
+% \subsubsection{Romanian captions}
+%
+% \begin{macrocode}
+\def\captionsromanian{% % Variants:
+\def\prefacename{Prefa\c{t}\u{a}}% %
+ \def\refname{Bibliografie}% % Trimiteri bibliografice
+ \def\abstractname{Rezumat}% % Sumar
+ \def\bibname{Bibliografie}% %
+ \def\chaptername{Capitolul}% % [essay.sty]: {}
+ \def\appendixname{Anex\u{a}}% % Apendix
+ \def\contentsname{Cuprins}% % Tabla de materii
+ \def\listfigurename{Lista de figuri}% % Indice de figuri
+ \def\listtablename{Lista de tabele}% % Tabele
+ \def\indexname{Indice}% %
+ \def\figurename{Figura}% %
+ \def\tablename{Tabelul}% %
+ \def\partname{Partea}% %
+ \def\enclname{anexe}% % con\c{t}ine anexe
+ \def\ccname{Copie pentru}% %
+ \def\headtoname{C\u{a}tre}% %
+ \def\pagename{pagina}% % pag., p.
+ \def\seename{vezi}% % a se vedea, v.
+ \def\alsoname{vezi de asemenea}}% % vezi \c{s}i
+% \end{macrocode}
+%
+% Note that, for \texttt{essay.sty} (a \RomanianTeX{} style option
+% based on Lamport's \texttt{book.sty}), the |\chaptername| must be
+% \emph{nil}.
+%
+% The variant-label \emph{Trimiteri bibliografice} for the
+% |\refname|-field looks obsolete, but most people from the
+% humanities would use it preferentially, in place of the
+% bare \emph{Bibliografie}, translated \emph{ad hoc}, yet
+% incorrectly, from English/French.
+%
+% Finally, the noun \emph{Lista} in the |\listfigurename| and
+% |\listtablename| fields may also appear without a definite
+% article (i.e., as \emph{List\u{a}}) in current Romanian prints.
+%
+% \subsubsection{German captions}
+%
+% \begin{macrocode}
+\def\captionsgerman{% % Variants:
+ \def\prefacename{Vorwort}% %
+ \def\refname{Literatur}% % Bibliographie
+ \def\abstractname{Zusammenfassung}% %
+ \def\bibname{Literaturverzeichnis}% % Bibliographie
+ \def\chaptername{Kapitel}% %
+ \def\appendixname{Anhang}% %
+ \def\contentsname{Inhaltsverzeichnis}% % Inhalt
+ \def\listfigurename{Abbildungsverzeichnis}% %
+ \def\listtablename{Tabellenverzeichnis}% %
+ \def\indexname{Index}% %
+ \def\figurename{Abbildung}% %
+ \def\tablename{Tabelle}% % Tafel
+ \def\partname{Teil}% %
+ \def\enclname{Anlage(n)}% % Beilage(n)
+ \def\ccname{Verteiler}% % Kopien an
+ \def\headtoname{An}% %
+ \def\pagename{Seite}% % S.
+ \def\seename{siehe}% % s.
+ \def\alsoname{siehe auch}} %
+\let\captionsaustrian=\captionsgerman
+% \end{macrocode}
+%
+% \subsubsection{French captions}
+%
+% \begin{macrocode}
+\def\captionsfrench{%
+ \def\prefacename{Pr\'eface}%
+ \def\refname{R\'ef\'erences}%
+ \def\abstractname{R\'esum\'e}%
+ \def\bibname{Bibliographie}%
+ \def\chaptername{Chapitre}%
+ \def\appendixname{Annexe}%
+ \def\contentsname{Table des mati\`eres}%
+ \def\listfigurename{Liste des figures}%
+ \def\listtablename{Liste des tableaux}%
+ \def\indexname{Index}%
+ \def\figurename{Figure}%
+ \def\tablename{Tableau}%
+ \def\partname{Partie}%
+ \def\enclname{P.~J.}%
+ \def\ccname{Copie \`a}%
+ \def\headtoname{A}%
+ \def\pagename{Page}%
+ \def\seename{voir}%
+ \def\alsoname{voir aussi}}%
+% \end{macrocode}
+%
+% \subsection{Other language-dependent parameters}
+%
+% \subsubsection{English}
+%
+% \begin{macrocode}
+\def\extrasUSenglish{}
+\let\noextrasUSenglish=\extrasUSenglish
+\let\extrasenglish=\extrasUSenglish
+\let\noextrasenglish=\extrasenglish
+% \end{macrocode}
+%
+% \subsubsection{Romanian}
+%
+% \begin{macrocode}
+\def\extrasromanian{\frenchspacing \uchyph\@ne
+ \lefthyphenmin\tw@ \righthyphenmin\tw@}
+\def\noextrasromanian{%
+ \ifnum\sfcode`\.=\@m \else \noexpand\nonfrenchspacing \fi
+ \uchyph\the\uchyph\relax
+ \lefthyphenmin\the\lefthyphenmin
+ \righthyphenmin\the\righthyphenmin}
+% \end{macrocode}
+%
+% \subsubsection{German}
+%
+% \begin{macrocode}
+\def\extrasgerman{\frenchspacing \uchyph\@ne
+ \lefthyphenmin\tw@ \righthyphenmin\tw@}
+\def\noextrasgerman{%
+ \ifnum\sfcode`\.=\@m \else \noexpand\nonfrenchspacing \fi
+ \uchyph\the\uchyph\relax
+ \lefthyphenmin\the\lefthyphenmin
+ \righthyphenmin\the\righthyphenmin}
+\let\extrasaustrian=\extrasgerman
+\let\noextrasaustrian=\noextrasgerman
+% \end{macrocode}
+%
+% \subsubsection{French}
+%
+% \begin{macrocode}
+\def\extrasfrench{\frenchspacing}
+\def\noextrasfrench{%
+ \ifnum\sfcode`\.=\@m \else \noexpand\nonfrenchspacing \fi}
+% \end{macrocode}
+%
+% \subsection{Language identifiers: default values}
+%
+% \begin{macrocode}
+\@ifundefined{l@USenglish}{%
+ \@ifundefined{l@english}{\chardef\l@USenglish=255 }%
+ {\chardef\l@USenglish=\l@english}%
+ \wlog{romanian: \string\language\space number for US English %
+ undefined, default \number\l@USenglish\space used.}%
+}{}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\@ifundefined{l@english}{%
+ \chardef\l@english=\l@USenglish
+ \wlog{romanian: \string\language\space number for UK English %
+ undefined, default \number\l@english\space used.}%
+}{}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\@ifundefined{l@romanian}{%
+ \chardef\l@romanian=255 %
+ \message{romanian: \string\language\space number for Romanian %
+ undefined, default \number\l@romanian\space used.}%
+}{}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\@ifundefined{l@german}{%
+ \@ifundefined{l@austrian}{%
+ \chardef\l@german=255 %
+ \wlog{romanian: \string\language\space number for German %
+ undefined, default \number\l@german\space used.}%
+}{%
+ \chardef\l@german=\l@austrian
+ \wlog{romanian: \string\language\space number for German %
+ undefined, default \number\l@german\space used.}%
+ }%
+}{}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\@ifundefined{l@austrian}{%
+ \chardef\l@austrian=\l@german
+ \wlog{romanian: \string\language\space number for Austrian %
+ undefined, default \number\l@austrian\space used.}%
+}{}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\@ifundefined{l@french}{%
+ \chardef\l@french=255
+ \wlog{romanian: \string\language\space number for French %
+ undefined, default \number\l@french\space used.}%
+}{}
+% \end{macrocode}
+%
+% \subsection{Language selection macros}
+%
+% \begin{macrocode}
+\def\ro@originalTeX{}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\languagename{}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\expandafter\def\csname selectlanguage \endcsname#1{\relax
+ \expandafter\ifx\csname l@#1\endcsname\relax
+ \errhelp{Your command will be ignored, type <return> to proceed}%
+ \errmessage{You haven't defined the language #1 yet}%
+ \else
+ \ro@originalTeX
+ \edef\languagename{#1}%
+ \edef\ro@originalTeX{\csname noextras#1\endcsname
+ \def\noexpand\ro@originalTeX{}}%
+ \csname date#1\endcsname
+ \csname captions#1\endcsname
+ \csname extras#1\endcsname\relax
+ \csname bibs#1\endcsname % for `bibgerm': must disappear!
+ \language \csname l@#1\endcsname\relax
+ \fi}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\begingroup\catcode`\ =11\relax% <= do not delete this and the
+\toks0={\endgroup% <=== following percent characters!
+\def\selectlanguage#1{\protect\selectlanguage {%
+\ifnum\escapechar=\expandafter`\string#1\empty%
+\else\string#1\empty\fi}}}%
+\the\toks0\relax%
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\p@selectlanguage{\selectlanguage}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\iflanguage#1#2#3{%
+ \expandafter\ifx\csname l@#1\endcsname\relax #3%
+ \else \ifnum\csname l@#1\endcsname=\language #2%
+ \else #3\fi\fi}
+% \end{macrocode}
+%
+% \subsection{Compatibility with \protect\TeX~2}
+%
+% \begin{macrocode}
+\expandafter\ifx\csname language\endcsname\relax
+ \csname newcount\endcsname\language
+ \language=0 \fi
+\expandafter\ifx\csname lefthyphenmin\endcsname\relax
+ \csname newcount\endcsname\lefthyphenmin
+ \lefthyphenmin=2 \fi
+\expandafter\ifx\csname righthyphenmin\endcsname\relax
+ \csname newcount\endcsname\righthyphenmin
+ \righthyphenmin=3 \fi
+% \end{macrocode}
+%
+% \begin{macrocode}
+\expandafter\ifx\csname setlanguage\endcsname\relax
+ \def\setlanguage{\relax
+ \ifhmode \else
+ \errhelp{Use \selectlanguage to switch languages.}%
+ \errmessage{\setlanguage allowed only in horizontal mode}%
+ \fi
+ \begingroup\afterassignment\endgroup\count@=}
+\fi
+% \end{macrocode}
+%
+% \subsection{Activating/de-activating the language setting}
+%
+% \begin{macrocode}
+\begingroup \mDQon
+\def\x{\endgroup
+ \def\originalTeX{\mDQoff \let"\DQ \umlauthigh
+ \let\3\ro@original@three
+ \selectlanguage{USenglish}}%
+ \def\romanianTeX{\mDQon \let"\@active@DQ \umlautlow
+ \setRomanianDQ % \DQ@mode=0
+ \let\ro@original@three\3\let\3\ss
+ \selectlanguage{romanian}}%
+ \def\germanTeX{\mDQon \let"\@active@DQ \umlautlow
+ \setGermanDQ % \DQ@mode=1
+ \let\ro@original@three\3\let\3\ss
+ \selectlanguage{german}}%
+ \def\frenchTeX{\mDQoff \let"\DQ \umlauthigh
+ \let\3\ro@original@three
+ \selectlanguage{french}}}%
+\x
+% \end{macrocode}
+%
+% The modification job is done. We return to the `public' \TeX{} world
+% (by setting |@| to category code `other', from the initially saved
+% |\atcode|):
+%
+% \begin{macrocode}
+\catcode`\@=\atcode % restore_previous_category_code_of |@|
+% \end{macrocode}
+% and initialize \RomanianTeX{}:
+%
+% \begin{macrocode}
+\romanianTeX
+% \end{macrocode}
+%
+%\iffalse
+%</!driver>
+%\fi
+%
+% \section{A driver for the macro-code documentation}
+%
+% The following piece of code should generate the documentation
+% of the \RomanianTeX{} macro-code (in \texttt{.dvi}-form), from
+% \texttt{romanian.dtx}, if passed through \emph{Romanian} \LaTeXe{}.
+%
+% \begin{macrocode}
+%<+driver>\ifx\documentclass\undefined % test: LaTeX2e or LaTeX 2.09?
+%<+driver>\typeout{^^JUse a Romanian LateX2e installation!}
+%<+driver>\typeout{^^JAborting (fake LaTeX 2.09 article):^^J}
+%<+driver> \documentstyle[]{article}
+%<+driver>\else % do the job with (Romanian) LaTeX2e, if possible:
+%<+driver> \documentclass[a4paper]{ltxdoc}
+%<+driver> \usepackage{romanian}
+%<+driver>\fi
+%<+driver>\begin{document}
+%<+driver>\ifx\documentclass\undefined \relax % farniente...
+%<+driver>\else % do the job, as required:
+%<+driver>\DocInput{romanian.dtx}
+%<+driver>\fi % reach an end, anyway:
+%<+driver>\end{document}
+% \end{macrocode}
+%
+% \Finale
+\endinput
+%% End of file ROMANIAN.DTX
diff --git a/language/romanian/RomanianTeX/romanian.ins b/language/romanian/RomanianTeX/romanian.ins
new file mode 100644
index 0000000000..1012792534
--- /dev/null
+++ b/language/romanian/RomanianTeX/romanian.ins
@@ -0,0 +1,131 @@
+ %% romanian.ins
+ %%
+ %% Docstrip installation file for the LaTeX2e package `romanian'.
+ %% Version 1.3R <29.10.1996>. Revision 5 [11.11.1996].
+ %%
+ %% (C) 1994-1996 Adrian Rezus.
+ %%
+ %% This file is part of the Romanian TeX system.
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ %% Romanian TeX, version 1.3R <29.10.1996> %%
+ %% (C) 1994-1996 Adrian Rezus [adriaan@{sci,cs}.kun.nl] %%
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\batchfile{romanian.ins}
+\input docstrip.tex
+\keepsilent
+\preamble
+
+
+This file is part of the Romanian TeX [1.3R] system, a package
+for type-setting Romanian with Plain TeX and LaTeX{2.09,2e}.
+
+--- Romanian TeX, version 1.3R <29.10.1996>. ---
+--- (C) 1994-1996 Adrian Rezus. ---
+
+The current version of Romanian TeX provides a multi-lingual TeX
+environment for Romanian authors, with additional facilities for
+TeX processing in other languages (at least English, German, and
+French; the appended file `hyphen-x.cfg', is a customizable
+example for the required hyphen configuration file `hyphen.cfg').
+Romanian TeX is, however, NOT compatible with the `babel' system
+(C) 1989-1995 by Johannes L. Braams.
+
+
+DISTRIBUTION CONDITIONS:
+
+This system 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.
+
+Please do not request updates from the author(s) directly.
+Primary distribution is through the CTAN archives.
+
+
+IMPORTANT COPYRIGHT NOTICE:
+
+You are NOT ALLOWED to distribute this file alone.
+
+You are allowed to distribute this file under the condition
+that it is distributed together with all the files listed in
+`manifest[.romanian].txt'.
+
+If you receive only some of these files from someone, complain!
+
+Permission is granted to copy this file to another file with
+a clearly different name and to customize the declarations in
+that copy to serve the needs of your installation, provided
+that you comply with the conditions in the file `legal.txt'
+from the LaTeX2e distribution.
+
+However, NO PERMISSION is granted to generate or to distribute
+a modified version of this file under its original name.
+
+You are NOT ALLOWED to change this file.
+
+These restrictions help insure that all styles developed for
+Romanian TeX remain identical.
+
+
+MODIFICATION ADVICE:
+
+If you want to customize this file, it is best to make a copy of
+the source file(s) from which it was produced. Use a different
+name for your copy(ies) and modify the copy(ies); this will ensure
+that your modifications do not get overwritten when you install a
+new release of the standard system. You should also ensure that
+your modified source file does not generate any modified file with
+the same name as a standard file. You can then easily distribute
+your modifications by distributing the modified and renamed copy
+of the source file, taking care to observe the conditions in the
+file `legal.txt'; this will ensure that other users can safely
+use your modifications.
+
+You will also need to produce your own, suitably named file:
+`<your-own>.ins' to control the generation of files from your
+source file(s); this file should contain your own preambles
+for the files it generates, not those in the standard file
+`romanian.ins'.
+
+The names of the source files used are shown above.
+
+
+ACKNOWLEDGEMENTS:
+
+Romanian TeX is based on German TeX (C) 1991-1996 Bernd Raichle
+[University of Stuttgart], using ideas of Hubert Partl [Technological
+University of Wien, Universitaet fuer Bodenkultur, Wien], and others.
+
+- See `german.{dtx,sty}' 2.5c <1.05.1996>,
+- (C) 1995-1996 Bernd Raichle and DANTE e.V., and, possibly,
+- `french.sty' 3.32 <8.09.1994> (C) 1994 Bernard Gaulle,
+- `allemand.sty' <2.02.1993> (C) 1993 Marc Torzynski,
+- `german.{tex,sty}' 2.4a <12.04.1991> (C) 1991 Bernd Raichle.
+
+As a multi-lingual system, if set in `germanTeX'-mode, Romanian
+TeX emulates entirely the German TeX (current version), and,
+unlike in previous versions, a bi-lingual (German/Romanian)
+Romanian TeX configuration does not require `german.{tex,sty}'
+any more. From this point of view, Romanian TeX can be seen as
+a PROPER EXTENSION (set-theoretical sense) of the German TeX.
+
+
+ERROR REPORTS: Put in mail-box [A. Rezus <adriaan@cs.kun.nl>].
+
+\endpreamble
+\Msg{*** Generating files ***}
+\generateFile{romanian.sty}{t}{\from{romanian.dtx}{}}
+\generateFile{romanian.drv}{t}{\from{romanian.dtx}{driver}}
+\Msg{************************************************************}
+\Msg{*}
+\Msg{* Put the following file on the current TeX search path:}
+\Msg{*}
+\Msg{* \space\space romanian.sty}
+\Msg{*}
+\Msg{* In order to generate the macro-code documentation, run}
+\Msg{* the driver file `romanian.drv' through Romanian LaTeX2e:}
+\Msg{*}
+\Msg{* \space\space rlatex romanian.drv}
+\Msg{*}
+\Msg{************************************************************}
+\endinput
+%% End of file `romanian.ins'. \ No newline at end of file