summaryrefslogtreecommitdiff
path: root/macros/luatex/latex/novel/lualatex/novel-FileData.sty
diff options
context:
space:
mode:
Diffstat (limited to 'macros/luatex/latex/novel/lualatex/novel-FileData.sty')
-rw-r--r--macros/luatex/latex/novel/lualatex/novel-FileData.sty207
1 files changed, 207 insertions, 0 deletions
diff --git a/macros/luatex/latex/novel/lualatex/novel-FileData.sty b/macros/luatex/latex/novel/lualatex/novel-FileData.sty
new file mode 100644
index 0000000000..4d4535ead0
--- /dev/null
+++ b/macros/luatex/latex/novel/lualatex/novel-FileData.sty
@@ -0,0 +1,207 @@
+%%
+%% This is file `novel-FileData.sty', part of `novel' document class.
+%% Copyright 2017-2023 Robert Allgeyer.
+%%
+%%
+%% This file may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% 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.3c or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%%
+\ProvidesFile{novel-FileData.sty}%
+[2023/02/08 v1.80 LaTeX file (File Data settings)]
+%%
+
+
+%% File Data, also known as PDF Metadata, is non-printing identifying
+%% information in the PDF file. Some or all of it can be read by various
+%% PDF reader software.
+%% PDF/X is also considered File Data, as it concerns the structure of the
+%% file and its relationaship to printers, rather than its visible content.
+%% In principle, you could set the title as empty. But in that case, no other
+%% File Data will be included, and you cannot have PDF/X compliance.
+%% There are many more kinds of File Data that a PDF can include, such as
+%% subject and keywords. But `novel' is specifically for printing to paper,
+%% not for electronic documents that would be found by database search.
+%% Thus, there is no provision for such additional File Data.
+%% When you sign up with a print service, you will provide subject, keywords,
+%% and description directly to their database, rather than in the PDF.
+%% No need to set copyright in metadata, since your file is only for use by
+%% the print service, and is not being distributed as a PDF e-book.
+%% Your copyright notice is on the printed page, where it should be.
+%% Particularly note that your print service is NOT the publisher: YOU are!
+
+
+%% FILE DATA (PDF Metadata)
+%% ----------------------------------------------------------------------------
+%%
+% \title{} or \SetTitle{}
+% Copied to File Data at end of Preamble, unless not set.
+% Provides \theTitle anywhere.
+% If not set, PDF cannot conform to PDF/X.
+\newif \if@HasTitle % true if \SetTitle or \title used
+\gdef\SetTitle#1{\gdef\@title{#1}} % for stylistic consistency
+\gdef\title#1{\gdef\@title{#1}}
+\gdef\thetitle{\@title} % for convenience
+\gdef\theTitle{\@title}
+\SetTitle{IMPORTANT: Provide Book Title} % Default.
+%
+% \author{} or \SetAuthor{}
+% Copied to File Data at end of preamble, unless not set.
+% Provides \theAuthor anywhere.
+\gdef\SetAuthor#1{\gdef\@author{#1}} % for stylistic consistency
+\gdef\author#1{\gdef\@author{#1}}
+\gdef\theauthor{\@author} % for convenience
+\gdef\theAuthor{\@author}
+\SetAuthor{}
+%
+% \subtitle{} or \SetSubtitle{} (if any)
+% Not copied to File Data by itself, as there is no such metadata entry.
+% Provides \theSubtitle anywhere.
+\gdef\SetSubtitle#1{\gdef\@subtitle{#1}} % for stylistic consistency
+\gdef\subtitle#1{\gdef\@subtitle{#1}}
+\gdef\thesubtitle{\@subtitle} % compatibility
+\gdef\theSubtitle{\@subtitle}
+\SetSubtitle{}
+%
+% \SetApplication{} (rarely used)
+% Also known as CreatorTool.
+% Name of the software that created the source document.
+% Changing this does not change the software, it just changes the information.
+% Normally leave as default, but can change if urgent.
+\gdef\SetApplication#1{\gdef\@novelApplication{#1}}
+\SetApplication{LuaLaTeX with novel and microtype} % default
+%
+% \SetProducer{} (rarely used)
+% Name of the software that compiles the source to make PDF.
+% Changing this does not change the software, it just changes the information.
+% Normally leave as default, but can change if urgent.
+\gdef\SetProducer#1{\gdef\@novelProducer{#1}}
+\SetProducer{LuaLaTeX with novel-pdfx and hyperref} % default
+%
+%% End file data.
+
+
+%% SET PDF/X ARGUMENTS
+%% ----------------------------------------------------------------------------
+%% \SetPDFX[Output Intent]{compliance standard} % No embed *.icc. Default.
+%% \SetPDFX*[Output Intent]{compliance standard} % Embed *.icc.
+%% Default: \SetPDFX[CGATSTR001]{X-1a:2001}
+%
+% \@pdfxSEToff refers to the setting, rather than whether it really is off.
+% \@pdfxISoff refers to whether it really is off.
+\newif \if@pdfxSEToff
+\newif \if@pdfxISoff
+% These will get meaningful info when an output intent file is loaded:
+\gdef\@OIidentifier{}
+\gdef\@OIcondition{}
+\gdef\@OIinfo{}
+\gdef\@OIregistry{}
+\gdef\@OIprofile{}
+%
+%%
+\newif \if@HasConformance
+\newif \if@EmbedICC
+\gdef\SetPDFX{\@ifstar\@setpdfxst\@setpdfxns}
+\newcommand\@setpdfxst[2][CGATSTR001]{
+ \global\@EmbedICCtrue
+ \@setpdfx{#1}{#2}
+}
+\newcommand\@setpdfxns[2][CGATSTR001]{
+ \global\@EmbedICCfalse
+ \@setpdfx{#1}{#2}
+}
+%
+\newcommand\@setpdfx[2]{
+ \@tempTFfalse
+ \ifthenelse{\equal{#2}{off}}{
+ \@tempTFtrue
+ \global\@pdfxSETofftrue
+ \global\@pdfxISofftrue
+ }{}
+ \ifthenelse{\equal{#2}{X-1a:2001}}{
+ \@tempTFtrue
+ \global\@pdfxSETofffalse
+ \global\@pdfxISofffalse
+ \gdef\@PDFversion{PDF/X-1}
+ \gdef\@PDFXversion{PDF/X-1a:2001}
+ \gdef\@PDFXconformance{PDF/X-1a:2001}
+ \global\@HasConformancetrue
+ \global\pdfminorversion=3
+ }{}
+ \ifthenelse{\equal{#2}{X-1a:2003}}{
+ \@tempTFtrue
+ \global\@pdfxSETofffalse
+ \global\@pdfxISofffalse
+ \gdef\@PDFversion{PDF/X-1}
+ \gdef\@PDFXversion{PDF/X-1a:2003}
+ \gdef\@PDFXconformance{PDF/X-1a:2003}
+ \global\@HasConformancetrue
+ \global\pdfminorversion=3
+ }{}
+ \ifthenelse{\equal{#2}{X-3:2002}}{
+ \@tempTFtrue
+ \global\@pdfxSETofffalse
+ \global\@pdfxISofffalse
+ \gdef\@PDFversion{PDF/X-3}
+ \gdef\@PDFXversion{PDF/X-3:2002}
+ \global\pdfminorversion=3
+ }{}
+ \ifthenelse{\equal{#2}{X-3:2003}}{
+ \@tempTFtrue
+ \global\@pdfxSETofffalse
+ \global\@pdfxISofffalse
+ \gdef\@PDFversion{PDF/X-3}
+ \gdef\@PDFXversion{PDF/X-3:2003}
+ \global\pdfminorversion=4
+ }{}
+ \if@tempTF\else
+ \ClassError{novel}{Bad compliance argument for \string\SetPDFX}%
+ {Choose: X-1a:2001, X-1a:2003, X-3:2002, X-3:2003, off.}%
+ \fi
+ % Grab the file that defines the Output Intent information:
+ % File name format: novel-YourIntent.clo
+ % Setting: \SetPDFX[YourIntent]{compliance}
+ % Contents of file: See the above included Output Intent data.
+ \StrDel{#1}{\space}[\NPDFXOINS]
+ \IfFileExists{novel-\NPDFXOINS.clo}{\input{novel-\NPDFXOINS.clo}}{%
+ \ClassError{novel}{Bad Output Intent for \string\SetPDFX}%
+ {Use filename (without extension) of a file with *.clo extension. ^^J%
+ Filename must begin with novel- ^^J%
+ Example: File novel-FOGRA39.clo is called as [FOGRA39]. ^^J%
+ The file must be where TeX can find it. ^^J%
+ For contents of the file, see package documentation.}%
+ }{}%
+} % end \@setpdfx
+%
+\SetPDFX[CGATSTR001]{X-1a:2001} % Default.
+%%
+
+
+
+%% Neutralize file data settings:
+\gdef\@DisableFileDataSettings{% called by `novel.cls' \AtBeginDocument
+ \let\title\relax
+ \let\author\relax
+ \let\subtitle\relax
+ \LetLtxMacro\SetAuthor\relax
+ \LetLtxMacro\SetTitle\relax
+ \LetLtxMacro\SetSubtitle\relax
+ \LetLtxMacro\SetApplication\relax
+ \LetLtxMacro\SetProducer\relax
+ \LetLtxMacro\SetPDFX\relax
+}% end \@DisableFileDataSettings
+%%
+
+
+
+%%
+\endinput
+%%
+%% End of file `novel-FileData.sty'.
+
+