Category Archives: publishing

Sketchnotes 2013 in print, yay!

Summary: You can now grab a print copy of Sketchnotes 2013 for $30 + shipping from CreateSpace.

2014-03-24 Sketchnotes 2013 in print, yay #publishing #packaging #createspace

2014-03-24 Sketchnotes 2013 in print, yay #publishing #packaging #createspace

I like organizing my sketches into collections so that people can flip through them easily. It’s a good archive too, just in case I lose files. I put together a PDF of my sketchnotes from 2012, and I recently put together one for my sketchnotes from 2013. For added flexibility, I started with a ZIP and shared Dropbox folder for Sketchnotes 2013.

Paul Klipp suggested that I look into CreateSpace as a way of making a paper version. CreateSpace is a print-on-demand publisher, so we can order copies one by one instead of stashing inventory. Paper is easier to flip through during casual moments, and it might be a good alternative. Besides, it’s handy as a personal backup, too. A lot of the sketchnotes are me thinking through stuff, so I’m not sure how useful they’ll be to other people, but you can check it out online for free to see anything is useful. =)

2014-03-24 17.15.56 2014-03-24 17.16.12

It turns out that CreateSpace’s pricing–even considering the cost of shipping–is cheaper than what it would take for me to get color prints at the local print shops, and the results are neatly bound and professional. My proof arrived today, and it looks decent. I had reduced my landscape sketches to a little less than half their size so that I could fit them two to a page. That makes reading easier because you don’t have to turn the page sideways. I was worried that the letters wouldn’t be readable, but they turned out fine. =D

End result: I can “back up” my sketches in a much more compact space, and you can get your own copy if you want. For comparison, here’s the stack of sketchbook pages I drew on and scanned.

2014-03-24 18.22.06

Sketchnotes 2013 ($30 + shipping)

Geekier details: LaTeX

I wanted to make a PDF collection, but I didn’t want to work with a gigantic Microsoft Word or Powerpoint file. I’d done that before with Stories From My Twenties and Sketchnotes 2012, and that was not fun. Anyway, I had folders of images to combine. At first, I tried using ImageMagick to tile the images into pairs and pad them with margins. That was pretty cool. Adobe Acrobat Standard allowed me to import the images and add page numbers. I created my own table of contents using Microsoft Excel, pasted that into Microsoft Word, and tweaked the numbers until they were correct. It was a tedious and error-prone process.

Marcin Borkowski suggested using LaTeX instead. It’s been years since I used LaTeX. I remember doing some of my papers in it, and they always looked so much better than anything I put together in Microsoft Word or OpenOffice. I didn’t want to deal with the potential hassle of setting up LaTeX under Windows or Cygwin. I’d gotten more used to using Vagrant and VirtualBox to run Linux-based virtual machines that shared folders with my Windows installation, and upgrading to a 1 TB drive meant that I had plenty of space.

One of the advantages of working with LaTeX is that it’s text-based and therefore easy to work with in Emacs. I wanted to break up the different sections into their own files. I started with a small category. That way, I could easily recompile a section of the PDF in order to figure out the right approach.

Because I was using Windows to look at the PDF, I often got annoyed by the preview pane file-locking that prevented me from deleting the file. I turned the preview pane off in Explorer and opened the PDF whenever I wanted to check it.

After looking up how to include images in LaTeX, I listed all the image files, redirected the output into a file, and used a keyboard macro to set up \includegraphics commands.

It’s a good thing I did that, because some of the files were facing the wrong way, and many of them were the wrong size. So I learned how to resize and rotate images like this:

\includegraphics[height=\textwidth,angle=90]{Business/2013-02-26 Creating value with social collaboration platforms}

A couple of notes:

  • \includegraphics displays filenames with spaces, which wasn’t what I wanted. Adding \usepackage{grffile} fixed it.
  • \includegraphics can’t deal with special characters like #. To be safe, I used M-x dired‘s editable mode (C-x C-q) to get rid of all the keywords I added to each filename for classification.

Since I had a lot of these commands, I figured it would be worth learning how to define my own command for them. LaTeX is like Emacs. You can define your own commands or override existing ones. This is great for making your code more manageable. For example, if I include the following definitions in my document preamble:

