diff options
author | Siep Kroonenberg <siepo@cybercomm.nl> | 2008-09-26 09:17:26 +0000 |
---|---|---|
committer | Siep Kroonenberg <siepo@cybercomm.nl> | 2008-09-26 09:17:26 +0000 |
commit | 69cdb80977fc59e47c24a680fc0c61a3eac0c097 (patch) | |
tree | ca111e9049a1785bf8507161dce88a2233268760 /Master/tlpkg/dviout/GRAPHIC | |
parent | d3a140feea19858912cc2de406e176ae8ce6c392 (diff) |
dviout moved to tlpkg/dviout; dviout.vbs changed accordingly.
git-svn-id: svn://tug.org/texlive/trunk@10733 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/tlpkg/dviout/GRAPHIC')
35 files changed, 3456 insertions, 0 deletions
diff --git a/Master/tlpkg/dviout/GRAPHIC/COLOR/color.tex b/Master/tlpkg/dviout/GRAPHIC/COLOR/color.tex new file mode 100644 index 00000000000..ac402120a8c --- /dev/null +++ b/Master/tlpkg/dviout/GRAPHIC/COLOR/color.tex @@ -0,0 +1,189 @@ +\documentclass[a4j]{jarticle} +\usepackage{graphicx, color} +\ExecuteOptions{usenames} +\begin{document} +%\parskip 2pt +\pagecolor[rgb]{1,1,0.94} + +\centerline{\Huge 68 Colors} +\centerline{\Large Pre-defined in graphic packages of \LaTeXe} +\medskip + +\begin{tabular}{lllll} +\colorbox[named]{GreenYellow}{GreenYellow}& +\colorbox[named]{Yellow}{Yellow}& +\colorbox[named]{Goldenrod}{Goldenrod}& +\colorbox[named]{Dandelion}{Dandelion}& +\colorbox[named]{Apricot}{Apricot}\\ + +\colorbox[named]{Peach}{Peach}& +\colorbox[named]{Melon}{Melon}& +\colorbox[named]{YellowOrange}{YellowOrange}& +\colorbox[named]{Orange}{Orange}& +\colorbox[named]{BurntOrange}{BurntOrange}\\ + +\colorbox[named]{Bittersweet}{Bittersweet}& +\colorbox[named]{RedOrange}{RedOrange}& +\colorbox[named]{Mahogany}{Mahogany}& +\colorbox[named]{Maroon}{Maroon}& +\colorbox[named]{BrickRed}{BrickRed}\\ + +\colorbox[named]{Red}{Red}& +\colorbox[named]{OrangeRed}{OrangeRed}& +\colorbox[named]{RubineRed}{RubineRed}& +\colorbox[named]{WildStrawberry}{WildStrawberry}& +\colorbox[named]{Salmon}{Salmon}\\ + +\colorbox[named]{CarnationPink}{CarnationPink}& +\colorbox[named]{Magenta}{Magenta}& +\colorbox[named]{VioletRed}{VioletRed}& +\colorbox[named]{Rhodamine}{Rhodamine}& +\colorbox[named]{Mulberry}{Mulberry}\\ + +\colorbox[named]{RedViolet}{RedViolet}& +\colorbox[named]{Fuchsia}{Fuchsia}& +\colorbox[named]{Lavender}{Lavender}& +\colorbox[named]{Thistle}{Thistle}& +\colorbox[named]{Orchid}{Orchid}\\ + +\colorbox[named]{DarkOrchid}{DarkOrchid}& +\colorbox[named]{Purple}{Purple}& +\colorbox[named]{Plum}{Plum}& +\colorbox[named]{Violet}{Violet}& +\colorbox[named]{RoyalPurple}{RoyalPurple}\\ + +\colorbox[named]{BlueViolet}{BlueViolet}& +\colorbox[named]{Periwinkle}{Periwinkle}& +\colorbox[named]{CadetBlue}{CadetBlue}& +\colorbox[named]{CornflowerBlue}{CornflowerBlue}& +\colorbox[named]{MidnightBlue}{MidnightBlue}\\ + +\colorbox[named]{NavyBlue}{NavyBlue}& +\colorbox[named]{RoyalBlue}{RoyalBlue}& +\colorbox[named]{Blue}{Blue}& +\colorbox[named]{Cerulean}{Cerulean}& +\colorbox[named]{Cyan}{Cyan}\\ + +\colorbox[named]{ProcessBlue}{ProcessBlue}& +\colorbox[named]{SkyBlue}{SkyBlue}& +\colorbox[named]{Turquoise}{Turquoise}& +\colorbox[named]{TealBlue}{TealBlue}& +\colorbox[named]{Aquamarine}{Aquamarine}\\ + +\colorbox[named]{BlueGreen}{BlueGreen}& +\colorbox[named]{Emerald}{Emerald}& +\colorbox[named]{JungleGreen}{JungleGreen}& +\colorbox[named]{SeaGreen}{SeaGreen}& +\colorbox[named]{Green}{Green}\\ + +\colorbox[named]{ForestGreen}{ForestGreen}& +\colorbox[named]{PineGreen}{PineGreen}& +\colorbox[named]{LimeGreen}{LimeGreen}& +\colorbox[named]{YellowGreen}{YellowGreen}& +\colorbox[named]{SpringGreen}{SpringGreen}\\ + +\colorbox[named]{OliveGreen}{OliveGreen}& +\colorbox[named]{RawSienna}{RawSienna}& +\colorbox[named]{Sepia}{Sepia}& +\colorbox[named]{Brown}{Brown}& +\colorbox[named]{Tan}{Tan}\\ + +\colorbox[named]{Gray}{Gray}& +\colorbox[named]{Black}{\color[named]{White}Black}& +\fcolorbox[named]{Black}{White} +{\special{color push Black}White\special{color pop}}\\ +\\ + +{\color[named]{GreenYellow}GreenYellow}& +{\color[named]{Yellow}Yellow}& +{\color[named]{Goldenrod}Goldenrod}& +{\color[named]{Dandelion}Dandelion}& +{\color[named]{Apricot}Apricot}\\ + +{\color[named]{Peach}Peach}& +{\color[named]{Melon}Melon}& +{\color[named]{YellowOrange}YellowOrange}& +{\color[named]{Orange}Orange}& +{\color[named]{BurntOrange}BurntOrange}\\ + +{\color[named]{Bittersweet}Bittersweet}& +{\color[named]{RedOrange}RedOrange}& +{\color[named]{Mahogany}Mahogany}& +{\color[named]{Maroon}Maroon}& +{\color[named]{BrickRed}BrickRed}\\ + +{\color[named]{Red}Red}& +{\color[named]{OrangeRed}OrangeRed}& +{\color[named]{RubineRed}RubineRed}& +{\color[named]{WildStrawberry}WildStrawberry}& +{\color[named]{Salmon}Salmon}\\ + +{\color[named]{CarnationPink}CarnationPink}& +{\color[named]{Magenta}Magenta}& +{\color[named]{VioletRed}VioletRed}& +{\color[named]{Rhodamine}Rhodamine}& +{\color[named]{Mulberry}Mulberry}\\ + +{\color[named]{RedViolet}RedViolet}& +{\color[named]{Fuchsia}Fuchsia}& +{\color[named]{Lavender}Lavender}& +{\color[named]{Thistle}Thistle}& +{\color[named]{Orchid}Orchid}\\ + +{\color[named]{DarkOrchid}DarkOrchid}& +{\color[named]{Purple}Purple}& +{\color[named]{Plum}Plum}& +{\color[named]{Violet}Violet}& +{\color[named]{RoyalPurple}RoyalPurple}\\ + +{\color[named]{BlueViolet}BlueViolet}& +{\color[named]{Periwinkle}Periwinkle}& +{\color[named]{CadetBlue}CadetBlue}& +{\color[named]{CornflowerBlue}CornflowerBlue}& +{\color[named]{MidnightBlue}MidnightBlue}\\ + +{\color[named]{NavyBlue}NavyBlue}& +{\color[named]{RoyalBlue}RoyalBlue}& +{\color[named]{Blue}Blue}& +{\color[named]{Cerulean}Cerulean}& +{\color[named]{Cyan}Cyan}\\ + +{\color[named]{ProcessBlue}ProcessBlue}& +{\color[named]{SkyBlue}SkyBlue}& +{\color[named]{Turquoise}Turquoise}& +{\color[named]{TealBlue}TealBlue}& +{\color[named]{Aquamarine}Aquamarine}\\ + +{\color[named]{BlueGreen}BlueGreen}& +{\color[named]{Emerald}Emerald}& +{\color[named]{JungleGreen}JungleGreen}& +{\color[named]{SeaGreen}SeaGreen}& +{\color[named]{Green}Green}\\ + +{\color[named]{ForestGreen}ForestGreen}& +{\color[named]{PineGreen}PineGreen}& +{\color[named]{LimeGreen}LimeGreen}& +{\color[named]{YellowGreen}YellowGreen}& +{\color[named]{SpringGreen}SpringGreen}\\ + +{\color[named]{OliveGreen}OliveGreen}& +{\color[named]{RawSienna}RawSienna}& +{\color[named]{Sepia}Sepia}& +{\color[named]{Brown}Brown}& +{\color[named]{Tan}Tan}\\ + +{\color[named]{Gray}Gray}& +{\color[named]{Black}Black}& +{\colorbox[named]{Gray}{\color[named]{White}White}}\\ +\\ + +{\fcolorbox[named]{Red}{Yellow} +{\special{color push Black}Black\special{color pop}}}& +{\fcolorbox[named]{Black}{Red} +{\special{color push White}White\special{color pop White}}}& +{\fcolorbox[named]{Blue}{Cyan}{\special{color push Cyan}% +\special{color push Blue}Blue\special{color pop}\special{color pop}}}& +{\fcolorbox[named]{Red}{Black} +{\special{color push Yellow}Yellow\special{color pop}}}\\ +\end{tabular} +\end{document} diff --git a/Master/tlpkg/dviout/GRAPHIC/LATEX2E/color.cfg b/Master/tlpkg/dviout/GRAPHIC/LATEX2E/color.cfg new file mode 100644 index 00000000000..6b120bbbda0 --- /dev/null +++ b/Master/tlpkg/dviout/GRAPHIC/LATEX2E/color.cfg @@ -0,0 +1,14 @@ +%% +%% Copyright (C) 1995, Written by Kazunori ASAYAMA (TPM03937@pcvan.or.jp) +%% 1997, modified by SHIMA +%% +%% This file is a part of the package of `dviout'. +%% +%% It should be distributed *unchanged* and together with the package. +%% A modified version of this file may be distributed, but it should +%% be distributed with a *different* name. +%% +\DeclareOption{dviout}{% + \def\Gin@driver{dviout.def} + \def\c@lor@namefile{dvipsnam.def}} +\ExecuteOptions{dviout} diff --git a/Master/tlpkg/dviout/GRAPHIC/LATEX2E/dviout.def b/Master/tlpkg/dviout/GRAPHIC/LATEX2E/dviout.def new file mode 100644 index 00000000000..3f305a72865 --- /dev/null +++ b/Master/tlpkg/dviout/GRAPHIC/LATEX2E/dviout.def @@ -0,0 +1,180 @@ +%% +%% This is file `dviout.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% dviout.dtx (with options: `dviout,color') +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% Any modified versions of this file must be renamed +%% with new filenames distinct from dviout.def. +%% +%% For distribution of the original source see the terms +%% for copying and modification in the file dviout.dtx. +%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) +\ProvidesFile{dviout.def} + [2000/5/11 Driver file of `dviout' for LaTeX2e] +\def\c@lor@arg#1{% + \dimen@#1\p@ + \ifdim\dimen@<\z@\dimen@\maxdimen\fi + \ifdim\dimen@>\p@ + \PackageError{color}{Argument `#1' not in range [0,1]}\@ehd + \fi} +\def\color@gray#1#2{% + \c@lor@arg{#2}% + \def#1{gray #2}% + } +\def\color@cmyk#1#2{\c@lor@@cmyk#2\@@#1} +\def\c@lor@@cmyk#1,#2,#3,#4\@@#5{% + \c@lor@arg{#1}% + \c@lor@arg{#2}% + \c@lor@arg{#3}% + \c@lor@arg{#4}% + \def#5{cmyk #1 #2 #3 #4}} +\def\color@rgb#1#2{\c@lor@@rgb#2\@@#1} +\def\c@lor@@rgb#1,#2,#3\@@#4{% + \c@lor@arg{#1}% + \c@lor@arg{#2}% + \c@lor@arg{#3}% + \def#4{rgb #1 #2 #3}} +\def\color@hsb#1#2{\c@lor@@hsb#2\@@#1} +\def\c@lor@@hsb#1,#2,#3\@@#4{% + \c@lor@arg{#1}% + \c@lor@arg{#2}% + \c@lor@arg{#3}% + \def#4{hsb #1 #2 #3}} +\def\color@named#1#2{\c@lor@@named#2,,\@@#1} +\def\c@lor@@named#1,#2,#3\@@#4{% + \@ifundefined{col@#1}% + {\PackageError{color}{Undefined color `#1'}\@ehd}% + {\def#4{ #1}}% + } +\def\current@color{ Black} +\def\define@color@named#1#2{% + \expandafter\let\csname col@#1\endcsname\@nnil}% +\def\set@color{% + \special{color push \current@color}\aftergroup\reset@color} +\def\reset@color{\special{color pop}} +\def\set@page@color{\special{background \current@color}} +\def\Ginclude@eps#1{% + \message{<#1>}% + \bgroup + \def\@tempa{!}% + \dimen@=10\Gin@req@width + \dimen@ii1bp% + \divide\dimen@\dimen@ii + \@tempdima=10\Gin@req@height + \divide\@tempdima\dimen@ii + \special{PSfile="#1"\space + llx=\Gin@llx\space + lly=\Gin@lly\space + urx=\Gin@urx\space + ury=\Gin@ury\space + \ifx\Gin@scalex\@tempa\else rwi=\number\dimen@\space\fi + \ifx\Gin@scaley\@tempa\else rhi=\number\@tempdima\space\fi + \ifGin@clip clip\fi}% + \egroup} +\def\Ginclude@image@common#1#2{% + \bgroup + \def\@tempa{!}% + \ifx\Gin@scaley\@tempa + \let\Gin@scaley\Gin@scalex + \else + \ifx\Gin@scalex\@tempa\let\Gin@scalex\Gin@scaley\fi + \fi + \raise\Gin@req@height\hbox{% + \divide\Gin@req@width by 65781% convert sp to bp + \divide\Gin@req@height by 65781% convert sp to bp + \message{<#1 \number\Gin@req@width bp\space x% +\space\number\Gin@req@height bp>}% + \special{#2file=#1\space% + hsize=\number\Gin@req@width\space% + vsize=\number\Gin@req@height}}% + \egroup} +\def\Gread@pbm#1{% + \begingroup + \Gin@bboxfalse + \catcode`\#=14 + \openin\@inputcheck=#1\relax + \ifeof\@inputcheck\errmessage{#1: could not open.}\fi + \read\@inputcheck to \pbm@line + %% Here, checking magic number. Not implemented yet. + \newif\ifpbm@not@bb + \loop\ifeof\@inputcheck\errmessage{#1: unexpected EOF.}\fi + \read\@inputcheck to \pbm@line + \ifx\pbm@line\@empty\pbm@not@bbtrue\else\pbm@not@bbfalse\fi + \ifpbm@not@bb\repeat + \closein\@inputcheck + \expandafter\pbm@decode@bb\pbm@line] + \endgroup} +\def\pbm@decode@bb#1 #2]{% + \Gin@bboxtrue% + \gdef\Gin@llx{0}\gdef\Gin@lly{0}\gdef\Gin@urx{#1}\gdef\Gin@ury{#2}} +\def\get@pbm@magic P#1{#1} +\def\Ginclude@pbm#1{\Ginclude@image@common{#1}{pbm}} +\def\Gread@bmp#1{% + \begingroup +\@tempcnta\z@ +\loop\ifnum\@tempcnta<\@xxxii + \catcode\@tempcnta14 % + \advance\@tempcnta\@ne +\repeat +\catcode127=14 % + \let\do\@makeother\dospecials\catcode`\ 10 % + \catcode\endlinechar5 % + \immediate\openin\@inputcheck#1 % + \ifeof\@inputcheck + \@warning{File `#1' not found (which will be created by % + `bmc' with -b option)} + \else + \Gread@true + \let\@tempb\Gread@false + \loop + \read\@inputcheck to\@tempa + \ifeof\@inputcheck + \Gread@false + \else + \expandafter\Gread@find@bb\@tempa:.\\% + \fi + \ifGread@ + \repeat + \immediate\closein\@inputcheck + \fi + \ifGin@bbox\else + \@warning + {Assume Bounding Box: 0 0 72 72}% + \gdef\@gtempa{0 0 72 72 }% + \fi + \endgroup + \expandafter\Gread@parse@bb\@gtempa\\} +\def\Ginclude@bmp#1{\Ginclude@image@common{#1}{bmp}} +\def\Gin@extensions{.eps,.ps,.pbm,.gif,.bmp,.bmc,.ps.gz,.eps.gz} +\@namedef{Gin@rule@.ps}#1{{eps}{.ps}{#1}} +\@namedef{Gin@rule@.eps}#1{{eps}{.eps}{#1}} +\@namedef{Gin@rule@.ps.gz}#1{{eps}{.bb}{#1}} +\@namedef{Gin@rule@.eps.gz}#1{{eps}{.bb}{#1}} +\@namedef{Gin@rule@.pbm}#1{{pbm}{.pbm}{#1}} +\@namedef{Gin@rule@*}#1{{bmp}{.bb}{#1}} +\def\Grot@start{% + \special{ps: gsave currentpoint + currentpoint translate \Grot@angle\space neg + rotate neg exch neg exch translate}} +\def\Grot@end{\special{ps: currentpoint grestore moveto}} +\def\Gscale@start{\special{ps: currentpoint currentpoint translate + \Gscale@x\space \Gscale@y\space scale neg exch neg exch translate}} +\def\Gscale@end{\special{ps: currentpoint currentpoint translate + 1 \Gscale@x\space div 1 \Gscale@y\space div scale + neg exch neg exch translate}} +\def\Gin@PS@raw#1{\special{ps: #1}} +\def\Gin@PS@restored#1{\special{" #1}} +\endinput +%% +%% End of file `dviout.def'. diff --git a/Master/tlpkg/dviout/GRAPHIC/LATEX2E/dviout.dtx b/Master/tlpkg/dviout/GRAPHIC/LATEX2E/dviout.dtx new file mode 100644 index 00000000000..7b9e80b1bc2 --- /dev/null +++ b/Master/tlpkg/dviout/GRAPHIC/LATEX2E/dviout.dtx @@ -0,0 +1,333 @@ +% \iffalse +%<*ignore> +% Copyright (C) 1995, Written by Kazunori ASAYAMA (TPM03937@pcvan.or.jp) +% 1997-2000, modified by SHIMA (oshima@ms.u-tokyo.ac.jp) +% 2000, modified by Matsuda & Otobe +% +% This file is a part of the package of `dviout'. +% +% It should be distributed *unchanged* and together with the package. +% A modified version of this file may be distributed, but it should +% be distributed with a *different* name. +% +%</ignore> +%<dviout>\ProvidesFile{dviout.def} +%<*driver> +\NeedsTeXFormat{LaTeX2e}\ProvidesFile{dviout.dtx} +%</driver> + [2000/5/11 Driver file of `dviout' for LaTeX2e] +%<*driver> +\documentclass{ltxdoc} +\GetFileInfo{dviout.dtx} +\begin{document} + \title{Driver file of \emph{dviout} for \LaTeXe} + \author{Kazunori ASAYAMA\thanks{% + \texttt{TPM03937@pcvan.or.jp} / % + \texttt{GHF01532@niftyserve.or.jp}} \ and + SHIMA\thanks{% + \texttt{dviout-admin@akagi.ms.u-tokyo.ac.jp}}} + \date{\filedate} + \maketitle + \DocInput{dviout.dtx} +\end{document} +%</driver> +%\fi +% +% \CheckSum{344} +% +% \changes{v0.7}{2000/5/11}{Seventh version.} +% +% \StopEventually{} +% +% \section{Usage} +% +% See +% `|drivers.dtx|', +% `|graphics.dtx|', +% `|graphicx.dtx|' and +% `|grfguide.tex|'. +% +% \section{Implementation} +% \subsection{Color} +% Color specifications are mostly from `drivers.dtx' with +% |color1| option. +% +% \begin{macrocode} +\def\c@lor@arg#1{% + \dimen@#1\p@ + \ifdim\dimen@<\z@\dimen@\maxdimen\fi + \ifdim\dimen@>\p@ + \PackageError{color}{Argument `#1' not in range [0,1]}\@ehd + \fi} +\def\color@gray#1#2{% + \c@lor@arg{#2}% + \def#1{gray #2}% + } +\def\color@cmyk#1#2{\c@lor@@cmyk#2\@@#1} +\def\c@lor@@cmyk#1,#2,#3,#4\@@#5{% + \c@lor@arg{#1}% + \c@lor@arg{#2}% + \c@lor@arg{#3}% + \c@lor@arg{#4}% + \def#5{cmyk #1 #2 #3 #4}} +\def\color@rgb#1#2{\c@lor@@rgb#2\@@#1} +\def\c@lor@@rgb#1,#2,#3\@@#4{% + \c@lor@arg{#1}% + \c@lor@arg{#2}% + \c@lor@arg{#3}% + \def#4{rgb #1 #2 #3}} +\def\color@hsb#1#2{\c@lor@@hsb#2\@@#1} +\def\c@lor@@hsb#1,#2,#3\@@#4{% + \c@lor@arg{#1}% + \c@lor@arg{#2}% + \c@lor@arg{#3}% + \def#4{hsb #1 #2 #3}} +\def\color@named#1#2{\c@lor@@named#2,,\@@#1} +\def\c@lor@@named#1,#2,#3\@@#4{% + \@ifundefined{col@#1}% + {\PackageError{color}{Undefined color `#1'}\@ehd}% + {\def#4{ #1}}% + } +\def\current@color{ Black} +\def\define@color@named#1#2{% + \expandafter\let\csname col@#1\endcsname\@nnil}% +% \end{macrocode} +% +% If the driver supports the color, we output +% \begin{quote} +% |\special{color push |\meta{color-spec}|}| +% |\special{color pop}| +% \end{quote} +% in the \emph{DVI} files, which is compatible with \emph{dvips.def}. +% +% \begin{macrocode} +%<*color> +\def\set@color{% + \special{color push \current@color}\aftergroup\reset@color} +\def\reset@color{\special{color pop}} +\def\set@page@color{\special{background \current@color}} +%</color> +% +% \end{macrocode} +% +% While if the driver does not support the color, +% ignore color specials (accept but not output). +% +% \begin{macrocode} +%<*!color> +\def\set@color{} +\def\reset@color{} +\def\set@page@color{} +%</!color> +% \end{macrocode} +% +% \subsection{Graphic file inclusion} +% \begin{macro}{\Ginclude@eps} +% +% Define the method of including EPS file. +% This macro generates special: +% \begin{quote} +% |PSfile=|"\meta{filename}" \meta{keywords} +% \end{quote} +% which is compatible to \emph{dvips.def}. +% +% \begin{macrocode} +%<*dviout> +\def\Ginclude@eps#1{% + \message{<#1>}% + \bgroup + \def\@tempa{!}% + \dimen@=10\Gin@req@width + \dimen@ii1bp% + \divide\dimen@\dimen@ii + \@tempdima=10\Gin@req@height + \divide\@tempdima\dimen@ii + \special{PSfile="#1"\space + llx=\Gin@llx\space + lly=\Gin@lly\space + urx=\Gin@urx\space + ury=\Gin@ury\space + \ifx\Gin@scalex\@tempa\else rwi=\number\dimen@\space\fi + \ifx\Gin@scaley\@tempa\else rhi=\number\@tempdima\space\fi + \ifGin@clip clip\fi}% + \egroup} +% \end{macrocode} +% \end{macro} ^^A \Ginclude@eps +% +% \begin{macro}{\Ginclude@image@common} +% +% Define the common macro used by |\Ginclude@|\meta{type} +% macros. +% +% This macro receive two arguments, the filename of image as |#1|, +% and the type of image as |#2|, and generates a special instruction +% `\meta{type}|file=|\meta{filename} \meta{keywords}' in the \emph{DVI} file. +% +% \begin{macrocode} +\def\Ginclude@image@common#1#2{% + \bgroup + \def\@tempa{!}% + \ifx\Gin@scaley\@tempa + \let\Gin@scaley\Gin@scalex + \else + \ifx\Gin@scalex\@tempa\let\Gin@scalex\Gin@scaley\fi + \fi + \raise\Gin@req@height\hbox{% + \divide\Gin@req@width by 65781% convert sp to bp + \divide\Gin@req@height by 65781% convert sp to bp + \message{<#1 \number\Gin@req@width bp\space x% + \space\number\Gin@req@height bp>}% + \special{#2file=#1\space% + hsize=\number\Gin@req@width\space% + vsize=\number\Gin@req@height}}% + \egroup} +% \end{macrocode} +% \end{macro} ^^A \Ginclude@image@common +% +% \begin{macro}{\Ginclude@pbm} +% Generate special: +% \begin{quote} +% |pbmfile=|\meta{filename} \meta{keywords} +% \end{quote} +% with using `|\Ginclude@image@common|' macro. +% This special is supported by \emph{dviprt} and \emph{dviout}. +% \begin{macrocode} +\def\Gread@pbm#1{% + \begingroup + \Gin@bboxfalse + \catcode`\#=14 + \openin\@inputcheck=#1\relax + \ifeof\@inputcheck\errmessage{#1: could not open.}\fi + \read\@inputcheck to \pbm@line + %% Here, checking magic number. Not implemented yet. + \newif\ifpbm@not@bb + \loop\ifeof\@inputcheck\errmessage{#1: unexpected EOF.}\fi + \read\@inputcheck to \pbm@line + \ifx\pbm@line\@empty\pbm@not@bbtrue\else\pbm@not@bbfalse\fi + \ifpbm@not@bb\repeat + \closein\@inputcheck + \expandafter\pbm@decode@bb\pbm@line] + \endgroup} +\def\pbm@decode@bb#1 #2]{% + \Gin@bboxtrue% + \gdef\Gin@llx{0}\gdef\Gin@lly{0}\gdef\Gin@urx{#1}\gdef\Gin@ury{#2}} +\def\get@pbm@magic P#1{#1} +\def\Ginclude@pbm#1{\Ginclude@image@common{#1}{pbm}} +% \end{macrocode} +% \end{macro} ^^A \Ginclude@pbm +% +% \begin{macro}{\Ginclude@bmp} +% Generate special: +% \begin{quote} +% |bmpfile=|\meta{filename} \meta{keywords} +% \end{quote} +% with using `|\Ginclude@image@common|' macro. +% This special is supported by \emph{dviout for Windows}. +% +% `filename' may be any graphic file if it is supported by Susie's plug-in. +% The file with the name replaced the extension of `filename' by '.bb' +% is searched to read the BoundingBox. +% +% \begin{macrocode} +\def\Gread@bmp#1{% + \begingroup +\@tempcnta\z@ +\loop\ifnum\@tempcnta<\@xxxii + \catcode\@tempcnta14 % + \advance\@tempcnta\@ne +\repeat +\catcode127=14 % + \let\do\@makeother\dospecials\catcode`\ 10 % + \catcode\endlinechar5 % + \immediate\openin\@inputcheck#1 % + \ifeof\@inputcheck + \@warning{File `#1' not found (which will be created by % + `bmc' with -b option)} + \else + \Gread@true + \let\@tempb\Gread@false + \loop + \read\@inputcheck to\@tempa + \ifeof\@inputcheck + \Gread@false + \else + \expandafter\Gread@find@bb\@tempa:.\\% + \fi + \ifGread@ + \repeat + \immediate\closein\@inputcheck + \fi + \ifGin@bbox\else + \@warning + {Assume Bounding Box: 0 0 72 72}% + \gdef\@gtempa{0 0 72 72 }% + \fi + \endgroup + \expandafter\Gread@parse@bb\@gtempa\\} +\def\Ginclude@bmp#1{\Ginclude@image@common{#1}{bmp}} +% \end{macrocode} +% \end{macro} ^^A \Ginclude@bmp +% +% \begin{macrocode} +\def\Gin@extensions{.eps,.ps,.pbm,.gif,.bmp,.bmc,.ps.gz,.eps.gz} +% \end{macrocode} +% +% Define the associations between the extentions and the image formats. +% If the format of image is PostScript, then read the file and +% determine its bounding box from DSC comments. +% +% \begin{macrocode} +\@namedef{Gin@rule@.ps}#1{{eps}{.ps}{#1}} +\@namedef{Gin@rule@.eps}#1{{eps}{.eps}{#1}} +\@namedef{Gin@rule@.ps.gz}#1{{eps}{.bb}{#1}} +\@namedef{Gin@rule@.eps.gz}#1{{eps}{.bb}{#1}} +\@namedef{Gin@rule@.pbm}#1{{pbm}{.pbm}{#1}} +\@namedef{Gin@rule@*}#1{{bmp}{.bb}{#1}} +% \end{macrocode} +% +% \subsection{Rotation} +% \begin{macro}{\Grot@start} +% This generates the same code in \emph{DVI} file as \emph{dvips.def}. +% Colored graphic images can only be rotated an integer multiple of +% 90 degree and they should be given by EPS files. +% \begin{macrocode} +\def\Grot@start{% + \special{ps: gsave currentpoint + currentpoint translate \Grot@angle\space neg + rotate neg exch neg exch translate}} +\def\Grot@end{\special{ps: currentpoint grestore moveto}} +% \end{macrocode} +% \end{macro} ^^A \Grot@start +% +% \subsection{Scaling} +% \begin{macro}{\Gscale@start} +% This generates the same code in \emph{DVI} file as \emph{dvips.def}. +% \begin{macrocode} +\def\Gscale@start{\special{ps: currentpoint currentpoint translate + \Gscale@x\space \Gscale@y\space scale neg exch neg exch translate}} +\def\Gscale@end{\special{ps: currentpoint currentpoint translate + 1 \Gscale@x\space div 1 \Gscale@y\space div scale + neg exch neg exch translate}} +% \end{macrocode} +% \end{macro} ^^A \Gscale@start +% +% \subsection{PostScript code} +% PostScript code is supported only if it is completed to draw a graphic. +% \begin{macro}{\Gin@PS@raw} +% |#1| PostScript code; +% \begin{macrocode} +\def\Gin@PS@raw#1{\special{ps: #1}} +% \end{macrocode} +% \end{macro} ^^A \Gin@PS@raw +% \begin{macro}{\Gin@PS@restore} +% |#1| PostScript code +% \begin{macrocode} +\def\Gin@PS@restored#1{\special{" #1}} +% \end{macrocode} +% \end{macro} ^^A \Gin@PS@restore +% +% \begin{macrocode} +%</dviout> +% \end{macrocode} +% +% \Finale diff --git a/Master/tlpkg/dviout/GRAPHIC/LATEX2E/dviout.ins b/Master/tlpkg/dviout/GRAPHIC/LATEX2E/dviout.ins new file mode 100644 index 00000000000..7bea26b4c23 --- /dev/null +++ b/Master/tlpkg/dviout/GRAPHIC/LATEX2E/dviout.ins @@ -0,0 +1,15 @@ +%%
+%% Copyright (C) 1995, Written by Kazunori ASAYAMA (TPM03937@pcvan.or.jp)
+%% 1997, modified by SHIMA
+%%
+%% This file is a part of the package of `dviout'.
+%%
+%% It should be distributed *unchanged* and together with the package.
+%% A modified version of this file may be distributed, but it should +%% be distributed with a *different* name.
+%%
+\def\batchfile{dviout.ins}
+\input docstrip
+\keepsilent
+
+\generateFile{dviout.def}{f}{\from{dviout.dtx}{dviout,color}}
diff --git a/Master/tlpkg/dviout/GRAPHIC/LATEX2E/graphics.cfg b/Master/tlpkg/dviout/GRAPHIC/LATEX2E/graphics.cfg new file mode 100644 index 00000000000..29c8b42349e --- /dev/null +++ b/Master/tlpkg/dviout/GRAPHIC/LATEX2E/graphics.cfg @@ -0,0 +1,11 @@ +%% +%% Copyright (C) 1995, Written by Kazunori ASAYAMA (TPM03937@pcvan.or.jp) +%% +%% This file is a part of the package of `dviout'. +%% +%% It should be distributed *unchanged* and together with the package. +%% A modified version of this file may be distributed, but it should +%% be distributed with a *different* name. +%% +\DeclareOption{dviout}{\def\Gin@driver{dviout.def}} +\ExecuteOptions{dviout} diff --git a/Master/tlpkg/dviout/GRAPHIC/LATEX2E/readme b/Master/tlpkg/dviout/GRAPHIC/LATEX2E/readme new file mode 100644 index 00000000000..b9ecf64c2e7 --- /dev/null +++ b/Master/tlpkg/dviout/GRAPHIC/LATEX2E/readme @@ -0,0 +1,98 @@ + Graphics Package + + 1. dviout.dtx + 2. ps2frag.ps (PSfrag) + + +1. dviout.dtx + +LaTeX2e の dviout for Windows のグラフィクスドライバです。別途 LaTeX2e の +graphics package が必要です。 + +(p)LaTeX2e で dviout.ins を処理し、生成される dviout.def とこのアーカイブに +含まれる *.cfg を texmf\tex\latex\config に(それが存在しないときは graphics +package とおなじディレクトリに)コピーしてください。 +なお、直接 dviout.dtx を処理すると、dviout.def のマニュアルが作成されます。 + +・画像フォーマットは PBM, BMP, BMC, WMF, EPSF その他各種画像フォーマット、およ + びそれらを gzip で圧縮したものに対応しています。 + ただし、PBM, EPSF以外では、\includegraphics マクロのオプション引数で画像 + ファイルの縦横のサイズを指定するか、bmc の -b オプションによって BoundingBox + を記録した拡張子 .bb のファイルを作成しておく必要があります。EPSF, PBM につ + いては画像サイズは自動的に調べられます。 + +・PBM のチェックはしていません。拡張子が .pbm の場合に強制的に PBM フォー + マットとして処理しています。チェックを入れるべきでしょうが、面倒なのでな + にもしていません (^^; どなたかお願いします。 + +・不具合が見つかった場合には、報告するのではなく FIX して公開してください (^^; + +・dvips 用のドライバが出力する DVI ファイルとの互換性を高くしてありますが、 + PBM/BMP/BMC/WMF/JPEG/TIFF/PNG/PCD など各種の画像の取り込みをサポートして + いる点で異なっています。 + +・EPSFを扱うには Ghostscript が、PBM/BMP/BMC/WMF 以外の JPEG, TIFF, PCD, GIF, + などの画像ファイルを扱うには、フリーソフト Susie の plug-in として提供され + る DLL が必要です(拡張子は spi)。その他の形式の画像ファイルの場合でも、対 + 応する Susie の plug-in を dviout for Windows の存在するフォルダに入れてお + けば、dviout.def を用いて LaTeX2e の graphics packages で取り込むことが出来 + ます。 + + なお、Susie plug-in は + + WWW + http://www.digitalpad.co.jp/~takechin/ + Nifty-serve + FGALAV,FQLD1,FWINMM,FGUI + + などから手に入ります。 + +・psflag.sty を用いる場合は, psflag.sty の中の + + \def\@tempa{dvips.def}\ifx\Gin@driver\@tempa\def\pfg@orient{-1}\fi% + + という行の後に + + \def\@tempa{dviout.def}\ifx\Gin@driver\@tempa\def\pfg@orient{-1}\fi% + + を挿入してください。dviout は、PSFLAG をサポートしていませんが、 + dvips.def におけると同様、dviout.def によって作成された DVI ファイル + は、PSFLAG が dvips によってサポートされます。 +--- +使い方は graphics package 付属のドキュメント、および、付属の epsfdoc.dvi, +color.dvi および、そのソースファイルをご覧ください。 + +LaTeX のファイルでは、たとえば以下のようにします(graphicx の代わりに, +graphics も使えます)。 + +\documentclass[a4j]{jarticle} +\usepackage{graphicx, color} +\ExecuteOptions{usename} +... +\includegraphcs*[width=10cm, height=8cm]{foo.jpg} +... +-- +淺山/SHIMA + + + +2. ps2frag.ps (PSfrag) + +松田さんによって、dviout for Windows の PSfrag 対応が実現されました +(Ver.3.11.4)。 + +具体的には、以下の操作を行っておくことによって対応が可能になります。 + + 1) Ghostscript(gswin32.exe) が dviout から正常に動かせる状態になっている + こと(Option -> Setup papameters... -> Graphic -> gsx: を参照) + + 2) PSfrag(これを書いた時点での最新版は Ver.3.04)パッケージの psfrag.pro + を、Ghostscriptのサーチパスである環境変数 GS_LIB で指定されたディレクトリ + に入れておく。 + + 3) 旧版(Ver.2.*) の PSfrag パッケージに付属の ps2frag.ps を、2) におけると + 同じディレクトリに入れておく。 + +環境変数 GS_LIB の設定が必要です。設定されていれば、1) の gsx: ボタンを押した +とき、実行プログラム gswin32c.exe のパスのみが表示され、それにパラメータなど +は付加されません。 diff --git a/Master/tlpkg/dviout/GRAPHIC/LATEX2E/readme.eng b/Master/tlpkg/dviout/GRAPHIC/LATEX2E/readme.eng new file mode 100644 index 00000000000..67854766c73 --- /dev/null +++ b/Master/tlpkg/dviout/GRAPHIC/LATEX2E/readme.eng @@ -0,0 +1,73 @@ + Graphics Package + + 1. dviout.dtx -> dviout.def + 2. ps2frag.ps (PSfrag) + + +1. dviout.def + +dviout.def is the graphic driver for "dviout for Windows" under the graphics +package of LaTeX2e. + +Copy dviout.def and dviout.cfg from this directory to texmf\tex\latex\config +(or the directory where the graphics package exists if texmf\tex\latex\config +does not exist). + +LaTeX2e makes dviout.def from dviout.ins and also makes the manual of +dviout.def from dviout.dtx. + +- the graphic formats such as PBM, BMP, WMF, EPSF and others are supported. + Moreover compressed graphics files by gzip are also supported. + But both of the width and the height of the graphic in a page should be + explicitly indicated in the parameter of \includegraphics or the file with + the extension .bb where the Bounding box is recorded should be created by + bmc.exe with -b ootion if the format is not of EPSF nor PBM. + +- Ghostscript is necessay for the graphic file in EPSF and the suitable + Susie plug-in (which is free software) is necessary for a graphic file + in the format such as JPEG, TIFF, PCD, GIF etc. which is different from + EPSF/PBM/BMP/BMC/WMF/EMF. + + Some Susie plug-in are obtained from + + http://www.digitalpad.co.jp/~takechin/ + + For other location see + + http://akagi.ms.u-tokyo.ac.jp/dviout-ftp.html + +- dviout.def is in principle upper compatible to dvips.def but dviout with + dviout.def supports the graphics in the formats PBM/BMP/BMC/WMF/JPEG/TIFF + /PNG/PCD etc. + +- If psflag.sty is used, write the statement + + \def\@tempa{dviout.def}\ifx\Gin@driver\@tempa\def\pfg@orient{-1}\fi% + + after + + \def\@tempa{dvips.def}\ifx\Gin@driver\@tempa\def\pfg@orient{-1}\fi% + + in psflag.sty. Then PSFLAG is not supported by dviout but the dvi file + processed by dviout.def can be handled by dvips as the one processed by + dvips.def + + + +2. ps2frag.ps + +dviout for Windows (Ver.3.11.4) supports PSfrag by Matsuda. + +The followings are necessary for the support. + + 1) Ghostscript (gswin32.exe) is able to be executed by dviout. + (See Option -> Setup papameters... -> Graphic -> gsx: ) + + 2) Put psfrag.pro from the PSfrag package (the current version is Ver.3.04 + at the time when this is written) in a search path of Ghostscript which + should be indicated the environment variable GS_LIB. + + 3) Put ps2frag.ps from the PSfrag package Ver.2.* in the same directory + where psfrag.pro is put. + +It is necessary to set the environment variable GS_LIB. diff --git a/Master/tlpkg/dviout/GRAPHIC/PBM/pbmf.doc b/Master/tlpkg/dviout/GRAPHIC/PBM/pbmf.doc new file mode 100644 index 00000000000..073b583d975 --- /dev/null +++ b/Master/tlpkg/dviout/GRAPHIC/PBM/pbmf.doc @@ -0,0 +1,167 @@ + pbmf.sty について
+
+ Oct. 25, 1993 八雲
+
+
+ これは、PBMファイル読み込み機能付きdviout/dviprtで 、PBM形式のビットマップ
+データをLaTeX文書に取り込むためのマクロです。
+ (このマクロは、風間さん&磯崎さん作の(ecl)epsf.styを元にして作りました。)
+
+【機能】
+
+ 指定されたサイズの枠をあけて、PBMファイルを取り込みます。
+ (Ver.0.5d から、monochrome GIFファイル取り込み用マクロも追加されました。)
+
+【必要な設定】
+
+ scaleオプション用に、プリンタの解像度を\pbmhdpiと\pbmvdpi に設定する必要
+ があります。 \pbmhdpiが水平方向、\pbmvdpiが垂直方向の解像度で、単位はdpiで
+ す。自分の使っているプリンタの解像度に設定して下さい。
+ デフォルト値の設定は、pbmf.styの51,52行目で行っています。
+
+ \pbmhdpi=360%<---- プリンタ水平方向解像度のデフォルト値
+ \pbmvdpi=360%<---- プリンタ垂直方向解像度のデフォルト値
+
+【使用方法】
+
+ file=の後にraw PBM形式のファイル名を書きます。
+
+ 正しい例1:\pbmfile{file=foo.pbm}
+ ^^^^^^^
+ ファイル名
+
+ 出力サイズを指定するオプションとして、width,height,scale,hscale,vscaleの
+ 5種類が使えます。
+ 基本的に(ecl)epsf.styでの\epsfile{file=...}の代わりに\pbmfile{file=...}
+ を使うというだけで、オプションのサイズ指定方法は(ecl)epsf.styと同じです。
+
+ (1)width,heightオプション
+
+ width=,height=を使った場合、cmやptなどの単位で、出力画像の幅と高さを指定
+ できます。widthまたはheightの片方のみ指定した場合は、元の画像の縦横比から
+ 残りのサイズが決定されます。例えば、元の画像が200x100の場合に、width=5cmと
+ だけ指定された場合は幅5cm、高さ2.5cmの画像が出力されます。
+
+ 正しい例2:\pbmfile{file=foo.pbm,width=3cm}
+ ^^^^^^^ ^^^^^^^^^
+ ファイル名 サイズ指定オプション
+
+ 正しい例3:\pbmfile{file=foo.pbm,width=100pt,height=70pt}
+
+ 【注意】オプション指定の前に空白を入れてはいけません。
+ 正常に処理されない可能性が高いです。
+
+ 悪い例:\pbmfile{file=foo.pbm, width=5cm, height=3.5cm}
+ ^空白 ^空白
+
+ (2)scaleオプション
+
+ scale=を使った場合、元の画像に対する倍率で出力画像のサイズを指定できます。
+ 例えば、元の画像が640x400の場合に、scale=2と指定した場合は幅1280ドット、高
+ さ800ドットの画像が出力されます。また、hscale=とvscale=は、幅と高さの倍率を
+ 独立に設定したい場合に使用します。
+
+ 正しい例4:\pbmfile{file=foo.pbm,scale=2}
+ 正しい例5:\pbmfile{file=foo.pbm,hscale=1.5,vscale=1.2}
+
+ (3)文字列等を画像の上に上書きする方法
+
+ (ecl)epsf.styでの\epsfatに対応するものとして\pbmfat、\pbmfon、及び
+ \ovpbmfon が用意されています。これらを使うことで、画像の中に適当な枠を空け
+ て文字列等を上書きすることができます。\pbmfatは透過形、\pbmfonと\ovpbmfon
+ は非透過形です。\pbmfonは四角い枠を、\ovpbmfonは角の丸い四角い枠を空けます。
+ \pbmfonと\ovpbmfonはdviout/prtのtpic specialsを用いて実現していますので、
+ "-tpic"オプションがオンになっていないと使用できません。
+
+ \epsfatを使ったことのある方は、位置指定に注意してください。\epsfatでは原
+ 画像上の座標で指定しますが、\pbmfat,\pbmfon,\ovpbmfon では拡大縮小された出
+ 力画像上の座標で指定します。
+
+ 例6:\pbmfile[\pbmfat(1cm,1.5cm){サンプル画像1}]{file=foo1.pbm}
+ 例7:\pbmfile[\pbmfon(1cm,1.5cm){サンプル画像2}]{file=foo2.pbm,scale=2}
+ 例8:\pbmfile[\ovpbmfon(10mm,12mm){サンプル画像}]{file=foo.pbm}
+ ^^^^^^^^^ ^^^^^^^^^^^^
+ 位置指定 上書きする文字列
+
+ (4)mono GIF形式のデータを取り込む場合
+
+ monochrome GIFの場合は、\giffile{file=...}を使って下さい。ただし、GIFの場
+ 合、scale、vscale、hscaleオプションを使うためには、orgsizeというオプション
+ で元の画像の幅と高さを設定する必要があります。
+ 一方、orgsizeが設定されていない場合は、widthとheightの両方必要です。
+ \epsfileや\pbmfileの様に片方を省略することはできません。
+
+ 正しい例9:\giffile{file=foo.gif,orgsize=640x400,width=4cm}
+ 正しい例10:\giffile{file=foo.gif,orgsize=400x400,scale=2}
+ 正しい例11:\giffile{file=foo.gif,width=4cm,height=3cm}
+
+
+【使用例】
+
+ [例12]:foo.pbmというPBMファイルを読み込んで、幅を5cmに指定して出力する。
+ (この場合、高さは縦横比から自動的に計算されます)
+
+ \documentstyle[12pt,pbmf]{jarticle}
+ \begin{document}
+ This is test image.
+ \frame{\pbmfile{file=foo.pbm,width=5cm}}
+ Test image.
+ \end{document}
+
+
+ [例13]:foo.pbmというPBMファイルを読み込んで、2倍に拡大して出力する。
+ (例えばPBMデータが150x100の場合、300x200dotsでプリンタに出力されます)
+
+ \documentstyle[pbmf]{jarticle}
+ \begin{document}
+ This is test image.
+ \pbmfile{file=foo.pbm,scale=2}
+ Test image.
+ \end{document}
+
+
+ [例14]:foo.pbmというPBMファイルを読み込み、画像の中に"Hello!" という文
+ 字列を上書きして出力する。その位置は、画像の左下から右に2cm、上に1cmの所に
+ なります。
+
+ \documentstyle[pbmf]{jarticle}
+ \begin{document}
+ This is test image.
+ \pbmfile[\pbmfon(2cm,1cm){\fbox{\large Hello!}}]{file=foo.pbm}
+ Test image.
+ \end{document}
+
+
+ [例15]:foo.pbmというPBMファイルを読み込み、画像の中に"Hello!" という文
+ 字列を角の丸い枠を空けて上書きする。枠線の太さを0.6pt、角の丸みの半径を3mm
+ にしています。(pbmf.styのデフォルトは各々0.4pt,2mmになっています)
+
+ \documentstyle[pbmf]{jarticle}
+ \ovrulewidth=0.6pt
+ \ovradius=3mm
+ \begin{document}
+ This is test image.
+ \pbmfile[\ovpbmfon(2cm,1cm){\large Hello!}]{file=foo.pbm}
+ Test image.
+ \end{document}
+
+
+【問題点】
+
+ pbmf.styはPBM形式を完全にサポートしているわけではありません(;_;)。
+ 以下の様なフォーマットのPBMファイルは正常に処理されます(pbmplusライブラリ
+ で他の画像形式からPBMに変換したファイルやGhostScriptのpbmraw出力は、この形
+ 式のはずなので、正常に処理されると思います)。
+
+ P 4 0x0a : 3 byte, 最初の "P4" は、ID
+ #<string> 0x0a : コメント行
+ ......... : (任意バイト x 任意行)
+ <width_by_dots> 0x20 <height_by_dots> 0x0a : 横と縦のドットサイズ
+ ........ : binary image-data
+
+ <width_by_dots>, <height_by_dots> は、通常の 10進数です。
+
+
+ raw PBMの正式なフォーマットでは、P4, <width_by_dots>, <height_by_dots>
+ の次の 1 byte として、0x20, 0x0a, 0x0d, 0x09のいずれかが認められていますが、
+ pbmf.styでは上記フォーマット以外は正常に処理されないと思って下さい。
diff --git a/Master/tlpkg/dviout/GRAPHIC/PBM/pbmf.sty b/Master/tlpkg/dviout/GRAPHIC/PBM/pbmf.sty new file mode 100644 index 00000000000..3696f6cedae --- /dev/null +++ b/Master/tlpkg/dviout/GRAPHIC/PBM/pbmf.sty @@ -0,0 +1,478 @@ +% PBM macro for DVIOUT/DVIPRT version 0.5e +% based on eclepsf.sty by Kazuhiro Kazama and modified by Hideki ISOZAKI +% and psfig.tex by Trevor J. Darrell. +% +% All software, documentation, and related files in this distribution of +% psfig/tex are Copyright (c) 1987 Trevor J. Darrell +% +% Permission is granted for use and non-profit distribution of psfig/tex +% providing that this notice be clearly maintained, but the right to +% distribute any portion of psfig/tex for profit or as part of any commercial +% product is specifically reserved for the author. +% +% +% ☆scaleオプション指定での基準サイズ(scale=1での出力) +% \realscaletrue時、PBMデータ1dotをプリンタ出力の1dotとして出力 +% \realscalefalse時、PBMデータ1dotを 1pt x 1pt の点として出力 +% +% ☆\realscaletrue時用に、プリンタの解像度を\pbmhdpiと\pbmvdpiで設定します。 +% Ex. \pbmhdpi=300\pbmvdpi=300 +% +% \pbmfile +% usage : \pbmfile{file=foo.pbm,width=5cm,height=3.5cm} +% usage : \pbmfile{file=foo.pbm,width=100pt,height=70pt} +% usage : \pbmfile{file=foo.pbm,scale=2} +% usage : \pbmfile{file=foo.pbm,hscale=1.5,vscale=1.2} +% ^^ ^^ +% オプション間に、空白を入れないで下さい。 +% +% \pbmfat +% usage : \pbmfile[\pbmfat(10mm,12mm){テスト}]{file=foo.pbm} +% +% \pbmfon +% usage : \pbmfile[\pbmfon(10mm,12mm){テスト}]{file=foo.pbm} +% +% \ovpbmfon +% usage : \pbmfile[\ovpbmfon(10mm,12mm){テスト}]{file=foo.pbm} +% ^^^^^^^^^ +% 座標指定 +% +% +% \giffile +% +% ・orgsizeオプションを使う場合 +% usage : \giffile{file=foo.gif,orgsize=640x400,scale=2} +% usage : \giffile{file=foo.gif,orgsize=200x200,hscale=3,vscale=2} +% +% ・使わない場合、scaleオプションは使用不可。width=とheight=は省略不可 +% usage : \giffile{file=foo.gif,width=5cm,height=3.5cm} +% usage : \giffile{file=foo.gif,width=100pt,height=70pt} +% +% Oct. 25, 1993 by Yakumo +% +\endlinechar=-1 +\typeout{PBM macro ver. 0.5e - Released Oct. 25, 1993} +\newcount\pbmhdpi +\newcount\pbmvdpi +\pbmhdpi=360%<---- プリンタ水平方向解像度のデフォルト値 +\pbmvdpi=360%<---- プリンタ垂直方向解像度のデフォルト値 +\newif\ifrealscale +\realscaletrue +\newif\ifset@vscale +\newif\ifset@hscale +\set@vscalefalse\set@hscalefalse +\newif\ifset@orgsize +\set@orgsizefalse +\newdimen\@pbmhsize +\newdimen\@pbmvsize +\newcount\@bmarga +\newcount\@bmargb +\newcount\@bmsum +\newcount\@bmrema +\newcount\@bmremb +\newcount\@bmctmpa +\newcount\@bmctmpb +\newcount\@bmctmpc +\newdimen\@bmdarg +\newif\ifcontinue + +\def\@setpbmfile#1{ + \def\@pbmfile{#1} + \pbmbb@search +} +\def\@setpbmheight#1{ + \@bmdarg=#1\relax + \edef\@pbmheight{\number\@bmdarg} +} +\def\@setpbmwidth#1{ + \@bmdarg=#1\relax + \edef\@pbmwidth{\number\@bmdarg} +} +\def\@setpbmscale#1{ + \def\@pbmhscale{#1} + \def\@pbmvscale{#1} + \set@vscaletrue\set@hscaletrue +} +\def\@setpbmhscale#1{ + \def\@pbmhscale{#1} + \set@hscaletrue +} +\def\@setpbmvscale#1{ + \def\@pbmvscale{#1} + \set@vscaletrue +} +\def\parse@pbm@parms#1{ + \def\@bbw{0}\def\@bbh{0} + \def\@pbmhscale{1}\def\@pbmvscale{1} + \def\@pbmheight{0}\def\@pbmwidth{0} + \@for\@pbmopt:=#1\do + {\expandafter\@bmsetparms\@pbmopt,}} + +\def\@bmsetparms#1=#2,{\@nameuse{@setpbm#1}{#2}} +% +% \pbmin@compute performs #1 * (#2 / #3) +% then leaves the result in @result +% +\def\@divmod#1#2{ + \@bmctmpa=#1\relax + \divide\@bmctmpa by#2\relax + \edef\@quotient{\number\@bmctmpa\relax} + \multiply\@bmctmpa by#2\relax + \@bmctmpb=#1\relax + \advance\@bmctmpb by -\@bmctmpa + \edef\@remaindar{\number\@bmctmpb}} +% +\def\pbmin@compute#1#2#3{ + \ifnum#3>\z@ + \@divmod{#1}{#3} + \@bmsum=\@quotient + \multiply\@bmsum by#2\relax + \@bmrema=\@remaindar\relax + \ifnum\@bmrema>\z@ + \@divmod{#2}{#3} + \@bmctmpc=\@quotient + \multiply\@bmctmpc by\@bmrema + \advance\@bmsum by\@bmctmpc + \@bmremb=\@remaindar\relax + \ifnum\@bmremb>\z@ + \ifnum#3<32769 + \multiply\@bmrema by\@bmremb + \divide\@bmrema by#3\relax + \advance\@bmsum by\@bmrema + \else + \edef\bm@digit{1} + \@bmarga=0\relax + \loop + \edef\bm@digit{\bm@digit0} + \@divmod{\the\@bmremb0}{#3} + \@bmremb=\@remaindar\relax + \@bmargb=\@bmrema + \multiply\@bmargb by\@quotient + \advance\@bmargb by\@bmarga + \@divmod{\@bmargb}{\bm@digit} + \advance\@bmsum by\@quotient + \@bmarga=\@remaindar0\relax + \ifnum\bm@digit<\@bmrema + \repeat + \fi + \fi + \fi + \else + \errmessage{pbm: Illegal parameter} + \fi + \edef\@result{\number\@bmsum} +} +\def\bmcompute@handw{ + \ifnum\@pbmheight=\z@ + \ifnum\@pbmwidth=\z@ + \@bmdarg=\@bbh sp \@bmdarg=\@pbmvscale\@bmdarg + \edef\@pbmheight{\number\@bmdarg} + \@bmdarg=\@bbw sp \@bmdarg=\@pbmhscale\@bmdarg + \edef\@pbmwidth{\number\@bmdarg} + \multiply\@pbmhsize by\@pbmhscale + \multiply\@pbmvsize by\@pbmvscale + \else + \pbmin@compute{\number\@pbmwidth}{\number\@pbmvsize}{\number\@pbmhsize} + \edef\@pbmheight{\@result} + \fi + \else + \ifnum\@pbmwidth=\z@ + \pbmin@compute{\number\@pbmheight}{\number\@pbmhsize}{\number\@pbmvsize} + \edef\@pbmwidth{\@result} + \fi + \fi + \ifnum\@pbmheight<\z@ + \errmessage{pbm: Illegal height} + \fi + \ifnum\@pbmwidth<\z@ + \errmessage{pbm: Illegal width} + \fi +} + +\def\pbmfile{\@ifnextchar[{\@pbmfile}{\@pbmfile[]}} +\def\@pbmfile[#1]#2{{ + \parse@pbm@parms{#2} + \bmcompute@handw + {\@bmarga=\@pbmwidth \divide\@bmarga by 186468\relax + \@bmargb=\@pbmheight \divide\@bmargb by 186468\relax + \message{becomes \the\@bmarga mm x \the\@bmargb mm}} + \@bmarga=\@pbmheight \divide\@bmarga by 65536\relax + \edef\@bmvsize{\number\@bmarga} + \@bmarga=\@pbmwidth \divide\@bmarga by 65536\relax + \edef\@bmhsize{\number\@bmarga} + \leavevmode + \hbox to \@pbmwidth sp{ + \vrule\@width\z@\@height\@pbmheight sp\@depth\z@ + \raise\@pbmheight sp + \hbox to\z@{ + \ifrealscale + \special{pbmfile=\@pbmfile\space + \ifset@hscale hsize=\number\@pbmhsize dot/\the\pbmhdpi dpi + \else hsize=\@bmhsize\fi\space + \ifset@vscale vsize=\number\@pbmvsize dot/\the\pbmvdpi dpi + \else vsize=\@bmvsize\fi\space + } + \else + \special{pbmfile=\@pbmfile\space + \ifset@hscale hscale=\@pbmhscale + \else hsize=\@bmhsize\fi\space + \ifset@vscale vscale=\@pbmvscale + \else vsize=\@bmvsize\fi\space + } + \fi + } + \vrule\@width\z@\@height\@pbmheight sp \@depth\z@ + \hbox to\z@{#1}\hfil + } +}} + +\newread\pbm@stream +\catcode`\#=11\relax +\def\pbmbb@search{\continuetrue + \typeout{analyzing \@pbmfile} + \openin\pbm@stream=\@pbmfile\relax + \ifeof\pbm@stream\errmessage{pbm: \@pbmfile\space not found}\fi + \read\pbm@stream to \pbm@line + \expandafter\id@pbmplus\pbm@line. + \ifnum4=\@magic \message{PBM(P4-type) } + \else \ifnum1=\@magic \errmessage{pbm: P1-type not supported} + \else \errmessage{pbm: \@pbmfile\space is not PBM file}\fi\fi + \loop + \read\pbm@stream to \pbm@line + \if\expandafter\next@char\pbm@line\end@getbb #\else\continuefalse\fi + \ifeof\pbm@stream\errmessage{pbm: \@pbmfile\space has no data}\fi + \ifcontinue \repeat + \expandafter\pbm@getbb\pbm@line. + \closein\pbm@stream +} +\catcode`\#=6\relax +\def\next@char#1#2\end@getbb{#1} +\def\id@pbmplus#1#2.{\edef\@magic{\if#1P\next@char#2\end@getbb\else0\fi}} +% +% +\def\pbm@getbb#1 #2.{ + \@bmdarg=#1pt\ifrealscale\divide\@bmdarg by \pbmhdpi\@bmdarg=72.27\@bmdarg\fi + \edef\@bbw{\number\@bmdarg}\@pbmhsize=#1sp + \@bmdarg=#2pt\ifrealscale\divide\@bmdarg by \pbmvdpi\@bmdarg=72.27\@bmdarg\fi + \edef\@bbh{\number\@bmdarg}\@pbmvsize=#2sp + \message{original: #1 x #2} +} +% +% You can put anything on the picture using \pbmfat , \pbmfon , \ovpbmfon +% +\def\pbmfat(#1,#2)#3{\@killglue{ + \smash{\raise#2\hbox to \z@{\kern#1 \relax#3\hss}}}\ignorespaces} +% +\newbox\@strbox +% +\def\pbmfon(#1,#2)#3{ + \setbox\@strbox=\hbox{#3} + \@bmctmpa=\number\wd\@strbox + \@bmctmpb=\number\ht\@strbox + \@bmctmpc=\number\dp\@strbox + \advance\@bmctmpc by\@bmctmpb + \divide\@bmctmpc by 4736\relax + \divide\@bmctmpa by 4736\relax + \pbmfat(#1,#2){ + \raise\@bmctmpb sp\hbox to\z@{ + \special{pn 0}\special{sh 0} + \special{pa 0 0}\special{pa \the\@bmctmpa\space 0} + \special{pa \the\@bmctmpa\space \the\@bmctmpc}\special{pa 0 \the\@bmctmpc} + \special{pa 0 0} + \special{ip}}#3 + } +} +% +\newdimen\ovrulewidth +\newdimen\ovradius +\ovrulewidth=0.4pt +\ovradius=2mm +\def\hornlength{5} +% +\def\ovpbmfon{\@ifnextchar({\@ovpbmfon{}}{\@ovpbmfon}} +\def\@ovpbmfon#1(#2,#3)#4{ + \setbox\@strbox=\hbox{#4} + \@bmctmpa=\number\wd\@strbox + \@bmctmpb=\number\ht\@strbox + \@bmctmpc=\number\dp\@strbox + \@bmremb=\number\ovrulewidth + \@bmarga=\number\ovradius + \divide\@bmarga by 4736\relax + \edef\CoRadius{\the\@bmarga} + \divide\@bmarga by 2\relax + \edef\CoBase{\the\@bmarga} + \@bmdarg=\ovradius + \advance\@bmdarg by\@bmremb sp + \@bmarga=\number\@bmdarg + \advance\@bmctmpc by\@bmctmpb + \advance\@bmctmpb by\@bmarga + \divide\@bmctmpc by 4736\relax + \divide\@bmctmpa by 4736\relax + \divide\@bmarga by 4736\relax + \divide\@bmremb by 4736\relax + \advance\@bmctmpa by\@bmarga + \@bmargb=\@bmctmpa + \advance\@bmargb by\@bmarga + \advance\@bmctmpc by\@bmarga + \@bmrema=\@bmctmpc + \advance\@bmrema by\@bmarga + \advance\@bmargb by-\@bmremb + \advance\@bmrema by-\@bmremb + \if#1\@empty\else + \@bmsum=\@bmarga + \divide\@bmsum by 10\relax + \multiply\@bmsum by\hornlength + \edef\@hornlg{\the\@bmsum} + \if#1a\@bmsum=\@bmremb + \advance\@bmsum by -\@hornlg\relax + \edef\@hornx{\the\@bmsum} + \else\if#1b\@bmsum=\@bmargb + \advance\@bmsum by \@hornlg\relax + \edef\@hornx{\the\@bmsum} + \@bmsum=\@bmremb + \advance\@bmsum by -\@hornlg\relax + \edef\@horny{\the\@bmsum} + \else\if#1c\@bmsum=\@bmargb + \advance\@bmsum by \@hornlg\relax + \edef\@hornx{\the\@bmsum} + \@bmsum=\@bmrema + \advance\@bmsum by \@hornlg\relax + \edef\@horny{\the\@bmsum} + \else\if#1d\@bmsum=\@bmremb + \advance\@bmsum by -\@hornlg\relax + \edef\@hornx{\the\@bmsum} + \@bmsum=\@bmrema + \advance\@bmsum by \@hornlg\relax + \edef\@horny{\the\@bmsum} + \else\multiply\@bmsum by 3\relax + \edef\@hornlg{\the\@bmsum} + \if#1A\pbm@horn\@bmctmpa\@bmremb{-\@hornlg} + \else\if#1B\pbm@horn\@bmctmpc\@bmargb{\@hornlg} + \else\if#1C\pbm@horn\@bmctmpa\@bmrema{\@hornlg} + \else\if#1D\pbm@horn\@bmctmpc\@bmremb{-\@hornlg} + \fi\fi\fi\fi\fi\fi\fi\fi\fi + \pbmfat(#2,#3){ + \raise\@bmctmpb sp\hbox to\z@{ + \special{pn \the\@bmremb}\special{sh 0} + \special{pa \the\@bmarga\space \the\@bmremb} + \if#1A\special{pa \@horni\space \the\@bmremb} + \special{pa \@hornx\space \@horny} + \special{pa \@hornii\space \the\@bmremb}\fi + \special{pa \the\@bmctmpa\space \the\@bmremb} + \if#1b\special{pa \@hornx\space \@horny}\fi + \special{pa \the\@bmargb\space \the\@bmarga} + \if#1B\special{pa \the\@bmargb\space \@horni} + \special{pa \@horny\space \@hornx} + \special{pa \the\@bmargb\space \@hornii}\fi + \special{pa \the\@bmargb\space \the\@bmctmpc} + \if#1c\special{pa \@hornx\space \@horny}\fi + \special{pa \the\@bmctmpa\space \the\@bmrema} + \if#1C\special{pa \@hornii\space \the\@bmrema} + \special{pa \@hornx\space \@horny} + \special{pa \@horni\space \the\@bmrema}\fi + \special{pa \the\@bmarga\space \the\@bmrema} + \if#1d\special{pa \@hornx\space \@horny}\fi + \special{pa \the\@bmremb\space \the\@bmctmpc} + \if#1D\special{pa \the\@bmremb\space \@hornii} + \special{pa \@horny\space \@hornx} + \special{pa \the\@bmremb\space \@horni}\fi + \special{pa \the\@bmremb\space \the\@bmarga} + \if#1a\special{pa \@hornx\space \@hornx}\fi + \special{pa \the\@bmarga\space \the\@bmremb} + \ifnum\@bmremb>0\special{fp}\else\special{ip}\fi + \if#1a\else\special{sh 0} + \special{ia \the\@bmarga\space \the\@bmarga\space + \CoRadius\space \CoRadius\space 0.0 6.28319} + \ifnum\@bmremb>0\special{ar \the\@bmarga\space \the\@bmarga\space + \CoRadius\space \CoRadius\space 3.14159 4.71239}\fi\fi + \if#1b\else\special{sh 0} + \special{ia \the\@bmctmpa\space \the\@bmarga\space + \CoRadius\space \CoRadius\space 0.0 6.28319} + \ifnum\@bmremb>0\special{ar \the\@bmctmpa\space \the\@bmarga\space + \CoRadius\space \CoRadius\space 4.71239 6.28319}\fi\fi + \if#1c\else\special{sh 0} + \special{ia \the\@bmctmpa\space \the\@bmctmpc\space + \CoRadius\space \CoRadius\space 0.0 6.28319} + \ifnum\@bmremb>0\special{ar \the\@bmctmpa\space \the\@bmctmpc\space + \CoRadius\space \CoRadius\space 0.0 1.5708}\fi\fi + \if#1d\else\special{sh 0} + \special{ia \the\@bmarga\space \the\@bmctmpc\space + \CoRadius\space \CoRadius\space 0.0 6.28319} + \ifnum\@bmremb>0\special{ar \the\@bmarga\space \the\@bmctmpc\space + \CoRadius\space \CoRadius\space 1.5708 3.14159}\fi\fi + }\hbox to\z@{\kern\the\@bmdarg\relax #4\hss} + } +} +\def\pbm@horn#1#2#3{ + \@bmsum=#1\relax + \advance\@bmsum by \@bmarga + \divide\@bmsum by 2\relax + \advance\@bmsum by -\CoBase\relax + \edef\@horni{\the\@bmsum} + \advance\@bmsum by \CoBase\relax + \edef\@hornx{\the\@bmsum} + \advance\@bmsum by \CoBase\relax + \edef\@hornii{\the\@bmsum} + \@bmsum=#2\relax + \advance\@bmsum by #3\relax + \edef\@horny{\the\@bmsum} +} +% +% GIF macros +% +\def\@setpbmorgsize#1{ + \gif@search#1. + \set@orgsizetrue +} +\def\gif@search#1x#2.{\pbm@getbb#1 #2.} +\def\giffile{\@ifnextchar[{\@giffile}{\@giffile[]}} +\def\@giffile[#1]#2{{ + \def\@setpbmfile##1{\def\@pbmfile{##1}} + \typeout{input GIF file} + \parse@pbm@parms{#2} + \ifset@orgsize + \bmcompute@handw + {\@bmarga=\@pbmwidth \divide\@bmarga by 186468\relax + \@bmargb=\@pbmheight \divide\@bmargb by 186468\relax + \message{becomes \the\@bmarga mm x \the\@bmargb mm}} + \else + \ifset@hscale\errmessage{gif(\@pbmfile): You must set orgsize option}\fi + \ifset@vscale\errmessage{gif(\@pbmfile): You must set orgsize option}\fi + \ifnum\@pbmheight<1\errmessage{gif(\@pbmfile): You should set the height}\fi + \ifnum\@pbmwidth<1\errmessage{gif(\@pbmfile): You should set the width}\fi + \fi + \@bmarga=\@pbmheight \divide\@bmarga by 65536\relax + \edef\@bmvsize{\number\@bmarga} + \@bmarga=\@pbmwidth \divide\@bmarga by 65536\relax + \edef\@bmhsize{\number\@bmarga} + \leavevmode + \hbox to \@pbmwidth sp{ + \vrule\@width\z@\@height\@pbmheight sp\@depth\z@ + \raise\@pbmheight sp + \hbox to\z@{ + \ifrealscale + \special{giffile=\@pbmfile\space + \ifset@hscale hsize=\number\@pbmhsize dot/\the\pbmhdpi dpi + \else hsize=\@bmhsize\fi\space + \ifset@vscale vsize=\number\@pbmvsize dot/\the\pbmvdpi dpi + \else vsize=\@bmvsize\fi\space + } + \else + \special{pbmfile=\@pbmfile\space + \ifset@hscale hscale=\@pbmhscale + \else hsize=\@bmhsize\fi\space + \ifset@vscale vscale=\@pbmvscale + \else vsize=\@bmvsize\fi\space + } + \fi + } + \vrule\@width\z@\@height\@pbmheight sp \@depth\z@ + \hbox to\z@{#1}\hfil + } +}} +\def\giffat{\pbmfat} +\def\giffon{\pbmfon} +\def\ovgiffon{\ovpbmfon} +% +\endlinechar=13\relax +\endinput diff --git a/Master/tlpkg/dviout/GRAPHIC/PDL/file241b.p98 b/Master/tlpkg/dviout/GRAPHIC/PDL/file241b.p98 new file mode 100644 index 00000000000..531a1e06af8 --- /dev/null +++ b/Master/tlpkg/dviout/GRAPHIC/PDL/file241b.p98 @@ -0,0 +1,56 @@ + 以下は、岩井氏のオリジナルの t241b.lzh に含まれていた files241b.p98 を収
+録しました。以下に述べられている readme.tex は、公開版の dviout/dviprt に合
+わせて若干修正し、ファイル名をpdldoc.tex と変更しました。
+
+ March 24, 1994 written by SHIMA
+-----------------------------------------------------------------------------
+ このアーカイブは DVIOUT/PRT ver.2.41 に対して、 Cannon LASERSHOT シリー
+ズを使っている場合、LIPS の 描画命令を直接出力する special command に対応さ
+せるためのソースの差分ファイル、及びサンプルファイルです。同様のことがEPSON
+ESC/Page をサポートしているLBPでも出来るとようになってますが、そちらの機能の
+動作確認はしておりません。
+
+ この差分は筆者が勝手に作成したテスト用の物で、正式なdviout/prtの開発グルー
+プの出す差分ではありませんのでご注意下さい。
+
+ 以下のファイルが含まれます。
+
+FILE241B P98 743 93-11-15 このファイルです。
+T241B DIF 8581 93-11-14 t241srcからの差分です。diff -cで作成しました。
+ 差分をあてた版はver.2.41bとなります。
+README TEX 8083 93-11-15 概要が書かれたサンプルです。
+SPEC LP3 14103 93-11-14 LIPS3のコードが書かれたサンプルファイルです。
+LASERSYS LP3 4118 93-11-14 同 上
+SPEC TEX 258 93-11-14 上記の*.LP3ファイルをpicbox.texを使って
+LASERSYS TEX 261 93-11-14 TeXに読み込むためのファイルです。
+
+LIPS3 GPD 12928 93-11-08 GPのLIPS3用ドライバーです。DVIPRTで出力する
+ ときはこのドライバーに差し替えて下さい。
+PICBOX TEX 1833 93-05-28 GPに付属する読み込み用マクロです。plain TeX、
+ LaTeX、どちらでも使えます。
+
+ サンプルのreadme.texをコンパイルする場合には、同一ディレクトリにREADME.TEX,
+SPEC.LP3, SPEC.TEX, LASERSYS.LP3, LASERSYS.TEX, PICBOX.TEXをおいてコンパイル
+して下さい(PICBOX.TEXはTeXのMACROのディレクトリにおいても構いません)。
+ 出来たDVIファイルをプレビューするときは、差分をあてたDVIOUTでしたほうがいい
+でしょう。普通のDVIOUTだと、ghostscriptを起動しようとします。印刷はLIPS3をサ
+ポートしたプリンタで行って下さい。その他のプリンタでは図面が印刷されません。
+
+ LIPS3.GPDとpicbox.texに関する著作権は枝松圭一氏にあります。氏の御好意により
+同封させていただきました。
+
+
+ SADA(岩井 貞之)
+
+ e-mail NIFTY-SERVE GBF03356@niftyserve.or.jp
+
+・改編履歴
+
+[version 2.41b, November 15, 1993]
+*1ページを分割して印刷した時、複数回図のデータをLBPに送ってしまう致命的バグ
+ を取り除いた
+*ESC/Pageに対応したルーチンを付加。動作テストはしていない。
+
+[version 2.41a, November 8, 1993]
+*LIPS3のみに対応したテスト版。東北大~ftp/pub/msdos/gp/contrib/にver2.41からの
+ 差分として登録
diff --git a/Master/tlpkg/dviout/GRAPHIC/PDL/lasersys.lp3 b/Master/tlpkg/dviout/GRAPHIC/PDL/lasersys.lp3 new file mode 100644 index 00000000000..76fc7429cb2 --- /dev/null +++ b/Master/tlpkg/dviout/GRAPHIC/PDL/lasersys.lp3 @@ -0,0 +1 @@ +[&} <Dutch-RomanDutch-BoldDutch-ItalicDutch-BoldItalicSwissSwiss-BoldSwiss-ObliqueSwiss-BoldObliqueSymbolLinePrinter-BoldMincho-MediumGothic-MediumRoundGothic-Light ;1J1I1'$21' 11"!!01"!!11"!$21"! 12B#!0#$T1m1n;o9]7`4a9b5U2}E1}H0*0}p[1&})0~<0~<}RF4}S1F1#T1m1]7`4n;}^10)0Ag60~<}RF4}S1F1"T2m2]7`4n;}^10Z0F$F40Y:VF4Z0F$F40Y:VF4Z0F$F40YB6VF440X0AA31X]340Y<AA31-]740[2AA31A40\=AA31X40^9AA31I40_8AA31ST1m1]7`4n;}^10}RF4}S1F1"T2m2]7`4n;}^10ZF$00F$YB6VF440A#n>1Y]340A#m21-]740A#k<1A40A#j01X40A#h51I40A#g61ST1m1]7`4n;}^10}R0}S1F1"1}=Q5B!0F1!}H1I102z2Q5A:&0=}H0I01}S11z2Q5A:&1{<P?0=1{<Q<A*'F1"}R0}S1F1#1A]9N=D5D6}R0}S1F1"1AZ<j6E10}R0}S1F1"1A_=j60Y!}R0}S1F1"1A_=^0D%0F1!}H1I102AY>^0A:'0=}H0I01}S11AY>^0A:'1A[8]90=1A[8^6A*&F1"}R0}S1F1"1A_=Q5C*0F1!}H1I102AZ9Q5A:&0=}H0I01}S11AZ9Q5A:&1A\3P?0=1A\3Q<A*'F1"}R0}S1F1#1A^4l0C>C/}R0}S1F1#1A]=[?C:C>}RF4}S1F1"T2m2]7`4n;}^10Z0F$F40YB6VF440X0AA31X]340Y<AA31-]740[2AA31A40\=AA31X40^9AA31I40_8AA31ST1m1]7`4n;}^10}RF4}S1F1"T2m2]7`4n;}^10ZF$00F$YB6VF440A#n>1Y]340A#m21-]740A#k<1A40A#j01X40A#h51I40A#g61ST1m1]7`4n;}^10}R0}S1F1"1F<l7r?0}R0}S1F1"1F<`40L3}R0}S1F1"1]6l70G2F1!}H1I102]6u3&A*=0}H0I01}S11]6u3&A*1]0s9=01]=s9'A:F1"}R0}S1F141[5j2D6D6}R0}S1F1"1y8l70G2F1!}H1I102y8u3'A*=0}H0I01}S11y8u3'A*1y1s9=01y>s9&A:F1"}R0}S1F1"1F<\60I }R0}S1F1"1o3^0I)0F1!}H1I102d0^0A:'0=}H0I01}S11d0^0A:'1e:]90=1e:^6A*&F1"}R0}S1F1"1^5Q5A-0F1!}H1I102Z>Q5A:&0=}H0I01}S11Z>Q5A:&1\8P?0=1\8Q<A*'F1"}R0}S1F141|3n?E E }R0}S1F141D8j6D5D6T6m6]7`4n<}^10}R0}S1F1"Z0F$F40YB6VF4Z0F$F40YB>VF440AD=k51 40AF7k51C40AH9k51W]340AK4k51-]740AL?k51M40AO6k51L40AQ2k51 40AR<k51Y40AT;k51L40AV7k51F40AX4k51 1AD3l4V401AZ7l40C.1AZ7h6V$01AD3h60C>}R0}S1F1"40p0_51S40q?_51H40t1_51G1o7`5G801v?`50C/1v?\6G(01o7\60C?}R0}S1F1"40~:R81S40A@9R81H40AB;R81G1~0S7G801AE8S70C.1AE8O9G(01~0O90C>}R0}S1F1"40w9_51 40y3_51R40{5_51E40}4_51G408_51E40AA7_51N40AC8_51.40AD5_51 40AE?_51A40AH0_51M40AJ7_51P40AL6_51.40AM3_51 40AN=_51(40AO<_51140AQ6_51k40AS0_51H40AU1_51z40AV8_51)40AW8_51 1v?`5b<01AY;`50C/1AY;\6b,01v?\60C?}R0}S1F1"40F4_51 40G>_51d40I:_51y40K4_51e40L>_51 40N8_51a40P2_51m40R;_51p40T7_51.40U4_51 40V>_51(40W=_51S40Y<_51R40[=_51640]7_51440_1_51040`;_51)40a:_51 1E:`5^401c>`50C/1c>\6^$01E:\60C?}R0}S1F1"40_2R81 40`<R81d40b8R81y40d2R81e40e<R81 40g6R81l40h3R81a40i=R81s40k7R81e40m0R81r40n2R81 40o<R81(40p;R81R40r=R81640t7R81G40v;R81)40w:R81 1^8S7[501y=S70C.1y=O9[%01^8O90C>}R0}S1F1"40AF3R81 40AG=R81c40AI7R81o40AK3R81m40AM<R81p40AO9R81r40AP:R81e40AR4R81s40AS>R81s40AU8R81o40AW4R81r40AX6R81 1AE9S7U001AZ9S70C.1AZ9O9U 01AE9O90C>}R0}S1F1"40F4R81 40G>R81c40I8R81o40K4R81m40M=R81p40O9R81r40P;R81e40R5R81s40S?R81s40U9R81o40W5R81r40X7R81 1E:S7U001Z:S70C.1Z:O9U 01E:O90C>}R0}S1F1"Z0F$F40YC>VF440D4K=1F40F:K=1e40H<K=1m40L3K=1t40M8K=1o40O=K=1s40R0K=1e40T2K=1c40V5K=1o40X;K=1n40[0K=1d40]6K=1 40_9K=1P40b2K=1u40d8K=1l40e9K=1s40g;K=1e40i>K=1 40l0K=1L40n6K=1a40p9K=1s40r;K=1e40t>K=1r40v5K=1 40x8K=1S40{1K=1y40}4K=1s406K=1t40A@;K=1e40AB=K=1m}R0}S1F1"Z0F$F40YB6VF440K:d>1640L?d>1040N5d>1840O:d>1n40Q2d>1m40S4d>1,40S?d>1 40U4d>1140V:d>1k40W?d>1H40Y;d>1z40Z?d>1,40[9d>1 40\?d>1340^4d>1040_:d>1040a0d>1f40a<d>1s40c2d>1,40c=d>1 40e2d>1340f8d>10b540g=d>1Om40i3d>1J}R0}S1F1"Z0F$F40YB>VF440N9q?1B40P:q?1B40R<q?1O}R0}S1F1"40U6w41p40W2w41u40X?w41m40[8w41p}R0}S1F1"40]6w81(40^5w81340_?w81040a9w81440c3w81n40d?w81m40g9w81,40h5w81 40i?w813b540k9w81Om40m4w81J40n=w81)}R0}S1F1"40v<w81p40x8w81r40y:w81o40{6w81b40}2w81e}R0}S1F1"40f5q;1HZ0F$F40YB0VF440h7r312Z0F$F40YB>VF440i9q;1O}R0}S1F1"Z0F$F40YB6VY:1O?m?D101T0m?0C$1T0j;D!01O?j;0C4}R0}S1F1"1g0m?D101k1m?0C$1k1j;D!01g0j;0C4%}p
\ No newline at end of file diff --git a/Master/tlpkg/dviout/GRAPHIC/PDL/lasersys.tex b/Master/tlpkg/dviout/GRAPHIC/PDL/lasersys.tex new file mode 100644 index 00000000000..c92a1da2c32 --- /dev/null +++ b/Master/tlpkg/dviout/GRAPHIC/PDL/lasersys.tex @@ -0,0 +1,10 @@ +% GP -> TeX interface file. GPversion 3.83b +% +\def\PictureFile{lasersys.lp3}% +\def\PictureWidth{140.0}% +\def\PictureHeight{85.0}% +\def\PictureCenterX{70.0}% +\def\PictureCenterY{42.5}% +\def\SpecialCommand{lipsfile=}% +\def\PictureOrigin{u}% +\endinput% diff --git a/Master/tlpkg/dviout/GRAPHIC/PDL/lips3.gpd b/Master/tlpkg/dviout/GRAPHIC/PDL/lips3.gpd Binary files differnew file mode 100644 index 00000000000..47844d6110c --- /dev/null +++ b/Master/tlpkg/dviout/GRAPHIC/PDL/lips3.gpd diff --git a/Master/tlpkg/dviout/GRAPHIC/PDL/pdldoc.tex b/Master/tlpkg/dviout/GRAPHIC/PDL/pdldoc.tex new file mode 100644 index 00000000000..84b37d572d8 --- /dev/null +++ b/Master/tlpkg/dviout/GRAPHIC/PDL/pdldoc.tex @@ -0,0 +1,202 @@ +\documentstyle[a4j,11pt]{jarticle} +\input picbox +\title{LBPページ記述言語の描画命令を直接扱うための \\dviout/prt の改変について} +\author{東北大学工学部応用物理学科 + \and 岩井 貞之 + \thanks{sada@atman.cc.tohoku.ac.jp, GBF03356@niftyserve.or.jp}} +\date{1993/11/09 $\beta $-version} +\begin{document} +\maketitle + +%-------------------------------------------------------------------% +\section{改造の動機} +%-------------------------------------------------------------------% +dviout/prtは、非常に優れたソフトであり、事実上DOSマシンでの\TeX の標準 +デバイスドライバーの地位を確立してます。また、多くの方々の努力により様 +々な拡張が施され、\TeX の唯一の弱点とも言える図表とのコンビネーション +を補うための機能を備えています。dviout/prtのおかげで、以前は鋏と糊を使 +い苦労して切り貼りで出していたのが信じられないくらい簡単に図面を含んだ +文書を出せるようになり、一ユーザーとして非常にありがたく使わせていただ +いております。 + +ところで、図面等を出力するには、更に簡単な方法があります。それは最近急 +速に低価格化が進み、一般の個人ユーザーも所有しているケースが多くなって +きたレーザープリンターのページ記述言語を用いて図を書くという方法です。 +この場合、出力がデバイスドライバーとレーザープリンターに完全に依存して +しまうのですが、その簡便性、描画の美しさは一考に値するものがあります。 +そこでこの度、dviprtがCANONのLIPS3とEPSONのESC/Pageに対応していることもあり、 +それらのページ記述言語を直接扱えるように改造することを考えました。 + +完全にドライバーとプリンター依存のdviファイルを作ることになってしまい +ますが、dviprtとレーザープリンター以外の組み合わせではその部分は空白に +なって出力されますし、その部分はどうせ図を切り貼りするための部分なので +あまり大きな問題はないだろうと考えました。 + +%-------------------------------------------------------------------% +\section{動作仕様} +%-------------------------------------------------------------------% + +%-------------------------------------------------------------------% +\begin{figure}[t] +\begin{center} +\PictureBox{spec} +\caption{GPで書いた図を張り込んだ例、その1。 +picbox.texで読み込んでいる。} +\end{center} +\end{figure} +%-------------------------------------------------------------------% + +仕組みは非常に簡単で、別ファイルにあらかじめ印刷したい絵をページ記述言語で書いておくと言うものです。dviファイル中のスペシャルコマンドで、 +\begin{verbatim} +\special{lipsfile=*****} もしくは \specail{escpagefile=*****} +\end{verbatim} +の記述が見つかった場合は、指定されたファイルをオープンし中身のコードを +レーザープリンターに送るようになっています。そのときの出力先にLIPS3も +しくはESC/Pageをサポートしていないプリンターが指定されているときは、ス +ペシャルコマンドを無視するようになっています。 + +オープンされるファイル(LIPSの時は\verb+***+.LP3、ESC/Pageの時 +は\verb+***+.EPG)には、 +各々のページ記述言語が1バイトごと直接書き込まれています。手順は以下の +通りです。 + +\begin{enumerate} +\item まずあらかじめ文書の方で絵を張り込む部分の枠をあけ、\TeX のカレ +ントポイントをその枠の左上隅に移動しておきます。付属のpicture.texを使 +うと楽に作業が出来ます。(picture.texは\LaTeX でもplain\TeX でも使えます) + +\item 次に、スペシャルが現れた時点でdviprtはその時点のカレントポイント +の位置をLBPに送り、その位置を描画の座標原点にします。ファイル中の絵は +左上を座標原点に取り描画するように書かれている必要があります。 + +\item その後dviprtはページ記述言語が書かれたファイルをオープンし、1バ +イトごとLBPに送ります。 + +\item 送られるページ記述言語は、まずLBPがキャラクターモードになってい +るのでその設定を内部バッファーに保存し、LBPをグラフィックモードに切り +替え、初期化、フォントの設定、座標の設定の作業をします。 + +\item その後はページ記述言語でそのまま絵を描きます。これらのところはサ +ンプルのファイルを参照して下さい。 + +\item 最後にグラフィックモードを終わり、先に保存したキャラクターモードを +戻して終了します。 + +\item dviprtはその後いつものように文字列を出力していきます。 + +\end{enumerate} + +dvioutでプレビューする場合は、その部分はただの空白に見えます。位置の確 +認のみしか行えませんが、これは原理上仕方ありません。 + +%-------------------------------------------------------------------% +\begin{figure}[t] +\begin{center} +\PictureFrameBox{lasersys} + +\caption{GPで書いた図を張り込んだ例その2。GPの描画機能を使った実験系の模式図。 +picbox.texで読み込んでいる。} +\end{center} +\end{figure} +%-------------------------------------------------------------------% + +これで、LBPを使っている限りは、そのLBPに対応したアプリケーションが印刷 +する綺麗な出力そのままをTeXの文書に張り込めるようになります。デバイス +に依存しているだけあって、ghostscript、tpic等を介すよりも遥かに細かく +綺麗な出力が得られます。更に印字部分の処理は他のアプリケーションにまか +せ、事前にファイルを作っておくことによって、dviprt本体には負荷をかけず +にすみますので、動作も軽快です。 + +また、dviprtでLIPSのLBPを使う指定の'-p=l'、もしくはESC/Pageの'-p=m'の +オプションがなければ、この部 +分のspecialは無視する仕様になっています。その他の部分は +今まで通りのdviprtです。なお、以前のdvioutの仕様ではspecial commandの中 +に'file='の文字があるとghostscriptを起動してしまいます。ここの所をパス +するためにdvioutの方もいじりました。 + + +%-------------------------------------------------------------------% +\section{現在対応しているアプリケーション} +%-------------------------------------------------------------------% + +現在この仕様に対応しているアプリケーションは、以下の通りです。 +\begin{itemize} +\item GP $\cdots$ (FGALAP LIB 7, PC98版、IBM PC/AT 互換機版) + +枝松圭一氏(eda@akiu.gw.tohoku.ac.jp)作、二次元グラフプロット\&データ +解析プログラム。lips3出力用のデバイスドライバー(LIPS3.GPD)を同梱のも +のと差し替える必要あり。 + +\item Ngraph $\cdots$ (FGALAP LIB 7, PC98版) + +石坂智氏(isizaka@nsis86.cl.nec.co.jp、NAH01761@niftyserve.or.jp)作、 +デ−タ解析・グラフ描画プログラム。LIPS形式のファイルのみ制限付きで使用 +可。(飯原氏作のドライバー GRA2LIPS.EXE が作るGPと同形式のファイルによ +る。修正を要す場合あり) + +\end{itemize} + +元々この出力の仕様は、上記のGPの作者の枝松氏がTeXのデバイスドライバー +であるDVI2LP3でGPで書いたグラフを張り込んで印刷するために考え出したも +のです。LIPSもしくはESC/Pageを扱えるソフトならば、出力先をファイルにも +指定できるように若干修正するだけで対応できると思います。 + + +%-------------------------------------------------------------------% +\section{現時点での問題点} +%-------------------------------------------------------------------% +\begin{itemize} +\item +現在手元にあるのがPC98とCANON Lasershot を使った開発環境で、その組み合 +わせでしか動作を確認しておりません。ESC/Pageをサポートしたプリンターは +手元になく、また対応しているアプリケーションもないことからテストしてお +りません。原理的には問題ないと思いますが本当の所はわかりません。PC/AT +互換機やその他の機種でも、機種に依存しないルーチンだと思いますので、こ +のままコンパイル可能だと思います。 + +\item +dviprtには拡大縮小を印字時に行ってくれるオプションもありますが、この場 +合印刷される図は大きさがもとのままになります。これは読み込んでくるファ +イルの内容が、それを作るアプリケーション側で指定した大きさで書かれてい +るためです。 + +\item +Vオプションによる横向きの印字は問題ないと思います。ただ、紙面をはみ出 +す位置に図が来てしまうと、複数の図があちこちに現れてしまうので注意して +下さい。 + +\item +複雑な図を同じページに何枚か書くと、LBP側に送るデータがあまりに +多くなってしまうことがあります。このようなとき、例えばLasershotの +場合'メモリオーバー'のエラーが出ます。このような時は、Lasershotの受信 +バッファーを0に設定するなどしてメモリを最大限使えるようにすると回避出 +来ることがあります。 +\end{itemize} + +%-------------------------------------------------------------------% +\section{連絡先} +%-------------------------------------------------------------------% + +何か問題などがございましたら、下記のところまでご連絡下さい。 + +\begin{flushright} +\begin{tabular}{ll} + \multicolumn{2}{l}{\large 岩井 貞之 (Sadayuki Iwai)} \\ + E-mail & {\tt GBF03356@niftyserve.or.jp} \\ +\end{tabular}\\ +\end{flushright} +%-------------------------------------------------------------------% +\section{SHIMAによる補足} +%-------------------------------------------------------------------% +\begin{verbatim} +\special{lipsfile=*****} もしくは \specail{escpagefile=*****} +\end{verbatim} +のほかに +\begin{verbatim} +\special{pdlfile=*****} +\end{verbatim} +を追加しました。 +これは、dviprtで'p=l'や'p=m'の指定がなくても、 +\verb+***+.PDLの内容をプリンタに転送するものです。 +\end{document} +
\ No newline at end of file diff --git a/Master/tlpkg/dviout/GRAPHIC/PDL/picbox.tex b/Master/tlpkg/dviout/GRAPHIC/PDL/picbox.tex new file mode 100644 index 00000000000..0ffe517cd1a --- /dev/null +++ b/Master/tlpkg/dviout/GRAPHIC/PDL/picbox.tex @@ -0,0 +1,58 @@ +%----------------------------------------------------------------------% +% Macros for GP -> TeX interface % +% version 2.10 Nov. 12 1993 by K.Edamatsu. % +%----------------------------------------------------------------------% +% +% Macros for plain TeX and LaTeX +% +\def\PictureOrigin{u}% Origin of a picture = upper (or lower) +\def\SpecialCommand{lipsfile=}% +% +%--- picture in \hbox +\def\PictureHbox#1{\def\PictureFile{#1}% + \input#1\hbox to\PictureWidth true mm + {\vbox to\PictureHeight true mm + \if\PictureOrigin u + {\special{\SpecialCommand\PictureFile}\vfil}% + \else + {\vfil\special{\SpecialCommand\PictureFile}}% + \fi\hfil}} +% +%--- picture in \mbox +\def\PictureBox#1{\leavevmode\PictureHbox{#1}} +% +%--- picture in \fbox +\def\PictureFrameBox#1{\leavevmode\hbox + {\vrule\vbox{\hrule\PictureHbox{#1}\hrule}\vrule}} +% +% Macros for LaTeX +% +\expandafter\ifx\csname LaTeX\endcsname\relax% { if \LaTeX is undefined } +\else% { else .... } +% +%--- picture in LaTex's `picture' environment +\newenvironment{PictureIn}[1]{% +\input#1\unitlength=1mm% +\begin{picture}(\PictureWidth,\PictureHeight) +\if\PictureOrigin u + \put(0,\PictureHeight){\special{\SpecialCommand\PictureFile}} +\else + \put(0,0){\special{\SpecialCommand\PictureFile}} +\fi}{% +\end{picture}} +% +%--- picture in \oval +\def\PictureOvalBox#1{% +\begin{PictureIn}{#1} + \put(\PictureCenterX,\PictureCenterY){\oval(\PictureWidth,\PictureHeight)} +\end{PictureIn}} +% +%--- picture in \dashbox +\def\PictureDashBox#1#2{% +\begin{PictureIn}{#2} + \put(0,0){\dashbox{#1}(\PictureWidth,\PictureHeight){}} +\end{PictureIn}} +% +\fi +% +\endinput diff --git a/Master/tlpkg/dviout/GRAPHIC/PDL/spec.lp3 b/Master/tlpkg/dviout/GRAPHIC/PDL/spec.lp3 new file mode 100644 index 00000000000..5ac55f277d1 --- /dev/null +++ b/Master/tlpkg/dviout/GRAPHIC/PDL/spec.lp3 @@ -0,0 +1 @@ +[&} <Dutch-RomanDutch-BoldDutch-ItalicDutch-BoldItalicSwissSwiss-BoldSwiss-ObliqueSwiss-BoldObliqueSymbolLinePrinter-BoldMincho-MediumGothic-MediumRoundGothic-Light ;1J1I1'$21' 11"!!01"!!11"!$21"! 12B#!0#$T1m1n;o9]7`4a9b5U2}E1}H0*0}p[1&})0AI=0AI=}RF4}S1F1#T1m1]7`4n;}^10)0Ag50AI=T6m6]7`4n<}^10}R0}S1F141G4A@<AV90}R0}S1F141G4A@<0B!1I<A@<0A$1L3A@<0A$1N;A@<0A$1Q2A@<0A$1S:A@<0B!1V2A@<0A$1X9A@<0A$1[1A@<0A$1]8A@<0A$1`0A@<0B!1b7A@<0A$1d?A@<0A$1g7A@<0A$1i>A@<0A$1l6A@<0B!1n=A@<0A$1q5A@<0A$1s<A@<0A$1v4A@<0A$1x<A@<0B!1{3A@<0A$1};A@<0A$1A@2A@<0A$1AB:A@<0A$1AE1A@<0B!1AG9A@<0A$1AJ1A@<0A$1AL8A@<0A$1AO0A@<0A$1AQ7A@<0B!1AS?A@<0A$1AV6A@<0A$1AX>A@<0A$1A[5A@<0A$1A]=A@<0B!}R0}S1F14Z0F$F40Y:VF4Z0F$F40Y:VF4Z0F$F40YB>VF440D7AC>1340F1AC>1.40F>AC>1140H7AC>1040P=AC>1340R7AC>1.40S4AC>1140T=AC>1540]3AC>1340^=AC>1.40_9AC>1240a3AC>1040i9AC>1340k2AC>1.40k?AC>1240m9AC>1540u?AC>1340w8AC>1.40x5AC>1340y?AC>1040AB4AC>1340AC>AC>1.40AD;AC>1340AF5AC>1540AN:AC>1340AP4AC>1.40AQ1AC>1440AR:AC>1040A[0AC>1340A\:AC>1.40A]7AC>1440A_0AC>15}R0}S1F14Z0F$F40YC9VF440^0AG81P40`7AG81H40c0AG81O40e=AG81T40h0AG81O40j=AG81N40m7AG81 40o7AG81E40q=AG81N40t7AG81E40v=AG81R40y7AG81G40|4AG81Y40~:AG81 40A@:AG81(40AA=AG81e40AC7AG81V40AE>AG81)T1m1]7`4n;}^10}R0}S1F141G4D3AV90T6m6]7`4n<}^10}R0}S1F141G4A@<0|)}R0}S1F141G4{<A40}R0}S1F14ZF$00F$YC9VF440E7A@91L40E7~61U40E7{=1M40E7x=1I40E7w=1N40E7u31E40E7r=1S40E7p61C40E7m<1E40E7k61N40E7h<1C40E7f31E40E7c<1 40E7a<1I40E7`<1N40E7^21T40E7[?1E40E7Y91N40E7V?1S40E7T81I40E7S81T40E7Q51Y40E7N?1 40E7L?1(40E7K<1a40E7I;1.40E7H<1u40E7F81.40E7E91)}R0}S1F141A]=A@<0|)}R0}S1F141A]=9A#01A]={<B!01A]=w?A#01A]=t1A#01A]=p4A#01A]=l7A#01A]=h:B!01A]=d<A#01A]=`?A#01A]=]2A#01A]=Y4A#01A]=U7B!01A]=Q:A#01A]=M=A#01A]=I?A#01A]=F2A#0}R0}S1F14Z0F$F40YC9VF4Z0F$F40YB>VF440A^7|:1040A^7i71040A`0i71.40A`=i71540A^7V511}R0}S1F14ZF$00F$YB>VF4ZF$00F$YC9VF440Af5s31O40Af5p61P40Af5n01T40Af5k=1I40Af5j=1C40Af5h31A40Af5e91L40Af5c61 40Af5a61D40Af5^=1E40Af5\61N40Af5Y<1S40Af5W61I40Af5V61T40Af5T31Y)G4A]=D3A@<}R0}S1F1#1G4{5101G5{5201G7{5301G:{5201G<{5311G?{6201H1{6301H4{6201H6{6201H8{6311H;{7201H={7301I0{7201I2{7201I4{7301I7{7201I9{7301I<{7201I>{7201J0{7301J3{7201J5{7301J8{7211J:{8301J={8201J?{8201K1{8301K4{8211K6{9301K9{9201K;{9301K>{9201L0{9201L2{9301L5{9201L7{9301L:{92!1L<{8301L?{8201M1{8201M3{8301M6{8201M8{83!1M;{7201M={7301N0{7201N2{7301N5{7201N7{7201N9{7301N<{72!1N>{6301O1{6211O3{7301O6{72!1O8{6301O;{6201O={6311P0{7201P2{7201P4{7301P7{72!1P9{6311P<{72!1P>{6301Q1{6201Q3{6301Q6{6201Q8{6301Q;{6211Q={7301R0{7201R2{7201R4{7311R7{8201R9{8301R<{8201R>{8301S1{8201S3{8301S6{82!1S8{7301S;{72!1S={63!1T0{5201T2{53!1T5{4201T7{4301T:{4201T<{4301T?{4201U1{4311U4{5201U6{5301U9{5211U;{6311U>{7201V0{7301V3{7211V5{8301V8{8201V:{8301V={8201V?{8301W2{8201W4{8301W7{8211W9{9301W<{9201W>{9311X1{:2!1X3{9301X6{9201X8{9311X;{:201X={:301Y0{:201Y2{:301Y5{:201Y7{:301Y:{:201Y<{:301Y?{:201Z1{:301Z4{:2!1Z6{9301Z9{9201Z;{9301Z>{9201[0{9301[3{92!1[5{8301[8{8301[;{8211[={9301\0{9201\2{9311\5{:201\7{:311\:{;211\<{<301\?{<211]1{=3!1]4{<211]6{=301]9{=301]<{=201]>{=301^1{=201^3{=301^6{=201^8{=301^;{=201^={=301_0{=3!1_3{<201_5{<301_8{<201_:{<3!1_={;201_?{;301`2{;201`4{;3!1`7{:301`:{:2!1`<{9301`?{9201a1{9301a4{92!1a6{83!1a9{72!1a;{63!1a>{53!1b1{42!1b3{33"1b6{12#1b8z>3#1b;z;2$1b=z73%1c0z23'1c3y;2(1c5y33*1c8x92+1c:w>3.1c=w03/1d0v12A!1d2u03A"1d5s>2A#1d7r;3A$1d:q73A$1d=p32A#1d?o03A#1e2m=2A 1e4l=3/1e7k>2-1e9k13+1e<j63'1e?i?2&1f1i93#1f4i6201f6i6321f9i8331f<i;261f>j1361g1j7271g3j>371g6k5381g9k=281g;l5381g>l=391h1m6281h3m>371h6n5281h8n=371h;o4371h>o;261i0p1361i3p7251i5p<351i8q1351i;q6241i=q:341j0q>341j3r2231j5r5331j8r8221j:r:321j=r<321k0r>211k2r?321k5s1311k8s2211k:s3311k=s4311l0s5211l2s6311l5s7211l7s8301l:s8311l=s9201l?s9311m2s:301m5s:201m7s:301m:s:311m=s;201m?s;301n2s;3!1n5s:201n7s:301n:s:201n<s:3!1n?s9301o2s9201o4s93!1o7s83!1o:s72!1o<s63!1o?s53!1p2s42!1p4s33"1p7s13"1p:r?2!1p<r>3"1p?r<3"1q2r:2"1q4r83#1q7r53#1q:r22#1q<q?3#1q?q<3$1r2q83%1r5q32$1r7p?3%1r:p:3&1r=p42'1r?o=3'1s2o63'1s5n?2(1s7n73(1s:m?3)1s=m62*1s?l<3*1t2l23+1t5k72+1t7j<3,1t:j03-1t=i33,1u0h72-1u2g:3.1u5f<3.1u8e>2/1u:d?3/1u=d03A 1v0c02A 1v2b03A!1v5`?3A!1v8_>3A!1v;^=2A!1v=]<3A!1w0\;3A 1w3[;2A 1w5Z;3A 1w8Y;3/1w;X<3/1w>W=2.1x0V?3-1x3V23-1x6U52,1x8T93)1x;T03)1x>S73'1y1S02'1y3R93'1y6R23$1y9Q>2%1y;Q93#1y>Q63$1z1Q23$1z4P>2$1z6P:3#1z9P73#1z<P43$1z?P02"1{1O>3"1{4O<3!1{7O;3!1{:O:201{<O:311{?O;331|2O>331|5P1231|7P4321|:P6341|=P:251|?P?341}2Q3331}5Q6331}8Q9321};Q;241}=Q?321~0R1341~3R5331~6R8231~8R;331~;R>331~>S13511S62313S93416S=3519T2341<T6231>T9351A@1T>341A@4U2351A@7U7231A@9U:351A@<U?341A@?V3341AA2V7351AA5V<241AA7W0351AA:W5331AA=W8341AB0W<331AB3W?251AB5X4341AB8X8331AB;X;341AB>X?241AC0Y3331AC3Y6341AC6Y:341AC9Y>331AC<Z1231AC>Z4341AD1Z8331AD4Z;341AD7Z?341AD:[3241AD<[7341AD?[;331AE2[>341AE5\2331AE8\5231AE:\8341AE=\<331AF0\?341AF3]3331AF6]6231AF8]9331AF;]<331AF>]?331AG1^2321AG4^4331AG7^7221AG9^9331AG<^<331AG?^?321AH2_1331AH5_4321AH8_6231AH:_9331AH=_<321AI0_>331AI3`1331AI6`4321AI9`6221AI;`8321AI>`:311AJ1`;321AJ4`=321AJ7`?321AJ:a1221AJ<a3321AJ?a5321AK2a7311AK5a8331AK8a;321AK;a=231AK=b0321AL0b2321AL3b4331AL6b7321AL9b9311AL<b:321AL?b<221AM1b>311AM4b?321AM7c1311AM:c2321AM=c4311AN0c5311AN3c6311AN6c7221AN8c9311AN;c:321AN>c<311AO1c=311AO4c>321AO7d0311AO:d1321AO=d3211AO?d4311AP2d5311AP5d6321AP8d8311AP;d9321AP>d;311AQ1d<311AQ4d=221AQ6d?311AQ9e0311AQ<e1321AQ?e3321AR2e5321AR5e7321AR8e9311AR;e:311AR>e;211AS0e<321AS3e>311AS6e?311AS9f0311AS<f1311AS?f2311AT2f3311AT5f4311AT8f5311AT;f6311AT>f7211AU0f8311AU3f9311AU6f:311AU9f;311AU<f<311AU?f=301AV2f=311AV5f>321AV8g0311AV;g1311AV>g2321AW1g4311AW4g5211AW6g6311AW9g7311AW<g8321AW?g:311AX2g;301AX5g;311AX8g<301AX;g<311AX>g=311AY1g>301AY4g>311AY7g?311AY:h0311AY=h1311AZ0h2311AZ3h3201AZ5h3321AZ8h5311AZ;h6311AZ>h7311A[1h8311A[4h9311A[7h:311A[:h;311A[=h<301A\0h<311A\3h=3!1A\6h<311A\9h=301A\<h=311A\?h>311A]2h?301A]5h?311A]8i0301A];i030}R0}S1F1$1AG:{7101AF7{7101AE3{7101AD0{6101AB={7101AA9{6101A@6{61013{6101}?{5101|<{4101{9{3101z5{2101y2{1101w?z>101v<z:101u:z3101t7y=101s6y5101r5x;101q5x0101p6w4101o9v5101n=u7101n1t8101m6s8101l<r7101l4q5101k<p4101k6o1101k0m?101j:l<101j5k:101j1j7101i=i4101i9h1101i5f>101i0e;101h=d8101h9c5101h6b2101h3`?101h0_<101g=^9101g:]6101g7\3101g4Z?101g0Y<101f7X<101e?Y;101e:Z>101e7\1101e5]4101e4^8101e2_;101e1`>101d?b2101d>c5101d=d8101d<e<101d;f?101d:h2101d8i6101d7j9101d6k<101d5m0101d4n3101d2o6101d1p9101c?q=101c=s0101c;t3101c8u6101c3v9101b9w9101a8x2101`5x2101_2w>101]?w9101\>w0101[?v3101[2u6101Z3t9101Y5s=101X8r>101W<q?101V=q6101V4r6101U<s8101U4t9101T<u;101T3v<101S9w=101R:x9101Q8y0101P6y7101O4y<101N1z0101L>z4101K:z6101J7z8101I4z;101H1z=10}R0}S1F1#1G4{9101G5{92!1G7{8301G:{8201G<{8301G?{8211H1{9101I0{:201I2{:201I4{:301I7{:201I9{:301I<{:201I>{:101J={;201J?{;201K1{;3!1K4{:211K6{;301K9{;201K;{;101L:{<201L<{<3!1L?{;2!1M1{:2!1M3{9301M6{9201N6{<111N7{=201N9{=301N<{=201N>{=301O1{=201O3{=201P3{<101P4{<3!1P7{;201P9{;301P<{;201P>{;301Q1{;111R0{?201R2{?211R4|0301R7|0211R9|1301R<|1201S<|2101S=|2311T0|3201T2|3301T5|3211T7|4301T:|4011U5|=101U6|=331U9}0211U;}1301U>}1221V0}3301V2}3101W0}9211W2}:201W4}:301W7}:201W9}:3!1W<}9201W=}9101X<}7101X=}73"1Y0}52"1Y2}33!1Y5}22!1Y7}12!1Z8|?1!1Z9|>201Z;|>3"1Z>|<2!1[0|;3!1[3|:2!1\3|:201\5|:2!1\7|9301\:|92!1\<|8301\?|82!1]0|7101^0|4101^1|4201^3|43!1^6|32!1^8|2301^;|2201^=|2101_<|1101_=|12!1_?|03!1`2{?201`4{?301`7{?301`:{?0!1a8{=101a9{=201a;{=301a>{=311b1{>201b3{>3!1b6{=101c4{9101c5{93"1c8{72!1c:{63"1c={43"1d0{21"1d9z51!1d:z43%1d=y?2'1d?y80!1e4x90"1e4x73*1e7w=0"1e;v=1%1e<v82)1f2u12)1f4t81%1f8s51#1f9s23*1f<r80!1f?q92&1g1q32(1g2p;101g8o=1!1g9o<2&1g;o63&1g=o0101h5n3101h6n32#1h8n03"1h;m>301h>m>2!1i0m=211j0n1311j3n2211j5n3321j8n5211j:n6321k9o0111k:o1321k=o3321l0o5211l2o6231l>p2101l?p2331m2p5321m5p7211m7p8311m:p9111n8q1211n:q2211n<q3321n?q5311o2q6211o4q7101p3q<101p4q<301p7q<301p:q<201p<q<301p?q<2!1q?q93!1r2q83!1r5q72!1r7q6301r:q63!1r<q5101s9p<1"1s:p:3$1s=p62%1s?p11!1t8o32$1t:n?3%1t=n:2$1u5m90!1u5m83&1u8m22&1u?k>1"1v0k<2)1v2k31#1v7j2101v8j23)1v;i91$1w0h73*1w3g=1$1w8f;0"1w8f93*1w;e?0"1w?d>1&1x0d82(1x6c22*1x8b81$1x=a61#1x>a33+1y0`8101y4_:2&1y6_42(1y>]>0!1y>]=3)1z1]41#1z7\32'1z9[<2'1z?Z72&1{1Z13&1{4Y;1!1{;X=1#1{<X:3%1{?X53%1|;W52#1|=W22!1|?W13%1}2V<3"1~0V23"1~3V03!1~6U?2!1~8U>301~;U>201:V4201<V4201>V43"1A@1V2321A@4V4311A@7V5011AA3V>201AA5V>2!1AA7V=311AA:V>301AA=V>311AB0V?011AB:W:101AB;W:321AB>W<211AC0W=321AC3W?321AC6X1101AD1X:341AD4X>331AD7Y1331AD:Y4111AE6Y>211AE8Y?231AE:Z2341AE=Z6231AF:[3121AF;[5321AF>[7331AG1[:321AG4[<011AG>\7101AG?\7321AH2\9321AH5\;321AH8\=211AH:\>101AI7]6211AI9]7231AI;]:331AI>]=341AJ=^8221AJ?^:311AK2^;311AK5^<321AK8^>121AL2_:101AL3_:331AL6_=331AL9`0341AL<`4111AM9`=101AM:`=311AM=`>301AN0`>311AN3`?311AN6a0101AO3a8111AO4a9331AO7a<311AO:a=331AO=b0111AP:b8101AP;b8311AP>b9311AQ1b:311AQ4b;211AQ6b<221AR4c6101AR5c6321AR8c8311AR;c9321AR>c;221AS=d4211AS?d5301AT2d5311AT5d6301AT8d6221AU7d?211AU9e0311AU<e13!1AU?e0311AV2e1301AV4e1101AW1e9321AW4e;231AW6e>321AW9f0301AW<f0101AX;f4301AX>f4331AY1f7311AY4f8311AY7f9111AZ5f?011AZ5g0311AZ8g1311AZ;g2321AZ>g43!1A[1g3211A[?g9101A\0g9301A\3g9301A\6g9301A\9g9301A\<g9201A];g>32}R0}S1F121G3{<101G={<101H7{<101I0{<101I:{<101J4{<101J={<101K7{<101L1{<101L:{<101M4{<101M>{<101N7{<101O1{<101O;{<101P4{<101P>{<101Q8{<101R2{<101R;{<101S5{<101S?{<101T8{<101U2{<101U<{<101V5{<101V?{<101W9{<101X2{<101X<{<101Y6{<101Y?{<101Z9{<101[3{<101[<{<101\6{<101]0{<101]:{<101^3{<101^={<101_7{<101`0{<101`:{<101a4{<101a={<101b7{<101c1{<101c:{<101d4{<101d>{<101e7{<101f1{<101f;{<101g4{<101g>{<101h8{<101i2{<101i;{<101j5{<101j?{<101k8{<101l2{<101l<{<101m5{<101m?{<101n9{<101o2{<101o<{<101p6{<101p?{<101q9{<101r3{<101r<{<101s6{<101t0{<101t:{<101u3{<101u={<101v7{<101w0{<101w:{<101x4{<101x={<101y7{<101z1{<101z:{<101{4{<101{>{<101|7{<101}1{<101};{<101~4{<101~>{<1018{<101A@2{<101A@;{<101AA5{<101AA?{<101AB8{<101AC2{<101AC<{<101AD5{<101AD?{<101AE9{<101AF2{<101AF<{<101AG6{<101AG?{<101AH9{<101AI3{<101AI<{<101AJ6{<101AK0{<101AK:{<101AL3{<101AL={<101AM7{<101AN0{<101AN:{<101AO4{<101AO={<101AP7{<101AQ1{<101AQ:{<101AR4{<101AR>{<101AS7{<101AT1{<101AT;{<101AU4{<101AU>{<101AV8{<101AW2{<101AW;{<101AX5{<101AX?{<101AY8{<101AZ2{<101AZ<{<101A[5{<101A[?{<101A\9{<101A]2{<101A]<{<10)0Ag50AI=}R0}S1F141G4A@<AV90}R0}S1F141G4A@<0B!1I<A@<0A$1L3A@<0A$1N;A@<0A$1Q2A@<0A$1S:A@<0B!1V2A@<0A$1X9A@<0A$1[1A@<0A$1]8A@<0A$1`0A@<0B!1b7A@<0A$1d?A@<0A$1g7A@<0A$1i>A@<0A$1l6A@<0B!1n=A@<0A$1q5A@<0A$1s<A@<0A$1v4A@<0A$1x<A@<0B!1{3A@<0A$1};A@<0A$1A@2A@<0A$1AB:A@<0A$1AE1A@<0B!1AG9A@<0A$1AJ1A@<0A$1AL8A@<0A$1AO0A@<0A$1AQ7A@<0B!1AS?A@<0A$1AV6A@<0A$1AX>A@<0A$1A[5A@<0A$1A]=A@<0B!T1m1]7`4n;}^10}R0}S1F141G4D3AV90T6m6]7`4n<}^10}R0}S1F141G4A@<0|)}R0}S1F141G4{<A40}R0}S1F141A]=A@<0|)}R0}S1F141A]=9A#01A]={<B!01A]=w?A#01A]=t1A#01A]=p4A#01A]=l7A#01A]=h:B!01A]=d<A#01A]=`?A#01A]=]2A#01A]=Y4A#01A]=U7B!01A]=Q:A#01A]=M=A#01A]=I?A#01A]=F2A#0}RF4}S1F14I)02AH:[30:Q6005A4*A$*05}H0I01}S1}R0}S1F141AH:[8Q60F1!}H1I102A[4[8A$50*}H0I01}S11A[4[8A$51AZ0[=0*1AZ0[3A45F14}RF4}S1F14I)02b?j50)X"00%A#:A390%}H0I01}S1}R0}S1F141b?j1X"0F1!}H1I102I:j1A3%09}H0I01}S11I:j1A3%1J=i<091J=j5A#$F14}RF4}S1F14I)02AL>k=59E>C)34;A"A%125}H0I01}S1}R0}S1F141AM0l2E?C)F1!}H1I102AS?g?.>%(}H0I01}S11AS?g?.>1AS1h=%(1AR<h5A3&F14}RF4}S1F14I)02{9s:5(D/B-2$A%"<A22$}H0I01}S1}R0}S1F141{;s6D.B-F1!}H1I102u<o?A36%8}H0I01}S11u<o?A361v?p5%81v:p=..F14}R0}S1F14}RF4}S1F14I)0}:G4e:D3J0}H0I01}S1}R0}S1F14Z0F$F40YC9VF4Z0F$F40YD5VF440H3H91C40K5H91u40M?H91C40Q1H91l40R4H91 40T:H91i40U>H91n40X8H91 40Z>H91N40^0H91a40`7H91C40c9H91l1G4J0^601e:J00E-1e:D3^&01G4D30E=}R0}S1F14}RF4}S1F14I)0}:H9c2c8h5}H0I01}S1}R0}S1F14Z0F$F40YC9VF440I5g21L40K9g21u40M<g21m40P?g21i40Q?g21n40T2g21e40V2g21s40X2g21c40Z2g21e40\3g21n40^6g21c40`6g21e}R0}S1F14}RF4}S1F14I)0}:AF>A[9U6Z4}H0I01}S1}R0}S1F1440AG;Y01A40AJ4Y01b40AL7Y01s40AN7Y01o40AP;Y01r40AR1Y01p40AT4Y01t40AU7Y01i40AV7Y01o40AX:Y01n}R0}S1F14}RF4}S1F14I)0}:x2~:H?N6}H0I01}S1}R0}S1F1440x>L91ZZ0F$F40YB8VF440{1M311Z0F$F40YC9VF4Z0F$F40YB8VF440|7M312Z0F$F40YC9VF4}R0}S1F14}RF4}S1F14I)0}:e=j?c5h<}H0I01}S1}R0}S1F1440f:f?1ZZ0F$F40YB8VF440h=g913Z0F$F40YC9VF4}R0}S1F14}RF4}S1F14I)0}:c?i>Q?V=}H0I01}S1}R0}S1F1440d;U91E40g2U91x}R0}S1F14}RF4}S1F14I)0}:U5Y=k9p6}H0I01}S1}R0}S1F1440V1o31M}R0}S1F14}RF4}S1F14I)0}:I9Q;K:P8}H0I01}S1}R0}S1F1440J5O51740L5O51740N5O51K}R0}S1F14}RF4}S1F14I)0}:|8AQ0p>u;}H0I01}S1}R0}S1F1440}4t81w40A@1t81i40AA1t81t40AB4t81h40AD7t81 40AF7t81p40AH:t81u40AJ=t81m40AN1t81p}R0}S1F14}RF4}S1F14I)0}:z:AM>j1n>}H0I01}S1}R0}S1F1440{6m;1w40~3m;1/402m;1o40AA6m;1 40AC6m;1p40AE9m;1u40AG<m;1m40AJ?m;1p%}p
\ No newline at end of file diff --git a/Master/tlpkg/dviout/GRAPHIC/PDL/spec.tex b/Master/tlpkg/dviout/GRAPHIC/PDL/spec.tex new file mode 100644 index 00000000000..bafcfdf7839 --- /dev/null +++ b/Master/tlpkg/dviout/GRAPHIC/PDL/spec.tex @@ -0,0 +1,10 @@ +% GP -> TeX interface file. GPversion 3.83b +% +\def\PictureFile{spec.lp3}% +\def\PictureWidth{140.0}% +\def\PictureHeight{100.0}% +\def\PictureCenterX{70.0}% +\def\PictureCenterY{50.0}% +\def\SpecialCommand{lipsfile=}% +\def\PictureOrigin{u}% +\endinput% diff --git a/Master/tlpkg/dviout/GRAPHIC/PS/epsfdoc.tex b/Master/tlpkg/dviout/GRAPHIC/PS/epsfdoc.tex new file mode 100644 index 00000000000..58fa0b768e8 --- /dev/null +++ b/Master/tlpkg/dviout/GRAPHIC/PS/epsfdoc.tex @@ -0,0 +1,355 @@ +\documentclass[a4j]{jarticle} +\usepackage{graphicx, color} +\title{DVIOUTとGhostscript} +\author{内山 孝憲\thanks{慶応義塾大学理工学部物理情報工学科, Internet: uchiyama@thx.inst.keio.ac.jp}} +\date{平成10年4月4日} +\begin{document} +\maketitle +\section{はじめに} +\LaTeX{}では, graphics packageを利用することにより, +日本語ポストスクリプトプリンタでEncapsulated PostScriptファイル +(EPSF)\footnote{カプセル化されたPostScriptファイル, つまりそれ自身で自 +己完結しており, EPSFを差し込んでいるPostScriptのプログラムの他の部分に +影響を与えない. 「簡易」なPostScriptではない. EPSFについては, +http://www.adobe.com/supportservice/devrelations/technotes.html +の\#{}5002を参照されたい.} +の図を挿入した文書を印刷することが出来ます. +非ポストスクリプトプリンタでは, Ghostscriptを用いて印刷することが +しばしば行われています. また, 画面でのプレビューにもGhostscriptが +利用されます. しかし, GhostscriptはCPU負荷の大きいプログラムである +ため, プレビューのように頻繁に利用する場合にはパーソナルコンピュータの +ように計算速度や入出力速度が遅いマシンでは利用し難く感じられました. +また, GhostscriptやGhostscriptのフロントエンドであるGhostViewによるプ +レビュー・印刷は, dvipsを用いて予めdviファイルをポストスクリプトファ +イルに変換しなくてはなりません. + +X11用のプレビュアであるxdviやtexxには, +Ghostscriptを起動してEPSFの表示する機能があります. +これらと同様に, パソコン用のプレビュア・プリンタドライバとして +広く普及しているDVIOUTもGhostscriptの力を借りて +EPSFを取り込んだ\LaTeX{}の文書をプレビュー・印刷します. + +\section{実現方法} +MS-DOS版の仕様を踏襲し, +子プロセスでGhostscriptを起動し, 一度ビットイメージのファイルを生成し, +それを読み取ります. ビットイメージのファイルの +形式はPortable Bitmap(PBM, 白黒)とWindows標準の多色 +BMP\footnote{Ver.3.06からは, BMPに画像圧縮を施した独自のBMC形式に変換 +して用います.}です. + +\verb+\special+コマンド内のPostScriptコマンド処理部分はjdvi2kps, +dvi2ps-jおよびdvipsにほぼ互換性があります. +\verb+\special+コマンドをみつけると, \verb+\special+コマンドで指定されている +EPSFの拡張子をpbmあるいはbmpに置き換えたファイル名で, Ghostscriptによって +作成されたビットイメージのファイルを捜します. ビットイメージのファイルがなければGhostscriptを起動して作成します. +一度ビットイメージのファイルを作成すると +EPSF自体が変更されない, あるいは取り込みサイズが変更されない +限り, そのファイルを使います. +つまり, Ghostscriptの呼び出しを最小限に留めるように配慮されています. + + +\section{使用法} +graphics packageをあらかじめ入手し, 00readmeにしたがって, +\begin{verbatim} +latex graphics.ins +\end{verbatim} +を実行して, パッケージを展開します. + +次に, 中身が +\begin{verbatim} +\ExecuteOptions{dvips} +\end{verbatim} +だけのファイル, +color.cfgとgraphics.cfgをgraphics packageと同じディレクトリに置きます. + +Ghostscriptがパスの通ったディレクトリに +インストールされており, デバイスとしてpbmrawおよびbpm*が使用できること +が条件となります. + +\section{取り込み例} +\subsection{取り込みに使用するスタイル} +\verb+graphicx.sty+および\verb+graphics.sty+を使用することができます. +これらの2つのスタイルファイルでは, 図を差し込むときの大きさの指定方法 +など, コマンドの引数が異なっています. + +実際にいくつかEPSFを取り込んでみます. +ここでは\verb+graphicx.sty+を用います. + +\subsection{実際に取り込んだ絵} +図\ref{fig:golfer}は, Illustratorで作成されたゴルファーの +絵です. +しばしばポストスクリプトプリンタの印刷サンプルに +用いられます. +Ghostscriptの配布アーカイブに含まれています. +取込み時の指定は, 縦10cmにしました. + +\begin{figure}[!htbp] +\begin{center} +\includegraphics*[height=10cm]{golfer} +\end{center} +\caption{EPSFサンプル(golfer.ps)} +\label{fig:golfer} +\end{figure} + +図\ref{fig:tiger}もIllustratorによって作成された +虎の絵です. この絵もGhostscriptの配布アーカイブに含まれています. +取込み時のサイズを縦6cmにしました. + +\begin{figure}[!htbp] +\begin{center} +\includegraphics*[height=6cm]{tiger} +\end{center} +\caption{EPSFサンプル(tiger.ps)} +\label{fig:tiger} +\end{figure} + +\subsection{取り込みに使うコマンド} +\verb+graphicx.sty+を使っているので, +\begin{verbatim} +\begin{figure}[!htbp] +\begin{center} +\includegraphics*[height=6cm]{tiger} +\end{center} +\caption{EPSFサンプル(tiger.ps)} +\label{fig:tiger} +\end{figure} +\end{verbatim} +のように記述しています. + +\verb+graphics.sty+を使う場合には, +\begin{verbatim} +\begin{figure}[!htbp] +\begin{center} +\resizebox{!}{6cm}{\includegraphics{tiger}} +\end{center} +\caption{EPSFサンプル(tiger.ps)} +\label{fig:tiger} +\end{figure} +\end{verbatim} +のように記述します. + +\verb+\includegraphics+と\verb+\includegraphics*+では, +図を取り込むときの大きさの指定は, jdvi2kpsに添付されている +epsbox.styとほぼ互換があります. +このことは, + +\begin{verbatim} +\documentclass{jarticle} +\usepackage{epsbox} + : +\begin{figure}[htbp] +\begin{center} +\psbox[height=6cm]{keyboard.epsf} +\caption{Indyのキーボード} +\label{fig:keyboard} +\end{center} +\end{figure} +\end{verbatim} + +あるいは, + +\begin{verbatim} +\documentstyle[epsbox]{jarticle} + : +\begin{figure}[htbp] +\begin{center} +\psbox[height=6cm]{keyboard.epsf} +\caption{Indyのキーボード} +\label{fig:keyboard} +\end{center} +\end{figure} +\end{verbatim} + +と記述していた部分を + +\begin{verbatim} +\documentclass{jarticle} +\usepackage{graphicx} + : +\begin{figure}[htbp] +\begin{center} +\includegraphics*[height=6cm]{keyboard.epsf} +\caption{Indyのキーボード} +\label{fig:keyboard} +\end{center} +\end{figure} +\end{verbatim} + +と記述できる, つまり\verb+\psbox+を\verb+\includegraphics*+に置換すれ +ばよいことを意味します. + +図を差し込む位置を指定する\verb+!htbp+の\verb+!+は, +float環境の制限を緩くするp\LaTeXe の拡張機能です. + +\subsection{クリッピング} +\verb+\includegraphics*+は, BoundingBoxの値でクリッピングします. +一方, アステリスクのない\verb+\includegraphics+は, クリッピングしませ +ん. + +MS-WindowsのPostScriptプリンタのドライバでEPSFを作成すると, 用紙全体を +白で塗りつぶした後に図を描くPostScriptプログラムを生成します. +BoundingBoxの値は, 用紙サイズの矩形を描きますから, 正しい値です. +このEPSFを取り込んだものを, 日本語PostScriptプリンタに印刷すると, +用紙サイズの矩形を描いて白で塗りつぶすため, 手作業でBoundingBoxの値 +を修正しても, EPSFによって図のすぐ上の文章が消されてしまいます +\footnote{正しいBoundigBoxではないので, EPSFが正しくない.}. +これを回避するためには, アステリスクが付加されている +\verb+includegraphics*+を使用します. +\verb+includegraphics*+では, BoundingBoxでクリッピングされ, 正常に印刷 +されるようになります. + +なお, dvioutでは, 図や文字は重ね合あわせて描かれるのがデフォルトで, +クリッピングを指定しなかった場合は, BoundingBoxの上下左右それぞれ1 inch外 +側までの図が取り込まれます.\footnote{この部分は SHIMA による補足です.} + +\section{おわりに} +EPSFを処理するDVIOUTの機能は, 作者である大島氏により, 可能なかぎり +PostScriptプリンタにdvipsで印刷する場合と一致するように改良が続けられ +ていますが, 完全な互換性を提供するものではありません\footnote{この文書 +の著者は, Linux boxでこの文書を作成しており, MS-Windows版DVIOUTでの +EPSFの取り込みを実際に動作確認してはいません.}. +graphics packageの詳細については, grfguide.tex を参照してください. + +\section{SHIMAによる補足} +\subsection{dviout for Windowsでの制限} +dviout for Windows Ver.3.06 以降は, カラー画像の取り込みのほか, 文字 +列や画像に対して\verb+graphicx.sty+で定義されている回転, 色付け, 拡大 +縮小などの機能に対応していますが, 以下の制限があります. + +\begin{itemize} +\item カラー画像の回転は, PostScript画像の90度の整数倍の回転以外は無視され, +サポートされません. + +\item 文字列の回転とスケール変換, および, 90度の整数倍以外の画像の回転 +とPostScript以外の画像のスケール変換は, スムージングの処理を行っていません. +場合によっては結果が奇麗になりません. 但し, dviprt機能を使わないデフォルト +のモード(auto mode(p2))での印刷では, 回転あるいはスケール変換の一方のみを行った +文字列は(下記の例では, `High'の部分のみ両者が同時に使われている), +TrueTypeフォントを使う限り文字品質の劣化はありません. + +\item 取り込み画像は, その下に文字や画像があれば, それを残して描画されるのが +デフォルトですが, \verb+-gow:+ オプションをONにすると, 下のものを消し +て描かれます. このとき, EPSFは常にそのBoundingBoxでカットされます. 文字についてこれは, \verb+-cmode:+ をreplaceに設定するのに対応しています. + +\item \verb+\pagecolor+ の有効範囲は, それが定義されたページに限ります. + +\item {\tt gzip} で画像ファイルを圧縮したものも扱えます. たとえば +\begin{verbatim} +\includegraphics[height=10cm]{images/figure.ps.gz} +\end{verbatim} +ただしこのときは, {\tt gzip} あるいは, {\tt gunzip} が必要です. + +\item dviprt機能を使った印刷では, カラーに非対応で, さらに, LBPの内臓和文フォ +ントやダウンロードフォントを使った場合, スケール変換などにも非対応です. これら +のグラフィック機能を使う場合, Windowsのドライバを指定した印刷を行ってください. + +\item dviout for Windows のツールバーの File メニューからの BMP画像出力は, +カラー画像やgray scale画像の取り込み, および, カラーや白抜き文字に対応してい +ません. +\end{itemize} + +たとえば, + +\bigskip +\rotatebox{15}{15度回転}, \rotatebox[origin=c]{180}{180度回転}, +\scalebox{1}[.5]{Low}, \rotatebox[origin=c]{-15}{\scalebox{1}[2]{High}}, +\scalebox{1}[2]{\rotatebox[origin=c]{-15}{High}}, +\reflectbox{reflect} : reflect, +\scalebox{.46}[1]{石}+\scalebox{.64}[1]{皮}=% +\scalebox{.46}[1]{石}\hskip-.1zw\scalebox{.64}[1]{皮}=破, + +{\color{red}赤}, {\color{green}緑}, {\color{blue}青}, +\rotatebox[origin=c]{30}{\color{magenta}マゼンタ}, +\textcolor[rgb]{0.8,0.4,0.2}{茶色}, \textcolor[gray]{0.5}{灰色}, +\colorbox{black}{\color{white}白抜き}, +\rotatebox{15}{\fcolorbox{red}{yellow}{など}} +\bigskip + +のような結果を得るには, 次のようなコマンドを使います. + +\begin{verbatim} +\rotatebox{15}{15度回転}, \rotatebox[origin=c]{180}{180度回転}, +\scalebox{1}[.5]{Low},\rotatebox[origin=c]{-15}{\scalebox{1}[2]{High}}, +\scalebox{1}[2]{\rotatebox[origin=c]{-15}{High}}, +\reflectbox{reflect} : reflect, +\scalebox{.45}[1]{石}+\scalebox{.6}[1]{皮}=% +\scalebox{.45}[1]{石}\hskip-.1zw\scalebox{.6}[1]{皮}=破, + +{\color{red}赤}, {\color{green}緑}, {\color{blue}青}, +\rotatebox[origin=c]{30}{\color{magenta}マゼンタ}, +\textcolor[rgb]{0.8,0.4,0.2}{茶色}, \textcolor[gray]{0.6}{灰色}, +\colorbox{black}{\color{white}白抜き}, +\rotatebox{15}{\fcolorbox{red}{yellow}{など}} +\end{verbatim} + +\subsection{PostScript以外の各種画像ファイルの取り込み} +dviout for Windows Ver.3.08 以降では, EPSFのほかWindows標準のBMPや +Windows (Enhanced) Metafile (EMF/WMF), そのほかPBMの画像, さらに +DLL\footnote{Susieという画像表示プログラムのplug-inと呼ばれるDLLに +対応しています. JPEG/TIFF/PNG/PCD/PPM などをはじめとして多くのものが提供 +されています.}を用いた各種の画像ファイルの取り込みが可能です. + +\LaTeXe のgraphics packageからPostScript以外の画像ファイルを取り込むため +には dvips.def でなくて付属の dviout.def を用い, 縦横の画像のサイズ +を \verb+\includegraphics+ で指定してください. +このときは取り込み画像ファイルの拡張子を省略せずに,例えば次のように書き +ます. + +\begin{verbatim} +\documentclass{jarticle} +\usepackage[dviout]{graphicx} + : +\begin{figure} +\begin{center} +\includegraphics[width=6cm,height=4cm]{picture.bmp} +\caption{My picture} +\label{fig:picture} +\end{center} +\end{figure} +\end{verbatim} + +これにより(必要なら)スケール変換され, 指定したサイズで取り込まれますが, +クリッピングや, \verb+\resizebox+ によるサイズ変換はできません. + +なお, 付属の bmc.exe の \verb+-b+オプションで, たとえばコマンドラインから +\begin{verbatim} + bmc -b foo.jpg +\end{verbatim} +のようにして, 拡張子 \verb+.bb+ をもつファイル(この例では, +\verb+foo.bb+)を作成しておけば BoundingBox がそこに書かれているので, + 縦あるいは横のサイズの指定を省略できます. 縦横の一方のみ指定した場合は, +アスペクト比を保ったサイズ変換となります. + +縦横両方のサイズを省略するときは, \verb+-b=300+ のように出力ファイルの解 +像度を dpi の値で bmc.exe のオプションの \verb+-b=+ の後に指定し +て BoundingBox が書かれたファイルを作成しておくと, デフォルトではもと +の画像データがそのまま取り込まれます. + +上記の{\tt picture.bmp} の部分は, {\tt images/picture.bmp.gz} なども許され +ます. + +\begin{itemize} +\item +dviout for Windows 以外では, このような各種画像の取り込みはサポートさ +れていないと思われますので, dvipsなどのほかのDevice Driverを使う場合の +互換性にご注意ください. このPostScript以外の画像取り込みを除いて +dviout.def と dvips.def とは互換性がありますので, dvipsに対して dvips.def +の代わりに dviout.def を用いても支障ありません. + +\item +DVIファイルとそれが取り込む画像をまとめてUNIXのtar形式ファイルにしたものや, +付属の dviadd を使って一つのDVIファイルにしたもの(付属の sample.dvi がこの +例), あるいはそれらを gzip で圧縮したもの(よって, ファイル名の末尾は +{\tt .tar.gz} または {\tt .dvi.gz} となる)をdviout for Windowsは直接読むこ +とができます. +\end{itemize} + +\section{著作権に関する注意事項} +epsbox.styと組み合せて使用されるjdvi2kpsと整 +合性を保つために, jdvi2kpsのepsbox.c内の一部の関数をそのまま引用してい +ます. これについては, 松下電器産業(株)情報 +システム研究所に著作権がありますので, その取扱いについてはjdvi2kpsの +copyrightファイルに記された内容に従ってください. + + +\end{document} diff --git a/Master/tlpkg/dviout/GRAPHIC/PS/gssub.exe b/Master/tlpkg/dviout/GRAPHIC/PS/gssub.exe Binary files differnew file mode 100755 index 00000000000..f4cd83177eb --- /dev/null +++ b/Master/tlpkg/dviout/GRAPHIC/PS/gssub.exe diff --git a/Master/tlpkg/dviout/GRAPHIC/PS/pssample.tex b/Master/tlpkg/dviout/GRAPHIC/PS/pssample.tex new file mode 100644 index 00000000000..9484279683e --- /dev/null +++ b/Master/tlpkg/dviout/GRAPHIC/PS/pssample.tex @@ -0,0 +1,69 @@ +% Translate this file into a dvi file by LaTeX and execute dviout/prt by +% putting the following files in the directory where the dvi file exists. +% +% GhostScript should be in the search path. +% +% sample0.ps, sample1.ps, sample2.ps, sample3.ps, starbrst.ps +% myhyper.sty (myhyper.sty is contained in the package of dviout) +% tiger.ps, golfer.ps (tiger.ps, golfer.ps are contained in the package of +% GostScript) +% + +\documentstyle[a4, myhyper]{article} +\begin{document} + +\centerline{\Huge A samples : dviout/dviprt--PostScript figure} +\vskip .5cm + + +\hskip-.3cm\special{epsfile=sample0.ps vsize=4.2cm} +\vskip3cm + + +\vskip 1.5cm +\hskip 2cm +\special{epsfile=sample1.ps vsize=10cm} + + +\vskip 10cm + +\hskip.3cm\special{epsfile=sample2.ps vsize=5cm} +\vskip 5cm + +{\Large Click \href{file:..\..\sample\sample.dvi#graphic"}{here} to +jump to another file} +\vskip 5cm + +\pagebreak + +\centerline{\Huge ``% +\special{color push rgb 0 0 1}% +Golfer% +\special{color pop}% +" in Ghostscript +} + +\hskip 3.5cm +\special{epsfile=golfer.ps vsize=10cm} +\vskip 11cm + +\centerline{\Huge ``% +\special{color push rgb 0.8 0.4 0.2}% +Tiger% +\special{color pop}% +" lives in Ghostscript +} +\vskip 1.5cm + +\hskip3.6cm +\special{epsfile=tiger.ps hscale=0.4 vscale=0.36} +\pagebreak + + +\vskip 1cm +\hskip 1.5cm +\special{epsfile=sample3.ps vsize=17cm} + +\vskip 19cm +\centerline{\Large Modified by SHIMA from samples by Asayama, Mar.\ 1993} +\end{document} diff --git a/Master/tlpkg/dviout/GRAPHIC/PS/sample0.ps b/Master/tlpkg/dviout/GRAPHIC/PS/sample0.ps new file mode 100644 index 00000000000..78c5e74feb9 --- /dev/null +++ b/Master/tlpkg/dviout/GRAPHIC/PS/sample0.ps @@ -0,0 +1,9 @@ +%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 50 8 670 195
+
+(starbrst.ps) run
+gsave
+/Courier-Bold findfont [ 80 0 0 200 0 0 ] makefont setfont
+50 50 moveto (dviout/dviprt) starburstshow
+grestore
+showpage
diff --git a/Master/tlpkg/dviout/GRAPHIC/PS/sample1.ps b/Master/tlpkg/dviout/GRAPHIC/PS/sample1.ps new file mode 100644 index 00000000000..f928f547328 --- /dev/null +++ b/Master/tlpkg/dviout/GRAPHIC/PS/sample1.ps @@ -0,0 +1,52 @@ +%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 2 19 478 492
+
+/GNU {
+1 dict begin
+
+/R 1.0 def
+/NotUnix (GNU's not UNIX) def
+gsave
+1.2 1.2 rmoveto
+gsave
+/Courier findfont [ 0.7 0 0 0.8 0 0 ] makefont setfont
+(UNIX) dup stringwidth pop 2 div neg -0.25 rmoveto show
+grestore
+
+gsave
+0.2 setlinewidth
+1 0 0 setrgbcolor
+gsave
+currentpoint newpath R 0 370 arc stroke
+grestore
+gsave
+135 cos R mul 135 sin R mul rmoveto
+R 2 sqrt mul dup neg rlineto stroke
+grestore
+grestore
+
+gsave
+0 1 NotUnix length 1 sub {
+ gsave
+ dup 10 mul 65 sub /Rol exch def
+ /Courier findfont
+ [ 1 0 0 1 -0.3 0 ] makefont
+ [ Rol cos Rol sin neg Rol sin Rol cos 0 0 ] makefont
+ 0.25 scalefont setfont
+ Rol neg 90 add dup cos 1.15 mul exch sin 1.15 mul rmoveto
+ NotUnix exch 1 getinterval show
+ grestore
+} for
+grestore
+
+grestore
+end
+} def
+
+0 0 moveto
+gsave
+200 200 scale
+GNU
+grestore
+
+showpage
diff --git a/Master/tlpkg/dviout/GRAPHIC/PS/sample2.ps b/Master/tlpkg/dviout/GRAPHIC/PS/sample2.ps new file mode 100644 index 00000000000..de7341d17a9 --- /dev/null +++ b/Master/tlpkg/dviout/GRAPHIC/PS/sample2.ps @@ -0,0 +1,9 @@ +%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 50 8 526 180
+
+(starbrst.ps) run
+gsave
+/Courier-Bold findfont [ 80 0 0 200 0 0 ] makefont setfont
+50 50 moveto (PostScript) starburstshow
+grestore
+showpage
diff --git a/Master/tlpkg/dviout/GRAPHIC/PS/sample3.ps b/Master/tlpkg/dviout/GRAPHIC/PS/sample3.ps new file mode 100644 index 00000000000..7ea6e0bfb44 --- /dev/null +++ b/Master/tlpkg/dviout/GRAPHIC/PS/sample3.ps @@ -0,0 +1,22 @@ +%!PS-Adobe-2.0 EPSF-1.2 +%%BoundingBox: 20 2 520 760
+
+gsave
+newpath
+/Courier-Bold findfont [ 320 0 0 800 0 0 ] makefont setfont
+matrix currentmatrix
+500 0 translate 90 rotate
+0 0 moveto (EPSF) true charpath clip
+setmatrix
+1 dict begin
+/showpage {} def
+gsave
+newpath
+1.2 1.2 scale
+-90 -50 translate
+(golfer.ps) runlibfile
+grestore
+end
+5 setlinewidth stroke
+grestore
+showpage
diff --git a/Master/tlpkg/dviout/GRAPHIC/PS/starbrst.ps b/Master/tlpkg/dviout/GRAPHIC/PS/starbrst.ps new file mode 100644 index 00000000000..a2665e94cdd --- /dev/null +++ b/Master/tlpkg/dviout/GRAPHIC/PS/starbrst.ps @@ -0,0 +1,30 @@ +userdict begin
+% Usage : -- starburstfill --
+% Fill current path with "Star Burst"
+/starburstfill {
+10 dict begin
+ pathbbox /uy exch def /ux exch def /ly exch def /lx exch def
+ ux lx sub /xs exch def xs dup mul
+ uy ly sub /ys exch def ys dup mul
+ add sqrt /R exch def
+ clip
+ newpath
+ lx xs 2 div add /xx exch def
+ ly ys 2 div add /yy exch def
+ 0 2 359.9 {
+ xx yy moveto
+ dup cos R mul exch sin R mul rlineto
+ } for
+ stroke
+end
+} bind def
+
+% Usage : <strings> starburstshow --
+/starburstshow {
+2 dict begin
+ dup stringwidth /yw exch def /xw exch def gsave
+ currentpoint newpath moveto
+ false charpath starburstfill grestore xw yw rmoveto
+end
+} bind def
+end
diff --git a/Master/tlpkg/dviout/GRAPHIC/TPIC/linetest.tex b/Master/tlpkg/dviout/GRAPHIC/TPIC/linetest.tex new file mode 100644 index 00000000000..6ca24caf4be --- /dev/null +++ b/Master/tlpkg/dviout/GRAPHIC/TPIC/linetest.tex @@ -0,0 +1,280 @@ +\documentstyle{jarticle} +\begin{document} +\unitlength 0.001in + +\begin{center} + +\begin{picture}(2200,3000)(0,-3000) +\special{pn 50}% +\special{pa 1400 1100}% +\special{pa 2100 1100}% +\special{fp}% +\special{pa 1395 1152}% +\special{pa 2084 1273}% +\special{fp}% +\special{pa 1381 1202}% +\special{pa 2039 1442}% +\special{fp}% +\special{pa 1359 1249}% +\special{pa 1966 1599}% +\special{fp}% +\special{pa 1329 1292}% +\special{pa 1866 1742}% +\special{fp}% +\special{pa 1292 1329}% +\special{pa 1742 1866}% +\special{fp}% +\special{pa 1250 1359}% +\special{pa 1600 1966}% +\special{fp}% +\special{pa 1202 1381}% +\special{pa 1442 2039}% +\special{fp}% +\special{pa 1152 1395}% +\special{pa 1273 2084}% +\special{fp}% +\special{pa 1100 1399}% +\special{pa 1100 2099}% +\special{fp}% +\special{pa 1047 1395}% +\special{pa 926 2084}% +\special{fp}% +\special{pa 997 1381}% +\special{pa 757 2039}% +\special{fp}% +\special{pa 950 1359}% +\special{pa 600 1966}% +\special{fp}% +\special{pa 907 1329}% +\special{pa 457 1866}% +\special{fp}% +\special{pa 870 1292}% +\special{pa 333 1742}% +\special{fp}% +\special{pa 840 1250}% +\special{pa 233 1600}% +\special{fp}% +\special{pa 818 1202}% +\special{pa 160 1442}% +\special{fp}% +\special{pa 804 1152}% +\special{pa 115 1273}% +\special{fp}% +\special{pa 800 1100}% +\special{pa 100 1100}% +\special{fp}% +\special{pa 804 1047}% +\special{pa 115 926}% +\special{fp}% +\special{pa 818 997}% +\special{pa 160 757}% +\special{fp}% +\special{pa 840 950}% +\special{pa 233 600}% +\special{fp}% +\special{pa 870 907}% +\special{pa 333 457}% +\special{fp}% +\special{pa 907 870}% +\special{pa 457 333}% +\special{fp}% +\special{pa 949 840}% +\special{pa 599 233}% +\special{fp}% +\special{pa 997 818}% +\special{pa 757 160}% +\special{fp}% +\special{pa 1047 804}% +\special{pa 926 115}% +\special{fp}% +\special{pa 1099 800}% +\special{pa 1099 100}% +\special{fp}% +\special{pa 1152 804}% +\special{pa 1273 115}% +\special{fp}% +\special{pa 1202 818}% +\special{pa 1442 160}% +\special{fp}% +\special{pa 1249 840}% +\special{pa 1599 233}% +\special{fp}% +\special{pa 1292 870}% +\special{pa 1742 333}% +\special{fp}% +\special{pa 1329 907}% +\special{pa 1866 457}% +\special{fp}% +\special{pa 1359 949}% +\special{pa 1966 599}% +\special{fp}% +\special{pa 1381 997}% +\special{pa 2039 757}% +\special{fp}% +\special{pa 1395 1047}% +\special{pa 2084 926}% +\special{fp}% +\put(1100, -2800){\makebox(0,0){実線}}% +\end{picture}% +\begin{picture}(2200,3000)(0,-3000) +\special{pn 50}% +\special{pa 1400 1100}% +\special{pa 2100 1100}% +\special{da 0.07}% +\special{pa 1395 1152}% +\special{pa 2084 1273}% +\special{da 0.07}% +\special{pa 1381 1202}% +\special{pa 2039 1442}% +\special{da 0.07}% +\special{pa 1359 1249}% +\special{pa 1966 1599}% +\special{da 0.07}% +\special{pa 1329 1292}% +\special{pa 1866 1742}% +\special{da 0.07}% +\special{pa 1292 1329}% +\special{pa 1742 1866}% +\special{da 0.07}% +\special{pa 1250 1359}% +\special{pa 1600 1966}% +\special{da 0.07}% +\special{pa 1202 1381}% +\special{pa 1442 2039}% +\special{da 0.07}% +\special{pa 1152 1395}% +\special{pa 1273 2084}% +\special{da 0.07}% +\special{pa 1100 1399}% +\special{pa 1100 2099}% +\special{da 0.07}% +\special{pa 1047 1395}% +\special{pa 926 2084}% +\special{da 0.07}% +\special{pa 997 1381}% +\special{pa 757 2039}% +\special{da 0.07}% +\special{pa 950 1359}% +\special{pa 600 1966}% +\special{da 0.07}% +\special{pa 907 1329}% +\special{pa 457 1866}% +\special{da 0.07}% +\special{pa 870 1292}% +\special{pa 333 1742}% +\special{da 0.07}% +\special{pa 840 1250}% +\special{pa 233 1600}% +\special{da 0.07}% +\special{pa 818 1202}% +\special{pa 160 1442}% +\special{da 0.07}% +\special{pa 804 1152}% +\special{pa 115 1273}% +\special{da 0.07}% +\special{pa 800 1100}% +\special{pa 100 1100}% +\special{da 0.07}% +\special{pa 804 1047}% +\special{pa 115 926}% +\special{da 0.07}% +\special{pa 818 997}% +\special{pa 160 757}% +\special{da 0.07}% +\special{pa 840 950}% +\special{pa 233 600}% +\special{da 0.07}% +\special{pa 870 907}% +\special{pa 333 457}% +\special{da 0.07}% +\special{pa 907 870}% +\special{pa 457 333}% +\special{da 0.07}% +\special{pa 949 840}% +\special{pa 599 233}% +\special{da 0.07}% +\special{pa 997 818}% +\special{pa 757 160}% +\special{da 0.07}% +\special{pa 1047 804}% +\special{pa 926 115}% +\special{da 0.07}% +\special{pa 1099 800}% +\special{pa 1099 100}% +\special{da 0.07}% +\special{pa 1152 804}% +\special{pa 1273 115}% +\special{da 0.07}% +\special{pa 1202 818}% +\special{pa 1442 160}% +\special{da 0.07}% +\special{pa 1249 840}% +\special{pa 1599 233}% +\special{da 0.07}% +\special{pa 1292 870}% +\special{pa 1742 333}% +\special{da 0.07}% +\special{pa 1329 907}% +\special{pa 1866 457}% +\special{da 0.07}% +\special{pa 1359 949}% +\special{pa 1966 599}% +\special{da 0.07}% +\special{pa 1381 997}% +\special{pa 2039 757}% +\special{da 0.07}% +\special{pa 1395 1047}% +\special{pa 2084 926}% +\special{da 0.07}% +\put(1100, -2800){\makebox(0,0){破線}}% +\end{picture} + +\begin{picture}(2200,2200)(0,-2000) +\special{pa 200 500}% +\special{pa 600 300}% +\special{pa 1000 500}% +\special{pa 1400 300}% +\special{pa 1800 500}% +\special{pa 200 1000}% +\special{pa 1500 1500}% +\special{pa 1600 500}% +\special{pa 2000 1000}% +\special{pa 700 1800}% +\special{pa 1000 1000}% +\special{fp}% +\put(1100, -2000){\makebox(0,0){実線(連続)}}% +\end{picture}% +\begin{picture}(2200,2200)(0,-2000) +\special{pa 200 500}% +\special{pa 600 300}% +\special{pa 1000 500}% +\special{pa 1400 300}% +\special{pa 1800 500}% +\special{pa 200 1000}% +\special{pa 1500 1500}% +\special{pa 1600 500}% +\special{pa 2000 1000}% +\special{pa 700 1800}% +\special{pa 1000 1000}% +\special{da 0.07}% +\put(1100, -2000){\makebox(0,0){破線(連続)}}% +\end{picture} + +\begin{picture}(2200,2200)(0,-2000) +\special{pa 200 500}% +\special{pa 600 300}% +\special{pa 1000 500}% +\special{pa 1400 300}% +\special{pa 1800 500}% +\special{pa 200 1000}% +\special{pa 1500 1500}% +\special{pa 1600 500}% +\special{pa 2000 1000}% +\special{pa 700 1800}% +\special{pa 1000 1000}% +\special{dt 0.14}% +\put(1100, -2000){\makebox(0,0){点線(連続)}}% +\end{picture} +\end{center} + +\end{document} diff --git a/Master/tlpkg/dviout/GRAPHIC/TPIC/rtexampl.tex b/Master/tlpkg/dviout/GRAPHIC/TPIC/rtexampl.tex new file mode 100644 index 00000000000..aefcd20e7b7 --- /dev/null +++ b/Master/tlpkg/dviout/GRAPHIC/TPIC/rtexampl.tex @@ -0,0 +1,125 @@ +% 非公式 tpic 拡張(通称まわる tpic)サンプル + +\documentstyle{jarticle} +\begin{document} + +Rotation Examples ... + +\begin{center} +\unitlength 0.001in + +\begin{picture}(2000,2500) + \put(500,1250){\special{rt 0 0 4.71239}\makebox(0,0){Leftside}% + \special{rt 0 0 0}} + \put(1000,1250){\special{rt 0 0 3.14159}\makebox(0,0){Upsidedown}% + \special{rt 0 0 0}} + \put(1500,1250){\special{rt 0 0 1.57080}\makebox(0,0){Rightside}% + \special{rt 0 0 0}} + \end{picture} + \begin{picture}(2000,500) + \put(1000,1250){\special{rt 0 0 0.78540}{\Large 疑問点 this is it!}% + \special{rt 0 0 0}} + \put(1000,1250){\special{rt 0 0 3.9270}{\Large is this it? 疑問点}% + \special{rt 0 0 0}} +\end{picture} + +\begin{picture}(2000,1700)(0,-1600) + \put(1000,-850){\special{rt 0 0 4.71239}}% + \special{pn 8}% + \special{sh}% + \special{ia 350 200 400 250 0 6.28319}% + \special{sh 0}% + \special{ar 400 250 400 250 0 6.28319}% + \put(400,-250){\makebox(0,0){document}}% + \special{sh 0}% + \special{ia 750 475 200 200 0 6.28319}% + \special{sh 0.1}% + \special{ar 750 475 200 200 0 6.28319}% + \put(750,-450){\makebox(0,0){tpic}}% + \special{pa 800 250}% + \special{pa 1200 250}% + \special{fp}% + \special{sh 1}% + \special{pa 1200 250}% + \special{pa 1100 275}% + \special{pa 1100 225}% + \special{pa 1200 250}% + \special{fp}% + \special{sh}% + \special{pa 1150 450}% + \special{pa 1950 450}% + \special{pa 1950 -50}% + \special{pa 1750 -50}% + \special{pa 1550 100}% + \special{pa 1350 -50}% + \special{pa 1150 -50}% + \special{pa 1150 450}% + \special{ip}% + \special{sh 0}% + \special{pa 1200 500}% + \special{pa 2000 500}% + \special{pa 2000 0}% + \special{pa 1800 0}% + \special{pa 1600 150}% + \special{pa 1400 0}% + \special{pa 1200 0}% + \special{pa 1200 500}% + \special{fp}% + \put(1600,-250){\makebox(0,0){\TeX}}% + \special{pa 1600 500}% + \special{pa 1600 1050}% + \special{fp}% + \special{sh 1}% + \special{pa 1600 1050}% + \special{pa 1625 950}% + \special{pa 1575 950}% + \special{pa 1600 1050}% + \special{fp}% + \special{sh}% + \special{pa 1150 1450}% + \special{pa 1550 1400}% + \special{pa 1950 1450}% + \special{pa 1950 1200}% + \special{pa 1950 950}% + \special{pa 1550 1000}% + \special{pa 1150 950}% + \special{pa 1200 1200}% + \special{pa 1150 1450}% + \special{sp -0.05}% + \special{sh 0}% + \special{pa 1200 1500}% + \special{pa 1600 1450}% + \special{pa 2000 1500}% + \special{pa 1950 1250}% + \special{pa 2000 1000}% + \special{pa 1600 1050}% + \special{pa 1200 1000}% + \special{pa 1250 1250}% + \special{pa 1200 1500}% + \special{sp}% + \put(1600,-1250){\makebox(0,0){dvi driver}}% + \special{sh 0}% + \special{ia 1950 1475 200 200 0 6.28319}% + \special{sh 0.2}% + \special{ar 1950 1475 200 200 0 6.28319}% + \put(1950,-1450){\makebox(0,0){tpic}}% + \special{pa 1250 1250}% + \special{pa 800 1250}% + \special{fp}% + \special{sh 1}% + \special{pa 800 1250}% + \special{pa 900 1275}% + \special{pa 900 1225}% + \special{pa 800 1250}% + \special{fp}% + \special{sh}% + \special{ia 350 1200 400 250 0 6.28319}% + \special{sh 0}% + \special{ar 400 1250 400 250 0 6.28319}% + \put(400,-1250){\makebox(0,0){printer}}% + \put(1000,850){\special{rt 0 0 0}}% +\end{picture} + +\end{center} + +\end{document} diff --git a/Master/tlpkg/dviout/GRAPHIC/TPIC/tpic_ext.doc b/Master/tlpkg/dviout/GRAPHIC/TPIC/tpic_ext.doc new file mode 100644 index 00000000000..e30c61dd667 --- /dev/null +++ b/Master/tlpkg/dviout/GRAPHIC/TPIC/tpic_ext.doc @@ -0,0 +1,64 @@ + 【 tpic 修正と拡張・差分 】
+
+ by Oh-Yeah? (NIFTY GGA03472) 22 Nov. 1992
+
+【修正点】
+
+1. スプライン曲線を他の dvi ドライバに合わせて、各点間の中点を通る Bezier 曲
+ 線に変更。
+2. 破線・点線がパスの各点上に常にのるようにした。
+3. 小さい円も表示するようにした。
+4. 太い線分が少し長くなるため、細い線分を突き抜ける不具合を修正。
+5. 三角形領域の塗り潰しを二つ並べると隙間ができる不具合を修正。
+
+ ご指摘いただいた中林さん、HAC さん、岩本さん、もろさんに感謝します。
+
+【拡張点】
+
+1. gnuplot などで関数グラフをかくのに便利なように、da コマンドを拡張し、複数
+ の引き数を取れるようにした。 引き数は交互に実線部分、空白部分の長さをイン
+ チ単位の実数で指定する。 この場合、破線はこの指定パターンのくり返しで描か
+ れ、パスの各点を「連続に」通過する。 すなわち、各点上に実線部分がのるとは
+ 限らない。たとえば
+
+ \special{da 0.1} % o___ ___ ___o___ ___
+ \special{da 0.1 0.1}% o___ ___ ___ o ___ ___
+ \special{da 0.1 0.01 0.01 0.01} % 一点鎖線
+ \special{da 0.1 0.01 0.01 0.01 0.01 0.01}% 二点鎖線
+
+2. 関数グラフの Y 軸キャプションをかくのに便利なように、新たに rt コマンドを
+ 設けた。 rt x y f で、 以後の全てのテキスト及びグラフィックス出力を(x, y)
+ の回りに角度 f だけ回転させる。 他の tpic コマンドの場合と同様、x, y はミ
+ リインチ単位の整数、f は時計回りが正のラジアン単位。回転は相対的ではなく、
+ 常にビットマップの絶対座標に対して行われ、f = 0 でリセットされる。 たとえ
+ ば
+
+ \begin{picture}(500,500)
+ \put(100,250){\special{rt 0 0 4.71239}\makebox(0,0){Leftside}%
+ \special{rt 0 0 0}}
+ \put(250,250){\special{rt 0 0 3.14159}\makebox(0,0){Upsidedown}%
+ \special{rt 0 0 0}}
+ \put(400,250){\special{rt 0 0 1.57080}\makebox(0,0){Rightside}%
+ \special{rt 0 0 0}}
+ \end{picture}
+
+ この二つの拡張は非公式であり、ポータビリティがないので使用にはご注意くださ
+い。個人で楽しむぶんには問題ありません。(^^); 私の将来プランとしては、
+
+A. tpic ユーザーの評判はどうか?
+
+ * いらねぇんだよ。 ---> exit
+ * いいじゃん。 ---> B
+
+B. Tim Morgan 氏に打診し、tpic 次バージョンの仕様として採用を提案。
+
+ * I like it. ---> tpic 公式拡張
+ * I don't like it. ---> C
+
+C. Postscript のサブセットとして dviout/prt でサポートすることを検討。たとえ
+ ば、1. は setdash とほぼ同様であり、2. は currentpoint, translate, rotate
+ などの組み合わせで表せる。 (実際、 T. Rokicki 氏の dvips に付属する
+ rotate.sty は、 Postscript コードを tpic rt コマンドに置きかえるだけで こ
+ の dviout/prt でも簡単に使えるようになります。)
+
+などを考えています。ご意見をお待ちしてますっ。
diff --git a/Master/tlpkg/dviout/GRAPHIC/TPIC/tpicdoc.tex b/Master/tlpkg/dviout/GRAPHIC/TPIC/tpicdoc.tex new file mode 100644 index 00000000000..d948bf37627 --- /dev/null +++ b/Master/tlpkg/dviout/GRAPHIC/TPIC/tpicdoc.tex @@ -0,0 +1,378 @@ +% この文書は tpic specials を含みます。tpic 用 dviout/prt で御覧ください。 + +\documentstyle[11pt,a4j,jtwocolumn]{jarticle} + +\title{Tpic について} +\author{Oh-Yeah? (Nifty-Serve GGA03472)} +\date{June 7, 1992} + +\begin{document} +\maketitle +\section{見果てぬ夢、\TeX ~Graphics} +ご存じのように、\TeX は本来文章を美しく組版するためのプログラムであり、 描画 +の機能は極めて限定されています。しかし、その素晴らしい出力を目にして、図や絵 +を取り込めたらいいなぁと思うひとも多いらしく、\LaTeX の picture 環境をはじめ、 +PiCTeX や epic など、いくつかの工夫がなされてきました。 これらのアド・オンソ +フトは 100 \% の \TeX 互換性を保っており、作成した文書は標準の \TeX システム +及び dvi ドライバでそのまま出力できます。 その反面、互換性ゆえの制限もかなり +厳しく、描ける線の傾きが限られていたり、小さな文字を並べて図をかくために大量 +のディスク容量とメモリを必要としたりします。特にパソコン上の \TeX でこみいっ +た図を書こうとすると、Big\TeX でも、 遠いところへ旅立って行き二度と帰ってきま +せん。\verb+v(^^;)v+ + +一方、(私はよく知りませんが) \TeX 文書に Postscript の図を取り込む工夫もな +されつつあるようです。しかし、このアプローチには Postscript プリンタが必要で +す。 + +tpic も、\TeX にグラフィックス機能を付け加えるために考案されたもののひとつで +す。ところがこの場合、\TeX の special コマンドを利用するので、それをサポート +する dvi ドライバが必要となります。 \TeX は標準のものでいいのですが、\TeX 自 +身は tpic specials コマンドをそのまま dvi ファイルに書き込むだけです。早い話 +が、「グラフィックスは dvi ドライバに任せとけ」というわけです。 互換性はある +程度犠牲になりますが、 その代わり \TeX に負担がかからないので、 メモリと dvi +ファイルはずっと小さくてすみ、処理速度も(たぶん)速くなります。実線・破線・ +点線・ spline 曲線・円・楕円・弧が自由に描けます。また、シェーディング(塗り +つぶし)や上書きの機能もあります。dvi ドライバが tpic をサポートしていれば、 +プリンタは当然普通のものでよいわけです。 + +\begin{center} +\unitlength 0.001in +\begin{picture}(2000,1700)(0,-1600) + \special{pn 8}% + \special{sh}% + \special{ia 350 200 400 250 0 6.28319}% + \special{sh 0}% + \special{ar 400 250 400 250 0 6.28319}% + \put(400,-250){\makebox(0,0){document}}% + \special{sh 0}% + \special{ia 750 475 200 200 0 6.28319}% + \special{sh 0.1}% + \special{ar 750 475 200 200 0 6.28319}% + \put(750,-450){\makebox(0,0){tpic}}% + \special{pa 800 250}% + \special{pa 1200 250}% + \special{fp}% + \special{sh 1}% + \special{pa 1200 250}% + \special{pa 1100 275}% + \special{pa 1100 225}% + \special{pa 1200 250}% + \special{fp}% + \special{sh}% + \special{pa 1150 450}% + \special{pa 1950 450}% + \special{pa 1950 -50}% + \special{pa 1750 -50}% + \special{pa 1550 100}% + \special{pa 1350 -50}% + \special{pa 1150 -50}% + \special{pa 1150 450}% + \special{ip}% + \special{sh 0}% + \special{pa 1200 500}% + \special{pa 2000 500}% + \special{pa 2000 0}% + \special{pa 1800 0}% + \special{pa 1600 150}% + \special{pa 1400 0}% + \special{pa 1200 0}% + \special{pa 1200 500}% + \special{fp}% + \put(1600,-250){\makebox(0,0){\TeX}}% + \special{pa 1600 500}% + \special{pa 1600 1050}% + \special{fp}% + \special{sh 1}% + \special{pa 1600 1050}% + \special{pa 1625 950}% + \special{pa 1575 950}% + \special{pa 1600 1050}% + \special{fp}% + \special{sh}% + \special{pa 1150 1450}% + \special{pa 1550 1400}% + \special{pa 1950 1450}% + \special{pa 1950 1200}% + \special{pa 1950 950}% + \special{pa 1550 1000}% + \special{pa 1150 950}% + \special{pa 1200 1200}% + \special{pa 1150 1450}% + \special{sp -0.05}% + \special{sh 0}% + \special{pa 1200 1500}% + \special{pa 1600 1450}% + \special{pa 2000 1500}% + \special{pa 1950 1250}% + \special{pa 2000 1000}% + \special{pa 1600 1050}% + \special{pa 1200 1000}% + \special{pa 1250 1250}% + \special{pa 1200 1500}% + \special{sp}% + \put(1600,-1250){\makebox(0,0){dvi driver}}% + \special{sh 0}% + \special{ia 1950 1475 200 200 0 6.28319}% + \special{sh 0.2}% + \special{ar 1950 1475 200 200 0 6.28319}% + \put(1950,-1450){\makebox(0,0){tpic}}% + \special{pa 1250 1250}% + \special{pa 800 1250}% + \special{fp}% + \special{sh 1}% + \special{pa 800 1250}% + \special{pa 900 1275}% + \special{pa 900 1225}% + \special{pa 800 1250}% + \special{fp}% + \special{sh}% + \special{ia 350 1200 400 250 0 6.28319}% + \special{sh 0}% + \special{ar 400 1250 400 250 0 6.28319}% + \put(400,-1250){\makebox(0,0){printer}}% +\end{picture} +\end{center} + +むろん互換性とポータビリティは \TeX の重要な特徴であり、 specials の扱いには +慎重さが必要です。とは言うものの、ことグラフィックスに関しては \TeX 自身では +なく dvi ドライバが引き受けるのは合理的であるように思えます。 また、Knuth 氏 +も The \TeX ~Book の中で、 + +\begin{quotation} +\special{sh 0.1}% +\special{pa 0 0}% +\special{pa 3000 0}% +\special{pa 3000 1500}% +\special{pa 0 1500}% +\special{pa 0 0}% +\special{ip}% +しかし、さまざまなグループの人たちが注意深く実験を重ね、その結果、グラフィッ +ク命令の何らかの標準が生まれるものと期待している。そうなれば、\verb+\special ++ 拡張命令の使い方も統一される可能性も生じる。(鷺谷好輝訳)% +\end{quotation} + +と書いています。この点、現在 tpic は eepic, gnuplot をはじめとする多くのプロ +グラムや dvi ドライバによってサポートされており、 事実上の標準と呼べる存在に +なっています。 + +そこで今回のバージョンでは、sempa 氏のご厚意により、 dviout/prt に tpic サポ +ートを付け加えることにしました。通常 (non-tpic) 文書の処理速度も旧バージョン +の dviout/prt に比べ数 \% 遅い程度と思われますので、 tpic を使うことの少ない +ユーザーにもデメリットにはならないでしょう。ただし、プログラムサイズはかなり +大きくなっています。 + +ちなみに、一例として、 gnuplot を用いて同一内容のグラフを latex 形式と eepic +形式で出力しそのサイズを比較してみると: + +\begin{center} +\begin{tabular}{lcc} + & latex & eepic \\ +\hline +CP2FIG1.TEX & 11684 & 1513 \\ +CP2FIG2.TEX & 20586 & 1512 \\ +CP2FIG3.TEX & 11684 & 1513 \\ +CP2.DVI & 21052 & 8584 +\end{tabular} +\end{center} + +というわけで、かなりファイルサイズが小さくなり、 \TeX の負担も少なくなってい +ることが判ります。複雑なグラフを書く場合には特にメリットが大きいと思います。 + +\section{tpic とは何か} + +tpic は、 Brian Kernighan の Troff 用図形プリプロセッサ pic を元にして、 Tim +Morgan が作り上げた \TeX 用図形プリプロセッサ及びそれが出力する special コマ +ンドセットの名称です。最新バージョンは 2.2 です。tpic special コマンドセット +それ自体はごく簡単なグラフィック・プリミティブ命令ですが、インプリメントが比 +較的容易であるにもかかわらず応用性が広いので、 多くの dvi ドライバ (iptex, +xtex, texx, texsun, imagen1, dvips, dviis, quicspool) やグラフィックス・プロ +グラムがサポートするようになりました。 + +\subsection{tpic の使用法} + +普通の \TeX と tpic をサポートした dvi ドライバがあれば、ユーザー自身が tpic +special コマンドを文書内に挿入して図を書くことが可能です。(実際この文書もそ +うやって書いています。) ただし、tpic はテキスト処理と図形処理をほとんど独立 +に行いますので、テキストと図形を混在させるにはある程度試行錯誤が必要です。実 +用性から見ると、tpic specials はあくまでプリミティブであり、通常は他のグラフ +ィックス・プログラムが出力する中間言語と考えたほうがよいでしょう。既に多くの +プログラムが tpic specials 出力をサポートしていますので、 用途に応じて使い分 +けもできます。 + +\begin{description} +\item[tpic] +上述の \TeX 用図形プリプロセッサです。フローチャートやブロックダイアグラムな +ど、簡単な図形を書くのに大変便利に使えます。 ただし、AT\&T Bell Labs. が著作 +権を有する pic のコードを一部含んでおり、フリーウェアではありません。 +\item[gpic] +GNU プロジェクトがつくった pic 上位互換のプリプロセッサであり、tpic 出力が可 +能です。tpic の代わりに使えるフリーウェアです。 groff パッケージに含まれてい +ます。 +\item[eepic] +Conrad Kwok の作った \LaTeX 用のマクロです。\LaTeX の picture 環境とその拡張 +である epic マクロを更に拡張して、tpic specials を出力できるようにしたもので +す。 tpic をサポートする dvi ドライバがない場合にも、epic でエミュレートして +類似の図が書けるように工夫されています。 documentstyle のオプションに +\verb|[epic,eepic]| を指定して使います。 +\item[gnuplot] +Thomas Williams, Colin Kelley, David Kotz らの手になる、関数をプロットしてグ +ラフを書くプログラムです。\LaTeX ~picture 環境出力と、eepic 出力の両方をサポ +ートしています。 eepic マクロを用いる場合、``set terminal eepic'' と指定してグ +ラフを出力し、 それを文書にとり込む際 documentstyle のオプションに +\verb|[epic,eepic]| を指定して使います。 +\item[transfig] +Micah Beck による \LaTeX 用図形ファイル相互変換プログラムです。 \LaTeX +~picture, epic, eepic, PiCTeX など多くのグラフィックス言語をサポートしていま +す。 特に便利と思われるのは、 UNIX のウィンドウシステム用の図形エディタ Fig, +xfig が出力する Fig コードをこれらのコマンドに翻訳してくれることです。 将来 +Fig か xfig が DOS に移植されれば、\TeX グラフィックスの tpic 三題噺(ダイア +グラム・関数プロット・お絵かき)が出そろうことになります。\verb+W(^^)W+ + +\end{description} + +\subsection{tpic 2.2 コマンドセット (output language) 仕様} + +この仕様はグラフィックス・プログラムや dvi ドライバを書こうとしている人のた +めのガイドです。 tpic プリプロセッサの tpic 出力は、最初に newbox コマンドを +実行して graph を定義します。個々の図は graph に割りあてられた vtop におさま +っています。この箱の幅と高さは図のサイズのみで決まり、text は考慮されません。 +この箱の中に、一連の special コマンドと hbox コマンドが並びます。 + +個々のグラフィック要素の位置は、 \TeX が保持している「ページ上の現在位置」に +対する相対座標で指定します。個々の special は graph box の左上端に置かれ、こ +の点が graph の原点になります。X 軸は右が正、Y 軸は{\em 下が正方向}です。(Y +軸は picture 環境と逆向きなので注意が必要です。) 座標は整数で表し、単位はミ +リインチです。通常 graph は内部のグラフィック要素を包含した大きさを持つので、 +x, y は正の値をとります。 + +\begin{center} +\unitlength 0.001in +\begin{picture}(600,600)(0,-550) + \special{pn 8}% + \special{pa 0 0}% + \special{pa 500 0}% + \special{fp}% + \special{sh 1}% + \special{pa 500 0}% + \special{pa 400 25}% + \special{pa 400 -23}% + \special{pa 500 0}% + \special{fp}% + \special{pa 0 0}% + \special{pa 0 500}% + \special{fp}% + \special{sh 1}% + \special{pa 0 500}% + \special{pa -23 400}% + \special{pa 25 400}% + \special{pa 0 500}% + \special{fp}% + \put(0,0){\makebox(0,0)[rb]{0,0}}% + \put(520,0){\makebox(0,0)[l]{$+x$}}% + \put(0,-520){\makebox(0,0)[t]{$+y$}}% +\end{picture} +\end{center} + +角度は +X 軸から +Y 軸への向きを正として、ラジアン単位 (0 - $2\pi$) で記述し +ます。 これは出力ページ上での「時計回り」に相当します。 完全な円と楕円は、 +$\hbox{\it start angle}=0$ と $\hbox{\it end angle} \ge 2\pi$ として指定しま +す。 + +dvi ドライバが理解すべき special コマンドは以下のとおりです。 引数は一つ以上 +の空白で区切られ、特に断らない限り整数です。全ての図形処理(塗りつぶし以外) +はテキスト処理と独立に行い、重ね書きします。special の後に現れるテキストは図 +形の上に重ね書きされます。special の前後で \TeX の保持する現在位置は不変です。 + +\begin{description} +\item[pn $s$] +線幅を $s$ ミリインチに設定します。 +\item[pa $x$ $y$] +点 $(x, y)$ を path に付け加えます。path はドライバが記憶する一連の点の集合 +(経路)です。$x$ と $y$ の単位はミリインチです。 +\item[fp] +それまでに定義された path を、現在の線幅で実際に描きます(フラッシュ)。path +内の点の数はゼロにリセットされます。 シェーディングが設定されており、 かつ +path が閉じていれば、path 内部を塗りつぶします。 +\item[ip] +これは fp と同じですが、path を描きません。 シェーディングは、条件が満たされ +れば行われます。 +\item[da $f$] +これは fp と同じですが、path は破線で描かれます。 $f$ は実数で、ダッシュ当た +りの長さをインチ単位で指定します。 +\item[dt $f$] +これは fp と同じですが、path は点線で描かれます。 $f$ は実数で、点の間隔をイ +ンチ単位で指定します。 +\item[sp $d$] +これは fp と同じですが、path は spline 曲線で描かれます。 $d$ は実数で、曲線 +の種類を指定します: +\begin{itemize} +\item $d=0$ か $d$ が省略された場合、実線で描きます。 +\item $d>0$ の場合、破線で描きます。$d$ はダッシュの長さです。 +\item $d<0$ の場合、点線で描きます。$-d$ は点間隔です。 +\end{itemize} +\item[ar $x$ $y$ $r_x$ $r_y$ $s$ $e$] +中心 $(x,y)$ の弧を描きます。$s$ は開始角度、$e$ は終了角度で、ラジアン単位 +の実数です。 完全な円か楕円である場合は、$r_x$, $r_y$ はそれぞれ $x$, $y$ 半 +径を表します。そうでない場合は $r_x=r_y$ であり、$s$ から $e$ へ弧が描かれま +す。条件が満たされればシェーディングも行います。 +\item[ia $x$ $y$ $r_x$ $r_y$ $s$ $e$] +これは ar と同じですが弧は描かず、条件が満たされればシェーディングのみ行いま +す。 +\end{description} + +以下のコマンドはオプションです。インプリメントしない場合は、dvi ドライバは単 +にこれらを無視しなければいけません。 + +\begin{description} +\item[sh $s$] +シェーディングを指定します。このコマンドの次に定義される閉じた図形(3つ以上 +の pa とそれに続く fp か ip 、 もしくは ar か ia )の内部を塗りつぶします。 +$s$ は 0 以上 1 以下の実数です。ゼロは白で塗りつぶすことを意味し、図形の下に +あったものはテキストを含め全て消去します。ゼロ以外の値は灰色を意味し、図形の +下のものは {\em 消去せずに} 灰色を塗り加えます。1 は黒で塗りつぶすことを意味 +し、当然ながらその下にあったものは何も見えなくなります。0.5 はデフォールトの +値で、「通常」の灰色を意味し、$s$ が指定されていなければ 0.5 の値を用います。 +シェーディングは図形の内側のみに対して行い、境界線はそれとは独立に現在の線幅 +を用いて描かれます。 + +\end{description} + +以下のコマンドは以前のバージョンのものですが、互換性のためにインプリメントす +べきです。 + +\begin{description} +\item[wh] +これは sh 0 と同じです。 +\item[bk] +これは sh 1 と同じです。 +\item[tx] +このコマンドは、以前には塗りつぶしのパターンを指定するのに用いられていました +が、Imagen デバイスドライバが対応しているのみであり、 非常にデバイス依存性が +高いので、インプリメントはお勧めできません。sh コマンドを推奨します。 + +\end{description} + +\section{著作権・バグなど} + +\begin{itemize} +\item この文書の著作権等は dviout/prt パッケージのそれに従います。 +\item tpic 版のコンパイルは ``Make -D(機種名) -DTPIC dviout.exe dviprt.exe'' +です。``-DVFTPIC''では書体倶楽部フォントの展開にも tpic 用関数を利用します。 +\item dviout/prt はページ毎に処理を行うので、 ページを飛ばして表示・印刷する +と以前のページの線幅設定が生かされずデフォルトの線幅になってしまうことがあり +ます。デフォルト以外の線幅を複数ページにわたって用いるときには、各ページの最 +初か一連の specials の直前に pn コマンドを書くのが無難です。 +\item tpic specials の仕様はまだ完璧ではなく、 流動的な部分があります。 tpic +をサポートするプログラムを書く場合には、将来の仕様変更に柔軟に対応できるよう +なコーディングをお勧めします。 +\end{itemize} + +\section{謝辞} + +Tim Morgan 氏は tpic 2.2 latest version の仕様とマニュアルをお送りくださり、 +仕様の和訳を本パッケージに添付することを快諾してくださいました。また、宮井英 +行氏、かずや氏には tpic や dviout/prt について貴重なご助言をいただきました。 +spline 関数のインプリメントにあたり、奥村晴彦氏の「 C 言語による最新アルゴリ +ズム事典」が参考になりました。感謝いたします。 + +\end{document} diff --git a/Master/tlpkg/dviout/GRAPHIC/bmc/bmc.txt b/Master/tlpkg/dviout/GRAPHIC/bmc/bmc.txt new file mode 100644 index 00000000000..d0319f404d3 --- /dev/null +++ b/Master/tlpkg/dviout/GRAPHIC/bmc/bmc.txt @@ -0,0 +1,141 @@ + BMC format の仕様 + +BMC は、BMP formatの画像データを、簡単な変換により圧縮したものである。 + +dviout for Windows でのPostScript画像の中間ファイルとして用いるため、 +圧縮や復元の高速性と容易さに主眼が置かれている。 + +もとの画像データは、<width> byte のデータが <height>組、順に並んでいる +とする(たとえば、フルカラー(24bit)BMPファイルの場合、<width> は、画像 +のPIXEL単位での幅の3倍を4の倍数になるように切り上げたものである)。これ +を以下の 1. 2. 3. と変換したものが、BMCにおける画像データである。 + +1. 元の画像データ + +unsigned char image[<height>*<width>]; + +を XOR の演算により + +unsigned char trans[<height>*<width>]; + +に変換する。ただし + +trans[i] = image[i] if i == 0 + = image[i] ^ image[i-1] if 0 < i < <width> + = image[i] ^ image[i - <width>] if <width> <= i < <height>*<width> + +trans[] には、0 というデータが多数含まれていると期待される。 + +2. trans[] の各 byte の上位 4 bit (0 から 15)の頻度を調べ、1 から 15 +のうちで、もっとも現れる頻度の少ないもの K を決定する(簡単化のため、K=5 な +どとあらかじめ決めてしまってもよい)。 + +3. trans[] を、同じデータが何 byte 続くか、という情報でデータ化する。 + +<M N> が、L byte 続くとする。ただし、M, N は 0 から 15 までの数で、 +1 byte(unsigned char) が表す数の上位4bitが M, 下位4bitが N に対応する +ものとする。 + +なお、L >= 0x100000000 のときは、0xffffffff(約 42.9G)以下のブロック +に分割することにより、L < 0x100000000 とする。 + +3.1. L == 1 のとき + M != K ならば <M N> + M == K ならば <K 0><0 N> + +3.2. L == 2 のとき + <M N> == 0 ならば <K 1> + M != K かつ <M N> != 0 ならば <M N><M N> + M == K ならば <K 0><0 N><K 0><0 N> + +3.3. L > 2 のとき + <M N> == 0 ならば <K L-1> if L-1 < 0x10 + <K 0><L-1> if 0x10 <= L-1 <= 0xe0 + <K 0><0xff>S(L-1,2) if 0xe0 < L-1 < 0x10000 + <K 0><0xfe>S(L-1,3) if 0x10000 <= L-1 < 0x1000000 + <K 0><0xfd>S(L-1,4) if 0x1000000 <= L-1 + + <M N> != 0 ならば + M != K かどうかに応じて、<M N> または <K 0><0 N> の後(cf. 3.1) + <K 0><0xde + L> if L < 0x1b + <K 0><0xfc>S(L-1,1) if 0x19 <= L-2 < 0x100 + <K 0><0xfb>S(L-1,2) if 0x100 <= L-2 < 0x10000 + <K 0><0xfa>S(L-1,3) if 0x10000 <= L-2 < 0x1000000 + <K 0><0xf9>S(L-1,4) if 0x1000000 <= L-2 + +ただし、S(X,K) は、X を K byte の整数で表示したもので、上位バイト -> +下位バイトの順。 + +BMC データの全体は、先頭から + +id[2]; // 'B', 'C' ID for BMC +flag[1]; // flag & 1: Not compressed? +key[1]; // <K 0> +bmc_head_size[4]; // address of bmp_head[0] "BM..." +bmp_head_size[4]; // size of BMP header +byte_width[4]; // <width> + +height[4]; // <height> +bit_width[4]; // width by bit +bmc_data_size[4]; // size after "BM..." +f_mode[1]; // used by dviout +bmp_rev[1]; // used by dviout +bmp_on[1]; // used by dviout +bmp_off[1]; // used by dviout + +-- The following top is 0x20 byte from the head -- +name[]; // original filename (zero terminated) +bmp_head[]; // original BITMAPFILEHEADEF + BITMAPINFOHEADER +bmc_data[]; // compressed or original image data + +となる。 + +f_mode[1] & 0xf = 2: 1 PIXEL = 1 bit + 3: 4 bit + 4: 8 bit + 5: 24 bit + 6: 16 bit + 7: 32 bit + +f_mode[1] & 0x10 : Use only Black & White (not gray, no color) +f_mode[1] & 0x20 : Only Black & White but the number of pallets > 2 +f_mode[1] & 0x40 : the number of pallets <= 0x10 ? in 256 color mode + +bmp_rev[1] 0: 0 is white for 2 color mode + 1: 1 is white for 2 color mode +bmp_on[1] : pallet index of white for B & W +bmp_off[1] : pallet index of black for B & W + +--------------------------- 付属資料 ---------------------------------- +epsfdoc(1) : the first page of epsfdoc.dvi A4 size 600dpi B/W +epsfdoc(16) : the first page A4 epsfdoc.dvi size 600dpi/6 gray scale(16 colors) + +\includegraphics*[height=10cm]{golfer} in 300dpi +\includegraphics*[height=6cm]{tiger} in 300dpi + +golfer(256) : 16 colors +tiger(256) : 16 colors +golfer(full) : full colors(24 bit) +tiger(full) : full colors(24 bit) + + + Size of image data files + + BMP BMP+LZH BMP+GZIP BMC BMC+LZH PNG PNG+LZH GIF GIF+LZH +epsfdoc(1) 4378046 189330 190107 204831 148307 204643 197189 291454 291454 +epsfdoc(16) 486838 46648 46976 57062 48486 48208 47451 52497 52407 +golfer(256) 1144286 15458 15294 23932 12369 21401 21294 22643 22643 +tiger(256) 485350 25447 25249 46858 25807 29415 29160 31884 31884 +golfer(full) 3429678 23054 22028 40337 16038 28167 27432 +tiger(full) 1447206 30958 31766 95170 31639 44921 44628 + + + Ratio of compression (%) + + BMP BMP+LZH BMP+GZIP BMC BMC+LZH PNG PNG+LZH GIF GIF+LZH +epsfdoc(1) 100.00 4.378 4.325 4.679 3.388 4.674 4.504 6.657 6.657 +epsfdoc(16) 100.00 9.582 9.649 11.720 9.960 9.902 9.747 10.783 10.765 +golfer(256) 100.00 1.351 1.337 2.091 1.081 1.870 1.861 1.979 1.979 +tiger(256) 100.00 5.243 5.202 9.654 5.317 6.061 6.008 6.569 6.569 +golfer(full) 100.00 0.672 0.642 1.176 0.468 0.858 0.771 +tiger(full) 100.00 2.139 2.196 6.576 2.186 3.104 3.084 diff --git a/Master/tlpkg/dviout/GRAPHIC/bmc/createbb.pdf b/Master/tlpkg/dviout/GRAPHIC/bmc/createbb.pdf Binary files differnew file mode 100644 index 00000000000..d0e4dcdad97 --- /dev/null +++ b/Master/tlpkg/dviout/GRAPHIC/bmc/createbb.pdf diff --git a/Master/tlpkg/dviout/GRAPHIC/bmc/exbmc.xpi b/Master/tlpkg/dviout/GRAPHIC/bmc/exbmc.xpi Binary files differnew file mode 100644 index 00000000000..b179324188f --- /dev/null +++ b/Master/tlpkg/dviout/GRAPHIC/bmc/exbmc.xpi diff --git a/Master/tlpkg/dviout/GRAPHIC/bmc/ifbmc.spi b/Master/tlpkg/dviout/GRAPHIC/bmc/ifbmc.spi Binary files differnew file mode 100644 index 00000000000..9a6a21c3ae4 --- /dev/null +++ b/Master/tlpkg/dviout/GRAPHIC/bmc/ifbmc.spi diff --git a/Master/tlpkg/dviout/GRAPHIC/bmc/ifbmc.txt b/Master/tlpkg/dviout/GRAPHIC/bmc/ifbmc.txt new file mode 100644 index 00000000000..91f2cd2cc2c --- /dev/null +++ b/Master/tlpkg/dviout/GRAPHIC/bmc/ifbmc.txt @@ -0,0 +1,26 @@ + ifbmc.spi + + BMC 対応 Susie プラグイン ver.0.1 + March 18, 1998 (c) Toshio OSHIMA + +竹村嘉人(たけちん)氏製作のSusie32用のプラグインです。 + +dviout for Windows Ver.3.06 は、PostScript画像表示で、Disk Spaceの節約と +dviout での表示の高速化のため、独自のBMC画像フォーマットをサポートしました。 + +ifbmc.spi は、この BMC フォーマットに対応しています。 + +BMC フォーマットについては、付属の bmc.txt をご覧ください。 + +BMP と BMC の相互変換の Win32 用のコマンド版プログラム bmc.exe も付属して +います。 + + + + exbmc.xpi + + BMC 対応 ABC 出力プラグイン + July 8, 2001 (c) Toshio OSHIMA + +ABC Converter(43T氏制作)などに使用可能な BMC フォーマット出力プラグイン +です。bmc.exe も対応しています。 |