- Integrate pdf-tools.cc with the rest of the code
-- What if an input page specifies /Rotate?
-- Better error messages from instantiation
-- page->index: use or remove
-- rename page->bbox to page->image_box?
-
-| # Position bbox on a new paper
-| paper("a4")
-| paper(w=210mm,h=297mm,pos=(t|b|c)(l|r|c))
-
-| # Scale paper to a new size
-| scaleto("a4")
-| scaleto(w=210mm,h=297mm,pos=tl)
-
-| # Fit image to a paper
-| # If paper is given: scale image
-| # If no paper is given: adjust paper to image + margins
-| fit("a4")
-| fit(w=, h=)
-| margin= hmargin= vmargin=
-| lmargin= rmargin= tmargin= bmargin=
-| pos=
-
-| # Adjust paper size
-| expand(10mm)
-| expand(h=10mm, v=20mm)
-| expand(l=10mm, r=10mm, t=10mm, b=10mm)
-
-| # Adjust image size (in terms of margins around)
-| margins ... params like expand
-
-cropmarks
- style=box # Box around image
- style=cross # Crosses in the corners
- style=halfcross # Half-crosses in the corners (default)
- pen=1pt # Line width
- len=5mm # Cross arm length
- dist=5mm # Distance from border
-
-book
- signature=<n>
-
-# Crop to image box
-crop
- bleed=5mm # Allow bleeding over the image box
-
+- "-f" switch
+- What should do modulo(half) with an odd number of tuples? Improve, or at least document.
+- Modulo with last tuple incomplete: sometimes, not padding the last tuple can be useful
+ (e.g., "flip every other page")
+- Document use of negative numbers in ranges
+- Allow use of page labels to refer to pages
+- Better range syntax for "from N to end" or "the whole document"
+- nup: allow stacking ("1 3 5 7" "2 4 6 8")
+
+Ideas for further commands:
+
+# Can be written as: mix(cat) { modulo(2){1}, modulo(2){2} }
duplex
long-edge
-| merge
-
-modulo
- half
-
-# Add an empty page after the current one
-add-blank
-
-# Set either:
-# - paper size + margins
-# - scale + margins
-nup(hnum, vnum)
- paper / w / h # Specify paper size, default=copy from 1st image
- + fit options (*margin, pos)
- crop # Crop to image
- rotate=1 # Override rotation decision
- scale=1 # Override scaling factor
- tile # Tile with copies of a single page
- hspace / vspace / space # Distance between tiles
- + cropmarks?
+# Send pages to multiple pipes and merge their results
+mix { ..., ..., ...}
+ cat # Concatenate results (default is interleave)
+ cycle # When one pipe ends earlier, cycle it from start
+ pad # When one pipe ends earlier, add blank pages