# THE DVIPDFMx PROJECT

The DVIPDFMx project provides an eXtended version of the dvipdfm, a DVI format to PDF translator developed by Mark A. Wicks. The primary goal of this project is to support multi-byte character encodings and large character sets for East Asian languages by CID-keyed font technology. The secondary goal is to support as many features as pdfTeX developed by Hàn Thê Thành. This project is a combined work of the dvipdfm-jpn project by Shunsaku Hirata and its modified one, dvipdfm-kor by Jin-Hwan Cho.

Choosing stylesheet Screen will show side-menu and select sans-serif font at smaller size, and stylesheet Plain will hide side-menu and select serif font at medium size.

## What's New

- 2011-03-11 Released the snapshot 20110311

  Snapshot for the upcoming TeX Live 2011. See ChangeLog for more details.

- 2010-03-28 Released the snapshot 20100328

  Snapshot for the upcoming TeX Live 2010. See ChangeLog for more details.

- 2009-07-08 Released the snapshot 20090708

  Very slight changes for TeX Live 2009. See ChangeLog for more details.

- 2009-05-22 Released the snapshot 20090522

  Snapshot for the upcoming TeX Live 2009. See ChangeLog for more details.

- 2009-04-18 Support PGF Version 2.00 CVS

  Support PGF and TikZ version 2.00 CVS since April 18, 2009. The style patch and the document patch were applied to the main stream. These patches work with DVIPDFMX-20080607 (included in texlive 2008) or later.

- 2009-01-15 Released the snapshot 20090115

  Some bugs were fixed and codes were polished mainly by Matthias. See ChangeLog for more details.

- 2008-06-07 Released the snapshot 20080607

  Support PGF and TikZ version 2.00 written by Till Tantau and Alexander Grahn's two packages, `animate.sty [2008/06/03]` and `movie15.sty [2008/01/16]`. For this purpose, some DVI specials were expanded and some were newly created.

- 2008-05-26 Run DVIPDFMx Mailing List

  Subscribe at DVIPDFMx Mailing List page and its Archives.

- 2008-05-24 Released the snapshot 20080524 for TeXLive 2008

  Fix the timezone bug in asn_data() based on the dvipdfm-0.13.2d code; this patch was suggested by Nobuyuki Tsuchimura.

  A few remaining bugs (not serious) and compiler warnings were fixed.

- 2008-05-20 Released the snapshot 20080520

  DVIPDFMx can extract bounding box information if it is linked as extractbb (`.xbb`) or ebb (`.bb`); suggested by Karl Berry.

  Allow page import from tagged PDF files. It is also possible to handle PDF images of version 1.5.

  Fix the problem with MusiXTeX's Type1 fonts; reported by Yasuhiro Okazaki and Jean-Pierre Coulon. DVIPDFMx now reads character widths from TFM in the case of simple fonts (type1, type1c, and truetype). However, it does not refer TFM in the case of Type0 fonts (usually for two-byte characters).

- 2008-05-17 Released the snapshot 20080517

  DVIPDFMx no longer use `dvipdfm` as its application name. It means that DVIPDFMx finds its configuration file at `$TEXMF/dvipdfmx/dvipdfmx.cfg`. Moreover, fontmap files with DVIPS/pdfTeX format are supported too. See dvipdfmx.cfg.

  Truetype fonts with Mac OS X data/resource fork format are supported. It means that almost all fonts including `Zapfino.dfont` in Mac OS X can be used with DVIPDFMx.

  New 'page' option is introduced in PDF image inclusion. With the DVIPDFMx driver for LaTeX graphics package, `dvipdfmx.def`, it is possible to include a specified page in a PDF file, for example,

      \includegraphics[page=4]{a.pdf}

  Moreover, `.xbb` is automatically generated if `latex -shell-escape` is used. MPS files generated by MetaFun are supported too. Improved PDF document parsing, and a few bugs were fixed. See ChangeLog for more details.

