diff options
author | Karl Berry <karl@freefriends.org> | 2015-08-05 20:15:15 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2015-08-05 20:15:15 +0000 |
commit | e5da00ff8fae772d4c808ca0266dc28a049259bd (patch) | |
tree | e3bb36cf4fc3e7e73362909c3d097572e072d2ff /Master/texmf-dist | |
parent | a4b78f0fc9446d2cfae36e0d82ef6a80d3e5f039 (diff) |
bxpdfver (5aug15)
git-svn-id: svn://tug.org/texlive/trunk@38050 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist')
-rw-r--r-- | Master/texmf-dist/doc/latex/bxpdfver/LICENSE | 27 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/bxpdfver/README | 84 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/bxpdfver/README-ja | 87 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/bxpdfver/sample-bxpdfver.tex | 11 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/bxpdfver/bxpdfver.sty | 385 |
5 files changed, 594 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/bxpdfver/LICENSE b/Master/texmf-dist/doc/latex/bxpdfver/LICENSE new file mode 100644 index 00000000000..4acbc245013 --- /dev/null +++ b/Master/texmf-dist/doc/latex/bxpdfver/LICENSE @@ -0,0 +1,27 @@ +$BK\%=%U%H%&%'%"$O(B MIT $B%i%$%;%s%9$N2<$GG[I[$5$l$^$9!#(B +$BCx:n8"$O:n<T$G$"$k!VH,EP(B $B?rG7!JJLL>(B ZR$B!K!W$KB0$7$^$9!#(B +$B$^$?K\%=%U%H%&%'%"$OL5J]>Z$G$9!#(B + +This software is distributed under the MIT License. + +The MIT License + +Copyright (c) 2013 Takayuki YATO (aka. "ZR") + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/Master/texmf-dist/doc/latex/bxpdfver/README b/Master/texmf-dist/doc/latex/bxpdfver/README new file mode 100644 index 00000000000..c5af09b52be --- /dev/null +++ b/Master/texmf-dist/doc/latex/bxpdfver/README @@ -0,0 +1,84 @@ +BXpdfver Package +================ + +LaTeX: To specify the version and compression level of output PDF files + +This package enables users to specify in their sources the following +settings on the PDF document to output: + + * PDF version (1.4, 1.5 etc.); + * whether or not to compress streams; + * whether or not to use object streams. + +### SYSTEM REQUIREMENT + + * TeX format: LaTeX. + * TeX engine: pdfTeX, XeTeX, LuaTeX, and any DVI-output engines. + * DVI-ware: dvipdfmx. + * Required packages: + - atbegshi (when using dvipdfmx driver) + +### INSTALLATION + + - `*.sty` → $TEXMF/tex/latex/BXpdfver + +### LICENSE + +This package is distributed under the MIT license. + +bxpdfver package +---------------- + +### PACKAGE LOADING + + \usepackage[<option>,...]{bxpdfver} + +The available options are: + + * `1.4`, `1.5`, `1.6`, or `1.7`: Sets PDF version. + * `nocompress`: Suppresses stream compression. + * `compress` (defalt): Does not suppress stream compression. + * `noobjcompress`: Suppresses use of object streams. + * `objcompress` (default): Does not suppress use of object streams. + * Driver options: As below: + + When using a PDF-output engine, you need not give driver options + since the appropriate one is auto-detected. + + `dvipdfmx`: Uses dvipdfmx driver. + + `disabled`: Disables all functions of the package. + +Note that the options `compress` and `objcompress` mean that this +package *does not suppress* a feature. They do not active a feature +when it is already suppressed by other means. + +### NOTE ON DRIVERS + + * pdfTeX and LuaTeX support all features. + * XeTeX and dvipdfmx support only PDF version setting. + * If you try to use unavailable features, an error will occur. + * The package recognizes some “unsupported” driver options such as + `dvips`; when such drivers are used, use of any feature will cause + an error. + * When `disabled` is used, use of any feature will do nothing (nor + issue an error). + +### COMMANDS + + * `\setpdfversion{<version>}`: Sets PDF version. + Here `<version>` is either one of the following: + + `1.4`, `1.5`, `1.6`, or `1.7`; the version itself. + + the name of a PDF file; the version is set equal to that of + the given file. + * `\suppresspdfcompression`: Suppresses use of object streams. + * `\suppresspdfobjcompression`: Suppresses use of object streams. + +REVISION HISTORY +---------------- + + * Version 0.2a [2015/08/05] + - Minor fix. + * Version 0.2 [2014/07/04] + - First public version. + +-------------------- +Takayuki YATO (aka. "ZR") +http://zrbabbler.sp.land.to/ diff --git a/Master/texmf-dist/doc/latex/bxpdfver/README-ja b/Master/texmf-dist/doc/latex/bxpdfver/README-ja new file mode 100644 index 00000000000..7b51dda9669 --- /dev/null +++ b/Master/texmf-dist/doc/latex/bxpdfver/README-ja @@ -0,0 +1,87 @@ +BXpdfver パッケージバンドル +=========================== + +LaTeX: 出力 PDF のバージョンや圧縮状態を指定する + +LaTeX 文書を PDF 文書に変換する際に出力 PDF に関する以下の設定を文書中で +行う機能を提供する。 + + * PDF バージョン(1.4, 1.5 等) + * ストリームの圧縮の有無 + * オブジェクトストリームの使用の有無 + +### 前提環境 + + * フォーマット: LaTeX + * エンジン: 不問 + * DVIウェア: dvipdfmx、および PDF 出力のエンジン + * 依存パッケージ: + - atbegshi(dvipdfmx ドライバの場合) + +### インストール + + - `*.sty` → $TEXMF/tex/latex/BXpdfver + +### ライセンス + +本パッケージは MIT ライセンスの下で配布される。 + +bxpdfver パッケージ +------------------- + +### パッケージ読込 + + \usepackage[<オプション>,...]{bxpdfver} + +利用可能なオプションは以下の通り。 + + * `1.4`、`1.5`、`1.6`、`1.7`: PDF バージョンを指定する。 + * `nocompress`: ストリームの圧縮を抑止する。 + * `compress`(既定): ストリームの圧縮を抑止しない。 + * `noobjcompress`: オブジェクトストリームの使用を抑止する。 + * `objcompress`(既定): オブジェクトストリームの使用を抑止しない。 + * ドライバオプション: 以下の通り。なお、後述の「ドライバ指定」の + 節も参照されたい。 + + PDF 出力のエンジンの場合は、既定で適切なドライバが選択される + のでドライバオプションは不要である。 + + `dvipdfmx`: dvipdfmx 用のドライバを指定する。 + + `disabled`: 全ての機能を無効化する。 + +`compress`、`objcompress` はこのパッケージによる抑止を行わないという意味 +であり、既に抑止されている場合にそれを再び有効化するものではない。 + +### ドライバ指定 + + * pdfTeX および LuaTeX では全ての機能が使用可能。 + * XeTeX および dvipdfmx では PDF バージョン指定のみ使用可能。 + * 使用不可能な機能を使おうと試みるとエラーが発生する。 + * `dvips` 等の“全く対応していない”若干のドライバオプションを認識 + する。この場合、全ての機能の呼出でエラーが発生する。 + * `disabled` は特殊で、これを指定した場合は、どの機能の呼出でも + エラーは発生しないが、全く何の動作も行わない。 + +### 機能 + + * `\setpdfversion{<バージョン>}`: 出力 PDF バージョンを指定する。 + `<バージョン>` には以下の何れかを指定する。 + + `1.4`、`1.5`、`1.6`、`1.7` の何れか。バージョンをその値に設定 + する。 + + PDF ファイルの名前。この場合、その PDF のバージョンと同じ値に + 設定する。 + * `\suppresspdfcompression`: ストリームの圧縮を抑止する。 + * `\suppresspdfobjcompression`: オブジェクトストリームの使用を抑止 + する。(実はこの指定自体は圧縮とは無関係であるが、pdfTeX エンジンの + プリミティブ `\pdfobjcompresslevel` に合わせた命令名を用いた。) + + +更新履歴 +-------- + + * Version 0.2a [2015/08/05] + - 細かい修正。 + * Version 0.2 [2014/07/04] + - 最初の公開版。 + +-------------------- +Takayuki YATO (aka. "ZR") +http://zrbabbler.sp.land.to/ diff --git a/Master/texmf-dist/doc/latex/bxpdfver/sample-bxpdfver.tex b/Master/texmf-dist/doc/latex/bxpdfver/sample-bxpdfver.tex new file mode 100644 index 00000000000..b421b75a3c9 --- /dev/null +++ b/Master/texmf-dist/doc/latex/bxpdfver/sample-bxpdfver.tex @@ -0,0 +1,11 @@ +\documentclass[a4paper]{article} +%\documentclass[a4paper,dvipdfmx]{article}% when using dvipdfmx +\usepackage[% + 1.5,% to set output PDF version + %nocompress,% to suppress all stream compression + noobjcompress% to suppress compression of strings for describing objects + ]{bxpdfver} +%\setpdfversion{some.pdf}% to set output version equal to some other PDF file +\begin{document} +Need to say hello {\TeX}!? +\end{document} diff --git a/Master/texmf-dist/tex/latex/bxpdfver/bxpdfver.sty b/Master/texmf-dist/tex/latex/bxpdfver/bxpdfver.sty new file mode 100644 index 00000000000..046f558a3c7 --- /dev/null +++ b/Master/texmf-dist/tex/latex/bxpdfver/bxpdfver.sty @@ -0,0 +1,385 @@ +% bxpdfver.sty + +%% package declaration +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{bxpdfver}[2015/08/05 v0.2a] + +%% preparations +\def\bxpv@pkgname{bxpdfver} +\def\bxpv@error{\PackageError\bxpv@pkgname} +\def\bxpv@info{\PackageInfo\bxpv@pkgname} + +%% variables +\newif\ifbxpv@ok +\let\bxpv@drv@type\relax +\let\bxpv@drv@name\relax +\let\bxpv@version\relax +\let\bxpv@mversion\relax +\let\bxpv@compress=t +\let\bxpv@obj@compress=t + +%% process options +% (PDF version) +\DeclareOption{1.4}{% + \edef\bxpv@version{\CurrentOption}% +} +\DeclareOption{1.5}{% + \edef\bxpv@version{\CurrentOption}% +} +\DeclareOption{1.6}{% + \edef\bxpv@version{\CurrentOption}% +} +\DeclareOption{1.7}{% + \edef\bxpv@version{\CurrentOption}% +} +\DeclareOption{1.8}{% + \edef\bxpv@version{\CurrentOption}% +} +\DeclareOption{1.9}{% + \edef\bxpv@version{\CurrentOption}% +} +% (compression) +\DeclareOption{nocompress}{% + \let\bxpv@compress=f% +} +\DeclareOption{compress}{% + \let\bxpv@compress=t% +} +\DeclareOption{noobjcompress}{% + \let\bxpv@obj@compress=f% +} +\DeclareOption{objcompress}{% + \let\bxpv@obj@compress=t% +} +% (driver) +\DeclareOption{native}{% + \let\bxpv@drv@type=p% + \def\bxpv@drv@name{native}% +} +\DeclareOption{dvipdfmx}{% + \let\bxpv@drv@type=d% + \def\bxpv@drv@name{dvipdfmx}% +} +\DeclareOption{dvips}{% + \let\bxpv@drv@type=x% + \def\bxpv@drv@name{dvips}% +} +\DeclareOption{dviout}{% + \let\bxpv@drv@type=x% + \def\bxpv@drv@name{dviout}% +} +\DeclareOption{disabled}{% + \let\bxpv@drv@type=0% + \def\bxpv@drv@name{disabled}% +} +% +\ProcessOptions* + +%--------------------------------------- helpers + +%% unique tokens +\def\bxpv@end{\bxpv@end@} +\def\bxpv@mt{\bxpv@mt@} + +%--------------------------------------- environment check + +%% \bxpv@suppress@compress +\@onlypreamble\bxpv@suppress@compress +\def\bxpv@suppress@compress{% + \bxpv@error{Cannot suppress compression}% + \bxpv@errh@na +} +%% \bxpv@suppress@obj@compress +\@onlypreamble\bxpv@suppress@obj@compress +\def\bxpv@suppress@obj@compress{% + \bxpv@error{Cannot suppress object compression}% + \bxpv@errh@na +} +%% \bxpv@set@version +\@onlypreamble\bxpv@set@version +\def\bxpv@set@version{% + \bxpv@error{Cannot set PDF version}% + \bxpv@errh@na +} +%% \bxpv@errh@na +\@onlypreamble\bxpv@errh@na +\def\bxpv@errh@na{% + This feature is not supported by the engine in use.% + \MessageBreak\@ehc +} + +\begingroup + +%% \bxpv@check@prim\CS{<proc>} +% Do <proc> if \CS is defined as primitive. +\def\bxpv@check@prim#1{% + \edef\bxpv@tmpa{\string#1}% + \edef\bxpv@tmpb{\meaning#1}% + \ifx\bxpv@tmpa\bxpv@tmpb \expandafter\@firstofone + \else \expandafter\@gobble + \fi +} + +%% \bxpv@pdfoutput: use PDF output? +\ifx\pdfoutput\@undefined + \chardef\bxpv@pdfoutput\z@ + % XeTeX might support \pdfminorversion etc in the future :) + \bxpv@check@prim\XeTeXversion{\chardef\bxpv@pdfoutput\@ne}% + % pTeX-ng + \bxpv@check@prim\ngbanner{\chardef\bxpv@pdfoutput\@ne}% +\else + \chardef\bxpv@pdfoutput\pdfoutput +\fi + +%% adjust internal dispatchers +\bxpv@okfalse +\ifnum\bxpv@pdfoutput>\z@ % PDF-output + \global\let\bxpv@drv@type=p + % \bxpv@isupp@obj@compress: auto-supress of obj-compression + \@onlypreamble\bxpv@isupp@obj@compress + \global\let\bxpv@isupp@obj@compress\relax + % \bxpv@iunsupp@obj@compress: un-auto-supress + \@onlypreamble\bxpv@iunsupp@obj@compress + \global\let\bxpv@iunsupp@obj@compress\relax + %% If \pdfcompresslevel is available, use it. + \bxpv@check@prim\pdfcompresslevel{% + \gdef\bxpv@suppress@compress{% + \global\pdfcompresslevel\z@ + }% + } + %% If \pdfobjcompresslevel is available, use it. + \bxpv@check@prim\pdfobjcompresslevel{% + \global\chardef\bxpv@org@pdfobjcompresslevel\pdfobjcompresslevel + \gdef\bxpv@suppress@obj@compress{% + \global\pdfobjcompresslevel\z@ + \global\let\bxpv@iunsupp@obj@compress\relax + }% + \gdef\bxpv@isupp@obj@compress{% + \global\pdfobjcompresslevel\z@ + }% + \gdef\bxpv@iunsupp@obj@compress{% + \global\pdfobjcompresslevel\bxpv@org@pdfobjcompresslevel + }% + } + \bxpv@check@prim\pdfminorversion\bxpv@oktrue +\fi +\ifbxpv@ok % \pdfminorversion is available + \global\chardef\bxpv@org@pdfminorversion\pdfminorversion + \gdef\bxpv@set@version{% + \ifx\bxpv@mversion\relax + \global\pdfminorversion\bxpv@org@pdfminorversion + \else + \global\pdfminorversion\bxpv@mversion + \fi + \ifnum\pdfminorversion<5 + \bxpv@isupp@obj@compress + \else + \bxpv@iunsupp@obj@compress + \fi + }% +\else + % XeTeX now does not have \pdfminorversion, + % so do it just as dvipdfmx. + \bxpv@check@prim\XeTeXversion{% + \global\let\bxpv@drv@type=d% + } +\fi + +%% driver check +\if x\bxpv@drv@type % 'bad' driver + \bxpv@error{Unsupported driver '\bxpv@drv@name'}\@ehc + % no further errors + \let\bxpv@drv@type=0\relax +\fi +\if d\bxpv@drv@type % 'dvipdfmx' + \global\let\bxpv@set@version\relax + \AtBeginDocument{% + \bxpv@set@version@dvipdfmx + } +\else\if 0\bxpv@drv@type % 'disabled' + \global\let\bxpv@set@version\relax + \global\let\bxpv@suppress@compress\relax + \global\let\bxpv@suppress@obj@compress\relax +\fi\fi + +\endgroup + +%--------------------------------------- public interface + +%%<*> \suppresspdfcompression +\@onlypreamble\suppresspdfcompression +\newcommand*\suppresspdfcompression{% + \bxpv@suppress@compress +} + +%%<*> \suppresspdfobjcompression +\@onlypreamble\suppresspdfobjcompression +\newcommand*\suppresspdfobjcompression{% + \bxpv@suppress@obj@compress +} + +%%<*> \setpdfversion{<version>} +\@onlypreamble\setpdfversion +\newcommand*\setpdfversion[1]{% + \edef\bxpv@version{#1}% + \bxpv@get@mversion + \bxpv@set@version +} + +%--------------------------------------- version values + +%% \bxpv@get@mversion +% Sets \bxpv@mversion. +% Note: \bxpv@version is assumed to be already expnaded. +\@onlypreamble\bxpv@get@mversion +\def\bxpv@get@mversion{% + \let\bxpv@mversion\relax + \ifx\bxpv@version\@empty\else + \@tfor\bxpv@x:=456789\do{% + \edef\bxpv@tmpa{1.\bxpv@x}% + \ifx\bxpv@version\bxpv@tmpa + \chardef\bxpv@mversion=\bxpv@x\relax + \fi + }% + \ifx\bxpv@mversion\relax + \bxpv@file@mversion + \fi + \ifx\bxpv@mversion\relax + \bxpv@error{Invalid value given for PDF version\MessageBreak + (value=\bxpv@version)}{% + PDF version must be either 1.4, 1.5, ..., 1.9, or\MessageBreak + or the name of a PDF file from which the version is pulled.% + \MessageBreak\@ehc}% + \else + \bxpv@info{Output PDF version is set to 1.\the\bxpv@mversion + \MessageBreak}% + \fi + \fi +} + +%% \bxpv@file@mversion +\@onlypreamble\bxpv@file@mversion +\def\bxpv@file@mversion{% + \begingroup + \expandafter\bxpv@file@mversion@a\bxpv@version\bxpv@end + \global\let\bxpv@gtmpa\bxpv@mversion + \endgroup + \let\bxpv@mversion\bxpv@gtmpa +} +\@onlypreamble\bxpv@file@mversion@a +\def\bxpv@file@mversion@a#1\bxpv@end{% + \bxpv@okfalse + \lowercase{\bxpv@file@mversion@b#1}% + \bxpv@mark.pdf\bxpv@mark\bxpv@end + \ifbxpv@ok + \openin\@inputcheck=#1\relax + \bxpv@file@mversion@c + \closein\@inputcheck + \@tfor\bxpv@x:=456789\do{% + \ifx\bxpv@x\bxpv@tmpb + \chardef\bxpv@mversion=\bxpv@x\relax + \fi + }% + \fi +} +\@onlypreamble\bxpv@file@mversion@b +\def\bxpv@file@mversion@b#1.pdf\bxpv@mark#2\bxpv@end{% + \ifx\bxpv@mt#2\bxpv@mt\else \bxpv@oktrue \fi +} +\@onlypreamble\bxpv@file@mversion@c +\def\bxpv@file@mversion@c{% + \@tempcnta\z@ + \loop\ifnum\@tempcnta<\@cclvi + \catcode\@tempcnta12 % + \advance\@tempcnta\@ne + \repeat + \endlinechar=32 + \catcode32=10 + \read\@inputcheck to\bxpv@tmpb + \expandafter\bxpv@file@mversion@xa\bxpv@tmpb\bxpv@end +} +% some more subprocedures +\@onlypreamble\bxpv@file@mversion@xa +\@onlypreamble\bxpv@file@mversion@xb +\@onlypreamble\bxpv@file@mversion@xc +\begingroup + \escapechar\m@ne + \def\bxpv@tmpa#1\bxpv@end{% + \gdef\bxpv@file@mversion@xa##1\bxpv@end{% + \bxpv@file@mversion@xb##1#1\bxpv@end + }% + \gdef\bxpv@file@mversion@xb##1#1##2\bxpv@end{% + \ifx\bxpv@mt##1\bxpv@mt + \bxpv@file@mversion@xc##2\bxpv@end + \fi + }% + \gdef\bxpv@file@mversion@xc##1 ##2\bxpv@end{% + \def\bxpv@tmpb{##1}% + }% + } + \edef\bxpv@tmpb{{\expandafter\string\csname\string\%PDF-1.\endcsname}}% + \expandafter\bxpv@tmpa\bxpv@tmpb\bxpv@end +\endgroup + +%--------------------------------------- dvipdfmx something +\ifx d\bxpv@drv@type % 'dvipdfmx' + +%% required packages +\RequirePackage{atbegshi}[2009/07/70] + +%% \bxpv@set@version@dvipdfmx +\@onlypreamble\bxpv@set@version@dvipdfmx +\def\bxpv@set@version@dvipdfmx{% + \ifx\bxpv@mversion\relax\else + % special added to every page + \AtBeginShipout{% + \setbox\AtBeginShipoutBox=\vbox{% + \baselineskip\z@skip\lineskip\z@skip\lineskiplimit\z@ + \special{pdf:minorversion \the\bxpv@mversion}% + \copy\AtBeginShipoutBox + }% + }% + \fi +} + +\fi +%--------------------------------------- start-up + +\ifx t\bxUseDebug +\typeout{% + mversion=\meaning\bxpv@mversion^^J% + compress=\meaning\bxpv@compress^^J% + objcompress=\meaning\bxpv@obj@compress^^J% + drvtype=\meaning\bxpv@drv@type^^J% + drvname=\meaning\bxpv@drv@name^^J% + +version=\meaning\bxpv@set@version^^J% + +compress=\meaning\bxpv@suppress@compress^^J% + +objcompress=\meaning\bxpv@suppress@obj@compress^^J% +} +\ifx p\bxpv@drv@type + \AtBeginDocument{% + \def\do#1{\ifx#1\@undefined\else\the#1\fi}% + \typeout{% + pdfminorversion=\do\pdfminorversion^^J% + pdfcompresslevel=\do\pdfcompresslevel^^J% + pdfobjcompresslevel=\do\pdfobjcompresslevel^^J% + }% + } +\fi +\fi + +%% Applies the setting specified by package options +\ifx\bxpv@version\relax\else + \bxpv@get@mversion + \bxpv@set@version +\fi +\if t\bxpv@compress\else + \bxpv@suppress@compress +\fi +\if t\bxpv@obj@compress\else + \bxpv@suppress@obj@compress +\fi + +%--------------------------------------- all done +\endinput +%% EOF |