% \iffalse meta-comment % % pdf14.dtx % % Written in 2010 by Manuel P\'egouri\'e-Gonnard . % % This work may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either version 1.3 % of this license or (at your option) any later version. % The latest version of this license is in % http://www.latex-project.org/lppl.txt % and version 1.3 or later is part of all distributions of LaTeX % version 2005/12/01 or later. % % This work has the LPPL maintenance status `maintained'. % % The Current Maintainer of this work is Manuel P\'egouri\'e-Gonnard. % % This work consists of the source file pdf14.dtx % and the derived files pdf14.sy, pdf14.pdf, test-pdf14.tex. % % Unpacking: % tex pdf14.dtx % Documentation: % pdflatex pdf14.dtx % %<*ignore> \begingroup \def\x{LaTeX2e}% \expandafter\endgroup \ifcase 0\ifx\install y1\fi\expandafter \ifx\csname processbatchFile\endcsname\relax\else1\fi \ifx\fmtname\x\else 1\fi\relax \else\csname fi\endcsname % %<*install> \input docstrip.tex \keepsilent \askforoverwritefalse \preamble Written in 2010 by Manuel P\string\'egouri\string\'e-Gonnard . This work can be distributed and/or modified under the terms of the LPPL. This is a generated file, see source file \inFileName for more details. \endpreamble \generate{% \file{pdf14.sty}{\from{pdf14.dtx}{package}}% \file{test-pdf14.tex}{\from{pdf14.dtx}{testfile}}% } \obeyspaces \Msg{************************************************************************} \Msg{*} \Msg{* To finish the installation you have to move the following} \Msg{* file into a directory searched by TeX:} \Msg{*} \Msg{* pdf14.sty} \Msg{*} \Msg{* Happy TeXing!} \Msg{*} \Msg{************************************************************************} \endbatchfile % %<*ignore> \fi % %<*driver> \documentclass{ltxdoc} \usepackage[ascii]{inputenc} \usepackage[T1]{fontenc} \usepackage{lmodern} \usepackage[a4paper]{geometry} \usepackage{xspace} \usepackage[babel=true, expansion=false]{microtype} \usepackage[english]{babel} \usepackage{hyperref} \usepackage{bookmark} \newcommand\pf{\textsf} \newcommand\mailto[1]{\href{mailto:#1}{<#1>}} \newcommand\texlive{\TeX\,Live\xspace} \begin{document} \DocInput{pdf14.dtx} \end{document} % % \fi % % \CheckSum{0} % % \CharacterTable % {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z % Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z % Digits \0\1\2\3\4\5\6\7\8\9 % Exclamation \! Double quote \" Hash (number) \# % Dollar \$ Percent \% Ampersand \& % Acute accent \' Left paren \( Right paren \) % Asterisk \* Plus \+ Comma \, % Minus \- Point \. Solidus \/ % Colon \: Semicolon \; Less than \< % Equals \= Greater than \> Question mark \? % Commercial at \@ Left bracket \[ Backslash \\ % Right bracket \] Circumflex \^ Underscore \_ % Grave accent \` Left brace \{ Vertical bar \| % Right brace \} Tilde \~} % % \title{The \pf{pdf14} \LaTeX\ package} % \date{2010/03/26 v0.1} % \author{Manuel P\'egouri\'e-Gonnard \mailto{mpg@elzevir.fr}} % % \maketitle % % \begin{abstract} % Starting with \texlive 2010, the various formats that directly generate PDF % default to PDF 1.5. While this allows for more compact documents thanks to % objects compression, it can also lead to compatibility issues with some % older PDF viewers.\footnote{For reference, Adobe Reader 6.0, released in % 2003, was the first reader to handle PDF 1.5.} This package changes back the % version of generated PDF to 1.4 with formats based on pdf\TeX{} or Lua\TeX\ % in PDF mode, for documents that need to achieve maximal compatibility with % old viewers. % % If you need to generate maximally compatible documents, you may also be % interested in the \pf{pdfx} package. % \end{abstract} % % \section{Documentation} % % Just load this package, preferably right after the \verb+\documentclass+ % command. That's it. The rest of this documentation describes possible % problems that may arise under particular circumstances. % % The \pf{pdf14} package should be loaded as early as possible in order to % avoid problems. If you run into an error like: % \begin{verbatim} % ! pdfTeX error (setup): \pdfminorversion cannot be changed after data is % written to the PDF file. % \end{verbatim} % it probably means that some package loaded before \pf{pdf14} did write data % to the PDF file. In case the document class is (indirectly) doing it, you'll % need to load \pf{pdf14} even before the \verb+\documentclass+ command, using % \verb+\RequirePackage{pdf14}+ as the first line of your source file. % % Also, another package might try to set the PDF version itself, likely because % it is going to use some advanced PDF features. Currently, no check for this % is done by \pf{pdf14} to guard against this. So, it is your responsibility % to check that the document produced are actually PDF 1.4.\footnote{You may % do so using \texttt{pdfinfo} from the Xpdf distribution, or the % File$\to$Properties menu of Acrobat Reader.} Future versions of \pf{pdf14} % may include such a check, but it could only guarantee that the % \emph{declared} PDF version has not been changed, not that the file produced % is actually correct PDF 1.4.\footnote{Unfortunately, some packages are known % to use features available only in PDF 1.5 and greater without properly % setting the declared PDF version.} % % \section{Implementation} % % \begin{macrocode} %<*package> \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{pdf14}[2010/03/26 v0.1 Generate PDF 1.4 documents (mpg)] % \end{macrocode} % % Check if we are running pdf\TeX\ or Lua\TeX\ in PDF mode. If not, issue % an information message and exit. Since we address only \LaTeX-based % formats in \texlive, we can assume that \verb|\pdfoutput| is available. % (We don't load \pf{ifpdf} in order to avoid loading too many packages % before \verb+\documentclass+.) % % \begin{macrocode} \begingroup \def\x{% \PackageInfo{pdf14}{% You are not running pdfTeX (or LuaTeX) in PDF mode.\MessageBreak Package pdf14 is useless in this case. Skipping.}% \endinput} \expandafter\ifx\csname pdfoutput\endcsname\relax \else \ifnum\pdfoutput<1 \else \def\x{}% \fi \fi \expandafter\endgroup \x % \end{macrocode} % % Actually set the values if the corresponding primitives are available. % % \begin{macrocode} \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname pdfminorversion\endcsname\relax \else \pdfminorversion4\relax \fi \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname pdfobjcompresslevel\endcsname\relax \else \pdfobjcompresslevel0\relax \fi % \end{macrocode} % % \begin{macrocode} % % \end{macrocode} % % \section{Test} % % Minimal \LaTeX\ file actually producing some output, just to check that % the package loads correctly, and that the produced file is actually PDF % 1.4 (see the Makefile). % % \begin{macrocode} %<*testfile> \documentclass{minimal} \usepackage{pdf14} \begin{document} Bla. \end{document} % % \end{macrocode} % % % \Finale \endinput