Lots of changes.
This commit is contained in:
@@ -1,31 +1,150 @@
|
||||
\NeedsTeXFormat{LaTeX2e}
|
||||
\ProvidesPackage{PrimeTeX/packages/DocProperties}[2025-07-09]
|
||||
|
||||
% Custom document properties.
|
||||
\DeclareRobustCommand*{\customer}[1]{\gdef\@customer{#1}}
|
||||
\DeclareRobustCommand*{\customerFull}[1]{\gdef\@customerFull{#1}}
|
||||
\DeclareRobustCommand*{\projectNumber}[1]{\gdef\@projectNumber{#1}}
|
||||
\DeclareRobustCommand*{\projectDesc}[1]{\gdef\@projectDesc{#1}}
|
||||
\DeclareRobustCommand*{\version}[1]{\gdef\@version{#1}}
|
||||
\RequirePackage[en-US]{datetime2}
|
||||
|
||||
% Macros to insert document properties.
|
||||
\NewDocumentCommand{\sTitle}{}{\makeatletter{\@title}}
|
||||
\NewDocumentCommand{\sAuthor}{}{\makeatletter{\@author}}
|
||||
\NewDocumentCommand{\sDate}{}{\makeatletter{\@date}}
|
||||
\NewDocumentCommand{\sCustomer}{}{\makeatletter{\@customer}}
|
||||
\NewDocumentCommand{\sCustomerFull}{}{\makeatletter{\@customerFull}}
|
||||
\NewDocumentCommand{\sProjectNumber}{}{\makeatletter{\@projectNumber}}
|
||||
\NewDocumentCommand{\sProjectDesc}{}{\makeatletter{\@projectDesc}}
|
||||
\NewDocumentCommand{\sProjectTitle}{}{\makeatletter{Project \@projectNumber : \@projectDesc}}
|
||||
\NewDocumentCommand{\sVersion}{}{\makeatletter{\@version}}
|
||||
|
||||
\let\oldAuthor\author
|
||||
\let\oldTitle\title
|
||||
\renewcommand{\author}[1]{%
|
||||
\oldAuthor{#1}%
|
||||
\hypersetup{pdfauthor=#1}%
|
||||
\DTMnewdatestyle{longdate}{%
|
||||
\renewcommand{\DTMdisplaydate}[4]{\number##3\ \DTMenglishmonthname{##2}\ \number##1}%
|
||||
\renewcommand{\DTMDisplaydate}{\DTMdisplaydate}%
|
||||
}
|
||||
\renewcommand{\title}[1]{%
|
||||
\oldTitle{#1}%
|
||||
\hypersetup{pdftitle=#1}%
|
||||
|
||||
\NewDocumentCommand{\FormatDate}{m m}{%
|
||||
\DTMsavedate{saveDate}{#1}%
|
||||
\DTMsetdatestyle{#2}%
|
||||
\DTMusedate{saveDate}
|
||||
}
|
||||
|
||||
\RequirePackage{readarray}
|
||||
\readarraysepchar{,}
|
||||
|
||||
\NewDocumentCommand{\GetRevision}{m}{%
|
||||
\readdef{#1}\@RevHistory%
|
||||
\readarray*\@RevHistory\@RevHistoryArray[-,\ncols]%
|
||||
\Version[\@RevHistoryArray[2,1]]%
|
||||
\edef\eDate{\@RevHistoryArray[2,2]}%
|
||||
\DTMsavedate{tempDate}{\eDate}%
|
||||
\DTMsetdatestyle{default}%
|
||||
\Date[\DTMusedate{tempDate}]%
|
||||
\DTMsetdatestyle{longdate}%
|
||||
\LongDate[\DTMusedate{tempDate}]%
|
||||
\Author[\@RevHistoryArray[2,3]]%
|
||||
}
|
||||
|
||||
\NewDocumentCommand{\SetPDFInfo}{}{
|
||||
\hypersetup{
|
||||
pdfauthor = {\@AuthorCompany},
|
||||
pdfsubject = {\ProjectTitle},
|
||||
pdftitle = {\@Title},
|
||||
pdfkeywords = {
|
||||
Customer:~\@CustomerFull~(\@Customer),
|
||||
Last~Modified~By:~\@Author,
|
||||
Modification~Date:~\@Date,
|
||||
Revision~Number:~\@Version,
|
||||
\@AuthorCompany{}~Project~Number:~\@InternalProjectNumber,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
\NewExpandableDocumentCommand{\ProjectTitle}{}{%
|
||||
Project \@CustomerProjectNumber{}: \@ProjectDescription%
|
||||
}
|
||||
|
||||
% Custom document properties.
|
||||
\edef\@Author{}
|
||||
\NewDocumentCommand{\Author}{>{\TrimSpaces}o}{%
|
||||
\IfNoValueTF{#1}{%
|
||||
\@Author%
|
||||
}{%
|
||||
\xdef\@Author{#1}%
|
||||
}%
|
||||
}
|
||||
|
||||
\edef\@AuthorCompany{}
|
||||
\NewDocumentCommand{\AuthorCompany}{>{\TrimSpaces}o}{%
|
||||
\IfNoValueTF{#1}{%
|
||||
\@AuthorCompany%
|
||||
}{%
|
||||
\xdef\@AuthorCompany{#1}%
|
||||
}%
|
||||
}
|
||||
|
||||
\edef\@Customer{}
|
||||
\NewDocumentCommand{\Customer}{>{\TrimSpaces}o}{%
|
||||
\IfNoValueTF{#1}{%
|
||||
\@Customer%
|
||||
}{%
|
||||
\xdef\@Customer{#1}%
|
||||
}%
|
||||
}
|
||||
|
||||
\edef\@CustomerFull{}
|
||||
\NewDocumentCommand{\CustomerFull}{>{\TrimSpaces}o}{%
|
||||
\IfNoValueTF{#1}{%
|
||||
\@CustomerFull%
|
||||
}{%
|
||||
\xdef\@CustomerFull{#1}%
|
||||
}%
|
||||
}
|
||||
|
||||
\edef\@CustomerProjectNumber{}
|
||||
\NewDocumentCommand{\CustomerProjectNumber}{>{\TrimSpaces}o}{%
|
||||
\IfNoValueTF{#1}{%
|
||||
\@CustomerProjectNumber%
|
||||
}{%
|
||||
\xdef\@CustomerProjectNumber{#1}%
|
||||
}%
|
||||
}
|
||||
|
||||
\edef\@Date{}
|
||||
\NewDocumentCommand{\Date}{>{\TrimSpaces}o}{%
|
||||
\IfNoValueTF{#1}{%
|
||||
\@Date%
|
||||
}{%
|
||||
\xdef\@Date{#1}%
|
||||
}%
|
||||
}
|
||||
|
||||
\edef\@LongDate{}
|
||||
\NewDocumentCommand{\LongDate}{>{\TrimSpaces}o}{%
|
||||
\IfNoValueTF{#1}{%
|
||||
\@LongDate%
|
||||
}{%
|
||||
\xdef\@LongDate{#1}%
|
||||
}%
|
||||
}
|
||||
|
||||
\edef\@InternalProjectNumber{}
|
||||
\NewDocumentCommand{\InternalProjectNumber}{>{\TrimSpaces}o}{%
|
||||
\IfNoValueTF{#1}{%
|
||||
\@InternalProjectNumber%
|
||||
}{%
|
||||
\xdef\@InternalProjectNumber{#1}%
|
||||
}%
|
||||
}
|
||||
|
||||
\edef\@ProjectDescription{}
|
||||
\NewDocumentCommand{\ProjectDescription}{>{\TrimSpaces}o}{%
|
||||
\IfNoValueTF{#1}{%
|
||||
\@ProjectDescription%
|
||||
}{%
|
||||
\xdef\@ProjectDescription{#1}%
|
||||
}%
|
||||
}
|
||||
|
||||
\edef\@Title{}
|
||||
\NewDocumentCommand{\Title}{>{\TrimSpaces}o}{%
|
||||
\IfNoValueTF{#1}{%
|
||||
\@Title%
|
||||
}{%
|
||||
\xdef\@Title{#1}%
|
||||
}%
|
||||
}
|
||||
|
||||
\edef\@Version{}
|
||||
\NewDocumentCommand{\Version}{>{\TrimSpaces}o O{Revision: }}{%
|
||||
\IfNoValueTF{#1}{%
|
||||
\@Version%
|
||||
}{%
|
||||
\xdef\@Version{#1}%
|
||||
}%
|
||||
}
|
||||
Reference in New Issue
Block a user