色を変更したい(#rgb / #cmyk / #luma)
1rgb() // RGBで指定
2cmyk() // CMYKで指定
3luma() // グレイスケールを指定
RGBしたい(rgb)
1rgb("#b1f2eb") // カラーコード
2rgb(87, 127, 230) // RGB
3rgb(87, 127, 230, 50%) // RGB + Alpha
4
5#let color = rgb(87, 127, 230, 50%)
6
7// 成分
8color.components()
9// 色空間
10color.space()
11
12// 濃淡
13color.lighten(50%)
14color.darken(50%)
15
16// 補色
17color.negate()
18
19// 透明度
20color.transparentize(50%)
21color.opacify(-50%)
読みやすい黒にしたい
1#rgb("#222222")
2#rgb(34, 34, 34)
3#cmyk(0%, 0%, 0%, 87%)
4#luma(13%)
白地に黒いテキストを配置する場合、純黒(#000000)よりも、少し明るい黒の方が読みやすいそうです。
上記のサンプルでは、#222222や#cmyk(0%, 0%, 0%, 87%)など、少し明るい黒を指定しています。
注釈
「オフブラック」や「ソフトブラック」と呼ばれるようです。
リッチブラックしたい(cmyk)
1#let text-black = #cmyk(0%, 0%, 0%, 87%)
2#let rich-black = #cmyk(60%, 40%, 40%, 100%)
印刷時の黒は、RGBで指定するよりもCMYKで指定する方が推奨されます。 「リッチブラック」は、CMYKで指定する黒の中でも、とくに濃い黒のことを指します。
印刷する紙やインクの種類によって、リッチブラックの定義は変わるそうです。
上記のサンプルでは、標準的と言われる#cmyk(60%, 40%, 40%, 100%)で指定しています。
注釈
すべての黒をリッチブラックにするのは、インクの使用量が増えるため、あまり推奨されません。 リッチブラックは、タイトルや見出しなど、強調したい部分のみに使用するのがオススメです。 本文テキストは、通常の黒で十分です。
RGBからCMYKに変換したい
1#let rgb2cmyk(r, g, b) = {
2 let r = r / 255
3 let g = g / 255
4 let b = b / 255
5
6 let k = 1 - calc.max(r, g, b)
7 if k == 1 {
8 return (0%, 0%, 0%, 100%)
9 }
10
11 let c = (1 - r - k) / (1 - k)
12 let m = (1 - g - k) / (1 - k)
13 let y = (1 - b - k) / (1 - k)
14
15 // return: (c, m, y, k)
16 (c * 100%, m * 100%, y * 100%, k * 100%)
17}
18
19// Usage
20#let (c, m, y, k) = rgb2cmyk(87, 127, 230)
21#cmyk(c, m, y, k)
RGBとCMYKは、異なる色空間であるため、直接的な変換はできません。 RGBからCMYKへの変換は、一般的には近似的な方法で行われます。 Typstに、RGBからCMYKへの変換メソッドはないため、自分で計算する必要があります。
CMYKからRGBに変換したい
1#let cmyk2rgb(c, m, y, k) = {
2 let c = c / 100
3 let m = m / 100
4 let y = y / 100
5 let k = k / 100
6
7 let r = 255 * (1 - c) * (1 - k)
8 let g = 255 * (1 - m) * (1 - k)
9 let b = 255 * (1 - y) * (1 - k)
10
11 (r, g, b)
12}
CMYKからRGBへの変換も、同様に近似的な方法で行われます。 Typstに、CMYKからRGBへの変換メソッドはないため、自分で計算する必要があります。