diff options
author | Karl Berry <karl@freefriends.org> | 2006-01-17 21:41:51 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2006-01-17 21:41:51 +0000 |
commit | 487ca4806cc046076293cf6cc5fbba0db282bac7 (patch) | |
tree | 847b412ab5158dd7bdd7ed7e5a4cc3fbca94be32 /Build/source/texk/dvidvi/dvidvi.kohm-patch | |
parent | a3d3111bfe26b8e5f5bc6049dfb2a4ca2edc7881 (diff) |
texk 1
git-svn-id: svn://tug.org/texlive/trunk@1485 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/dvidvi/dvidvi.kohm-patch')
-rw-r--r-- | Build/source/texk/dvidvi/dvidvi.kohm-patch | 151 |
1 files changed, 151 insertions, 0 deletions
diff --git a/Build/source/texk/dvidvi/dvidvi.kohm-patch b/Build/source/texk/dvidvi/dvidvi.kohm-patch new file mode 100644 index 00000000000..c513810cbdf --- /dev/null +++ b/Build/source/texk/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 + + |