Re: CTAN/language/tamil

名前: misc
日時: 2004-04-02 19:29:08
IPアドレス: 210.230.18.*

>>27794 とりあえず,私が試みたものを例示いたします(ユーザが直接用いることになる マクロは \texttml のみです). # このようにしても長文を書くのは面倒ですので,フォント側でどうにか # できればそれにこしたことはないわけですが… # サブフォントを使用あるいは和文フォントとして利用,という場合にも # 結局,“サブフォントの切り換え”あるいは“和文文字への読み換え”の # 処理を TeX 側で行うことになりそうですが,何か巧妙な手が # 知られているのでしょうか? # (なお,個々の文字をアクティブにして個々の文字自身に何かを行わせる, # というのは \verb と同様の問題をはらみますので,不適切です.) \documentclass{article} \DeclareFontFamily{U}{wntml}{} \DeclareFontShape{U}{wntml}{m}{n}{<->wntml10}{} \makeatletter %%% character expressions \def\@@TML@a{a} \def\@@TML@l{l} \def\@@TML@n{n} \def\@@TML@m{m} \def\@@TML@L{L} \def\@@TML@R{R} \def\@@TML@N{N} \def\@@TML@NN{NN} \def\@TML@a{{\char'0}} \def\@TML@A{{\char'1}} \def\@TML@i{{\char'2}} \def\@TML@I{{\char'3}} \def\@TML@u{{\char'4}} \def\@TML@U{{\char'5}} \def\@TML@e{{\char'6}} \def\@TML@E{{\char'17}} \def\@TML@ai{{\char'7}} \def\@TML@o{{\char'11}} \def\@TML@O{{\char'16}} \def\@TML@au{{\char'16\char'200}} %%% \def\@TML@@#1{{\accent'361\@TML@@a{#1}}} \def\@TML@@#1{{\noexpand\ooalign{\hfil\char'361\hfil\cr\@TML@@a{#1}}}} \def\@TML@@a#1{{\csname @TML@#1a\endcsname}} \def\@TML@@A#1{{% \ifx #1\@@TML@NN \char'61 \else\ifx #1\@@TML@R \char'211 \else\ifx #1\@@TML@N \char'221 \else \csname @TML@#1a\endcsname \@TML@A@ \fi \fi \fi}} \def\@TML@@i#1{{\csname @TML@#1i\endcsname}} \def\@TML@@I#1{{\csname @TML@#1I\endcsname}} \def\@TML@@u#1{{\csname @TML@#1u\endcsname}} \def\@TML@@U#1{{\csname @TML@#1U\endcsname}} \def\@TML@@e#1{{\@TML@e@ \csname @TML@#1a\endcsname}} \def\@TML@@E#1{{\@TML@e@ \csname @TML@#1a\endcsname}} \def\@TML@@ai#1{{% \ifx #1\@@TML@NN \char'66 \else\ifx #1\@@TML@l \char'156 \else\ifx #1\@@TML@L \char'206 \else\ifx #1\@@TML@N \char'226 \else \char'21 \csname @TML@#1a\endcsname \fi \fi \fi \fi}} \def\@TML@@o#1{{\@TML@e@\@TML@@A{#1}}} %%% \def\@TML@@O#1{{\@TML@E@\@TML@@A{#1}}} \def\@TML@@O#1{{% \@TML@E@ \ifx#1\@@TML@m \csname @TML@#1a\endcsname \char'200 \else \@TML@@A{#1}% \fi}} \def\@TML@@au#1{{\@TML@e@ \csname @TML@#1a\endcsname \char'200}} % \chardef\@TML@A@='141 \chardef\@TML@u@='362 \chardef\@TML@U@='363 \chardef\@TML@e@='26 \chardef\@TML@E@='27 % \chardef\@TML@ka='10 \chardef\@TML@nga='20 \chardef\@TML@ca='30 \chardef\@TML@NYa='40 \chardef\@TML@Ta='50 \chardef\@TML@NNa='60 \chardef\@TML@ta='70 \chardef\@TML@na='100 \chardef\@TML@pa='110 \chardef\@TML@ma='120 \chardef\@TML@ya='130 \chardef\@TML@ra='140 \chardef\@TML@la='150 \chardef\@TML@va='160 \chardef\@TML@Za='170 \chardef\@TML@La='200 \chardef\@TML@Ra='210 \chardef\@TML@Na='220 \chardef\@TML@Sa='260 \chardef\@TML@sa='270 \chardef\@TML@ja='300 \chardef\@TML@ha='310 \chardef\@TML@xa='320 \chardef\@TML@ki='12 \chardef\@TML@ngi='22 \chardef\@TML@ci='32 \chardef\@TML@NYi='42 \chardef\@TML@Ti='52 \chardef\@TML@NNi='62 \chardef\@TML@ti='72 \chardef\@TML@ni='102 \chardef\@TML@pi='112 \chardef\@TML@mi='122 \chardef\@TML@yi='132 \chardef\@TML@ri='142 \chardef\@TML@li='152 \chardef\@TML@vi='162 \chardef\@TML@Zi='172 \chardef\@TML@Li='202 \chardef\@TML@Ri='212 \chardef\@TML@Ni='222 \chardef\@TML@Si='262 \chardef\@TML@si='272 \chardef\@TML@ji='302 \chardef\@TML@hi='312 \chardef\@TML@xi='322 % \chardef\@TML@kI='13 \chardef\@TML@ngI='23 \chardef\@TML@cI='33 \chardef\@TML@NYI='43 \chardef\@TML@TI='53 \chardef\@TML@NNI='63 \chardef\@TML@tI='73 \chardef\@TML@nI='103 \chardef\@TML@pI='113 \chardef\@TML@mI='123 \chardef\@TML@yI='133 \chardef\@TML@rI='143 \chardef\@TML@lI='153 \chardef\@TML@vI='163 \chardef\@TML@ZI='173 \chardef\@TML@LI='203 \chardef\@TML@RI='213 \chardef\@TML@NI='223 \chardef\@TML@SI='263 \chardef\@TML@sI='273 \chardef\@TML@jI='303 \chardef\@TML@hI='313 \chardef\@TML@xI='323 % \chardef\@TML@ku='14 \chardef\@TML@ngu='24 \chardef\@TML@cu='34 \chardef\@TML@NYu='44 \chardef\@TML@Tu='54 \chardef\@TML@NNu='64 \chardef\@TML@tu='74 \chardef\@TML@nu='104 \chardef\@TML@pu='114 \chardef\@TML@mu='124 \chardef\@TML@yu='134 \chardef\@TML@ru='144 \chardef\@TML@lu='154 \chardef\@TML@vu='164 \chardef\@TML@Zu='174 \chardef\@TML@Lu='204 \chardef\@TML@Ru='214 \chardef\@TML@Nu='224 \def\@TML@Su{\@TML@Sa\@TML@u@} \def\@TML@su{\@TML@sa\@TML@u@} \def\@TML@ju{\@TML@ja\@TML@u@} \def\@TML@hu{\@TML@ha\@TML@u@} \def\@TML@xu{\@TML@xa\@TML@u@} % \chardef\@TML@kU='15 \chardef\@TML@ngU='25 \chardef\@TML@cU='35 \chardef\@TML@NYU='45 \chardef\@TML@TU='55 \chardef\@TML@NNU='65 \chardef\@TML@tU='75 \chardef\@TML@nU='105 \chardef\@TML@pU='115 \chardef\@TML@mU='125 \chardef\@TML@yU='135 \chardef\@TML@rU='145 \chardef\@TML@lU='155 \chardef\@TML@vU='165 \chardef\@TML@ZU='175 \chardef\@TML@LU='205 \chardef\@TML@RU='215 \chardef\@TML@NU='225 \def\@TML@SU{\@TML@Sa\@TML@U@} \def\@TML@sU{\@TML@sa\@TML@U@} \def\@TML@jU{\@TML@ja\@TML@U@} \def\@TML@hU{\@TML@ha\@TML@U@} \def\@TML@xU{\@TML@xa\@TML@U@} % %%% define \texttml \DeclareRobustCommand*\texttml[1]{% \begingroup \expandafter\let\expandafter\@TML@outerfont\the\font \usefont{U}{wntml}{m}{n}% \protected@edef\@tempa{#1}% \expandafter\@texttml\@tempa\@nnil \@TML@processed\endgroup} \def\@texttml{% \let\@TML@consonant\@empty \let\@TML@vowel\@empty \let\@TML@processed\@empty \@texttml@loop} \def\@texttml@loop{\futurelet\@next@token\@texttml@loop@} \def\@texttml@loop@{% \def\@texttml@loop@next{\@texttml@loop@checkchar}% \ifx\@next@token\@nnil \@texttml@add@letters \def\@texttml@loop@next{\@gobble}% \else \ifx \@next@token\@sptoken \def\@texttml@loop@next{\@texttml@loop@addspace}% \else\ifx \@next@token\bgroup \def\@texttml@loop@next{\@texttml@loop@bgroup}% \fi \fi \fi \@texttml@loop@next} \def\@texttml@loop@checkchar#1{% \if\noexpand#1\relax \@texttml@add@letters \@addto@macro\@TML@processed{#1}% \else \@tempswafalse \@tfor\@tempa:=aAiIuUeEoO\do{\if#1\@tempa\relax \@tempswatrue \fi}% \if@tempswa \if i#1\relax \ifx\@TML@vowel\@@TML@a \def\@TML@vowel{ai}% \else \ifx\@TML@vowel\@empty\else \@texttml@add@letters \fi \def\@TML@vowel{i}% \fi \else\if u#1\relax \ifx\@TML@vowel\@@TML@a \def\@TML@vowel{au}% \else \ifx\@TML@vowel\@empty\else \@texttml@add@letters \fi \def\@TML@vowel{u}% \fi \else \ifx\@TML@vowel\@empty\else \@texttml@add@letters \fi \def\@TML@vowel{#1}% \fi \fi \else \@tfor\@tempa:=cghjklmnprstvxyLNRSTYZ\do{\if#1\@tempa\relax \@tempswatrue \fi}% \if@tempswa \ifx\@TML@vowel\@empty\else \@texttml@add@letters \fi \if g#1\relax \ifx\@TML@consonant\@@TML@n \def\@TML@consonant{ng}% \else \@texttml@add@letters \@addto@macro\@TML@processed{{\@TML@outerfont g}}% \fi \else\if N#1\relax \ifx\@TML@consonant\@@TML@N \def\@TML@consonant{NN}% \else \ifx\@TML@consonant\@empty\else \@texttml@add@letters \fi \def\@TML@consonant{N}% \fi \else\if Y#1\relax \ifx\@TML@consonant\@@TML@N \def\@TML@consonant{NY}% \else \@texttml@add@letters \@addto@macro\@TML@processed{{\@TML@outerfont Y}}% \fi \else \ifx\@TML@consonant\@empty\else \@texttml@add@letters \fi \def\@TML@consonant{#1}% \fi \fi \fi \else \@texttml@add@letters \@addto@macro\@TML@processed{{\@TML@outerfont #1}}% \fi \fi \fi \@texttml@loop} \begingroup \def\:{\def\@texttml@loop@addspace} \expandafter\endgroup\: {% \@texttml@add@letters \@addto@macro\@TML@processed{ }% \@texttml@loop} \def\@texttml@loop@bgroup#1{% \@texttml@add@letters \begingroup \@texttml#1\@nnil \toks@\expandafter{\@TML@processed}% \edef\@tempa{\noexpand\@addto@macro\noexpand\@TML@processed{{\the\toks@}}}% \expandafter\endgroup\@tempa \@texttml@loop} \def\@texttml@add@letters{% \ifx\@TML@vowel\@empty \ifx\@TML@consonant\@empty \def\@tempa{{}}% \else \edef\@tempa{{\@TML@@\@TML@consonant}}% \fi \else \ifx\@TML@consonant\@empty \edef\@tempa{{\csname @TML@\@TML@vowel\endcsname}}% \else \edef\@tempa{{\csname @TML@@\@TML@vowel\endcsname\@TML@consonant}}% \fi \fi \expandafter\@addto@macro\expandafter\@TML@processed\@tempa \let\@TML@vowel\@empty \let\@TML@consonant\@empty} \@ifundefined{@addto@macro} {\def\@addto@macro#1#2{% \begingroup \toks@\expandafter{#1#2}% \edef#1{\def\noexpand#1{\the\toks@}}% \expandafter\endgroup#1}} \relax \makeatother \advance\textwidth150pt \advance\oddsidemargin-75pt \def\arraystretch{1.5} \pagestyle{empty} \begin{document} \begin{center} \def\sampleline#1{% \texttt{#1} & \texttml{#1} & \texttml{#1a} & \texttml{#1A} & \texttml{#1i} & \texttml{#1I} & \texttml{#1u} & \texttml{#1U} & \texttml{#1e} & \texttml{#1E} & \texttml{#1ai} & \texttml{#1o} & \texttml{#1O} & \texttml{#1au} \\ \hline} \begin{tabular}{|*{14}{c|}} \hline & & \texttt{a} & \texttt{A} & \texttt{i} & \texttt{I} & \texttt{u} & \texttt{U} & \texttt{e} & \texttt{E} & \texttt{ai} & \texttt{o} & \texttt{O} & \texttt{au} \\ \hline \sampleline{} \sampleline{k} \sampleline{ng} \sampleline{c} \sampleline{NY} \sampleline{T} \sampleline{NN} \sampleline{t} \sampleline{n} \sampleline{p} \sampleline{m} \sampleline{y} \sampleline{r} \sampleline{l} \sampleline{v} \sampleline{Z} \sampleline{L} \sampleline{R} \sampleline{N} \sampleline{S} \sampleline{s} \sampleline{j} \sampleline{h} \sampleline{x} \end{tabular} \end{center} \end{document}

この書き込みへの返事:

お名前
題名 
メッセージ(タグは <a href="...">...</a> だけ使えます)