summaryrefslogtreecommitdiff
path: root/systems/msdos/jemtex2/fontable.c
diff options
context:
space:
mode:
Diffstat (limited to 'systems/msdos/jemtex2/fontable.c')
-rw-r--r--systems/msdos/jemtex2/fontable.c178
1 files changed, 178 insertions, 0 deletions
diff --git a/systems/msdos/jemtex2/fontable.c b/systems/msdos/jemtex2/fontable.c
new file mode 100644
index 0000000000..6868f6e3b6
--- /dev/null
+++ b/systems/msdos/jemtex2/fontable.c
@@ -0,0 +1,178 @@
+/* -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 <stdio.h>
+#ifdef __TURBOC__
+#include <process.h>
+#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);
+}