Printing with custom inks is of interest both for artistic purposes and for printing security documents such as banknotes. However, in order to create designs with only a few custom inks, a general purpose high-quality gamut reduction technique is needed. Most existing gamut mapping techniques map an input gamut such as the gamut of a CRT display into the gamut of an output device such as a CMYK printer. In the present contribution, we are interested in printing with up to three custom inks, which in the general case define a rather narrow color gamut compared with the gamut of standard CMYK printers. The proposed color gamut reduction techniques should work for any combination of custom inks and have a smooth and predictable behavior. When the black ink is available, the lightness levels present in the original image remain nearly identical. Original colors with hues outside the target gamut are projected onto the gray axis or onto desaturated colors. Original colors with hues inside the target gamut hues are rendered as faithful as possible. When the black ink is not available, we map the gray axis G into a colored curve G' connecting in the 3D color space the paper white and the darkest available color formed by the superposition of the 3 inks. The mapped gray axis curve G' is given by the Neugebauer equations when enforcing equal amounts of custom inks. After lightness mapping, hue and saturation mappings are carried out. When the target gamut does not incorporate the gray axis, we divide it into two volumes, one on the desaturated side of the mapped gray axis curve G' and the other on the saturated side of the G' curve. Colors whose hues are not part of the target color gamut are mapped to colors located on the desaturated side of the G' curve. Colors within the set of printable hues remain within the target color gamut and retain as much as possible their original hue and saturation.