             return ChartTheme.screenParams
         case .presentation:
             return ChartTheme.presentationParams
-        case .print:
-            return ChartTheme.printParams
+        case .colorPrint:
+            return ChartTheme.colorPrintParams
+        case .monoPrint:
+            return ChartTheme.monoPrintParams
         }
     }
 }

            path.move(to: CGPoint(x: gridline.position, y: 0))
            path.line(to: CGPoint(x: gridline.position, y: 1))
            path.transform(using: chartTransform)
            let (color, lineParams) = params.lineParams(for: labeled ? .major : .minor)
            lineParams.apply(on: path)
            color.setStroke()
            path.stroke()
        }
        NSGraphicsContext.saveGraphicsState()
        NSRectClip(chartRect)

            (label as NSString).draw(at: rightPos, withAttributes: attributes)
            previousFrame = frame
        }
        NSGraphicsContext.restoreGraphicsState()
    }

    func drawXAxis() {
        let gridlines = chart.sizeScale.gridlines
        let attributes = params.axisLabel.attributes

        // Calculate frames for labels on the size axis
        typealias LabelGeometry = (gridline: Gridline, position: CGPoint, frame: CGRect)
