The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.
library(gfonts)
{gfonts} allow you to use a Google font to use it offline in a Shiny application or a R Markdown document. You can download a font via google-webfonts-helper and generate appropriate CSS to use it.
In your project directory, use setup_font
once to
download a font and generate CSS code. For example to use the Roboto font, you can
do :
setup_font(
id = "roboto",
output_dir = "www",
variants = "regular"
)
In a Shiny application you can use www/
folder, for R
Markdown, create a sub-folder at the same level as your
.Rmd
file.
setup_font()
will create two sub-folders, containing the
following files :
www
+-- css
| \-- roboto.css
\-- fonts
+-- roboto-v20-latin-regular.eot
+-- roboto-v20-latin-regular.svg
+-- roboto-v20-latin-regular.ttf
+-- roboto-v20-latin-regular.woff
\-- roboto-v20-latin-regular.woff2
To know all fonts and their ids, you can use
get_all_fonts()
:
head(get_all_fonts())
#> id family
#> 1 roboto Roboto
#> 2 open-sans Open Sans
#> 3 noto-sans-jp Noto Sans JP
#> 4 montserrat Montserrat
#> 5 lato Lato
#> 6 poppins Poppins
#> variants
#> 1 100, 100italic, 300, 300italic, regular, italic, 500, 500italic, 700, 700italic, 900, 900italic
#> 2 300, regular, 500, 600, 700, 800, 300italic, italic, 500italic, 600italic, 700italic, 800italic
#> 3 100, 300, regular, 500, 700, 900
#> 4 100, 200, 300, regular, 500, 600, 700, 800, 900, 100italic, 200italic, 300italic, italic, 500italic, 600italic, 700italic, 800italic, 900italic
#> 5 100, 100italic, 300, 300italic, regular, italic, 700, 700italic, 900, 900italic
#> 6 100, 100italic, 200, 200italic, 300, 300italic, regular, italic, 500, 500italic, 600, 600italic, 700, 700italic, 800, 800italic, 900, 900italic
#> subsets
#> 1 cyrillic, cyrillic-ext, greek, greek-ext, latin, latin-ext, vietnamese
#> 2 cyrillic, cyrillic-ext, greek, greek-ext, hebrew, latin, latin-ext, vietnamese
#> 3 japanese, latin
#> 4 cyrillic, cyrillic-ext, latin, latin-ext, vietnamese
#> 5 latin, latin-ext
#> 6 devanagari, latin, latin-ext
#> category version lastModified popularity defSubset defVariant
#> 1 sans-serif v30 2022-09-22 1 latin regular
#> 2 sans-serif v34 2022-09-22 2 latin regular
#> 3 sans-serif v42 2022-09-27 3 latin regular
#> 4 sans-serif v25 2022-09-22 4 latin regular
#> 5 sans-serif v23 2022-09-22 5 latin regular
#> 6 sans-serif v20 2022-09-22 6 latin regular
To use a downloaded font, you can use in your UI or in a chunk :
use_font("roboto", "www/css/roboto.css")
First argument is the id of font downloaded, second is path to CSS file generated.
An other solution in Shiny application is to import the CSS file in a link tag and add a style tag:
fluidPage(
$link(rel = "stylesheet", type = "text/css", href = "css/roboto.css"),
tags$style("body {font-family: 'Roboto', sans-serif;}")
tags
)
In Markdown, import CSS file in yaml header, and add a CSS chunk :
---
output:
html_document:
css: assets/css/roboto.css
---
```css
body {font-family: 'Roboto', sans-serif;}
```
If you only want to download a font, you can use:
download_font(
id = "roboto",
output_dir = "azerty",
variants = c("regular", "300italic", "700")
)
To download CSS code to import a font in HTML, you can use:
generate_css("roboto", "regular", font_dir = "path/to/font")
#> @font-face {
#> font-family: 'Roboto';
#> font-style: normal;
#> font-weight: 400;
#> src: url('path/to/roboto-v30-latin-regular.eot'); /* IE9 Compat Modes */
#> src: local(''), local(''),
#> url('path/to/roboto-v30-latin-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
#> url('path/to/roboto-v30-latin-regular.woff2') format('woff2'), /* Super Modern Browsers */
#> url('path/to/roboto-v30-latin-regular.woff') format('woff'), /* Modern Browsers */
#> url('path/to/roboto-v30-latin-regular.ttf') format('truetype'), /* Safari, Android, iOS */
#> url('path/to/roboto-v30-latin-regular.svg#\1') format('svg'); /* Legacy iOS */
#> }
The path must be relative to the one were this code is saved.
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.