summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/ebook
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/ebook
Initial commit
Diffstat (limited to 'macros/latex/contrib/ebook')
-rw-r--r--macros/latex/contrib/ebook/README28
-rw-r--r--macros/latex/contrib/ebook/ebook.sty92
2 files changed, 120 insertions, 0 deletions
diff --git a/macros/latex/contrib/ebook/README b/macros/latex/contrib/ebook/README
new file mode 100644
index 0000000000..02feacbe23
--- /dev/null
+++ b/macros/latex/contrib/ebook/README
@@ -0,0 +1,28 @@
+The file ebook.sty contains a brief description.
+
+Intended use is
+
+ \documentclass{...}
+ \usepackage{ebook}
+ ...
+ \begin{document}
+ \ebook % be careful if not the first command
+ ...
+ \end{document}
+
+Results have been tested with a Kindle e-ink and an iPad mini only.
+In both cases the loaded document was rendered almost as expected. A
+command, \pagefill (to be used instead of \newpage), is motivated by a
+weakness in Kindle's pdf presentation.
+
+Proper rendering depends on the unit's pdf-reader, and Kindle's is a
+little weak in its handling of partly filled pages.
+
+Essentially the page size is set by using the geometry package with
+the text area set to 90%. In addition ebook.sty sets the pagestyle to
+empty (including the first page of the ToC).
+
+Ebook.sty is in the Public Domain.
+
+Author: Jørgen Steensgaard
+
diff --git a/macros/latex/contrib/ebook/ebook.sty b/macros/latex/contrib/ebook/ebook.sty
new file mode 100644
index 0000000000..4b2cb7ab17
--- /dev/null
+++ b/macros/latex/contrib/ebook/ebook.sty
@@ -0,0 +1,92 @@
+%%% ====================================================================
+%%% @LaTeX-style-file{
+%%% author = "Jørgen Steensgaard",
+%%% version = "1",
+%%% date = "1 March 2013",
+%%% time = "20:50:55 BST",
+%%% filename = "ebook.sty",
+%%% email = "jsm@steensgaard.org",
+%%% codetable = "ISO/ASCII",
+%%% keywords = "LaTeX, page layout for PDF-ebooks",
+%%% supported = "no",
+%%% docstring = "Page description etc. suitable for writing
+%%% PDF-documents intended to be read on a
+%%% ebook renderers.
+%%% Uses packages moreverb, graphics and hyperref.
+%%% Sets \family- and seriesdefault.
+%%% Removes display of chapter numbers (ToC incl.)
+%%% Provides \ebook as a command that includes
+%%% details needed in the document section.
+%%% "
+%%% }
+%%% ====================================================================
+%
+% This file, ebook.sty, is in the public domain
+\AtBeginDocument{\addtocontents{toc}{\protect\thispagestyle{empty}}}
+\usepackage[ % Page description:
+ % common alternatives are a4paper, a5paper etc.
+ paperwidth=12cm, % horizontal screen size
+ paperheight=16cm, % vertical ditto
+ scale=0.9 % derive other layout details
+]{geometry}
+\usepackage{graphicx}
+\usepackage{hyperref}
+\usepackage{moreverb}
+
+\renewcommand{\familydefault}{cmss}
+\renewcommand{\seriesdefault}{sbc}
+\sffamily % sans-serif for readability
+\mdseries % extra font weight
+\setcounter{secnumdepth}{0}
+\setcounter{tocdepth}{2}
+\pagestyle{empty}
+
+
+\providecommand{\pagefill}[1][0.001mm]{
+\vfill\noindent
+\rule{#1}{#1}
+\newpage\noindent
+}
+
+\providecommand{\ebook}{
+\sffamily % sans-serif for readability
+\mdseries % extra font weight
+\setcounter{secnumdepth}{0}
+\setcounter{tocdepth}{2}
+\pagestyle{empty}
+\Large
+}
+
+\makeatletter
+\renewcommand{\@chapter}[2][]{%
+ \thispagestyle{empty}
+ \ifnum \c@secnumdepth >\m@ne
+ \refstepcounter{chapter}%
+ % \typeout{\@chapapp\space\thechapter.}%
+ \addcontentsline{toc}{chapter}{#1}%
+ % {\protect\numberline{}#1}%
+ \else
+ \addcontentsline{toc}{chapter}{#2}%
+ \fi
+ \chaptermark{#1}%
+ \addtocontents{lof}{\protect\addvspace{10\p@}}%
+ \addtocontents{lot}{\protect\addvspace{10\p@}}%
+ \@makechapterhead{#2}%
+ \@afterheading
+}
+\renewcommand{\@makechapterhead}[1]{%
+ % \vspace*{50\p@}%
+ {\parindent \z@ \raggedright \normalfont
+ \interlinepenalty\@M
+ \Huge \bfseries #1\par\nobreak
+ \vskip 40\p@
+ }}
+\renewcommand{\@makeschapterhead}[1]{%
+ % \vspace*{50\p@}%
+ {\parindent \z@ \raggedright
+ \normalfont
+ \interlinepenalty\@M
+ \Huge \bfseries #1\par\nobreak
+ \vskip 40\p@
+ }}
+\makeatother