3
* Make list of all characters of eKanji font in LaTeX form.
6
* How to use this program:
8
* 1. Compile this program.
9
* % gcc -o mksample mksample.c
10
* 2. Run this program to generate (huge) LaTeX input file.
11
* % ./mksample > sample.tex
12
* 3. Run pLaTeX to generate DVI file.
14
* 4. View/Print it. For example,
23
#define SIZECMD "normalsize"
27
int ku_from, ku_to, nchline, title;
38
#define TYPE_UNICODE 0
40
#define TYPE_MOROHASHI 2
41
struct s_fontinfo fontinfo[] =
43
{ "ekan0010.d24", "EKU", 22999 },
44
{ "ekan0020.d24", "EKK", 49188 },
45
{ "ekan0030.d24", "EKM", 50476 },
53
parse_args(int argc, char **argv)
57
maxchar = fontinfo[mtype].maxchar;
63
if (strcmp(*argv, "-f") == 0){
65
ku_from = atoi(*argv);
66
} else if (strcmp(*argv, "-t") == 0){
69
} else if (strcmp(*argv, "-n") == 0){
71
if ((nchline = atoi(*argv)) < 1){
72
fprintf(stderr, "-n option: value must be positive.\n");
74
} else if (strcmp(*argv, "-s") == 0){
77
} else if (strcmp(*argv, "-u") == 0){
79
maxchar = fontinfo[mtype].maxchar;
81
} else if (strcmp(*argv, "-k") == 0){
83
maxchar = fontinfo[mtype].maxchar;
85
} else if (strcmp(*argv, "-m") == 0){
86
mtype = TYPE_MOROHASHI;
87
maxchar = fontinfo[mtype].maxchar;
89
} else if ((strcmp(*argv, "-h") == 0)
90
|| (strcmp(*argv, "-help") == 0)
91
|| (strcmp(*argv, "--help") == 0)){
93
"Usage: mksample [-u -k -m]"
94
"[-f FROM_CODE] [-t TO_CODE] [-n LINE_NCHARS] [-s SIZE_CMD]\n");
95
fprintf(stderr, " LINE_NCHARS = %d\n", NCHLINE);
96
fprintf(stderr, " SIZE_CMD = %s\n", SIZECMD);
105
main(int argc, char **argv)
113
parse_args(argc, argv);
115
printf("\\documentclass[a4paper]{jarticle}\n");
116
printf("\\setlength{\\topmargin}{-25mm}\n");
117
printf("\\setlength{\\evensidemargin}{-10mm}\n");
118
printf("\\setlength{\\oddsidemargin}{-10mm}\n");
119
printf("\\setlength{\\textwidth}{180mm}\n");
120
printf("\\setlength{\\textheight}{263mm}\n");
121
printf("\\usepackage{ekanji}\n");
122
printf("\\usepackage{array}\n");
123
printf("\\renewcommand{\\arraystretch}{0.9}\n");
124
printf("\\def\\CH#1{#1}\n");
125
printf("\\begin{document}\n");
127
printf("\\begin{center}\n");
128
printf("\\textsf{\\textbf{\\LARGE e����\\ %s \\ ʸ������}}\\\\\n",
129
fontinfo[mtype].fontfile);
130
printf("\\vskip 1em\n");
131
printf("{\\LARGE \\verb|\\|\\texttt{%s}\\verb|{|\\textit{num}\\verb|}|}\n",
132
fontinfo[mtype].cmd);
133
printf("\\end{center}\n");
134
printf("\\vskip 3em\n");
136
printf("\\%s\n", sizecmd);
139
for (ku = ku_from; ku <= ku_to; ku++){
141
printf("\\vskip 1.2em\n");
143
printf("\\noindent\\textsf{\\textbf{%06d}}\\par\n", ku*100 + 1);
144
printf("\\begin{center}");
145
printf("\\begin{tabular}{|r|");
146
for (i = 0; i < nchline; i++)
151
for (i = 0; i < nchline; i++)
152
printf("&\\texttt{%02d}", i+1);
155
for (ten = 1; ten <= 100; ten++){
156
if ((ten % nchline) == 1){
159
printf("\\texttt{%06d}\n", ku*100 + ten);
161
printf(" &\\CH{\\%s{%d}}\n", fontinfo[mtype].cmd, ku*100 + ten);
163
while ((ten % nchline) != 1){
169
printf("\\end{tabular}\n");
170
printf("\\end{center}");
175
printf("\\end{document}\n");