#!/usr/bin/env python # -*- coding: utf-8 -*- """Golden Mean for Scribus. This script creates supplementary guides on the page to help design the "right" layout in golden mean (golden ratio). See scribus.net and CVS for fresh versions to come... REQUIREMENTS: Scribus - CVS version later 02/24/2004 or later release 1.5 MORE INFO: See e.g. http://home.att.net/~vmueller/prop/theo.html or Google for more theory :) CONTACT: email : petr@yarpen.cz Feature requests and bug reports welcomed LICENSE: 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 2 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, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. """ import sys try: from scribus import * except ImportError: print "This script only runs from within Scribus." sys.exit(1) from math import sqrt def goldenMean(aSize=0): """x = (?5-1)/2""" return aSize * ((sqrt(5) - 1)/2) def main(): # remember user settings unit = getUnit() # set my environment - points needed setUnit(0) # Paper format paper = pageDimension() # set the guides. The get* functions are for "remembering" the old ones... setVGuides(getVGuides() + [goldenMean(paper[0]), paper[0] - goldenMean(paper[0])]) setHGuides(getHGuides() + [goldenMean(paper[1]), paper[1] - goldenMean(paper[1])]) # restore user settings setUnit(unit) if __name__ == '__main__': if haveDoc(): main() else: messageBox("Golden Mean.py", "Please run this script with a document already open", ICON_INFORMATION);