On Tue, Mar 23, 2021 at 10:39:50PM +0900, Akira Yokosawa wrote: > Hi Balbir, > > I am surprised to see perfbook's LaTeX codebase works fairly well > in the ebook paper size. > > Impressive, indeed! > > A few inline comments: > > On Tue, 23 Mar 2021 20:38:22 +1100, Balbir Singh wrote: > > On Mon, Mar 22, 2021 at 10:23:54PM -0700, Paul E. McKenney wrote: > >> On Tue, Mar 23, 2021 at 12:01:53PM +1100, Balbir Singh wrote: > > ... > >> Very good! > >> > >> But would it be possible to create a separate build target for this > >> combination? Just in case others are using 1c for normal-sized paper? > >> > > > > Add support for ebooksize, which is roughly the size of > > a kindle (4.5in, 6.3in) with margin size of 0.2in. The > > recommended changes were taken from stackexchange with > > links in the code. Not all tables take nicely to the > > new size and warnings are produced, these warnings are about > > about overfull hbox's. This size/target also enforces > > single column output and increases the size of the pdf > > by almost 40% in terms of number of pages. The actual size > > on the disk is not all that different. The final output > > though is very readable on the kindle I own. > > > > I've been running the command via > > > > env PERFBOOK_PAPER=ER make perfbook-er.pdf > > Do you still need to set PERFBOOK_PAPER? > > > > > TODOs: > > 1. Make tables and some figures work nicely in this mode > > Shrinking tables and figures is not so hard, but to shrink tall > code snippets might be tricky. > > I have some ideas to do them. Can you wait a couple of days? > I'll post some PoC scheme for you to base your further tuning. > > Just shrinking tables and code snippets might result in > illegibly small font, though. > > > 2. Consider scaling the font > > You mean the font size of 10pt is too large for ebook readers? What fraction of ebook readers allow zooming in to small figures? Smartphones do, but I have no idea on Kindles and the like. And thank you both -- this is something that people have been requesting for a long time! Thanx, Paul > Thanks, Akira > > > > > Signed-off-by: Balbir singh <bsingharora@xxxxxxxxx> > > --- > > Makefile | 10 +++++++++- > > perfbook-lt.tex | 13 ++++++++++++- > > 2 files changed, 21 insertions(+), 2 deletions(-) > > > > diff --git a/Makefile b/Makefile > > index db20da96..37ee76aa 100644 > > --- a/Makefile > > +++ b/Makefile > > @@ -29,7 +29,7 @@ LATEXGENERATED = autodate.tex qqz.tex contrib.tex origpub.tex sub_qqz > > # parallel runs of divideqqz.pl. > > > > TWOCOLTARGETS := mstx msr msn msnt sf qq nq ix > > -ABBREVTARGETS := lt hb a4 1c tcb msns mss $(TWOCOLTARGETS) $(foreach v,$(TWOCOLTARGETS),1c$(v)) > > +ABBREVTARGETS := lt hb a4 1c tcb msns mss er $(TWOCOLTARGETS) $(foreach v,$(TWOCOLTARGETS),1c$(v)) > > > > PDFTARGETS := perfbook.pdf $(foreach v,$(ABBREVTARGETS),perfbook-$(v).pdf) > > GENERATED_MAIN := $(filter-out perfbook-lt.tex,$(foreach v,$(ABBREVTARGETS),perfbook-$(v).tex)) perfbook.tex > > @@ -178,10 +178,14 @@ ifeq ($(PERFBOOK_PAPER),A4) > > else > > ifeq ($(PERFBOOK_PAPER),HB) > > PERFBOOK_BASE = perfbook-hb.tex > > +else > > +ifeq ($(PERFBOOK_PAPER),ER) > > + PERFBOOK_BASE = perfbook-er.tex > > else > > PERFBOOK_BASE = perfbook-lt.tex > > endif > > endif > > +endif > > > > .PHONY: all touchsvg clean distclean neatfreak 2c ls-unused $(ABBREVTARGETS) mslm perfbook-mslm.pdf mslmmsg help help-official help-full > > all: $(targ) > > @@ -283,6 +287,10 @@ perfbook-1c.tex: $(PERFBOOK_BASE) > > perfbook-hb.tex: perfbook-lt.tex > > sed -e 's/setboolean{hardcover}{false}/setboolean{hardcover}{true}/' < $< > $@ > > > > +perfbook-er.tex: perfbook-lt.tex > > + sed -e 's/setboolean{ebooksize}{false}/setboolean{ebooksize}{true}/' < $< > $@ > > + sed -i 's/setboolean{twocolumn}{true}/setboolean{twocolumn}{false}/' $@ > > + > > perfbook-msns.tex: $(PERFBOOK_BASE) > > sed -e 's/%msfontstub/\\usepackage{courier}/' < $< > $@ > > > > diff --git a/perfbook-lt.tex b/perfbook-lt.tex > > index e76d4d7b..a884011a 100644 > > --- a/perfbook-lt.tex > > +++ b/perfbook-lt.tex > > @@ -116,6 +116,9 @@ > > \newboolean{hardcover} > > \setboolean{hardcover}{false} > > \newcommand{\IfHardCover}[2]{\ifthenelse{\boolean{hardcover}}{#1}{#2}} > > +\newboolean{ebooksize} > > +\setboolean{ebooksize}{false} > > +\newcommand{\IfEbookSize}[2]{\ifthenelse{\boolean{ebooksize}}{#1}{#2}} > > \newboolean{afourpaper} > > \setboolean{afourpaper}{false} > > \newcommand{\IfAfourPaper}[2]{\ifthenelse{\boolean{afourpaper}}{#1}{#2}} > > @@ -320,6 +323,14 @@ > > \usepackage[letterpaper,body={6.5in,8.25in},twocolumn,columnsep=0.25in]{geometry} > > }}}{ % One Column > > \setlength{\twocolumnwidth}{3.125in} > > + \IfEbookSize { > > + % From https://tex.stackexchange.com/questions/16735/latex-options-for-kindle > > + \usepackage[papersize={4.5in,6.3in},margin=0.2in,onecolumn]{geometry} > > + \sloppy > > + %\pagestyle{empty} > > + %\usepackage[scaled]{helvet} > > + %\renewcommand{\familydefault}{\sfdefault} > > + }{ > > \IfHardCover{ > > \usepackage[papersize={8.25in,10.75in},body={4.75in,8.25in},onecolumn]{geometry} > > }{ > > @@ -327,7 +338,7 @@ > > \usepackage[a4paper,body={4.75in,8.25in},onecolumn]{geometry} > > }{ > > \usepackage[letterpaper,body={4.75in,8.25in},onecolumn]{geometry} > > - }} > > + }}} > > \geometry{hcentering=true} % horizontal centering for 1c layouts > > } > > \IfAfourPaper{ > >