return p == 0
 
 
-def transform(provider, slug=None, file_path=None, output_file=None, output_dir=None, make_dir=False, verbose=False, save_tex=None):
+def transform(provider, slug=None, file_path=None, 
+              output_file=None, output_dir=None, make_dir=False, verbose=False, save_tex=None, morefloats=None):
     """ produces a PDF file with XeLaTeX
 
     provider: a DocProvider
     make_dir: writes output to <output_dir>/<author>/<slug>.pdf istead of <output_dir>/<slug>.pdf
     verbose: prints all output from LaTeX
     save_tex: path to save the intermediary LaTeX file to
+    morefloats (old/new/none): force specific morefloats
     """
 
     # Parse XSLT
             document = load_including_children(provider, slug=slug)
 
         # check for LaTeX packages
-        if not package_available('morefloats', 'maxfloats=19'):
-            # using old morefloats or none at all
-            document.edoc.getroot().set('old-morefloats', 'yes')
+        if morefloats:
+            document.edoc.getroot().set('morefloats', morefloats.lower())
+        elif package_available('morefloats', 'maxfloats=19'):
+            document.edoc.getroot().set('morefloats', 'new')
 
         # hack the tree
         move_motifs_inside(document.edoc)
 
         </TeXML>
 
         <xsl:choose>
-            <xsl:when test="@old-morefloats">
+            <xsl:when test="@morefloats = 'new'">
                 <TeXML escape="0">
-                    \IfFileExists{morefloats.sty}{
-                        \usepackage{morefloats}
-                    }{}
+                    \usepackage[maxfloats=64]{morefloats}
                 </TeXML>
             </xsl:when>
+            <xsl:when test="@morefloats = 'old'">
+                <TeXML escape="0">
+                    \usepackage{morefloats}
+                </TeXML>
+            </xsl:when>
+            <xsl:when test="@morefloats = 'none'" />
             <xsl:otherwise>
                 <TeXML escape="0">
-                    \usepackage[maxfloats=64]{morefloats}
+                    \IfFileExists{morefloats.sty}{
+                        \usepackage{morefloats}
+                    }{}
                 </TeXML>
             </xsl:otherwise>
         </xsl:choose>
 
                       help='specifies the output file')
     parser.add_option('-O', '--output-dir', dest='output_dir', metavar='DIR',
                       help='specifies the directory for output')
+    parser.add_option('-m', '--morefloats', dest='morefloats', metavar='old/new/none',
+                      help='force morefloats in old (<1.0c), new (>=1.0c) or none')
     (options, args) = parser.parse_args()
 
     if len(args) < 1:
         exit(1)
 
     try:
+        if options.output_dir and options.output_file:
+            raise ValueError("Either --output-dir or --output file should be specified")
+
         for main_input in args:
             if options.verbose:
                 print main_input
             path, fname = os.path.realpath(main_input).rsplit('/', 1)
             provider = DirDocProvider(path)
 
-            output_dir = output_file = None
+            output_file = output_dir = None
             if options.output_dir:
                 output_dir = options.output_dir
             elif options.output_file:
             else:
                 output_dir = path
 
-            pdf.transform(provider, file_path=main_input, output_file=output_file, output_dir=output_dir, make_dir=options.make_dir, verbose=options.verbose, save_tex=options.save_tex)
+            pdf.transform(provider, 
+                file_path=main_input, 
+                output_file=output_file, 
+                output_dir=output_dir,
+                verbose=options.verbose,
+                make_dir=options.make_dir,
+                save_tex=options.save_tex,
+                morefloats=options.morefloats
+                )
     except ParseError, e:
-        print '%(file)s:%(name)s:%(message)s' % {
+        print '%(file)s:%(name)s:%(message)s; use -v to see more output' % {
             'file': main_input,
             'name': e.__class__.__name__,
             'message': e.message