- 2007-11-15 Released the snapshot 20071115

  Applied a few patches mostly given by Matthias Franz. Now work well with MetaPost 1.000 even if prologues:=3 is given.

- 2007-05-18 Released the snapshot 20070518

  New program "xbb" is included, which generates ".xbb" file containing the bounding box information. For bitmap images, DVIPDFMx generates the same result as pdfTeX if ".xbb" is used, and as DVIPDFM if ".bb" is used. A few bugs were fixed too. See the CVS source for more details.

- 2007-04-09 Released the snapshot 20070409

  Xref and object stream were implemented for PDF v1.5 or higher to reduce the size of the PDF output (contributed by Matthias Franz). A few bugs were fixed too. See the CVS source for more details.

## Obtaining DVIPDFMx

The DVIPDFMx project basically does not offer pre-compiled binary packages. See, the section Binary Packages for obtaining binary packages for each platforms.

### Source Code

You can obtain the latest snapshot from http://project.ktug.or.kr/dvipdfmx/snapshot/latest/. An anonymous access to the CVS repository is also available: You can update your local copy of DVIPDFMx source code via following commands:

    cvs -d:pserver:anonymous@cvs.ktug.or.kr:/home/cvsroot login
    cvs -d:pserver:anonymous@cvs.ktug.or.kr:/home/cvsroot co dvipdfmx

When prompted for a password for `anonymous` account, just press the `Enter` key. You can browse CVS repositories through browser interface at http://cvs.ktug.or.kr/viewcvs/dvipdfmx/.

To compile DVIPDFMx, you need at least the kpathsea library which is used for finding location of various resource files, and DVIPDFMx won't work without this library properly installed. Kpathsea library version heigher than 3.3 is recommended. In addition to this, the zlib data-compression library is required for compression support. Both zlib and libpng library is required for reading PNG format image files. DVIPDFMx optionally support libpaper library for handling paper sizes. Please read README file for more details.

Default search path for various resource files required by DVIPDFMx, namely SFD, CMap, and OpenType font files, may be different in recent installation of TeX, and DVIPDFMx may fail to find those files if you update kpathsea library and DVIPDFMx without adjusting existing `texmf` directory structure. In this case, please follow the instruction described in the section TeX Directory Structure (TDS) of README file.

### Binary Packages

- W32TeX: http://www.fsci.fuk.kindai.ac.jp/kakuto/win32-ptex/

  A TeX package for Microsoft Windows platforms based on Web2c, maintained by Akira Kakuto; including pTeX, jTeX, GhostScript and many other localized version of TeX related programs especially useful for typesetting Japanese text.

- MiKTeX: http://www.miktex.org

  An up-to-date implementation of TeX and related programs for Microsoft Windows maintained by Christian Schenk.

- MacTeX: http://www.tug.org/mactex/

  A complete TeX system for Mac OS X, supporting TeX, LaTeX, AMSTeX, ConTeXt, XeTeX and many other packages. It is a project undertaken by the MacTeX TeXnical working group of the TeX Users Group to create an easy-to-install TeX distribution for Mac OS X.

## Features

Most features and enhancement added to dvipdfm is related to multi-byte encoding and font support, especially for supporting CJK languages.

### Font and Encoding

DVIPDFMx supports various encodings in rather unintuitive way (due to various reasons). For 8-bits encodings, it supports `.enc` format glyph encoding file (used by `dvips` program) with few extensions undocumented here and remapping of a set of 8-bit encoded TeX fonts to a single double-byte font with SFD file support. And it can also support various multibyte encodings (excluding state-full encoding) by loading PostScript CMap resource. Not all encodings are supported depending on format of font to be used.

The following font formats are supported:

- PostScript Type1

  PostScript Type1 format font is supported as in dvipdfm, but they are converted to CFF format (for reducing PDF file size when compression is enabled) and always embedded as a font subset. Currently usable only with 8-bit encodings. Multiple-Master font is not supported yet.

- OpenType

  All flavours of OpenType fonts is supported: OpenType font with PostScript outline, TrueType outline, and as CIDFont in an OpenType wrapper. However, as DVIPDFMx is not a text manipulation program nor layout program, it supports only a part of OpenType features; partial support for OpenType `GSUB` Layout table just enough for supporting vertical writing, some of ligatures, small-caps, and so on.

- TrueType

  Both TrueType and TTC format is supported. There are several enhancement to dvipdfm including font subsetting. They may be embedded as a TrueType font or as a `CIDFontType` 2 CIDFont.

### PDF Encryption

Encrypted PDF files can be generated if the `-S` option is given. The key bits (40-128 bits) and the permission flags are specified either in the configuration file `dvipdfmx.cfg` or with command line options `-K` (for key bits) and `-P` (for permission flags).

### Graphics Support

All graphics format supported in dvipdfm is also supported in DVIPDFMx with few improvement: A little enhancement on PDF inclusion (can handle dvipdfm output PDF). Improved PNG support; alpha channel and `tRNS` chunk is fully supported. Indexed-color image is no longer converted to 24-bit RGB color image. Experimental embedded ICC profile support for JPEG and PNG format images. Windows BMP format is also supported in DVIPDFMx.

Nearly arbitrary graphics format can be supported with the help of external program as long as they can be translated into single page PDF image (like dvipdfm). There are few improvement on interpreting and translating PostScript code inserted with `\special` command or read from MetaPost output PostScript files. But there are still many limitations and restrictions.

## Examples

Sample outputs of DVIPDFMx is available from the sample/ directory of the DVIPDFMx project site.

Some of examples presented in this section contains embedded CJK TrueType fonts. You need a PDF viewer supporting at least PDF version 1.3. For printing with PostScript printers, you may need CID-keyed font supporting printer, depending on how PDF files are converted to PostScript format.

### PGF Manuals compiled by DVIPDFMx

- PGF Version 2.00-cvs (2009-04-18), PGF Version 2.00 (included in texlive 2008), and PGF Version 1.01.

### ConTeXt

Most of examples are contributed by Lei Wang.

- Chinese Zodiac

  Nice example by Lei Wang. Chinese zodiac and it's explanation: zodiac.pdf. This document will be opened in fullscreen mode. Please press `ESC` key to show menu bar in Adobe Reader.

- Examples contributed by Lei Wang

  ConTeXt examples with Chinese. GBK encoding is used in source files. TrueType font embedded in PDF. Bookmarks [PDF (bookmark.pdf), TeX (bookmark.tex)], PDF Interaction [PDF (help-test.pdf), TeX (help-test.tex)], and MetaPost graphics [PDF (mp-test.pdf), source archive (mp-test.tar.gz)].

- Other ConTeXt Examples

  Page Size Changes [PDF (papersize.pdf), TeX (papersize.tex)] and Color Shading Example [PDF (color-shading.pdf), TeX (color-shading.tex)].

### CJK-LaTeX Package

A testsuite for testing CJK-LaTeX compatibility is available: testsuite_cjk-latex.tar.gz containing cjkmix2 for testing various CJK encodings and TrueType font support with CJK-LaTeX package + DVIPDFMx.

- HunMinJeongEum

  TrueType font embedded, 88K bytes. Contributed by Kangsoo Kim.

- KwanDongByeolGok

  TrueType embedded, 257K bytes.

- UTF8 text with several languages mixed

  Bitstream Cyberbit TrueType font is embedded, 43K bytes.

### HLaTeX Package

- Korean MS-Windows TrueType Fonts

  KS encoding was used in the source. TrueType (no embedded font) with stylistic variants, 19K bytes. You need MS-Windows Korean TrueType fonts, `batang.ttc` and `gulim.ttc`.

- The Not So Short Introduction to LaTeX2e (Korean)

  KS encoding. TrueType embedded, 1.1M bytes. Contributed by the lshort-kr project team.

## Resources

