1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
|
%% LyX 2.3.4.2 created this file. For more info, see http://www.lyx.org/.
%% Do not edit unless you really know what you are doing.
\documentclass[english]{article}
\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}
\usepackage[active]{srcltx}
\usepackage{amsbsy}
\makeatletter
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands.
%% Because html converters don't know tabularnewline
\providecommand{\tabularnewline}{\\}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands.
\usepackage{mflogo}
\usepackage{amsfonts}
\makeatother
\usepackage{babel}
\begin{document}
\title{\LaTeX{} on the Amiga - Old-School}
\author{Torsten Finnberg}
\date{10/28/2020\\v1.0}
\maketitle
\begin{abstract}
This is a guide to the installation of the \LaTeX{} distribution AmiWeb2c
in the version 2.1 on an emulated Amiga~4000 computer running Workbench
3.1. Furthermore the installation of a \LaTeX{} server for calling
\LaTeX{} from an editor is given and some tips on the installation
of new fonts are detailed. Also regard is given (code for: I have
no idea what I'm talking about) for the handling of PostScript fonts.
\end{abstract}
\section{Preface}
This guide is the result of many a night's tinkering, driven by both
nostalgia and stubbornness to get this damn thing to work, no matter
how many more cryptic error messages appeared\footnote{I am still convinced one of these was ``Out of Cheese Error.''}.
So as a way of exorcism and as a guide to fellow nostalgians\footnote{Is that a word?}
this guide was written. It could however never be written without
standing on the shoulders of those giants and gurus who ported \LaTeX{}
to the Amiga and the many people who keep Amiga related websites alive.
This guide is a small way of giving back.
Although this guide is based on an emulated Amiga running Workbench
3.1, there is no reason why it should not work on a physical Amiga.
An attempt to install TeX on a AmigaOs3.9 failed in the regard that
\LaTeX{} could not find the .aux-file generated by it. As \LaTeX{}
would only run on an a .tex-file if the full path was specified on
the command line, I suspect some changes in the command line parsing.
Note however that \TeX{} and \MF{} are resource hungry. The full installation
takes as near as makes no difference 50~MB of disk space, not accounting
for additional PostScript fonts. For \MF{} to run, I needed to set
Motherboard RAM to at least 16~MB. For an Amiga~4000 emulation the
compilation of a \LaTeX{} document can be said to be reasonably fast
but generation of fonts is something that calls for a cup of coffee.
Several ones. Likewise, rendering of a .ps-file by Ghostscript can
only be called...well, remember those old SF movies in which computers
spell out messages one letter at a time? Well, the title of the guide
has the word Old-School included, so don't expect the speed or functionality
of modern \TeX{} systems.
It must also be said what this guide is not about: The programming
of a \LaTeX{} document itself and the setup and running of the emulator\footnote{I used FS-UAE}.
It is also assumed that the reader has - like the author - a rudimentary
acquaintance with the command line (CLI) on an Amiga. I found the
website
\begin{quotation}
\texttt{https://wiki.amigaos.net/AmigaOS\_Manual:\_AmigaDOS}
\end{quotation}
very helpful in that aspect.
\subsection{Legalese}
There are a lot of trademarks mentioned in this guide and a lot of
programs which have authorship different from this author. All rights
to these trademarks and programs lie with their respective owners.
No infringement or financial gain is intended. On the same note, you
are free to copy this guide any way you wish, although if you publish
it in a modified form, please change the author. Oh, and a reference
to the original author would be nice.
\subsection{Disclaimer}
If using any of the instructions in this guide breaks your system
or leads to loss of data or gives you a headache...you are on your
own.
\section{Installation of the \protect\LaTeX{} system}
We now turn to the installation of the AmiWeb2c distribution in the
version 2.1 on an emulated Amiga~4000 with Workbench~3.1 installed.
For this distribution the \TeX{} version is 3.14159 and \LaTeX{} in
the form of \LaTeXe{} dates from 2001/06/01. But first we need some
\subsection{Preliminaries}
For the installation to proceed you need, besides a working emulated
Amiga, the archives \texttt{amiweb2c.tar.gz}, \texttt{amiweb2c-patch.tar.gz}
which can be found on the CTAN website
\begin{quotation}
\texttt{www.ctan.org/tex-archive/systems/amiga/amiweb2c}
\end{quotation}
The meat on the bones (for reasons I cannot fathom) is the archive
\begin{quotation}
\texttt{texmflib-7.10.tar.gz}
\end{quotation}
which can be found on
\begin{quotation}
\texttt{http://ftp.math.utah.edu/pub/tex/historic/systems/}
\texttt{web2c/texmflib}
\end{quotation}
We now set up the machinery to deal with compressed tar archives.
If you have this machinery already set up (and the \texttt{lha} program
installed) you can skip most of this and only do the final step of
the preliminaries. To uncompress the .tar.gz-files into .tar-files
you need \texttt{gzip:}
\begin{quotation}
\texttt{http://aminet.net/dev/gg/gzip-bin.lha }
\end{quotation}
To extract this .lha-file you need the \texttt{lha} program contained
in the file:
\begin{quotation}
\texttt{http://aminet.net/util/arc/lha.run }
\end{quotation}
The file \texttt{lha.run} is a self-extracting archive you extract
simply by executing it. Afterwards rename the extracted file \texttt{lha\_xxxxx}
to \texttt{lha} where \texttt{xxxxx} corresponds to your CPU. Then
move the file \texttt{lha} to \texttt{S:}. Now you can extract the
file \texttt{gzip-bin.lha }by
\begin{quotation}
\texttt{lha x gzip-bin.lha }
\end{quotation}
which creates the file \texttt{gzip-1.2.4-bin.tar}. To extract .tar-files
you need the \texttt{tar} program:
\begin{quotation}
\texttt{http://aminet.net/dev/gg/tar-bin.lha }
\end{quotation}
Extract this file and copy the resultant file \texttt{tar} to \texttt{S:}.
Then issue the command
\begin{quotation}
\texttt{tar xvf gzip-1.2.4-bin.tar}
\end{quotation}
The option ''x'' tells \texttt{tar} to extract the archive, the
option ``v'' to be verbose about it (list the files extracted) and
``f'' that \texttt{tar} should use the file given instead of the
default tape device. After this you'll find the new subdirectory \texttt{bin/}
in which various files reside. Copy the one file named \texttt{gzip}
to\texttt{ S:}. The program \texttt{gzip} needs a library file
\begin{quotation}
\texttt{http://aminet.net/util/libs/ixemul-48.0.lha}
\end{quotation}
After extracting this with \texttt{lha}, rename the resultant file
\texttt{ixemul-xxx.library}, where \texttt{xxx} corresponds to your
68xxx CPU-type, to \texttt{ixemul.library} and copy it to \texttt{LIBS:}.
After all this uncompress the three archive files given at the start
of this section by issuing
\begin{quotation}
\texttt{gzip -d amiweb2c.tar.gz}
\end{quotation}
producing the file \texttt{amiweb2c.tar}. The other archives are uncompressed
similarly.
Finally the previewer ShowDVI needs the file \texttt{req.library}
contained in the file
\begin{quotation}
\texttt{http://aminet.net/util/libs/ReqLib28.lha}
\end{quotation}
Extract \texttt{Reqlib28.lha} and move the file \texttt{req.library}
to \texttt{LIBS:}. After all these preliminaries we can now turn to
the actual
\subsection{Installation}
First find or generate via \texttt{makedir} a directory in which you
want to install Amiweb2c and \texttt{cd} into that directory. Then
issue the command
\begin{quotation}
\texttt{tar xvf PATHTO:amiweb2c-patch.tar}
\end{quotation}
where \texttt{PATHTO:} is the path to the .tar-file. A message that
\texttt{pdftex.pool} could not be extracted as there is no such file
appears. Ignore it. Then \texttt{cd} into the new subdirectory \texttt{Amiweb2c-2.1}
and issue the command
\begin{quotation}
\texttt{tar xvf PATHTO:texmflib-7.10.tar}
\end{quotation}
extracting the files in this archive to the subdirectory \texttt{texmf}.
Now go one level up in the directory tree by \texttt{cd /} and issue
\begin{quotation}
\texttt{tar xvf PATHTO:amiweb2c.tar}
\end{quotation}
The reason for this strange sequence of commands is that both \texttt{amiweb2c.tar}
and \texttt{texmflib-7.10.tar} come with their own .pool files, but
the initex process (see below) fails with the texmflib ones. So extracting
amiweb2c \emph{after} texmflib overwrites the non-working .pool-files.
The extraction of \texttt{amiweb2c-patch.tar} first is just a convenient
way to create the \texttt{Amiweb2c-2.1} directory. In the following
there will be given a lot of paths beginning with \texttt{../texmf}
where \texttt{..} stands for the full path of the \texttt{Amiweb2c-2.1}
directory.
In the \texttt{Amiweb2c-2.1} directory there is a subdirectory
\begin{quotation}
\texttt{bin/m68000-amigaos2.1/local}
\end{quotation}
which holds a file \texttt{DosPrefs}. Copy this file to the folder
\texttt{System:wbstartup}. Not sure what this program does, but apparently
there are different conventions on directory naming which make \TeX{}
find files only if the full path is given if \texttt{DosPrefs} has
not been started beforehand.
The next step is to make the file
\begin{quotation}
\texttt{..texmf/amiweb2c/s/user-startup.entry}
\end{quotation}
writable by issuing in its directory the command
\begin{quotation}
\texttt{protect user-startup.entry +w}
\end{quotation}
and then edit the file according to the comments in that file. After
that, insert a line
\begin{quotation}
\texttt{execute ..texmf/amiweb2c/s/user-startup.entry}
\end{quotation}
in the file \texttt{S:user-startup} where you must replace the \texttt{..}
with the omitted part of the absolute path. The \texttt{rxset...}
lines in \texttt{user-startup} are used to set necessary preferences
for the \TeX{}-server (see below). To process these lines correctly
you need to preface the \texttt{execute} line given above with the
line \texttt{rexxmast}, starting the Rexx server during startup. Also
the lines containing \texttt{PSFONTS:} can be commented out, if you
do not use PostScript fonts. It is not necessary, but I found it helpful
to add the line
\begin{quotation}
\texttt{assign TEXMF: ..texmf}
\end{quotation}
where again the \texttt{..} must be replaced by the full path. This
gives a quick way to \texttt{cd} into the central \texttt{../texmf}
directory.
Finally, in \texttt{..texmf/amiweb2c} there are two subdirectories,
namely \texttt{s} and \texttt{rexx}. Copy all files in \texttt{s}
to \texttt{S:} (except \texttt{user-startup.-entry}) and all files
in \texttt{rexx} to \texttt{REXX:} (By default \texttt{S:} and \texttt{REXX:}
point to the same directory.). After these steps reboot your Amiga.
After rebooting, \texttt{cd} into \texttt{..texmf} and start the script
\texttt{mktexlsr}. This creates the file \texttt{ls-R} which acts
as a lookup table for the \TeX{} system. Without it \TeX{} complains
a lot about files it can't find. There is a zoo of environment variables
to take care of that, found here
\begin{quotation}
\texttt{http://kirste.userpage.fu-berlin.de/chemnet/use/info/}
\texttt{kpathsea/kpathsea\_5.html}
\end{quotation}
If you want to set these manually, be my guest. This script must always
be started in \texttt{../texmf}. Then issue \texttt{cd} w\texttt{eb2c}
and make the file \texttt{texsys.aux} writable by
\begin{quotation}
\texttt{protect texsys.aux +w}
\end{quotation}
Now to install \TeX , issue
\begin{quotation}
\texttt{tex -{}-ini -{}-fmt=tex plain}
\end{quotation}
\TeX{} will start and the CLI prompt will change to the \TeX{} prompt.
(Without having run the script \texttt{mktexlsr} before this step
\TeX{} will complain that it cannot find the file \texttt{plain}.)
At this prompt enter the optional lines
\begin{quotation}
\texttt{\textbackslash input hyphen.cfg}
\end{quotation}
or else just
\begin{quotation}
\texttt{\textbackslash dump}
\end{quotation}
This runs the initex process for the plain \TeX{} format and will return
to the CLI prompt. Afterwards issue
\begin{quotation}
\texttt{mf -{}-ini -{}-base=mf plain}
\end{quotation}
so the initiation process for \MF{} will start. At the \MF{} prompt,
enter the lines
\begin{quotation}
\texttt{input modes}
\texttt{dump}
\end{quotation}
and \MF{} will run its initiation process and return to the CLI prompt.
The last initiation process is that for \MP{} started with the command
\begin{quotation}
\texttt{mpost -{}-ini -{}-mem=mpost plain}
\end{quotation}
At the \MP{} prompt enter the line
\begin{quotation}
\texttt{dump}
\end{quotation}
Afterwards issue \texttt{cd /} and run the script \texttt{mktexlsr}.
You now have a working \TeX -system.
To install \LaTeX , issue\texttt{ }in\texttt{ ../web2c} the command
\begin{quotation}
\texttt{tex -{}-ini -{}-fmt=latex latex.ltx}
\end{quotation}
running the initex process for the \LaTeX{} system. Finally execute
\texttt{mktexlsr} again in \texttt{..texmf}. You can check the success
of the initex process for \LaTeX{} by
\begin{quotation}
\texttt{latex ltxcheck}
\end{quotation}
You can now compile a \LaTeX{} document \texttt{filename.tex} in your
current directory by
\begin{quotation}
\texttt{latex filename}
\end{quotation}
Note that if \LaTeX{} finds the .mf-file of a font but not the corresponding
.tfm-file, it will call \MF{} automatically via CallMF2. However
this needs memory to keep both \LaTeX{} and \MF{} running at the same
time. For me worked 2~MB Chip RAM and 8~MB Fast RAM. Lower values
may work, but I did not test this. The previewer ShowDVI does not
seem to have this problem. This concludes the installation of the
\LaTeX{} system.
\subsubsection{A note on other \protect\TeX{} systems}
The file \texttt{README.amiweb2c} in \texttt{../texmf/doc/amiga},
which informs much (but not all) of the preceding section, details
the initex processes for further \TeX{} systems. These are the $\varepsilon$-\TeX ,
pdf\TeX{} and omega systems. To install these, additional files are
needed.
\paragraph{$\boldsymbol{\varepsilon}$-\protect\TeX}
The installation of $\varepsilon$-TeX is not really necessary since
$\varepsilon$-\TeX{} is of version 3-14159-2.0 from 2001/06/01 same
as the \LaTeXe{} system which incorporates all feature of $\varepsilon$-\TeX{}
so $\varepsilon$-\TeX{} muyo!\footnote{Wait! Where did that giant hammer come from?}
To install the $\varepsilon$-\TeX{} system you need the file
\begin{quotation}
\texttt{http://ftp.math.utah.edu/pub/tex/historic/systems/web2c/}
\texttt{etex/etexlib-2.1.tar.gz}
\end{quotation}
which gets untar-ed in \texttt{...Amiweb2c-2.1}. After a run of \texttt{mktexlsr}
\texttt{cd} to \texttt{...web2c} and issue the commands
\begin{quotation}
\texttt{etex -{}-ini -{}-efmt=etex {*}etex.src}
\texttt{\textbackslash input hyphen.cfg (optional)}
\texttt{dump}
\texttt{etex -{}-ini -{}-efmt=tex plain}
\texttt{\textbackslash input hyphen.cfg (optional)}
\texttt{dump}
\end{quotation}
I issued a \texttt{mktexlsr} at this point. Not sure if it makes any
difference but it surely can't hurt. To run the initiation process
for $\varepsilon$-\LaTeX{} issue the commands
\begin{quotation}
\texttt{etex -{}-ini -{}-efmt=elatex {*}latex.ltx}
\texttt{etex -{}-ini -{}-progname=elatex latex.ltx}
\end{quotation}
so the initiation processes for $\varepsilon$-\TeX{} and its \LaTeX{}
variant run without problems. Calling these programs is done by \texttt{etex}
or \texttt{elatex} on the appropriate .tex-file.
\paragraph{pdf\TeX{}}
In order to install pdf\TeX{} get the file
\begin{quotation}
\texttt{http://ftp.math.utah.edu/pub/tex/historic/systems/web2c/}
\texttt{web2c-7.2/pdftexlib-0.12h.tar.gz}
\end{quotation}
and extract it in \texttt{../amiweb2c-2.1/}. Then from \texttt{../texmf/web2c}
issue the commands
\begin{quotation}
\texttt{pdftex -{}-ini -{}-fmt=pdftex plain.tex}
\texttt{\textbackslash input hyphen.cfg (optional)}
\texttt{dump}
\end{quotation}
and to initiate the pdf\LaTeX{} system
\begin{quotation}
\texttt{pdftex -{}-ini -{}-fmt=pdflatex latex.ltx}
\end{quotation}
Calling these programs is done by \texttt{pdftex} or\texttt{ pdflatex}
on the appropriate .tex-file. For a manual see
\begin{quotation}
\texttt{https://tex.loria.fr/moteurs/pdftex0.12-manual.pdf}
\end{quotation}
There is also a file \texttt{pdftexlib-0.14h.tar.gz} but I chose the
file above as it corresponds to the version of the pdf\TeX{} binary.
Note that installing the 0.14h library does not update the pdf\TeX{}
binary. If you want to do that you need to install from web2c source.
I have no idea how to do that.
\paragraph{omega}
For the omega system, a 16~bit, Unicode based \TeX{}-system there
is the file
\begin{quotation}
\texttt{http://ftp.math.utah.edu/pub/tex/historic/systems/web2c/}
\texttt{omega/omega-lib-1.5.tar.gz}
\end{quotation}
which gets untar-ed in \texttt{../Amiweb2c-2.1}. After the customary
\texttt{mktexlsr} the ini process is started in \texttt{../web2c}
by
\begin{quotation}
\texttt{omega -{}-ini -{}-progname=lambda lambda.tex}
\end{quotation}
after which a further 8~MB of disk space are taken up. This gets
run on a \texttt{test.tex} file as
\begin{quotation}
\texttt{lambda test.tex}
\end{quotation}
I do not use the omega system which has been abandoned anyway so this
is just for completeness sake.
\subsection{Configuration of ShowDVI\label{subsec:Configuration-of-ShowDVI}}
To view the .dvi-file \texttt{filename.dvi}, produced by the compilation
of your \TeX{} document, you need the command
\begin{quotation}
\texttt{showdvi filename}
\end{quotation}
For standard resolution of 100~dpi this should produce results. For
full functionality, however, some tweaks need to be made in the configuration
of ShowDVI:
The configuration file \texttt{ShowDVI.config} located in \texttt{..texmf/pastex/config}
is set to run ShowDVI on its own screen in the NTSC format. If, like
me, you are running a PAL monitor the line
\begin{quotation}
\texttt{screen-mode ntsc}
\end{quotation}
must be changed to
\begin{quotation}
\texttt{screen-mode pal}
\end{quotation}
ShowDVI in the installed configuration starts on its own screen. If
you want the program to run on the Workbench screen, the line
\begin{quotation}
\texttt{use-own-screen no}
\end{quotation}
must be changed to
\begin{quotation}
\texttt{use-own-screen yes}
\end{quotation}
The disadvantage of this is, you loose the automatic switching to
the previewer when calling the \LaTeX{} server.
The fonts for LA\TeX{} are defined via .mf-files which \MF{} uses
to produce the .tfm-files for typesetting and the .pk-files which
ShowDVI uses for graphical representation. The .mf-files are found
in directories of the form \texttt{..texmf/fonts/source/supplier }where
\texttt{mode} is a printer specific mode used by \MF{} detailed in
\texttt{modes.mf}. The \texttt{supplier} part refers to subdirectories
in \texttt{..texmf/fonts/source} as for example \texttt{public/cm}
or \texttt{jknappen/ec}.\texttt{ }
The way ShowDVI finds the .pk-files is defined in \texttt{ShowDVI.fnt}
located in \texttt{..texmf/pastex/config}. The main part consists
of lines of the form
\begin{quotation}
\texttt{basepkdir res res /mode}
\texttt{basepkdir res res \TeX :..fonts/pk/mode/supplier1}
\texttt{basepkdir res res \TeX :..fonts/pk/mode/supplier2}
\texttt{...}
\end{quotation}
For example one of the ``suppliers `` is ``misc'' so to use the
fonts in that subdirectory you need for the mode \texttt{amiga} below
the line
\begin{quotation}
\texttt{basepkdir 100 100 /amiga }
\end{quotation}
to add the line
\begin{quotation}
\texttt{basepkdir 100 100 \TeX :..fonts/pk/amiga/misc}
\end{quotation}
and likewise for all other modes.
An edit is necessary for the existing resolution 120~dpi which uses
the mode \texttt{OneTwoZero}. The lines below the line
\begin{quotation}
\texttt{basepkdir 120 120 /OneTwoZero}
\end{quotation}
are of the form
\begin{quotation}
\texttt{basepkdir 120 120 \TeX :..fonts/pk/amiga/supplier}
\end{quotation}
but need to be changed for each supplier to
\begin{quotation}
\texttt{basepkdir 120 120 \TeX :..fonts/pk/OneTwoZero/supplier}
\end{quotation}
as CallMF2 for this resolution is called with the mode \texttt{OneTwoZero}
and thus stores the .pk-files in the subdirectory \texttt{../texmf/fonts/pk}/\texttt{OneTwoZero},
so in the original version of \texttt{ShowDVI.fnt} ShowDVI would search
in the subdirectory \texttt{../texmf/fonts/pk}/\texttt{amiga} and
not find the files.
\subsubsection{AMS fonts}
The AMS fonts also contain Cyrillic fonts which are stored in the
subdirectory \texttt{..ams/cyrillic} in \texttt{..texmf/fonts/source}.
So if you need these fonts, add the lines
\begin{quotation}
\texttt{basepkdir res res \TeX :../fonts/pk/mode/ams/cyrillic}
\end{quotation}
for the respective resolutions/modes in \texttt{ShowDVI.fnt}.
If you want to use AMS fonts, there is a file
\begin{quotation}
\texttt{..texmf/doc/fonts/amsfonts/amsfndoc.tex}
\end{quotation}
which can be \TeX -ed in that directory with the CLI command \texttt{tex~amsfndoc.tex}.
where the .tfm-files are part of the distribution. However as ShowDVI
generates the .pk-files for \emph{all} AMS fonts, viewing the .dvi-file
can take a bit of time.
\section{Installation of the \protect\TeX{} server}
The Amiweb2c distribution comes with a set of scripts located in\texttt{
\TeX :rexx} which enables you to call \LaTeX{} from a text editor with
the push of a key. There are scripts for Cygnus Editor (CED) with
the ending .ced and for MicroEmacs (memacs) ending on .mg. This guide
only details the use of these scripts for CED.
Independent of what editor you use, \texttt{InitTex}, copied during
the installation to\texttt{ S:}, needs a bit of editing: comment out
the lines
\begin{quotation}
\texttt{run >NIL: SpecialHost}
\texttt{WaitForPort special\_dvi}
\end{quotation}
by putting a semicolon at the beginning of the lines. The reason is
that \texttt{SpecialHost} needs the file \texttt{muimaster.library}
to work. But even with MUI installed I could not get \texttt{SpecialHost}
to work. Furthermore the \LaTeX{} server calls the Rexx script \texttt{namestruc}
located in \texttt{\TeX :rexx}. But the server script expects this
routine in \texttt{REXX:} so issue the command
\begin{quotation}
\texttt{copy \TeX :rexx/namestruc REXX:}
\end{quotation}
The \TeX -server scripts for CED need not be copied to \texttt{REXX:},
but are called from where they reside. To install the \TeX -server
scripts in CED, use the menu entry ``Install DOS/ARexx command''
in the ``Special'' menu, enter the number of the function key where
you want to install the command and then enter the command. You need
to use the menu entry ``Save DOS/ARexx commands'' to make this permanent.
The scripts thus to install in CED are
\begin{quotation}
\texttt{\TeX :rexx/InitTex}
\texttt{\TeX :rexx/Start\_\TeX .ced}
\texttt{\TeX :rexx/Quit\_Tex}
\end{quotation}
I installed the above three scripts on F1,F3 and F10 in that order.
This choice of function keys is of course just one possibility.
The script \texttt{InitTex} starts the \TeX -server and ShowDVI on
a different screen, but does not call \TeX{} to compile your document.
To compile your active document, run \texttt{Start\_\TeX .ced}. If
you use \texttt{Start\_\TeX .ced} and the server is not running yet,
\texttt{Start\_\TeX .ced} will automatically start the server.
You can install \texttt{Start\_\TeX .ced} with the option ``\texttt{?}'',
so that \texttt{Start\_\TeX .ced} \texttt{?} will always ask for the
format to use. Standard would be \texttt{plain} or \texttt{latex}.
If you set the environment variable \texttt{ASKFORMAT} to \texttt{1}
then you will always be asked which format to use. You can call \texttt{Start\_\TeX .ced}
with a definite format by installing the command \texttt{Start\_\TeX .ced
\&format} where \texttt{format} is the format in question. Regardless
of the method, the format will be stored in the environment variable
\texttt{TEXFORMAT} which is updated whenever you use a different format.
If you add the line
\begin{quotation}
\texttt{setenv TEXFORMAT format}
\end{quotation}
to your user-startup file, the \TeX -server and do not use an argument
for \texttt{Start\_\TeX .ced} the \TeX -server will be always be called
with the format \texttt{format}.
Calling \texttt{Quit\_TeX} then stops the server and closes ShowDVI.
You need to stop the server in order to stop ShowDVI manually.
As a final tweak: ShowDVI is configured to switch to CED by pressing
the F5 key. There is a counterpart \texttt{showdvitofront} in \texttt{\TeX :rexx}
which similarly switches to the ShowDVI screen. Installing \texttt{showdvitofront}
on the F5 key in CED in the same way as detailed above gives a nice
way of toggling between the editor and the previewer.
\subsection{Wishlist}
The \TeX -server so far accepts only the commands \texttt{compile}
for starting \LaTeX{} and \texttt{quit} for, well, you've guessed it.
It does not automatically call \LaTeX{} again to correct for unresolved
references nor does it support programs like bibtex, makeindex or
dvips. It would be possible to take the subbranch of the script executing
the compile order as a template to expand the capabilities of the
\TeX -server, but as these scripts are themselves derived from web2c
programs it would be less messy if the original web2c program CallMF2
is extended. So if any \TeX -guru out there fancies some nights of
tinkering...
\section{Fonts and all that}
Actually this section is not about ``and all that''. It is not about
what fonts actually are, but what is most memorable about them\footnote{``1066 and all that'' by Sellar and Yeatman. When working out the
test questions for each chapter do not attempt to write on both sides
of the paper at the same time.}... What is most memorable about fonts is that there two kinds: Bitmap
fonts using \MF{} to generate .pk-files giving the pixelated representation
of the font and outline fonts defined so that they can be rendered
in terms of curves ``on the fly'' to give a graphical representation
using the programming language PostScript. We start with the former
and then turn to the latter.
\subsection{Installation of new fonts}
To install new fonts based on \MF{}, you need the defining .mf-files.
Store these in a subdirectory to \texttt{..texmf/fonts/source}, say
\texttt{newfontsdir} and run \texttt{mktexlsr} from \texttt{..texmf/}
to make these files findable to \MF{}. If you compile your document
with \LaTeX , CallMF2 will automatically generate the .tfm-files \LaTeX{}
needs to typeset the new fonts. For PostScript fonts this process
is more involved, and will only be briefly (read: to the extent of
my meager knowledge) be touched upon below.
Like \LaTeX , ShowDVI will automatically use CallMF2 to generate the
.pk files, but first you need to tell ShowDVI where to find the .pk-files.
To do this, you need to add for each resolution or mode in \texttt{ShowDVI.fnt}
the line
\begin{quotation}
\texttt{basepkdir \TeX :../fonts/pk/mode/newfontsdir}
\end{quotation}
where \texttt{mode} is the respective mode in question found in \texttt{modes.mf}.
To use the new font in \LaTeX , include the line
\begin{quotation}
\texttt{\textbackslash newfont\{\textbackslash fontcommand\}\{mffilename
at xxxpt\}}
\end{quotation}
where \texttt{xxx} is the size of the font in pt (1/72.27 inch) before
the part in your document where you actually use the font. Alternatively
you can use
\begin{quotation}
\texttt{\textbackslash newfont\{\textbackslash fontcommand\}\{mffilename
scaled 1000\}}
\end{quotation}
The factor 1000 means a scaling factor of 1. So if \texttt{mffilename}
encodes a font of 10~pt size \texttt{..scaled 1200} would tell \TeX{}
to use it magnified at 12~pt size.
Replace \texttt{fontcommand} with any label you want. To switch to
the new font, use the command \texttt{\textbackslash fontcommand}.
If you don't want to use the font for the remainder of your document,
enclose \texttt{\textbackslash fontcommand} and the text it applies
to in curly brackets. If you want to switch back to the standard computer
modem font, use
\begin{quotation}
\texttt{\textbackslash fontfamily\{cmr\}\textbackslash selectfont}
\end{quotation}
Alternatively you can enclose the \texttt{\textbackslash fontcommand}
in curly brackets
\begin{quotation}
\texttt{\{\textbackslash fontcommand text...\}}
\end{quotation}
If you want to save a bit of time by calling \MF{} only once, forgo
the calling of \texttt{mktexlsr} and generate the .tfm-files and the
.pk-files in one go by \texttt{cd}'ing into \texttt{..texmf/fonts/source/newfontsdir}
and issuing the commands
\begin{quotation}
\texttt{mf ``\textbackslash mode:=amiga;'' ``mag:=1;'' input
mffilename}
\texttt{gftopk mffilename.100gf mffilename.pk}
\end{quotation}
where \texttt{mffilename} is the name of the .mf-file in question.
Then move the generated .tfm-file to\textbf{ }
\begin{quotation}
\texttt{..texmf/fonts/tfm/newfontsdir}
\end{quotation}
and the .pk-file to
\begin{quotation}
\texttt{..texmf/fonts/pk/amiga/newfontsdir/dpi100}
\end{quotation}
It is advisable to run \texttt{mktexlsr} from \texttt{..texmf/} at
this point. Furthermore, you need still need to edit \texttt{ShowDVI.fnt}
as outlined above. This gives you the fonts for the standard resolution
of 100~dpi in one go. For other resolutions ShowDVI needs to call
\MF{} again, though. This method is only workable for small sets
of fonts. For whole font families it is advisable to use the automatic
generation process.
For other printers/resolutions the corresponding definition can be
found in \texttt{modes.mf} (in \texttt{..texmf/metafonts}). If you
run \MF{} in another mode with resolution \texttt{xxx~dpi} or with
another magnification, you get a file \texttt{ending on .xxxgf}, the
.pk-file of which needs to be stored in
\begin{quotation}
\texttt{..texmf/fonts/pk/mode/newfontsdir/dpixxx}
\end{quotation}
If \MF{} cannot find the .mf-file in question and you want \MF{}
to stop asking, enter ``\texttt{null}'', and \MF{} will use the
default file \texttt{null.mf}.
\subsection{A note on ec fonts}
The Amiweb2c distribution includes the .mf-files of the ec font family
in the T1 encoding. You can set your document in this font family
by using
\begin{quotation}
\texttt{\textbackslash usepackage{[}T1{]}\{fontenc\}}
\end{quotation}
in the preamble. You need to configure \texttt{ShowDVI.fnt} for the
ec fonts, as shown in section~\ref{subsec:Configuration-of-ShowDVI}
where the subpath to the .mf-files is
\begin{quotation}
\texttt{..texmf/fonts/source/jknappen/ec}
\end{quotation}
The \MF{} run on an ec-font takes about 4 minutes while a run on
a cm font takes 1 minute 30 seconds, so it is advisable to download
the .tfm-files of the ec fonts from CTAN and copy them to \texttt{..fonts/tfm/jknappen/ec}
so that only the generation of the -pk-files is necessary.
A hitch exists for the small ec fonts like ecrm0500 as CallMF2, called
by \LaTeX , runs \MF{} in \texttt{nullmode} with a 101~dpi resolution.
For small fonts this mode throws up the error message ``strange path
(turning number zero)``, seemingly due to rounding errors. A list,
not claiming to be complete, of problematic .mf-files for the ec fonts
is:
\begin{verbatim}
eccc0500-0800,ecoc0500,ecsc0500-0800,ecsi0500-0800,
ecsl0500-0900,ecso0500-0700, ectc0500-0700, ecs1200,
ecss0500-2488, ectt0500, ectt0900, ecti 0500, ecti0700, ecbx0500
\end{verbatim}
The trick is to generate the .tfm- and .pk\-files for such offending
fonts by the manual method described in the previous subsection with
the mode \texttt{ljfour} corresponding to 600~dpi and store the .tfm-files
in
\begin{quotation}
\texttt{..texmf/fonts/tfm/jknappen/ec/}
\end{quotation}
and the the .pk-files in
\begin{quotation}
\texttt{..texmf/fonts/pk/ljfour/jknappen/ec/dpi600/}
\end{quotation}
If you are using the small ec fonts for the first time, it is advisable
to run ShowDVI from the command line and not from the server as in
the former case you get detailed error messages about which font is
causing such problem. ShowDVI is not configured ``out of the box''
for the use of ec fonts, so need to modify its config file as outlined
in the previous section.
\subsection{PostScript fonts}
The following is a few notes based on gleanings from the wild world
of PostScript fonts for \LaTeX{}. It does not claim to be authoritative
or in any way complete. Nor should the same functionality as of a
modern \TeX{} system be expected. After all, pdf\TeX{} for Amiweb2c
is in version 0.12h. I will not even begin to discuss OpenType or
TrueType fonts.
\subsubsection{Crating PostScript files with dvips}
To convert a .dvi-file \texttt{test.dvi} produced by TeX into a PostScript
documents is done by the program dvips by calling
\begin{quotation}
\texttt{dvips test}
\end{quotation}
producing the PostScript file \texttt{test.ps}. Dvips can be made
to tailor its output to a specific printer by calling it with the
option \texttt{-Pxxx}, where \texttt{xxx} is part of the name in files
of the type \texttt{config.xxx}, usually located in \texttt{..texmf/dvips/config}.
The \texttt{xxx} also correspond to modes found in \texttt{modes.mf}
(in \texttt{..texmf/metafonts/misc}) which also gives the physical
printer model these modes refer to. For Amiweb2c the following config
files are available:
\begin{quotation}
\begin{tabular}{|c|c|c|}
\hline
\texttt{xxx} & \texttt{resolution / dpi} & \texttt{printer model}\tabularnewline
\hline
\hline
\texttt{canonex} & \texttt{600} & \texttt{LaserWriter Pro 630}\tabularnewline
\hline
\texttt{cx} & \texttt{300} & \texttt{Canon CX}\tabularnewline
\hline
\texttt{deskjet} & \texttt{300} & \texttt{HP DeskJet 500}\tabularnewline
\hline
\texttt{epson} & \texttt{240x216} & \texttt{Epson MX/FX 9-pin}\tabularnewline
\hline
\texttt{ibmvga} & \texttt{110} & \texttt{IBM VGA monitor}\tabularnewline
\hline
\texttt{ljfour} & \texttt{600} & \texttt{HP LaserJet 4}\tabularnewline
\hline
\texttt{qms} & \texttt{300} & \texttt{QMS (Xerox engine)}\tabularnewline
\hline
\texttt{toshiba} & \texttt{180} & \texttt{Toshiba 13XX}\tabularnewline
\hline
\end{tabular}
\end{quotation}
The mode \texttt{config.deskjet} is the default one.
\subsubsection{Dvips with PostScript fonts}
Dvips works with CallMF2 to produce .pk-files on the fly. However
dvips also works\footnote{And I use the word works in a very fuzzy sense.}
with native PostScript fonts. In the \TeX{} world a font is defined
via two files: the .tfm-file encoding the way a font is typeset and
a .mf-file encoding in lines and curves how a font actually looks.
Their counterparts the PostScript world are the .afm-file (Adobe Font
Metric) and the .pfa-file (PostScript Font Adobe) in human readable
format or in packed, binary form as .pfb-files.
For the standard Computer Modern (cm) fonts there is a PostScript
version known as bakoma fonts which can be found in the bakoma package
on CTAN. To install the bakoma fonts, copy the .pfb-files to the sub-directories
\texttt{cm/ and ams/ in} \texttt{..fonts/type1/bakoma/}. Then copy
the files \texttt{cmfonts.map}, \texttt{amsfonts.map} to \texttt{..texmf/dvips/config}
and edit the file \texttt{config.ps} in \texttt{..texmf/dvips} to
include the lines
\begin{quotation}
\texttt{p +cmfonts.map}
\texttt{p +amsfonts.map}
\end{quotation}
A run of \texttt{mktexlsr} is to follow. Then using \texttt{dvips
<filename>} on a .dvi-file \texttt{<filename.dvi>} containing cm fonts
will produce a .ps-file \texttt{<filename.ps>} containing the PostScript
outline versions of cm fonts. Dvips ``downloads'' that is incorporates
the .pfb files into the PostScript file. If you don't want that for
reason of file size you need to edit the corresponding map files and
remove the ``<'' in front of the token xxx.pfb where xxx is the
name of the -pfb-file in question. A test is given by \texttt{cd}-ing
into \texttt{..texmf/doc/fonts/amsfonts} and running \texttt{dvips}
on \texttt{amsfndoc.dvi}.
Running dvips on a .dvi-file in OT1 encoding with the bakoma .pfb-files
present but not with the map files of the bakoma package installed,
it throws up the error message that it cannot find the file \texttt{f7b6d320.enc}.
This file is referred to in the default map file \texttt{psfonts.map}.
You can download this .enc-file (and other .enc files also referred
to in \texttt{psfonts.map} for cm fonts) from
\begin{quote}
\texttt{http://chocolatshalba.ch/files/texlive/texmf/fonts/}
\texttt{enc/dvips/tetex/}
\end{quote}
all of which which gets copied into \texttt{.../dvips/base}. Then
dvips runs cleanly.
If you want to use the ec fonts in their Postscript version, get the
file \texttt{cm-super.zip} from CTAN. Note that they eat up about
60MB of disk space. Copy the .pfb-files to \texttt{.../texmf/fonts/type1/public/cm-super}
and the .enc-files to \texttt{../dvips/base}. Dvips comes with the
default map \texttt{psfonts.map} which already contains the necessary
mappings for the cm-super fonts. A run of \texttt{mktexlsr} is to
follow.
For pdf\TeX{} copy the .enc-files and .map-files from \texttt{cm-super.zip}
to\\ \texttt{..texmf/pdftex/base} and add to \texttt{pdftex.cfg}
in the same directory the line
\begin{quotation}
\texttt{m +cm-super-t1.map}
\end{quotation}
and similar for all the other .map-files.
\subsubsection{Ghostscript}
ShowDVI in its Amiweb2c incarnation can only preview .dvi-files containing
bitmap-based fonts but not .dvi-files containing PostScript fonts
which are based on outlines. In the same vain ShowDVI does not know
how to handle .ps-files or .pdf-files created by dvips or pdflatex.
However there is a previewer for .ps- and .pdf-files called Ghostscript.
To install Ghostscript, download from \texttt{aminet.net} the files
\begin{quotation}
\texttt{GS510-fonts-st.lha}
\texttt{GS510-fonts-ot.lha}
\texttt{GS510-data.lha}
\texttt{GS510-040fpu.lha}
\texttt{GS510Fontmap.lha}
\end{quotation}
To automatize the install process also download \texttt{GS510-Install.lha}.
Extract this file and copy the above .lha-files into the created directory
\texttt{Ghost\_Install}. Then get \texttt{Installer\_43.3.lha} from
\texttt{aminet.net}, extract it and copy the file \texttt{Installer}
to \texttt{C:}. Then run one of the install-scripts in \texttt{Install\_Ghost}.
To install Ghostscript in \texttt{../Amiweb2c-2.1/ghostscript} as
in \texttt{user-startup.entry} create the subdirectory \texttt{ghostscript}
in \texttt{../Amiweb2c-2.1} either by hand or during the installation
process. Note that this installation adds to \texttt{user-startup}
a section starting with \texttt{;Begin Ghostscript} which has then
entry \texttt{assign PSFONTS:Ghostscript:fonts} without the qualifier
``\texttt{add}'', undoing all the settings to \texttt{PSFONTS:}
in \texttt{user-startup.entry}. So it is advisable to uncomment this
line. AFAICT Ghostscript 5.10 ignores that assignment anyway.
Invoke Ghostscript on a .ps-file in the directory of that .ps-file
by \texttt{gs <psfile>}. The resolution of the display window of can
be changed by the command line option \texttt{\textendash r<dpi>}.
I have found that \texttt{<dpi>=250} is the maximum value, for \texttt{<dpi>=300}
Ghostscript crashes. This might be a problem of insufficient memory.
Ghostscript has two ways of finding the .pfb-files (or .pfa-files,
the ASCII variant of the binary .pfb-files) for a font: One is the
file \texttt{Fontmap} in \texttt{Ghostscript:} which has lines of
the form
\begin{quotation}
\texttt{/fontname (pfbfilename.pfb);}
\end{quotation}
where \texttt{fontname} is the full font name as given in the .pfb-file
in the line beginning with /Fontname and \texttt{pfbfilename} is,
well, you've guessed it. If only \texttt{pfbfilename} is given, Ghostscript
looks for it in \texttt{Ghostscript:fonts}. But you can also give
the full path like \texttt{TYPE1DIR:supplier/typeface/pfbfilename.pfb}.
Another way is to set the environment variable \texttt{GS\_FONTPATH}
by
\begin{quotation}
\texttt{setenv GS\_FONTPATH Path}
\end{quotation}
The problem is that AFAICT Ghostscript 5.10 does not search in multiple
paths of the form \texttt{Path1,Path2...} nor does it accept wild
cards like \texttt{\#?} or \texttt{{*}} so for Ghostscript all .pfb-files
would be needed to be stored in one directory if you want to use the
environment variable.
On a final note, avoid running \texttt{dvips} and \texttt{gs} from
the same CLI window. There seem to be some incongruities which causes
dvips to crash or stall.
\subsubsection{Ghostscript and PostScript cm/ec fonts}
Running dvips on a .dvi-file containing cm fonts in the OT1 encoding
using the default psfonts.map gives a clean run. But when viewing
the resulting .ps-file in Ghostscript 5.10 there are missing glyphs.
Viewing that .ps-file on a modern modern PC with TeXLive installed
gives the same result. An even bigger but\footnote{I can't lie, I had to.}
is that using the maps from bakoma package, the .ps-file is displayed
correctly in Ghostscript but has missing glyphs and weird font substitution
when viewing on a modern PC.
For the ec fonts in the cm-super form dvips runs cleanly, but Ghostscript
throws up the maddeningly unhelpful error message ``/undefined in
T1Encoding''. Viewing the same .ps-file on a modern PC has missing
glyphs.
\subsubsection{Ghostscript and pdf\TeX{}}
Running pdflatex on .tex files with bakoma or cm-super PostScript
fonts produces a .pdf-file which is is displayed without errors on
a modern PC but Ghostscript throws up the maddeningly unhelpful error
message ``undefined in \yen''. For PostScript ec fonts from the
Latin Modern package pdflatex throws up ``unexpected end of file''.
\subsubsection{Ghostview and PostScript New Font Selection Scheme\label{subsec:psnfss}}
The PostScript New Font Selection System (psnfss) detailed in \texttt{psnfss.pdf}
in \texttt{..texmf/doc/latex/psnfss} works in Amiweb2c for all packages
like \texttt{avant, courier} etc. (see \texttt{psnfss.pdf} for a full
list) . Note that the font outlines for all packages in the psnfss
are not part of the distribution due to licensing. However, for the
fonts used in \texttt{psnfss} (see below) Ghostscript comes equipped
with its own version of the .pfb-files (the .gsf-files) and will call
them automatically. The .gsf versions are generally seen as lacking
in quality, but with the resolution on an old-school Amiga this is
not really an issue. Two exceptions are the Utopia fonts and the Charter
fonts which Ghostscript has on board in the form of .pfa-files. Alternatively
for the packages \texttt{charter} and \texttt{utopia} there are freely
available .pfb-files on CTAN. To install these, copy them into
\begin{quotation}
\texttt{.../texmf/fonts/type1/adobe/charter/}
\texttt{.../texmf/fonts/xxx/adobe/utopia}.
\end{quotation}
respectively. The map files \texttt{charter.map}, \texttt{utopia,map}
are already in \texttt{../dvips/psnfss}. Activate these map files
by adding the lines
\begin{quotation}
\texttt{p +psnfss/utopia.map}
\texttt{p +psnfss/charter.map}
\end{quotation}
to \texttt{..dvips/config.ps}. Dvips reads in map files according
to the file \texttt{config.ps}. See section \ref{subsec:psnfss}.
Another way is to specify the map on the command line with \texttt{-u}
option like
\begin{quotation}
\texttt{dvips -upsnfss/utopia.map test}
\end{quotation}
However displaying the resulting .ps-file in Ghostscript causes the
program to fail and throw up a lot of incomprehensible error messages.
According to the man page of dvips using this \texttt{-u} option means
that dvips uses the specified map file exclusively. It should be possible
to call dvips as
\begin{quotation}
\texttt{dvips -u +psnfss/utopia.map test}
\end{quotation}
so that \texttt{utopia.map} is used \emph{in addition} to \texttt{psfonts.map}.
But this causes dvips to complain that it cannot find the headerfile
\texttt{+psnfss/utopia.map}.
\subsubsection{General PostScript fonts}
The installation of any PostScript font can be done pretty much as
outlined in the two above examples. Most packages on CTAN for PostScript
fonts come with the relevant files which just need to be copied to
their appropriate locations and then run \texttt{mktexlsr}. The best
way is keep in accordance with the TDS (TeX Directory Structure) is
to copy the files of type \texttt{xxx} of a font designed by the ``supplier''
and with the ``typeface'' into \texttt{.../texmf/fonts/xxx/supplier/typeface}.
If you have only .afm- and .pfb-files, the process is more daunting
and I cannot claim to fully understand it. A starting point for DIY
PostScript font installation would be
\begin{quotation}
\texttt{https://www.tug.org/TUGboat/tb27-1/}
\texttt{tb86kroonenberg-fonts.pdf}
\end{quotation}
for details.
There is a package fontinst on CTAN which automatizes most of the
installation process of PostScript fonts (see:
\begin{quotation}
\texttt{http://texdoc.net/texmf-dist/doc/fonts/Type1fonts/}
\texttt{fontinstallationguide.pdf}
\end{quotation}
However this can be time consuming. The process of converting a single
.afm-file to a .pl-file (the ASCII version of the binary .tfm-file)
and several .vpl-files the ASCII version of the binary .vf-files takes
about 15 minutes. So installing whole font families from scratch is
something of a project.
\subsubsection{Automatic font creation}
The Amiweb2c-2.1 distribution can create .tfm- and .pk-files form
\MF{} source files automatically. However PostScript fonts are outline
fonts and not bitmaps like .pk-fonts. So pk is pk and pfb is pfb and
never shall the twain meet. In principle CallMF2 contains a subsection
for the generation of .pk-files from .pfb-files using the program
\texttt{ps2pk}. Calling ShowDVi on a .dvi-file containing PostScript
fonts (or more to the point their .tfm-file) then effects a call on
\MF{} via CallMF2 which complains that is cannot find some .mf-file.
However \texttt{MakeTeXFont.rexx}, the heart of the automatic font
generation scripts for Amiweb2c looks for the fonts according to the
names given in the .dvi-file. These names depend on the encoding (OT1,T1...)
chosen in the \LaTeX{} file. But \texttt{MakeTeXFont.rexx} looks
for the corresponding .pfb-files according to that encoding scheme
determined by the final two symbols (number and letter) in the .tfm-filename
which which it was called. For the Utopia-Roman font in the T1 encoding
that filename is \texttt{putr8t}. But \texttt{MakeTexFont.,rexx} then
looks for that string in a single map file \texttt{ps2pk.map} which
isn't even the default map of dvips. The problem is that the naming
convention by Karl Berry has the names of the .pfb-files end on two
letters determining the encoding (8a for Adobe, 7t for OT1, 8t for
T1, see input98.pdf in the package fontinst for a partial list and
Karl Berry Filenames for fonts
\begin{quotation}
\texttt{https://www.tug.org/TUGboat/tb11-4/tb30berry.pdf}
\end{quotation}
for a full list. The naming scheme is a result of the restriction
on the length of filename on old operating systems. Note however that
modern packages come with filenames which break the maximum length
of filenames for AmigaOS. Here you are on your own. So to make a long
story short, \texttt{MakeTexFont.rexx} fails to find the .pfb-file
and proceeds to look for a corresponding .mf-file. Which fails. While
it would be possible to patch the script by hand, CallMF2 for Amiweb2c
is derived from web2c sources, which should be edited. Summoning some
TeX-genie at this point...
\subsection{Afterword}
After my adventure in PostScript land so far as it applies to the
Amiweb2c distribution on an Old-School Amiga, it is my considered
opinion that PostScript fonts should only be used with Amiweb2c in
connection with the psnfss. For this Ghostscript displays the files
correctly. For common cm/ec fonts it is best to stick to the classic
\MF{} world. If you want to use their PostScript versions nonetheless,
my advice is to use pdf\LaTeX{} and display the .pdf-file on a modern
PC with a modern \TeX{} installation.
\section{Conclusion}
This concludes the installation of the \LaTeX{} distribution Amiweb2c
on an emulated Amiga with Workbench 3.1. Happy \TeX -ing!
\appendix
\section{Keyboard}
The keyboard of the emulated Amiga and the modern PC keyboard are
not identical, so the mapping of the emulated Amiga keyboard to your
physical keyboard can be a bit ...opaque. Below is a list of keymappings
I found out --- some of them quite by accident --- to be helpful.
Note that they depend on my keyboard with German layout. The left
side of the equation sign is the PC keyboard and the right side is
the Amiga keyboard:
\begin{quotation}
\texttt{Einf = \#}
\texttt{Shift + Einf = \textasciicircum}
\texttt{\# = \textbackslash}
\texttt{Shift + \# = |}
\texttt{\textasciicircum{} = `}
\texttt{Shift + \textasciicircum{} = \textasciitilde}
\texttt{Pos 1 = {[}}
\texttt{Shift + Pos 1 = \{}
\texttt{Bild up = {]}}
\texttt{Shift + Bild up = \}}
\texttt{Bild down = Amiga key}
\end{quotation}
The key \texttt{Einf} corresponds to \texttt{Ins} and \texttt{Bild}
corresponds to \texttt{Pg} on an English keyboard.
The keymapping of the emulator has consequences for the navigation
of the cursor in CED:
\begin{quotation}
\texttt{Line up: Shift + Numpad 8}
\texttt{Line down: Shift + Numpad 2}
\texttt{Beginning of file: Ctrl (left) + Shift + Numpad 8}
\texttt{End of file: Ctrl (left) + Shift + Numpad 2}
\texttt{Character left: Shift + Numpad 4}
\texttt{Character right: Shift + Numpad 6}
\texttt{Word left: Ctrl (left) + Shift + Numpad 4}
\texttt{Word right: Ctrl (left) + Shift + Numpad 6}
\texttt{Beginning of line: Ctrl (left) + Shift + Numpad 7}
\texttt{End of line: Ctrl (left) + Shift + Numpad 1}
\texttt{12 lines up: Ctrl + Shift + Numpad 9}
\texttt{12 lines down: Ctrl + Shift + Numpad 3}
\end{quotation}
\section{Searching files}
Quite often during the installation process you will have to find
out where a particular file is located or whether it contains a particular
phrase. This can be achieved from the CLI by the \texttt{search} command:
\begin{quotation}
\texttt{search from pattern file all quiet}
\end{quotation}
The option \texttt{from} is the full directory path in which to search.
If the search is to be conducted from the currently active directory
the \texttt{from} part is just \texttt{``''} (not an empty string,
but double quotation marks). The option \texttt{pattern} is whatever
you are searching for. For example to search for files with the ending
.mf, use the pattern \texttt{\#?.mf}. The options \texttt{file} means
that only file names are searched, without it the pattern is looked
for also inside the files. Which can come in handy but slows things
down. The option \texttt{all} means to search in all subdirectories
and the option \texttt{quiet} means to show only the files where pattern
is found, not to show all files being searched.
If the list of results is rather long and scrolls past too quickly
you can use w
\begin{quotation}
\texttt{search from pattern file all quiet > filename}
\end{quotation}
and the output will be redirected to the file \texttt{filename} for
you leisurely perusal at you convenience.
\end{document}
|