diff options
author | Karl Berry <karl@freefriends.org> | 2021-09-02 20:33:03 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2021-09-02 20:33:03 +0000 |
commit | d38ef59dba4fa1def34cd6aaad21f3682f4dc13e (patch) | |
tree | 3a25998b129e96ba56663b00e7ec5ca707fd7e02 /Master/texmf-dist/tex/latex/kdpcover | |
parent | 54ab7fa9f9d9ef992876e7151759bbfc8721d651 (diff) |
kdpcover (2sep21)
git-svn-id: svn://tug.org/texlive/trunk@60404 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/kdpcover')
-rw-r--r-- | Master/texmf-dist/tex/latex/kdpcover/kdpcover.cls | 147 |
1 files changed, 147 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/kdpcover/kdpcover.cls b/Master/texmf-dist/tex/latex/kdpcover/kdpcover.cls new file mode 100644 index 00000000000..9f3355f0261 --- /dev/null +++ b/Master/texmf-dist/tex/latex/kdpcover/kdpcover.cls @@ -0,0 +1,147 @@ +% (The MIT License) +% +% Copyright (c) 2021 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 +% in the Software without restriction, including without limitation the rights +% to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +% copies of the Software, and to permit persons to whom the Software is +% furnished to do so, subject to the following conditions: +% +% The above copyright notice and this permission notice shall be included in all +% copies or substantial portions of the Software. +% +% THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +% SOFTWARE. + +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{kdpcover}[2021/09/02 0.2.2 Cover for Kindle Direct Publishing books] +\LoadClass{article} + +\newcommand*\kdppages{100} +\newlength\kdpxsize +\newlength\kdpysize + +\RequirePackage{iexec} +\RequirePackage{xkeyval} +\DeclareOptionX{6x9}{\setlength\kdpxsize{6in}\setlength\kdpysize{9in}} +\DeclareOptionX{7x10}{\setlength\kdpxsize{7in}\setlength\kdpysize{10in}} +\DeclareOptionX{8x10}{\setlength\kdpxsize{8in}\setlength\kdpysize{10in}} +\DeclareOptionX{pages}{\renewcommand*\kdppages{#1}} +\DeclareOptionX{pdf}{\renewcommand*{\kdppages}{\iexec{qpdf --show-npages #1 | tr -d '[[:space:]]' | \{ cat; echo \%; \}}}} +\ProcessOptionsX\relax + +\RequirePackage{anyfontsize} +\RequirePackage{tikz} +\RequirePackage[letterspace=-50]{microtype} +\RequirePackage{xifthen} +\RequirePackage{xcolor} +\RequirePackage{graphicx} +\RequirePackage{setspace} + \setstretch{1.2} +% The height of the page is 9 inches plus 0.125 "bleed" on top and +% on the bottom. +% Check this doc: https://kdp.amazon.com/en_US/help/topic/G201953020 +\newlength\kdpheight +\setlength\kdpheight{0.125in + \kdpysize + 0.125in} +% The width is 6 inches plus 0.125 "bleed" on each side. The width of the +% "spine" depends on the amount of pages in the book. Also, there is a +% +\newlength\kdpwidth +\setlength\kdpwidth{0.125in + \kdpxsize + 0.0025in * \kdppages + \kdpxsize + 0.125in} +\RequirePackage{geometry} + \geometry{paperwidth=\kdpwidth,paperheight=\kdpheight,left=0pt,right=0pt,top=0pt,bottom=0pt} +\RequirePackage[absolute]{textpos} + \TPGrid{16}{16} + +\newcommand\putSpine[2][kdpcover-signature]{ + \begin{textblock}{2.4}[0.5,0](8,0) + \begin{tikzpicture} + \node [rectangle, inner sep=0em, fill=black, minimum width=2.4\TPHorizModule, minimum height=16\TPVertModule] at (0,0) {}; + \end{tikzpicture} + \end{textblock} + \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 #1 + }; + \end{tikzpicture} + \end{textblock} + \begin{textblock}{2.4}[0.5,1](8,14) + \centerline{\includegraphics[width=0.32in]{#1}} + \end{textblock} +} + +\newcommand\putPicture[1]{ + \begin{textblock}{4}(10,2) + \includegraphics[width=\textwidth]{#1} + \end{textblock} +} + +\newcommand\putVolume[1]{ + \begin{textblock}{2}[1,1](15,14) + \raggedleft + \includegraphics[height=0.4in]{kdpcover-vol-#1} + \end{textblock} +} + +\newcommand\putPrice[1]{ + \begin{textblock}{4}[0,1](1,2) + \small #1 + \end{textblock} +} + +\newcommand\putBack[1]{ + \begin{textblock}{5}[0,0](1,3) + \small #1 + \end{textblock} +} + +\newcommand\putTitle[1]{ + \begin{textblock}{5}(10,9) + \fontsize{32}{32}\selectfont #1 + \end{textblock} +} + +\newcommand\putAuthor[1]{ + \begin{textblock}{4}(10,10) + \large by #1 + \end{textblock} +} + +\newcommand\putTLDR[1]{ + \begin{textblock}{5}(10,11) + TL;DR #1 + \end{textblock} +} + +\newcommand\putVersion[1]{ + \begin{textblock}{4}[0,1](10,14) + #1 + \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 + \end{textblock} +} + +\AtBeginDocument{ + \ttfamily% + \raggedright% + \setlength\parindent{0pt}% + \setlength\parskip{0pt}% + \interfootnotelinepenalty=10000 +} + +\endinput |