This section contains documents related to DVIPDFMx, some useful information for typesetting CJK text with TeX, and a small list of freely available fonts, etc...

### DVIPDFMx Documents

There are no HTML nor PDF manulas for DVIPDFMx available yet, however, as DVIPDFMx is an extended version of dvipdfm, basic usage is not different from the original one. Please refer The Dvipdfm User's Manual and other documents contained in DVIPDFM distribution. The README file may contain brief instruction for installation, short description of additional resources, and summary of extension made in DVIPDFMx. There are few documents related to DVIPDFMx available from the doc/ section of the DVIPDFMx project site:

- DVIPDFMx, an eXtension of DVIPDFM, PDF version of presentation given by Jin-Hwan Cho at the TUG 2003 conference at Hawaii.

- Practical Use of Special Commands in DVIPDFMx, PDF version of presentation given by Jin-Hwan Cho at the TUG 2005 conference at Wuhan, China.

- DVI specials for PDF generation by Jin-Hwan Cho, TUGboat 30 (2009), no. 1.

Abstract. DVIPDFM(x) manages various PDF eﬀects by means of DVI specials. Appropriate documentation of DVI specials, however, is not easy to ﬁnd, and exact functionality is not simple to catch without reading the source code of DVI drivers. This paper deals with the DVI specials deﬁned in DVIPDFM(x) that are mainly used for PDF generation. We discuss the features of those specials with some examples, many of which are not documented elsewhere.

- DVIPDFMx Mailing List and Archives.

### TeX Related, LaTeX Packages, and Extended TeX Engines

- ASCII pTeX

  A localized (Japanese) version of TeX. Extensions for typesetting Japanese text and vertical writing.

- CJK-LaTeX

  A LaTeX macro package which enables the use of CJK scripts (Chinese/Japanese/Korean) in various encodings, written by Werner Lemberg.

- ConTeXt

  The ConTeXt driver file spec-dpx.tex for DVIPDFMx is contained in the distribution of ConTeXt since December 4, 2002. Choose `dvipdfmx` as output option.

- ko.TeX and the former HLaTeX

  Packages for typesetting Korean language with LaTeX, includes Korean localization and fonts.

- XeTeX

  A TeX typesetting engine using Unicode and supporting modern font technologies such as OpenType or Apple Advanced Typography. It is written and maintained by Jonathan Kew. XeTeX uses the source code of DVIPDFMx for its xdvipdfmx on Windows and Linux.

- Japanese TeX FAQ

  A page maintained by Haruhiko Okumura. (In Japanese)

- KTUG

  Korean TeX Users Group. (In Korean)

### CJK or Unicode Font

Many CJK/Unicode fonts are freely available in various formats and in a variety of qualities.

- Asian and Central European font packs for Adobe Reader

  Several OpenType CID-keyed fonts are freely available from Adobe for use with Adobe Reader. It also contains several CMap resources for standard CJK encodings and useful ToUnicode CMaps. In the recent version of asian font pack, no san-serif font...

- Alan Wood's Unicode Resources

  ... Unicode and Multilingual Support in HTML, Fonts, Web Browsers and Other Applications. List of Unicode TrueType/OpenType fonts available for various platforms, along with Unicode ranges covered by each font.

- Korean Un Fonts

  Several Korean TrueType fonts can be found from http://kldp.net/projects/unfonts/. (in Korean)

- Gentium - a typeface for the nations

  Available from SIL international. Gentium is a typeface family designed to enable the diverse ethnic groups around the world who use the Latin script to produce readable, high-quality publications. It supports a wide range of Latin-based alphabets and includes glyphs that correspond to all the Latin ranges of Unicode.

### Specifications

Useful documents and resources for developers.

- Adobe Developer Connection

  Resources for Developers, Print Service Providers, and others interested in making the most of Adobe products and technologies.

- OpenType specification

  OpenType Specification from Microsoft Corporation.

DVI standard is available from `CTAN:dviware/driv-standard`.