diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/graphicxpsd/graphicxpsd.sty |
Initial commit
Diffstat (limited to 'macros/latex/contrib/graphicxpsd/graphicxpsd.sty')
-rw-r--r-- | macros/latex/contrib/graphicxpsd/graphicxpsd.sty | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/macros/latex/contrib/graphicxpsd/graphicxpsd.sty b/macros/latex/contrib/graphicxpsd/graphicxpsd.sty new file mode 100644 index 0000000000..3f170d9c2f --- /dev/null +++ b/macros/latex/contrib/graphicxpsd/graphicxpsd.sty @@ -0,0 +1,98 @@ +% #!rm -f tigerpsdfmt4* && ptex2pdf -l -u -ot '-shell-escape' -od '-v' test-gin-rule-psd +% #!rm -f tigerpsdfmt4* && xelatex -shell-escape test-gin-rule-psd +% #!rm -f tigerpsdfmt4* && pdflatex -shell-escape test-gin-rule-psd +%#!rm -f tigerpsdfmt4* && lualatex -shell-escape test-gin-rule-psd +%% +%% This is file 'graphicxpsd.sty'. +%% +%% Copyright (c) 2017, 2018 Munehiro Yamamoto +%% +%% * e-mail: munepixyz@gmail.com, munepi@greencherry.jp +%% * GitHub: https://github.com/munepi +%% * Twitter: @munepixyz +%% +%% This package is licensed under the terms of the MIT License. +%% +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{graphicxpsd} + [2018/01/30 v1.1 Adobe Photoshop Data format (PSD) support for graphicx package + with sips (Darwin/macOS)/magick (ImageMagick) command] + +%% declare package errors +\def\gfxpsd@error{\PackageError{graphicxpsd}} +\def\gfxpsd@warning{\PackageWarning{graphicxpsd}} +\def\gfxpsd@warningnoline{\PackageWarningNoLine{graphicxpsd}} +\def\gfxpsd@info{\PackageInfo{graphicxpsd}} + +%% support major graphicx drivers +\newif\if@gfxpsd@dvipdfmx \@gfxpsd@dvipdfmxfalse +\newif\if@gfxpsd@pdftex \@gfxpsd@pdftexfalse +\DeclareOption{dvipdfmx}{\@gfxpsd@dvipdfmxtrue\@gfxpsd@pdftexfalse} +\DeclareOption{xetex}{\@gfxpsd@dvipdfmxtrue\@gfxpsd@pdftexfalse} +\DeclareOption{luatex}{\@gfxpsd@dvipdfmxfalse\@gfxpsd@pdftextrue} +\DeclareOption{pdftex}{\@gfxpsd@dvipdfmxfalse\@gfxpsd@pdftextrue} + +%% support two psd-to-pdf commands: +%% sips (Darwin/macOS), magick/convert (ImageMagick) +\newif\if@gfxpsd@imagemagick \@gfxpsd@imagemagickfalse +\def\@gfxpsd@psdtopdf{sips}%% as default +\DeclareOption{sips}{% + \@gfxpsd@imagemagickfalse\gdef\@gfxpsd@psdtopdf{sips}} +\DeclareOption{imagemagick}{% + \@gfxpsd@imagemagicktrue\gdef\@gfxpsd@psdtopdf{magick}} +\DeclareOption{magick}{% + \@gfxpsd@imagemagicktrue\gdef\@gfxpsd@psdtopdf{magick}} +\DeclareOption{convert}{% + \@gfxpsd@imagemagicktrue\gdef\@gfxpsd@psdtopdf{convert}} + +\ProcessOptions\relax + +%% support the extension .psd (psdtopdf) +\if@gfxpsd@dvipdfmx + \@namedef{Gin@rule@.PSD}#1{{psdtopdf}{.xbb}{#1}} + \@namedef{Gin@rule@.psd}#1{{psdtopdf}{.xbb}{#1}} +\else\if@gfxpsd@pdftex + \@namedef{Gin@rule@.PSD}#1{{psdtopdf}{.pdf}{#1}} + \@namedef{Gin@rule@.psd}#1{{psdtopdf}{.pdf}{#1}} +\else + \gfxpsd@error{Please choice specific dviware driver from the following list + and set the one as a documentclass option.^^J + available dviware drivers: dvipdfmx, xetex, luatex, pdftex}% +\fi\fi + +%% then, include .psd file as converted PDF +\@ifundefined{Ginclude@pdf}{\gfxpsd@error{% + Please load 'graphicxpsd' package after loading 'graphicx' package.}}\relax +\let\Ginclude@psdtopdf\Ginclude@pdf + +%% compatibility for TL16 or lower version +\@ifundefined{GPT@space}{% + \def\GPT@space{ }% +}{} + +%% check shell escape trigger +\IfFileExists{shellesc.sty}{%%is bundled in TL15 or higher release version +\RequirePackage{shellesc}}{%%otherwise, such TL has no luatex. + \protected\def\ShellEscape{\immediate\write18 }%%compatibility for TL14 or lower version +} + +%% read .psd file +\let\clone@Gread@pdf\Gread@pdf +\def\Gread@psdtopdf#1{% + \typeout{converting: \Gin@base\Gin@ext\GPT@space -> \Gin@base4gfxpsd.pdf}% + \if@gfxpsd@imagemagick + \ShellEscape{\@gfxpsd@psdtopdf\GPT@space\Gin@base\Gin@ext\GPT@space\Gin@base4gfxpsd.pdf}% + \else + \ShellEscape{sips -s format pdf \Gin@base\Gin@ext\GPT@space --out \Gin@base4gfxpsd.pdf}% + \fi + %% renamed inside: foo.psd -> foo4gfxpsd.pdf + \let\clone@Gin@base\Gin@base + \def\Gin@base{\clone@Gin@base4gfxpsd}% + \def\Gin@ext{.pdf}% +% \typeout{!!! #1}%%=> tigerpsdfmt4gfxpsd.xbb +% \typeout{!!! \Gin@base\Gin@ext}%%=> tigerpsdfmt4gfxpsd.pdf + \clone@Gread@pdf{#1}} + +\endinput +%% +%% End of file `graphicxpsd.sty'. |