[Ipe-discuss] Request for feature: iperender by page title

Zhengdao Wang zhengdao at iastate.edu
Tue Sep 13 03:18:09 CEST 2022


You could put a label on each page, by pressing Ctrl-P and enter, e.g., \label{mylabel}, and then extract these labels as part of the filename, using e.g., a script like the following:

   #!/bin/bash

   input="$1"

   pages=$(
     gawk '
     /^<page/{
       i++
       match($0, /\\label{[^}]+}/)
       if(RSTART>0)
         label=substr($0, RSTART+7, RLENGTH-8)
       else
         label=sprintf("page%02d", i)
       print label
     }' "$input"
   )

   let num=1
   echo "$pages"|while read label; do
     iperender -pdf -page $num "$input" pdf/$label.pdf
     let num=num+1
   done

which will use the label if present, and default to pagexx.pdf otherwise. It also has the added benefit that the total number of pages is adaptive.

Hope this works for you.

Zhengdao Wang

-----Original Message-----
>From: Sherif Ghali via Ipe-discuss <ipe-discuss at lists.science.uu.nl>
>Date: Mon, 12 Sep 2022 18:11:08 -0400
>To: ipe-discuss <ipe-discuss at lists.science.uu.nl>
>Subject: [Ipe-discuss] Request for feature: iperender by page title
>
>When a document contains n figures, (1+n) source files are needed. One
>file for the text, and one ipe file for each figure.
>
>This can be greatly simplified by using just one file for the text and
>one file for the drawings, and running a script such as:
>
>    #!/bin/bash
>
>    IPERENDER="/Applications/Ipe.app/Contents/MacOS/iperender"
>    IPESOURCE="drawings.ipe"
>    OPTSPREFIX="-pdf"
>    FILEEXT=".pdf"
>
>    for num in $(seq 1 7)
>    do
>        set -x
>        zero_leading_num=$(printf "%02d" $num)
>        ${IPERENDER} ${OPTSPREFIX} -page ${num} ${IPESOURCE}
>"pdf/d"${zero_leading_num}${FILEEXT}
>        set +x
>    done
>
>The files "d01.pdf", "d02.pdf", ... can then be used in the text file.
>(If you want, you can count the number of <page> nodes in the XML file
>and use that in the script.)
>
>All is good, except that as you edit the source and figures documents,
>the numbers go out of sync.
>
>Feature request: could you add a feature to enable saving by a unique
>page tag? It would work like this. Each page already has a title
>("Pages" \ "Edit title & sections"). Iperender would have an
>additional option ("-savebytitle", say) that would take the directory
>name, rather than the filename, where the output would go.
>Alternatively, and to continue reading existing documents that have
>multiple pages with the same title (without issuing a warning), add a
>"page tag" box to the UI.
>
>Thank you,
>Sherif Ghali
>_______________________________________________
>Ipe-discuss mailing list
>Ipe-discuss at lists.science.uu.nl
>https://mailman.science.uu.nl/mailman/listinfo/ipe-discuss


More information about the Ipe-discuss mailing list