diff options
author | Akira Kakuto <kakuto@fuk.kindai.ac.jp> | 2013-04-30 13:21:50 +0000 |
---|---|---|
committer | Akira Kakuto <kakuto@fuk.kindai.ac.jp> | 2013-04-30 13:21:50 +0000 |
commit | ef447158f844e9d9c2fb4e328cce5225e1f08fb9 (patch) | |
tree | 078ee5a14f27c241adecc0563617080fb5a6d562 | |
parent | d9138f40c346b88147148d28cf7e479013a51246 (diff) |
Add a compatible mode with the old behavior per Karl, where image cache is ignored (default).
git-svn-id: svn://tug.org/texlive/trunk@30184 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r-- | Build/source/texk/dvipdfmx/ChangeLog | 6 | ||||
-rw-r--r-- | Build/source/texk/dvipdfmx/data/dvipdfmx.cfg | 3 | ||||
-rw-r--r-- | Build/source/texk/dvipdfmx/src/dpxfile.c | 10 | ||||
-rw-r--r-- | Build/source/texk/dvipdfmx/src/dvipdfmx.c | 6 | ||||
-rw-r--r-- | Build/source/texk/dvipdfmx/src/pdfximage.c | 18 | ||||
-rw-r--r-- | Build/source/texk/xdvipdfmx/ChangeLog | 6 | ||||
-rw-r--r-- | Build/source/texk/xdvipdfmx/data/dvipdfmx.cfg | 443 | ||||
-rw-r--r-- | Build/source/texk/xdvipdfmx/src/dpxfile.c | 10 | ||||
-rw-r--r-- | Build/source/texk/xdvipdfmx/src/dvipdfmx.c | 6 | ||||
-rw-r--r-- | Build/source/texk/xdvipdfmx/src/pdfximage.c | 17 |
10 files changed, 276 insertions, 249 deletions
diff --git a/Build/source/texk/dvipdfmx/ChangeLog b/Build/source/texk/dvipdfmx/ChangeLog index 6de02b17a65..8def2587005 100644 --- a/Build/source/texk/dvipdfmx/ChangeLog +++ b/Build/source/texk/dvipdfmx/ChangeLog @@ -1,3 +1,9 @@ +2013-04-30 Akira Kakuto <kakuto@fuk.kindai.ac.jp> + + * src/dpxfile.c, src/pdfximage.c, src/dvipdfmx.c, data/dvipdfmx.cfg: + Add a compatible mode with the old behavior per Karl, where + image cache is ignored. + 2013-04-30 Peter Breitenlohner <peb@mppmu.mpg.de> * dvipdfmx.test: New shell script for a simple test. diff --git a/Build/source/texk/dvipdfmx/data/dvipdfmx.cfg b/Build/source/texk/dvipdfmx/data/dvipdfmx.cfg index 3aca31fd2ed..1832f5a9a85 100644 --- a/Build/source/texk/dvipdfmx/data/dvipdfmx.cfg +++ b/Build/source/texk/dvipdfmx/data/dvipdfmx.cfg @@ -193,7 +193,8 @@ D "rungs -q -dNOPAUSE -dBATCH -dEPSCrop -sDEVICE=pdfwrite -dCompatibilityLevel= %% Image cache life in hours %% 0 means erase all old images and leave new images %% -1 means erase all old images and also erase new images -%I -1 +%% -2 means ignore image cache +%I -2 %% Font Map Files %% diff --git a/Build/source/texk/dvipdfmx/src/dpxfile.c b/Build/source/texk/dvipdfmx/src/dpxfile.c index 7444632803a..8aa77d00d20 100644 --- a/Build/source/texk/dvipdfmx/src/dpxfile.c +++ b/Build/source/texk/dvipdfmx/src/dpxfile.c @@ -61,7 +61,7 @@ #endif static int verbose = 0; -int keep_cache = false; +int keep_cache = 0; void dpx_file_set_verbose (void) @@ -877,7 +877,11 @@ dpx_delete_old_cache (int life) struct dirent *de; time_t limit = time(NULL) - life * 60 * 60; - if (life >= 0) keep_cache = true; + if (life == -2) { + keep_cache = -1; + return; + } + if (life >= 0) keep_cache = 1; if ((dp = opendir(dir)) != NULL) { while((de = readdir(dp)) != NULL) { if (dpx_clear_cache_filter(de)) { @@ -900,7 +904,7 @@ dpx_delete_temp_file (char *tmp, int force) { if (!tmp) return; - if (force || !keep_cache) remove (tmp); + if (force || keep_cache != 1) remove (tmp); RELEASE(tmp); return; diff --git a/Build/source/texk/dvipdfmx/src/dvipdfmx.c b/Build/source/texk/dvipdfmx/src/dvipdfmx.c index 91371e5713a..cde17f051a6 100644 --- a/Build/source/texk/dvipdfmx/src/dvipdfmx.c +++ b/Build/source/texk/dvipdfmx/src/dvipdfmx.c @@ -89,7 +89,8 @@ static int pdfdecimaldigits = 2; /* Image cache life in hours */ /* 0 means erase all old images and leave new images */ /* -1 means erase all old images and also erase new images */ -static int image_cache_life = -1; +/* -2 means ignore image cache (default) */ +static int image_cache_life = -2; /* Encryption */ static int do_encryption = 0; @@ -186,9 +187,10 @@ show_usage (void) fprintf(stdout, "\t\tAnd negative values replace old values.\n"); fprintf(stdout, "-D template\tPS->PDF conversion command line template [none]\n"); fprintf(stdout, "-E \t\tEnable DVIPDFM emulation mode\n"); - fprintf(stdout, "-I number\tImage cache life in hours [-1]\n"); + fprintf(stdout, "-I number\tImage cache life in hours [-2]\n"); fprintf(stdout, " \t 0: erase all old images and leave new images\n"); fprintf(stdout, " \t-1: erase all old images and also erase new images\n"); + fprintf(stdout, " \t-2: ignore image cache\n"); fprintf(stdout, "-K number\tEncryption key length [40]\n"); fprintf(stdout, "-O number\tSet maximum depth of open bookmark items [0]\n"); fprintf(stdout, "-P number\tSet permission flags for PDF encryption [0x003C]\n"); diff --git a/Build/source/texk/dvipdfmx/src/pdfximage.c b/Build/source/texk/dvipdfmx/src/pdfximage.c index 1c18ea2ff9c..ff81ac697fb 100644 --- a/Build/source/texk/dvipdfmx/src/pdfximage.c +++ b/Build/source/texk/dvipdfmx/src/pdfximage.c @@ -193,7 +193,7 @@ pdf_close_images (void) * We also use this to convert a PS file only once if multiple * pages are imported from that file. */ - if (_opts.verbose > 1 && !keep_cache) + if (_opts.verbose > 1 && keep_cache != 1) MESG("pdf_image>> deleting temporary file \"%s\"\n", I->filename); dpx_delete_temp_file(I->filename, false); /* temporary filename freed here */ I->filename = NULL; @@ -883,19 +883,19 @@ ps_include_page (pdf_ximage *ximage) return -1; } - if (_opts.verbose > 1) { - MESG("\n"); - MESG("pdf_image>> Converting file \"%s\" --> \"%s\" via:\n", filename, temp); - MESG("pdf_image>> %s\n", distiller_template); - MESG("pdf_image>> ..."); - } - - if (stat(temp, &stat_t)==0 && stat(filename, &stat_o)==0 + if (keep_cache != -1 && stat(temp, &stat_t)==0 && stat(filename, &stat_o)==0 && stat_t.st_mtime > stat_o.st_mtime) { /* cache exist */ /*printf("\nLast file modification: %s", ctime(&stat_o.st_mtime)); printf("Last file modification: %s", ctime(&stat_t.st_mtime));*/ + ; } else { + if (_opts.verbose > 1) { + MESG("\n"); + MESG("pdf_image>> Converting file \"%s\" --> \"%s\" via:\n", filename, temp); + MESG("pdf_image>> %s\n", distiller_template); + MESG("pdf_image>> ..."); + } error = dpx_file_apply_filter(distiller_template, filename, temp, (unsigned char) pdf_get_version()); if (error) { diff --git a/Build/source/texk/xdvipdfmx/ChangeLog b/Build/source/texk/xdvipdfmx/ChangeLog index 793cece50e7..ddc671f164a 100644 --- a/Build/source/texk/xdvipdfmx/ChangeLog +++ b/Build/source/texk/xdvipdfmx/ChangeLog @@ -1,3 +1,9 @@ +2013-04-30 Akira Kakuto <kakuto@fuk.kindai.ac.jp> + + * src/dpxfile.c, src/pdfximage.c, src/dvipdfmx.c, data/dvipdfmx.cfg: + Add c compatible mode with the old behavior per Karl, where + image cache is ignored. + 2013-04-30 Peter Breitenlohner <peb@mppmu.mpg.de> * xdvipdfmx.test: New shell script for a simple test. diff --git a/Build/source/texk/xdvipdfmx/data/dvipdfmx.cfg b/Build/source/texk/xdvipdfmx/data/dvipdfmx.cfg index 3aca31fd2ed..d1284adcafd 100644 --- a/Build/source/texk/xdvipdfmx/data/dvipdfmx.cfg +++ b/Build/source/texk/xdvipdfmx/data/dvipdfmx.cfg @@ -1,221 +1,222 @@ -%% dvipdfmx.cfg for dvipdfmx and xdvipdfmx. (Public domain.) -%% -%% PDF Version Setting -%% -%% PDF (minor) version stamp to use in output file. -%% This also implies maximal version of PDF file allowed to be included. -%% Dvipdfmx does not support 1.0, 1.1, 1.2 since TrueType font embedded -%% as CIDFontType2 requires at least version 1.3. Transparent imaging -%% model requires version 1.4. So if you want soft-masking support for -%% PNG image with alpha channels, you should set version to 4 or higher. -%% PDF 1.5 enables object compression. - -V 5 - -%% Dvipdfmx Compatibility Flags -%% -%% 0x0002 Use semi-transparent filling for tpic shading command, -%% instead of opaque gray color. (requires PDF 1.4) -%% 0x0004 Treat all CIDFont as fixed-pitch font. -%% This is only for backward compatibility. Don't use that. -%% 0x0008 Do not replace duplicate fontmap entries. -%% Dvipdfm's (not 'x') behaviour. -%% 0x0010 Do not optimize PDF destinations. Use this if you want to -%% refer from other files to destinations in the current file. - -%C 0x0000 - -%% PDF Document Settings -%% -%% Papersize Option: -%% -%% p papersize-spec -%% -%% papersize-spec is 'paper-format' or length-pair, e.g., 'a4', 'letter', -%% '20cm,30cm'. Recognized unit is 'cm', 'mm', 'bp', 'pt', 'in'. - -p a4 - -%% Annotation Box Margin: -%% -%% g length -%% -%% Add margin to annotation rectangle created via various \specials. Many -%% TeX macro packages set the annotation bounding box equal to the TeX box -%% that encloses the material. That's not always what you want. -%% Annotations created by pdf:bannot/pdf:eannot is also affected. - -%g 0 - -%% Bookmark Open Level: -%% -%% O integer -%% -%% Mark bookmark (outline) item as initial state 'open' if the depth -%% of that item (from root node) is less than or equal to the integer -%% specified with this option. - -O 0 - -%% PDF Security (Encryption) Setting -%% -%% Those options won't take effects unless you use flag 'S'. -%% -%% Key bits for PDF encryption (40 - 128) - -K 40 - -%% Permission flag for PDF encryption: Revision will be 3 if the key size -%% is greater than 40 bits. -%% -%% 0x0004 (Revision 2) Print the document. -%% (Revision 3) Print the document (possibly not at the highest quality -%% level, depending on whether bit 12[0x0800] is also set). -%% 0x0008 Modify the contents of the document by operations other than those -%% controlled by bits 6[0x0020], 9[0x0100], and 11[0x0400]. -%% 0x0010 (Revision 2) Copy or otherwise extract text and graphics from the -%% document, including extracting text and graphics (in support of -%% accessibility to disabled users or for other purposes). -%% (Revision 3) Copy or otherwise extract text and grphics from the -%% document by operations other than that controlled by bit 10[0x0200]. -%% 0x0020 Add or modify text annotations, fill in interactive form fields, -%% and, if bit 4[0x0008] is also set, create or modify interactive -%% form fields (including signature fields). -%% -%% (Revision 3 only) -%% 0x0100 Fill in existing interactive form fields (including signature -%% fields), even if bit 6 is clear. -%% 0x0200 Extract text and graphics (in support of accessibility to disabled -%% users or for other purposes). -%% 0x0400 Assemble the document (insert, rotate, or delete pages and create -%% bookmarks or thumbnail images), even if bit 4 is clear. -%% 0x0800 Print the document to a representation from which a faithful digital -%% copy of the PDF content could be generated. When this bit is clear -%% (and bit 3 is set), printing is limited to a low-level representation -%% of the appearance, possibly of degraded quality. - -P 0x003C - -%% Image Handler -%% -%% With 'D' option dvipdfmx may invoke shell command via system() -%% function call. -%% -%% Command-line template for a-to-b conversion: -%% -%% Supported target format ('b') is currently PDF. -%% Percent sign '%' is special character: -%% -%% %i Input file name (FQPN). Name of file to be converted to PDF. -%% %o Output file name (FQPN). Temporary file to store conversion -%% result. Removed after inclusion is finished. (regardless of -%% success or failure) -%% %b The "base" name of the input file, e.g., "foo" instead of -%% "foo.eps". -%% %v The PDF version to be converted to, e.g. "1.4" for PDF 1.4. -%% %% Replaced with single '%'. - -%% Ghostscript (PS-to-PDF and PDF-to-PDF): -%% -%% ps2pdf is a front-end to gs. For a complete list of options, see -%% http://ghostscript.com/doc/current/Ps2pdf.htm#Options -%% -%% By default, gs encodes all images contained in a PS file using -%% the lossy DCT (i.e., JPEG) filter. This often leads to inferior -%% result (see the discussion at http://electron.mit.edu/~gsteele/pdf/). -%% The "-dAutoFilterXXXImages" and "-dXXXImageFilter" options used -%% below force all images to be encoded with the lossless Flate (zlib, -%% same as PNG) filter. Note that if the PS file already contains DCT -%% encoded images (which is possible in PS level 2), then these images -%% will also be re-encoded using Flate. To turn the conversion off, -%% simply remove the options mentioned above. -%% -%% The -dEPSCROP below converts PS files. Before TL 2013, -%% -sPAPERSIZE=a0 was used for this. In 2013, changes were made to -%% xetex.def, dvipdfmx.def, etc., to handle non-zero llx/lly. -%% -%% In TeX Live, we use the rungs wrapper instead of ps2pdf, becuse we -%% must omit the -dSAFER which ps2pdf specifies: in order for pstricks -%% to work with xetex, -%% /usr/local/texlive/*/texmf-dist/dvips/pstricks/pstricks.pro (for -%% example) needs to be accessed. (Also, it is better to use our -%% supplied gs on Windows.) You can also add -dNOSAFER to the ps2pdf -%% command line. -%% -%% Incidentally, especially in TL, more than one dvipdfmx.cfg may be -%% extant. You can find the one that is active by running: -%% kpsewhich -progname=dvipdfmx -format='other text files' dvipdfmx.cfg -%% and control which one is found by setting DVIPDFMXINPUTS. -%% -D "rungs -q -dNOPAUSE -dBATCH -dEPSCrop -sDEVICE=pdfwrite -dCompatibilityLevel=%v -dAutoFilterGrayImages=false -dGrayImageFilter=/FlateEncode -dAutoFilterColorImages=false -dColorImageFilter=/FlateEncode -sOutputFile='%o' '%i' -c quit" - -% pre-2013 invocation using -sPAPERSIZE instead of -dEPSCrop, no other changes: -%D "rungs -q -dNOPAUSE -dBATCH -sPAPERSIZE=a0 -sDEVICE=pdfwrite -dCompatibilityLevel=%v -dAutoFilterGrayImages=false -dGrayImageFilter=/FlateEncode -dAutoFilterColorImages=false -dColorImageFilter=/FlateEncode -sOutputFile='%o' '%i' -c quit" - -% other random ps converters people have experimented with. -%D "/usr/local/bin/ps2pdf -dEPSCrop '%i' '%o'" -%D "/usr/texbin/epstopdf '%i' -o '%o'" -%D "/usr/bin/pstopdf '%i' -o '%o'" -% -%% Frank Siegert's PStill: -%D "/usr/local/bin/pstill -c -o '%o' '%i'" -% -%% Batik + Fop (SVG-to-PDF): -%% If you want both PS and SVG, you need to write a script or program -%% that selectively invokes converters. -%D "java -classpath classpaths -jar /path/to/batik-rasterizer.jar -m application/pdf -d '%o' '%i'" -% -%% There are no way to directly know suggested size of (raster) images. -%% You may want to use %b here, since you can try reading the ebb file -%% to see what is natural (physical) size of images. -%D "ras2pdf -r 300x300 -b '%b.bb' -o '%o' '%i'" -% -%% ImageMagick: -%% Easiest way to support various file formats. -%D "convert '%i' 'epdf:%o'" - -%% Other Options -%% -%% DPI for PK font creation - -%r 600 - -%% Set number of fractional digit kept for various numbers in PDF page -%% content output. By setting this to 2 (default), dvipdfmx rounds -%% real numbers at 2nd fractional (decimal) digit; e.g., "3.14159" is -%% written as "3.14". Increasing this to more than 2 isn't meaningful -%% for old Acrobat due to implementation limit of Acrobat. -%% Length 0.01 in unscaled coordinate system amount to width of 1 pixel -%% in 7200ppi display. - -%d 5 - -%% Image cache life in hours -%% 0 means erase all old images and leave new images -%% -1 means erase all old images and also erase new images -%I -1 - -%% Font Map Files -%% -%% teTeX 2.x and TeX Live using updmap (pdfTeX format) -f pdftex.map - -%% teTeX 2.x and TeX Live using updmap (DVIPDFM format) -%f dvipdfm.map - -%% teTeX 2.x and TeX Live using updmap (DVIPS format) -%% MiKTeX 2.2 and 2.3 -%f psfonts.map - -%% Put additional fontmap files here (usually for Type0 fonts) -%f cid-x.map - -% the following file is generated by updmap(-sys) from the -% KanjiMap entries in the updmap.cfg file. -f kanjix.map -% minimal example for Chinese and Korean users -% improvements please to tex-live@tug.org -f ckx.map - -%% Include other config files -%i <filename> +%% dvipdfmx.cfg for dvipdfmx and xdvipdfmx. (Public domain.)
+%%
+%% PDF Version Setting
+%%
+%% PDF (minor) version stamp to use in output file.
+%% This also implies maximal version of PDF file allowed to be included.
+%% Dvipdfmx does not support 1.0, 1.1, 1.2 since TrueType font embedded
+%% as CIDFontType2 requires at least version 1.3. Transparent imaging
+%% model requires version 1.4. So if you want soft-masking support for
+%% PNG image with alpha channels, you should set version to 4 or higher.
+%% PDF 1.5 enables object compression.
+
+V 5
+
+%% Dvipdfmx Compatibility Flags
+%%
+%% 0x0002 Use semi-transparent filling for tpic shading command,
+%% instead of opaque gray color. (requires PDF 1.4)
+%% 0x0004 Treat all CIDFont as fixed-pitch font.
+%% This is only for backward compatibility. Don't use that.
+%% 0x0008 Do not replace duplicate fontmap entries.
+%% Dvipdfm's (not 'x') behaviour.
+%% 0x0010 Do not optimize PDF destinations. Use this if you want to
+%% refer from other files to destinations in the current file.
+
+%C 0x0000
+
+%% PDF Document Settings
+%%
+%% Papersize Option:
+%%
+%% p papersize-spec
+%%
+%% papersize-spec is 'paper-format' or length-pair, e.g., 'a4', 'letter',
+%% '20cm,30cm'. Recognized unit is 'cm', 'mm', 'bp', 'pt', 'in'.
+
+p a4
+
+%% Annotation Box Margin:
+%%
+%% g length
+%%
+%% Add margin to annotation rectangle created via various \specials. Many
+%% TeX macro packages set the annotation bounding box equal to the TeX box
+%% that encloses the material. That's not always what you want.
+%% Annotations created by pdf:bannot/pdf:eannot is also affected.
+
+%g 0
+
+%% Bookmark Open Level:
+%%
+%% O integer
+%%
+%% Mark bookmark (outline) item as initial state 'open' if the depth
+%% of that item (from root node) is less than or equal to the integer
+%% specified with this option.
+
+O 0
+
+%% PDF Security (Encryption) Setting
+%%
+%% Those options won't take effects unless you use flag 'S'.
+%%
+%% Key bits for PDF encryption (40 - 128)
+
+K 40
+
+%% Permission flag for PDF encryption: Revision will be 3 if the key size
+%% is greater than 40 bits.
+%%
+%% 0x0004 (Revision 2) Print the document.
+%% (Revision 3) Print the document (possibly not at the highest quality
+%% level, depending on whether bit 12[0x0800] is also set).
+%% 0x0008 Modify the contents of the document by operations other than those
+%% controlled by bits 6[0x0020], 9[0x0100], and 11[0x0400].
+%% 0x0010 (Revision 2) Copy or otherwise extract text and graphics from the
+%% document, including extracting text and graphics (in support of
+%% accessibility to disabled users or for other purposes).
+%% (Revision 3) Copy or otherwise extract text and grphics from the
+%% document by operations other than that controlled by bit 10[0x0200].
+%% 0x0020 Add or modify text annotations, fill in interactive form fields,
+%% and, if bit 4[0x0008] is also set, create or modify interactive
+%% form fields (including signature fields).
+%%
+%% (Revision 3 only)
+%% 0x0100 Fill in existing interactive form fields (including signature
+%% fields), even if bit 6 is clear.
+%% 0x0200 Extract text and graphics (in support of accessibility to disabled
+%% users or for other purposes).
+%% 0x0400 Assemble the document (insert, rotate, or delete pages and create
+%% bookmarks or thumbnail images), even if bit 4 is clear.
+%% 0x0800 Print the document to a representation from which a faithful digital
+%% copy of the PDF content could be generated. When this bit is clear
+%% (and bit 3 is set), printing is limited to a low-level representation
+%% of the appearance, possibly of degraded quality.
+
+P 0x003C
+
+%% Image Handler
+%%
+%% With 'D' option dvipdfmx may invoke shell command via system()
+%% function call.
+%%
+%% Command-line template for a-to-b conversion:
+%%
+%% Supported target format ('b') is currently PDF.
+%% Percent sign '%' is special character:
+%%
+%% %i Input file name (FQPN). Name of file to be converted to PDF.
+%% %o Output file name (FQPN). Temporary file to store conversion
+%% result. Removed after inclusion is finished. (regardless of
+%% success or failure)
+%% %b The "base" name of the input file, e.g., "foo" instead of
+%% "foo.eps".
+%% %v The PDF version to be converted to, e.g. "1.4" for PDF 1.4.
+%% %% Replaced with single '%'.
+
+%% Ghostscript (PS-to-PDF and PDF-to-PDF):
+%%
+%% ps2pdf is a front-end to gs. For a complete list of options, see
+%% http://ghostscript.com/doc/current/Ps2pdf.htm#Options
+%%
+%% By default, gs encodes all images contained in a PS file using
+%% the lossy DCT (i.e., JPEG) filter. This often leads to inferior
+%% result (see the discussion at http://electron.mit.edu/~gsteele/pdf/).
+%% The "-dAutoFilterXXXImages" and "-dXXXImageFilter" options used
+%% below force all images to be encoded with the lossless Flate (zlib,
+%% same as PNG) filter. Note that if the PS file already contains DCT
+%% encoded images (which is possible in PS level 2), then these images
+%% will also be re-encoded using Flate. To turn the conversion off,
+%% simply remove the options mentioned above.
+%%
+%% The -dEPSCROP below converts PS files. Before TL 2013,
+%% -sPAPERSIZE=a0 was used for this. In 2013, changes were made to
+%% xetex.def, dvipdfmx.def, etc., to handle non-zero llx/lly.
+%%
+%% In TeX Live, we use the rungs wrapper instead of ps2pdf, becuse we
+%% must omit the -dSAFER which ps2pdf specifies: in order for pstricks
+%% to work with xetex,
+%% /usr/local/texlive/*/texmf-dist/dvips/pstricks/pstricks.pro (for
+%% example) needs to be accessed. (Also, it is better to use our
+%% supplied gs on Windows.) You can also add -dNOSAFER to the ps2pdf
+%% command line.
+%%
+%% Incidentally, especially in TL, more than one dvipdfmx.cfg may be
+%% extant. You can find the one that is active by running:
+%% kpsewhich -progname=dvipdfmx -format='other text files' dvipdfmx.cfg
+%% and control which one is found by setting DVIPDFMXINPUTS.
+%%
+D "rungs -q -dNOPAUSE -dBATCH -dEPSCrop -sDEVICE=pdfwrite -dCompatibilityLevel=%v -dAutoFilterGrayImages=false -dGrayImageFilter=/FlateEncode -dAutoFilterColorImages=false -dColorImageFilter=/FlateEncode -sOutputFile='%o' '%i' -c quit"
+
+% pre-2013 invocation using -sPAPERSIZE instead of -dEPSCrop, no other changes:
+%D "rungs -q -dNOPAUSE -dBATCH -sPAPERSIZE=a0 -sDEVICE=pdfwrite -dCompatibilityLevel=%v -dAutoFilterGrayImages=false -dGrayImageFilter=/FlateEncode -dAutoFilterColorImages=false -dColorImageFilter=/FlateEncode -sOutputFile='%o' '%i' -c quit"
+
+% other random ps converters people have experimented with.
+%D "/usr/local/bin/ps2pdf -dEPSCrop '%i' '%o'"
+%D "/usr/texbin/epstopdf '%i' -o '%o'"
+%D "/usr/bin/pstopdf '%i' -o '%o'"
+%
+%% Frank Siegert's PStill:
+%D "/usr/local/bin/pstill -c -o '%o' '%i'"
+%
+%% Batik + Fop (SVG-to-PDF):
+%% If you want both PS and SVG, you need to write a script or program
+%% that selectively invokes converters.
+%D "java -classpath classpaths -jar /path/to/batik-rasterizer.jar -m application/pdf -d '%o' '%i'"
+%
+%% There are no way to directly know suggested size of (raster) images.
+%% You may want to use %b here, since you can try reading the ebb file
+%% to see what is natural (physical) size of images.
+%D "ras2pdf -r 300x300 -b '%b.bb' -o '%o' '%i'"
+%
+%% ImageMagick:
+%% Easiest way to support various file formats.
+%D "convert '%i' 'epdf:%o'"
+
+%% Other Options
+%%
+%% DPI for PK font creation
+
+%r 600
+
+%% Set number of fractional digit kept for various numbers in PDF page
+%% content output. By setting this to 2 (default), dvipdfmx rounds
+%% real numbers at 2nd fractional (decimal) digit; e.g., "3.14159" is
+%% written as "3.14". Increasing this to more than 2 isn't meaningful
+%% for old Acrobat due to implementation limit of Acrobat.
+%% Length 0.01 in unscaled coordinate system amount to width of 1 pixel
+%% in 7200ppi display.
+
+%d 5
+
+%% Image cache life in hours
+%% 0 means erase all old images and leave new images
+%% -1 means erase all old images and also erase new images
+%% -2 means ignore image cache
+%I -2
+
+%% Font Map Files
+%%
+%% teTeX 2.x and TeX Live using updmap (pdfTeX format)
+f pdftex.map
+
+%% teTeX 2.x and TeX Live using updmap (DVIPDFM format)
+%f dvipdfm.map
+
+%% teTeX 2.x and TeX Live using updmap (DVIPS format)
+%% MiKTeX 2.2 and 2.3
+%f psfonts.map
+
+%% Put additional fontmap files here (usually for Type0 fonts)
+%f cid-x.map
+
+% the following file is generated by updmap(-sys) from the
+% KanjiMap entries in the updmap.cfg file.
+f kanjix.map
+% minimal example for Chinese and Korean users
+% improvements please to tex-live@tug.org
+f ckx.map
+
+%% Include other config files
+%i <filename>
diff --git a/Build/source/texk/xdvipdfmx/src/dpxfile.c b/Build/source/texk/xdvipdfmx/src/dpxfile.c index 80998652a11..b904bea8055 100644 --- a/Build/source/texk/xdvipdfmx/src/dpxfile.c +++ b/Build/source/texk/xdvipdfmx/src/dpxfile.c @@ -61,7 +61,7 @@ #endif static int verbose = 0; -int keep_cache = false; +int keep_cache = 0; void dpx_file_set_verbose (void) @@ -899,7 +899,11 @@ dpx_delete_old_cache (int life) struct dirent *de; time_t limit = time(NULL) - life * 60 * 60; - if (life >= 0) keep_cache = true; + if (life == -2) { + keep_cache = -1; + return; + } + if (life >= 0) keep_cache = 1; if ((dp = opendir(dir)) != NULL) { while((de = readdir(dp)) != NULL) { if (dpx_clear_cache_filter(de)) { @@ -922,7 +926,7 @@ dpx_delete_temp_file (char *tmp, int force) { if (!tmp) return; - if (force || !keep_cache) remove (tmp); + if (force || keep_cache != 1) remove (tmp); RELEASE(tmp); return; diff --git a/Build/source/texk/xdvipdfmx/src/dvipdfmx.c b/Build/source/texk/xdvipdfmx/src/dvipdfmx.c index ac82c2cdf56..ac97ed11198 100644 --- a/Build/source/texk/xdvipdfmx/src/dvipdfmx.c +++ b/Build/source/texk/xdvipdfmx/src/dvipdfmx.c @@ -91,7 +91,8 @@ static int pdfdecimaldigits = 2; /* Image cache life in hours */ /* 0 means erase all old images and leave new images */ /* -1 means erase all old images and also erase new images */ -static int image_cache_life = -1; +/* -2 means ignore image cache (default) */ +static int image_cache_life = -2; /* Encryption */ static int do_encryption = 0; @@ -190,9 +191,10 @@ usage (int exit_code) fprintf (stdout, "\t\tAnd negative values replace old values.\n"); fprintf (stdout, "-D template\tPS->PDF conversion command line template [none]\n"); fprintf (stdout, "-E \t\tAlways try to embed fonts, regardless of licensing flags.\n"); - fprintf (stdout, "-I number\tImage cache life in hours [-1]\n"); + fprintf (stdout, "-I number\tImage cache life in hours [-2]\n"); fprintf (stdout, " \t 0: erase all old images and leave new images\n"); fprintf (stdout, " \t-1: erase all old images and also erase new images\n"); + fprintf (stdout, " \t-2: ignore image cache\n"); fprintf (stdout, "-K number\tEncryption key length [40]\n"); fprintf (stdout, "-O number\tSet maximum depth of open bookmark items [0]\n"); fprintf (stdout, "-P number\tSet permission flags for PDF encryption [0x003C]\n"); diff --git a/Build/source/texk/xdvipdfmx/src/pdfximage.c b/Build/source/texk/xdvipdfmx/src/pdfximage.c index 6ac7b87f481..f16829f18ba 100644 --- a/Build/source/texk/xdvipdfmx/src/pdfximage.c +++ b/Build/source/texk/xdvipdfmx/src/pdfximage.c @@ -191,7 +191,7 @@ pdf_close_images (void) * We also use this to convert a PS file only once if multiple * pages are imported from that file. */ - if (_opts.verbose > 1 && !keep_cache) + if (_opts.verbose > 1 && keep_cache != 1) MESG("pdf_image>> deleting temporary file \"%s\"\n", I->filename); dpx_delete_temp_file(I->filename, false); /* temporary filename freed here */ I->filename = NULL; @@ -855,12 +855,6 @@ ps_include_page (pdf_ximage *ximage, const char *filename) return -1; } - if (_opts.verbose > 1) { - MESG("\n"); - MESG("pdf_image>> Converting file \"%s\" --> \"%s\" via:\n", filename, temp); - MESG("pdf_image>> %s\n", distiller_template); - MESG("pdf_image>> ..."); - } #ifdef MIKTEX { char *p; @@ -872,12 +866,19 @@ ps_include_page (pdf_ximage *ximage, const char *filename) } } #endif - if (stat(temp, &stat_t)==0 && stat(filename, &stat_o)==0 + if (keep_cache != -1 && stat(temp, &stat_t)==0 && stat(filename, &stat_o)==0 && stat_t.st_mtime > stat_o.st_mtime) { /* cache exist */ /*printf("\nLast file modification: %s", ctime(&stat_o.st_mtime)); printf("Last file modification: %s", ctime(&stat_t.st_mtime));*/ + ; } else { + if (_opts.verbose > 1) { + MESG("\n"); + MESG("pdf_image>> Converting file \"%s\" --> \"%s\" via:\n", filename, temp); + MESG("pdf_image>> %s\n", distiller_template); + MESG("pdf_image>> ..."); + } error = dpx_file_apply_filter(distiller_template, filename, temp, (unsigned char) pdf_get_version()); if (error) { |