From 77f11a1dea8d0e7ffad4ebefbfb150e3e524fb05 Mon Sep 17 00:00:00 2001 From: vincentarelbundock Date: Sun, 14 Jan 2024 00:07:35 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20vincenta?= =?UTF-8?q?relbundock/tinytable@9b1037d7f26a8cb11105eb3c2e5c4737f6106001?= =?UTF-8?q?=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- man/tt.html | 170 ++- search.json | 38 +- vignettes/tutorial.html | 2371 ++++++++++++++++++--------------------- vignettes/tutorial.pdf | Bin 103160 -> 103174 bytes 4 files changed, 1202 insertions(+), 1377 deletions(-) diff --git a/man/tt.html b/man/tt.html index 70014960..70228ddd 100644 --- a/man/tt.html +++ b/man/tt.html @@ -390,45 +390,18 @@

Examples

- - tinytable_tic5ue75rvqzs9obcirv + tinytable_057c3sz81jeu9s5f7jcy - - - - +
- +
@@ -473,6 +446,28 @@

Examples

+ + + + + @@ -487,75 +482,23 @@

Examples

- - tinytable_3faiyhdol9l320vzfdbc + tinytable_gs6hkedu8xu83wdjx6ou - - - - +.table td.tinytable_css_2qlk5qbp64okf60l0dka, th.tinytable_css_2qlk5qbp64okf60l0dka { text-align: center } +.table td.tinytable_css_e7kszwgtjdtnjhlssunh, th.tinytable_css_e7kszwgtjdtnjhlssunh { text-align: center } +.table td.tinytable_css_icqdk8x2wrt9wecg8rw8, th.tinytable_css_icqdk8x2wrt9wecg8rw8 { text-align: right } +.table td.tinytable_css_mrpo3ze12jvzypoenamd, th.tinytable_css_mrpo3ze12jvzypoenamd { text-align: right } +.table td.tinytable_css_a1io44e9ab9c3wrc0jik, th.tinytable_css_a1io44e9ab9c3wrc0jik { text-align: left } +
- +
@@ -600,6 +543,53 @@

Examples

