Discussion:
[tex-k] Incompatibility between WEB and C versions of "ovp2ovf"
Igor Liferenko
2016-03-14 05:51:06 UTC
Permalink
Hi all,
FYI, C versions of ovp2ovf, ovf2ovp, opl2ofm, ofm2opl were probably
written by John Plaice or his students in order to replace corresponding
ones written by using the WEB. There are no man pages for them.
Sometimes bugs were found in them compared with the WEB ones.
Peter fixed a number of bugs. However the WEB versions still remain for the
safety by prepending 'w'. There may be few users today of Aleph/Omega,
however the utilities are still conveniently used, for example, to create
virtual fonts in (u)pTeX.
BTW, this is a rather valuable info. Maybe it should be put to README?

The problem is that "wovp2ovf" automatically adds MAP to font 0, and
"ovp2ovf" does not do this.

First generate the same virtual font with two variants of ovp2ovf:

echo "(MAPFONT D 0 (FONTNAME cmr10))" > myfont.vpl
tftopl cmr10 > myfont.ovp
ovp2ovf myfont.ovp myfont.ovf myfont.ofm
wovp2ovf myfont.ovp webfont.ovf webfont.ofm

Now see the difference:

ovf2ovp myfont.ovf myfont.ofm > myfont
ovf2ovp webfont.ovf webfont.ofm > webfont
diff myfont webfont

I wonder if it may be considered as a bug in C variant of ovp2ovf.

Before I learned about "wovp2ovf", I used "vptovf" to automatically
add MAP to font 0:

echo "(MAPFONT D 0 (FONTNAME cmr10))" > myfont.vpl
tftopl cmr10 >> myfont.vpl
vptovf myfont.vpl
rm myfont.vpl
vftovp myfont.vf > myfont.ovp
rm myfont.tfm myfont.vf
ovp2ovf myfont.ovp

While we are talking about different variants of utilities:

I noticed that in
...trunk/Build/source/texk/web2c/omegaware/am/omegaware.am "otangle"
is used instead of "tangle". I cannot figure out the difference
between them.
Do you know why there are two separate executables in TeX Live? Which
one is better? Similarly, there should be "oweave", but there is not.
Do you know why?

Thanks,
Igor
Akira Kakuto
2016-03-14 08:56:21 UTC
Permalink
Post by Igor Liferenko
I wonder if it may be considered as a bug in C variant of ovp2ovf.
I'm not familiar with the issue. Probably (MAP ...) part is not necessary
in the case where character code is not remapped.
You can confirm that (MAP ...) part is present for ovp2ovf if character
code is remapped.
Post by Igor Liferenko
Before I learned about "wovp2ovf", I used "vptovf" ...
...
...
I noticed that in
...trunk/Build/source/texk/web2c/omegaware/am/omegaware.am "otangle"
is used instead of "tangle". I cannot figure out the difference between them.
I don't know details, but 'o...' or 'wo...' are utilities for
Omega/Aleph, a UTF-16 engine. XeTeX also uses otangle.

Best,
Akira
Akira Kakuto
2016-03-14 11:47:38 UTC
Permalink
Post by Igor Liferenko
I wonder if it may be considered as a bug in C variant of ovp2ovf.
I'm not familiar with the issue. Probably (MAP ...) part is not necessary
in the case where character code is not remapped.
You can confirm that (MAP ...) part is present for ovp2ovf if character
code is remapped.
Post by Igor Liferenko
Before I learned about "wovp2ovf", I used "vptovf" ...
...
...
I noticed that in
...trunk/Build/source/texk/web2c/omegaware/am/omegaware.am "otangle"
is used instead of "tangle". I cannot figure out the difference between them.
I don't know details, but 'o...' or 'wo...' are utilities for
Omega/Aleph, a UTF-16 engine. XeTeX also uses otangle.
Post by Igor Liferenko
Similarly, there should be "oweave", but there is not.
No, "oweave" is not necessary, since WEB syntax is not changed.
For example, you can compile as follows:
weave otangle.web
tex otangle.tex

Best,
Akira
Igor Liferenko
2016-03-14 13:34:53 UTC
Permalink
Hi Akira,

Thank you for the response.
Probably (MAP ...) part is not necessary in the case where character code is not remapped.
If we consider the behavior of "vptovf" as standard, then "ovp2ovf" is
incorrect, because it behaves differently:

echo "(MAPFONT D 0 (FONTNAME cmr10))" > myfont.vpl
tftopl cmr10 >> myfont.vpl
vptovf myfont.vpl

then check that (MAP ...) part was added:

vftovp myfont.vf

In my previous email there was a small mistake. The following example
is more correct:

echo "(MAPFONT D 0 (FONTNAME cmr10))" > myfont.ovp
tftopl cmr10 >> myfont.ovp
ovp2ovf myfont.ovp myfont.ovf myfont.ofm
wovp2ovf myfont.ovp webfont.ovf webfont.ofm

Regards,
Igor

Loading...