walter@hpsadle.HP.COM (Walter Coole) (10/04/90)
Is there a TeX package for typing Russian? I have a Cyrillic font, but I haven't figured out quite how to translate typed characters into Cyrillic characters. Failing a full TeX setup, does anyone have a suggestion about how to type Russian on an ASCII keyboard?
nspit@ruunsa.fys.ruu.nl (Werenfried Spit) (10/05/90)
In <13590020@hpsadle.HP.COM> walter@hpsadle.HP.COM (Walter Coole) writes: >Is there a TeX package for typing Russian? I have a Cyrillic font, >but I haven't figured out quite how to translate typed characters into >Cyrillic characters. Failing a full TeX setup, does anyone have a >suggestion about how to type Russian on an ASCII keyboard? I have a style file defining a transliteration: you type in the transliteration and get either russian characters or the transliteration. It is designed for JL Braams' babel.sty but can be used separately. The .sty-file is following; the comments are mostly in Dutch, but I hope it's clear how to use it. Werenfried Spit R.J. v.d. Graafflaboratorium +31-(0)30-53-2330 Postbus 80.000 3508 TA Utrecht nspit@fys.ruu.nl The Netherlands spit@hutruu51.bitnet following: 2 style files and an example ---------------------cut here------------------------------------- % This style is an adaptation of Dmitri Vulis' rmacro.sty (WS) %% This code was written by Dimitri Vulis and placed into public domain. %% There is no copyright associated with this code. Use it as you wish. %% changed 30-05-89 Werenfried Spit \typeout{Document Style `cyrillic' <1.0> <30 05 90>.} \gdef\cdefRussian{ % % definities als bij Tsjechische transcriptie % \chardef\Z='021 \chardef\z='031 % Zje \chardef\Cz='121 \chardef\cz='161 % Tsje \chardef\Ch='110 \chardef\ch='150 % Cha \chardef\S='130 \chardef\s='170 % Sja \chardef\Scz='127 \chardef\scz='167 % Sjtsja \chardef\E='003 \chardef\e='013 % `E \chardef\Ju='020 \chardef\ju='030 % Joe \chardef\Ja='027 \chardef\ja='037 % Ja % \def\Jo{\"E} \def\jo{\"e} % Jo \def\mz{|} \def\Mz{<} % mjachkyj zjnak \def\tz{"} \def\Tz{>} % tvordyj zjnak \def\cem{\ifdim \fontdimen\@ne\font >\z@ \pcyr \else \pcit \fi} \def\cyr{\protect\pcyr} \def\cit{\protect\pcit} } \gdef\cdefTranscript{ \def\Z{\v{Z}} \def\z{\v{z}} % Zje \def\Cz{\v{C}} \def\cz{\v{c}} % Tsje \def\Ch{\t{C}{h}} \def\ch{\t{c}{h}} % Cha \def\S{\v{S}} \def\s{\v{s}} % Sja \def\Scz{{\v{S}}{\v{c}}} \def\scz{{\v{s}}{\v{c}}} % Sjtsj \def\E{\`{E}} \def\e{\`{e}} % `E \def\Ju{\t{J}{u}} \def\ju{\t{\j}{u}} % Joe \def\Ja{\t{J}{a}} \def\ja{\t{\j}{a}} % Ja % \def\Jo{\"E} \def\jo{\"e} % Jo \def\mz{$^\prime$} \def\Mz{$^\prime$} % machkyj zjnak \def\tz{$^{\prime\prime}$}\def\Tz{$^{\prime\prime}$}% tvordyj zjnak \def\cem{\em} \def\cyr{\rm} % redefine fontchanging commands \def\cit{\it} } \def\Jo{\"E} % Jo \def\jo{\"e} % is the same in transcript and cyrillic % % fontdefinities, (gejat van bsf.sty) % \expandafter\ifx\csname cyr\endcsname\relax %Once only, please \typeout{Document Option `cyr': 20 May 90} \def\cyr{\protect\pcyr} \newfam\cyrfam \@addfontinfo\@vpt{\@prtct\cyrv@} \def\cyrv@{\def\pcyr{\@getfont\pcyr\cyrfam\@vpt{cmcyr5}}} \@addfontinfo\@vipt{\@prtct\cyrvi@} \def\cyrvi@{\def\pcyr{\@getfont\pcyr\cyrfam\@vipt{cmcyr6}}} \@addfontinfo\@viipt{\@prtct\cyrvii@} \def\cyrvii@{\def\pcyr{\@getfont\pcyr\cyrfam\@viipt{cmcyr7}}} \@addfontinfo\@viiipt{\@prtct\cyrviii@} \def\cyrviii@{\def\pcyr{\@getfont\pcyr\cyrfam\@viiipt{cmcyr8}}} \@addfontinfo\@ixpt{\@prtct\cyrix@} \def\cyrix@{\def\pcyr{\@getfont\pcyr\cyrfam\@ixpt{cmcyr9}}} \@addfontinfo\@xpt{\@prtct\cyrx@} \def\cyrx@{\def\pcyr{\@getfont\pcyr\cyrfam\@xpt{cmcyr10}}} \@addfontinfo\@xipt{\@prtct\cyrxi@} \def\cyrxi@{\def\pcyr{\@getfont\pcyr\cyrfam\@xipt{cmcyr10\@halfmag}}} \@addfontinfo\@xiipt{\@prtct\cyrxii@} \def\cyrxii@{\def\pcyr{\@getfont\pcyr\cyrfam\@xiipt{cmcyr12}}} \@addfontinfo\@xivpt{\@prtct\cyrxiv@} \def\cyrxiv@{\def\pcyr{\@getfont\pcyr\cyrfam\@xivpt{cmcyr10\@magscale2}}} \@addfontinfo\@xviipt{\@prtct\cyrxvii@} \def\cyrxvii@{\def\pcyr{\@getfont\pcyr\cyrfam\@xviipt{cmcyr17}}} \@addfontinfo\@xxpt{\@prtct\cyrxx@} \def\cyrxx@{\def\pcyr{\@getfont\pcyr\cyrfam\@xxpt{cmcyr10\@magscale4}}} \@addfontinfo\@xxvpt{\@prtct\cyrxxv@} \def\cyrxxv@{\def\pcyr{\@getfont\pcyr\cyrfam\@xxvpt{cmcyr10\@magscale5}}} \fi \expandafter\ifx\csname cit\endcsname\relax %Once only, please \typeout{Document Option `cit': 20 May 90} \def\cit{\protect\pcit} \newfam\citfam \@addfontinfo\@vpt{\@prtct\citv@} \def\citv@{\def\pcit{\@getfont\pcit\citfam\@vpt{cmcti5}}} \@addfontinfo\@vipt{\@prtct\citvi@} \def\citvi@{\def\pcit{\@getfont\pcit\citfam\@vipt{cmcti6}}} \@addfontinfo\@viipt{\@prtct\citvii@} \def\citvii@{\def\pcit{\@getfont\pcit\citfam\@viipt{cmcti7}}} \@addfontinfo\@viiipt{\@prtct\citviii@} \def\citviii@{\def\pcit{\@getfont\pcit\citfam\@viiipt{cmcti8}}} \@addfontinfo\@ixpt{\@prtct\citix@} \def\citix@{\def\pcit{\@getfont\pcit\citfam\@ixpt{cmcti9}}} \@addfontinfo\@xpt{\@prtct\citx@} \def\citx@{\def\pcit{\@getfont\pcit\citfam\@xpt{cmcti10}}} \@addfontinfo\@xipt{\@prtct\citxi@} \def\citxi@{\def\pcit{\@getfont\pcit\citfam\@xipt{cmcti10\@halfmag}}} \@addfontinfo\@xiipt{\@prtct\citxii@} \def\citxii@{\def\pcit{\@getfont\pcit\citfam\@xiipt{cmcti12}}} \@addfontinfo\@xivpt{\@prtct\citxiv@} \def\citxiv@{\def\pcit{\@getfont\pcit\citfam\@xivpt{cmcti10\@magscale2}}} \@addfontinfo\@xviipt{\@prtct\citxvii@} \def\citxvii@{\def\pcit{\@getfont\pcit\citfam\@xviipt{cmcti17}}} \@addfontinfo\@xxpt{\@prtct\citxx@} \def\citxx@{\def\pcit{\@getfont\pcit\citfam\@xxpt{cmcti10\@magscale4}}} \@addfontinfo\@xxvpt{\@prtct\citxxv@} \def\citxxv@{\def\pcit{\@getfont\pcit\citfam\@xxvpt{cmcti10\@magscale5}}} \fi % possible default-definitons % % \gdef\Z{$\backslash$Z} \gdef\z{$\backslash$z} % \gdef\Cz{$\backslash$Cz} \gdef\cz{$\backslash$cz} % \gdef\Ch{$\backslash$Ch} \gdef\ch{$\backslash$ch} % \gdef\S{$\backslash$S} \gdef\s{$\backslash$s} % \gdef\Scz{$\backslash$Scz} \gdef\scz{$\backslash$scz} % \gdef\E{$\backslash$E} \gdef\e{$\backslash$e} % \gdef\Ju{$\backslash$Ju} \gdef\ju{$\backslash$ju} % \gdef\Ja{$\backslash$Ja} \gdef\ja{$\backslash$ja} % \gdef\Jo{$\backslash$Jo} \gdef\jo{$\backslash$jo} % \gdef\mz{$\backslash$mz} \gdef\tz{$\backslash$tz} % \gdef\Mz{$\backslash$Mz} \gdef\Tz{$\backslash$Tz} % alternative transliterations (Vulis' original ones) % % \def\cdefTranslitX{ % \def\Zh{\t{Z}{h}} % \def\zh{\t{z}{h}} % \def\Ui{\u{I}} % \def\ui{\u{\i}} % \def\Kh{\t{K}{h}} % \def\kh{\t{k}{h}} % \def\Ts{\t{T}{s}} % \def\ts{\t{t}{s}} % \def\Ch{\t{C}{h}} % \def\ch{\t{c}{h}} % \def\Sh{\t{S}{h}} % \def\sh{\t{s}{h}} % \def\Shch{\t{S}{h}\t{c}{h}} % \def\shch{\t{s}{h}\t{c}{h}} % \def\cprime{$^\prime$} % \def\cPrime{$\underline{^\prime}$} % \def\cdprime{$^{\prime\prime}$} % \def\cDprime{$\underline{^{\prime\prime}}$} % \def\Ee{\`{E}} % \def\ee{\`{e}} % \def\Yu{\t{Y}{u}} % \def\yu{\t{y}{u}} % \def\Ya{\t{Y}{a}} % \def\ya{\t{y}{a}} % \def\Yo{\t{Y}{o}} % \def\yo{\t{y}{o}} % \def\Izhitsa{\'{Y}} % \def\izhitsa{\'{y}} % \def\Fita{\t{T}{h}} % \def\fita{\t{t}{h}} % \def\Yat{\'{E}} % \def\yat{\'{e}} % } % \def\cdefTranslitY{ % \def\Zh{\v{Z}} % \def\zh{\v{z}} % \def\Ui{J} % \def\ui{j} % \def\Kh{Ch} % \def\kh{ch} % \def\Ts{C} % \def\ts{c} % \def\Ch{\v{C}} % \def\ch{\v{c}} % \def\Sh{\v{S}} % \def\sh{\v{s}} % \def\Shch{\v{S}\v{c}} % \def\shch{\v{s}\v{c}} % \def\cprime{\kern0pt'\kern0pt\relax} % \def\cPrime{\kern0pt'\kern0pt\relax} % \def\cdprime{\kern0pt'\kern0pt'\kern0pt\relax} % \def\cDprime{\kern0pt'\kern0pt'\kern0pt\relax} % \def\Ee{\`{E}} % \def\ee{\`{e}} % \def\Yu{\t{J}{u}} % \def\yu{\t{\j}{u}} % \def\Ya{\t{J}{a}} % \def\ya{\t{\j}{a}} % \def\Yo{\t{J}{o}} % \def\yo{\t{j}{o}} % \def\Izhitsa{\'{Y}} % \def\izhitsa{\'{y}} % \def\Fita{\t{T}{h}} % \def\fita{\t{t}{h}} % \def\Yat{\'{E}} % \def\yat{\'{e}} %} % alternatieve fontdefinitie (Vulis' originelen) % %\def\cdefRussian{ % \chardef\Zh='021 % \chardef\zh='031 % \chardef\Ui='022 %uwash % \chardef\ui='032 %uwash % \def\Ui{{\accent"24I}} %Old AMS % %\def\ui{{\accent"24i}} %Old AMS % \chardef\Kh='110 % \chardef\kh='150 % \chardef\Ts='103 % \chardef\ts='143 % \chardef\Ch='121 % \chardef\ch='161 % \chardef\Sh='130 % \chardef\sh='170 % \chardef\Shch='127 % \chardef\shch='167 % \chardef\cDprime='137 % \chardef\cdprime='177 % \chardef\cPrime='136 % \chardef\cprime='176 % \chardef\Ee='003 % \chardef\ee='013 % \chardef\Yu='020 % \chardef\yu='030 % \chardef\Ya='027 % \chardef\ya='037 % \chardef\Yo='023 %start uwash only% \chardef\yo='033 % \chardef\Izhitsa='024 % \chardef\izhitsa='034 % \chardef\Fita='025 % \chardef\fita='035 % \chardef\Yat='043 % \chardef\yat='053 %end uwash only %} ---------------------cut here------------------------------------- % This is Russian.sty adapted to babel.sty (version 1) % with features from various other styles loads cyrillic.sty % Werenfried Spit may 1990 \def\fileversion{2.0} \def\filedate{30 may 1990} {\def\format{plain} \ifx\fmtname\format \expandafter\ifx\csname @ifundefined\endcsname\relax \gdef\next{latexhax.sty} \aftergroup\input\aftergroup\next \fi \fi} \ifcat/@ \makeatletter\let\resetat\makeatother \else\let\resetat\relax\fi \@ifundefined{captionsrussian}{}{\endinput} \typeout{Style option `Russian' version \fileversion\space<\filedate>} \@ifundefined{selectlanguage}{\input babel.sty\relax}{\relax} \input cyrillic.sty \def\daterussian{% \gdef\today{\number\day~\ifcase\month\or {\ja}nvar\ja\or fevral\ja\or marta\or aprel\ja\or ma\ja\or i{\ju}n\ja\or i{\ju}l\ja\or avgusta\or sent{\ja}br\ja\or okt{\ja}br\ja\or no{\ja}br\ja\or dekabr\ja\fi \space \number\year~goda}} \def\captionsrussian{% \gdef\refname{Ssylki}% \gdef\abstractname{Referat}% \gdef\bibname{Literatura}% \gdef\chaptername{Glava }% \gdef\appendixname{Prilo{\z}enie }% \gdef\contentsname{Oglavlenie}% \gdef\listfigurename{Pere{\cz}en{\mz} risunkov}% \gdef\listtablename{Pere{\cz}en{\mz} tablic}% \gdef\indexname{Ukazatel{\mz}}% \gdef\figurename{Risunok}% ili Ris. \gdef\tablename{Tablica}% ili Tabl. \gdef\partname{{\Cz}ast{\mz}}% \gdef\enclname{Vlo{\z}.}% \gdef\ccnamec{Kop.}% \gdef\headpagename{Stranica}% \gdef\headtoname{K}} %??? % More stuff that should have been in these macros but is not: % % Abbreviations {\cyr Sokra{\shch}eni{\ya} } % Acknowledgements {\cyr Blagodarnosti } % Algorithm {\cyr Algoritm } % Answers {\cyr Otvety } % Chart {\cyr Diagramma } % Conclusion {\cyr Zakl{\yu}{\ch}enie } % Conjecture {\cyr Predpolo{\zh}enie } % Corollary {\cyr Sledstvie } % Dedication {\cyr Posv{\ya}{\shch}enie } % Definition {\cyr Opredelenie } % Drawing {\cyr {\Ch}erte{\zh}, {\Ch}ert. } % Errata {\cyr Popravki } % Example {\cyr Primer } % Exercise {\cyr Upra{\zh}nenie } % Exhibit {\cyr Eksponat } % Flowchart {\cyr Blok-s{\kh}ema } % Footnote {\cyr Snoska } % From: {\cyr Ot: } % Glossary {\cyr Slovar{\cprime} } % Hypothesis {\cyr Gipoteza } % Introduction {\cyr Vvedenie } % Legend {\cyr Legenda } % Lemma {\cyr Lemma } % List of Drawings {\cyr Pere{\ch}en{\cprime} {\ch}erte{\zh}e{\ui} } % List of Maps {\cyr Pere{\ch}en{\cprime} kart } % List of Symbols {\cyr Spisok obozna{\ch}eni{\ui} } % Map {\cyr Karta } % Name Index {\cyr Imenno{\ui} ukazatel{\cprime} } % Notes {\cyr Prime{\ch}ani{\ya} } % Plate {\cyr Vkle{\ui}ka } % Preface {\cyr Predislovie } % Problem {\cyr Zada{\ch}a } % Program Listing {\cyr Raspe{\ch}atka } % Proof {\cyr Dokazatel{\cprime}stvo } % Proposition {\cyr Predlo{\zh}enie } % Quotation {\cyr {\Ts}itata } % Remark {\cyr Zame{\ch}anie } % Sheet {\cyr List } % Solution {\cyr Re{\sh}enie } % Subject Index {\cyr Predmetny{\ui} uk{\ya}zatel{\cprime} } % Summary {\cyr Rez{\yu}me } % Supplement {\cyr Dopolnenie } % Theorem {\cyr Teorema } % Volume {\cyr Tom } \begingroup \catcode`\"\active \gdef\extrasrussian{% \global\let\dospecials\russian@dospecials \global\let\@sanitize\russian@sanitize \catcode`\"\active \gdef"{\protect\russian@active@dq} } \endgroup \def\noextrasrussian{% \catcode`\"12 \global\let\dospecials\original@dospecials \global\let\@sanitize\original@sanitize } \begingroup \def\do{\noexpand\do\noexpand}% \xdef\russian@dospecials{\dospecials\do\"}% \expandafter\ifx\csname @sanitize\endcsname\relax \else \def\@makeother{\noexpand\@makeother\noexpand}% \xdef\russian@sanitize{\@sanitize\@makeother\"}% \fi \endgroup \global\let\original@dospecials\dospecials \global\let\original@sanitize\@sanitize \gdef\allowhyphens{\penalty\@M \hskip\z@skip} \gdef\set@low@box#1{\setbox\tw@\hbox{,}\setbox\z@\hbox{#1} \dimen\z@\ht\z@ \advance\dimen\z@ -\ht\tw@ \setbox\z@\hbox{\lower\dimen\z@ \box\z@}\ht\z@\ht\tw@ \dp\z@\dp\tw@} \gdef\dlqq{\protect\@dlqq} \gdef\@dlqq{{\ifhmode \edef\@SF{\spacefactor\the\spacefactor}\else \let\@SF\empty \fi \leavevmode \set@low@box{''}\box\z@\kern-.04em\allowhyphens\@SF\relax}} \gdef\drqq{\protect\@drqq} \gdef\@drqq{{\ifhmode \edef\@SF{\spacefactor\the\spacefactor}\else \let\@SF\empty \fi ''\@SF\relax}} \begingroup \catcode`\"12 \gdef\dq{"} \gdef\frqq{\protect\@frqq} \gdef\@frqq{\ifhmode \edef\@SF{\spacefactor\the\spacefactor}\else \let\@SF\empty \fi \ifmmode \gg \else \leavevmode \raise .2ex \hbox{$\scriptscriptstyle \gg $}\fi \@SF\relax} \gdef\flq{\protect\@flq} \gdef\@flq{\ifhmode \edef\@SF{\spacefactor\the\spacefactor}\else \let\@SF\empty \fi \ifmmode < \else \leavevmode \raise .2ex \hbox{$\scriptscriptstyle < $}\fi \@SF\relax} \gdef\frq{\protect\@frq} \gdef\@frq{\ifhmode \edef\@SF{\spacefactor\the\spacefactor}\else \let\@SF\empty \fi \ifmmode > \else \leavevmode \raise .2ex \hbox{$\scriptscriptstyle > $}\fi \@SF\relax} \endgroup \def\@umlaut#1{\allowhyphens\discretionary{-}{#1}{\accent127 #1}\allowhyphens} \gdef\russian@active@dq#1{% \if\string#1`\dlqq{}% \else\if\string#1'\drqq{}% \else\if\string#1-\allowhyphens-\allowhyphens% \else\if\string#1|\discretionary{-}{}{\kern.03em}% \else\if\string#1i\@umlaut{\i}% \else\if\string#1>\frq{}% \else\if\string#1<\flq{}% \else \@umlaut{#1}\fi\fi\fi\fi\fi\fi\fi} \def\-{\allowhyphens\discretionary{-}{}{}\allowhyphens} \@ifundefined{l@russian}{\global\advance\n@lang by 1 \chardef\l@russian=\n@lang}{} \@ifundefined{originalTeX}{\let\originalTeX\relax}{} \selectlanguage{russian} \resetat ---------------------cut here------------------------------------- \documentstyle[a4,cyrillic]{article} \load{\normalsize}{\cyr} \load{\normalsize}{\cit} \begin{document} \cdefRussian Het Russische alfabet: \\ \cyr Russkij alfavit: \\ abvgde\jo\z zijklmnoprstuf\ch c\cz\s\scz\tz y\mz \e\ju\ja \\ ABVGDE\Jo\Z ZIJKLMNOPRSTUF\Ch C\Cz\S\Scz\Tz Y\Mz \E\Ju\Ja \\ abvgde\jo\z zijklmnoprstuf\ch c\cz\s\scz"y|\e\ju\ja \\ ABVGDE\Jo\Z ZIJKLMNOPRSTUF\Ch C\Cz\S\Scz>Y<\E\Ju\Ja \\ \cem Russkij alfavit: \\ abvgde\jo\z zijklmnoprstuf\ch c\cz\s\scz\tz y\mz \e\ju\ja \\ ABVGDE\Jo\Z ZIJKLMNOPRSTUF\Ch C\Cz\S\Scz\Tz Y\Mz \E\Ju\Ja \\ abvgde\jo\z zijklmnoprstuf\ch c\cz\s\scz"y|\e\ju\ja \\ ABVGDE\Jo\Z ZIJKLMNOPRSTUF\Ch C\Cz\S\Scz>Y<\E\Ju\Ja \\ \cdefTranscript \rm Het Russische alfabet: \\ \cyr Russkij alfavit: \\ abvgde\jo\z zijklmnoprstuf\ch c\cz\s\scz\tz y\mz \e\ju\ja \\ ABVGDE\Jo\Z ZIJKLMNOPRSTUF\Ch C\Cz\S\Scz\Tz Y\Mz \E\Ju\Ja \\ \cem Russkij alfavit: \\ abvgde\jo\z zijklmnoprstuf\ch c\cz\s\scz\tz y\mz \e\ju\ja \\ ABVGDE\Jo\Z ZIJKLMNOPRSTUF\Ch C\Cz\S\Scz\Tz Y\Mz \E\Ju\Ja \\ \end{document} ---------------------cut here-------------------------------------