diff --git a/DESCRIPTION b/DESCRIPTION index 6b93265..42eb2bc 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -58,5 +58,5 @@ Imports: tools, magrittr, gdtools -RoxygenNote: 7.1.0 +RoxygenNote: 7.1.1 VignetteBuilder: knitr diff --git a/NAMESPACE b/NAMESPACE index 833568f..a488b5f 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -7,6 +7,13 @@ export(font_es) export(font_es_bold) export(font_es_light) export(font_gs) +export(font_inter_bold) +export(font_inter_italic) +export(font_inter_medium) +export(font_inter_medium_italic) +export(font_inter_semibold) +export(font_inter_thin) +export(font_inter_thin_italic) export(font_ps) export(font_ps_light) export(font_pub) @@ -26,6 +33,7 @@ export(ft_text_col) export(gg_check) export(import_econ_sans) export(import_goldman_sans) +export(import_inter) export(import_plex_sans) export(import_public_sans) export(import_roboto_condensed) @@ -49,6 +57,7 @@ export(theme_ft_rc) export(theme_ipsum) export(theme_ipsum_es) export(theme_ipsum_gs) +export(theme_ipsum_inter) export(theme_ipsum_ps) export(theme_ipsum_pub) export(theme_ipsum_rc) diff --git a/R/econ-sans.R b/R/econ-sans.R index b2b3fb5..81f21e5 100644 --- a/R/econ-sans.R +++ b/R/econ-sans.R @@ -208,13 +208,13 @@ theme_ipsum_es <- function( import_econ_sans <- function() { es_font_dir <- system.file("fonts", "econ-sans", package="hrbrthemes") - - suppressWarnings(suppressMessages(extrafont::font_import(es_font_dir, prompt=FALSE))) - - message( - "You will likely need to install these fonts on your system as well.\n\n", - "You can find them in [", es_font_dir, "]" - ) + # + # suppressWarnings(suppressMessages(extrafont::font_import(es_font_dir, prompt=FALSE))) + # + # message( + # "You will likely need to install these fonts on your system as well.\n\n", + # "You can find them in [", es_font_dir, "]" + # ) } diff --git a/R/goldmansans.R b/R/goldmansans.R index 5e53bde..3a06772 100644 --- a/R/goldmansans.R +++ b/R/goldmansans.R @@ -189,13 +189,13 @@ import_goldman_sans <- function() { gs_font_dir <- system.file("fonts", "goldman-sans", package="hrbrthemes") - suppressWarnings(suppressMessages(extrafont::font_import(gs_font_dir, prompt=FALSE))) - - message( - sprintf( - "You will likely need to install these fonts on your system as well.\n\nYou can find them in [%s]", - gs_font_dir) - ) + # suppressWarnings(suppressMessages(extrafont::font_import(gs_font_dir, prompt=FALSE))) + # + # message( + # sprintf( + # "You will likely need to install these fonts on your system as well.\n\nYou can find them in [%s]", + # gs_font_dir) + # ) } diff --git a/R/inter.R b/R/inter.R new file mode 100644 index 0000000..cc24c59 --- /dev/null +++ b/R/inter.R @@ -0,0 +1,259 @@ +#' A precise & pristine [ggplot2] theme with opinionated defaults and an emphasis on typoghraphy +#' +#' You should [import_inter()] first and also install the fonts on your +#' system before trying to use this theme. +#' +#' There is an option `hrbrthemes.loadfonts` which -- if set to `TRUE` -- will +#' call `extrafont::loadfonts()` to register non-core fonts with R PDF & PostScript +#' devices. If you are running under Windows, the package calls the same function +#' to register non-core fonts with the Windows graphics device. +#' +#' @md +#' @section Why Inter?: +#' See . +#' +#' @md +#' @param base_family,base_size base font family and size +#' @param plot_title_family,plot_title_face,plot_title_size,plot_title_margin plot tilte family, face, size and margin +#' @param subtitle_family,subtitle_face,subtitle_size plot subtitle family, face and size +#' @param subtitle_margin plot subtitle margin bottom (single numeric value) +#' @param strip_text_family,strip_text_face,strip_text_size facet label font family, face and size +#' @param caption_family,caption_face,caption_size,caption_margin plot caption family, face, size and margin +#' @param axis_title_family,axis_title_face,axis_title_size axis title font family, face and size +#' @param axis_title_just axis title font justificationk one of `[blmcrt]` +#' @param axis_text_size font size of axis text +#' @param plot_margin plot margin (specify with [ggplot2::margin]) +#' @param grid_col grid color +#' @param grid panel grid (`TRUE`, `FALSE`, or a combination of `X`, `x`, `Y`, `y`) +#' @param axis_col axis color +#' @param axis add x or y axes? `TRUE`, `FALSE`, "`xy`" +#' @param ticks ticks if `TRUE` add ticks +#' @export +#' @examples \dontrun{ +#' library(ggplot2) +#' library(dplyr) +#' +#' # seminal scatterplot +#' ggplot(mtcars, aes(mpg, wt)) + +#' geom_point() + +#' labs(x="Fuel efficiency (mpg)", y="Weight (tons)", +#' title="Seminal ggplot2 scatterplot example", +#' subtitle="A plot that is only useful for demonstration purposes", +#' caption="Brought to you by the letter 'g'") + +#' theme_ipsum_inter() +#' +#' # seminal bar chart +#' +#' update_geom_font_defaults(family=font_inter_medium) +#' +#' count(mpg, class) %>% +#' ggplot(aes(class, n)) + +#' geom_col() + +#' geom_text(aes(label=n), nudge_y=3) + +#' labs(x="Fuel efficiency (mpg)", y="Weight (tons)", +#' title="Seminal ggplot2 bar chart example", +#' subtitle="A plot that is only useful for demonstration purposes", +#' caption="Brought to you by the letter 'g'") + +#' theme_ipsum_inter(grid="Y") + +#' theme(axis.text.y=element_blank()) +#' } +theme_ipsum_inter <- function( + base_family="Inter-Medium", + base_size = 10, + plot_title_family="Inter-SemiBold", + plot_title_size = 16, + plot_title_face="bold", + plot_title_margin = 8, + subtitle_family="Inter-Medium", + subtitle_size = 12, + subtitle_face = "plain", + subtitle_margin = 13, + strip_text_family = "Inter", + strip_text_size = 12, + strip_text_face = "bold", + caption_family="Inter-Light", + caption_size = 9, + caption_face = "plain", + caption_margin = 10, + axis_text_family = "Inter-Thin", + axis_text_face = "plain", + axis_text_size = 9, + axis_title_family = base_family, + axis_title_size = 9, + axis_title_face = "plain", + axis_title_just = "rt", + plot_margin = margin(30, 30, 30, 30), + grid_col = "#cccccc", grid = TRUE, + axis_col = "#cccccc", axis = FALSE, ticks = FALSE) { + + ret <- ggplot2::theme_minimal(base_family=base_family, base_size=base_size) + + ret <- ret + theme(legend.background=element_blank()) + ret <- ret + theme(legend.key=element_blank()) + + if (inherits(grid, "character") | grid == TRUE) { + + ret <- ret + theme(panel.grid=element_line(color=grid_col, size=0.2)) + ret <- ret + theme(panel.grid.major=element_line(color=grid_col, size=0.2)) + ret <- ret + theme(panel.grid.minor=element_line(color=grid_col, size=0.15)) + + if (inherits(grid, "character")) { + if (regexpr("X", grid)[1] < 0) ret <- ret + theme(panel.grid.major.x=element_blank()) + if (regexpr("Y", grid)[1] < 0) ret <- ret + theme(panel.grid.major.y=element_blank()) + if (regexpr("x", grid)[1] < 0) ret <- ret + theme(panel.grid.minor.x=element_blank()) + if (regexpr("y", grid)[1] < 0) ret <- ret + theme(panel.grid.minor.y=element_blank()) + } + + } else { + ret <- ret + theme(panel.grid=element_blank()) + } + + if (inherits(axis, "character") | axis == TRUE) { + ret <- ret + theme(axis.line=element_line(color=axis_col, size=0.15)) + if (inherits(axis, "character")) { + axis <- tolower(axis) + if (regexpr("x", axis)[1] < 0) { + ret <- ret + theme(axis.line.x=element_blank()) + } else { + ret <- ret + theme(axis.line.x=element_line(color=axis_col, size=0.15)) + } + if (regexpr("y", axis)[1] < 0) { + ret <- ret + theme(axis.line.y=element_blank()) + } else { + ret <- ret + theme(axis.line.y=element_line(color=axis_col, size=0.15)) + } + } else { + ret <- ret + theme(axis.line.x=element_line(color=axis_col, size=0.15)) + ret <- ret + theme(axis.line.y=element_line(color=axis_col, size=0.15)) + } + } else { + ret <- ret + theme(axis.line=element_blank()) + } + + if (!ticks) { + ret <- ret + theme(axis.ticks = element_blank()) + ret <- ret + theme(axis.ticks.x = element_blank()) + ret <- ret + theme(axis.ticks.y = element_blank()) + } else { + ret <- ret + theme(axis.ticks = element_line(size=0.15)) + ret <- ret + theme(axis.ticks.x = element_line(size=0.15)) + ret <- ret + theme(axis.ticks.y = element_line(size=0.15)) + ret <- ret + theme(axis.ticks.length = grid::unit(5, "pt")) + } + + xj <- switch(tolower(substr(axis_title_just, 1, 1)), b=0, l=0, m=0.5, c=0.5, r=1, t=1) + yj <- switch(tolower(substr(axis_title_just, 2, 2)), b=0, l=0, m=0.5, c=0.5, r=1, t=1) + + ret <- ret + theme(axis.text.x=element_text(size=axis_text_size, margin=margin(t=0))) + ret <- ret + theme(axis.text.y=element_text(size=axis_text_size, margin=margin(r=0))) + ret <- ret + theme(axis.title=element_text(size=axis_title_size, family=axis_title_family)) + ret <- ret + theme(axis.title.x=element_text(hjust=xj, size=axis_title_size, + family=axis_title_family, face=axis_title_face)) + ret <- ret + theme(axis.title.y=element_text(hjust=yj, size=axis_title_size, + family=axis_title_family, face=axis_title_face)) + ret <- ret + theme(axis.title.y.right=element_text(hjust=yj, size=axis_title_size, angle=90, + family=axis_title_family, face=axis_title_face)) + ret <- ret + theme(strip.text=element_text(hjust=0, size=strip_text_size, + face=strip_text_face, family=strip_text_family)) + ret <- ret + theme(panel.spacing=grid::unit(2, "lines")) + ret <- ret + theme(plot.title=element_text(hjust=0, size=plot_title_size, + margin=margin(b=plot_title_margin), + family=plot_title_family, face=plot_title_face)) + ret <- ret + theme(plot.subtitle=element_text(hjust=0, size=subtitle_size, + margin=margin(b=subtitle_margin), + family=subtitle_family, face=subtitle_face)) + ret <- ret + theme(plot.caption=element_text(hjust=1, size=caption_size, + margin=margin(t=caption_margin), + family=caption_family, face=caption_face)) + ret <- ret + theme(plot.margin=plot_margin) + + ret + +} + +#' Import Inter font for use in charts +#' +#' Inter is Copyright (c) 2016-2020 The Inter Project Authors +#' (). +#' +#' There is an option `hrbrthemes.loadfonts` which -- if set to `TRUE` -- will +#' call `extrafont::loadfonts()` to register non-core fonts with R PDF & PostScript +#' devices. If you are running under Windows, the package calls the same function +#' to register non-core fonts with the Windows graphics device. +#' +#' @md +#' @note This will take care of ensuring PDF/PostScript usage. The location of the +#' font directory is displayed after the base import is complete. It is highly +#' recommended that you install them on your system the same way you would any +#' other font you wish to use in other programs. +#' @export +import_inter <- function() { + + inter_font_dir <- system.file("fonts", "inter", package="hrbrthemes") + + suppressWarnings(suppressMessages(extrafont::font_import(inter_font_dir, prompt=FALSE))) + + message( + sprintf( + "You will likely need to install these fonts on your system as well.\n\nYou can find them in [%s]", + inter_font_dir) + ) + +} + + +#' @rdname Inter +#' @md +#' @title Inter font name R variable aliases +#' @description `font_inter_thin` == "`Inter-Thin`" +#' @format length 1 character vector +#' @export +font_inter_thin <- "Inter-Thin" + +#' @rdname Inter +#' @md +#' @title Inter font name R variable aliases +#' @description `font_inter_thin_italic` == "`Inter-ThinItalic`" +#' @format length 1 character vector +#' @export +font_inter_thin_italic <- "Inter-ThinItalic" + +#' @rdname Inter +#' @md +#' @title Inter font name R variable aliases +#' @description `font_inter_medium` == "`Inter-Medium`" +#' @format length 1 character vector +#' @export +font_inter_medium <- "Inter-Medium" + +#' @rdname Inter +#' @md +#' @title Inter font name R variable aliases +#' @description `font_inter_medium_italic` == "`Inter-MediumItalic`" +#' @format length 1 character vector +#' @export +font_inter_medium_italic <- "Inter-MediumItalic" + +#' @rdname Inter +#' @md +#' @title Inter font name R variable aliases +#' @description `font_inter_semibold` == "`Inter-SemiBold`" +#' @format length 1 character vector +#' @export +font_inter_semibold <- "Inter-SemiBold" + +#' @rdname Inter +#' @md +#' @title Inter font name R variable aliases +#' @description `font_inter_bold` == "`Inter-Bold`" +#' @format length 1 character vector +#' @export +font_inter_bold <- "Inter-Bold" + +#' @rdname Inter +#' @md +#' @title Inter font name R variable aliases +#' @description `font_inter_italic` == "`Inter-Italic`" +#' @format length 1 character vector +#' @export +font_inter_italic <- "Inter-Italic" diff --git a/R/plexsans.R b/R/plexsans.R index babc46c..860b7c7 100644 --- a/R/plexsans.R +++ b/R/plexsans.R @@ -184,13 +184,13 @@ import_plex_sans <- function() { ps_font_dir <- system.file("fonts", "plex-sans", package="hrbrthemes") - suppressWarnings(suppressMessages(extrafont::font_import(ps_font_dir, prompt=FALSE))) - - message( - sprintf( - "You will likely need to install these fonts on your system as well.\n\nYou can find them in [%s]", - ps_font_dir) - ) + # suppressWarnings(suppressMessages(extrafont::font_import(ps_font_dir, prompt=FALSE))) + # + # message( + # sprintf( + # "You will likely need to install these fonts on your system as well.\n\nYou can find them in [%s]", + # ps_font_dir) + # ) } diff --git a/R/public-sans.R b/R/public-sans.R index ec83767..d854b23 100644 --- a/R/public-sans.R +++ b/R/public-sans.R @@ -188,13 +188,13 @@ import_public_sans <- function() { pub_font_dir <- system.file("fonts", "public-sans", package="hrbrthemes") - suppressWarnings(suppressMessages(extrafont::font_import(pub_font_dir, prompt=FALSE))) - - message( - sprintf( - "You will likely need to install these fonts on your system as well.\n\nYou can find them in [%s]", - pub_font_dir) - ) + # suppressWarnings(suppressMessages(extrafont::font_import(pub_font_dir, prompt=FALSE))) + # + # message( + # sprintf( + # "You will likely need to install these fonts on your system as well.\n\nYou can find them in [%s]", + # pub_font_dir) + # ) } diff --git a/R/roboto-condensed.r b/R/roboto-condensed.r index fcff8dc..14ae83d 100644 --- a/R/roboto-condensed.r +++ b/R/roboto-condensed.r @@ -209,13 +209,13 @@ import_roboto_condensed <- function() { rc_font_dir <- system.file("fonts", "roboto-condensed", package="hrbrthemes") - suppressWarnings(suppressMessages(extrafont::font_import(rc_font_dir, prompt=FALSE))) - - message( - sprintf( - "You will likely need to install these fonts on your system as well.\n\nYou can find them in [%s]", - rc_font_dir) - ) + # suppressWarnings(suppressMessages(extrafont::font_import(rc_font_dir, prompt=FALSE))) + # + # message( + # sprintf( + # "You will likely need to install these fonts on your system as well.\n\nYou can find them in [%s]", + # rc_font_dir) + # ) } diff --git a/R/tinyhand.R b/R/tinyhand.R index 7cb6049..546e5d1 100644 --- a/R/tinyhand.R +++ b/R/tinyhand.R @@ -168,12 +168,12 @@ import_tinyhand <- function() { th_font_dir <- system.file("fonts", "tinyhand", package="hrbrthemes") - suppressWarnings(suppressMessages(extrafont::font_import(th_font_dir, prompt=FALSE))) - - message( - sprintf( - "You will likely need to install these fonts on your system as well.\n\nYou can find them in [%s]", - th_font_dir) - ) + # suppressWarnings(suppressMessages(extrafont::font_import(th_font_dir, prompt=FALSE))) + # + # message( + # sprintf( + # "You will likely need to install these fonts on your system as well.\n\nYou can find them in [%s]", + # th_font_dir) + # ) } diff --git a/R/titillium-web.R b/R/titillium-web.R index fb3bec0..b4db023 100644 --- a/R/titillium-web.R +++ b/R/titillium-web.R @@ -188,13 +188,13 @@ import_titillium_web <- function() { tw_font_dir <- system.file("fonts", "titillium-web", package="hrbrthemes") - suppressWarnings(suppressMessages(extrafont::font_import(tw_font_dir, prompt=FALSE))) - - message( - sprintf( - "You will likely need to install these fonts on your system as well.\n\nYou can find them in [%s]", - tw_font_dir) - ) + # suppressWarnings(suppressMessages(extrafont::font_import(tw_font_dir, prompt=FALSE))) + # + # message( + # sprintf( + # "You will likely need to install these fonts on your system as well.\n\nYou can find them in [%s]", + # tw_font_dir) + # ) } diff --git a/R/zzz.r b/R/zzz.r index f134c2c..7daf904 100644 --- a/R/zzz.r +++ b/R/zzz.r @@ -1,5 +1,14 @@ .onAttach <- function(libname, pkgname) { + tw_font_dir <- system.file("fonts", "titillium-web", package="hrbrthemes") + gs_font_dir <- system.file("fonts", "goldman-sans", package="hrbrthemes") + es_font_dir <- system.file("fonts", "econ-sans", package="hrbrthemes") + rc_font_dir <- system.file("fonts", "roboto-condensed", package="hrbrthemes") + pub_font_dir <- system.file("fonts", "public-sans", package="hrbrthemes") + ps_font_dir <- system.file("fonts", "plex-sans", package="hrbrthemes") + th_font_dir <- system.file("fonts", "tinyhand", package="hrbrthemes") + + # if (interactive()) { # packageStartupMessage(paste0("hrbrthemes is under *active* development. ", # "See https://github.com/hrbrmstr/hrbrthemes for info/news.")) @@ -7,22 +16,22 @@ # Suggestion by @alexwhan - if (.Platform$OS.type == "windows") { # nocov start - if (interactive()) packageStartupMessage("Registering Windows fonts with R") - extrafont::loadfonts("win", quiet = TRUE) - } - - if (getOption("hrbrthemes.loadfonts", default = FALSE)) { - if (interactive()) packageStartupMessage("Registering PDF & PostScript fonts with R") - extrafont::loadfonts("pdf", quiet = TRUE) - extrafont::loadfonts("postscript", quiet = TRUE) - } - - fnt <- extrafont::fonttable() - if (!any(grepl("Arial[ ]Narrow|Roboto[ ]Condensed", fnt$FamilyName))) { - packageStartupMessage("NOTE: Either Arial Narrow or Roboto Condensed fonts are required to use these themes.") - packageStartupMessage(" Please use hrbrthemes::import_roboto_condensed() to install Roboto Condensed and") - packageStartupMessage(" if Arial Narrow is not on your system, please see https://bit.ly/arialnarrow") - } # nocov end + # if (.Platform$OS.type == "windows") { # nocov start + # if (interactive()) packageStartupMessage("Registering Windows fonts with R") + # extrafont::loadfonts("win", quiet = TRUE) + # } + # + # if (getOption("hrbrthemes.loadfonts", default = FALSE)) { + # if (interactive()) packageStartupMessage("Registering PDF & PostScript fonts with R") + # extrafont::loadfonts("pdf", quiet = TRUE) + # extrafont::loadfonts("postscript", quiet = TRUE) + # } + # + # fnt <- extrafont::fonttable() + # if (!any(grepl("Arial[ ]Narrow|Roboto[ ]Condensed", fnt$FamilyName))) { + # packageStartupMessage("NOTE: Either Arial Narrow or Roboto Condensed fonts are required to use these themes.") + # packageStartupMessage(" Please use hrbrthemes::import_roboto_condensed() to install Roboto Condensed and") + # packageStartupMessage(" if Arial Narrow is not on your system, please see https://bit.ly/arialnarrow") + # } # nocov end } diff --git a/inst/COPYRIGHTS b/inst/COPYRIGHTS index 8948845..c9f8749 100644 --- a/inst/COPYRIGHTS +++ b/inst/COPYRIGHTS @@ -2,6 +2,106 @@ All R source code files are released under the MIT license. ----------------------------- +Inter has the following license/copyright: + +Copyright (c) 2016-2020 The Inter Project Authors. +"Inter" is a Reserved Font Name. +https://github.com/rsms/inter + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION AND CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. + + +----------------------------- + IBM Plex Sans font has the following license/copyright: Copyright © 2017 IBM Corp. with Reserved Font Name "Plex" diff --git a/inst/fonts/inter/Inter-Black.ttf b/inst/fonts/inter/Inter-Black.ttf new file mode 100644 index 0000000..2fc89c0 Binary files /dev/null and b/inst/fonts/inter/Inter-Black.ttf differ diff --git a/inst/fonts/inter/Inter-BlackItalic.ttf b/inst/fonts/inter/Inter-BlackItalic.ttf new file mode 100644 index 0000000..f5070e1 Binary files /dev/null and b/inst/fonts/inter/Inter-BlackItalic.ttf differ diff --git a/inst/fonts/inter/Inter-Bold.ttf b/inst/fonts/inter/Inter-Bold.ttf new file mode 100644 index 0000000..3940edd Binary files /dev/null and b/inst/fonts/inter/Inter-Bold.ttf differ diff --git a/inst/fonts/inter/Inter-BoldItalic.ttf b/inst/fonts/inter/Inter-BoldItalic.ttf new file mode 100644 index 0000000..38de1b7 Binary files /dev/null and b/inst/fonts/inter/Inter-BoldItalic.ttf differ diff --git a/inst/fonts/inter/Inter-ExtraBold.ttf b/inst/fonts/inter/Inter-ExtraBold.ttf new file mode 100644 index 0000000..e721fc4 Binary files /dev/null and b/inst/fonts/inter/Inter-ExtraBold.ttf differ diff --git a/inst/fonts/inter/Inter-ExtraBoldItalic.ttf b/inst/fonts/inter/Inter-ExtraBoldItalic.ttf new file mode 100644 index 0000000..b82cdde Binary files /dev/null and b/inst/fonts/inter/Inter-ExtraBoldItalic.ttf differ diff --git a/inst/fonts/inter/Inter-ExtraLight.ttf b/inst/fonts/inter/Inter-ExtraLight.ttf new file mode 100644 index 0000000..ddd109f Binary files /dev/null and b/inst/fonts/inter/Inter-ExtraLight.ttf differ diff --git a/inst/fonts/inter/Inter-ExtraLightItalic.ttf b/inst/fonts/inter/Inter-ExtraLightItalic.ttf new file mode 100644 index 0000000..cbf08e7 Binary files /dev/null and b/inst/fonts/inter/Inter-ExtraLightItalic.ttf differ diff --git a/inst/fonts/inter/Inter-Italic.ttf b/inst/fonts/inter/Inter-Italic.ttf new file mode 100644 index 0000000..0f599be Binary files /dev/null and b/inst/fonts/inter/Inter-Italic.ttf differ diff --git a/inst/fonts/inter/Inter-Light.ttf b/inst/fonts/inter/Inter-Light.ttf new file mode 100644 index 0000000..2846097 Binary files /dev/null and b/inst/fonts/inter/Inter-Light.ttf differ diff --git a/inst/fonts/inter/Inter-LightItalic.ttf b/inst/fonts/inter/Inter-LightItalic.ttf new file mode 100644 index 0000000..e6a1ba8 Binary files /dev/null and b/inst/fonts/inter/Inter-LightItalic.ttf differ diff --git a/inst/fonts/inter/Inter-Medium.ttf b/inst/fonts/inter/Inter-Medium.ttf new file mode 100644 index 0000000..63463fe Binary files /dev/null and b/inst/fonts/inter/Inter-Medium.ttf differ diff --git a/inst/fonts/inter/Inter-MediumItalic.ttf b/inst/fonts/inter/Inter-MediumItalic.ttf new file mode 100644 index 0000000..2812f22 Binary files /dev/null and b/inst/fonts/inter/Inter-MediumItalic.ttf differ diff --git a/inst/fonts/inter/Inter-Regular.ttf b/inst/fonts/inter/Inter-Regular.ttf new file mode 100644 index 0000000..bdde274 Binary files /dev/null and b/inst/fonts/inter/Inter-Regular.ttf differ diff --git a/inst/fonts/inter/Inter-SemiBold.ttf b/inst/fonts/inter/Inter-SemiBold.ttf new file mode 100644 index 0000000..65609ba Binary files /dev/null and b/inst/fonts/inter/Inter-SemiBold.ttf differ diff --git a/inst/fonts/inter/Inter-SemiBoldItalic.ttf b/inst/fonts/inter/Inter-SemiBoldItalic.ttf new file mode 100644 index 0000000..df24137 Binary files /dev/null and b/inst/fonts/inter/Inter-SemiBoldItalic.ttf differ diff --git a/inst/fonts/inter/Inter-Thin.ttf b/inst/fonts/inter/Inter-Thin.ttf new file mode 100644 index 0000000..c452d1e Binary files /dev/null and b/inst/fonts/inter/Inter-Thin.ttf differ diff --git a/inst/fonts/inter/Inter-ThinItalic.ttf b/inst/fonts/inter/Inter-ThinItalic.ttf new file mode 100644 index 0000000..17ff543 Binary files /dev/null and b/inst/fonts/inter/Inter-ThinItalic.ttf differ diff --git a/man/Inter.Rd b/man/Inter.Rd new file mode 100644 index 0000000..0a140c1 --- /dev/null +++ b/man/Inter.Rd @@ -0,0 +1,58 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/inter.R +\docType{data} +\name{font_inter_thin} +\alias{font_inter_thin} +\alias{font_inter_thin_italic} +\alias{font_inter_medium} +\alias{font_inter_medium_italic} +\alias{font_inter_semibold} +\alias{font_inter_bold} +\alias{font_inter_italic} +\title{Inter font name R variable aliases} +\format{ +length 1 character vector + +length 1 character vector + +length 1 character vector + +length 1 character vector + +length 1 character vector + +length 1 character vector + +length 1 character vector +} +\usage{ +font_inter_thin + +font_inter_thin_italic + +font_inter_medium + +font_inter_medium_italic + +font_inter_semibold + +font_inter_bold + +font_inter_italic +} +\description{ +\code{font_inter_thin} == "\code{Inter-Thin}" + +\code{font_inter_thin_italic} == "\code{Inter-ThinItalic}" + +\code{font_inter_medium} == "\code{Inter-Medium}" + +\code{font_inter_medium_italic} == "\code{Inter-MediumItalic}" + +\code{font_inter_semibold} == "\code{Inter-SemiBold}" + +\code{font_inter_bold} == "\code{Inter-Bold}" + +\code{font_inter_italic} == "\code{Inter-Italic}" +} +\keyword{datasets} diff --git a/man/gg_check.Rd b/man/gg_check.Rd index 568f019..c864272 100644 --- a/man/gg_check.Rd +++ b/man/gg_check.Rd @@ -9,7 +9,7 @@ gg_check(gg, dict, ignore) \arguments{ \item{gg}{ggplot2 object} -\item{dict}{a dictionary object or string which can be passed to \link[hunspell:dictionary]{hunspell::dictionary}. +\item{dict}{a dictionary object or string which can be passed to \link[hunspell:hunspell]{hunspell::dictionary}. Defaults to \code{hunspell::dictionary("en_US")}} \item{ignore}{character vector with additional approved words added to the dictionary. diff --git a/man/import_inter.Rd b/man/import_inter.Rd new file mode 100644 index 0000000..e6f9a5d --- /dev/null +++ b/man/import_inter.Rd @@ -0,0 +1,24 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/inter.R +\name{import_inter} +\alias{import_inter} +\title{Import Inter font for use in charts} +\usage{ +import_inter() +} +\description{ +Inter is Copyright (c) 2016-2020 The Inter Project Authors +(\url{https://rsms.me/inter/}). +} +\details{ +There is an option \code{hrbrthemes.loadfonts} which -- if set to \code{TRUE} -- will +call \code{extrafont::loadfonts()} to register non-core fonts with R PDF & PostScript +devices. If you are running under Windows, the package calls the same function +to register non-core fonts with the Windows graphics device. +} +\note{ +This will take care of ensuring PDF/PostScript usage. The location of the +font directory is displayed after the base import is complete. It is highly +recommended that you install them on your system the same way you would any +other font you wish to use in other programs. +} diff --git a/man/ipsum.Rd b/man/ipsum.Rd index c72c9de..b15c676 100644 --- a/man/ipsum.Rd +++ b/man/ipsum.Rd @@ -44,10 +44,6 @@ outputting HTML directly into the markdown document).} \item{dev}{Graphics device to use for figure output (defaults to png)} -\item{smart}{Produce typographically correct output, converting straight -quotes to curly quotes, \code{---} to em-dashes, \code{--} to en-dashes, and -\code{...} to ellipses.} - \item{self_contained}{Produce a standalone HTML file with no external dependencies, using data: URIs to incorporate the contents of linked scripts, stylesheets, images, and videos. Note that even for self contained diff --git a/man/scale_ft.Rd b/man/scale_ft.Rd index b5765ed..76d2590 100644 --- a/man/scale_ft.Rd +++ b/man/scale_ft.Rd @@ -43,13 +43,19 @@ transformation object \item A function that takes the breaks as input and returns labels as output }} - \item{\code{limits}}{A character vector that defines possible values of the scale -and their order.} + \item{\code{limits}}{One of: +\itemize{ +\item \code{NULL} to use the default scale values +\item A character vector that defines possible values of the scale and their +order +\item A function that accepts the existing (automatic) values and returns +new ones +}} \item{\code{na.translate}}{Unlike continuous scales, discrete scales can easily show missing values, and do so by default. If you want to remove missing values from a discrete scale, specify \code{na.translate = FALSE}.} - \item{\code{na.value}}{If \code{na.translate = TRUE}, what value aesthetic -value should missing be displayed as? Does not apply to position scales + \item{\code{na.value}}{If \code{na.translate = TRUE}, what aesthetic value should the +missing values be displayed as? Does not apply to position scales where \code{NA} is always placed at the far right.} \item{\code{drop}}{Should unused factor levels be omitted from the scale? The default, \code{TRUE}, uses the levels that appear in the data; diff --git a/man/scale_ipsum.Rd b/man/scale_ipsum.Rd index 4fbf3ee..e9f133a 100644 --- a/man/scale_ipsum.Rd +++ b/man/scale_ipsum.Rd @@ -43,13 +43,19 @@ transformation object \item A function that takes the breaks as input and returns labels as output }} - \item{\code{limits}}{A character vector that defines possible values of the scale -and their order.} + \item{\code{limits}}{One of: +\itemize{ +\item \code{NULL} to use the default scale values +\item A character vector that defines possible values of the scale and their +order +\item A function that accepts the existing (automatic) values and returns +new ones +}} \item{\code{na.translate}}{Unlike continuous scales, discrete scales can easily show missing values, and do so by default. If you want to remove missing values from a discrete scale, specify \code{na.translate = FALSE}.} - \item{\code{na.value}}{If \code{na.translate = TRUE}, what value aesthetic -value should missing be displayed as? Does not apply to position scales + \item{\code{na.value}}{If \code{na.translate = TRUE}, what aesthetic value should the +missing values be displayed as? Does not apply to position scales where \code{NA} is always placed at the far right.} \item{\code{drop}}{Should unused factor levels be omitted from the scale? The default, \code{TRUE}, uses the levels that appear in the data; diff --git a/man/theme_ipsum_es.Rd b/man/theme_ipsum_es.Rd index 08cdbc3..678879e 100644 --- a/man/theme_ipsum_es.Rd +++ b/man/theme_ipsum_es.Rd @@ -57,7 +57,7 @@ theme_ipsum_es( \item{axis_title_just}{axis title font justificationk one of \verb{[blmcrt]}} -\item{plot_margin}{plot margin (specify with \link[ggplot2:margin]{ggplot2::margin})} +\item{plot_margin}{plot margin (specify with \link[ggplot2:element]{ggplot2::margin})} \item{panel_spacing}{panel spacing (use \code{unit()})} diff --git a/man/theme_ipsum_gs.Rd b/man/theme_ipsum_gs.Rd index a237301..c82377b 100644 --- a/man/theme_ipsum_gs.Rd +++ b/man/theme_ipsum_gs.Rd @@ -56,7 +56,7 @@ theme_ipsum_gs( \item{axis_title_just}{axis title font justificationk one of \verb{[blmcrt]}} -\item{plot_margin}{plot margin (specify with \link[ggplot2:margin]{ggplot2::margin})} +\item{plot_margin}{plot margin (specify with \link[ggplot2:element]{ggplot2::margin})} \item{grid_col}{grid color} diff --git a/man/theme_ipsum_inter.Rd b/man/theme_ipsum_inter.Rd new file mode 100644 index 0000000..71aa7be --- /dev/null +++ b/man/theme_ipsum_inter.Rd @@ -0,0 +1,115 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/inter.R +\name{theme_ipsum_inter} +\alias{theme_ipsum_inter} +\title{A precise & pristine \link{ggplot2} theme with opinionated defaults and an emphasis on typoghraphy} +\usage{ +theme_ipsum_inter( + base_family = "Inter-Medium", + base_size = 10, + plot_title_family = "Inter-SemiBold", + plot_title_size = 16, + plot_title_face = "bold", + plot_title_margin = 8, + subtitle_family = "Inter-Medium", + subtitle_size = 12, + subtitle_face = "plain", + subtitle_margin = 13, + strip_text_family = "Inter", + strip_text_size = 12, + strip_text_face = "bold", + caption_family = "Inter-Light", + caption_size = 9, + caption_face = "plain", + caption_margin = 10, + axis_text_family = "Inter-Thin", + axis_text_face = "plain", + axis_text_size = 9, + axis_title_family = base_family, + axis_title_size = 9, + axis_title_face = "plain", + axis_title_just = "rt", + plot_margin = margin(30, 30, 30, 30), + grid_col = "#cccccc", + grid = TRUE, + axis_col = "#cccccc", + axis = FALSE, + ticks = FALSE +) +} +\arguments{ +\item{base_family, base_size}{base font family and size} + +\item{plot_title_family, plot_title_face, plot_title_size, plot_title_margin}{plot tilte family, face, size and margin} + +\item{subtitle_family, subtitle_face, subtitle_size}{plot subtitle family, face and size} + +\item{subtitle_margin}{plot subtitle margin bottom (single numeric value)} + +\item{strip_text_family, strip_text_face, strip_text_size}{facet label font family, face and size} + +\item{caption_family, caption_face, caption_size, caption_margin}{plot caption family, face, size and margin} + +\item{axis_text_size}{font size of axis text} + +\item{axis_title_family, axis_title_face, axis_title_size}{axis title font family, face and size} + +\item{axis_title_just}{axis title font justificationk one of \verb{[blmcrt]}} + +\item{plot_margin}{plot margin (specify with \link[ggplot2:element]{ggplot2::margin})} + +\item{grid_col}{grid color} + +\item{grid}{panel grid (\code{TRUE}, \code{FALSE}, or a combination of \code{X}, \code{x}, \code{Y}, \code{y})} + +\item{axis_col}{axis color} + +\item{axis}{add x or y axes? \code{TRUE}, \code{FALSE}, "\code{xy}"} + +\item{ticks}{ticks if \code{TRUE} add ticks} +} +\description{ +You should \code{\link[=import_inter]{import_inter()}} first and also install the fonts on your +system before trying to use this theme. +} +\details{ +There is an option \code{hrbrthemes.loadfonts} which -- if set to \code{TRUE} -- will +call \code{extrafont::loadfonts()} to register non-core fonts with R PDF & PostScript +devices. If you are running under Windows, the package calls the same function +to register non-core fonts with the Windows graphics device. +} +\section{Why Inter?}{ + +See \url{https://design.gs.com/d/story/goldman-sans/}. +} + +\examples{ +\dontrun{ +library(ggplot2) +library(dplyr) + +# seminal scatterplot +ggplot(mtcars, aes(mpg, wt)) + + geom_point() + + labs(x="Fuel efficiency (mpg)", y="Weight (tons)", + title="Seminal ggplot2 scatterplot example", + subtitle="A plot that is only useful for demonstration purposes", + caption="Brought to you by the letter 'g'") + + theme_ipsum_inter() + +# seminal bar chart + +update_geom_font_defaults(family=font_inter_medium) + +count(mpg, class) \%>\% + ggplot(aes(class, n)) + + geom_col() + + geom_text(aes(label=n), nudge_y=3) + + labs(x="Fuel efficiency (mpg)", y="Weight (tons)", + title="Seminal ggplot2 bar chart example", + subtitle="A plot that is only useful for demonstration purposes", + caption="Brought to you by the letter 'g'") + + theme_ipsum_inter(grid="Y") + + theme(axis.text.y=element_blank()) +} +} diff --git a/man/theme_ipsum_ps.Rd b/man/theme_ipsum_ps.Rd index 63f2977..3f77056 100644 --- a/man/theme_ipsum_ps.Rd +++ b/man/theme_ipsum_ps.Rd @@ -56,7 +56,7 @@ theme_ipsum_ps( \item{axis_title_just}{axis title font justificationk one of \verb{[blmcrt]}} -\item{plot_margin}{plot margin (specify with \link[ggplot2:margin]{ggplot2::margin})} +\item{plot_margin}{plot margin (specify with \link[ggplot2:element]{ggplot2::margin})} \item{grid_col}{grid color} diff --git a/man/theme_ipsum_pub.Rd b/man/theme_ipsum_pub.Rd index 2774dac..4bcfa97 100644 --- a/man/theme_ipsum_pub.Rd +++ b/man/theme_ipsum_pub.Rd @@ -57,7 +57,7 @@ theme_ipsum_pub( \item{axis_title_just}{axis title font justificationk one of \verb{[blmcrt]}} -\item{plot_margin}{plot margin (specify with \link[ggplot2:margin]{ggplot2::margin})} +\item{plot_margin}{plot margin (specify with \link[ggplot2:element]{ggplot2::margin})} \item{grid_col}{grid color} diff --git a/man/theme_ipsum_rc.Rd b/man/theme_ipsum_rc.Rd index 0de04ba..282c0ce 100644 --- a/man/theme_ipsum_rc.Rd +++ b/man/theme_ipsum_rc.Rd @@ -121,7 +121,7 @@ theme_ipsum_rc( \item{axis_title_just}{axis title font justificationk one of \verb{[blmcrt]}} -\item{plot_margin}{plot margin (specify with \link[ggplot2:margin]{ggplot2::margin})} +\item{plot_margin}{plot margin (specify with \link[ggplot2:element]{ggplot2::margin})} \item{grid}{panel grid (\code{TRUE}, \code{FALSE}, or a combination of \code{X}, \code{x}, \code{Y}, \code{y})} diff --git a/man/theme_ipsum_tw.Rd b/man/theme_ipsum_tw.Rd index 3734494..6dd7566 100644 --- a/man/theme_ipsum_tw.Rd +++ b/man/theme_ipsum_tw.Rd @@ -57,7 +57,7 @@ theme_ipsum_tw( \item{axis_title_just}{axis title font justificationk one of \verb{[blmcrt]}} -\item{plot_margin}{plot margin (specify with \link[ggplot2:margin]{ggplot2::margin})} +\item{plot_margin}{plot margin (specify with \link[ggplot2:element]{ggplot2::margin})} \item{grid_col}{grid color} diff --git a/man/theme_tinyhand.Rd b/man/theme_tinyhand.Rd index d5e7286..7445091 100644 --- a/man/theme_tinyhand.Rd +++ b/man/theme_tinyhand.Rd @@ -54,7 +54,7 @@ theme_tinyhand( \item{axis_title_just}{axis title font justificationk one of \verb{[blmcrt]}} -\item{plot_margin}{plot margin (specify with \link[ggplot2:margin]{ggplot2::margin})} +\item{plot_margin}{plot margin (specify with \link[ggplot2:element]{ggplot2::margin})} \item{grid_col}{grid color}