     ///
     /// - Parameters:
     ///   - size: The size of bounding box.
+    ///   - lineWidth: The standard line width.
     ///   - isRTL: Whether the path will be used for right-to-left writing direction.
     /// - Returns: The path.
-    func path(in size: CGSize, isRTL: Bool = false) -> CGPath {
+    func path(in size: CGSize, lineWidth: CGFloat, isRTL: Bool = false) -> CGPath {
         
         switch self {
             case .newLine:
                 // -> Do not use `size.width` as new line glyphs actually have no area.
                 let y = 0.4 * size.height
                 let radius = 0.25 * size.height
+                let transform = isRTL ? CGAffineTransform(scaleX: -1, y: 1) : .identity
                 let path = CGMutablePath()
                 // arrow body
                 path.move(to: CGPoint(x: 0.9 * size.height, y: y - radius))

                    CGPoint(x: 0.2 * size.width, y: 0.8 * size.height),
                    CGPoint(x: 0.8 * size.width, y: 0.8 * size.height),
                ])
                return path
                
            case .otherControl:
                let question = CGMutablePath()  // `?` mark in unit size

                let rect = CGRect(origin: .zero, size: size).insetBy(dx: 0.1 * size.width, dy: 0)
                let radius = 0.1 * size.width
                path.addRoundedRect(in: rect, cornerWidth: radius, cornerHeight: radius)
                return path.copy(strokingWithWidth: lineWidth, lineCap: .round, lineJoin: .miter, miterLimit: 0)
        }
    }
    
