Browse Source

Added org2hpda a small utility to generate hipster pda style printouts from org mode

Christian Egli 17 years ago
parent
commit
3eafce3ac4
3 changed files with 86 additions and 0 deletions
  1. 5 0
      CONTRIB/ChangeLog
  2. 1 0
      CONTRIB/README
  3. 80 0
      CONTRIB/scripts/org2hpda

+ 5 - 0
CONTRIB/ChangeLog

@@ -1,3 +1,8 @@
+2008-02-17  Christian Egli  <christian.egli@alumni.ethz.ch>
+
+	* scripts/org2hpda: Added a Makefile for generation of hipster pda
+	style printouts
+
 2008-02-08  Phil Jackson  <phil@shellarchive.co.uk>
 
 	* scripts/dir2org.zsh: New file.

+ 1 - 0
CONTRIB/README

@@ -35,3 +35,4 @@ SCRIPTS (shell, bash, etc.)
 ===========================
 
 dir2org.zsh          --- Org compatible fs structure output
+org2hpda	     --- Generate hipster pda style printouts from Org-mode

+ 80 - 0
CONTRIB/scripts/org2hpda

@@ -0,0 +1,80 @@
+# org2hpda - a small utility to generate hipster pda style printouts from org mode 
+# Copyright (C) 2007  Christian Egli
+# 
+# Version: 0.4
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+# Commentary:
+# 
+# set cal-tex-diary to true so that diary entries show up in the calendar 
+#
+# the pdf* commands are part of the pdfjam package which can be found
+# at http://www.warwick.ac.uk/go/pdfjam
+
+EMACS = emacs -batch -l ~/.emacs
+LATEX = latex
+
+hipsterFiles =  weekCalendar.pdf yearCalendar.pdf monthCalendar3.pdf monthCalendar2.pdf monthCalendar1.pdf
+pocketModFiles =  weekCalendar.pdf yearCalendar-rotated.pdf \
+	monthCalendar3-rotated.pdf monthCalendar2-rotated.pdf monthCalendar1-rotated.pdf
+
+all: pocketMod.pdf hipsterPDA.pdf
+
+%.dvi: %.tex
+	# Quick hack to massage the LaTeX produced by cal-tex
+	# quote '@', then increase font size of week calendars and 
+	# finaly increase font of diary entries in moth calendar
+	sed 	-e 's/\\verb|@|/\@/g' \
+		-e 's/documentclass\[11pt\]/documentclass[12pt]/g' \
+		-e 's/{\\tiny \\raggedright #3}/{\\small \\raggedright #3}/g' \
+		< $< > /tmp/temp-org-file.$$$$; mv /tmp/temp-org-file.$$$$ $<
+	$(LATEX) $^
+
+%.pdf: %.dvi
+	dvipdf $^
+
+%-rotated.pdf: %.pdf
+	cp $^ $@
+	for n in 1 2 3; do \
+		pdf90 --outfile tmp.pdf $@; mv tmp.pdf $@; \
+	done
+
+weekCalendar.tex: ~/diary
+	$(EMACS) -eval "(progn (calendar) (cal-tex-cursor-week-iso 4) (with-current-buffer cal-tex-buffer (write-file \"$@\")))"
+
+monthCalendar1.tex: ~/diary
+	 $(EMACS) -eval "(progn (calendar) (cal-tex-cursor-month-landscape 1) (with-current-buffer cal-tex-buffer (write-file \"$@\")))"
+
+monthCalendar2.tex: ~/diary
+	 $(EMACS) -eval "(progn (calendar) (calendar-forward-month 1) (cal-tex-cursor-month-landscape 1) (with-current-buffer cal-tex-buffer (write-file \"$@\")))"
+
+monthCalendar3.tex: ~/diary
+	 $(EMACS) -eval "(progn (calendar) (calendar-forward-month 2) (cal-tex-cursor-month-landscape 1) (with-current-buffer cal-tex-buffer (write-file \"$@\")))"
+
+yearCalendar.tex: ~/diary
+	 $(EMACS) -eval "(progn (calendar) (calendar-forward-month 2) (cal-tex-cursor-year-landscape 1) (with-current-buffer cal-tex-buffer (write-file \"$@\")))"
+
+pocketMod.pdf: $(pocketModFiles)
+	pdfjoin --outfile tmp.pdf $^
+	pdfnup tmp.pdf --outfile $@ --nup 4x2 --frame true
+
+hipsterPDA.pdf: $(hipsterFiles)
+	pdfnup weekCalendar.pdf --outfile page1.pdf --nup 2x2 --frame true
+	pdfjoin --outfile tmp.pdf monthCalendar[1-3]-rotated.pdf yearCalendar-rotated.pdf
+	pdfnup tmp.pdf --outfile page2.pdf --nup 2x2 --frame true
+	pdfjoin --outfile $@ page1.pdf page2.pdf
+
+clean:
+	rm -rf *.aux *.dvi *.tex *.log *.pdf