\newcommand{\sketch}[3][height=4.5in,width=\textwidth,keepaspectratio]{
  \addcontentsline{toc}{section}{#3}
  \includegraphics[#1]{#2/#3}\\
}
\newcommand{\sketchcw}[2]{
  \sketch[height=\textwidth,angle=270]{#1}{#2}
}
\newcommand{\sketchccw}[2]{
  \sketch[height=\textwidth,angle=90]{#1}{#2}
}

… that gave me new commands that I can use like this:

\sketchcw{Business}{2013-02-26 Creating value with social collaboration platforms}
\sketchccw{Business}{2013-03-04 New opportunities}
\sketch{Business}{2013-03-04 Sketchnotes of events}

I also wanted to include a table of contents that listed all the images, but I didn’t want to display captions since they would duplicate the title that’s already in the sketchnotes. At first, I tried to use captions and labels, but I found out that you can use \addcontentsline to adds lines to the table of contents without displaying anything in the text.

After I set up and successfully compiled a few files, I worked on creating a main document that combined everything. The subfiles package was straightforward to use.

The trickiest part was getting the chapter table of contents sorted out. In addition to having a main table of contents, I like having chapter-based tables of contents because that way, the list is closer to what you’re looking up. I eventually figured out how to use minitoc after much confusion with left-over minitoc data and chapters that were out of order. I ended up creating a Makefile to clean out all the auxiliary files and run pdflatex three or four times.

Here’s one of my early sketches trying to figure this out, back when I was using ImageMagick and Adobe Acrobat…

2014-02-27 How can I make it easy to print collections of my sketches #packaging #sharing

2014-02-27 How can I make it easy to print collections of my sketches #packaging #sharing

It’s great to be a geek!

Org Mode publishing workflow for Sketched Books collection

I want to publish things in chunks that are bigger and more logical than blog posts, so I’ve been experimenting with my ZIP/PDF/EPUB/MOBI workflow.

Org Mode, Calibre, and Vagrant are terrific tools. Org Mode lets me write easy-to-modify source that I can export to different formats, like HTML and LaTeX (with the Beamer package), which lets me use PdfLatex to convert to PDF. Calibre converts HTML to EPUB and MOBI. Since tools can be difficult to set up on Windows, I use Vagrant to set up a virtual machine running Linux and I share my working directory with it.

multiple-cursors was so useful when I was wrangling the directory listing into the right format for Org. I’m glad I learned how to use it!

Here’s a Makefile I put together that simplifies the process for me:

all: index.html sketched-books.epub sketched-books.mobi ebook.pdf sketched-books.zip

clean:
	rm -f *.dvi *.log *.nav *.out *.tex *.snm *.toc

distclean: clean
	rm -f Sketched\ Books.zip index.html *.epub *.pdf *.mobi

Sketched\ Books.zip: *.png index.html
	(cd ..; zip sketched-books/sketched-books.zip sketched-books/* -i *.css -i *.png -i *.html)

index.html: index.org
	emacs --batch -l build.el index.org -f org-html-export-to-html --kill
	cp index.html index.tmp
	sed -e "s/org-ul/org-ul small-block-grid-3/" -e 's/div id="content"/div id="content" class="columns"/' -e 's/class="status"/class="status columns"/' index.tmp > index.html
	rm -f index.html~ index.tmp

ebook.html: ebook.org
	emacs --batch -l build.el ebook.org -f org-html-export-to-html --kill

cover-base.png:
	montage *Sketched*.png -geometry -30-30 -thumbnail x400 -tile 6x5 cover.png

sketched-books.epub: ebook.html
	ebook-convert ebook.html sketched-books.epub --cover cover.png --authors "Sacha Chua" --language "English"

sketched-books.mobi: ebook.html
	ebook-convert ebook.html sketched-books.mobi --cover cover.png --authors "Sacha Chua" --language "English"

ebook.tex: ebook.org
	emacs --batch -l build.el ebook.org -f org-beamer-export-to-latex --kill

ebook.pdf: ebook.tex
	pdflatex ebook.tex
	cp ebook.pdf sketched-books.pdf
	rm ebook.pdf

And here’s a very simple build.el:

(require 'package)
(package-initialize)
(require 'ox-beamer)
(setq org-html-validation-link nil)
(setq org-export-with-section-numbers nil)
(setq backup-directory-alist '(("." . nil)))

This assumes I’ve already set up the environment by installing the latest Org from MELPA.

You can check out the index.org and ebook.org I use, too.

I’m not quite sure about the MOBI output yet. I have to test it on a Kindle, or in the app on my tablet. Most of the things display fine on my computer, though. Hooray!

Neat, huh? I want to get into the habit of making and also making it easy for me to update these things. You can check out the results at http://sketchedbooks.com/collection .

Someday I might even figure out how to use the Gumroad API to publish updated resources automatically. Wouldn’t that be neat? In the meantime, I’ll just have to replace them myself.

I like giving people the ability to choose which files to download. If I get annoyed with replacing multiple files, though, I might change this to one large ZIP that has the images, PDF, EPUB, and MOBI.

View the source on Github