diff options
Diffstat (limited to 'Master/texmf-dist/doc/support/pdfjam/zsh/_pdfjam')
-rw-r--r-- | Master/texmf-dist/doc/support/pdfjam/zsh/_pdfjam | 221 |
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 |