Lots of changes.

This commit is contained in:
2025-08-28 16:56:27 -05:00
parent f4571bcbcf
commit 168dca350f
8 changed files with 275 additions and 97 deletions

View File

@@ -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}%
}%
}