---
name: "dvipdfmx"
section: "1"
platform: "linux"
package: "texlive-doc"
version: "2026.1-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/dvipdfmx"
---

# dvipdfmx(1)

produce PDF files directly from DVI files

## NAME

dvipdfmx, xdvipdfmx, dvipdfm - produce PDF files directly from DVI files

## SYNOPSIS

**dvipdfmx** or **dvipdfm** \[*options*\] *file* \[**.dvi**\]

## DESCRIPTION

The program **dvipdfmx** generates a PDF file from a DVI file.  DVI files are the output produced by TeX. **groff** can also generate DVI files using **grodvi**(-Tdvi).

In TeX Live, **dvipdfm** is another incarnation of **dvipdfmx** rather than a separate program.  Compatibility is attempted as best as possible.

**xdvipdfmx** is another incarnation.  It is used as the back end for [**xetex**(1)](/xetex/1.md) and is not intended to be invoked directly.

**dvipdfmx** recognizes several commonly used **\\special** commands, which are extensions to the DVI format.  Specifically, it understands color specials, papersize specials, tpic specials (which allow it to be used with **pic**), hypertex specials, and some PostScript specials.  These extensions allow documents to contain color, figures, and hyperlinks.  The program tries to mimic the behavior of **dvips** where possible, so that many macro packages produced for use with **dvips** will also work with  **dvipdfmx**. In addition, **dvipdfmx** understands its own specific **\\special** commands to allow access to PDF features such as annotations and bookmarks.

As of December 2018, one such special specific to **dvipdfmx** is *pdf:trailerid*, which specifies the /ID in the PDF trailer. It is used like this (from the TeX level):\
 \\special{pdf:trailerid \[ (0123456789abcdef) (01234567890abcdef) \]}\
 That is, the special takes an array (the square brackets) of two 16-byte PDF strings (the parentheses). This is the same syntax as LuaTeX's *\\pdfvariable trailerid*, while different from pdfTeX's *\\pdftrailerid*. It must appear on the first output page, otherwise it is ignored.

Unrecognized specials will generate warning messages. Packages that may need a  **dvipdfm** or **dvipdfmx** driver option include  *geometry*, *hyperref*, *bookmark*, *graphicx*, and *xcolor*.

For issues related to bounding boxes (and hence image sizes), see [**extractbb**(1)](/extractbb/1.md).

## OPTIONS

Unlike with many other programs, argument values must be separated from option names by a space, not an = sign; option names cannot be abbreviated; and - and -- cannot be used interchangeably.

- **-c**

  Ignore (or accept) color **\\specials**. By default, color **\\special**s are interpreted normally (changeable in the configuration file).  The **-c** option may be used to produce a black and white document from a document containing color TeX **\\special** commands.

