/* -mt -f -A -K -G -O -w */ /* Compile with Turbo-C 2.0 */ /* This program generates Japanese font tables Author: Francois Jalbert ' Date: November 1990 Version: 1.0 Date: April 1991 Version: 2.0 Modifications: - Added four kanjis. - Run-time parameters now supplied. - Extension is .JEM now. - Page format changed slightly. - Symbols now centered within tables. - Switched to \clearpage since better for tables. */ #include #ifdef __TURBOC__ #include #endif /* Highest Bitmap number in JIS24 */ #define BitmapMax 7806 /* Highest font number */ #define FontMax 60 /* Number of symbols in a font */ #define SymbolMax 128 #define SymbolMax1 127 void FontTable(FILE *OutFile) { int Bitmap; int Font; int Symbol; unsigned char EUC1,EUC2; fprintf(OutFile,"%%JEM2TEX /NoSpace /NoPercent /LaTeX /EUC /Extended /3.0\n"); fprintf(OutFile,"%%\n"); fprintf(OutFile,"\\documentstyle[12pt]{article}\n"); fprintf(OutFile,"\\pagestyle{plain}\n"); fprintf(OutFile,"\\setlength{\\oddsidemargin}{-0.5in} %%0.5in margin left-right\n"); fprintf(OutFile,"\\setlength{\\textwidth}{7.5in} %%8.5in-2*0.5in\n"); fprintf(OutFile,"\\setlength{\\topmargin}{-0.25in} %%0.75in margin top-bottom\n"); fprintf(OutFile,"\\setlength{\\textheight}{9.4in} %%11.0in-2*0.75in\n"); fprintf(OutFile,"\\setlength{\\footskip}{0.1in}\n"); fprintf(OutFile,"\\setlength{\\footheight}{0.1in}\n"); fprintf(OutFile,"\\setlength{\\headheight}{0pt}\n"); fprintf(OutFile,"\\setlength{\\headsep}{0pt}\n"); fprintf(OutFile,"\\setlength{\\topskip}{0pt}\n"); fprintf(OutFile,"\\setlength{\\parindent}{0pt}\n"); fprintf(OutFile,"\\setlength{\\tabcolsep}{4pt}\n"); fprintf(OutFile,"\\renewcommand{\\baselinestretch}{0.85}\n"); fprintf(OutFile,"\\begin{document}\n"); fprintf(OutFile,"\\begin{Large}\n"); fprintf(OutFile,"\n"); fprintf(OutFile,"\\vspace*{\\fill}\n"); fprintf(OutFile,"\n"); if (ferror(OutFile)) exit(1); for (Bitmap=0 ; Bitmap<=BitmapMax ; Bitmap++) { Symbol=Bitmap % SymbolMax; Font=Bitmap / SymbolMax; EUC1=(unsigned char)((Bitmap-1)/94); EUC2=(unsigned char)((Bitmap-1)-94*(int)EUC1); EUC1=EUC1+(unsigned char)'\xA1'; EUC2=EUC2+(unsigned char)'\xA1'; if (!Symbol) { fprintf(OutFile,"\\begin{table}[h]\n"); fprintf(OutFile," \\centering\n"); fprintf(OutFile," \\begin{tabular}{r|cccccccccccccccc|l}\n"); fprintf(OutFile, " Code & \\multicolumn{16}{c|}{Characters} & EUC \\\\ \\hline\n"); if (ferror(OutFile)) exit(1); } switch (Symbol % 16) { case 0: fprintf(OutFile,"%6d ",Symbol); if (ferror(OutFile)) exit(1); break; case 5: case 10: case 15: fprintf(OutFile," "); if (ferror(OutFile)) exit(1); break; } if (Bitmap) { fprintf(OutFile,"&%c%c",EUC1,EUC2); if (ferror(OutFile)) exit(1); switch (Symbol % 16) { case 4: case 9: case 14: fprintf(OutFile,"\n"); if (ferror(OutFile)) exit(1); break; default:if ((Symbol % 16)==15) { fprintf(OutFile,"& %d,%d",EUC1,EUC2); if ( (Symbol!=SymbolMax1) && (Bitmap!=BitmapMax) ) fprintf(OutFile," \\\\"); fprintf(OutFile,"\n"); if (ferror(OutFile)) exit(1); } else if (Bitmap==BitmapMax) { fprintf(OutFile,"\n"); if (ferror(OutFile)) exit(1); } break; } } else { fprintf(OutFile,"& "); if (ferror(OutFile)) exit(1); } if ( (Symbol==SymbolMax1) || (Bitmap==BitmapMax) ) { fprintf(OutFile," \\end{tabular}\n"); fprintf(OutFile,"\\caption{Font {\\tt kanji%c%c} (%d--%d).}\n", ('a'+(Font/8)),('a'+(Font % 8)),(Bitmap-Symbol),Bitmap); fprintf(OutFile,"\\end{table}\n"); fprintf(OutFile,"\n"); if (ferror(OutFile)) exit(1); if (Bitmap==BitmapMax) { fprintf(OutFile,"\\vspace*{\\fill}\n"); fprintf(OutFile,"\n"); if (ferror(OutFile)) exit(1); } else if ((Font % 3)==2) { fprintf(OutFile,"\\vspace*{\\fill}\n"); fprintf(OutFile,"\n"); fprintf(OutFile,"\\clearpage\n"); fprintf(OutFile,"\n"); fprintf(OutFile,"\\vspace*{\\fill}\n"); fprintf(OutFile,"\n"); if (ferror(OutFile)) exit(1); } } } fprintf(OutFile,"\\end{Large}\n"); fprintf(OutFile,"\\end{document}\n"); if (ferror(OutFile)) exit(1); } main() { FILE *OutFile; printf("\n"); printf("Japanese Font Tables Generation Program.\n");/*To make Borland happy*/ printf("Version 2.0 Copyright F. Jalbert 1991.\n"); printf("\n"); if (ferror(stdout)) exit(1); printf("Creating Japanese file fontable.jem"); if ((OutFile=fopen("fontable.jem","wt"))==NULL) exit(1); printf(".\n"); if (ferror(stdout)) exit(1); printf("Generating font tables"); #ifndef __TURBOC__ printf("\n"); #endif FontTable(OutFile); printf(".\n"); if (ferror(stdout)) exit(1); printf("Closing Japanese file fontable.jem"); if (fclose(OutFile)==EOF) exit(1); printf(".\n"); printf("\n"); if (ferror(stdout)) exit(1); printf("Japanese font tables generation completed.\n"); printf("\n"); if (ferror(stdout)) exit(1); return(0); }