I am using PDFX / Lualatex to create a PDF/X-4 file. My problem is that the publisher is wanting the images in the file to be CMYK. Some of my images are transparent.

The problem:

  • Latex only supports a limited number of image formats and does not allow for TIFF
  • PNG images can have transparency, but do not support CMYK colour profiles
  • JPG images do support CMYK, but cannot have transparency

So, what is my solution for including a transparent and CMYK image in a PDF file that the publisher will be able to use?

  • You can convert the image to a CMYK PDF. There are a limited number of open source tools that can do this. At least try ImageMagick. Scribus might also suit you. – David Purton Mar 2 '20 at 3:17
  • You should seek another publisher. Every print shop must be able to correctly produce a valid PDF/X document. Since you are obviously not a color expert the conversion/separation should be done by the print shop. PDF/X-4 allows RGB content. – tanGIS May 2 '20 at 16:18

Your only option is to convert the images to PDF which support CMYK and transparency and can by included by LaTeX.

You can do this using ImageMagick:

  1. Create a simple transparent PNG (for example only):

    convert magick:logo -transparent white logo.png
  2. Convert the PNG to a CMYK PDF (choose appropriate profiles for your printing environment):

    convert logo.png \
    -profile /usr/share/color/icc/sRGB_v4_ICC_preference_displayclass.icc \
    -profile /usr/share/color/icc/ISOcoated_v2_eci.icc logo.pdf
  3. Test with the following TeX file (tex_logo.tex):

    \begin{tikzpicture}[inner sep=0pt]
      % put a small grey square behind image to show the transparency
      \fill [black!20] (-1,-1) rectangle (1,1);
      \node at (0,0) {\includegraphics[width=54.19mm]{logo.pdf}};
  4. Use the GhostScript tiffsep device to produce separations and check that everything looks like it should:

    gs -dSAFER -dNOPAUSE -dBATCH -sOutputFile=tex_logo.tiff -sDEVICE=tiffsep \
    -sCompression=lzw -r300 -dTextAlphaBits=4 -dGraphicsAlphaBits=4 \
    -sDefaultRGBProfile=/usr/share/color/icc/sRGB_v4_ICC_preference_displayclass.icc \
    -sDefaultCMYKProfile=/usr/share/color/icc/ISOcoated_v2_eci.icc \
    -sOutputICCProfile=/usr/share/color/icc/ISOcoated_v2_eci.icc tex_logo.pdf

Here's the resulting composite output and separations:


Composite output

Cyan separation

Cyan separation

Magenta separation

Magenta separation

Yellow separation

Yellow separation

Black separation

Black separation

  • 1
    Such a nice suggestion... – MadyYuvi Mar 2 '20 at 11:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.