diff options
Diffstat (limited to 'Master/texmf-dist/source/latex/cjk/contrib')
7 files changed, 1377 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/cjk/contrib/wadalab/DNP.sfd b/Master/texmf-dist/source/latex/cjk/contrib/wadalab/DNP.sfd new file mode 100644 index 00000000000..cd279422656 --- /dev/null +++ b/Master/texmf-dist/source/latex/cjk/contrib/wadalab/DNP.sfd @@ -0,0 +1,42 @@ +# DNP.sfd +# +# subfont numbers for JIS character set in DNP font encoding to be used +# with the CJK package for LaTeX. + +sy 1: 0xA1A1_0xA1FE 101: 0xA2A1_0xA2FE +roma 33: 0xA3A1_0xA3FE +hira 1: 0xA4A1_0xA4FE +kata 1: 0xA5A1_0xA5FE +greek 1: 0xA6A1_0xA6FE +russian 1: 0xA7A1_0xA7FE +keisen 1: 0xA8A1_0xA8FE + +ka 0xB0A1_0xB0FE 0xB1A1_0xB1FE 0xB2A1_0xB2E4 +kb 0xB2E5_0xB2FE 0xB3A1_0xB3FE 0xB4A1_0xB4FE 0xB5A1_0xB5CA +kc 0xB5CB_0xB5FE 0xB6A1_0xB6FE 0xB7A1_0xB7FE 0xB8A1_0xB8B0 +kd 0xB8B1_0xB8FE 0xB9A1_0xB9FE 0xBAA1_0xBAF4 +ke 0xBAF5_0xBAFE 0xBBA1_0xBBFE 0xBCA1_0xBCFE 0xBDA1_0xBDDA +kf 0xBDDB_0xBDFE 0xBEA1_0xBEFE 0xBFA1_0xBFFE 0xC0A1_0xC0C0 +kg 0xC0C1_0xC0FE 0xC1A1_0xC1FE 0xC2A1_0xC2FE 0xC3A1_0xC3A6 +kh 0xC3A7_0xC3FE 0xC4A1_0xC4FE 0xC5A1_0xC5EA +ki 0xC5EB_0xC5FE 0xC6A1_0xC6FE 0xC7A1_0xC7FE 0xC8A1_0xC8D0 +kj 0xC8D1_0xC8FE 0xC9A1_0xC9FE 0xCAA1_0xCAFE 0xCBA1_0xCBB6 +kk 0xCBB7_0xCBFE 0xCCA1_0xCCFE 0xCDA1_0xCDFA +kl 0xCDFB_0xCDFE 0xCEA1_0xCEFE 0xCFA1_0xCFFE + +km 0xD0A1_0xD0FE 0xD1A1_0xD1FE 0xD2A1_0xD2E4 +kn 0xD2E5_0xD2FE 0xD3A1_0xD3FE 0xD4A1_0xD4FE 0xD5A1_0xD5CA +ko 0xD5CB_0xD5FE 0xD6A1_0xD6FE 0xD7A1_0xD7FE 0xD8A1_0xD8B0 +kp 0xD8B1_0xD8FE 0xD9A1_0xD9FE 0xDAA1_0xDAF4 +kq 0xDAF5_0xDAFE 0xDBA1_0xDBFE 0xDCA1_0xDCFE 0xDDA1_0xDDDA +kr 0xDDDB_0xDDFE 0xDEA1_0xDEFE 0xDFA1_0xDFFE 0xE0A1_0xE0C0 +ks 0xE0C1_0xE0FE 0xE1A1_0xE1FE 0xE2A1_0xE2FE 0xE3A1_0xE3A6 +kt 0xE3A7_0xE3FE 0xE4A1_0xE4FE 0xE5A1_0xE5EA +ku 0xE5EB_0xE5FE 0xE6A1_0xE6FE 0xE7A1_0xE7FE 0xE8A1_0xE8D0 +kv 0xE8D1_0xE8FE 0xE9A1_0xE9FE 0xEAA1_0xEAFE 0xEBA1_0xEBB6 +kw 0xEBB7_0xEBFE 0xECA1_0xECFE 0xEDA1_0xEDFA +kx 0xEDFB_0xEDFE 0xEEA1_0xEEFE 0xEFA1_0xEFFE 0xF0A1_0xF0E0 +ky 0xF0E1_0xF0FE 0xF1A1_0xF1FE 0xF2A1_0xF2FE 0xF3A1_0xF3C6 +kz 0xF3C7_0xF3FE 0xF4A1_0xF4FE + +# eof diff --git a/Master/texmf-dist/source/latex/cjk/contrib/wadalab/DNP.txt b/Master/texmf-dist/source/latex/cjk/contrib/wadalab/DNP.txt new file mode 100644 index 00000000000..e9db5585d4b --- /dev/null +++ b/Master/texmf-dist/source/latex/cjk/contrib/wadalab/DNP.txt @@ -0,0 +1,384 @@ +This file describes how to set up the CJK package with Wadalab postscript +fonts for Japanese under Unix-like operating systems using distributions +based on web2c (teTeX, TeXLive, etc.). + +The printer does not need to have resident Japanese fonts. + + +By Hin-Tak Leung <htl10@users.sourceforge.net>, September 1997. + +Revised November 1998. + +Last revised by Werner Lemberg, July 2006. + +=================== + + +Summary steps +------------- + + 1. Download the CJK package and install it. + + 2. Download and install the Wadalab font bundles for the CJK package from + CTAN. + + 3a. Update `<TEXMF>/dvips/psfont.map', or update your `~/.dvipsrc' file. + Use the updmap script if possible. + + 3b. Alternatively, create a `config.wadalab' file. + + 3c. For pdfTeX, update `pdftex.map' (normally handled already by the updmap + script). Omit this step for recent teTeX and TeXLive versions. + + 3d. For dvipdfmx (and dvipdfm), update `dvipdfm.map' (normally handled + already by the updmap script). Omit this step for recent teTeX and + TeXLive versions. + + 4. Run mktexlsr. + + 5. Test it! + + +Details of each step +-------------------- + +1. The following files are essential and must be in your $TEXINPUTS path. + + CJK/texinput/: + CJK.enc CJK.sty CJKnumb.sty + CJKulem.sty ruby.sty standard.bdg + standard.chr standard.enc + + CJK/texinput/JIS/: + JIS.cap JIS.cpx JISdnp.enc + c42song.fd EUC-JP.bdg EUC-JP.chr + EUC-JP.enc + + CJK/texinput/UTF8/: + UTF8.bdg UTF8.chr UTF8.enc + c70song.fd + + [Even if you don't use `c42song.fd' and `c70song.fd' these two files + should be here to avoid a strange LaTeX error message if a font shape is + missing.] + + [The EUC-JP files support real EUC-JP with single shift to access + JIS X 0212.] + + And one or more of the following files: + + file name Description + ------------------------------------------------------------------------ + c42goth.fd Gothic JIS X 0208 (level 1,2 kanji), DNP font encoding + c42maru.fd Maru + c42min.fd Mincho + + c52maru.fd Maru JIS X 0212 (level 3 kanji), DNP font encoding + c52min.fd Mincho + + c70goth.fd Gothic JIS X 0208, Unicode font encoding + + c70maru.fd Maru JIS X 0208 + 0212, Unicode font encoding + c70min.fd Mincho + + And finally, `wadalab.map'. + + Also keep `CJK/examples/JIS.tex' for testing. The rest of the CJK files + are not essential for this setup. Usage is documented in + `CJK/examples/JIS.tex' but reading `CJK/doc/CJK.txt' and + `CJK/doc/ruby.txt' is recommended. + + For pseudo vertical typesetting you need the `*.fdx' files accompaning + the above `*.fd' files, together with the `CJKvert.sty' file. + + For using Unicode as the input encoding you should use `CJKutf8.sty'. + +2. The CJK sub font packages of the Wadalab fonts can be found on CTAN in + the directory `fonts/wadalab'. The real TeX font names consist of the + concatenation of the family name with the subfont suffix. Examples: + `dgjkeisen', `mrjkj', `umcj5d'. + + file name TeX font family + DNP Unicode + --------------------------------------------- + gothic-0-13.tar.gz dgj udgj + maru-0-8.tar.gz mrj umrj + maru-1-8.tar.gz mr2j + mincho-0-12.tar.gz dmj udmj [*] + mincho-0-8.tar.gz mcj umcj + mincho-1-8.tar.gz mc2j + + [*] The `udmj' family uses mc2j for glyphs Level 3 Kanji. It doesn't + really fit (mc2j is too thin), but it is still better than having + no Level 3 Kanji at all. + + Installation should be straightforward since the directories in the + font bundles already follow the TDS standard. + +3a. Append `wadalab.map' to `<TEXMF>/dvips/config/psfont.map; or, for + non-root users, create a `~/.dvipsrc' file containing this single line: + +========================================================================= +p +/my-home/where_I_want_it/wadalab.map +========================================================================= + + (or add this line to your `~/.dvipsrc' if it already exists) and set + $DVIPSFONTS to the location of the `*.pfb' files. + + teTeX and TeXLive users should do the following instead of the above: + + a) Copy `wadalab.map' into the `<TEXMF>/fonts/map/dvips/wadalab' + directory. If you are non-root, create a private TEXMF tree in your + home directory, and copy the file to a similar location in your + private tree. + + Users of older versions of teTeX and TeXLive should use the + directory `<TEXMF>/dvips/config' instead. + + b) Add the following line to <TEXMF>/web2c/updmap.cfg: + +========================================================================= +Map wadalab.map +========================================================================= + + and call the updmap script to regenerate all program specific map + files. If you are non-root, copy `updmap.cfg' from the main TEXMF + tree to a similar location in your private tree and modify it there. + + Users of older version of teTeX and TeXLive should add `wadalab.map' + to the `extra_modules' variable directly in the updmap script. + +3b. Another solution is to just copy wadalab.map to the location in + step 3a. After creating a file `config.wadalab', containing a single line + +========================================================================= +p +wadalab.map +========================================================================= + + you can use the `-P wadalab' switch while calling dvips. + + The preferred location of `config.wadalab' is `<TEXMF>/dvips/wadalab' for + recent teTeX and TeXLive versions, and `<TEXMF>/dvips/config' otherwise. + +3c. [This step is optional and should be omitted for recent teTeX and + TeXLive versions.] + + Append `wadalab.map' to `<TEXMF>/dvips/config/pdftex.map' so that pdfTeX + can use the Wadalab fonts. The updmap script does this automatically. + +3d. [This step is optional and should be omitted for recent teTeX and + TeXLive versions.] + + Append `wadalab.map' to <TEXMF>/dvipdfm/config/dvipdfm.map so that + dvipdfmx (and dvipdfm) can use the Wadalab fonts. The updmap script does + this automatically. + + +4. Run mktexlsr to make your TeX system actually find your font data files. + + +5. Edit CJK/examples/JIS.tex and replace `\begin{CJK*}{JIS}{song}' by + `\begin{CJK*}[dnp]{JIS}{xxx}'; `xxx' can be `min' (for mincho), `goth' + (for gothic), or `maru'. To see the mincho-0-8 font (which is in `light' + series), insert + + \fontseries{l} + \selectfont + + in the CJK environment. All fonts use the poor-man's bold mechanism of + the CJK package. + + Then do the sequence + + latex JIS.tex + dvips JIS.dvi -j -o JIS.ps + + or + + dvips JIS.dvi -j -P wadalab -o JIS.ps + + if you haven't modified `psfonts.map'. The `-j' switch activates partial + font downloading (which usually is the default). + + At this stage running ghostview on `JIS.ps' should display it on screen. + Send `JIS.ps' to a postscript printer or run ghostscript for + non-postscript printers as you wish; and there you have your first + printed Japanese document. Enjoy! + + Note: The level 3 Kanji fonts are generated in a DNP-like encoding also. + A single level 3 Kanji character can be most easily input with + + \CJKchar[JIS2]{<first-byte>}{<second-byte>} , + + provided that you have said + + \CJKfontenc{JIS2}{dnp} + \CJKencfamily{JIS2}{xxx} + + in the preamble of your document to activate dnp font encoding for + the JIS2 encoding in font shape `xxx' (which can be either `maru' + or `min'). + + In case you use Emacs or Mule together with cjk-enc.el (of the CJK + package), JIS X 0212 characters can be displayed directly; they + will be automatically converted into appropriate CJK macros. + + +How the Wadalab fonts have been created +--------------------------------------- + +This section contains a description of the conversion process which +transforms the raw Wadalab PS files into subfonts usable by the CJK package. + +1. The Wadalab PS files are available from the original host + + ftp://ftp.ipl.t.u-tokyo.ac.jp/Font/ + + Alternative locations are CTAN hosts like ftp.dante.de or ftp.tug.org and + its mirrors: + + ftp://ftp.dante.de/pub/tex/support/ghostscript/3rdparty + /fonts/kanji/Font + + Obtain the following files (if you download the files from CTAN, the + final extension is `.gz' instead of `.Z'): + + wadalab-sym.7.tar.Z (symbols + Greek letters, necessary) + + wadalab-mincho-0-12.8.tar.Z (JIS X 0208 level 1,2 kanji) + wadalab-gothic-0-13.5.tar.Z + wadalab-mincho-0-8.4.tar.Z + wadalab-maru-0-8.4.tar.Z + + wadalab-maru-1-8.tar.Z (JIS X 0212 level 3 kanji) + wadalab-mincho-1-8.tar.Z + + tools/wftodm.c (conversion program, c.f. step 2) + + Unpack the font archives in a temporary directory; you should get + subdirectories called `wadalab-sym', `wadalab-mincho-0-12', etc. + + Note: DO NOT read the misleading `readme.ghostscript' document which + accompanies the fonts. + + +2. Patch `wftodm.c' with the following to enable partial font downloading. + You can simply say + + patch < DNP.txt + + to do that. + +========================================================================= +--- wftodm-orig2.c Tue Sep 23 22:45:32 1997 ++++ wftodm.c Sun Jul 30 08:56:43 2006 +@@ -1,6 +1,8 @@ + #include <stdio.h> ++#include <string.h> ++#include <stdlib.h> + #include <sys/types.h> +-#include <sys/time.h> ++#include <time.h> + char *charstrs[34][256]; + int charlens[34][256]; + char *version_str="001.001"; +@@ -157,6 +159,7 @@ + output_afm(i); + } + } ++return 0; + } + output_afm(file) + { +@@ -209,14 +212,13 @@ + fprintf(ofp,"/UnderlineThickness 0 def\n"); + fprintf(ofp,"end readonly def\n"); + fprintf(ofp,"/FontName /%s def\n",fontname); +- fprintf(ofp,"/DmEncoding [\n"); ++ fprintf(ofp,"/Encoding 256 array\n"); ++ fprintf(ofp,"0 1 255 {1 index exch /.notdef put} for\n"); + for(i=0;i<16;i++){ + for(j=0;j<16;j++) +- fprintf(ofp," /c%02X",i*16+j); +- putc('\n',ofp); ++ fprintf(ofp,"dup %d /c%02X put\n",i*16+j,i*16+j); + } +- fprintf(ofp,"] readonly def\n"); +- fprintf(ofp,"/Encoding DmEncoding def\n"); ++ fprintf(ofp,"readonly def\n"); + fprintf(ofp,"/PaintType 0 def\n"); + fprintf(ofp,"/FontType 1 def\n"); + fprintf(ofp,"/FontMatrix [.001 0 0 .001 0 -0.16] readonly def\n"); +========================================================================= + + After compilation with + + cc -O -o wftodm wftodm.c + + use it as follows: + + wftodm -FontBase dg wadalab-sym/jis*.ps wadalab-gothic-0-13/goth-*.ps + wftodm -FontBase dm wadalab-sym/jis*.ps wadalab-mincho-0-12/min-*.ps + wftodm -FontBase mc wadalab-sym/jis*.ps wadalab-mincho-0-8/min-*.ps + wftodm -FontBase mr wadalab-sym/jis*.ps wadalab-maru-0-8/maru-*.ps + wftodm -FontBase mc2 wadalab-mincho-1-8/min*.ps + wftodm -FontBase mr2 wadalab-maru-1-8/maru*.ps + + [Note: The order of the PS files on the command line doesn't matter.] + + You should then get a whole set of {dg,dm,mc,mr}j[*].{afm,pfa} files in + your current directory, with [*]={greek,keisen,roma,russian,sy} coming + from sym-dir, and [*]={hira,kata,ka-kz} from the Kanji fonts. + {mc2,mr2}j[*].{afm,pfa} with [*]={ka-kw} are JIS X 0212 level 3 Kanji + font files. + + Note: `wftodm.c' has been updated in Oct 97; previous versions will fail. + + +3. Run the `makefont' script. It first normalizes the font matrix (to make + the subfonts work with pdfTeX), then it calls afm2tfm on each of the afm + files, and run t1disasm/t1asm (which are part of the t1utils package) on + each of the PFA files to convert them to PFB files which are much + smaller. + + +4. Run the `fixwada2.pl' script to correct the glyph names. This needs the + perl program and the files `DNP.sfd' (from the CJK package), + `JIS0208.TXT', and `JIS0212.TXT' (from ftp.unicode.org, in the `OBSOLETE' + directory). + + perl fixwada2.pl dgj jis0208 + perl fixwada2.pl mrj jis0208 + perl fixwada2.pl mr2j jis0212 + perl fixwada2.pl dmj jis0208 + perl fixwada2.pl mcj jis0208 + perl fixwada2.pl mc2j jis0212 + + +5. Run the `makeuniwada.pl' script -- it needs the same auxiliary files + as `fixwada2.pl' -- to create virtual fonts for Unicode input encoding. + + perl makeuniwada.pl dgj udgj + perl makeuniwada.pl mrj mr2j umrj + perl makeuniwada.pl dmj mc2j udmj + perl makeuniwada.pl mcj mc2j umcj + + +Thanks +------ + + Werner Lemberg <wl@gnu.org> for creating CJK and comments to this help + document. + +and + + Joshua Redstone <redstone@cs.washington.edu> for contribution to non-root + setups. + +Also check out the following variables: $TEXFORMATS, $TEXINPUTS, $TEXFONTS, +$DVIPSFONTS. + + +Please send any suggestions or comments to LEUNG Hin-Tak <htl10@cam.ac.uk>. + +--- end of DNP.txt --- diff --git a/Master/texmf-dist/source/latex/cjk/contrib/wadalab/fixwada b/Master/texmf-dist/source/latex/cjk/contrib/wadalab/fixwada new file mode 100644 index 00000000000..17b2475f302 --- /dev/null +++ b/Master/texmf-dist/source/latex/cjk/contrib/wadalab/fixwada @@ -0,0 +1,81 @@ +# Copyright (C) 1994-2008 Werner Lemberg <wl@gnu.org> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program 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. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program in doc/COPYING; if not, write to the Free +# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +# MA 02110-1301 USA + +# This script fixes the Wadalab fonts which have been created with the +# `makefont' script of the CJK package version 4.5.1 or earlier. +# +# It converts all PFB files in the current directory. + + +for i in *.pfb; do + echo $i + mv $i $i.old + cat $i.old | \ + t1disasm | \ + awk ' + { + sub(/001\.001/, "001.002") + + if (/%%Creation/) { + print "%%CreationDate: 2003-Feb-07" + next + } + + if (/0 -160 rmoveto/ && last_is_hsbw) { + last_is_hsbw = 0 + next + } + + if (/hsbw/) { + last_is_hsbw = 1 + waiting_for_Xmoveto = 1 + } + else + last_is_hsbw = 0 + + if (waiting_for_Xmoveto) { + if (/rmoveto/) { + printf "\t%d %d rmoveto\n", $1, $2 - 160 + waiting_for_Xmoveto = 0 + next + } + else if (/vmoveto/) { + printf "\t%d vmoveto\n", $1 - 160 + waiting_for_Xmoveto = 0 + next + } + else if (/hmoveto/) { + printf "\t%d %d rmoveto\n", $1, -160 + waiting_for_Xmoveto = 0 + next + } + } + + if (/moveto/) + print "\tclosepath" + + if (/hstem/) { + printf "\t%d %d hstem\n", $1 - 160, $2 + next + } + + print + } + ' | \ + t1asm > $i + rm $i.old +done diff --git a/Master/texmf-dist/source/latex/cjk/contrib/wadalab/fixwada2.pl b/Master/texmf-dist/source/latex/cjk/contrib/wadalab/fixwada2.pl new file mode 100644 index 00000000000..94989805c6f --- /dev/null +++ b/Master/texmf-dist/source/latex/cjk/contrib/wadalab/fixwada2.pl @@ -0,0 +1,242 @@ +#! /usr/bin/perl -w +# +# Copyright (C) 1994-2008 Werner Lemberg <wl@gnu.org> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program 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. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program in doc/COPYING; if not, write to the Free +# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +# MA 02110-1301 USA + +# This script fixes the Wadalab fonts which have been created with the +# `makefont' script version 1.0 (from CJK 4.8.0), or which have been updated +# with the `fixwada' script. +# +# . Make all glyph names compliant to the Adobe Glyph List (AGL) to +# get proper ToUnicode mappings in PDF documents. +# +# . Fix the encoding vector in the PFBs to contain only glyphs which +# actually have an outline. +# +# . Update the version number and creation date. +# +# . Fix a typo in the original fonts (`UniqueId' -> `UniqueID'). +# +# The files `JIS0208.TXT' and `JIS0212.TXT' from the `OBSOLETE' directory in +# the `MAPPINGS' tree on ftp.unicode.org are necessary for running this +# script. It also reads the file `DNP.sfd' which gives the relationship +# between JIS X 0208 (and JIS X 0212) in EUC encoding and wadalab's DNP font +# encoding. Finally, the programs `t1asm' and `t1disasm' must be available +# (and in the path). +# +# Call the script as +# +# perl fixwada2.pl wadalab_namestem [JIS0208|JIS0212] +# +# Example: +# +# perl fixwada2.pl dmj JIS0208 +# +# `fixwada2' reads all PFB and AFM files from the given wadalab font +# family and replaces them with new versions. + +use strict; + +my $prog = $0; +$prog =~ s@.*/@@; + +if ($#ARGV != 1) { + die("usage: $prog wadalab_namestem [JIS0208|JIS0212]\n"); +} + +my $namestem = $ARGV[0]; +my $encoding = $ARGV[1]; +my $encfile; +my $doshift; + + +if ("\U$encoding" eq "JIS0208") { + $encfile = "JIS0208.TXT"; + $doshift = 1; +} +elsif ("\U$encoding" eq "JIS0212") { + $encfile = "JIS0212.TXT"; + $doshift = 0; +} +else { + die("$prog: unknown encoding\n"); +} + + +# Read `DNP.sfd'. + +my %sfd; +my @subfonts; + +print("Reading \`DNP.sfd'...\n"); + +open(DNP, "DNP.sfd") +|| die("$prog: can't open \`DNP.sfd': $!\n"); + +# This loop doesn't handle the complete syntax of SFD files yet. +while (<DNP>) { + chop; + my @field = split(" "); + next if ($#field < 0); + next if ($field[0] =~ /^#/); + + my $suffix = $field[0]; + push(@subfonts, $suffix); + + shift(@field); + my $index = 0; + + while (@field) { + if ($field[0] =~ /(.*):$/) { + $index = $1; + } + elsif ($field[0] =~ /(0x[0-9A-Fa-f]+)_(0x[0-9A-Fa-f]+)/) { + foreach my $i (hex($1) .. hex($2)) { + $sfd{$suffix . "c" . sprintf("%02X", $index)} = $i; + $index++; + } + } + shift(@field); + } +} + + +# Read encoding file. + +print("Reading \`$encfile'...\n"); + +my %jisx; + +open(JISX, $encfile) +|| die("$prog: can't open \`$encfile': $!\n"); + +while (<JISX>) { + chop; + my @field = split(" "); + next if ($#field < 0); + next if ($field[0] =~ /^#/); + + if ($doshift) { + shift(@field); + } + + my $unicode = $field[1]; + $unicode =~ s/0x//; + my $value = hex($field[0]) + 0x8080; + $jisx{$value} = $unicode; +} + + +# Process AFM files. + +foreach my $afm (@subfonts) { + my $filename = "$namestem$afm.afm"; + print("Processing \`$filename'...\n"); + + if (!-f $filename) { + print("$prog: \`$filename' doesn't exist\n"); + next; + } + + rename($filename, "$filename.old"); + + open(INFILE, "$filename.old") + || die("$prog: can't open \`$filename.old': $!\n"); + open(OUTFILE, ">", "$filename") + || die("$prog: can't open \`$filename': $!\n"); + + while (<INFILE>) { + # Replace the `cXX' entries with correct `uniXXXX' glyph names. + s/ N (.*?) ;/ N uni$jisx{$sfd{$afm . $1}} ;/; + + # Update version number. + s/001\.001/001.004/; + + print(OUTFILE $_); + } + + close(INFILE); + close(OUTFILE); + + unlink("$filename.old"); +} + + +# Process PFB files. + +foreach my $pfb (@subfonts) { + my $arg; + my $filename = "$namestem$pfb.pfb"; + print("Processing \`$filename'...\n"); + + if (!-f $filename) { + print("$prog: \`$filename' doesn't exist\n"); + next; + } + + rename($filename, "$filename.old"); + + $arg = "t1disasm < $filename.old > $filename.disasm.old"; + system("$arg") == 0 + || die("$prog: calling \`$arg' failed: $?"); + + open(INFILE, "$filename.disasm.old") + || die("$prog: can't open \`$filename.disasm.old': $!\n"); + open(OUTFILE, ">", "$filename.disasm") + || die("$prog: can't open \`$filename.disasm': $!\n"); + + while (<INFILE>) { + # Replace the `cXX' entries with correct `uniXXXX' glyph names + # (or `.notdef' if there isn't one). + if (m@/(c.*?) @) { + my $replacement; + if (defined ($sfd{$pfb . $1}) + && defined ($jisx{$sfd{$pfb . $1}})) { + $replacement = "uni$jisx{$sfd{$pfb . $1}}"; + } + else { + $replacement = ".notdef"; + } + s@/(c.*?) @/$replacement @; + } + + # Fix a typo in original fonts. + s/UniqueId/UniqueID/; + + # Update version number. + s/001\.002/001.004/; + + # Update creation date. + s/2003-Feb-07/2005-Jul-29/; + + print(OUTFILE $_); + } + + close(INFILE); + close(OUTFILE); + + $arg = "t1asm < $filename.disasm > $filename"; + system("$arg") == 0 + || die("$prog: calling \`$arg' failed: $?"); + + unlink("$filename.disasm.old", "$filename.disasm"); + unlink("$filename.old"); +} + +print("Done.\n"); + +# eof diff --git a/Master/texmf-dist/source/latex/cjk/contrib/wadalab/makefont b/Master/texmf-dist/source/latex/cjk/contrib/wadalab/makefont new file mode 100644 index 00000000000..deb9310a326 --- /dev/null +++ b/Master/texmf-dist/source/latex/cjk/contrib/wadalab/makefont @@ -0,0 +1,108 @@ +#!/bin/sh +# +# Copyright (C) 1994-2008 Werner Lemberg <wl@gnu.org> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program 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. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program in doc/COPYING; if not, write to the Free +# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +# MA 02110-1301 USA + +# Version 1.0 +# +# This script transforms Wadalab PFA and AFM files created by the +# wftodm program into PFB and TFM files. All files in the current +# directory and its subdirectories are converted. +# +# Additionally, it normalizes the font matrix so that the subfonts work +# with pdfTeX; for convenience, it also inserts `closepath' commands to +# end subpaths in glyphs. +# +# Note that an older version of this script (without a version number) has +# some flaws; you should either regenerate all Wadalab subfonts or use the +# `fixwada' script to fix PFB fonts which have already been created with +# this older version. +# +# The programs t1asm, t1disasm, and afm2tfm must be in the path. + +for f in `find . -name '*.pfa' -print`; do + echo processing $f + name=`basename $f .pfa` + t1disasm < $name.pfa > $name.old + + cat $name.old | \ + awk ' + { + sub(/001\.001/, "001.002") + sub(/\[.001 0 0 .001 0 -0.16\]/, "[.001 0 0 .001 0 0]") + sub(/\[0 0 1000 1000\]/, "[0 -160 1000 840]") + + if (/%%Creation/) { + print "%%CreationDate: 2003-Feb-07" + next + } + + if (/hsbw/) + waiting_for_Xmoveto = 1 + + if (waiting_for_Xmoveto) { + if (/rmoveto/) { + printf "\t%d %d rmoveto\n", $1, $2 - 160 + waiting_for_Xmoveto = 0 + next + } + if (/vmoveto/) { + printf "\t%d vmoveto\n", $1 - 160 + waiting_for_Xmoveto = 0 + next + } + if (/hmoveto/) { + printf "\t%d %d rmoveto\n", $1, -160 + waiting_for_Xmoveto = 0 + next + } + } + + if (/moveto/) + print "\tclosepath" + + if (/hstem/) { + printf "\t%d %d hstem\n", $1 - 160, $2 + next + } + + print + } + ' > $name.asm + rm $name.old + + t1asm < $name.asm > $name.pfb + rm $name.asm +done + +for f in `find . -name '*.afm' -print`; do + echo processing $f + name=`basename $f .afm` + mv $name.afm $name.old + + cat $name.old | \ + sed -e " + s/FontBBox 0 0 1000 1000/FontBBox 0 -160 1000 840/ + s/B 0 0 1000 1000/B 0 -160 1000 840/ + " > $name.afm + + rm $name.old + + afm2tfm $name.afm &> /dev/null +done + +# EOF diff --git a/Master/texmf-dist/source/latex/cjk/contrib/wadalab/makeuniwada.pl b/Master/texmf-dist/source/latex/cjk/contrib/wadalab/makeuniwada.pl new file mode 100644 index 00000000000..cbf4ca6d306 --- /dev/null +++ b/Master/texmf-dist/source/latex/cjk/contrib/wadalab/makeuniwada.pl @@ -0,0 +1,333 @@ +#! /usr/bin/perl -w +# +# Copyright (C) 1994-2008 Werner Lemberg <wl@gnu.org> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program 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. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program in doc/COPYING; if not, write to the Free +# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +# MA 02110-1301 USA + +# This script creates virtual subfonts in Unicode encoding for Wadalab +# subfonts. It can merge a JIS X 0208 and JIS X 0212 family into a single +# set of Unicode subfonts. +# +# As prerequisites, it needs the files `JIS0208.TXT' and `JIS0212.TXT' from +# the `OBSOLETE' directory in the `MAPPINGS' tree on ftp.unicode.org. It +# also needs the file `DNP.sfd' which gives the relationship between JIS X +# 0208 (and JIS X 0212) in EUC encoding and wadalab's DNP font encoding. +# The program `vptovf' must be available (and in the path). +# +# Call the script as +# +# perl makeuniwada.pl namestem1 [namestem2] uni_namestem +# +# `namestem1' is the font in JIS X 0208 encoding. The optional `namestem2' +# argument is the font in JIS X 0212, and `uni_namestem' holds the prefix +# for the Unicode subfonts. `makeuniwada.pl' reads all AFM files from the +# given wadalab font families. +# +# Example: +# +# perl makeuniwada.pl dmj mc2j udmj +# +# This call mixes the mincho-0-12 (dmj) with mincho-1-8 (mc2j) families. + +use strict; + +my $prog = $0; +$prog =~ s@.*/@@; + +if ($#ARGV < 1 || $#ARGV > 2) { + die("usage: $prog namestem1 [namestem2] uni_namestem\n"); +} + +my $namestem1; +my $namestem2; +my $two_encodings = 0; +my @args = @ARGV; + +$namestem1 = $ARGV[0]; +if ($#ARGV == 2) { + $namestem2 = $ARGV[1]; + $two_encodings = 1; + shift; +} +my $uninamestem = $ARGV[1]; + + +# Read `DNP.sfd'. + +my %sfd; +my @subfonts; + +read_sfdfile("DNP.sfd", \%sfd, \@subfonts); + + +# Read encoding files. +# +# The files `JIS0208.TXT' and `JIS0212.TXT' are from the `OBSOLETE' +# directory in the `MAPPINGS' tree on ftp.unicode.org. + +my %jisx0208; +my %jisx0212; + +read_encfile("JIS0208.TXT", \%jisx0208, 1); +if ($two_encodings) { + read_encfile("JIS0212.TXT", \%jisx0212, 0); +} + + +# Read AFM files. + +my @unicode; + +foreach my $sub (@subfonts) { + my $afmname = "$namestem1$sub.afm"; + + if (-f $afmname) { + read_afmfile($afmname, \@unicode, \%sfd, \%jisx0208, $sub); + } +} +if ($two_encodings) { + foreach my $sub (@subfonts) { + my $afmname = "$namestem2$sub.afm"; + + if (-f $afmname) { + read_afmfile($afmname, \@unicode, \%sfd, \%jisx0212, $sub); + } + } +} + + +# Write VPL files. + +my $index = 0; +foreach my $i (0 .. 255) { + my @entries; + + foreach my $j (0 .. 255) { + if (defined ($unicode[$index])) { + push(@entries, "$j $unicode[$index]"); + } + $index++; + } + + if ($#entries >= 0) { + write_vplfile($uninamestem . sprintf("%02x.vpl", $i), \@entries); + } +} + + +# Generate VF and TFM files, then remove the VPL files. + +my @vplfiles = glob("$uninamestem*.vpl"); +foreach my $vplfile (@vplfiles) { + print("Processing \`$vplfile'...\n"); + my $arg = "vptovf $vplfile"; + system($arg) == 0 + || die("$prog: calling \`$arg' failed: $?");; + print("Removing \`$vplfile'...\n"); + unlink($vplfile); +} + + +# Read an SFD file. +# +# $1: Name of the SFD file. +# $2: Reference to the target hash file, mapping from the subfont index +# to the character code. The format of the hash key is the +# concatenation of the subfont suffix, a space, and the index. +# $3: Reference to a target array which holds the subfont suffixes. + +sub read_sfdfile { + my ($sfdfile, $sfdhash, $sfdarray) = @_; + + print("Reading subfont definition file \`$sfdfile'...\n"); + + open(SFD, $sfdfile) + || die("$prog: can't open \`$sfdfile': $!\n"); + + # This loop doesn't handle the complete syntax of SFD files yet. + while (<SFD>) { + chop; + my @field = split(" "); + next if ($#field < 0); + next if ($field[0] =~ /^#/); + + my $suffix = $field[0]; + push(@{$sfdarray}, $suffix); + + shift(@field); + my $index = 0; + + while (@field) { + if ($field[0] =~ /(.*):$/) { + $index = $1; + } + elsif ($field[0] =~ /(0x[0-9A-Fa-f]+)_(0x[0-9A-Fa-f]+)/) { + foreach my $i (hex($1) .. hex($2)) { + $sfdhash->{"$suffix $index"} = $i; + $index++; + } + } + shift(@field); + } + } + close(SFD); +} + + +# Read encoding file. +# +# $1: Name of the encoding file. +# $2: Reference to the target hash file, mapping from the charset +# to Unicode. +# $3: Set to 1 if the needed mapping data is not in field 1 and 2, but in +# field 2 and 3. + +sub read_encfile { + my ($encfile, $enchash, $doshift) = @_; + + print("Reading encoding file \`$encfile'...\n"); + + open(ENC, $encfile) + || die("$prog: can't open \`$encfile': $!\n"); + + while (<ENC>) { + chop; + my @field = split(" "); + next if ($#field < 0); + next if ($field[0] =~ /^#/); + + if ($doshift) { + shift(@field); + } + + my $unicode = $field[1]; + $unicode =~ s/0x//; + my $value = hex($field[0]) + 0x8080; + $enchash->{$value} = hex($unicode); + } + close(ENC); +} + + +# Read AFM file. +# +# $1: Name of the AFM file. +# $2: Reference to the target array which maps from Unicode to the string +# "<subfont name> <subfont index> <width> <height> <depth>". +# $3: Reference to the SFD hash (as extracted by `read_sfdfile'). +# $4: Reference to the encoding hash (as extracted by `read_encfile'). +# $5: Suffix. + +sub read_afmfile { + my ($afmfile, $unicarray, $sfdhash, $enchash, $suffix) = @_; + + print("Reading metric file \`$afmfile'...\n"); + + open(AFM, $afmfile) + || die("$prog: can't open \`$afmfile': $!\n"); + + $afmfile =~ s/\.[^.]*$//; + while (<AFM>) { + if (/^C (\d+) ;/) { + my $key = "$suffix $1"; + my $value = $sfdhash->{$key}; + my $unicvalue = $enchash->{$value}; + my $s = "$afmfile $1"; + + # Add advance width. + / WX (.*?) ;/; + $s .= " $1"; + + # Add glyph height and depth. + / B .*? (.*?) .*? (.*?) ;/; + $s .= " $1 $2"; + + $unicarray->[$unicvalue] = $s; + } + } + close(AFM); +} + + +# Write VPL file. +# +# $1: Name of the VPL file. +# $2: Reference to list which holds the font entries. An entry has the +# form `<idx> <subfont> <subfont_idx> <adv_width> <height> <depth>'. + +sub write_vplfile { + my ($vplfile, $glypharray) = @_; + + my %subfonts; + my $subcount = 0; + + foreach my $entry (@{$glypharray}) { + my @field = split(" ", $entry); + my $subfont = $field[1]; + if (!defined ($subfonts{$subfont})) { + $subfonts{$subfont} = $subcount; + $subcount++; + } + } + + print("Writing virtual property list file \`$vplfile'...\n"); + + open(VPL, ">", $vplfile) + || die("$prog: can't open \`$vplfile': $!\n"); + my $oldfh = select(VPL); + + print("(VTITLE Created by \`$prog " . join(" ", @args) . "')\n"); + print("(FAMILY TEX-\U$uninamestem\E)\n"); + print("(CODINGSCHEME DNPUNICODE)\n"); + print("(FONTDIMEN\n"); + print(" (SPACE R 0.5)\n"); + print(" (XHEIGHT R 0.4)\n"); + print(" (QUAD R 1)\n"); + print(" )\n"); + + foreach my $subfont + (sort { $subfonts{$a} <=> $subfonts{$b} } keys %subfonts) { + print("(MAPFONT D $subfonts{$subfont}\n"); + print(" (FONTNAME $subfont)\n"); + print(" )\n"); + } + + foreach my $entry (@{$glypharray}) { + my @field = split(" ", $entry); + my $index = $field[0]; + my $subnumber = $subfonts{$field[1]}; + my $subindex = $field[2]; + my $adv_width = $field[3] / 1000.0; + my $depth = $field[4] / -1000.0; + my $height = $field[5] / 1000.0; + + print("(CHARACTER D $index\n"); + print(" (CHARWD R $adv_width)\n"); + print(" (CHARHT R $height)\n"); + print(" (CHARDP R $depth)\n"); + print(" (MAP\n"); + print(" (SELECTFONT D $subnumber)\n"); + print(" (SETCHAR D $subindex)\n"); + print(" )\n"); + print(" )\n"); + } + + close(VPL); + select($oldfh); +} + + +# eof diff --git a/Master/texmf-dist/source/latex/cjk/contrib/wadalab/wadalab.map b/Master/texmf-dist/source/latex/cjk/contrib/wadalab/wadalab.map new file mode 100644 index 00000000000..dd008d525fa --- /dev/null +++ b/Master/texmf-dist/source/latex/cjk/contrib/wadalab/wadalab.map @@ -0,0 +1,187 @@ + +% Wadalab Japanese fonts + +dgjgreek dgjgreek <dgjgreek.pfb +dgjhira dgjhira <dgjhira.pfb +dgjkata dgjkata <dgjkata.pfb +dgjkeisen dgjkeisen <dgjkeisen.pfb +dgjroma dgjroma <dgjroma.pfb +dgjrussian dgjrussian <dgjrussian.pfb +dgjsy dgjsy <dgjsy.pfb +dgjka dgjka <dgjka.pfb +dgjkb dgjkb <dgjkb.pfb +dgjkc dgjkc <dgjkc.pfb +dgjkd dgjkd <dgjkd.pfb +dgjke dgjke <dgjke.pfb +dgjkf dgjkf <dgjkf.pfb +dgjkg dgjkg <dgjkg.pfb +dgjkh dgjkh <dgjkh.pfb +dgjki dgjki <dgjki.pfb +dgjkj dgjkj <dgjkj.pfb +dgjkk dgjkk <dgjkk.pfb +dgjkl dgjkl <dgjkl.pfb +dgjkm dgjkm <dgjkm.pfb +dgjkn dgjkn <dgjkn.pfb +dgjko dgjko <dgjko.pfb +dgjkp dgjkp <dgjkp.pfb +dgjkq dgjkq <dgjkq.pfb +dgjkr dgjkr <dgjkr.pfb +dgjks dgjks <dgjks.pfb +dgjkt dgjkt <dgjkt.pfb +dgjku dgjku <dgjku.pfb +dgjkv dgjkv <dgjkv.pfb +dgjkw dgjkw <dgjkw.pfb +dgjkx dgjkx <dgjkx.pfb +dgjky dgjky <dgjky.pfb +dgjkz dgjkz <dgjkz.pfb + +dmjgreek dmjgreek <dmjgreek.pfb +dmjhira dmjhira <dmjhira.pfb +dmjkata dmjkata <dmjkata.pfb +dmjkeisen dmjkeisen <dmjkeisen.pfb +dmjroma dmjroma <dmjroma.pfb +dmjrussian dmjrussian <dmjrussian.pfb +dmjsy dmjsy <dmjsy.pfb +dmjka dmjka <dmjka.pfb +dmjkb dmjkb <dmjkb.pfb +dmjkc dmjkc <dmjkc.pfb +dmjkd dmjkd <dmjkd.pfb +dmjke dmjke <dmjke.pfb +dmjkf dmjkf <dmjkf.pfb +dmjkg dmjkg <dmjkg.pfb +dmjkh dmjkh <dmjkh.pfb +dmjki dmjki <dmjki.pfb +dmjkj dmjkj <dmjkj.pfb +dmjkk dmjkk <dmjkk.pfb +dmjkl dmjkl <dmjkl.pfb +dmjkm dmjkm <dmjkm.pfb +dmjkn dmjkn <dmjkn.pfb +dmjko dmjko <dmjko.pfb +dmjkp dmjkp <dmjkp.pfb +dmjkq dmjkq <dmjkq.pfb +dmjkr dmjkr <dmjkr.pfb +dmjks dmjks <dmjks.pfb +dmjkt dmjkt <dmjkt.pfb +dmjku dmjku <dmjku.pfb +dmjkv dmjkv <dmjkv.pfb +dmjkw dmjkw <dmjkw.pfb +dmjkx dmjkx <dmjkx.pfb +dmjky dmjky <dmjky.pfb +dmjkz dmjkz <dmjkz.pfb + +mcjgreek mcjgreek <mcjgreek.pfb +mcjhira mcjhira <mcjhira.pfb +mcjkata mcjkata <mcjkata.pfb +mcjkeisen mcjkeisen <mcjkeisen.pfb +mcjroma mcjroma <mcjroma.pfb +mcjrussian mcjrussian <mcjrussian.pfb +mcjsy mcjsy <mcjsy.pfb +mcjka mcjka <mcjka.pfb +mcjkb mcjkb <mcjkb.pfb +mcjkc mcjkc <mcjkc.pfb +mcjkd mcjkd <mcjkd.pfb +mcjke mcjke <mcjke.pfb +mcjkf mcjkf <mcjkf.pfb +mcjkg mcjkg <mcjkg.pfb +mcjkh mcjkh <mcjkh.pfb +mcjki mcjki <mcjki.pfb +mcjkj mcjkj <mcjkj.pfb +mcjkk mcjkk <mcjkk.pfb +mcjkl mcjkl <mcjkl.pfb +mcjkm mcjkm <mcjkm.pfb +mcjkn mcjkn <mcjkn.pfb +mcjko mcjko <mcjko.pfb +mcjkp mcjkp <mcjkp.pfb +mcjkq mcjkq <mcjkq.pfb +mcjkr mcjkr <mcjkr.pfb +mcjks mcjks <mcjks.pfb +mcjkt mcjkt <mcjkt.pfb +mcjku mcjku <mcjku.pfb +mcjkv mcjkv <mcjkv.pfb +mcjkw mcjkw <mcjkw.pfb +mcjkx mcjkx <mcjkx.pfb +mcjky mcjky <mcjky.pfb +mcjkz mcjkz <mcjkz.pfb + +mrjgreek mrjgreek <mrjgreek.pfb +mrjhira mrjhira <mrjhira.pfb +mrjkata mrjkata <mrjkata.pfb +mrjkeisen mrjkeisen <mrjkeisen.pfb +mrjroma mrjroma <mrjroma.pfb +mrjrussian mrjrussian <mrjrussian.pfb +mrjsy mrjsy <mrjsy.pfb +mrjka mrjka <mrjka.pfb +mrjkb mrjkb <mrjkb.pfb +mrjkc mrjkc <mrjkc.pfb +mrjkd mrjkd <mrjkd.pfb +mrjke mrjke <mrjke.pfb +mrjkf mrjkf <mrjkf.pfb +mrjkg mrjkg <mrjkg.pfb +mrjkh mrjkh <mrjkh.pfb +mrjki mrjki <mrjki.pfb +mrjkj mrjkj <mrjkj.pfb +mrjkk mrjkk <mrjkk.pfb +mrjkl mrjkl <mrjkl.pfb +mrjkm mrjkm <mrjkm.pfb +mrjkn mrjkn <mrjkn.pfb +mrjko mrjko <mrjko.pfb +mrjkp mrjkp <mrjkp.pfb +mrjkq mrjkq <mrjkq.pfb +mrjkr mrjkr <mrjkr.pfb +mrjks mrjks <mrjks.pfb +mrjkt mrjkt <mrjkt.pfb +mrjku mrjku <mrjku.pfb +mrjkv mrjkv <mrjkv.pfb +mrjkw mrjkw <mrjkw.pfb +mrjkx mrjkx <mrjkx.pfb +mrjky mrjky <mrjky.pfb +mrjkz mrjkz <mrjkz.pfb + +mc2jka mc2jka <mc2jka.pfb +mc2jkb mc2jkb <mc2jkb.pfb +mc2jkc mc2jkc <mc2jkc.pfb +mc2jkd mc2jkd <mc2jkd.pfb +mc2jke mc2jke <mc2jke.pfb +mc2jkf mc2jkf <mc2jkf.pfb +mc2jkg mc2jkg <mc2jkg.pfb +mc2jkh mc2jkh <mc2jkh.pfb +mc2jki mc2jki <mc2jki.pfb +mc2jkj mc2jkj <mc2jkj.pfb +mc2jkk mc2jkk <mc2jkk.pfb +mc2jkl mc2jkl <mc2jkl.pfb +mc2jkm mc2jkm <mc2jkm.pfb +mc2jkn mc2jkn <mc2jkn.pfb +mc2jko mc2jko <mc2jko.pfb +mc2jkp mc2jkp <mc2jkp.pfb +mc2jkq mc2jkq <mc2jkq.pfb +mc2jkr mc2jkr <mc2jkr.pfb +mc2jks mc2jks <mc2jks.pfb +mc2jkt mc2jkt <mc2jkt.pfb +mc2jku mc2jku <mc2jku.pfb +mc2jkv mc2jkv <mc2jkv.pfb +mc2jkw mc2jkw <mc2jkw.pfb + +mr2jka mr2jka <mr2jka.pfb +mr2jkb mr2jkb <mr2jkb.pfb +mr2jkc mr2jkc <mr2jkc.pfb +mr2jkd mr2jkd <mr2jkd.pfb +mr2jke mr2jke <mr2jke.pfb +mr2jkf mr2jkf <mr2jkf.pfb +mr2jkg mr2jkg <mr2jkg.pfb +mr2jkh mr2jkh <mr2jkh.pfb +mr2jki mr2jki <mr2jki.pfb +mr2jkj mr2jkj <mr2jkj.pfb +mr2jkk mr2jkk <mr2jkk.pfb +mr2jkl mr2jkl <mr2jkl.pfb +mr2jkm mr2jkm <mr2jkm.pfb +mr2jkn mr2jkn <mr2jkn.pfb +mr2jko mr2jko <mr2jko.pfb +mr2jkp mr2jkp <mr2jkp.pfb +mr2jkq mr2jkq <mr2jkq.pfb +mr2jkr mr2jkr <mr2jkr.pfb +mr2jks mr2jks <mr2jks.pfb +mr2jkt mr2jkt <mr2jkt.pfb +mr2jku mr2jku <mr2jku.pfb +mr2jkv mr2jkv <mr2jkv.pfb +mr2jkw mr2jkw <mr2jkw.pfb + |