% % Process this file twice with big LaTeX. Does not rely on any japanese font. % \typeout{} \typeout{Japanese [La]TeX for DOS User's Guide Version 2.00 <14 April 1991>} \typeout{Note: Run big LaTeX two times to resolve cross-references.} \typeout{Warning: This guide requires approximately 120Kb of memory to process.} \typeout{} \hyphenation{jap-a-nese} \def\LLaTeX{{\rm \raise.2ex\hbox{[}\kern-.05em L\kern-.38em\raise.35ex% \hbox{\lowercase{a}}\kern-.05em\raise.2ex\hbox{]}\kern-.1em T% \kern-.1667em\lower.7ex\hbox{E}\kern-.125em X}} \def\MuTeX{{\rm M\kern-.15em\raise.2ex\hbox{\lowercase{u}}\kern-.32em T% \kern-.1667em\lower.5ex\hbox{E}\kern-.125em X}} \def\emTeX{{\rm {\it{em}}\kern-.15em T% \kern-.1667em\lower.5ex\hbox{E}\kern-.125em X}} \def\JemTeX{{\rm J\kern-.2em {\it{em}}\kern-.15em T% \kern-.1667em\lower.5ex\hbox{E}\kern-.125em X}} \def\MFT{{\small\rm METAFONT}} \documentstyle[12pt]{article} \pagestyle{plain} \begin{document} \title{Japanese \LLaTeX\ for DOS \\ - User's Guide - \\ {\small (Version 2.00)}} \author{Fran\c cois Jalbert} \date{14 April 1991} \maketitle %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Introduction} \typeout{1 Introduction} \label{introduction} Welcome to \JemTeX\ Version~2.00, a simple system to typeset japanese using any standard version of \TeX\ running under DOS. All you need to create your own japanese fonts using \MFT\ is included. A preprocessor is also supplied which will turn the output of your favorite japanese text editor into a standard \TeX\ document ready for processing. This guide is divided into four main sections: \begin{description} \item[Introduction:] Preliminary remarks (page~\pageref{introduction}). \item[Japanese Fonts:] The \JemTeX\ fonts (page~\pageref{japanesefonts}). \item[The \LLaTeX\ Interface:] The \JemTeX\ preprocessor (page~\pageref{thelatexinterface}). \item[JemTeX Quick Reference:] Items often referred to (page~\pageref{jemtexquickreference}). \end{description} \subsection{Why \JemTeX} \label{whyjemtex} Shortly after adopting japanese as my new hobby, I felt the need to compile my own small dictionaries and to keep a computer record of all the letters I sent to my friends in Japan. These japanese documents would, of course, be produced on my DOS computer. I was also typesetting japanese music with \MuTeX, and I really wanted to write the lyrics using japanese characters rather than the roman ones I was currently constrained to use. Luckily I had \mbox{USENET} access, and in early 1990 I came across Mr.\ Mark Edward's MOKE~(1.1+) japanese text editor. It supported the most popular graphics displays, it had all the japanese characters a novice like me would ever need, it had extensive indexes to find the correct kanjis for any given word, and it even supported my \mbox{EPSON} printer. I FTP'ed a copy for myself and arranged to have it made available in T\=oky\=o at utsun (133.11.11.11) for FTP as well. Unfortunately, MOKE's quality of output left much to be desired on my \mbox{9-pin} printer, and MOKE did not have the fancy capabilities of \LaTeX. I decided to look into public domain japanese versions of \LaTeX\ for DOS computers. A query on \mbox{USENET} news triggered a long series of \mbox{e-mail} exchanges. In a nutshell, the news was bad. First, I could not locate any \MFT\ code to generate the 240~DPI by 216~DPI fonts needed by my previewing and printing devices. It was out of the question for me to even think about writing my own \MFT\ code for the thousands of characters involved in japanese. I did find some 300~DPI public domain fonts, but they were useless to me. I was told many japanese printers have built-in fonts, which could explain the lack of public domain external ones. There was also a serious possibility that loading many fonts might cause any small implementation of \TeX\ to run out of memory. This was a problem especially for DOS machines limited for historical reasons to 640~Kb of main memory. I needed a \TeX\ with some sort of memory paging system for my big RAM~disk. This problem was solved with Mr.\ Eberhard Mattes' \emTeX\ for DOS. Its capacity seemed limited solely by \TeX's internal design. I could not find any macros to enter japanese using standard \LaTeX. I did come across J\TeX\ and \mbox{ASCII-j\TeX}. However, both required that I build my own \TeX\ source in C, using exotic tools like WEB and \mbox{TANGLE}. Even if I ever managed eventually to get some usable C~code, it would not compile into something very useful because of the 640~Kb main memory limitation of DOS. It would be necessary to modify the C~code by adding the paging system to it. I knew nothing of \TeX's internal working. How could I decide correctly which information should be paged and which should remain in memory at all time? I decided that adapting J\TeX\ or \mbox{ASCII-j\TeX}\ to DOS appeared too uncertain and time-consuming. My situation could be summarized as follows. I had a simple japanese text editor I could use to enter both english and japanese, and I had a big implementation of \TeX\ which would not crash if I remained reasonable. But I lacked japanese fonts and macros to put it all together. The remainder of this brief guide explains how I solved these two problems. I call my japanese system \JemTeX. Anybody with a japanese text editor and \emTeX, or any equivalent implementation of \TeX\ and \MFT, can now produce simple, but acceptable japanese documents with his DOS computer. Following the release of the first two versions, people from all over the world expressed their satisfaction. There is no doubt in my mind that there was a real need for \JemTeX. \begin{quote} \begin{em} \JemTeX\ is free for all to use and modify. Please feel free to distribute unmodified copies of it. If you should use parts of\/ \JemTeX, or some of my ideas in your work, a reference to \JemTeX\ would be appreciated. \end{em} \end{quote} \subsection{\JemTeX\ Files} \label{jemtexfiles} \JemTeX\ is distributed compressed with Version~1.1 of the \verb"PKZIP" utility of PKWARE Inc. You should have received the following file: \begin{quote}%Don't put spaces after the next line! \begin{verbatim} JEMTEX2 ZIP 440435 4-14-91 12:00p \end{verbatim} \end{quote} Unpacking should yield the following files: \begin{quote}%Don't put spaces after the next line! \begin{verbatim} JIS24 562032 4-14-91 12:00p JIS2MF C 37598 4-14-91 12:00p JIS2MF PAS 33242 4-14-91 12:00p JIS2MF EXE 12181 4-14-91 12:00p JEM2TEX C 47627 4-14-91 12:00p JEM2TEX PAS 40635 4-14-91 12:00p JEM2TEX EXE 14203 4-14-91 12:00p FONTABLE C 5814 4-14-91 12:00p FONTABLE PAS 4475 4-14-91 12:00p FONTABLE EXE 4905 4-14-91 12:00p JGUIDE TEX 175442 4-14-91 12:00p \end{verbatim} \end{quote} All these files will be covered in time in this brief guide. I supply you with the fastest utilities possible at the moment, which are sometime C versions, sometime Pascal versions. The programs compile fine with recent DOS turbo compilers and UNIX gcc. Note that the executables are also compressed with the \verb"LZEXE" utility of Mr.\ Fabrice Bellard. The decompression automatically occurs at runtime. \subsection{Author's Address} \label{authorsaddress} There is still a lot I do not understand about \LLaTeX\ and, especially, japanese. I apologize in advance for my errors. If you have any comments, or simply wish to be put on my mailing list, do not hesitate to contact the author: \begin{quote} Fran\c cois Jalbert \\ 220 Forest \\ Ch\^ateauguay, QC \\ CANADA \\ J6J 1R1 \\ \verb"jalbert@CS.UBC.CA" \\ \verb"jalbert@IRO.UMontreal.CA" \end{quote} \subsection{Acknowledgments} \label{acknowledgments} I would like to take this opportunity to thank all the people who helped me in this quest for knowledge, especially Mr.\ Takafumi Sakurai who is very familiar with J\TeX. Finally, I must also thank all the users who helped to improve this package with their comments. Keep them coming! In fact, Version~2.00 would not have been possible without Mr.\ Masatoshi Watanabe, the author of JaWa\TeX. I am greatly grateful to him for his contribution to my \verb"JIS2MF" program. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Japanese Fonts} \typeout{2 Japanese Fonts} \label{japanesefonts} In this section, I describe how I solved the font problem. I first introduce the JIS~24 dot font which is the key behind the \JemTeX\ fonts. A discussion of horizontal and vertical writing styles then becomes essential since writing style influences the ideal characteristics of a font. I conclude the first part of this section by explaining how to run my \verb"JIS2MF" \MFT\ code generation program and \MFT\ itself. I include a few more technical details in the second part of this section. Strictly speaking, this information is not mandatory and the reader in a hurry will do well to simply skip it. But the inquiring one will have a chance to take a closer look at the \MFT\ code generated and at the underlying algorithm. \subsection{The JIS~24 Dot Font} \label{thejis24dotfont} The font problem is solved using the JIS~24 dot font of Mr.\ Yasuki Saito. It is a series of 24~by~24 bitmaps organized sequentially. There is room for 7806~bitmaps in the file \verb"JIS24", but several bitmaps are simply left empty in the current version. \label{standard} The JIS~'83 standard states which characters are defined in the JIS~24 dot font and what position they occupy. However, several computer manufacturers have taken the liberty of defining their own additional 24~by~24 bitmaps which they place here and there at locations currently left empty by JIS~'83. The resulting {\em extended\/} JIS~24 dot fonts exist in many different incompatible versions. \label{extended} \JemTeX\ uses such an extended JIS~24 dot font. I do not know who is responsible for its extension, but I certainly welcome the extra characters. Besides a wealth of miscellaneous characters, a complete half-width roman and japanese character set is available. You may choose to use them, or to restrict yourself to standard JIS~'83 characters only. No doubt one can mechanize the creation of fonts from such bitmaps. There seems to be two ways of handling the problem. First, one could generate fonts directly from the bitmaps without using \MFT\ at all. Indeed, I know that several fonts in J\TeX\ were created just that way. However, I suspect that it might be difficult to scale fonts using non-integer factors. To further complicate the scaling problem, my devices do not have the same horizontal and vertical resolution. Besides, I feel that \MFT\ can deal with such scaling issues better than I probably can in a mere few days of work. Consequently, I prefer to create \MFT\ code out of the bitmaps. A good example of such an approach is the \verb"ega2mf" program of Mr.\ Thomas B.\ Ridgeway. This program reads bitmaps and creates \MFT\ code where each character is a small matrix of dots. The purpose of such fonts is to mimic the looks of CRT~screens on paper. This is does so well that in fact, I find that the japanese characters look too much like bitmaps! I want these dots to disappear and a continuous outline to replace them. Nevertheless, \verb"ega2mf" clearly demonstrates that the goal can be reached. I started from scratch, using a \MFT\ book and came up with my own \MFT\ code generation program \verb"JIS2MF". It reads bitmaps from \verb"JIS24", and it then constructs continuous characters, using squares, triangles, and quarter circles. My program has been substantially improved by Mr.\ Masatoshi Watanabe. A complete description is found in Subsections~\ref{themetafontcode} and~\ref{algorithm}. \subsection{Writing Styles} \label{writingstyles} It is clear from the lack of a vertical baseline in \MFT\ that \TeX\ was solely designed for horizontal use. Indeed, \TeX\ can typeset japanese horizontally as well as it does for english. This does not imply that vertical use of \TeX\ is impossible, but it merely suggests that extra care will be required. In this subsection, I would like to discuss and compare both writing styles. The appropriate font properties can then be determined. \label{widthheight} The first features of interest in this subsection are character width, character height, and distance from the baseline. Consider first a few roman characters and their horizontal baseline: \begin{center} \setlength{\unitlength}{0.4pt} \begin{picture}(80,30) \thinlines \put(0,5){\line(1,0){80}} \put(0,0){\makebox(80,30){dip}} \end{picture} \end{center} The width of each character is minimized and this is important in english writing. However, the height of each character is unimportant. It is the vertical relationship between the character and its horizontal baseline which matters. Consider now a few japanese characters and their horizontal baseline: \begin{center} \setlength{\unitlength}{0.4pt} \newsavebox{\watashi} \sbox{\watashi}{% \begin{picture}(28,26)(-2,-2)%Bitmap 2512 \put(0.5,4.5){\circle*{1}}\put(0.5,15.5){\circle*{1}} \put(0.5,19.5){\circle*{1}}\put(1.5,5.5){\circle*{1}} \put(1.5,15.5){\circle*{1}}\put(1.5,19.5){\circle*{1}} \put(2.5,6.5){\circle*{1}}\put(2.5,7.5){\circle*{1}} \put(2.5,15.5){\circle*{1}}\put(2.5,19.5){\circle*{1}} \put(3.5,7.5){\circle*{1}}\put(3.5,8.5){\circle*{1}} \put(3.5,9.5){\circle*{1}}\put(3.5,15.5){\circle*{1}} \put(3.5,20.5){\circle*{1}}\put(4.5,9.5){\circle*{1}} \put(4.5,10.5){\circle*{1}}\put(4.5,11.5){\circle*{1}} \put(4.5,12.5){\circle*{1}}\put(4.5,15.5){\circle*{1}} \put(4.5,20.5){\circle*{1}}\put(5.5,0.5){\circle*{1}} \put(5.5,1.5){\circle*{1}}\put(5.5,2.5){\circle*{1}} \put(5.5,3.5){\circle*{1}}\put(5.5,4.5){\circle*{1}} \put(5.5,5.5){\circle*{1}}\put(5.5,6.5){\circle*{1}} \put(5.5,7.5){\circle*{1}}\put(5.5,8.5){\circle*{1}} \put(5.5,9.5){\circle*{1}}\put(5.5,10.5){\circle*{1}} \put(5.5,11.5){\circle*{1}}\put(5.5,12.5){\circle*{1}} \put(5.5,13.5){\circle*{1}}\put(5.5,14.5){\circle*{1}} \put(5.5,15.5){\circle*{1}}\put(5.5,16.5){\circle*{1}} \put(5.5,17.5){\circle*{1}}\put(5.5,18.5){\circle*{1}} \put(5.5,19.5){\circle*{1}}\put(5.5,20.5){\circle*{1}} \put(6.5,0.5){\circle*{1}}\put(6.5,1.5){\circle*{1}} \put(6.5,2.5){\circle*{1}}\put(6.5,3.5){\circle*{1}} \put(6.5,4.5){\circle*{1}}\put(6.5,5.5){\circle*{1}} \put(6.5,6.5){\circle*{1}}\put(6.5,7.5){\circle*{1}} \put(6.5,8.5){\circle*{1}}\put(6.5,9.5){\circle*{1}} \put(6.5,10.5){\circle*{1}}\put(6.5,11.5){\circle*{1}} \put(6.5,12.5){\circle*{1}}\put(6.5,13.5){\circle*{1}} \put(6.5,14.5){\circle*{1}}\put(6.5,15.5){\circle*{1}} \put(6.5,16.5){\circle*{1}}\put(6.5,17.5){\circle*{1}} \put(6.5,18.5){\circle*{1}}\put(6.5,19.5){\circle*{1}} \put(6.5,20.5){\circle*{1}}\put(6.5,21.5){\circle*{1}} \put(7.5,11.5){\circle*{1}}\put(7.5,15.5){\circle*{1}} \put(7.5,21.5){\circle*{1}}\put(8.5,11.5){\circle*{1}} \put(8.5,15.5){\circle*{1}}\put(8.5,21.5){\circle*{1}} \put(8.5,22.5){\circle*{1}}\put(9.5,2.5){\circle*{1}} \put(9.5,10.5){\circle*{1}}\put(9.5,15.5){\circle*{1}} \put(9.5,16.5){\circle*{1}}\put(9.5,22.5){\circle*{1}} \put(9.5,23.5){\circle*{1}}\put(10.5,0.5){\circle*{1}} \put(10.5,1.5){\circle*{1}}\put(10.5,2.5){\circle*{1}} \put(10.5,8.5){\circle*{1}}\put(10.5,9.5){\circle*{1}} \put(10.5,10.5){\circle*{1}}\put(10.5,15.5){\circle*{1}} \put(10.5,16.5){\circle*{1}}\put(10.5,22.5){\circle*{1}} \put(10.5,23.5){\circle*{1}}\put(11.5,1.5){\circle*{1}} \put(11.5,2.5){\circle*{1}}\put(11.5,8.5){\circle*{1}} \put(11.5,9.5){\circle*{1}}\put(11.5,15.5){\circle*{1}} \put(11.5,22.5){\circle*{1}}\put(12.5,1.5){\circle*{1}} \put(12.5,2.5){\circle*{1}}\put(13.5,1.5){\circle*{1}} \put(13.5,2.5){\circle*{1}}\put(13.5,3.5){\circle*{1}} \put(13.5,4.5){\circle*{1}}\put(14.5,2.5){\circle*{1}} \put(14.5,5.5){\circle*{1}}\put(14.5,6.5){\circle*{1}} \put(14.5,7.5){\circle*{1}}\put(14.5,8.5){\circle*{1}} \put(15.5,2.5){\circle*{1}}\put(15.5,7.5){\circle*{1}} \put(15.5,8.5){\circle*{1}}\put(15.5,9.5){\circle*{1}} \put(15.5,10.5){\circle*{1}}\put(15.5,11.5){\circle*{1}} \put(15.5,12.5){\circle*{1}}\put(15.5,13.5){\circle*{1}} \put(15.5,14.5){\circle*{1}}\put(15.5,15.5){\circle*{1}} \put(16.5,2.5){\circle*{1}}\put(16.5,11.5){\circle*{1}} \put(16.5,12.5){\circle*{1}}\put(16.5,13.5){\circle*{1}} \put(16.5,14.5){\circle*{1}}\put(16.5,15.5){\circle*{1}} \put(16.5,16.5){\circle*{1}}\put(16.5,17.5){\circle*{1}} \put(16.5,18.5){\circle*{1}}\put(16.5,19.5){\circle*{1}} \put(16.5,20.5){\circle*{1}}\put(16.5,21.5){\circle*{1}} \put(16.5,22.5){\circle*{1}}\put(16.5,23.5){\circle*{1}} \put(17.5,2.5){\circle*{1}}\put(17.5,16.5){\circle*{1}} \put(17.5,17.5){\circle*{1}}\put(17.5,18.5){\circle*{1}} \put(17.5,19.5){\circle*{1}}\put(17.5,20.5){\circle*{1}} \put(17.5,21.5){\circle*{1}}\put(17.5,22.5){\circle*{1}} \put(18.5,3.5){\circle*{1}}\put(18.5,22.5){\circle*{1}} \put(19.5,3.5){\circle*{1}}\put(19.5,7.5){\circle*{1}} \put(20.5,3.5){\circle*{1}}\put(20.5,5.5){\circle*{1}} \put(20.5,6.5){\circle*{1}}\put(21.5,3.5){\circle*{1}} \put(21.5,4.5){\circle*{1}}\put(21.5,5.5){\circle*{1}} \put(22.5,0.5){\circle*{1}}\put(22.5,1.5){\circle*{1}} \put(22.5,2.5){\circle*{1}}\put(22.5,3.5){\circle*{1}} \put(22.5,4.5){\circle*{1}}\put(23.5,0.5){\circle*{1}} \put(23.5,1.5){\circle*{1}}\put(23.5,2.5){\circle*{1}} \end{picture}} \begin{picture}(250,28) \thinlines \put(0,0){\line(1,0){250}} \put(20,0){% \begin{picture}(28,26)(-2,-2)%Bitmap 288 \put(5.5,15.5){\circle*{1}}\put(6.5,13.5){\circle*{1}} \put(6.5,14.5){\circle*{1}}\put(7.5,13.5){\circle*{1}} \put(7.5,14.5){\circle*{1}}\put(8.5,1.5){\circle*{1}} \put(8.5,14.5){\circle*{1}}\put(9.5,1.5){\circle*{1}} \put(9.5,14.5){\circle*{1}}\put(9.5,15.5){\circle*{1}} \put(9.5,23.5){\circle*{1}}\put(10.5,1.5){\circle*{1}} \put(10.5,15.5){\circle*{1}}\put(10.5,23.5){\circle*{1}} \put(11.5,2.5){\circle*{1}}\put(11.5,15.5){\circle*{1}} \put(11.5,16.5){\circle*{1}}\put(11.5,22.5){\circle*{1}} \put(12.5,2.5){\circle*{1}}\put(12.5,16.5){\circle*{1}} \put(12.5,22.5){\circle*{1}}\put(13.5,3.5){\circle*{1}} \put(13.5,16.5){\circle*{1}}\put(13.5,21.5){\circle*{1}} \put(13.5,22.5){\circle*{1}}\put(14.5,3.5){\circle*{1}} \put(14.5,4.5){\circle*{1}}\put(14.5,16.5){\circle*{1}} \put(14.5,20.5){\circle*{1}}\put(14.5,21.5){\circle*{1}} \put(15.5,4.5){\circle*{1}}\put(15.5,5.5){\circle*{1}} \put(15.5,6.5){\circle*{1}}\put(15.5,15.5){\circle*{1}} \put(15.5,20.5){\circle*{1}}\put(15.5,21.5){\circle*{1}} \put(16.5,5.5){\circle*{1}}\put(16.5,6.5){\circle*{1}} \put(16.5,7.5){\circle*{1}}\put(16.5,8.5){\circle*{1}} \put(16.5,9.5){\circle*{1}}\put(16.5,10.5){\circle*{1}} \put(16.5,11.5){\circle*{1}}\put(16.5,12.5){\circle*{1}} \put(16.5,13.5){\circle*{1}}\put(16.5,14.5){\circle*{1}} \put(17.5,7.5){\circle*{1}}\put(17.5,8.5){\circle*{1}} \put(17.5,9.5){\circle*{1}}\put(17.5,10.5){\circle*{1}} \put(17.5,11.5){\circle*{1}}\put(17.5,12.5){\circle*{1}} \put(17.5,13.5){\circle*{1}} \end{picture}} \put(50,0){\usebox{\watashi}} \put(80,0){% \begin{picture}(28,26)(-2,-2)%Bitmap 356 \put(6.5,10.5){\circle*{1}}\put(6.5,11.5){\circle*{1}} \put(6.5,12.5){\circle*{1}}\put(6.5,13.5){\circle*{1}} \put(6.5,14.5){\circle*{1}}\put(6.5,15.5){\circle*{1}} \put(6.5,16.5){\circle*{1}}\put(6.5,17.5){\circle*{1}} \put(6.5,22.5){\circle*{1}}\put(6.5,23.5){\circle*{1}} \put(7.5,9.5){\circle*{1}}\put(7.5,10.5){\circle*{1}} \put(7.5,11.5){\circle*{1}}\put(7.5,12.5){\circle*{1}} \put(7.5,13.5){\circle*{1}}\put(7.5,14.5){\circle*{1}} \put(7.5,15.5){\circle*{1}}\put(7.5,16.5){\circle*{1}} \put(7.5,17.5){\circle*{1}}\put(7.5,18.5){\circle*{1}} \put(7.5,19.5){\circle*{1}}\put(7.5,20.5){\circle*{1}} \put(7.5,21.5){\circle*{1}}\put(7.5,22.5){\circle*{1}} \put(8.5,14.5){\circle*{1}}\put(8.5,15.5){\circle*{1}} \put(9.5,16.5){\circle*{1}}\put(9.5,17.5){\circle*{1}} \put(10.5,0.5){\circle*{1}}\put(10.5,18.5){\circle*{1}} \put(10.5,19.5){\circle*{1}}\put(11.5,0.5){\circle*{1}} \put(11.5,20.5){\circle*{1}}\put(12.5,1.5){\circle*{1}} \put(12.5,21.5){\circle*{1}}\put(13.5,1.5){\circle*{1}} \put(13.5,2.5){\circle*{1}}\put(13.5,21.5){\circle*{1}} \put(14.5,2.5){\circle*{1}}\put(14.5,3.5){\circle*{1}} \put(14.5,21.5){\circle*{1}}\put(15.5,3.5){\circle*{1}} \put(15.5,4.5){\circle*{1}}\put(15.5,5.5){\circle*{1}} \put(15.5,20.5){\circle*{1}}\put(15.5,21.5){\circle*{1}} \put(16.5,4.5){\circle*{1}}\put(16.5,5.5){\circle*{1}} \put(16.5,6.5){\circle*{1}}\put(16.5,7.5){\circle*{1}} \put(16.5,8.5){\circle*{1}}\put(16.5,18.5){\circle*{1}} \put(16.5,19.5){\circle*{1}}\put(16.5,20.5){\circle*{1}} \put(17.5,6.5){\circle*{1}}\put(17.5,7.5){\circle*{1}} \put(17.5,8.5){\circle*{1}}\put(17.5,9.5){\circle*{1}} \put(17.5,10.5){\circle*{1}}\put(17.5,11.5){\circle*{1}} \put(17.5,12.5){\circle*{1}}\put(17.5,13.5){\circle*{1}} \put(17.5,14.5){\circle*{1}}\put(17.5,15.5){\circle*{1}} \put(17.5,16.5){\circle*{1}}\put(17.5,17.5){\circle*{1}} \put(17.5,18.5){\circle*{1}}\put(17.5,19.5){\circle*{1}} \put(18.5,9.5){\circle*{1}}\put(18.5,10.5){\circle*{1}} \put(18.5,11.5){\circle*{1}}\put(18.5,12.5){\circle*{1}} \put(18.5,13.5){\circle*{1}}\put(18.5,14.5){\circle*{1}} \put(18.5,15.5){\circle*{1}}\put(18.5,16.5){\circle*{1}} \put(18.5,17.5){\circle*{1}} \end{picture}} \put(110,0){\usebox{\watashi}} \put(140,0){% \begin{picture}(28,26)(-2,-2)%Bitmap 2146 \put(1.5,0.5){\circle*{1}}\put(2.5,0.5){\circle*{1}} \put(3.5,1.5){\circle*{1}}\put(4.5,2.5){\circle*{1}} \put(4.5,3.5){\circle*{1}}\put(5.5,3.5){\circle*{1}} \put(5.5,4.5){\circle*{1}}\put(5.5,5.5){\circle*{1}} \put(5.5,6.5){\circle*{1}}\put(6.5,5.5){\circle*{1}} \put(6.5,6.5){\circle*{1}}\put(6.5,7.5){\circle*{1}} \put(6.5,8.5){\circle*{1}}\put(6.5,9.5){\circle*{1}} \put(6.5,10.5){\circle*{1}}\put(6.5,11.5){\circle*{1}} \put(6.5,12.5){\circle*{1}}\put(6.5,13.5){\circle*{1}} \put(6.5,14.5){\circle*{1}}\put(6.5,15.5){\circle*{1}} \put(6.5,16.5){\circle*{1}}\put(6.5,17.5){\circle*{1}} \put(6.5,18.5){\circle*{1}}\put(6.5,19.5){\circle*{1}} \put(6.5,20.5){\circle*{1}}\put(6.5,21.5){\circle*{1}} \put(6.5,22.5){\circle*{1}}\put(6.5,23.5){\circle*{1}} \put(7.5,7.5){\circle*{1}}\put(7.5,8.5){\circle*{1}} \put(7.5,9.5){\circle*{1}}\put(7.5,10.5){\circle*{1}} \put(7.5,11.5){\circle*{1}}\put(7.5,12.5){\circle*{1}} \put(7.5,13.5){\circle*{1}}\put(7.5,14.5){\circle*{1}} \put(7.5,15.5){\circle*{1}}\put(7.5,16.5){\circle*{1}} \put(7.5,17.5){\circle*{1}}\put(7.5,18.5){\circle*{1}} \put(7.5,19.5){\circle*{1}}\put(7.5,20.5){\circle*{1}} \put(7.5,21.5){\circle*{1}}\put(7.5,22.5){\circle*{1}} \put(8.5,10.5){\circle*{1}}\put(8.5,16.5){\circle*{1}} \put(8.5,22.5){\circle*{1}}\put(9.5,10.5){\circle*{1}} \put(9.5,16.5){\circle*{1}}\put(9.5,22.5){\circle*{1}} \put(10.5,10.5){\circle*{1}}\put(10.5,16.5){\circle*{1}} \put(10.5,22.5){\circle*{1}}\put(11.5,10.5){\circle*{1}} \put(11.5,16.5){\circle*{1}}\put(11.5,22.5){\circle*{1}} \put(12.5,10.5){\circle*{1}}\put(12.5,16.5){\circle*{1}} \put(12.5,22.5){\circle*{1}}\put(13.5,10.5){\circle*{1}} \put(13.5,16.5){\circle*{1}}\put(13.5,22.5){\circle*{1}} \put(14.5,1.5){\circle*{1}}\put(14.5,10.5){\circle*{1}} \put(14.5,16.5){\circle*{1}}\put(14.5,22.5){\circle*{1}} \put(15.5,1.5){\circle*{1}}\put(15.5,10.5){\circle*{1}} \put(15.5,16.5){\circle*{1}}\put(15.5,22.5){\circle*{1}} \put(16.5,0.5){\circle*{1}}\put(16.5,1.5){\circle*{1}} \put(16.5,10.5){\circle*{1}}\put(16.5,16.5){\circle*{1}} \put(16.5,22.5){\circle*{1}}\put(17.5,0.5){\circle*{1}} \put(17.5,1.5){\circle*{1}}\put(17.5,2.5){\circle*{1}} \put(17.5,3.5){\circle*{1}}\put(17.5,4.5){\circle*{1}} \put(17.5,5.5){\circle*{1}}\put(17.5,6.5){\circle*{1}} \put(17.5,7.5){\circle*{1}}\put(17.5,8.5){\circle*{1}} \put(17.5,9.5){\circle*{1}}\put(17.5,10.5){\circle*{1}} \put(17.5,11.5){\circle*{1}}\put(17.5,12.5){\circle*{1}} \put(17.5,13.5){\circle*{1}}\put(17.5,14.5){\circle*{1}} \put(17.5,15.5){\circle*{1}}\put(17.5,16.5){\circle*{1}} \put(17.5,17.5){\circle*{1}}\put(17.5,18.5){\circle*{1}} \put(17.5,19.5){\circle*{1}}\put(17.5,20.5){\circle*{1}} \put(17.5,21.5){\circle*{1}}\put(17.5,22.5){\circle*{1}} \put(17.5,23.5){\circle*{1}}\put(18.5,1.5){\circle*{1}} \put(18.5,2.5){\circle*{1}}\put(18.5,3.5){\circle*{1}} \put(18.5,4.5){\circle*{1}}\put(18.5,5.5){\circle*{1}} \put(18.5,6.5){\circle*{1}}\put(18.5,7.5){\circle*{1}} \put(18.5,8.5){\circle*{1}}\put(18.5,9.5){\circle*{1}} \put(18.5,10.5){\circle*{1}}\put(18.5,11.5){\circle*{1}} \put(18.5,12.5){\circle*{1}}\put(18.5,13.5){\circle*{1}} \put(18.5,14.5){\circle*{1}}\put(18.5,15.5){\circle*{1}} \put(18.5,16.5){\circle*{1}}\put(18.5,17.5){\circle*{1}} \put(18.5,18.5){\circle*{1}}\put(18.5,19.5){\circle*{1}} \put(18.5,20.5){\circle*{1}}\put(18.5,21.5){\circle*{1}} \put(18.5,22.5){\circle*{1}}\put(18.5,23.5){\circle*{1}} \put(19.5,22.5){\circle*{1}} \end{picture}} \put(170,0){\usebox{\watashi}} \put(200,0){% \begin{picture}(28,26)(-2,-2)%Bitmap 2549 \put(4.5,0.5){\circle*{1}}\put(4.5,1.5){\circle*{1}} \put(4.5,2.5){\circle*{1}}\put(4.5,3.5){\circle*{1}} \put(4.5,4.5){\circle*{1}}\put(4.5,5.5){\circle*{1}} \put(4.5,6.5){\circle*{1}}\put(4.5,7.5){\circle*{1}} \put(4.5,8.5){\circle*{1}}\put(4.5,9.5){\circle*{1}} \put(4.5,10.5){\circle*{1}}\put(4.5,11.5){\circle*{1}} \put(4.5,12.5){\circle*{1}}\put(4.5,13.5){\circle*{1}} \put(4.5,14.5){\circle*{1}}\put(4.5,15.5){\circle*{1}} \put(4.5,16.5){\circle*{1}}\put(4.5,17.5){\circle*{1}} \put(4.5,18.5){\circle*{1}}\put(4.5,19.5){\circle*{1}} \put(4.5,20.5){\circle*{1}}\put(5.5,0.5){\circle*{1}} \put(5.5,1.5){\circle*{1}}\put(5.5,2.5){\circle*{1}} \put(5.5,3.5){\circle*{1}}\put(5.5,4.5){\circle*{1}} \put(5.5,5.5){\circle*{1}}\put(5.5,6.5){\circle*{1}} \put(5.5,7.5){\circle*{1}}\put(5.5,8.5){\circle*{1}} \put(5.5,9.5){\circle*{1}}\put(5.5,10.5){\circle*{1}} \put(5.5,11.5){\circle*{1}}\put(5.5,12.5){\circle*{1}} \put(5.5,13.5){\circle*{1}}\put(5.5,14.5){\circle*{1}} \put(5.5,15.5){\circle*{1}}\put(5.5,16.5){\circle*{1}} \put(5.5,17.5){\circle*{1}}\put(5.5,18.5){\circle*{1}} \put(5.5,19.5){\circle*{1}}\put(6.5,1.5){\circle*{1}} \put(6.5,7.5){\circle*{1}}\put(6.5,13.5){\circle*{1}} \put(6.5,19.5){\circle*{1}}\put(7.5,1.5){\circle*{1}} \put(7.5,7.5){\circle*{1}}\put(7.5,13.5){\circle*{1}} \put(7.5,19.5){\circle*{1}}\put(8.5,1.5){\circle*{1}} \put(8.5,7.5){\circle*{1}}\put(8.5,13.5){\circle*{1}} \put(8.5,19.5){\circle*{1}}\put(9.5,1.5){\circle*{1}} \put(9.5,7.5){\circle*{1}}\put(9.5,13.5){\circle*{1}} \put(9.5,19.5){\circle*{1}}\put(10.5,1.5){\circle*{1}} \put(10.5,7.5){\circle*{1}}\put(10.5,13.5){\circle*{1}} \put(10.5,19.5){\circle*{1}}\put(10.5,20.5){\circle*{1}} \put(10.5,21.5){\circle*{1}}\put(10.5,22.5){\circle*{1}} \put(10.5,23.5){\circle*{1}}\put(11.5,1.5){\circle*{1}} \put(11.5,7.5){\circle*{1}}\put(11.5,13.5){\circle*{1}} \put(11.5,19.5){\circle*{1}}\put(11.5,21.5){\circle*{1}} \put(11.5,22.5){\circle*{1}}\put(12.5,1.5){\circle*{1}} \put(12.5,7.5){\circle*{1}}\put(12.5,13.5){\circle*{1}} \put(12.5,19.5){\circle*{1}}\put(12.5,22.5){\circle*{1}} \put(13.5,1.5){\circle*{1}}\put(13.5,7.5){\circle*{1}} \put(13.5,13.5){\circle*{1}}\put(13.5,19.5){\circle*{1}} \put(14.5,1.5){\circle*{1}}\put(14.5,7.5){\circle*{1}} \put(14.5,13.5){\circle*{1}}\put(14.5,19.5){\circle*{1}} \put(15.5,1.5){\circle*{1}}\put(15.5,7.5){\circle*{1}} \put(15.5,13.5){\circle*{1}}\put(15.5,19.5){\circle*{1}} \put(16.5,1.5){\circle*{1}}\put(16.5,7.5){\circle*{1}} \put(16.5,13.5){\circle*{1}}\put(16.5,19.5){\circle*{1}} \put(17.5,1.5){\circle*{1}}\put(17.5,7.5){\circle*{1}} \put(17.5,13.5){\circle*{1}}\put(17.5,19.5){\circle*{1}} \put(18.5,0.5){\circle*{1}}\put(18.5,1.5){\circle*{1}} \put(18.5,2.5){\circle*{1}}\put(18.5,3.5){\circle*{1}} \put(18.5,4.5){\circle*{1}}\put(18.5,5.5){\circle*{1}} \put(18.5,6.5){\circle*{1}}\put(18.5,7.5){\circle*{1}} \put(18.5,8.5){\circle*{1}}\put(18.5,9.5){\circle*{1}} \put(18.5,10.5){\circle*{1}}\put(18.5,11.5){\circle*{1}} \put(18.5,12.5){\circle*{1}}\put(18.5,13.5){\circle*{1}} \put(18.5,14.5){\circle*{1}}\put(18.5,15.5){\circle*{1}} \put(18.5,16.5){\circle*{1}}\put(18.5,17.5){\circle*{1}} \put(18.5,18.5){\circle*{1}}\put(18.5,19.5){\circle*{1}} \put(18.5,20.5){\circle*{1}}\put(19.5,0.5){\circle*{1}} \put(19.5,1.5){\circle*{1}}\put(19.5,2.5){\circle*{1}} \put(19.5,3.5){\circle*{1}}\put(19.5,4.5){\circle*{1}} \put(19.5,5.5){\circle*{1}}\put(19.5,6.5){\circle*{1}} \put(19.5,7.5){\circle*{1}}\put(19.5,8.5){\circle*{1}} \put(19.5,9.5){\circle*{1}}\put(19.5,10.5){\circle*{1}} \put(19.5,11.5){\circle*{1}}\put(19.5,12.5){\circle*{1}} \put(19.5,13.5){\circle*{1}}\put(19.5,14.5){\circle*{1}} \put(19.5,15.5){\circle*{1}}\put(19.5,16.5){\circle*{1}} \put(19.5,17.5){\circle*{1}}\put(19.5,18.5){\circle*{1}} \put(19.5,19.5){\circle*{1}}\put(19.5,20.5){\circle*{1}} \put(20.5,19.5){\circle*{1}} \end{picture}} \end{picture} \hspace{1cm} \begin{picture}(250,28) \thinlines \put(0,0){\line(1,0){250}} \put(38,0){% \begin{picture}(22,26)(-2,-2)%Bitmap 2988 \put(0.5,0.5){\circle*{1}}\put(0.5,1.5){\circle*{1}} \put(0.5,2.5){\circle*{1}}\put(0.5,3.5){\circle*{1}} \put(0.5,4.5){\circle*{1}}\put(0.5,5.5){\circle*{1}} \put(0.5,6.5){\circle*{1}}\put(0.5,7.5){\circle*{1}} \put(0.5,8.5){\circle*{1}}\put(0.5,9.5){\circle*{1}} \put(0.5,10.5){\circle*{1}}\put(0.5,11.5){\circle*{1}} \put(1.5,0.5){\circle*{1}}\put(1.5,1.5){\circle*{1}} \put(1.5,2.5){\circle*{1}}\put(1.5,3.5){\circle*{1}} \put(1.5,4.5){\circle*{1}}\put(1.5,5.5){\circle*{1}} \put(1.5,6.5){\circle*{1}}\put(1.5,7.5){\circle*{1}} \put(1.5,8.5){\circle*{1}}\put(1.5,9.5){\circle*{1}} \put(1.5,10.5){\circle*{1}}\put(2.5,2.5){\circle*{1}} \put(2.5,10.5){\circle*{1}}\put(3.5,2.5){\circle*{1}} \put(3.5,10.5){\circle*{1}}\put(4.5,2.5){\circle*{1}} \put(4.5,10.5){\circle*{1}}\put(5.5,2.5){\circle*{1}} \put(5.5,10.5){\circle*{1}}\put(6.5,2.5){\circle*{1}} \put(6.5,10.5){\circle*{1}}\put(7.5,2.5){\circle*{1}} \put(7.5,10.5){\circle*{1}}\put(7.5,11.5){\circle*{1}} \put(7.5,12.5){\circle*{1}}\put(7.5,13.5){\circle*{1}} \put(7.5,14.5){\circle*{1}}\put(7.5,15.5){\circle*{1}} \put(7.5,16.5){\circle*{1}}\put(7.5,17.5){\circle*{1}} \put(7.5,18.5){\circle*{1}}\put(7.5,19.5){\circle*{1}} \put(7.5,20.5){\circle*{1}}\put(7.5,21.5){\circle*{1}} \put(7.5,22.5){\circle*{1}}\put(7.5,23.5){\circle*{1}} \put(8.5,2.5){\circle*{1}}\put(8.5,10.5){\circle*{1}} \put(8.5,11.5){\circle*{1}}\put(8.5,12.5){\circle*{1}} \put(8.5,13.5){\circle*{1}}\put(8.5,14.5){\circle*{1}} \put(8.5,15.5){\circle*{1}}\put(8.5,16.5){\circle*{1}} \put(8.5,17.5){\circle*{1}}\put(8.5,18.5){\circle*{1}} \put(8.5,19.5){\circle*{1}}\put(8.5,20.5){\circle*{1}} \put(8.5,21.5){\circle*{1}}\put(8.5,22.5){\circle*{1}} \put(8.5,23.5){\circle*{1}}\put(9.5,2.5){\circle*{1}} \put(9.5,10.5){\circle*{1}}\put(9.5,17.5){\circle*{1}} \put(9.5,23.5){\circle*{1}}\put(10.5,2.5){\circle*{1}} \put(10.5,10.5){\circle*{1}}\put(10.5,17.5){\circle*{1}} \put(11.5,2.5){\circle*{1}}\put(11.5,10.5){\circle*{1}} \put(11.5,17.5){\circle*{1}}\put(12.5,2.5){\circle*{1}} \put(12.5,10.5){\circle*{1}}\put(12.5,17.5){\circle*{1}} \put(13.5,2.5){\circle*{1}}\put(13.5,10.5){\circle*{1}} \put(13.5,17.5){\circle*{1}}\put(14.5,0.5){\circle*{1}} \put(14.5,1.5){\circle*{1}}\put(14.5,2.5){\circle*{1}} \put(14.5,3.5){\circle*{1}}\put(14.5,4.5){\circle*{1}} \put(14.5,5.5){\circle*{1}}\put(14.5,6.5){\circle*{1}} \put(14.5,7.5){\circle*{1}}\put(14.5,8.5){\circle*{1}} \put(14.5,9.5){\circle*{1}}\put(14.5,10.5){\circle*{1}} \put(14.5,11.5){\circle*{1}}\put(14.5,17.5){\circle*{1}} \put(15.5,0.5){\circle*{1}}\put(15.5,1.5){\circle*{1}} \put(15.5,2.5){\circle*{1}}\put(15.5,3.5){\circle*{1}} \put(15.5,4.5){\circle*{1}}\put(15.5,5.5){\circle*{1}} \put(15.5,6.5){\circle*{1}}\put(15.5,7.5){\circle*{1}} \put(15.5,8.5){\circle*{1}}\put(15.5,9.5){\circle*{1}} \put(15.5,10.5){\circle*{1}}\put(15.5,11.5){\circle*{1}} \put(15.5,17.5){\circle*{1}}\put(15.5,18.5){\circle*{1}} \put(16.5,10.5){\circle*{1}}\put(16.5,17.5){\circle*{1}} \put(16.5,18.5){\circle*{1}}\put(17.5,17.5){\circle*{1}} \end{picture}} \put(62,0){\usebox{\watashi}} \put(92,0){% \begin{picture}(21,26)(-2,-2)%Bitmap 3570 \put(0.5,0.5){\circle*{1}}\put(0.5,1.5){\circle*{1}} \put(0.5,2.5){\circle*{1}}\put(0.5,3.5){\circle*{1}} \put(0.5,4.5){\circle*{1}}\put(0.5,5.5){\circle*{1}} \put(0.5,6.5){\circle*{1}}\put(0.5,7.5){\circle*{1}} \put(0.5,8.5){\circle*{1}}\put(0.5,9.5){\circle*{1}} \put(0.5,10.5){\circle*{1}}\put(0.5,11.5){\circle*{1}} \put(0.5,12.5){\circle*{1}}\put(0.5,13.5){\circle*{1}} \put(0.5,14.5){\circle*{1}}\put(0.5,15.5){\circle*{1}} \put(0.5,16.5){\circle*{1}}\put(0.5,17.5){\circle*{1}} \put(0.5,18.5){\circle*{1}}\put(0.5,19.5){\circle*{1}} \put(0.5,20.5){\circle*{1}}\put(0.5,21.5){\circle*{1}} \put(0.5,22.5){\circle*{1}}\put(1.5,0.5){\circle*{1}} \put(1.5,1.5){\circle*{1}}\put(1.5,2.5){\circle*{1}} \put(1.5,3.5){\circle*{1}}\put(1.5,4.5){\circle*{1}} \put(1.5,5.5){\circle*{1}}\put(1.5,6.5){\circle*{1}} \put(1.5,7.5){\circle*{1}}\put(1.5,8.5){\circle*{1}} \put(1.5,9.5){\circle*{1}}\put(1.5,10.5){\circle*{1}} \put(1.5,11.5){\circle*{1}}\put(1.5,12.5){\circle*{1}} \put(1.5,13.5){\circle*{1}}\put(1.5,14.5){\circle*{1}} \put(1.5,15.5){\circle*{1}}\put(1.5,16.5){\circle*{1}} \put(1.5,17.5){\circle*{1}}\put(1.5,18.5){\circle*{1}} \put(1.5,19.5){\circle*{1}}\put(1.5,20.5){\circle*{1}} \put(1.5,21.5){\circle*{1}}\put(2.5,2.5){\circle*{1}} \put(2.5,12.5){\circle*{1}}\put(2.5,21.5){\circle*{1}} \put(3.5,2.5){\circle*{1}}\put(3.5,12.5){\circle*{1}} \put(3.5,21.5){\circle*{1}}\put(4.5,2.5){\circle*{1}} \put(4.5,12.5){\circle*{1}}\put(4.5,21.5){\circle*{1}} \put(5.5,2.5){\circle*{1}}\put(5.5,12.5){\circle*{1}} \put(5.5,21.5){\circle*{1}}\put(6.5,2.5){\circle*{1}} \put(6.5,12.5){\circle*{1}}\put(6.5,21.5){\circle*{1}} \put(7.5,2.5){\circle*{1}}\put(7.5,12.5){\circle*{1}} \put(7.5,21.5){\circle*{1}}\put(8.5,2.5){\circle*{1}} \put(8.5,12.5){\circle*{1}}\put(8.5,21.5){\circle*{1}} \put(9.5,2.5){\circle*{1}}\put(9.5,12.5){\circle*{1}} \put(9.5,21.5){\circle*{1}}\put(10.5,2.5){\circle*{1}} \put(10.5,12.5){\circle*{1}}\put(10.5,21.5){\circle*{1}} \put(11.5,2.5){\circle*{1}}\put(11.5,12.5){\circle*{1}} \put(11.5,21.5){\circle*{1}}\put(12.5,2.5){\circle*{1}} \put(12.5,12.5){\circle*{1}}\put(12.5,21.5){\circle*{1}} \put(13.5,2.5){\circle*{1}}\put(13.5,12.5){\circle*{1}} \put(13.5,21.5){\circle*{1}}\put(14.5,0.5){\circle*{1}} \put(14.5,1.5){\circle*{1}}\put(14.5,2.5){\circle*{1}} \put(14.5,3.5){\circle*{1}}\put(14.5,4.5){\circle*{1}} \put(14.5,5.5){\circle*{1}}\put(14.5,6.5){\circle*{1}} \put(14.5,7.5){\circle*{1}}\put(14.5,8.5){\circle*{1}} \put(14.5,9.5){\circle*{1}}\put(14.5,10.5){\circle*{1}} \put(14.5,11.5){\circle*{1}}\put(14.5,12.5){\circle*{1}} \put(14.5,13.5){\circle*{1}}\put(14.5,14.5){\circle*{1}} \put(14.5,15.5){\circle*{1}}\put(14.5,16.5){\circle*{1}} \put(14.5,17.5){\circle*{1}}\put(14.5,18.5){\circle*{1}} \put(14.5,19.5){\circle*{1}}\put(14.5,20.5){\circle*{1}} \put(14.5,21.5){\circle*{1}}\put(14.5,22.5){\circle*{1}} \put(15.5,0.5){\circle*{1}}\put(15.5,1.5){\circle*{1}} \put(15.5,2.5){\circle*{1}}\put(15.5,3.5){\circle*{1}} \put(15.5,4.5){\circle*{1}}\put(15.5,5.5){\circle*{1}} \put(15.5,6.5){\circle*{1}}\put(15.5,7.5){\circle*{1}} \put(15.5,8.5){\circle*{1}}\put(15.5,9.5){\circle*{1}} \put(15.5,10.5){\circle*{1}}\put(15.5,11.5){\circle*{1}} \put(15.5,12.5){\circle*{1}}\put(15.5,13.5){\circle*{1}} \put(15.5,14.5){\circle*{1}}\put(15.5,15.5){\circle*{1}} \put(15.5,16.5){\circle*{1}}\put(15.5,17.5){\circle*{1}} \put(15.5,18.5){\circle*{1}}\put(15.5,19.5){\circle*{1}} \put(15.5,20.5){\circle*{1}}\put(15.5,21.5){\circle*{1}} \put(15.5,22.5){\circle*{1}}\put(16.5,21.5){\circle*{1}} \end{picture}} \put(115,0){\usebox{\watashi}} \put(145,0){% \begin{picture}(16,26)(-2,-2)%Bitmap 3994 \put(0.5,0.5){\circle*{1}}\put(0.5,1.5){\circle*{1}} \put(0.5,2.5){\circle*{1}}\put(0.5,3.5){\circle*{1}} \put(0.5,4.5){\circle*{1}}\put(0.5,5.5){\circle*{1}} \put(0.5,6.5){\circle*{1}}\put(0.5,7.5){\circle*{1}} \put(0.5,8.5){\circle*{1}}\put(0.5,9.5){\circle*{1}} \put(0.5,10.5){\circle*{1}}\put(0.5,11.5){\circle*{1}} \put(0.5,12.5){\circle*{1}}\put(0.5,13.5){\circle*{1}} \put(0.5,14.5){\circle*{1}}\put(0.5,15.5){\circle*{1}} \put(0.5,16.5){\circle*{1}}\put(0.5,17.5){\circle*{1}} \put(0.5,18.5){\circle*{1}}\put(0.5,19.5){\circle*{1}} \put(0.5,20.5){\circle*{1}}\put(0.5,21.5){\circle*{1}} \put(0.5,22.5){\circle*{1}}\put(0.5,23.5){\circle*{1}} \put(1.5,0.5){\circle*{1}}\put(1.5,1.5){\circle*{1}} \put(1.5,2.5){\circle*{1}}\put(1.5,3.5){\circle*{1}} \put(1.5,4.5){\circle*{1}}\put(1.5,5.5){\circle*{1}} \put(1.5,6.5){\circle*{1}}\put(1.5,7.5){\circle*{1}} \put(1.5,8.5){\circle*{1}}\put(1.5,9.5){\circle*{1}} \put(1.5,10.5){\circle*{1}}\put(1.5,11.5){\circle*{1}} \put(1.5,12.5){\circle*{1}}\put(1.5,13.5){\circle*{1}} \put(1.5,14.5){\circle*{1}}\put(1.5,15.5){\circle*{1}} \put(1.5,16.5){\circle*{1}}\put(1.5,17.5){\circle*{1}} \put(1.5,18.5){\circle*{1}}\put(1.5,19.5){\circle*{1}} \put(1.5,20.5){\circle*{1}}\put(1.5,21.5){\circle*{1}} \put(1.5,22.5){\circle*{1}}\put(1.5,23.5){\circle*{1}} \put(2.5,15.5){\circle*{1}}\put(2.5,23.5){\circle*{1}} \put(3.5,15.5){\circle*{1}}\put(4.5,14.5){\circle*{1}} \put(5.5,14.5){\circle*{1}}\put(6.5,13.5){\circle*{1}} \put(7.5,12.5){\circle*{1}}\put(7.5,13.5){\circle*{1}} \put(8.5,11.5){\circle*{1}}\put(8.5,12.5){\circle*{1}} \put(9.5,10.5){\circle*{1}}\put(9.5,11.5){\circle*{1}} \put(9.5,12.5){\circle*{1}}\put(10.5,9.5){\circle*{1}} \put(10.5,10.5){\circle*{1}}\put(10.5,11.5){\circle*{1}} \put(11.5,9.5){\circle*{1}}\put(11.5,10.5){\circle*{1}} \end{picture}} \put(163,0){\usebox{\watashi}} \put(193,0){% \begin{picture}(17,26)(-2,-2)%Bitmap 4645 \put(0.5,0.5){\circle*{1}}\put(0.5,1.5){\circle*{1}} \put(0.5,2.5){\circle*{1}}\put(0.5,3.5){\circle*{1}} \put(0.5,4.5){\circle*{1}}\put(0.5,5.5){\circle*{1}} \put(0.5,6.5){\circle*{1}}\put(0.5,7.5){\circle*{1}} \put(0.5,8.5){\circle*{1}}\put(0.5,9.5){\circle*{1}} \put(0.5,10.5){\circle*{1}}\put(0.5,11.5){\circle*{1}} \put(0.5,12.5){\circle*{1}}\put(0.5,13.5){\circle*{1}} \put(0.5,14.5){\circle*{1}}\put(0.5,15.5){\circle*{1}} \put(0.5,16.5){\circle*{1}}\put(0.5,17.5){\circle*{1}} \put(0.5,18.5){\circle*{1}}\put(0.5,19.5){\circle*{1}} \put(0.5,20.5){\circle*{1}}\put(0.5,21.5){\circle*{1}} \put(0.5,22.5){\circle*{1}}\put(1.5,0.5){\circle*{1}} \put(1.5,1.5){\circle*{1}}\put(1.5,2.5){\circle*{1}} \put(1.5,3.5){\circle*{1}}\put(1.5,4.5){\circle*{1}} \put(1.5,5.5){\circle*{1}}\put(1.5,6.5){\circle*{1}} \put(1.5,7.5){\circle*{1}}\put(1.5,8.5){\circle*{1}} \put(1.5,9.5){\circle*{1}}\put(1.5,10.5){\circle*{1}} \put(1.5,11.5){\circle*{1}}\put(1.5,12.5){\circle*{1}} \put(1.5,13.5){\circle*{1}}\put(1.5,14.5){\circle*{1}} \put(1.5,15.5){\circle*{1}}\put(1.5,16.5){\circle*{1}} \put(1.5,17.5){\circle*{1}}\put(1.5,18.5){\circle*{1}} \put(1.5,19.5){\circle*{1}}\put(1.5,20.5){\circle*{1}} \put(1.5,21.5){\circle*{1}}\put(2.5,21.5){\circle*{1}} \put(3.5,21.5){\circle*{1}}\put(4.5,21.5){\circle*{1}} \put(5.5,21.5){\circle*{1}}\put(6.5,7.5){\circle*{1}} \put(6.5,21.5){\circle*{1}}\put(7.5,7.5){\circle*{1}} \put(7.5,21.5){\circle*{1}}\put(8.5,6.5){\circle*{1}} \put(8.5,7.5){\circle*{1}}\put(8.5,21.5){\circle*{1}} \put(9.5,6.5){\circle*{1}}\put(9.5,7.5){\circle*{1}} \put(9.5,21.5){\circle*{1}}\put(10.5,6.5){\circle*{1}} \put(10.5,7.5){\circle*{1}}\put(10.5,8.5){\circle*{1}} \put(10.5,9.5){\circle*{1}}\put(10.5,10.5){\circle*{1}} \put(10.5,11.5){\circle*{1}}\put(10.5,12.5){\circle*{1}} \put(10.5,13.5){\circle*{1}}\put(10.5,14.5){\circle*{1}} \put(10.5,15.5){\circle*{1}}\put(10.5,16.5){\circle*{1}} \put(10.5,17.5){\circle*{1}}\put(10.5,18.5){\circle*{1}} \put(10.5,19.5){\circle*{1}}\put(10.5,20.5){\circle*{1}} \put(10.5,21.5){\circle*{1}}\put(10.5,22.5){\circle*{1}} \put(11.5,7.5){\circle*{1}}\put(11.5,8.5){\circle*{1}} \put(11.5,9.5){\circle*{1}}\put(11.5,10.5){\circle*{1}} \put(11.5,11.5){\circle*{1}}\put(11.5,12.5){\circle*{1}} \put(11.5,13.5){\circle*{1}}\put(11.5,14.5){\circle*{1}} \put(11.5,15.5){\circle*{1}}\put(11.5,16.5){\circle*{1}} \put(11.5,17.5){\circle*{1}}\put(11.5,18.5){\circle*{1}} \put(11.5,19.5){\circle*{1}}\put(11.5,20.5){\circle*{1}} \put(11.5,21.5){\circle*{1}}\put(11.5,22.5){\circle*{1}} \put(12.5,21.5){\circle*{1}} \end{picture}} \end{picture} \sbox{\watashi}{} \end{center} The japanese characters on the left have a fixed width. The characters on the right have a minimized width, just like ordinary english characters. Personally, I find that minimized width is desirable when writing japanese horizontally. Also note that although this is not visible in these two examples, the japanese characters are as short as possible while respecting the vertical relationship with their horizontal baseline. Let us now consider vertical roman writing. If one was to simply reverse the previous argument regarding roman characters and their horizontal baseline, one would conclude that it is important to minimize the height of each roman character. However, the width of each character would be unimportant. It is the horizontal relationship between the roman character and the vertical baseline that would appear crucial. That reasoning could be correct if there was such a thing as vertical roman writing, but it fails in the japanese case for two good reasons. First of all, there is no vertical baseline available in \MFT. That implies that the concept of an horizontal relationship between a japanese character and its vertical baseline is undefined. The next best thing available to us is to use fixed width japanese characters. In such a case, the sought horizontal relationship is implied in the bitmap itself. Secondly, some japanese characters can be constructed by piling up other characters on top of one another. For example, consider the characters two, one, and three: \begin{center} \setlength{\unitlength}{0.4pt} \begin{picture}(30,94)(0,-10) \thinlines \put(0,-10){\line(0,1){104}} \put(0,56){% \begin{picture}(28,26)(-2,-2)%Bitmap 3561 ni \put(0.5,2.5){\circle*{1}}\put(1.5,2.5){\circle*{1}} \put(2.5,2.5){\circle*{1}}\put(3.5,2.5){\circle*{1}} \put(3.5,20.5){\circle*{1}}\put(4.5,2.5){\circle*{1}} \put(4.5,20.5){\circle*{1}}\put(5.5,2.5){\circle*{1}} \put(5.5,20.5){\circle*{1}}\put(6.5,2.5){\circle*{1}} \put(6.5,20.5){\circle*{1}}\put(7.5,2.5){\circle*{1}} \put(7.5,20.5){\circle*{1}}\put(8.5,2.5){\circle*{1}} \put(8.5,20.5){\circle*{1}}\put(9.5,2.5){\circle*{1}} \put(9.5,20.5){\circle*{1}}\put(10.5,2.5){\circle*{1}} \put(10.5,20.5){\circle*{1}}\put(11.5,2.5){\circle*{1}} \put(11.5,20.5){\circle*{1}}\put(12.5,2.5){\circle*{1}} \put(12.5,20.5){\circle*{1}}\put(13.5,2.5){\circle*{1}} \put(13.5,20.5){\circle*{1}}\put(14.5,2.5){\circle*{1}} \put(14.5,20.5){\circle*{1}}\put(15.5,2.5){\circle*{1}} \put(15.5,20.5){\circle*{1}}\put(16.5,2.5){\circle*{1}} \put(16.5,20.5){\circle*{1}}\put(17.5,2.5){\circle*{1}} \put(17.5,20.5){\circle*{1}}\put(18.5,2.5){\circle*{1}} \put(18.5,20.5){\circle*{1}}\put(18.5,21.5){\circle*{1}} \put(19.5,2.5){\circle*{1}}\put(19.5,20.5){\circle*{1}} \put(19.5,21.5){\circle*{1}}\put(20.5,2.5){\circle*{1}} \put(20.5,20.5){\circle*{1}}\put(21.5,2.5){\circle*{1}} \put(21.5,3.5){\circle*{1}}\put(22.5,2.5){\circle*{1}} \put(22.5,3.5){\circle*{1}}\put(23.5,2.5){\circle*{1}} \end{picture}} \put(0,28){% \begin{picture}(28,26)(-2,-2)%Bitmap 1486 ichi \put(0.5,12.5){\circle*{1}}\put(1.5,12.5){\circle*{1}} \put(2.5,12.5){\circle*{1}}\put(3.5,12.5){\circle*{1}} \put(4.5,12.5){\circle*{1}}\put(5.5,12.5){\circle*{1}} \put(6.5,12.5){\circle*{1}}\put(7.5,12.5){\circle*{1}} \put(8.5,12.5){\circle*{1}}\put(9.5,12.5){\circle*{1}} \put(10.5,12.5){\circle*{1}}\put(11.5,12.5){\circle*{1}} \put(12.5,12.5){\circle*{1}}\put(13.5,12.5){\circle*{1}} \put(14.5,12.5){\circle*{1}}\put(15.5,12.5){\circle*{1}} \put(16.5,12.5){\circle*{1}}\put(17.5,12.5){\circle*{1}} \put(18.5,12.5){\circle*{1}}\put(19.5,12.5){\circle*{1}} \put(20.5,12.5){\circle*{1}}\put(20.5,13.5){\circle*{1}} \put(21.5,12.5){\circle*{1}}\put(21.5,13.5){\circle*{1}} \put(21.5,14.5){\circle*{1}}\put(22.5,12.5){\circle*{1}} \put(22.5,13.5){\circle*{1}}\put(23.5,12.5){\circle*{1}} \end{picture}} \put(0,0){% \begin{picture}(28,26)(-2,-2)%Bitmap 2460 san \put(0.5,2.5){\circle*{1}}\put(1.5,2.5){\circle*{1}} \put(2.5,2.5){\circle*{1}}\put(2.5,21.5){\circle*{1}} \put(3.5,2.5){\circle*{1}}\put(3.5,21.5){\circle*{1}} \put(4.5,2.5){\circle*{1}}\put(4.5,12.5){\circle*{1}} \put(4.5,21.5){\circle*{1}}\put(5.5,2.5){\circle*{1}} \put(5.5,12.5){\circle*{1}}\put(5.5,21.5){\circle*{1}} \put(6.5,2.5){\circle*{1}}\put(6.5,12.5){\circle*{1}} \put(6.5,21.5){\circle*{1}}\put(7.5,2.5){\circle*{1}} \put(7.5,12.5){\circle*{1}}\put(7.5,21.5){\circle*{1}} \put(8.5,2.5){\circle*{1}}\put(8.5,12.5){\circle*{1}} \put(8.5,21.5){\circle*{1}}\put(9.5,2.5){\circle*{1}} \put(9.5,12.5){\circle*{1}}\put(9.5,21.5){\circle*{1}} \put(10.5,2.5){\circle*{1}}\put(10.5,12.5){\circle*{1}} \put(10.5,21.5){\circle*{1}}\put(11.5,2.5){\circle*{1}} \put(11.5,12.5){\circle*{1}}\put(11.5,21.5){\circle*{1}} \put(12.5,2.5){\circle*{1}}\put(12.5,12.5){\circle*{1}} \put(12.5,21.5){\circle*{1}}\put(13.5,2.5){\circle*{1}} \put(13.5,12.5){\circle*{1}}\put(13.5,21.5){\circle*{1}} \put(14.5,2.5){\circle*{1}}\put(14.5,12.5){\circle*{1}} \put(14.5,21.5){\circle*{1}}\put(15.5,2.5){\circle*{1}} \put(15.5,12.5){\circle*{1}}\put(15.5,21.5){\circle*{1}} \put(16.5,2.5){\circle*{1}}\put(16.5,12.5){\circle*{1}} \put(16.5,21.5){\circle*{1}}\put(17.5,2.5){\circle*{1}} \put(17.5,12.5){\circle*{1}}\put(17.5,13.5){\circle*{1}} \put(17.5,21.5){\circle*{1}}\put(18.5,2.5){\circle*{1}} \put(18.5,12.5){\circle*{1}}\put(18.5,13.5){\circle*{1}} \put(18.5,21.5){\circle*{1}}\put(19.5,2.5){\circle*{1}} \put(19.5,12.5){\circle*{1}}\put(19.5,21.5){\circle*{1}} \put(19.5,22.5){\circle*{1}}\put(20.5,2.5){\circle*{1}} \put(20.5,21.5){\circle*{1}}\put(20.5,22.5){\circle*{1}} \put(21.5,2.5){\circle*{1}}\put(21.5,3.5){\circle*{1}} \put(21.5,21.5){\circle*{1}}\put(22.5,2.5){\circle*{1}} \put(22.5,3.5){\circle*{1}}\put(23.5,2.5){\circle*{1}} \end{picture}} \end{picture} \hspace{1cm} \begin{picture}(30,94)(0,-10) \thinlines \put(0,-10){\line(0,1){104}} \put(0,45.5){% \begin{picture}(28,23)(-2,0)%Bitmap 3561 ni \put(0.5,2.5){\circle*{1}}\put(1.5,2.5){\circle*{1}} \put(2.5,2.5){\circle*{1}}\put(3.5,2.5){\circle*{1}} \put(3.5,20.5){\circle*{1}}\put(4.5,2.5){\circle*{1}} \put(4.5,20.5){\circle*{1}}\put(5.5,2.5){\circle*{1}} \put(5.5,20.5){\circle*{1}}\put(6.5,2.5){\circle*{1}} \put(6.5,20.5){\circle*{1}}\put(7.5,2.5){\circle*{1}} \put(7.5,20.5){\circle*{1}}\put(8.5,2.5){\circle*{1}} \put(8.5,20.5){\circle*{1}}\put(9.5,2.5){\circle*{1}} \put(9.5,20.5){\circle*{1}}\put(10.5,2.5){\circle*{1}} \put(10.5,20.5){\circle*{1}}\put(11.5,2.5){\circle*{1}} \put(11.5,20.5){\circle*{1}}\put(12.5,2.5){\circle*{1}} \put(12.5,20.5){\circle*{1}}\put(13.5,2.5){\circle*{1}} \put(13.5,20.5){\circle*{1}}\put(14.5,2.5){\circle*{1}} \put(14.5,20.5){\circle*{1}}\put(15.5,2.5){\circle*{1}} \put(15.5,20.5){\circle*{1}}\put(16.5,2.5){\circle*{1}} \put(16.5,20.5){\circle*{1}}\put(17.5,2.5){\circle*{1}} \put(17.5,20.5){\circle*{1}}\put(18.5,2.5){\circle*{1}} \put(18.5,20.5){\circle*{1}}\put(18.5,21.5){\circle*{1}} \put(19.5,2.5){\circle*{1}}\put(19.5,20.5){\circle*{1}} \put(19.5,21.5){\circle*{1}}\put(20.5,2.5){\circle*{1}} \put(20.5,20.5){\circle*{1}}\put(21.5,2.5){\circle*{1}} \put(21.5,3.5){\circle*{1}}\put(22.5,2.5){\circle*{1}} \put(22.5,3.5){\circle*{1}}\put(23.5,2.5){\circle*{1}} \end{picture}} \put(0,39.5){% \begin{picture}(28,16)(-2,10)%Bitmap 1486 ichi \put(0.5,12.5){\circle*{1}}\put(1.5,12.5){\circle*{1}} \put(2.5,12.5){\circle*{1}}\put(3.5,12.5){\circle*{1}} \put(4.5,12.5){\circle*{1}}\put(5.5,12.5){\circle*{1}} \put(6.5,12.5){\circle*{1}}\put(7.5,12.5){\circle*{1}} \put(8.5,12.5){\circle*{1}}\put(9.5,12.5){\circle*{1}} \put(10.5,12.5){\circle*{1}}\put(11.5,12.5){\circle*{1}} \put(12.5,12.5){\circle*{1}}\put(13.5,12.5){\circle*{1}} \put(14.5,12.5){\circle*{1}}\put(15.5,12.5){\circle*{1}} \put(16.5,12.5){\circle*{1}}\put(17.5,12.5){\circle*{1}} \put(18.5,12.5){\circle*{1}}\put(19.5,12.5){\circle*{1}} \put(20.5,12.5){\circle*{1}}\put(20.5,13.5){\circle*{1}} \put(21.5,12.5){\circle*{1}}\put(21.5,13.5){\circle*{1}} \put(21.5,14.5){\circle*{1}}\put(22.5,12.5){\circle*{1}} \put(22.5,13.5){\circle*{1}}\put(23.5,12.5){\circle*{1}} \end{picture}} \put(0,15.5){% \begin{picture}(28,24)(-2,0)%Bitmap 2460 san \put(0.5,2.5){\circle*{1}}\put(1.5,2.5){\circle*{1}} \put(2.5,2.5){\circle*{1}}\put(2.5,21.5){\circle*{1}} \put(3.5,2.5){\circle*{1}}\put(3.5,21.5){\circle*{1}} \put(4.5,2.5){\circle*{1}}\put(4.5,12.5){\circle*{1}} \put(4.5,21.5){\circle*{1}}\put(5.5,2.5){\circle*{1}} \put(5.5,12.5){\circle*{1}}\put(5.5,21.5){\circle*{1}} \put(6.5,2.5){\circle*{1}}\put(6.5,12.5){\circle*{1}} \put(6.5,21.5){\circle*{1}}\put(7.5,2.5){\circle*{1}} \put(7.5,12.5){\circle*{1}}\put(7.5,21.5){\circle*{1}} \put(8.5,2.5){\circle*{1}}\put(8.5,12.5){\circle*{1}} \put(8.5,21.5){\circle*{1}}\put(9.5,2.5){\circle*{1}} \put(9.5,12.5){\circle*{1}}\put(9.5,21.5){\circle*{1}} \put(10.5,2.5){\circle*{1}}\put(10.5,12.5){\circle*{1}} \put(10.5,21.5){\circle*{1}}\put(11.5,2.5){\circle*{1}} \put(11.5,12.5){\circle*{1}}\put(11.5,21.5){\circle*{1}} \put(12.5,2.5){\circle*{1}}\put(12.5,12.5){\circle*{1}} \put(12.5,21.5){\circle*{1}}\put(13.5,2.5){\circle*{1}} \put(13.5,12.5){\circle*{1}}\put(13.5,21.5){\circle*{1}} \put(14.5,2.5){\circle*{1}}\put(14.5,12.5){\circle*{1}} \put(14.5,21.5){\circle*{1}}\put(15.5,2.5){\circle*{1}} \put(15.5,12.5){\circle*{1}}\put(15.5,21.5){\circle*{1}} \put(16.5,2.5){\circle*{1}}\put(16.5,12.5){\circle*{1}} \put(16.5,21.5){\circle*{1}}\put(17.5,2.5){\circle*{1}} \put(17.5,12.5){\circle*{1}}\put(17.5,13.5){\circle*{1}} \put(17.5,21.5){\circle*{1}}\put(18.5,2.5){\circle*{1}} \put(18.5,12.5){\circle*{1}}\put(18.5,13.5){\circle*{1}} \put(18.5,21.5){\circle*{1}}\put(19.5,2.5){\circle*{1}} \put(19.5,12.5){\circle*{1}}\put(19.5,21.5){\circle*{1}} \put(19.5,22.5){\circle*{1}}\put(20.5,2.5){\circle*{1}} \put(20.5,21.5){\circle*{1}}\put(20.5,22.5){\circle*{1}} \put(21.5,2.5){\circle*{1}}\put(21.5,3.5){\circle*{1}} \put(21.5,21.5){\circle*{1}}\put(22.5,2.5){\circle*{1}} \put(22.5,3.5){\circle*{1}}\put(23.5,2.5){\circle*{1}} \end{picture}} \end{picture} \end{center} The japanese characters on the right are harder to read than the ones on the left. This problem is partly alleviated if one uses vertically, characters with minimized height that have been created for horizontal use. As discussed before, the vertical distance between such characters and their horizontal baseline is respected. This space could occasionally act as breathing space if such horizontal characters were to be used vertically. But this is nevertheless not satisfactory since an incomplete and unnatural solution. The only way to avoid this problem altogether is to use fixed height characters when writing japanese vertically, just as was done in the left column. The conclusion seems clear. If you intend to use your \JemTeX\ fonts vertically with some vertical writing style unknown to me, you should definitely create fixed width and fixed height fonts. This is the only natural choice available. If you will use your fonts only horizontally, then you probably want minimized width fonts. Personally, I also minimized their height since the resulting fonts are slightly smaller in size. \label{positioning} The second topic I would like to discuss here is relevant primarily for horizontal writing. Given intermixed roman and japanese characters, how should they relate to one another. More precisely, how tall should japanese characters be with respect to capital roman ones, and what vertical relationship should they have with their horizontal baseline. It is a fact that most japanese characters are far more complex than any given roman one. Therefore, japanese character should be relatively big. On the other hand, tall centered japanese characters will lie lower on the horizontal baseline than capital roman characters do, and will extend vertically more than capital roman ones do. Consequently, the reader's eyes might have to go up and down as they look over the text horizontally. A compromise is clearly called for. The first writing style considered here will be referred to as a {\em dictionary\/} style since usually used in japanese dictionaries. In this style, japanese characters are substantially taller than capital roman ones. This makes it possible to use small japanese characters along with even smaller roman ones to save space while maintaining readability. The japanese characters also lie quite low on the horizontal baseline and extend vertically exactly the same as capital roman characters do. Take a close look at your favorite japanese dictionary. I will refer to a more conventional japanese font as a {\em standard\/} style. In this one, the japanese characters are still taller than capital roman ones, but by a smaller amount than before. The japanese characters lie a little bit lower on the horizontal baseline than capital roman characters do, and also extend a little bit more vertically than capital roman ones do. They are vertically centered as well as possible with respect to capital roman letter. Many users of \JemTeX\ requested such a font style. Here again, you will have to decide which style you prefer. In the first two releases of \JemTeX, I used my japanese dictionaries to derive ideal font characteristics. Since then, numerous people taught me that dictionary fonts are quite specialized. Chances are you will want to use the standard style. Personally, I am now permanently switching to it. \subsection{The {\tt JIS2MF} Code Generator} \label{thejis2mfcodegenerator} Given a bitmap, my program \verb"JIS2MF" can construct an equivalent continuous character and generate \MFT\ code for it. The \MFT\ program can then use this code to generate a standard \TeX\ font. You have been supplied with the source and the compressed compiled version of this Pascal program. Note that the file \verb"JIS24" should be available in the current directory to run \verb"JIS2MF". This fairly big file contains all the bitmaps making up the JIS~24 dot font. The first practical problem is to decide on font names and their content. Not everybody is running newer versions of \TeX\ and its drivers, allowing for 256~characters in a font. This includes me! Therefore, I put only 128~characters in my fonts. Unfortunately, this implies that I cannot use the same scheme as J\TeX\ since the latter uses 256~characters per font. However, I keep my new standard simple by organizing characters sequentially. I also leave character~0 of the first font empty so that character~$x$ of the first font corresponds to bitmap~$x$ of the JIS~24 dot font. \TeX\ does not allow numbers in font names. Therefore, the names \verb"kanji00" all the way to \verb"kanji60" are not possible. Table~\ref{thejemtexfonts} lists the names I am using. \begin{table}[htb] \begin{center} \begin{footnotesize} \begin{tabular}{cccccccc} \verb"kanjiaa" & \verb"kanjiab" & \verb"kanjiac" & \verb"kanjiad" & \verb"kanjiae" & \verb"kanjiaf" & \verb"kanjiag" & \verb"kanjiah" \\ $\vdots$ & $\vdots$ & $\vdots$ & $\vdots$ & $\vdots$ & $\vdots$ & $\vdots$ & $\vdots$ \\ \verb"kanjiga" & \verb"kanjigb" & \verb"kanjigc" & \verb"kanjigd" & \verb"kanjige" & \verb"kanjigf" & \verb"kanjigg" & \verb"kanjigh" \\ \verb"kanjiha" & \verb"kanjihb" & \verb"kanjihc" & \verb"kanjihd" & \verb"kanjihe" \end{tabular} \end{footnotesize} \end{center} \caption{The \JemTeX\ Fonts.} \label{thejemtexfonts} \end{table} \begin{table}[htb] \begin{center} \begin{minipage}{\textwidth} \begin{small} \begin{tabbing} \verb"kanjiaa": Beginning of common english and japanese characters. \\ \verb"kanjiae": Most foreign characters. \\ \verb"kanjiaf": Beginning of most extended characters. \\ \verb"kanjiba": First of three empty fonts. \\ \verb"kanjibd": Beginning of level~1 kanjis. \\ \verb"kanjiec": Transition between level~1 and level~2 kanjis. \\ \verb"kanjihe": End of level~2 kanjis. \end{tabbing} \end{small} \end{minipage} \end{center} \caption{Description of the \JemTeX\ Fonts.} \label{descriptionofthejemtexfonts} \end{table} Several users complained about the time necessary to generate these fonts, especially on the original 4.77~MHz IBM-PC. To help them decide which \JemTeX\ fonts they are likely to need, Table~\ref{descriptionofthejemtexfonts} contains a brief description of all of them. I found through daily use that I almost never use level~2 fonts. However, a typical 4~page document uses every level~1 font. The last remaining preliminary detail is the question of bitmap numbering. The bitmaps in \verb"JIS24" are numbered consecutively from~1 to~7806. The first bitmap is empty, since it is the japanese space character. Many other characters in the \JemTeX\ extended JIS~24 dot font are also left empty. \verb"JIS2MF" ignores such characters altogether and will leave an undefined character when it encounters one. This can be quite handy for somebody wishing to create fonts using some other standard, like J\TeX. Suppose you wish to leave some characters undefined in the font you are currently building. By specifying bitmap~1 at the right places, the corresponding characters will be left undefined. My utility \verb"JIS2MF" requires the following information to operate: \begin{description} \item[Font Name:] The name of the font you are creating. \verb"JIS2MF" will add for you the extension \verb".mf", so do not specify it. The program also acts differently depending on whether or not the font name you supply is a \JemTeX\ font name, like \verb"kanjidf". \item[Writing Style:] The characteristics of your font, essentially fixed versus proportional dimensions and dictionary versus standard positioning of the japanese characters. \item[Bitmap Numbers:] The number of all the bitmaps making up the current font. Specifying bitmap~0 terminates the process. \end{description} \begin{table}[htb] \begin{center} \begin{tabular}{l|cccc} {\tt JIS2MF} & Command Line & Font & Writing & Bitmap \\ Mode & Parameters & Name & Style & Numbers \\ \hline Manual & $\times$ & $\surd$ & $\surd$ & $\surd$ \\ Semi-Automatic & $\surd$ & (other) & Optional & $\surd$ \\ Automatic & $\surd$ & (\JemTeX) & Optional & $\times$ \\ Batch & $\surd$ & $\times$ & Optional & $\times$ \end{tabular} \end{center} \caption{The {\tt JIS2MF} Modes.} \label{thejis2mfmodes} \end{table} How much and what information you must supply depends on which mode \verb"JIS2MF" is in when you run it. Table~\ref{thejis2mfmodes} shows all the modes currently available. If you simply start \verb"JIS2MF" without any command line information, it will run in manual mode where you must answer questions interactively throughout the operation. In Table~\ref{thejis2mfmodes}, a $\surd$ indicates information that will be required of you interactively. A $\times$ indicates information irrelevant, or that you will not be asked for interactively. The other three more advanced modes can only be accessed by specifying some additional command line information. First, you can specify on the command line the name of the font to be built. For example, here is how I would generate the first \JemTeX\ font: \begin{quote}%Don't put spaces after the next line! \begin{verbatim} JIS2MF kanjiaa \end{verbatim} \end{quote} You can also add to such a command some \verb"JIS2MF" parameters. These always begin with a \verb"/" or a \verb"-", and any combination or small and capital letters is acceptable. For the last three modes listed in Table~\ref{thejis2mfmodes}, proportional width, proportional height, and standard positioning are assumed as default writing styles. However, you may override or confirm any of these default values with the appropriate command line parameter. The recognized ones are listed in Tables~\ref{widthparameters}, \ref{heightparameters}, and~\ref{positioningparameters}. \vspace*{\fill} \begin{table}[htb] \begin{center} \begin{tabular}{ll} \mbox{$\left.\parbox{4.6cm}{% \verb"/FixedWidth" \\ \verb"/FixedX" \\ \verb"/NoProportionalWidth" \\ \verb"/NoProportionalX"}\right\}$} & Fixed width. \\[8mm] \mbox{$\left.\parbox{4.6cm}{% \verb"/NoFixedWidth" \\ \verb"/NoFixedX" \\ \verb"/ProportionalWidth" \\ \verb"/ProportionalX"}\right\}$} & Minimized width. \end{tabular} \end{center} \caption{Width Parameters.} \label{widthparameters} \end{table} \vspace*{\fill} \newpage %improve a bad page break \begin{table}[htb] \begin{center} \begin{tabular}{ll} \mbox{$\left.\parbox{4.6cm}{% \verb"/FixedHeight" \\ \verb"/FixedY" \\ \verb"/NoProportionalHeight" \\ \verb"/NoProportionalY"}\right\}$} & Fixed height. \\[8mm] \mbox{$\left.\parbox{4.6cm}{% \verb"/NoFixedHeight" \\ \verb"/NoFixedY" \\ \verb"/ProportionalHeight" \\ \verb"/ProportionalY"}\right\}$} & Minimized height. \end{tabular} \end{center} \caption{Height Parameters.} \label{heightparameters} \begin{center} \begin{tabular}{ll} \verb"/Standard" & Standard positioning. \\ \verb"/Dictionary" & Dictionary positioning. \end{tabular} \end{center} \caption{Positioning Parameters.} \label{positioningparameters} \end{table} Here is how I would generate a \JemTeX\ font to be used vertically: \begin{quote}%Don't put spaces after the next line! \begin{verbatim} JIS2MF kanjiaa /FixedWidth /FixedHeight \end{verbatim} \end{quote} In the last two examples, since the font names specified are \JemTeX\ font names, \verb"JIS2MF" supplies all the bitmap numbers for you; that's the automatic mode. If the font name is not a \JemTeX\ one, then you are asked interactively for the bitmap numbers; that's the semi-automatic mode. If you plan on using a lot \verb"JIS2MF" semi-automatically, you may find piping advantageous. \label{batch} The remaining mode is the batch mode. As its name implies, it is designed for people using batch files. To trigger this mode, use the \verb"/batch" command line parameter. In this mode, \verb"JIS2MF" looks in the current directory to determine the latest \JemTeX\ font generated. It then generates the next one, if possible. There are two ways of using this feature. The simplest one is to generate the \MFT\ code for all the \JemTeX\ fonts. To do so, create and execute the following \verb"SIMPLE.BAT" batch file: \begin{quote}%Don't put spaces after the next line! \begin{verbatim} JIS2MF /NoFixedWidth /NoFixedHeight /Standard /Batch IF NOT ERRORLEVEL 1 SIMPLE \end{verbatim} \end{quote} In this example, the code for the font \verb"kanjiaa" is first created. If all went well, \verb"SIMPLE" executes again. It finds the file \verb"kanjiaa.mf" in the current directory and therefore generates \verb"kanjiab.mf". Eventually, the code for the font \verb"kanjihe" will be produced. When called once more, \verb"JIS2MF" realizes that there is no such thing as a \JemTeX\ font \verb"kanjihf" and stops with an error. The current batch file \verb"SIMPLE" then terminates. Although this procedure is correct, it also requires 36~Mb of disk space! To avoid this, I use a more involved procedure. Here is the batch file \verb"COMPLEX.BAT": \begin{quote}%Don't put spaces after the next line! \begin{verbatim} JIS2MF /NoFixedWidth /NoFixedHeight /Standard /Batch IF ERRORLEVEL 1 GOTO TERMINATE FOR %%1 IN (kanji??.mf) DO CALL METAFONT %%1 ERASE kanji??.mf COMPLEX :TERMINATE \end{verbatim} \end{quote} As in the previous example, \verb"JIS2MF" first creates the file \verb"kanjiaa.mf". The batch file \verb"METAFONT.BAT" is then called with the parameter \verb"kanjiaa.mf". \MFT\ is to be discussed in Subsection~\ref{runningmetafont}, but suffice to say that the files \verb"kanjiaa.tfm" and \verb"kanjiaa.pk" are created by the subroutine \verb"METAFONT". To save disk space, the file \verb"kanjiaa.mf" is then deleted. Finally, this cycle starts all over again. This procedure works fine because \verb"JIS2MF" looks for \verb"*.mf" {\em and\/} \verb"*.tfm" files when trying to decide which font should be handled next. \subsection{Running METAFONT} \label{runningmetafont} The \MFT\ program comes in two versions; a small one with a 64~Kb work space, and a big one with a 256~Kb work space. Although the big version is more capable, the small one is preferred whenever possible since it runs faster. Here is a list of the \emTeX\ files necessary for the small 80286 version: \begin{quote}%Don't put spaces after the next line! \begin{verbatim} MF EXE 197840 8-04-90 10:29p MF POO 23028 8-04-90 9:42p CM BAS 107412 9-19-90 11:13a \end{verbatim} \end{quote} \newpage %improve a bad page break The files for the big 80286 version are: \begin{quote}%Don't put spaces after the next line! \begin{verbatim} MF EXE 238996 8-04-90 11:15p MF POO 23028 8-04-90 10:32p CM BAS 215128 9-19-90 11:13a \end{verbatim} \end{quote} The program to compress the forthcoming fonts is: \begin{quote}%Don't put spaces after the next line! \begin{verbatim} GFTOPK EXE 52825 9-15-90 1:13a \end{verbatim} \end{quote} Finally, you also need a small file, describing the characteristics of the device for which the fonts are intended. I use the file \verb"epsonfx.mf", which is given below. Several such files are included in the file \verb"local.mf" supplied with \emTeX, and there are small libraries of them in \TeX\ circles. \begin{quote}%Don't put spaces after the next line! \begin{verbatim} mode_def epsonfx = % Epson FX-80 (240x216) proofing:=0; % no, we're not making proofs fontmaking:=1; % yes, we are making a font tracingtitles:=0; % no, don't show titles in the log pixels_per_inch:=240; % 240 dots/inch horizontally blacker:=0; % don't make the pens any blacker fillin:=0; % and don't compensate for fillin o_correction:=.2; % but suppress most overshoots aspect_ratio:=9/10; % 216 dots/inch vertically enddef; \end{verbatim} \end{quote} Font sizes are measured in magsteps. Typical magsteps are~$0.0$, $0.5$, $1.0$, $2.0$, $3.0$, $4.0$, and~$5.0$. I find that most kanjis look acceptable on my \mbox{9-pin} printer starting at magstep~$2.0$, and all kanjis are acceptable starting at magstep~$3.0$. Hiraganas and katakanas are fairly simple characters, and they look good at any magsteps. Table~\ref{12ptfontsizes} on page~\pageref{12ptfontsizes} lists common font sizes. \label{mftproof} You can run big \MFT\ in proof mode where each character is displayed graphically, but no font useful for us is created. The command I use is: \begin{quote}%Don't put spaces after the next line! \begin{verbatim} MF &cm kanjiaa >NUL: \end{verbatim} \end{quote} \newpage %improve a bad page break \label{mftstandard} You can run small \MFT\ in standard mode, which will generate usable fonts. Here are the commands to create \verb"kanjiaa.tfm" and \verb"kanjiaa.pk": \begin{quote} \begin{small}%Don't put spaces after the next line! \begin{verbatim} MF &cm \mode:=epsonfx; \mag:=magstep(0.0); \input kanjiaa.mf GFTOPK kanjiaa.240 \end{verbatim} \end{small} \end{quote} The file name extension \verb".240" refers to the resolution of my printer, resolution specified in the file \verb"epsonfx.mf". It may be different in your case. Finally, note that this extension also changes with the magstep used. For magstep~$5.0$, it becomes in my case $240 \times 1.2^{5.0} \approx 597$. Here is my batch file \verb"METAFONT.BAT": \begin{quote} \begin{small}%Don't put spaces after the next line! \begin{verbatim} MF &cm \mode:=epsonfx; \mag:=magstep(5.0); \input %1 FOR %%1 IN (kanji??.597) DO GFTOPK %%1 ERASE kanji??.597 ERASE kanji??.log \end{verbatim} \end{small} \end{quote} \subsection{The METAFONT Code} \label{themetafontcode} In this subsection, I will briefly go over the \MFT\ code produced by my program for a typical standard style font. This code can be crudely divided into four parts: \begin{itemize} \item Initial Header. \item Macro Definitions. \item Character Definitions. \item Final Header. \end{itemize} The header begins with the following command requesting memory usage statistics in the \verb".log" file produced along with each font by \MFT: \begin{quote}%Don't put spaces after the next line! \begin{verbatim} tracingstats:=1; \end{verbatim} \end{quote} In proof mode, \MFT\ displays the characters in graphics mode provided it knows the resolution of your device. I use the following, which you may decide to change according to your hardware: \begin{quote}%Don't put spaces after the next line! \begin{verbatim} screen_cols:=640; %VGA screen_rows:=480; %VGA \end{verbatim} \end{quote} The font design size, a fundamental unit of measurement, and character positioning are then supplied. I use the following for standard \JemTeX\ fonts: \begin{quote}%Don't put spaces after the next line! \begin{verbatim} font_size 10pt#; u#:=12.7/36pt#; body_height#:=23.25u#; desc_depth#:=4.75u#; \end{verbatim} \end{quote} Each underlying bitmap is $24u$~by~$24u$, and an empty border of $2u$ is left around every japanese characters. In a standard style, each character can extend vertically potentially by as much as $23.25u$ above its horizontal baseline, and $4.75u$ below it, for a total of $28u$. Note that these are the biggest values that can occur. In practice, the actual values are supplied for each character when they are defined. For a fixed height font, the actual values are always equal to these extreme values. Finally, the width is handled differently by \MFT\ since only the actual width needs to be specified for each character. At this point, a whole series of parameters is necessary for the Computer Modern base. The minimum set of them is set to~\verb"0pt" whenever possible. I solve the few occurring overflows by setting the right parameters to~\verb"1pt". None of these parameters appears useful since my japanese characters use only very primitive \MFT\ operators. But \MFT\ insists on all its parameters to be set anyway. \MFT\ is then initialized with: \begin{quote}%Don't put spaces after the next line! \begin{verbatim} mode_setup; font_setup; \end{verbatim} \end{quote} The macros to be used in drawing the characters follow. Each dot making up the current bitmap lies in a square which I refer to by its lower left $z=(x,y)$ coordinates. I declare that variable $z$ with: \begin{quote}%Don't put spaces after the next line! \begin{verbatim} pair z; \end{verbatim} \end{quote} A number of macros to draw squares, triangles, reverse triangles, and quarter circles are then included. All these have only one parameter; $z$. They are illustrated in Figures~\ref{shortpatches} and~\ref{longpatches}. \newpage %improve a bad page break \begin{figure}[htb] \begin{center} \setlength{\unitlength}{0.38pt} \begin{picture}(900,900) \put(0,720){% \begin{picture}(180,180) \put(0,0){\dashbox{5}(180,180){}} \put(0,90){\framebox(90,90){}} \put(0,90){\makebox(90,90){sul}} \end{picture}} \put(240,720){% \begin{picture}(180,180) \put(0,0){\dashbox{5}(180,180){}} \put(90,90){\framebox(90,90){}} \put(90,90){\makebox(90,90){sur}} \end{picture}} \put(480,720){% \begin{picture}(180,180) \put(0,0){\dashbox{5}(180,180){}} \put(90,0){\framebox(90,90){}} \put(90,0){\makebox(90,90){sbr}} \end{picture}} \put(720,720){% \begin{picture}(180,180) \put(0,0){\dashbox{5}(180,180){}} \put(0,0){\framebox(90,90){}} \put(0,0){\makebox(90,90){sbl}} \end{picture}} \put(0,480){% \begin{picture}(180,180) \put(0,0){\dashbox{5}(180,180){}} \put(90,90){\line(-1,0){90}} \put(90,90){\line(0,1){90}} \put(90.0,180.0){\circle*{1}}\put(88.7,180.0){\circle*{1}} \put(87.5,180.0){\circle*{1}}\put(86.2,179.9){\circle*{1}} \put(84.9,179.9){\circle*{1}}\put(83.6,179.8){\circle*{1}} \put(82.4,179.7){\circle*{1}}\put(81.1,179.6){\circle*{1}} \put(79.8,179.4){\circle*{1}}\put(78.5,179.3){\circle*{1}} \put(77.3,179.1){\circle*{1}}\put(76.0,178.9){\circle*{1}} \put(74.7,178.7){\circle*{1}}\put(73.5,178.5){\circle*{1}} \put(72.2,178.2){\circle*{1}}\put(70.9,178.0){\circle*{1}} \put(69.6,177.7){\circle*{1}}\put(68.4,177.4){\circle*{1}} \put(67.1,177.0){\circle*{1}}\put(65.8,176.7){\circle*{1}} \put(64.5,176.3){\circle*{1}}\put(63.3,175.9){\circle*{1}} \put(62.0,175.5){\circle*{1}}\put(60.7,175.1){\circle*{1}} \put(59.5,174.7){\circle*{1}}\put(58.2,174.2){\circle*{1}} \put(56.9,173.7){\circle*{1}}\put(55.6,173.2){\circle*{1}} \put(54.4,172.6){\circle*{1}}\put(53.1,172.1){\circle*{1}} \put(51.8,171.5){\circle*{1}}\put(50.5,170.9){\circle*{1}} \put(49.3,170.3){\circle*{1}}\put(48.0,169.6){\circle*{1}} \put(46.7,168.9){\circle*{1}}\put(45.5,168.2){\circle*{1}} \put(44.2,167.5){\circle*{1}}\put(42.9,166.7){\circle*{1}} \put(41.6,165.9){\circle*{1}}\put(40.4,165.1){\circle*{1}} \put(39.1,164.2){\circle*{1}}\put(37.8,163.3){\circle*{1}} \put(36.5,162.4){\circle*{1}}\put(35.3,161.4){\circle*{1}} \put(34.0,160.5){\circle*{1}}\put(32.7,159.4){\circle*{1}} \put(31.5,158.4){\circle*{1}}\put(30.2,157.2){\circle*{1}} \put(28.9,156.1){\circle*{1}}\put(27.6,154.9){\circle*{1}} \put(26.4,153.6){\circle*{1}}\put(0.0,90.0){\circle*{1}} \put(0.0,91.3){\circle*{1}}\put(0.0,92.5){\circle*{1}} \put(0.1,93.8){\circle*{1}}\put(0.1,95.1){\circle*{1}} \put(0.2,96.4){\circle*{1}}\put(0.3,97.6){\circle*{1}} \put(0.4,98.9){\circle*{1}}\put(0.6,100.2){\circle*{1}} \put(0.7,101.5){\circle*{1}}\put(0.9,102.7){\circle*{1}} \put(1.1,104.0){\circle*{1}}\put(1.3,105.3){\circle*{1}} \put(1.5,106.5){\circle*{1}}\put(1.8,107.8){\circle*{1}} \put(2.0,109.1){\circle*{1}}\put(2.3,110.4){\circle*{1}} \put(2.6,111.6){\circle*{1}}\put(3.0,112.9){\circle*{1}} \put(3.3,114.2){\circle*{1}}\put(3.7,115.5){\circle*{1}} \put(4.1,116.7){\circle*{1}}\put(4.5,118.0){\circle*{1}} \put(4.9,119.3){\circle*{1}}\put(5.3,120.5){\circle*{1}} \put(5.8,121.8){\circle*{1}}\put(6.3,123.1){\circle*{1}} \put(6.8,124.4){\circle*{1}}\put(7.4,125.6){\circle*{1}} \put(7.9,126.9){\circle*{1}}\put(8.5,128.2){\circle*{1}} \put(9.1,129.5){\circle*{1}}\put(9.7,130.7){\circle*{1}} \put(10.4,132.0){\circle*{1}}\put(11.1,133.3){\circle*{1}} \put(11.8,134.5){\circle*{1}}\put(12.5,135.8){\circle*{1}} \put(13.3,137.1){\circle*{1}}\put(14.1,138.4){\circle*{1}} \put(14.9,139.6){\circle*{1}}\put(15.8,140.9){\circle*{1}} \put(16.7,142.2){\circle*{1}}\put(17.6,143.5){\circle*{1}} \put(18.6,144.7){\circle*{1}}\put(19.5,146.0){\circle*{1}} \put(20.6,147.3){\circle*{1}}\put(21.6,148.5){\circle*{1}} \put(22.8,149.8){\circle*{1}}\put(23.9,151.1){\circle*{1}} \put(25.1,152.4){\circle*{1}} \put(30,90){\makebox(60,60){cul}} \end{picture}} \put(240,480){% \begin{picture}(180,180) \put(0,0){\dashbox{5}(180,180){}} \put(90,90){\line(1,0){90}} \put(90,90){\line(0,1){90}} \put(90.0,180.0){\circle*{1}}\put(91.3,180.0){\circle*{1}} \put(92.5,180.0){\circle*{1}}\put(93.8,179.9){\circle*{1}} \put(95.1,179.9){\circle*{1}}\put(96.4,179.8){\circle*{1}} \put(97.6,179.7){\circle*{1}}\put(98.9,179.6){\circle*{1}} \put(100.2,179.4){\circle*{1}}\put(101.5,179.3){\circle*{1}} \put(102.7,179.1){\circle*{1}}\put(104.0,178.9){\circle*{1}} \put(105.3,178.7){\circle*{1}}\put(106.5,178.5){\circle*{1}} \put(107.8,178.2){\circle*{1}}\put(109.1,178.0){\circle*{1}} \put(110.4,177.7){\circle*{1}}\put(111.6,177.4){\circle*{1}} \put(112.9,177.0){\circle*{1}}\put(114.2,176.7){\circle*{1}} \put(115.5,176.3){\circle*{1}}\put(116.7,175.9){\circle*{1}} \put(118.0,175.5){\circle*{1}}\put(119.3,175.1){\circle*{1}} \put(120.5,174.7){\circle*{1}}\put(121.8,174.2){\circle*{1}} \put(123.1,173.7){\circle*{1}}\put(124.4,173.2){\circle*{1}} \put(125.6,172.6){\circle*{1}}\put(126.9,172.1){\circle*{1}} \put(128.2,171.5){\circle*{1}}\put(129.5,170.9){\circle*{1}} \put(130.7,170.3){\circle*{1}}\put(132.0,169.6){\circle*{1}} \put(133.3,168.9){\circle*{1}}\put(134.5,168.2){\circle*{1}} \put(135.8,167.5){\circle*{1}}\put(137.1,166.7){\circle*{1}} \put(138.4,165.9){\circle*{1}}\put(139.6,165.1){\circle*{1}} \put(140.9,164.2){\circle*{1}}\put(142.2,163.3){\circle*{1}} \put(143.5,162.4){\circle*{1}}\put(144.7,161.4){\circle*{1}} \put(146.0,160.5){\circle*{1}}\put(147.3,159.4){\circle*{1}} \put(148.5,158.4){\circle*{1}}\put(149.8,157.2){\circle*{1}} \put(151.1,156.1){\circle*{1}}\put(152.4,154.9){\circle*{1}} \put(153.6,153.6){\circle*{1}}\put(180.0,90.0){\circle*{1}} \put(180.0,91.3){\circle*{1}}\put(180.0,92.5){\circle*{1}} \put(179.9,93.8){\circle*{1}}\put(179.9,95.1){\circle*{1}} \put(179.8,96.4){\circle*{1}}\put(179.7,97.6){\circle*{1}} \put(179.6,98.9){\circle*{1}}\put(179.4,100.2){\circle*{1}} \put(179.3,101.5){\circle*{1}}\put(179.1,102.7){\circle*{1}} \put(178.9,104.0){\circle*{1}}\put(178.7,105.3){\circle*{1}} \put(178.5,106.5){\circle*{1}}\put(178.2,107.8){\circle*{1}} \put(178.0,109.1){\circle*{1}}\put(177.7,110.4){\circle*{1}} \put(177.4,111.6){\circle*{1}}\put(177.0,112.9){\circle*{1}} \put(176.7,114.2){\circle*{1}}\put(176.3,115.5){\circle*{1}} \put(175.9,116.7){\circle*{1}}\put(175.5,118.0){\circle*{1}} \put(175.1,119.3){\circle*{1}}\put(174.7,120.5){\circle*{1}} \put(174.2,121.8){\circle*{1}}\put(173.7,123.1){\circle*{1}} \put(173.2,124.4){\circle*{1}}\put(172.6,125.6){\circle*{1}} \put(172.1,126.9){\circle*{1}}\put(171.5,128.2){\circle*{1}} \put(170.9,129.5){\circle*{1}}\put(170.3,130.7){\circle*{1}} \put(169.6,132.0){\circle*{1}}\put(168.9,133.3){\circle*{1}} \put(168.2,134.5){\circle*{1}}\put(167.5,135.8){\circle*{1}} \put(166.7,137.1){\circle*{1}}\put(165.9,138.4){\circle*{1}} \put(165.1,139.6){\circle*{1}}\put(164.2,140.9){\circle*{1}} \put(163.3,142.2){\circle*{1}}\put(162.4,143.5){\circle*{1}} \put(161.4,144.7){\circle*{1}}\put(160.5,146.0){\circle*{1}} \put(159.4,147.3){\circle*{1}}\put(158.4,148.5){\circle*{1}} \put(157.2,149.8){\circle*{1}}\put(156.1,151.1){\circle*{1}} \put(154.9,152.4){\circle*{1}} \put(90,90){\makebox(60,60){cur}} \end{picture}} \put(480,480){% \begin{picture}(180,180) \put(0,0){\dashbox{5}(180,180){}} \put(90,90){\line(1,0){90}} \put(90,90){\line(0,-1){90}} \put(90.0,0.0){\circle*{1}}\put(91.3,0.0){\circle*{1}} \put(92.5,0.0){\circle*{1}}\put(93.8,0.1){\circle*{1}} \put(95.1,0.1){\circle*{1}}\put(96.4,0.2){\circle*{1}} \put(97.6,0.3){\circle*{1}}\put(98.9,0.4){\circle*{1}} \put(100.2,0.6){\circle*{1}}\put(101.5,0.7){\circle*{1}} \put(102.7,0.9){\circle*{1}}\put(104.0,1.1){\circle*{1}} \put(105.3,1.3){\circle*{1}}\put(106.5,1.5){\circle*{1}} \put(107.8,1.8){\circle*{1}}\put(109.1,2.0){\circle*{1}} \put(110.4,2.3){\circle*{1}}\put(111.6,2.6){\circle*{1}} \put(112.9,3.0){\circle*{1}}\put(114.2,3.3){\circle*{1}} \put(115.5,3.7){\circle*{1}}\put(116.7,4.1){\circle*{1}} \put(118.0,4.5){\circle*{1}}\put(119.3,4.9){\circle*{1}} \put(120.5,5.3){\circle*{1}}\put(121.8,5.8){\circle*{1}} \put(123.1,6.3){\circle*{1}}\put(124.4,6.8){\circle*{1}} \put(125.6,7.4){\circle*{1}}\put(126.9,7.9){\circle*{1}} \put(128.2,8.5){\circle*{1}}\put(129.5,9.1){\circle*{1}} \put(130.7,9.7){\circle*{1}}\put(132.0,10.4){\circle*{1}} \put(133.3,11.1){\circle*{1}}\put(134.5,11.8){\circle*{1}} \put(135.8,12.5){\circle*{1}}\put(137.1,13.3){\circle*{1}} \put(138.4,14.1){\circle*{1}}\put(139.6,14.9){\circle*{1}} \put(140.9,15.8){\circle*{1}}\put(142.2,16.7){\circle*{1}} \put(143.5,17.6){\circle*{1}}\put(144.7,18.6){\circle*{1}} \put(146.0,19.5){\circle*{1}}\put(147.3,20.6){\circle*{1}} \put(148.5,21.6){\circle*{1}}\put(149.8,22.8){\circle*{1}} \put(151.1,23.9){\circle*{1}}\put(152.4,25.1){\circle*{1}} \put(153.6,26.4){\circle*{1}}\put(180.0,90.0){\circle*{1}} \put(180.0,88.7){\circle*{1}}\put(180.0,87.5){\circle*{1}} \put(179.9,86.2){\circle*{1}}\put(179.9,84.9){\circle*{1}} \put(179.8,83.6){\circle*{1}}\put(179.7,82.4){\circle*{1}} \put(179.6,81.1){\circle*{1}}\put(179.4,79.8){\circle*{1}} \put(179.3,78.5){\circle*{1}}\put(179.1,77.3){\circle*{1}} \put(178.9,76.0){\circle*{1}}\put(178.7,74.7){\circle*{1}} \put(178.5,73.5){\circle*{1}}\put(178.2,72.2){\circle*{1}} \put(178.0,70.9){\circle*{1}}\put(177.7,69.6){\circle*{1}} \put(177.4,68.4){\circle*{1}}\put(177.0,67.1){\circle*{1}} \put(176.7,65.8){\circle*{1}}\put(176.3,64.5){\circle*{1}} \put(175.9,63.3){\circle*{1}}\put(175.5,62.0){\circle*{1}} \put(175.1,60.7){\circle*{1}}\put(174.7,59.5){\circle*{1}} \put(174.2,58.2){\circle*{1}}\put(173.7,56.9){\circle*{1}} \put(173.2,55.6){\circle*{1}}\put(172.6,54.4){\circle*{1}} \put(172.1,53.1){\circle*{1}}\put(171.5,51.8){\circle*{1}} \put(170.9,50.5){\circle*{1}}\put(170.3,49.3){\circle*{1}} \put(169.6,48.0){\circle*{1}}\put(168.9,46.7){\circle*{1}} \put(168.2,45.5){\circle*{1}}\put(167.5,44.2){\circle*{1}} \put(166.7,42.9){\circle*{1}}\put(165.9,41.6){\circle*{1}} \put(165.1,40.4){\circle*{1}}\put(164.2,39.1){\circle*{1}} \put(163.3,37.8){\circle*{1}}\put(162.4,36.5){\circle*{1}} \put(161.4,35.3){\circle*{1}}\put(160.5,34.0){\circle*{1}} \put(159.4,32.7){\circle*{1}}\put(158.4,31.5){\circle*{1}} \put(157.2,30.2){\circle*{1}}\put(156.1,28.9){\circle*{1}} \put(154.9,27.6){\circle*{1}} \put(90,30){\makebox(60,60){cbr}} \end{picture}} \put(720,480){% \begin{picture}(180,180) \put(0,0){\dashbox{5}(180,180){}} \put(90,90){\line(-1,0){90}} \put(90,90){\line(0,-1){90}} \put(90.0,0.0){\circle*{1}}\put(88.7,0.0){\circle*{1}} \put(87.5,0.0){\circle*{1}}\put(86.2,0.1){\circle*{1}} \put(84.9,0.1){\circle*{1}}\put(83.6,0.2){\circle*{1}} \put(82.4,0.3){\circle*{1}}\put(81.1,0.4){\circle*{1}} \put(79.8,0.6){\circle*{1}}\put(78.5,0.7){\circle*{1}} \put(77.3,0.9){\circle*{1}}\put(76.0,1.1){\circle*{1}} \put(74.7,1.3){\circle*{1}}\put(73.5,1.5){\circle*{1}} \put(72.2,1.8){\circle*{1}}\put(70.9,2.0){\circle*{1}} \put(69.6,2.3){\circle*{1}}\put(68.4,2.6){\circle*{1}} \put(67.1,3.0){\circle*{1}}\put(65.8,3.3){\circle*{1}} \put(64.5,3.7){\circle*{1}}\put(63.3,4.1){\circle*{1}} \put(62.0,4.5){\circle*{1}}\put(60.7,4.9){\circle*{1}} \put(59.5,5.3){\circle*{1}}\put(58.2,5.8){\circle*{1}} \put(56.9,6.3){\circle*{1}}\put(55.6,6.8){\circle*{1}} \put(54.4,7.4){\circle*{1}}\put(53.1,7.9){\circle*{1}} \put(51.8,8.5){\circle*{1}}\put(50.5,9.1){\circle*{1}} \put(49.3,9.7){\circle*{1}}\put(48.0,10.4){\circle*{1}} \put(46.7,11.1){\circle*{1}}\put(45.5,11.8){\circle*{1}} \put(44.2,12.5){\circle*{1}}\put(42.9,13.3){\circle*{1}} \put(41.6,14.1){\circle*{1}}\put(40.4,14.9){\circle*{1}} \put(39.1,15.8){\circle*{1}}\put(37.8,16.7){\circle*{1}} \put(36.5,17.6){\circle*{1}}\put(35.3,18.6){\circle*{1}} \put(34.0,19.5){\circle*{1}}\put(32.7,20.6){\circle*{1}} \put(31.5,21.6){\circle*{1}}\put(30.2,22.8){\circle*{1}} \put(28.9,23.9){\circle*{1}}\put(27.6,25.1){\circle*{1}} \put(26.4,26.4){\circle*{1}}\put(0.0,90.0){\circle*{1}} \put(0.0,88.7){\circle*{1}}\put(0.0,87.5){\circle*{1}} \put(0.1,86.2){\circle*{1}}\put(0.1,84.9){\circle*{1}} \put(0.2,83.6){\circle*{1}}\put(0.3,82.4){\circle*{1}} \put(0.4,81.1){\circle*{1}}\put(0.6,79.8){\circle*{1}} \put(0.7,78.5){\circle*{1}}\put(0.9,77.3){\circle*{1}} \put(1.1,76.0){\circle*{1}}\put(1.3,74.7){\circle*{1}} \put(1.5,73.5){\circle*{1}}\put(1.8,72.2){\circle*{1}} \put(2.0,70.9){\circle*{1}}\put(2.3,69.6){\circle*{1}} \put(2.6,68.4){\circle*{1}}\put(3.0,67.1){\circle*{1}} \put(3.3,65.8){\circle*{1}}\put(3.7,64.5){\circle*{1}} \put(4.1,63.3){\circle*{1}}\put(4.5,62.0){\circle*{1}} \put(4.9,60.7){\circle*{1}}\put(5.3,59.5){\circle*{1}} \put(5.8,58.2){\circle*{1}}\put(6.3,56.9){\circle*{1}} \put(6.8,55.6){\circle*{1}}\put(7.4,54.4){\circle*{1}} \put(7.9,53.1){\circle*{1}}\put(8.5,51.8){\circle*{1}} \put(9.1,50.5){\circle*{1}}\put(9.7,49.3){\circle*{1}} \put(10.4,48.0){\circle*{1}}\put(11.1,46.7){\circle*{1}} \put(11.8,45.5){\circle*{1}}\put(12.5,44.2){\circle*{1}} \put(13.3,42.9){\circle*{1}}\put(14.1,41.6){\circle*{1}} \put(14.9,40.4){\circle*{1}}\put(15.8,39.1){\circle*{1}} \put(16.7,37.8){\circle*{1}}\put(17.6,36.5){\circle*{1}} \put(18.6,35.3){\circle*{1}}\put(19.5,34.0){\circle*{1}} \put(20.6,32.7){\circle*{1}}\put(21.6,31.5){\circle*{1}} \put(22.8,30.2){\circle*{1}}\put(23.9,28.9){\circle*{1}} \put(25.1,27.6){\circle*{1}} \put(30,30){\makebox(60,60){cbl}} \end{picture}} \put(0,240){% \begin{picture}(180,180) \put(0,0){\dashbox{5}(180,180){}} \put(90,90){\line(-1,0){90}} \put(90,90){\line(0,1){90}} \put(0,90){\line(1,1){90}} \put(45,90){\makebox(45,45){tul}} \end{picture}} \put(240,240){% \begin{picture}(180,180) \put(0,0){\dashbox{5}(180,180){}} \put(90,90){\line(1,0){90}} \put(90,90){\line(0,1){90}} \put(90,180){\line(1,-1){90}} \put(90,90){\makebox(45,45){tur}} \end{picture}} \put(480,240){% \begin{picture}(180,180) \put(0,0){\dashbox{5}(180,180){}} \put(90,90){\line(1,0){90}} \put(90,90){\line(0,-1){90}} \put(90,0){\line(1,1){90}} \put(90,45){\makebox(45,45){tbr}} \end{picture}} \put(720,240){% \begin{picture}(180,180) \put(0,0){\dashbox{5}(180,180){}} \put(90,90){\line(-1,0){90}} \put(90,90){\line(0,-1){90}} \put(0,90){\line(1,-1){90}} \put(45,45){\makebox(45,45){tbl}} \end{picture}} \put(0,0){% \begin{picture}(180,180) \put(0,0){\dashbox{5}(180,180){}} \put(0,180){\line(1,0){90}} \put(0,90){\line(0,1){90}} \put(0,90){\line(1,1){90}} \put(0,135){\makebox(45,45){rul}} \end{picture}} \put(240,0){% \begin{picture}(180,180) \put(0,0){\dashbox{5}(180,180){}} \put(90,180){\line(1,0){90}} \put(180,90){\line(0,1){90}} \put(90,180){\line(1,-1){90}} \put(135,135){\makebox(45,45){rur}} \end{picture}} \put(480,0){% \begin{picture}(180,180) \put(0,0){\dashbox{5}(180,180){}} \put(90,0){\line(1,0){90}} \put(180,0){\line(0,1){90}} \put(90,0){\line(1,1){90}} \put(135,0){\makebox(45,45){rbr}} \end{picture}} \put(720,0){% \begin{picture}(180,180) \put(0,0){\dashbox{5}(180,180){}} \put(0,0){\line(1,0){90}} \put(0,0){\line(0,1){90}} \put(0,90){\line(1,-1){90}} \put(0,0){\makebox(45,45){rbl}} \end{picture}} \end{picture} \end{center} \caption{Short Patches.} \label{shortpatches} \end{figure} The definitions of each japanese character follow sequentially. The template for such a definition is: \begin{quote} \tt beginchar(0,\em width \tt\#,\em body\_height \tt\#,\em desc\_depth \tt\#);\\ \verb"normal_adjust_fit(2u#,2u#);"\\ $\vdots$\\ \verb"endchar;" \end{quote} \newpage %improve a bad page break \begin{figure}[htb] \begin{center} \setlength{\unitlength}{0.38pt} \begin{picture}(900,900) \put(0,720){% \begin{picture}(180,180) \put(0,0){\dashbox{5}(180,180){}} \put(0,90){\line(1,0){180}} \put(180,90){\line(0,1){90}} \put(0,90){\line(2,1){180}} \put(90,90){\makebox(90,45){tuul}} \end{picture}} \put(240,720){% \begin{picture}(180,180) \put(0,0){\dashbox{5}(180,180){}} \put(90,0){\line(0,1){180}} \put(0,0){\line(1,0){90}} \put(0,0){\line(1,2){90}} \put(30,0){\makebox(60,60){tull}} \end{picture}} \put(480,720){% \begin{picture}(180,180) \put(0,0){\dashbox{5}(180,180){}} \put(0,90){\line(1,0){180}} \put(0,90){\line(0,1){90}} \put(0,180){\line(2,-1){180}} \put(0,90){\makebox(90,45){tuur}} \end{picture}} \put(720,720){% \begin{picture}(180,180) \put(0,0){\dashbox{5}(180,180){}} \put(90,0){\line(0,1){180}} \put(90,0){\line(1,0){90}} \put(90,180){\line(1,-2){90}} \put(90,0){\makebox(60,60){turr}} \end{picture}} \put(0,480){% \begin{picture}(180,180) \put(0,0){\dashbox{5}(180,180){}} \put(0,90){\line(1,0){180}} \put(0,0){\line(0,1){90}} \put(0,0){\line(2,1){180}} \put(0,45){\makebox(90,45){tbbr}} \end{picture}} \put(240,480){% \begin{picture}(180,180) \put(0,0){\dashbox{5}(180,180){}} \put(90,0){\line(0,1){180}} \put(90,180){\line(1,0){90}} \put(90,0){\line(1,2){90}} \put(90,120){\makebox(60,60){tbrr}} \end{picture}} \put(480,480){% \begin{picture}(180,180) \put(0,0){\dashbox{5}(180,180){}} \put(0,90){\line(1,0){180}} \put(180,0){\line(0,1){90}} \put(0,90){\line(2,-1){180}} \put(90,45){\makebox(90,45){tbbl}} \end{picture}} \put(720,480){% \begin{picture}(180,180) \put(0,0){\dashbox{5}(180,180){}} \put(90,0){\line(0,1){180}} \put(0,180){\line(1,0){90}} \put(0,180){\line(1,-2){90}} \put(30,120){\makebox(60,60){tbll}} \end{picture}} \put(0,240){% \begin{picture}(180,180) \put(0,0){\dashbox{5}(180,180){}} \put(0,0){\line(0,1){180}} \put(0,180){\line(1,0){90}} \put(0,0){\line(1,2){90}} \put(0,120){\makebox(60,60){ruul}} \end{picture}} \put(240,240){% \begin{picture}(180,180) \put(0,0){\dashbox{5}(180,180){}} \put(0,180){\line(1,0){180}} \put(0,90){\line(0,1){90}} \put(0,90){\line(2,1){180}} \put(0,135){\makebox(90,45){rull}} \end{picture}} \put(480,240){% \begin{picture}(180,180) \put(0,0){\dashbox{5}(180,180){}} \put(180,0){\line(0,1){180}} \put(90,180){\line(1,0){90}} \put(90,180){\line(1,-2){90}} \put(120,120){\makebox(60,60){ruur}} \end{picture}} \put(720,240){% \begin{picture}(180,180) \put(0,0){\dashbox{5}(180,180){}} \put(0,180){\line(1,0){180}} \put(180,90){\line(0,1){90}} \put(0,180){\line(2,-1){180}} \put(90,135){\makebox(90,45){rurr}} \end{picture}} \put(0,0){% \begin{picture}(180,180) \put(0,0){\dashbox{5}(180,180){}} \put(180,0){\line(0,1){180}} \put(90,0){\line(1,0){90}} \put(90,0){\line(1,2){90}} \put(120,0){\makebox(60,60){rbbr}} \end{picture}} \put(240,0){% \begin{picture}(180,180) \put(0,0){\dashbox{5}(180,180){}} \put(0,0){\line(1,0){180}} \put(180,0){\line(0,1){90}} \put(0,0){\line(2,1){180}} \put(90,0){\makebox(90,45){rbrr}} \end{picture}} \put(480,0){% \begin{picture}(180,180) \put(0,0){\dashbox{5}(180,180){}} \put(0,0){\line(0,1){180}} \put(0,0){\line(1,0){90}} \put(0,180){\line(1,-2){90}} \put(0,0){\makebox(60,60){rbbl}} \end{picture}} \put(720,0){% \begin{picture}(180,180) \put(0,0){\dashbox{5}(180,180){}} \put(0,0){\line(1,0){180}} \put(0,0){\line(0,1){90}} \put(0,90){\line(2,-1){180}} \put(0,0){\makebox(90,45){rbll}} \end{picture}} \end{picture} \end{center} \caption{Long Patches.} \label{longpatches} \end{figure} All sizes are given in terms of the fundamental unit of measurement $u$. The quantities {\em body\_height\/} and {\em desc\_depth\/} must include the border which is $2u$ thick. However, {\em width\/} does not need to include this border because the statement \verb"normal_adjust_fit" is equivalent to it horizontally. \MFT\ is somewhat more flexible in the horizontal direction by design and intent. The body of a character definition is simply a series of macro calls. Each line contains the macros for a given pixel in the bitmap. Consequently, each line is reasonably short. \newpage %improve a bad page break The \MFT\ code ends with a final header containing a few pieces of information for the \TeX\ Font Metric (\verb".tfm") files. The following are the most interesting items: \begin{quote}%Don't put spaces after the next line! \begin{verbatim} font_normal_space 8u#; font_normal_stretch 4u#; font_normal_shrink 3u#; font_x_height 24u#; %ex font_quad 24u#; %em \end{verbatim} \end{quote} I set the normal inter-word spacing to a third of the maximum width of a character. This seems comparable to the scheme used in several Computer Modern fonts. Stretching and shrinking are set to values also comparable to what is used elsewhere. I set the typical character height and width to the maximum size of a bitmap. \subsection{Algorithm} \label{algorithm} Given a bitmap, it is straightforward to determine its width and height, either fixed or minimized, while making sure that the vertical relationship with the horizontal baseline is respected. The bulk of the problem lies in determining the proper combination of squares, triangles, and quarter circles to be used. This subsection describes an algorithm developed jointly by Mr. Masatoshi Watanabe and me. I find that it produces good enough results for my need. But perhaps somebody will not share my opinion, and in that case, the following will no doubt prove helpful. The current bitmap is read into a 24~by~24 array of boolean variables. In what follows, I will say that a cell is {\em active\/} if the bitmap dictates that a dot should lie in it, otherwise it is {\em inactive}. Each cell is subdivided in four, and each subcell is examined with respect to the neighboring cells. The current algorithm is very local in that only neighboring cells in direct contact with the current cell are examined. A more global algorithm should perform better and that is certainly an area worth investigating for future releases. From now on, I will concentrate on the upper left subcell. The other three subcells are handled in a similar fashion. In the following diagrams, a $\bullet$ indicates an active cell and a $\times$ indicates an inactive cell. Unlabeled neighboring cells are simply irrelevant. The simplest case occurs when the current cell is inactive. Although the center of that cell should remain empty, it is possible to use its border to smooth a nearby painted area. The algorithm always tries to use long shapes first, before falling back to shorter shapes. First, the following cases clearly require that the upper left subcell not be painted: \begin{center} \setlength{\unitlength}{0.4pt} \begin{picture}(660,180) \put(0,0){% \begin{picture}(180,180) \multiput(0,0)(60,0){4}{\dashbox{5}(0,180){}} \multiput(0,0)(0,60){4}{\dashbox{5}(180,0){}} \put(0,0){\makebox(60,60){\Huge$\bullet$}} \put(0,60){\makebox(60,60){\Huge$\bullet$}} \put(0,120){\makebox(60,60){\Huge$\bullet$}} \put(60,0){\makebox(60,60){\Huge$\times$}} \put(60,120){\makebox(60,60){\Huge$\times$}} \put(60,90){\makebox(30,30){\large$\times$}} \end{picture}} \put(240,0){% \begin{picture}(180,180) \multiput(0,0)(60,0){4}{\dashbox{5}(0,180){}} \multiput(0,0)(0,60){4}{\dashbox{5}(180,0){}} \put(0,0){\makebox(60,60){\Huge$\times$}} \put(0,60){\makebox(60,60){\Huge$\times$}} \put(0,120){\makebox(60,60){\Huge$\times$}} \put(60,120){\makebox(60,60){\Huge$\times$}} \put(120,120){\makebox(60,60){\Huge$\times$}} \put(60,90){\makebox(30,30){\large$\times$}} \end{picture}} \put(480,0){% \begin{picture}(180,180) \multiput(0,0)(60,0){4}{\dashbox{5}(0,180){}} \multiput(0,0)(0,60){4}{\dashbox{5}(180,0){}} \put(0,120){\makebox(60,60){\Huge$\bullet$}} \put(60,120){\makebox(60,60){\Huge$\bullet$}} \put(120,120){\makebox(60,60){\Huge$\bullet$}} \put(0,60){\makebox(60,60){\Huge$\times$}} \put(120,60){\makebox(60,60){\Huge$\times$}} \put(60,90){\makebox(30,30){\large$\times$}} \end{picture}} \end{picture} \end{center} These three cases require reverse triangles involving the upper left subcell: \begin{center} \setlength{\unitlength}{0.4pt} \begin{picture}(660,180) \put(0,0){% \begin{picture}(180,180) \multiput(0,0)(60,0){4}{\dashbox{5}(0,180){}} \multiput(0,0)(0,60){4}{\dashbox{5}(180,0){}} \put(0,0){\makebox(60,60){\Huge$\bullet$}} \put(0,60){\makebox(60,60){\Huge$\bullet$}} \put(60,120){\makebox(60,60){\Huge$\bullet$}} \put(120,120){\makebox(60,60){\Huge$\times$}} \put(60,60){\line(0,1){60}} \put(60,120){\line(1,0){30}} \put(60,60){\line(1,2){30}} \end{picture}} \put(240,0){% \begin{picture}(180,180) \multiput(0,0)(60,0){4}{\dashbox{5}(0,180){}} \multiput(0,0)(0,60){4}{\dashbox{5}(180,0){}} \put(120,120){\makebox(60,60){\Huge$\bullet$}} \put(0,60){\makebox(60,60){\Huge$\bullet$}} \put(60,120){\makebox(60,60){\Huge$\bullet$}} \put(0,0){\makebox(60,60){\Huge$\times$}} \put(60,120){\line(1,0){60}} \put(60,90){\line(0,1){30}} \put(60,90){\line(2,1){60}} \end{picture}} \put(480,0){% \begin{picture}(180,180) \multiput(0,0)(60,0){4}{\dashbox{5}(0,180){}} \multiput(0,0)(0,60){4}{\dashbox{5}(180,0){}} \put(0,60){\makebox(60,60){\Huge$\bullet$}} \put(60,120){\makebox(60,60){\Huge$\bullet$}} \put(120,120){\makebox(60,60){\Huge$\times$}} \put(0,0){\makebox(60,60){\Huge$\times$}} \put(60,120){\line(1,0){30}} \put(60,90){\line(0,1){30}} \put(60,90){\line(1,1){30}} \end{picture}} \end{picture} \end{center} There are two possible ways of handling the remaining case: \begin{center} \setlength{\unitlength}{0.4pt} \begin{picture}(420,180) \put(0,0){% \begin{picture}(180,180) \multiput(0,0)(60,0){4}{\dashbox{5}(0,180){}} \multiput(0,0)(0,60){4}{\dashbox{5}(180,0){}} \put(0,0){\makebox(60,60){\Huge$\bullet$}} \put(0,60){\makebox(60,60){\Huge$\bullet$}} \put(60,120){\makebox(60,60){\Huge$\bullet$}} \put(120,120){\makebox(60,60){\Huge$\bullet$}} \put(60,90){\makebox(30,30){\large$\times$}} \end{picture}} \put(240,0){% \begin{picture}(180,180) \multiput(0,0)(60,0){4}{\dashbox{5}(0,180){}} \multiput(0,0)(0,60){4}{\dashbox{5}(180,0){}} \put(0,0){\makebox(60,60){\Huge$\bullet$}} \put(0,60){\makebox(60,60){\Huge$\bullet$}} \put(60,120){\makebox(60,60){\Huge$\bullet$}} \put(120,120){\makebox(60,60){\Huge$\bullet$}} \put(60,120){\line(1,0){30}} \put(60,90){\line(0,1){30}} \put(60,90){\line(1,1){30}} \end{picture}} \end{picture} \end{center} The technique on the left has the advantage of producing clean crossings of $+$ strokes, but experimentation shows that it often yields bad crossings of $\times$ strokes. The technique on the right produces good crossings of $\times$ strokes, but it also generates crossings of $+$ strokes with unnecessarily round corners. I examined both alternatives with \MFT\ in proof mode, and I found that it is preferable to have characters occasionally slightly too smooth, rather than sharp ones occasionally rough. Therefore, the approach on the right is the one used in \verb"JIS2MF". \newpage %improve a bad page break The most complex situation occurs when the center cell is active. Each of its subcells will be filled by a square, a triangle, or a quarter circle. No reverse triangle is used in such instances since I insist that the interior of the cell be filled. As always, long triangles are tried first. The possible four cases involving the upper left subcell are: \begin{center} \setlength{\unitlength}{0.4pt} \begin{picture}(900,180) \put(0,0){% \begin{picture}(180,180) \multiput(0,0)(60,0){4}{\dashbox{5}(0,180){}} \multiput(0,0)(0,60){4}{\dashbox{5}(180,0){}} \put(0,0){\makebox(60,60){\Huge$\bullet$}} \put(120,60){\makebox(60,60){\Huge$\bullet$}} \put(0,60){\makebox(60,60){\Huge$\times$}} \put(0,120){\makebox(60,60){\Huge$\times$}} \put(60,120){\makebox(60,60){\Huge$\times$}} \put(120,120){\makebox(60,60){\Huge$\times$}} \put(60,90){\line(1,0){60}} \put(120,90){\line(0,1){30}} \put(60,90){\line(2,1){60}} \end{picture}} \put(240,0){% \begin{picture}(180,180) \multiput(0,0)(60,0){4}{\dashbox{5}(0,180){}} \multiput(0,0)(0,60){4}{\dashbox{5}(180,0){}} \put(60,0){\makebox(60,60){\Huge$\bullet$}} \put(120,120){\makebox(60,60){\Huge$\bullet$}} \put(0,0){\makebox(60,60){\Huge$\times$}} \put(0,60){\makebox(60,60){\Huge$\times$}} \put(0,120){\makebox(60,60){\Huge$\times$}} \put(60,120){\makebox(60,60){\Huge$\times$}} \put(90,60){\line(0,1){60}} \put(60,60){\line(1,0){30}} \put(60,60){\line(1,2){30}} \end{picture}} \put(480,0){% \begin{picture}(180,180) \multiput(0,0)(60,0){4}{\dashbox{5}(0,180){}} \multiput(0,0)(0,60){4}{\dashbox{5}(180,0){}} \put(0,60){\makebox(60,60){\Huge$\bullet$}} \put(120,0){\makebox(60,60){\Huge$\bullet$}} \put(0,120){\makebox(60,60){\Huge$\times$}} \put(60,120){\makebox(60,60){\Huge$\times$}} \put(120,120){\makebox(60,60){\Huge$\times$}} \put(120,60){\makebox(60,60){\Huge$\times$}} \put(60,90){\line(1,0){60}} \put(60,90){\line(0,1){30}} \put(60,120){\line(2,-1){60}} \end{picture}} \put(720,0){% \begin{picture}(180,180) \multiput(0,0)(60,0){4}{\dashbox{5}(0,180){}} \multiput(0,0)(0,60){4}{\dashbox{5}(180,0){}} \put(120,0){\makebox(60,60){\Huge$\bullet$}} \put(60,120){\makebox(60,60){\Huge$\bullet$}} \put(0,0){\makebox(60,60){\Huge$\times$}} \put(60,0){\makebox(60,60){\Huge$\times$}} \put(0,60){\makebox(60,60){\Huge$\times$}} \put(0,120){\makebox(60,60){\Huge$\times$}} \put(90,60){\line(0,1){60}} \put(60,120){\line(1,0){30}} \put(60,120){\line(1,-2){30}} \end{picture}} \end{picture} \end{center} If none of these cases can be applied, the following three cases are tried out: \begin{center} \setlength{\unitlength}{0.4pt} \begin{picture}(660,180) \put(0,0){% \begin{picture}(180,180) \multiput(0,0)(60,0){4}{\dashbox{5}(0,180){}} \multiput(0,0)(0,60){4}{\dashbox{5}(180,0){}} \put(0,60){\makebox(60,60){\Huge$\bullet$}} \put(60,90){\framebox(30,30){}} \end{picture}} \put(240,0){% \begin{picture}(180,180) \multiput(0,0)(60,0){4}{\dashbox{5}(0,180){}} \multiput(0,0)(0,60){4}{\dashbox{5}(180,0){}} \put(0,120){\makebox(60,60){\Huge$\bullet$}} \put(60,90){\framebox(30,30){}} \end{picture}} \put(480,0){% \begin{picture}(180,180) \multiput(0,0)(60,0){4}{\dashbox{5}(0,180){}} \multiput(0,0)(0,60){4}{\dashbox{5}(180,0){}} \put(60,120){\makebox(60,60){\Huge$\bullet$}} \put(60,90){\framebox(30,30){}} \end{picture}} \end{picture} \end{center} If neither of these is relevant, I always resort to one of these three final cases: \begin{center} \setlength{\unitlength}{0.4pt} \begin{picture}(660,180) \put(0,0){% \begin{picture}(180,180) \multiput(0,0)(60,0){4}{\dashbox{5}(0,180){}} \multiput(0,0)(0,60){4}{\dashbox{5}(180,0){}} \put(0,60){\makebox(60,60){\Huge$\times$}} \put(0,120){\makebox(60,60){\Huge$\times$}} \put(60,120){\makebox(60,60){\Huge$\times$}} \put(120,120){\makebox(60,60){\Huge$\bullet$}} \put(90,90){\line(-1,0){30}} \put(90,90){\line(0,1){30}} \put(60,90){\line(1,1){30}} \end{picture}} \put(240,0){% \begin{picture}(180,180) \multiput(0,0)(60,0){4}{\dashbox{5}(0,180){}} \multiput(0,0)(0,60){4}{\dashbox{5}(180,0){}} \put(0,60){\makebox(60,60){\Huge$\times$}} \put(0,120){\makebox(60,60){\Huge$\times$}} \put(60,120){\makebox(60,60){\Huge$\times$}} \put(0,0){\makebox(60,60){\Huge$\bullet$}} \put(90,90){\line(-1,0){30}} \put(90,90){\line(0,1){30}} \put(60,90){\line(1,1){30}} \end{picture}} \put(480,0){% \begin{picture}(180,180) \multiput(0,0)(60,0){4}{\dashbox{5}(0,180){}} \multiput(0,0)(0,60){4}{\dashbox{5}(180,0){}} \put(0,60){\makebox(60,60){\Huge$\times$}} \put(0,120){\makebox(60,60){\Huge$\times$}} \put(60,120){\makebox(60,60){\Huge$\times$}} \put(0,0){\makebox(60,60){\Huge$\times$}} \put(120,120){\makebox(60,60){\Huge$\times$}} \put(90,90){\line(-1,0){30}} \put(90,90){\line(0,1){30}} \put(90.0,120.0){\circle*{1}}\put(89.3,120.0){\circle*{1}} \put(88.6,120.0){\circle*{1}}\put(87.9,119.9){\circle*{1}} \put(87.2,119.9){\circle*{1}}\put(86.5,119.8){\circle*{1}} \put(85.8,119.7){\circle*{1}}\put(85.1,119.6){\circle*{1}} \put(84.3,119.5){\circle*{1}}\put(83.6,119.3){\circle*{1}} \put(82.9,119.2){\circle*{1}}\put(82.2,119.0){\circle*{1}} \put(81.5,118.8){\circle*{1}}\put(80.8,118.6){\circle*{1}} \put(80.1,118.3){\circle*{1}}\put(79.4,118.1){\circle*{1}} \put(78.7,117.8){\circle*{1}}\put(78.0,117.5){\circle*{1}} \put(77.3,117.2){\circle*{1}}\put(76.6,116.8){\circle*{1}} \put(75.9,116.5){\circle*{1}}\put(75.2,116.1){\circle*{1}} \put(74.4,115.7){\circle*{1}}\put(73.7,115.2){\circle*{1}} \put(73.0,114.7){\circle*{1}}\put(72.3,114.2){\circle*{1}} \put(71.6,113.7){\circle*{1}}\put(70.9,113.1){\circle*{1}} \put(70.2,112.5){\circle*{1}}\put(69.5,111.9){\circle*{1}} \put(68.8,111.2){\circle*{1}}\put(60.0,90.0){\circle*{1}} \put(60.0,90.7){\circle*{1}}\put(60.0,91.4){\circle*{1}} \put(60.1,92.1){\circle*{1}}\put(60.1,92.8){\circle*{1}} \put(60.2,93.5){\circle*{1}}\put(60.3,94.2){\circle*{1}} \put(60.4,94.9){\circle*{1}}\put(60.5,95.7){\circle*{1}} \put(60.7,96.4){\circle*{1}}\put(60.8,97.1){\circle*{1}} \put(61.0,97.8){\circle*{1}}\put(61.2,98.5){\circle*{1}} \put(61.4,99.2){\circle*{1}}\put(61.7,99.9){\circle*{1}} \put(61.9,100.6){\circle*{1}}\put(62.2,101.3){\circle*{1}} \put(62.5,102.0){\circle*{1}}\put(62.8,102.7){\circle*{1}} \put(63.2,103.4){\circle*{1}}\put(63.5,104.1){\circle*{1}} \put(63.9,104.8){\circle*{1}}\put(64.3,105.6){\circle*{1}} \put(64.8,106.3){\circle*{1}}\put(65.3,107.0){\circle*{1}} \put(65.8,107.7){\circle*{1}}\put(66.3,108.4){\circle*{1}} \put(66.9,109.1){\circle*{1}}\put(67.5,109.8){\circle*{1}} \put(68.1,110.5){\circle*{1}} \end{picture}} \end{picture} \end{center} Note that an active cell surrounded by inactive ones is always eventually filled by four quarter circles; the original bitmap pixel remains unchanged. In that case, rather than using four quarter circle macro calls, I use one call to another macro which paints one complete circle. The case of four squares is handled similarly with one big square. These two additional macros complete the collection of painting macros used by \verb"JIS2MF". \newpage %improve a bad page break Figure~\ref{bitmapandcontinuouscharacter} illustrates typical results obtained with this algorithm using bitmap~2512 of the JIS~24 dot font. \begin{figure}[htb] \begin{center} \setlength{\unitlength}{6pt} \begin{picture}(56,24) \put(0,0){% \begin{picture}(25,25)(1,1) \put(1,1){\dashbox{0.25}(24,24){}} \put(1,5){\makebox(1,1){$\bullet$}}\put(1,16){\makebox(1,1){$\bullet$}} \put(1,20){\makebox(1,1){$\bullet$}}\put(2,6){\makebox(1,1){$\bullet$}} \put(2,16){\makebox(1,1){$\bullet$}}\put(2,20){\makebox(1,1){$\bullet$}} \put(3,7){\makebox(1,1){$\bullet$}}\put(3,8){\makebox(1,1){$\bullet$}} \put(3,16){\makebox(1,1){$\bullet$}}\put(3,20){\makebox(1,1){$\bullet$}} \put(4,8){\makebox(1,1){$\bullet$}}\put(4,9){\makebox(1,1){$\bullet$}} \put(4,10){\makebox(1,1){$\bullet$}}\put(4,16){\makebox(1,1){$\bullet$}} \put(4,21){\makebox(1,1){$\bullet$}}\put(5,10){\makebox(1,1){$\bullet$}} \put(5,11){\makebox(1,1){$\bullet$}}\put(5,12){\makebox(1,1){$\bullet$}} \put(5,13){\makebox(1,1){$\bullet$}}\put(5,16){\makebox(1,1){$\bullet$}} \put(5,21){\makebox(1,1){$\bullet$}}\put(6,1){\makebox(1,1){$\bullet$}} \put(6,2){\makebox(1,1){$\bullet$}}\put(6,3){\makebox(1,1){$\bullet$}} \put(6,4){\makebox(1,1){$\bullet$}}\put(6,5){\makebox(1,1){$\bullet$}} \put(6,6){\makebox(1,1){$\bullet$}}\put(6,7){\makebox(1,1){$\bullet$}} \put(6,8){\makebox(1,1){$\bullet$}}\put(6,9){\makebox(1,1){$\bullet$}} \put(6,10){\makebox(1,1){$\bullet$}}\put(6,11){\makebox(1,1){$\bullet$}} \put(6,12){\makebox(1,1){$\bullet$}}\put(6,13){\makebox(1,1){$\bullet$}} \put(6,14){\makebox(1,1){$\bullet$}}\put(6,15){\makebox(1,1){$\bullet$}} \put(6,16){\makebox(1,1){$\bullet$}}\put(6,17){\makebox(1,1){$\bullet$}} \put(6,18){\makebox(1,1){$\bullet$}}\put(6,19){\makebox(1,1){$\bullet$}} \put(6,20){\makebox(1,1){$\bullet$}}\put(6,21){\makebox(1,1){$\bullet$}} \put(7,1){\makebox(1,1){$\bullet$}}\put(7,2){\makebox(1,1){$\bullet$}} \put(7,3){\makebox(1,1){$\bullet$}}\put(7,4){\makebox(1,1){$\bullet$}} \put(7,5){\makebox(1,1){$\bullet$}}\put(7,6){\makebox(1,1){$\bullet$}} \put(7,7){\makebox(1,1){$\bullet$}}\put(7,8){\makebox(1,1){$\bullet$}} \put(7,9){\makebox(1,1){$\bullet$}}\put(7,10){\makebox(1,1){$\bullet$}} \put(7,11){\makebox(1,1){$\bullet$}}\put(7,12){\makebox(1,1){$\bullet$}} \put(7,13){\makebox(1,1){$\bullet$}}\put(7,14){\makebox(1,1){$\bullet$}} \put(7,15){\makebox(1,1){$\bullet$}}\put(7,16){\makebox(1,1){$\bullet$}} \put(7,17){\makebox(1,1){$\bullet$}}\put(7,18){\makebox(1,1){$\bullet$}} \put(7,19){\makebox(1,1){$\bullet$}}\put(7,20){\makebox(1,1){$\bullet$}} \put(7,21){\makebox(1,1){$\bullet$}}\put(7,22){\makebox(1,1){$\bullet$}} \put(8,12){\makebox(1,1){$\bullet$}}\put(8,16){\makebox(1,1){$\bullet$}} \put(8,22){\makebox(1,1){$\bullet$}}\put(9,12){\makebox(1,1){$\bullet$}} \put(9,16){\makebox(1,1){$\bullet$}}\put(9,22){\makebox(1,1){$\bullet$}} \put(9,23){\makebox(1,1){$\bullet$}}\put(10,3){\makebox(1,1){$\bullet$}} \put(10,11){\makebox(1,1){$\bullet$}}\put(10,16){\makebox(1,1){$\bullet$}} \put(10,17){\makebox(1,1){$\bullet$}}\put(10,23){\makebox(1,1){$\bullet$}} \put(10,24){\makebox(1,1){$\bullet$}}\put(11,1){\makebox(1,1){$\bullet$}} \put(11,2){\makebox(1,1){$\bullet$}}\put(11,3){\makebox(1,1){$\bullet$}} \put(11,9){\makebox(1,1){$\bullet$}}\put(11,10){\makebox(1,1){$\bullet$}} \put(11,11){\makebox(1,1){$\bullet$}}\put(11,16){\makebox(1,1){$\bullet$}} \put(11,17){\makebox(1,1){$\bullet$}}\put(11,23){\makebox(1,1){$\bullet$}} \put(11,24){\makebox(1,1){$\bullet$}}\put(12,2){\makebox(1,1){$\bullet$}} \put(12,3){\makebox(1,1){$\bullet$}}\put(12,9){\makebox(1,1){$\bullet$}} \put(12,10){\makebox(1,1){$\bullet$}}\put(12,16){\makebox(1,1){$\bullet$}} \put(12,23){\makebox(1,1){$\bullet$}}\put(13,2){\makebox(1,1){$\bullet$}} \put(13,3){\makebox(1,1){$\bullet$}}\put(14,2){\makebox(1,1){$\bullet$}} \put(14,3){\makebox(1,1){$\bullet$}}\put(14,4){\makebox(1,1){$\bullet$}} \put(14,5){\makebox(1,1){$\bullet$}}\put(15,3){\makebox(1,1){$\bullet$}} \put(15,6){\makebox(1,1){$\bullet$}}\put(15,7){\makebox(1,1){$\bullet$}} \put(15,8){\makebox(1,1){$\bullet$}}\put(15,9){\makebox(1,1){$\bullet$}} \put(16,3){\makebox(1,1){$\bullet$}}\put(16,8){\makebox(1,1){$\bullet$}} \put(16,9){\makebox(1,1){$\bullet$}}\put(16,10){\makebox(1,1){$\bullet$}} \put(16,11){\makebox(1,1){$\bullet$}}\put(16,12){\makebox(1,1){$\bullet$}} \put(16,13){\makebox(1,1){$\bullet$}}\put(16,14){\makebox(1,1){$\bullet$}} \put(16,15){\makebox(1,1){$\bullet$}}\put(16,16){\makebox(1,1){$\bullet$}} \put(17,3){\makebox(1,1){$\bullet$}}\put(17,12){\makebox(1,1){$\bullet$}} \put(17,13){\makebox(1,1){$\bullet$}}\put(17,14){\makebox(1,1){$\bullet$}} \put(17,15){\makebox(1,1){$\bullet$}}\put(17,16){\makebox(1,1){$\bullet$}} \put(17,17){\makebox(1,1){$\bullet$}}\put(17,18){\makebox(1,1){$\bullet$}} \put(17,19){\makebox(1,1){$\bullet$}}\put(17,20){\makebox(1,1){$\bullet$}} \put(17,21){\makebox(1,1){$\bullet$}}\put(17,22){\makebox(1,1){$\bullet$}} \put(17,23){\makebox(1,1){$\bullet$}}\put(17,24){\makebox(1,1){$\bullet$}} \put(18,3){\makebox(1,1){$\bullet$}}\put(18,17){\makebox(1,1){$\bullet$}} \put(18,18){\makebox(1,1){$\bullet$}}\put(18,19){\makebox(1,1){$\bullet$}} \put(18,20){\makebox(1,1){$\bullet$}}\put(18,21){\makebox(1,1){$\bullet$}} \put(18,22){\makebox(1,1){$\bullet$}}\put(18,23){\makebox(1,1){$\bullet$}} \put(19,4){\makebox(1,1){$\bullet$}}\put(19,23){\makebox(1,1){$\bullet$}} \put(20,4){\makebox(1,1){$\bullet$}}\put(20,8){\makebox(1,1){$\bullet$}} \put(21,4){\makebox(1,1){$\bullet$}}\put(21,6){\makebox(1,1){$\bullet$}} \put(21,7){\makebox(1,1){$\bullet$}}\put(22,4){\makebox(1,1){$\bullet$}} \put(22,5){\makebox(1,1){$\bullet$}}\put(22,6){\makebox(1,1){$\bullet$}} \put(23,1){\makebox(1,1){$\bullet$}}\put(23,2){\makebox(1,1){$\bullet$}} \put(23,3){\makebox(1,1){$\bullet$}}\put(23,4){\makebox(1,1){$\bullet$}} \put(23,5){\makebox(1,1){$\bullet$}}\put(24,1){\makebox(1,1){$\bullet$}} \put(24,2){\makebox(1,1){$\bullet$}}\put(24,3){\makebox(1,1){$\bullet$}} \end{picture}} \put(32,0){% \begin{picture}(24,21.25)(0,-2.75) \newsavebox{\sss} \sbox{\sss}{% \begin{picture}(1,1) \put(0,0){\framebox(1,1){}} \end{picture}} \newsavebox{\sul} \sbox{\sul}{% \begin{picture}(1,1) \put(0,0.5){\framebox(0.5,0.5){}} \end{picture}} \newsavebox{\sur} \sbox{\sur}{% \begin{picture}(1,1) \put(0.5,0.5){\framebox(0.5,0.5){}} \end{picture}} \newsavebox{\sbr} \sbox{\sbr}{% \begin{picture}(1,1) \put(0.5,0){\framebox(0.5,0.5){}} \end{picture}} \newsavebox{\sbl} \sbox{\sbl}{% \begin{picture}(1,1) \put(0,0){\framebox(0.5,0.5){}} \end{picture}} \newsavebox{\cul} \sbox{\cul}{% \begin{picture}(1,1) \put(0.5,0.5){\line(-1,0){0.5}} \put(0.5,0.5){\line(0,1){0.5}} \put(0.50,1.00){\circle*{0.05}}\put(0.43,0.99){\circle*{0.05}} \put(0.36,0.98){\circle*{0.05}}\put(0.29,0.95){\circle*{0.05}} \put(0.22,0.91){\circle*{0.05}}\put(0.15,0.85){\circle*{0.05}} \put(0.00,0.50){\circle*{0.05}}\put(0.01,0.57){\circle*{0.05}} \put(0.02,0.64){\circle*{0.05}}\put(0.05,0.71){\circle*{0.05}} \put(0.09,0.78){\circle*{0.05}} \end{picture}} \newsavebox{\cur} \sbox{\cur}{% \begin{picture}(1,1) \put(0.5,0.5){\line(1,0){0.5}} \put(0.5,0.5){\line(0,1){0.5}} \put(0.50,1.00){\circle*{0.05}}\put(0.57,0.99){\circle*{0.05}} \put(0.64,0.98){\circle*{0.05}}\put(0.71,0.95){\circle*{0.05}} \put(0.78,0.91){\circle*{0.05}}\put(0.85,0.85){\circle*{0.05}} \put(1.00,0.50){\circle*{0.05}}\put(0.99,0.57){\circle*{0.05}} \put(0.98,0.64){\circle*{0.05}}\put(0.95,0.71){\circle*{0.05}} \put(0.91,0.78){\circle*{0.05}} \end{picture}} \newsavebox{\cbr} \sbox{\cbr}{% \begin{picture}(1,1) \put(0.5,0.5){\line(1,0){0.5}} \put(0.5,0.5){\line(0,-1){0.5}} \put(0.50,0.00){\circle*{0.05}}\put(0.57,0.01){\circle*{0.05}} \put(0.64,0.02){\circle*{0.05}}\put(0.71,0.05){\circle*{0.05}} \put(0.78,0.09){\circle*{0.05}}\put(0.85,0.15){\circle*{0.05}} \put(1.00,0.50){\circle*{0.05}}\put(0.99,0.43){\circle*{0.05}} \put(0.98,0.36){\circle*{0.05}}\put(0.95,0.29){\circle*{0.05}} \put(0.91,0.22){\circle*{0.05}} \end{picture}} \newsavebox{\cbl} \sbox{\cbl}{% \begin{picture}(1,1) \put(0.5,0.5){\line(-1,0){0.5}} \put(0.5,0.5){\line(0,-1){0.5}} \put(0.50,0.00){\circle*{0.05}}\put(0.43,0.01){\circle*{0.05}} \put(0.36,0.02){\circle*{0.05}}\put(0.29,0.05){\circle*{0.05}} \put(0.22,0.09){\circle*{0.05}}\put(0.15,0.15){\circle*{0.05}} \put(0.00,0.50){\circle*{0.05}}\put(0.01,0.43){\circle*{0.05}} \put(0.02,0.36){\circle*{0.05}}\put(0.05,0.29){\circle*{0.05}} \put(0.09,0.22){\circle*{0.05}} \end{picture}} \newsavebox{\tul} \sbox{\tul}{% \begin{picture}(1,1) \put(0.5,0.5){\line(-1,0){0.5}} \put(0.5,0.5){\line(0,1){0.5}} \multiput(0,0.5)(0.05,0.05){11}{\circle*{0.05}} \end{picture}} \newsavebox{\tur} \sbox{\tur}{% \begin{picture}(1,1) \put(0.5,0.5){\line(1,0){0.5}} \put(0.5,0.5){\line(0,1){0.5}} \put(0.5,1){\line(1,-1){0.5}} \multiput(0.5,1)(0.05,-0.05){11}{\circle*{0.05}} \end{picture}} \newsavebox{\tbr} \sbox{\tbr}{% \begin{picture}(1,1) \put(0.5,0.5){\line(1,0){0.5}} \put(0.5,0.5){\line(0,-1){0.5}} \put(0.5,0){\line(1,1){0.5}} \multiput(0.5,0)(0.05,0.05){11}{\circle*{0.05}} \end{picture}} \newsavebox{\tbl} \sbox{\tbl}{% \begin{picture}(1,1) \put(0.5,0.5){\line(-1,0){0.5}} \put(0.5,0.5){\line(0,-1){0.5}} \put(0,0.5){\line(1,-1){0.5}} \multiput(0,0.5)(0.05,-0.05){11}{\circle*{0.05}} \end{picture}} \newsavebox{\rul} \sbox{\rul}{% \begin{picture}(1,1) \put(0,1){\line(1,0){0.5}} \put(0,0.5){\line(0,1){0.5}} \put(0,0.5){\line(1,1){0.5}} \multiput(0,0.5)(0.05,0.05){11}{\circle*{0.05}} \end{picture}} \newsavebox{\rur} \sbox{\rur}{% \begin{picture}(1,1) \put(0.5,1){\line(1,0){0.5}} \put(1,0.5){\line(0,1){0.5}} \put(0.5,1){\line(1,-1){0.5}} \multiput(0.5,1)(0.05,-0.05){11}{\circle*{0.05}} \end{picture}} \newsavebox{\rbr} \sbox{\rbr}{% \begin{picture}(1,1) \put(0.5,0){\line(1,0){0.5}} \put(1,0){\line(0,1){0.5}} \put(0.5,0){\line(1,1){0.5}} \multiput(0.5,0)(0.05,0.05){11}{\circle*{0.05}} \end{picture}} \newsavebox{\rbl} \sbox{\rbl}{% \begin{picture}(1,1) \put(0,0){\line(1,0){0.5}} \put(0,0){\line(0,1){0.5}} \put(0,0.5){\line(1,-1){0.5}} \multiput(0,0.5)(0.05,-0.05){11}{\circle*{0.05}} \end{picture}} \newsavebox{\tuul} \sbox{\tuul}{% \begin{picture}(1,1) \put(0,0.5){\line(1,0){1}} \put(1,0.5){\line(0,1){0.5}} \multiput(0,0.5)(0.05,0.025){21}{\circle*{0.05}} \end{picture}} \newsavebox{\tuur} \sbox{\tuur}{% \begin{picture}(1,1) \put(0,0.5){\line(1,0){1}} \put(0,0.5){\line(0,1){0.5}} \multiput(0,1)(0.05,-0.025){21}{\circle*{0.05}} \end{picture}} \newsavebox{\tbbl} \sbox{\tbbl}{% \begin{picture}(1,1) \put(0,0.5){\line(1,0){1}} \put(1,0){\line(0,1){0.5}} \multiput(0,0.5)(0.05,-0.025){21}{\circle*{0.05}} \end{picture}} \newsavebox{\tbbr} \sbox{\tbbr}{% \begin{picture}(1,1) \put(0,0.5){\line(1,0){1}} \put(0,0){\line(0,1){0.5}} \multiput(0,0)(0.05,0.025){21}{\circle*{0.05}} \end{picture}} \newsavebox{\tull} \sbox{\tull}{% \begin{picture}(1,1) \put(0.5,0){\line(0,1){1}} \put(0,0){\line(1,0){0.5}} \multiput(0,0)(0.025,0.05){21}{\circle*{0.05}} \end{picture}} \newsavebox{\turr} \sbox{\turr}{% \begin{picture}(1,1) \put(0.5,0){\line(0,1){1}} \put(0.5,0){\line(1,0){0.5}} \multiput(0.5,1)(0.025,-0.05){21}{\circle*{0.05}} \end{picture}} \newsavebox{\tbll} \sbox{\tbll}{% \begin{picture}(1,1) \put(0.5,0){\line(0,1){1}} \put(0,1){\line(1,0){0.5}} \multiput(0,1)(0.025,-0.05){21}{\circle*{0.05}} \end{picture}} \newsavebox{\tbrr} \sbox{\tbrr}{% \begin{picture}(1,1) \put(0.5,0){\line(0,1){1}} \put(0.5,1){\line(1,0){0.5}} \multiput(0.5,0)(0.025,0.05){21}{\circle*{0.05}} \end{picture}} \newsavebox{\ruul} \sbox{\ruul}{% \begin{picture}(1,1) \put(0,1){\line(1,0){0.5}} \put(0,0){\line(0,1){1}} \multiput(0,0)(0.025,0.05){21}{\circle*{0.05}} \end{picture}} \newsavebox{\ruur} \sbox{\ruur}{% \begin{picture}(1,1) \put(0.5,1){\line(1,0){0.5}} \put(1,0){\line(0,1){1}} \multiput(0.5,1)(0.025,-0.05){21}{\circle*{0.05}} \end{picture}} \newsavebox{\rbbl} \sbox{\rbbl}{% \begin{picture}(1,1) \put(0,0){\line(1,0){0.5}} \put(0,0){\line(0,1){1}} \multiput(0,1)(0.025,-0.05){21}{\circle*{0.05}} \end{picture}} \newsavebox{\rbbr} \sbox{\rbbr}{% \begin{picture}(1,1) \put(0.5,0){\line(1,0){0.5}} \put(1,0){\line(0,1){1}} \multiput(0.5,0)(0.025,0.05){21}{\circle*{0.05}} \end{picture}} \newsavebox{\rull} \sbox{\rull}{% \begin{picture}(1,1) \put(0,1){\line(1,0){1}} \put(0,0.5){\line(0,1){0.5}} \multiput(0,0.5)(0.05,0.025){21}{\circle*{0.05}} \end{picture}} \newsavebox{\rurr} \sbox{\rurr}{% \begin{picture}(1,1) \put(0,1){\line(1,0){1}} \put(1,0.5){\line(0,1){0.5}} \multiput(0,1)(0.05,-0.025){21}{\circle*{0.05}} \end{picture}} \newsavebox{\rbll} \sbox{\rbll}{% \begin{picture}(1,1) \put(0,0){\line(1,0){1}} \put(0,0){\line(0,1){0.5}} \multiput(0,0.5)(0.05,-0.025){21}{\circle*{0.05}} \end{picture}} \newsavebox{\rbrr} \sbox{\rbrr}{% \begin{picture}(1,1) \put(0,0){\line(1,0){1}} \put(1,0){\line(0,1){0.5}} \multiput(0,0)(0.05,0.025){21}{\circle*{0.05}} \end{picture}} \put(0,-2.75){\dashbox{0.25}(24,24){}} \put(0,0){\line(1,0){24}} \put(0,1.25){\usebox{\tul}}\put(0,1.25){\usebox{\sur}} \put(0,1.25){\usebox{\cbl}}\put(0,1.25){\usebox{\tbr}} \put(0,2.25){\usebox{\rbr}}\put(0,12.25){\usebox{\cul}} \put(0,12.25){\usebox{\sur}}\put(0,12.25){\usebox{\cbl}} \put(0,12.25){\usebox{\sbr}}\put(0,16.25){\usebox{\cul}} \put(0,16.25){\usebox{\sur}}\put(0,16.25){\usebox{\cbl}} \put(0,16.25){\usebox{\sbr}}\put(1,1.25){\usebox{\rul}} \put(1,2.25){\usebox{\tul}}\put(1,2.25){\usebox{\sur}} \put(1,2.25){\usebox{\sbl}}\put(1,2.25){\usebox{\tbr}} \put(1,3.25){\usebox{\rbbr}}\put(1,12.25){\usebox{\sss}} \put(1,16.25){\usebox{\sss}}\put(2,2.25){\usebox{\rul}} \put(2,3.25){\usebox{\sul}}\put(2,3.25){\usebox{\sur}} \put(2,3.25){\usebox{\sbl}}\put(2,3.25){\usebox{\tbr}} \put(2,4.25){\usebox{\tull}}\put(2,4.25){\usebox{\sur}} \put(2,4.25){\usebox{\sbr}}\put(2,5.25){\usebox{\rbbr}} \put(2,12.25){\usebox{\sss}}\put(2,16.25){\usebox{\tbbr}} \put(2,16.25){\usebox{\sul}}\put(2,16.25){\usebox{\sur}} \put(2,17.25){\usebox{\rbrr}}\put(3,3.25){\usebox{\rul}} \put(3,4.25){\usebox{\tbrr}}\put(3,4.25){\usebox{\sul}} \put(3,4.25){\usebox{\sbl}}\put(3,5.25){\usebox{\sss}} \put(3,6.25){\usebox{\tull}}\put(3,6.25){\usebox{\sur}} \put(3,6.25){\usebox{\sbr}}\put(3,7.25){\usebox{\rbbr}} \put(3,12.25){\usebox{\sss}}\put(3,16.25){\usebox{\rull}} \put(3,17.25){\usebox{\tuul}}\put(3,17.25){\usebox{\sbl}} \put(3,17.25){\usebox{\sbr}}\put(4,5.25){\usebox{\rul}} \put(4,5.25){\usebox{\rur}}\put(4,6.25){\usebox{\sss}} \put(4,7.25){\usebox{\sss}}\put(4,8.25){\usebox{\sss}} \put(4,9.25){\usebox{\tull}}\put(4,9.25){\usebox{\sur}} \put(4,9.25){\usebox{\sbr}}\put(4,10.25){\usebox{\rbbr}} \put(4,11.25){\usebox{\rur}}\put(4,12.25){\usebox{\sss}} \put(4,13.25){\usebox{\rbr}}\put(4,16.25){\usebox{\rur}} \put(4,17.25){\usebox{\sss}}\put(5,-2.75){\usebox{\sul}} \put(5,-2.75){\usebox{\sur}}\put(5,-2.75){\usebox{\cbl}} \put(5,-2.75){\usebox{\sbr}}\put(5,-1.75){\usebox{\sss}} \put(5,-0.75){\usebox{\sss}}\put(5,0.25){\usebox{\sss}} \put(5,1.25){\usebox{\sss}}\put(5,2.25){\usebox{\sss}} \put(5,3.25){\usebox{\sss}}\put(5,4.25){\usebox{\sss}} \put(5,5.25){\usebox{\sss}}\put(5,6.25){\usebox{\sss}} \put(5,7.25){\usebox{\sss}}\put(5,8.25){\usebox{\sss}} \put(5,9.25){\usebox{\sss}}\put(5,10.25){\usebox{\sss}} \put(5,11.25){\usebox{\sss}}\put(5,12.25){\usebox{\sss}} \put(5,13.25){\usebox{\sss}}\put(5,14.25){\usebox{\sss}} \put(5,15.25){\usebox{\sss}}\put(5,16.25){\usebox{\sss}} \put(5,17.25){\usebox{\sss}}\put(5,18.25){\usebox{\rbrr}} \put(6,-2.75){\usebox{\sul}}\put(6,-2.75){\usebox{\sur}} \put(6,-2.75){\usebox{\sbl}}\put(6,-2.75){\usebox{\cbr}} \put(6,-1.75){\usebox{\sss}}\put(6,-0.75){\usebox{\sss}} \put(6,0.25){\usebox{\sss}}\put(6,1.25){\usebox{\sss}} \put(6,2.25){\usebox{\sss}}\put(6,3.25){\usebox{\sss}} \put(6,4.25){\usebox{\sss}}\put(6,5.25){\usebox{\sss}} \put(6,6.25){\usebox{\sss}}\put(6,7.25){\usebox{\sss}} \put(6,8.25){\usebox{\sss}}\put(6,9.25){\usebox{\sss}} \put(6,10.25){\usebox{\sss}}\put(6,11.25){\usebox{\sss}} \put(6,12.25){\usebox{\sss}}\put(6,13.25){\usebox{\sss}} \put(6,14.25){\usebox{\sss}}\put(6,15.25){\usebox{\sss}} \put(6,16.25){\usebox{\sss}}\put(6,17.25){\usebox{\sss}} \put(6,18.25){\usebox{\tuul}}\put(6,18.25){\usebox{\sbl}} \put(6,18.25){\usebox{\sbr}}\put(7,7.25){\usebox{\rul}} \put(7,8.25){\usebox{\sss}}\put(7,9.25){\usebox{\rbl}} \put(7,11.25){\usebox{\rul}}\put(7,12.25){\usebox{\sss}} \put(7,13.25){\usebox{\rbl}}\put(7,17.25){\usebox{\rul}} \put(7,18.25){\usebox{\sss}}\put(7,19.25){\usebox{\rbrr}} \put(8,7.25){\usebox{\rurr}}\put(8,8.25){\usebox{\tuur}} \put(8,8.25){\usebox{\sbl}}\put(8,8.25){\usebox{\sbr}} \put(8,12.25){\usebox{\sss}}\put(8,13.25){\usebox{\rbrr}} \put(8,18.25){\usebox{\tbbr}}\put(8,18.25){\usebox{\sul}} \put(8,18.25){\usebox{\sur}}\put(8,19.25){\usebox{\tul}} \put(8,19.25){\usebox{\sur}}\put(8,19.25){\usebox{\sbl}} \put(8,19.25){\usebox{\sbr}}\put(8,20.25){\usebox{\rbr}} \put(9,-1.75){\usebox{\ruur}}\put(9,-0.75){\usebox{\cul}} \put(9,-0.75){\usebox{\sur}}\put(9,-0.75){\usebox{\tbl}} \put(9,-0.75){\usebox{\sbr}}\put(9,6.25){\usebox{\ruur}} \put(9,7.25){\usebox{\sul}}\put(9,7.25){\usebox{\sur}} \put(9,7.25){\usebox{\tbl}}\put(9,7.25){\usebox{\sbr}} \put(9,8.25){\usebox{\rbll}}\put(9,12.25){\usebox{\sss}} \put(9,13.25){\usebox{\tuul}}\put(9,13.25){\usebox{\sbl}} \put(9,13.25){\usebox{\sbr}}\put(9,18.25){\usebox{\rull}} \put(9,19.25){\usebox{\sss}}\put(9,20.25){\usebox{\tuul}} \put(9,20.25){\usebox{\sbl}}\put(9,20.25){\usebox{\sbr}} \put(10,-2.75){\usebox{\sul}}\put(10,-2.75){\usebox{\sur}} \put(10,-2.75){\usebox{\cbl}}\put(10,-2.75){\usebox{\tbr}} \put(10,-1.75){\usebox{\sss}}\put(10,-0.75){\usebox{\sss}} \put(10,5.25){\usebox{\sul}}\put(10,5.25){\usebox{\sur}} \put(10,5.25){\usebox{\cbl}}\put(10,5.25){\usebox{\sbr}} \put(10,6.25){\usebox{\sss}}\put(10,7.25){\usebox{\tuur}} \put(10,7.25){\usebox{\sbl}}\put(10,7.25){\usebox{\sbr}} \put(10,12.25){\usebox{\sss}}\put(10,13.25){\usebox{\tuur}} \put(10,13.25){\usebox{\sbl}}\put(10,13.25){\usebox{\sbr}} \put(10,19.25){\usebox{\sss}}\put(10,20.25){\usebox{\tuur}} \put(10,20.25){\usebox{\sbl}}\put(10,20.25){\usebox{\sbr}} \put(11,-2.75){\usebox{\rull}}\put(11,-1.75){\usebox{\sss}} \put(11,-0.75){\usebox{\sss}}\put(11,5.25){\usebox{\sul}} \put(11,5.25){\usebox{\sur}}\put(11,5.25){\usebox{\sbl}} \put(11,5.25){\usebox{\cbr}}\put(11,6.25){\usebox{\turr}} \put(11,6.25){\usebox{\sul}}\put(11,6.25){\usebox{\sbl}} \put(11,7.25){\usebox{\rbl}}\put(11,12.25){\usebox{\sul}} \put(11,12.25){\usebox{\tur}}\put(11,12.25){\usebox{\sbl}} \put(11,12.25){\usebox{\cbr}}\put(11,13.25){\usebox{\rbl}} \put(11,19.25){\usebox{\sul}}\put(11,19.25){\usebox{\tur}} \put(11,19.25){\usebox{\sbl}}\put(11,19.25){\usebox{\cbr}} \put(11,20.25){\usebox{\rbl}}\put(12,-1.75){\usebox{\sss}} \put(12,-0.75){\usebox{\sss}}\put(12,0.25){\usebox{\rbr}} \put(13,-1.75){\usebox{\tbbr}}\put(13,-1.75){\usebox{\sul}} \put(13,-1.75){\usebox{\sur}}\put(13,-0.75){\usebox{\sss}} \put(13,0.25){\usebox{\sss}}\put(13,1.25){\usebox{\tull}} \put(13,1.25){\usebox{\sur}}\put(13,1.25){\usebox{\sbr}} \put(13,2.25){\usebox{\rbbr}}\put(14,-1.75){\usebox{\rull}} \put(14,-0.75){\usebox{\sss}}\put(14,0.25){\usebox{\rbl}} \put(14,1.25){\usebox{\ruul}}\put(14,2.25){\usebox{\tbrr}} \put(14,2.25){\usebox{\sul}}\put(14,2.25){\usebox{\sbl}} \put(14,3.25){\usebox{\sss}}\put(14,4.25){\usebox{\sss}} \put(14,5.25){\usebox{\tull}}\put(14,5.25){\usebox{\sur}} \put(14,5.25){\usebox{\sbr}}\put(14,6.25){\usebox{\rbbr}} \put(15,-0.75){\usebox{\sss}}\put(15,3.25){\usebox{\ruul}} \put(15,4.25){\usebox{\tbrr}}\put(15,4.25){\usebox{\sul}} \put(15,4.25){\usebox{\sbl}}\put(15,5.25){\usebox{\sss}} \put(15,6.25){\usebox{\sss}}\put(15,7.25){\usebox{\sss}} \put(15,8.25){\usebox{\sss}}\put(15,9.25){\usebox{\sss}} \put(15,10.25){\usebox{\sss}}\put(15,11.25){\usebox{\sss}} \put(15,12.25){\usebox{\tull}}\put(15,12.25){\usebox{\sur}} \put(15,12.25){\usebox{\sbr}}\put(15,13.25){\usebox{\rbbr}} \put(16,-0.75){\usebox{\sss}}\put(16,7.25){\usebox{\ruul}} \put(16,8.25){\usebox{\tbrr}}\put(16,8.25){\usebox{\sul}} \put(16,8.25){\usebox{\sbl}}\put(16,9.25){\usebox{\sss}} \put(16,10.25){\usebox{\sss}}\put(16,11.25){\usebox{\sss}} \put(16,12.25){\usebox{\sss}}\put(16,13.25){\usebox{\sss}} \put(16,14.25){\usebox{\sss}}\put(16,15.25){\usebox{\sss}} \put(16,16.25){\usebox{\sss}}\put(16,17.25){\usebox{\sss}} \put(16,18.25){\usebox{\sss}}\put(16,19.25){\usebox{\sss}} \put(16,20.25){\usebox{\cul}}\put(16,20.25){\usebox{\tur}} \put(16,20.25){\usebox{\sbl}}\put(16,20.25){\usebox{\sbr}} \put(17,-0.75){\usebox{\tbbr}}\put(17,-0.75){\usebox{\sul}} \put(17,-0.75){\usebox{\sur}}\put(17,0.25){\usebox{\rbrr}} \put(17,12.25){\usebox{\ruul}}\put(17,13.25){\usebox{\tbrr}} \put(17,13.25){\usebox{\sul}}\put(17,13.25){\usebox{\sbl}} \put(17,14.25){\usebox{\sss}}\put(17,15.25){\usebox{\sss}} \put(17,16.25){\usebox{\sss}}\put(17,17.25){\usebox{\sss}} \put(17,18.25){\usebox{\sss}}\put(17,19.25){\usebox{\sss}} \put(17,20.25){\usebox{\rbll}}\put(18,-0.75){\usebox{\rull}} \put(18,0.25){\usebox{\tuul}}\put(18,0.25){\usebox{\sbl}} \put(18,0.25){\usebox{\sbr}}\put(18,18.25){\usebox{\ruul}} \put(18,19.25){\usebox{\sul}}\put(18,19.25){\usebox{\cur}} \put(18,19.25){\usebox{\sbl}}\put(18,19.25){\usebox{\tbr}} \put(19,0.25){\usebox{\sss}}\put(19,3.25){\usebox{\ruur}} \put(19,4.25){\usebox{\cul}}\put(19,4.25){\usebox{\tur}} \put(19,4.25){\usebox{\tbl}}\put(19,4.25){\usebox{\sbr}} \put(20,0.25){\usebox{\sss}}\put(20,1.25){\usebox{\ruur}} \put(20,1.25){\usebox{\rbr}}\put(20,2.25){\usebox{\tbll}} \put(20,2.25){\usebox{\sur}}\put(20,2.25){\usebox{\sbr}} \put(20,3.25){\usebox{\sul}}\put(20,3.25){\usebox{\tur}} \put(20,3.25){\usebox{\sbl}}\put(20,3.25){\usebox{\sbr}} \put(20,4.25){\usebox{\rbl}}\put(21,-0.75){\usebox{\rur}} \put(21,0.25){\usebox{\sss}}\put(21,1.25){\usebox{\sss}} \put(21,2.25){\usebox{\sul}}\put(21,2.25){\usebox{\tur}} \put(21,2.25){\usebox{\sbl}}\put(21,2.25){\usebox{\sbr}} \put(21,3.25){\usebox{\rbl}}\put(22,-2.75){\usebox{\sul}} \put(22,-2.75){\usebox{\sur}}\put(22,-2.75){\usebox{\cbl}} \put(22,-2.75){\usebox{\sbr}}\put(22,-1.75){\usebox{\sss}} \put(22,-0.75){\usebox{\sss}}\put(22,0.25){\usebox{\sss}} \put(22,1.25){\usebox{\turr}}\put(22,1.25){\usebox{\sul}} \put(22,1.25){\usebox{\sbl}}\put(22,2.25){\usebox{\rbl}} \put(23,-2.75){\usebox{\sul}}\put(23,-2.75){\usebox{\sur}} \put(23,-2.75){\usebox{\sbl}}\put(23,-2.75){\usebox{\cbr}} \put(23,-1.75){\usebox{\sss}}\put(23,-0.75){\usebox{\turr}} \put(23,-0.75){\usebox{\sul}}\put(23,-0.75){\usebox{\sbl}} \put(23,0.25){\usebox{\rbbl}} \sbox{\sss}{} \sbox{\sul}{}\sbox{\sur}{}\sbox{\sbr}{}\sbox{\sbl}{} \sbox{\cul}{}\sbox{\cur}{}\sbox{\cbr}{}\sbox{\cbl}{} \sbox{\tul}{}\sbox{\tur}{}\sbox{\tbr}{}\sbox{\tbl}{} \sbox{\rul}{}\sbox{\rur}{}\sbox{\rbr}{}\sbox{\rbl}{} \sbox{\tuul}{}\sbox{\tuur}{}\sbox{\tbbl}{}\sbox{\tbbr}{} \sbox{\tull}{}\sbox{\turr}{}\sbox{\tbll}{}\sbox{\tbrr}{} \sbox{\ruul}{}\sbox{\ruur}{}\sbox{\rbbl}{}\sbox{\rbbr}{} \sbox{\rull}{}\sbox{\rurr}{}\sbox{\rbll}{}\sbox{\rbrr}{} \end{picture}} \end{picture} \end{center} \caption{Bitmap and Continuous Character.} \label{bitmapandcontinuouscharacter} \end{figure} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{The \LLaTeX\ Interface} \typeout{3 The [La]TeX Interface} \label{thelatexinterface} The next challenge is to make \LLaTeX\ understand the output of a japanese text editor. There seems to be three ways of achieving this. First, one can modify the input routines of \TeX\ and recompile it. This is the approach used by J\TeX\ and \mbox{ASCII-j\TeX}. For the reasons mentioned in Subsection~\ref{whyjemtex}, I do not want to get into rebuilding \TeX. A second possibility is to write macros to have \TeX\ understand japanese. Unfortunately, I do not have the expertise to do that. The third possibility is to write a preprocessor to transform any japanese document into a standard \LLaTeX\ one. And I do know enough about japanese and \TeX\ to accomplish this. This important decision has several consequences. If I am to have the power of any programming language available somewhere in the chain from a japanese text to a final \LLaTeX\ document, I might as well fully exploit that power. As much as possible of the work should be done by the compiled preprocessor, keeping the necessary interpreted \LLaTeX\ macros simple and fast. This philosophy is present in many aspects of my work. \newpage %improve a bad page break The \JemTeX\ preprocessor deals with the following issues: \begin{itemize} \item Loading and calling \JemTeX\ fonts. \item Japanese hyphenation. \item Japanese spacing. \end{itemize} The next subsections will discuss these topics and related subjects, before eventually taking up the actual operation of the preprocessor. \subsection{Japanese Encodings} \label{japaneseencodings} The reasonable thing to do at this point is to look into how japanese is represented by a japanese text editor. The first method I came across is the Japanese Industrial Standard (JIS). Unfortunately, my japanese text editor is very unreliable in JIS mode and this is why I never use it in this mode. I also do not know exactly how JIS works, but I do know that it involves escape sequences. I will be happy to support it in future versions of \JemTeX\, if users express that need and if somebody gives me more information about it. \label{euc} The second method is the Extended UNIX Code (EUC). I like it because it is the only encoding that my japanese text editor handles reliably. Each japanese character is represented by a pair of ASCII characters in the range $[161,\ldots,254]$. Given an EUC character $(x,y)$, its position in the JIS~24 dot font is simply: \[ 94 \times ( x - 161 ) + ( y - 161 ) + 1 \] \label{mskanji} A third method is the \mbox{MS-kanji} (\mbox{Shift-JIS}) code which is very popular in the DOS world. As for EUC, each japanese character is represented by a pair of ASCII characters. The first character is always in the range $[129,\ldots,159,224,\ldots,234]$ and the second character is always in the range $[64,\ldots,126,128,\ldots,252]$. Given an \mbox{MS-kanji} character, consider the coordinates $(x,y)$ obtained by shifting the upper subranges so that they are consecutive to the lower subranges, the position of the character in the JIS~24 dot font then is: \[ 188 \times ( x - 129 ) + ( y - 64 ) + 1 \] The preprocessor supports EUC and \mbox{MS-kanji}. You may freely use both in any \JemTeX\ document. \subsection{Using Fonts} \label{usingfonts} This subsection covers all the details having to do with \JemTeX\ fonts. One of the operation carried out by the preprocessor is the replacement of any EUC or \mbox{MS-kanji} character pair by the appropriate font name and symbol number. However, all \JemTeX\ fonts must first be declared in a \LLaTeX\ header before they can be used. \label{header} In \LaTeX, a \JemTeX\ font at magstep~$3.0$, say, is loaded with the following command: \begin{quote}%Don't put spaces after the next line! \begin{verbatim} \newfont{\keac}{kanjiac scaled 1728} \end{verbatim} \end{quote} In \TeX, it is loaded with: \begin{quote}%Don't put spaces after the next line! \begin{verbatim} \font\keac=kanjiac scaled 1728 \end{verbatim} \end{quote} The \JemTeX\ font is referred to by \verb"\keac", which is a convenient short name. The number $1728$ comes from $1728 = 1000 \times 1.2^{3.0}$. The preprocessor scans the input file in a first pass and determines the \JemTeX\ fonts needed. It then writes a \LLaTeX\ header to load these fonts, and finally appends the translation obtained by a second pass of the input file. There are at most 128~symbols numbered from~0 to~127 in a \JemTeX\ font. A japanese symbol can be produced in \TeX\ and in \LaTeX\ with the following command: \begin{quote}%Don't put spaces after the next line! \begin{verbatim} \kk{\keac}{65} \end{verbatim} \end{quote} The preprocessor will supply these automatically for you. \subsection{Hyphenation} \label{hyphenation} In order to produce a right margin which is even, \TeX\ occasionally needs to hyphenate some words. Although it is pretty good at this in english, \TeX\ is incapable of doing it in japanese. Therefore, the preprocessor must supply explicitly all possible hyphenation locations for \TeX. This subsection describes the rules governing this process. \label{hyphen} Hyphenation is relevant only between two consecutive characters. Hyphenation in english is obtained with a \verb"\-" command. In japanese, it is obtained with a \verb"\hh" command. The preprocessor will never allow japanese hyphenation between two characters when one or both are roman. But if the two characters are japanese, it may insert a \verb"\hh" command in between. Contrary to english, no - gets appended at the end of a line hyphenated by a \verb"\hh" command. All japanese characters encountered are classified as {\em alphabetical\/} or {\em symbolic}. The alphabetical japanese characters are hiraganas, katakanas, and kanjis. All other japanese characters found in the JIS~24 dot font are symbolic, they include punctuation signs, english, greek, and russian characters. This classification is important because it is difficult for the \JemTeX\ preprocessor to automatically decide where to allow hyphenation when mathematics or foreign languages are concerned. Consequently, the preprocessor never allows hyphenation between two japanese characters when both are symbolic. But if one or both japanese characters are alphabetical, hyphenation may be allowed since one can hyphenate anywhere in japanese, except possibly when punctuation signs are involved. This is not too difficult to handle for the preprocessor. More precisely, the preprocessor will not allow hyphenation before the following japanese punctuation signs .,!?:;$\cdot)]\}\rfloor\rangle$'\,'' and other related closing characters. It will not allow hyphenation either after $([\{\lceil\langle$`\,`` and other related opening characters. \label{preventh} If you would like to allow japanese hyphenation where the preprocessor would not allow it, simply put a \verb"\hh" command at the right place in your source file. If the next character is a roman letter, you have to use instead \verb"\hh{}" to prevent confusion. If you would like to prevent the preprocessor from allowing japanese hyphenation, put a \verb"{}" to separate the two consecutive japanese characters in your source file. The preprocessor will not realize that the japanese characters are consecutive anymore, and it will not allow hyphenation. \subsection{Spacing} \label{spacing} In addition to explicitly telling \TeX\ where japanese hyphenation is allowed, it is also necessary to add space around some japanese characters. For example, this occurs around japanese punctuation signs or at transitions from japanese to roman. Indeed, when \TeX\ comes across the command \verb"\kk{\kaaa}{3}", it has no idea that this is a japanese period. The preprocessor has to give \TeX\ a hand in these cases. Such space must always be added after any hyphenation command \verb"\hh" that may already have been inserted. Otherwise, you risk compromising the flush right margin. \TeX\ normally introduces extra space after a roman period only if a roman space follows it. My japanese text editor does not support spaces while in japanese mode. After all, there are no spaces between words in japanese. This implies that one would have to enter, say, a japanese period, then switch to roman mode, enter a space, and finally switch back to japanese mode. I think this is too cumbersome. Therefore, the preprocessor handles japanese spacing issues without expecting roman spaces anywhere. \label{bigmedium} The preprocessor uses three types of space to achieve its goal; a big space with a \verb"\eeee" command, a medium space with a \verb"\eee" command, and a tiny space with a \verb"\ee" command. Only one space is added at one place. For example, if logic calls for a big, a medium, and a medium space between two consecutive characters, only a big one will be inserted by the preprocessor. No space is ever added between two consecutive roman characters, but as soon as one or both characters are japanese, space may become necessary. Let us first look at the mixed case where one japanese character is involved with a roman one. A big space is inserted after all japanese punctuation signs .,!?\ followed by a roman character. A medium space is inserted after all japanese punctuation signs :;$\cdot)]\}\rfloor\rangle$'\,'' followed by a roman character. A medium space is also inserted after all roman characters followed by any of the japanese punctuation signs $\cdot([\{\lceil\langle$`\,``. This takes care of the japanese punctuation spaces. Space is also added for transitions as follows. A medium space is inserted after all roman letters and all roman digits followed by a japanese character, except if that japanese character is any of the following punctuation signs .,!?:;$)]\}\rfloor\rangle$'\,''. A medium space is also inserted after a japanese character followed by a roman letter or a roman digit, except if that japanese character is any of the following punctuation signs $([\{\lceil\langle$`\,``. The case of two consecutive japanese characters is more precise since more information is known. It is also closely related to the previous mixed case. A big space is inserted after all japanese punctuation signs .,!? but not before any of the japanese punctuation signs .,!?$)]\}\rfloor\rangle$'\,''. A medium space is inserted after all japanese punctuation signs :;$\cdot)]\}\rfloor\rangle$'\,'' but not before any of the japanese punctuation signs .,!?:;$)]\}\rfloor\rangle$'\,''. A medium space is also inserted before all the japanese punctuation signs $\cdot([\{\lceil\langle$`\,`` but not after any of the japanese punctuation signs $([\{\lceil\langle$`\,``. This covers all cases of big and medium spaces. If you would like to add space where the preprocessor would not, simply put a \verb"\eeee" command or a \verb"\eee" command at the right place in your source file. Remember to do that only after any hyphenation \verb"\hh" command that you may already have added. If the next character is a roman letter, you have to use instead \verb"\eeee{}" and \verb"\eee{}" to prevent confusion. \label{prevents} There are cases where it is preferable to have no extra space after a japanese punctuation sign. For example, when typesetting music with \MuTeX, one does not want extra space if the japanese text is going under the staff. This affects adversary its centering under notes. If you would like to prevent the preprocessor from adding space, try to put a \verb"{}" at the right place to separate the two consecutive japanese characters, or the japanese character from the roman letter or the roman digit. In the few remaining cases where this cannot work, you have to temporarily disable the preprocessor's ability to add spaces. Subsection~\ref{thejem2texpreprocessor} explains how to do this. Tiny space has to do with line breaking, and it is very important. \TeX\ creates a flush right margin by adding extra space between words. However, \TeX\ does not add extra space between characters making up words. Since words in japanese are not separated by spaces, the only opportunity \TeX\ has to add extra space is where big and medium spaces have been added by the preprocessor. Some long japanese sentence may span several lines without any added space. \TeX\ then has no opportunity at all to stretch space in order to generate a flush right margin. To solve this serious problem, a tiny space is added between all consecutive japanese characters, unless some big or medium space has already been inserted. If you should ever want to disable this feature, proceed as before by inserting a \verb"{}" at the right place. This will always work. \subsection{\LLaTeX\ Comments} \label{llatexcomments} It is quite clear from the previous two subsections that the concept of consecutive characters is very important for the preprocessor. This notion is closely related to \LLaTeX\ comments and end of lines. Let us first discuss the english case before moving on to the japanese one. \newpage %improve a bad page break In most circumstances, the character \verb"%" tells \TeX\ to consider the remainder of the current line as a comment and to simply ignore it. Consider the following example: \begin{quote}%Don't put spaces after the next line! \begin{verbatim} A% Here is a TeX comment. % Here is a TeX comment. B% Here is a TeX comment. \end{verbatim} \end{quote} Even though \verb"A" and \verb"B" are not at all consecutive in the source file because of the comments separating them, they are consecutive as far as \TeX\ is concerned. One could equally well have entered instead \verb"AB" without any comments in between. Consider now another example: \begin{quote}%Don't put spaces after the next line! \begin{verbatim} A B \end{verbatim} \end{quote} The characters \verb"A" and \verb"B" are not consecutive because they are separated by an invisible end of line character. \TeX\ treats an end of line character just like if a space was present between \verb"A" and \verb"B". These remarks apply equally well if \verb"A" and \verb"B" were japanese characters. To distinguish both types of end of line, I will say that an end of line is roman if the last character on that line is a roman character. A similar definition holds for japanese end of lines. It is important for the preprocessor to determine if japanese characters are consecutive in order to allow hyphenation and add space correctly. The remainder of this subsection explains how this is achieved. In english, any given input line usually terminates just after a word. The end of line character after that word is replaced by a space by \TeX, which is perfectly acceptable since a space should separate english words. In japanese, there is no space between words, so this end of line character must be removed to prevent \TeX\ from adding space. There are two ways of doing this while using \JemTeX. \label{eol} First, you can explicitly put a \verb"%" after all japanese end of lines. This will always work, but it is also tedious. Second, you can let the preprocessor do that for you. However, you should make sure your input lines do end with a japanese character, not a roman space character. This can be a problem because some text editors insist on putting some space characters at the end of each line. You should make sure that your text editor does not do so. Then, the \JemTeX\ preprocessor will have no problem in detecting japanese end of lines and will add all the \verb"%" characters for you. It is also important for the preprocessor to detect \TeX\ comments. The preprocessor recognizes a comment if it starts in the first column of the input file, or if it's a comment that the processor had to insert itself, i.e.\ after a japanese end of line. Therefore, when typing the japanese parts of your source file, you should always use comments starting in the first column and let the preprocessor handle japanese end of lines. This makes it almost certain that the preprocessor will handle hyphenation and spacing correctly. \subsection{\LLaTeX\ Limitations} \label{llatexlimitations} The previous subsections introduced the different operations that the \JemTeX\ preprocessor must perform in order to produce an acceptable \LLaTeX\ document from a japanese one. Each japanese character is replaced by a command like \verb"\kk{\kaaa}{109}" potentially followed by an hyphenation command \verb"\hh" and potentially followed by a spacing command like \verb"\eeee{}". In the worst case, the two characters representing the original japanese one are replaced by approximately 25~roman characters. This expansion of the source file could cause some problems because there is a limit to the maximum length of an input line that \TeX\ can accept. Here are typical statistics for one big \emTeX\ run: \begin{small}%Don't put spaces after the next line! \begin{verbatim} Here is how much of TeX's memory you used: 181 strings out of 6937 1607 string characters out of 28560 83907 words of memory out of 262142 2145 multiletter control sequences out of 5000 20585 words of font info for 79 fonts, out of 81920 for 254 15 hyphenation exceptions out of 607 13i,8n,21p,321b,309s positions out of 300i,100n,60p,3000b,1000s \end{verbatim} \end{small} The last line (\verb"3000b") tells us that big \emTeX\ can accept input lines of 3000~roman characters. Therefore, big \emTeX\ can handle lines of approximately 120~japanese characters. Most monitors support only~40, 80, or 132~characters per line, that should be enough. However, some japanese text editors display text on separate lines while whole paragraphs are actually kept on one single line internally. You should make sure that your japanese text editor does split its paragraphs into lines of a reasonable size. The only potential remaining problem has to do with the \verb".toc" and \verb".aux" files. These files are created by \LaTeX\ for its personal use and contain such things as chapter names, cross-references, etc. These are always formatted one item per line. If you have a chapter name which is longer than 120~japanese characters, you can split it on several lines in your source file. Then, \LaTeX\ will have no problem with the title itself. But in its first pass, it will create the \verb".toc" and \verb".aux" files which will have a very long line. When \LaTeX\ starts to read the resulting \verb".aux" file on its second pass, it will complain that the line is too long and stop. I think it is unlikely that you will ever have such a long chapter name. But if you do, here is my solution. Suppose your \verb".aux" file contains one long line of japanese text: \begin{quote}%Don't put spaces after the next line! \begin{verbatim} \@writefile{toc}{Very long japanese text.} \end{verbatim} \end{quote} Edit the \verb".aux" file and replace the troublesome line by: \begin{quote}%Don't put spaces after the next line! \begin{verbatim} \@writefile{toc}{\texta \textb \textc \textd} \end{verbatim} \end{quote} And add the following macros to your \LaTeX\ source file: \begin{quote}%Don't put spaces after the next line! \begin{verbatim} \newcommand{\texta}{Very} \newcommand{\textb}{long} \newcommand{\textc}{japanese} \newcommand{\textd}{text.} \end{verbatim} \end{quote} Having done all that, you may now successfully run \LaTeX\ once. Unfortunately, this run will modify your \verb".aux" file again. There are two ways around this. First, you could use the \LaTeX\ command \verb"\nofiles". Secondly, you could edit your \verb".aux" once again. As I already mentioned, it is unlikely that you will ever need to resort to this trick since the current limit of 120~japanese characters is quite reasonable. But if you are curious, that's how you can avoid the problem. \subsection{The {\tt JEM2TEX} Preprocessor} \label{thejem2texpreprocessor} Given a japanese source file, my program \verb"JEM2TEX" can generate an equivalent \LLaTeX\ source file. You have been supplied with the source and the compressed compiled version of this C program. The only information necessary is the source file name and some parameters. \verb"JEM2TEX" will try the file name extensions \verb".jem", \verb".jpn", and \verb".jap" for you so you do not need to specify them. If you simply start \verb"JEM2TEX" without any command line information, it will run in manual mode where you must answer questions interactively throughout the operation. If you specify any command line information, the preprocessor then runs in automatic mode. In addition to specifying the source file name on the command line, you can also supply command line parameters on it. These always begin with a \verb"/" or a \verb"-", and any combination of small and capital letters is acceptable. In automatic mode, a \LaTeX\ document \verb"japanese.jem" with japanese extended EUC characters at magstep~$3.0$, and with spaces to add, and with \verb"%" to add at japanese end of lines is assumed as default. However, you may override or confirm any of these default values with the appropriate command line parameters. The recognized ones are listed in Tables~\ref{spaceparameters}, \ref{japaneseeolparameters}, \ref{encodingparameters}, \ref{fontsizeparameters}, and~\ref{headerparameters}. \begin{table}[htb] \begin{center} \begin{tabular}{ll} \mbox{$\left.\parbox{3cm}{% \verb"/Space" \\ \verb"/Extra" \\ \verb"/ExtraSpace"}\right\}$} & Spaces added. \\[5.5mm] \mbox{$\left.\parbox{3cm}{% \verb"/NoSpace" \\ \verb"/NoExtra" \\ \verb"/NoExtraSpace"}\right\}$} & No spaces added. \end{tabular} \end{center} \caption{Space Parameters.} \label{spaceparameters} \begin{center} \begin{tabular}{ll} \mbox{$\left.\parbox{2.3cm}{% \verb"/EOL" \\ \verb"/Percent" \\ \verb"/Comment"}\right\}$} & \verb"%" added. \\[6.5mm] \mbox{$\left.\parbox{2.3cm}{% \verb"/NoEOL" \\ \verb"/NoPercent" \\ \verb"/NoComment"}\right\}$} & No \verb"%" added. \end{tabular} \end{center} \caption{Japanese EOL Parameters.} \label{japaneseeolparameters} \end{table} \newpage %improve a bad page break \begin{table}[htb] \begin{center} \begin{tabular}{ll} \parbox{2.2cm}{\verb"/EUC"} & Extended UNIX code. \\[1.5mm] \mbox{$\left.\parbox{2.2cm}{% \verb"/MSkanji" \\ \verb"/ShiftJIS"}\right\}$} & MS-kanji code. \\[2.5mm] \parbox{2.2cm}{\verb"/Extended"} & Extended characters. \\ \parbox{2.2cm}{\verb"/Standard"} & Standard characters. \end{tabular} \end{center} \caption{Encoding Parameters.} \label{encodingparameters} \begin{center} \begin{tabular}{ll} \mbox{$\left.\parbox{3cm}{% \verb"/1000 /0.0 /0" \\ \verb"/1095 /0.5" \\ \verb"/1200 /1.0 /1" \\ \verb"/1440 /2.0 /2" \\ \verb"/1728 /3.0 /3" \\ \verb"/2074 /4.0 /4" \\ \verb"/2488 /5.0 /5"}\right\}$} & Initial japanese font size. \end{tabular} \end{center} \caption{Font Size Parameters.} \label{fontsizeparameters} \begin{center} \begin{tabular}{ll} \parbox{1.5cm}{\verb"/LaTeX"} & \LaTeX\ header. \\[1mm] \mbox{$\left.\parbox{1.5cm}{% \verb"/TeX" \\ \verb"/MuTeX"}\right\}$} & \TeX\ header. \end{tabular} \end{center} \caption{Header Parameters.} \label{headerparameters} \end{table} For music, I usually use only hiraganas and katakanas. The following is appropriate since these japanese characters are simple: \begin{quote}%Don't put spaces after the next line! \begin{verbatim} jem2tex anri /MuTeX /NoEOL /NoSpace /Standard /EUC /0.5 \end{verbatim} \end{quote} For a letter with complicated kanjis, I would rather use: \begin{quote}%Don't put spaces after the next line! \begin{verbatim} jem2tex yuka /LaTeX /EOL /Space /Extended /EUC /2 \end{verbatim} \end{quote} It is also possible to change these parameters at run-time with \TeX\ comments. Here is an example: \begin{quote}%Don't put spaces after the next line! \begin{verbatim} % jem2tex /LaTeX /Space /EOL /MSkanji /1440 \end{verbatim} \end{quote} The preprocessor expects the \verb"%" to be the first character of the line as explained in Subsection~\ref{llatexcomments}. Then one of the keywords \verb"jem2tex", \verb"jpn2tex", or~\verb"jap2tex" must follow immediately, or after some spaces. Valid parameters are then scanned. The preprocessor will produce comments in the \LLaTeX\ file as its status is changed. An invalid parameter stops the current scan for parameters, but does not terminate the preprocessor's operation. \label{nospaces} \label{fonts} Run-time parameters can be used to change japanese font sizes according to environments and to temporarily disable space insertion. I also always put in the first line of my \verb".jem" files the initial parameters. Here is an example: \begin{quote} \verb"%JEM2TEX /Space /EOL /Extended /EUC /LaTeX" \\ \verb"\documentstyle[12pt]{tegami}" \\ \verb"\begin{document}" \\ \verb"\begin{large}" \\ \verb"%JEM2TEX /1440" \\ $\vdots$ \\ \verb"Here is some japanese text" \\ \verb"%JEM2TEX /1000" \\ \verb"\footnote{Japanese footnote.}%" \\ \verb"%JEM2TEX /1440" \\ \verb"with a footnote showing the font size change." \\ $\vdots$ \\ \verb"\end{large}" \\ \verb"\end{document}" \end{quote} \label{12points} As mentioned in the \LaTeX\ book about loading fonts, using a japanese font doesn't change style parameters like \verb"\baselineskip". Make sure the appropriate size changing command is active when a japanese font is used. In the previous example, the \verb"/1440" indicates that magstep~$2.0$ is desired for the japanese fonts. The command \verb"large" insures that \LaTeX\ is aware of the proper line spacing needed while processing these japanese characters. The command \verb"large" also tells \LaTeX\ to use roman characters of a size comparable to the japanese ones. I usually use \verb"12pt" document styles and Table~\ref{12ptfontsizes} shows the appropriate font sizes for them. \begin{table}[htb] \begin{center} \begin{tabular}{l|l} \verb"\footnotesize" & \verb"/1000" \\ \verb"\small" & \verb"/1095" \\ \verb"\normalsize" & \verb"/1200" \\ \verb"\large" & \verb"/1440" \\ \verb"\Large" & \verb"/1728" \\ \verb"\LARGE" & \verb"/2074" \\ \verb"\huge" & \verb"/2488" \end{tabular} \end{center} \caption{{\tt 12pt} Font Sizes.} \label{12ptfontsizes} \end{table} Finally, note the \verb"%" at the end of the \verb"\footnote" line in the last example. The filter will not append it for you since this is a roman end of the line. But this \verb"%" is essential to prevent \LLaTeX\ from inserting some inter-word space between the footnote number and the following japanese character. \subsection{Font Tables} \label{fonttables} I occasionally come across a japanese character that my japanese text editor cannot insert in the text for me. This is usually the result of an incomplete kanji lookup dictionary or a consequence of wanting to use extended JIS~24 characters. In such cases, one has to enter the character by hand. There are a number of ways to do that. Your japanese text editor may support character entry by \mbox{MS-kanji} or EUC numbers. That is certainly the most preferable solution. If not, you could use \mbox{Alt-Combinations} under a word processor to enter the arbitrary characters in your text. Modifying the source file in these fashions is the best approach. You could also choose to leave a few blank spaces at the right places in the source file, process it with \verb"JEM2TEX", and then insert a few \verb"\kk" macros with the proper kanji fonts and symbol numbers. Unfortunately, such a patch must be performed every time the original source file is modified and processed by \verb"JEM2TEX". This is why I never proceed this way. Because of this foreseeable occasional need, I thought it would be useful to create font tables like the ones found in Appendix~F of the {\TeX}book. They would have to mention the JIS~24 dot font numbers along with the EUC number pairs. I designed such tables at magstep~$3.0$ and managed to squeeze three \JemTeX\ fonts per page. My Pascal program \verb"FONTABLE" creates a 60~Kb japanese file \verb"fontable.jem" for you in the current directory. Then, simply process that file with \verb"JEM2TEX" in automatic mode to eventually obtain \verb"fontable.tex". Finally, complete the process with big \LaTeX\, which should yield a twenty page document ready for previewing and printing. You may have to divide and process this document in smaller pieces for several reasons. Perhaps you only have a small version of \TeX. Perhaps your printer driver has difficulty processing it. This can be caused by your computer lacking memory, but is more likely nowadays to be caused by a primitive printer driver lacking a decent memory management system. Perhaps you are using a laser printer with only 1~Mb of memory. Note that dot matrix printers do not suffer from such lack of memory problems since they have very little memory. Their language is very verbose since the fonts are explicitly supplied each time they are used. If needed, you should divide the file \verb"fontable.jem", but not the file \verb"fontable.tex" unless you also modify the individual headers to avoid loading a lot of fonts for nothing. I think the former approach is easier and less error prone. If splitting \verb"fontable.jem" still does not work for you, talk to me! %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{\JemTeX\ Quick Reference} \typeout{4 JemTeX Quick Reference} \label{jemtexquickreference} \vspace{1cm} \begin{quote}%Don't put spaces after the next line! \begin{verbatim} MF &cm kanjiaa >NUL: \end{verbatim} \end{quote} \begin{center} METAFONT Proof Mode (page~\pageref{mftproof}) \end{center} \vspace{1cm} \begin{quote} \begin{small}%Don't put spaces after the next line! \begin{verbatim} MF &cm \mode:=epsonfx; \mag:=magstep(0.0); \input kanjiaa.mf \end{verbatim} \end{small} \end{quote} \begin{center} METAFONT Standard Mode (page~\pageref{mftstandard}) \end{center} \vspace{1cm} \begin{center} \begin{tabular}{l|ccccccc} Font Size & 1000 & 1095 & 1200 & 1440 & 1728 & 2074 & 2488 \\ \hline Disk Space & 558 & 622 & 680 & 819 & 1008 & 1228 & 1530 \end{tabular} \end{center} \begin{center} Space Requirements (240DPI) \end{center} \newpage \vspace*{\fill} \begin{center} \begin{tabular}{ll} \mbox{$\left.\parbox{4.6cm}{% \verb"/FixedWidth" \\ \verb"/FixedX" \\ \verb"/NoProportionalWidth" \\ \verb"/NoProportionalX"}\right\}$} & Fixed width (page~\pageref{widthheight}). \\[8mm] \mbox{$\left.\parbox{4.6cm}{% \verb"/NoFixedWidth" \\ \verb"/NoFixedX" \\ \verb"/ProportionalWidth" \\ \verb"/ProportionalX"}\right\}$} & Minimized width (page~\pageref{widthheight}). \\[8mm] \mbox{$\left.\parbox{4.6cm}{% \verb"/FixedHeight" \\ \verb"/FixedY" \\ \verb"/NoProportionalHeight" \\ \verb"/NoProportionalY"}\right\}$} & Fixed height (page~\pageref{widthheight}). \\[8mm] \mbox{$\left.\parbox{4.6cm}{% \verb"/NoFixedHeight" \\ \verb"/NoFixedY" \\ \verb"/ProportionalHeight" \\ \verb"/ProportionalY"}\right\}$} & Minimized height (page~\pageref{widthheight}). \\[8mm] \parbox{4.6cm}{\verb"/Standard"} & Standard positioning (page~\pageref{positioning}). \\ \parbox{4.6cm}{\verb"/Dictionary"} & Dictionary positioning (page~\pageref{positioning}). \\ \parbox{4.6cm}{\verb"/Batch"} & Batch mode (page~\pageref{batch}). \end{tabular} \end{center} \vspace{3mm} \begin{center} \verb"JIS2MF" Parameters \end{center} \vspace*{\fill} \newpage \vspace*{\fill} \begin{center} \begin{tabular}{ll} \parbox{3cm}{\verb"/EUC"} & Extended UNIX code (page~\pageref{euc}). \\[1mm] \mbox{$\left.\parbox{3cm}{% \verb"/MSkanji" \\ \verb"/ShiftJIS"}\right\}$} & MS-kanji code (page~\pageref{mskanji}). \\[3mm] \parbox{3cm}{\verb"/Extended"} & Extended characters (page~\pageref{extended}). \\ \parbox{3cm}{\verb"/Standard"} & Standard characters (page~\pageref{standard}). \\ \parbox{3cm}{\verb"/LaTeX"} & \LaTeX\ header (page~\pageref{header}). \\[1.5mm] \mbox{$\left.\parbox{3cm}{% \verb"/TeX" \\ \verb"/MuTeX"}\right\}$} & \TeX\ header (page~\pageref{header}). \\[4mm] \mbox{$\left.\parbox{3cm}{% \verb"/Space" \\ \verb"/Extra" \\ \verb"/ExtraSpace"}\right\}$} & Spaces added (page~\pageref{spacing}). \\[6mm] \mbox{$\left.\parbox{3cm}{% \verb"/NoSpace" \\ \verb"/NoExtra" \\ \verb"/NoExtraSpace"}\right\}$} & No spaces added (page~\pageref{nospaces}). \\[6mm] \mbox{$\left.\parbox{3cm}{% \verb"/EOL" \\ \verb"/Percent" \\ \verb"/Comment"}\right\}$} & \verb"%" added (page~\pageref{eol}). \\[6mm] \mbox{$\left.\parbox{3cm}{% \verb"/NoEOL" \\ \verb"/NoPercent" \\ \verb"/NoComment"}\right\}$} & No \verb"%" added (page~\pageref{eol}). \\[6mm] \mbox{$\left.\parbox{3cm}{% \verb"/1000 /0.0 /0" \\ \verb"/1095 /0.5" \\ \verb"/1200 /1.0 /1" \\ \verb"/1440 /2.0 /2" \\ \verb"/1728 /3.0 /3" \\ \verb"/2074 /4.0 /4" \\ \verb"/2488 /5.0 /5"}\right\}$} & Initial japanese font size (page~\pageref{fonts}). \end{tabular} \end{center} \vspace{3mm} \begin{center} \verb"JEM2TEX" Parameters \end{center} \vspace*{\fill} \newpage \vspace*{\fill} \begin{center} \begin{tabular}{l|l} \verb"\hh" & Allow japanese hyphenation (page~\pageref{hyphen}). \\ \verb"\eeee" & Insert big space (page~\pageref{bigmedium}). \\ \verb"\eee" & Insert medium space (page~\pageref{bigmedium}). \\ \verb"{}" & Prevent hyphenation (page~\pageref{preventh}) and space insertion (page~\pageref{prevents}). \end{tabular} \end{center} \begin{center} Quick Fixes \end{center} \vspace{1cm} \begin{center} \begin{tabular}{l|l} \verb"\footnotesize" & \verb"/1000" \\ \verb"\small" & \verb"/1095" \\ \verb"\normalsize" & \verb"/1200" \\ \verb"\large" & \verb"/1440" \\ \verb"\Large" & \verb"/1728" \\ \verb"\LARGE" & \verb"/2074" \\ \verb"\huge" & \verb"/2488" \end{tabular} \end{center} \begin{center} \verb"12pt" Font Sizes (page~\pageref{12points}) \end{center} \vspace*{\fill} \end{document}