diff --git a/dwbk/_extensions/drwater/dwbk/header.tex b/dwbk/_extensions/drwater/dwbk/header.tex index a5ef6fd..76e0a53 100644 --- a/dwbk/_extensions/drwater/dwbk/header.tex +++ b/dwbk/_extensions/drwater/dwbk/header.tex @@ -22,10 +22,12 @@ \usepackage[perpage]{footmisc} % 脚注每页重置 \setlength{\parindent}{2em} % 中文段落缩进2字符 -\setCJKmainfont[AutoFakeBold=true]{SimHei} -\setCJKsansfont[AutoFakeBold]{Microsoft YaHei} +% \setCJKmainfont[AutoFakeBold=true]{SimHei} +% \setCJKsansfont[AutoFakeBold]{Microsoft YaHei} % \setCJKmonofont[AutoFakeBold]{KaiTi} - +\setCJKmainfont[AutoFakeBold=true]{Noto Serif CJK SC} +\setCJKsansfont[AutoFakeBold]{Noto Sans CJK SC} +\setCJKmonofont[AutoFakeBold]{Noto Sans Mono CJK SC} % ----------------- diff --git a/texnative/.gitignore b/texnative/.gitignore new file mode 100644 index 0000000..fcbaabe --- /dev/null +++ b/texnative/.gitignore @@ -0,0 +1,3 @@ +bgdark.jpg +bgwhite.jpg +cover-ill.png diff --git a/texnative/LICENSE b/texnative/LICENSE new file mode 100644 index 0000000..261eeb9 --- /dev/null +++ b/texnative/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/texnative/README.md b/texnative/README.md new file mode 100644 index 0000000..9b0c078 --- /dev/null +++ b/texnative/README.md @@ -0,0 +1,95 @@ +# TexNative Format + +Modern customizable Business Document Format for creating clean Reports, +Quotations, Letters etc... + +## Installing + +```bash +quarto use template wearetechnative/texnative +``` + +This will install the extension and create an example qmd file that you can use +as a starting place for your article. + +## Features + +- modern business document +- white and dark background +- custom letterhead en frontpage images +- filter to create modern looking tables + +![](Screenshot-TexNative.png) + +![](Screenshot-white.png) + +## Using + +Include this in your front matter. + +```yaml +format: texnative-pdf +filters: + - texnative +``` + +Have a look at the `temlate.qmd`. This generates [this pdf](template.pdf). + +## Optional Frontmatter + +When set, these values are used in the cover page. + +```yaml +subtitle: Agreement for a typical business case +author: Jane Dean +date: last-modified +type: Report +document_version: 1 +document_number: ABC013 +``` + +## Format Options + +```yaml +# DOCUMENT DEFAULT CONFIGURATION +toc: true # show table of contents +toc-title: Contents # title of table of contents +cover_page: true # generate cover page +letterhead: true # use a letterhead background +dark_background: true # use the dark bg or letterhead with white text +page_numbers: true # show page numbers +paragraph_numbers: true # show paragraph numbers before headers +papersize: a4 +letterhead_img: bgwhite.jpg # path to background image +letterhead_img_darkbg: bgdark.jpg # path to background image for dark background +cover_illustration_img: cover-ill.png # path to cover page illustration image +cover_illustration_img_darkbg: cover-ill.png # path to cover page illustration image for dark background +disable_justify: false # true: justify left and right, false: only justify left; +``` + +## Custom letterhead + +Change `letterhead_img`, `letterhead_img_darkbg`, `cover_illustration_img` and +`cover_illustration_img_darkbg` with images which fit your Corporate Identity. +At TechNative we use an extra internal extension which provides all assets +with our corporate identity. + +Our `_quarto.yml` looks like this: + +```yaml +filters: + - quarto + - texnative +dark_background: true +disable_justify: true +format: texnative-pdf +toc-depth: 4 +letterhead_img: _extensions/technative-internal/quarto-technative-branding/letterhead-technative.png +letterhead_img_darkbg: _extensions/technative-internal/letterhead-technative-dia.png +cover_illustration_img: _extensions/technative-internal/quarto-technative-branding/unleash_white.jpg +cover_illustration_img_darkbg: _extensions/technative-internal/quarto-technative-branding/unleash.jpg +``` + +## Credits + +Illustration is created by Illustrations.co from the 'Life' collection. diff --git a/texnative/_extensions/texnative/_extension.yml b/texnative/_extensions/texnative/_extension.yml new file mode 100644 index 0000000..b4a3a37 --- /dev/null +++ b/texnative/_extensions/texnative/_extension.yml @@ -0,0 +1,50 @@ +title: TexNative +author: Pim Snel +version: 1.0.0 +contributes: + + filters: + - texnative.lua + + formats: + pdf: + # DOCUMENT DEFAULT CONFIGURATION + toc: true # show table of contents + toc-title: Contents # title of table of contents + cover_page: true # generate cover page + letterhead: true # use a letterhead background + dark_background: true # use the dark bg or letterhead with white text + + urlcolor: magenta + linkcolor: magenta + colorlinks: true + + page_numbers: true # show page numbers + paragraph_numbers: true # show paragraph numbers before headers + papersize: a4 + disable_justify: false # true: justify left and right, false: only justify left; + geometry: + - top=60mm + letterhead_img: bgwhite.jpg # path to background image + letterhead_img_darkbg: bgdark.jpg # path to background image for dark background + cover_illustration_img: cover-ill.png # path to cover page illustration image + cover_illustration_img_darkbg: cover-ill.png # path to cover page illustration image for dark background + + # DON'T CHANGE THESE + classoption: table + format-resources: + - "images/bgdark.jpg" + - "images/bgwhite.jpg" + - "images/cover-ill.png" + template-partials: + - "partials/document-colors.tex" + - "partials/document-background.tex" + - "partials/document-header-footer.tex" + - "partials/document-text-style.tex" + - "partials/page-cover.tex" + - "partials/page-title.tex" + - "partials/page-cover.tex" + - "partials/page-title.tex" + - "before-body.tex" + - "pandoc.tex" + - "toc.tex" diff --git a/texnative/_extensions/texnative/before-body.tex b/texnative/_extensions/texnative/before-body.tex new file mode 100644 index 0000000..8fdbd55 --- /dev/null +++ b/texnative/_extensions/texnative/before-body.tex @@ -0,0 +1,19 @@ +$if(has-frontmatter)$ + \frontmatter +$endif$ + +$if(title)$ + + $if(beamer)$ + \frame{\titlepage} + $else$ + $page-title.tex()$ + $endif$ + + $if(abstract)$ + \begin{abstract} + $abstract$ + \end{abstract} + $endif$ + +$endif$ diff --git a/texnative/_extensions/texnative/header.tex b/texnative/_extensions/texnative/header.tex new file mode 100644 index 0000000..cc1050f --- /dev/null +++ b/texnative/_extensions/texnative/header.tex @@ -0,0 +1 @@ +% TODO: Add custom LaTeX header directives here \ No newline at end of file diff --git a/texnative/_extensions/texnative/images/bgwhite2.jpg b/texnative/_extensions/texnative/images/bgwhite2.jpg new file mode 100644 index 0000000..a474953 Binary files /dev/null and b/texnative/_extensions/texnative/images/bgwhite2.jpg differ diff --git a/texnative/_extensions/texnative/images/cover-i.png b/texnative/_extensions/texnative/images/cover-i.png new file mode 100644 index 0000000..8749284 Binary files /dev/null and b/texnative/_extensions/texnative/images/cover-i.png differ diff --git a/texnative/_extensions/texnative/images/texnative-artwork.pdf b/texnative/_extensions/texnative/images/texnative-artwork.pdf new file mode 100644 index 0000000..83b7732 Binary files /dev/null and b/texnative/_extensions/texnative/images/texnative-artwork.pdf differ diff --git a/texnative/_extensions/texnative/images/texnative-artwork.png b/texnative/_extensions/texnative/images/texnative-artwork.png new file mode 100644 index 0000000..326d9d0 Binary files /dev/null and b/texnative/_extensions/texnative/images/texnative-artwork.png differ diff --git a/texnative/_extensions/texnative/images/texnative-artwork.svg b/texnative/_extensions/texnative/images/texnative-artwork.svg new file mode 100644 index 0000000..e76fae2 --- /dev/null +++ b/texnative/_extensions/texnative/images/texnative-artwork.svg @@ -0,0 +1,388 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/texnative/_extensions/texnative/pandoc.tex b/texnative/_extensions/texnative/pandoc.tex new file mode 100644 index 0000000..2ee33a0 --- /dev/null +++ b/texnative/_extensions/texnative/pandoc.tex @@ -0,0 +1,38 @@ +\usepackage{setspace} +\usepackage[nodayofweek]{datetime} +\usepackage{multicol} +% \usepackage{fontawesome} +\usepackage{textpos} +\usepackage{makecell} +% \usepackage{typearea} % This package causes many margin problems. Do we need this?!? +\usepackage{longtable} +\usepackage{lipsum} +\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}} + +$if(disable_justify)$ +\usepackage[document]{ragged2e} +$endif$ + + +$document-colors.tex()$ +$document-background.tex()$ +$document-header-footer.tex()$ +$document-text-style.tex()$ + +$if(paragraph_numbers)$ + \renewcommand{\theparagraph}{\S\arabic{paragraph}} + \setcounter{secnumdepth}{4} +$endif$ + +$if(highlighting-macros)$ + $highlighting-macros$ +$endif$ + +$tightlist.tex()$ +$tables.tex()$ +$graphics.tex()$ +$citations.tex()$ + +$for(header-includes)$ + $header-includes$ +$endfor$ diff --git a/texnative/_extensions/texnative/partials/document-background.tex b/texnative/_extensions/texnative/partials/document-background.tex new file mode 100644 index 0000000..163010e --- /dev/null +++ b/texnative/_extensions/texnative/partials/document-background.tex @@ -0,0 +1,31 @@ +$if(dark_background)$ + \color{white} + \pagecolor{backgroundcolor} + + $if(letterhead)$ + \usepackage{background} + \backgroundsetup{ + scale=1, + angle=0, + opacity=1.0, + position=current page.center, + contents={\includegraphics[width=\paperwidth,height=\paperheight]{$letterhead_img_darkbg$}} + } + $endif$ + +$else$ + + $if(letterhead)$ + \usepackage{background} + \backgroundsetup{ + scale=1, + angle=0, + opacity=1.0, + position=current page.center, + contents={\includegraphics[width=\paperwidth,height=\paperheight]{$letterhead_img$}} + } + $endif$ + +$endif$ + + diff --git a/texnative/_extensions/texnative/partials/document-colors.tex b/texnative/_extensions/texnative/partials/document-colors.tex new file mode 100644 index 0000000..f31e3cf --- /dev/null +++ b/texnative/_extensions/texnative/partials/document-colors.tex @@ -0,0 +1,10 @@ +$if(dark_background)$ + \definecolor{backgroundcolor}{HTML}{112f41} + \definecolor{tableheadercolor}{RGB}{13,35,48} +$else$ + \definecolor{backgroundcolor}{HTML}{ffffff} + \definecolor{tableheadercolor}{RGB}{221,221,221} +$endif$ + + + diff --git a/texnative/_extensions/texnative/partials/document-header-footer.tex b/texnative/_extensions/texnative/partials/document-header-footer.tex new file mode 100644 index 0000000..997a211 --- /dev/null +++ b/texnative/_extensions/texnative/partials/document-header-footer.tex @@ -0,0 +1,22 @@ +\usepackage{fancyhdr} +\usepackage{lastpage} +\pagestyle{fancy} + +\renewcommand{\headrulewidth}{0pt} % NO LINE AT TOP OF PAGE + +\rhead[]{} +\chead[]{} +\lhead[]{} +\rfoot[]{} +\cfoot[]{} +\lfoot[]{} + +$if(page_numbers)$ + $if(dark_background)$ + \lhead{\color{gray!60}Page \thepage\ of \pageref*{LastPage}} + $else$ + \lhead{\color{gray}Page \thepage\ of \pageref*{LastPage}} + $endif$ +$endif$ + +\renewcommand{\footrulewidth}{0pt} % NO LINE AT TOP OF PAGE diff --git a/texnative/_extensions/texnative/partials/document-text-style.tex b/texnative/_extensions/texnative/partials/document-text-style.tex new file mode 100644 index 0000000..e5acc3d --- /dev/null +++ b/texnative/_extensions/texnative/partials/document-text-style.tex @@ -0,0 +1,4 @@ +\usepackage{fontspec} +\setmainfont{Source Sans 3} +\linespread{1.2} % SPACE BETWEEN LINES + diff --git a/texnative/_extensions/texnative/partials/page-cover.tex b/texnative/_extensions/texnative/partials/page-cover.tex new file mode 100644 index 0000000..99dcf4a --- /dev/null +++ b/texnative/_extensions/texnative/partials/page-cover.tex @@ -0,0 +1,64 @@ +\begin{titlepage} + +% \vspace*{0.12\textheight} +% \vspace*{-3cm} +\begin{spacing}{2.0} + +\noindent +\\ +{\huge {\MakeUppercase{$title$}}}\\ +{\Large {$subtitle$}}\\ +\end{spacing} + +\newdateformat{mydate}{\twodigit{\THEDAY}{ }\shortmonthname[\THEMONTH], \THEYEAR} + +\setlength\extrarowheight{3pt} +\begin{flushleft} +\noindent\begin{tabular}{@{}l l } + +$if(client)$ +{\bf Client:} & $client.name$ \\ +$endif$ + +$if(contact_person)$ + {\bf Contact Person:} & $contact_person$ \\ +$endif$ + +$if(author)$ +{\bf By: } & $author$ \\ +$endif$ + +$if(date)$ +{\bf Date: } & $date$ \\ +$endif$ + +$if(tex_last_changed)$ +{\bf Last change:} & \today \\ +$endif$ + +$if(type)$ + $if(document_number)$ + {\bf $type$:} & $document_number$ \\ + $endif$ +$endif$ + +$if(document_version)$ +{\bf Version:} & $document_version$ \\ +$endif$ + +\end{tabular} +\end{flushleft} + +\vspace*{3cm} + +\begin{center} + $if(dark_background)$ + \includegraphics[width=0.8\columnwidth]{$cover_illustration_img_darkbg$} + $else$ + \includegraphics[width=0.8\columnwidth]{$cover_illustration_img$} + $endif$ +\end{center} + + +\end{titlepage} + diff --git a/texnative/_extensions/texnative/partials/page-title.tex b/texnative/_extensions/texnative/partials/page-title.tex new file mode 100644 index 0000000..6210f0f --- /dev/null +++ b/texnative/_extensions/texnative/partials/page-title.tex @@ -0,0 +1,27 @@ +% COVER + +\hyphenpenalty=10000\exhyphenpenalty=10000 +%\sloppy +%\raggedright + +$if(cover_page)$ + $page-cover.tex()$ +$else$ + +$if(no_title)$ + +$else$ +\begin{spacing}{2.0} +\noindent +{\huge {\MakeUppercase{$title$}}}\\ +{\Large {$subtitle$}} +\end{spacing} + +$endif$ %EIND IF NOTITLE + +$endif$ %EIND IF COVER + +\hyphenpenalty=3000\exhyphenpenalty=3000 +%\fussy +%\maketitle + diff --git a/texnative/_extensions/texnative/texnative.lua b/texnative/_extensions/texnative/texnative.lua new file mode 100644 index 0000000..0cf75a2 --- /dev/null +++ b/texnative/_extensions/texnative/texnative.lua @@ -0,0 +1,119 @@ + +-- FILTERS/DATE-FORMAT.LUA +function Meta(meta) + if meta.date then + local format = "(%d+)-(%d+)-(%d+)" + local y, m, d = pandoc.utils.stringify(meta.date):match(format) + local date = os.time({ + year = y, + month = m, + day = d, + }) + local date_string = os.date("%d %b %Y", date) + + meta.date = pandoc.Str(date_string) + return meta + end +end + + +local function get_rows_data(rows, cell_color, strong) + + local latex_cell_color = '' + local strong_begin = '' + local strong_end = '' + + if(cell_color ~='') then + latex_cell_color = '\\cellcolor{'..cell_color..'}' + end + if(strong) then + strong_begin = "\\bf{" + strong_end = "}" + end + local data = '' + for _, row in ipairs(rows) do + + for k, cell in ipairs(row.cells) do + data = data .. latex_cell_color .. strong_begin .. pandoc.utils.stringify(cell.contents) .. strong_end + if (k == #row.cells) then + data = data .. ' \\\\ \n' + else + data = data .. ' & ' + end + + -- CHANGE % INTO \% HACK + data = data:gsub('([^\\])%%', '%1\\%%') + data = data:gsub('^%%', '\\%%') + end + data = data ..'\n \\hline \n' + + end + return data +end + + +local function generate_tabularray(tbl) + +local caption = pandoc.utils.stringify(tbl.caption.long) +local caption_content = caption:match("{(.-)}") +if caption_content then + caption = caption:gsub("{.-}", "") +end + + -- COLSPECS + local col_specs = tbl.colspecs + local col_specs_latex = '| ' + + for i, col_spec in ipairs(col_specs) do + local align = col_spec[1] + local width = col_spec[2] + + if align == 'AlignLeft' then + col_specs_latex = col_specs_latex .. 'l |' + elseif align == 'AlignRight' then + col_specs_latex = col_specs_latex .. 'r |' + else + col_specs_latex = col_specs_latex .. 'c |' + end + + end + + -- If there's caption data, we override previous data + if caption_content then + + local dict = {} + for key, value in string.gmatch(caption_content, '(%w+)=([^%s]+)') do + dict[key] = value + end + + end + + local result = pandoc.List:new{pandoc.RawBlock("latex", '\\renewcommand{\\arraystretch}{1.5}\n\\begin{tabular}{ '.. col_specs_latex .. ' } \n \\hline')} + + -- HEADER + local header_latex = get_rows_data(tbl.head.rows, 'tableheadercolor', false) + result = result .. pandoc.List:new{pandoc.RawBlock("latex", header_latex)} + + -- ROWS + local rows_latex = '' + for _, tablebody in ipairs(tbl.bodies) do + rows_latex = get_rows_data(tablebody.body, '', false) + end + result = result .. pandoc.List:new{pandoc.RawBlock("latex", rows_latex)} + + -- FOOTER + local footer_latex = get_rows_data(tbl.foot.rows, '', false) + result = result .. pandoc.List:new{pandoc.RawBlock("latex", footer_latex)} + + result = result .. pandoc.List:new{pandoc.RawBlock("latex", '\\end{tabular}')} + + return result +end + +if FORMAT:match 'latex' then + + function Table (tbl) + return generate_tabularray(tbl) + end + +end diff --git a/texnative/_extensions/texnative/toc.tex b/texnative/_extensions/texnative/toc.tex new file mode 100644 index 0000000..a5434ec --- /dev/null +++ b/texnative/_extensions/texnative/toc.tex @@ -0,0 +1,29 @@ +$if(toc)$ +$if(toc-title)$ +\renewcommand*\contentsname{$toc-title$} +$endif$ +$if(beamer)$ +\begin{frame}[allowframebreaks] +$if(toc-title)$ + \frametitle{$toc-title$} +$endif$ + \tableofcontents[hideallsubsections] +\end{frame} +$else$ +{ +$if(colorlinks)$ +\hypersetup{linkcolor=$if(toccolor)$$toccolor$$else$$endif$} +$endif$ +\setcounter{tocdepth}{$toc-depth$} +\tableofcontents +} +$endif$ +$endif$ +$if(lof)$ +\listoffigures +$endif$ +$if(lot)$ +\listoftables +$endif$ + +\newpage diff --git a/texnative/bgwhite2.jpg b/texnative/bgwhite2.jpg new file mode 100644 index 0000000..a474953 Binary files /dev/null and b/texnative/bgwhite2.jpg differ diff --git a/texnative/bgwhite2.pdf b/texnative/bgwhite2.pdf new file mode 100644 index 0000000..3f844e0 Binary files /dev/null and b/texnative/bgwhite2.pdf differ diff --git a/texnative/cover-i.png b/texnative/cover-i.png new file mode 100644 index 0000000..8749284 Binary files /dev/null and b/texnative/cover-i.png differ diff --git a/texnative/template.pdf b/texnative/template.pdf new file mode 100644 index 0000000..04d1a2c Binary files /dev/null and b/texnative/template.pdf differ diff --git a/texnative/template.qmd b/texnative/template.qmd new file mode 100644 index 0000000..883cc46 --- /dev/null +++ b/texnative/template.qmd @@ -0,0 +1,97 @@ +--- +title: "Some Agreement about stuff" +subtitle: Agreement for a typical business case +author: Jane Dean +date: last-modified + +client: + name: Cool Customer Limited + short_name: Cool Customer + contact_person: Joe Johnson + address: Somewhereroad 1, Marslands + +format: texnative-pdf +type: Report +document_version: 1 +document_number: ABC013 +filters: + - texnative + +# DOCUMENT DEFAULT CONFIGURATION +toc: true # show table of contents +toc-title: Contents # title of table of contents +cover_page: true # generate cover page +letterhead: true # use a letterhead background +dark_background: false # use the dark bg or letterhead with white text +page_numbers: true # show page numbers +paragraph_numbers: true # show paragraph numbers before headers +papersize: a4 +letterhead_img: bgwhite.jpg # path to background image +letterhead_img_darkbg: bgdark.jpg # path to background image for dark background +cover_illustration_img: cover-i.png # path to cover page illustration image +cover_illustration_img_darkbg: cover-ill.png # path to cover page illustration image for dark background + +--- + +# Parties + +My Company Limited, based at Dataroad 14, 33333 Livington, The World, +represented by Jane Dean, referred to in this document as "My Company". + +And, + +{{< meta client.name >}}, represented by {{< meta client.contact_person >}} established +and office-accommodated at: {{< meta client.address >}}, referred to in +this document as "{{< meta client.short_name>}}". + +Hereafter jointly referred to as: “We”, both agree they have entered into a +managed services agreement to which the following conditions apply: + + +# Solid Table + +| Head 1 | Head 2 | Head 3 | +|:-------|:-------:|-------:| +| Alpha | Beta | Gamma | +| Delta | Epsilon | Zeta | +| Eta | Theta | Iota | + +# Agreement + +## Chapter + +1. Some tasks + +2. More tasks we have agreed on. + +## Chapter + +Yet more tasks + +\newpage + +# Confirmation + +As we agreed,\ + +\mbox{~~~~~~~~~~~~~~~}{Starting date agreement:}\ +\ +\mbox{~~~~~~~~~~~~~~~}{ {{< meta date >}} }\ +\mbox{~~~~~~~~~~~~~~~}{ \_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_ } \ + +\ + +\ + +Representing {{< meta client.name >}}Namens de opdrachtgever:\ + +\mbox{~~~~~~~~~~~~~~~}{Date}\ +\ + +\mbox{~~~~~~~~~~~~~~~}{ \_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\mbox{~~~~~}\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_ } \ +\ + +\mbox{~~~~~~~~~~~~~~~}{Name and signature:}\ +\ + +\mbox{~~~~~~~~~~~~~~~}{ \_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\mbox{~~~~~}\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_ } \ diff --git a/texnative/texnative-artwork.pdf b/texnative/texnative-artwork.pdf new file mode 100644 index 0000000..83b7732 Binary files /dev/null and b/texnative/texnative-artwork.pdf differ diff --git a/texnative/texnative-artwork.png b/texnative/texnative-artwork.png new file mode 100644 index 0000000..326d9d0 Binary files /dev/null and b/texnative/texnative-artwork.png differ diff --git a/texnative/texnative-artwork.svg b/texnative/texnative-artwork.svg new file mode 100644 index 0000000..e76fae2 --- /dev/null +++ b/texnative/texnative-artwork.svg @@ -0,0 +1,388 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +