summaryrefslogtreecommitdiff
path: root/dviware/dvidvi/dvidvi.kohm-patch
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /dviware/dvidvi/dvidvi.kohm-patch
Initial commit
Diffstat (limited to 'dviware/dvidvi/dvidvi.kohm-patch')
-rw-r--r--dviware/dvidvi/dvidvi.kohm-patch151
1 files changed, 151 insertions, 0 deletions
diff --git a/dviware/dvidvi/dvidvi.kohm-patch b/dviware/dvidvi/dvidvi.kohm-patch
new file mode 100644
index 0000000000..c513810cbd
--- /dev/null
+++ b/dviware/dvidvi/dvidvi.kohm-patch
@@ -0,0 +1,151 @@
+Date: Wed, 17 Aug 1994 11:37:00 +0200
+From: Markus_Kohm@KA2.maus.de (Markus Kohm)
+Subject: Erweitertes dvidvi fuer verbesserten Buchdruck.
+Message-ID: <199408171137.a10215@ka2.maus.de>
+Newsgroups: de.comp.tex
+
+Hier kommt also das diff fuer ein erweitetes dvidvi. Sollte der Compiler
+meckern, dass alloc.h nicht gefunden wird, dieses einfach durch stdlib.h
+ersetzen. Als Eingabedatei benoetigt man den Source von dvidvi, wie er auf
+ftp.dante.de als dviware/dvidvi/dvidvi.c zu finden ist.
+
+--- dvidvi.diff ------------------------------------------------------
+16a17,20
+> * round up number of pages to a
+> * multiple of n -p n
+> * sort pages to print one from top -j
+> * next one from end
+21a26
+> * To give version 1.1 it was improved by Markus_Kohm@ka.maus.de.
+24c29,30
+< * compilers Turbo C 2.0 and Microsoft C 6.0.
+---
+> * compilers Turbo C 2.0 and Microsoft C 6.0 and for Atari ST under
+> * compiler Turbo C 2.0 with MiNTLIB.
+31,32c37,39
+< #define BANNER "\nThis is dvidvi 1.0, Copyright (C) 1988-91, Radical Eye
+Software\n"
+< #define STRINGSIZE (500) /* maximum number of strings in program */
+---
+> #define BANNER "\nThis is dvidvi 1.1, Copyright (C) 1988-91, Radical Eye
+Software\n" \
+> "Improved from 1.0 to 1.1, 1994, Markus Kohm\n"
+> #define STRINGSIZE (500L) /* maximum number of strings in program */
+39d45
+< #include <alloc.h>
+40a47
+> #include <alloc.h>
+44c51,56
+<
+---
+> #ifdef __TOS__
+> #define READBIN "rb" /* TOS must use binary mode */
+> #define WRITEBIN "wb"
+> #define PATHSEP ';'
+> #define DIRSEP '\\'
+> #else
+63c75
+<
+---
+> #endif
+71a84,88
+> #ifdef __TOS__
+> #ifdef __TURBOC__
+> #define SHORTINT
+> #endif
+> #endif
+91a109
+> integer pagemodulo ; /* additional mod value for number of pages */
+116c134
+< integer pagefake ; /* number of pages, rounded up to multiple of modulo
+*/
+---
+> integer pagefake ; /* number of pages, rounded up to multiple of
+pagemodulo */
+118a137
+> Boolean jumpingpages = 0;
+309c328,329
+< (void)fprintf(stderr," [-m modulo:pagespecs]\n");
+---
+> (void)fprintf(stderr," [-m modulo:pagespecs] [-j] jumping
+pages\n");
+> (void)fprintf(stderr," [-p pagemodulo]\n");
+509a530
+> pagemodulo = 0;
+527,528c548,549
+< strings =(char *) malloc(STRINGSIZE) ;
+< if (strings == 0)
+---
+> strings = malloc(STRINGSIZE) ;
+> if (strings == 0L)
+628a650,659
+> case 'p' :
+> if (*p == 0 && argv[i+1])
+> p = argv[++i] ;
+> #ifdef SHORTINT
+> if (sscanf(p, "%ld", &pagemodulo)==0)
+> #else /* ~SHORTINT */
+> if (sscanf(p, "%d", &pagemodulo)==0)
+> #endif /* ~SHORTINT */
+> error("! Bad pagemodulo option (-p).") ;
+> break ;
+698a730,732
+> case 'j' : case 'J' :
+> jumpingpages = 1;
+> break;
+1146c1180
+< integer actualpageno ;
+---
+> integer actualpageno, lastpageno ;
+1152c1186,1189
+< pagefake = (pagecount + modulo - 1) / modulo * modulo ;
+---
+> if ( !pagemodulo )
+> pagefake = (pagecount + modulo - 1) / modulo * modulo ;
+> else
+> pagefake = (pagecount + pagemodulo - 1) / pagemodulo * pagemodulo ;
+1154c1191
+< for (pagenum = 0; pagenum < pagefake; pagenum += modulo) {
+---
+> for (lastpageno = -1, pagenum = 0; pagenum < pagefake / ( jumpingpages + 1
+); pagenum += modulo) {
+1160a1198,1203
+> if ( jumpingpages )
+> ps->reversed = !ps->reversed;
+> if ( actualpageno == lastpageno ) {
+> pagenum = pagefake;
+> break;
+> }
+1183a1227,1228
+> if ( pagemodulo )
+> lastpageno = actualpageno;
+----------------------------------------------------------------------
+
+Mit folgenden Parametern erreicht man, dass A5-Seiten auf A4-Seiten (quer) in
+Buchreihenfolge sortiert werden:
+
+ dvidvi -j -p 4 -m "1:-0,0(148mm,0mm)" <input> <output>
+
+Wenn der Drucker die Seiten umdrehen und die Treiber landscape beherrscht, kann
+man das dann direkt oder per dvips ausdrucken. Folgendes script ist dann recht
+nuetzlich (wenn der Drucker korrekt angegeben ist):
+
+--- dvia5bookps ------------------------------------------------------
+%
+% @(#) dvia5bookps, Copyright (c) Markus Kohm, 1994
+%
+dvidvi -j -p 4 -m "1:-0,0"(148,0mm) ${1} a5book.${1}
+dvips -t landscape a5book.${1}
+rm a5book.${1}
+----------------------------------------------------------------------
+
+Wenn der Drucker die Seiten nicht umdrehen kann, sollte man zuerst die
+ungeraden Seiten drucken, dann den Stapel ohne ihn umzudrehen wieder in den
+Drucker geben und dann die geraden Seiten in umgekehrter Reihenfolge drucken.
+Wenn ich auswendig die Parameter fuer dvipr oder dvips wuesste, wuerde ich sie
+angeben.
+
+Gruss,
+ Markus
+
+