[tex-live] dvips for windows behaviour

Akira Kakuto kakuto at fsci.fuk.kindai.ac.jp
Wed Nov 28 13:24:54 CET 2007


Hi Siep Kroonenberg,

> > > >   dvips sample2e
> > > >   dvips -l2 sample2e
> > > >   dvips -p2 -l3 sample2e
> > > > 
> > > > The first two commands work as expected. The third one gives
> > > > 
> > > > dvips: ! DVI file contains unexpected Omega command (121)
> > > 
> > > I can reproduce this under Windows 2000.
> > 
> > The default of dvips (w32) is "-noomega" and
> > dvips (w32) has a switch -noomega0, namely,
> > 
> > dvips (Unix) == dvips -noomega0 (w32)
> > dvips -noomega (Unix) == dvips (w32)
> > 
> > Please try
> > dvips -noomega0 -p2 -l3 sample2e
> > or
> > odvips -p2 -l3 sample2e
> 
> Both work.
> 
> > PS: I don't understand why "dvips -p2 -l3 sample2e"
> > requires omega extension.
> 
> Me neither.

If I use the following changes,
dvips -p2 -l3 sample2e
naturally works. Do the changes break something?

Thanks,
Akira


--- skippage.c.orig	Wed Jan 18 06:41:52 2006
+++ skippage.c	Wed Nov 28 21:09:52 2007
@@ -26,7 +26,7 @@
 void
 skippage P1H(void)
 {
-   register shalfword cmd ;
+   register shalfword cmd, cmdsave ;
    register integer i ;
 
 #ifdef DEBUG
@@ -39,7 +39,7 @@
 #endif  /* DEBUG */
 /* skipover(40) ; skip rest of bop command? how did this get in here? */
    bopcolor(0) ;
-   while ((cmd=dvibyte())!=140) {
+   while ((cmd=cmdsave=dvibyte())!=140) {
      switch (cmd) {
 /* illegal options */
 case 130: case 131: case 135: case 136: case 139: 
@@ -62,11 +62,13 @@
    cmd = dvibyte() ;
 /* two byte commands */
 case 129: case 134:
+       if (cmdsave == 129 || cmdsave == 134) {
          if (noomega) {
             (void)sprintf(errbuf,
                "! DVI file contains unexpected Omega command (%d)",cmd) ;
             error(errbuf) ;
          }
+       }
 case 144: case 149: case 154: case 158: case 163: case 168: case 236:
    cmd = dvibyte() ;
 /* one byte commands */


More information about the tex-live mailing list