- **--dvipdfm**

  Enable **dvipdfm** emulation mode.  This is the default if the executable name is \`dvipdfm'.

- **-d number**

  Specify the number of decimal digits in the PDF output; must be between 0 and 5, default is 2.

- **-e**

  Ignored, for (semi-)compatibility with **dvipdfm**.

- **-f map\_file**

  Read the font map file given by *map\_file*. The default map file in TeX Live is *pdftex.map*, as defined in the configuration file.

- **--help**

  Show a help message and exit successfully.

- **-i cfgfile**

  Read *cfgfile* as another include file, after reading the default *dvipdfmx.cfg*.

- **--kpathsea-debug number**

  Have Kpathsea output debugging information; \`-1' for everything (voluminous).

- **-l**

  Select landscape mode.  In other words, exchange the  *x* and *y* dimensions of the paper.

- **-m mag**

  Magnify the input document by *mag*.

- **-o filename**

  Set the PDF output file name; use \`-' for stdout. By default, the name of the output file is derived from the input, that is, *file*.pdf.

- **-p paper**

  Select the papersize by name (e.g., **letter**, **legal**, **ledger**, **tabloid**, **a3**, **a4**, or **a5** )

- **--pdfm-str-utf8**

  Assume PDFMark strings in **\\special** commands are encoded in UTF-8.

- **-q**

  Quiet mode.

- **-r size**

  Set resolution of bitmapped fonts to **size** dots per inch.  Bitmapped fonts are generated by the Kpathsea library, which uses Metafont.  Bitmapped fonts are included as Type 3 fonts in the PDF output file.  Default is 600.

- **-s page\_specifications**

  Select the pages of the DVI file to be processed; default is \`-', meaning all pages.  The *page\_specifications* consists of a comma separated list of *page\_ranges*:

  ```
  page_specifications := page_specification[,page_specifications]

  ```

  where

  ```
  page_specification := single_page|page_range
  page_range := [first_page]-[last_page]

  ```

  An empty *first\_page* is treated as the first page of the DVI file, and an empty *last\_page* is treated as the last page of the DVI file.

  Examples:

  - **-s 1,3,5**

    includes pages 1, 3, and 5;

  - **-s -**

    includes all pages;

  - **-s -,-**

    includes two copies of all pages in the DVI file; and

  - **-s 1-10**

    includes the first ten pages of the DVI file.

- **-t**

  Search for thumbnail images of each page in the directory named by the **TMPDIR** environment variable.  The thumbnail images must be named in a specific format: the same base name as the DVI file and the page number as the extension to the file name. **dvipdfmx** does not generate such thumbnails itself, but it is distributed with a wrapper program named **dvipdft** that does so.

- **--version**

  Show a help message and exit successfully.

- **-v**

  Increase verbosity. Results of the  **-v** option are cumulative (e.g.,  **-vv** increases the verbosity by two increments).  Maximum verbosity is four.

- **-x x\_offset**

  Set the left margin to  *x\_offset*. The default left margin is **1.0in**. The dimension may be specified in any units understood by TeX (e.g., **bp**, **pt**, **in**, **cm**).

- **-y y\_offset**

  Set the top margin to  *y\_offset*. The default top margin is **1.0in**. The dimension may be specified in any units understood by TeX (e.g., **bpt**, **pt**, **in**, **cm**).

- **-z number**

  Set the compression level to  *compression\_level*. Compression levels range from 0 (no compression) to 9 (maximum compression) and correspond to the values understood by zlib; default is 9.

- **-C number**

  Miscellaneous option flags; see the --help output for details.

- **-D template**

  PostScript to PDF conversion command line template; the default is taken from the configuration file, which also gives all the details and mentions several possibilities.

- **-E**

  Always try to embed fonts, ignoring licensing flags, etc.

- **-I number**

  Image cache life in hours; default is -2, meaning to not cache images at all.  A value of -1 means to erase all old images and also new images; 0 means to erase all old images but leave new images.

- **-K number**

  Encryption key length; default 40.

- **-M**

  Process MetaPost PostScript output.

- **-O number**

  Set maximum depth of open bookmark items; default 0.

- **-P number**

  Set permission flags for PDF encryption; default 0x003C.

- **-S**

  Enable PDF encryption.

- **-V number**

  Set PDF minor version; default 5 (from the configuration file).

## IMAGE BOUNDING BOXES

When including images with  **dvipdfmx**, their bounding boxes should be generated by running **extractbb**. The result will be in an **.xbb** file; the xbb information is the same as for the PDF format.

## ENVIRONMENT

**dvipdfmx** uses the **kpathsea** library for locating the files that it opens.  Hence, the environment variables documented in the *Kpathsea library* documentation influence **dvipdfmx**. It also uses the value of the environment variable TMPDIR as the directory to search for thumbnail images of each page.

## FILES

The precise location of the following files is determined by the *Kpathsea library* configuration.  The location may be determined by using kpsewhich, e.g.,

```
kpsewhich -progname=dvipdfmx -format='other text files' dvipdfmx.cfg
```

- *dvipdfmx.cfg*

  Default configuration file

- *dvipdfmx-unsafe.cfg*

  Configuration file that runs Ghostscript without safety checks; use only for trusted source files. It is currently required to use PSTricks with XeTeX: **xetex -output-driver="xdvipdfmx -i dvipdfmx-unsafe.cfg -q -E" ...**

- *pdftex.map*

  The default font map file (this may be changed in the config file).

- *\*.tfm*

  TeX font metrics

- *\*.vf*

  TeX virtual font files

- *\*.pfb*

  PostScript Type 1 font files

- *texmf.cnf*

  The Kpathsea library configuration file. The location of this file may be found by typing

  ```
  kpsewhich texmf.cnf
  ```

## SEE ALSO

[dvipdft(1)](/dvipdft/1.md), [extractbb(1)](/extractbb/1.md),\
 [tex(1)](/tex/1.md), [luatex(1)](/luatex/1.md), [xetex(1)](/xetex/1.md), [dvips(1)](/dvips/1.md),\
 [groff(1)](/groff/1.md), [grodvi(1)](/grodvi/1.md), [pic(1)](/pic/1.md), the Kpathsea library Info documentation (https://tug.org/kpathsea), and the Dvipdfmx User's Manual (in the distribution, and linked from https://tug.org/dvipdfmx).

## AUTHOR

Primarily Mark A. Wicks; dvipdfmx extensions primarily by Jin-Hwan Cho, Shunsaku Hirata, and Matthias Franz. For the version in TeX Live, please send bugs and other reports to the maintainers at dvipdfmx (at) tug.org (https://lists.tug.org/dvipdfmx).

This man page edited for TeX Live by Bob Tennent and others. This man page is public domain.
