From 8090f75681f02bfb30e62c77ddeea13a9ff50054 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Wed, 6 Jan 2021 21:44:53 +0000 Subject: graphicxpsd (6jan21) git-svn-id: svn://tug.org/texlive/trunk@57341 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/graphicxpsd/LICENSE | 4 +- .../doc/latex/graphicxpsd/graphicxpsd.pdf | Bin 168655 -> 169330 bytes .../doc/latex/graphicxpsd/graphicxpsd.tex | 66 ++++++++++++--------- .../doc/latex/graphicxpsd/test-gin-rule-psd.tex | 15 +++-- .../tex/latex/graphicxpsd/graphicxpsd.sty | 42 +++++++++---- 5 files changed, 82 insertions(+), 45 deletions(-) diff --git a/Master/texmf-dist/doc/latex/graphicxpsd/LICENSE b/Master/texmf-dist/doc/latex/graphicxpsd/LICENSE index 72d2a71e6fa..bfd35c5131d 100644 --- a/Master/texmf-dist/doc/latex/graphicxpsd/LICENSE +++ b/Master/texmf-dist/doc/latex/graphicxpsd/LICENSE @@ -1,4 +1,6 @@ -Copyright (c) 2017, 2018 Munehiro Yamamoto +This package is licensed under the terms of the MIT License. + +Copyright (c) 2017, 2018 Munehiro Yamamoto Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: diff --git a/Master/texmf-dist/doc/latex/graphicxpsd/graphicxpsd.pdf b/Master/texmf-dist/doc/latex/graphicxpsd/graphicxpsd.pdf index de0ecdc579d..43520931411 100644 Binary files a/Master/texmf-dist/doc/latex/graphicxpsd/graphicxpsd.pdf and b/Master/texmf-dist/doc/latex/graphicxpsd/graphicxpsd.pdf differ diff --git a/Master/texmf-dist/doc/latex/graphicxpsd/graphicxpsd.tex b/Master/texmf-dist/doc/latex/graphicxpsd/graphicxpsd.tex index 2c0631b7ed6..fed24f3af96 100644 --- a/Master/texmf-dist/doc/latex/graphicxpsd/graphicxpsd.tex +++ b/Master/texmf-dist/doc/latex/graphicxpsd/graphicxpsd.tex @@ -6,32 +6,32 @@ \usepackage{graphicxpsd} \title{\textsf{graphicxpsd} Package} \author{Munehiro Yamamoto} -\date{2018/01/30 v1.1} +\date{2021/01/07 v1.2} \begin{document} \maketitle \begin{abstract} -This package provides Adobe Photoshop Data format (PSD) support +This package provides Adobe Photoshop Data format (PSD) support for \textsf{graphicx} package with \texttt{sips} (Darwin/macOS)/\texttt{magick} (ImageMagick) command. \end{abstract} \section{Motivation} -\textsf{graphicx} package supports already many graphics image formats as bellow. +\textsf{graphicx} package supports already many graphics image formats as bellow. \begin{itemize} \item non-vector formats: jpg, png, bmp, and so on \item PostScript-style formats: eps, ps \item PDF-style formats: pdf, ai \end{itemize} -However, it currently does not support Adobe Photoshop Data format (PSD). +However, it currently does not support Adobe Photoshop Data format (PSD). -Against that, we developed the \textsf{graphicxpsd} package -to support PSD format via PSD-to-PDF conversion +Against that, we developed the \textsf{graphicxpsd} package +to support PSD format via PSD-to-PDF conversion with two image converters. \begin{itemize} -\item \texttt{sips}: +\item \texttt{sips}: pre-installed command in Darwin/macOS -\item \texttt{magick}: +\item \texttt{magick}: bundled command in \href{https://www.imagemagick.org/}{ImageMagick} \end{itemize} @@ -48,34 +48,42 @@ Load \textsf{graphicxpsd} package after loading \textsf{graphicx} package. The list of available options is the following. \begin{itemize} -\item |dvipdfmx|, |xetex|, |pdftex|, |luatex|: -supported driver options; +\item |dvipdfmx|, |xetex|, |pdftex|, |luatex|: +supported driver options; You can also give specific driver option from global option. -\item |sips| (default), |magick| (same as |imagemagick|), |convert|\footnotemark: -supported image converters; +\item |sips| (default), +|magick| (same as |imagemagick|), |convert|\footnotemark: % , +% |graphicsmagick|: +supported image converters; \begin{itemize} -\item -Darwin/macOS users do not have to do anything -unless you choose ImageMagick as PSD-to-PDF converter. -\item -If you use ImageMagick~7, you may choose |magick|. -\item +\item +Darwin/macOS users do not have to do anything +unless you choose ImageMagick as PSD-to-PDF converter. +\item +If you use ImageMagick~7, you may choose |magick|. +\item If you should use ImageMagick~6 or lower version, you just choose |convert|. +% \item +% If you use GraphicsMagick, you may choose |graphicsmagick|. \end{itemize} + +\item |cache=true|: supports to include cached images for all PSD files. +If there does not exist the cached image for a PSD file, +\textsf{graphicxpsd} attempts PSD-to-PDF conversion of the PSD file. \end{itemize} -\footnotetext{When ImageMagick project had released ImageMagick~7, -they changed \texttt{convert} to \texttt{magick} -because that might be the usual problem with the conflict of names -between the ImageMagick's \texttt{convert.exe} and -the Windows ``\texttt{convert.exe}'' program, -which complains about invalid parameters, and -changing the Imagemagick program's name to imconvert and +\footnotetext{When ImageMagick project had released ImageMagick~7, +they changed \texttt{convert} to \texttt{magick} +because that might be the usual problem with the conflict of names +between the ImageMagick's \texttt{convert.exe} and +the Windows ``\texttt{convert.exe}'' program, +which complains about invalid parameters, and +changing the Imagemagick program's name to imconvert and using that instead avoided the conflict.} \section{Example} -Typeset the following {\LaTeX} document with Lua{\TeX} enabling the shell escape, +Typeset the following {\LaTeX} document with Lua{\TeX} enabling the shell escape, that is, run |lualatex -shell-escape|. \begin{quote} \small @@ -93,13 +101,13 @@ Then, the result is as below. \begin{center} \includegraphics{tigerpsdfmt.psd} \end{center} -Incidentally, the above \texttt{tigerpsdfmt.psd} file is converted from -the \texttt{tiger.eps} file (a.k.a.~``cubic spline tiger''), +Incidentally, the above \texttt{tigerpsdfmt.psd} file is converted from +the \texttt{tiger.eps} file (a.k.a.~``cubic spline tiger''), which comes with Ghostscript. \begin{quote} \small \begin{verbatim} -$ file tigerpsdfmt.psd +$ file tigerpsdfmt.psd tigerpsdfmt.psd: Adobe Photoshop Image, 550 x 568, RGBA, 4x 8-bit channels \end{verbatim} \end{quote} diff --git a/Master/texmf-dist/doc/latex/graphicxpsd/test-gin-rule-psd.tex b/Master/texmf-dist/doc/latex/graphicxpsd/test-gin-rule-psd.tex index 6c45eb617f4..24f0965df4d 100644 --- a/Master/texmf-dist/doc/latex/graphicxpsd/test-gin-rule-psd.tex +++ b/Master/texmf-dist/doc/latex/graphicxpsd/test-gin-rule-psd.tex @@ -5,21 +5,26 @@ \documentclass[luatex]{article}%%set driver as global option \usepackage{graphicx} \usepackage[% - magick,%imagemagick,%%same as the one; %%default: sips + magick,%imagemagick,graphicsmagick,%%same as the one; %%default: sips % convert,%% old ImageMagick + cache=true,%%default: false ]{graphicxpsd} \listfiles \begin{document} +\begin{itemize} \makeatletter -PSD-to-PDF: \@gfxpsd@psdtopdf +\item PSD-to-PDF: \@gfxpsd@psdtopdf + +\item image cache: \if@gfxpsd@imagecache true\else false\fi \makeatother +\end{itemize} %% $ file tigerpsdfmt.psd %% tigerpsdfmt.psd: Adobe Photoshop Image, 550 x 568, RGBA, 4x 8-bit channels \includegraphics{tigerpsdfmt.psd} \end{document} -$ pdfinfo tigerpsdfmt4gfxpsd.pdf +$ pdfinfo tigerpsdfmt4gfxpsd.pdf Title: tigerpsdfmt4gfxpsd Producer: /opt/homebrew/Cellar/imagemagick/7.0.7-15/share/doc/ImageMagick-7//index.html CreationDate: Sat Jan 27 00:10:51 2018 JST @@ -37,7 +42,7 @@ File size: 1052740 bytes Optimized: no PDF version: 1.4 -$ pdfinfo tigerpsdfmt4gfxpsd.pdf +$ pdfinfo tigerpsdfmt4gfxpsd.pdf Producer: Mac OS X 10.13.4 Quartz PDFContext CreationDate: Fri Jan 26 15:12:13 2018 JST ModDate: Fri Jan 26 15:12:13 2018 JST @@ -52,4 +57,4 @@ Page size: 99 x 102.24 pts Page rot: 0 File size: 112882 bytes Optimized: no -PDF version: 1.3 \ No newline at end of file +PDF version: 1.3 diff --git a/Master/texmf-dist/tex/latex/graphicxpsd/graphicxpsd.sty b/Master/texmf-dist/tex/latex/graphicxpsd/graphicxpsd.sty index 3f170d9c2ff..ef6f1517b71 100644 --- a/Master/texmf-dist/tex/latex/graphicxpsd/graphicxpsd.sty +++ b/Master/texmf-dist/tex/latex/graphicxpsd/graphicxpsd.sty @@ -2,20 +2,21 @@ % #!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 +% #!lualatex -shell-escape test-gin-rule-psd %% %% This is file 'graphicxpsd.sty'. %% -%% Copyright (c) 2017, 2018 Munehiro Yamamoto -%% +%% Copyright (c) 2017-2021 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 + [2021/01/07 v1.2 Adobe Photoshop Data format (PSD) support for graphicx package with sips (Darwin/macOS)/magick (ImageMagick) command] %% declare package errors @@ -32,8 +33,9 @@ \DeclareOption{luatex}{\@gfxpsd@dvipdfmxfalse\@gfxpsd@pdftextrue} \DeclareOption{pdftex}{\@gfxpsd@dvipdfmxfalse\@gfxpsd@pdftextrue} -%% support two psd-to-pdf commands: -%% sips (Darwin/macOS), magick/convert (ImageMagick) +%% support two psd-to-pdf commands: +%% sips (Darwin/macOS), magick/convert (ImageMagick), +%% graphicsmagick (GraphicsMagick) \newif\if@gfxpsd@imagemagick \@gfxpsd@imagemagickfalse \def\@gfxpsd@psdtopdf{sips}%% as default \DeclareOption{sips}{% @@ -44,6 +46,15 @@ \@gfxpsd@imagemagicktrue\gdef\@gfxpsd@psdtopdf{magick}} \DeclareOption{convert}{% \@gfxpsd@imagemagicktrue\gdef\@gfxpsd@psdtopdf{convert}} +\DeclareOption{graphicsmagick}{% + \@gfxpsd@imagemagicktrue\gdef\@gfxpsd@psdtopdf{gm\GPT@space convert}} + +%% image cache flag +\newif\if@gfxpsd@imagecache \@gfxpsd@imagecachefalse +\DeclareOption{cache=true}{\@gfxpsd@imagecachetrue} +\DeclareOption{cache=True}{\@gfxpsd@imagecachetrue} +\DeclareOption{cache=false}{\@gfxpsd@imagecachefalse} +\DeclareOption{cache=False}{\@gfxpsd@imagecachefalse} \ProcessOptions\relax @@ -79,11 +90,13 @@ %% 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}% + \if@gfxpsd@imagecache + \IfFileExists{\Gin@base4gfxpsd.pdf}{% + \typeout{including cached image: \Gin@base4gfxpsd.pdf}% + }{\typeout{not found: \Gin@base4gfxpsd.pdf}% + \@gfxpsd@convert@psd@to@pdf}% \else - \ShellEscape{sips -s format pdf \Gin@base\Gin@ext\GPT@space --out \Gin@base4gfxpsd.pdf}% + \@gfxpsd@convert@psd@to@pdf \fi %% renamed inside: foo.psd -> foo4gfxpsd.pdf \let\clone@Gin@base\Gin@base @@ -93,6 +106,15 @@ % \typeout{!!! \Gin@base\Gin@ext}%%=> tigerpsdfmt4gfxpsd.pdf \clone@Gread@pdf{#1}} +\def\@gfxpsd@convert@psd@to@pdf{% + \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 +} + \endinput %% %% End of file `graphicxpsd.sty'. -- cgit v1.2.3