diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /language/romanian |
Initial commit
Diffstat (limited to 'language/romanian')
-rw-r--r-- | language/romanian/RomanianTeX/hyphen-x.cfg | 71 | ||||
-rw-r--r-- | language/romanian/RomanianTeX/manifest.txt | 90 | ||||
-rw-r--r-- | language/romanian/RomanianTeX/readme.txt | 103 | ||||
-rw-r--r-- | language/romanian/RomanianTeX/rohyphen.tex | 782 | ||||
-rw-r--r-- | language/romanian/RomanianTeX/romanian.dtx | 1803 | ||||
-rw-r--r-- | language/romanian/RomanianTeX/romanian.ins | 131 |
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 |