# 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

- 2005-05-05 Bug Fix in PK Font Generation

  Dvipdfmx-20040912 and 20050201 had a bug that it fails to generate PK font. Patch: diff to src/tfm.c for 20040902-20050504.

- 2005-03-05 Bug Fix in MetaPost Support

  Dvipdfmx-20040824 and 20050201 had a bug that it doesn't correctly handle text strings in MetaPost output. (CJK-LaTeX and HLaTeX users are affected.) Patch: diff to src/mpost.c for 20050201-20050304.

- 2005-02-01 Important Note

  A few bugs were fixed, which occurred either in subfont scheme, e.g., CJK-LaTeX or HLaTeX, or in Truetype fonts with CIDType2 format. We encourage the users to recompile the source in the CVS repository (with the tag DVIPDFMX-20050201). For MiKTeX 2.4 users, see note in the section Binary Packages.

- 2005-08-03 Graphics and Image Support

  Experimental embedded ICC profile support for JPEG and PNG format images. BMP image format is supported. Bug fixes on `TPIC` support.

- 2004-08-03 Unicode Support

  A new encoding keyword "unicode" can be specified in fontmap file for TrueType and Type1 font. TrueType font must have Windows UCS2 (format 4) or UCS4 (format 12) cmap subtable. Glyph list file (PS glyph name to Unicode mapping) is required for Type1 font support. Automatic creation and embedding of ToUnicode CMap is available for Type 1, TrueType, and OpenType font.

## 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/. 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

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

  An up-to-date implementation of TeX and related programs for Microsoft Windows maintained by Christian Schenk. Cabinet binary packages of dvipdfmx for MiKTeX version 2.2, 2.3, and 2.4 is available from snapshot/miktex/ directory of the dvipdfmx project site.

- 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.

DVIPDFMx in the MiKTeX 2.4 distribution does not work smoothly due to several reasons. We encourage users to update as follows:

1. Download the latest version of dvipdfmx program executable dvipdfmx.exe, an update for MiKTeX 2.4 configuration file miktex.ini for dvipdfmx, and an archive file ttf2pk.zip (a collection of various SFD files) from snapshot/miktex/2.4/ directory of the dvipdfmx project site. And obtain Adobe Glyph List 2.0 from the Adobe's Developers site (rename it as glyphlist.txt if file name is different).

2. Replace dvipdfmx program executable C:\texmf\miktex\bin\dvipdfmx.exe with the one downloaded above.

3. Update your MiKTeX configuration file C:\texmf\miktex\config\miktex.ini by replacing it with the one obtained above, or modify that manually as appropriate if you have your own settings (i.e., the configuration is different from the initial installation). The required changes are search path sections of `ttf2pk` and `ttf2tfm` programs.

4. Extract the archive file ttf2pk.zip into the directory C:\texmf (or in other adequate places).

5. Place glyphlist.txt file under the dvipdfmx application data directory, e.g., C:\texmf\dvipdfm.

## 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.

### 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 at the TUG 2003 conference.

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

- Aleph

  The Aleph project aims to build a usable version of Omega, incorporating e-TeX extensions from the NTS project. Some information and link to Aleph package can be found in the Aleph entry of the TeX FAQ and Aleph manual (link to PDF file) available from www.pragma-ade.com.

- ASCII pTeX

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

- CJK-LaTeX

  A LaTeX 2ε 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 beta version of ConTeXt since December 4, 2002. Choose `dvipdfmx` as output option.

- HLaTeX

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

- Japanese TeX FAQ

  A page maintained by Haruhiko Okumura. (In Japanese)

- KTUG

  Korean TeX Users Group. (In Korean)

- Omega

### 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.

- Arphic TrueType and Wang TrueType Font

  Several Chinese TrueType fonts can be found from ftp://freebsd.sinica.edu.tw/pub/keith/.

- 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.

- Microsoft Global Input Method Editors...

  ... Further Enhance East Asian Text Input: Add-on packages for Microsoft Global IME. You can find TrueType fonts as a part of additional language packs for use with Microsoft Windows OS. MS Hei and MS Song (Simplified Chinese), MingLiu (Traditional Chinese), GulimChe (Korean), and MS Gothic (Japanese) are available.

### Specifications

Useful documents and resources for developers.

- Adobe Solutions Network | Product and Technical Resources

  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`.