Skip to contents

unifont_combining() returns a character vector of the code points for all the "combining" characters in Unifont.

Usage

unifont_combining(upper = TRUE, csur = TRUE, unicode = FALSE)

Arguments

upper

Include glyphs above the Unicode Basic Multilingual plane.

csur

Include (Under-)Conscript Unicode Registry glyphs.

unicode

Include combining glyphs assigned by the Unicode Consortium (i.e. not ones in the Private Use Area like the CSUR ones). By default FALSE since bittermelon::bm_compose() can usually guess that a Unicode Consortium assigned glyph is a combining glyph by using Unicode::u_char_property().

Value

A character vector of Unicode code points

See also

Can be used with the pua_combining argument of bittermelon::bm_compose() and bittermelon::as_bm_bitmap().

Examples

uc <- unifont_combining()
print(uc)
#>   [1] "U+E040"   "U+E041"   "U+E042"   "U+E043"   "U+E044"   "U+E045"  
#>   [7] "U+E046"   "U+E047"   "U+E048"   "U+E049"   "U+E04A"   "U+E04B"  
#>  [13] "U+E04C"   "U+E04D"   "U+E04E"   "U+E04F"   "U+E050"   "U+E051"  
#>  [19] "U+E052"   "U+E053"   "U+E054"   "U+E055"   "U+E056"   "U+E057"  
#>  [25] "U+E059"   "U+E05A"   "U+E07D"   "U+E0EA"   "U+E0EB"   "U+E0EC"  
#>  [31] "U+E12E"   "U+E130"   "U+E131"   "U+E132"   "U+E133"   "U+E134"  
#>  [37] "U+E135"   "U+E136"   "U+E137"   "U+E138"   "U+E185"   "U+E186"  
#>  [43] "U+E187"   "U+E188"   "U+E189"   "U+E18A"   "U+E18B"   "U+E18C"  
#>  [49] "U+E1EA"   "U+E256"   "U+E257"   "U+E258"   "U+E259"   "U+E2BF"  
#>  [55] "U+E310"   "U+E311"   "U+E312"   "U+E313"   "U+E3E4"   "U+E3E5"  
#>  [61] "U+E3E6"   "U+E3E7"   "U+E3E8"   "U+E415"   "U+E416"   "U+E417"  
#>  [67] "U+E418"   "U+E419"   "U+E41B"   "U+E41C"   "U+E41D"   "U+E41E"  
#>  [73] "U+E542"   "U+E543"   "U+E544"   "U+E547"   "U+E548"   "U+E6D4"  
#>  [79] "U+E6D5"   "U+E6D6"   "U+E6D7"   "U+E6D8"   "U+E6D9"   "U+E6DA"  
#>  [85] "U+E6DB"   "U+E6DC"   "U+E6DD"   "U+E6DE"   "U+E6DF"   "U+E6E0"  
#>  [91] "U+E6E1"   "U+E6E2"   "U+E6E3"   "U+E6E4"   "U+E6E5"   "U+E985"  
#>  [97] "U+E986"   "U+E987"   "U+E988"   "U+E989"   "U+E98A"   "U+E98B"  
#> [103] "U+E98C"   "U+E98D"   "U+E98E"   "U+E98F"   "U+E99F"   "U+E9A0"  
#> [109] "U+E9A1"   "U+E9A2"   "U+E9A3"   "U+E9A4"   "U+E9A5"   "U+E9A6"  
#> [115] "U+E9A7"   "U+E9A8"   "U+E9A9"   "U+E9AA"   "U+E9AB"   "U+E9AC"  
#> [121] "U+E9AD"   "U+E9AE"   "U+E9AF"   "U+E9B0"   "U+E9B1"   "U+E9B2"  
#> [127] "U+E9B3"   "U+E9B4"   "U+E9B5"   "U+E9B6"   "U+E9B7"   "U+E9B8"  
#> [133] "U+E9B9"   "U+E9BA"   "U+E9BB"   "U+E9BC"   "U+E9BD"   "U+E9BE"  
#> [139] "U+E9BF"   "U+E9C0"   "U+E9C1"   "U+E9C2"   "U+E9C3"   "U+E9C4"  
#> [145] "U+E9C5"   "U+E9C6"   "U+E9C7"   "U+E9C8"   "U+E9C9"   "U+E9CA"  
#> [151] "U+E9CB"   "U+E9CC"   "U+E9CD"   "U+E9CE"   "U+E9CF"   "U+E9D0"  
#> [157] "U+E9D1"   "U+E9D2"   "U+E9D3"   "U+E9D4"   "U+E9D5"   "U+E9D6"  
#> [163] "U+E9D7"   "U+E9D8"   "U+E9D9"   "U+E9DA"   "U+E9DB"   "U+E9DC"  
#> [169] "U+E9DD"   "U+E9DE"   "U+E9DF"   "U+EAEC"   "U+EAED"   "U+EAEE"  
#> [175] "U+EB20"   "U+EB21"   "U+EB22"   "U+EB23"   "U+EB24"   "U+EB25"  
#> [181] "U+EB26"   "U+EB27"   "U+EB28"   "U+EB29"   "U+EB2A"   "U+EBB1"  
#> [187] "U+EBB2"   "U+EBB3"   "U+EBB4"   "U+EBB5"   "U+EBB6"   "U+EBB7"  
#> [193] "U+EBB8"   "U+EBB9"   "U+EBC1"   "U+EBC2"   "U+EBC3"   "U+EBC4"  
#> [199] "U+EBC5"   "U+EBC6"   "U+EBC7"   "U+EBC8"   "U+EBC9"   "U+EBD1"  
#> [205] "U+EBD2"   "U+EBD3"   "U+EBD4"   "U+EBD5"   "U+EBD6"   "U+EBD7"  
#> [211] "U+EBD8"   "U+EBD9"   "U+F8BF"   "U+F8C5"   "U+F8C6"   "U+F8C8"  
#> [217] "U+0F16CA" "U+0F16CB" "U+0F16CC" "U+0F16CD" "U+0F16CE" "U+0F1992"
#> [223] "U+0F1993" "U+0F1994" "U+0F1995" "U+0F1996" "U+0F1997" "U+0F1998"
#> [229] "U+0F1999" "U+0F199A" "U+0F199B"

