% This is PMJ.TEX ``Poor Man's Japanese'' for TeX
% placed in the public domain 12/3/1990 Thomas B. Ridgeway and the
% Humanities and Arts Computing Center
% 
% declare pmJ fonts     stand by . . . this may take a while
\font\jfaB=wjisa1
\font\jfaC=wjisa2
\font\jfaD=wjisa3
\font\jfaE=wjisa4
\font\jfaF=wjisa5
\font\jfaG=wjisa6
\font\jfaH=wjisa7
\font\jfaI=wjisa8
\font\jfaJ=wjisa9
\font\jfaa=wjisaa
\font\jfab=wjisab
\font\jfac=wjisac
\font\jfad=wjisad
\font\jfae=wjisae
\font\jfaf=wjisaf
\font\jfbA=wjisb0
\font\jfbB=wjisb1
\font\jfbC=wjisb2
\font\jfbD=wjisb3
\font\jfbE=wjisb4
\font\jfbF=wjisb5
\font\jfbG=wjisb6
\font\jfbH=wjisb7
\font\jfbI=wjisb8
\font\jfbJ=wjisb9
\font\jfba=wjisba
\font\jfbb=wjisbb
\font\jfbc=wjisbc
\font\jfbd=wjisbd
\font\jfbe=wjisbe
\font\jfbf=wjisbf
\font\jfcA=wjisc0
\font\jfcB=wjisc1
\font\jfcC=wjisc2
\font\jfcD=wjisc3
\font\jfcE=wjisc4
\font\jfcF=wjisc5
\font\jfcG=wjisc6
\font\jfcH=wjisc7
\font\jfcI=wjisc8
\font\jfcJ=wjisc9
\font\jfca=wjisca
\font\jfcb=wjiscb
\font\jfcc=wjiscc
\font\jfcd=wjiscd
\font\jfce=wjisce
\font\jfcf=wjiscf
\font\jfdA=wjisd0
\font\jfdB=wjisd1
\font\jfdC=wjisd2
\font\jfdD=wjisd3
\font\jfdE=wjisd4
\font\jfdF=wjisd5
\font\jfdG=wjisd6
\font\jfdH=wjisd7
\font\jfdI=wjisd8
\font\jfdJ=wjisd9
\font\jfda=wjisda
\font\jfdb=wjisdb
\font\jfdc=wjisdc
\font\jfdd=wjisdd
\font\jfde=wjisde
\font\jfdf=wjisdf
\font\jfeA=wjise0
\font\jfeB=wjise1
\font\jfeC=wjise2
\font\jfeD=wjise3
\font\jfeE=wjise4
\font\jfeF=wjise5
\font\jfeG=wjise6
\font\jfeH=wjise7
\font\jfeI=wjise8
\font\jfeJ=wjise9
\font\jfea=wjisea
\font\jfeb=wjiseb
\font\jfec=wjisec
\font\jfed=wjised
\font\jfee=wjisee
\font\jfef=wjisef
\font\jffA=wjisf0
\font\jffB=wjisf1
\font\jffC=wjisf2
\font\jffD=wjisf3
\font\jffE=wjisf4
%\font\jffF=wjisf5
%\font\jffG=wjisf6
%\font\jffH=wjisf7
%\font\jffI=wjisf8
%
% a flag to show whether 1st byte of 2-byte pair has been read
\newif\ifjisfontset
\jisfontsetfalse % no, it hasn't yet been read
% our fonts are portmanteaus containing two different sizes,
%     set up machinery for picking one or another size
\newif\ifbigJ
\bigJfalse % no, we are not printing big Japanese now
\def\jglue{\hskip0pt plus.5pt}
\newcount\Jchar
%
\def\jchar#1{\Jchar=#1\ifbigJ\advance\Jchar by -128\fi\char\the\Jchar}
% define a general macro for handling Japanese characters
\def\jischar#1#2{\ifjisfontset\jchar{#1}\restorefont\discretionary{}{}{}\jglue\jisfontsetfalse\else\jisfontsettrue\edef\restorefont{\the\font}#2\fi}
% define a special macro for those characters which can only be 2nd of 2 bytes
\def\jischr#1{\ifjisfontset\jchar{#1}\restorefont\jisfontsetfalse\else\message{!pmJ! character #1 out of context!}\fi}
% define macros for the individual characters
%   each character sets a) a current font, or b) its character in the current font
%   depending on ifjisfontset
% do Japanese within a local group so that other schemes for
%    using chars in range 128+ might be used elsewhere
%
\def\jisactive{%
\catcode`\^^a0=\active%
\catcode`\^^a1=\active%
\catcode`\^^a2=\active%
\catcode`\^^a3=\active%
\catcode`\^^a4=\active%
\catcode`\^^a5=\active%
\catcode`\^^a6=\active%
\catcode`\^^a7=\active%
\catcode`\^^a8=\active%
\catcode`\^^a9=\active%
\catcode`\^^aa=\active%
\catcode`\^^ab=\active%
\catcode`\^^ac=\active%
\catcode`\^^ad=\active%
\catcode`\^^ae=\active%
\catcode`\^^af=\active%
\catcode`\^^b0=\active%
\catcode`\^^b1=\active%
\catcode`\^^b2=\active%
\catcode`\^^b3=\active%
\catcode`\^^b4=\active%
\catcode`\^^b5=\active%
\catcode`\^^b6=\active%
\catcode`\^^b7=\active%
\catcode`\^^b8=\active%
\catcode`\^^b9=\active%
\catcode`\^^ba=\active%
\catcode`\^^bb=\active%
\catcode`\^^bc=\active%
\catcode`\^^bd=\active%
\catcode`\^^be=\active%
\catcode`\^^bf=\active%
\catcode`\^^c0=\active%
\catcode`\^^c1=\active%
\catcode`\^^c2=\active%
\catcode`\^^c3=\active%
\catcode`\^^c4=\active%
\catcode`\^^c5=\active%
\catcode`\^^c6=\active%
\catcode`\^^c7=\active%
\catcode`\^^c8=\active%
\catcode`\^^c9=\active%
\catcode`\^^ca=\active%
\catcode`\^^cb=\active%
\catcode`\^^cc=\active%
\catcode`\^^cd=\active%
\catcode`\^^ce=\active%
\catcode`\^^cf=\active%
\catcode`\^^d0=\active%
\catcode`\^^d1=\active%
\catcode`\^^d2=\active%
\catcode`\^^d3=\active%
\catcode`\^^d4=\active%
\catcode`\^^d5=\active%
\catcode`\^^d6=\active%
\catcode`\^^d7=\active%
\catcode`\^^d8=\active%
\catcode`\^^d9=\active%
\catcode`\^^da=\active%
\catcode`\^^db=\active%
\catcode`\^^dc=\active%
\catcode`\^^dd=\active%
\catcode`\^^de=\active%
\catcode`\^^df=\active%
\catcode`\^^e0=\active%
\catcode`\^^e1=\active%
\catcode`\^^e2=\active%
\catcode`\^^e3=\active%
\catcode`\^^e4=\active%
\catcode`\^^e5=\active%
\catcode`\^^e6=\active%
\catcode`\^^e7=\active%
\catcode`\^^e8=\active%
\catcode`\^^e9=\active%
\catcode`\^^ea=\active%
\catcode`\^^eb=\active%
\catcode`\^^ec=\active%
\catcode`\^^ed=\active%
\catcode`\^^ee=\active%
\catcode`\^^ef=\active%
\catcode`\^^f0=\active%
\catcode`\^^f1=\active%
\catcode`\^^f2=\active%
\catcode`\^^f3=\active%
\catcode`\^^f4=\active%
\catcode`\^^f5=\active%
\catcode`\^^f6=\active%
\catcode`\^^f7=\active%
\catcode`\^^f8=\active%
\catcode`\^^f9=\active%
\catcode`\^^fa=\active%
\catcode`\^^fb=\active%
\catcode`\^^fc=\active%
\catcode`\^^fd=\active%
\catcode`\^^fe=\active%
\catcode`\^^ff=\active%
}
\def\inactive{%
\catcode`\^^a0=12%
\catcode`\^^a1=12%
\catcode`\^^a2=12%
\catcode`\^^a3=12%
\catcode`\^^a4=12%
\catcode`\^^a5=12%
\catcode`\^^a6=12%
\catcode`\^^a7=12%
\catcode`\^^a8=12%
\catcode`\^^a9=12%
\catcode`\^^aa=12%
\catcode`\^^ab=12%
\catcode`\^^ac=12%
\catcode`\^^ad=12%
\catcode`\^^ae=12%
\catcode`\^^af=12%
\catcode`\^^b0=12%
\catcode`\^^b1=12%
\catcode`\^^b2=12%
\catcode`\^^b3=12%
\catcode`\^^b4=12%
\catcode`\^^b5=12%
\catcode`\^^b6=12%
\catcode`\^^b7=12%
\catcode`\^^b8=12%
\catcode`\^^b9=12%
\catcode`\^^ba=12%
\catcode`\^^bb=12%
\catcode`\^^bc=12%
\catcode`\^^bd=12%
\catcode`\^^be=12%
\catcode`\^^bf=12%
\catcode`\^^c0=12%
\catcode`\^^c1=12%
\catcode`\^^c2=12%
\catcode`\^^c3=12%
\catcode`\^^c4=12%
\catcode`\^^c5=12%
\catcode`\^^c6=12%
\catcode`\^^c7=12%
\catcode`\^^c8=12%
\catcode`\^^c9=12%
\catcode`\^^ca=12%
\catcode`\^^cb=12%
\catcode`\^^cc=12%
\catcode`\^^cd=12%
\catcode`\^^ce=12%
\catcode`\^^cf=12%
\catcode`\^^d0=12%
\catcode`\^^d1=12%
\catcode`\^^d2=12%
\catcode`\^^d3=12%
\catcode`\^^d4=12%
\catcode`\^^d5=12%
\catcode`\^^d6=12%
\catcode`\^^d7=12%
\catcode`\^^d8=12%
\catcode`\^^d9=12%
\catcode`\^^da=12%
\catcode`\^^db=12%
\catcode`\^^dc=12%
\catcode`\^^dd=12%
\catcode`\^^de=12%
\catcode`\^^df=12%
\catcode`\^^e0=12%
\catcode`\^^e1=12%
\catcode`\^^e2=12%
\catcode`\^^e3=12%
\catcode`\^^e4=12%
\catcode`\^^e5=12%
\catcode`\^^e6=12%
\catcode`\^^e7=12%
\catcode`\^^e8=12%
\catcode`\^^e9=12%
\catcode`\^^ea=12%
\catcode`\^^eb=12%
\catcode`\^^ec=12%
\catcode`\^^ed=12%
\catcode`\^^ee=12%
\catcode`\^^ef=12%
\catcode`\^^f0=12%
\catcode`\^^f1=12%
\catcode`\^^f2=12%
\catcode`\^^f3=12%
\catcode`\^^f4=12%
\catcode`\^^f5=12%
\catcode`\^^f6=12%
\catcode`\^^f7=12%
\catcode`\^^f8=12%
\catcode`\^^f9=12%
\catcode`\^^fa=12%
\catcode`\^^fb=12%
\catcode`\^^fc=12%
\catcode`\^^fd=12%
\catcode`\^^fe=12%
\catcode`\^^ff=12%
}
%
\def\endJapanese{\endgroup}
%
\jisactive %switch on characters so we can define the macros with them active
\def\beginJapanese{\begingroup\jisactive%
% make characters used in JIS encoding active so they can become macros
% always end the line after saying \beginJapanese
%    any characters on the same line will have already been read with
%    their non-Japanese meanings
\def^^a0{\jischar{160}{\jfaA}}%
\def^^a1{\jischar{161}{\jfaB}}%
\def^^a2{\jischar{162}{\jfaC}}%
\def^^a3{\jischar{163}{\jfaD}}%
\def^^a4{\jischar{164}{\jfaE}}%
\def^^a5{\jischar{165}{\jfaF}}%
\def^^a6{\jischar{166}{\jfaG}}%
\def^^a7{\jischar{167}{\jfaH}}%
\def^^a8{\jischar{168}{\jfaI}}%
\def^^a9{\jischar{169}{\jfaJ}}%
\def^^aa{\jischar{170}{\jfaa}}%
\def^^ab{\jischar{171}{\jfab}}%
\def^^ac{\jischar{172}{\jfac}}%
\def^^ad{\jischar{173}{\jfad}}%
\def^^ae{\jischar{174}{\jfae}}%
\def^^af{\jischar{175}{\jfaf}}%
\def^^b0{\jischar{176}{\jfbA}}%
\def^^b1{\jischar{177}{\jfbB}}%
\def^^b2{\jischar{178}{\jfbC}}%
\def^^b3{\jischar{179}{\jfbD}}%
\def^^b4{\jischar{180}{\jfbE}}%
\def^^b5{\jischar{181}{\jfbF}}%
\def^^b6{\jischar{182}{\jfbG}}%
\def^^b7{\jischar{183}{\jfbH}}%
\def^^b8{\jischar{184}{\jfbI}}%
\def^^b9{\jischar{185}{\jfbJ}}%
\def^^ba{\jischar{186}{\jfba}}%
\def^^bb{\jischar{187}{\jfbb}}%
\def^^bc{\jischar{188}{\jfbc}}%
\def^^bd{\jischar{189}{\jfbd}}%
\def^^be{\jischar{190}{\jfbe}}%
\def^^bf{\jischar{191}{\jfbf}}%
\def^^c0{\jischar{192}{\jfcA}}%
\def^^c1{\jischar{193}{\jfcB}}%
\def^^c2{\jischar{194}{\jfcC}}%
\def^^c3{\jischar{195}{\jfcD}}%
\def^^c4{\jischar{196}{\jfcE}}%
\def^^c5{\jischar{197}{\jfcF}}%
\def^^c6{\jischar{198}{\jfcG}}%
\def^^c7{\jischar{199}{\jfcH}}%
\def^^c8{\jischar{200}{\jfcI}}%
\def^^c9{\jischar{201}{\jfcJ}}%
\def^^ca{\jischar{202}{\jfca}}%
\def^^cb{\jischar{203}{\jfcb}}%
\def^^cc{\jischar{204}{\jfcc}}%
\def^^cd{\jischar{205}{\jfcd}}%
\def^^ce{\jischar{206}{\jfce}}%
\def^^cf{\jischar{207}{\jfcf}}%
\def^^d0{\jischar{208}{\jfdA}}%
\def^^d1{\jischar{209}{\jfdB}}%
\def^^d2{\jischar{210}{\jfdC}}%
\def^^d3{\jischar{211}{\jfdD}}%
\def^^d4{\jischar{212}{\jfdE}}%
\def^^d5{\jischar{213}{\jfdF}}%
\def^^d6{\jischar{214}{\jfdG}}%
\def^^d7{\jischar{215}{\jfdH}}%
\def^^d8{\jischar{216}{\jfdI}}%
\def^^d9{\jischar{217}{\jfdJ}}%
\def^^da{\jischar{218}{\jfda}}%
\def^^db{\jischar{219}{\jfdb}}%
\def^^dc{\jischar{220}{\jfdc}}%
\def^^dd{\jischar{221}{\jfdd}}%
\def^^de{\jischar{222}{\jfde}}%
\def^^df{\jischar{223}{\jfdf}}%
\def^^e0{\jischar{224}{\jfeA}}%
\def^^e1{\jischar{225}{\jfeB}}%
\def^^e2{\jischar{226}{\jfeC}}%
\def^^e3{\jischar{227}{\jfeD}}%
\def^^e4{\jischar{228}{\jfeE}}%
\def^^e5{\jischar{229}{\jfeF}}%
\def^^e6{\jischar{230}{\jfeG}}%
\def^^e7{\jischar{231}{\jfeH}}%
\def^^e8{\jischar{232}{\jfeI}}%
\def^^e9{\jischar{233}{\jfeJ}}%
\def^^ea{\jischar{234}{\jfea}}%
\def^^eb{\jischar{235}{\jfeb}}%
\def^^ec{\jischar{236}{\jfec}}%
\def^^ed{\jischar{237}{\jfed}}%
\def^^ee{\jischar{238}{\jfee}}%
\def^^ef{\jischar{239}{\jfef}}%
\def^^f0{\jischar{240}{\jffA}}%
\def^^f1{\jischar{241}{\jffB}}%
\def^^f2{\jischar{242}{\jffC}}%
\def^^f3{\jischar{243}{\jffD}}%
\def^^f4{\jischar{244}{\jffE}}%
\def^^f5{\jischr{245}}%
\def^^f6{\jischr{246}}%
\def^^f7{\jischr{247}}%
\def^^f8{\jischr{248}}%
\def^^f9{\jischr{249}}%
\def^^fa{\jischr{250}}%
\def^^fb{\jischr{251}}%
\def^^fc{\jischr{252}}%
\def^^fd{\jischr{253}}%
\def^^fe{\jischr{254}}%
\def^^ff{\jischr{255}}} % that was the end of the \def for \beginJapanese
% these below might be convenient to use for user-defined characters
%\def^^f5{\jischar{245}{\jffF}}%
%\def^^f6{\jischar{246}{\jffG}}%
%\def^^f7{\jischar{247}{\jffH}}%
%\def^^f9{\jischar{249}{\jffJ}}%
%\def^^fa{\jischar{250}{\jffa}}%
%\def^^fb{\jischar{251}{\jffb}}%
%\def^^fc{\jischar{252}{\jffc}}%
%\def^^fd{\jischar{253}{\jffd}}%
%\def^^fe{\jischar{254}{\jffe}}%
%\def^^ff{\jischar{255}{\jfff}}%
\inactive % switch the active characters back off until they are needed