summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/support/pdfjam/zsh/_pdfjam
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/support/pdfjam/zsh/_pdfjam')
-rw-r--r--Master/texmf-dist/doc/support/pdfjam/zsh/_pdfjam221
1 files changed, 221 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/support/pdfjam/zsh/_pdfjam b/Master/texmf-dist/doc/support/pdfjam/zsh/_pdfjam
new file mode 100644
index 00000000000..cb4d1af58ea
--- /dev/null
+++ b/Master/texmf-dist/doc/support/pdfjam/zsh/_pdfjam
@@ -0,0 +1,221 @@
+#compdef pdfjam
+
+_pdfjam() {
+ local paperformats=(a0 a1 a2 a3 a4 a5 a6 b0 b1 b2 b3 b4 b5 b6 c0 c1 c2 c3 c4 c5 c6 ansia ansib ansic ansid ansie letter legal executive b0j b1j b2j b3j b4j b5j b6j)
+ local options=(
+ # positional parameters
+ '*:file or pagespec:_files -g \*.\(pdf\|ps\|eps\|jpg\|png\)'
+ # pdfjam options
+ '(- :)'{-h,--help}'[Print help message.]'
+ '(- :)'{-V,--version}'[Print the version number.]'
+ "(- :)--configpath[Print the 'configpath' variable.]"
+ {-q,--quiet}'[Suppress verbose commentary on progress.]'
+ '--batch[Run pdfjam sequentially on each input file in turn, and produce a separate output file for each input.]'
+ {-o,--outfile}'[File or directory name for output(s).]:output:_output'
+ '--suffix[Suffix for output, when file name is not given explicitely.]:string: '
+ '(--no-checkfiles)--checkfiles[Use `file` utility to determine file type.]'
+ '(--checkfiles)--no-checkfiles[Rely on file extension to determine file type.]'
+ '*--preamble[Append code to the LaTeX preamble.]:tex code: '
+ '(--no-keepinfo)--keepinfo[Preserve Title, Author, Subject and Keywords (from the last input PDF) in the output PDF file.]'
+ '(--keepinfo)--no-keepinfo[Do not preserve Title, Author, Subject and Keywords in the output PDF file.]'
+ '--pdftitle[Set Title of the output PDF file.]:string: '
+ '--pdfauthor[Set Author of the output PDF file.]:string: '
+ '--pdfsubject[Set Subject of the output PDF file.]:string: '
+ '--pdfkeywords[Set Keywords of the output PDF file.]:string: '
+ '(--no-otheredge)--otheredge[Rotate every odd page by 180 degrees.]'
+ '(--otheredge)--no-otheredge[Do not rotate every odd page by 180 degrees.]'
+ '(--no-landscape)--landscape[Exchange width and height of paper, usually resulting in landscape.]'
+ '(--landscape)--no-landscape[Keep specified orientation of paper, usually resulting in portrait.]'
+ "(--no-twoside)--twoside[Specify 'twoside' document class option.]"
+ "(--twoside)--no-twoside[Do not specify 'twoside' document class option.]"
+ '--flip-other-edge[For signatures/booklets: flip paper for duplex printing on the other edge.]:bool:(true false)'
+ '--pagecolor[Background color.]:rgb:_pagecolor'
+ '(--builddir --tidy)--no-tidy[Preserve temporary build directory.]'
+ '(--builddir --no-tidy)--tidy[Clean temporary build directory.]'
+ '(--tidy --no-tidy)--builddir[Build directory.]:directory:_files -/'
+ '--latex[LaTeX engine to be used.]:engine:_absolute_command_paths:'
+ '--runs[Run latex N times, for each output document made.]:number of runs:_numbers -l 1 "number of runs"'
+ '--vanilla[Suppress the reading of any pdfjam configuration files.]'
+ '--enc[Command-line encoding.]:encoding:_enc'
+ # \includepdfmerge options
+ '--pages[Select pages to insert.]:pagespec: '
+ '--nup[Put multiple logical pages onto each sheet of paper.]:XxY:_nup'
+ '--landscape[Rotate output sheet format by 90 degrees.]:bool:(true false)'
+ '--delta[Put some horizontal and vertical space between the logical pages.]:Xdim Ydim:_dimens "\\ " "horizontal space,vertical space"'
+ '--offset[Displace the origin of the inserted pages.]:Xdim Ydim:_dimens "\\ " "horizontal displacement,vertical displacement"'
+ '--frame[Put a frame around each logical page.]:bool:(true false)'
+ '--column[Use column-major layout, where successive pages are arranged in columns down the paper.]:bool:(true false)'
+ '--columnstrict[For column-major layout only: Do not balance the columns on the last page.]:bool:(true false)'
+ '--openright[Put an empty page before the first logical page.]:bool:(true false)'
+ '--openrighteach[Put an empty page before the first logical page of each file.]:bool:(true false)'
+ '--pagecommand[Declare LATEX commands, which are executed on each sheet of paper.]:TEX: '
+ '--pagecommand\*[Declare LATEX commands, which are executed on the very first page only.]:TEX: '
+ '--picturecommand[Similar to pagecommand, but executed within a picture environment with base point at the lower left page corner.]:TEX: '
+ '--picturecommand\*[Similar to picturecommand, but for very first page only.]:TEX: '
+ '--turn[Tell PDF viewer to display landscape pages in lanscape orientation. On by default.]:bool:(true false)'
+ '--noautoscale[Suppress automatic scaling of pages.]:bool:(true false)'
+ '--fitpaper[Adjust the paper size to the one of the inserted document.]:bool:(true false)'
+ '--reflect[Reflect included pages.]:bool:(true false)'
+ '(--templatesize)--pagetemplate[Declare page to be used as a template. All other pages are scaled such that they match within its size.]:page number: '
+ '(--pagetemplate)--templatesize[Specify size of page template. All pages are scaled such that they match within this size.]:{Xdim}{Ydim}:_dimens , width,height'
+ '--rotateoversize[Rotate oversized pages.]:bool:(true false)'
+ '--link[Each inserted page becomes the target of the hyperlink ⟨filename⟩.⟨page number⟩.]:bool:(true false)'
+ '--linkname[For link option only: Change the linkname base from ⟨filname⟩ to name.]:name: '
+ '--thread[Combine inserted pages to an article thread.]:bool:(true false)'
+ '--threadname[For thread option only: Change the thread name from ⟨filename⟩ to name.]:name: '
+ '--linkfit[For link option only: Specify, how the viewer displays a linked page.]:destination:_linkfit'
+ '--addtotoc[Add an entry to the table of contents.]:page number, section, level, heading, label:_addtotoc'
+ '--addtolist[Add an entry to the list of figures, the list of tables, or any other list.]:page number, type, heading, label:_addtolist'
+ '--pagebox[Specify which PDF bounding box specification to read.]:bounding box:(mediabox cropbox bleedbox trimbox artbox)'
+ # \includegraphicx options
+ '--viewport[Consider image to consist of given rectangle only.]:left bottom right top:_dimens "\\ " left,bottom,right,top'
+ '--trim[Similar to viewport, but here the four lengths specify the amount to remove or add to each side.]:left bottom right top:_dimens "\\ " left,bottom,right,top'
+ '--angle[Rotation angle.]:angle:compadd -o nosort $(seq 0 15 345)'
+ '--origin[Origin for rotation.]:origin:(c l r b t bl br tl tr)'
+ '--width[Required width. The graphic is scaled to this width.]:width:_dimen width'
+ '--height[Required height. The graphic is scaled to this height.]:height:_dimen height'
+ '--totalheight[Required height+depth. Differs from height if rotation has occured.]:height:_dimen height'
+ '--keepaspectratio[Do not distort figure if both width and height are given.]:bool:(true false)'
+ '--scale[Scale factor.]:float: '
+ '--clip[Clip the graphic to the viewport.]:bool:(true false)'
+ '--draft[Switch to draft mode.]:bool:(true false)'
+ '--interpolate[Enable interpolation of bitmap images by the viewer.]:bool:(true false)'
+ # \includepdfmerge groups
+ + '(booklet)'
+ '--signature[Create booklets by rearranging pages into signatures of 2 pages each.]:signature size:compadd -o nosort $(seq 4 4 96)'
+ '--signature\*[Similar to signature, but for right-edge binding.]:signature size:compadd -o nosort $(seq 4 4 96)'
+ '--booklet[Same as signature with signature size chosen such that all pages fit into one signature.]:bool:(true false)'
+ '--booklet\*[Similar to booklet, but for right-edge binding.]:bool:(true false)'
+ + '(duplicatepages)'
+ '--doublepages[Insert every page twice.]:bool:(true false)'
+ '--doublepagestwist[Insert every page twice: once upside down and once normally.]:bool:(true false)'
+ '--doublepagestwistodd[Insert every page twice: once normally and once upside down.]:bool:(true false)'
+ '--doublepagestwist\*[Insert every page twice: for odd pages, the first copy is upside down; for even pages, the second copy.]:bool:(true false)'
+ '--doublepagestwistodd\*[Insert every page twice: for odd pages, the second copy is upside down; for even pages, the first copy.]:bool:(true false)'
+ '--duplicatepages[Insert every page multiple times.]:number: '
+ # pdfjam paper group
+ + '(paper)'
+ "--paper[Paper size.]:paper name:($paperformats)"
+ "--papersize[Specify a paper size as 'WIDTH,HEIGHT'.]:width,height:_dimens , width,height"
+ --${^paperformats:#b?j}paper
+ --${(M)^paperformats:#b?j}
+ )
+ _arguments -S $options
+}
+
+_output() {
+ _alternative 'file:pdf:_files -g \*.pdf' 'directory:path:_files -/'
+}
+
+_dimen() {
+ local units=(
+ ':bp:point (1/72 in)'
+ 'pt:point (1/72.27 in)'
+ mm:millimeter
+ cm:centimeter
+ 'in:inch (2.54 cm)'
+ 'sp:scaled point (1/65536 pt)'
+ 'pc:pica (12 pt)'
+ 'dd:Didot point (1.07 pt)'
+ 'cc:Cicero (12 dd)'
+ 'ex:x-height (height of lowercase x)'
+ 'em:font size (height of capital M)'
+ )
+ _numbers -f -u bp "$@" $units
+}
+
+_dimens() {
+ local sep="$argv[-2]"
+ typeset -a names=("${(s:,:)argv[-1]}")
+ typeset -i i=$#names
+ shift -p 2
+ while ((--i)); do compset -P $i "*$sep" && break; done
+ ((++i))
+ [[ $i = $#names ]] || argv+=(-S "$sep")
+ _dimen "$@" "$names[$i]"
+}
+
+_nup() {
+ setopt extendedglob
+ case "$PREFIX" in
+ [0-9]##x[0-9]#) compset -P '*x'; _numbers -l 1 "$@" vertical ;;
+ [0-9]##) compset -P '*'; _numbers -l 1 "$@" horizontal; compadd "$@" -S '' x ;;
+ [0-9]#) _numbers -l 1 "$@" horizontal ;;
+ *) return 1 ;;
+ esac
+}
+
+_pagecolor() {
+ if compset -P 3 '*,'; then return 1
+ elif compset -P 2 '*,'; then
+ _numbers -l 0 -m 255 "$@" blue
+ elif compset -P 1 '*,'; then
+ _numbers -l 0 -m 255 "$@" green
+ else
+ _numbers -l 0 -m 255 "$@" red
+ fi
+}
+
+_linkfit() {
+ local expl tag
+ if compset -P 1 '*\ '; then
+ _numbers 'distance in points (1/72 in)'
+ else
+ compadd "$@" Fit FitB Region
+ compadd -S '\ ' "$@" FotV FotBH FitBV
+ fi
+}
+
+_addtotoc() { # {page number, section, level, heading, label}
+ local close expl
+ if compset -P '*\{'; then close='\}'
+ elif compset -P '*{'; then close='}'
+ fi
+ if ! compset -P 1 '*,'; then
+ compset -P '*'
+ _description -x string expl 'page number' && compadd "$expl[@]"
+ _description -x separator expl comma && compadd "$expl[@]" ,
+ elif ! compset -P 2 '*,'; then
+ _alternative 'level:level:(part,0, section,1, subsection,2, subsubsection,3,)'
+ elif ! compset -P 1 '*,'; then
+ compset -P '*'
+ _description -x string expl heading && compadd "$expl[@]"
+ _description -x separator expl comma && compadd "$expl[@]" ,
+ elif ! compset -P 1 '*,' && ! compset -P "*$close"; then
+ _description -x string expl 'LaTeX label' && compadd "$expl[@]"
+ [[ -n "$close" ]] && _description -x delimiter expl brace && compadd -Q "$expl[@]" - "$close"
+ fi
+}
+
+_addtolist() { # {page number, type, heading, label}
+ local close
+ if compset -P '*\{'; then close='\}'
+ elif compset -P '*{'; then close='}'
+ fi
+ if ! compset -P 1 '*,'; then
+ compset -P '*'
+ _description -x string expl 'page number' && compadd "$expl[@]"
+ _description -x separator expl comma && compadd "$expl[@]" ,
+ elif ! compset -P 1 '*,'; then
+ _alternative 'type:type:(figure, table,)'
+ elif ! compset -P 1 '*,'; then
+ compset -P '*'
+ _description -x string expl heading && compadd "$expl[@]"
+ _description -x separator expl comma && compadd "$expl[@]" ,
+ elif ! compset -P 1 '*,' && ! compset -P "*$close"; then
+ _description -x string expl 'LaTeX label' && compadd "$expl[@]"
+ [[ -n "$close" ]] && _description -x delimiter expl brace && compadd -Q "$expl[@]" - "$close"
+ fi
+}
+
+_enc() {
+ local enc=$(iconv -l)
+ enc=${(@q)${(ou)${${(f)enc}%//}}}
+ _alternative "encoding:code set:($enc)"
+}
+
+if [[ $zsh_eval_context[-1] == loadautofunc ]]; then
+ _pdfjam "$@"
+else
+ compdef _pdfjam pdfjam
+fi