# Tengwar with combining glyphs
if (require("bittermelon")) {
  s <- "\ue004\ue014\ue04a\ue005\ue000\ue040\ue022\ue04a\ue003\ue04e"
  font <- unifont(ucp = str2ucp(s))
  bml <- as_bm_list(s, font = font)
  to_raise <- which(names(bml) %in% c("U+E04A", "U+E04E"))
  bml[to_raise] <- bm_shift(bml[to_raise], top = 1L)
  bml <- bm_compose(bml, pua_combining = uc)
  bml <- bm_pad(bml, type = "trim", left = 1L, right = 0L)
  bm <- bm_call(bml, cbind)
  print(bm, px = px_ascii)
}
#> -----------------------------------@@------------------
#> ----------------@------------------@@------@------@-@--
#> ---------------@-@------------------------@-@----@-@-@-
#> ---------------@-----------------@@--@@---@------@-@---
#> ---------------@-----------------@@--@@---@------@-@---
#> -------------------------------------------------------
#> -@-@@@--@@@--@-@@@--@-@@@--@@@---@-@@@-@@@@@@@@-@@@@@@@
#> -@@--@@@--@@-@@--@@-@@--@@@--@@--@@--@@---@------@@---@
#> -@----@----@-@----@-@----@----@--@----@--@-------@----@
#> -@----@----@-@----@-@---@@---@@--@----@--@-------@@--@@
#> -@--@@---@@--@--@@--@@@@@@@@@@@@-@--@@---@--------@@@-@
#> -@------------------@------------@------@-------------@
#> -@------------------@------------@------@-------------@
#> -@------------------@------------@------@-------------@
#> -@------------------@------------@------@@---@--------@
#> -@------------------@------------@-------@@@@---------@