summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/kdpcover
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2025-01-02 20:33:47 +0000
committerKarl Berry <karl@freefriends.org>2025-01-02 20:33:47 +0000
commitda0372dbcaed79e78057cc9d2c237ed5a5c1fc48 (patch)
treed9fcaa1b7628be82901f43baca7af7d1499a1cf4 /Master/texmf-dist/tex/latex/kdpcover
parent37929848e536ed580ef7b4a42f3821b53cc9c362 (diff)
kdpcover (2jan25)
git-svn-id: svn://tug.org/texlive/trunk@73275 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/kdpcover')
-rw-r--r--Master/texmf-dist/tex/latex/kdpcover/kdpcover.cls114
1 files changed, 66 insertions, 48 deletions
diff --git a/Master/texmf-dist/tex/latex/kdpcover/kdpcover.cls b/Master/texmf-dist/tex/latex/kdpcover/kdpcover.cls
index 125fa6c0526..5ec4f4ac5e4 100644
--- a/Master/texmf-dist/tex/latex/kdpcover/kdpcover.cls
+++ b/Master/texmf-dist/tex/latex/kdpcover/kdpcover.cls
@@ -7,7 +7,7 @@
%% kdpcover.dtx (with options: `class')
%% (The MIT License)
%%
-%% Copyright (c) 2021-2022 Yegor Bugayenko
+%% Copyright (c) 2021-2024 Yegor Bugayenko
%%
%% Permission is hereby granted, free of charge, to any person obtaining a copy
%% of this software and associated documentation files (the 'Software'), to deal
@@ -31,7 +31,7 @@
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{kdpcover}
-[2022.11.30 0.5.1 Cover for Kindle Direct Publishing books]
+[2025/01/02 0.6.0 Cover for Kindle Direct Publishing books]
@@ -58,35 +58,47 @@
\LoadClass{article}
\makeatletter
-\newcommand*\kdp@pages{100}
+\newcount\kdp@pages
+ \kdp@pages=100
\newlength\kdp@xsize
-\setlength\kdp@xsize{6in}
+ \setlength\kdp@xsize{6in}
\newlength\kdp@ysize
-\setlength\kdp@ysize{9in}
+ \setlength\kdp@ysize{9in}
\makeatother
\RequirePackage{iexec}
-\RequirePackage{xkeyval}
+\RequirePackage{pgfopts}
\makeatletter
-\DeclareOptionX{6x9}
- {\setlength\kdp@xsize{6in}\setlength\kdp@ysize{9in}}
-\DeclareOptionX{7x10}
- {\setlength\kdp@xsize{7in}\setlength\kdp@ysize{10in}}
-\DeclareOptionX{8x10}
- {\setlength\kdp@xsize{8in}\setlength\kdp@ysize{10in}}
-\DeclareOptionX{pages}
- {\renewcommand*\kdp@pages{#1}}
-\newif\ifkdp@barless
-\DeclareOptionX{barless}{\kdp@barlesstrue}
-\DeclareOptionX{pdf}{%
- \iexec[trace,quiet,stdout=kdpcover-pages-count.txt]
- {qpdf --show-npages #1 | tr -d '[[:space:]]' | \{ cat; echo \%; \}}%
- \newread\kdp@pagescount%
- \openin\kdp@pagescount=kdpcover-pages-count.txt
- \read\kdp@pagescount to \kdp@pages%
+\pgfkeys{
+ /kdp/.cd,
+ barless/.store in = \kdp@barless,
+ pdf/.code = {
+ \iexec[trace,quiet,stdout=kdpcover-pages-count.txt]
+ {qpdf --show-npages --no-warn #1 | tr -d '[[:space:]]'}
+ \openin1=kdpcover-pages-count.txt
+ \read1 to \temp
+ \closein1
+ \kdp@pages=\temp
+ },
+ 6x9/.code = {
+ \setlength\kdp@xsize{6in}
+ \setlength\kdp@ysize{9in}
+ },
+ 7x10/.code = {
+ \setlength\kdp@xsize{7in}
+ \setlength\kdp@ysize{10in}
+ },
+ 8x10/.code = {
+ \setlength\kdp@xsize{8in}
+ \setlength\kdp@ysize{10in}
+ },
+ pages/.code = {
+ \kdp@pages=#1
+ }
}
-\ProcessOptionsX\relax\makeatother
+\ProcessPgfPackageOptions{/kdp}
+\makeatother
\RequirePackage{anyfontsize}
\RequirePackage{tikz}
@@ -99,26 +111,33 @@
\setstretch{1.2}
\makeatletter
- \newlength\kdp@height
+\newlength\kdp@height
\setlength\kdp@height{0.125in + \kdp@ysize + 0.125in}
- \newlength\kdp@width
+\newlength\kdp@width
\setlength\kdp@width{
0.125in + \kdp@xsize
- + 0.0025in * \kdp@pages
- + \kdp@xsize + 0.125in}
+ + 0.125in + \kdp@xsize
+ + 0.0025in * \kdp@pages}
\makeatother
\RequirePackage{geometry}
\makeatletter
-\geometry{paperwidth=\kdp@width,paperheight=\kdp@height,
- left=0pt,right=0pt,top=0pt,bottom=0pt}
+\geometry{
+ paperwidth=\kdp@width,
+ paperheight=\kdp@height,
+ left=0pt,
+ right=0pt,
+ top=0pt,
+ bottom=0pt
+}
\makeatother
\RequirePackage[absolute]{textpos}
\TPGrid{16}{16}
-\makeatletter\newcommand\putSpine[2][kdpcover-signature]{%
- \ifkdp@barless\else
+\makeatletter
+\newcommand\putSpine[2][kdpcover-signature]{%
+ \ifdefined\kdp@barless\else%
\begin{textblock}{2.4}[0.5,0](8,0)%
\begin{tikzpicture}%
\node [rectangle, inner sep=0em, fill=black,
@@ -126,19 +145,20 @@
minimum height=16\TPVertModule] at (0,0) {};
\end{tikzpicture}%
\end{textblock}%
- \fi
+ \fi%
\begin{textblock}{1}[0.5,0](8,2)%
\begin{tikzpicture}%
\node [color=white, inner sep=0cm, outer sep=0cm,
rotate=270, minimum height=\TPHorizModule] at (0,0) {
- \Large #2
- };%
+ \Large #2%
+ };
\end{tikzpicture}%
\end{textblock}%
\begin{textblock}{2.4}[0.5,1](8,14)%
\centerline{\includegraphics[width=0.32in]{#1}}%
\end{textblock}%
-}\makeatother
+}
+\makeatother
\newcommand\putPicture[1]{%
\begin{textblock}{4}(10,2)%
@@ -148,54 +168,54 @@
\newcommand\putVolume[1]{%
\begin{textblock}{2}[1,1](15,14)%
- \raggedleft
- \includegraphics[height=0.4in]{kdpcover-vol-#1}
+ \raggedleft%
+ \includegraphics[height=0.4in]{kdpcover-vol-#1}%
\end{textblock}%
}
\newcommand\putPrice[1]{%
\begin{textblock}{4}[0,1](1,2)%
- \small #1
+ \small #1%
\end{textblock}%
}
\newcommand\putBack[1]{%
\begin{textblock}{5}[0,0](1,3)%
- \small #1
+ \small #1%
\end{textblock}%
}
\newcommand\putTitle[1]{%
\begin{textblock}{5}(10,9)%
- \fontsize{32}{32}\selectfont #1
+ \fontsize{32}{32}\selectfont #1%
\end{textblock}%
}
\newcommand\putAuthor[1]{%
\begin{textblock}{4}(10,10)%
- \large by #1
+ \large by #1%
\end{textblock}%
}
\newcommand\putTLDR[1]{%
\begin{textblock}{5}(10,11)%
- TL;DR #1
+ TL;DR #1%
\end{textblock}%
}
\newcommand\putVersion[1]{%
\begin{textblock}{4}[0,1](10,14)%
- #1
+ #1%
\IfFileExists{.git}
{\quad\iexec{git log -n 1 --pretty='format:\%ad' --date='format:\%e-\%b-\%Y'}}
- {}
+ {}%
\end{textblock}%
}
\newcommand\putCopyright[2]{%
\begin{textblock}{4}[0,1](1,14)%
- \small (c)
- #1 #2
+ \small (c)%
+ #1 #2%
\end{textblock}%
}
@@ -206,8 +226,6 @@
\setlength\parskip{0pt}%
\interfootnotelinepenalty=10000%
}
-
-
\endinput
%%
%% End of file `kdpcover.cls'.