├── .gitignore ├── _extensions ├── nmfs-opensci │ └── titlepage │ │ ├── _academic-static_before-body.tex │ │ ├── _academic-static_titlepage.tex │ │ ├── _bg-image_before-body.tex │ │ ├── _bg-image_titlepage.tex │ │ ├── _classic-lined-static_before-body.tex │ │ ├── _classic-lined-static_titlepage.tex │ │ ├── _extension.yml │ │ ├── _great-wave_before-body.tex │ │ ├── _great-wave_cover.tex │ │ ├── _great-wave_titlepage.tex │ │ ├── _multi-purpose-static_before-body.tex │ │ ├── _multi-purpose-static_titlepage.tex │ │ ├── _multi-purpose_before-body.tex │ │ ├── _multi-purpose_titlepage.tex │ │ ├── _thesis-static_before-body.tex │ │ ├── _thesis-static_titlepage.tex │ │ ├── _vline-static_before-body.tex │ │ ├── _vline-static_titlepage.tex │ │ ├── _vline_before-body.tex │ │ ├── _vline_titlepage.tex │ │ ├── before-body.tex │ │ ├── images │ │ ├── TheGreatWaveoffKanagawa.jpeg │ │ ├── corner-bg.png │ │ ├── logo.png │ │ ├── nmfs-opensci-logo.png │ │ └── ringed-seal.png │ │ ├── pandoc.tex │ │ └── theme.lua └── quarto-journals │ ├── jss │ ├── _extension.yml │ ├── _extensions │ │ └── quarto-ext │ │ │ └── fancy-text │ │ │ ├── _extension.yml │ │ │ └── fancy-text.lua │ ├── jss.bst │ ├── jss.cls │ ├── jss.lua │ ├── jsslogo.jpg │ └── partials │ │ ├── _print-address.tex │ │ ├── _print-author.tex │ │ ├── before-body.tex │ │ └── title.tex │ └── plos │ ├── _extension.yml │ ├── _preamble.tex │ ├── filter.lua │ ├── partials │ ├── _affiliations.tex │ ├── _authors.tex │ ├── before-bib.tex │ ├── before-body.tex │ ├── biblio.tex │ ├── doc-class.tex │ └── title.tex │ └── plos2015.bst ├── _publish.yml ├── examples ├── .gitignore ├── 330px-BostonTerrier001.jpeg ├── 330px-Boston_Terrier_Eden_Forever.jpeg ├── 330px-Boston_Terrier_male.jpeg ├── Terrier_Seated_(Boston_Public_Library).jpeg ├── _extensions │ ├── nmfs-opensci │ │ └── titlepage │ │ │ ├── _academic-static_before-body.tex │ │ │ ├── _academic-static_titlepage.tex │ │ │ ├── _bg-image_before-body.tex │ │ │ ├── _bg-image_titlepage.tex │ │ │ ├── _classic-lined-static_before-body.tex │ │ │ ├── _classic-lined-static_titlepage.tex │ │ │ ├── _extension.yml │ │ │ ├── _great-wave_before-body.tex │ │ │ ├── _great-wave_cover.tex │ │ │ ├── _great-wave_titlepage.tex │ │ │ ├── _multi-purpose-static_before-body.tex │ │ │ ├── _multi-purpose-static_titlepage.tex │ │ │ ├── _multi-purpose_before-body.tex │ │ │ ├── _multi-purpose_titlepage.tex │ │ │ ├── _thesis-static_before-body.tex │ │ │ ├── _thesis-static_titlepage.tex │ │ │ ├── _vline-static_before-body.tex │ │ │ ├── _vline-static_titlepage.tex │ │ │ ├── _vline_before-body.tex │ │ │ ├── _vline_titlepage.tex │ │ │ ├── before-body.tex │ │ │ ├── images │ │ │ ├── TheGreatWaveoffKanagawa.jpeg │ │ │ ├── corner-bg.png │ │ │ ├── logo.png │ │ │ ├── nmfs-opensci-logo.png │ │ │ └── ringed-seal.png │ │ │ ├── pandoc.tex │ │ │ └── theme.lua │ └── quarto-journals │ │ ├── jss │ │ ├── _extension.yml │ │ ├── _extensions │ │ │ └── quarto-ext │ │ │ │ └── fancy-text │ │ │ │ ├── _extension.yml │ │ │ │ └── fancy-text.lua │ │ ├── jss.bst │ │ ├── jss.cls │ │ ├── jss.lua │ │ ├── jsslogo.jpg │ │ └── partials │ │ │ ├── _print-address.tex │ │ │ ├── _print-author.tex │ │ │ ├── before-body.tex │ │ │ └── title.tex │ │ └── plos │ │ ├── _extension.yml │ │ ├── _preamble.tex │ │ ├── filter.lua │ │ ├── partials │ │ ├── _affiliations.tex │ │ ├── _authors.tex │ │ ├── before-bib.tex │ │ ├── before-body.tex │ │ ├── biblio.tex │ │ ├── doc-class.tex │ │ └── title.tex │ │ └── plos2015.bst ├── _quarto.yml ├── corner-bg.png ├── example-pdf.qmd ├── history.qmd ├── howard.png ├── output │ ├── 330px-BostonTerrier001.jpeg │ ├── 330px-Boston_Terrier_Eden_Forever.jpeg │ ├── 330px-Boston_Terrier_male.jpeg │ ├── Terrier_Seated_(Boston_Public_Library).jpeg │ ├── example-pdf.html │ ├── example-pdf_files │ │ └── libs │ │ │ ├── bootstrap │ │ │ ├── bootstrap-icons.css │ │ │ ├── bootstrap-icons.woff │ │ │ ├── bootstrap.min.css │ │ │ └── bootstrap.min.js │ │ │ ├── clipboard │ │ │ └── clipboard.min.js │ │ │ └── quarto-html │ │ │ ├── anchor.min.js │ │ │ ├── popper.min.js │ │ │ ├── quarto-syntax-highlighting.css │ │ │ ├── quarto.js │ │ │ ├── tippy.css │ │ │ └── tippy.umd.min.js │ ├── history.html │ ├── history_files │ │ └── libs │ │ │ ├── bootstrap │ │ │ ├── bootstrap-icons.css │ │ │ ├── bootstrap-icons.woff │ │ │ ├── bootstrap.min.css │ │ │ └── bootstrap.min.js │ │ │ ├── clipboard │ │ │ └── clipboard.min.js │ │ │ └── quarto-html │ │ │ ├── anchor.min.js │ │ │ ├── popper.min.js │ │ │ ├── quarto-syntax-highlighting.css │ │ │ ├── quarto.js │ │ │ ├── tippy.css │ │ │ └── tippy.umd.min.js │ ├── penguin-report.html │ ├── penguin-report_files │ │ ├── figure-html │ │ │ └── unnamed-chunk-2-1.png │ │ └── libs │ │ │ ├── bootstrap │ │ │ ├── bootstrap-icons.css │ │ │ ├── bootstrap-icons.woff │ │ │ ├── bootstrap.min.css │ │ │ └── bootstrap.min.js │ │ │ ├── clipboard │ │ │ └── clipboard.min.js │ │ │ └── quarto-html │ │ │ ├── anchor.min.js │ │ │ ├── popper.min.js │ │ │ ├── quarto-syntax-highlighting.css │ │ │ ├── quarto.js │ │ │ ├── tippy.css │ │ │ └── tippy.umd.min.js │ ├── tidymodels-example.html │ └── tidymodels-example_files │ │ └── libs │ │ ├── bootstrap │ │ ├── bootstrap-icons.css │ │ ├── bootstrap-icons.woff │ │ ├── bootstrap.min.css │ │ └── bootstrap.min.js │ │ ├── clipboard │ │ └── clipboard.min.js │ │ └── quarto-html │ │ ├── anchor.min.js │ │ ├── popper.min.js │ │ ├── quarto-syntax-highlighting.css │ │ ├── quarto.js │ │ ├── tippy.css │ │ └── tippy.umd.min.js ├── penguin-report.qmd └── tidymodels-example.qmd ├── images ├── bootswatch.png ├── boston-history-html.jpeg ├── boston-history-pdf.jpeg ├── howard-gentleman.jpeg ├── jss.png └── penguin-report.png ├── quarto-reporting.Rproj ├── quarto-reporting.html ├── quarto-reporting.qmd ├── quarto-reporting_files ├── figure-revealjs │ └── unnamed-chunk-5-1.png └── libs │ ├── clipboard │ └── clipboard.min.js │ ├── quarto-html │ ├── popper.min.js │ ├── quarto-html.min.css │ ├── quarto-syntax-highlighting-dark.css │ ├── quarto-syntax-highlighting.css │ ├── tabby.min.js │ ├── tippy.css │ └── tippy.umd.min.js │ └── revealjs │ ├── dist │ ├── reset.css │ ├── reveal.css │ ├── reveal.esm.js │ ├── reveal.esm.js.map │ ├── reveal.js │ ├── reveal.js.map │ └── theme │ │ ├── fonts │ │ ├── league-gothic │ │ │ ├── LICENSE │ │ │ ├── league-gothic.css │ │ │ ├── league-gothic.eot │ │ │ ├── league-gothic.ttf │ │ │ └── league-gothic.woff │ │ └── source-sans-pro │ │ │ ├── LICENSE │ │ │ ├── source-sans-pro-italic.eot │ │ │ ├── source-sans-pro-italic.ttf │ │ │ ├── source-sans-pro-italic.woff │ │ │ ├── source-sans-pro-regular.eot │ │ │ ├── source-sans-pro-regular.ttf │ │ │ ├── source-sans-pro-regular.woff │ │ │ ├── source-sans-pro-semibold.eot │ │ │ ├── source-sans-pro-semibold.ttf │ │ │ ├── source-sans-pro-semibold.woff │ │ │ ├── source-sans-pro-semibolditalic.eot │ │ │ ├── source-sans-pro-semibolditalic.ttf │ │ │ ├── source-sans-pro-semibolditalic.woff │ │ │ └── source-sans-pro.css │ │ └── quarto.css │ └── plugin │ ├── highlight │ ├── highlight.esm.js │ ├── highlight.js │ ├── monokai.css │ ├── plugin.js │ └── zenburn.css │ ├── markdown │ ├── markdown.esm.js │ ├── markdown.js │ └── plugin.js │ ├── math │ ├── katex.js │ ├── math.esm.js │ ├── math.js │ ├── mathjax2.js │ ├── mathjax3.js │ └── plugin.js │ ├── multiplex │ ├── multiplex.js │ ├── plugin.yml │ └── socket.io.js │ ├── notes │ ├── notes.esm.js │ ├── notes.js │ ├── plugin.js │ └── speaker-view.html │ ├── pdf-export │ ├── pdfexport.js │ └── plugin.yml │ ├── quarto-line-highlight │ ├── line-highlight.css │ ├── line-highlight.js │ └── plugin.yml │ ├── quarto-support │ ├── footer.css │ ├── plugin.yml │ └── support.js │ ├── reveal-menu │ ├── menu.css │ ├── menu.js │ ├── plugin.yml │ ├── quarto-menu.css │ └── quarto-menu.js │ ├── search │ ├── plugin.js │ ├── search.esm.js │ └── search.js │ └── zoom │ ├── plugin.js │ ├── zoom.esm.js │ └── zoom.js ├── readme.md └── styles.scss /.gitignore: -------------------------------------------------------------------------------- 1 | .Rproj.user 2 | .Rhistory 3 | .Rdata 4 | .httr-oauth 5 | .DS_Store 6 | .quarto 7 | -------------------------------------------------------------------------------- /_extensions/nmfs-opensci/titlepage/_academic-static_before-body.tex: -------------------------------------------------------------------------------- 1 | $if(has-frontmatter)$ 2 | \begin{frontmatter} 3 | \begin{titlepage} 4 | $_academic-static_titlepage.tex()$ 5 | \end{titlepage} 6 | \end{frontmatter} 7 | $else$ 8 | \begin{titlepage} 9 | $_academic-static_titlepage.tex()$ 10 | \end{titlepage} 11 | $endif$ 12 | -------------------------------------------------------------------------------- /_extensions/nmfs-opensci/titlepage/_academic-static_titlepage.tex: -------------------------------------------------------------------------------- 1 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2 | % Academic Title Page 3 | % LaTeX Template 4 | % Version 2.0 (17/7/17) 5 | % 6 | % This template was downloaded from: 7 | % http://www.LaTeXTemplates.com 8 | % 9 | % Original author: 10 | % WikiBooks (LaTeX - Title Creation) with modifications by: 11 | % Vel (vel@latextemplates.com) 12 | % 13 | % License: 14 | % CC BY-NC-SA 3.0 (http://creativecommons.org/licenses/by-nc-sa/3.0/) 15 | % 16 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 17 | 18 | 19 | \newcommand{\HRule}{\rule{\linewidth}{0.5mm}} % Defines a new command for horizontal lines, change thickness here 20 | 21 | \center % Centre everything on the page 22 | 23 | %------------------------------------------------ 24 | % Headings 25 | %------------------------------------------------ 26 | 27 | \textsc{\LARGE Institution Name}\\[1.5cm] % Main heading such as the name of your university/college 28 | 29 | \textsc{\Large Major Heading}\\[0.5cm] % Major heading such as course name 30 | 31 | \textsc{\large Minor Heading}\\[0.5cm] % Minor heading such as course title 32 | 33 | %------------------------------------------------ 34 | % Title 35 | %------------------------------------------------ 36 | 37 | \HRule\\[0.4cm] 38 | 39 | {\huge\bfseries An Unnecessarily Convoluted Academic Title}\\[0.4cm] % Title of your document 40 | 41 | \HRule\\[1.5cm] 42 | 43 | %------------------------------------------------ 44 | % Author(s) 45 | %------------------------------------------------ 46 | 47 | \begin{minipage}{0.4\textwidth} 48 | \begin{flushleft} 49 | \large 50 | \textit{Author}\\ 51 | B.J. \textsc{Blazkowicz} % Your name 52 | \end{flushleft} 53 | \end{minipage} 54 | ~ 55 | \begin{minipage}{0.4\textwidth} 56 | \begin{flushright} 57 | \large 58 | \textit{Supervisor}\\ 59 | Dr. Caroline \textsc{Becker} % Supervisor's name 60 | \end{flushright} 61 | \end{minipage} 62 | 63 | % If you don't want a supervisor, uncomment the two lines below and comment the code above 64 | %{\large\textit{Author}}\\ 65 | %John \textsc{Smith} % Your name 66 | 67 | %------------------------------------------------ 68 | % Date 69 | %------------------------------------------------ 70 | 71 | \vfill\vfill\vfill % Position the date 3/4 down the remaining page 72 | 73 | {\large\today} % Date, change the \today to a set date if you want to be precise 74 | 75 | %------------------------------------------------ 76 | % Logo 77 | %------------------------------------------------ 78 | 79 | %\vfill\vfill 80 | %\includegraphics[width=0.2\textwidth]{placeholder.jpg}\\[1cm] % Include a department/university logo - this will require the graphicx package 81 | 82 | %---------------------------------------------------------------------------------------- 83 | 84 | \vfill % Push the date up 1/4 of the remaining page 85 | 86 | 87 | -------------------------------------------------------------------------------- /_extensions/nmfs-opensci/titlepage/_bg-image_before-body.tex: -------------------------------------------------------------------------------- 1 | $if(has-frontmatter)$ 2 | \begin{frontmatter} 3 | \begin{titlepage} 4 | $_bg-image_titlepage.tex()$ 5 | \end{titlepage} 6 | \end{frontmatter} 7 | $else$ 8 | \begin{titlepage} 9 | $_bg-image_titlepage.tex()$ 10 | \end{titlepage} 11 | $endif$ 12 | -------------------------------------------------------------------------------- /_extensions/nmfs-opensci/titlepage/_bg-image_titlepage.tex: -------------------------------------------------------------------------------- 1 | % This is a combination of Pandoc templating and LaTeX 2 | % Pandoc templating https://pandoc.org/MANUAL.html#templates 3 | % See the README for help 4 | 5 | $if(titlepage-geometry)$ 6 | \newgeometry{$for(titlepage-geometry)$$titlepage-geometry$$sep$,$endfor$} 7 | $endif$ 8 | \begin{minipage}[b][\textheight][s]{\textwidth} 9 | \raggedright 10 | 11 | % background image 12 | $if(title-bg-image)$ 13 | \This$if(title-bg-location)$$title-bg-location$$else$UL$endif$CornerWallPaper{$if(title-bg-size)$$title-bg-size$$else$0.5$endif$}{$title-bg-image$} 14 | $endif$ 15 | 16 | % Title and subtitle 17 | {\huge\bfseries\nohyphens{$title$}}\\[1\baselineskip] 18 | $if(subtitle)${\large{$subtitle$}}\\[4\baselineskip]$endif$ 19 | 20 | % Authors 21 | % This hairy bit of code is just to get "and" between the last 2 22 | % authors. See below if you don't need that 23 | $if(by-author/allbutlast)$ 24 | $for(by-author/allbutlast)$ 25 | {\large{$by-author.name.literal$}}$for(by-author.affiliations)${\textsuperscript{$it.number$}}$sep$\textsuperscript{,}$endfor$% 26 | $if(by-author.email)$% 27 | $if(by-author.affiliations)$\textsuperscript{,}$endif$% 28 | {\textsuperscript{*}}% 29 | $endif$% 30 | $sep$, 31 | $endfor$ 32 | $for(by-author/last)$% 33 | { and \large{$by-author.name.literal$}}% 34 | $for(by-author.affiliations)${\textsuperscript{$it.number$}}$sep$\textsuperscript{,}% 35 | $endfor$% 36 | $if(by-author.email)$% 37 | $if(by-author.affiliations)$\textsuperscript{,}$endif$% 38 | {\textsuperscript{*}}% 39 | $endif$% 40 | $endfor$ 41 | $else$ 42 | $for(by-author/last)$% 43 | {\large{$by-author.name.literal$}}% 44 | $for(by-author.affiliations)$% 45 | {\textsuperscript{$it.number$}}$sep$\textsuperscript{,}$endfor$% 46 | $if(by-author.email)$% 47 | $if(by-author.affiliations)$\textsuperscript{,}$endif$% 48 | {\textsuperscript{,*}}% 49 | $endif$% 50 | $endfor$ 51 | $endif$ 52 | 53 | % This is how to do it if you don't need the "and" 54 | $if(false)$ 55 | $for(by-author)$ 56 | {$by-author.name.literal$}$for(by-author.affiliations)${\textsuperscript{$it.number$}}$sep${\textsuperscript{,}}$endfor$$if(by-author.email)$,{\textsuperscript{*}}$endif$$sep$, 57 | $endfor$ 58 | $endif$ 59 | 60 | %%%%%% Affiliations 61 | \vspace{2\baselineskip} 62 | 63 | \hangindent=1em 64 | \hangafter=1 65 | $for(by-affiliation)$% 66 | {$it.number$}.~$if(by-affiliation.name)${$it.name$}$endif$% 67 | $if(by-affiliation.department)$% 68 | $if(by-affiliation.name)$, $endif$% 69 | {$it.department$}% 70 | $endif$% 71 | $if(by-affiliation.address)$% 72 | $if(by-affiliation.name)$, $else$$if(by-affiliation.department)$, $endif$$endif$% 73 | {$it.address$}% 74 | $endif$% 75 | $sep$\par\hangindent=1em\hangafter=1% 76 | $endfor$ 77 | 78 | %%%%%% Correspondence 79 | \vspace{1\baselineskip} 80 | 81 | $for(by-author)$ 82 | $if(by-author.email)$ 83 | * \textit{Correspondence:}~$by-author.name.literal$~$by-author.email$ 84 | $endif$ 85 | $endfor$ 86 | 87 | %use \vfill instead to get the space to fill flexibly 88 | %\vspace{0.25\textheight} % Whitespace between the title block and the publisher 89 | 90 | \vfill 91 | 92 | %%%%%% Cover image 93 | $if(cover)$\includegraphics[width=4cm]{$cover$}$endif$ 94 | 95 | % Whitespace between the title block and the tagline 96 | \vspace{1\baselineskip} 97 | 98 | %%%%%% Tagline at bottom 99 | University Technical Series\newline 100 | Open Source Publication for All\newline 101 | Amtmandens Allé 15\newline 102 | 6950 Rindum Ringkøbing-Skjern\newline 103 | DENMARK\newline 104 | December 2025 105 | 106 | \end{minipage} 107 | $if(titlepage-geometry)$ 108 | \restoregeometry 109 | $endif$ 110 | -------------------------------------------------------------------------------- /_extensions/nmfs-opensci/titlepage/_classic-lined-static_before-body.tex: -------------------------------------------------------------------------------- 1 | $if(has-frontmatter)$ 2 | \begin{frontmatter} 3 | \begin{titlepage} 4 | $_classic-lined-static_titlepage.tex()$ 5 | \end{titlepage} 6 | \end{frontmatter} 7 | $else$ 8 | \begin{titlepage} 9 | $_classic-lined-static_titlepage.tex()$ 10 | \end{titlepage} 11 | $endif$ 12 | -------------------------------------------------------------------------------- /_extensions/nmfs-opensci/titlepage/_classic-lined-static_titlepage.tex: -------------------------------------------------------------------------------- 1 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2 | % Classic-Lined Title Page 3 | % LaTeX Template 4 | % Version 2.0 (17/7/17) 5 | % 6 | % This template was downloaded from: 7 | % http://www.LaTeXTemplates.com 8 | % 9 | % Original author: 10 | % WikiBooks (LaTeX - Title Creation) with modifications by: 11 | % Vel (vel@latextemplates.com) 12 | % 13 | % License: 14 | % CC BY-NC-SA 3.0 (http://creativecommons.org/licenses/by-nc-sa/3.0/) 15 | % 16 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 17 | 18 | 19 | \centering % Centre everything on the title page 20 | 21 | %------------------------------------------------ 22 | % Top rules 23 | %------------------------------------------------ 24 | 25 | \rule{\textwidth}{1pt} % Thick horizontal rule 26 | 27 | \vspace{2pt}\vspace{-\baselineskip} % Whitespace between rules 28 | 29 | \rule{\textwidth}{0.4pt} % Thin horizontal rule 30 | 31 | \vspace{0.1\textheight} % Whitespace between the top rules and title 32 | 33 | %------------------------------------------------ 34 | % Title 35 | %------------------------------------------------ 36 | 37 | \textcolor{red}{ % Red font color 38 | {\Huge THE BIG BOOK}\\[0.5\baselineskip] % Title line 1 39 | {\Large OF}\\[0.5\baselineskip] % Title line 2 40 | {\Huge \LaTeX~Templates} % Title line 3 41 | } 42 | 43 | \vspace{0.025\textheight} % Whitespace between the title and short horizontal rule 44 | 45 | \rule{0.3\textwidth}{0.4pt} % Short horizontal rule under the title 46 | 47 | \vspace{0.1\textheight} % Whitespace between the thin horizontal rule and the author name 48 | 49 | %------------------------------------------------ 50 | % Author 51 | %------------------------------------------------ 52 | 53 | {\Large \textsc{gordon freeman}} % Author name 54 | 55 | \vfill % Whitespace between the author name and publisher 56 | 57 | %------------------------------------------------ 58 | % Publisher 59 | %------------------------------------------------ 60 | 61 | \includegraphics[width=0.2\textwidth]{logo.png}\\[1cm] 62 | 63 | {\large\textsc{the publisher}} % Publisher 64 | 65 | \vspace{0.1\textheight} % Whitespace under the publisher text 66 | 67 | %------------------------------------------------ 68 | % Bottom rules 69 | %------------------------------------------------ 70 | 71 | \rule{\textwidth}{0.4pt} % Thin horizontal rule 72 | 73 | \vspace{2pt}\vspace{-\baselineskip} % Whitespace between rules 74 | 75 | \rule{\textwidth}{1pt} % Thick horizontal rule 76 | 77 | 78 | -------------------------------------------------------------------------------- /_extensions/nmfs-opensci/titlepage/_extension.yml: -------------------------------------------------------------------------------- 1 | title: titlepage 2 | author: Eli Holmes, Mickaël Canouil 3 | version: 0.2.1 4 | contributes: 5 | format: 6 | pdf: 7 | filters: 8 | - theme.lua 9 | template-partials: 10 | - "_academic-static_before-body.tex" 11 | - "_academic-static_titlepage.tex" 12 | - "_bg-image_before-body.tex" 13 | - "_bg-image_titlepage.tex" 14 | - "_classic-lined-static_before-body.tex" 15 | - "_classic-lined-static_titlepage.tex" 16 | - "_great-wave_before-body.tex" 17 | - "_great-wave_cover.tex" 18 | - "_great-wave_titlepage.tex" 19 | - "_multi-purpose-static_before-body.tex" 20 | - "_multi-purpose-static_titlepage.tex" 21 | - "_multi-purpose_before-body.tex" 22 | - "_multi-purpose_titlepage.tex" 23 | - "_thesis-static_before-body.tex" 24 | - "_thesis-static_titlepage.tex" 25 | - "_vline_before-body.tex" 26 | - "_vline_titlepage.tex" 27 | - "_vline-static_before-body.tex" 28 | - "_vline-static_titlepage.tex" 29 | - "before-body.tex" 30 | - "pandoc.tex" 31 | format-resources: 32 | - "images/TheGreatWaveoffKanagawa.jpeg" 33 | - "images/corner-bg.png" 34 | - "images/logo.png" 35 | - "images/nmfs-opensci-logo.png" 36 | - "images/ringed-seal.png" 37 | -------------------------------------------------------------------------------- /_extensions/nmfs-opensci/titlepage/_great-wave_before-body.tex: -------------------------------------------------------------------------------- 1 | $if(has-frontmatter)$ 2 | \begin{frontmatter} 3 | \begin{titlepage} 4 | $_great-wave_cover.tex()$ 5 | % for some reason it insists on putting a black page 6 | % between cover and title if I have this above \begin{titlepage} 7 | $_great-wave_titlepage.tex()$ 8 | \end{titlepage} 9 | \setcounter{page}{1} 10 | \end{frontmatter} 11 | $else$ 12 | \begin{titlepage} 13 | $_great-wave_cover.tex()$ 14 | $_great-wave_titlepage.tex()$ 15 | \end{titlepage} 16 | $endif$ 17 | -------------------------------------------------------------------------------- /_extensions/nmfs-opensci/titlepage/_great-wave_cover.tex: -------------------------------------------------------------------------------- 1 | % This is a combination of Pandoc templating and LaTeX 2 | % Pandoc templating https://pandoc.org/MANUAL.html#templates 3 | % See the README for help 4 | % This template is based on a post by Arun Debray to tex.stackoverflow 5 | % https://tex.stackexchange.com/posts/554962/revisions 6 | 7 | \newgeometry{left=1in, right=1in, top=2in, bottom=0in} 8 | \begin{minipage}[b][\textheight][s]{\textwidth} 9 | 10 | % Change title fonts here 11 | \DeclareFixedFont{\titlefont}{T1}{ppl}{b}{}{0.6in} 12 | \DeclareFixedFont{\subtitlefont}{T1}{ppl}{b}{it}{0.2in} 13 | 14 | % Page color 15 | \definecolor{pgcolor}{HTML}{$title-page-color$} 16 | \pagecolor{pgcolor}\afterpage{\nopagecolor} 17 | 18 | \thispagestyle{empty} 19 | \begin{flushright} 20 | \titlefont $title$\\ 21 | \subtitlefont $subtitle$ 22 | \end{flushright} 23 | \vfill 24 | \begin{center} 25 | \begin{tikzpicture} 26 | \node[scope fading=north, inner sep=0pt, outer sep=0pt]{ 27 | \makebox[\textwidth]{\includegraphics[width=\paperwidth]{$title-bg-image$}} 28 | }; 29 | \end{tikzpicture} 30 | \end{center} 31 | 32 | \end{minipage}% 33 | \clearpage 34 | \restoregeometry 35 | -------------------------------------------------------------------------------- /_extensions/nmfs-opensci/titlepage/_great-wave_titlepage.tex: -------------------------------------------------------------------------------- 1 | % This is a combination of Pandoc templating and LaTeX 2 | % Pandoc templating https://pandoc.org/MANUAL.html#templates 3 | % See the README for help 4 | 5 | \raggedleft % left align the title page 6 | \thispagestyle{empty} 7 | \rule{1pt}{\textheight} % Vertical line 8 | \hspace{0.05\textwidth} % Whitespace between the vertical line and title page text 9 | % Adjust num before \textwidth to move the block left or right 10 | \begin{minipage}[b][\textheight][s]{0.85\textwidth} 11 | 12 | \raggedright 13 | % Title and subtitle 14 | {\huge\bfseries\nohyphens{$title$}}\\[1.25\baselineskip] 15 | $if(subtitle)${\large\textit{$subtitle$}}\\[4\baselineskip]$endif$ 16 | 17 | % Abstract 18 | $if(abstract)$% 19 | \begin{flushright}% 20 | {{$abstract$}}\\[4\baselineskip]% 21 | \end{flushright}% 22 | $endif$ 23 | 24 | % Authors 25 | % This hairy bit of code is just to get "and" between the last 2 26 | % authors. See below if you don't need that 27 | $if(by-author/allbutlast)$ 28 | $for(by-author/allbutlast)$ 29 | {\large{$by-author.name.literal$}}$for(by-author.affiliations)${\textsuperscript{$it.number$}}$sep$\textsuperscript{,}$endfor$% 30 | $if(by-author.email)$% 31 | $if(by-author.affiliations)$\textsuperscript{,}$endif$% 32 | {\textsuperscript{*}}% 33 | $endif$% 34 | $sep$, 35 | $endfor$ 36 | $for(by-author/last)$% 37 | { and \large{$by-author.name.literal$}}% 38 | $for(by-author.affiliations)${\textsuperscript{$it.number$}}$sep$\textsuperscript{,}% 39 | $endfor$% 40 | $if(by-author.email)$% 41 | $if(by-author.affiliations)$\textsuperscript{,}$endif$% 42 | {\textsuperscript{*}}% 43 | $endif$% 44 | $endfor$ 45 | $else$ 46 | $for(by-author/last)$% 47 | {\large{$by-author.name.literal$}}% 48 | $for(by-author.affiliations)$% 49 | {\textsuperscript{$it.number$}}$sep$\textsuperscript{,}$endfor$% 50 | $if(by-author.email)$% 51 | $if(by-author.affiliations)$\textsuperscript{,}$endif$% 52 | {\textsuperscript{,*}}% 53 | $endif$% 54 | $endfor$ 55 | $endif$ 56 | 57 | % This is how to do it if you don't need the "and" 58 | $if(false)$% 59 | $for(by-author)$% 60 | {$by-author.name.literal$}% 61 | $for(by-author.affiliations)$% 62 | {\textsuperscript{$it.number$}}$sep${\textsuperscript{,}}% 63 | $endfor$% 64 | $if(by-author.email)$,{\textsuperscript{*}}% 65 | $endif$% 66 | $sep$, % 67 | $endfor$% 68 | $endif$ 69 | 70 | %%%%%% Affiliations 71 | \vspace{2\baselineskip} 72 | 73 | \hangindent=1em 74 | \hangafter=1 75 | $for(by-affiliation)$% 76 | {$it.number$}.~$if(by-affiliation.name)${$it.name$}$endif$% 77 | $if(by-affiliation.department)$% 78 | $if(by-affiliation.name)$, $endif$% 79 | {$it.department$}% 80 | $endif$% 81 | $if(by-affiliation.address)$% 82 | $if(by-affiliation.name)$, $else$$if(by-affiliation.department)$, $endif$$endif$% 83 | {$it.address$}% 84 | $endif$% 85 | $sep$\par\hangindent=1em\hangafter=1% 86 | $endfor$ 87 | 88 | %%%%%% Correspondence 89 | \vspace{1\baselineskip} 90 | 91 | $for(by-author)$ 92 | $if(by-author.email)$ 93 | * \textit{Correspondence:}~$by-author.name.literal$~$by-author.email$ 94 | $endif$ 95 | $endfor$ 96 | 97 | %use \vfill instead to get the space to fill flexibly 98 | %\vspace{0.25\textheight} % Whitespace between the title block and the publisher 99 | 100 | \vfill 101 | 102 | %%%%%% Cover image 103 | $if(cover)$\includegraphics[width=4cm]{$cover$}$endif$ 104 | 105 | % Whitespace between the title block and the tagline 106 | \vspace{0.1\textheight} 107 | 108 | %%%%%% Tagline at bottom 109 | {\noindent https://nmfs-opensci.github.io/}\\[\baselineskip] 110 | \end{minipage} 111 | -------------------------------------------------------------------------------- /_extensions/nmfs-opensci/titlepage/_multi-purpose-static_before-body.tex: -------------------------------------------------------------------------------- 1 | $if(has-frontmatter)$ 2 | \begin{frontmatter} 3 | \begin{titlepage} 4 | $_multi-purpose-static_titlepage.tex()$ 5 | \end{titlepage} 6 | \end{frontmatter} 7 | $else$ 8 | \begin{titlepage} 9 | $_multi-purpose-static_titlepage.tex()$ 10 | \end{titlepage} 11 | $endif$ 12 | -------------------------------------------------------------------------------- /_extensions/nmfs-opensci/titlepage/_multi-purpose-static_titlepage.tex: -------------------------------------------------------------------------------- 1 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2 | % Multi-Purpose Title Page 3 | % LaTeX Template 4 | % Version 2.0 (17/7/17) 5 | % 6 | % This template was downloaded from: 7 | % http://www.LaTeXTemplates.com 8 | % 9 | % Original author: 10 | % WikiBooks (LaTeX - Title Creation) with modifications by: 11 | % Vel (vel@latextemplates.com) 12 | % 13 | % License: 14 | % CC BY-NC-SA 3.0 (http://creativecommons.org/licenses/by-nc-sa/3.0/) 15 | % 16 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 17 | 18 | 19 | %------------------------------------------------ 20 | % title box 21 | %------------------------------------------------ 22 | 23 | \colorbox{cyan}{ 24 | \parbox[t]{0.93\textwidth}{ % Outer full width box 25 | \parbox[t]{0.91\textwidth}{ % Inner box for inner right text margin 26 | \raggedleft % Right align the text 27 | \fontsize{50pt}{80pt}\selectfont % Title font size, the first argument is the font size and the second is the line spacing, adjust depending on title length 28 | \vspace{0.7cm} % Space between the start of the title and the top of the grey box 29 | 30 | A Title Page\\ 31 | Template With\\ 32 | Many Uses\\ 33 | 34 | \vspace{0.7cm} % Space between the end of the title and the bottom of the grey box 35 | } 36 | } 37 | } 38 | 39 | \vfill % Space between the title box and author information 40 | 41 | %------------------------------------------------ 42 | % Author name and information 43 | %------------------------------------------------ 44 | 45 | \parbox[t]{0.93\textwidth}{ % Box to inset this section slightly 46 | \raggedleft % Right align the text 47 | \large % Increase the font size 48 | {\Large B.J. Blazkowicz}\\[4pt] % Extra space after name 49 | Department Name\\ 50 | Institution Name\\[4pt] % Extra space before URL 51 | \texttt{LaTeXTemplates.com}\\ 52 | 53 | \hfill\rule{0.2\linewidth}{1pt}% Horizontal line, first argument width, second thickness 54 | } 55 | -------------------------------------------------------------------------------- /_extensions/nmfs-opensci/titlepage/_multi-purpose_before-body.tex: -------------------------------------------------------------------------------- 1 | $if(has-frontmatter)$ 2 | \begin{frontmatter} 3 | \begin{titlepage} 4 | $_multi-purpose_titlepage.tex()$ 5 | \end{titlepage} 6 | \end{frontmatter} 7 | $else$ 8 | \begin{titlepage} 9 | $_multi-purpose_titlepage.tex()$ 10 | \end{titlepage} 11 | $endif$ 12 | -------------------------------------------------------------------------------- /_extensions/nmfs-opensci/titlepage/_multi-purpose_titlepage.tex: -------------------------------------------------------------------------------- 1 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2 | % Multi-Purpose Title Page 3 | % LaTeX Template 4 | % Version 2.0 (17/7/17) 5 | % 6 | % This template was downloaded from: 7 | % http://www.LaTeXTemplates.com 8 | % 9 | % Original author: 10 | % WikiBooks (LaTeX - Title Creation) with modifications by: 11 | % Vel (vel@latextemplates.com) 12 | % 13 | % License: 14 | % CC BY-NC-SA 3.0 (http://creativecommons.org/licenses/by-nc-sa/3.0/) 15 | % 16 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 17 | 18 | 19 | %------------------------------------------------ 20 | % title box 21 | %------------------------------------------------ 22 | 23 | \colorbox{cyan}{ 24 | \parbox[t]{0.93\textwidth}{ % Outer full width box 25 | \parbox[t]{0.91\textwidth}{ % Inner box for inner right text margin 26 | \raggedright % Right align the text 27 | \fontsize{50pt}{80pt}\selectfont % Title font size, the first argument is the font size and the second is the line spacing, adjust depending on title length 28 | \vspace{0.7cm} % Space between the start of the title and the top of the grey box 29 | 30 | $title$\\ 31 | \fontsize{25pt}{40pt}\selectfont 32 | $subtitle$\\ 33 | 34 | \vspace{0.7cm} % Space between the end of the title and the bottom of the grey box 35 | } 36 | } 37 | } 38 | 39 | \vfill % Space between the title box and author information 40 | 41 | %------------------------------------------------ 42 | % Author name and information 43 | %------------------------------------------------ 44 | 45 | \parbox[t]{0.93\textwidth}{ % Box to inset this section slightly 46 | \raggedleft % Right align the text 47 | \large % Increase the font size 48 | $for(by-author)$% 49 | {\Large $by-author.name.literal$}% 50 | $sep$\\ % 51 | $endfor$% 52 | 53 | \hfill\rule{0.2\linewidth}{1pt}% Horizontal line, first argument width, second thickness 54 | } 55 | -------------------------------------------------------------------------------- /_extensions/nmfs-opensci/titlepage/_thesis-static_before-body.tex: -------------------------------------------------------------------------------- 1 | $if(has-frontmatter)$ 2 | \begin{frontmatter} 3 | \begin{titlepage} 4 | $_thesis-static_titlepage.tex()$ 5 | \end{titlepage} 6 | \end{frontmatter} 7 | $else$ 8 | \begin{titlepage} 9 | $_thesis-static_titlepage.tex()$ 10 | \end{titlepage} 11 | $endif$ 12 | -------------------------------------------------------------------------------- /_extensions/nmfs-opensci/titlepage/_thesis-static_titlepage.tex: -------------------------------------------------------------------------------- 1 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2 | % Thesis Title Page 3 | % LaTeX Template 4 | % 5 | % This template was downloaded from: 6 | % https://www.overleaf.com/learn/latex/How_to_Write_a_Thesis_in_LaTeX_(Part_5)%3A_Customising_Your_Title_Page_and_Abstract 7 | % 8 | % Original author: 9 | % Josh Cassidy (Aug 2013) 10 | % 11 | % 12 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 13 | 14 | 15 | \begin{center} 16 | \vspace*{1cm} 17 | 18 | \Huge 19 | \textbf{Thesis Title} 20 | 21 | \vspace{0.5cm} 22 | \LARGE 23 | Thesis Subtitle 24 | 25 | \vspace{1.5cm} 26 | 27 | \textbf{Author Name} 28 | 29 | \vfill 30 | 31 | A thesis presented for the degree of\\ 32 | Doctor of Philosophy 33 | 34 | \vspace{0.8cm} 35 | 36 | \includegraphics[width=0.4\textwidth]{logo.png} 37 | 38 | \Large 39 | Department Name\\ 40 | University Name\\ 41 | Country\\ 42 | Date 43 | 44 | \end{center} 45 | -------------------------------------------------------------------------------- /_extensions/nmfs-opensci/titlepage/_vline-static_before-body.tex: -------------------------------------------------------------------------------- 1 | $if(has-frontmatter)$ 2 | \begin{frontmatter} 3 | \begin{titlepage} 4 | $_vline-static_titlepage.tex()$ 5 | \end{titlepage} 6 | \end{frontmatter} 7 | $else$ 8 | \begin{titlepage} 9 | $_vline-static_titlepage.tex()$ 10 | \end{titlepage} 11 | $endif$ 12 | -------------------------------------------------------------------------------- /_extensions/nmfs-opensci/titlepage/_vline-static_titlepage.tex: -------------------------------------------------------------------------------- 1 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2 | % Vertical Line Title Page 3 | % LaTeX Template 4 | % Version 2.0 (22/7/17) 5 | % 6 | % This template was downloaded from: 7 | % http://www.LaTeXTemplates.com 8 | % 9 | % Original author: 10 | % Peter Wilson (herries.press@earthlink.net) with modifications by: 11 | % Vel (vel@latextemplates.com) 12 | % 13 | % License: 14 | % CC BY-NC-SA 3.0 (http://creativecommons.org/licenses/by-nc-sa/3.0/) 15 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 16 | 17 | 18 | \raggedleft % Right align the title page 19 | 20 | \rule{1pt}{\textheight} % Vertical line 21 | \hspace{0.05\textwidth} % Whitespace between the vertical line and title page text 22 | \parbox[b]{0.75\textwidth}{ % Paragraph box for holding the title page text, adjust the width to move the title page left or right on the page 23 | 24 | {\Huge\bfseries A Collection of \\[0.5\baselineskip] \LaTeX ~Templates}\\[2\baselineskip] % Title 25 | {\large\textit{A predictable subtitle}}\\[4\baselineskip] % Subtitle or further description 26 | {\Large\textsc{gordon freeman}} % Author name, lower case for consistent small caps 27 | 28 | \vspace{0.5\textheight} % Whitespace between the title block and the publisher 29 | 30 | {\noindent The Publisher }\\[\baselineskip] % Publisher and logogo 31 | } 32 | -------------------------------------------------------------------------------- /_extensions/nmfs-opensci/titlepage/_vline_before-body.tex: -------------------------------------------------------------------------------- 1 | $if(has-frontmatter)$ 2 | \begin{frontmatter} 3 | \begin{titlepage} 4 | $_vline_titlepage.tex()$ 5 | \end{titlepage} 6 | \end{frontmatter} 7 | $else$ 8 | \begin{titlepage} 9 | $_vline_titlepage.tex()$ 10 | \end{titlepage} 11 | $endif$ 12 | -------------------------------------------------------------------------------- /_extensions/nmfs-opensci/titlepage/_vline_titlepage.tex: -------------------------------------------------------------------------------- 1 | % This is a combination of Pandoc templating and LaTeX 2 | % Pandoc templating https://pandoc.org/MANUAL.html#templates 3 | % See the README for help 4 | 5 | \raggedleft % left align the title page 6 | \rule{1pt}{\textheight} % Vertical line 7 | \hspace{0.05\textwidth} % Whitespace between the vertical line and title page text 8 | % Adjust num before \textwidth to move the block left or right 9 | \begin{minipage}[b][\textheight][s]{0.85\textwidth} 10 | 11 | \raggedright 12 | % Title and subtitle 13 | {\large\bfseries\nohyphens{$title$}}\\[2\baselineskip] 14 | $if(subtitle)${\large\textit{$subtitle$}}\\[4\baselineskip]$endif$ 15 | 16 | % Authors 17 | % This hairy bit of code is just to get "and" between the last 2 18 | % authors. See below if you don't need that 19 | $if(by-author/allbutlast)$ 20 | $for(by-author/allbutlast)$ 21 | {\large{$by-author.name.literal$}}$for(by-author.affiliations)${\textsuperscript{$it.number$}}$sep$\textsuperscript{,}$endfor$% 22 | $if(by-author.email)$% 23 | $if(by-author.affiliations)$\textsuperscript{,}$endif$% 24 | {\textsuperscript{*}}% 25 | $endif$% 26 | $sep$, 27 | $endfor$ 28 | $for(by-author/last)$% 29 | { and \large{$by-author.name.literal$}}% 30 | $for(by-author.affiliations)${\textsuperscript{$it.number$}}$sep$\textsuperscript{,}% 31 | $endfor$% 32 | $if(by-author.email)$% 33 | $if(by-author.affiliations)$\textsuperscript{,}$endif$% 34 | {\textsuperscript{*}}% 35 | $endif$% 36 | $endfor$ 37 | $else$ 38 | $for(by-author/last)$% 39 | {\large{$by-author.name.literal$}}% 40 | $for(by-author.affiliations)$% 41 | {\textsuperscript{$it.number$}}$sep$\textsuperscript{,}$endfor$% 42 | $if(by-author.email)$% 43 | $if(by-author.affiliations)$\textsuperscript{,}$endif$% 44 | {\textsuperscript{,*}}% 45 | $endif$% 46 | $endfor$ 47 | $endif$ 48 | 49 | % This is how to do it if you don't need the "and" 50 | $if(false)$% 51 | $for(by-author)$% 52 | {$by-author.name.literal$}% 53 | $for(by-author.affiliations)$% 54 | {\textsuperscript{$it.number$}}$sep${\textsuperscript{,}}% 55 | $endfor$% 56 | $if(by-author.email)$,{\textsuperscript{*}}% 57 | $endif$% 58 | $sep$, % 59 | $endfor$% 60 | $endif$ 61 | 62 | %%%%%% Affiliations 63 | \vspace{2\baselineskip} 64 | 65 | \hangindent=1em 66 | \hangafter=1 67 | $for(by-affiliation)$% 68 | {$it.number$}.~$if(by-affiliation.name)${$it.name$}$endif$% 69 | $if(by-affiliation.department)$% 70 | $if(by-affiliation.name)$, $endif$% 71 | {$it.department$}% 72 | $endif$% 73 | $if(by-affiliation.address)$% 74 | $if(by-affiliation.name)$, $else$$if(by-affiliation.department)$, $endif$$endif$% 75 | {$it.address$}% 76 | $endif$% 77 | $sep$\par\hangindent=1em\hangafter=1% 78 | $endfor$ 79 | 80 | %%%%%% Correspondence 81 | \vspace{1\baselineskip} 82 | 83 | $for(by-author)$ 84 | $if(by-author.email)$ 85 | * \textit{Correspondence:}~$by-author.name.literal$~$by-author.email$ 86 | $endif$ 87 | $endfor$ 88 | 89 | %use \vfill instead to get the space to fill flexibly 90 | %\vspace{0.25\textheight} % Whitespace between the title block and the publisher 91 | 92 | \vfill 93 | 94 | %%%%%% Cover image 95 | $if(cover)$\includegraphics[width=4cm]{$cover$}$endif$ 96 | 97 | % Whitespace between the title block and the tagline 98 | \vspace{0.1\textheight} 99 | 100 | %%%%%% Tagline at bottom 101 | % {\noindent The Publisher~~\plogo}\\[\baselineskip] % Publisher and logo 102 | {\noindent The Publisher}\\[\baselineskip] % Publisher and logo 103 | \end{minipage} 104 | -------------------------------------------------------------------------------- /_extensions/nmfs-opensci/titlepage/before-body.tex: -------------------------------------------------------------------------------- 1 | $if(academic-static)$ 2 | $_academic-static_before-body.tex()$ 3 | $endif$ 4 | 5 | $if(bg-image)$ 6 | $_bg-image_before-body.tex()$ 7 | $endif$ 8 | 9 | $if(classic-lined-static)$ 10 | $_classic-lined-static_before-body.tex()$ 11 | $endif$ 12 | 13 | $if(great-wave)$ 14 | $_great-wave_before-body.tex()$ 15 | $endif$ 16 | 17 | $if(multi-purpose-static)$ 18 | $_multi-purpose-static_before-body.tex()$ 19 | $endif$ 20 | 21 | $if(multi-purpose)$ 22 | $_multi-purpose_before-body.tex()$ 23 | $endif$ 24 | 25 | $if(thesis-static)$ 26 | $_thesis-static_before-body.tex()$ 27 | $endif$ 28 | 29 | $if(vline)$ 30 | $_vline_before-body.tex()$ 31 | $endif$ 32 | 33 | $if(vline-static)$ 34 | $_vline-static_before-body.tex()$ 35 | $endif$ 36 | -------------------------------------------------------------------------------- /_extensions/nmfs-opensci/titlepage/images/TheGreatWaveoffKanagawa.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jthomasmock/quarto-reporting/7dfe573d3363d81169ea967bb4b779ef92a98f68/_extensions/nmfs-opensci/titlepage/images/TheGreatWaveoffKanagawa.jpeg -------------------------------------------------------------------------------- /_extensions/nmfs-opensci/titlepage/images/corner-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jthomasmock/quarto-reporting/7dfe573d3363d81169ea967bb4b779ef92a98f68/_extensions/nmfs-opensci/titlepage/images/corner-bg.png -------------------------------------------------------------------------------- /_extensions/nmfs-opensci/titlepage/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jthomasmock/quarto-reporting/7dfe573d3363d81169ea967bb4b779ef92a98f68/_extensions/nmfs-opensci/titlepage/images/logo.png -------------------------------------------------------------------------------- /_extensions/nmfs-opensci/titlepage/images/nmfs-opensci-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jthomasmock/quarto-reporting/7dfe573d3363d81169ea967bb4b779ef92a98f68/_extensions/nmfs-opensci/titlepage/images/nmfs-opensci-logo.png -------------------------------------------------------------------------------- /_extensions/nmfs-opensci/titlepage/images/ringed-seal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jthomasmock/quarto-reporting/7dfe573d3363d81169ea967bb4b779ef92a98f68/_extensions/nmfs-opensci/titlepage/images/ringed-seal.png -------------------------------------------------------------------------------- /_extensions/nmfs-opensci/titlepage/pandoc.tex: -------------------------------------------------------------------------------- 1 | $if(highlighting-macros)$ 2 | $highlighting-macros$ 3 | $endif$ 4 | 5 | $tightlist.tex()$ 6 | $tables.tex()$ 7 | $graphics.tex()$ 8 | $citations.tex()$ 9 | 10 | $for(header-includes)$ 11 | $header-includes$ 12 | $endfor$ 13 | 14 | $if(bg-image)$ 15 | \usepackage{hyphenat} 16 | \usepackage{graphicx} 17 | \usepackage{wallpaper} % for the background image on title page 18 | \usepackage{geometry} 19 | $endif$ 20 | 21 | $if(great-wave)$ 22 | \usepackage{hyphenat} 23 | \usepackage{graphicx} 24 | \usepackage{geometry} 25 | \usepackage{afterpage} 26 | \usepackage{tikz} 27 | \usetikzlibrary{fadings} 28 | \usepackage[pagecolor=none]{pagecolor} 29 | $endif$ 30 | 31 | $if(vline)$ 32 | \usepackage{hyphenat} 33 | \usepackage{graphicx} 34 | $endif$ 35 | -------------------------------------------------------------------------------- /_extensions/nmfs-opensci/titlepage/theme.lua: -------------------------------------------------------------------------------- 1 | local function isEmpty(s) 2 | return s == nil or s == '' 3 | end 4 | 5 | function Meta(m) 6 | local theme_table = { 7 | ["academic-static"] = function (m) 8 | m['academic-static'] = true 9 | return m 10 | end, 11 | ["bg-image"] = function (m) 12 | m['bg-image'] = true 13 | if isEmpty(m['title-bg-image']) then 14 | m['title-bg-image'] = "corner-bg.png" 15 | end 16 | if isEmpty(m['title-bg-location']) then 17 | m['title-bg-location'] = "UL" 18 | end 19 | if isEmpty(m['title-bg-size']) then 20 | m['title-bg-size'] = 0.5 21 | end 22 | if isEmpty(m['titlepage-geometry']) then 23 | m['titlepage-geometry'] = pandoc.List({"top=3in", "bottom=1in", "right=1in", "left=1in"}) 24 | end 25 | return m 26 | end, 27 | ["classic-lined-static"] = function (m) 28 | m['classic-lined-static'] = true 29 | if isEmpty(m['logo']) then 30 | m['logo'] = "logo.png" 31 | end 32 | return m 33 | end, 34 | ["great-wave"] = function (m) 35 | m['great-wave'] = true 36 | if isEmpty(m['title-bg-image']) then 37 | m['title-bg-image'] = "TheGreatWaveoffKanagawa.jpeg" 38 | end 39 | if isEmpty(m['title-page-color']) then 40 | m['title-page-color'] = "F6D5A8" 41 | end 42 | return m 43 | end, 44 | ["multi-purpose"] = function (m) 45 | m['multi-purpose'] = true 46 | if isEmpty(m['logo']) then 47 | m['logo'] = "logo.png" 48 | end 49 | return m 50 | end, 51 | ["multi-purpose-static"] = function (m) 52 | m['multi-purpose-static'] = true 53 | if isEmpty(m['logo']) then 54 | m['logo'] = "logo.png" 55 | end 56 | return m 57 | end, 58 | ["thesis-static"] = function (m) 59 | m['thesis-static'] = true 60 | if isEmpty(m['logo']) then 61 | m['logo'] = "logo.png" 62 | end 63 | return m 64 | end, 65 | ["vline"] = function (m) 66 | m['vline'] = true 67 | if isEmpty(m['logo']) then 68 | m['logo'] = "logo.png" 69 | end 70 | return m 71 | end, 72 | ["vline-static"] = function (m) 73 | m['vline-static'] = true 74 | if isEmpty(m['logo']) then 75 | m['logo'] = "logo.png" 76 | end 77 | return m 78 | end 79 | } 80 | 81 | if not m.titlepage then 82 | m['titlepage'] = "vline" 83 | end 84 | choice = pandoc.utils.stringify(m.titlepage) 85 | if isEmpty(choice) then 86 | return theme_table["vline"](m) 87 | else 88 | return theme_table[choice](m) 89 | end 90 | end 91 | -------------------------------------------------------------------------------- /_extensions/quarto-journals/jss/_extension.yml: -------------------------------------------------------------------------------- 1 | title: Journal of Statistical Software Format 2 | author: Charles Teague 3 | version: 0.9.2 4 | contributes: 5 | format: 6 | common: 7 | filters: 8 | - jss.lua 9 | shortcodes: 10 | - quarto-ext/fancy-text 11 | knitr: 12 | opts_chunk: 13 | R.options: 14 | prompt: "R> " 15 | continue: "+" 16 | pdf: 17 | documentclass: jss 18 | shift-heading-level-by: -1 19 | tbl-cap-location: bottom 20 | highlight-style: none 21 | include-in-header: 22 | text: | 23 | \usepackage{orcidlink,thumbpdf,lmodern} 24 | 25 | \newcommand{\class}[1]{`\code{#1}'} 26 | \newcommand{\fct}[1]{\code{#1()}} 27 | fig-width: 4.9 # 6.125" * 0.8, as in template 28 | fig-height: 3.675 # 4.9 * 3:4 29 | template-partials: 30 | - "partials/title.tex" 31 | - "partials/before-body.tex" 32 | - "partials/_print-address.tex" 33 | - "partials/_print-author.tex" 34 | cite-method: natbib 35 | biblio-config: false 36 | format-resources: 37 | - jss.bst 38 | - jss.cls 39 | - jsslogo.jpg 40 | html: 41 | number-sections: true 42 | toc: true 43 | -------------------------------------------------------------------------------- /_extensions/quarto-journals/jss/_extensions/quarto-ext/fancy-text/_extension.yml: -------------------------------------------------------------------------------- 1 | title: Fancy Text 2 | author: "RStudio, PBC" 3 | version: 0.0.1 4 | contributes: 5 | shortcodes: 6 | - fancy-text.lua 7 | -------------------------------------------------------------------------------- /_extensions/quarto-journals/jss/_extensions/quarto-ext/fancy-text/fancy-text.lua: -------------------------------------------------------------------------------- 1 | -- shortcode that provides a nicely formatted 'LaTeX' string 2 | function latex() 3 | if quarto.doc.isFormat("pdf") then 4 | return pandoc.RawBlock('tex', '{\\LaTeX}') 5 | elseif quarto.doc.isFormat("html") then 6 | return pandoc.Math('InlineMath', "\\LaTeX") 7 | else 8 | return pandoc.Span('LaTeX') 9 | end 10 | end 11 | 12 | -- shortcode that provides a nicely formatted 'bibtex' string 13 | function bibtex() 14 | if quarto.doc.isFormat("pdf") then 15 | return pandoc.RawBlock('tex', '\\textsc{Bib}{\\TeX}') 16 | elseif quarto.doc.isFormat("html") then 17 | return pandoc.RawBlock('html', 'BibTEX') 18 | else 19 | return pandoc.Span('BibTeX') 20 | end 21 | end -------------------------------------------------------------------------------- /_extensions/quarto-journals/jss/jss.lua: -------------------------------------------------------------------------------- 1 | -- these classes, when placed on a span will be replaced 2 | -- with an identical LaTeX command for PDF output 3 | local texMappings = { 4 | "proglang", 5 | "pkg", 6 | "fct", 7 | "class" 8 | } 9 | 10 | -- layout and style 11 | local kTypes = pandoc.List({'article', 'codesnippet', 'bookreview', 'softwarereview'}) 12 | local kSuppress = pandoc.List({'title', 'headings', 'footer'}) 13 | 14 | local function setClassOption(meta, option) 15 | if meta['classoption'] == nil then 16 | meta['classoption'] = pandoc.List({}) 17 | end 18 | 19 | meta['classoption']:insert({ pandoc.Str(option)}) 20 | end 21 | 22 | local function printList(list) 23 | local result = '' 24 | local sep = '' 25 | for i,v in ipairs(list) do 26 | result = result .. sep .. v 27 | sep = ', ' 28 | end 29 | return result 30 | end 31 | 32 | return { 33 | { 34 | Span = function(el) 35 | -- read the span contents and emit correct output 36 | local contentStr = pandoc.utils.stringify(el.content) 37 | 38 | for i, mapping in ipairs(texMappings) do 39 | if #el.attr.classes == 1 and el.attr.classes:includes(mapping) then 40 | if quarto.doc.isFormat("pdf") then 41 | return pandoc.RawInline("tex", "\\" .. mapping .. "{" .. contentStr .. "}" ) 42 | else 43 | return pandoc.Code(contentStr); 44 | end 45 | end 46 | end 47 | end, 48 | Meta = function(meta) 49 | if quarto.doc.isFormat("pdf") then 50 | -- Authors output in the template uses a special separator 51 | -- to join authors (including wrapping to a new line) 52 | -- this computes the proper prefix and places it in the author metadata 53 | -- for use by the template 54 | local byAuthor = meta['by-author'] 55 | if byAuthor ~= nil then 56 | for i, author in ipairs(byAuthor) do 57 | local prefix = {pandoc.RawInline("tex ","")}; 58 | if i > 1 and i % 2 == 1 then 59 | prefix = {pandoc.RawInline("tex", "\\AND")} 60 | elseif i > 1 then 61 | prefix = {pandoc.RawInline("tex", "\\And")} 62 | end 63 | author['metadata']['latex-prefix'] = prefix 64 | end 65 | end 66 | 67 | -- read the journal settings 68 | local journal = meta['journal'] 69 | local type = nil 70 | local shortnames = nil 71 | local suppress = nil 72 | local jss = nil 73 | 74 | if journal ~= nil then 75 | type = journal['type'] 76 | shortnames = journal['cite-shortnames'] 77 | suppress = journal['suppress'] 78 | jss = journal['include-jss-layout'] 79 | end 80 | 81 | -- process the type 82 | if type ~= nil then 83 | type = pandoc.utils.stringify(type) 84 | if kTypes:includes(type) then 85 | setClassOption(meta, type) 86 | else 87 | error("Unknown type " .. type .. "\nPlease use one of " .. printList(kTypes)) 88 | end 89 | else 90 | setClassOption(meta, 'article') 91 | end 92 | 93 | -- process the citation variant 94 | if shortnames == true then 95 | setClassOption(meta, 'shortnames') 96 | end 97 | 98 | -- process the suppressed parts 99 | if suppress ~= nil then 100 | for i,v in ipairs(suppress) do 101 | s = pandoc.utils.stringify(v) 102 | if kSuppress:includes(s) then 103 | setClassOption(meta, 'no' .. s) 104 | else 105 | error("Unknown suppressed part " .. s .. "\nPlease use one of " .. printList(kSuppress)) 106 | end 107 | end 108 | end 109 | 110 | -- process switch for JSS layout 111 | if jss == false then 112 | setClassOption(meta, 'nojss') 113 | end 114 | end 115 | 116 | return meta 117 | end 118 | } 119 | } -------------------------------------------------------------------------------- /_extensions/quarto-journals/jss/jsslogo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jthomasmock/quarto-reporting/7dfe573d3363d81169ea967bb4b779ef92a98f68/_extensions/quarto-journals/jss/jsslogo.jpg -------------------------------------------------------------------------------- /_extensions/quarto-journals/jss/partials/_print-address.tex: -------------------------------------------------------------------------------- 1 | $it.name.literal$\\$if(it.affiliations/first)$$for(it.affiliations/first)$$if(it.department)$ 2 | 3 | $it.department$\\$endif$$if(it.address)$ 4 | 5 | $it.address$\\$endif$$if(it.city)$ 6 | 7 | $it.city$$endif$$if(it.state)$ $it.state$$endif$$if(it.country)$ $it.country$$endif$$if(it.city)$\\$elseif(it.state)$\\$elseif(it.country)$\\$endif$$endfor$$endif$$if(it.phone)$ 8 | 9 | Telephone: $it.phone$\\$endif$$if(it.fax)$ 10 | 11 | Fax: $it.fax$\\$endif$$if(it.email)$ 12 | 13 | E-mail: \email{$it.email$}\\$endif$$if(it.url)$ 14 | 15 | URL: \url{$it.url$}\\$endif$ 16 | 17 | \\~ 18 | 19 | -------------------------------------------------------------------------------- /_extensions/quarto-journals/jss/partials/_print-author.tex: -------------------------------------------------------------------------------- 1 | $if(it.metadata.latex-prefix)$ $it.metadata.latex-prefix$ $endif$$it.name.literal$$if(it.orcid)$~\orcidlink{$it.orcid$}$endif$$for(it.affiliations/first)$\\$it.name$$endfor$ -------------------------------------------------------------------------------- /_extensions/quarto-journals/jss/partials/before-body.tex: -------------------------------------------------------------------------------- 1 | $if(has-frontmatter)$ 2 | \frontmatter 3 | $endif$ 4 | $if(title)$ 5 | \maketitle 6 | $endif$ 7 | -------------------------------------------------------------------------------- /_extensions/quarto-journals/jss/partials/title.tex: -------------------------------------------------------------------------------- 1 | %% -- Article metainformation (author, title, ...) ----------------------------- 2 | 3 | %% Author information 4 | \author{$for(by-author)$$_print-author.tex()$$endfor$} 5 | \Plainauthor{$for(by-author)$$it.name.literal$$sep$, $endfor$} %% comma-separated 6 | 7 | \title{$title$} 8 | $if(title-plain)$ 9 | \Plaintitle{$title-plain$} %% without formatting 10 | $endif$ 11 | $if(short-title)$ 12 | \Shorttitle{$short-title$} %% a short title (if necessary) 13 | $endif$ 14 | 15 | %% an abstract and keywords 16 | $if(abstract)$ 17 | \Abstract{$abstract$} 18 | $endif$ 19 | 20 | %% at least one keyword must be supplied 21 | $if(keywords-formatted)$ 22 | \Keywords{$for(keywords-formatted)$$it$$sep$, $endfor$} 23 | $endif$ 24 | $if(keywords)$ 25 | \Plainkeywords{$for(keywords)$$it$$sep$, $endfor$} 26 | $endif$ 27 | 28 | %% publication information 29 | %% NOTE: Typically, this can be left commented and will be filled out by the technical editor 30 | %% \Volume{50} 31 | %% \Issue{9} 32 | %% \Month{June} 33 | %% \Year{2012} 34 | %% \Submitdate{2012-06-04} 35 | %% \Acceptdate{2012-06-04} 36 | %% \setcounter{page}{1} 37 | %% \Pages{1--xx} 38 | 39 | %% The address of (at least) one author should be given 40 | %% in the following format: 41 | $if(by-author)$ 42 | \Address{ 43 | $for(by-author)$$_print-address.tex()$$endfor$ 44 | } 45 | $endif$ 46 | -------------------------------------------------------------------------------- /_extensions/quarto-journals/plos/_extension.yml: -------------------------------------------------------------------------------- 1 | title: PLOS 2 | author: Christophe Dervieux 3 | version: 0.0.1 4 | contributes: 5 | formats: 6 | common: 7 | # define below YAML configuration common to all formats 8 | execute: 9 | echo: false 10 | crossref: 11 | fig-prefix: Fig 12 | eq-prefix: Eq 13 | callout-appearance: simple 14 | callout-icon: false 15 | # https://www.zotero.org/styles/?q=plos 16 | csl: https://www.zotero.org/styles/plos-one 17 | filters: 18 | - filter.lua 19 | pdf: 20 | keep-tex: true 21 | block-headings: false 22 | documentclass: article 23 | papersize: letter 24 | fontsize: 10pt 25 | has-frontmatter: false 26 | toc: false 27 | lof: false 28 | lot: false 29 | colorlinks: false 30 | geometry: 31 | - top=0.85in 32 | - left=2.75in 33 | - footskip=0.75in 34 | biblio-style: plos2015 35 | include-in-header: _preamble.tex 36 | template-partials: 37 | # Add here the partials your format is using 38 | - "partials/doc-class.tex" 39 | - "partials/before-body.tex" 40 | - "partials/_authors.tex" 41 | - "partials/_affiliations.tex" 42 | - "partials/title.tex" 43 | - "partials/before-bib.tex" 44 | - "partials/biblio.tex" 45 | # Using some package that may require pdflatex 46 | pdf-engine: pdflatex 47 | # biblatex is not supported 48 | cite-method: natbib 49 | # number is required for plos2015.bst style 50 | # and square,comma for correct guideline style 51 | # https://tex.stackexchange.com/questions/376662/how-do-i-create-plosone-bib-references 52 | natbiboptions: "numbers,square,comma" 53 | # tcolorbox is not working ok with breakable for code blocks so deactivate this Quarto feature 54 | # https://github.com/quarto-journals/article-format-template/issues/2 55 | code-block-border-left: false 56 | format-resources: 57 | - plos2015.bst 58 | html: 59 | # define default configuration for the html version of your format 60 | number-sections: true 61 | toc: true 62 | theme: custom.scss 63 | -------------------------------------------------------------------------------- /_extensions/quarto-journals/plos/_preamble.tex: -------------------------------------------------------------------------------- 1 | % Use adjustwidth environment to exceed column width (see example table in text) 2 | \usepackage{changepage} 3 | 4 | % marvosym package for additional characters 5 | \usepackage{marvosym} 6 | 7 | % cite package, to clean up citations in the main text. Do not remove. 8 | % Using natbib instead 9 | % \usepackage{cite} 10 | 11 | % Use nameref to cite supporting information files (see Supporting Information section for more info) 12 | \usepackage{nameref,hyperref} 13 | 14 | % line numbers 15 | \usepackage[right]{lineno} 16 | 17 | % ligatures disabled 18 | \usepackage{microtype} 19 | \DisableLigatures[f]{encoding = *, family = * } 20 | 21 | % create "+" rule type for thick vertical lines 22 | \newcolumntype{+}{!{\vrule width 2pt}} 23 | 24 | % create \thickcline for thick horizontal lines of variable length 25 | \newlength\savedwidth 26 | \newcommand\thickcline[1]{% 27 | \noalign{\global\savedwidth\arrayrulewidth\global\arrayrulewidth 2pt}% 28 | \cline{#1}% 29 | \noalign{\vskip\arrayrulewidth}% 30 | \noalign{\global\arrayrulewidth\savedwidth}% 31 | } 32 | 33 | % \thickhline command for thick horizontal lines that span the table 34 | \newcommand\thickhline{\noalign{\global\savedwidth\arrayrulewidth\global\arrayrulewidth 2pt}% 35 | \hline 36 | \noalign{\global\arrayrulewidth\savedwidth}} 37 | 38 | % Text layout 39 | \raggedright 40 | \setlength{\parindent}{0.5cm} 41 | \textwidth 5.25in 42 | \textheight 8.75in 43 | 44 | % Bold the 'Figure #' in the caption and separate it from the title/caption with a period 45 | % Captions will be left justified 46 | \usepackage[aboveskip=1pt,labelfont=bf,labelsep=period,justification=raggedright,singlelinecheck=off]{caption} 47 | \renewcommand{\figurename}{Fig} 48 | 49 | % Remove brackets from numbering in List of References 50 | \makeatletter 51 | \renewcommand{\@biblabel}[1]{\quad#1.} 52 | \makeatother 53 | 54 | % Header and Footer with logo 55 | \usepackage{lastpage,fancyhdr} 56 | \usepackage{epstopdf} 57 | %\pagestyle{myheadings} 58 | \pagestyle{fancy} 59 | \fancyhf{} 60 | %\setlength{\headheight}{27.023pt} 61 | %\lhead{\includegraphics[width=2.0in]{PLOS-submission.eps}} 62 | \rfoot{\thepage/\pageref{LastPage}} 63 | \renewcommand{\headrulewidth}{0pt} 64 | \renewcommand{\footrule}{\hrule height 2pt \vspace{2mm}} 65 | \fancyheadoffset[L]{2.25in} 66 | \fancyfootoffset[L]{2.25in} 67 | \lfoot{\today} -------------------------------------------------------------------------------- /_extensions/quarto-journals/plos/filter.lua: -------------------------------------------------------------------------------- 1 | 2 | 3 | -- these classes, when placed on a span will be replaced 4 | -- with an identical LaTeX command for PDF output 5 | local texMappings = { 6 | "nameref" 7 | } 8 | 9 | return { 10 | { 11 | Span = function(el) 12 | local contentStr = pandoc.utils.stringify(el.content) 13 | for i, mapping in ipairs(texMappings) do 14 | if #el.attr.classes == 1 and el.attr.classes:includes(mapping) then 15 | if quarto.doc.isFormat("pdf") then 16 | return pandoc.RawInline("tex", "\\" .. mapping .. "{" .. contentStr .. "}" ) 17 | else 18 | el.content = pandoc.Str( conentStr) 19 | return el 20 | end 21 | end 22 | end 23 | end, 24 | Div = function(div) 25 | -- Special treatment for supplementary material 26 | if (div.classes:includes("supp")) then 27 | if quarto.doc.isFormat("pdf") then 28 | local headerNum = 0 29 | local header = pandoc.List() 30 | local labelId 31 | local paraNum = 0 32 | local para = pandoc.List() 33 | -- First Take element 34 | div.content:walk { 35 | Header = function(el) 36 | if (headerNum > 0) then 37 | error('Only one header can be set in supplementary section divs') 38 | end 39 | --[[ 40 | el.level = 4 41 | headerNum = headerNum + 1 42 | header:insert(el) 43 | ]] 44 | el.content:insert(1, pandoc.RawInline('tex', '\\paragraph*{')) 45 | el.content:insert(pandoc.RawInline('tex', '}')) 46 | header:extend(el.content) 47 | labelId = el.identifier 48 | -- Remove header 49 | return {} 50 | end, 51 | Para = function(el) 52 | if (paraNum == 0) then 53 | -- first paragraph is title sentence 54 | if (el.content and el.content[1].t ~= "Strong") then 55 | el.content = pandoc.Inlines(pandoc.Strong(el.content)) 56 | end 57 | el.content:insert(1, pandoc.RawInline('tex', '{')) 58 | el.content:insert(pandoc.RawInline('tex', '}')) 59 | elseif (paraNum == 1) then 60 | -- ok 61 | else 62 | error('Only two paragraph are allowed in supplementary section div') 63 | end 64 | 65 | para:insert(el) 66 | paraNum = paraNum + 1 67 | -- remove Para 68 | return {} 69 | end 70 | } 71 | -- Build the new paragraph content 72 | header:extend({pandoc.Str("\n"), pandoc.RawInline("tex", "\\label{"..labelId.."}"), pandoc.Str("\n")}) 73 | para = pandoc.utils.blocks_to_inlines(para, {pandoc.Space()}) 74 | header:extend(para) 75 | -- Return the new para in place of the Div 76 | return pandoc.Para(header) 77 | end 78 | end 79 | end, 80 | } 81 | } -------------------------------------------------------------------------------- /_extensions/quarto-journals/plos/partials/_affiliations.tex: -------------------------------------------------------------------------------- 1 | \textbf{$it.number$} $if(it.name)$$it.name$, $endif$$if(it.department)$$it.department$, $endif$$if(it.address)$$it.address$, $endif$$if(it.city)$$it.city$, $endif$$if(it.postal-code)$$it.postal-code$, $endif$$if(it.region)$$it.region$, $endif$$if(it.country)$$it.country$, $endif$$if(it.url)$$it.url$, $endif$ 2 | -------------------------------------------------------------------------------- /_extensions/quarto-journals/plos/partials/_authors.tex: -------------------------------------------------------------------------------- 1 | $it.name.literal$\textsuperscript{$for(it.affiliations)$$it.number$$sep$,$endfor$$if(it.attributes.equal-contributor)$\Yinyang$endif$$if(it.attributes.corresponding)$*$endif$$if(it.attributes.deceased)$\dag$endif$$if(it.metadata.group)$\textpilcrow$endif$} 2 | -------------------------------------------------------------------------------- /_extensions/quarto-journals/plos/partials/before-bib.tex: -------------------------------------------------------------------------------- 1 | $-- Placed after the content of the document, but before the bibliography. 2 | $-- %%%% TODO %%%%% 3 | $-- Use it if you need to insert content at this specific place of the main Pandoc's template. Otherwise, remove it. 4 | $-- %%%%%%%%%%%%%%% 5 | 6 | \nolinenumbers -------------------------------------------------------------------------------- /_extensions/quarto-journals/plos/partials/before-body.tex: -------------------------------------------------------------------------------- 1 | $-- PLOS insert title and author within the main body 2 | $-- Use this template to insert the necessary pieces before any content provided in .qmd file 3 | \vspace*{0.2in} 4 | 5 | % Title must be 250 characters or less. 6 | \begin{flushleft} 7 | {\Large 8 | \textbf\newline{$title$} % Please use "sentence case" for title and headings (capitalize only the first word in a title (or heading), the first word in a subtitle (or subheading), and any proper nouns). 9 | } 10 | \newline 11 | \\ 12 | % Insert author names, affiliations and corresponding author email (do not include titles, positions, or degrees). 13 | $by-author:_authors.tex()[, ]$ 14 | \\ 15 | \bigskip 16 | $by-affiliation:_affiliations.tex()[\\ ]$ 17 | \bigskip 18 | 19 | % Insert additional author notes using the symbols described below. Insert symbol callouts after author names as necessary. 20 | % 21 | % Remove or comment out the author notes below if they aren't used. 22 | % 23 | % Primary Equal Contribution Note 24 | \Yinyang $if(author-notes.equal-contributor)$$author-notes.equal-contributor$$else$These authors contributed equally to this work.$endif$ 25 | 26 | % Additional Equal Contribution Note 27 | % Also use this double-dagger symbol for special authorship notes, such as senior authorship. 28 | %\ddag These authors also contributed equally to this work. 29 | 30 | % Current address notes 31 | \textcurrency Current Address: Dept/Program/Center, Institution Name, City, State, Country % change symbol to "\textcurrency a" if more than one current address note 32 | % \textcurrency b Insert second current address 33 | % \textcurrency c Insert third current address 34 | 35 | % Deceased author note 36 | \dag $if(author-notes.deceased)$$author-notes.deceased$$else$Deceased$endif$ 37 | 38 | % Group/Consortium Author Note 39 | \textpilcrow $if(author-notes.group)$$author-notes.group$$else$Membership list can be found in the Acknowledgments section.$endif$ 40 | 41 | % Use the asterisk to denote corresponding authorship and provide email address in note below. 42 | $for(by-author)$ 43 | $if(by-author.attributes.corresponding)$ 44 | * $by-author.email$ 45 | $endif$ 46 | $endfor$ 47 | 48 | \end{flushleft} 49 | 50 | $if(abstract)$ 51 | \section*{Abstract} 52 | $abstract$ 53 | $endif$ 54 | 55 | $if(author-summary)$ 56 | \section*{Author summary} 57 | $author-summary$ 58 | $endif$ 59 | 60 | \linenumbers -------------------------------------------------------------------------------- /_extensions/quarto-journals/plos/partials/biblio.tex: -------------------------------------------------------------------------------- 1 | $-- Necessary content to creates the bibliography. 2 | $-- 3 | $-- %%%% TODO %%%%% 4 | $-- Customize is needed, otherwise remove this partials to use Quarto default one 5 | $-- %%%%%%%%%%%%%%%% 6 | $if(natbib)$ 7 | $if(bibliography)$ 8 | $if(biblio-title)$ 9 | $if(has-chapters)$ 10 | \renewcommand\bibname{$biblio-title$} 11 | $else$ 12 | \renewcommand\refname{$biblio-title$} 13 | $endif$ 14 | $endif$ 15 | \bibliography{$for(bibliography)$$bibliography$$sep$,$endfor$} 16 | $endif$ 17 | $endif$ -------------------------------------------------------------------------------- /_extensions/quarto-journals/plos/partials/doc-class.tex: -------------------------------------------------------------------------------- 1 | $-- Contains the document class declaration and options. 2 | $-- By default we provide the identical document class that Pandoc provides, implementing many features. 3 | $-- If provide this partial in your format, you will need to either implement support for the usaul document class options in addition to other one 4 | $-- or be aware that pandoc supported options (e.g. font-size, paper-size, classoption, etc…) will not be supported in your format. 5 | $-- 6 | $-- %%%% TODO %%%%% 7 | $-- Customize is needed, otherwise remove this partials to use Quarto default one 8 | $-- %%%%%%%%%%%%%%%% 9 | 10 | 11 | \PassOptionsToPackage{table}{xcolor} 12 | 13 | \documentclass[ 14 | $if(fontsize)$ 15 | $fontsize$, 16 | $endif$ 17 | $if(papersize)$ 18 | $papersize$paper, 19 | $endif$ 20 | $if(beamer)$ 21 | ignorenonframetext, 22 | $if(handout)$ 23 | handout, 24 | $endif$ 25 | $if(aspectratio)$ 26 | aspectratio=$aspectratio$, 27 | $endif$ 28 | $endif$ 29 | $for(classoption)$ 30 | $classoption$$sep$, 31 | $endfor$ 32 | ]{$documentclass$} -------------------------------------------------------------------------------- /_extensions/quarto-journals/plos/partials/title.tex: -------------------------------------------------------------------------------- 1 | $-- Provides configuration of document metadata for writing the title block. 2 | $-- Note that in addition to these templates and partials, Quarto will also make normalized authors and affiliations data available to the template, 3 | $-- making is easy to write custom title blocks against a standard schema. 4 | $-- 5 | $-- %%%% TODO %%%%% 6 | $-- Customize is needed, otherwise remove this partials to use Quarto default one 7 | $-- %%%%%%%%%%%%%%%% 8 | 9 | $-- PLOS does not add title outside of document body. We make this template empty -------------------------------------------------------------------------------- /_publish.yml: -------------------------------------------------------------------------------- 1 | - source: quarto-reporting.qmd 2 | quarto-pub: 3 | - id: 9b20b51a-e0cd-4c71-b679-59b9b30eb7b8 4 | url: 'https://quartopub.com/sites/thomasmock/reports-presentations' 5 | -------------------------------------------------------------------------------- /examples/.gitignore: -------------------------------------------------------------------------------- 1 | /.quarto/ 2 | -------------------------------------------------------------------------------- /examples/330px-BostonTerrier001.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jthomasmock/quarto-reporting/7dfe573d3363d81169ea967bb4b779ef92a98f68/examples/330px-BostonTerrier001.jpeg -------------------------------------------------------------------------------- /examples/330px-Boston_Terrier_Eden_Forever.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jthomasmock/quarto-reporting/7dfe573d3363d81169ea967bb4b779ef92a98f68/examples/330px-Boston_Terrier_Eden_Forever.jpeg -------------------------------------------------------------------------------- /examples/330px-Boston_Terrier_male.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jthomasmock/quarto-reporting/7dfe573d3363d81169ea967bb4b779ef92a98f68/examples/330px-Boston_Terrier_male.jpeg -------------------------------------------------------------------------------- /examples/Terrier_Seated_(Boston_Public_Library).jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jthomasmock/quarto-reporting/7dfe573d3363d81169ea967bb4b779ef92a98f68/examples/Terrier_Seated_(Boston_Public_Library).jpeg -------------------------------------------------------------------------------- /examples/_extensions/nmfs-opensci/titlepage/_academic-static_before-body.tex: -------------------------------------------------------------------------------- 1 | $if(has-frontmatter)$ 2 | \begin{frontmatter} 3 | \begin{titlepage} 4 | $_academic-static_titlepage.tex()$ 5 | \end{titlepage} 6 | \end{frontmatter} 7 | $else$ 8 | \begin{titlepage} 9 | $_academic-static_titlepage.tex()$ 10 | \end{titlepage} 11 | $endif$ 12 | -------------------------------------------------------------------------------- /examples/_extensions/nmfs-opensci/titlepage/_academic-static_titlepage.tex: -------------------------------------------------------------------------------- 1 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2 | % Academic Title Page 3 | % LaTeX Template 4 | % Version 2.0 (17/7/17) 5 | % 6 | % This template was downloaded from: 7 | % http://www.LaTeXTemplates.com 8 | % 9 | % Original author: 10 | % WikiBooks (LaTeX - Title Creation) with modifications by: 11 | % Vel (vel@latextemplates.com) 12 | % 13 | % License: 14 | % CC BY-NC-SA 3.0 (http://creativecommons.org/licenses/by-nc-sa/3.0/) 15 | % 16 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 17 | 18 | 19 | \newcommand{\HRule}{\rule{\linewidth}{0.5mm}} % Defines a new command for horizontal lines, change thickness here 20 | 21 | \center % Centre everything on the page 22 | 23 | %------------------------------------------------ 24 | % Headings 25 | %------------------------------------------------ 26 | 27 | \textsc{\LARGE Institution Name}\\[1.5cm] % Main heading such as the name of your university/college 28 | 29 | \textsc{\Large Major Heading}\\[0.5cm] % Major heading such as course name 30 | 31 | \textsc{\large Minor Heading}\\[0.5cm] % Minor heading such as course title 32 | 33 | %------------------------------------------------ 34 | % Title 35 | %------------------------------------------------ 36 | 37 | \HRule\\[0.4cm] 38 | 39 | {\huge\bfseries An Unnecessarily Convoluted Academic Title}\\[0.4cm] % Title of your document 40 | 41 | \HRule\\[1.5cm] 42 | 43 | %------------------------------------------------ 44 | % Author(s) 45 | %------------------------------------------------ 46 | 47 | \begin{minipage}{0.4\textwidth} 48 | \begin{flushleft} 49 | \large 50 | \textit{Author}\\ 51 | B.J. \textsc{Blazkowicz} % Your name 52 | \end{flushleft} 53 | \end{minipage} 54 | ~ 55 | \begin{minipage}{0.4\textwidth} 56 | \begin{flushright} 57 | \large 58 | \textit{Supervisor}\\ 59 | Dr. Caroline \textsc{Becker} % Supervisor's name 60 | \end{flushright} 61 | \end{minipage} 62 | 63 | % If you don't want a supervisor, uncomment the two lines below and comment the code above 64 | %{\large\textit{Author}}\\ 65 | %John \textsc{Smith} % Your name 66 | 67 | %------------------------------------------------ 68 | % Date 69 | %------------------------------------------------ 70 | 71 | \vfill\vfill\vfill % Position the date 3/4 down the remaining page 72 | 73 | {\large\today} % Date, change the \today to a set date if you want to be precise 74 | 75 | %------------------------------------------------ 76 | % Logo 77 | %------------------------------------------------ 78 | 79 | %\vfill\vfill 80 | %\includegraphics[width=0.2\textwidth]{placeholder.jpg}\\[1cm] % Include a department/university logo - this will require the graphicx package 81 | 82 | %---------------------------------------------------------------------------------------- 83 | 84 | \vfill % Push the date up 1/4 of the remaining page 85 | 86 | 87 | -------------------------------------------------------------------------------- /examples/_extensions/nmfs-opensci/titlepage/_bg-image_before-body.tex: -------------------------------------------------------------------------------- 1 | $if(has-frontmatter)$ 2 | \begin{frontmatter} 3 | \begin{titlepage} 4 | $_bg-image_titlepage.tex()$ 5 | \end{titlepage} 6 | \end{frontmatter} 7 | $else$ 8 | \begin{titlepage} 9 | $_bg-image_titlepage.tex()$ 10 | \end{titlepage} 11 | $endif$ 12 | -------------------------------------------------------------------------------- /examples/_extensions/nmfs-opensci/titlepage/_bg-image_titlepage.tex: -------------------------------------------------------------------------------- 1 | % This is a combination of Pandoc templating and LaTeX 2 | % Pandoc templating https://pandoc.org/MANUAL.html#templates 3 | % See the README for help 4 | 5 | $if(titlepage-geometry)$ 6 | \newgeometry{$for(titlepage-geometry)$$titlepage-geometry$$sep$,$endfor$} 7 | $endif$ 8 | \begin{minipage}[b][\textheight][s]{\textwidth} 9 | \raggedright 10 | 11 | % background image 12 | $if(title-bg-image)$ 13 | \This$if(title-bg-location)$$title-bg-location$$else$UL$endif$CornerWallPaper{$if(title-bg-size)$$title-bg-size$$else$0.5$endif$}{$title-bg-image$} 14 | $endif$ 15 | 16 | % Title and subtitle 17 | {\huge\bfseries\nohyphens{$title$}}\\[1\baselineskip] 18 | $if(subtitle)${\large{$subtitle$}}\\[4\baselineskip]$endif$ 19 | 20 | % Authors 21 | % This hairy bit of code is just to get "and" between the last 2 22 | % authors. See below if you don't need that 23 | $if(by-author/allbutlast)$ 24 | $for(by-author/allbutlast)$ 25 | {\large{$by-author.name.literal$}}$for(by-author.affiliations)${\textsuperscript{$it.number$}}$sep$\textsuperscript{,}$endfor$% 26 | $if(by-author.email)$% 27 | $if(by-author.affiliations)$\textsuperscript{,}$endif$% 28 | {\textsuperscript{*}}% 29 | $endif$% 30 | $sep$, 31 | $endfor$ 32 | $for(by-author/last)$% 33 | { and \large{$by-author.name.literal$}}% 34 | $for(by-author.affiliations)${\textsuperscript{$it.number$}}$sep$\textsuperscript{,}% 35 | $endfor$% 36 | $if(by-author.email)$% 37 | $if(by-author.affiliations)$\textsuperscript{,}$endif$% 38 | {\textsuperscript{*}}% 39 | $endif$% 40 | $endfor$ 41 | $else$ 42 | $for(by-author/last)$% 43 | {\large{$by-author.name.literal$}}% 44 | $for(by-author.affiliations)$% 45 | {\textsuperscript{$it.number$}}$sep$\textsuperscript{,}$endfor$% 46 | $if(by-author.email)$% 47 | $if(by-author.affiliations)$\textsuperscript{,}$endif$% 48 | {\textsuperscript{,*}}% 49 | $endif$% 50 | $endfor$ 51 | $endif$ 52 | 53 | % This is how to do it if you don't need the "and" 54 | $if(false)$ 55 | $for(by-author)$ 56 | {$by-author.name.literal$}$for(by-author.affiliations)${\textsuperscript{$it.number$}}$sep${\textsuperscript{,}}$endfor$$if(by-author.email)$,{\textsuperscript{*}}$endif$$sep$, 57 | $endfor$ 58 | $endif$ 59 | 60 | %%%%%% Affiliations 61 | \vspace{2\baselineskip} 62 | 63 | \hangindent=1em 64 | \hangafter=1 65 | $for(by-affiliation)$% 66 | {$it.number$}.~$if(by-affiliation.name)${$it.name$}$endif$% 67 | $if(by-affiliation.department)$% 68 | $if(by-affiliation.name)$, $endif$% 69 | {$it.department$}% 70 | $endif$% 71 | $if(by-affiliation.address)$% 72 | $if(by-affiliation.name)$, $else$$if(by-affiliation.department)$, $endif$$endif$% 73 | {$it.address$}% 74 | $endif$% 75 | $sep$\par\hangindent=1em\hangafter=1% 76 | $endfor$ 77 | 78 | %%%%%% Correspondence 79 | \vspace{1\baselineskip} 80 | 81 | $for(by-author)$ 82 | $if(by-author.email)$ 83 | * \textit{Correspondence:}~$by-author.name.literal$~$by-author.email$ 84 | $endif$ 85 | $endfor$ 86 | 87 | %use \vfill instead to get the space to fill flexibly 88 | %\vspace{0.25\textheight} % Whitespace between the title block and the publisher 89 | 90 | \vfill 91 | 92 | %%%%%% Cover image 93 | $if(cover)$\includegraphics[width=4cm]{$cover$}$endif$ 94 | 95 | % Whitespace between the title block and the tagline 96 | \vspace{1\baselineskip} 97 | 98 | %%%%%% Tagline at bottom 99 | University Technical Series\newline 100 | Open Source Publication for All\newline 101 | Amtmandens Allé 15\newline 102 | 6950 Rindum Ringkøbing-Skjern\newline 103 | DENMARK\newline 104 | December 2025 105 | 106 | \end{minipage} 107 | $if(titlepage-geometry)$ 108 | \restoregeometry 109 | $endif$ 110 | -------------------------------------------------------------------------------- /examples/_extensions/nmfs-opensci/titlepage/_classic-lined-static_before-body.tex: -------------------------------------------------------------------------------- 1 | $if(has-frontmatter)$ 2 | \begin{frontmatter} 3 | \begin{titlepage} 4 | $_classic-lined-static_titlepage.tex()$ 5 | \end{titlepage} 6 | \end{frontmatter} 7 | $else$ 8 | \begin{titlepage} 9 | $_classic-lined-static_titlepage.tex()$ 10 | \end{titlepage} 11 | $endif$ 12 | -------------------------------------------------------------------------------- /examples/_extensions/nmfs-opensci/titlepage/_classic-lined-static_titlepage.tex: -------------------------------------------------------------------------------- 1 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2 | % Classic-Lined Title Page 3 | % LaTeX Template 4 | % Version 2.0 (17/7/17) 5 | % 6 | % This template was downloaded from: 7 | % http://www.LaTeXTemplates.com 8 | % 9 | % Original author: 10 | % WikiBooks (LaTeX - Title Creation) with modifications by: 11 | % Vel (vel@latextemplates.com) 12 | % 13 | % License: 14 | % CC BY-NC-SA 3.0 (http://creativecommons.org/licenses/by-nc-sa/3.0/) 15 | % 16 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 17 | 18 | 19 | \centering % Centre everything on the title page 20 | 21 | %------------------------------------------------ 22 | % Top rules 23 | %------------------------------------------------ 24 | 25 | \rule{\textwidth}{1pt} % Thick horizontal rule 26 | 27 | \vspace{2pt}\vspace{-\baselineskip} % Whitespace between rules 28 | 29 | \rule{\textwidth}{0.4pt} % Thin horizontal rule 30 | 31 | \vspace{0.1\textheight} % Whitespace between the top rules and title 32 | 33 | %------------------------------------------------ 34 | % Title 35 | %------------------------------------------------ 36 | 37 | \textcolor{red}{ % Red font color 38 | {\Huge THE BIG BOOK}\\[0.5\baselineskip] % Title line 1 39 | {\Large OF}\\[0.5\baselineskip] % Title line 2 40 | {\Huge \LaTeX~Templates} % Title line 3 41 | } 42 | 43 | \vspace{0.025\textheight} % Whitespace between the title and short horizontal rule 44 | 45 | \rule{0.3\textwidth}{0.4pt} % Short horizontal rule under the title 46 | 47 | \vspace{0.1\textheight} % Whitespace between the thin horizontal rule and the author name 48 | 49 | %------------------------------------------------ 50 | % Author 51 | %------------------------------------------------ 52 | 53 | {\Large \textsc{gordon freeman}} % Author name 54 | 55 | \vfill % Whitespace between the author name and publisher 56 | 57 | %------------------------------------------------ 58 | % Publisher 59 | %------------------------------------------------ 60 | 61 | \includegraphics[width=0.2\textwidth]{logo.png}\\[1cm] 62 | 63 | {\large\textsc{the publisher}} % Publisher 64 | 65 | \vspace{0.1\textheight} % Whitespace under the publisher text 66 | 67 | %------------------------------------------------ 68 | % Bottom rules 69 | %------------------------------------------------ 70 | 71 | \rule{\textwidth}{0.4pt} % Thin horizontal rule 72 | 73 | \vspace{2pt}\vspace{-\baselineskip} % Whitespace between rules 74 | 75 | \rule{\textwidth}{1pt} % Thick horizontal rule 76 | 77 | 78 | -------------------------------------------------------------------------------- /examples/_extensions/nmfs-opensci/titlepage/_extension.yml: -------------------------------------------------------------------------------- 1 | title: titlepage 2 | author: Eli Holmes, Mickaël Canouil 3 | version: 0.2.1 4 | contributes: 5 | format: 6 | pdf: 7 | filters: 8 | - theme.lua 9 | template-partials: 10 | - "_academic-static_before-body.tex" 11 | - "_academic-static_titlepage.tex" 12 | - "_bg-image_before-body.tex" 13 | - "_bg-image_titlepage.tex" 14 | - "_classic-lined-static_before-body.tex" 15 | - "_classic-lined-static_titlepage.tex" 16 | - "_great-wave_before-body.tex" 17 | - "_great-wave_cover.tex" 18 | - "_great-wave_titlepage.tex" 19 | - "_multi-purpose-static_before-body.tex" 20 | - "_multi-purpose-static_titlepage.tex" 21 | - "_multi-purpose_before-body.tex" 22 | - "_multi-purpose_titlepage.tex" 23 | - "_thesis-static_before-body.tex" 24 | - "_thesis-static_titlepage.tex" 25 | - "_vline_before-body.tex" 26 | - "_vline_titlepage.tex" 27 | - "_vline-static_before-body.tex" 28 | - "_vline-static_titlepage.tex" 29 | - "before-body.tex" 30 | - "pandoc.tex" 31 | format-resources: 32 | - "images/TheGreatWaveoffKanagawa.jpeg" 33 | - "images/corner-bg.png" 34 | - "images/logo.png" 35 | - "images/nmfs-opensci-logo.png" 36 | - "images/ringed-seal.png" 37 | -------------------------------------------------------------------------------- /examples/_extensions/nmfs-opensci/titlepage/_great-wave_before-body.tex: -------------------------------------------------------------------------------- 1 | $if(has-frontmatter)$ 2 | \begin{frontmatter} 3 | \begin{titlepage} 4 | $_great-wave_cover.tex()$ 5 | % for some reason it insists on putting a black page 6 | % between cover and title if I have this above \begin{titlepage} 7 | $_great-wave_titlepage.tex()$ 8 | \end{titlepage} 9 | \setcounter{page}{1} 10 | \end{frontmatter} 11 | $else$ 12 | \begin{titlepage} 13 | $_great-wave_cover.tex()$ 14 | $_great-wave_titlepage.tex()$ 15 | \end{titlepage} 16 | $endif$ 17 | -------------------------------------------------------------------------------- /examples/_extensions/nmfs-opensci/titlepage/_great-wave_cover.tex: -------------------------------------------------------------------------------- 1 | % This is a combination of Pandoc templating and LaTeX 2 | % Pandoc templating https://pandoc.org/MANUAL.html#templates 3 | % See the README for help 4 | % This template is based on a post by Arun Debray to tex.stackoverflow 5 | % https://tex.stackexchange.com/posts/554962/revisions 6 | 7 | \newgeometry{left=1in, right=1in, top=2in, bottom=0in} 8 | \begin{minipage}[b][\textheight][s]{\textwidth} 9 | 10 | % Change title fonts here 11 | \DeclareFixedFont{\titlefont}{T1}{ppl}{b}{}{0.6in} 12 | \DeclareFixedFont{\subtitlefont}{T1}{ppl}{b}{it}{0.2in} 13 | 14 | % Page color 15 | \definecolor{pgcolor}{HTML}{$title-page-color$} 16 | \pagecolor{pgcolor}\afterpage{\nopagecolor} 17 | 18 | \thispagestyle{empty} 19 | \begin{flushright} 20 | \titlefont $title$\\ 21 | \subtitlefont $subtitle$ 22 | \end{flushright} 23 | \vfill 24 | \begin{center} 25 | \begin{tikzpicture} 26 | \node[scope fading=north, inner sep=0pt, outer sep=0pt]{ 27 | \makebox[\textwidth]{\includegraphics[width=\paperwidth]{$title-bg-image$}} 28 | }; 29 | \end{tikzpicture} 30 | \end{center} 31 | 32 | \end{minipage}% 33 | \clearpage 34 | \restoregeometry 35 | -------------------------------------------------------------------------------- /examples/_extensions/nmfs-opensci/titlepage/_great-wave_titlepage.tex: -------------------------------------------------------------------------------- 1 | % This is a combination of Pandoc templating and LaTeX 2 | % Pandoc templating https://pandoc.org/MANUAL.html#templates 3 | % See the README for help 4 | 5 | \raggedleft % left align the title page 6 | \thispagestyle{empty} 7 | \rule{1pt}{\textheight} % Vertical line 8 | \hspace{0.05\textwidth} % Whitespace between the vertical line and title page text 9 | % Adjust num before \textwidth to move the block left or right 10 | \begin{minipage}[b][\textheight][s]{0.85\textwidth} 11 | 12 | \raggedright 13 | % Title and subtitle 14 | {\huge\bfseries\nohyphens{$title$}}\\[1.25\baselineskip] 15 | $if(subtitle)${\large\textit{$subtitle$}}\\[4\baselineskip]$endif$ 16 | 17 | % Abstract 18 | $if(abstract)$% 19 | \begin{flushright}% 20 | {{$abstract$}}\\[4\baselineskip]% 21 | \end{flushright}% 22 | $endif$ 23 | 24 | % Authors 25 | % This hairy bit of code is just to get "and" between the last 2 26 | % authors. See below if you don't need that 27 | $if(by-author/allbutlast)$ 28 | $for(by-author/allbutlast)$ 29 | {\large{$by-author.name.literal$}}$for(by-author.affiliations)${\textsuperscript{$it.number$}}$sep$\textsuperscript{,}$endfor$% 30 | $if(by-author.email)$% 31 | $if(by-author.affiliations)$\textsuperscript{,}$endif$% 32 | {\textsuperscript{*}}% 33 | $endif$% 34 | $sep$, 35 | $endfor$ 36 | $for(by-author/last)$% 37 | { and \large{$by-author.name.literal$}}% 38 | $for(by-author.affiliations)${\textsuperscript{$it.number$}}$sep$\textsuperscript{,}% 39 | $endfor$% 40 | $if(by-author.email)$% 41 | $if(by-author.affiliations)$\textsuperscript{,}$endif$% 42 | {\textsuperscript{*}}% 43 | $endif$% 44 | $endfor$ 45 | $else$ 46 | $for(by-author/last)$% 47 | {\large{$by-author.name.literal$}}% 48 | $for(by-author.affiliations)$% 49 | {\textsuperscript{$it.number$}}$sep$\textsuperscript{,}$endfor$% 50 | $if(by-author.email)$% 51 | $if(by-author.affiliations)$\textsuperscript{,}$endif$% 52 | {\textsuperscript{,*}}% 53 | $endif$% 54 | $endfor$ 55 | $endif$ 56 | 57 | % This is how to do it if you don't need the "and" 58 | $if(false)$% 59 | $for(by-author)$% 60 | {$by-author.name.literal$}% 61 | $for(by-author.affiliations)$% 62 | {\textsuperscript{$it.number$}}$sep${\textsuperscript{,}}% 63 | $endfor$% 64 | $if(by-author.email)$,{\textsuperscript{*}}% 65 | $endif$% 66 | $sep$, % 67 | $endfor$% 68 | $endif$ 69 | 70 | %%%%%% Affiliations 71 | \vspace{2\baselineskip} 72 | 73 | \hangindent=1em 74 | \hangafter=1 75 | $for(by-affiliation)$% 76 | {$it.number$}.~$if(by-affiliation.name)${$it.name$}$endif$% 77 | $if(by-affiliation.department)$% 78 | $if(by-affiliation.name)$, $endif$% 79 | {$it.department$}% 80 | $endif$% 81 | $if(by-affiliation.address)$% 82 | $if(by-affiliation.name)$, $else$$if(by-affiliation.department)$, $endif$$endif$% 83 | {$it.address$}% 84 | $endif$% 85 | $sep$\par\hangindent=1em\hangafter=1% 86 | $endfor$ 87 | 88 | %%%%%% Correspondence 89 | \vspace{1\baselineskip} 90 | 91 | $for(by-author)$ 92 | $if(by-author.email)$ 93 | * \textit{Correspondence:}~$by-author.name.literal$~$by-author.email$ 94 | $endif$ 95 | $endfor$ 96 | 97 | %use \vfill instead to get the space to fill flexibly 98 | %\vspace{0.25\textheight} % Whitespace between the title block and the publisher 99 | 100 | \vfill 101 | 102 | %%%%%% Cover image 103 | $if(cover)$\includegraphics[width=4cm]{$cover$}$endif$ 104 | 105 | % Whitespace between the title block and the tagline 106 | \vspace{0.1\textheight} 107 | 108 | %%%%%% Tagline at bottom 109 | {\noindent https://nmfs-opensci.github.io/}\\[\baselineskip] 110 | \end{minipage} 111 | -------------------------------------------------------------------------------- /examples/_extensions/nmfs-opensci/titlepage/_multi-purpose-static_before-body.tex: -------------------------------------------------------------------------------- 1 | $if(has-frontmatter)$ 2 | \begin{frontmatter} 3 | \begin{titlepage} 4 | $_multi-purpose-static_titlepage.tex()$ 5 | \end{titlepage} 6 | \end{frontmatter} 7 | $else$ 8 | \begin{titlepage} 9 | $_multi-purpose-static_titlepage.tex()$ 10 | \end{titlepage} 11 | $endif$ 12 | -------------------------------------------------------------------------------- /examples/_extensions/nmfs-opensci/titlepage/_multi-purpose-static_titlepage.tex: -------------------------------------------------------------------------------- 1 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2 | % Multi-Purpose Title Page 3 | % LaTeX Template 4 | % Version 2.0 (17/7/17) 5 | % 6 | % This template was downloaded from: 7 | % http://www.LaTeXTemplates.com 8 | % 9 | % Original author: 10 | % WikiBooks (LaTeX - Title Creation) with modifications by: 11 | % Vel (vel@latextemplates.com) 12 | % 13 | % License: 14 | % CC BY-NC-SA 3.0 (http://creativecommons.org/licenses/by-nc-sa/3.0/) 15 | % 16 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 17 | 18 | 19 | %------------------------------------------------ 20 | % title box 21 | %------------------------------------------------ 22 | 23 | \colorbox{cyan}{ 24 | \parbox[t]{0.93\textwidth}{ % Outer full width box 25 | \parbox[t]{0.91\textwidth}{ % Inner box for inner right text margin 26 | \raggedleft % Right align the text 27 | \fontsize{50pt}{80pt}\selectfont % Title font size, the first argument is the font size and the second is the line spacing, adjust depending on title length 28 | \vspace{0.7cm} % Space between the start of the title and the top of the grey box 29 | 30 | A Title Page\\ 31 | Template With\\ 32 | Many Uses\\ 33 | 34 | \vspace{0.7cm} % Space between the end of the title and the bottom of the grey box 35 | } 36 | } 37 | } 38 | 39 | \vfill % Space between the title box and author information 40 | 41 | %------------------------------------------------ 42 | % Author name and information 43 | %------------------------------------------------ 44 | 45 | \parbox[t]{0.93\textwidth}{ % Box to inset this section slightly 46 | \raggedleft % Right align the text 47 | \large % Increase the font size 48 | {\Large B.J. Blazkowicz}\\[4pt] % Extra space after name 49 | Department Name\\ 50 | Institution Name\\[4pt] % Extra space before URL 51 | \texttt{LaTeXTemplates.com}\\ 52 | 53 | \hfill\rule{0.2\linewidth}{1pt}% Horizontal line, first argument width, second thickness 54 | } 55 | -------------------------------------------------------------------------------- /examples/_extensions/nmfs-opensci/titlepage/_multi-purpose_before-body.tex: -------------------------------------------------------------------------------- 1 | $if(has-frontmatter)$ 2 | \begin{frontmatter} 3 | \begin{titlepage} 4 | $_multi-purpose_titlepage.tex()$ 5 | \end{titlepage} 6 | \end{frontmatter} 7 | $else$ 8 | \begin{titlepage} 9 | $_multi-purpose_titlepage.tex()$ 10 | \end{titlepage} 11 | $endif$ 12 | -------------------------------------------------------------------------------- /examples/_extensions/nmfs-opensci/titlepage/_multi-purpose_titlepage.tex: -------------------------------------------------------------------------------- 1 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2 | % Multi-Purpose Title Page 3 | % LaTeX Template 4 | % Version 2.0 (17/7/17) 5 | % 6 | % This template was downloaded from: 7 | % http://www.LaTeXTemplates.com 8 | % 9 | % Original author: 10 | % WikiBooks (LaTeX - Title Creation) with modifications by: 11 | % Vel (vel@latextemplates.com) 12 | % 13 | % License: 14 | % CC BY-NC-SA 3.0 (http://creativecommons.org/licenses/by-nc-sa/3.0/) 15 | % 16 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 17 | 18 | 19 | %------------------------------------------------ 20 | % title box 21 | %------------------------------------------------ 22 | 23 | \colorbox{cyan}{ 24 | \parbox[t]{0.93\textwidth}{ % Outer full width box 25 | \parbox[t]{0.91\textwidth}{ % Inner box for inner right text margin 26 | \raggedright % Right align the text 27 | \fontsize{50pt}{80pt}\selectfont % Title font size, the first argument is the font size and the second is the line spacing, adjust depending on title length 28 | \vspace{0.7cm} % Space between the start of the title and the top of the grey box 29 | 30 | $title$\\ 31 | \fontsize{25pt}{40pt}\selectfont 32 | $subtitle$\\ 33 | 34 | \vspace{0.7cm} % Space between the end of the title and the bottom of the grey box 35 | } 36 | } 37 | } 38 | 39 | \vfill % Space between the title box and author information 40 | 41 | %------------------------------------------------ 42 | % Author name and information 43 | %------------------------------------------------ 44 | 45 | \parbox[t]{0.93\textwidth}{ % Box to inset this section slightly 46 | \raggedleft % Right align the text 47 | \large % Increase the font size 48 | $for(by-author)$% 49 | {\Large $by-author.name.literal$}% 50 | $sep$\\ % 51 | $endfor$% 52 | 53 | \hfill\rule{0.2\linewidth}{1pt}% Horizontal line, first argument width, second thickness 54 | } 55 | -------------------------------------------------------------------------------- /examples/_extensions/nmfs-opensci/titlepage/_thesis-static_before-body.tex: -------------------------------------------------------------------------------- 1 | $if(has-frontmatter)$ 2 | \begin{frontmatter} 3 | \begin{titlepage} 4 | $_thesis-static_titlepage.tex()$ 5 | \end{titlepage} 6 | \end{frontmatter} 7 | $else$ 8 | \begin{titlepage} 9 | $_thesis-static_titlepage.tex()$ 10 | \end{titlepage} 11 | $endif$ 12 | -------------------------------------------------------------------------------- /examples/_extensions/nmfs-opensci/titlepage/_thesis-static_titlepage.tex: -------------------------------------------------------------------------------- 1 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2 | % Thesis Title Page 3 | % LaTeX Template 4 | % 5 | % This template was downloaded from: 6 | % https://www.overleaf.com/learn/latex/How_to_Write_a_Thesis_in_LaTeX_(Part_5)%3A_Customising_Your_Title_Page_and_Abstract 7 | % 8 | % Original author: 9 | % Josh Cassidy (Aug 2013) 10 | % 11 | % 12 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 13 | 14 | 15 | \begin{center} 16 | \vspace*{1cm} 17 | 18 | \Huge 19 | \textbf{Thesis Title} 20 | 21 | \vspace{0.5cm} 22 | \LARGE 23 | Thesis Subtitle 24 | 25 | \vspace{1.5cm} 26 | 27 | \textbf{Author Name} 28 | 29 | \vfill 30 | 31 | A thesis presented for the degree of\\ 32 | Doctor of Philosophy 33 | 34 | \vspace{0.8cm} 35 | 36 | \includegraphics[width=0.4\textwidth]{logo.png} 37 | 38 | \Large 39 | Department Name\\ 40 | University Name\\ 41 | Country\\ 42 | Date 43 | 44 | \end{center} 45 | -------------------------------------------------------------------------------- /examples/_extensions/nmfs-opensci/titlepage/_vline-static_before-body.tex: -------------------------------------------------------------------------------- 1 | $if(has-frontmatter)$ 2 | \begin{frontmatter} 3 | \begin{titlepage} 4 | $_vline-static_titlepage.tex()$ 5 | \end{titlepage} 6 | \end{frontmatter} 7 | $else$ 8 | \begin{titlepage} 9 | $_vline-static_titlepage.tex()$ 10 | \end{titlepage} 11 | $endif$ 12 | -------------------------------------------------------------------------------- /examples/_extensions/nmfs-opensci/titlepage/_vline-static_titlepage.tex: -------------------------------------------------------------------------------- 1 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2 | % Vertical Line Title Page 3 | % LaTeX Template 4 | % Version 2.0 (22/7/17) 5 | % 6 | % This template was downloaded from: 7 | % http://www.LaTeXTemplates.com 8 | % 9 | % Original author: 10 | % Peter Wilson (herries.press@earthlink.net) with modifications by: 11 | % Vel (vel@latextemplates.com) 12 | % 13 | % License: 14 | % CC BY-NC-SA 3.0 (http://creativecommons.org/licenses/by-nc-sa/3.0/) 15 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 16 | 17 | 18 | \raggedleft % Right align the title page 19 | 20 | \rule{1pt}{\textheight} % Vertical line 21 | \hspace{0.05\textwidth} % Whitespace between the vertical line and title page text 22 | \parbox[b]{0.75\textwidth}{ % Paragraph box for holding the title page text, adjust the width to move the title page left or right on the page 23 | 24 | {\Huge\bfseries A Collection of \\[0.5\baselineskip] \LaTeX ~Templates}\\[2\baselineskip] % Title 25 | {\large\textit{A predictable subtitle}}\\[4\baselineskip] % Subtitle or further description 26 | {\Large\textsc{gordon freeman}} % Author name, lower case for consistent small caps 27 | 28 | \vspace{0.5\textheight} % Whitespace between the title block and the publisher 29 | 30 | {\noindent The Publisher }\\[\baselineskip] % Publisher and logogo 31 | } 32 | -------------------------------------------------------------------------------- /examples/_extensions/nmfs-opensci/titlepage/_vline_before-body.tex: -------------------------------------------------------------------------------- 1 | $if(has-frontmatter)$ 2 | \begin{frontmatter} 3 | \begin{titlepage} 4 | $_vline_titlepage.tex()$ 5 | \end{titlepage} 6 | \end{frontmatter} 7 | $else$ 8 | \begin{titlepage} 9 | $_vline_titlepage.tex()$ 10 | \end{titlepage} 11 | $endif$ 12 | -------------------------------------------------------------------------------- /examples/_extensions/nmfs-opensci/titlepage/_vline_titlepage.tex: -------------------------------------------------------------------------------- 1 | % This is a combination of Pandoc templating and LaTeX 2 | % Pandoc templating https://pandoc.org/MANUAL.html#templates 3 | % See the README for help 4 | 5 | \raggedleft % left align the title page 6 | \rule{1pt}{\textheight} % Vertical line 7 | \hspace{0.05\textwidth} % Whitespace between the vertical line and title page text 8 | % Adjust num before \textwidth to move the block left or right 9 | \begin{minipage}[b][\textheight][s]{0.85\textwidth} 10 | 11 | \raggedright 12 | % Title and subtitle 13 | {\large\bfseries\nohyphens{$title$}}\\[2\baselineskip] 14 | $if(subtitle)${\large\textit{$subtitle$}}\\[4\baselineskip]$endif$ 15 | 16 | % Authors 17 | % This hairy bit of code is just to get "and" between the last 2 18 | % authors. See below if you don't need that 19 | $if(by-author/allbutlast)$ 20 | $for(by-author/allbutlast)$ 21 | {\large{$by-author.name.literal$}}$for(by-author.affiliations)${\textsuperscript{$it.number$}}$sep$\textsuperscript{,}$endfor$% 22 | $if(by-author.email)$% 23 | $if(by-author.affiliations)$\textsuperscript{,}$endif$% 24 | {\textsuperscript{*}}% 25 | $endif$% 26 | $sep$, 27 | $endfor$ 28 | $for(by-author/last)$% 29 | { and \large{$by-author.name.literal$}}% 30 | $for(by-author.affiliations)${\textsuperscript{$it.number$}}$sep$\textsuperscript{,}% 31 | $endfor$% 32 | $if(by-author.email)$% 33 | $if(by-author.affiliations)$\textsuperscript{,}$endif$% 34 | {\textsuperscript{*}}% 35 | $endif$% 36 | $endfor$ 37 | $else$ 38 | $for(by-author/last)$% 39 | {\large{$by-author.name.literal$}}% 40 | $for(by-author.affiliations)$% 41 | {\textsuperscript{$it.number$}}$sep$\textsuperscript{,}$endfor$% 42 | $if(by-author.email)$% 43 | $if(by-author.affiliations)$\textsuperscript{,}$endif$% 44 | {\textsuperscript{,*}}% 45 | $endif$% 46 | $endfor$ 47 | $endif$ 48 | 49 | % This is how to do it if you don't need the "and" 50 | $if(false)$% 51 | $for(by-author)$% 52 | {$by-author.name.literal$}% 53 | $for(by-author.affiliations)$% 54 | {\textsuperscript{$it.number$}}$sep${\textsuperscript{,}}% 55 | $endfor$% 56 | $if(by-author.email)$,{\textsuperscript{*}}% 57 | $endif$% 58 | $sep$, % 59 | $endfor$% 60 | $endif$ 61 | 62 | %%%%%% Affiliations 63 | \vspace{2\baselineskip} 64 | 65 | \hangindent=1em 66 | \hangafter=1 67 | $for(by-affiliation)$% 68 | {$it.number$}.~$if(by-affiliation.name)${$it.name$}$endif$% 69 | $if(by-affiliation.department)$% 70 | $if(by-affiliation.name)$, $endif$% 71 | {$it.department$}% 72 | $endif$% 73 | $if(by-affiliation.address)$% 74 | $if(by-affiliation.name)$, $else$$if(by-affiliation.department)$, $endif$$endif$% 75 | {$it.address$}% 76 | $endif$% 77 | $sep$\par\hangindent=1em\hangafter=1% 78 | $endfor$ 79 | 80 | %%%%%% Correspondence 81 | \vspace{1\baselineskip} 82 | 83 | $for(by-author)$ 84 | $if(by-author.email)$ 85 | * \textit{Correspondence:}~$by-author.name.literal$~$by-author.email$ 86 | $endif$ 87 | $endfor$ 88 | 89 | %use \vfill instead to get the space to fill flexibly 90 | %\vspace{0.25\textheight} % Whitespace between the title block and the publisher 91 | 92 | \vfill 93 | 94 | %%%%%% Cover image 95 | $if(cover)$\includegraphics[width=4cm]{$cover$}$endif$ 96 | 97 | % Whitespace between the title block and the tagline 98 | \vspace{0.1\textheight} 99 | 100 | %%%%%% Tagline at bottom 101 | % {\noindent The Publisher~~\plogo}\\[\baselineskip] % Publisher and logo 102 | {\noindent The Publisher}\\[\baselineskip] % Publisher and logo 103 | \end{minipage} 104 | -------------------------------------------------------------------------------- /examples/_extensions/nmfs-opensci/titlepage/before-body.tex: -------------------------------------------------------------------------------- 1 | $if(academic-static)$ 2 | $_academic-static_before-body.tex()$ 3 | $endif$ 4 | 5 | $if(bg-image)$ 6 | $_bg-image_before-body.tex()$ 7 | $endif$ 8 | 9 | $if(classic-lined-static)$ 10 | $_classic-lined-static_before-body.tex()$ 11 | $endif$ 12 | 13 | $if(great-wave)$ 14 | $_great-wave_before-body.tex()$ 15 | $endif$ 16 | 17 | $if(multi-purpose-static)$ 18 | $_multi-purpose-static_before-body.tex()$ 19 | $endif$ 20 | 21 | $if(multi-purpose)$ 22 | $_multi-purpose_before-body.tex()$ 23 | $endif$ 24 | 25 | $if(thesis-static)$ 26 | $_thesis-static_before-body.tex()$ 27 | $endif$ 28 | 29 | $if(vline)$ 30 | $_vline_before-body.tex()$ 31 | $endif$ 32 | 33 | $if(vline-static)$ 34 | $_vline-static_before-body.tex()$ 35 | $endif$ 36 | -------------------------------------------------------------------------------- /examples/_extensions/nmfs-opensci/titlepage/images/TheGreatWaveoffKanagawa.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jthomasmock/quarto-reporting/7dfe573d3363d81169ea967bb4b779ef92a98f68/examples/_extensions/nmfs-opensci/titlepage/images/TheGreatWaveoffKanagawa.jpeg -------------------------------------------------------------------------------- /examples/_extensions/nmfs-opensci/titlepage/images/corner-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jthomasmock/quarto-reporting/7dfe573d3363d81169ea967bb4b779ef92a98f68/examples/_extensions/nmfs-opensci/titlepage/images/corner-bg.png -------------------------------------------------------------------------------- /examples/_extensions/nmfs-opensci/titlepage/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jthomasmock/quarto-reporting/7dfe573d3363d81169ea967bb4b779ef92a98f68/examples/_extensions/nmfs-opensci/titlepage/images/logo.png -------------------------------------------------------------------------------- /examples/_extensions/nmfs-opensci/titlepage/images/nmfs-opensci-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jthomasmock/quarto-reporting/7dfe573d3363d81169ea967bb4b779ef92a98f68/examples/_extensions/nmfs-opensci/titlepage/images/nmfs-opensci-logo.png -------------------------------------------------------------------------------- /examples/_extensions/nmfs-opensci/titlepage/images/ringed-seal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jthomasmock/quarto-reporting/7dfe573d3363d81169ea967bb4b779ef92a98f68/examples/_extensions/nmfs-opensci/titlepage/images/ringed-seal.png -------------------------------------------------------------------------------- /examples/_extensions/nmfs-opensci/titlepage/pandoc.tex: -------------------------------------------------------------------------------- 1 | $if(highlighting-macros)$ 2 | $highlighting-macros$ 3 | $endif$ 4 | 5 | $tightlist.tex()$ 6 | $tables.tex()$ 7 | $graphics.tex()$ 8 | $citations.tex()$ 9 | 10 | $for(header-includes)$ 11 | $header-includes$ 12 | $endfor$ 13 | 14 | $if(bg-image)$ 15 | \usepackage{hyphenat} 16 | \usepackage{graphicx} 17 | \usepackage{wallpaper} % for the background image on title page 18 | \usepackage{geometry} 19 | $endif$ 20 | 21 | $if(great-wave)$ 22 | \usepackage{hyphenat} 23 | \usepackage{graphicx} 24 | \usepackage{geometry} 25 | \usepackage{afterpage} 26 | \usepackage{tikz} 27 | \usetikzlibrary{fadings} 28 | \usepackage[pagecolor=none]{pagecolor} 29 | $endif$ 30 | 31 | $if(vline)$ 32 | \usepackage{hyphenat} 33 | \usepackage{graphicx} 34 | $endif$ 35 | -------------------------------------------------------------------------------- /examples/_extensions/nmfs-opensci/titlepage/theme.lua: -------------------------------------------------------------------------------- 1 | local function isEmpty(s) 2 | return s == nil or s == '' 3 | end 4 | 5 | function Meta(m) 6 | local theme_table = { 7 | ["academic-static"] = function (m) 8 | m['academic-static'] = true 9 | return m 10 | end, 11 | ["bg-image"] = function (m) 12 | m['bg-image'] = true 13 | if isEmpty(m['title-bg-image']) then 14 | m['title-bg-image'] = "corner-bg.png" 15 | end 16 | if isEmpty(m['title-bg-location']) then 17 | m['title-bg-location'] = "UL" 18 | end 19 | if isEmpty(m['title-bg-size']) then 20 | m['title-bg-size'] = 0.5 21 | end 22 | if isEmpty(m['titlepage-geometry']) then 23 | m['titlepage-geometry'] = pandoc.List({"top=3in", "bottom=1in", "right=1in", "left=1in"}) 24 | end 25 | return m 26 | end, 27 | ["classic-lined-static"] = function (m) 28 | m['classic-lined-static'] = true 29 | if isEmpty(m['logo']) then 30 | m['logo'] = "logo.png" 31 | end 32 | return m 33 | end, 34 | ["great-wave"] = function (m) 35 | m['great-wave'] = true 36 | if isEmpty(m['title-bg-image']) then 37 | m['title-bg-image'] = "TheGreatWaveoffKanagawa.jpeg" 38 | end 39 | if isEmpty(m['title-page-color']) then 40 | m['title-page-color'] = "F6D5A8" 41 | end 42 | return m 43 | end, 44 | ["multi-purpose"] = function (m) 45 | m['multi-purpose'] = true 46 | if isEmpty(m['logo']) then 47 | m['logo'] = "logo.png" 48 | end 49 | return m 50 | end, 51 | ["multi-purpose-static"] = function (m) 52 | m['multi-purpose-static'] = true 53 | if isEmpty(m['logo']) then 54 | m['logo'] = "logo.png" 55 | end 56 | return m 57 | end, 58 | ["thesis-static"] = function (m) 59 | m['thesis-static'] = true 60 | if isEmpty(m['logo']) then 61 | m['logo'] = "logo.png" 62 | end 63 | return m 64 | end, 65 | ["vline"] = function (m) 66 | m['vline'] = true 67 | if isEmpty(m['logo']) then 68 | m['logo'] = "logo.png" 69 | end 70 | return m 71 | end, 72 | ["vline-static"] = function (m) 73 | m['vline-static'] = true 74 | if isEmpty(m['logo']) then 75 | m['logo'] = "logo.png" 76 | end 77 | return m 78 | end 79 | } 80 | 81 | if not m.titlepage then 82 | m['titlepage'] = "vline" 83 | end 84 | choice = pandoc.utils.stringify(m.titlepage) 85 | if isEmpty(choice) then 86 | return theme_table["vline"](m) 87 | else 88 | return theme_table[choice](m) 89 | end 90 | end 91 | -------------------------------------------------------------------------------- /examples/_extensions/quarto-journals/jss/_extension.yml: -------------------------------------------------------------------------------- 1 | title: Journal of Statistical Software Format 2 | author: Charles Teague 3 | version: 0.9.2 4 | contributes: 5 | format: 6 | common: 7 | filters: 8 | - jss.lua 9 | shortcodes: 10 | - quarto-ext/fancy-text 11 | knitr: 12 | opts_chunk: 13 | R.options: 14 | prompt: "R> " 15 | continue: "+" 16 | pdf: 17 | documentclass: jss 18 | shift-heading-level-by: -1 19 | tbl-cap-location: bottom 20 | highlight-style: none 21 | include-in-header: 22 | text: | 23 | \usepackage{orcidlink,thumbpdf,lmodern} 24 | 25 | \newcommand{\class}[1]{`\code{#1}'} 26 | \newcommand{\fct}[1]{\code{#1()}} 27 | fig-width: 4.9 # 6.125" * 0.8, as in template 28 | fig-height: 3.675 # 4.9 * 3:4 29 | template-partials: 30 | - "partials/title.tex" 31 | - "partials/before-body.tex" 32 | - "partials/_print-address.tex" 33 | - "partials/_print-author.tex" 34 | cite-method: natbib 35 | biblio-config: false 36 | format-resources: 37 | - jss.bst 38 | - jss.cls 39 | - jsslogo.jpg 40 | html: 41 | number-sections: true 42 | toc: true 43 | -------------------------------------------------------------------------------- /examples/_extensions/quarto-journals/jss/_extensions/quarto-ext/fancy-text/_extension.yml: -------------------------------------------------------------------------------- 1 | title: Fancy Text 2 | author: "RStudio, PBC" 3 | version: 0.0.1 4 | contributes: 5 | shortcodes: 6 | - fancy-text.lua 7 | -------------------------------------------------------------------------------- /examples/_extensions/quarto-journals/jss/_extensions/quarto-ext/fancy-text/fancy-text.lua: -------------------------------------------------------------------------------- 1 | -- shortcode that provides a nicely formatted 'LaTeX' string 2 | function latex() 3 | if quarto.doc.isFormat("pdf") then 4 | return pandoc.RawBlock('tex', '{\\LaTeX}') 5 | elseif quarto.doc.isFormat("html") then 6 | return pandoc.Math('InlineMath', "\\LaTeX") 7 | else 8 | return pandoc.Span('LaTeX') 9 | end 10 | end 11 | 12 | -- shortcode that provides a nicely formatted 'bibtex' string 13 | function bibtex() 14 | if quarto.doc.isFormat("pdf") then 15 | return pandoc.RawBlock('tex', '\\textsc{Bib}{\\TeX}') 16 | elseif quarto.doc.isFormat("html") then 17 | return pandoc.RawBlock('html', 'BibTEX') 18 | else 19 | return pandoc.Span('BibTeX') 20 | end 21 | end -------------------------------------------------------------------------------- /examples/_extensions/quarto-journals/jss/jss.lua: -------------------------------------------------------------------------------- 1 | -- these classes, when placed on a span will be replaced 2 | -- with an identical LaTeX command for PDF output 3 | local texMappings = { 4 | "proglang", 5 | "pkg", 6 | "fct", 7 | "class" 8 | } 9 | 10 | -- layout and style 11 | local kTypes = pandoc.List({'article', 'codesnippet', 'bookreview', 'softwarereview'}) 12 | local kSuppress = pandoc.List({'title', 'headings', 'footer'}) 13 | 14 | local function setClassOption(meta, option) 15 | if meta['classoption'] == nil then 16 | meta['classoption'] = pandoc.List({}) 17 | end 18 | 19 | meta['classoption']:insert({ pandoc.Str(option)}) 20 | end 21 | 22 | local function printList(list) 23 | local result = '' 24 | local sep = '' 25 | for i,v in ipairs(list) do 26 | result = result .. sep .. v 27 | sep = ', ' 28 | end 29 | return result 30 | end 31 | 32 | return { 33 | { 34 | Span = function(el) 35 | -- read the span contents and emit correct output 36 | local contentStr = pandoc.utils.stringify(el.content) 37 | 38 | for i, mapping in ipairs(texMappings) do 39 | if #el.attr.classes == 1 and el.attr.classes:includes(mapping) then 40 | if quarto.doc.isFormat("pdf") then 41 | return pandoc.RawInline("tex", "\\" .. mapping .. "{" .. contentStr .. "}" ) 42 | else 43 | return pandoc.Code(contentStr); 44 | end 45 | end 46 | end 47 | end, 48 | Meta = function(meta) 49 | if quarto.doc.isFormat("pdf") then 50 | -- Authors output in the template uses a special separator 51 | -- to join authors (including wrapping to a new line) 52 | -- this computes the proper prefix and places it in the author metadata 53 | -- for use by the template 54 | local byAuthor = meta['by-author'] 55 | if byAuthor ~= nil then 56 | for i, author in ipairs(byAuthor) do 57 | local prefix = {pandoc.RawInline("tex ","")}; 58 | if i > 1 and i % 2 == 1 then 59 | prefix = {pandoc.RawInline("tex", "\\AND")} 60 | elseif i > 1 then 61 | prefix = {pandoc.RawInline("tex", "\\And")} 62 | end 63 | author['metadata']['latex-prefix'] = prefix 64 | end 65 | end 66 | 67 | -- read the journal settings 68 | local journal = meta['journal'] 69 | local type = nil 70 | local shortnames = nil 71 | local suppress = nil 72 | local jss = nil 73 | 74 | if journal ~= nil then 75 | type = journal['type'] 76 | shortnames = journal['cite-shortnames'] 77 | suppress = journal['suppress'] 78 | jss = journal['include-jss-layout'] 79 | end 80 | 81 | -- process the type 82 | if type ~= nil then 83 | type = pandoc.utils.stringify(type) 84 | if kTypes:includes(type) then 85 | setClassOption(meta, type) 86 | else 87 | error("Unknown type " .. type .. "\nPlease use one of " .. printList(kTypes)) 88 | end 89 | else 90 | setClassOption(meta, 'article') 91 | end 92 | 93 | -- process the citation variant 94 | if shortnames == true then 95 | setClassOption(meta, 'shortnames') 96 | end 97 | 98 | -- process the suppressed parts 99 | if suppress ~= nil then 100 | for i,v in ipairs(suppress) do 101 | s = pandoc.utils.stringify(v) 102 | if kSuppress:includes(s) then 103 | setClassOption(meta, 'no' .. s) 104 | else 105 | error("Unknown suppressed part " .. s .. "\nPlease use one of " .. printList(kSuppress)) 106 | end 107 | end 108 | end 109 | 110 | -- process switch for JSS layout 111 | if jss == false then 112 | setClassOption(meta, 'nojss') 113 | end 114 | end 115 | 116 | return meta 117 | end 118 | } 119 | } -------------------------------------------------------------------------------- /examples/_extensions/quarto-journals/jss/jsslogo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jthomasmock/quarto-reporting/7dfe573d3363d81169ea967bb4b779ef92a98f68/examples/_extensions/quarto-journals/jss/jsslogo.jpg -------------------------------------------------------------------------------- /examples/_extensions/quarto-journals/jss/partials/_print-address.tex: -------------------------------------------------------------------------------- 1 | $it.name.literal$\\$if(it.affiliations/first)$$for(it.affiliations/first)$$if(it.department)$ 2 | 3 | $it.department$\\$endif$$if(it.address)$ 4 | 5 | $it.address$\\$endif$$if(it.city)$ 6 | 7 | $it.city$$endif$$if(it.state)$ $it.state$$endif$$if(it.country)$ $it.country$$endif$$if(it.city)$\\$elseif(it.state)$\\$elseif(it.country)$\\$endif$$endfor$$endif$$if(it.phone)$ 8 | 9 | Telephone: $it.phone$\\$endif$$if(it.fax)$ 10 | 11 | Fax: $it.fax$\\$endif$$if(it.email)$ 12 | 13 | E-mail: \email{$it.email$}\\$endif$$if(it.url)$ 14 | 15 | URL: \url{$it.url$}\\$endif$ 16 | 17 | \\~ 18 | 19 | -------------------------------------------------------------------------------- /examples/_extensions/quarto-journals/jss/partials/_print-author.tex: -------------------------------------------------------------------------------- 1 | $if(it.metadata.latex-prefix)$ $it.metadata.latex-prefix$ $endif$$it.name.literal$$if(it.orcid)$~\orcidlink{$it.orcid$}$endif$$for(it.affiliations/first)$\\$it.name$$endfor$ -------------------------------------------------------------------------------- /examples/_extensions/quarto-journals/jss/partials/before-body.tex: -------------------------------------------------------------------------------- 1 | $if(has-frontmatter)$ 2 | \frontmatter 3 | $endif$ 4 | $if(title)$ 5 | \maketitle 6 | $endif$ 7 | -------------------------------------------------------------------------------- /examples/_extensions/quarto-journals/jss/partials/title.tex: -------------------------------------------------------------------------------- 1 | %% -- Article metainformation (author, title, ...) ----------------------------- 2 | 3 | %% Author information 4 | \author{$for(by-author)$$_print-author.tex()$$endfor$} 5 | \Plainauthor{$for(by-author)$$it.name.literal$$sep$, $endfor$} %% comma-separated 6 | 7 | \title{$title$} 8 | $if(title-plain)$ 9 | \Plaintitle{$title-plain$} %% without formatting 10 | $endif$ 11 | $if(short-title)$ 12 | \Shorttitle{$short-title$} %% a short title (if necessary) 13 | $endif$ 14 | 15 | %% an abstract and keywords 16 | $if(abstract)$ 17 | \Abstract{$abstract$} 18 | $endif$ 19 | 20 | %% at least one keyword must be supplied 21 | $if(keywords-formatted)$ 22 | \Keywords{$for(keywords-formatted)$$it$$sep$, $endfor$} 23 | $endif$ 24 | $if(keywords)$ 25 | \Plainkeywords{$for(keywords)$$it$$sep$, $endfor$} 26 | $endif$ 27 | 28 | %% publication information 29 | %% NOTE: Typically, this can be left commented and will be filled out by the technical editor 30 | %% \Volume{50} 31 | %% \Issue{9} 32 | %% \Month{June} 33 | %% \Year{2012} 34 | %% \Submitdate{2012-06-04} 35 | %% \Acceptdate{2012-06-04} 36 | %% \setcounter{page}{1} 37 | %% \Pages{1--xx} 38 | 39 | %% The address of (at least) one author should be given 40 | %% in the following format: 41 | $if(by-author)$ 42 | \Address{ 43 | $for(by-author)$$_print-address.tex()$$endfor$ 44 | } 45 | $endif$ 46 | -------------------------------------------------------------------------------- /examples/_extensions/quarto-journals/plos/_extension.yml: -------------------------------------------------------------------------------- 1 | title: PLOS 2 | author: Christophe Dervieux 3 | version: 0.0.1 4 | contributes: 5 | formats: 6 | common: 7 | # define below YAML configuration common to all formats 8 | execute: 9 | echo: false 10 | crossref: 11 | fig-prefix: Fig 12 | eq-prefix: Eq 13 | callout-appearance: simple 14 | callout-icon: false 15 | # https://www.zotero.org/styles/?q=plos 16 | csl: https://www.zotero.org/styles/plos-one 17 | filters: 18 | - filter.lua 19 | pdf: 20 | keep-tex: true 21 | block-headings: false 22 | documentclass: article 23 | papersize: letter 24 | fontsize: 10pt 25 | has-frontmatter: false 26 | toc: false 27 | lof: false 28 | lot: false 29 | colorlinks: false 30 | geometry: 31 | - top=0.85in 32 | - left=2.75in 33 | - footskip=0.75in 34 | biblio-style: plos2015 35 | include-in-header: _preamble.tex 36 | template-partials: 37 | # Add here the partials your format is using 38 | - "partials/doc-class.tex" 39 | - "partials/before-body.tex" 40 | - "partials/_authors.tex" 41 | - "partials/_affiliations.tex" 42 | - "partials/title.tex" 43 | - "partials/before-bib.tex" 44 | - "partials/biblio.tex" 45 | # Using some package that may require pdflatex 46 | pdf-engine: pdflatex 47 | # biblatex is not supported 48 | cite-method: natbib 49 | # number is required for plos2015.bst style 50 | # and square,comma for correct guideline style 51 | # https://tex.stackexchange.com/questions/376662/how-do-i-create-plosone-bib-references 52 | natbiboptions: "numbers,square,comma" 53 | # tcolorbox is not working ok with breakable for code blocks so deactivate this Quarto feature 54 | # https://github.com/quarto-journals/article-format-template/issues/2 55 | code-block-border-left: false 56 | format-resources: 57 | - plos2015.bst 58 | html: 59 | # define default configuration for the html version of your format 60 | number-sections: true 61 | toc: true 62 | theme: custom.scss 63 | -------------------------------------------------------------------------------- /examples/_extensions/quarto-journals/plos/_preamble.tex: -------------------------------------------------------------------------------- 1 | % Use adjustwidth environment to exceed column width (see example table in text) 2 | \usepackage{changepage} 3 | 4 | % marvosym package for additional characters 5 | \usepackage{marvosym} 6 | 7 | % cite package, to clean up citations in the main text. Do not remove. 8 | % Using natbib instead 9 | % \usepackage{cite} 10 | 11 | % Use nameref to cite supporting information files (see Supporting Information section for more info) 12 | \usepackage{nameref,hyperref} 13 | 14 | % line numbers 15 | \usepackage[right]{lineno} 16 | 17 | % ligatures disabled 18 | \usepackage{microtype} 19 | \DisableLigatures[f]{encoding = *, family = * } 20 | 21 | % create "+" rule type for thick vertical lines 22 | \newcolumntype{+}{!{\vrule width 2pt}} 23 | 24 | % create \thickcline for thick horizontal lines of variable length 25 | \newlength\savedwidth 26 | \newcommand\thickcline[1]{% 27 | \noalign{\global\savedwidth\arrayrulewidth\global\arrayrulewidth 2pt}% 28 | \cline{#1}% 29 | \noalign{\vskip\arrayrulewidth}% 30 | \noalign{\global\arrayrulewidth\savedwidth}% 31 | } 32 | 33 | % \thickhline command for thick horizontal lines that span the table 34 | \newcommand\thickhline{\noalign{\global\savedwidth\arrayrulewidth\global\arrayrulewidth 2pt}% 35 | \hline 36 | \noalign{\global\arrayrulewidth\savedwidth}} 37 | 38 | % Text layout 39 | \raggedright 40 | \setlength{\parindent}{0.5cm} 41 | \textwidth 5.25in 42 | \textheight 8.75in 43 | 44 | % Bold the 'Figure #' in the caption and separate it from the title/caption with a period 45 | % Captions will be left justified 46 | \usepackage[aboveskip=1pt,labelfont=bf,labelsep=period,justification=raggedright,singlelinecheck=off]{caption} 47 | \renewcommand{\figurename}{Fig} 48 | 49 | % Remove brackets from numbering in List of References 50 | \makeatletter 51 | \renewcommand{\@biblabel}[1]{\quad#1.} 52 | \makeatother 53 | 54 | % Header and Footer with logo 55 | \usepackage{lastpage,fancyhdr} 56 | \usepackage{epstopdf} 57 | %\pagestyle{myheadings} 58 | \pagestyle{fancy} 59 | \fancyhf{} 60 | %\setlength{\headheight}{27.023pt} 61 | %\lhead{\includegraphics[width=2.0in]{PLOS-submission.eps}} 62 | \rfoot{\thepage/\pageref{LastPage}} 63 | \renewcommand{\headrulewidth}{0pt} 64 | \renewcommand{\footrule}{\hrule height 2pt \vspace{2mm}} 65 | \fancyheadoffset[L]{2.25in} 66 | \fancyfootoffset[L]{2.25in} 67 | \lfoot{\today} -------------------------------------------------------------------------------- /examples/_extensions/quarto-journals/plos/filter.lua: -------------------------------------------------------------------------------- 1 | 2 | 3 | -- these classes, when placed on a span will be replaced 4 | -- with an identical LaTeX command for PDF output 5 | local texMappings = { 6 | "nameref" 7 | } 8 | 9 | return { 10 | { 11 | Span = function(el) 12 | local contentStr = pandoc.utils.stringify(el.content) 13 | for i, mapping in ipairs(texMappings) do 14 | if #el.attr.classes == 1 and el.attr.classes:includes(mapping) then 15 | if quarto.doc.isFormat("pdf") then 16 | return pandoc.RawInline("tex", "\\" .. mapping .. "{" .. contentStr .. "}" ) 17 | else 18 | el.content = pandoc.Str( conentStr) 19 | return el 20 | end 21 | end 22 | end 23 | end, 24 | Div = function(div) 25 | -- Special treatment for supplementary material 26 | if (div.classes:includes("supp")) then 27 | if quarto.doc.isFormat("pdf") then 28 | local headerNum = 0 29 | local header = pandoc.List() 30 | local labelId 31 | local paraNum = 0 32 | local para = pandoc.List() 33 | -- First Take element 34 | div.content:walk { 35 | Header = function(el) 36 | if (headerNum > 0) then 37 | error('Only one header can be set in supplementary section divs') 38 | end 39 | --[[ 40 | el.level = 4 41 | headerNum = headerNum + 1 42 | header:insert(el) 43 | ]] 44 | el.content:insert(1, pandoc.RawInline('tex', '\\paragraph*{')) 45 | el.content:insert(pandoc.RawInline('tex', '}')) 46 | header:extend(el.content) 47 | labelId = el.identifier 48 | -- Remove header 49 | return {} 50 | end, 51 | Para = function(el) 52 | if (paraNum == 0) then 53 | -- first paragraph is title sentence 54 | if (el.content and el.content[1].t ~= "Strong") then 55 | el.content = pandoc.Inlines(pandoc.Strong(el.content)) 56 | end 57 | el.content:insert(1, pandoc.RawInline('tex', '{')) 58 | el.content:insert(pandoc.RawInline('tex', '}')) 59 | elseif (paraNum == 1) then 60 | -- ok 61 | else 62 | error('Only two paragraph are allowed in supplementary section div') 63 | end 64 | 65 | para:insert(el) 66 | paraNum = paraNum + 1 67 | -- remove Para 68 | return {} 69 | end 70 | } 71 | -- Build the new paragraph content 72 | header:extend({pandoc.Str("\n"), pandoc.RawInline("tex", "\\label{"..labelId.."}"), pandoc.Str("\n")}) 73 | para = pandoc.utils.blocks_to_inlines(para, {pandoc.Space()}) 74 | header:extend(para) 75 | -- Return the new para in place of the Div 76 | return pandoc.Para(header) 77 | end 78 | end 79 | end, 80 | } 81 | } -------------------------------------------------------------------------------- /examples/_extensions/quarto-journals/plos/partials/_affiliations.tex: -------------------------------------------------------------------------------- 1 | \textbf{$it.number$} $if(it.name)$$it.name$, $endif$$if(it.department)$$it.department$, $endif$$if(it.address)$$it.address$, $endif$$if(it.city)$$it.city$, $endif$$if(it.postal-code)$$it.postal-code$, $endif$$if(it.region)$$it.region$, $endif$$if(it.country)$$it.country$, $endif$$if(it.url)$$it.url$, $endif$ 2 | -------------------------------------------------------------------------------- /examples/_extensions/quarto-journals/plos/partials/_authors.tex: -------------------------------------------------------------------------------- 1 | $it.name.literal$\textsuperscript{$for(it.affiliations)$$it.number$$sep$,$endfor$$if(it.attributes.equal-contributor)$\Yinyang$endif$$if(it.attributes.corresponding)$*$endif$$if(it.attributes.deceased)$\dag$endif$$if(it.metadata.group)$\textpilcrow$endif$} 2 | -------------------------------------------------------------------------------- /examples/_extensions/quarto-journals/plos/partials/before-bib.tex: -------------------------------------------------------------------------------- 1 | $-- Placed after the content of the document, but before the bibliography. 2 | $-- %%%% TODO %%%%% 3 | $-- Use it if you need to insert content at this specific place of the main Pandoc's template. Otherwise, remove it. 4 | $-- %%%%%%%%%%%%%%% 5 | 6 | \nolinenumbers -------------------------------------------------------------------------------- /examples/_extensions/quarto-journals/plos/partials/before-body.tex: -------------------------------------------------------------------------------- 1 | $-- PLOS insert title and author within the main body 2 | $-- Use this template to insert the necessary pieces before any content provided in .qmd file 3 | \vspace*{0.2in} 4 | 5 | % Title must be 250 characters or less. 6 | \begin{flushleft} 7 | {\Large 8 | \textbf\newline{$title$} % Please use "sentence case" for title and headings (capitalize only the first word in a title (or heading), the first word in a subtitle (or subheading), and any proper nouns). 9 | } 10 | \newline 11 | \\ 12 | % Insert author names, affiliations and corresponding author email (do not include titles, positions, or degrees). 13 | $by-author:_authors.tex()[, ]$ 14 | \\ 15 | \bigskip 16 | $by-affiliation:_affiliations.tex()[\\ ]$ 17 | \bigskip 18 | 19 | % Insert additional author notes using the symbols described below. Insert symbol callouts after author names as necessary. 20 | % 21 | % Remove or comment out the author notes below if they aren't used. 22 | % 23 | % Primary Equal Contribution Note 24 | \Yinyang $if(author-notes.equal-contributor)$$author-notes.equal-contributor$$else$These authors contributed equally to this work.$endif$ 25 | 26 | % Additional Equal Contribution Note 27 | % Also use this double-dagger symbol for special authorship notes, such as senior authorship. 28 | %\ddag These authors also contributed equally to this work. 29 | 30 | % Current address notes 31 | \textcurrency Current Address: Dept/Program/Center, Institution Name, City, State, Country % change symbol to "\textcurrency a" if more than one current address note 32 | % \textcurrency b Insert second current address 33 | % \textcurrency c Insert third current address 34 | 35 | % Deceased author note 36 | \dag $if(author-notes.deceased)$$author-notes.deceased$$else$Deceased$endif$ 37 | 38 | % Group/Consortium Author Note 39 | \textpilcrow $if(author-notes.group)$$author-notes.group$$else$Membership list can be found in the Acknowledgments section.$endif$ 40 | 41 | % Use the asterisk to denote corresponding authorship and provide email address in note below. 42 | $for(by-author)$ 43 | $if(by-author.attributes.corresponding)$ 44 | * $by-author.email$ 45 | $endif$ 46 | $endfor$ 47 | 48 | \end{flushleft} 49 | 50 | $if(abstract)$ 51 | \section*{Abstract} 52 | $abstract$ 53 | $endif$ 54 | 55 | $if(author-summary)$ 56 | \section*{Author summary} 57 | $author-summary$ 58 | $endif$ 59 | 60 | \linenumbers -------------------------------------------------------------------------------- /examples/_extensions/quarto-journals/plos/partials/biblio.tex: -------------------------------------------------------------------------------- 1 | $-- Necessary content to creates the bibliography. 2 | $-- 3 | $-- %%%% TODO %%%%% 4 | $-- Customize is needed, otherwise remove this partials to use Quarto default one 5 | $-- %%%%%%%%%%%%%%%% 6 | $if(natbib)$ 7 | $if(bibliography)$ 8 | $if(biblio-title)$ 9 | $if(has-chapters)$ 10 | \renewcommand\bibname{$biblio-title$} 11 | $else$ 12 | \renewcommand\refname{$biblio-title$} 13 | $endif$ 14 | $endif$ 15 | \bibliography{$for(bibliography)$$bibliography$$sep$,$endfor$} 16 | $endif$ 17 | $endif$ -------------------------------------------------------------------------------- /examples/_extensions/quarto-journals/plos/partials/doc-class.tex: -------------------------------------------------------------------------------- 1 | $-- Contains the document class declaration and options. 2 | $-- By default we provide the identical document class that Pandoc provides, implementing many features. 3 | $-- If provide this partial in your format, you will need to either implement support for the usaul document class options in addition to other one 4 | $-- or be aware that pandoc supported options (e.g. font-size, paper-size, classoption, etc…) will not be supported in your format. 5 | $-- 6 | $-- %%%% TODO %%%%% 7 | $-- Customize is needed, otherwise remove this partials to use Quarto default one 8 | $-- %%%%%%%%%%%%%%%% 9 | 10 | 11 | \PassOptionsToPackage{table}{xcolor} 12 | 13 | \documentclass[ 14 | $if(fontsize)$ 15 | $fontsize$, 16 | $endif$ 17 | $if(papersize)$ 18 | $papersize$paper, 19 | $endif$ 20 | $if(beamer)$ 21 | ignorenonframetext, 22 | $if(handout)$ 23 | handout, 24 | $endif$ 25 | $if(aspectratio)$ 26 | aspectratio=$aspectratio$, 27 | $endif$ 28 | $endif$ 29 | $for(classoption)$ 30 | $classoption$$sep$, 31 | $endfor$ 32 | ]{$documentclass$} -------------------------------------------------------------------------------- /examples/_extensions/quarto-journals/plos/partials/title.tex: -------------------------------------------------------------------------------- 1 | $-- Provides configuration of document metadata for writing the title block. 2 | $-- Note that in addition to these templates and partials, Quarto will also make normalized authors and affiliations data available to the template, 3 | $-- making is easy to write custom title blocks against a standard schema. 4 | $-- 5 | $-- %%%% TODO %%%%% 6 | $-- Customize is needed, otherwise remove this partials to use Quarto default one 7 | $-- %%%%%%%%%%%%%%%% 8 | 9 | $-- PLOS does not add title outside of document body. We make this template empty -------------------------------------------------------------------------------- /examples/_quarto.yml: -------------------------------------------------------------------------------- 1 | project: 2 | type: default 3 | output-dir: "output" 4 | -------------------------------------------------------------------------------- /examples/corner-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jthomasmock/quarto-reporting/7dfe573d3363d81169ea967bb4b779ef92a98f68/examples/corner-bg.png -------------------------------------------------------------------------------- /examples/howard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jthomasmock/quarto-reporting/7dfe573d3363d81169ea967bb4b779ef92a98f68/examples/howard.png -------------------------------------------------------------------------------- /examples/output/330px-BostonTerrier001.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jthomasmock/quarto-reporting/7dfe573d3363d81169ea967bb4b779ef92a98f68/examples/output/330px-BostonTerrier001.jpeg -------------------------------------------------------------------------------- /examples/output/330px-Boston_Terrier_Eden_Forever.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jthomasmock/quarto-reporting/7dfe573d3363d81169ea967bb4b779ef92a98f68/examples/output/330px-Boston_Terrier_Eden_Forever.jpeg -------------------------------------------------------------------------------- /examples/output/330px-Boston_Terrier_male.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jthomasmock/quarto-reporting/7dfe573d3363d81169ea967bb4b779ef92a98f68/examples/output/330px-Boston_Terrier_male.jpeg -------------------------------------------------------------------------------- /examples/output/Terrier_Seated_(Boston_Public_Library).jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jthomasmock/quarto-reporting/7dfe573d3363d81169ea967bb4b779ef92a98f68/examples/output/Terrier_Seated_(Boston_Public_Library).jpeg -------------------------------------------------------------------------------- /examples/output/example-pdf_files/libs/bootstrap/bootstrap-icons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jthomasmock/quarto-reporting/7dfe573d3363d81169ea967bb4b779ef92a98f68/examples/output/example-pdf_files/libs/bootstrap/bootstrap-icons.woff -------------------------------------------------------------------------------- /examples/output/example-pdf_files/libs/quarto-html/quarto-syntax-highlighting.css: -------------------------------------------------------------------------------- 1 | /* quarto syntax highlight colors */ 2 | :root { 3 | --quarto-hl-ot-color: #003B4F; 4 | --quarto-hl-at-color: #657422; 5 | --quarto-hl-ss-color: #20794D; 6 | --quarto-hl-an-color: #5E5E5E; 7 | --quarto-hl-fu-color: #4758AB; 8 | --quarto-hl-st-color: #20794D; 9 | --quarto-hl-cf-color: #003B4F; 10 | --quarto-hl-op-color: #5E5E5E; 11 | --quarto-hl-er-color: #AD0000; 12 | --quarto-hl-bn-color: #AD0000; 13 | --quarto-hl-al-color: #AD0000; 14 | --quarto-hl-va-color: #111111; 15 | --quarto-hl-bu-color: inherit; 16 | --quarto-hl-ex-color: inherit; 17 | --quarto-hl-pp-color: #AD0000; 18 | --quarto-hl-in-color: #5E5E5E; 19 | --quarto-hl-vs-color: #20794D; 20 | --quarto-hl-wa-color: #5E5E5E; 21 | --quarto-hl-do-color: #5E5E5E; 22 | --quarto-hl-im-color: #00769E; 23 | --quarto-hl-ch-color: #20794D; 24 | --quarto-hl-dt-color: #AD0000; 25 | --quarto-hl-fl-color: #AD0000; 26 | --quarto-hl-co-color: #5E5E5E; 27 | --quarto-hl-cv-color: #5E5E5E; 28 | --quarto-hl-cn-color: #8f5902; 29 | --quarto-hl-sc-color: #5E5E5E; 30 | --quarto-hl-dv-color: #AD0000; 31 | --quarto-hl-kw-color: #003B4F; 32 | } 33 | 34 | /* other quarto variables */ 35 | :root { 36 | --quarto-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; 37 | } 38 | 39 | pre > code.sourceCode > span { 40 | color: #003B4F; 41 | } 42 | 43 | code span { 44 | color: #003B4F; 45 | } 46 | 47 | code.sourceCode > span { 48 | color: #003B4F; 49 | } 50 | 51 | div.sourceCode, 52 | div.sourceCode pre.sourceCode { 53 | color: #003B4F; 54 | } 55 | 56 | code span.ot { 57 | color: #003B4F; 58 | } 59 | 60 | code span.at { 61 | color: #657422; 62 | } 63 | 64 | code span.ss { 65 | color: #20794D; 66 | } 67 | 68 | code span.an { 69 | color: #5E5E5E; 70 | } 71 | 72 | code span.fu { 73 | color: #4758AB; 74 | } 75 | 76 | code span.st { 77 | color: #20794D; 78 | } 79 | 80 | code span.cf { 81 | color: #003B4F; 82 | } 83 | 84 | code span.op { 85 | color: #5E5E5E; 86 | } 87 | 88 | code span.er { 89 | color: #AD0000; 90 | } 91 | 92 | code span.bn { 93 | color: #AD0000; 94 | } 95 | 96 | code span.al { 97 | color: #AD0000; 98 | } 99 | 100 | code span.va { 101 | color: #111111; 102 | } 103 | 104 | code span.pp { 105 | color: #AD0000; 106 | } 107 | 108 | code span.in { 109 | color: #5E5E5E; 110 | } 111 | 112 | code span.vs { 113 | color: #20794D; 114 | } 115 | 116 | code span.wa { 117 | color: #5E5E5E; 118 | font-style: italic; 119 | } 120 | 121 | code span.do { 122 | color: #5E5E5E; 123 | font-style: italic; 124 | } 125 | 126 | code span.im { 127 | color: #00769E; 128 | } 129 | 130 | code span.ch { 131 | color: #20794D; 132 | } 133 | 134 | code span.dt { 135 | color: #AD0000; 136 | } 137 | 138 | code span.fl { 139 | color: #AD0000; 140 | } 141 | 142 | code span.co { 143 | color: #5E5E5E; 144 | } 145 | 146 | code span.cv { 147 | color: #5E5E5E; 148 | font-style: italic; 149 | } 150 | 151 | code span.cn { 152 | color: #8f5902; 153 | } 154 | 155 | code span.sc { 156 | color: #5E5E5E; 157 | } 158 | 159 | code span.dv { 160 | color: #AD0000; 161 | } 162 | 163 | code span.kw { 164 | color: #003B4F; 165 | } 166 | 167 | .prevent-inlining { 168 | content: ".tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-7px;left:0;border-width:8px 8px 0;border-top-color:initial;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-7px;left:0;border-width:0 8px 8px;border-bottom-color:initial;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-width:8px 0 8px 8px;border-left-color:initial;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-7px;border-width:8px 8px 8px 0;border-right-color:initial;transform-origin:center right}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{width:16px;height:16px;color:#333}.tippy-arrow:before{content:"";position:absolute;border-color:transparent;border-style:solid}.tippy-content{position:relative;padding:5px 9px;z-index:1} -------------------------------------------------------------------------------- /examples/output/history_files/libs/bootstrap/bootstrap-icons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jthomasmock/quarto-reporting/7dfe573d3363d81169ea967bb4b779ef92a98f68/examples/output/history_files/libs/bootstrap/bootstrap-icons.woff -------------------------------------------------------------------------------- /examples/output/history_files/libs/quarto-html/anchor.min.js: -------------------------------------------------------------------------------- 1 | // @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt Expat 2 | // 3 | // AnchorJS - v4.3.1 - 2021-04-17 4 | // https://www.bryanbraun.com/anchorjs/ 5 | // Copyright (c) 2021 Bryan Braun; Licensed MIT 6 | // 7 | // @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt Expat 8 | !function(A,e){"use strict";"function"==typeof define&&define.amd?define([],e):"object"==typeof module&&module.exports?module.exports=e():(A.AnchorJS=e(),A.anchors=new A.AnchorJS)}(this,function(){"use strict";return function(A){function d(A){A.icon=Object.prototype.hasOwnProperty.call(A,"icon")?A.icon:"",A.visible=Object.prototype.hasOwnProperty.call(A,"visible")?A.visible:"hover",A.placement=Object.prototype.hasOwnProperty.call(A,"placement")?A.placement:"right",A.ariaLabel=Object.prototype.hasOwnProperty.call(A,"ariaLabel")?A.ariaLabel:"Anchor",A.class=Object.prototype.hasOwnProperty.call(A,"class")?A.class:"",A.base=Object.prototype.hasOwnProperty.call(A,"base")?A.base:"",A.truncate=Object.prototype.hasOwnProperty.call(A,"truncate")?Math.floor(A.truncate):64,A.titleText=Object.prototype.hasOwnProperty.call(A,"titleText")?A.titleText:""}function w(A){var e;if("string"==typeof A||A instanceof String)e=[].slice.call(document.querySelectorAll(A));else{if(!(Array.isArray(A)||A instanceof NodeList))throw new TypeError("The selector provided to AnchorJS was invalid.");e=[].slice.call(A)}return e}this.options=A||{},this.elements=[],d(this.options),this.isTouchDevice=function(){return Boolean("ontouchstart"in window||window.TouchEvent||window.DocumentTouch&&document instanceof DocumentTouch)},this.add=function(A){var e,t,o,i,n,s,a,c,r,l,h,u,p=[];if(d(this.options),"touch"===(l=this.options.visible)&&(l=this.isTouchDevice()?"always":"hover"),0===(e=w(A=A||"h2, h3, h4, h5, h6")).length)return this;for(null===document.head.querySelector("style.anchorjs")&&((u=document.createElement("style")).className="anchorjs",u.appendChild(document.createTextNode("")),void 0===(A=document.head.querySelector('[rel="stylesheet"],style'))?document.head.appendChild(u):document.head.insertBefore(u,A),u.sheet.insertRule(".anchorjs-link{opacity:0;text-decoration:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}",u.sheet.cssRules.length),u.sheet.insertRule(":hover>.anchorjs-link,.anchorjs-link:focus{opacity:1}",u.sheet.cssRules.length),u.sheet.insertRule("[data-anchorjs-icon]::after{content:attr(data-anchorjs-icon)}",u.sheet.cssRules.length),u.sheet.insertRule('@font-face{font-family:anchorjs-icons;src:url(data:n/a;base64,AAEAAAALAIAAAwAwT1MvMg8yG2cAAAE4AAAAYGNtYXDp3gC3AAABpAAAAExnYXNwAAAAEAAAA9wAAAAIZ2x5ZlQCcfwAAAH4AAABCGhlYWQHFvHyAAAAvAAAADZoaGVhBnACFwAAAPQAAAAkaG10eASAADEAAAGYAAAADGxvY2EACACEAAAB8AAAAAhtYXhwAAYAVwAAARgAAAAgbmFtZQGOH9cAAAMAAAAAunBvc3QAAwAAAAADvAAAACAAAQAAAAEAAHzE2p9fDzz1AAkEAAAAAADRecUWAAAAANQA6R8AAAAAAoACwAAAAAgAAgAAAAAAAAABAAADwP/AAAACgAAA/9MCrQABAAAAAAAAAAAAAAAAAAAAAwABAAAAAwBVAAIAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAMCQAGQAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAg//0DwP/AAEADwABAAAAAAQAAAAAAAAAAAAAAIAAAAAAAAAIAAAACgAAxAAAAAwAAAAMAAAAcAAEAAwAAABwAAwABAAAAHAAEADAAAAAIAAgAAgAAACDpy//9//8AAAAg6cv//f///+EWNwADAAEAAAAAAAAAAAAAAAAACACEAAEAAAAAAAAAAAAAAAAxAAACAAQARAKAAsAAKwBUAAABIiYnJjQ3NzY2MzIWFxYUBwcGIicmNDc3NjQnJiYjIgYHBwYUFxYUBwYGIwciJicmNDc3NjIXFhQHBwYUFxYWMzI2Nzc2NCcmNDc2MhcWFAcHBgYjARQGDAUtLXoWOR8fORYtLTgKGwoKCjgaGg0gEhIgDXoaGgkJBQwHdR85Fi0tOAobCgoKOBoaDSASEiANehoaCQkKGwotLXoWOR8BMwUFLYEuehYXFxYugC44CQkKGwo4GkoaDQ0NDXoaShoKGwoFBe8XFi6ALjgJCQobCjgaShoNDQ0NehpKGgobCgoKLYEuehYXAAAADACWAAEAAAAAAAEACAAAAAEAAAAAAAIAAwAIAAEAAAAAAAMACAAAAAEAAAAAAAQACAAAAAEAAAAAAAUAAQALAAEAAAAAAAYACAAAAAMAAQQJAAEAEAAMAAMAAQQJAAIABgAcAAMAAQQJAAMAEAAMAAMAAQQJAAQAEAAMAAMAAQQJAAUAAgAiAAMAAQQJAAYAEAAMYW5jaG9yanM0MDBAAGEAbgBjAGgAbwByAGoAcwA0ADAAMABAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAH//wAP) format("truetype")}',u.sheet.cssRules.length)),u=document.querySelectorAll("[id]"),t=[].map.call(u,function(A){return A.id}),i=0;i\]./()*\\\n\t\b\v\u00A0]/g,"-").replace(/-{2,}/g,"-").substring(0,this.options.truncate).replace(/^-+|-+$/gm,"").toLowerCase()},this.hasAnchorJSLink=function(A){var e=A.firstChild&&-1<(" "+A.firstChild.className+" ").indexOf(" anchorjs-link "),A=A.lastChild&&-1<(" "+A.lastChild.className+" ").indexOf(" anchorjs-link ");return e||A||!1}}}); 9 | // @license-end -------------------------------------------------------------------------------- /examples/output/history_files/libs/quarto-html/quarto-syntax-highlighting.css: -------------------------------------------------------------------------------- 1 | /* quarto syntax highlight colors */ 2 | :root { 3 | --quarto-hl-ot-color: #003B4F; 4 | --quarto-hl-at-color: #657422; 5 | --quarto-hl-ss-color: #20794D; 6 | --quarto-hl-an-color: #5E5E5E; 7 | --quarto-hl-fu-color: #4758AB; 8 | --quarto-hl-st-color: #20794D; 9 | --quarto-hl-cf-color: #003B4F; 10 | --quarto-hl-op-color: #5E5E5E; 11 | --quarto-hl-er-color: #AD0000; 12 | --quarto-hl-bn-color: #AD0000; 13 | --quarto-hl-al-color: #AD0000; 14 | --quarto-hl-va-color: #111111; 15 | --quarto-hl-bu-color: inherit; 16 | --quarto-hl-ex-color: inherit; 17 | --quarto-hl-pp-color: #AD0000; 18 | --quarto-hl-in-color: #5E5E5E; 19 | --quarto-hl-vs-color: #20794D; 20 | --quarto-hl-wa-color: #5E5E5E; 21 | --quarto-hl-do-color: #5E5E5E; 22 | --quarto-hl-im-color: #00769E; 23 | --quarto-hl-ch-color: #20794D; 24 | --quarto-hl-dt-color: #AD0000; 25 | --quarto-hl-fl-color: #AD0000; 26 | --quarto-hl-co-color: #5E5E5E; 27 | --quarto-hl-cv-color: #5E5E5E; 28 | --quarto-hl-cn-color: #8f5902; 29 | --quarto-hl-sc-color: #5E5E5E; 30 | --quarto-hl-dv-color: #AD0000; 31 | --quarto-hl-kw-color: #003B4F; 32 | } 33 | 34 | /* other quarto variables */ 35 | :root { 36 | --quarto-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; 37 | } 38 | 39 | pre > code.sourceCode > span { 40 | color: #003B4F; 41 | } 42 | 43 | code span { 44 | color: #003B4F; 45 | } 46 | 47 | code.sourceCode > span { 48 | color: #003B4F; 49 | } 50 | 51 | div.sourceCode, 52 | div.sourceCode pre.sourceCode { 53 | color: #003B4F; 54 | } 55 | 56 | code span.ot { 57 | color: #003B4F; 58 | } 59 | 60 | code span.at { 61 | color: #657422; 62 | } 63 | 64 | code span.ss { 65 | color: #20794D; 66 | } 67 | 68 | code span.an { 69 | color: #5E5E5E; 70 | } 71 | 72 | code span.fu { 73 | color: #4758AB; 74 | } 75 | 76 | code span.st { 77 | color: #20794D; 78 | } 79 | 80 | code span.cf { 81 | color: #003B4F; 82 | } 83 | 84 | code span.op { 85 | color: #5E5E5E; 86 | } 87 | 88 | code span.er { 89 | color: #AD0000; 90 | } 91 | 92 | code span.bn { 93 | color: #AD0000; 94 | } 95 | 96 | code span.al { 97 | color: #AD0000; 98 | } 99 | 100 | code span.va { 101 | color: #111111; 102 | } 103 | 104 | code span.pp { 105 | color: #AD0000; 106 | } 107 | 108 | code span.in { 109 | color: #5E5E5E; 110 | } 111 | 112 | code span.vs { 113 | color: #20794D; 114 | } 115 | 116 | code span.wa { 117 | color: #5E5E5E; 118 | font-style: italic; 119 | } 120 | 121 | code span.do { 122 | color: #5E5E5E; 123 | font-style: italic; 124 | } 125 | 126 | code span.im { 127 | color: #00769E; 128 | } 129 | 130 | code span.ch { 131 | color: #20794D; 132 | } 133 | 134 | code span.dt { 135 | color: #AD0000; 136 | } 137 | 138 | code span.fl { 139 | color: #AD0000; 140 | } 141 | 142 | code span.co { 143 | color: #5E5E5E; 144 | } 145 | 146 | code span.cv { 147 | color: #5E5E5E; 148 | font-style: italic; 149 | } 150 | 151 | code span.cn { 152 | color: #8f5902; 153 | } 154 | 155 | code span.sc { 156 | color: #5E5E5E; 157 | } 158 | 159 | code span.dv { 160 | color: #AD0000; 161 | } 162 | 163 | code span.kw { 164 | color: #003B4F; 165 | } 166 | 167 | .prevent-inlining { 168 | content: ".tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-7px;left:0;border-width:8px 8px 0;border-top-color:initial;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-7px;left:0;border-width:0 8px 8px;border-bottom-color:initial;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-width:8px 0 8px 8px;border-left-color:initial;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-7px;border-width:8px 8px 8px 0;border-right-color:initial;transform-origin:center right}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{width:16px;height:16px;color:#333}.tippy-arrow:before{content:"";position:absolute;border-color:transparent;border-style:solid}.tippy-content{position:relative;padding:5px 9px;z-index:1} -------------------------------------------------------------------------------- /examples/output/penguin-report_files/figure-html/unnamed-chunk-2-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jthomasmock/quarto-reporting/7dfe573d3363d81169ea967bb4b779ef92a98f68/examples/output/penguin-report_files/figure-html/unnamed-chunk-2-1.png -------------------------------------------------------------------------------- /examples/output/penguin-report_files/libs/bootstrap/bootstrap-icons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jthomasmock/quarto-reporting/7dfe573d3363d81169ea967bb4b779ef92a98f68/examples/output/penguin-report_files/libs/bootstrap/bootstrap-icons.woff -------------------------------------------------------------------------------- /examples/output/penguin-report_files/libs/quarto-html/quarto-syntax-highlighting.css: -------------------------------------------------------------------------------- 1 | /* quarto syntax highlight colors */ 2 | :root { 3 | --quarto-hl-ot-color: #003B4F; 4 | --quarto-hl-at-color: #657422; 5 | --quarto-hl-ss-color: #20794D; 6 | --quarto-hl-an-color: #5E5E5E; 7 | --quarto-hl-fu-color: #4758AB; 8 | --quarto-hl-st-color: #20794D; 9 | --quarto-hl-cf-color: #003B4F; 10 | --quarto-hl-op-color: #5E5E5E; 11 | --quarto-hl-er-color: #AD0000; 12 | --quarto-hl-bn-color: #AD0000; 13 | --quarto-hl-al-color: #AD0000; 14 | --quarto-hl-va-color: #111111; 15 | --quarto-hl-bu-color: inherit; 16 | --quarto-hl-ex-color: inherit; 17 | --quarto-hl-pp-color: #AD0000; 18 | --quarto-hl-in-color: #5E5E5E; 19 | --quarto-hl-vs-color: #20794D; 20 | --quarto-hl-wa-color: #5E5E5E; 21 | --quarto-hl-do-color: #5E5E5E; 22 | --quarto-hl-im-color: #00769E; 23 | --quarto-hl-ch-color: #20794D; 24 | --quarto-hl-dt-color: #AD0000; 25 | --quarto-hl-fl-color: #AD0000; 26 | --quarto-hl-co-color: #5E5E5E; 27 | --quarto-hl-cv-color: #5E5E5E; 28 | --quarto-hl-cn-color: #8f5902; 29 | --quarto-hl-sc-color: #5E5E5E; 30 | --quarto-hl-dv-color: #AD0000; 31 | --quarto-hl-kw-color: #003B4F; 32 | } 33 | 34 | /* other quarto variables */ 35 | :root { 36 | --quarto-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; 37 | } 38 | 39 | pre > code.sourceCode > span { 40 | color: #003B4F; 41 | } 42 | 43 | code span { 44 | color: #003B4F; 45 | } 46 | 47 | code.sourceCode > span { 48 | color: #003B4F; 49 | } 50 | 51 | div.sourceCode, 52 | div.sourceCode pre.sourceCode { 53 | color: #003B4F; 54 | } 55 | 56 | code span.ot { 57 | color: #003B4F; 58 | } 59 | 60 | code span.at { 61 | color: #657422; 62 | } 63 | 64 | code span.ss { 65 | color: #20794D; 66 | } 67 | 68 | code span.an { 69 | color: #5E5E5E; 70 | } 71 | 72 | code span.fu { 73 | color: #4758AB; 74 | } 75 | 76 | code span.st { 77 | color: #20794D; 78 | } 79 | 80 | code span.cf { 81 | color: #003B4F; 82 | } 83 | 84 | code span.op { 85 | color: #5E5E5E; 86 | } 87 | 88 | code span.er { 89 | color: #AD0000; 90 | } 91 | 92 | code span.bn { 93 | color: #AD0000; 94 | } 95 | 96 | code span.al { 97 | color: #AD0000; 98 | } 99 | 100 | code span.va { 101 | color: #111111; 102 | } 103 | 104 | code span.pp { 105 | color: #AD0000; 106 | } 107 | 108 | code span.in { 109 | color: #5E5E5E; 110 | } 111 | 112 | code span.vs { 113 | color: #20794D; 114 | } 115 | 116 | code span.wa { 117 | color: #5E5E5E; 118 | font-style: italic; 119 | } 120 | 121 | code span.do { 122 | color: #5E5E5E; 123 | font-style: italic; 124 | } 125 | 126 | code span.im { 127 | color: #00769E; 128 | } 129 | 130 | code span.ch { 131 | color: #20794D; 132 | } 133 | 134 | code span.dt { 135 | color: #AD0000; 136 | } 137 | 138 | code span.fl { 139 | color: #AD0000; 140 | } 141 | 142 | code span.co { 143 | color: #5E5E5E; 144 | } 145 | 146 | code span.cv { 147 | color: #5E5E5E; 148 | font-style: italic; 149 | } 150 | 151 | code span.cn { 152 | color: #8f5902; 153 | } 154 | 155 | code span.sc { 156 | color: #5E5E5E; 157 | } 158 | 159 | code span.dv { 160 | color: #AD0000; 161 | } 162 | 163 | code span.kw { 164 | color: #003B4F; 165 | } 166 | 167 | .prevent-inlining { 168 | content: ".tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-7px;left:0;border-width:8px 8px 0;border-top-color:initial;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-7px;left:0;border-width:0 8px 8px;border-bottom-color:initial;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-width:8px 0 8px 8px;border-left-color:initial;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-7px;border-width:8px 8px 8px 0;border-right-color:initial;transform-origin:center right}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{width:16px;height:16px;color:#333}.tippy-arrow:before{content:"";position:absolute;border-color:transparent;border-style:solid}.tippy-content{position:relative;padding:5px 9px;z-index:1} -------------------------------------------------------------------------------- /examples/output/tidymodels-example_files/libs/bootstrap/bootstrap-icons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jthomasmock/quarto-reporting/7dfe573d3363d81169ea967bb4b779ef92a98f68/examples/output/tidymodels-example_files/libs/bootstrap/bootstrap-icons.woff -------------------------------------------------------------------------------- /examples/output/tidymodels-example_files/libs/quarto-html/quarto-syntax-highlighting.css: -------------------------------------------------------------------------------- 1 | /* quarto syntax highlight colors */ 2 | :root { 3 | --quarto-hl-ot-color: #003B4F; 4 | --quarto-hl-at-color: #657422; 5 | --quarto-hl-ss-color: #20794D; 6 | --quarto-hl-an-color: #5E5E5E; 7 | --quarto-hl-fu-color: #4758AB; 8 | --quarto-hl-st-color: #20794D; 9 | --quarto-hl-cf-color: #003B4F; 10 | --quarto-hl-op-color: #5E5E5E; 11 | --quarto-hl-er-color: #AD0000; 12 | --quarto-hl-bn-color: #AD0000; 13 | --quarto-hl-al-color: #AD0000; 14 | --quarto-hl-va-color: #111111; 15 | --quarto-hl-bu-color: inherit; 16 | --quarto-hl-ex-color: inherit; 17 | --quarto-hl-pp-color: #AD0000; 18 | --quarto-hl-in-color: #5E5E5E; 19 | --quarto-hl-vs-color: #20794D; 20 | --quarto-hl-wa-color: #5E5E5E; 21 | --quarto-hl-do-color: #5E5E5E; 22 | --quarto-hl-im-color: #00769E; 23 | --quarto-hl-ch-color: #20794D; 24 | --quarto-hl-dt-color: #AD0000; 25 | --quarto-hl-fl-color: #AD0000; 26 | --quarto-hl-co-color: #5E5E5E; 27 | --quarto-hl-cv-color: #5E5E5E; 28 | --quarto-hl-cn-color: #8f5902; 29 | --quarto-hl-sc-color: #5E5E5E; 30 | --quarto-hl-dv-color: #AD0000; 31 | --quarto-hl-kw-color: #003B4F; 32 | } 33 | 34 | /* other quarto variables */ 35 | :root { 36 | --quarto-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; 37 | } 38 | 39 | pre > code.sourceCode > span { 40 | color: #003B4F; 41 | } 42 | 43 | code span { 44 | color: #003B4F; 45 | } 46 | 47 | code.sourceCode > span { 48 | color: #003B4F; 49 | } 50 | 51 | div.sourceCode, 52 | div.sourceCode pre.sourceCode { 53 | color: #003B4F; 54 | } 55 | 56 | code span.ot { 57 | color: #003B4F; 58 | } 59 | 60 | code span.at { 61 | color: #657422; 62 | } 63 | 64 | code span.ss { 65 | color: #20794D; 66 | } 67 | 68 | code span.an { 69 | color: #5E5E5E; 70 | } 71 | 72 | code span.fu { 73 | color: #4758AB; 74 | } 75 | 76 | code span.st { 77 | color: #20794D; 78 | } 79 | 80 | code span.cf { 81 | color: #003B4F; 82 | } 83 | 84 | code span.op { 85 | color: #5E5E5E; 86 | } 87 | 88 | code span.er { 89 | color: #AD0000; 90 | } 91 | 92 | code span.bn { 93 | color: #AD0000; 94 | } 95 | 96 | code span.al { 97 | color: #AD0000; 98 | } 99 | 100 | code span.va { 101 | color: #111111; 102 | } 103 | 104 | code span.pp { 105 | color: #AD0000; 106 | } 107 | 108 | code span.in { 109 | color: #5E5E5E; 110 | } 111 | 112 | code span.vs { 113 | color: #20794D; 114 | } 115 | 116 | code span.wa { 117 | color: #5E5E5E; 118 | font-style: italic; 119 | } 120 | 121 | code span.do { 122 | color: #5E5E5E; 123 | font-style: italic; 124 | } 125 | 126 | code span.im { 127 | color: #00769E; 128 | } 129 | 130 | code span.ch { 131 | color: #20794D; 132 | } 133 | 134 | code span.dt { 135 | color: #AD0000; 136 | } 137 | 138 | code span.fl { 139 | color: #AD0000; 140 | } 141 | 142 | code span.co { 143 | color: #5E5E5E; 144 | } 145 | 146 | code span.cv { 147 | color: #5E5E5E; 148 | font-style: italic; 149 | } 150 | 151 | code span.cn { 152 | color: #8f5902; 153 | } 154 | 155 | code span.sc { 156 | color: #5E5E5E; 157 | } 158 | 159 | code span.dv { 160 | color: #AD0000; 161 | } 162 | 163 | code span.kw { 164 | color: #003B4F; 165 | } 166 | 167 | .prevent-inlining { 168 | content: ".tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-7px;left:0;border-width:8px 8px 0;border-top-color:initial;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-7px;left:0;border-width:0 8px 8px;border-bottom-color:initial;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-width:8px 0 8px 8px;border-left-color:initial;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-7px;border-width:8px 8px 8px 0;border-right-color:initial;transform-origin:center right}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{width:16px;height:16px;color:#333}.tippy-arrow:before{content:"";position:absolute;border-color:transparent;border-style:solid}.tippy-content{position:relative;padding:5px 9px;z-index:1} -------------------------------------------------------------------------------- /examples/penguin-report.qmd: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Penguins" 3 | date: today 4 | format: html 5 | params: 6 | species: Adelie 7 | --- 8 | 9 | ```{r} 10 | #| label: setup 11 | #| include: false 12 | library(tidyverse) 13 | library(palmerpenguins) 14 | 15 | penguin_filter <- penguins |> 16 | filter(species == params$species, 17 | !is.na(body_mass_g)) 18 | diff_rows <- nrow(penguins) - nrow(penguin_filter) 19 | ``` 20 | 21 | We have data about `r nrow(penguins)` penguins. Only 22 | `r diff_rows` are classified as `r params$species`. The 23 | distribution of the `r params$species` penguins are shown below: 24 | 25 | ```{r} 26 | #| echo: false 27 | penguin_filter |> 28 | ggplot(aes(body_mass_g)) + 29 | geom_histogram(binwidth = 100) 30 | ``` 31 | -------------------------------------------------------------------------------- /examples/tidymodels-example.qmd: -------------------------------------------------------------------------------- 1 | --- 2 | format: html 3 | params: 4 | engine: "ranger" 5 | --- 6 | 7 | ### Ames Housing Dataset 8 | 9 | ```{r} 10 | library(tidymodels) 11 | 12 | data(ames) 13 | 14 | set.seed(4595) 15 | data_split <- initial_split(ames, strata = "Sale_Price", prop = 0.75) 16 | 17 | ames_train <- training(data_split) 18 | ames_test <- testing(data_split) 19 | 20 | ``` 21 | 22 | ## Random Forest 23 | 24 | ```{r} 25 | rf_defaults <- rand_forest(mode = "regression", mtry = 3, trees = 1000) 26 | rf_defaults 27 | ``` 28 | 29 | ## Fit a model 30 | 31 | ```{r} 32 | preds <- c("Longitude", "Latitude", "Lot_Area", "Neighborhood", "Year_Sold") 33 | 34 | rf_xy_fit <- 35 | rf_defaults %>% 36 | set_engine(params$engine) %>% 37 | fit( 38 | log10(Sale_Price) ~ Longitude + Latitude + Lot_Area + Neighborhood + Year_Sold, 39 | data = ames_train 40 | ) 41 | 42 | rf_xy_fit 43 | ``` 44 | 45 | ## Predict 46 | 47 | ```{r} 48 | test_results <- 49 | ames_test %>% 50 | select(Sale_Price) %>% 51 | mutate(Sale_Price = log10(Sale_Price)) %>% 52 | bind_cols( 53 | predict(rf_xy_fit, new_data = ames_test[, preds]) 54 | ) 55 | ``` 56 | 57 | ## Report results 58 | 59 | ```{r} 60 | test_results %>% slice(1:5) 61 | ``` 62 | 63 | ```{r} 64 | test_results %>% metrics(truth = Sale_Price, estimate = .pred) 65 | ``` 66 | 67 | -------------------------------------------------------------------------------- /images/bootswatch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jthomasmock/quarto-reporting/7dfe573d3363d81169ea967bb4b779ef92a98f68/images/bootswatch.png -------------------------------------------------------------------------------- /images/boston-history-html.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jthomasmock/quarto-reporting/7dfe573d3363d81169ea967bb4b779ef92a98f68/images/boston-history-html.jpeg -------------------------------------------------------------------------------- /images/boston-history-pdf.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jthomasmock/quarto-reporting/7dfe573d3363d81169ea967bb4b779ef92a98f68/images/boston-history-pdf.jpeg -------------------------------------------------------------------------------- /images/howard-gentleman.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jthomasmock/quarto-reporting/7dfe573d3363d81169ea967bb4b779ef92a98f68/images/howard-gentleman.jpeg -------------------------------------------------------------------------------- /images/jss.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jthomasmock/quarto-reporting/7dfe573d3363d81169ea967bb4b779ef92a98f68/images/jss.png -------------------------------------------------------------------------------- /images/penguin-report.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jthomasmock/quarto-reporting/7dfe573d3363d81169ea967bb4b779ef92a98f68/images/penguin-report.png -------------------------------------------------------------------------------- /quarto-reporting.Rproj: -------------------------------------------------------------------------------- 1 | Version: 1.0 2 | 3 | RestoreWorkspace: Default 4 | SaveWorkspace: Default 5 | AlwaysSaveHistory: Default 6 | 7 | EnableCodeIndexing: Yes 8 | UseSpacesForTab: Yes 9 | NumSpacesForTab: 2 10 | Encoding: UTF-8 11 | 12 | RnwWeave: Sweave 13 | LaTeX: pdfLaTeX 14 | 15 | AutoAppendNewline: Yes 16 | StripTrailingWhitespace: Yes 17 | -------------------------------------------------------------------------------- /quarto-reporting_files/figure-revealjs/unnamed-chunk-5-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jthomasmock/quarto-reporting/7dfe573d3363d81169ea967bb4b779ef92a98f68/quarto-reporting_files/figure-revealjs/unnamed-chunk-5-1.png -------------------------------------------------------------------------------- /quarto-reporting_files/libs/quarto-html/quarto-html.min.css: -------------------------------------------------------------------------------- 1 | /*# sourceMappingURL=0a6b880beb84f9b6f36107a76f82c5b1.css.map */ 2 | -------------------------------------------------------------------------------- /quarto-reporting_files/libs/quarto-html/quarto-syntax-highlighting-dark.css: -------------------------------------------------------------------------------- 1 | /* quarto syntax highlight colors */ 2 | :root { 3 | --quarto-hl-al-color: #f07178; 4 | --quarto-hl-an-color: #d4d0ab; 5 | --quarto-hl-at-color: #00e0e0; 6 | --quarto-hl-bn-color: #d4d0ab; 7 | --quarto-hl-bu-color: #abe338; 8 | --quarto-hl-ch-color: #abe338; 9 | --quarto-hl-co-color: #f8f8f2; 10 | --quarto-hl-cv-color: #ffd700; 11 | --quarto-hl-cn-color: #ffd700; 12 | --quarto-hl-cf-color: #ffa07a; 13 | --quarto-hl-dt-color: #ffa07a; 14 | --quarto-hl-dv-color: #d4d0ab; 15 | --quarto-hl-do-color: #f8f8f2; 16 | --quarto-hl-er-color: #f07178; 17 | --quarto-hl-ex-color: #00e0e0; 18 | --quarto-hl-fl-color: #d4d0ab; 19 | --quarto-hl-fu-color: #ffa07a; 20 | --quarto-hl-im-color: #abe338; 21 | --quarto-hl-in-color: #d4d0ab; 22 | --quarto-hl-kw-color: #ffa07a; 23 | --quarto-hl-op-color: #ffa07a; 24 | --quarto-hl-ot-color: #00e0e0; 25 | --quarto-hl-pp-color: #dcc6e0; 26 | --quarto-hl-re-color: #00e0e0; 27 | --quarto-hl-sc-color: #abe338; 28 | --quarto-hl-ss-color: #abe338; 29 | --quarto-hl-st-color: #abe338; 30 | --quarto-hl-va-color: #00e0e0; 31 | --quarto-hl-vs-color: #abe338; 32 | --quarto-hl-wa-color: #dcc6e0; 33 | } 34 | 35 | /* other quarto variables */ 36 | :root { 37 | --quarto-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; 38 | } 39 | 40 | code span.al { 41 | font-weight: bold; 42 | color: #f07178; 43 | } 44 | 45 | code span.an { 46 | color: #d4d0ab; 47 | } 48 | 49 | code span.at { 50 | color: #00e0e0; 51 | } 52 | 53 | code span.bn { 54 | color: #d4d0ab; 55 | } 56 | 57 | code span.bu { 58 | color: #abe338; 59 | } 60 | 61 | code span.ch { 62 | color: #abe338; 63 | } 64 | 65 | code span.co { 66 | font-style: italic; 67 | color: #f8f8f2; 68 | } 69 | 70 | code span.cv { 71 | color: #ffd700; 72 | } 73 | 74 | code span.cn { 75 | color: #ffd700; 76 | } 77 | 78 | code span.cf { 79 | font-weight: bold; 80 | color: #ffa07a; 81 | } 82 | 83 | code span.dt { 84 | color: #ffa07a; 85 | } 86 | 87 | code span.dv { 88 | color: #d4d0ab; 89 | } 90 | 91 | code span.do { 92 | color: #f8f8f2; 93 | } 94 | 95 | code span.er { 96 | color: #f07178; 97 | text-decoration: underline; 98 | } 99 | 100 | code span.ex { 101 | font-weight: bold; 102 | color: #00e0e0; 103 | } 104 | 105 | code span.fl { 106 | color: #d4d0ab; 107 | } 108 | 109 | code span.fu { 110 | color: #ffa07a; 111 | } 112 | 113 | code span.im { 114 | color: #abe338; 115 | } 116 | 117 | code span.in { 118 | color: #d4d0ab; 119 | } 120 | 121 | code span.kw { 122 | font-weight: bold; 123 | color: #ffa07a; 124 | } 125 | 126 | pre > code.sourceCode > span { 127 | color: #f8f8f2; 128 | } 129 | 130 | code span { 131 | color: #f8f8f2; 132 | } 133 | 134 | code.sourceCode > span { 135 | color: #f8f8f2; 136 | } 137 | 138 | div.sourceCode, 139 | div.sourceCode pre.sourceCode { 140 | color: #f8f8f2; 141 | } 142 | 143 | code span.op { 144 | color: #ffa07a; 145 | } 146 | 147 | code span.ot { 148 | color: #00e0e0; 149 | } 150 | 151 | code span.pp { 152 | color: #dcc6e0; 153 | } 154 | 155 | code span.re { 156 | color: #00e0e0; 157 | } 158 | 159 | code span.sc { 160 | color: #abe338; 161 | } 162 | 163 | code span.ss { 164 | color: #abe338; 165 | } 166 | 167 | code span.st { 168 | color: #abe338; 169 | } 170 | 171 | code span.va { 172 | color: #00e0e0; 173 | } 174 | 175 | code span.vs { 176 | color: #abe338; 177 | } 178 | 179 | code span.wa { 180 | color: #dcc6e0; 181 | } 182 | 183 | .prevent-inlining { 184 | content: " code.sourceCode > span { 40 | color: #003B4F; 41 | } 42 | 43 | code span { 44 | color: #003B4F; 45 | } 46 | 47 | code.sourceCode > span { 48 | color: #003B4F; 49 | } 50 | 51 | div.sourceCode, 52 | div.sourceCode pre.sourceCode { 53 | color: #003B4F; 54 | } 55 | 56 | code span.ot { 57 | color: #003B4F; 58 | } 59 | 60 | code span.at { 61 | color: #657422; 62 | } 63 | 64 | code span.ss { 65 | color: #20794D; 66 | } 67 | 68 | code span.an { 69 | color: #5E5E5E; 70 | } 71 | 72 | code span.fu { 73 | color: #4758AB; 74 | } 75 | 76 | code span.st { 77 | color: #20794D; 78 | } 79 | 80 | code span.cf { 81 | color: #003B4F; 82 | } 83 | 84 | code span.op { 85 | color: #5E5E5E; 86 | } 87 | 88 | code span.er { 89 | color: #AD0000; 90 | } 91 | 92 | code span.bn { 93 | color: #AD0000; 94 | } 95 | 96 | code span.al { 97 | color: #AD0000; 98 | } 99 | 100 | code span.va { 101 | color: #111111; 102 | } 103 | 104 | code span.pp { 105 | color: #AD0000; 106 | } 107 | 108 | code span.in { 109 | color: #5E5E5E; 110 | } 111 | 112 | code span.vs { 113 | color: #20794D; 114 | } 115 | 116 | code span.wa { 117 | color: #5E5E5E; 118 | font-style: italic; 119 | } 120 | 121 | code span.do { 122 | color: #5E5E5E; 123 | font-style: italic; 124 | } 125 | 126 | code span.im { 127 | color: #00769E; 128 | } 129 | 130 | code span.ch { 131 | color: #20794D; 132 | } 133 | 134 | code span.dt { 135 | color: #AD0000; 136 | } 137 | 138 | code span.fl { 139 | color: #AD0000; 140 | } 141 | 142 | code span.co { 143 | color: #5E5E5E; 144 | } 145 | 146 | code span.cv { 147 | color: #5E5E5E; 148 | font-style: italic; 149 | } 150 | 151 | code span.cn { 152 | color: #8f5902; 153 | } 154 | 155 | code span.sc { 156 | color: #5E5E5E; 157 | } 158 | 159 | code span.dv { 160 | color: #AD0000; 161 | } 162 | 163 | code span.kw { 164 | color: #003B4F; 165 | } 166 | 167 | .prevent-inlining { 168 | content: ".tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-7px;left:0;border-width:8px 8px 0;border-top-color:initial;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-7px;left:0;border-width:0 8px 8px;border-bottom-color:initial;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-width:8px 0 8px 8px;border-left-color:initial;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-7px;border-width:8px 8px 8px 0;border-right-color:initial;transform-origin:center right}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{width:16px;height:16px;color:#333}.tippy-arrow:before{content:"";position:absolute;border-color:transparent;border-style:solid}.tippy-content{position:relative;padding:5px 9px;z-index:1} -------------------------------------------------------------------------------- /quarto-reporting_files/libs/revealjs/dist/reset.css: -------------------------------------------------------------------------------- 1 | /* http://meyerweb.com/eric/tools/css/reset/ 2 | v4.0 | 20180602 3 | License: none (public domain) 4 | */ 5 | 6 | html, body, div, span, applet, object, iframe, 7 | h1, h2, h3, h4, h5, h6, p, blockquote, pre, 8 | a, abbr, acronym, address, big, cite, code, 9 | del, dfn, em, img, ins, kbd, q, s, samp, 10 | small, strike, strong, sub, sup, tt, var, 11 | b, u, i, center, 12 | dl, dt, dd, ol, ul, li, 13 | fieldset, form, label, legend, 14 | table, caption, tbody, tfoot, thead, tr, th, td, 15 | article, aside, canvas, details, embed, 16 | figure, figcaption, footer, header, hgroup, 17 | main, menu, nav, output, ruby, section, summary, 18 | time, mark, audio, video { 19 | margin: 0; 20 | padding: 0; 21 | border: 0; 22 | font-size: 100%; 23 | font: inherit; 24 | vertical-align: baseline; 25 | } 26 | /* HTML5 display-role reset for older browsers */ 27 | article, aside, details, figcaption, figure, 28 | footer, header, hgroup, main, menu, nav, section { 29 | display: block; 30 | } -------------------------------------------------------------------------------- /quarto-reporting_files/libs/revealjs/dist/theme/fonts/league-gothic/LICENSE: -------------------------------------------------------------------------------- 1 | SIL Open Font License (OFL) 2 | http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFL 3 | -------------------------------------------------------------------------------- /quarto-reporting_files/libs/revealjs/dist/theme/fonts/league-gothic/league-gothic.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: 'League Gothic'; 3 | src: url('./league-gothic.eot'); 4 | src: url('./league-gothic.eot?#iefix') format('embedded-opentype'), 5 | url('./league-gothic.woff') format('woff'), 6 | url('./league-gothic.ttf') format('truetype'); 7 | 8 | font-weight: normal; 9 | font-style: normal; 10 | } 11 | -------------------------------------------------------------------------------- /quarto-reporting_files/libs/revealjs/dist/theme/fonts/league-gothic/league-gothic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jthomasmock/quarto-reporting/7dfe573d3363d81169ea967bb4b779ef92a98f68/quarto-reporting_files/libs/revealjs/dist/theme/fonts/league-gothic/league-gothic.eot -------------------------------------------------------------------------------- /quarto-reporting_files/libs/revealjs/dist/theme/fonts/league-gothic/league-gothic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jthomasmock/quarto-reporting/7dfe573d3363d81169ea967bb4b779ef92a98f68/quarto-reporting_files/libs/revealjs/dist/theme/fonts/league-gothic/league-gothic.ttf -------------------------------------------------------------------------------- /quarto-reporting_files/libs/revealjs/dist/theme/fonts/league-gothic/league-gothic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jthomasmock/quarto-reporting/7dfe573d3363d81169ea967bb4b779ef92a98f68/quarto-reporting_files/libs/revealjs/dist/theme/fonts/league-gothic/league-gothic.woff -------------------------------------------------------------------------------- /quarto-reporting_files/libs/revealjs/dist/theme/fonts/source-sans-pro/LICENSE: -------------------------------------------------------------------------------- 1 | SIL Open Font License 2 | 3 | Copyright 2010, 2012 Adobe Systems Incorporated (http://www.adobe.com/), with Reserved Font Name ‘Source’. All Rights Reserved. Source is a trademark of Adobe Systems Incorporated in the United States and/or other countries. 4 | 5 | This Font Software is licensed under the SIL Open Font License, Version 1.1. 6 | This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL 7 | 8 | —————————————————————————————- 9 | SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 10 | —————————————————————————————- 11 | 12 | PREAMBLE 13 | 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. 14 | 15 | 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. 16 | 17 | DEFINITIONS 18 | “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. 19 | 20 | “Reserved Font Name” refers to any names specified as such after the copyright statement(s). 21 | 22 | “Original Version” refers to the collection of Font Software components as distributed by the Copyright Holder(s). 23 | 24 | “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. 25 | 26 | “Author” refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software. 27 | 28 | PERMISSION & CONDITIONS 29 | 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: 30 | 31 | 1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself. 32 | 33 | 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. 34 | 35 | 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. 36 | 37 | 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. 38 | 39 | 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. 40 | 41 | TERMINATION 42 | This license becomes null and void if any of the above conditions are not met. 43 | 44 | DISCLAIMER 45 | 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. -------------------------------------------------------------------------------- /quarto-reporting_files/libs/revealjs/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jthomasmock/quarto-reporting/7dfe573d3363d81169ea967bb4b779ef92a98f68/quarto-reporting_files/libs/revealjs/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.eot -------------------------------------------------------------------------------- /quarto-reporting_files/libs/revealjs/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jthomasmock/quarto-reporting/7dfe573d3363d81169ea967bb4b779ef92a98f68/quarto-reporting_files/libs/revealjs/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.ttf -------------------------------------------------------------------------------- /quarto-reporting_files/libs/revealjs/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jthomasmock/quarto-reporting/7dfe573d3363d81169ea967bb4b779ef92a98f68/quarto-reporting_files/libs/revealjs/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.woff -------------------------------------------------------------------------------- /quarto-reporting_files/libs/revealjs/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jthomasmock/quarto-reporting/7dfe573d3363d81169ea967bb4b779ef92a98f68/quarto-reporting_files/libs/revealjs/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.eot -------------------------------------------------------------------------------- /quarto-reporting_files/libs/revealjs/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jthomasmock/quarto-reporting/7dfe573d3363d81169ea967bb4b779ef92a98f68/quarto-reporting_files/libs/revealjs/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.ttf -------------------------------------------------------------------------------- /quarto-reporting_files/libs/revealjs/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jthomasmock/quarto-reporting/7dfe573d3363d81169ea967bb4b779ef92a98f68/quarto-reporting_files/libs/revealjs/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.woff -------------------------------------------------------------------------------- /quarto-reporting_files/libs/revealjs/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jthomasmock/quarto-reporting/7dfe573d3363d81169ea967bb4b779ef92a98f68/quarto-reporting_files/libs/revealjs/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.eot -------------------------------------------------------------------------------- /quarto-reporting_files/libs/revealjs/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jthomasmock/quarto-reporting/7dfe573d3363d81169ea967bb4b779ef92a98f68/quarto-reporting_files/libs/revealjs/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.ttf -------------------------------------------------------------------------------- /quarto-reporting_files/libs/revealjs/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jthomasmock/quarto-reporting/7dfe573d3363d81169ea967bb4b779ef92a98f68/quarto-reporting_files/libs/revealjs/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.woff -------------------------------------------------------------------------------- /quarto-reporting_files/libs/revealjs/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jthomasmock/quarto-reporting/7dfe573d3363d81169ea967bb4b779ef92a98f68/quarto-reporting_files/libs/revealjs/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.eot -------------------------------------------------------------------------------- /quarto-reporting_files/libs/revealjs/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jthomasmock/quarto-reporting/7dfe573d3363d81169ea967bb4b779ef92a98f68/quarto-reporting_files/libs/revealjs/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.ttf -------------------------------------------------------------------------------- /quarto-reporting_files/libs/revealjs/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jthomasmock/quarto-reporting/7dfe573d3363d81169ea967bb4b779ef92a98f68/quarto-reporting_files/libs/revealjs/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.woff -------------------------------------------------------------------------------- /quarto-reporting_files/libs/revealjs/dist/theme/fonts/source-sans-pro/source-sans-pro.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: 'Source Sans Pro'; 3 | src: url('./source-sans-pro-regular.eot'); 4 | src: url('./source-sans-pro-regular.eot?#iefix') format('embedded-opentype'), 5 | url('./source-sans-pro-regular.woff') format('woff'), 6 | url('./source-sans-pro-regular.ttf') format('truetype'); 7 | font-weight: normal; 8 | font-style: normal; 9 | } 10 | 11 | @font-face { 12 | font-family: 'Source Sans Pro'; 13 | src: url('./source-sans-pro-italic.eot'); 14 | src: url('./source-sans-pro-italic.eot?#iefix') format('embedded-opentype'), 15 | url('./source-sans-pro-italic.woff') format('woff'), 16 | url('./source-sans-pro-italic.ttf') format('truetype'); 17 | font-weight: normal; 18 | font-style: italic; 19 | } 20 | 21 | @font-face { 22 | font-family: 'Source Sans Pro'; 23 | src: url('./source-sans-pro-semibold.eot'); 24 | src: url('./source-sans-pro-semibold.eot?#iefix') format('embedded-opentype'), 25 | url('./source-sans-pro-semibold.woff') format('woff'), 26 | url('./source-sans-pro-semibold.ttf') format('truetype'); 27 | font-weight: 600; 28 | font-style: normal; 29 | } 30 | 31 | @font-face { 32 | font-family: 'Source Sans Pro'; 33 | src: url('./source-sans-pro-semibolditalic.eot'); 34 | src: url('./source-sans-pro-semibolditalic.eot?#iefix') format('embedded-opentype'), 35 | url('./source-sans-pro-semibolditalic.woff') format('woff'), 36 | url('./source-sans-pro-semibolditalic.ttf') format('truetype'); 37 | font-weight: 600; 38 | font-style: italic; 39 | } 40 | -------------------------------------------------------------------------------- /quarto-reporting_files/libs/revealjs/plugin/highlight/monokai.css: -------------------------------------------------------------------------------- 1 | /* 2 | Monokai style - ported by Luigi Maselli - http://grigio.org 3 | */ 4 | 5 | .hljs { 6 | display: block; 7 | overflow-x: auto; 8 | padding: 0.5em; 9 | background: #272822; 10 | color: #ddd; 11 | } 12 | 13 | .hljs-tag, 14 | .hljs-keyword, 15 | .hljs-selector-tag, 16 | .hljs-literal, 17 | .hljs-strong, 18 | .hljs-name { 19 | color: #f92672; 20 | } 21 | 22 | .hljs-code { 23 | color: #66d9ef; 24 | } 25 | 26 | .hljs-class .hljs-title { 27 | color: white; 28 | } 29 | 30 | .hljs-attribute, 31 | .hljs-symbol, 32 | .hljs-regexp, 33 | .hljs-link { 34 | color: #bf79db; 35 | } 36 | 37 | .hljs-string, 38 | .hljs-bullet, 39 | .hljs-subst, 40 | .hljs-title, 41 | .hljs-section, 42 | .hljs-emphasis, 43 | .hljs-type, 44 | .hljs-built_in, 45 | .hljs-builtin-name, 46 | .hljs-selector-attr, 47 | .hljs-selector-pseudo, 48 | .hljs-addition, 49 | .hljs-variable, 50 | .hljs-template-tag, 51 | .hljs-template-variable { 52 | color: #a6e22e; 53 | } 54 | 55 | .hljs-comment, 56 | .hljs-quote, 57 | .hljs-deletion, 58 | .hljs-meta { 59 | color: #75715e; 60 | } 61 | 62 | .hljs-keyword, 63 | .hljs-selector-tag, 64 | .hljs-literal, 65 | .hljs-doctag, 66 | .hljs-title, 67 | .hljs-section, 68 | .hljs-type, 69 | .hljs-selector-id { 70 | font-weight: bold; 71 | } 72 | -------------------------------------------------------------------------------- /quarto-reporting_files/libs/revealjs/plugin/highlight/zenburn.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Zenburn style from voldmar.ru (c) Vladimir Epifanov 4 | based on dark.css by Ivan Sagalaev 5 | 6 | */ 7 | 8 | .hljs { 9 | display: block; 10 | overflow-x: auto; 11 | padding: 0.5em; 12 | background: #3f3f3f; 13 | color: #dcdcdc; 14 | } 15 | 16 | .hljs-keyword, 17 | .hljs-selector-tag, 18 | .hljs-tag { 19 | color: #e3ceab; 20 | } 21 | 22 | .hljs-template-tag { 23 | color: #dcdcdc; 24 | } 25 | 26 | .hljs-number { 27 | color: #8cd0d3; 28 | } 29 | 30 | .hljs-variable, 31 | .hljs-template-variable, 32 | .hljs-attribute { 33 | color: #efdcbc; 34 | } 35 | 36 | .hljs-literal { 37 | color: #efefaf; 38 | } 39 | 40 | .hljs-subst { 41 | color: #8f8f8f; 42 | } 43 | 44 | .hljs-title, 45 | .hljs-name, 46 | .hljs-selector-id, 47 | .hljs-selector-class, 48 | .hljs-section, 49 | .hljs-type { 50 | color: #efef8f; 51 | } 52 | 53 | .hljs-symbol, 54 | .hljs-bullet, 55 | .hljs-link { 56 | color: #dca3a3; 57 | } 58 | 59 | .hljs-deletion, 60 | .hljs-string, 61 | .hljs-built_in, 62 | .hljs-builtin-name { 63 | color: #cc9393; 64 | } 65 | 66 | .hljs-addition, 67 | .hljs-comment, 68 | .hljs-quote, 69 | .hljs-meta { 70 | color: #7f9f7f; 71 | } 72 | 73 | 74 | .hljs-emphasis { 75 | font-style: italic; 76 | } 77 | 78 | .hljs-strong { 79 | font-weight: bold; 80 | } 81 | -------------------------------------------------------------------------------- /quarto-reporting_files/libs/revealjs/plugin/math/katex.js: -------------------------------------------------------------------------------- 1 | /** 2 | * A plugin which enables rendering of math equations inside 3 | * of reveal.js slides. Essentially a thin wrapper for KaTeX. 4 | * 5 | * @author Hakim El Hattab 6 | * @author Gerhard Burger 7 | */ 8 | export const KaTeX = () => { 9 | let deck; 10 | 11 | let defaultOptions = { 12 | version: 'latest', 13 | delimiters: [ 14 | {left: '$$', right: '$$', display: true}, // Note: $$ has to come before $ 15 | {left: '$', right: '$', display: false}, 16 | {left: '\\(', right: '\\)', display: false}, 17 | {left: '\\[', right: '\\]', display: true} 18 | ], 19 | ignoredTags: ['script', 'noscript', 'style', 'textarea', 'pre'] 20 | } 21 | 22 | const loadCss = src => { 23 | let link = document.createElement('link'); 24 | link.rel = 'stylesheet'; 25 | link.href = src; 26 | document.head.appendChild(link); 27 | }; 28 | 29 | /** 30 | * Loads a JavaScript file and returns a Promise for when it is loaded 31 | * Credits: https://aaronsmith.online/easily-load-an-external-script-using-javascript/ 32 | */ 33 | const loadScript = src => { 34 | return new Promise((resolve, reject) => { 35 | const script = document.createElement('script') 36 | script.type = 'text/javascript' 37 | script.onload = resolve 38 | script.onerror = reject 39 | script.src = src 40 | document.head.append(script) 41 | }) 42 | }; 43 | 44 | async function loadScripts(urls) { 45 | for(const url of urls) { 46 | await loadScript(url); 47 | } 48 | } 49 | 50 | return { 51 | id: 'katex', 52 | 53 | init: function (reveal) { 54 | 55 | deck = reveal; 56 | 57 | let revealOptions = deck.getConfig().katex || {}; 58 | 59 | let options = {...defaultOptions, ...revealOptions}; 60 | const {local, version, extensions, ...katexOptions} = options; 61 | 62 | let baseUrl = options.local || 'https://cdn.jsdelivr.net/npm/katex'; 63 | let versionString = options.local ? '' : '@' + options.version; 64 | 65 | let cssUrl = baseUrl + versionString + '/dist/katex.min.css'; 66 | let katexUrl = baseUrl + versionString + '/dist/katex.min.js'; 67 | let mhchemUrl = baseUrl + versionString + '/dist/contrib/mhchem.min.js' 68 | let karUrl = baseUrl + versionString + '/dist/contrib/auto-render.min.js'; 69 | 70 | let katexScripts = [katexUrl]; 71 | if(options.extensions && options.extensions.includes("mhchem")) { 72 | katexScripts.push(mhchemUrl); 73 | } 74 | katexScripts.push(karUrl); 75 | 76 | const renderMath = () => { 77 | renderMathInElement(reveal.getSlidesElement(), katexOptions); 78 | deck.layout(); 79 | } 80 | 81 | loadCss(cssUrl); 82 | 83 | // For some reason dynamically loading with defer attribute doesn't result in the expected behavior, the below code does 84 | loadScripts(katexScripts).then(() => { 85 | if( deck.isReady() ) { 86 | renderMath(); 87 | } 88 | else { 89 | deck.on( 'ready', renderMath.bind( this ) ); 90 | } 91 | }); 92 | 93 | } 94 | } 95 | 96 | }; 97 | -------------------------------------------------------------------------------- /quarto-reporting_files/libs/revealjs/plugin/math/mathjax2.js: -------------------------------------------------------------------------------- 1 | /** 2 | * A plugin which enables rendering of math equations inside 3 | * of reveal.js slides. Essentially a thin wrapper for MathJax. 4 | * 5 | * @author Hakim El Hattab 6 | */ 7 | export const MathJax2 = () => { 8 | 9 | // The reveal.js instance this plugin is attached to 10 | let deck; 11 | 12 | let defaultOptions = { 13 | messageStyle: 'none', 14 | tex2jax: { 15 | inlineMath: [ [ '$', '$' ], [ '\\(', '\\)' ] ], 16 | skipTags: [ 'script', 'noscript', 'style', 'textarea', 'pre' ] 17 | }, 18 | skipStartupTypeset: true 19 | }; 20 | 21 | function loadScript( url, callback ) { 22 | 23 | let head = document.querySelector( 'head' ); 24 | let script = document.createElement( 'script' ); 25 | script.type = 'text/javascript'; 26 | script.src = url; 27 | 28 | // Wrapper for callback to make sure it only fires once 29 | let finish = () => { 30 | if( typeof callback === 'function' ) { 31 | callback.call(); 32 | callback = null; 33 | } 34 | } 35 | 36 | script.onload = finish; 37 | 38 | // IE 39 | script.onreadystatechange = () => { 40 | if ( this.readyState === 'loaded' ) { 41 | finish(); 42 | } 43 | } 44 | 45 | // Normal browsers 46 | head.appendChild( script ); 47 | 48 | } 49 | 50 | return { 51 | id: 'mathjax2', 52 | 53 | init: function( reveal ) { 54 | 55 | deck = reveal; 56 | 57 | let revealOptions = deck.getConfig().mathjax2 || deck.getConfig().math || {}; 58 | 59 | let options = { ...defaultOptions, ...revealOptions }; 60 | let mathjax = options.mathjax || 'https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js'; 61 | let config = options.config || 'TeX-AMS_HTML-full'; 62 | let url = mathjax + '?config=' + config; 63 | 64 | options.tex2jax = { ...defaultOptions.tex2jax, ...revealOptions.tex2jax }; 65 | 66 | options.mathjax = options.config = null; 67 | 68 | loadScript( url, function() { 69 | 70 | MathJax.Hub.Config( options ); 71 | 72 | // Typeset followed by an immediate reveal.js layout since 73 | // the typesetting process could affect slide height 74 | MathJax.Hub.Queue( [ 'Typeset', MathJax.Hub, deck.getRevealElement() ] ); 75 | MathJax.Hub.Queue( deck.layout ); 76 | 77 | // Reprocess equations in slides when they turn visible 78 | deck.on( 'slidechanged', function( event ) { 79 | 80 | MathJax.Hub.Queue( [ 'Typeset', MathJax.Hub, event.currentSlide ] ); 81 | 82 | } ); 83 | 84 | } ); 85 | 86 | } 87 | } 88 | 89 | }; 90 | -------------------------------------------------------------------------------- /quarto-reporting_files/libs/revealjs/plugin/math/mathjax3.js: -------------------------------------------------------------------------------- 1 | /** 2 | * A plugin which enables rendering of math equations inside 3 | * of reveal.js slides. Essentially a thin wrapper for MathJax 3 4 | * 5 | * @author Hakim El Hattab 6 | * @author Gerhard Burger 7 | */ 8 | export const MathJax3 = () => { 9 | 10 | // The reveal.js instance this plugin is attached to 11 | let deck; 12 | 13 | let defaultOptions = { 14 | tex: { 15 | inlineMath: [ [ '$', '$' ], [ '\\(', '\\)' ] ] 16 | }, 17 | options: { 18 | skipHtmlTags: [ 'script', 'noscript', 'style', 'textarea', 'pre' ] 19 | }, 20 | startup: { 21 | ready: () => { 22 | MathJax.startup.defaultReady(); 23 | MathJax.startup.promise.then(() => { 24 | Reveal.layout(); 25 | }); 26 | } 27 | } 28 | }; 29 | 30 | function loadScript( url, callback ) { 31 | 32 | let script = document.createElement( 'script' ); 33 | script.type = "text/javascript" 34 | script.id = "MathJax-script" 35 | script.src = url; 36 | script.async = true 37 | 38 | // Wrapper for callback to make sure it only fires once 39 | script.onload = () => { 40 | if (typeof callback === 'function') { 41 | callback.call(); 42 | callback = null; 43 | } 44 | }; 45 | 46 | document.head.appendChild( script ); 47 | 48 | } 49 | 50 | return { 51 | id: 'mathjax3', 52 | init: function(reveal) { 53 | 54 | deck = reveal; 55 | 56 | let revealOptions = deck.getConfig().mathjax3 || {}; 57 | let options = {...defaultOptions, ...revealOptions}; 58 | options.tex = {...defaultOptions.tex, ...revealOptions.tex} 59 | options.options = {...options.options, ...defaultOptions.options} 60 | options.startup = {...defaultOptions.startup, ...revealOptions.startup} 61 | 62 | let url = options.mathjax || 'https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js'; 63 | options.mathjax = null; 64 | 65 | window.MathJax = options; 66 | 67 | loadScript( url, function() { 68 | // Reprocess equations in slides when they turn visible 69 | Reveal.addEventListener( 'slidechanged', function( event ) { 70 | MathJax.typeset(); 71 | } ); 72 | } ); 73 | 74 | } 75 | } 76 | 77 | }; 78 | -------------------------------------------------------------------------------- /quarto-reporting_files/libs/revealjs/plugin/math/plugin.js: -------------------------------------------------------------------------------- 1 | import {KaTeX} from "./katex"; 2 | import {MathJax2} from "./mathjax2"; 3 | import {MathJax3} from "./mathjax3"; 4 | 5 | const defaultTypesetter = MathJax2; 6 | 7 | /*! 8 | * This plugin is a wrapper for the MathJax2, 9 | * MathJax3 and KaTeX typesetter plugins. 10 | */ 11 | export default Plugin = Object.assign( defaultTypesetter(), { 12 | KaTeX, 13 | MathJax2, 14 | MathJax3 15 | } ); -------------------------------------------------------------------------------- /quarto-reporting_files/libs/revealjs/plugin/multiplex/multiplex.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | 3 | // emulate async script load 4 | window.addEventListener( 'load', function() { 5 | var multiplex = Reveal.getConfig().multiplex; 6 | var socketId = multiplex.id; 7 | var socket = io.connect(multiplex.url); 8 | 9 | function post( evt ) { 10 | var messageData = { 11 | state: Reveal.getState(), 12 | secret: multiplex.secret, 13 | socketId: multiplex.id, 14 | content: (evt || {}).content 15 | }; 16 | socket.emit( 'multiplex-statechanged', messageData ); 17 | }; 18 | 19 | // master 20 | if (multiplex.secret !== null) { 21 | 22 | // Don't emit events from inside of notes windows 23 | if ( window.location.search.match( /receiver/gi ) ) { return; } 24 | 25 | // post once the page is loaded, so the client follows also on "open URL". 26 | post(); 27 | 28 | // Monitor events that trigger a change in state 29 | Reveal.on( 'slidechanged', post ); 30 | Reveal.on( 'fragmentshown', post ); 31 | Reveal.on( 'fragmenthidden', post ); 32 | Reveal.on( 'overviewhidden', post ); 33 | Reveal.on( 'overviewshown', post ); 34 | Reveal.on( 'paused', post ); 35 | Reveal.on( 'resumed', post ); 36 | document.addEventListener( 'send', post ); // broadcast custom events sent by other plugins 37 | 38 | // client 39 | } else { 40 | socket.on(multiplex.id, function(message) { 41 | // ignore data from sockets that aren't ours 42 | if (message.socketId !== socketId) { return; } 43 | if( window.location.host === 'localhost:1947' ) return; 44 | 45 | if ( message.state ) { 46 | Reveal.setState(message.state); 47 | } 48 | if ( message.content ) { 49 | // forward custom events to other plugins 50 | var event = new CustomEvent('received'); 51 | event.content = message.content; 52 | document.dispatchEvent( event ); 53 | } 54 | }); 55 | } 56 | }); 57 | }()); -------------------------------------------------------------------------------- /quarto-reporting_files/libs/revealjs/plugin/multiplex/plugin.yml: -------------------------------------------------------------------------------- 1 | name: multiplex 2 | script: [socket.io.js, multiplex.js] 3 | register: false 4 | config: 5 | multiplex: 6 | secret: null 7 | id: null 8 | url: "https://reveal-multiplex.glitch.me/" 9 | -------------------------------------------------------------------------------- /quarto-reporting_files/libs/revealjs/plugin/notes/plugin.js: -------------------------------------------------------------------------------- 1 | import speakerViewHTML from './speaker-view.html'; 2 | 3 | import marked from 'marked'; 4 | 5 | /** 6 | * Handles opening of and synchronization with the reveal.js 7 | * notes window. 8 | * 9 | * Handshake process: 10 | * 1. This window posts 'connect' to notes window 11 | * - Includes URL of presentation to show 12 | * 2. Notes window responds with 'connected' when it is available 13 | * 3. This window proceeds to send the current presentation state 14 | * to the notes window 15 | */ 16 | const Plugin = () => { 17 | 18 | let popup = null; 19 | 20 | let deck; 21 | 22 | function openNotes() { 23 | 24 | if (popup && !popup.closed) { 25 | popup.focus(); 26 | return; 27 | } 28 | 29 | popup = window.open( 'about:blank', 'reveal.js - Notes', 'width=1100,height=700' ); 30 | popup.marked = marked; 31 | popup.document.write( speakerViewHTML ); 32 | 33 | if( !popup ) { 34 | alert( 'Speaker view popup failed to open. Please make sure popups are allowed and reopen the speaker view.' ); 35 | return; 36 | } 37 | 38 | /** 39 | * Connect to the notes window through a postmessage handshake. 40 | * Using postmessage enables us to work in situations where the 41 | * origins differ, such as a presentation being opened from the 42 | * file system. 43 | */ 44 | function connect() { 45 | // Keep trying to connect until we get a 'connected' message back 46 | let connectInterval = setInterval( function() { 47 | popup.postMessage( JSON.stringify( { 48 | namespace: 'reveal-notes', 49 | type: 'connect', 50 | url: window.location.protocol + '//' + window.location.host + window.location.pathname + window.location.search, 51 | state: deck.getState() 52 | } ), '*' ); 53 | }, 500 ); 54 | 55 | window.addEventListener( 'message', function( event ) { 56 | let data = JSON.parse( event.data ); 57 | if( data && data.namespace === 'reveal-notes' && data.type === 'connected' ) { 58 | clearInterval( connectInterval ); 59 | onConnected(); 60 | } 61 | if( data && data.namespace === 'reveal-notes' && data.type === 'call' ) { 62 | callRevealApi( data.methodName, data.arguments, data.callId ); 63 | } 64 | } ); 65 | } 66 | 67 | /** 68 | * Calls the specified Reveal.js method with the provided argument 69 | * and then pushes the result to the notes frame. 70 | */ 71 | function callRevealApi( methodName, methodArguments, callId ) { 72 | 73 | let result = deck[methodName].apply( deck, methodArguments ); 74 | popup.postMessage( JSON.stringify( { 75 | namespace: 'reveal-notes', 76 | type: 'return', 77 | result: result, 78 | callId: callId 79 | } ), '*' ); 80 | 81 | } 82 | 83 | /** 84 | * Posts the current slide data to the notes window 85 | */ 86 | function post( event ) { 87 | 88 | let slideElement = deck.getCurrentSlide(), 89 | notesElement = slideElement.querySelector( 'aside.notes' ), 90 | fragmentElement = slideElement.querySelector( '.current-fragment' ); 91 | 92 | let messageData = { 93 | namespace: 'reveal-notes', 94 | type: 'state', 95 | notes: '', 96 | markdown: false, 97 | whitespace: 'normal', 98 | state: deck.getState() 99 | }; 100 | 101 | // Look for notes defined in a slide attribute 102 | if( slideElement.hasAttribute( 'data-notes' ) ) { 103 | messageData.notes = slideElement.getAttribute( 'data-notes' ); 104 | messageData.whitespace = 'pre-wrap'; 105 | } 106 | 107 | // Look for notes defined in a fragment 108 | if( fragmentElement ) { 109 | let fragmentNotes = fragmentElement.querySelector( 'aside.notes' ); 110 | if( fragmentNotes ) { 111 | notesElement = fragmentNotes; 112 | } 113 | else if( fragmentElement.hasAttribute( 'data-notes' ) ) { 114 | messageData.notes = fragmentElement.getAttribute( 'data-notes' ); 115 | messageData.whitespace = 'pre-wrap'; 116 | 117 | // In case there are slide notes 118 | notesElement = null; 119 | } 120 | } 121 | 122 | // Look for notes defined in an aside element 123 | if( notesElement ) { 124 | messageData.notes = notesElement.innerHTML; 125 | messageData.markdown = typeof notesElement.getAttribute( 'data-markdown' ) === 'string'; 126 | } 127 | 128 | popup.postMessage( JSON.stringify( messageData ), '*' ); 129 | 130 | } 131 | 132 | /** 133 | * Called once we have established a connection to the notes 134 | * window. 135 | */ 136 | function onConnected() { 137 | 138 | // Monitor events that trigger a change in state 139 | deck.on( 'slidechanged', post ); 140 | deck.on( 'fragmentshown', post ); 141 | deck.on( 'fragmenthidden', post ); 142 | deck.on( 'overviewhidden', post ); 143 | deck.on( 'overviewshown', post ); 144 | deck.on( 'paused', post ); 145 | deck.on( 'resumed', post ); 146 | 147 | // Post the initial state 148 | post(); 149 | 150 | } 151 | 152 | connect(); 153 | 154 | } 155 | 156 | return { 157 | id: 'notes', 158 | 159 | init: function( reveal ) { 160 | 161 | deck = reveal; 162 | 163 | if( !/receiver/i.test( window.location.search ) ) { 164 | 165 | // If the there's a 'notes' query set, open directly 166 | if( window.location.search.match( /(\?|\&)notes/gi ) !== null ) { 167 | openNotes(); 168 | } 169 | 170 | // Open the notes when the 's' key is hit 171 | deck.addKeyBinding({keyCode: 83, key: 'S', description: 'Speaker notes view'}, function() { 172 | openNotes(); 173 | } ); 174 | 175 | } 176 | 177 | }, 178 | 179 | open: openNotes 180 | }; 181 | 182 | }; 183 | 184 | export default Plugin; 185 | -------------------------------------------------------------------------------- /quarto-reporting_files/libs/revealjs/plugin/pdf-export/pdfexport.js: -------------------------------------------------------------------------------- 1 | var PdfExport = ( function( _Reveal ){ 2 | 3 | var Reveal = _Reveal; 4 | var setStylesheet = null; 5 | var installAltKeyBindings = null; 6 | 7 | function getRevealJsPath(){ 8 | var regex = /\b[^/]+\/reveal.css$/i; 9 | var script = Array.from( document.querySelectorAll( 'link' ) ).find( function( e ){ 10 | return e.attributes.href && e.attributes.href.value.search( regex ) >= 0; 11 | }); 12 | if( !script ){ 13 | console.error( 'reveal.css could not be found in included elements. Did you rename this file?' ); 14 | return ''; 15 | } 16 | return script.attributes.href.value.replace( regex, '' ); 17 | } 18 | 19 | function setStylesheet3( pdfExport ){ 20 | var link = document.querySelector( '#print' ); 21 | if( !link ){ 22 | link = document.createElement( 'link' ); 23 | link.rel = 'stylesheet'; 24 | link.id = 'print'; 25 | document.querySelector( 'head' ).appendChild( link ); 26 | } 27 | var style = 'paper'; 28 | if( pdfExport ){ 29 | style = 'pdf'; 30 | } 31 | link.href = getRevealJsPath() + 'css/print/' + style + '.css'; 32 | } 33 | 34 | function setStylesheet4( pdfExport ){ 35 | } 36 | 37 | function installAltKeyBindings3(){ 38 | } 39 | 40 | function installAltKeyBindings4(){ 41 | if( isPrintingPDF() ){ 42 | var config = Reveal.getConfig(); 43 | var shortcut = config.pdfExportShortcut || 'E'; 44 | window.addEventListener( 'keydown', function( e ){ 45 | if( e.target.nodeName.toUpperCase() == 'BODY' 46 | && ( e.key.toUpperCase() == shortcut.toUpperCase() || e.keyCode == shortcut.toUpperCase().charCodeAt( 0 ) ) ){ 47 | e.preventDefault(); 48 | togglePdfExport(); 49 | return false; 50 | } 51 | }, true ); 52 | } 53 | } 54 | 55 | function isPrintingPDF(){ 56 | return ( /print-pdf/gi ).test( window.location.search ); 57 | } 58 | 59 | function togglePdfExport(){ 60 | var url_doc = new URL( document.URL ); 61 | var query_doc = new URLSearchParams( url_doc.searchParams ); 62 | if( isPrintingPDF() ){ 63 | query_doc.delete( 'print-pdf' ); 64 | }else{ 65 | query_doc.set( 'print-pdf', '' ); 66 | } 67 | url_doc.search = ( query_doc.toString() ? '?' + query_doc.toString() : '' ); 68 | window.location.href = url_doc.toString(); 69 | } 70 | 71 | function installKeyBindings(){ 72 | var config = Reveal.getConfig(); 73 | var shortcut = config.pdfExportShortcut || 'E'; 74 | Reveal.addKeyBinding({ 75 | keyCode: shortcut.toUpperCase().charCodeAt( 0 ), 76 | key: shortcut.toUpperCase(), 77 | description: 'PDF export mode' 78 | }, togglePdfExport ); 79 | installAltKeyBindings(); 80 | } 81 | 82 | function install(){ 83 | installKeyBindings(); 84 | setStylesheet( isPrintingPDF() ); 85 | } 86 | 87 | var Plugin = { 88 | } 89 | 90 | if( Reveal && Reveal.VERSION && Reveal.VERSION.length && Reveal.VERSION[ 0 ] == '3' ){ 91 | // reveal 3.x 92 | setStylesheet = setStylesheet3; 93 | installAltKeyBindings = installAltKeyBindings3; 94 | install(); 95 | }else{ 96 | // must be reveal 4.x 97 | setStylesheet = setStylesheet4; 98 | installAltKeyBindings = installAltKeyBindings4; 99 | Plugin.id = 'pdf-export'; 100 | Plugin.init = function( _Reveal ){ 101 | Reveal = _Reveal; 102 | install(); 103 | }; 104 | } 105 | 106 | return Plugin; 107 | 108 | })( Reveal ); 109 | -------------------------------------------------------------------------------- /quarto-reporting_files/libs/revealjs/plugin/pdf-export/plugin.yml: -------------------------------------------------------------------------------- 1 | name: PdfExport 2 | script: pdfexport.js 3 | -------------------------------------------------------------------------------- /quarto-reporting_files/libs/revealjs/plugin/quarto-line-highlight/line-highlight.css: -------------------------------------------------------------------------------- 1 | .reveal 2 | div.sourceCode 3 | pre 4 | code.has-line-highlights 5 | > span:not(.highlight-line) { 6 | opacity: 0.4; 7 | } 8 | 9 | .reveal pre.numberSource { 10 | padding-left: 0; 11 | } 12 | 13 | .reveal pre.numberSource code > span { 14 | left: -2.1em; 15 | } 16 | 17 | pre.numberSource code > span > a:first-child::before { 18 | left: -0.7em; 19 | } 20 | 21 | .reveal pre > code:not(:first-child).fragment { 22 | position: absolute; 23 | top: 0; 24 | left: 0; 25 | width: 100%; 26 | box-sizing: border-box; 27 | } 28 | 29 | .reveal div.sourceCode pre code { 30 | min-height: 100%; 31 | } 32 | -------------------------------------------------------------------------------- /quarto-reporting_files/libs/revealjs/plugin/quarto-line-highlight/plugin.yml: -------------------------------------------------------------------------------- 1 | # adapted from https://github.com/hakimel/reveal.js/tree/master/plugin/highlight 2 | name: QuartoLineHighlight 3 | script: line-highlight.js 4 | stylesheet: line-highlight.css 5 | -------------------------------------------------------------------------------- /quarto-reporting_files/libs/revealjs/plugin/quarto-support/footer.css: -------------------------------------------------------------------------------- 1 | .reveal .slide-logo { 2 | display: block; 3 | position: fixed; 4 | bottom: 0; 5 | right: 12px; 6 | max-height: 2.2rem; 7 | height: 100%; 8 | width: auto; 9 | } 10 | 11 | .reveal .footer { 12 | display: block; 13 | position: fixed; 14 | bottom: 18px; 15 | width: 100%; 16 | margin: 0 auto; 17 | text-align: center; 18 | font-size: 18px; 19 | z-index: 2; 20 | } 21 | 22 | .reveal .footer > * { 23 | margin-top: 0; 24 | margin-bottom: 0; 25 | } 26 | 27 | .reveal .slide .footer { 28 | display: none; 29 | } 30 | 31 | .reveal .slide-number { 32 | bottom: 10px; 33 | right: 10px; 34 | font-size: 16px; 35 | background-color: transparent; 36 | } 37 | 38 | .reveal.has-logo .slide-number { 39 | bottom: initial; 40 | top: 8px; 41 | right: 8px; 42 | } 43 | 44 | .reveal .slide-number .slide-number-delimiter { 45 | margin: 0; 46 | } 47 | 48 | .reveal .slide-menu-button { 49 | left: 8px; 50 | bottom: 8px; 51 | } 52 | 53 | .reveal .slide-chalkboard-buttons { 54 | position: fixed; 55 | left: 12px; 56 | bottom: 8px; 57 | z-index: 30; 58 | font-size: 24px; 59 | } 60 | 61 | .reveal .slide-chalkboard-buttons.slide-menu-offset { 62 | left: 54px; 63 | } 64 | 65 | .reveal .slide-chalkboard-buttons > span { 66 | margin-right: 14px; 67 | cursor: pointer; 68 | } 69 | 70 | @media screen and (max-width: 800px) { 71 | .reveal .slide-logo { 72 | max-height: 1.1rem; 73 | bottom: -2px; 74 | right: 10px; 75 | } 76 | .reveal .footer { 77 | font-size: 14px; 78 | bottom: 12px; 79 | } 80 | .reveal .slide-number { 81 | font-size: 12px; 82 | bottom: 7px; 83 | } 84 | .reveal .slide-menu-button .fas::before { 85 | height: 1.3rem; 86 | width: 1.3rem; 87 | vertical-align: -0.125em; 88 | background-size: 1.3rem 1.3rem; 89 | } 90 | 91 | .reveal .slide-chalkboard-buttons .fas::before { 92 | height: 0.95rem; 93 | width: 0.95rem; 94 | background-size: 0.95rem 0.95rem; 95 | vertical-align: -0em; 96 | } 97 | 98 | .reveal .slide-chalkboard-buttons.slide-menu-offset { 99 | left: 36px; 100 | } 101 | .reveal .slide-chalkboard-buttons > span { 102 | margin-right: 9px; 103 | } 104 | } 105 | 106 | html.print-pdf .reveal .slide-menu-button, 107 | html.print-pdf .reveal .slide-chalkboard-buttons { 108 | display: none; 109 | } 110 | -------------------------------------------------------------------------------- /quarto-reporting_files/libs/revealjs/plugin/quarto-support/plugin.yml: -------------------------------------------------------------------------------- 1 | name: QuartoSupport 2 | script: support.js 3 | stylesheet: footer.css 4 | config: 5 | smaller: false 6 | -------------------------------------------------------------------------------- /quarto-reporting_files/libs/revealjs/plugin/reveal-menu/plugin.yml: -------------------------------------------------------------------------------- 1 | name: RevealMenu 2 | script: [menu.js, quarto-menu.js] 3 | stylesheet: [menu.css, quarto-menu.css] 4 | config: 5 | menu: 6 | side: "left" 7 | useTextContentForMissingTitles: true 8 | markers: false 9 | loadIcons: false 10 | -------------------------------------------------------------------------------- /quarto-reporting_files/libs/revealjs/plugin/reveal-menu/quarto-menu.css: -------------------------------------------------------------------------------- 1 | .slide-menu-wrapper .slide-tool-item { 2 | display: block; 3 | text-align: left; 4 | padding: 10px 18px; 5 | color: #aaa; 6 | cursor: pointer; 7 | border-top: solid 1px #555; 8 | } 9 | 10 | .slide-menu-wrapper .slide-tool-item a { 11 | text-decoration: none; 12 | } 13 | 14 | .slide-menu-wrapper .slide-tool-item kbd { 15 | font-family: monospace; 16 | margin-right: 10px; 17 | padding: 3px 8px; 18 | color: inherit; 19 | border: 1px solid; 20 | border-radius: 5px; 21 | border-color: #555; 22 | } 23 | 24 | .slide-menu-wrapper .slide-menu-toolbar > li.active-toolbar-button { 25 | text-decoration: none; 26 | } 27 | 28 | .reveal .slide-menu-button { 29 | left: 8px; 30 | bottom: 8px; 31 | } 32 | 33 | .reveal .slide-menu-button .fas::before, 34 | .reveal .slide-chalkboard-buttons .fas::before, 35 | .slide-menu-wrapper .slide-menu-toolbar .fas::before { 36 | display: inline-block; 37 | height: 2.2rem; 38 | width: 2.2rem; 39 | content: ""; 40 | vertical-align: -0.125em; 41 | background-repeat: no-repeat; 42 | background-size: 2.2rem 2.2rem; 43 | } 44 | 45 | .reveal .slide-chalkboard-buttons .fas::before { 46 | height: 1.45rem; 47 | width: 1.45rem; 48 | background-size: 1.45rem 1.45rem; 49 | vertical-align: 0.1em; 50 | } 51 | 52 | .slide-menu-wrapper .slide-menu-toolbar .fas::before { 53 | height: 1.8rem; 54 | width: 1.8rem; 55 | background-size: 1.8rem 1.8rem; 56 | } 57 | 58 | .slide-menu-wrapper .slide-menu-toolbar .fa-images::before { 59 | background-image: url('data:image/svg+xml,'); 60 | } 61 | 62 | .slide-menu-wrapper .slide-menu-toolbar .fa-gear::before { 63 | background-image: url('data:image/svg+xml,'); 64 | } 65 | 66 | .slide-menu-wrapper .slide-menu-toolbar .fa-times::before { 67 | background-image: url('data:image/svg+xml,'); 68 | } 69 | -------------------------------------------------------------------------------- /quarto-reporting_files/libs/revealjs/plugin/reveal-menu/quarto-menu.js: -------------------------------------------------------------------------------- 1 | window.revealMenuToolHandler = function (handler) { 2 | return function (event) { 3 | event.preventDefault(); 4 | handler(); 5 | Reveal.getPlugin("menu").closeMenu(); 6 | }; 7 | }; 8 | 9 | window.RevealMenuToolHandlers = { 10 | fullscreen: revealMenuToolHandler(function () { 11 | const element = document.documentElement; 12 | const requestMethod = 13 | element.requestFullscreen || 14 | element.webkitRequestFullscreen || 15 | element.webkitRequestFullScreen || 16 | element.mozRequestFullScreen || 17 | element.msRequestFullscreen; 18 | if (requestMethod) { 19 | requestMethod.apply(element); 20 | } 21 | }), 22 | speakerMode: revealMenuToolHandler(function () { 23 | Reveal.getPlugin("notes").open(); 24 | }), 25 | keyboardHelp: revealMenuToolHandler(function () { 26 | Reveal.toggleHelp(true); 27 | }), 28 | overview: revealMenuToolHandler(function () { 29 | Reveal.toggleOverview(true); 30 | }), 31 | toggleChalkboard: revealMenuToolHandler(function () { 32 | RevealChalkboard.toggleChalkboard(); 33 | }), 34 | toggleNotesCanvas: revealMenuToolHandler(function () { 35 | RevealChalkboard.toggleNotesCanvas(); 36 | }), 37 | downloadDrawings: revealMenuToolHandler(function () { 38 | RevealChalkboard.download(); 39 | }), 40 | }; 41 | -------------------------------------------------------------------------------- /quarto-reporting_files/libs/revealjs/plugin/zoom/zoom.esm.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * reveal.js Zoom plugin 3 | */ 4 | var e={id:"zoom",init:function(e){e.getRevealElement().addEventListener("mousedown",(function(o){var n=/Linux/.test(window.navigator.platform)?"ctrl":"alt",i=(e.getConfig().zoomKey?e.getConfig().zoomKey:n)+"Key",d=e.getConfig().zoomLevel?e.getConfig().zoomLevel:2;o[i]&&!e.isOverview()&&(o.preventDefault(),t.to({x:o.clientX,y:o.clientY,scale:d,pan:!1}))}))}},t=function(){var e=1,o=0,n=0,i=-1,d=-1,s="WebkitTransform"in document.body.style||"MozTransform"in document.body.style||"msTransform"in document.body.style||"OTransform"in document.body.style||"transform"in document.body.style;function r(t,o){var n=y();if(t.width=t.width||1,t.height=t.height||1,t.x-=(window.innerWidth-t.width*o)/2,t.y-=(window.innerHeight-t.height*o)/2,s)if(1===o)document.body.style.transform="",document.body.style.OTransform="",document.body.style.msTransform="",document.body.style.MozTransform="",document.body.style.WebkitTransform="";else{var i=n.x+"px "+n.y+"px",d="translate("+-t.x+"px,"+-t.y+"px) scale("+o+")";document.body.style.transformOrigin=i,document.body.style.OTransformOrigin=i,document.body.style.msTransformOrigin=i,document.body.style.MozTransformOrigin=i,document.body.style.WebkitTransformOrigin=i,document.body.style.transform=d,document.body.style.OTransform=d,document.body.style.msTransform=d,document.body.style.MozTransform=d,document.body.style.WebkitTransform=d}else 1===o?(document.body.style.position="",document.body.style.left="",document.body.style.top="",document.body.style.width="",document.body.style.height="",document.body.style.zoom=""):(document.body.style.position="relative",document.body.style.left=-(n.x+t.x)/o+"px",document.body.style.top=-(n.y+t.y)/o+"px",document.body.style.width=100*o+"%",document.body.style.height=100*o+"%",document.body.style.zoom=o);e=o,document.documentElement.classList&&(1!==e?document.documentElement.classList.add("zoomed"):document.documentElement.classList.remove("zoomed"))}function m(){var t=.12*window.innerWidth,i=.12*window.innerHeight,d=y();nwindow.innerHeight-i&&window.scroll(d.x,d.y+(1-(window.innerHeight-n)/i)*(14/e)),owindow.innerWidth-t&&window.scroll(d.x+(1-(window.innerWidth-o)/t)*(14/e),d.y)}function y(){return{x:void 0!==window.scrollX?window.scrollX:window.pageXOffset,y:void 0!==window.scrollY?window.scrollY:window.pageYOffset}}return s&&(document.body.style.transition="transform 0.8s ease",document.body.style.OTransition="-o-transform 0.8s ease",document.body.style.msTransition="-ms-transform 0.8s ease",document.body.style.MozTransition="-moz-transform 0.8s ease",document.body.style.WebkitTransition="-webkit-transform 0.8s ease"),document.addEventListener("keyup",(function(o){1!==e&&27===o.keyCode&&t.out()})),document.addEventListener("mousemove",(function(t){1!==e&&(o=t.clientX,n=t.clientY)})),{to:function(o){if(1!==e)t.out();else{if(o.x=o.x||0,o.y=o.y||0,o.element){var n=o.element.getBoundingClientRect();o.x=n.left-20,o.y=n.top-20,o.width=n.width+40,o.height=n.height+40}void 0!==o.width&&void 0!==o.height&&(o.scale=Math.max(Math.min(window.innerWidth/o.width,window.innerHeight/o.height),1)),o.scale>1&&(o.x*=o.scale,o.y*=o.scale,r(o,o.scale),!1!==o.pan&&(i=setTimeout((function(){d=setInterval(m,1e3/60)}),800)))}},out:function(){clearTimeout(i),clearInterval(d),r({x:0,y:0},1),e=1},magnify:function(e){this.to(e)},reset:function(){this.out()},zoomLevel:function(){return e}}}();export default function(){return e} 5 | -------------------------------------------------------------------------------- /quarto-reporting_files/libs/revealjs/plugin/zoom/zoom.js: -------------------------------------------------------------------------------- 1 | !function(e,o){"object"==typeof exports&&"undefined"!=typeof module?module.exports=o():"function"==typeof define&&define.amd?define(o):(e="undefined"!=typeof globalThis?globalThis:e||self).RevealZoom=o()}(this,(function(){"use strict"; 2 | /*! 3 | * reveal.js Zoom plugin 4 | */var e={id:"zoom",init:function(e){e.getRevealElement().addEventListener("mousedown",(function(t){var n=/Linux/.test(window.navigator.platform)?"ctrl":"alt",i=(e.getConfig().zoomKey?e.getConfig().zoomKey:n)+"Key",d=e.getConfig().zoomLevel?e.getConfig().zoomLevel:2;t[i]&&!e.isOverview()&&(t.preventDefault(),o.to({x:t.clientX,y:t.clientY,scale:d,pan:!1}))}))}},o=function(){var e=1,t=0,n=0,i=-1,d=-1,s="WebkitTransform"in document.body.style||"MozTransform"in document.body.style||"msTransform"in document.body.style||"OTransform"in document.body.style||"transform"in document.body.style;function r(o,t){var n=l();if(o.width=o.width||1,o.height=o.height||1,o.x-=(window.innerWidth-o.width*t)/2,o.y-=(window.innerHeight-o.height*t)/2,s)if(1===t)document.body.style.transform="",document.body.style.OTransform="",document.body.style.msTransform="",document.body.style.MozTransform="",document.body.style.WebkitTransform="";else{var i=n.x+"px "+n.y+"px",d="translate("+-o.x+"px,"+-o.y+"px) scale("+t+")";document.body.style.transformOrigin=i,document.body.style.OTransformOrigin=i,document.body.style.msTransformOrigin=i,document.body.style.MozTransformOrigin=i,document.body.style.WebkitTransformOrigin=i,document.body.style.transform=d,document.body.style.OTransform=d,document.body.style.msTransform=d,document.body.style.MozTransform=d,document.body.style.WebkitTransform=d}else 1===t?(document.body.style.position="",document.body.style.left="",document.body.style.top="",document.body.style.width="",document.body.style.height="",document.body.style.zoom=""):(document.body.style.position="relative",document.body.style.left=-(n.x+o.x)/t+"px",document.body.style.top=-(n.y+o.y)/t+"px",document.body.style.width=100*t+"%",document.body.style.height=100*t+"%",document.body.style.zoom=t);e=t,document.documentElement.classList&&(1!==e?document.documentElement.classList.add("zoomed"):document.documentElement.classList.remove("zoomed"))}function m(){var o=.12*window.innerWidth,i=.12*window.innerHeight,d=l();nwindow.innerHeight-i&&window.scroll(d.x,d.y+(1-(window.innerHeight-n)/i)*(14/e)),twindow.innerWidth-o&&window.scroll(d.x+(1-(window.innerWidth-t)/o)*(14/e),d.y)}function l(){return{x:void 0!==window.scrollX?window.scrollX:window.pageXOffset,y:void 0!==window.scrollY?window.scrollY:window.pageYOffset}}return s&&(document.body.style.transition="transform 0.8s ease",document.body.style.OTransition="-o-transform 0.8s ease",document.body.style.msTransition="-ms-transform 0.8s ease",document.body.style.MozTransition="-moz-transform 0.8s ease",document.body.style.WebkitTransition="-webkit-transform 0.8s ease"),document.addEventListener("keyup",(function(t){1!==e&&27===t.keyCode&&o.out()})),document.addEventListener("mousemove",(function(o){1!==e&&(t=o.clientX,n=o.clientY)})),{to:function(t){if(1!==e)o.out();else{if(t.x=t.x||0,t.y=t.y||0,t.element){var n=t.element.getBoundingClientRect();t.x=n.left-20,t.y=n.top-20,t.width=n.width+40,t.height=n.height+40}void 0!==t.width&&void 0!==t.height&&(t.scale=Math.max(Math.min(window.innerWidth/t.width,window.innerHeight/t.height),1)),t.scale>1&&(t.x*=t.scale,t.y*=t.scale,r(t,t.scale),!1!==t.pan&&(i=setTimeout((function(){d=setInterval(m,1e3/60)}),800)))}},out:function(){clearTimeout(i),clearInterval(d),r({x:0,y:0},1),e=1},magnify:function(e){this.to(e)},reset:function(){this.out()},zoomLevel:function(){return e}}}();return function(){return e}})); 5 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | ## Beautiful Presentations and Reports with Quarto 2 | 3 | Slides: [https://thomasmock.quarto.pub/reports-presentations/](https://thomasmock.quarto.pub/reports-presentations/) 4 | -------------------------------------------------------------------------------- /styles.scss: -------------------------------------------------------------------------------- 1 | @import url('https://fonts.googleapis.com/css2?family=Fira+Mono&family=Open+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;1,300;1,400;1,500;1,600;1,700;1,800&display=swap'); 2 | 3 | /*-- scss:defaults --*/ 4 | 5 | $link-color: #EE6331; 6 | $font-family-sans-serif: 'Open Sans', sans-serif; 7 | $font-family-monospace: 'Fira Mono', monospace; 8 | 9 | $presentation-title-slide-text-align: left; 10 | 11 | /*-- scss:rules --*/ 12 | 13 | h2 { 14 | color: #447099 !important; 15 | } 16 | --------------------------------------------------------------------------------