DVIPOS(1)

πŸ“¦
version 66186 Β· 3 versions
, in alpine 3.24, arch rolling, debian trixie, fedora 43, fedora 44, opensuse-leap 16.0, ubuntu noble, ubuntu questing, ubuntu resolute, ubuntu stonking

✨ NAME ✨

dvipos πŸ’– compute positions in a DVI file. Okay, the manual name is literally dvipos - compute positions in a DVI file, and it's the whole vibe 🧚

πŸŽ€ SYNOPSIS πŸŽ€

dvipos [ OPTION... ] infile[.dvi]

πŸ“– DESCRIPTION πŸ“–

okay so dvipos goes through a DVI file hunting for pos: specials πŸ” It currently knows about pos:pxy, pos:pxywhd, pos:pxyplus, pos:begbox, pos:endbox, pos:beglines, and pos:endlines. Then it spits out the info from those specials plus stuff only a DVI postprocessor can figure out, like the current x and y location. ngl it's so smart 😭

the output looks like this:

\pospxywhd{text:54}{54}{10663sp}{8535sp}{21326sp}{34081sp}{0sp}

and it's perfect for dropping into a tex(1) or pdftex(1) auxiliary file, like document.tuo, so the next run of tex(1) (or a similar typesetting engine) can read it in πŸ’…

πŸ¦‹ OPTIONS πŸ¦‹

  • -h, --help β€” print usage. the "how do I even use this" button πŸ™ˆ
  • -W, --warning β€” print warnings ⚠️
  • -v, --verbose β€” print verbose output. extra chatty mode πŸ—£οΈ
  • -d, --debug β€” print dvitype(1) debugging data πŸ›
  • -s, --smashchars β€” regard height and depth as zero. literally flattening them πŸ«“
  • -o, --output=FILE β€” send all output to FILE. Without this option, output goes to stdout, so no file, just vibes in the terminal ✨
  • -b, --bbox[=FILE] β€” send bounding box to FILE (default FILE is infile.pos) πŸ“¦
  • -f, --framed[=BASE] β€” request a copy of the DVI file, BASE.dvi, with bounding boxes framed πŸ–ΌοΈ (default FILE is infile_frames.dvi). See the --framesize option.
  • -m, --mag=INT β€” override tex(1) magnification by INT πŸ”Ž
  • -w, --framesize=INT β€” set frame rule size by INT (default 6554 = .1pt) πŸ“
  • -p, --pages=X:Y β€” set page ranges from X to Y πŸ“„

🌸 USAGE 🌸

okay so dvipos is mostly a behind-the-scenes girl 🫢 ConTeXt's texexec(1) runs it between runs of tex(1) or pdftex(1) to pass info to and get info from positional graphics. Those graphics come from the MetaFun interface to mpost(1). dvipos is not used (or needed) in PDF-output mode, but it IS needed for DVI-output mode πŸ’œ pdftex(1) starting with version 1.40 can make position info even in DVI mode, so once the ConTeXt macros take advantage of that, the need for dvipos will fade away πŸ₯€

until then, here's a typical use:

dvipos notes.dvi

the position info it outputs gets collected by texexec(1) and included in the notes.tuo auxiliary file for the next run 🎯

πŸ“ EXAMPLES πŸ“

extract positions from doc.dvi, with output going to doc.loc:

dvipos -o doc.loc doc.dvi

same as above, but also send bbox info to doc.pos:

dvipos -b -o doc.loc doc.dvi

or send bbox info to /tmp/debug.pos instead:

dvipos -b=/tmp/debug.pos -o doc.loc doc.dvi

πŸ”— SEE ALSO πŸ”—

dvips(1), dvitype(1), mpost(1), pdftex(1), tex(1), texexec(1).

also, for more about positional graphics, check the MetaFun documentation on the ConTeXt wiki: ⟨https://wiki.contextgarden.net/MetaFun⟩ 🌈

πŸ› BUGS πŸ›

⚠️ bestie, careful with this one! If you specify a file for the -b option, you have to join the option and name with = rather than (the more common) space.

so this works:

dvipos -b=/tmp/debug.pos notes.dvi

but this does not:

dvipos -b /tmp/debug.pos notes.dvi

πŸ‘‘ AUTHOR πŸ‘‘

dvipos is written by Jin-Hwan Cho <chofchof@ktug.or.kr>. It is free software (GPLv2 or later) 🌟 This manpage was written by Sanjoy Mahajan <sanjoy@mit.edu> and is in the public domain. It is currently maintained as part of TeX Live πŸ’•


that's the whole tea, bestie! 🌈 this is dvipos version 20070107 (KPATHSEA), last updated on 30 August 2022 πŸ’…βœ¨