Data about cars.
+ + + + + diff --git a/search.json b/search.json index 62ba48cf..896de48c 100644 --- a/search.json +++ b/search.json @@ -144,14 +144,14 @@ "href": "man/tt.html", "title": "tinytable", "section": "", - "text": "The tt function renders a table in different formats (HTML, Markdown, or LaTeX) with various styling options.\n\n\n\ntt(\n x,\n output = NULL,\n align = NULL,\n caption = NULL,\n width = NULL,\n notes = NULL,\n theme = \"default\",\n placement = getOption(\"tt_tabularray_placement\", default = NULL)\n)\n\n\n\n\n\n\n\n\nx\n\n\nA data frame or data table to be rendered as a table.\n\n\n\n\noutput\n\n\nThe format of the output table. Can be \"html\", \"latex\", or \"markdown\". If NULL, the format is automatically detected in Quarto or Rmarkdown documents.\n\n\n\n\nalign\n\n\nA string specifying the alignment of columns. Each character in the string corresponds to a column; ‘l’ for left, ‘c’ for center, and ‘r’ for right alignment. The length of the string must match the number of columns in x.\n\n\n\n\ncaption\n\n\nA string that will be used as the caption of the table.\n\n\n\n\nwidth\n\n\nA numeric value between 0 and 1 indicating the proportion of the line width that the table should cover.\n\n\n\n\nnotes\n\n\nA single string or a (named) list of strings to append at the bottom of the table.\n\n\n\n\ntheme\n\n\nThe theme to apply to the table.\n\n\nLaTeX: \"default\", \"striped\", \"void\", or \"grid\".\n\n\nHTML: \"default\", \"striped\", \"void\", \"grid\", or a (composite) Bootstrap class such as “table table-dark” or “table table-dark table-hover”. See\n\n\n\n\n\n\nplacement\n\n\nA string to control the position of tables in LaTeX. Will be inserted in square brackets like: \\begin{table}[H]\n\n\n\n\n\n\n\nAn object of class tt representing the table.\n\n\n\nWhen rendering Quarto and Rmarkdown documents, tinytable will populate the LaTeX preamble automatically with all the required packages. For standalone LaTeX packages, these commands should be inserted in the preamble:\n\n\n\\usepackage{tabularray}\n\\usepackage{float}\n\\usepackage{codehigh}\n\\usepackage[normalem]{ulem}\n\\UseTblrLibrary{booktabs}\n\\newcommand{\\tinytableTabularrayUnderline}[1]{\\underline{#1}}\",\n\\newcommand{\\tinytableTabularrayStrikeout}[1]{\\sout{#1}}\",\n\\NewTableCommand{\\tinytableDefineColor}[3]{\\definecolor{#1}{#2}{#3}}\n\n\n\n\n\n\nlibrary(tinytable)\n\n\n\nlibrary(tinytable)\nx <- mtcars[1:4, 1:5]\n\ntt(x)\n\n\n \n\n\n \n \n \n tinytable_tic5ue75rvqzs9obcirv\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n mpg\n cyl\n disp\n hp\n drat\n \n \n \n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 22.8\n 4\n 108\n 93\n 3.85\n \n \n 21.4\n 6\n 258\n 110\n 3.08\n \n \n \n \n\n \n\n\n\n\ntt(x,\n theme = \"striped\",\n width = 0.5,\n align = \"ccrrl\",\n caption = \"Data about cars.\")\n\n\n \n\n\n \n \n \n tinytable_3faiyhdol9l320vzfdbc\n \n \n \n \n \n \n \n\n \n \n \n \n Data about cars.\n \n mpg\n cyl\n disp\n hp\n drat\n \n \n \n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 22.8\n 4\n 108\n 93\n 3.85\n \n \n 21.4\n 6\n 258\n 110\n 3.08" + "text": "The tt function renders a table in different formats (HTML, Markdown, or LaTeX) with various styling options.\n\n\n\ntt(\n x,\n output = NULL,\n align = NULL,\n caption = NULL,\n width = NULL,\n notes = NULL,\n theme = \"default\",\n placement = getOption(\"tt_tabularray_placement\", default = NULL)\n)\n\n\n\n\n\n\n\n\nx\n\n\nA data frame or data table to be rendered as a table.\n\n\n\n\noutput\n\n\nThe format of the output table. Can be \"html\", \"latex\", or \"markdown\". If NULL, the format is automatically detected in Quarto or Rmarkdown documents.\n\n\n\n\nalign\n\n\nA string specifying the alignment of columns. Each character in the string corresponds to a column; ‘l’ for left, ‘c’ for center, and ‘r’ for right alignment. The length of the string must match the number of columns in x.\n\n\n\n\ncaption\n\n\nA string that will be used as the caption of the table.\n\n\n\n\nwidth\n\n\nA numeric value between 0 and 1 indicating the proportion of the line width that the table should cover.\n\n\n\n\nnotes\n\n\nA single string or a (named) list of strings to append at the bottom of the table.\n\n\n\n\ntheme\n\n\nThe theme to apply to the table.\n\n\nLaTeX: \"default\", \"striped\", \"void\", or \"grid\".\n\n\nHTML: \"default\", \"striped\", \"void\", \"grid\", or a (composite) Bootstrap class such as “table table-dark” or “table table-dark table-hover”. See\n\n\n\n\n\n\nplacement\n\n\nA string to control the position of tables in LaTeX. Will be inserted in square brackets like: \\begin{table}[H]\n\n\n\n\n\n\n\nAn object of class tt representing the table.\n\n\n\nWhen rendering Quarto and Rmarkdown documents, tinytable will populate the LaTeX preamble automatically with all the required packages. For standalone LaTeX packages, these commands should be inserted in the preamble:\n\n\n\\usepackage{tabularray}\n\\usepackage{float}\n\\usepackage{codehigh}\n\\usepackage[normalem]{ulem}\n\\UseTblrLibrary{booktabs}\n\\newcommand{\\tinytableTabularrayUnderline}[1]{\\underline{#1}}\",\n\\newcommand{\\tinytableTabularrayStrikeout}[1]{\\sout{#1}}\",\n\\NewTableCommand{\\tinytableDefineColor}[3]{\\definecolor{#1}{#2}{#3}}\n\n\n\n\n\n\nlibrary(tinytable)\n\n\n\nlibrary(tinytable)\nx <- mtcars[1:4, 1:5]\n\ntt(x)\n\n\n \n\n \n \n \n tinytable_057c3sz81jeu9s5f7jcy\n \n \n \n\n \n \n \n \n \n \n mpg\n cyl\n disp\n hp\n drat\n \n \n \n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 22.8\n 4\n 108\n 93\n 3.85\n \n \n 21.4\n 6\n 258\n 110\n 3.08\n \n \n \n \n\n \n \n \n \n\n \n\n\n\n\ntt(x,\n theme = \"striped\",\n width = 0.5,\n align = \"ccrrl\",\n caption = \"Data about cars.\")\n\n\n \n\n \n \n \n tinytable_gs6hkedu8xu83wdjx6ou\n \n \n \n\n \n \n \n \n Data about cars.\n \n mpg\n cyl\n disp\n hp\n drat\n \n \n \n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 22.8\n 4\n 108\n 93\n 3.85\n \n \n 21.4\n 6\n 258\n 110\n 3.08" }, { "objectID": "man/tt.html#draw-a-tiny-table", "href": "man/tt.html#draw-a-tiny-table", "title": "tinytable", "section": "", - "text": "The tt function renders a table in different formats (HTML, Markdown, or LaTeX) with various styling options.\n\n\n\ntt(\n x,\n output = NULL,\n align = NULL,\n caption = NULL,\n width = NULL,\n notes = NULL,\n theme = \"default\",\n placement = getOption(\"tt_tabularray_placement\", default = NULL)\n)\n\n\n\n\n\n\n\n\nx\n\n\nA data frame or data table to be rendered as a table.\n\n\n\n\noutput\n\n\nThe format of the output table. Can be \"html\", \"latex\", or \"markdown\". If NULL, the format is automatically detected in Quarto or Rmarkdown documents.\n\n\n\n\nalign\n\n\nA string specifying the alignment of columns. Each character in the string corresponds to a column; ‘l’ for left, ‘c’ for center, and ‘r’ for right alignment. The length of the string must match the number of columns in x.\n\n\n\n\ncaption\n\n\nA string that will be used as the caption of the table.\n\n\n\n\nwidth\n\n\nA numeric value between 0 and 1 indicating the proportion of the line width that the table should cover.\n\n\n\n\nnotes\n\n\nA single string or a (named) list of strings to append at the bottom of the table.\n\n\n\n\ntheme\n\n\nThe theme to apply to the table.\n\n\nLaTeX: \"default\", \"striped\", \"void\", or \"grid\".\n\n\nHTML: \"default\", \"striped\", \"void\", \"grid\", or a (composite) Bootstrap class such as “table table-dark” or “table table-dark table-hover”. See\n\n\n\n\n\n\nplacement\n\n\nA string to control the position of tables in LaTeX. Will be inserted in square brackets like: \\begin{table}[H]\n\n\n\n\n\n\n\nAn object of class tt representing the table.\n\n\n\nWhen rendering Quarto and Rmarkdown documents, tinytable will populate the LaTeX preamble automatically with all the required packages. For standalone LaTeX packages, these commands should be inserted in the preamble:\n\n\n\\usepackage{tabularray}\n\\usepackage{float}\n\\usepackage{codehigh}\n\\usepackage[normalem]{ulem}\n\\UseTblrLibrary{booktabs}\n\\newcommand{\\tinytableTabularrayUnderline}[1]{\\underline{#1}}\",\n\\newcommand{\\tinytableTabularrayStrikeout}[1]{\\sout{#1}}\",\n\\NewTableCommand{\\tinytableDefineColor}[3]{\\definecolor{#1}{#2}{#3}}\n\n\n\n\n\n\nlibrary(tinytable)\n\n\n\nlibrary(tinytable)\nx <- mtcars[1:4, 1:5]\n\ntt(x)\n\n\n \n\n\n \n \n \n tinytable_tic5ue75rvqzs9obcirv\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n mpg\n cyl\n disp\n hp\n drat\n \n \n \n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 22.8\n 4\n 108\n 93\n 3.85\n \n \n 21.4\n 6\n 258\n 110\n 3.08\n \n \n \n \n\n \n\n\n\n\ntt(x,\n theme = \"striped\",\n width = 0.5,\n align = \"ccrrl\",\n caption = \"Data about cars.\")\n\n\n \n\n\n \n \n \n tinytable_3faiyhdol9l320vzfdbc\n \n \n \n \n \n \n \n\n \n \n \n \n Data about cars.\n \n mpg\n cyl\n disp\n hp\n drat\n \n \n \n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 22.8\n 4\n 108\n 93\n 3.85\n \n \n 21.4\n 6\n 258\n 110\n 3.08" + "text": "The tt function renders a table in different formats (HTML, Markdown, or LaTeX) with various styling options.\n\n\n\ntt(\n x,\n output = NULL,\n align = NULL,\n caption = NULL,\n width = NULL,\n notes = NULL,\n theme = \"default\",\n placement = getOption(\"tt_tabularray_placement\", default = NULL)\n)\n\n\n\n\n\n\n\n\nx\n\n\nA data frame or data table to be rendered as a table.\n\n\n\n\noutput\n\n\nThe format of the output table. Can be \"html\", \"latex\", or \"markdown\". If NULL, the format is automatically detected in Quarto or Rmarkdown documents.\n\n\n\n\nalign\n\n\nA string specifying the alignment of columns. Each character in the string corresponds to a column; ‘l’ for left, ‘c’ for center, and ‘r’ for right alignment. The length of the string must match the number of columns in x.\n\n\n\n\ncaption\n\n\nA string that will be used as the caption of the table.\n\n\n\n\nwidth\n\n\nA numeric value between 0 and 1 indicating the proportion of the line width that the table should cover.\n\n\n\n\nnotes\n\n\nA single string or a (named) list of strings to append at the bottom of the table.\n\n\n\n\ntheme\n\n\nThe theme to apply to the table.\n\n\nLaTeX: \"default\", \"striped\", \"void\", or \"grid\".\n\n\nHTML: \"default\", \"striped\", \"void\", \"grid\", or a (composite) Bootstrap class such as “table table-dark” or “table table-dark table-hover”. See\n\n\n\n\n\n\nplacement\n\n\nA string to control the position of tables in LaTeX. Will be inserted in square brackets like: \\begin{table}[H]\n\n\n\n\n\n\n\nAn object of class tt representing the table.\n\n\n\nWhen rendering Quarto and Rmarkdown documents, tinytable will populate the LaTeX preamble automatically with all the required packages. For standalone LaTeX packages, these commands should be inserted in the preamble:\n\n\n\\usepackage{tabularray}\n\\usepackage{float}\n\\usepackage{codehigh}\n\\usepackage[normalem]{ulem}\n\\UseTblrLibrary{booktabs}\n\\newcommand{\\tinytableTabularrayUnderline}[1]{\\underline{#1}}\",\n\\newcommand{\\tinytableTabularrayStrikeout}[1]{\\sout{#1}}\",\n\\NewTableCommand{\\tinytableDefineColor}[3]{\\definecolor{#1}{#2}{#3}}\n\n\n\n\n\n\nlibrary(tinytable)\n\n\n\nlibrary(tinytable)\nx <- mtcars[1:4, 1:5]\n\ntt(x)\n\n\n \n\n \n \n \n tinytable_057c3sz81jeu9s5f7jcy\n \n \n \n\n \n \n \n \n \n \n mpg\n cyl\n disp\n hp\n drat\n \n \n \n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 22.8\n 4\n 108\n 93\n 3.85\n \n \n 21.4\n 6\n 258\n 110\n 3.08\n \n \n \n \n\n \n \n \n \n\n \n\n\n\n\ntt(x,\n theme = \"striped\",\n width = 0.5,\n align = \"ccrrl\",\n caption = \"Data about cars.\")\n\n\n \n\n \n \n \n tinytable_gs6hkedu8xu83wdjx6ou\n \n \n \n\n \n \n \n \n Data about cars.\n \n mpg\n cyl\n disp\n hp\n drat\n \n \n \n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 22.8\n 4\n 108\n 93\n 3.85\n \n \n 21.4\n 6\n 258\n 110\n 3.08" }, { "objectID": "CITATION.html", @@ -179,98 +179,98 @@ "href": "vignettes/tutorial.html#themes", "title": "tinytable", "section": "Themes", - "text": "Themes\ntinytable offers a few basic themes out of the box: “default”, “striped”, “grid”, “void.” Those themes can be applied with the theme argument of the tt() function. As we will see below, it is easy to go much beyond those basic settings to customize your own tables. Here we only illustrate a few of the simplest settings:\n\ntt(x, theme = \"striped\")\n\n\n \n\n\n \n \n \n tinytable_cy3ayz2m90o3nmrrmtam\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n mpg\n cyl\n disp\n hp\n drat\n \n \n \n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 22.8\n 4\n 108\n 93\n 3.85\n \n \n 21.4\n 6\n 258\n 110\n 3.08\n \n \n \n \n\n \n\n\n\n\n\n\ntt(x, theme = \"grid\")\n\n\n \n\n\n \n \n \n tinytable_oh2liqyc9ciwkpgwm7ml\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n mpg\n cyl\n disp\n hp\n drat\n \n \n \n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 22.8\n 4\n 108\n 93\n 3.85\n \n \n 21.4\n 6\n 258\n 110\n 3.08" + "text": "Themes\ntinytable offers a few basic themes out of the box: “default”, “striped”, “grid”, “void.” Those themes can be applied with the theme argument of the tt() function. As we will see below, it is easy to go much beyond those basic settings to customize your own tables. Here we only illustrate a few of the simplest settings:\n\ntt(x, theme = \"striped\")\n\n\n \n\n \n \n \n tinytable_nvmibb4eelwc2dip1ez7\n \n \n \n\n \n \n \n \n \n \n mpg\n cyl\n disp\n hp\n drat\n \n \n \n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 22.8\n 4\n 108\n 93\n 3.85\n \n \n 21.4\n 6\n 258\n 110\n 3.08\n \n \n \n \n\n \n \n \n \n\n \n\n\n\n\n\n\ntt(x, theme = \"grid\")\n\n\n \n\n \n \n \n tinytable_k55l16lg45g2676wkv65\n \n \n \n\n \n \n \n \n \n \n mpg\n cyl\n disp\n hp\n drat\n \n \n \n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 22.8\n 4\n 108\n 93\n 3.85\n \n \n 21.4\n 6\n 258\n 110\n 3.08" }, { "objectID": "vignettes/tutorial.html#alignment", "href": "vignettes/tutorial.html#alignment", "title": "tinytable", "section": "Alignment", - "text": "Alignment\nTo align columns, we use a single string, where each letter represents a column:\n\ntt(x, align = \"ccrrl\")\n\n\n \n\n\n \n \n \n tinytable_r9s7yzmlyvxym4kv1u6o\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n mpg\n cyl\n disp\n hp\n drat\n \n \n \n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 22.8\n 4\n 108\n 93\n 3.85\n \n \n 21.4\n 6\n 258\n 110\n 3.08" + "text": "Alignment\nTo align columns, we use a single string, where each letter represents a column:\n\ntt(x, align = \"ccrrl\")\n\n\n \n\n \n \n \n tinytable_wx3hswigdj7p4cg6wm7c\n \n \n \n\n \n \n \n \n \n \n mpg\n cyl\n disp\n hp\n drat\n \n \n \n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 22.8\n 4\n 108\n 93\n 3.85\n \n \n 21.4\n 6\n 258\n 110\n 3.08" }, { "objectID": "vignettes/tutorial.html#width", "href": "vignettes/tutorial.html#width", "title": "tinytable", "section": "Width", - "text": "Width\nThe width arguments accepts a number between 0 and 1, indicating what proportion of the linewidth the table should cover:\n\ntt(x, width = 0.3)\n\n\n \n\n\n \n \n \n tinytable_djwncw3dqjv5ibnsjdk3\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n mpg\n cyl\n disp\n hp\n drat\n \n \n \n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 22.8\n 4\n 108\n 93\n 3.85\n \n \n 21.4\n 6\n 258\n 110\n 3.08\n \n \n \n \n\n \n\n\n\n\n\n\ntt(x, width = 1)\n\n\n \n\n\n \n \n \n tinytable_h1bkjhebdxmle58h7qbm\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n mpg\n cyl\n disp\n hp\n drat\n \n \n \n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 22.8\n 4\n 108\n 93\n 3.85\n \n \n 21.4\n 6\n 258\n 110\n 3.08" + "text": "Width\nThe width arguments accepts a number between 0 and 1, indicating what proportion of the linewidth the table should cover:\n\ntt(x, width = 0.5)\n\n\n \n\n \n \n \n tinytable_7kzvpbxlckmraqchk9p8\n \n \n \n\n \n \n \n \n \n \n mpg\n cyl\n disp\n hp\n drat\n \n \n \n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 22.8\n 4\n 108\n 93\n 3.85\n \n \n 21.4\n 6\n 258\n 110\n 3.08\n \n \n \n \n\n \n \n \n \n\n \n\n\n\n\n\n\ntt(x, width = 1)\n\n\n \n\n \n \n \n tinytable_eejubx65bv1r4d6kunv7\n \n \n \n\n \n \n \n \n \n \n mpg\n cyl\n disp\n hp\n drat\n \n \n \n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 22.8\n 4\n 108\n 93\n 3.85\n \n \n 21.4\n 6\n 258\n 110\n 3.08" }, { "objectID": "vignettes/tutorial.html#line-breaks-and-text-wrapping", "href": "vignettes/tutorial.html#line-breaks-and-text-wrapping", "title": "tinytable", "section": "Line breaks and text wrapping", - "text": "Line breaks and text wrapping\nWhen the width argument is specified and a cell includes long text, the text is automatically wrapped to match the table.\n\nlorem <- data.frame(\n Lorem = \"Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo.\",\n Ipsum = \" Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos.\"\n)\ntt(lorem, width = 3/4)\n\n\n \n\n\n \n \n \n tinytable_5z00qnpw0ybqansdqulp\n \n \n \n \n \n \n \n\n \n \n A full width table with wrapped text.\n \n \n \n Lorem\n Ipsum\n \n \n \n \n \n Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo.\n Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos.\n \n \n \n \n\n \n\n\n\n\n\nManual line breaks work sligthly different in LaTeX (PDF) or HTML. This table shows the two strategies. For HTML, we insert a <br> tag. For LaTeX, we wrap the string in curly braces {}, and then insert two (escaped) backslashes: \\\\\\\\\n\nd <- data.frame(\n \"{Sed ut \\\\\\\\ perspiciatis unde}\",\n \"dicta sunt<br> explicabo. Nemo\"\n) |> setNames(c(\"LaTeX line break\", \"HTML line break\"))\ntt(d, width = 1)\n\n\n \n\n\n \n \n \n tinytable_b7y2zixfra0oq6yvf63a\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n LaTeX line break\n HTML line break\n \n \n \n \n \n {Sed ut \\\\ perspiciatis unde}\n dicta sunt explicabo. Nemo" + "text": "Line breaks and text wrapping\nWhen the width argument is specified and a cell includes long text, the text is automatically wrapped to match the table.\n\nlorem <- data.frame(\n Lorem = \"Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo.\",\n Ipsum = \" Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos.\"\n)\ntt(lorem, width = 3/4)\n\n\n \n\n \n \n \n tinytable_3rsj22i8cyzecmya5r0x\n \n \n \n\n \n \n A full width table with wrapped text.\n \n \n \n Lorem\n Ipsum\n \n \n \n \n \n Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo.\n Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos.\n \n \n \n \n\n \n \n \n \n\n \n\n\n\n\n\nManual line breaks work sligthly different in LaTeX (PDF) or HTML. This table shows the two strategies. For HTML, we insert a <br> tag. For LaTeX, we wrap the string in curly braces {}, and then insert two (escaped) backslashes: \\\\\\\\\n\nd <- data.frame(\n \"{Sed ut \\\\\\\\ perspiciatis unde}\",\n \"dicta sunt<br> explicabo. Nemo\"\n) |> setNames(c(\"LaTeX line break\", \"HTML line break\"))\ntt(d, width = 1)\n\n\n \n\n \n \n \n tinytable_hytc13urdzry0126btv2\n \n \n \n\n \n \n \n \n \n \n LaTeX line break\n HTML line break\n \n \n \n \n \n {Sed ut \\\\ perspiciatis unde}\n dicta sunt explicabo. Nemo" }, { "objectID": "vignettes/tutorial.html#captions-and-cross-references", "href": "vignettes/tutorial.html#captions-and-cross-references", "title": "tinytable", "section": "Captions and cross-references", - "text": "Captions and cross-references\nIn Quarto, one can specify captions and use cross-references using code like this:\n@tbl-blah shows that...\n\n```{r}\n#| label: tbl-blah\n#| tbl-cap: \"Blah blah blah\"\nlibrary(tinytable)\ntt(mtcars[1:4, 1:4])\n```\nAnd here is the rendered version of the code chunk above:\nTable 1 shows that…\n\nlibrary(tinytable)\ntt(mtcars[1:4, 1:4], placement = NULL)\n\n\n\n \n\n\n \n \n \n tinytable_rhg6m5yrd6yz54od9kwj\n \n \n \n \n \n \n \n\n \n \n Table 1: Blah blah blah \n \n \n \n mpg\n cyl\n disp\n hp\n \n \n \n \n \n 21\n 6\n 160\n 110\n \n \n 21\n 6\n 160\n 110\n \n \n 22.8\n 4\n 108\n 93\n \n \n 21.4\n 6\n 258\n 110\n \n \n \n \n\n \n\n\n\n\n\n\nFor standalone LaTeX tables, you can use the caption argument like so:\n\ntt(x, caption = \"Blah blah.\\\\label{tbl-blah}\")\n\nBe aware that this more approach may not work well in Quarto or Rmarkdown documents." + "text": "Captions and cross-references\nIn Quarto, one can specify captions and use cross-references using code like this:\n@tbl-blah shows that...\n\n```{r}\n#| label: tbl-blah\n#| tbl-cap: \"Blah blah blah\"\nlibrary(tinytable)\ntt(mtcars[1:4, 1:4])\n```\nAnd here is the rendered version of the code chunk above:\nTable 1 shows that…\n\nlibrary(tinytable)\ntt(mtcars[1:4, 1:4], placement = NULL)\n\n\n\n \n\n \n \n \n tinytable_lntvqvi7iwqrjhq7c82u\n \n \n \n\n \n \n Table 1: Blah blah blah \n \n \n \n mpg\n cyl\n disp\n hp\n \n \n \n \n \n 21\n 6\n 160\n 110\n \n \n 21\n 6\n 160\n 110\n \n \n 22.8\n 4\n 108\n 93\n \n \n 21.4\n 6\n 258\n 110\n \n \n \n \n\n \n \n \n \n\n \n\n\n\n\n\n\nFor standalone LaTeX tables, you can use the caption argument like so:\n\ntt(x, caption = \"Blah blah.\\\\label{tbl-blah}\")\n\nBe aware that this more approach may not work well in Quarto or Rmarkdown documents." }, { "objectID": "vignettes/tutorial.html#footnotes", "href": "vignettes/tutorial.html#footnotes", "title": "tinytable", "section": "Footnotes", - "text": "Footnotes\nThe note argument accepts single strings or named lists of strings:\n\nn <- \"Fusce id ipsum consequat ante pellentesque iaculis eu a ipsum. Mauris id ex in nulla consectetur aliquam. In nec tempus diam. Aliquam arcu nibh, dapibus id ex vestibulum, feugiat consequat erat. Morbi feugiat dapibus malesuada. Quisque vel ullamcorper felis. Aenean a sem at nisi tempor pretium sit amet quis lacus.\"\n\ntt(lorem, notes = n, width = 1)\n\n\n \n\n\n \n \n \n tinytable_bblgs3twx2qv144iibq4\n \n \n \n \n \n \n \n\n \n \n A full-width table with wrapped text in cells and a footnote.\n \n \n \n Lorem\n Ipsum\n \n \n Fusce id ipsum consequat ante pellentesque iaculis eu a ipsum. Mauris id ex in nulla consectetur aliquam. In nec tempus diam. Aliquam arcu nibh, dapibus id ex vestibulum, feugiat consequat erat. Morbi feugiat dapibus malesuada. Quisque vel ullamcorper felis. Aenean a sem at nisi tempor pretium sit amet quis lacus.\n \n \n Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo.\n Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos.\n \n \n \n \n\n \n\n\n\n\n\nWhen note is a named list, the names are used as identifiers and displayed as superscripts:\n\ntt(x, notes = list(a = \"Blah.\", b = \"Blah blah.\"))\n\n\n \n\n\n \n \n \n tinytable_35urh8cxvbh176h93gf5\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n mpg\n cyl\n disp\n hp\n drat\n \n \n a Blah.\nb Blah blah.\n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 22.8\n 4\n 108\n 93\n 3.85\n \n \n 21.4\n 6\n 258\n 110\n 3.08" + "text": "Footnotes\nThe note argument accepts single strings or named lists of strings:\n\nn <- \"Fusce id ipsum consequat ante pellentesque iaculis eu a ipsum. Mauris id ex in nulla consectetur aliquam. In nec tempus diam. Aliquam arcu nibh, dapibus id ex vestibulum, feugiat consequat erat. Morbi feugiat dapibus malesuada. Quisque vel ullamcorper felis. Aenean a sem at nisi tempor pretium sit amet quis lacus.\"\n\ntt(lorem, notes = n, width = 1)\n\n\n \n\n \n \n \n tinytable_skowr8psbk56svnmgw4t\n \n \n \n\n \n \n A full-width table with wrapped text in cells and a footnote.\n \n \n \n Lorem\n Ipsum\n \n \n Fusce id ipsum consequat ante pellentesque iaculis eu a ipsum. Mauris id ex in nulla consectetur aliquam. In nec tempus diam. Aliquam arcu nibh, dapibus id ex vestibulum, feugiat consequat erat. Morbi feugiat dapibus malesuada. Quisque vel ullamcorper felis. Aenean a sem at nisi tempor pretium sit amet quis lacus.\n \n \n Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo.\n Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos.\n \n \n \n \n\n \n \n \n \n\n \n\n\n\n\n\nWhen note is a named list, the names are used as identifiers and displayed as superscripts:\n\ntt(x, notes = list(a = \"Blah.\", b = \"Blah blah.\"))\n\n\n \n\n \n \n \n tinytable_tacn8be9vw1z1ie8pnqt\n \n \n \n\n \n \n \n \n \n \n mpg\n cyl\n disp\n hp\n drat\n \n \n a Blah.\nb Blah blah.\n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 22.8\n 4\n 108\n 93\n 3.85\n \n \n 21.4\n 6\n 258\n 110\n 3.08" }, { "objectID": "vignettes/tutorial.html#math", "href": "vignettes/tutorial.html#math", "title": "tinytable", "section": "Math", - "text": "Math\nYou can render equations inside tables using the common $...$ syntax:\n\ndat <- data.frame(Math = c(\"$x^2 + y^2 = z^2$\", \"$\\\\frac{1}{2}$\"))\ntt(dat)\n\n\n \n\n\n \n \n \n tinytable_8n2znjaoocua6px7sfy3\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n Math\n \n \n \n \n \n $x^2 + y^2 = z^2$\n \n \n $\\frac{1}{2}$\n \n \n \n \n\n \n\n\n\n\n\nIn LaTeX (PDF), you can also use the mode inner setting from tabularray to render math in tables without $ delimiters (see Section 5 for details on tabularray):\n\ndat <- data.frame(Math = c(\"x^2 + y^2 = z^2\", \"\\\\frac{1}{2}\"))\ntt(dat) |> style_tt(tabularray_inner = \"column{1}={mode=math},\")" + "text": "Math\nYou can render equations inside tables using the common $...$ syntax:\n\ndat <- data.frame(Math = c(\"$x^2 + y^2 = z^2$\", \"$\\\\frac{1}{2}$\"))\ntt(dat)\n\n\n \n\n \n \n \n tinytable_xht59n7ajs3fyy91cscm\n \n \n \n\n \n \n \n \n \n \n Math\n \n \n \n \n \n $x^2 + y^2 = z^2$\n \n \n $\\frac{1}{2}$\n \n \n \n \n\n \n \n \n \n\n \n\n\n\n\n\nIn LaTeX (PDF), you can also use the mode inner setting from tabularray to render math in tables without $ delimiters (see Section 5 for details on tabularray):\n\ndat <- data.frame(Math = c(\"x^2 + y^2 = z^2\", \"\\\\frac{1}{2}\"))\ntt(dat) |> style_tt(tabularray_inner = \"column{1}={mode=math},\")" }, { "objectID": "vignettes/tutorial.html#cells-rows-columns", "href": "vignettes/tutorial.html#cells-rows-columns", "title": "tinytable", "section": "Cells, rows, columns", - "text": "Cells, rows, columns\nTo style individual cells, we use the style_cell() function. The first two arguments—i and j—identify the cells of interest, by row and column numbers respectively. To style a cell in the 2nd row and 3rd column, we can do:\n\ntt(x) |>\n style_tt(\n i = 2,\n j = 3,\n background = \"black\",\n color = \"white\")\n\n\n \n\n\n \n \n \n tinytable_mq4dcdvr0sik0r2eo6pk\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n mpg\n cyl\n disp\n hp\n drat\n \n \n \n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 22.8\n 4\n 108\n 93\n 3.85\n \n \n 21.4\n 6\n 258\n 110\n 3.08\n \n \n \n \n\n \n\n\n\n\nThe i and j accept vectors of integers to modify several cells at once:\n\ntt(x) |>\n style_tt(\n i = 2:3,\n j = c(1, 3, 4),\n italic = TRUE,\n color = \"orange\")\n\n\n \n\n\n \n \n \n tinytable_a6tm9l0vqo2jjsps9acz\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n mpg\n cyl\n disp\n hp\n drat\n \n \n \n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 22.8\n 4\n 108\n 93\n 3.85\n \n \n 21.4\n 6\n 258\n 110\n 3.08\n \n \n \n \n\n \n\n\n\n\nWe can style all cells in a table by omitting both the i and j arguments:\n\ntt(x) |> style_tt(color = \"orange\")\n\n\n \n\n\n \n \n \n tinytable_maddpmsuov87jn23x3ns\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n mpg\n cyl\n disp\n hp\n drat\n \n \n \n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 22.8\n 4\n 108\n 93\n 3.85\n \n \n 21.4\n 6\n 258\n 110\n 3.08\n \n \n \n \n\n \n\n\n\n\nWe can style entire rows by omitting the j argument:\n\ntt(x) |> style_tt(i = 1:2, color = \"orange\")\n\n\n \n\n\n \n \n \n tinytable_j7z47vuko10zi4a84rui\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n mpg\n cyl\n disp\n hp\n drat\n \n \n \n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 22.8\n 4\n 108\n 93\n 3.85\n \n \n 21.4\n 6\n 258\n 110\n 3.08\n \n \n \n \n\n \n\n\n\n\nWe can style entire columns by omitting the i argument:\n\ntt(x) |> style_tt(j = c(2, 4), bold = TRUE)\n\n\n \n\n\n \n \n \n tinytable_095srzqlmnumwuz18t15\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n mpg\n cyl\n disp\n hp\n drat\n \n \n \n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 22.8\n 4\n 108\n 93\n 3.85\n \n \n 21.4\n 6\n 258\n 110\n 3.08\n \n \n \n \n\n \n\n\n\n\nThe j argument accepts integer vectors, but also a string with a Perl-style regular expression, which makes it easier to select columns by name:\n\ntt(x) |> style_tt(j = \"mpg|drat\", color = \"orange\")\n\n\n \n\n\n \n \n \n tinytable_0e0swxlvt4bxvzshm1p0\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n mpg\n cyl\n disp\n hp\n drat\n \n \n \n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 22.8\n 4\n 108\n 93\n 3.85\n \n \n 21.4\n 6\n 258\n 110\n 3.08\n \n \n \n \n\n \n\n\n\n\nOf course, we can also call the style_tt() function several times to apply different styles to different parts of the table:\n\ntt(x) |> \n style_tt(i = 1, j = 1:2, color = \"orange\") |>\n style_tt(i = 1, j = 3:4, color = \"green\")\n\n\n \n\n\n \n \n \n tinytable_mynhnxi7mxpgx2i7uxpm\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n mpg\n cyl\n disp\n hp\n drat\n \n \n \n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 22.8\n 4\n 108\n 93\n 3.85\n \n \n 21.4\n 6\n 258\n 110\n 3.08" + "text": "Cells, rows, columns\nTo style individual cells, we use the style_cell() function. The first two arguments—i and j—identify the cells of interest, by row and column numbers respectively. To style a cell in the 2nd row and 3rd column, we can do:\n\ntt(x) |>\n style_tt(\n i = 2,\n j = 3,\n background = \"black\",\n color = \"white\")\n\n\n \n\n \n \n \n tinytable_ly2cmuwrn9euleky7bjs\n \n \n \n\n \n \n \n \n \n \n mpg\n cyl\n disp\n hp\n drat\n \n \n \n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 22.8\n 4\n 108\n 93\n 3.85\n \n \n 21.4\n 6\n 258\n 110\n 3.08\n \n \n \n \n\n \n \n \n \n\n \n\n\n\n\nThe i and j accept vectors of integers to modify several cells at once:\n\ntt(x) |>\n style_tt(\n i = 2:3,\n j = c(1, 3, 4),\n italic = TRUE,\n color = \"orange\")\n\n\n \n\n \n \n \n tinytable_nv4ry2h2gmcebj6lqzgm\n \n \n \n\n \n \n \n \n \n \n mpg\n cyl\n disp\n hp\n drat\n \n \n \n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 22.8\n 4\n 108\n 93\n 3.85\n \n \n 21.4\n 6\n 258\n 110\n 3.08\n \n \n \n \n\n \n \n \n \n\n \n\n\n\n\nWe can style all cells in a table by omitting both the i and j arguments:\n\ntt(x) |> style_tt(color = \"orange\")\n\n\n \n\n \n \n \n tinytable_qfxutb7pnbp3tnkpfuqy\n \n \n \n\n \n \n \n \n \n \n mpg\n cyl\n disp\n hp\n drat\n \n \n \n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 22.8\n 4\n 108\n 93\n 3.85\n \n \n 21.4\n 6\n 258\n 110\n 3.08\n \n \n \n \n\n \n \n \n \n\n \n\n\n\n\nWe can style entire rows by omitting the j argument:\n\ntt(x) |> style_tt(i = 1:2, color = \"orange\")\n\n\n \n\n \n \n \n tinytable_1zjw2zrv4g75hrti4b64\n \n \n \n\n \n \n \n \n \n \n mpg\n cyl\n disp\n hp\n drat\n \n \n \n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 22.8\n 4\n 108\n 93\n 3.85\n \n \n 21.4\n 6\n 258\n 110\n 3.08\n \n \n \n \n\n \n \n \n \n\n \n\n\n\n\nWe can style entire columns by omitting the i argument:\n\ntt(x) |> style_tt(j = c(2, 4), bold = TRUE)\n\n\n \n\n \n \n \n tinytable_0pdouoyjjgbrwwd3w6kc\n \n \n \n\n \n \n \n \n \n \n mpg\n cyl\n disp\n hp\n drat\n \n \n \n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 22.8\n 4\n 108\n 93\n 3.85\n \n \n 21.4\n 6\n 258\n 110\n 3.08\n \n \n \n \n\n \n \n \n \n\n \n\n\n\n\nThe j argument accepts integer vectors, but also a string with a Perl-style regular expression, which makes it easier to select columns by name:\n\ntt(x) |> style_tt(j = \"mpg|drat\", color = \"orange\")\n\n\n \n\n \n \n \n tinytable_hbw2p0pm5gzuejgrj5fd\n \n \n \n\n \n \n \n \n \n \n mpg\n cyl\n disp\n hp\n drat\n \n \n \n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 22.8\n 4\n 108\n 93\n 3.85\n \n \n 21.4\n 6\n 258\n 110\n 3.08\n \n \n \n \n\n \n \n \n \n\n \n\n\n\n\nOf course, we can also call the style_tt() function several times to apply different styles to different parts of the table:\n\ntt(x) |> \n style_tt(i = 1, j = 1:2, color = \"orange\") |>\n style_tt(i = 1, j = 3:4, color = \"green\")\n\n\n \n\n \n \n \n tinytable_v4ltp77uw7zre5xitv6g\n \n \n \n\n \n \n \n \n \n \n mpg\n cyl\n disp\n hp\n drat\n \n \n \n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 22.8\n 4\n 108\n 93\n 3.85\n \n \n 21.4\n 6\n 258\n 110\n 3.08" }, { "objectID": "vignettes/tutorial.html#colors", "href": "vignettes/tutorial.html#colors", "title": "tinytable", "section": "Colors", - "text": "Colors\nThe color and background arguments in the style_tt() function are used for specifying the text color and the background color for cells of a table created by the tt() function. This argument plays a crucial role in enhancing the visual appeal and readability of the table, whether it’s rendered in LaTeX or HTML format. The way we specify colors differs slightly between the two formats:\nFor HTML Output:\n\nHex Codes: You can specify colors using hexadecimal codes, which consist of a # followed by 6 characters (e.g., #CC79A7). This allows for a wide range of colors.\nKeywords: There’s also the option to use color keywords for convenience. The supported keywords are basic color names like black, red, blue, etc.\n\nFor LaTeX Output:\n\nHexadecimal Codes: Similar to HTML, you can use hexadecimal codes. However, in LaTeX, you need to include these codes as strings (e.g., \"#CC79A7\").\nKeywords: LaTeX supports a different set of color keywords, which include standard colors like black, red, blue, as well as additional ones like cyan, darkgray, lightgray, etc.\nColor Blending: An advanced feature in LaTeX is color blending, which can be achieved using the xcolor package. You can blend colors by specifying ratios (e.g., white!80!blue or green!20!red).\nLuminance Levels: The ninecolors package in LaTeX offers colors with predefined luminance levels, allowing for more nuanced color choices (e.g., “azure4”, “magenta8”).\n\nNote that the keywords used in LaTeX and HTML are slightly different.\n\ntt(x) |> style_tt(i = 1:4, j = 1, color = \"#FF5733\")\n\n\n \n\n\n \n \n \n tinytable_3vj12idunkh5ujc2fe7c\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n mpg\n cyl\n disp\n hp\n drat\n \n \n \n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 22.8\n 4\n 108\n 93\n 3.85\n \n \n 21.4\n 6\n 258\n 110\n 3.08\n \n \n \n \n\n \n\n\n\n\nNote that when using Hex codes in a LaTeX table, we need extra declarations in the LaTeX preamble. See ?tt for details." + "text": "Colors\nThe color and background arguments in the style_tt() function are used for specifying the text color and the background color for cells of a table created by the tt() function. This argument plays a crucial role in enhancing the visual appeal and readability of the table, whether it’s rendered in LaTeX or HTML format. The way we specify colors differs slightly between the two formats:\nFor HTML Output:\n\nHex Codes: You can specify colors using hexadecimal codes, which consist of a # followed by 6 characters (e.g., #CC79A7). This allows for a wide range of colors.\nKeywords: There’s also the option to use color keywords for convenience. The supported keywords are basic color names like black, red, blue, etc.\n\nFor LaTeX Output:\n\nHexadecimal Codes: Similar to HTML, you can use hexadecimal codes. However, in LaTeX, you need to include these codes as strings (e.g., \"#CC79A7\").\nKeywords: LaTeX supports a different set of color keywords, which include standard colors like black, red, blue, as well as additional ones like cyan, darkgray, lightgray, etc.\nColor Blending: An advanced feature in LaTeX is color blending, which can be achieved using the xcolor package. You can blend colors by specifying ratios (e.g., white!80!blue or green!20!red).\nLuminance Levels: The ninecolors package in LaTeX offers colors with predefined luminance levels, allowing for more nuanced color choices (e.g., “azure4”, “magenta8”).\n\nNote that the keywords used in LaTeX and HTML are slightly different.\n\ntt(x) |> style_tt(i = 1:4, j = 1, color = \"#FF5733\")\n\n\n \n\n \n \n \n tinytable_7rmlzbysy1piq734c45o\n \n \n \n\n \n \n \n \n \n \n mpg\n cyl\n disp\n hp\n drat\n \n \n \n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 22.8\n 4\n 108\n 93\n 3.85\n \n \n 21.4\n 6\n 258\n 110\n 3.08\n \n \n \n \n\n \n \n \n \n\n \n\n\n\n\nNote that when using Hex codes in a LaTeX table, we need extra declarations in the LaTeX preamble. See ?tt for details." }, { "objectID": "vignettes/tutorial.html#fonts", "href": "vignettes/tutorial.html#fonts", "title": "tinytable", "section": "Fonts", - "text": "Fonts\nThe font size is specified in terms of pt units, where 1pt=1.333px:\n\ntt(x) |> style_tt(j = \"mpg|hp|qsec\", fontsize = 18)\n\n\n \n\n\n \n \n \n tinytable_hollk9dlhylvwwjnxbfj\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n mpg\n cyl\n disp\n hp\n drat\n \n \n \n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 22.8\n 4\n 108\n 93\n 3.85\n \n \n 21.4\n 6\n 258\n 110\n 3.08" + "text": "Fonts\nThe font size is specified in terms of pt units, where 1pt=1.333px:\n\ntt(x) |> style_tt(j = \"mpg|hp|qsec\", fontsize = 18)\n\n\n \n\n \n \n \n tinytable_agcl5h1k2b7lzz8pb6gr\n \n \n \n\n \n \n \n \n \n \n mpg\n cyl\n disp\n hp\n drat\n \n \n \n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 22.8\n 4\n 108\n 93\n 3.85\n \n \n 21.4\n 6\n 258\n 110\n 3.08" }, { "objectID": "vignettes/tutorial.html#spanning-cells", "href": "vignettes/tutorial.html#spanning-cells", "title": "tinytable", "section": "Spanning cells", - "text": "Spanning cells\nSometimes, it can be useful to make a cell stretch across multiple colums, for example when we want to insert a label. To achieve this, we can use the colspan argument. Here, we make the 2nd cell of the 2nd row stretch across three columns:\n\ntt(x)|> style_tt(\n i = 2, j = 2,\n colspan = 3,\n align = \"c\",\n color = \"white\",\n background = \"black\")\n\n\n \n\n\n \n \n \n tinytable_beryq0682fsr6gpxv7dn\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n mpg\n cyl\n disp\n hp\n drat\n \n \n \n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 22.8\n 4\n 108\n 93\n 3.85\n \n \n 21.4\n 6\n 258\n 110\n 3.08\n \n \n \n \n\n \n\n\n\n\nHere is the original table for comparison:\n\ntt(x)\n\n\n \n\n\n \n \n \n tinytable_sctnfw10dl2j1xorrlnq\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n mpg\n cyl\n disp\n hp\n drat\n \n \n \n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 22.8\n 4\n 108\n 93\n 3.85\n \n \n 21.4\n 6\n 258\n 110\n 3.08" + "text": "Spanning cells\nSometimes, it can be useful to make a cell stretch across multiple colums, for example when we want to insert a label. To achieve this, we can use the colspan argument. Here, we make the 2nd cell of the 2nd row stretch across three columns:\n\ntt(x)|> style_tt(\n i = 2, j = 2,\n colspan = 3,\n align = \"c\",\n color = \"white\",\n background = \"black\")\n\n\n \n\n \n \n \n tinytable_jsjep816bwm9l0un0y4u\n \n \n \n\n \n \n \n \n \n \n mpg\n cyl\n disp\n hp\n drat\n \n \n \n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 22.8\n 4\n 108\n 93\n 3.85\n \n \n 21.4\n 6\n 258\n 110\n 3.08\n \n \n \n \n\n \n \n \n \n\n \n\n\n\n\nHere is the original table for comparison:\n\ntt(x)\n\n\n \n\n \n \n \n tinytable_1hb933tc2k77w6imn0zw\n \n \n \n\n \n \n \n \n \n \n mpg\n cyl\n disp\n hp\n drat\n \n \n \n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 22.8\n 4\n 108\n 93\n 3.85\n \n \n 21.4\n 6\n 258\n 110\n 3.08" }, { "objectID": "vignettes/tutorial.html#headers", "href": "vignettes/tutorial.html#headers", "title": "tinytable", "section": "Headers", - "text": "Headers\nThe header can be omitted from the table by deleting the column names in the x data frame:\n\nk <- x\ncolnames(k) <- NULL\ntt(k)\n\n\n \n\n\n \n \n \n tinytable_dpt2d752sxvam0vjouvw\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 22.8\n 4\n 108\n 93\n 3.85\n \n \n 21.4\n 6\n 258\n 110\n 3.08\n \n \n \n \n\n \n\n\n\n\n\nThe header is row 0, and can thus be styled as expected:\n\ntt(x) |> style_tt(i = 0, color = \"white\", background = \"black\")\n\n\n \n\n\n \n \n \n tinytable_op6uu19vcgftb64fbas0\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n mpg\n cyl\n disp\n hp\n drat\n \n \n \n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 22.8\n 4\n 108\n 93\n 3.85\n \n \n 21.4\n 6\n 258\n 110\n 3.08" + "text": "Headers\nThe header can be omitted from the table by deleting the column names in the x data frame:\n\nk <- x\ncolnames(k) <- NULL\ntt(k)\n\n\n \n\n \n \n \n tinytable_ode55xzufjkokkibw79t\n \n \n \n\n \n \n \n \n \n \n \n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 22.8\n 4\n 108\n 93\n 3.85\n \n \n 21.4\n 6\n 258\n 110\n 3.08\n \n \n \n \n\n \n \n \n \n\n \n\n\n\n\n\nThe header is row 0, and can thus be styled as expected:\n\ntt(x) |> style_tt(i = 0, color = \"white\", background = \"black\")\n\n\n \n\n \n \n \n tinytable_n18mzain7jckyo1k7jd2\n \n \n \n\n \n \n \n \n \n \n mpg\n cyl\n disp\n hp\n drat\n \n \n \n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 22.8\n 4\n 108\n 93\n 3.85\n \n \n 21.4\n 6\n 258\n 110\n 3.08" }, { "objectID": "vignettes/tutorial.html#rows", "href": "vignettes/tutorial.html#rows", "title": "tinytable", "section": "Rows", - "text": "Rows\nThe i argument accepts a named list of integers. The numbers identify the positions where row group labels are to be inserted. The names includes the text that should be inserted:\n\ndat <- mtcars[1:9, 1:8]\n\ntt(dat) |> \n group_tt(i = list(\n \"I like (fake) hamburgers\" = 3,\n \"She prefers halloumi\" = 4,\n \"They love tofu\" = 7))\n\n\n \n\n\n \n \n \n tinytable_cqwvpzvktjxud6dukoya\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n mpg\n cyl\n disp\n hp\n drat\n wt\n qsec\n vs\n \n \n \n \n \n 21\n 6\n 160\n 110\n 3.9\n 2.62\n 16.46\n 0\n \n \n 21\n 6\n 160\n 110\n 3.9\n 2.875\n 17.02\n 0\n \n \n 22.8\n 4\n 108\n 93\n 3.85\n 2.32\n 18.61\n 1\n \n \n 21.4\n 6\n 258\n 110\n 3.08\n 3.215\n 19.44\n 1\n \n \n 18.7\n 8\n 360\n 175\n 3.15\n 3.44\n 17.02\n 0\n \n \n 18.1\n 6\n 225\n 105\n 2.76\n 3.46\n 20.22\n 1\n \n \n 14.3\n 8\n 360\n 245\n 3.21\n 3.57\n 15.84\n 0\n \n \n 24.4\n 4\n 146.7\n 62\n 3.69\n 3.19\n 20\n 1\n \n \n 22.8\n 4\n 140.8\n 95\n 3.92\n 3.15\n 22.9\n 1\n \n \n \n \n\n \n\n\n\n\nThe group_tt() function only includes a few arguments: x, i, j, and indent. But whenever we call group_tt(), the function will automatically apply a style_tt() call to all the new group labels, using any extra argument supplied to group_tt() (arguments are pushed via ...). This means that we can apply all the usual stying options to row labels:\n\ntt(dat) |> \n group_tt(\n align = \"c\",\n color = \"white\",\n background = \"gray\",\n bold = TRUE,\n i = list(\n \"I like (fake) hamburgers\" = 3,\n \"She prefers halloumi\" = 4,\n \"They love tofu\" = 7))\n\n\n \n\n\n \n \n \n tinytable_inpug0uc78btd7xd7fjx\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n mpg\n cyl\n disp\n hp\n drat\n wt\n qsec\n vs\n \n \n \n \n \n 21\n 6\n 160\n 110\n 3.9\n 2.62\n 16.46\n 0\n \n \n 21\n 6\n 160\n 110\n 3.9\n 2.875\n 17.02\n 0\n \n \n 22.8\n 4\n 108\n 93\n 3.85\n 2.32\n 18.61\n 1\n \n \n 21.4\n 6\n 258\n 110\n 3.08\n 3.215\n 19.44\n 1\n \n \n 18.7\n 8\n 360\n 175\n 3.15\n 3.44\n 17.02\n 0\n \n \n 18.1\n 6\n 225\n 105\n 2.76\n 3.46\n 20.22\n 1\n \n \n 14.3\n 8\n 360\n 245\n 3.21\n 3.57\n 15.84\n 0\n \n \n 24.4\n 4\n 146.7\n 62\n 3.69\n 3.19\n 20\n 1\n \n \n 22.8\n 4\n 140.8\n 95\n 3.92\n 3.15\n 22.9\n 1" + "text": "Rows\nThe i argument accepts a named list of integers. The numbers identify the positions where row group labels are to be inserted. The names includes the text that should be inserted:\n\ndat <- mtcars[1:9, 1:8]\n\ntt(dat) |> \n group_tt(i = list(\n \"I like (fake) hamburgers\" = 3,\n \"She prefers halloumi\" = 4,\n \"They love tofu\" = 7))\n\n\n \n\n \n \n \n tinytable_d9yu7s56cd3u5q5gcvlc\n \n \n \n\n \n \n \n \n \n \n mpg\n cyl\n disp\n hp\n drat\n wt\n qsec\n vs\n \n \n \n \n \n 21\n 6\n 160\n 110\n 3.9\n 2.62\n 16.46\n 0\n \n \n 21\n 6\n 160\n 110\n 3.9\n 2.875\n 17.02\n 0\n \n \n 22.8\n 4\n 108\n 93\n 3.85\n 2.32\n 18.61\n 1\n \n \n 21.4\n 6\n 258\n 110\n 3.08\n 3.215\n 19.44\n 1\n \n \n 18.7\n 8\n 360\n 175\n 3.15\n 3.44\n 17.02\n 0\n \n \n 18.1\n 6\n 225\n 105\n 2.76\n 3.46\n 20.22\n 1\n \n \n 14.3\n 8\n 360\n 245\n 3.21\n 3.57\n 15.84\n 0\n \n \n 24.4\n 4\n 146.7\n 62\n 3.69\n 3.19\n 20\n 1\n \n \n 22.8\n 4\n 140.8\n 95\n 3.92\n 3.15\n 22.9\n 1\n \n \n \n \n\n \n \n \n \n\n \n\n\n\n\nThe group_tt() function only includes a few arguments: x, i, j, and indent. But whenever we call group_tt(), the function will automatically apply a style_tt() call to all the new group labels, using any extra argument supplied to group_tt() (arguments are pushed via ...). This means that we can apply all the usual stying options to row labels:\n\ntt(dat) |> \n group_tt(\n align = \"c\",\n color = \"white\",\n background = \"gray\",\n bold = TRUE,\n i = list(\n \"I like (fake) hamburgers\" = 3,\n \"She prefers halloumi\" = 4,\n \"They love tofu\" = 7))\n\n\n \n\n \n \n \n tinytable_jdjwvqn0av4eleaqrznw\n \n \n \n\n \n \n \n \n \n \n mpg\n cyl\n disp\n hp\n drat\n wt\n qsec\n vs\n \n \n \n \n \n 21\n 6\n 160\n 110\n 3.9\n 2.62\n 16.46\n 0\n \n \n 21\n 6\n 160\n 110\n 3.9\n 2.875\n 17.02\n 0\n \n \n 22.8\n 4\n 108\n 93\n 3.85\n 2.32\n 18.61\n 1\n \n \n 21.4\n 6\n 258\n 110\n 3.08\n 3.215\n 19.44\n 1\n \n \n 18.7\n 8\n 360\n 175\n 3.15\n 3.44\n 17.02\n 0\n \n \n 18.1\n 6\n 225\n 105\n 2.76\n 3.46\n 20.22\n 1\n \n \n 14.3\n 8\n 360\n 245\n 3.21\n 3.57\n 15.84\n 0\n \n \n 24.4\n 4\n 146.7\n 62\n 3.69\n 3.19\n 20\n 1\n \n \n 22.8\n 4\n 140.8\n 95\n 3.92\n 3.15\n 22.9\n 1" }, { "objectID": "vignettes/tutorial.html#columns", "href": "vignettes/tutorial.html#columns", "title": "tinytable", "section": "Columns", - "text": "Columns\nThe syntax for column groups is very similar, but we use the j argument instead. The named list specifies the labels to appear in column-spanning labels, and the values must be a vector of consecutive and non-overlapping integers that indicate which columns are associated to which labels:\n\ntt(dat) |> \n group_tt(\n j = list(\n \"Hamburgers\" = 1:3,\n \"Halloumi\" = 4:5,\n \"Tofu\" = 7))\n\n\n \n\n\n \n \n \n tinytable_n15jusnfrnjhfw6xykjg\n \n \n \n \n \n \n \n\n \n \n \n \nHamburgers\nHalloumi\n \nTofu\n \n \n \n mpg\n cyl\n disp\n hp\n drat\n wt\n qsec\n vs\n \n \n \n \n \n 21\n 6\n 160\n 110\n 3.9\n 2.62\n 16.46\n 0\n \n \n 21\n 6\n 160\n 110\n 3.9\n 2.875\n 17.02\n 0\n \n \n 22.8\n 4\n 108\n 93\n 3.85\n 2.32\n 18.61\n 1\n \n \n 21.4\n 6\n 258\n 110\n 3.08\n 3.215\n 19.44\n 1\n \n \n 18.7\n 8\n 360\n 175\n 3.15\n 3.44\n 17.02\n 0\n \n \n 18.1\n 6\n 225\n 105\n 2.76\n 3.46\n 20.22\n 1\n \n \n 14.3\n 8\n 360\n 245\n 3.21\n 3.57\n 15.84\n 0\n \n \n 24.4\n 4\n 146.7\n 62\n 3.69\n 3.19\n 20\n 1\n \n \n 22.8\n 4\n 140.8\n 95\n 3.92\n 3.15\n 22.9\n 1\n \n \n \n \n\n \n\n\n\n\nAs above, we can pass additional styling options to the style_tt() function automatically via .... This means that all the arguments like italic, bold, color and friends can be used to style spanning column headers:\n\ndat <- mtcars[1:9, 1:8]\ntt(dat) |> \n group_tt(color = \"teal\", italic = TRUE,\n j = list(\"Hamburgers\" = 1:3,\n \"Halloumi\" = 4:5,\n \"Tofu\" = 7)) |>\n group_tt(align = \"c\", color = \"white\", background = \"teal\", bold = TRUE,\n i = list(\"I like (fake) hamburgers\" = 3,\n \"She prefers halloumi\" = 4,\n \"They love tofu\" = 7))\n\n\n \n\n\n \n \n \n tinytable_27bigdru7umhu2fmn101\n \n \n \n \n \n \n \n\n \n \n \n \nHamburgers\nHalloumi\n \nTofu\n \n \n \n mpg\n cyl\n disp\n hp\n drat\n wt\n qsec\n vs\n \n \n \n \n \n 21\n 6\n 160\n 110\n 3.9\n 2.62\n 16.46\n 0\n \n \n 21\n 6\n 160\n 110\n 3.9\n 2.875\n 17.02\n 0\n \n \n 22.8\n 4\n 108\n 93\n 3.85\n 2.32\n 18.61\n 1\n \n \n 21.4\n 6\n 258\n 110\n 3.08\n 3.215\n 19.44\n 1\n \n \n 18.7\n 8\n 360\n 175\n 3.15\n 3.44\n 17.02\n 0\n \n \n 18.1\n 6\n 225\n 105\n 2.76\n 3.46\n 20.22\n 1\n \n \n 14.3\n 8\n 360\n 245\n 3.21\n 3.57\n 15.84\n 0\n \n \n 24.4\n 4\n 146.7\n 62\n 3.69\n 3.19\n 20\n 1\n \n \n 22.8\n 4\n 140.8\n 95\n 3.92\n 3.15\n 22.9\n 1" + "text": "Columns\nThe syntax for column groups is very similar, but we use the j argument instead. The named list specifies the labels to appear in column-spanning labels, and the values must be a vector of consecutive and non-overlapping integers that indicate which columns are associated to which labels:\n\ntt(dat) |> \n group_tt(\n j = list(\n \"Hamburgers\" = 1:3,\n \"Halloumi\" = 4:5,\n \"Tofu\" = 7))\n\n\n \n\n \n \n \n tinytable_nek14r1o8mjj50r690dq\n \n \n \n\n \n \n \n \nHamburgers\nHalloumi\n \nTofu\n \n \n \n mpg\n cyl\n disp\n hp\n drat\n wt\n qsec\n vs\n \n \n \n \n \n 21\n 6\n 160\n 110\n 3.9\n 2.62\n 16.46\n 0\n \n \n 21\n 6\n 160\n 110\n 3.9\n 2.875\n 17.02\n 0\n \n \n 22.8\n 4\n 108\n 93\n 3.85\n 2.32\n 18.61\n 1\n \n \n 21.4\n 6\n 258\n 110\n 3.08\n 3.215\n 19.44\n 1\n \n \n 18.7\n 8\n 360\n 175\n 3.15\n 3.44\n 17.02\n 0\n \n \n 18.1\n 6\n 225\n 105\n 2.76\n 3.46\n 20.22\n 1\n \n \n 14.3\n 8\n 360\n 245\n 3.21\n 3.57\n 15.84\n 0\n \n \n 24.4\n 4\n 146.7\n 62\n 3.69\n 3.19\n 20\n 1\n \n \n 22.8\n 4\n 140.8\n 95\n 3.92\n 3.15\n 22.9\n 1\n \n \n \n \n\n \n \n \n \n\n \n\n\n\n\nAs above, we can pass additional styling options to the style_tt() function automatically via .... This means that all the arguments like italic, bold, color and friends can be used to style spanning column headers:\n\ndat <- mtcars[1:9, 1:8]\ntt(dat) |> \n group_tt(color = \"teal\", italic = TRUE,\n j = list(\"Hamburgers\" = 1:3,\n \"Halloumi\" = 4:5,\n \"Tofu\" = 7)) |>\n group_tt(align = \"c\", color = \"white\", background = \"teal\", bold = TRUE,\n i = list(\"I like (fake) hamburgers\" = 3,\n \"She prefers halloumi\" = 4,\n \"They love tofu\" = 7))\n\n\n \n\n \n \n \n tinytable_j1irzhfv7ukb2mmn4mj8\n \n \n \n\n \n \n \n \nHamburgers\nHalloumi\n \nTofu\n \n \n \n mpg\n cyl\n disp\n hp\n drat\n wt\n qsec\n vs\n \n \n \n \n \n 21\n 6\n 160\n 110\n 3.9\n 2.62\n 16.46\n 0\n \n \n 21\n 6\n 160\n 110\n 3.9\n 2.875\n 17.02\n 0\n \n \n 22.8\n 4\n 108\n 93\n 3.85\n 2.32\n 18.61\n 1\n \n \n 21.4\n 6\n 258\n 110\n 3.08\n 3.215\n 19.44\n 1\n \n \n 18.7\n 8\n 360\n 175\n 3.15\n 3.44\n 17.02\n 0\n \n \n 18.1\n 6\n 225\n 105\n 2.76\n 3.46\n 20.22\n 1\n \n \n 14.3\n 8\n 360\n 245\n 3.21\n 3.57\n 15.84\n 0\n \n \n 24.4\n 4\n 146.7\n 62\n 3.69\n 3.19\n 20\n 1\n \n \n 22.8\n 4\n 140.8\n 95\n 3.92\n 3.15\n 22.9\n 1" }, { "objectID": "vignettes/tutorial.html#conditional-styling", @@ -284,21 +284,21 @@ "href": "vignettes/tutorial.html#themes-1", "title": "tinytable", "section": "Themes", - "text": "Themes\nThe Bootstrap framework provides a number of built-in themes to style tables. To use them, we call bootstrapOptions() with the class argument, and we specify the Bootstrap class. A list of available Bootstrap classes can be found here: https://getbootstrap.com/docs/5.3/content/tables/\nFor example, to produce a “dark” table, we use the table-dark class:\n\ntt(x, theme = \"table table-dark\")\n\n\n \n\n\n \n \n \n tinytable_bhm83dslr84wwmiz5xl4\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n mpg\n cyl\n disp\n hp\n drat\n \n \n \n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 22.8\n 4\n 108\n 93\n 3.85\n \n \n 21.4\n 6\n 258\n 110\n 3.08\n \n \n \n \n\n \n\n\n\n\n\nWe can also combine several Bootstrap classes. Here, we get a “striped” table with the “warning” color and hover feature:\n\ntt(x, theme = \"table table-striped table-warning table-hover\")\n\n\n \n\n\n \n \n \n tinytable_qexm6jbxpluz3sw3zfnf\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n mpg\n cyl\n disp\n hp\n drat\n \n \n \n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 22.8\n 4\n 108\n 93\n 3.85\n \n \n 21.4\n 6\n 258\n 110\n 3.08" + "text": "Themes\nThe Bootstrap framework provides a number of built-in themes to style tables. To use them, we call bootstrapOptions() with the class argument, and we specify the Bootstrap class. A list of available Bootstrap classes can be found here: https://getbootstrap.com/docs/5.3/content/tables/\nFor example, to produce a “dark” table, we use the table-dark class:\n\ntt(x, theme = \"table table-dark\")\n\n\n \n\n \n \n \n tinytable_t6ykisvx240sa6o2sd9i\n \n \n \n\n \n \n \n \n \n \n mpg\n cyl\n disp\n hp\n drat\n \n \n \n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 22.8\n 4\n 108\n 93\n 3.85\n \n \n 21.4\n 6\n 258\n 110\n 3.08\n \n \n \n \n\n \n \n \n \n\n \n\n\n\n\n\nWe can also combine several Bootstrap classes. Here, we get a “striped” table with the “warning” color and hover feature:\n\ntt(x, theme = \"table table-striped table-warning table-hover\")\n\n\n \n\n \n \n \n tinytable_0jmsmycw5q3e7zcnjkqc\n \n \n \n\n \n \n \n \n \n \n mpg\n cyl\n disp\n hp\n drat\n \n \n \n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 22.8\n 4\n 108\n 93\n 3.85\n \n \n 21.4\n 6\n 258\n 110\n 3.08" }, { "objectID": "vignettes/tutorial.html#css-declarations", "href": "vignettes/tutorial.html#css-declarations", "title": "tinytable", "section": "CSS declarations", - "text": "CSS declarations\nThe style_tt() function allows us to declare CSS properties and values for individual cells, columns, or rows of a table. For example, if we want to make the first column bold, we could do:\n\ntt(x) |>\n style_tt(j = 1, bootstrap_css = \"font-weight: bold; color: red;\")\n\n\n \n\n\n \n \n \n tinytable_hmqv2cbhqwnmxzhgeuro\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n mpg\n cyl\n disp\n hp\n drat\n \n \n \n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 22.8\n 4\n 108\n 93\n 3.85\n \n \n 21.4\n 6\n 258\n 110\n 3.08" + "text": "CSS declarations\nThe style_tt() function allows us to declare CSS properties and values for individual cells, columns, or rows of a table. For example, if we want to make the first column bold, we could do:\n\ntt(x) |>\n style_tt(j = 1, bootstrap_css = \"font-weight: bold; color: red;\")\n\n\n \n\n \n \n \n tinytable_xgiq1fkat3q3yuy722pp\n \n \n \n\n \n \n \n \n \n \n mpg\n cyl\n disp\n hp\n drat\n \n \n \n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 22.8\n 4\n 108\n 93\n 3.85\n \n \n 21.4\n 6\n 258\n 110\n 3.08" }, { "objectID": "vignettes/tutorial.html#css-rules", "href": "vignettes/tutorial.html#css-rules", "title": "tinytable", "section": "CSS rules", - "text": "CSS rules\nFor more extensive customization, we can use complete CSS rules. In this example, we define several rules that apply to a new class called mytable. Then, we use the theme argument of the tt() function to ensure that our tiny table is of class mytable. Finally, we call style_bootstrap() to apply the rules with the bootstrap_css_rule argument.\n\ncss_rule <- \"\n.mytable {\n background: linear-gradient(45deg, #EA8D8D, #A890FE);\n width: 600px;\n border-collapse: collapse;\n overflow: hidden;\n box-shadow: 0 0 20px rgba(0,0,0,0.1);\n}\n\n.mytable th,\n.mytable td {\n padding: 5px;\n background-color: rgba(255,255,255,0.2);\n color: #fff;\n}\n\n.mytable tbody tr:hover {\n background-color: rgba(255,255,255,0.3);\n}\n\n.mytable tbody td:hover:before {\n content: '';\n position: absolute;\n left: 0;\n right: 0;\n top: -9999px;\n bottom: -9999px;\n background-color: rgba(255,255,255,0.2);\n z-index: -1;\n}\n\"\n\ntt(x, align = \"ccccc\", theme = \"table mytable\") |> \n style_tt(bootstrap_css_rule = css_rule)\n\n\n \n\n\n \n \n \n tinytable_p1o8ncmayfsbuznj18aj\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n mpg\n cyl\n disp\n hp\n drat\n \n \n \n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 22.8\n 4\n 108\n 93\n 3.85\n \n \n 21.4\n 6\n 258\n 110\n 3.08" + "text": "CSS rules\nFor more extensive customization, we can use complete CSS rules. In this example, we define several rules that apply to a new class called mytable. Then, we use the theme argument of the tt() function to ensure that our tiny table is of class mytable. Finally, we call style_bootstrap() to apply the rules with the bootstrap_css_rule argument.\n\ncss_rule <- \"\n.mytable {\n background: linear-gradient(45deg, #EA8D8D, #A890FE);\n width: 600px;\n border-collapse: collapse;\n overflow: hidden;\n box-shadow: 0 0 20px rgba(0,0,0,0.1);\n}\n\n.mytable th,\n.mytable td {\n padding: 5px;\n background-color: rgba(255,255,255,0.2);\n color: #fff;\n}\n\n.mytable tbody tr:hover {\n background-color: rgba(255,255,255,0.3);\n}\n\n.mytable tbody td:hover:before {\n content: '';\n position: absolute;\n left: 0;\n right: 0;\n top: -9999px;\n bottom: -9999px;\n background-color: rgba(255,255,255,0.2);\n z-index: -1;\n}\n\"\n\ntt(x, align = \"ccccc\", theme = \"table mytable\") |> \n style_tt(bootstrap_css_rule = css_rule)\n\n\n \n\n \n \n \n tinytable_jul1y3an7lrir2pf7f9w\n \n \n \n\n \n \n \n \n \n \n mpg\n cyl\n disp\n hp\n drat\n \n \n \n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 21\n 6\n 160\n 110\n 3.9\n \n \n 22.8\n 4\n 108\n 93\n 3.85\n \n \n 21.4\n 6\n 258\n 110\n 3.08" }, { "objectID": "vignettes/tutorial.html#preamble", diff --git a/vignettes/tutorial.html b/vignettes/tutorial.html index bfc5c58a..69779785 100644 --- a/vignettes/tutorial.html +++ b/vignettes/tutorial.html @@ -320,45 +320,18 @@

Tiny Tables

- - tinytable_oa6xcntlefegkmo1110n + tinytable_xc3sy6xr571tsm2psv85 - - - - +
- +
@@ -403,6 +376,28 @@

Tiny Tables

+ + + + + @@ -428,45 +423,18 @@

Themes

- - tinytable_cy3ayz2m90o3nmrrmtam + tinytable_nvmibb4eelwc2dip1ez7 - - - - +
- +
@@ -511,6 +479,28 @@

Themes

+ + + + + @@ -523,45 +513,18 @@

Themes

- - tinytable_oh2liqyc9ciwkpgwm7ml + tinytable_k55l16lg45g2676wkv65 - - - - +
- +
@@ -606,6 +569,28 @@

Themes

+ + + + + @@ -622,75 +607,23 @@

Alignment

- - tinytable_r9s7yzmlyvxym4kv1u6o + tinytable_wx3hswigdj7p4cg6wm7c - - - - +.table td.tinytable_css_uya70dpibqlzkunfs10g, th.tinytable_css_uya70dpibqlzkunfs10g { text-align: center } +.table td.tinytable_css_ooajzbxcikj76pfr9pen, th.tinytable_css_ooajzbxcikj76pfr9pen { text-align: center } +.table td.tinytable_css_euoblznccduejyuhk4np, th.tinytable_css_euoblznccduejyuhk4np { text-align: right } +.table td.tinytable_css_34gqhoyzqjarsbjr1mq2, th.tinytable_css_34gqhoyzqjarsbjr1mq2 { text-align: right } +.table td.tinytable_css_zx8qiiiblsowygva2wsm, th.tinytable_css_zx8qiiiblsowygva2wsm { text-align: left } +
- +
@@ -735,6 +668,53 @@

Alignment

+ + + + + @@ -745,50 +725,23 @@

Alignment

Width

The width arguments accepts a number between 0 and 1, indicating what proportion of the linewidth the table should cover:

-
tt(x, width = 0.3)
+
tt(x, width = 0.5)
- - tinytable_djwncw3dqjv5ibnsjdk3 + tinytable_7kzvpbxlckmraqchk9p8 - - - - +
- +
@@ -833,6 +786,28 @@

Width

+ + + + + @@ -845,45 +820,18 @@

Width

- - tinytable_h1bkjhebdxmle58h7qbm + tinytable_eejubx65bv1r4d6kunv7 - - - - +
- +
@@ -928,6 +876,28 @@

Width

+ + + + + @@ -948,45 +918,18 @@

Line breaks - - tinytable_5z00qnpw0ybqansdqulp + tinytable_3rsj22i8cyzecmya5r0x - - - - +
- +

A full width table with wrapped text.

@@ -1004,8 +947,30 @@

Line breaks

A full width table with wrapped text.

- - + + + + + + +

@@ -1021,45 +986,18 @@

Line breaks - - tinytable_b7y2zixfra0oq6yvf63a + tinytable_hytc13urdzry0126btv2 - - - - +
- +
@@ -1077,6 +1015,28 @@

Line breaks

+ + + + + @@ -1105,45 +1065,18 @@

Captions and - - tinytable_rhg6m5yrd6yz54od9kwj + tinytable_lntvqvi7iwqrjhq7c82u - - - - +
- +
Table 1:

Blah blah blah

@@ -1183,6 +1116,28 @@

Captions and

Table 1:

Blah blah blah

+ + + + + @@ -1207,45 +1162,18 @@

Footnotes

- - tinytable_bblgs3twx2qv144iibq4 + tinytable_skowr8psbk56svnmgw4t - - - - +
- +

A full-width table with wrapped text in cells and a footnote.

@@ -1263,6 +1191,28 @@

Footnotes

A full-width table with wrapped text in cells and a footnote.

+ + + + + @@ -1276,45 +1226,18 @@

Footnotes

- - tinytable_35urh8cxvbh176h93gf5 + tinytable_tacn8be9vw1z1ie8pnqt - - - - +
- +
@@ -1360,6 +1283,28 @@

Footnotes

+ + + + + @@ -1377,45 +1322,18 @@

Math

- - tinytable_8n2znjaoocua6px7sfy3 + tinytable_xht59n7ajs3fyy91cscm - - - - +
- +
@@ -1434,6 +1352,28 @@

Math

+ + + + + @@ -1485,47 +1425,19 @@

Cells, rows, columns - tinytable_mq4dcdvr0sik0r2eo6pk + tinytable_ly2cmuwrn9euleky7bjs - - - - +.table td.tinytable_css_d3w6nbjh9g4pgvuj3wfj, th.tinytable_css_d3w6nbjh9g4pgvuj3wfj { color: white; background-color: black } +
- +
@@ -1570,6 +1482,29 @@

Cells, rows, columns + + + + + @@ -1587,52 +1522,19 @@

Cells, rows, columns - - tinytable_a6tm9l0vqo2jjsps9acz - - - - - + + + tinytable_nv4ry2h2gmcebj6lqzgm + +.table td.tinytable_css_wtjqbhjdkx9g7eg1mdel, th.tinytable_css_wtjqbhjdkx9g7eg1mdel { font-style: italic; color: orange } +
-

+
@@ -1677,6 +1579,34 @@

Cells, rows, columns + + + + + @@ -1689,66 +1619,19 @@

Cells, rows, columns - tinytable_maddpmsuov87jn23x3ns + tinytable_qfxutb7pnbp3tnkpfuqy - - - - +.table td.tinytable_css_60n7cvd8chuln6353hc8, th.tinytable_css_60n7cvd8chuln6353hc8 { color: orange } +
-

+
@@ -1793,6 +1676,48 @@

Cells, rows, columns + + + + + @@ -1805,56 +1730,19 @@

Cells, rows, columns - tinytable_j7z47vuko10zi4a84rui + tinytable_1zjw2zrv4g75hrti4b64 - - - - +.table td.tinytable_css_l3b730wam2toffq2ozhc, th.tinytable_css_l3b730wam2toffq2ozhc { color: orange } +
-

+
@@ -1899,6 +1787,38 @@

Cells, rows, columns + + + + + @@ -1911,54 +1831,19 @@

Cells, rows, columns - tinytable_095srzqlmnumwuz18t15 + tinytable_0pdouoyjjgbrwwd3w6kc - - - - +.table td.tinytable_css_zy6uj6qvyiaqyvdy70go, th.tinytable_css_zy6uj6qvyiaqyvdy70go { font-weight: bold } +
-

+
@@ -2003,6 +1888,36 @@

Cells, rows, columns + + + + + @@ -2015,54 +1930,19 @@

Cells, rows, columns - tinytable_0e0swxlvt4bxvzshm1p0 + tinytable_hbw2p0pm5gzuejgrj5fd - - - - +.table td.tinytable_css_3b4u7u7v8zxc24zv0z6j, th.tinytable_css_3b4u7u7v8zxc24zv0z6j { color: orange } +
-

+
@@ -2107,6 +1987,36 @@

Cells, rows, columns + + + + + @@ -2121,51 +2031,20 @@

Cells, rows, columns - tinytable_mynhnxi7mxpgx2i7uxpm + tinytable_v4ltp77uw7zre5xitv6g - - - - +.table td.tinytable_css_ysh52kv5umwpuej9bid9, th.tinytable_css_ysh52kv5umwpuej9bid9 { color: orange } +.table td.tinytable_css_ffwnh1ut8ynwji33dkoj, th.tinytable_css_ffwnh1ut8ynwji33dkoj { color: green } +
-

+
@@ -2210,6 +2089,32 @@

Cells, rows, columns + + + + + @@ -2238,50 +2143,19 @@

Colors

- - tinytable_3vj12idunkh5ujc2fe7c + tinytable_7rmlzbysy1piq734c45o - - - - +.table td.tinytable_css_ke15g5z6i0ilnbyivin4, th.tinytable_css_ke15g5z6i0ilnbyivin4 { color: #FF5733 } +
-
+
@@ -2326,6 +2200,32 @@

Colors

+ + + + + @@ -2342,54 +2242,19 @@

Fonts

- - tinytable_hollk9dlhylvwwjnxbfj + tinytable_agcl5h1k2b7lzz8pb6gr - - - - +.table td.tinytable_css_avtzokwgaqbfieyqj5rv, th.tinytable_css_avtzokwgaqbfieyqj5rv { font-size: 23.99994px; } +
- +
@@ -2434,6 +2299,36 @@

Fonts

+ + + + + @@ -2454,47 +2349,19 @@

Spanning cells

- - tinytable_beryq0682fsr6gpxv7dn + tinytable_jsjep816bwm9l0un0y4u - - - - +.table td.tinytable_css_iiu0p9mji4aoclu13zei, th.tinytable_css_iiu0p9mji4aoclu13zei { text-align: center; ; color: white; background-color: black } +
- +
@@ -2539,6 +2406,29 @@

Spanning cells

+ + + + + @@ -2551,45 +2441,18 @@

Spanning cells

- - tinytable_sctnfw10dl2j1xorrlnq + tinytable_1hb933tc2k77w6imn0zw - - - - +
- +
@@ -2634,6 +2497,28 @@

Spanning cells

+ + + + + @@ -2652,45 +2537,18 @@

Headers

- - tinytable_dpt2d752sxvam0vjouvw + tinytable_ode55xzufjkokkibw79t - - - - +
- +
@@ -2728,6 +2586,28 @@

Headers

+ + + + + @@ -2741,51 +2621,19 @@

Headers

- - tinytable_op6uu19vcgftb64fbas0 + tinytable_n18mzain7jckyo1k7jd2 - - - - +.table td.tinytable_css_e8vxn39bsy5bh5r8mvr5, th.tinytable_css_e8vxn39bsy5bh5r8mvr5 { color: white; background-color: black } +
- +
@@ -2830,6 +2678,33 @@

Headers

+ + + + + @@ -2855,58 +2730,19 @@

Rows

- - tinytable_cqwvpzvktjxud6dukoya + tinytable_d9yu7s56cd3u5q5gcvlc - - - - +.table td.tinytable_css_ogxe3txhvmfaphjpmr6g, th.tinytable_css_ogxe3txhvmfaphjpmr6g { text-indent: 1em } +
- +
@@ -3016,6 +2852,40 @@

Rows

+ + + + + @@ -3036,84 +2906,21 @@

Rows

- - - - - - tinytable_inpug0uc78btd7xd7fjx - - - - - + + + + + tinytable_jdjwvqn0av4eleaqrznw + +.table td.tinytable_css_e3b5kzxp5r247odg7t97, th.tinytable_css_e3b5kzxp5r247odg7t97 { text-indent: 1em } +.table td.tinytable_css_1ackcnxx71fn7aedxhvf, th.tinytable_css_1ackcnxx71fn7aedxhvf { font-weight: bold; text-align: center; color: white; background-color: gray } +
- +
@@ -3223,6 +3030,64 @@

Rows

+ + + + + @@ -3243,45 +3108,18 @@

Columns

- - tinytable_n15jusnfrnjhfw6xykjg + tinytable_nek14r1o8mjj50r690dq - - - - +
- +
@@ -3396,6 +3234,28 @@

Columns

Hamburgers Halloumi
+ + + + + @@ -3417,83 +3277,20 @@

Columns

- - tinytable_27bigdru7umhu2fmn101 + tinytable_j1irzhfv7ukb2mmn4mj8 - - - - +.table td.tinytable_css_3k1r77x0x5pjp716ummg, th.tinytable_css_3k1r77x0x5pjp716ummg { text-indent: 1em } +.table td.tinytable_css_n0snudu4cccly78ecsnr, th.tinytable_css_n0snudu4cccly78ecsnr { font-weight: bold; text-align: center; color: white; background-color: teal } +
- +
@@ -3608,6 +3405,64 @@

Columns

Hamburgers Halloumi
+ + + + + @@ -3640,45 +3495,18 @@

Themes

- - tinytable_bhm83dslr84wwmiz5xl4 + tinytable_t6ykisvx240sa6o2sd9i - - - - +
- +
@@ -3723,6 +3551,28 @@

Themes

+ + + + + @@ -3736,45 +3586,18 @@

Themes

- - tinytable_qexm6jbxpluz3sw3zfnf + tinytable_0jmsmycw5q3e7zcnjkqc - - - - +
- +
@@ -3819,6 +3642,28 @@

Themes

+ + + + + @@ -3836,55 +3681,20 @@

CSS declarations

- - tinytable_hmqv2cbhqwnmxzhgeuro + tinytable_xgiq1fkat3q3yuy722pp - - - - +.table td.tinytable_css_u8gn5shgglsiz6e4ethh, th.tinytable_css_u8gn5shgglsiz6e4ethh { } +.table td.tinytable_css_4t3y1g20m7jotwtcayx3, th.tinytable_css_4t3y1g20m7jotwtcayx3 { font-weight: bold; color: red; } +
- +
@@ -3929,6 +3739,36 @@

CSS declarations

+ + + + + @@ -3977,90 +3817,18 @@

CSS rules

- - tinytable_p1o8ncmayfsbuznj18aj + tinytable_jul1y3an7lrir2pf7f9w - - - - +
- +
@@ -4142,6 +3910,73 @@

CSS rules

+ + + + + diff --git a/vignettes/tutorial.pdf b/vignettes/tutorial.pdf index 1e9dfb1d884888ffd70510a9dbe40f2c2d9e17ab..965ddfed1c293e204b653f01782110b1eeda4578 100644 GIT binary patch delta 10396 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 delta 10408 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 ZgiIlZO*3|r!2odVobVJB5=xTr{|7MC>;wP+