len=5mm # Cross arm length
dist=5mm # Distance from border
-book
- signature=<n>
+| book
+| signature=<n>
# Crop to image box
crop
| merge
-modulo
- half
+| modulo
+| half
| # Add an empty page after the current one
| add-blank
class modulo_cmd : public cmd_exec {
pipeline *pipe;
int n;
+ bool half;
public:
modulo_cmd(cmd *c)
{
n = c->arg("n")->as_int(0);
if (n <= 0)
die("Modulo must have n > 0");
+ half = c->arg("half")->as_int(0);
pipe = c->pipe;
}
vector<page *> process(vector<page *> &pages) override;
{
vector<page *> out;
int tuples = ((int) pages.size() + n - 1) / n;
+ int use_tuples = half ? tuples/2 : tuples;
- for (int tuple=0; tuple < tuples; tuple++)
+ for (int tuple=0; tuple < use_tuples; tuple++)
{
debug("# Tuple %d", tuple);
debug_indent += 4;
static const arg_def modulo_args[] = {
{ "n", AT_INT | AT_MANDATORY | AT_POSITIONAL },
+ { "half", AT_SWITCH },
{ NULL, 0 }
};