diff options
Diffstat (limited to 'macros/generic')
31 files changed, 11520 insertions, 8941 deletions
diff --git a/macros/generic/lt3luabridge/CHANGES.md b/macros/generic/lt3luabridge/CHANGES.md new file mode 100644 index 0000000000..470ad7441d --- /dev/null +++ b/macros/generic/lt3luabridge/CHANGES.md @@ -0,0 +1,74 @@ +# Changes + +## 2.2.0 (2024-07-03) + +Development: + +- Automatically determine value of `\c_luabridge_default_output_dirname_str` + based on the current output directory. + (witiko/markdown#457, #26, #27, reported by @hongy19) + +Continuous Integration: + +- Automatically test the library on both Linux and Windows. + +## 2.1.0 (2024-02-14) + +Development: + +- Define function `\luabridge_tl_set:Nn`. + +## 2.0.2 (2022-10-24) + +Fixes: + +- Fix tokenization in error-reporting code. (#17, #19) +- Catch compilation errors in TeX engines other than LuaTeX. (#18, #20) + +Refactoring: + +- Remove useless uses of `\l_tmpb_tl`. (24e116d) + +## 2.0.1 (2022-08-16) + +Fixes: + +- Apply proper error handling when executing Lua via shell escape. (#15) + +## 2.0.0 (2022-08-08) + +Breaking Changes: + +- Use `\sys_get_shell:nnNTF` from l3sys instead of `\immediate\write18` and + `os.execute()`. (#13) + - Merges `\c_luabridge_method_write_eighteen_int` and + `\c_luabridge_method_os_execute_int` into + `\c_luabridge_method_shell_int`. + - Removes `\g_luabridge_standard_output_filename_str` and + `\c_luabridge_default_standard_output_filename_str`. + +Fixes: + +- Execute chunks that end with `end` or a Lua comment. (#11, #14) +- Sandbox direct Lua access. (#11, #14) +- Make nested calls defined behavior. (#8, #13) + +Refactoring: + +- Remove needless whitespaces in Lua code. +- Replace (plain) TeX primitives with `\iow_*` l3file functions. (#1, #3, + latex3/latex3#1105, latex3/latex3#1114. latex3/latex3#1117) + - Many thanks to @josephwright, @u-fischer, and @FrankMittelbach at + latex3/latex3#1114, and Hans Hagen, @hmenke, and @mojca at + [dev-context][1] for helping to make l3file compatible with ConTeXt MkII. + + [1]: https://mailman.ntg.nl/pipermail/dev-context/2022/003912.html + (A robust way of detecting ConTeXt from LaTeX3) + +## 1.0.1 (2022-06-27) + +This release includes PDF documentation of lt3luabridge. + +## 1.0.0 (2022-06-26) + +Initial release diff --git a/macros/generic/lt3luabridge/README.md b/macros/generic/lt3luabridge/README.md index a9257f4e09..2a8f4e5125 100644 --- a/macros/generic/lt3luabridge/README.md +++ b/macros/generic/lt3luabridge/README.md @@ -23,3 +23,8 @@ available as a separate package. [2]: https://www.ctan.org/pkg/markdown [3]: https://github.com/witiko/markdown/pull/141 [4]: https://github.com/Witiko/lt3luabridge/actions + +## Additional information + +- Author: Vít Starý Novotný <witiko@mail.muni.cz> +- License: LaTeX Project Public License (LPPL) 1.3c diff --git a/macros/generic/lt3luabridge/docstrip.cfg b/macros/generic/lt3luabridge/docstrip.cfg index e562506f72..7298ba5794 100644 --- a/macros/generic/lt3luabridge/docstrip.cfg +++ b/macros/generic/lt3luabridge/docstrip.cfg @@ -1,6 +1,6 @@ \preamble -Copyright (C) 2016-2024 Vít Novotný +Copyright (C) 2016-2024 Vít Starý Novotný This work may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.3c diff --git a/macros/generic/lt3luabridge/lt3luabridge.dtx b/macros/generic/lt3luabridge/lt3luabridge.dtx index 67cc73c738..d8bb7a3bee 100644 --- a/macros/generic/lt3luabridge/lt3luabridge.dtx +++ b/macros/generic/lt3luabridge/lt3luabridge.dtx @@ -47,7 +47,7 @@ % }^^A % } % -% \date{Released 2024-02-14} +% \date{Released 2024-07-03} % % \maketitle % @@ -151,7 +151,7 @@ % \texttt{-output-directory} parameter of the \TeX{} engine. % \end{variable} % -% \begin{variable}[added = 2022-06-26]{\c_luabridge_default_output_dirname_str} +% \begin{variable}[added = 2022-06-26, updated = 2024-07-03]{\c_luabridge_default_output_dirname_str} % This constant is the default value of \cs{g_luabridge_output_dirname_str}. % \end{variable} % @@ -261,9 +261,42 @@ = { \c_luabridge_method_shell_int } { - \str_const:Nn - \c_luabridge_default_output_dirname_str - { . } +% \end{macrocode} +% +% Instead of assuming the current working directory as the output directory, +% try to determine the output directory from the environmental variable +% \texttt{TEXMF_OUTPUT_DIRECTORY}, which is automatically defined by \TeX{} +% engines and accessible from child processes. +% +% \begin{macrocode} + \sys_if_platform_unix:TF + { + \str_const:Nn + \c_luabridge_default_output_dirname_str + { $TEXMF_OUTPUT_DIRECTORY } + } + { + \sys_if_platform_windows:TF + { + \str_set:Nn + \l_tmpa_str + { TEXMF_OUTPUT_DIRECTORY } + \str_put_left:NV + \l_tmpa_str + \c_percent_str + \str_put_right:NV + \l_tmpa_str + \c_percent_str + \str_const:NV + \c_luabridge_default_output_dirname_str + \l_tmpa_str + } + { + \str_const:Nn + \c_luabridge_default_output_dirname_str + { . } + } + } \str_const:Nx \c_luabridge_default_helper_script_filename_str { \jobname.luabridge.lua } @@ -358,9 +391,43 @@ \g_luabridge_helper_script_filename_str \sys_get_shell:xnNTF { - texlua~ - \g_luabridge_output_dirname_str / - \g_luabridge_helper_script_filename_str +% \end{macrocode} +% +% If the environmental variable \texttt{TEXMF_OUTPUT_DIRECTORY} is undefined, +% use the current working directory (\texttt{.}) instead. +% +% \begin{macrocode} + \str_if_eq:NNTF + \g_luabridge_output_dirname_str + \c_luabridge_default_output_dirname_str + { + \sys_if_platform_windows:TF + { + if~not~defined~TEXMF_OUTPUT_DIRECTORY~( + texlua~ + \g_luabridge_helper_script_filename_str + )~else~( + texlua~ + \g_luabridge_output_dirname_str / + \g_luabridge_helper_script_filename_str + ) + } + { + \sys_if_platform_unix:T + { + TEXMF_OUTPUT_DIRECTORY = + ${TEXMF_OUTPUT_DIRECTORY:-.} \iow_newline: + } + texlua~ + \g_luabridge_output_dirname_str / + \g_luabridge_helper_script_filename_str + } + } + { + texlua~ + \g_luabridge_output_dirname_str / + \g_luabridge_helper_script_filename_str + } } { } #1 @@ -492,8 +559,8 @@ \RequirePackage{expl3} \ProvidesExplPackage {lt3luabridge}% - {2024-02-14}% - {2.1.0}% + {2024-07-03}% + {2.2.0}% {An expl3 package that allows you to execute Lua code in LuaTeX or any other TeX engine that exposes the shell} \input lt3luabridge\relax diff --git a/macros/generic/lt3luabridge/lt3luabridge.pdf b/macros/generic/lt3luabridge/lt3luabridge.pdf Binary files differindex 2972fad79f..6370f4dbcc 100644 --- a/macros/generic/lt3luabridge/lt3luabridge.pdf +++ b/macros/generic/lt3luabridge/lt3luabridge.pdf diff --git a/macros/generic/markdown/CHANGES.md b/macros/generic/markdown/CHANGES.md index 550989a936..f4e2fdb7d0 100644 --- a/macros/generic/markdown/CHANGES.md +++ b/macros/generic/markdown/CHANGES.md @@ -1,5 +1,225 @@ # Changes +## 3.8.1 (2024-11-03) + +Fixes: + +- Fix backslashes at the ends of hybrid documents. + (#502, #503, contributed by @lostenderman) + +- Fix hard line breaks in fancy list items. + (#508, #509, contributed by @lostenderman) + +## 3.8.0 (2024-10-31) + +Development: + +- Add support for versioned themes and add new Lua option `experimental`. + (#466, #512, #514, [matrix.org][matrix-514] reviewed by @TeXhackse, #521) + + The option `experimental` enables experimental features that are planned to + be the new default in the next major release of the Markdown package. + + At the moment, this just means that the version `experimental` of the theme + `witiko/markdown/defaults` will be loaded and warnings for hard-deprecated + features will become errors. However, the effects may extend to other areas + in the future as well. + + [matrix-514]: https://matrix.to/#/!UeAwznpYwwsinVTetR:matrix.org/$TTc-m7B5NSdsLBNNyIuFWQ-u2nOZ03lJ5js88hnyFiU?via=matrix.org&via=im.f3l.de + +- Add first-class support for YAML documents. (#452, #473, #524) + - Add plain TeX macros `\yamlSetup`, `\yamlInput`, `\yamlBegin`, and `\yamlEnd`. + - Add LaTeX environment `yaml` and redefine command `\yamlInput` for LaTeX. + - Add ConTeXt commands `\setupyaml`, `\inputyaml`, `\startyaml`, and `\stopyaml`. + +Documentation: + +- Document LaTeX hooks. (#464, #507) + +Defaults: + +- Improve the compatibility of the default LaTeX packages with PDF tagging: + (#466, #512, #514, #521, reported and consulted by @u-fischer) + + - In TeX engines other than LuaTeX, use the package soul instead of the + package soulutf8 in TeX Live ≥ 2023. + + - In LuaLaTeX, use the package lua-ul for strike-through/mark renderer + prototypes instead of the package soul. + + - Use the package enumitem for tight and fancy lists instead of the package + paralist. + + This is a breaking change that is marked as experimental. To enable it, + either use the package option `experimental` or specify any test phase in + the document metadata: + + 1. `\usepackage[experimental]{markdown}` + 2. `\DocumentMetadata{testphase=phase-III}` + +- Define LaTeX renderers for image identifiers. + (#520, suggested by @jurf, 6f3dcd0c, 478530f, [matrix.org][matrix-520]) + + This establishes a reliable method for authors to reference figures within Markdown: + + ``` tex + \documentclass{article} + \usepackage[link_attributes, relative_references]{markdown} + \begin{document} + \begin{markdown} + + ![example image](example-image "An example image"){#example-image-id} + + See Figure <#example-image-id>. + + \end{markdown} + \end{document} + ``` + +- Set correct category codes for version 3 of the package minted. (39980934) + +Continuous Integration: + +- Only use self-hosted runners for the quick CI in pull requests. + For full CI outside pull requests, use GitHub-hosted runners. + (c2697428, [matrix.org][matrix-950e8269]) + + [matrix-950e8269]: https://matrix.to/#/!pznomuvubVyxElflTe:matrix.org/$op_onsRdhtXJsZB5d5LZrOFF75T02XvKehmikdoucx4?via=matrix.org&via=im.f3l.de + [matrix-520]: https://matrix.to/#/!lWGKeMcpgwGHpfLYkf:matrix.org/$mZB-_YfreLFSKU5eDzp0AIvMnsV_Bn-rpUoj9HtUVwk?via=matrix.org&via=im.f3l.de + +## 3.7.1 (2024-09-30) + +Development: + +- Remove dependency on `UnicodeData.txt`. (#400, #458 #486, #492, #499) + + This change improves the speed of parsing markdown input by up to 25% + for a cold conversion run and makes life easier for users of TeX + distributions other than TeX Live, such as MikTeX and ConTeXt Standalone, + where `UnicodeData.txt` may not be as easily available. This change also + adds a new file `markdown-unicode-data.lua`, which must be properly + installed with the rest of the Markdown package. + +- Add renderers `warning` and `error` that represent warnings and errors + produced by the markdown parser. (#452, #473, #496) + +Fixes: + +- Properly load LaTeX themes when `theme` or `import` is used in + `\usepackage[...]{markdown}`. (#471, #498) + +- Prevent endless loop when setting deprecated `jekyllDataString` renderer + (prototype). (#500) + +- Correctly handle backslashes in `\markdownOptionOutputDir` on Windows. + (#492, #500, reported by @l0th3r) + +- Fix hard line breaks in blockquotes. + (#494, #495, reported by @l0th3r, #496, contributed by @lostenderman) + +Deprecation: + +- Soft-deprecate the `hybrid` option. (#470, #504, 546faa87) + + Soft-deprecated features will never be removed but using them prints a + warning and is discouraged. Instead of the `hybrid` option, consider one of + the following better alternatives for mixing TeX and markdown: + + - With the `contentBlocks` option, authors can move large blocks of TeX + code to separate files and include them in their markdown documents as + external resources. + + - With the `rawAttribute` option, authors can denote raw text spans and + code blocks that will be interpreted as TeX code. + + - With options `texMathDollars`, `texMathSingleBackslash`, and + `texMathDoubleBackslash`, authors can freely type TeX commands between + dollar signs or backslash-escaped brackets. + + For more information, see the user manual at + <https://witiko.github.io/markdown/>. + +## 3.7.0 (2024-08-30) + +Development: + +- Add renderer `jekyllDataProgrammaticString` for processing YAML + string scalars that do not contain markdown markup and are not + intended for typesetting. + (istqborg/istqb_product_base#46, #440, #451, sponsored by @istqborg) +- Add option `ensureJekyllData` for processing standalone YAML files. + (#452, #473, sponsored by @istqborg) +- Support user-defined LaTeX environments with LaTeX markup. + (#20, #477, suggested by @cdupont) + +Fixes: + +- Produce more meaningful error message when KPathSea fails to + locate a file. (#458, #472, 33e6eef2, reported by @Yggdrasil128) +- Fix soft line breaks in citation prenotes and postnotes. + (#483, #484, contributed by @lostenderman) + +Speed improvements: + +- Precompile snippets to improve the speed of setting them. + (#467, #479, inspired by the TUG 2024 talk by @josephwright) +- Use an optimized parser to determine Unicode punctuation. + (#458, #474, #482, 4c1a7de2, co-authored by @Yggdrasil128, + sponsored by @istqborg) + This improves the speed of parsing markdown input by up to 500%. +- Enable option `eagerCache` by default. (#468, #490, sponsored by @istqborg) + This improves the speed by up to 25% for large documents with many + markdown fragments that require multiple compilation runs. +- Prevent loading the full Markdown package when converting cached markdown + fragments. (#487, #491, 40f0803f, 6609d43d, sponsored by @istqborg) + This significantly improves the speed for large documents with many + markdown fragments that require multiple compilation runs in pdfTeX. + +Deprecation: + +- Deprecate `jekyllDataString` renderer and renderer prototype. + (istqborg/istqb_product_base#46, #440, #451, sponsored by @istqborg) + Users should use `jekyllDataTypographicString` instead. + +Continuous Integration: + +- Ensure that all code lines are shorter than 72 characters. + (#478, e7160d60, 3ac95efe) + +Experiments: + +- Measure the speed of the Markdown package across recent versions. + (249552e5, 55ede824, efeaecbe, #474, 7b2b2431, fcf0064c) + +## 3.6.2 (2024-07-14) + +Fixes: + +- Fix the interplay between inline notes and square brackets. + (#453, #456, reported by @nopria, contributed by @lostenderman) +- Fix the interplay between lists and citations. + (witiko/expltools#3, #460, #461, contributed by @lostenderman) +- Do not override the `outputDir` option if if has been defined + before loading the package and pass it to lt3luabridge library. + (#457, #459) + +Documentation: + +- Fix various typos. (#454, contributed by @mbertucci47) +- Add file `DEPENDS.txt`. (#462, #463, 93bb7e18) + +Continuous Integration: + +- Only test latest TeX Live in pull requests. (81927ca1) + +Tests: + +- Test the `outputDir` plain TeX option. (#457, #459) + +Libraries: + +- Update `tinyyaml` to v0.4.4-1-g197632c. (1e83ac94) + ## 3.6.1 (2024-06-20) Fixes: @@ -170,7 +390,7 @@ Default Renderer Prototypes: - Do not unnecessarily override math renderer prototypes in LaTeX/ConTeXt. (#387, #396, contributed by @zousiyu1995) -Unit Tests: +Tests: - In pull requests, process added and modified testfiles first. (feafe9b9, 9ff530da, 18deae73) @@ -274,7 +494,7 @@ Documentation: [matrix-357]: https://matrix.to/#/!efVbynJpCMjlOTfose:matrix.org/$WR3quuO1fyOl6w_KX6YFA4BACBcL-cWUWBpVfpPWDkI?via=matrix.org&via=im.f3l.de -Unit Tests: +Tests: - Restore CommonMark testfiles with trailing tabs and spaces. (#348, #353, lostenderman/markdown#2, contributed by @lostenderman) @@ -317,7 +537,7 @@ Deprecation: [matrix-351]: https://matrix.to/#/!lWGKeMcpgwGHpfLYkf:matrix.org/$yVeWB0Yzfz6mgORv5VeG9IEl7a4xLogkAUmdNMSCxEg?via=matrix.org&via=im.f3l.de -Unit Tests: +Tests: - Add support for YAML metadata in testfiles. (#345, #347, [matrix.org][matrix-347]) @@ -364,7 +584,7 @@ Documentation: (f3efcb9) - Document setting up catcodes in Lua. (#329, #342) -Unit Tests: +Tests: - Batch unit tests to improve speed. (#245, #316, 8bfd0b3, #317, #319..#325, #327, #328, e3b31696, @@ -398,7 +618,7 @@ Documentation: - Add a link to TUG 2023 slides and video to the README. (ce6047b8, adb69e2f) -Unit Tests: +Tests: - Rewrite the unit testing framework from Bash to Python and implement summarization. (#245, #314) @@ -576,7 +796,7 @@ Default Renderer Prototypes: - In LaTeX and ConTeXt, use just first word of infostring to determine fence code block language. (#244) -Unit Tests: +Tests: - Do not fold tabs and spaces into a single space token. (lostenderman#107, #242) @@ -704,7 +924,7 @@ Development: - Add support for strike-throughs, fenced divs, subscripts, superscripts, and fancy lists. (#149, #160, #162, #168, #170) -- Add facade in front of expl3 inferface for YAML metadata. (#118, #175) +- Add facade in front of expl3 interface for YAML metadata. (#118, #175) - Add `\setupmarkdown` and `\inputmarkdown` commands to ConTeXt. (#17, #176) Fixes: @@ -784,7 +1004,7 @@ Docker: Documentation: -- Remove disfunctional badges for Docker from `README.md`. (ad00b58, 707cad9) +- Remove dysfunctional badges for Docker from `README.md`. (ad00b58, 707cad9) - Link to TUG's version of the TUG 2021 video in `README.md`. (1462411) Miscellaneous: @@ -1045,7 +1265,7 @@ Fixes: Fixes: - String text and parenthetical citations. (e6026c1) -- Escape autolink labels even when hybrid mode is enabled. (repored by @iwelch, +- Escape autolink labels even when hybrid mode is enabled. (reported by @iwelch, 693e134) - Protect LaTeX strong emphasis renderer prototype and make it detect font. (reported by @iwelch, 89a031a) @@ -1105,7 +1325,7 @@ Licensing: - Bump the copyright year. (9462f17) - Sublicense the code as LPPL v1.3c. (609aeee) -Unit tests: +Tests: - Remove xtrace from `test.sh` for less verbose output. (b307ee6) - Treat all files as text with GNU diff in `test.sh`. (ec89e6d) diff --git a/macros/generic/markdown/DEPENDS.txt b/macros/generic/markdown/DEPENDS.txt new file mode 100644 index 0000000000..ee358c0eef --- /dev/null +++ b/macros/generic/markdown/DEPENDS.txt @@ -0,0 +1,25 @@ +hard l3kernel +hard lt3luabridge +hard lua-uni-algos +soft amsfonts +soft amsmath +soft catchfile +soft csvsimple +soft enumitem +soft epstopdf-pkg +soft etoolbox +soft fancyvrb +soft gobble +soft graphics +soft grffile +soft latex +soft ltxcmds +soft lua-ul +soft luacolor +soft paralist +soft pgf +soft soul +soft tools +soft url +soft verse +soft xcolor diff --git a/macros/generic/markdown/README.md b/macros/generic/markdown/README.md index 1aaa42ed9e..46801605af 100644 --- a/macros/generic/markdown/README.md +++ b/macros/generic/markdown/README.md @@ -1,5 +1,5 @@ -Markdown -======== +The Markdown Package for TeX +============================ [![license](https://img.shields.io/github/license/witiko/markdown)](LICENSE) [![ci](https://github.com/witiko/markdown/actions/workflows/main.yml/badge.svg)][ci] @@ -18,7 +18,7 @@ Markdown The Markdown package converts [CommonMark][] markup to TeX commands. The functionality is provided both as a Lua module, and as plain TeX, LaTeX, and ConTeXt macro packages that can be used to directly typeset TeX documents -containing markdown markup. Unlike other convertors, the Markdown package does +containing markdown markup. Unlike other converters, the Markdown package does not require any external programs, and makes it easy to redefine how each and every markdown element is rendered. Creative abuse of the markdown syntax is encouraged. 😉 @@ -94,7 +94,7 @@ jobs: container: image: witiko/markdown:latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - run: latexmk -lualatex document.tex - uses: marvinpinto/action-automatic-releases@latest permissions: @@ -115,52 +115,6 @@ In fact, this is how we automatically produce [github-actions]: https://docs.github.com/actions "GitHub Actions Documentation" -Peek under the hood -------------------- - -Remember how we said that the Markdown package converts markdown markup to -TeX commands? Let's see what that means and what we can do with this knowledge. - -Using a text editor, create an empty text document named `document.md` with -the following markdown content: - -``` markdown -Hello *Markdown*! $a_x + b_x = c_x$ -``` - -Next, run [the Lua command-line interface (CLI)][lua-cli] from -[our official Docker image][docker-witiko/markdown] on `document.md`: - - docker run --rm -i witiko/markdown markdown-cli hybrid=true < document.md - -We will receive the following output, where the markdown markup has been -replaced by TeX commands: - -``` tex -\markdownDocumentBegin -Hello \markdownRendererEmphasis{Markdown}! -$a\markdownRendererEmphasis{x + b}x = c_x$ -\markdownDocumentEnd -``` - -We can see right away that the Markdown package has incorrectly interpreted -`_x + b_` as an emphasized text. We can fix this by passing in the -`underscores=false` option: - - docker run --rm -i witiko/markdown markdown-cli hybrid=true underscores=false < document.md - -``` tex -\markdownDocumentBegin -Hello \markdownRendererEmphasis{Markdown}! -$a_x + b_x = c_x$ -\markdownDocumentEnd -``` - -Much better! If the Markdown package ever surprises you, use the Lua CLI to -peek under the hood and inspect the results of the conversion. - - [lua-cli]: https://mirrors.ctan.org/macros/generic/markdown/markdown.html#lua-command-line-interface "Markdown Package User Manual" - Further information ------------------- @@ -193,8 +147,8 @@ For further information, consult one of the following: - [Markdown 2.17.1: What's New, What's Next?][tb135], - [Attributes in Markdown][tb136], - [Markdown 3 at TUG 2023: Reflections from the Q&A session][tb138], - - Fast Regression Testing of TeX Packages: The Unreasonable Effectiveness of Batching ([preprint][tb139]), and - - Markdown Themes in Practice ([preprint][tb140]). + - [Fast Regression Testing of TeX Packages: The Unreasonable Effectiveness of Batching][tb139], and + - [Markdown Themes in Practice][tb140]. 5. Journal articles published by [CSTUG Bulletin][csbul] (in Czech and Slovak): - [Rendering Markdown inside TeX Documents][10.5300/2016-1-4/78], - [Markdown 2.8.1: Boldly Unto the Throne of Lightweight Markup in TeX][10.5300/2020-1-2/48], @@ -204,11 +158,12 @@ For further information, consult one of the following: - [Markdown 3: What's New, What's Next?][10.5300/2023-3-4/111]. 6. Talks: - [Five Years of Markdown in LaTeX: What, Why, How, and Whereto][pv212-fall2020] (in Czech), - - [Markdown 2.10.0: LaTeX Themes & Snippets, Two Flavors of Comments, and LuaMetaTeX][tb131-video] ([slides][tb131-slides]), + - [Markdown 2.10.0: LaTeX Themes & Snippets, Two Flavors of Comments, and LuaMetaTeX][tb131-video] ([mirror][tb131-video-mirror], [slides][tb131-slides]), - [A Self-Publisher's Take on Markdown and TeX][tb134-01-video] ([slides][tb134-01-slides]), - [A Gentle Introduction to Markdown for Writers][tb134-02-video] ([slides][tb134-02-slides], [example][tb134-02-example]), - - [Markdown 3: What's New, What's Next?][tb137-video] ([slides][tb137-slides]), and - - An Implementation of the CommonMark Standard and new Syntax Extensions to the Markdown Package for TeX ([slides][gencur-defense-slides]). + - [Markdown 3: What's New, What's Next?][tb137-video] ([mirror][tb137-video-mirror], [slides][tb137-slides]), + - An Implementation of the CommonMark Standard and new Syntax Extensions to the Markdown Package for TeX ([slides][gencur-defense-slides]), and + - [Markdown Themes in Practice][tb140-video] ([preprint][tb140-preprint], [slides][tb140-slides]) 7. Theses: - [Generic TeX Writer for the Pandoc Document Converter][thesis-umhg5] - [An implementation of the CommonMark standard into the Markdown package for TeX][thesis-r7z7l] @@ -220,26 +175,31 @@ For further information, consult one of the following: [overleaf-5]: https://www.overleaf.com/latex/examples/writing-posters-with-markdown/jtbgmmgqrqmh "Writing Posters with Markdown" [overleaf-6]: https://www.overleaf.com/latex/examples/using-markdown-in-latex-documents/whdrnpcpnwrm "Using Markdown in LaTeX documents" - [tb119]: https://www.tug.org/TUGboat/tb38-2/tb119novotny.pdf "Using Markdown inside TeX documents" - [tb124]: https://www.tug.org/TUGboat/tb40-1/tb124novotny-markdown.pdf "Markdown 2.7.0: Towards lightweight markup in TeX" - [tb129]: https://www.tug.org/TUGboat/tb41-3/tb129novotny-frozen.pdf "Making Markdown into a Microwave Meal" - [tb131]: https://www.tug.org/TUGboat/tb42-2/tb131novotny-markdown.pdf "Markdown 2.10.0: LaTeX Themes & Snippets, Two Flavors of Comments, and LuaMetaTeX" - [tb133]: https://www.tug.org/TUGboat/tb43-1/tb133novotny-markdown.pdf "Markdown 2.15.0: What's New?" - [tb135]: https://www.tug.org/TUGboat/tb43-3/tb135novotny-markdown.pdf "Markdown 2.17.1: What's New, What's Next?" - [tb136]: https://www.tug.org/TUGboat/tb44-1/tb136novotny-markdown-attr.pdf "Attributes in Markdown" - [tb138]: https://www.tug.org/TUGboat/tb44-3/tb138starynovotny-markdown-qa.pdf "Markdown 3 at TUG 2023: Reflections from the Q&A session" - [tb139]: https://github.com/Witiko/fast-regression-testing/releases/download/latest/tb139starynovotny-testing.pdf "Fast Regression Testing of TeX Packages: The Unreasonable Effectiveness of Batching" - [tb140]: https://www.tug.org/tug2024/preprints/starynovotny-markdown-themes.pdf "Markdown Themes in Practice" - - [tb131-slides]: https://tug.org/tug2021/assets/pdf/tug2021-novotny-slides.pdf "Markdown 2.10.0: LaTeX Themes & Snippets, Two Flavors of Comments, and LuaMetaTeX" - [tb131-video]: https://youtu.be/i2GJMnLCZls "Markdown 2.10.0: LaTeX Themes & Snippets, Two Flavors of Comments, and LuaMetaTeX" - [tb134-01-slides]: https://tug.org/tug2022/assets/served/Lloyd_Prentice-TUG2022-prentice-selfpub-slides.pdf "A Self-Publisher's Take on Markdown and TeX" - [tb134-01-video]: https://youtu.be/OhwzT3TcLj8 "A Self-Publisher's Take on Markdown and TeX" - [tb134-02-slides]: https://tug.org/tug2022/assets/pdf/Tereza_Vrabcová-TUG2022-slides.pdf "A Gentle Introduction to Markdown for Writers" - [tb134-02-example]: https://tug.org/tug2022/assets/pdf/Tereza_Vrabcová-TUG2022-example.pdf "A Gentle Introduction to Markdown for Writers" - [tb134-02-video]: https://youtu.be/FhN_x9rsR4M "A Gentle Introduction to Markdown for Writers" - [tb137-slides]: https://tug.org/tug2023/files/sa-03-novotny-markdown3/novotny-markdown3-slides.pdf "Markdown 3: What's New, What's Next?" - [tb137-video]: https://youtu.be/U8XjTOhJkg0 "Markdown 3: What's New, What's Next?" + [tb119]: https://www.tug.org/TUGboat/tb38-2/tb119novotny.pdf "Using Markdown inside TeX documents" + [tb124]: https://www.tug.org/TUGboat/tb40-1/tb124novotny-markdown.pdf "Markdown 2.7.0: Towards lightweight markup in TeX" + [tb129]: https://www.tug.org/TUGboat/tb41-3/tb129novotny-frozen.pdf "Making Markdown into a Microwave Meal" + [tb131]: https://www.tug.org/TUGboat/tb42-2/tb131novotny-markdown.pdf "Markdown 2.10.0: LaTeX Themes & Snippets, Two Flavors of Comments, and LuaMetaTeX" + [tb133]: https://www.tug.org/TUGboat/tb43-1/tb133novotny-markdown.pdf "Markdown 2.15.0: What's New?" + [tb135]: https://www.tug.org/TUGboat/tb43-3/tb135novotny-markdown.pdf "Markdown 2.17.1: What's New, What's Next?" + [tb136]: https://www.tug.org/TUGboat/tb44-1/tb136novotny-markdown-attr.pdf "Attributes in Markdown" + [tb138]: https://www.tug.org/TUGboat/tb44-3/tb138starynovotny-markdown-qa.pdf "Markdown 3 at TUG 2023: Reflections from the Q&A session" + [tb139]: https://www.tug.org/TUGboat/tb45-1/tb139starynovotny-testing.pdf "Fast Regression Testing of TeX Packages: The Unreasonable Effectiveness of Batching" + [tb140]: https://github.com/Witiko/markdown-themes-in-practice/releases/download/latest/tb140starynovotny-markdown-themes.pdf "Markdown Themes in Practice" + + [tb131-slides]: https://tug.org/tug2021/assets/pdf/tug2021-novotny-slides.pdf "Markdown 2.10.0: LaTeX Themes & Snippets, Two Flavors of Comments, and LuaMetaTeX" + [tb131-video]: https://youtu.be/i2GJMnLCZls "Markdown 2.10.0: LaTeX Themes & Snippets, Two Flavors of Comments, and LuaMetaTeX" + [tb131-video-mirror]: https://youtu.be/THmPkAncMnc "Markdown 2.10.0: LaTeX Themes & Snippets, Two Flavors of Comments, and LuaMetaTeX (mirror)" + [tb134-01-slides]: https://tug.org/tug2022/assets/served/Lloyd_Prentice-TUG2022-prentice-selfpub-slides.pdf "A Self-Publisher's Take on Markdown and TeX" + [tb134-01-video]: https://youtu.be/OhwzT3TcLj8 "A Self-Publisher's Take on Markdown and TeX" + [tb134-02-slides]: https://tug.org/tug2022/assets/pdf/Tereza_Vrabcová-TUG2022-slides.pdf "A Gentle Introduction to Markdown for Writers" + [tb134-02-example]: https://tug.org/tug2022/assets/pdf/Tereza_Vrabcová-TUG2022-example.pdf "A Gentle Introduction to Markdown for Writers" + [tb134-02-video]: https://youtu.be/FhN_x9rsR4M "A Gentle Introduction to Markdown for Writers" + [tb137-slides]: https://tug.org/tug2023/files/sa-03-novotny-markdown3/novotny-markdown3-slides.pdf "Markdown 3: What's New, What's Next?" + [tb137-video]: https://youtu.be/U8XjTOhJkg0 "Markdown 3: What's New, What's Next?" + [tb137-video-mirror]: https://youtu.be/W15bBpVTA-c "Markdown 3: What's New, What's Next? (mirror)" + [tb140-preprint]: https://www.tug.org/tug2024/preprints/starynovotny-markdown-themes.pdf "Markdown Themes in Practice" + [tb140-video]: https://youtu.be/d7vTW7PR0B4?t=5h3m10s "Markdown Themes in Practice" + [tb140-slides]: https://www.tug.org/tug2024/slides/starynovotny-markdown-themes.pdf "Markdown Themes in Practice" [10.5300/2016-1-4/78]: https://www.doi.org/10.5300/2016-1-4/78 "Rendering Markdown inside TeX Documents" [10.5300/2020-1-2/48]: https://www.doi.org/10.5300/2020-1-2/48 "Markdown 2.8.1: Boldly Unto the Throne of Lightweight Markup in TeX" @@ -276,7 +236,7 @@ Acknowledgements | [<img width="150" src="https://www.fi.muni.cz/images/fi-logo.png">][fimu] | I gratefully acknowledge the funding from the [Faculty of Informatics][fimu] at the [Masaryk University][mu] in Brno, Czech Republic, for the development of the Markdown package in projects [MUNI/33/12/2015][], [MUNI/33/1784/2020][], [MUNI/33/0776/2021][], [MUNI/33/1654/2022][], and [MUNI/33/1658/2022][]. | | [<img width="150" src="https://cdn.overleaf.com/img/ol-brand/overleaf_og_logo.png">][overleaf] | Extensive user documentation for the Markdown package was kindly written by [Lian Tze Lim][liantze] and published by [Overleaf][]. | | [<img width="150" src="https://pbs.twimg.com/profile_images/1004769879319334912/6Bh1UthD.jpg">][omedym] | Support for content slicing (Lua options [`shiftHeadings`][option-shift-headings] and [`slice`][option-slice]) and pipe tables (Lua options [`pipeTables`][option-pipe-tables] and [`tableCaptions`][option-table-captions]) was graciously sponsored by [David Vins][dvins] and [Omedym][]. | -| [<img width="150" src="https://www.istqb.org/static/istqb-logo-1b043e800a580724ad223567f9ea57c0.png">][istqb] | Fixes for issues [#359][issue-359], [#368][issue-368], [#401][issue-401], and [#424][issue-424] were graciously sponsored by the [International Software Testing Qualifications Board (ISTQB)][istqb]. | +| [<img width="150" src="https://www.istqb.org/static/istqb-logo-1b043e800a580724ad223567f9ea57c0.png">][istqb] | Fixes for issues [#359][issue-359], [#368][issue-368], [#401][issue-401], [#424][issue-424], [#440][issue-440], [#468][issue-468], [#474][issue-474], and [#487][issue-487] were graciously sponsored by the [International Software Testing Qualifications Board (ISTQB)][istqb]. | [dvins]: https://github.com/dvins "David Vins" [fimu]: https://www.fi.muni.cz/index.html.en "Faculty of Informatics, Masaryk University" @@ -288,6 +248,10 @@ Acknowledgements [issue-368]: https://github.com/witiko/markdown/issues/368 "Tables nested in list items have empty lines" [issue-401]: https://github.com/witiko/markdown/issues/401 "Create an unnumbered section" [issue-424]: https://github.com/witiko/markdown/issues/424 "E-mail addresses are incorrectly interpreted as bracketed citations" + [issue-440]: https://github.com/witiko/markdown/issues/440 "Support programmatic text in YAML metadata values" + [issue-468]: https://github.com/witiko/markdown/issues/468 "Enable option eagerCache by default" + [issue-474]: https://github.com/witiko/markdown/issues/474 "Improve the speed of the Markdown package" + [issue-487]: https://github.com/witiko/markdown/issues/487 "Prevent loading the full Markdown package when converting cached markdown fragments" [option-pipe-tables]: https://mirrors.ctan.org/macros/generic/markdown/markdown.html#pipe-tables "Markdown Package User Manual" [option-shift-headings]: https://mirrors.ctan.org/macros/generic/markdown/markdown.html#option-shiftheadings "Markdown Package User Manual" diff --git a/macros/generic/markdown/VERSION b/macros/generic/markdown/VERSION index e15dd6a469..7a3b734d16 100644 --- a/macros/generic/markdown/VERSION +++ b/macros/generic/markdown/VERSION @@ -1 +1 @@ -3.6.1-0-g5a45a922 (2024-06-20) +3.8.1-0-gbbed72f3 (2024-11-03) diff --git a/macros/generic/markdown/docstrip.cfg b/macros/generic/markdown/docstrip.cfg index 9dc5f65230..44429e7b97 100644 --- a/macros/generic/markdown/docstrip.cfg +++ b/macros/generic/markdown/docstrip.cfg @@ -11,18 +11,18 @@ -- permit persons to whom the Software is furnished to do so, subject to^^J% -- the following conditions:^^J% --^^J% --- The above copyright notice and this permission notice shall be included^^J% --- in all copies or substantial portions of the Software.^^J% +-- The above copyright notice and this permission notice shall be^^J% +-- included in all copies or substantial portions of the Software.^^J% --^^J% -- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,^^J% -- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF^^J% --- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.^^J% +-- MERCHANTABILITY, FITNESS FOR PARTICULAR PURPOSE AND NONINFRINGEMENT.^^J% -- IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY^^J% -- CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,^^J% -- TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE^^J% -- SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.^^J% --^^J% --- Copyright (C) 2016-2024 Vít Starý Novotný^^J% +-- Copyright (C) 2016-2024 Vít Starý Novotný, Andrej Genčur^^J% --^^J% -- This work may be distributed and/or modified under the^^J% -- conditions of the LaTeX Project Public License, either version 1.3^^J% @@ -62,7 +62,7 @@ \let\luapostamble\empty \declarepreamble\texpreamble -Copyright (C) 2016-2024 Vít Starý Novotný +Copyright (C) 2016-2024 Vít Starý Novotný, Andrej Genčur This work may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.3c diff --git a/macros/generic/markdown/examples/context-mkiv.tex b/macros/generic/markdown/examples/context-mkiv.tex index 6cb185802a..34b6b35093 100644 --- a/macros/generic/markdown/examples/context-mkiv.tex +++ b/macros/generic/markdown/examples/context-mkiv.tex @@ -57,6 +57,37 @@ kpse.set_program_name("luatex") \starttext +% Set and typeset the document metadata using a YAML metadata block. +\setupyaml + [ + jekyllDataRenderers = { + title = {\gdef\doctitle{#1}}, + author = {\gdef\author{#1}}, + date = {\gdef\date{#1}}, + }, + renderers = { + jekyllDataEnd = {% + \startalignment[center] + \blank[force,2*big] + {\tfd \doctitle} + \blank[3*medium] + {\tfa \author} + \blank[2*medium] + {\tfa \date} + \blank[3*medium] + \stopalignment + }, + }, + ] + +\startyaml + +title: An Example *Markdown* Document +author: Vít Starý Novotný +date: `\currentdate`{=tex} + +\stopyaml + % Typeset the document `example.md` by letting the Markdown package handle % the conversion internally. Optionally, we can specify additional options % between the square brackets similarly to the command `\setupmarkdown`. diff --git a/macros/generic/markdown/examples/latex-luatex.tex b/macros/generic/markdown/examples/latex-luatex.tex index 51be09c1f6..370ce2f231 100644 --- a/macros/generic/markdown/examples/latex-luatex.tex +++ b/macros/generic/markdown/examples/latex-luatex.tex @@ -12,7 +12,6 @@ fencedCode, hashEnumerators, inlineNotes, - jekyllData, lineBlocks, notes, pipeTables, @@ -28,13 +27,11 @@ texMathSingleBackslash, ]{markdown} % Set the document metadata using a YAML metadata block. -\begin{markdown}[hybrid] ---- +\begin{yaml} title: An Example *Markdown* Document author: Vít Starý Novotný -date: \today ---- -\end{markdown} +date: `\today`{=tex} +\end{yaml} \begin{document} % Typeset the document `example.md` by letting the Markdown package handle % the conversion internally. diff --git a/macros/generic/markdown/examples/latex-pdftex.tex b/macros/generic/markdown/examples/latex-pdftex.tex index 34f78707c3..b530443548 100644 --- a/macros/generic/markdown/examples/latex-pdftex.tex +++ b/macros/generic/markdown/examples/latex-pdftex.tex @@ -13,7 +13,6 @@ fencedCode, hashEnumerators, inlineNotes, - jekyllData, lineBlocks, notes, pipeTables, @@ -29,13 +28,11 @@ texMathSingleBackslash, ]{markdown} % Set the document metadata using a YAML metadata block. -\begin{markdown}[hybrid] ---- +\begin{yaml} title: An Example *Markdown* Document author: Vít Starý Novotný -date: \today ---- -\end{markdown} +date: `\today`{=tex} +\end{yaml} \begin{document} % Typeset the document `example.md` by letting the Markdown package handle % the conversion internally. diff --git a/macros/generic/markdown/examples/optex.tex b/macros/generic/markdown/examples/optex.tex index d39369f6b3..afdcc70dad 100644 --- a/macros/generic/markdown/examples/optex.tex +++ b/macros/generic/markdown/examples/optex.tex @@ -226,9 +226,14 @@ \_let \markdownRendererJekyllDataSequenceEnd \_relax \_def \markdownRendererJekyllDataBoolean #1#2{} \_def \markdownRendererJekyllDataNumber #1#2{} -\_def \markdownRendererJekyllDataString #1#2{} +\_def \markdownRendererJekyllDataProgrammaticString #1#2{} +\_def \markdownRendererJekyllDataTypographicString #1#2{} \_def \markdownRendererJekyllDataEmpty #1{} +%% Warning and Error Renderers +\_def \markdownRendererWarning #1#2#3#4{} +\_def \markdownRendererError #1#2#3#4{} + % Load the Markdown module and set TeX macros for the Markdown module \_directlua{ kpse = require("kpse") diff --git a/macros/generic/markdown/libraries/markdown-tinyyaml.lua b/macros/generic/markdown/libraries/markdown-tinyyaml.lua index 36cef293ed..25b351f7e4 100644 --- a/macros/generic/markdown/libraries/markdown-tinyyaml.lua +++ b/macros/generic/markdown/libraries/markdown-tinyyaml.lua @@ -253,7 +253,9 @@ function Parser:parsestring(line, stopper) end line = ssub(line, 2) end - return rtrim(buf), line + buf = rtrim(buf) + local val = tonumber(buf) or buf + return val, line end local function isemptyline(line) diff --git a/macros/generic/markdown/markdown.dtx b/macros/generic/markdown/markdown.dtx index 4685ed3ee6..8fc4867b43 100644 --- a/macros/generic/markdown/markdown.dtx +++ b/macros/generic/markdown/markdown.dtx @@ -78,10 +78,9 @@ \usepackage[ citations, definitionLists, - fencedCode, + experimental, notes, headerAttributes, - html, hybrid, inlineNotes, jekyllData, @@ -122,7 +121,7 @@ --- title: A Markdown Interpreter for \TeX url: https://github.com/witiko/markdown -authors: [Vít Starý Novotný] +authors: [Vít Starý Novotný, Andrej Genčur] email: witiko@mail.muni.cz revision: \markdownVersion date: \markdownLastModified @@ -684,118 +683,138 @@ abbr { %</techdoc-block-diagram> %<*techdoc-bibliography> @online{starynovotny24, - author = {Starý Novotný, Vít and Enrico Gregorio and Max Chernoff and P. Spratte, Jonathan}, - title = {Convert control sequence with a variable number of undelimited parameters into a token list}, - url = {https://tex.stackexchange.com/q/716362/70941}, - urldate = {2024-04-28}, + author = {Starý Novotný, Vít and Enrico Gregorio and Max Chernoff and P. Spratte, Jonathan}, + title = {Convert control sequence with a variable number of undelimited parameters into a token list}, + url = {https://tex.stackexchange.com/q/716362/70941}, + urldate = {2024-04-28}, } @book{tantau21, - author = {Till Tantau and Joseph Wright and Vedran Miletić}, - title = {The Beamer class}, - date = {2021-02-10}, - url = {https://mirrors.ctan.org/macros/latex/contrib/beamer/doc/beameruserguide.pdf}, - urldate = {2021-02-11}} + author = {Till Tantau and Joseph Wright and Vedran Miletić}, + title = {The Beamer class}, + date = {2021-02-10}, + url = {https://mirrors.ctan.org/macros/latex/contrib/beamer/doc/beameruserguide.pdf}, + urldate = {2021-02-11}} @online{sotkov17, - author = {Sotkov, Anton}, - title = {File transclusion syntax for Markdown}, - date = {2017-01-19}, - url = {https://github.com/iainc/Markdown-Content-Blocks}, - urldate = {2018-01-08}} + author = {Sotkov, Anton}, + title = {File transclusion syntax for Markdown}, + date = {2017-01-19}, + url = {https://github.com/iainc/Markdown-Content-Blocks}, + urldate = {2018-01-08}} @book{luatex21, - author = {{Lua\TeX{} development team}}, - title = {Lua\TeX{} reference manual}, - date = {2021-07-23}, - note = {Version 1.10 (stable)}, - url = {https://www.pragma-ade.com/general/manuals/luatex.pdf}, - urldate = {2022-09-30}} + author = {{Lua\TeX{} development team}}, + title = {Lua\TeX{} reference manual}, + date = {2021-07-23}, + note = {Version 1.10 (stable)}, + url = {https://www.pragma-ade.com/general/manuals/luatex.pdf}, + urldate = {2022-09-30}} @book{latex17, - author = {Braams, Johannes and Carlisle, David and Jeffrey, Alan and + author = {Braams, Johannes and Carlisle, David and Jeffrey, Alan and Lamport, Leslie and Mittelbach, Frank and Rowley, Chris and Schöpf, Rainer}, - title = {The \Hologo{LaTeX2e} Sources}, - date = {2017-04-15}, - url = {https://mirrors.ctan.org/macros/latex/base/source2e.pdf}, - urldate = {2018-01-08}} + title = {The \Hologo{LaTeX2e} Sources}, + date = {2017-04-15}, + url = {https://mirrors.ctan.org/macros/latex/base/source2e.pdf}, + urldate = {2018-01-08}} @book{mittelbach17, - author = {Mittelbach, Frank}, - title = {The \texttt{doc} and \texttt{shortvrb} Packages}, - date = {2017-04-15}, - url = {https://mirrors.ctan.org/macros/latex/base/doc.pdf}, - urldate = {2018-02-19}} + author = {Mittelbach, Frank}, + title = {The \texttt{doc} and \texttt{shortvrb} Packages}, + date = {2017-04-15}, + url = {https://mirrors.ctan.org/macros/latex/base/doc.pdf}, + urldate = {2018-02-19}} +@book{mittelbach24, + author = {Mittelbach, Frank}, + title = {\LaTeX's hook management}, + date = {2024-06-26}, + url = {https://mirrors.ctan.org/macros/latex/base/lthooks-code.pdf}, + urldate = {2024-10-02}} @book{poore17, - author = {Poore, Geoffrey M.}, - title = {The \texttt{minted} Package}, - subtitle = {Highlighted source code in \LaTeX}, - date = {2017-07-19}, - version = {v2.5}, - url = {https://mirrors.ctan.org/macros/latex/contrib/minted/minted.pdf}, - urldate = {2020-09-01}} + author = {Poore, Geoffrey M.}, + title = {The \texttt{minted} Package}, + subtitle = {Highlighted source code in \LaTeX}, + date = {2017-07-19}, + version = {v2.5}, + url = {https://mirrors.ctan.org/macros/latex/contrib/minted/minted.pdf}, + urldate = {2020-09-01}} @online{macfarlane22, - title = {Pandoc}, - subtitle = {a universal document converter}, - author = {John MacFarlane}, - year = {2022}, - url = {https://pandoc.org/}, - urldate = {2022-10-05}} + title = {Pandoc}, + subtitle = {a universal document converter}, + author = {John MacFarlane}, + year = {2022}, + url = {https://pandoc.org/}, + urldate = {2022-10-05}} @online{novotny15, - author = {Novotný, Vít}, - year = {2015}, - title = {TeXový interpret jazyka Markdown (markdown.sty)}, - location = {Brno, Czech Republic}, - publisher = {Masaryk University}, - url = {https://www.muni.cz/en/research/projects/32984}, - urldate = {2018-02-19}} + author = {Novotný, Vít}, + year = {2015}, + title = {TeXový interpret jazyka Markdown (markdown.sty)}, + location = {Brno, Czech Republic}, + publisher = {Masaryk University}, + url = {https://www.muni.cz/en/research/projects/32984}, + urldate = {2018-02-19}} @book{ierusalimschy13, - author = {Ierusalimschy, Roberto}, - year = {2013}, - title = {Programming in Lua}, - edition = {3}, - isbn = {978-85-903798-5-0}, - pagetotal = {xviii, 347}, - location = {Rio de Janeiro}, - publisher = {PUC-Rio}} + author = {Ierusalimschy, Roberto}, + year = {2013}, + title = {Programming in Lua}, + edition = {3}, + isbn = {978-85-903798-5-0}, + pagetotal = {xviii, 347}, + location = {Rio de Janeiro}, + publisher = {PUC-Rio}} @book{knuth86a, - author = {Knuth, Donald Ervin}, - year = {1986}, - title = {The \TeX{}book}, - edition = {3}, - isbn = {0-201-13447-0}, - pagetotal = {ix, 479}, - series = {Computers \& Typesetting}, - volume = {A}, - location = {Reading, MA}, - publisher = {Addison-Wesley}} + author = {Knuth, Donald Ervin}, + year = {1986}, + title = {The \TeX{}book}, + edition = {3}, + isbn = {0-201-13447-0}, + pagetotal = {ix, 479}, + series = {Computers \& Typesetting}, + volume = {A}, + location = {Reading, MA}, + publisher = {Addison-Wesley}} @book{knuth86b, - author = {Knuth, Donald Ervin}, - year = {1986}, - title = {\TeX: The Program}, - isbn = {978-0-201-13437-7}, - pagetotal = {xvi, 594}, - series = {Computers \& Typesetting}, - volume = {B}, - location = {Reading, MA}, - publisher = {Addison-Wesley}} + author = {Knuth, Donald Ervin}, + year = {1986}, + title = {\TeX: The Program}, + isbn = {978-0-201-13437-7}, + pagetotal = {xvi, 594}, + series = {Computers \& Typesetting}, + volume = {B}, + location = {Reading, MA}, + publisher = {Addison-Wesley}} @book{eijkhout92, - author = {Victor Eijkhout}, - title = {\TeX{} by Topic}, - subtitle = {A \TeX nician's Reference}, - isbn = {978-0-201-56882-0}, - pagetotal = {307}, - date = {1992-02-01}, - location = {Wokingham, England}, - publisher = {Addison-Wesley}} + author = {Victor Eijkhout}, + title = {\TeX{} by Topic}, + subtitle = {A \TeX nician's Reference}, + isbn = {978-0-201-56882-0}, + pagetotal = {307}, + date = {1992-02-01}, + location = {Wokingham, England}, + publisher = {Addison-Wesley}} @inproceedings{sharif10, - author = {Sharif, Bonita and Maletic, Jonathan I.}, - booktitle = {2010 IEEE 18th International Conference on Program Comprehension}, - title = {An Eye Tracking Study on camelCase and under\_score Identifier Styles}, - year = {2010}, - pages = {196-205}, - doi = {10.1109/ICPC.2010.41}} + author = {Sharif, Bonita and Maletic, Jonathan I.}, + booktitle = {2010 IEEE 18th International Conference on Program Comprehension}, + title = {An Eye Tracking Study on camelCase and under\_score Identifier Styles}, + year = {2010}, + pages = {196-205}, + doi = {10.1109/ICPC.2010.41}} +@online{novotny24, + author = {Starý Novotný, Vít}, + title = {Versioned Themes}, + titleaddon = {Markdown Enhancement Proposal}, + date = {2024-10-13}, + urldate = {2024-10-21}, + url = {https://github.com/Witiko/markdown/discussions/514}} +@book{latex24, + author = {Frank Mittelbach and Ulrike Fischer and {\LaTeX{} Project}}, + title = {The \texttt{documentmetadata-support} code}, + date = {2024-06-01}, + url = {https://mirrors.ctan.org/macros/latex/required/latex-lab/documentmetadata-support-code.pdf}, + urldate = {2024-10-21}} %</techdoc-bibliography> %<@@=markdown> %<*themes-witiko-markdown-techdoc> \ProvidesPackage{markdownthemewitiko_markdown_techdoc}[2022/12/13] \RequirePackage{etoolbox} +\gdef\ltd@title@author{\@gobble}% \markdownSetup{ renderers = { head*Four = {\paragraph{#1}\leavevmode}, @@ -804,16 +823,20 @@ abbr { codeSpan = {\inline{#1}}, jekyllData(End) = {% \AfterEndPreamble{% + \hypersetup{pdfauthor=\ltd@title@author}% \printtitlepage \tableofcontents {\def\addcontentsline##1##2##3{}\listoffigures}% }% }, }, +} +\yamlSetup{ jekyllDataRenderers = { /authors/* = {% - \gdef\ltd@title@author{#1}% - \hypersetup{pdfauthor={#1}}% + \expandafter\gdef + \expandafter\ltd@title@author + \expandafter{\ltd@title@author, #1}% }, title = {% \gdef\ltd@title@title{#1}% @@ -875,7 +898,7 @@ abbr { --- title: Markdown Package User Manual -author: Vít Starý Novotný +author: Vít Starý Novotný, Andrej Genčur date: \markdownVersion{} \markdownLastModified{} --- @@ -890,7 +913,7 @@ Introduction The [Markdown package][pkg] converts [CommonMark][] markup to \TeX{} commands. The functionality is provided both as a Lua module and as plain \TeX{}, \LaTeX{}, and \Hologo{ConTeXt} macro packages that can be used to directly typeset \TeX{} documents -containing markdown markup. Unlike other convertors, the Markdown package +containing markdown markup. Unlike other converters, the Markdown package does not require any external programs, and makes it easy to redefine how each and every markdown element is rendered. Creative abuse of the markdown syntax is encouraged. 😉 @@ -922,21 +945,23 @@ documentation][techdoc]. (A Markdown Interpreter for TeX) %</manual> -%<*lua,lua-cli> +%<*lua,lua-cli,lua-loader,lua-unicode-data> % \fi % \begin{macrocode} local metadata = { version = "(((VERSION)))", - comment = "A module for the conversion from markdown to plain TeX", - author = "John MacFarlane, Hans Hagen, Vít Starý Novotný", + comment = "A module for the conversion from markdown " + .. "to plain TeX", + author = "John MacFarlane, Hans Hagen, Vít Starý Novotný, " + .. "Andrej Genčur", copyright = {"2009-2016 John MacFarlane, Hans Hagen", - "2016-2023 Vít Starý Novotný"}, + "2016-2024 Vít Starý Novotný, Andrej Genčur"}, license = "LPPL 1.3c" } % \end{macrocode} % \iffalse -%</lua,lua-cli> +%</lua,lua-cli,lua-loader,lua-unicode-data> %<*lua> % \fi % \begin{macrocode} @@ -988,7 +1013,7 @@ make base Either of the two abovelisted approaches should produce the following files: -* `markdown.lua`: The Lua module +* `markdown.lua`, `markdown-parser.lua`, and `markdown-unicode-data.lua`: The Lua module * `libraries/markdown-tinyyaml.lua`: An external library for reading \acro{yaml} * `markdown-cli.lua`: The Lua command-line interface * `markdown.tex`: The plain \TeX{} macro package @@ -1009,6 +1034,8 @@ directory structure. This is generally where the individual files should be placed: * `⟨TEXMF⟩/tex/luatex/markdown/markdown.lua` +* `⟨TEXMF⟩/tex/luatex/markdown/markdown-parser.lua` +* `⟨TEXMF⟩/tex/luatex/markdown/markdown-unicode-data.lua` * `⟨TEXMF⟩/tex/luatex/markdown/markdown-tinyyaml.lua` * `⟨TEXMF⟩/scripts/markdown/markdown-cli.lua` * `⟨TEXMF⟩/tex/generic/markdown/markdown.tex` @@ -1035,6 +1062,8 @@ portably typeset on legacy \TeX{} distributions. This is where the individual files should be placed: * `./markdown.lua` +* `./markdown-parser.lua` +* `./markdown-unicode-data.lua` * `./markdown-tinyyaml.lua` * `./markdown-cli.lua` * `./markdown/markdown.tex` @@ -1075,6 +1104,10 @@ The file `markdown.tex` *must* be placed in a directory named `markdown`. % Live${}\geq{}2013$). % % \end{markdown} +% \iffalse +%</lua> +%<*lua,lua-unicode-data> +% \fi % \begin{macrocode} local lpeg = require("lpeg") % \end{macrocode} @@ -1089,6 +1122,10 @@ local lpeg = require("lpeg") % Lua\TeX{} (\TeX Live${}\geq{}2008$). % % \end{markdown} +% \iffalse +%</lua,lua-unicode-data> +%<*lua,lua-unicode-data-generator> +% \fi % \begin{macrocode} local unicode = require("unicode") % \end{macrocode} @@ -1103,9 +1140,17 @@ local unicode = require("unicode") % Live${}\geq{}2008$). % % \end{markdown} +% \iffalse +%</lua,lua-unicode-data-generator> +%<*lua,lua-loader> +% \fi % \begin{macrocode} -local md5 = require("md5"); +local md5 = require("md5") % \end{macrocode} +% \iffalse +%</lua,lua-loader> +%<*lua,lua-unicode-data-generator> +% \fi % \begin{markdown} % % \pkg{Kpathsea} @@ -1115,7 +1160,7 @@ local md5 = require("md5"); % % \end{markdown} % \begin{macrocode} -(function() +;(function() % \end{macrocode} % \begin{markdown} % @@ -1148,6 +1193,17 @@ end)() %: A package that implements Unicode case-folding in \TeX{} Live${}\geq{}2020$. % % \end{markdown} +% \iffalse +%</lua,lua-unicode-data-generator> +%<*depends> +% \fi +% \begin{macrocode} +hard lua-uni-algos +% \end{macrocode} +% \iffalse +%</depends> +%<*lua> +% \fi % \begin{macrocode} local uni_algos = require("lua-uni-algos") % \end{macrocode} @@ -1166,6 +1222,13 @@ local uni_algos = require("lua-uni-algos") % \end{markdown} % \iffalse %</lua> +%<*depends> +% \fi +% \begin{macrocode} +# hard lua-tinyyaml # TODO: Uncomment after TeX Live 2022 deprecation. +% \end{macrocode} +% \iffalse +%</depends> %<*tex> % \fi % \par @@ -1185,18 +1248,33 @@ local uni_algos = require("lua-uni-algos") % such as options, renderers, and renderer prototypes. % % \end{markdown} -% \begin{macrocode} +% \iffalse %</tex> +%<*depends> +% \fi +% \begin{macrocode} +hard l3kernel +% \end{macrocode} +% \iffalse +%</depends> %<*context> +% \fi +% \begin{macrocode} \unprotect +% \end{macrocode} +% \iffalse %</context> %<*context,tex> +% \fi +% \begin{macrocode} \ifx\ExplSyntaxOn\undefined \input expl3-generic \fi +% \end{macrocode} +% \iffalse %</context,tex> %<*tex> -% \end{macrocode} +% \fi % \begin{markdown} % % \pkg{lt3luabridge} @@ -1205,6 +1283,20 @@ local uni_algos = require("lua-uni-algos") % with other TeX engines that provide the *shell escape* capability, % which allows them to execute code with the system's shell. % +% \end{markdown} +% \iffalse +%</tex> +%<*depends> +% \fi +% \begin{macrocode} +hard lt3luabridge +% \end{macrocode} +% \iffalse +%</depends> +%<*tex> +% \fi +% \begin{markdown} +% % The plain \TeX{} part of the package also requires the following Lua module: % % \pkg{Lua File System} @@ -1243,20 +1335,22 @@ local uni_algos = require("lua-uni-algos") %### \LaTeX{} Requirements {#latex-prerequisites} % % The \LaTeX{} part of the package requires that the \Hologo{LaTeX2e} format is -% loaded, +% loaded, a \TeX{} engine that extends \Hologo{eTeX}, and all the plain \TeX{} +% prerequisites (see Section <#sec:tex-prerequisites>). % \end{markdown} % \iffalse %<*themes-witiko-dot,latex-themes-witiko-graphicx-http> % \fi % \begin{macrocode} -\NeedsTeXFormat{LaTeX2e}% +\NeedsTeXFormat{LaTeX2e} +\RequirePackage{expl3} % \end{macrocode} % \iffalse %</themes-witiko-dot,latex-themes-witiko-graphicx-http> +%</latex> +%<*depends> % \fi % \begin{markdown} -% a \TeX{} engine that extends \Hologo{eTeX}, and all the plain \TeX{} -% prerequisites (see Section <#sec:tex-prerequisites>): % % The following packages are soft prerequisites. They are only used to provide % default token renderer prototypes (see sections @@ -1269,17 +1363,41 @@ local uni_algos = require("lua-uni-algos") % %: A package that provides the `\url` macro for the typesetting of links. % +% \end{markdown} +% \begin{macrocode} +soft url +% \end{macrocode} +% \begin{markdown} +% % \pkg{graphicx} % %: A package that provides the `\includegraphics` macro for the typesetting -% of images. +% of images. Furthermore, it also provides a key-value interface that is +% used in the default renderer prototypes for image attribute contexts. % -% \pkg{paralist} +% \end{markdown} +% \begin{macrocode} +soft graphics +% \end{macrocode} +% \begin{markdown} +% +% \pkg{enumitem} and \pkg{paralist} +% +%: Packages that provide macros for the default renderer prototypes for +% tight and fancy lists. +% +% The package \pkg{paralist} will be used unless the option +% \Opt{experimental} has been enabled, in which case, the package +% \pkg{enumitem} will be used. Furthermore, enabling any test phase +% [@latex24] will also cause \pkg{enumitem} to be used. In a future +% major version, \pkg{enumitem} will replace \pkg{paralist} altogether. % -%: A package that provides the `compactitem`, `compactenum`, and -% `compactdesc` macros for the typesetting of tight bulleted lists, -% ordered lists, and definition lists as well as the rendering of -% fancy lists. +% \end{markdown} +% \begin{macrocode} +soft enumitem +soft paralist +% \end{macrocode} +% \begin{markdown} % % \pkg{ifthen} % @@ -1287,39 +1405,73 @@ local uni_algos = require("lua-uni-algos") % values. It is used in the `witiko/dot` \LaTeX{} theme (see Section % <#sec:latexthemes>). % +% \end{markdown} +% \begin{macrocode} +soft latex +soft epstopdf-pkg # required by `latex` +% \end{macrocode} +% \begin{markdown} +% % \pkg{fancyvrb} % %: A package that provides the `\VerbatimInput` macros for the verbatim % inclusion of files containing code. % +% \end{markdown} +% \begin{macrocode} +soft fancyvrb +% \end{macrocode} +% \begin{markdown} +% % \pkg{csvsimple} % %: A package that provides the `\csvautotabular` macro for typesetting % \acro{csv} files in the default renderer prototypes for iA\\,Writer % content blocks. % +% \end{markdown} +% \begin{macrocode} +soft csvsimple +soft pgf # required by `csvsimple`, which loads `pgfkeys.sty` +soft tools # required by `csvsimple`, which loads `shellesc.sty` +% \end{macrocode} +% \begin{markdown} +% % \pkg{gobble} % %: A package that provides the `\@gobblethree` \TeX{} command that % is used in the default renderer prototype for citations. The package % is included in \TeX Live${}\geq{}2016$. % +% \end{markdown} +% \begin{macrocode} +soft gobble +% \end{macrocode} +% \begin{markdown} +% % \pkg{amsmath} and \pkg{amssymb} % %: Packages that provide symbols used for drawing ticked and unticked % boxes. % +% \end{markdown} +% \begin{macrocode} +soft amsmath +soft amsfonts +% \end{macrocode} +% \begin{markdown} +% % \pkg{catchfile} % %: A package that catches the contents of a file and puts it in a macro. It % is used in the `witiko/graphicx/http` \LaTeX{} theme, see Section % <#sec:latexthemes>. % -% \pkg{graphicx} -% -%: A package that builds upon the \pkg{graphics} package, which is part of -% the \LaTeXe{} kernel. It provides a key-value interface that is used in -% the default renderer prototypes for image attribute contexts. +% \end{markdown} +% \begin{macrocode} +soft catchfile +% \end{macrocode} +% \begin{markdown} % % \pkg{grffile} % @@ -1330,6 +1482,12 @@ local uni_algos = require("lua-uni-algos") % the `witiko/dot` and `witiko/graphicx/http` \LaTeX{} themes, see Section % <#sec:latexthemes>. % +% \end{markdown} +% \begin{macrocode} +soft grffile +% \end{macrocode} +% \begin{markdown} +% % \pkg{etoolbox} % %: A package that is used to polyfill the general hook management system in @@ -1337,10 +1495,36 @@ local uni_algos = require("lua-uni-algos") % <#sec:latex-yaml-metadata>, and also in the default renderer prototype % for identifier attributes. % -% \pkg{soulutf8} +% \end{markdown} +% \begin{macrocode} +soft etoolbox +% \end{macrocode} +% \begin{markdown} +% +% \pkg{soulutf8} and \pkg{xcolor} +% +%: Packages that are used in the default renderer prototypes for +% strike-throughs and marked text in pdf\TeX. +% <!-- TODO: 1,$s/soulutf8/soul/g in TeX Live 2023. --> +% +% \end{markdown} +% \begin{macrocode} +soft soul +soft xcolor +% \end{macrocode} +% \begin{markdown} +% +% \pkg{lua-ul} and \pkg{luacolor} +% +%: Packages that are used in the default renderer prototypes for +% strike-throughs and marked text in Lua\TeX. % -%: A package that is used in the default renderer prototype for -% strike-throughs and marked text. +% \end{markdown} +% \begin{macrocode} +soft lua-ul +soft luacolor +% \end{macrocode} +% \begin{markdown} % % \pkg{ltxcmds} % @@ -1348,6 +1532,12 @@ local uni_algos = require("lua-uni-algos") % \pkg{listings} packages are loaded in the default renderer prototype % for fenced code blocks. % +% \end{markdown} +% \begin{macrocode} +soft ltxcmds +% \end{macrocode} +% \begin{markdown} +% % \pkg{verse} % %: A package that is used in the default renderer prototypes for @@ -1355,10 +1545,13 @@ local uni_algos = require("lua-uni-algos") % % \end{markdown} % \begin{macrocode} -\RequirePackage{expl3} +soft verse % \end{macrocode} +% \begin{markdown} +% +% \end{markdown} % \iffalse -%</latex> +%</depends> %<*context> % \fi % \par @@ -1739,7 +1932,7 @@ module and a command-line interface (CLI). (Lua library for conversion between markup formats) %</manual-interfaces> -%<*lua> +%<*lua,lua-loader,lua-unicode-data> % \fi % \begin{markdown} % @@ -1754,6 +1947,10 @@ module and a command-line interface (CLI). % \begin{macrocode} local M = {metadata = metadata} % \end{macrocode} +% \iffalse +%</lua,lua-loader,lua-unicode-data> +%<*lua> +% \fi % \par % \begin{markdown} % @@ -2030,7 +2227,7 @@ In this section, I will describe all the options recognized by the Markdown package. %</manual-options> -%<*lua,lua-cli> +%<*lua,lua-cli,lua-loader> % \fi % \begin{macrocode} local defaultOptions = {} @@ -2039,7 +2236,7 @@ local defaultOptions = {} % \markdownSetup{snippet=lua-options} % \par % \iffalse -%</lua,lua-cli> +%</lua,lua-cli,lua-loader> %<*manual-options> ### Lua @@ -2073,7 +2270,9 @@ interfaces and all the way up to the \LaTeX{} and \Hologo{ConTeXt} interfaces. \prop_new:N \g_@@_default_lua_options_prop \seq_new:N \g_@@_option_layers_seq \tl_const:Nn \c_@@_option_layer_lua_tl { lua } -\seq_gput_right:NV \g_@@_option_layers_seq \c_@@_option_layer_lua_tl +\seq_gput_right:NV + \g_@@_option_layers_seq + \c_@@_option_layer_lua_tl \cs_new:Nn \@@_add_lua_option:nnn { @@ -2150,21 +2349,50 @@ interfaces and all the way up to the \LaTeX{} and \Hologo{ConTeXt} interfaces. \cs_generate_variant:Nn \msg_error:nnnn { nnnV } -\seq_new:N \g_@@_option_types_seq -\tl_const:Nn \c_@@_option_type_clist_tl { clist } -\seq_gput_right:NV \g_@@_option_types_seq \c_@@_option_type_clist_tl -\tl_const:Nn \c_@@_option_type_counter_tl { counter } -\seq_gput_right:NV \g_@@_option_types_seq \c_@@_option_type_counter_tl -\tl_const:Nn \c_@@_option_type_boolean_tl { boolean } -\seq_gput_right:NV \g_@@_option_types_seq \c_@@_option_type_boolean_tl -\tl_const:Nn \c_@@_option_type_number_tl { number } -\seq_gput_right:NV \g_@@_option_types_seq \c_@@_option_type_number_tl -\tl_const:Nn \c_@@_option_type_path_tl { path } -\seq_gput_right:NV \g_@@_option_types_seq \c_@@_option_type_path_tl -\tl_const:Nn \c_@@_option_type_slice_tl { slice } -\seq_gput_right:NV \g_@@_option_types_seq \c_@@_option_type_slice_tl -\tl_const:Nn \c_@@_option_type_string_tl { string } -\seq_gput_right:NV \g_@@_option_types_seq \c_@@_option_type_string_tl +\seq_new:N + \g_@@_option_types_seq +\tl_const:Nn + \c_@@_option_type_clist_tl + { clist } +\seq_gput_right:NV + \g_@@_option_types_seq + \c_@@_option_type_clist_tl +\tl_const:Nn + \c_@@_option_type_counter_tl + { counter } +\seq_gput_right:NV + \g_@@_option_types_seq + \c_@@_option_type_counter_tl +\tl_const:Nn + \c_@@_option_type_boolean_tl + { boolean } +\seq_gput_right:NV + \g_@@_option_types_seq + \c_@@_option_type_boolean_tl +\tl_const:Nn + \c_@@_option_type_number_tl + { number } +\seq_gput_right:NV + \g_@@_option_types_seq + \c_@@_option_type_number_tl +\tl_const:Nn + \c_@@_option_type_path_tl + { path } +\seq_gput_right:NV + \g_@@_option_types_seq + \c_@@_option_type_path_tl +\tl_const:Nn + \c_@@_option_type_slice_tl + { slice } +\seq_gput_right:NV + \g_@@_option_types_seq + \c_@@_option_type_slice_tl +\tl_const:Nn + \c_@@_option_type_string_tl + { string } +\seq_gput_right:NV + \g_@@_option_types_seq + \c_@@_option_type_string_tl \cs_new:Nn \@@_get_option_type:nN { @@ -2386,20 +2614,23 @@ interfaces and all the way up to the \LaTeX{} and \Hologo{ConTeXt} interfaces. #### Option `eagerCache` -`eagerCache` (default value: `false`) +`eagerCache` (default value: `true`) % \fi % \begin{markdown} % -% \Optitem[false]{eagerCache}{\opt{true}, \opt{false}} +% \Optitem[true]{eagerCache}{\opt{true}, \opt{false}} % : true : Converted markdown documents will be cached in \Opt{cacheDir}. This can be useful for post-processing the converted documents and for recovering - historical versions of the documents from the cache. However, it also - produces a large number of auxiliary files on the disk and obscures the - output of the Lua command-line interface when it is used for plumbing. + historical versions of the documents from the cache. Furthermore, it can + also significantly improve the processing speed for documents that require + multiple compilation runs, since each markdown document is only converted once. + However, it also produces a large number of auxiliary files on the disk + and obscures the output of the Lua command-line interface when it is + used for plumbing. This behavior will always be used if the \Opt{finalizeCache} option is enabled. @@ -2408,7 +2639,11 @@ interfaces and all the way up to the \LaTeX{} and \Hologo{ConTeXt} interfaces. : Converted markdown documents will not be cached. This decreases the number of auxiliary files that we produce and makes it easier to use the Lua - command-line interface for plumbing. + command-line interface for plumbing. However, it makes it impossible to + post-process the converted documents and recover historical versions of + the documents from the cache. Furthermore, it can significantly reduce + the processing speed for documents that require multiple compilation + runs, since each markdown document is converted multiple times needlessly. This behavior will only be used when the \Opt{finalizeCache} option is disabled. @@ -2470,18 +2705,64 @@ Hello \markdownRendererEmphasis{world}!\relax \@@_add_lua_option:nnn { eagerCache } { boolean } + { true } +% \end{macrocode} +% \iffalse +%</tex> +%<*lua,lua-cli,lua-loader> +% \fi +% \begin{macrocode} +defaultOptions.eagerCache = true +% \end{macrocode} +% \par +% \iffalse +%</lua,lua-cli,lua-loader> +%<*manual-options> + +#### Option `experimental` + +`experimental` (default value: `false`) + +% \fi +% \begin{markdown} +% +% \Optitem[false]{experimental}{\opt{true}, \opt{false}} +% +: true + + : Experimental features that are planned to be the new default in the + next major release of the Markdown package will be enabled. + + At the moment, this just means that the version `experimental` of the + theme `witiko/markdown/defaults` will be loaded and warnings for + hard-deprecated features will become errors. However, the effects may + extend to other areas in the future as well. + +: false + + : Experimental features will be disabled. + +% \end{markdown} +% \iffalse +%</manual-options> +%<*tex> +% \fi +% \begin{macrocode} +\@@_add_lua_option:nnn + { experimental } + { boolean } { false } % \end{macrocode} % \iffalse %</tex> -%<*lua,lua-cli> +%<*lua,lua-cli,lua-loader> % \fi % \begin{macrocode} -defaultOptions.eagerCache = false +defaultOptions.experimental = false % \end{macrocode} % \par % \iffalse -%</lua,lua-cli> +%</lua,lua-cli,lua-loader> %<*manual-options> #### Option `singletonCache` @@ -2509,12 +2790,11 @@ defaultOptions.eagerCache = false : Every call to the function \luamref{new}`(options)` will produce a new conversion function that will not be cached. This is slower than caching conversion functions and may expose bugs related to memory - leaks in the creation of conversion functions, see also issue - [#226][issue-226]. + leaks in the creation of conversion functions, see also [#226 (comment)][226-comment]. This was the default behavior until version 3.0.0 of the Markdown package. - [issue-226]: https://github.com/witiko/markdown/pull/226#issuecomment-1599641634 + [226-comment]: https://github.com/witiko/markdown/pull/226#issuecomment-1599641634 % \end{markdown} % \iffalse @@ -2563,13 +2843,13 @@ conversion function. % \end{macrocode} % \iffalse %</tex> -%<*lua,lua-cli> +%<*lua,lua-cli,lua-loader> % \fi % \begin{macrocode} defaultOptions.singletonCache = true % \end{macrocode} % \iffalse -%</lua,lua-cli> +%</lua,lua-cli,lua-loader> %<*lua> % \fi % \begin{macrocode} @@ -2618,14 +2898,14 @@ local singletonCache = { % \end{macrocode} % \iffalse %</tex> -%<*lua,lua-cli> +%<*lua,lua-cli,lua-loader> % \fi % \begin{macrocode} defaultOptions.unicodeNormalization = true % \end{macrocode} % \par % \iffalse -%</lua,lua-cli> +%</lua,lua-cli,lua-loader> %<*manual-options> #### Option `unicodeNormalizationForm` @@ -2674,14 +2954,14 @@ defaultOptions.unicodeNormalization = true % \end{macrocode} % \iffalse %</tex> -%<*lua,lua-cli> +%<*lua,lua-cli,lua-loader> % \fi % \begin{macrocode} defaultOptions.unicodeNormalizationForm = "nfc" % \end{macrocode} % \par % \iffalse -%</lua,lua-cli> +%</lua,lua-cli,lua-loader> %<*manual-options> % \fi % \begin{markdown} @@ -2850,14 +3130,14 @@ option. % \end{macrocode} % \iffalse %</tex> -%<*lua,lua-cli> +%<*lua,lua-cli,lua-loader> % \fi % \begin{macrocode} defaultOptions.cacheDir = "." % \end{macrocode} % \par % \iffalse -%</lua,lua-cli> +%</lua,lua-cli,lua-loader> %<*manual-options> #### Option `contentBlocksLanguageMap` @@ -3014,14 +3294,14 @@ following text: % \end{macrocode} % \iffalse %</tex> -%<*lua,lua-cli> +%<*lua,lua-cli,lua-loader> % \fi % \begin{macrocode} defaultOptions.contentBlocksLanguageMap = "markdown-languages.json" % \end{macrocode} % \par % \iffalse -%</lua,lua-cli> +%</lua,lua-cli,lua-loader> %<*manual-options> #### Option `debugExtensionsFileName` @@ -3063,14 +3343,14 @@ defaultOptions.contentBlocksLanguageMap = "markdown-languages.json" % \end{macrocode} % \iffalse %</tex> -%<*lua,lua-cli> +%<*lua,lua-cli,lua-loader> % \fi % \begin{macrocode} defaultOptions.debugExtensionsFileName = "debug-extensions.json" % \end{macrocode} % \par % \iffalse -%</lua,lua-cli> +%</lua,lua-cli,lua-loader> %<*manual-options> #### Option `frozenCacheFileName` @@ -3305,14 +3585,14 @@ the markdown document from “Hello *world*!” to “Hi *world*!” was not ref % \end{macrocode} % \iffalse %</tex> -%<*lua,lua-cli> +%<*lua,lua-cli,lua-loader> % \fi % \begin{macrocode} defaultOptions.frozenCacheFileName = "frozenCache.tex" % \end{macrocode} % \par % \iffalse -%</lua,lua-cli> +%</lua,lua-cli,lua-loader> %<*manual-options> % \fi % \begin{markdown} @@ -3362,14 +3642,14 @@ See also the option \Opt{gfmAutoIdentifiers}. % \end{macrocode} % \iffalse %</tex> -%<*lua,lua-cli> +%<*lua,lua-cli,lua-loader> % \fi % \begin{macrocode} defaultOptions.autoIdentifiers = false % \end{macrocode} % \par % \iffalse -%</lua,lua-cli> +%</lua,lua-cli,lua-loader> %<*manual-options> #### Option `blankBeforeBlockquote` @@ -3586,14 +3866,14 @@ following text: % \end{macrocode} % \iffalse %</tex> -%<*lua,lua-cli> +%<*lua,lua-cli,lua-loader> % \fi % \begin{macrocode} defaultOptions.blankBeforeBlockquote = false % \end{macrocode} % \par % \iffalse -%</lua,lua-cli> +%</lua,lua-cli,lua-loader> %<*manual-options> #### Option `blankBeforeCodeFence` @@ -3843,14 +4123,14 @@ following text: % \end{macrocode} % \iffalse %</tex> -%<*lua,lua-cli> +%<*lua,lua-cli,lua-loader> % \fi % \begin{macrocode} defaultOptions.blankBeforeCodeFence = false % \end{macrocode} % \par % \iffalse -%</lua,lua-cli> +%</lua,lua-cli,lua-loader> %<*manual-options> #### Option `blankBeforeDivFence` @@ -3926,14 +4206,14 @@ following text: % \end{macrocode} % \iffalse %</tex> -%<*lua,lua-cli> +%<*lua,lua-cli,lua-loader> % \fi % \begin{macrocode} defaultOptions.blankBeforeDivFence = false % \end{macrocode} % \par % \iffalse -%</lua,lua-cli> +%</lua,lua-cli,lua-loader> %<*manual-options> #### Option `blankBeforeHeading` @@ -4166,14 +4446,14 @@ following text: % \end{macrocode} % \iffalse %</tex> -%<*lua,lua-cli> +%<*lua,lua-cli,lua-loader> % \fi % \begin{macrocode} defaultOptions.blankBeforeHeading = false % \end{macrocode} % \par % \iffalse -%</lua,lua-cli> +%</lua,lua-cli,lua-loader> %<*manual-options> #### Option `blankBeforeList` @@ -4392,14 +4672,14 @@ following text: % \end{macrocode} % \iffalse %</tex> -%<*lua,lua-cli> +%<*lua,lua-cli,lua-loader> % \fi % \begin{macrocode} defaultOptions.blankBeforeList = false % \end{macrocode} % \par % \iffalse -%</lua,lua-cli> +%</lua,lua-cli,lua-loader> %<*manual-options> #### Option `bracketedSpans` @@ -4488,14 +4768,14 @@ following text: % \end{macrocode} % \iffalse %</tex> -%<*lua,lua-cli> +%<*lua,lua-cli,lua-loader> % \fi % \begin{macrocode} defaultOptions.bracketedSpans = false % \end{macrocode} % \par % \iffalse -%</lua,lua-cli> +%</lua,lua-cli,lua-loader> %<*manual-options> #### Option `breakableBlockquotes` @@ -4722,14 +5002,14 @@ following text: % \end{macrocode} % \iffalse %</tex> -%<*lua,lua-cli> +%<*lua,lua-cli,lua-loader> % \fi % \begin{macrocode} defaultOptions.breakableBlockquotes = true % \end{macrocode} % \par % \iffalse -%</lua,lua-cli> +%</lua,lua-cli,lua-loader> %<*manual-options> #### Option `citationNbsps` @@ -4816,14 +5096,14 @@ following text, where the middot (`·`) denotes a non-breaking space: % \end{macrocode} % \iffalse %</tex> -%<*lua,lua-cli> +%<*lua,lua-cli,lua-loader> % \fi % \begin{macrocode} defaultOptions.citationNbsps = true % \end{macrocode} % \par % \iffalse -%</lua,lua-cli> +%</lua,lua-cli,lua-loader> %<*manual-options> #### Option `citations` @@ -4919,14 +5199,14 @@ following text: % \end{macrocode} % \iffalse %</tex> -%<*lua,lua-cli> +%<*lua,lua-cli,lua-loader> % \fi % \begin{macrocode} defaultOptions.citations = false % \end{macrocode} % \par % \iffalse -%</lua,lua-cli> +%</lua,lua-cli,lua-loader> %<*manual-options> #### Option `codeSpans` @@ -5145,14 +5425,14 @@ following text: % \end{macrocode} % \iffalse %</tex> -%<*lua,lua-cli> +%<*lua,lua-cli,lua-loader> % \fi % \begin{macrocode} defaultOptions.codeSpans = true % \end{macrocode} % \par % \iffalse -%</lua,lua-cli> +%</lua,lua-cli,lua-loader> %<*manual-options> #### Option `contentBlocks` @@ -5319,14 +5599,14 @@ following text: % \end{macrocode} % \iffalse %</tex> -%<*lua,lua-cli> +%<*lua,lua-cli,lua-loader> % \fi % \begin{macrocode} defaultOptions.contentBlocks = false % \end{macrocode} % \par % \iffalse -%</lua,lua-cli> +%</lua,lua-cli,lua-loader> %<*manual-options> #### Option `contentLevel` @@ -5456,14 +5736,14 @@ following text: % \end{macrocode} % \iffalse %</tex> -%<*lua,lua-cli> +%<*lua,lua-cli,lua-loader> % \fi % \begin{macrocode} defaultOptions.contentLevel = "block" % \end{macrocode} % \par % \iffalse -%</lua,lua-cli> +%</lua,lua-cli,lua-loader> %<*manual-options> #### Option `debugExtensions` @@ -5611,14 +5891,14 @@ inserted to the grammar of markdown. % \end{macrocode} % \iffalse %</tex> -%<*lua,lua-cli> +%<*lua,lua-cli,lua-loader> % \fi % \begin{macrocode} defaultOptions.debugExtensions = false % \end{macrocode} % \par % \iffalse -%</lua,lua-cli> +%</lua,lua-cli,lua-loader> %<*manual-options> #### Option `definitionLists` @@ -5750,14 +6030,60 @@ following text: % \end{macrocode} % \iffalse %</tex> -%<*lua,lua-cli> +%<*lua,lua-cli,lua-loader> % \fi % \begin{macrocode} defaultOptions.definitionLists = false % \end{macrocode} % \par % \iffalse -%</lua,lua-cli> +%</lua,lua-cli,lua-loader> +%<*manual-options> + +#### Option `ensureJekyllData` + +`ensureJekyllData` (default value: `false`) + +% \fi +% \begin{markdown} +% +% \Optitem[false]{ensureJekyllData}{\opt{true}, \opt{false}} +% +: false + + : When the \Opt{jekyllData} and \Opt{expectJekyllData} options are + enabled, then a markdown document may begin directly with \acro{yaml} + metadata and may contain nothing but \acro{yaml} metadata. Otherwise, + the markdown document is processed as markdown text. + +: true + + : When the \Opt{jekyllData} and \Opt{expectJekyllData} options are + enabled, then a markdown document must begin directly with \acro{yaml} + metadata and must contain nothing but \acro{yaml} metadata. Otherwise, + an error is produced. + +% \end{markdown} +% \iffalse +%</manual-options> +%<*tex> +% \fi +% \begin{macrocode} +\@@_add_lua_option:nnn + { ensureJekyllData } + { boolean } + { false } +% \end{macrocode} +% \iffalse +%</tex> +%<*lua,lua-cli,lua-loader> +% \fi +% \begin{macrocode} +defaultOptions.ensureJekyllData = false +% \end{macrocode} +% \par +% \iffalse +%</lua,lua-cli,lua-loader> %<*manual-options> #### Option `expectJekyllData` @@ -5874,14 +6200,14 @@ following text: % \end{macrocode} % \iffalse %</tex> -%<*lua,lua-cli> +%<*lua,lua-cli,lua-loader> % \fi % \begin{macrocode} defaultOptions.expectJekyllData = false % \end{macrocode} % \par % \iffalse -%</lua,lua-cli> +%</lua,lua-cli,lua-loader> %<*manual-options> #### Option `extensions` @@ -6025,14 +6351,14 @@ following text: % \end{macrocode} % \iffalse %</tex> -%<*lua,lua-cli> +%<*lua,lua-cli,lua-loader> % \fi % \begin{macrocode} defaultOptions.extensions = {} % \end{macrocode} % \par % \iffalse -%</lua,lua-cli> +%</lua,lua-cli,lua-loader> %<*manual-options> #### Option `fancyLists` @@ -6127,14 +6453,14 @@ following text: % \end{macrocode} % \iffalse %</tex> -%<*lua,lua-cli> +%<*lua,lua-cli,lua-loader> % \fi % \begin{macrocode} defaultOptions.fancyLists = false % \end{macrocode} % \par % \iffalse -%</lua,lua-cli> +%</lua,lua-cli,lua-loader> %<*manual-options> #### Option `fencedCode` @@ -6294,14 +6620,14 @@ following text: % \end{macrocode} % \iffalse %</tex> -%<*lua,lua-cli> +%<*lua,lua-cli,lua-loader> % \fi % \begin{macrocode} defaultOptions.fencedCode = true % \end{macrocode} % \par % \iffalse -%</lua,lua-cli> +%</lua,lua-cli,lua-loader> %<*manual-options> #### Option `fencedCodeAttributes` @@ -6394,14 +6720,14 @@ following text: % \end{macrocode} % \iffalse %</tex> -%<*lua,lua-cli> +%<*lua,lua-cli,lua-loader> % \fi % \begin{macrocode} defaultOptions.fencedCodeAttributes = false % \end{macrocode} % \par % \iffalse -%</lua,lua-cli> +%</lua,lua-cli,lua-loader> %<*manual-options> #### Option `fencedDivs` {#fenced-divs} @@ -6473,14 +6799,14 @@ following text: % \end{macrocode} % \iffalse %</tex> -%<*lua,lua-cli> +%<*lua,lua-cli,lua-loader> % \fi % \begin{macrocode} defaultOptions.fencedDivs = false % \end{macrocode} % \par % \iffalse -%</lua,lua-cli> +%</lua,lua-cli,lua-loader> %<*manual-options> #### Option `finalizeCache` @@ -6637,14 +6963,14 @@ the markdown document from “Hello *world*!” to “Hi *world*!” was not ref % \end{macrocode} % \iffalse %</tex> -%<*lua,lua-cli> +%<*lua,lua-cli,lua-loader> % \fi % \begin{macrocode} defaultOptions.finalizeCache = false % \end{macrocode} % \par % \iffalse -%</lua,lua-cli> +%</lua,lua-cli,lua-loader> %<*manual-options> #### Option `frozenCacheCounter` @@ -6706,14 +7032,14 @@ requested using the `frozenCacheCounter` option. % \end{macrocode} % \iffalse %</tex> -%<*lua,lua-cli> +%<*lua,lua-cli,lua-loader> % \fi % \begin{macrocode} defaultOptions.frozenCacheCounter = 0 % \end{macrocode} % \par % \iffalse -%</lua,lua-cli> +%</lua,lua-cli,lua-loader> %<*manual-options> #### Option `gfmAutoIdentifiers` @@ -6755,14 +7081,14 @@ See also the option \Opt{autoIdentifiers}. % \end{macrocode} % \iffalse %</tex> -%<*lua,lua-cli> +%<*lua,lua-cli,lua-loader> % \fi % \begin{macrocode} defaultOptions.gfmAutoIdentifiers = false % \end{macrocode} % \par % \iffalse -%</lua,lua-cli> +%</lua,lua-cli,lua-loader> %<*manual-options> #### Option `hashEnumerators` @@ -6886,14 +7212,14 @@ following text: % \end{macrocode} % \iffalse %</tex> -%<*lua,lua-cli> +%<*lua,lua-cli,lua-loader> % \fi % \begin{macrocode} defaultOptions.hashEnumerators = false % \end{macrocode} % \par % \iffalse -%</lua,lua-cli> +%</lua,lua-cli,lua-loader> %<*manual-options> #### Option `headerAttributes` {#header-attributes} @@ -6935,14 +7261,14 @@ defaultOptions.hashEnumerators = false % \end{macrocode} % \iffalse %</tex> -%<*lua,lua-cli> +%<*lua,lua-cli,lua-loader> % \fi % \begin{macrocode} defaultOptions.headerAttributes = false % \end{macrocode} % \par % \iffalse -%</lua,lua-cli> +%</lua,lua-cli,lua-loader> %<*manual-options> #### Option `html` @@ -7207,14 +7533,14 @@ following text: % \end{macrocode} % \iffalse %</tex> -%<*lua,lua-cli> +%<*lua,lua-cli,lua-loader> % \fi % \begin{macrocode} defaultOptions.html = true % \end{macrocode} % \par % \iffalse -%</lua,lua-cli> +%</lua,lua-cli,lua-loader> %<*manual-options> #### Option `hybrid` @@ -7237,10 +7563,62 @@ defaultOptions.html = true : false : Enable the escaping of special plain \TeX{} characters outside verbatim - environments, so that they are not interpretted by \TeX{}. This is + environments, so that they are not interpreted by \TeX{}. This is encouraged when typesetting automatically generated content or markdown documents that were not prepared with this package in mind. +The \Opt{hybrid} option makes it difficult to untangle \TeX{} input from +markdown text, which makes documents written with the \Opt{hybrid} option +less interoperable and more difficult to read for authors. Therefore, the +option has been soft-deprecated in version 3.7.1 of the Markdown package: +It will never be removed but using it prints a warning and is discouraged. + +Consider one of the following better alternatives for mixing \TeX{} and +markdown: + +- With the \Opt{contentBlocks} option, authors can move large blocks of TeX + code to separate files and include them in their markdown documents as + external resources: + + ``` md + Here is a mathematical formula: + + /math-formula.tex + ``` + +- With the \Opt{rawAttribute} option, authors can denote raw text spans and + code blocks that will be interpreted as \TeX{} code: + + `````` md + `$H_2 O$`{=tex} is a liquid. + + Here is a mathematical formula: + ``` {=tex} + \[distance[i] = + \begin{dcases} + a & b \\ + c & d + \end{dcases} + \] + ``` + `````` + +- With options \Opt{texMathDollars}, \Opt{texMathSingleBackslash}, and + \Opt{texMathDoubleBackslash}, authors can freely type \TeX{} commands between + dollar signs or backslash-escaped brackets: + + ``` md + $H_2 O$ is a liquid. + + Here is a mathematical formula: + \[distance[i] = + \begin{dcases} + a & b \\ + c & d + \end{dcases} + \] + ``` + % \end{markdown} % \iffalse @@ -7433,14 +7811,14 @@ following text: % \end{macrocode} % \iffalse %</tex> -%<*lua,lua-cli> +%<*lua,lua-cli,lua-loader> % \fi % \begin{macrocode} defaultOptions.hybrid = false % \end{macrocode} % \par % \iffalse -%</lua,lua-cli> +%</lua,lua-cli,lua-loader> %<*manual-options> #### Option `inlineCodeAttributes` @@ -7529,14 +7907,14 @@ following text: % \end{macrocode} % \iffalse %</tex> -%<*lua,lua-cli> +%<*lua,lua-cli,lua-loader> % \fi % \begin{macrocode} defaultOptions.inlineCodeAttributes = false % \end{macrocode} % \par % \iffalse -%</lua,lua-cli> +%</lua,lua-cli,lua-loader> %<*manual-options> #### Option `inlineNotes` @@ -7630,14 +8008,14 @@ following text: % \end{macrocode} % \iffalse %</tex> -%<*lua,lua-cli> +%<*lua,lua-cli,lua-loader> % \fi % \begin{macrocode} defaultOptions.inlineNotes = false % \end{macrocode} % \par % \iffalse -%</lua,lua-cli> +%</lua,lua-cli,lua-loader> %<*manual-options> #### Option `jekyllData` @@ -7797,14 +8175,14 @@ following text: % \end{macrocode} % \iffalse %</tex> -%<*lua,lua-cli> +%<*lua,lua-cli,lua-loader> % \fi % \begin{macrocode} defaultOptions.jekyllData = false % \end{macrocode} % \par % \iffalse -%</lua,lua-cli> +%</lua,lua-cli,lua-loader> %<*manual-options> #### Option `linkAttributes` @@ -7894,14 +8272,14 @@ image (from [Martin Scharrer's mwe package][mwe]) displayed at size 5cm × 4cm. % \end{macrocode} % \iffalse %</tex> -%<*lua,lua-cli> +%<*lua,lua-cli,lua-loader> % \fi % \begin{macrocode} defaultOptions.linkAttributes = false % \end{macrocode} % \par % \iffalse -%</lua,lua-cli> +%</lua,lua-cli,lua-loader> %<*manual-options> #### Option `lineBlocks` @@ -8029,14 +8407,14 @@ following text: % \end{macrocode} % \iffalse %</tex> -%<*lua,lua-cli> +%<*lua,lua-cli,lua-loader> % \fi % \begin{macrocode} defaultOptions.lineBlocks = false % \end{macrocode} % \par % \iffalse -%</lua,lua-cli> +%</lua,lua-cli,lua-loader> %<*manual-options> #### Option `mark` @@ -8100,14 +8478,14 @@ following text: % \end{macrocode} % \iffalse %</tex> -%<*lua,lua-cli> +%<*lua,lua-cli,lua-loader> % \fi % \begin{macrocode} defaultOptions.mark = false % \end{macrocode} % \par % \iffalse -%</lua,lua-cli> +%</lua,lua-cli,lua-loader> %<*manual-options> #### Option `notes` @@ -8263,14 +8641,14 @@ following text: % \end{macrocode} % \iffalse %</tex> -%<*lua,lua-cli> +%<*lua,lua-cli,lua-loader> % \fi % \begin{macrocode} defaultOptions.notes = false % \end{macrocode} % \par % \iffalse -%</lua,lua-cli> +%</lua,lua-cli,lua-loader> %<*manual-options> #### Option `pipeTables` {#pipe-tables} @@ -8372,14 +8750,14 @@ following text: % \end{macrocode} % \iffalse %</tex> -%<*lua,lua-cli> +%<*lua,lua-cli,lua-loader> % \fi % \begin{macrocode} defaultOptions.pipeTables = false % \end{macrocode} % \par % \iffalse -%</lua,lua-cli> +%</lua,lua-cli,lua-loader> %<*manual-options> #### Option `preserveTabs` @@ -8412,14 +8790,14 @@ defaultOptions.pipeTables = false % \end{macrocode} % \iffalse %</tex> -%<*lua,lua-cli> +%<*lua,lua-cli,lua-loader> % \fi % \begin{macrocode} defaultOptions.preserveTabs = true % \end{macrocode} % \par % \iffalse -%</lua,lua-cli> +%</lua,lua-cli,lua-loader> %<*manual-options> #### Option `rawAttribute` @@ -8507,14 +8885,14 @@ following text: % \end{macrocode} % \iffalse %</tex> -%<*lua,lua-cli> +%<*lua,lua-cli,lua-loader> % \fi % \begin{macrocode} defaultOptions.rawAttribute = false % \end{macrocode} % \par % \iffalse -%</lua,lua-cli> +%</lua,lua-cli,lua-loader> %<*manual-options> #### Option `relativeReferences` @@ -8596,14 +8974,14 @@ following text: % \end{macrocode} % \iffalse %</tex> -%<*lua,lua-cli> +%<*lua,lua-cli,lua-loader> % \fi % \begin{macrocode} defaultOptions.relativeReferences = false % \end{macrocode} % \par % \iffalse -%</lua,lua-cli> +%</lua,lua-cli,lua-loader> %<*manual-options> #### Option `shiftHeadings` @@ -8736,14 +9114,14 @@ following text: % \end{macrocode} % \iffalse %</tex> -%<*lua,lua-cli> +%<*lua,lua-cli,lua-loader> % \fi % \begin{macrocode} defaultOptions.shiftHeadings = 0 % \end{macrocode} % \par % \iffalse -%</lua,lua-cli> +%</lua,lua-cli,lua-loader> %<*manual-options> #### Option `slice` @@ -8954,14 +9332,14 @@ following text: % \end{macrocode} % \iffalse %</tex> -%<*lua,lua-cli> +%<*lua,lua-cli,lua-loader> % \fi % \begin{macrocode} defaultOptions.slice = "^ $" % \end{macrocode} % \par % \iffalse -%</lua,lua-cli> +%</lua,lua-cli,lua-loader> %<*manual-options> #### Option `smartEllipses` @@ -9169,14 +9547,14 @@ following text: % \end{macrocode} % \iffalse %</tex> -%<*lua,lua-cli> +%<*lua,lua-cli,lua-loader> % \fi % \begin{macrocode} defaultOptions.smartEllipses = false % \end{macrocode} % \par % \iffalse -%</lua,lua-cli> +%</lua,lua-cli,lua-loader> %<*manual-options> #### Option `startNumber` @@ -9305,14 +9683,14 @@ following text: % \end{macrocode} % \iffalse %</tex> -%<*lua,lua-cli> +%<*lua,lua-cli,lua-loader> % \fi % \begin{macrocode} defaultOptions.startNumber = true % \end{macrocode} % \par % \iffalse -%</lua,lua-cli> +%</lua,lua-cli,lua-loader> %<*manual-options> #### Option `strikeThrough` @@ -9427,14 +9805,14 @@ following text: % \end{macrocode} % \iffalse %</tex> -%<*lua,lua-cli> +%<*lua,lua-cli,lua-loader> % \fi % \begin{macrocode} defaultOptions.strikeThrough = false % \end{macrocode} % \par % \iffalse -%</lua,lua-cli> +%</lua,lua-cli,lua-loader> %<*manual-options> #### Option `stripIndent` @@ -9540,14 +9918,14 @@ text “Hello *world*!” % \end{macrocode} % \iffalse %</tex> -%<*lua,lua-cli> +%<*lua,lua-cli,lua-loader> % \fi % \begin{macrocode} defaultOptions.stripIndent = false % \end{macrocode} % \par % \iffalse -%</lua,lua-cli> +%</lua,lua-cli,lua-loader> %<*manual-options> #### Option `subscripts` @@ -9632,14 +10010,14 @@ following text: % \end{macrocode} % \iffalse %</tex> -%<*lua,lua-cli> +%<*lua,lua-cli,lua-loader> % \fi % \begin{macrocode} defaultOptions.subscripts = false % \end{macrocode} % \par % \iffalse -%</lua,lua-cli> +%</lua,lua-cli,lua-loader> %<*manual-options> #### Option `superscripts` @@ -9724,14 +10102,14 @@ following text: % \end{macrocode} % \iffalse %</tex> -%<*lua,lua-cli> +%<*lua,lua-cli,lua-loader> % \fi % \begin{macrocode} defaultOptions.superscripts = false % \end{macrocode} % \par % \iffalse -%</lua,lua-cli> +%</lua,lua-cli,lua-loader> %<*manual-options> #### Option `tableAttributes` @@ -9849,14 +10227,14 @@ following text: % \end{macrocode} % \iffalse %</tex> -%<*lua,lua-cli> +%<*lua,lua-cli,lua-loader> % \fi % \begin{macrocode} defaultOptions.tableAttributes = false % \end{macrocode} % \par % \iffalse -%</lua,lua-cli> +%</lua,lua-cli,lua-loader> %<*manual-options> #### Option `tableCaptions` {#table-captions} @@ -9979,14 +10357,14 @@ following text: % \end{macrocode} % \iffalse %</tex> -%<*lua,lua-cli> +%<*lua,lua-cli,lua-loader> % \fi % \begin{macrocode} defaultOptions.tableCaptions = false % \end{macrocode} % \par % \iffalse -%</lua,lua-cli> +%</lua,lua-cli,lua-loader> %<*manual-options> #### Option `taskLists` @@ -10092,14 +10470,14 @@ following text: % \end{macrocode} % \iffalse %</tex> -%<*lua,lua-cli> +%<*lua,lua-cli,lua-loader> % \fi % \begin{macrocode} defaultOptions.taskLists = false % \end{macrocode} % \par % \iffalse -%</lua,lua-cli> +%</lua,lua-cli,lua-loader> %<*manual-options> #### Option `texComments` @@ -10208,14 +10586,14 @@ text “Hello *world*!” % \end{macrocode} % \iffalse %</tex> -%<*lua,lua-cli> +%<*lua,lua-cli,lua-loader> % \fi % \begin{macrocode} defaultOptions.texComments = false % \end{macrocode} % \par % \iffalse -%</lua,lua-cli> +%</lua,lua-cli,lua-loader> %<*manual-options> #### Option `texMathDollars` @@ -10419,14 +10797,14 @@ following text: % \end{macrocode} % \iffalse %</tex> -%<*lua,lua-cli> +%<*lua,lua-cli,lua-loader> % \fi % \begin{macrocode} defaultOptions.texMathDollars = false % \end{macrocode} % \par % \iffalse -%</lua,lua-cli> +%</lua,lua-cli,lua-loader> %<*manual-options> #### Option `texMathDoubleBackslash` @@ -10630,14 +11008,14 @@ following text: % \end{macrocode} % \iffalse %</tex> -%<*lua,lua-cli> +%<*lua,lua-cli,lua-loader> % \fi % \begin{macrocode} defaultOptions.texMathDoubleBackslash = false % \end{macrocode} % \par % \iffalse -%</lua,lua-cli> +%</lua,lua-cli,lua-loader> %<*manual-options> #### Option `texMathSingleBackslash` @@ -10841,14 +11219,14 @@ following text: % \end{macrocode} % \iffalse %</tex> -%<*lua,lua-cli> +%<*lua,lua-cli,lua-loader> % \fi % \begin{macrocode} defaultOptions.texMathSingleBackslash = false % \end{macrocode} % \par % \iffalse -%</lua,lua-cli> +%</lua,lua-cli,lua-loader> %<*manual-options> #### Option `tightLists` @@ -10962,14 +11340,14 @@ following text: % \end{macrocode} % \iffalse %</tex> -%<*lua,lua-cli> +%<*lua,lua-cli,lua-loader> % \fi % \begin{macrocode} defaultOptions.tightLists = true % \end{macrocode} % \par % \iffalse -%</lua,lua-cli> +%</lua,lua-cli,lua-loader> %<*manual-options> #### Option `underscores` @@ -11105,14 +11483,14 @@ following text: % \end{macrocode} % \iffalse %</tex> -%<*lua,lua-cli> +%<*lua,lua-cli,lua-loader> % \fi % \begin{macrocode} defaultOptions.underscores = true % \end{macrocode} % \endgroup % \iffalse -%</lua,lua-cli> +%</lua,lua-cli,lua-loader> %<*lua-cli> % \fi % \par @@ -11198,7 +11576,8 @@ Copyright (C) ]] .. table.concat(metadata.copyright, License: ]] .. metadata.license local function warn(s) - io.stderr:write("Warning: " .. s .. "\n") end + io.stderr:write("Warning: " .. s .. "\n") +end local function error(s) io.stderr:write("Error: " .. s .. "\n") @@ -11289,8 +11668,8 @@ for i = 1, #arg do if default_type == "nil" then warn('Option "' .. key .. '" not recognized.') else - warn('Option "' .. key .. '" type not recognized, please file ' .. - 'a report to the package maintainer.') + warn('Option "' .. key .. '" type not recognized, ' .. + 'please file a report to the package maintainer.') end warn('Parsing the ' .. 'value "' .. value ..'" of option "' .. key .. '" as a string.') @@ -11322,7 +11701,7 @@ for i = 1, #arg do end % \end{macrocode} % \begin{markdown} -% The first argument that matches none of the above patters is assumed to be +% The first argument that matches none of the above patterns is assumed to be % the input filename. The input filename should correspond to the Markdown % document that is going to be converted to a \TeX{} document. % \end{markdown} @@ -11331,7 +11710,7 @@ for i = 1, #arg do input_filename = arg[i] % \end{macrocode} % \begin{markdown} -% The first argument that matches none of the above patters is assumed to be +% The first argument that matches none of the above patterns is assumed to be % the output filename. The output filename should correspond to the \TeX{} % document that will result from the conversion. % \end{markdown} @@ -11448,10 +11827,13 @@ pdftex --shell-escape document.tex % \noindent It is expected that the special plain \TeX{} characters have the % expected category codes, when `\input`ting the file. % -%### Typesetting Markdown {#tex-typesetting} +%### Typesetting Markdown and YAML {#tex-typesetting} % % The interface exposes the \mdef{markdownBegin}, \mdef{markdownEnd}, -% \mdef{markinline}, \mdef{markdownInput}, and \mdef{markdownEscape} macros. +% \mdef{yamlBegin}, \mref{yamlEnd}, \mdef{markinline}, \mdef{markdownInput}, +% \mdef{yamlInput}, and \mdef{markdownEscape} macros. +% +%#### Typesetting Markdown and YAML directly % % The \mref{markdownBegin} macro marks the beginning of a markdown document % fragment and the \mref{markdownEnd} macro marks its end. @@ -11509,6 +11891,44 @@ pdftex --shell-escape document.tex % \bye % ``````` % +% The \mref{yamlBegin} macro marks the beginning of an \acro{YAML} document +% fragment and the \mref{yamlEnd} macro marks its end. +% +% \end{markdown} +% \begin{macrocode} +\let\yamlBegin\relax +\def\yamlEnd{\markdownEnd\endgroup} +% \end{macrocode} +% \par +% \begin{markdown} +% +% The \mref{yamlBegin} and \mref{yamlEnd} macros are subject to the same +% limitations as the \mref{markdownBegin} and \mref{markdownEnd} macros. +% +% The following example plain \TeX{} code showcases the usage of the +% \mref{markdownBegin} and \mref{markdownEnd} macros: +% +% ``` tex +% \input markdown +% \yamlBegin +% title: _Hello_ **world** ... +% author: John Doe +% \yamlEnd +% \bye +% ``````` +% +% The above code has the same effect as the below code: +% +% ``` tex +% \input markdown +% \yamlSetup{jekyllData, expectJekyllData, ensureJekyllData} +% \markdownBegin +% title: _Hello_ **world** ... +% author: John Doe +% \markdownEnd +% \bye +% ``````` +% % You can use the \mref{markinline} macro to input inline markdown content. % % \end{markdown} @@ -11541,6 +11961,8 @@ pdftex --shell-escape document.tex % The \mref{markinline} macro is subject to the same limitations as the % \mref{markdownBegin} and \mref{markdownEnd} macros. % +%#### Typesetting Markdown and YAML from external documents +% % You can use the \mref{markdownInput} macro to include markdown documents, % similarly to how you might use the \mref{input} \TeX{} primitive to include % \TeX{} documents. The \mref{markdownInput} macro accepts a single parameter @@ -11554,7 +11976,7 @@ pdftex --shell-escape document.tex % \par % \begin{markdown} % -% This macro is not subject to the limitations of the +% The macro \mref{markdownInput} is not subject to the limitations of the % \mref{markdownBegin} and \mref{markdownEnd} macros. % % The following example plain \TeX{} code showcases the usage of the @@ -11566,6 +11988,47 @@ pdftex --shell-escape document.tex % \bye % ``````` % +% You can use the \mref{yamlInput} macro to include \acro{YAML} documents. +% similarly to how you might use the \mref{input} \TeX{} primitive to include +% \TeX{} documents. The \mref{yamlInput} macro accepts a single parameter with +% the filename of a \acro{YAML} document and expands to the result of the +% conversion of the input \acro{YAML} document to plain \TeX{}. +% +% \end{markdown} +% \begin{macrocode} +\def\yamlInput#1{% + \begingroup + \yamlSetup{jekyllData, expectJekyllData, ensureJekyllData}% + \markdownInput{#1}% + \endgroup +}% +% \end{macrocode} +% \par +% \begin{markdown} +% +% The macro \mref{yamlInput} is also not subject to the limitations of the +% \mref{markdownBegin} and \mref{markdownEnd} macros. +% +% The following example plain \TeX{} code showcases the usage of the +% \mref{markdownInput} macro: +% +% ``` tex +% \input markdown +% \yamlInput{hello.yml} +% \bye +% ``````` +% +% The above code has the same effect as the below code: +% +% ``` tex +% \input markdown +% \yamlSetup{jekyllData, expectJekyllData, ensureJekyllData} +% \markdownInput{hello.yml} +% \bye +% ``````` +% +%#### Typesetting TeX from inside Markdown and YAML documents +% % The \mref{markdownEscape} macro accepts a single parameter with the filename % of a \TeX{} document and executes the \TeX{} document in the middle of a % markdown document fragment. Unlike the `\input` built-in of \TeX, @@ -11625,7 +12088,9 @@ pdftex --shell-escape document.tex % \begin{macrocode} \prop_new:N \g_@@_plain_tex_option_types_prop \prop_new:N \g_@@_default_plain_tex_options_prop -\seq_gput_right:NV \g_@@_option_layers_seq \c_@@_option_layer_plain_tex_tl +\seq_gput_right:NV + \g_@@_option_layers_seq + \c_@@_option_layer_plain_tex_tl \cs_new:Nn \@@_add_plain_tex_option:nnn { @@ -11684,6 +12149,18 @@ following code in your plain \TeX{} document: \markdownSetup \@@_setup:n % \end{macrocode} +% \begin{markdown} +% +% The command \mdef{yamlSetup} is also available as an alias for the command +% \mref{markdownSetup}. +% +% \end{markdown} +% \begin{macrocode} +\cs_gset_eq:NN + \yamlSetup + \markdownSetup +% \end{macrocode} +% % \iffalse %</tex> %<*manual-options> @@ -11856,47 +12333,10 @@ For more information, see the examples for the \Opt{finalizeCache} option. % % \end{markdown} % \begin{macrocode} -\cs_generate_variant:Nn - \@@_add_plain_tex_option:nnn - { nnV } -% \end{macrocode} -% \begin{markdown} -% -% Use the \pkg{lt3luabridge} library to determine the default value of the -% \mref{markdownOptionOutputDir} macro by using the environmental variable -% `TEXMF_OUTPUT_DIRECTORY` that is available since TeX~Live 2024. -% -% \end{markdown} -% \begin{macrocode} -\ExplSyntaxOff -\input lt3luabridge.tex -\ExplSyntaxOn -\bool_if:nTF - { - \cs_if_exist_p:N - \luabridge_tl_set:Nn && - ( - \int_compare_p:nNn - { \g_luabridge_method_int } - = - { \c_luabridge_method_directlua_int } || - \sys_if_shell_unrestricted_p: - ) - } - { - \luabridge_tl_set:Nn - \l_tmpa_tl - { print(os.getenv("TEXMF_OUTPUT_DIRECTORY") or ".") } - } - { - \tl_set:Nn - \l_tmpa_tl - { . } - } -\@@_add_plain_tex_option:nnV +\@@_add_plain_tex_option:nnn { outputDir } { path } - \l_tmpa_tl + { . } % \end{macrocode} % \iffalse %</tex> @@ -12172,22 +12612,95 @@ A PDF document named `document.pdf` should be produced and contain the text % \end{macrocode} % \begin{markdown} % -% Do not override options defined before loading the package. +% Use the \pkg{lt3luabridge} library to determine the default value of the +% \mref{markdownOptionOutputDir} macro by using the environmental variable +% `TEXMF_OUTPUT_DIRECTORY` that is available since TeX~Live 2024. % % \end{markdown} % \begin{macrocode} - \@@_option_tl_to_csname:nN + \str_if_eq:nnTF { #1 } - \l_tmpa_tl - \cs_if_exist:cF - { \l_tmpa_tl } + { outputDir } + { \@@_define_option_command_output_dir: } { - \@@_get_default_option_value:nN - { #1 } - \l_tmpa_tl - \@@_set_option_value:nV +% \end{macrocode} +% \begin{markdown} +% +% Do not override options defined before loading the package. +% +% \end{markdown} +% \begin{macrocode} + \@@_option_tl_to_csname:nN { #1 } \l_tmpa_tl + \cs_if_exist:cF + { \l_tmpa_tl } + { + \@@_get_default_option_value:nN + { #1 } + \l_tmpa_tl + \@@_set_option_value:nV + { #1 } + \l_tmpa_tl + } + } + } +\ExplSyntaxOff +\input lt3luabridge.tex +% \end{macrocode} +% \begin{markdown} +% +% Use the \pkg{lt3luabridge} library to determine the default value of the +% \mref{markdownOptionOutputDir} macro by using the environmental variable +% `TEXMF_OUTPUT_DIRECTORY` that is available since TeX~Live 2024. +% +% \end{markdown} +% \begin{macrocode} +\ExplSyntaxOn +\cs_new:Nn + \@@_define_option_command_output_dir: + { + \cs_if_free:NT + \markdownOptionOutputDir + { + \bool_if:nTF + { + \cs_if_exist_p:N + \luabridge_tl_set:Nn && + ( + \int_compare_p:nNn + { \g_luabridge_method_int } + = + { \c_luabridge_method_directlua_int } || + \sys_if_shell_unrestricted_p: + ) + } + { +% \end{macrocode} +% \begin{markdown} +% +% Set most catcodes to category 12 (other) to ensure that special characters in +% `TEXMF_OUTPUT_DIRECTORY` such as backslashes (`\`) are not interpreted as +% control sequences. +% +% \end{markdown} +% \begin{macrocode} + \group_begin: + \cctab_select:N + \c_str_cctab + \luabridge_tl_set:Nn + \l_tmpa_tl + { print(os.getenv("TEXMF_OUTPUT_DIRECTORY") or ".") } + \tl_gset:NV + \markdownOptionOutputDir + \l_tmpa_tl + \group_end: + } + { + \tl_gset:Nn + \markdownOptionOutputDir + { . } + } } } \cs_new:Nn @@ -12370,7 +12883,7 @@ A PDF document named `document.pdf` should be produced and contain the text \prg_generate_conditional_variant:Nnn \str_if_eq:nn { en } - { F } + { p, F } \msg_new:nnn { markdown } { malformed-name-for-clist-option } @@ -12407,28 +12920,34 @@ User-defined themes for the Markdown package provide a domain-specific interpretation of Markdown tokens. Themes allow the authors to achieve a specific look and other high-level goals without low-level programming. -% The key-values `theme`=\meta{theme name} and `import`=\meta{theme name} load -% a \TeX{} document (further referred to as *a theme*) named -% `markdowntheme`\meta{munged theme name}`.tex`, where the *munged theme name* -% is the *theme name* after the substitution of all forward slashes (`/`) for -% an underscore (`_`). The theme name is *qualified* and contains no -% underscores. A theme name is qualified if and only if it contains at least -% one forward slash. Themes are inspired by the Beamer \LaTeX{} package, which -% provides similar functionality with its `\usetheme` macro [@tantau21, Section -% 15.1]. -% -% Theme names must be qualified to minimize naming conflicts between different -% themes with a similar purpose. The preferred format of a theme name is -% \meta{theme author}`/`\meta{theme purpose}`/`\meta{private naming -% scheme}, where the *private naming scheme* may contain additional forward -% slashes. For example, a theme by a user `witiko` for the MU theme of the -% Beamer document class may have the name `witiko/beamer/MU`. +% The key-values `theme`=\meta{theme name} and `import`=\meta{theme name}, +% optionally followed by `@`\meta{theme version}, load a \TeX{} document +% (further referred to as *a theme*) named `markdowntheme`\meta{munged theme +% name}`.tex`, where the *munged theme name* is the *theme name* after the +% substitution of all forward slashes (`/`) for an underscore (`_`). +% The theme name must be *qualified* and contain no underscores or at signs +% (`@`). Themes are inspired by the Beamer \LaTeX{} package, which provides +% similar functionality with its `\usetheme` macro [@tantau21, Section 15.1]. +% +% A theme name is qualified if and only if it contains at least one forward +% slash. Theme names must be qualified to minimize naming conflicts between +% different themes with a similar purpose. The preferred format of a theme name +% is \meta{theme author}`/`\meta{theme purpose}`/`\meta{private naming scheme}, +% where the *private naming scheme* may contain additional forward slashes. For +% example, a theme by a user `witiko` for the MU theme of the Beamer document +% class may have the name `witiko/beamer/MU`. % % Theme names are munged to allow structure inside theme names without % dictating where the themes should be located inside the \TeX{} directory % structure. For example, loading a theme named `witiko/beamer/MU` would % load a \TeX{} document package named `markdownthemewitiko_beamer_MU.tex`. % +% If `@`\meta{theme version} is specified after \meta{theme name}, then the +% text *theme version* will be available in the macro +% \mdef{markdownThemeVersion} when the theme is loaded. If `@`\meta{theme +% version} is not specified, the macro \mref{markdownThemeVersion} will +% contain the text `latest` [@novotny24]. +% % \end{markdown} % \iffalse %</manual-options> @@ -12471,21 +12990,31 @@ a specific look and other high-level goals without low-level programming. % \begin{markdown} % % To keep track of the current theme when themes are nested, we will -% maintain the \mdef{g_\@\@_themes_seq} stack of theme names. -% For convenience, the name of the current theme is also available in the -% \mdef{g_@@_current_theme_tl} macro. +% maintain the stacks \mdef{g_\@\@_theme_names_seq} and +% \mdef{g_\@\@_theme_versions_seq} stack of theme names and versions, +% respectively. For convenience, the name of the current theme and version is +% also available in the macros \mdef{g_@@_current_theme_tl} and +% \mref{markdownThemeVersion}, respectively. % % \end{markdown} % \begin{macrocode} \seq_new:N - \g_@@_themes_seq + \g_@@_theme_names_seq +\seq_new:N + \g_@@_theme_versions_seq \tl_new:N \g_@@_current_theme_tl \tl_gset:Nn \g_@@_current_theme_tl { } \seq_gput_right:NV - \g_@@_themes_seq + \g_@@_theme_names_seq + \g_@@_current_theme_tl +\cs_new:Npn + \markdownThemeVersion + { } +\seq_gput_right:NV + \g_@@_theme_versions_seq \g_@@_current_theme_tl \cs_new:Nn \@@_set_theme:n @@ -12518,13 +13047,55 @@ a specific look and other high-level goals without low-level programming. % \end{macrocode} % \begin{markdown} % +% Next, we extract the theme version. +% +% \end{markdown} +% \begin{macrocode} + \str_if_in:nnTF + { #1 } + { @ } + { + \regex_extract_once:nnN + { (.*) @ (.*) } + { #1 } + \l_tmpa_seq + \seq_gpop_left:NN + \l_tmpa_seq + \l_tmpa_tl + \seq_gpop_left:NN + \l_tmpa_seq + \l_tmpa_tl + \tl_gset:NV + \g_@@_current_theme_tl + \l_tmpa_tl + \seq_gpop_left:NN + \l_tmpa_seq + \l_tmpa_tl + \cs_gset:Npe + \markdownThemeVersion + { + \tl_use:N + \l_tmpa_tl + } + } + { + \tl_gset:Nn + \g_@@_current_theme_tl + { #1 } + \cs_gset:Npn + \markdownThemeVersion + { latest } + } +% \end{macrocode} +% \begin{markdown} +% % Next, we munge the theme name. % % \end{markdown} % \begin{macrocode} - \str_set:Nn + \str_set:NV \l_tmpa_str - { #1 } + \g_@@_current_theme_tl \str_replace_all:Nnn \l_tmpa_str { / } @@ -12532,28 +13103,56 @@ a specific look and other high-level goals without low-level programming. % \end{macrocode} % \begin{markdown} % -% Finally, we load the theme. +% Finally, we load the theme. Before loading the theme, we push down the +% current name and version of the theme on the stack. % % \end{markdown} % \begin{macrocode} - \tl_gset:Nn + \tl_set:NV + \l_tmpa_tl \g_@@_current_theme_tl - { #1 / } + \tl_put_right:Nn + \g_@@_current_theme_tl + { / } \seq_gput_right:NV - \g_@@_themes_seq + \g_@@_theme_names_seq \g_@@_current_theme_tl - \@@_load_theme:nV - { #1 } + \seq_gput_right:NV + \g_@@_theme_versions_seq + \markdownThemeVersion + \@@_load_theme:VeV + \l_tmpa_tl + { \markdownThemeVersion } \l_tmpa_str +% \end{macrocode} +% \begin{markdown} +% +% After the theme has been loaded, we recover the name and version of the +% previous theme from the stack. +% +% \end{markdown} +% \begin{macrocode} \seq_gpop_right:NN - \g_@@_themes_seq + \g_@@_theme_names_seq \l_tmpa_tl \seq_get_right:NN - \g_@@_themes_seq + \g_@@_theme_names_seq \l_tmpa_tl \tl_gset:NV \g_@@_current_theme_tl \l_tmpa_tl + \seq_gpop_right:NN + \g_@@_theme_versions_seq + \l_tmpa_tl + \seq_get_right:NN + \g_@@_theme_versions_seq + \l_tmpa_tl + \cs_gset:Npe + \markdownThemeVersion + { + \tl_use:N + \l_tmpa_tl + } } \msg_new:nnnn { markdown } @@ -12568,6 +13167,9 @@ a specific look and other high-level goals without low-level programming. \cs_generate_variant:Nn \tl_replace_all:Nnn { NnV } +\cs_generate_variant:Nn + \cs_gset:Npn + { Npe } \ExplSyntaxOff % \end{macrocode} % \iffalse @@ -12682,10 +13284,14 @@ options locally. { redefined-snippet } \l_tmpa_tl } - \prop_gput:NVn + \keys_precompile:nnN + { markdown/options } + { #2 } + \l_tmpb_tl + \prop_gput:NVV \g_@@_snippets_prop \l_tmpa_tl - { #2 } + \l_tmpb_tl } \cs_gset_eq:NN \markdownSetupSnippet @@ -12707,20 +13313,21 @@ options locally. % % \end{markdown} % \begin{macrocode} +\tl_new:N + \l_@@_current_snippet_tl \prg_new_conditional:Nnn \@@_if_snippet_exists:n { TF, T, F } { \tl_set:NV - \l_tmpa_tl + \l_@@_current_snippet_tl \g_@@_current_theme_tl \tl_put_right:Nn - \l_tmpa_tl + \l_@@_current_snippet_tl { #1 } - \prop_get:NVNTF + \prop_if_in:NVTF \g_@@_snippets_prop - \l_tmpa_tl - \l_tmpb_tl + \l_@@_current_snippet_tl { \prg_return_true: } { \prg_return_false: } } @@ -12751,7 +13358,7 @@ options locally. \g_@@_snippets_prop \l_tmpa_tl \l_tmpb_tl - \@@_setup:V + \tl_use:N \l_tmpb_tl } { @@ -12766,9 +13373,6 @@ options locally. { markdown } { undefined-snippet } { Can't~invoke~undefined~snippet~#1 } -\cs_generate_variant:Nn - \@@_setup:n - { V } \ExplSyntaxOff % \end{macrocode} % \iffalse @@ -14039,7 +14643,7 @@ following text: #### Code Block Renderers The \mdef{markdownRendererInputVerbatim} macro represents a code block. The macro receives a single argument that corresponds to the -filename of a file contaning the code block contents. +filename of a file containing the code block contents. % \end{markdown} % @@ -14073,7 +14677,7 @@ filename of a file contaning the code block contents. The \mdef{markdownRendererInputFencedCode} macro represents a fenced code block. This macro will only be produced, when the \Opt{fencedCode} option is enabled. The macro receives three arguments that correspond to the filename of -a file contaning the code block contents, the fully escaped code fence infostring +a file containing the code block contents, the fully escaped code fence infostring that can be directly typeset, and the raw code fence infostring that can be used outside typesetting. @@ -15289,7 +15893,7 @@ following text: % \begin{markdown} #### Ellipsis Renderer -The \mdef{markdownRendererEllipsis} macro replaces any occurance of ASCII +The \mdef{markdownRendererEllipsis} macro replaces any occurrence of ASCII ellipses in the input text. This macro will only be produced, when the \Opt{smartEllipses} option is enabled. The macro receives no arguments. @@ -15399,7 +16003,7 @@ following text: % % \begin{markdown} -#### Emphasis Renderers +#### Emphasis Renderers {#emphasis-renderers} The \mdef{markdownRendererEmphasis} macro represents an emphasized span of text. The macro receives a single argument that corresponds to the emphasized span of text. @@ -15553,8 +16157,8 @@ following text: % \begin{markdown} #### Fenced Code Attribute Context Renderers -The following macros are only produced, when the \Opt{fencedCode} option is -enabled. +The following macros are only produced, when the \Opt{fencedCode} and +\Opt{fencedCodeAttributes} options are enabled. The \mdef{markdownRendererFencedCodeAttributeContextBegin} and \mdef{markdownRendererFencedCodeAttributeContextEnd} macros represent the @@ -18435,7 +19039,7 @@ following text: #### Raw Content Renderers The \mdef{markdownRendererInputRawInline} macro represents an inline raw span. -The macro receives two arguments: the filename of a file contaning the inline +The macro receives two arguments: the filename of a file containing the inline raw span contents and the raw attribute that designates the format of the inline raw span. This macro will only be produced, when the \Opt{rawAttribute} option is enabled. @@ -18470,7 +19074,7 @@ option is enabled. % \begin{markdown} The \mdef{markdownRendererInputRawBlock} macro represents a raw block. The -macro receives two arguments: the filename of a file contaning the raw block +macro receives two arguments: the filename of a file containing the raw block and the raw attribute that designates the format of the raw block. This macro will only be produced, when the \Opt{rawAttribute} and \Opt{fencedCode} options are enabled. @@ -19308,7 +19912,7 @@ following text: % % \begin{markdown} -#### Table Renderer +#### Table Renderer {#table-renderer} The \mdef{markdownRendererTable} macro represents a table. This macro will only be produced, when the \Opt{pipeTables} option is enabled. The macro receives the parameters `{`\meta{caption}`}{`\meta{number of rows}`}{`\meta{number of columns}`}` @@ -19368,7 +19972,7 @@ following content: \markdownSetup{ renderers = { table = {% - This is a table with caption \emph{#1} that is #3 colums wide + This is a table with caption \emph{#1} that is #3 columns wide and #2 rows long. \rowCounter=0% \def\rowTotal{#2}% @@ -19397,7 +20001,7 @@ A PDF document named `document.pdf` should be produced and contain the following text: > This is a table with caption *Demonstration of pipe table syntax* that is 4 -> colums wide and 4 rows long. As for the alignment, column number 1 is +> columns wide and 4 rows long. As for the alignment, column number 1 is > right-aligned, column number 2 is left-aligned, column number 3 has default > alignment, and column number 4 is centered. In row 1, column number 1 says > *Right*, column number 2 says *Left*, column number 3 says *Default*, and @@ -19810,6 +20414,59 @@ following text: % % \begin{markdown} +#### Warning and Error Renderers + +The \mdef{markdownRendererWarning} and \mdef{markdownRendererError} macros +represent warnings and errors produced by the markdown parser. Both macros +receive four parameters: + +1. The fully escaped text of the warning or error that can be directly typeset +2. The raw text of the warning or error that can be used outside typesetting + for e.g. logging the warning or error. +3. The fully escaped text with more details about the warning or error that + can be directly typeset. Can be empty, unlike the first two parameters. +4. The raw text with more details about the warning or error that can be used + outside typesetting for e.g. logging the warning or error. Can be empty, + unlike the first two parameters. + +% \end{markdown} +% +% \iffalse +%</manual-tokens> +%<*tex> +% \fi +% +% \begin{macrocode} +\def\markdownRendererWarning{% + \markdownRendererWarningPrototype}% +\def\markdownRendererError{% + \markdownRendererErrorPrototype}% +\ExplSyntaxOn +\seq_gput_right:Nn + \g_@@_renderers_seq + { warning } +\prop_gput:Nnn + \g_@@_renderer_arities_prop + { warning } + { 4 } +\seq_gput_right:Nn + \g_@@_renderers_seq + { error } +\prop_gput:Nnn + \g_@@_renderer_arities_prop + { error } + { 4 } +\ExplSyntaxOff +% \end{macrocode} +% \par +% +% \iffalse +%</tex> +%<*manual-tokens> +% \fi +% +% \begin{markdown} + #### YAML Metadata Renderers {#yamlmetadatarenderers} The \mdef{markdownRendererJekyllDataBegin} macro represents the beginning of a @@ -20084,12 +20741,68 @@ following \acro{yaml} serialization rules. % % \begin{markdown} -The \mdef{markdownRendererJekyllDataString} macro represents a string scalar -value in a \acro{yaml} document. This macro will only be produced when the -\Opt{jekyllData} option is enabled. The macro receives two arguments: the +The \mdef{markdownRendererJekyllDataTypographicString} and +\mdef{markdownRendererJekyllDataProgrammaticString} macros represent string +scalar values in a \acro{yaml} document. This macro will only be produced when +the \Opt{jekyllData} option is enabled. The macro receives two arguments: the scalar key in the parent structure, cast to a string following \acro{yaml} serialization rules, and the scalar value. +For each string scalar value, both macros are produced. Whereas +\mref{markdownRendererJekyllDataTypographicString} receives the scalar value +after all markdown markup and special \TeX{} characters in the string have been +replaced by \TeX{} macros, \mref{markdownRendererJekyllDataProgrammaticString} +receives the raw scalar value. Therefore, whereas the +\mref{markdownRendererJekyllDataTypographicString} macro is more appropriate +for texts that are supposed to be typeset with \TeX{}, such as document titles, +author names, or exam questions, the +\mref{markdownRendererJekyllDataProgrammaticString} macro is more appropriate +for identifiers and other programmatic text that won't be typeset by \TeX{}. + +% \end{markdown} +% +% \iffalse +%</manual-tokens> +%<*tex> +% \fi +% +% \begin{macrocode} +\def\markdownRendererJekyllDataTypographicString{% + \markdownRendererJekyllDataTypographicStringPrototype}% +\def\markdownRendererJekyllDataProgrammaticString{% + \markdownRendererJekyllDataProgrammaticStringPrototype}% +\ExplSyntaxOn +\seq_gput_right:Nn + \g_@@_renderers_seq + { jekyllDataTypographicString } +\prop_gput:Nnn + \g_@@_renderer_arities_prop + { jekyllDataTypographicString } + { 2 } +\seq_gput_right:Nn + \g_@@_renderers_seq + { jekyllDataProgrammaticString } +\prop_gput:Nnn + \g_@@_renderer_arities_prop + { jekyllDataProgrammaticString } + { 2 } +\ExplSyntaxOff +% \end{macrocode} +% \par +% +% \iffalse +%</tex> +%<*manual-tokens> +% \fi +% +% \begin{markdown} + +Before Markdown 3.7.0, the \mref{markdownRendererJekyllDataTypographicString} +macro was named \mref{markdownRendererJekyllDataString} and the +\mref{markdownRendererJekyllDataProgrammaticString} macro was not produced. +The \mref{markdownRendererJekyllDataString} has been deprecated and will be +removed in Markdown 4.0.0. + % \end{markdown} % % \iffalse @@ -20098,9 +20811,60 @@ serialization rules, and the scalar value. % \fi % % \begin{macrocode} -\def\markdownRendererJekyllDataString{% - \markdownRendererJekyllDataStringPrototype}% \ExplSyntaxOn +\cs_gset:Npn + \markdownRendererJekyllDataTypographicString + { + \cs_if_exist:NTF + \markdownRendererJekyllDataString + { + \@@_if_option:nTF + { experimental } + { + \markdownError + { + The~jekyllDataString~renderer~has~been~deprecated,~ + to~be~removed~in~Markdown~4.0.0 + } + } + { + \markdownWarning + { + The~jekyllDataString~renderer~has~been~deprecated,~ + to~be~removed~in~Markdown~4.0.0 + } + \markdownRendererJekyllDataString + } + } + { + \cs_if_exist:NTF + \markdownRendererJekyllDataStringPrototype + { + \@@_if_option:nTF + { experimental } + { + \markdownError + { + The~jekyllDataString~renderer~prototype~ + has~been~deprecated,~ + to~be~removed~in~Markdown~4.0.0 + } + } + { + \markdownWarning + { + The~jekyllDataString~renderer~prototype~ + has~been~deprecated,~ + to~be~removed~in~Markdown~4.0.0 + } + \markdownRendererJekyllDataStringPrototype + } + } + { + \markdownRendererJekyllDataTypographicStringPrototype + } + } + } \seq_gput_right:Nn \g_@@_renderers_seq { jekyllDataString } @@ -20162,7 +20926,7 @@ following content: ``` tex \input markdown \def\markdownOptionJekyllData{true} -\def\markdownRendererJekyllDataString#1#2{\gdef\name{#2}} +\def\markdownRendererJekyllDataTypographicString#1#2{\gdef\name{#2}} \def\markdownRendererJekyllDataNumber#1#2{\gdef\age{#2}} \def\markdownRendererJekyllDataEnd{% \name{} is \age{} years old.} @@ -20192,7 +20956,7 @@ following content: \usepackage[jekyllData]{markdown} \markdownSetup{ renderers = { - jekyllDataString = {\gdef\name{#2}}, + jekyllDataTypographicString = {\gdef\name{#2}}, jekyllDataNumber = {\gdef\age{#2}}, jekyllDataEnd = {\name{} is \age{} years old.}, } @@ -20224,7 +20988,7 @@ following content: ``` tex \usemodule[t][markdown] \setupmarkdown[jekyllData = yes] -\def\markdownRendererJekyllDataString#1#2{\gdef\name{#2}} +\def\markdownRendererJekyllDataTypographicString#1#2{\gdef\name{#2}} \def\markdownRendererJekyllDataNumber#1#2{\gdef\age{#2}} \def\markdownRendererJekyllDataEnd{% \name{} is \age{} years old.} @@ -20256,7 +21020,7 @@ following text: %#### Generating Plain \TeX{} Token Renderer Macros and Key-Values {#plain-tex-renderers} % % We define the command \mdef{@@_define_renderers:} that defines plain \TeX{} -% macros for token renderers. Futhermore, the `\markdownSetup` macro also accepts +% macros for token renderers. Furthermore, the `\markdownSetup` macro also accepts % the `renderers` key, whose value must be a list of key-values, where the keys % correspond to the markdown token renderer macros and the values are new % definitions of these token renderers. @@ -20266,9 +21030,12 @@ following text: \ExplSyntaxOn \cs_new:Nn \@@_define_renderers: { - \seq_map_function:NN + \seq_map_inline:Nn \g_@@_renderers_seq - \@@_define_renderer:n + { + \@@_define_renderer:n + { ##1 } + } } \cs_new:Nn \@@_define_renderer:n { @@ -20332,6 +21099,24 @@ following text: \l_@@_renderer_definition_tl }, } +% \end{macrocode} +% \par +% \begin{markdown} +% +% If the token renderer macro has been deprecated, we undefine it. +% +% The \mref{markdownRendererJekyllDataString} macro has been deprecated and +% will be removed in Markdown 4.0.0. +% +% \end{markdown} +% \begin{macrocode} + \str_if_eq:nnT + { #1 } + { jekyllDataString } + { + \cs_undefine:N + #2 + } } % \end{macrocode} % \par @@ -20974,7 +21759,7 @@ following text: %#### Generating Plain \TeX{} Token Renderer Prototype Macros and Key-Values {#plain-tex-renderer-prototypes} % % We define the command \mdef{@@_define_renderer_prototypes:} that defines plain \TeX{} -% macros for token renderer prototypes. Futhermore, the `\markdownSetup` macro also accepts +% macros for token renderer prototypes. Furthermore, the `\markdownSetup` macro also accepts % the `rendererPrototype` key, whose value must be a list of key-values, where the keys % correspond to the markdown token renderer prototype macros and the values are new % definitions of these token renderer prototypes. @@ -20984,9 +21769,12 @@ following text: \ExplSyntaxOn \cs_new:Nn \@@_define_renderer_prototypes: { - \seq_map_function:NN + \seq_map_inline:Nn \g_@@_renderers_seq - \@@_define_renderer_prototype:n + { + \@@_define_renderer_prototype:n + { ##1 } + } } \cs_new:Nn \@@_define_renderer_prototype:n { @@ -21052,21 +21840,30 @@ following text: }, } % \end{macrocode} +% \par % \begin{markdown} % -% Unless the token renderer prototype macro has already been defined, -% we provide an empty definition. +% Unless the token renderer prototype macro has already been defined or unless, +% it has been deprecated, we provide an empty definition. +% +% The \mref{markdownRendererJekyllDataStringPrototype} macro has been +% deprecated and will be removed in Markdown 4.0.0. % % \end{markdown} % \begin{macrocode} - \cs_if_free:NT - #2 + \str_if_eq:nnF + { #1 } + { jekyllDataString } { - \cs_generate_from_arg_count:NNnn + \cs_if_free:NT #2 - \cs_set:Npn - { #3 } - { } + { + \cs_generate_from_arg_count:NNnn + #2 + \cs_set:Npn + { #3 } + { } + } } } \cs_generate_variant:Nn @@ -21296,12 +22093,12 @@ following text: % \begin{markdown} % % The \mdef{markdownReadAndConvert} macro implements the \mref{markdownBegin} -% macro. The first argument specifies the token sequence that will terminate -% the markdown input (\mref{markdownEnd} in the instance of the \mref{markdownBegin} -% macro) when the plain \TeX{} special characters have had their category -% changed to *other*. The second argument specifies the token sequence -% that will actually be inserted into the document, when the ending token -% sequence has been found. +% and \mref{yamlBegin} macros. The first argument specifies the token sequence +% that will terminate the markdown input when the plain \TeX{} special +% characters have had their category changed to *other*: \mref{markdownEnd} for +% the \mref{markdownBegin} macro and \mref{yamlEnd} for the \mref{yamlBegin} +% macro. The second argument specifies the token sequence that will actually be +% inserted into the document, when the ending token sequence has been found. % % \end{markdown} % \begin{macrocode} @@ -21320,6 +22117,11 @@ following text: |gdef|markdownBegin{% |markdownReadAndConvert{\markdownEnd}% {|markdownEnd}}% + |gdef|yamlBegin{% + |begingroup + |yamlSetup{jekyllData, expectJekyllData, ensureJekyllData}% + |markdownReadAndConvert{\yamlEnd}% + {|yamlEnd}}% |endgroup % \end{macrocode} % \begin{markdown} @@ -21462,15 +22264,16 @@ pdflatex --shell-escape document.tex % \begin{markdown} % %### Typesetting Markdown -% The interface exposes the \envmdef{markdown} and \envmdef{markdown*} -% \LaTeX{} environments, and redefines the \mref{markinline} and -% \mref{markdownInput} commands. % -% The \envmref{markdown} and \envmref{markdown*} \LaTeX{} environments are used -% to typeset markdown document fragments. Both \LaTeX{} environments accept -% \LaTeX{} interface options (see ection <#sec:latex-options>) as the only -% argument. This argument is optional for the \envmref{markdown} environment -% and mandatory for the \envmref{markdown*} environment. +% The interface exposes the \envmdef{markdown}, \envmdef{markdown*}, and +% \envmdef{yaml} \LaTeX{} environments, and redefines the \mref{markinline}, +% \mref{markdownInput}, and \mref{yamlInput} commands. +% +%#### Typesetting Markdown and YAML directly +% +% The \envmref{markdown} and \envmref{markdown*} \LaTeX{} environments are +% aliases for the macros \mref{markdownBegin} and \mref{markdownEnd} exposed +% by the plain \TeX{} interface. % % The \envmref{markdown*} environment has been deprecated and will be removed % in the next major version of the Markdown package. @@ -21482,56 +22285,255 @@ pdflatex --shell-escape document.tex % \end{macrocode} % \markdownBegin % -% You may prepend your own code to the \mdef{markdown} macro and append your own -% code to the \mref{markdownEnd} macro to produce special effects before and after -% the \envmref{markdown} \LaTeX{} environment (and likewise for the starred -% version). +% Furthermore, both environments accept \LaTeX{} interface options (see Section +% <#sec:latex-options>) as the only argument. This argument is optional for the +% \envmref{markdown} environment and mandatory for the \envmref{markdown*} +% environment. % -% Note that the \envmref{markdown} and \envmref{markdown*} \LaTeX{} environments are -% subject to the same limitations as the \mref{markdownBegin} and \mref{markdownEnd} -% macros exposed by the plain \TeX{} interface. +% The \envmref{markdown} and \envmref{markdown*} environments are +% subject to the same limitations as the \mref{markdownBegin} and +% \mref{markdownEnd} macros. % % The following example \LaTeX{} code showcases the usage of the % \envmref{markdown} and \envmref{markdown*} environments: +% % ``` tex % \documentclass{article} \documentclass{article} % \usepackage{markdown} \usepackage{markdown} % \begin{document} \begin{document} -% \% ... \% ... % \begin{markdown}[smartEllipses] \begin{markdown*}{smartEllipses} % _Hello_ **world** ... _Hello_ **world** ... % \end{markdown} \end{markdown*} -% \% ... \% ... % \end{document} \end{document} % ``````` % +% You can't directly extend the \envmref{markdown} \LaTeX{} environment by +% using it in other environments as follows: +% +% ``` tex +% \newenvironment{foo}\% +% {code before \begin{markdown}[some, options]}\% +% {\end{markdown} code after} +% ``` +% +% This is because the implementation looks for the literal string +% `\end{markdown}` to stop scanning the markdown text. However, you can work +% around this limitation by using the \mref{markdown} and \mref{markdownEnd} +% macros directly in the definition as follows: +% +% \markdownEnd +% \begin{markdown} +% +% ``` tex +% \newenvironment{foo}\% +% {code before \markdown[some, options]}\% +% {\markdownEnd code after} +% ``` +% +% Specifically, the \mref{markdown} macro must appear at the end of the +% replacement before-text and must be followed by text that has not yet been +% ingested by \TeX's input processor. +% +% Furthermore, using the \mref{markdownEnd} macro in of after the replacement +% after-text is optional and only makes a difference if you redefined it to +% produce special effects before and after the \envmref{markdown} \LaTeX{} +% environment. +% +% Lastly, you can't nest the other environments. For example, the following +% definition would be incorrect: +% +% ``` tex +% \newenvironment{bar}{\begin{foo}}{\end{foo}} +% ``` +% +% In this example, you should use the \mref{markdown} macro directly in the +% definition of the environment `bar`: +% +% ``` tex +% \newenvironment{bar}{\markdown[some, options]}{\markdownEnd} +% ``` +% +% The \envmref{yaml} \LaTeX{} environment is an alias for the macros +% \mref{yamlBegin} and \mref{yamlEnd} exposed by the plain \TeX{} interface. +% +% \end{markdown} +% \begin{macrocode} +\newenvironment{yaml}\relax\relax +% \end{macrocode} +% \begin{markdown} +% +% Furthermore, the environment accepts \LaTeX{} interface options (see Section +% <#sec:latex-options>) as the only optional argument. +% +% The \envmref{yaml} environment is subject to the same limitations as +% the \mref{markdownBegin} and \mref{markdownEnd} macros. +% +% The following example \LaTeX{} code showcases the usage of the +% \envmref{yaml} environment: +% +% ``` tex +% \documentclass{article} +% \usepackage{markdown} +% \begin{document} +% \begin{yaml}[smartEllipses] +% title: _Hello_ **world** ... +% author: John Doe +% \end{yaml} +% \end{document} +% ``````` +% +% \end{markdown} +% \markdownBegin +% +% The above code has the same effect as the below code: +% +% ``` tex +% \documentclass{article} +% \usepackage{markdown} +% \begin{document} +% \begin{markdown}[ +% jekyllData, +% expectJekyllData, +% ensureJekyllData, +% smartEllipses, +% ] +% title: _Hello_ **world** ... +% author: John Doe +% \end{markdown} +% \end{document} +% ``````` +% +% You can't directly extend the \envmref{yaml} \LaTeX{} environment by using it +% in other environments. However, you can work around this limitation by using +% the \mref{yaml} and \mref{yamlEnd} macros directly in the definition, +% similarly to the \mref{markdown} and \mref{markdownEnd} macros described +% previously. Unlike with the \mref{markdown} and \mref{markdownEnd} macros, +% The \mref{yamlEnd} macro _must_ be used in or after the replacement after-text. +% % The \mref{markinline} macro accepts a single mandatory parameter containing % inline markdown content and expands to the result of the conversion of the % input markdown document to plain \TeX{}. Unlike the \mref{markinline} macro % provided by the plain \TeX{} interface, this macro also accepts \LaTeX{} % interface options (see Section <#sec:latex-options>) as its optional -% argument. These options will only influnce this markdown content. +% argument. These options will only influence this markdown content. +% +%#### Typesetting Markdown and YAML from external documents % % The \mref{markdownInput} macro accepts a single mandatory parameter containing % the filename of a markdown document and expands to the result of the % conversion of the input markdown document to plain \TeX{}. Unlike the % \mref{markdownInput} macro provided by the plain \TeX{} interface, this macro % also accepts \LaTeX{} interface options (see Section <#sec:latex-options>) -% as its optional argument. These options will only influnce this markdown +% as its optional argument. These options will only influence this markdown % document. % % The following example \LaTeX{} code showcases the usage of the % \mref{markdownInput} macro: +% % ``` tex % \documentclass{article} % \usepackage{markdown} % \begin{document} -% % ... % \markdownInput[smartEllipses]{hello.md} -% % ... % \end{document} % ``````` % +% The \mref{yamlInput} macro accepts a single mandatory parameter containing +% the filename of a \acro{YAML} document and expands to the result of the +% conversion of the input \acro{YAML} document to plain \TeX{}. Unlike the +% \mref{yamlInput} macro provided by the plain \TeX{} interface, this macro +% also accepts \LaTeX{} interface options (see Section <#sec:latex-options>) +% as its optional argument. These options will only influence this \acro{YAML} +% document. +% +% The following example \LaTeX{} code showcases the usage of the +% \mref{yamlInput} macro: +% +% ``` tex +% \documentclass{article} +% \usepackage{markdown} +% \begin{document} +% \yamlInput[smartEllipses]{hello.yml} +% \end{document} +% ``````` +% +% The above code has the same effect as the below code: +% +% ``` tex +% \documentclass{article} +% \usepackage{markdown} +% \begin{document} +% \markdownInput[ +% jekyllData, +% expectJekyllData, +% ensureJekyllData, +% smartEllipses, +% ]{hello.yml} +% \end{document} +% ``````` +% +%### Using \LaTeX{} hooks with the Markdown package +% +% \LaTeX{} provides an intricate hook management system that allows users to +% insert extra material before and after certain \TeX{} macros and \LaTeX{} +% environments, among other things. [@mittelbach24, Section 3.1.2] +% +% The Markdown package is compatible with hooks and allows the use of hooks +% to insert extra material before \TeX{} commands and before/after \LaTeX{} +% environments without restriction: +% +% ``` tex +% \documentclass{article} +% \usepackage{markdown} +% \begin{document} +% \AddToHook{cmd/markdownRendererEmphasis/before}{emphasis: } +% \AddToHook{env/markdown/before}{<markdown>} +% \AddToHook{env/markdown/after}{</markdown>} +% \begin{markdown} +% foo _bar_ baz! +% \end{markdown} +% \end{document} +% ``` +% +% Processing the above example with \LaTeX{} will produce the text +% “<markdown>foo emphasis: _bar_ baz!</markdown>”, as expected. +% +% However, using hooks to insert extra material after \TeX{} commands only works +% for commands with a fixed number of parameters that don't use currying. +% +% If, in the above example, you explicitly defined the renderer for emphasis +% using \mref{markdownSetup} or another method that does not use currying, then +% you would be able to insert extra material even after the renderer: +% +% ``` tex +% \documentclass{article} +% \usepackage{markdown} +% \markdownSetup{renderers={emphasis={\emph{#1}}}} +% \begin{document} +% \AddToHook{cmd/markdownRendererEmphasis/before}{<emphasis>} +% \AddToHook{cmd/markdownRendererEmphasis/after}{</emphasis>} +% \AddToHook{env/markdown/before}{<markdown>} +% \AddToHook{env/markdown/after}{</markdown>} +% \begin{markdown} +% foo _bar_ baz! +% \end{markdown} +% \end{document} +% ``` +% +% Processing the above example with \LaTeX{} will produce the text +% “<markdown>foo <emphasis>_bar_</emphasis> baz!</markdown>”, as expected. +% +% However, the default renderer for emphasis uses currying and calls the +% renderer prototype in a way that prevents the use of hooks to insert extra +% material after the renderer, see Section~<#sec:emphasis-renderers>. In such +% a case, you would need to redefine the renderer in a way that does not use +% currying before you would be able to use hooks to insert extra material +% after it. +% +% Hooks also cannot be used to insert extra material after renderers with a +% variable number of parameters such as the renderer for tables, see +% Section~<#sec:table-renderer>. +% %### Options {#latex-options} % % The \LaTeX{} options are represented by a comma-delimited list of @@ -21600,7 +22602,7 @@ following code in our \LaTeX{} document: We can also set all plain \TeX{} options directly from \LaTeX{}. For example, to set the `\markdownOptionInputTempFileName` plain \TeX{} option to -`helper-script.lua`, we would inclde the following code in our \LaTeX{} +`helper-script.lua`, we would include the following code in our \LaTeX{} document: ``` tex @@ -21947,6 +22949,7 @@ following image: % \begin{macrocode} \AtEndOfPackage{ \markdownLaTeXLoadedtrue +} % \end{macrocode} % \begin{markdown} % @@ -21957,17 +22960,39 @@ following image: % % \end{markdown} % \begin{macrocode} - \markdownIfOption{noDefaults}{}{ - \markdownSetup{theme=witiko/markdown/defaults} +\ExplSyntaxOn +\str_if_eq:VVT + \c_@@_top_layer_tl + \c_@@_option_layer_latex_tl + { + \ExplSyntaxOff + \AtEndOfPackage + { + \@@_if_option:nF + { noDefaults } + { + \@@_if_option:nTF + { experimental } + { + \@@_setup:n + { theme = witiko/markdown/defaults@experimental } + } + { + \@@_setup:n + { theme = witiko/markdown/defaults } + } + } + } + \ExplSyntaxOn } -} +\ExplSyntaxOff % \end{macrocode} % \iffalse %</latex> %<*themes-witiko-markdown-defaults-latex> % \fi % \begin{macrocode} -\ProvidesPackage{markdownthemewitiko_markdown_defaults}[2024/01/03]% +\ProvidesPackage{markdownthemewitiko_markdown_defaults}[2024/10/29]% % \end{macrocode} % \iffalse %</themes-witiko-markdown-defaults-latex> @@ -22080,16 +23105,22 @@ following text: % \noindent It is expected that the special plain \TeX{} characters have the % expected category codes, when `\input`ting the file. % -%### Typesetting Markdown -% The interface exposes the \mdef{startmarkdown} and \mdef{stopmarkdown} macro -% pair for the typesetting of a markdown document fragment, and defines the -% \mdef{inputmarkdown} macro. +%### Typesetting Markdown and YAML +% +% The interface exposes the \mdef{startmarkdown}, \mdef{stopmarkdown}, +% \mdef{startyaml}, \mdef{stopyaml}, \mdef{inputmarkdown}, and \mdef{inputyaml} +% macros. +% +%#### Typesetting Markdown and YAML directly +% +% The \mref{startmarkdown} and \mref{stopmarkdown} macros are aliases for the +% macros \mref{markdownBegin} and \mref{markdownEnd} exposed by the plain +% \TeX{} interface. % % \end{markdown} % \begin{macrocode} \let\startmarkdown\relax \let\stopmarkdown\relax -\let\inputmarkdown\relax % \end{macrocode} % \par % \begin{markdown} @@ -22098,12 +23129,12 @@ following text: % \mref{stopmarkdown} macro to produce special effects before and after the % markdown block. % -% Note that the \mref{startmarkdown} and \mref{stopmarkdown} macros -% are subject to the same limitations as the \mref{markdownBegin} and -% \mref{markdownEnd} macros exposed by the plain \TeX{} interface. +% The macros \mref{startmarkdown} and \mref{stopmarkdown} are subject to the +% same limitations as the \mref{markdownBegin} and \mref{markdownEnd} macros. % % The following example \Hologo{ConTeXt} code showcases the usage of the % \mref{startmarkdown} and \mref{stopmarkdown} macros: +% % ``` tex % \usemodule[t][markdown] % \starttext @@ -22113,22 +23144,117 @@ following text: % \stoptext % ``````` % -% The \mref{inputmarkdown} macro accepts a single mandatory parameter -% containing the filename of a markdown document and expands to the result of -% the conversion of the input markdown document to plain \TeX{}. Unlike the -% \mref{markdownInput} macro provided by the plain \TeX{} interface, this macro -% also accepts \Hologo{ConTeXt} interface options (see Section -% <#sec:context-options>) as its optional argument. These options will only -% influnce this markdown document. +% The \mref{startyaml} and \mref{stopyaml} macros are aliases for the macros +% \mref{yamlBegin} and \mref{yamlEnd} exposed by the plain \TeX{} interface. +% +% \end{markdown} +% \begin{macrocode} +\let\startyaml\relax +\let\stopyaml\relax +% \end{macrocode} +% \par +% \begin{markdown} +% +% You may prepend your own code to the \mref{startyaml} macro and append your +% own code to the \mref{stopyaml} macro to produce special effects before and +% after the \acro{YAML} document. +% +% The macros \mref{startyaml} and \mref{stopyaml} are subject to the same +% limitations as the \mref{markdownBegin} and \mref{markdownEnd} macros. +% +% The following example \Hologo{ConTeXt} code showcases the usage of the +% \mref{startyaml} and \mref{stopyaml} macros: +% +% ``` tex +% \usemodule[t][markdown] +% \starttext +% \startyaml +% title: _Hello_ **world** ... +% author: John Doe +% \stopyaml +% \stoptext +% ``````` +% +% The above code has the same effect as the below code: +% +% ``` tex +% \usemodule[t][markdown] +% \starttext +% \setupyaml[jekyllData, expectJekyllData, ensureJekyllData] +% \startyaml +% title: _Hello_ **world** ... +% author: John Doe +% \stopyaml +% \stoptext +% ``````` +% +%#### Typesetting Markdown and YAML from external documents +% +% The \mref{inputmarkdown} macro aliases the macro \mref{markdownInput} exposed +% by the plain \TeX{} interface. +% +% \end{markdown} +% \begin{macrocode} +\let\inputmarkdown\relax +% \end{macrocode} +% \par +% \begin{markdown} +% +% Furthermore, the \mref{inputmarkdown} macro also accepts \Hologo{ConTeXt} +% interface options (see Section <#sec:context-options>) as its optional +% argument. These options will only influence this markdown document. +% +% The following example \Hologo{ConTeXt} code showcases the usage of the +% \mref{inputmarkdown} macro: % -% The following example \LaTeX{} code showcases the usage of the -% \mref{markdownInput} macro: % ``` tex % \usemodule[t][markdown] % \starttext -% % ... % \inputmarkdown[smartEllipses]{hello.md} -% % ... +% \stoptext +% ``````` +% +% The above code has the same effect as the below code: +% +% ``` tex +% \usemodule[t][markdown] +% \starttext +% \setupmarkdown[smartEllipses] +% \inputmarkdown{hello.md} +% \stoptext +% ``````` +% +% The \mref{inputyaml} macro aliases the macro \mref{yamlInput} exposed by the +% plain \TeX{} interface. +% +% \end{markdown} +% \begin{macrocode} +\let\inputyaml\relax +% \end{macrocode} +% \par +% \begin{markdown} +% +% Furthermore, the \mref{inputyaml} macro also accepts \Hologo{ConTeXt} +% interface options (see Section <#sec:context-options>) as its optional +% argument. These options will only influence this \acro{YAML} document. +% +% The following example \Hologo{ConTeXt} code showcases the usage of the +% \mref{inputyaml} macro: +% +% ``` tex +% \usemodule[t][markdown] +% \starttext +% \inputyaml[smartEllipses]{hello.yml} +% \stoptext +% ``````` +% +% The above code has the same effect as the below code: +% +% ``` tex +% \usemodule[t][markdown] +% \starttext +% \setupyaml[smartEllipses] +% \inputyaml{hello.yml} % \stoptext % ``````` % @@ -22158,7 +23284,17 @@ following text: \@@_setup:n { #1 } } -\ExplSyntaxOff +% \end{macrocode} +% \begin{markdown} +% +% The command \mdef{setupyaml} is also available as an alias for +% the command \mref{setupmarkdown}. +% +% \end{markdown} +% \begin{macrocode} +\cs_gset_eq:NN + \setupyaml + \setupmarkdown % \end{macrocode} % \begin{markdown} % @@ -22169,7 +23305,6 @@ following text: % % \end{markdown} % \begin{macrocode} -\ExplSyntaxOn \cs_new:Nn \@@_caseless:N { \regex_replace_all:nnN @@ -22249,14 +23384,14 @@ Built-in \Hologo{ConTeXt} themes provided with the Markdown package include: % \end{markdown} % \iffalse %</manual-options> -%<*themes-witiko-markdown-defaults-context> +%<*themes-witiko-markdown-defaults-ctx> % \fi % \begin{macrocode} \startmodule[markdownthemewitiko_markdown_defaults] \unprotect % \end{macrocode} % \iffalse -%</themes-witiko-markdown-defaults-context> +%</themes-witiko-markdown-defaults-ctx> %<*manual-options> % \fi % \begin{markdown} @@ -22317,9 +23452,17 @@ local P, R, S, V, C, Cg, Cb, Cmt, Cc, Ct, B, Cs, Cp, any = % `lunamark/util.lua` file in the Lunamark Lua module. % % \end{markdown} +% \iffalse +%</lua> +%<*lua,lua-loader> +% \fi % \begin{macrocode} local util = {} % \end{macrocode} +% \iffalse +%</lua,lua-loader> +%<*lua> +% \fi % \par % \begin{markdown} % @@ -22334,13 +23477,17 @@ function util.err(msg, exit_code) os.exit(exit_code or 1) end % \end{macrocode} +% \iffalse +%</lua> +%<*lua,lua-loader> +% \fi % \par % \begin{markdown} % -% The \luamdef{util.cache} method computes the digest of `string` and -% `salt`, adds the `suffix` and looks into the directory `dir`, whether a -% file with such a name exists. If it does not, it gets created with -% `transform(string)` as its content. The filename is then returned. +% The \luamdef{util.cache} method used `dir`, `string`, `salt`, and `suffix` +% to determine a pathname. If a file with such a pathname does not exists, +% it gets created with `transform(string)` as its content. Regardless, the +% pathname is then returned. % % \end{markdown} % \begin{macrocode} @@ -22348,7 +23495,7 @@ function util.cache(dir, string, salt, transform, suffix) local digest = md5.sumhexa(string .. (salt or "")) local name = util.pathname(dir, digest .. suffix) local file = io.open(name, "r") - if file == nil then -- If no cache entry exists, then create a new one. + if file == nil then -- If no cache entry exists, create a new one. file = assert(io.open(name, "w"), [[Could not open file "]] .. name .. [[" for writing]]) local result = string @@ -22361,6 +23508,10 @@ function util.cache(dir, string, salt, transform, suffix) return name end % \end{macrocode} +% \iffalse +%</lua,lua-loader> +%<*lua> +% \fi % \par % \begin{markdown} % @@ -22559,7 +23710,7 @@ end % Given a table `char_escapes` mapping escapable characters to escaped % strings and optionally a table `string_escapes` mapping escapable strings % to escaped strings, the \luamdef{util.escaper} method returns an escaper -% function that escapes all occurances of escapable strings and characters (in +% function that escapes all occurrences of escapable strings and characters (in % this order). % % The method uses \pkg{LPeg}, which is faster than the Lua `string.gsub` @@ -22588,7 +23739,7 @@ function util.escaper(char_escapes, string_escapes) % \begin{markdown} % If `string_escapes` is provided, turn `escapable` into the % $$\sum^^B{(`k`, `v`)\in`string_escapes`}`P(k) / v` + `escapable`$$ -% capture that replaces any occurance of the string `k` with the string +% capture that replaces any occurrence of the string `k` with the string % `v` for each $(`k`, `v`)\in`string_escapes`$. Note that the pattern % summation is not commutative and its operands are inspected in the % summation order during the matching. As a corrolary, the strings always @@ -22619,6 +23770,10 @@ function util.escaper(char_escapes, string_escapes) end end % \end{macrocode} +% \iffalse +%</lua> +%<*lua,lua-loader> +% \fi % \par % \begin{markdown} % @@ -22638,6 +23793,56 @@ end % \par % \begin{markdown} % +% The \luamdef{util.salt} method produces cryptographic salt out of a table of +% options `options`. +% +% \end{markdown} +% \begin{macrocode} +function util.salt(options) + local opt_string = {} + for k, _ in pairs(defaultOptions) do + local v = options[k] + if type(v) == "table" then + for _, i in ipairs(v) do + opt_string[#opt_string+1] = k .. "=" .. tostring(i) + end +% \end{macrocode} +% \begin{markdown} +% +% The \Opt{cacheDir} option is disregarded. +% +% \end{markdown} +% \begin{macrocode} + elseif k ~= "cacheDir" then + opt_string[#opt_string+1] = k .. "=" .. tostring(v) + end + end + table.sort(opt_string) + local salt = table.concat(opt_string, ",") + .. "," .. metadata.version + return salt +end +% \end{macrocode} +% \par +% \begin{markdown} +% +% The \luamdef{util.warning} method produces a warning `s` that is unrelated to +% any specific markdown text being processed. For warnings that are specific to +% a markdown text, use \luamref{writer->warning} function. +% +% \end{markdown} +% \begin{macrocode} +function util.warning(s) + io.stderr:write("Warning: " .. s .. "\n") +end +% \end{macrocode} +% \iffalse +%</lua,lua-loader> +%<*lua> +% \fi +% \par +% \begin{markdown} +% %### HTML Entities % This section documents the \acro{HTML} entities recognized by the % markdown reader. These functions are encapsulated in the `entities` @@ -24954,15 +26159,6 @@ function M.writer.new(options) % \par % \begin{markdown} % -% Define \luamdef{writer->suffix} as the suffix of the produced cache files. -% -% \end{markdown} -% \begin{macrocode} - self.suffix = ".tex" -% \end{macrocode} -% \par -% \begin{markdown} -% % Define \luamdef{writer->space} as the output format of a space character. % % \end{markdown} @@ -25007,19 +26203,6 @@ function M.writer.new(options) % \par % \begin{markdown} % -% Define \luamdef{writer->pack} as a function that will take the filename -% `name` of the output file prepared by the reader and transform it to the -% output format. -% -% \end{markdown} -% \begin{macrocode} - function self.pack(name) - return [[\input{]] .. name .. [[}\relax]] - end -% \end{macrocode} -% \par -% \begin{markdown} -% % Define \luamdef{writer->interblocksep} as the output format of a block % element separator. % @@ -25123,13 +26306,17 @@ function M.writer.new(options) ["{"] = "\\markdownRendererLeftBrace{}", ["}"] = "\\markdownRendererRightBrace{}", ["\\"] = "\\markdownRendererBackslash{}", + ["\r"] = " ", + ["\n"] = " ", } self.escaped_minimal_strings = { - ["^^"] = "\\markdownRendererCircumflex\\markdownRendererCircumflex ", + ["^^"] = "\\markdownRendererCircumflex" + .. "\\markdownRendererCircumflex ", ["☒"] = "\\markdownRendererTickedBox{}", ["⌛"] = "\\markdownRendererHalfTickedBox{}", ["☐"] = "\\markdownRendererUntickedBox{}", - [entities.hex_entity('FFFD')] = "\\markdownRendererReplacementCharacter{}", + [entities.hex_entity('FFFD')] + = "\\markdownRendererReplacementCharacter{}", } % \end{macrocode} % \par @@ -25164,7 +26351,8 @@ function M.writer.new(options) ["^"] = "\\markdownRendererCircumflex{}", ["~"] = "\\markdownRendererTilde{}", ["|"] = "\\markdownRendererPipe{}", - [entities.hex_entity('0000')] = "\\markdownRendererReplacementCharacter{}", + [entities.hex_entity('0000')] + = "\\markdownRendererReplacementCharacter{}", } % \end{macrocode} % \par @@ -25172,9 +26360,9 @@ function M.writer.new(options) % % Use the \luamref{writer->escaped_chars}, \luamref{writer->escaped_uri_chars}, % and \luamref{writer->escaped_minimal_strings} tables to create the -% \luamdef{writer->escape_typographic_text}, -% \luamdef{writer->escape_programmatic_text}, and -% \luamdef{writer->escape_minimal} escaper functions. +% \luamdef{escape_typographic_text}, +% \luamdef{escape_programmatic_text}, and +% \luamdef{escape_minimal} local escaper functions. % % \end{markdown} % \begin{macrocode} @@ -25226,6 +26414,34 @@ function M.writer.new(options) % \par % \begin{markdown} % +% Define \luamdef{writer->warning} as a function that will transform an input +% warning `t` with optional more warning text `m` to the output format. +% +% \end{markdown} +% \begin{macrocode} + function self.warning(t, m) + return {"\\markdownRendererWarning{", self.escape(t), "}{", + escape_minimal(t), "}{", self.escape(m or ""), "}{", + escape_minimal(m or ""), "}"} + end +% \end{macrocode} +% \par +% \begin{markdown} +% +% Define \luamdef{writer->error} as a function that will transform an input +% error text `t` with optional more error text `m` to the output format. +% +% \end{markdown} +% \begin{macrocode} + function self.error(t, m) + return {"\\markdownRendererError{", self.escape(t), "}{", + escape_minimal(t), "}{", self.escape(m or ""), "}{", + escape_minimal(m or ""), "}"} + end +% \end{macrocode} +% \par +% \begin{markdown} +% % Define \luamdef{writer->code} as a function that will transform an input % inline code span `s` with optional attributes `attributes` to the output % format. @@ -25425,7 +26641,8 @@ function M.writer.new(options) % \begin{macrocode} function self.inline_html_tag(contents) if self.flatten_inlines then return contents end - return {"\\markdownRendererInlineHtmlTag{",self.string(contents),"}"} + return {"\\markdownRendererInlineHtmlTag{", + self.string(contents),"}"} end % \end{macrocode} % \par @@ -25525,7 +26742,23 @@ function M.writer.new(options) % \end{markdown} % \begin{macrocode} function self.document(d) - local buf = {"\\markdownRendererDocumentBegin\n", d} + local buf = {"\\markdownRendererDocumentBegin\n"} + + -- warn against the `hybrid` option + if options.hybrid then + local text = "The `hybrid` option has been soft-deprecated." + local more = "Consider using one of the following better options " + .. "for mixing TeX and markdown: `contentBlocks`, " + .. "`rawAttribute`, `texComments`, `texMathDollars`, " + .. "`texMathSingleBackslash`, and " + .. "`texMathDoubleBackslash`. " + .. "For more information, see the user manual at " + .. "<https://witiko.github.io/markdown/>." + table.insert(buf, self.warning(text, more)) + end + + -- insert the text of the document + table.insert(buf, d) -- pop all attributes table.insert(buf, self.pop_attributes()) @@ -25716,8 +26949,10 @@ function M.writer.new(options) % \begin{macrocode} function self.push_attributes(attribute_type, attributes, start_output, end_output) - local attribute_type_level = self.attribute_type_levels[attribute_type] - self.attribute_type_levels[attribute_type] = attribute_type_level + 1 + local attribute_type_level + = self.attribute_type_levels[attribute_type] + self.attribute_type_levels[attribute_type] + = attribute_type_level + 1 -- index attributes in a hash table for easy lookup attributes = attributes or {} @@ -25772,8 +27007,10 @@ function M.writer.new(options) local attributes, _, end_output current_attribute_type, attributes, _, end_output = table.unpack( self.active_attributes[#self.active_attributes]) - local attribute_type_level = self.attribute_type_levels[current_attribute_type] - self.attribute_type_levels[current_attribute_type] = attribute_type_level - 1 + local attribute_type_level + = self.attribute_type_levels[current_attribute_type] + self.attribute_type_levels[current_attribute_type] + = attribute_type_level - 1 if self.is_writing and end_output ~= nil then table.insert(buf, end_output) end @@ -25807,7 +27044,8 @@ function M.writer.new(options) local prev_space = false local letter_found = false local normalized_s = s - if not options.unicodeNormalization or options.unicodeNormalizationForm ~= "nfc" then + if not options.unicodeNormalization + or options.unicodeNormalizationForm ~= "nfc" then normalized_s = uni_algos.normalize.NFC(normalized_s) end @@ -25824,7 +27062,8 @@ function M.writer.new(options) end end - -- Remove all non-alphanumeric characters, except underscores, hyphens, and periods. + -- Remove all non-alphanumeric characters, except underscores, + -- hyphens, and periods. if not unicode.utf8.match(char, "[%w_%-%.%s]") then goto continue end @@ -25852,7 +27091,8 @@ function M.writer.new(options) table.remove(buffer) end - local identifier = #buffer == 0 and "section" or table.concat(buffer, "") + local identifier = #buffer == 0 and "section" + or table.concat(buffer, "") return identifier end % \end{macrocode} @@ -25867,7 +27107,8 @@ function M.writer.new(options) local prev_space = false local letter_found = false local normalized_s = s - if not options.unicodeNormalization or options.unicodeNormalizationForm ~= "nfc" then + if not options.unicodeNormalization + or options.unicodeNormalizationForm ~= "nfc" then normalized_s = uni_algos.normalize.NFC(normalized_s) end @@ -25884,7 +27125,8 @@ function M.writer.new(options) end end - -- Remove all non-alphanumeric characters, except underscores and hyphens. + -- Remove all non-alphanumeric characters, except underscores + -- and hyphens. if not unicode.utf8.match(char, "[%w_%-%s]") then prev_space = false goto continue @@ -25913,7 +27155,8 @@ function M.writer.new(options) table.remove(buffer) end - local identifier = #buffer == 0 and "section" or table.concat(buffer, "") + local identifier = #buffer == 0 and "section" + or table.concat(buffer, "") return identifier end % \end{macrocode} @@ -25952,9 +27195,11 @@ function M.writer.new(options) table.insert(auto_identifiers, create_auto_identifier(flat_text)) end if self.options.gfmAutoIdentifiers then - table.insert(auto_identifiers, create_gfm_auto_identifier(flat_text)) + table.insert(auto_identifiers, + create_gfm_auto_identifier(flat_text)) end - local normalized_attributes = normalize_attributes(attributes, auto_identifiers) + local normalized_attributes = normalize_attributes(attributes, + auto_identifiers) -- push attributes for the new section local start_output = {} @@ -25970,7 +27215,8 @@ function M.writer.new(options) -- render the heading and its attributes if self.is_writing and #normalized_attributes > 0 then - table.insert(buf, "\\markdownRendererHeaderAttributeContextBegin\n") + table.insert(buf, + "\\markdownRendererHeaderAttributeContextBegin\n") table.insert(buf, self.attributes(normalized_attributes, false)) end @@ -26128,8 +27374,13 @@ parsers.fail = P(false) parsers.internal_punctuation = S(":;,.?") parsers.ascii_punctuation = S("!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~") + % \end{macrocode} % \par +% \iffalse +%</lua> +%<*lua-unicode-data-generator> +% \fi % \begin{markdown} % %### Unicode punctuation @@ -26141,36 +27392,143 @@ parsers.ascii_punctuation = S("!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~") % [unicode-punctuation]: https://spec.commonmark.org/0.31.2/#unicode-punctuation-character % (CommonMark Spec, Version 0.31.2 (2024-01-28)) % +% All code from this section will be executed during the compilation of +% the Markdown package and the standard output will be stored in a file +% named `markdown-unicode-data.lua` with the precompiled parser of Unicode +% punctuation. +% % \end{markdown} % \begin{macrocode} -parsers.punctuation = {} -(function() - local pathname = kpse.lookup("UnicodeData.txt") +;(function() + local pathname = assert(kpse.find_file("UnicodeData.txt"), + [[Could not locate file "UnicodeData.txt"]]) local file = assert(io.open(pathname, "r"), [[Could not open file "UnicodeData.txt"]]) +% \end{macrocode} +% \par +% \begin{markdown} +% +% In order to minimize the size and speed of the parser, we will first +% construct a prefix tree of UTF-8 encodings for all codepoints of a +% given code length. +% +% \end{markdown} +% \begin{macrocode} + local prefix_trees = {} for line in file:lines() do local codepoint, major_category = line:match("^(%x+);[^;]*;(%a)") if major_category == "P" or major_category == "S" then local code = unicode.utf8.char(tonumber(codepoint, 16)) - if parsers.punctuation[#code] == nil then - parsers.punctuation[#code] = parsers.fail + if prefix_trees[#code] == nil then + prefix_trees[#code] = {} end - local code_parser = parsers.succeed + local node = prefix_trees[#code] for i = 1, #code do local byte = code:sub(i, i) - local byte_parser = S(byte) - code_parser = code_parser - * byte_parser + if i < #code then + if node[byte] == nil then + node[byte] = {} + end + node = node[byte] + else + table.insert(node, byte) + end end - parsers.punctuation[#code] = parsers.punctuation[#code] - + code_parser end end assert(file:close()) + +% \end{macrocode} +% \par +% \begin{markdown} +% +% Next, we will construct a parser out of the prefix tree. +% +% \end{markdown} +% \begin{macrocode} + local function depth_first_search(node, path, visit, leave) + visit(node, path) + for label, child in pairs(node) do + if type(child) == "table" then + depth_first_search(child, path .. label, visit, leave) + else + visit(child, path) + end + end + leave(node, path) + end + + print("M.punctuation = {}") + print("local S = lpeg.S") + print("-- luacheck: push no max line length") + for length, prefix_tree in pairs(prefix_trees) do + local subparsers = {} + depth_first_search(prefix_tree, "", function(node, path) + if type(node) == "string" then + local suffix + if node == "]" then + suffix = "S('" .. node .. "')" + else + suffix = "S([[" .. node .. "]])" + end + if subparsers[path] ~= nil then + subparsers[path] = subparsers[path] .. " + " .. suffix + else + subparsers[path] = suffix + end + end + end, function(_, path) + if #path > 0 then + local byte = path:sub(#path, #path) + local parent_path = path:sub(1, #path-1) + if subparsers[path] ~= nil then + local suffix + if byte == "]" then + suffix = "S('" .. byte .. "')" + else + suffix = "S([[" .. byte .. "]])" + end + suffix = suffix .. " * (" .. subparsers[path] .. ")" + if subparsers[parent_path] ~= nil then + subparsers[parent_path] = subparsers[parent_path] + .. " + " .. suffix + else + subparsers[parent_path] = suffix + end + end + else + print("M.punctuation[" .. length .. "] = " .. subparsers[path]) + end + end) + end + print("-- luacheck: pop") end)() +print("return M") +% \end{macrocode} +% \par +% \iffalse +%</lua-unicode-data-generator> +%<*lua> +% \fi +% \begin{markdown} +% +% Back in the Markdown package, we will load the precompiled parser of +% Unicode punctuation. +% +% \end{markdown} +% \begin{macrocode} +local unicode_data = require("markdown-unicode-data") +if metadata.version ~= unicode_data.metadata.version then + util.warning( + "markdown.lua " .. metadata.version .. " used with " .. + "markdown-unicode-data.lua " .. unicode_data.metadata.version .. "." + ) +end +parsers.punctuation = unicode_data.punctuation parsers.escapable = parsers.ascii_punctuation -parsers.anyescaped = parsers.backslash / "" * parsers.escapable +parsers.anyescaped = parsers.backslash / "" + * parsers.escapable + parsers.any parsers.spacechar = S("\t ") @@ -26189,14 +27547,18 @@ parsers.linechar = P(1 - parsers.newline) parsers.blankline = parsers.optionalspace * parsers.newline / "\n" parsers.blanklines = parsers.blankline^0 -parsers.skipblanklines = (parsers.optionalspace * parsers.newline)^0 +parsers.skipblanklines = ( parsers.optionalspace + * parsers.newline)^0 parsers.indentedline = parsers.indent /"" - * C(parsers.linechar^1 * parsers.newline^-1) + * C( parsers.linechar^1 + * parsers.newline^-1) parsers.optionallyindentedline = parsers.indent^-1 /"" - * C(parsers.linechar^1 * parsers.newline^-1) + * C( parsers.linechar^1 + * parsers.newline^-1) parsers.sp = parsers.spacing^0 parsers.spnl = parsers.optionalspace - * (parsers.newline * parsers.optionalspace)^-1 + * ( parsers.newline + * parsers.optionalspace)^-1 parsers.line = parsers.linechar^0 * parsers.newline parsers.nonemptyline = parsers.line - parsers.blankline % \end{macrocode} @@ -26279,7 +27641,8 @@ local function update_indent_table(indent_table, new_indent, add) if add then indent_table.indents[#indent_table.indents + 1] = new_indent else - if indent_table.indents[#indent_table.indents].name == new_indent.name then + if indent_table.indents[#indent_table.indents].name + == new_indent.name then indent_table.indents[#indent_table.indents] = nil end end @@ -26295,10 +27658,12 @@ end % \end{markdown} % \begin{macrocode} local function remove_indent(name) - local function remove_indent_level(s, i, indent_table) -- luacheck: ignore s i - indent_table = update_indent_table(indent_table, {name=name}, false) - return true, indent_table - end + local remove_indent_level = + function(s, i, indent_table) -- luacheck: ignore s i + indent_table = update_indent_table(indent_table, {name=name}, + false) + return true, indent_table + end return Cg(Cmt(Cb("indent_info"), remove_indent_level), "indent_info") end @@ -26314,7 +27679,8 @@ end % % \end{markdown} % \begin{macrocode} -local function process_starter_spacing(indent, spacing, minimum, left_strip_length) +local function process_starter_spacing(indent, spacing, + minimum, left_strip_length) left_strip_length = left_strip_length or 0 local count = 0 @@ -26351,14 +27717,16 @@ local function process_starter_spacing(indent, spacing, minimum, left_strip_leng minimum_remainder = minimum_remainder .. character elseif (count >= minimum) then minimum_found = true - minimum_remainder = minimum_remainder .. string.rep(" ", count - minimum) + minimum_remainder = minimum_remainder + .. string.rep(" ", count - minimum) end if (code_started) then code_start = code_start .. character elseif (count >= minimum + 4) then code_started = true - code_start = code_start .. string.rep(" ", count - (minimum + 4)) + code_start = code_start + .. string.rep(" ", count - (minimum + 4)) end end end @@ -26425,7 +27793,8 @@ end % % \end{markdown} % \begin{macrocode} -local function process_starter_indent(_, _, indent_table, starter, is_blank, indent_type, breakable) +local function process_starter_indent(_, _, indent_table, starter, + is_blank, indent_type, breakable) local last_trail = starter[1] local delimiter = starter[2] local raw_new_trail = starter[3] @@ -26453,11 +27822,13 @@ local function process_starter_indent(_, _, indent_table, starter, is_blank, ind local last_trail_length = #last_trail local delimiter_length = total_delimiter_length(delimiter) - local total_indent_level = preceding_indentation + last_trail_length + delimiter_length + local total_indent_level = preceding_indentation + last_trail_length + + delimiter_length local sp = {} if not is_blank then - sp = process_starter_spacing(total_indent_level, raw_new_trail, 0, 1) + sp = process_starter_spacing(total_indent_level, raw_new_trail, + 0, 1) end local del_trail_length = sp.left_total_stripped @@ -26467,12 +27838,17 @@ local function process_starter_indent(_, _, indent_table, starter, is_blank, ind del_trail_length = del_trail_length + #sp.remainder end - local indent_length = last_trail_length + delimiter_length + del_trail_length + local indent_length = last_trail_length + delimiter_length + + del_trail_length local new_indent_info = {name=indent_type, length=indent_length} - indent_table = update_indent_table(indent_table, new_indent_info, true) - indent_table = add_trail(indent_table, {is_code=sp.is_code, remainder=sp.remainder, total_length=sp.total_length, - full_remainder=sp.full_remainder}) + indent_table = update_indent_table(indent_table, new_indent_info, + true) + indent_table = add_trail(indent_table, + {is_code=sp.is_code, + remainder=sp.remainder, + total_length=sp.total_length, + full_remainder=sp.full_remainder}) return true, indent_table end @@ -26490,7 +27866,8 @@ local function decode_pattern(name) delimeter = parsers.more end - return C(parsers.optionalspace) * C(delimeter) * C(parsers.optionalspace) * Cp() + return C(parsers.optionalspace) * C(delimeter) + * C(parsers.optionalspace) * Cp() end % \end{macrocode} @@ -26531,7 +27908,8 @@ end % % \end{markdown} % \begin{macrocode} -local function traverse_indent(s, i, indent_table, is_optional, is_blank, current_line_indents) +local function traverse_indent(s, i, indent_table, is_optional, + is_blank, current_line_indents) local new_index = i local preceding_indentation = 0 @@ -26550,12 +27928,17 @@ local function traverse_indent(s, i, indent_table, is_optional, is_blank, curren -- match decoded pattern local new_indent_info = lpeg.match(Ct(pattern), s, new_index) if new_indent_info == nil then - local blankline_end = lpeg.match(Ct(parsers.blankline * Cg(Cp(), "pos")), s, new_index) - if is_optional or not indent_table.ignore_blockquote_blank or not blankline_end then - return is_optional, new_index, current_trail, current_line_indents + local blankline_end = lpeg.match( + Ct(parsers.blankline * Cg(Cp(), "pos")), s, new_index) + if is_optional or not indent_table.ignore_blockquote_blank + or not blankline_end then + return is_optional, new_index, current_trail, + current_line_indents end - return traverse_indent(s, tonumber(blankline_end.pos), indent_table, is_optional, is_blank, current_line_indents) + return traverse_indent(s, tonumber(blankline_end.pos), + indent_table, is_optional, is_blank, + current_line_indents) end local raw_last_trail = new_indent_info[1] @@ -26568,13 +27951,15 @@ local function traverse_indent(s, i, indent_table, is_optional, is_blank, curren -- check previous trail if not space_only and next(current_trail) == nil then local sp = process_starter_spacing(0, raw_last_trail, 0, 0) - current_trail = {is_code=sp.is_code, remainder=sp.remainder, total_length=sp.total_length, + current_trail = {is_code=sp.is_code, remainder=sp.remainder, + total_length=sp.total_length, full_remainder=sp.full_remainder} end if next(current_trail) ~= nil then if not space_only and current_trail.is_code then - return is_optional, new_index, current_trail, current_line_indents + return is_optional, new_index, current_trail, + current_line_indents end if current_trail.internal_remainder ~= nil then raw_last_trail = current_trail.internal_remainder @@ -26589,7 +27974,8 @@ local function traverse_indent(s, i, indent_table, is_optional, is_blank, curren raw_last_trail_length = #raw_last_trail end - local total_indent_level = preceding_indentation + raw_last_trail_length + delimiter_length + local total_indent_level = preceding_indentation + + raw_last_trail_length + delimiter_length local spacing_to_process local minimum = 0 @@ -26603,13 +27989,17 @@ local function traverse_indent(s, i, indent_table, is_optional, is_blank, curren minimum = value.length end - local sp = process_starter_spacing(total_indent_level, spacing_to_process, minimum, left_strip_length) + local sp = process_starter_spacing(total_indent_level, + spacing_to_process, minimum, + left_strip_length) if space_only and not sp.is_minimum then - return is_optional or (is_blank and blank_starter <= index), new_index, current_trail, current_line_indents + return is_optional or (is_blank and blank_starter <= index), + new_index, current_trail, current_line_indents end - local indent_length = raw_last_trail_length + delimiter_length + sp.left_total_stripped + local indent_length = raw_last_trail_length + delimiter_length + + sp.left_total_stripped -- update info for the next pattern if not space_only then @@ -26618,8 +28008,10 @@ local function traverse_indent(s, i, indent_table, is_optional, is_blank, curren preceding_indentation = preceding_indentation + value.length end - current_trail = {is_code=sp.is_code, remainder=sp.remainder, internal_remainder=sp.minimum_remainder, - total_length=sp.total_length, full_remainder=sp.full_remainder} + current_trail = {is_code=sp.is_code, remainder=sp.remainder, + internal_remainder=sp.minimum_remainder, + total_length=sp.total_length, + full_remainder=sp.full_remainder} current_line_indents[#current_line_indents + 1] = new_indent_info new_index = next_index @@ -26647,34 +28039,36 @@ end % % \end{markdown} % \begin{macrocode} -local function check_trail_joined(s, i, indent_table, spacing, expect_code, omit_remainder) -- luacheck: ignore s i - local is_code - local remainder +local check_trail_joined = + function(s, i, indent_table, -- luacheck: ignore s i + spacing, expect_code, omit_remainder) + local is_code + local remainder - if has_trail(indent_table) then - local trail = indent_table.trail - is_code = trail.is_code - if is_code then - remainder = trail.remainder - else - remainder = trail.full_remainder - end - else - local sp = process_starter_spacing(0, spacing, 0, 0) - is_code = sp.is_code - if is_code then - remainder = sp.remainder + if has_trail(indent_table) then + local trail = indent_table.trail + is_code = trail.is_code + if is_code then + remainder = trail.remainder + else + remainder = trail.full_remainder + end else - remainder = sp.full_remainder + local sp = process_starter_spacing(0, spacing, 0, 0) + is_code = sp.is_code + if is_code then + remainder = sp.remainder + else + remainder = sp.full_remainder + end end - end - local result = check_trail(expect_code, is_code) - if omit_remainder then - return result + local result = check_trail(expect_code, is_code) + if omit_remainder then + return result + end + return result, remainder end - return result, remainder -end % \end{macrocode} % \begin{markdown} @@ -26683,22 +28077,24 @@ end % % \end{markdown} % \begin{macrocode} -local function check_trail_length(s, i, indent_table, spacing, min, max) -- luacheck: ignore s i - local trail +local check_trail_length = + function(s, i, indent_table, -- luacheck: ignore s i + spacing, min, max) + local trail - if has_trail(indent_table) then - trail = indent_table.trail - else - trail = process_starter_spacing(0, spacing, 0, 0) - end + if has_trail(indent_table) then + trail = indent_table.trail + else + trail = process_starter_spacing(0, spacing, 0, 0) + end - local total_length = trail.total_length - if total_length == nil then - return false - end + local total_length = trail.total_length + if total_length == nil then + return false + end - return min <= total_length and total_length <= max -end + return min <= total_length and total_length <= max + end % \end{macrocode} % \begin{markdown} @@ -26708,7 +28104,8 @@ end % % \end{markdown} % \begin{macrocode} -local function check_continuation_indentation(s, i, indent_table, is_optional, is_blank) +local function check_continuation_indentation(s, i, indent_table, + is_optional, is_blank) if not has_indents(indent_table) then return true end @@ -26761,27 +28158,29 @@ end % % \end{markdown} % \begin{macrocode} -local function check_trail_type(s, i, trail, spacing, trail_type) -- luacheck: ignore s i - if trail == nil then - trail = process_starter_spacing(0, spacing, 0, 0) - end +local check_trail_type = + function(s, i, -- luacheck: ignore s i + trail, spacing, trail_type) + if trail == nil then + trail = process_starter_spacing(0, spacing, 0, 0) + end - if trail_type == "non-code" then - return check_trail(false, trail.is_code) - end - if trail_type == "code" then - return check_trail(true, trail.is_code) - end - if trail_type == "full-code" then - if (trail.is_code) then - return i, trail.remainder + if trail_type == "non-code" then + return check_trail(false, trail.is_code) + end + if trail_type == "code" then + return check_trail(true, trail.is_code) + end + if trail_type == "full-code" then + if (trail.is_code) then + return i, trail.remainder + end + return i, "" + end + if trail_type == "full-any" then + return i, trail.internal_remainder end - return i, "" - end - if trail_type == "full-any" then - return i, trail.internal_remainder end -end % \end{macrocode} % \begin{markdown} @@ -26790,20 +28189,22 @@ end % % \end{markdown} % \begin{macrocode} -local function trail_freezing(s, i, indent_table, is_freezing) -- luacheck: ignore s i - if is_freezing then - if indent_table.is_trail_frozen then - indent_table.trail = indent_table.frozen_trail +local trail_freezing = + function(s, i, -- luacheck: ignore s i + indent_table, is_freezing) + if is_freezing then + if indent_table.is_trail_frozen then + indent_table.trail = indent_table.frozen_trail + else + indent_table.frozen_trail = indent_table.trail + indent_table.is_trail_frozen = true + end else - indent_table.frozen_trail = indent_table.trail - indent_table.is_trail_frozen = true + indent_table.frozen_trail = nil + indent_table.is_trail_frozen = false end - else - indent_table.frozen_trail = nil - indent_table.is_trail_frozen = false + return true, indent_table end - return true, indent_table -end % \end{macrocode} % \begin{markdown} @@ -26814,53 +28215,59 @@ end % % \end{markdown} % \begin{macrocode} -local function check_continuation_indentation_and_trail(s, i, indent_table, is_optional, is_blank, trail_type, - reset_rem, omit_remainder) - if not has_indents(indent_table) then - local spacing, new_index = lpeg.match(C(parsers.spacechar^0) * Cp(), s, i) - local result, remainder = check_trail_type(s, i, indent_table.trail, spacing, trail_type) - if remainder == nil then +local check_continuation_indentation_and_trail = + function (s, i, indent_table, is_optional, is_blank, trail_type, + reset_rem, omit_remainder) + if not has_indents(indent_table) then + local spacing, new_index = lpeg.match( C(parsers.spacechar^0) + * Cp(), s, i) + local result, remainder = check_trail_type(s, i, + indent_table.trail, spacing, trail_type) + if remainder == nil then + if result then + return new_index + end + return false + end if result then - return new_index + return new_index, remainder end return false end - if result then - return new_index, remainder - end - return false - end - local passes, new_index, current_trail = traverse_indent(s, i, indent_table, is_optional, is_blank) + local passes, new_index, current_trail = traverse_indent(s, i, + indent_table, is_optional, is_blank) + + if passes then + local spacing + if current_trail == nil then + local newer_spacing, newer_index = lpeg.match( + C(parsers.spacechar^0) * Cp(), s, i) + current_trail = process_starter_spacing(0, newer_spacing, 0, 0) + new_index = newer_index + spacing = newer_spacing + else + spacing = current_trail.remainder + end + local result, remainder = check_trail_type(s, new_index, + current_trail, spacing, trail_type) + if remainder == nil or omit_remainder then + if result then + return new_index + end + return false + end - if passes then - local spacing - if current_trail == nil then - local newer_spacing, newer_index = lpeg.match(C(parsers.spacechar^0) * Cp(), s, i) - current_trail = process_starter_spacing(0, newer_spacing, 0, 0) - new_index = newer_index - spacing = newer_spacing - else - spacing = current_trail.remainder - end - local result, remainder = check_trail_type(s, new_index, current_trail, spacing, trail_type) - if remainder == nil or omit_remainder then + if is_blank and reset_rem then + remainder = remove_remainder_if_blank(indent_table, remainder) + end if result then - return new_index + return new_index, remainder end return false end - - if is_blank and reset_rem then - remainder = remove_remainder_if_blank(indent_table, remainder) - end - if result then - return new_index, remainder - end return false end - return false -end % \end{macrocode} % \begin{markdown} @@ -26869,14 +28276,20 @@ end % % \end{markdown} % \begin{macrocode} -parsers.check_trail = Cmt(Cb("indent_info") * C(parsers.spacechar^0) * Cc(false), check_trail_joined) +parsers.check_trail = Cmt( Cb("indent_info") * C(parsers.spacechar^0) + * Cc(false), check_trail_joined) -parsers.check_trail_no_rem = Cmt(Cb("indent_info") * C(parsers.spacechar^0) * Cc(false) * Cc(true), check_trail_joined) +parsers.check_trail_no_rem = Cmt( Cb("indent_info") + * C(parsers.spacechar^0) * Cc(false) + * Cc(true), check_trail_joined) -parsers.check_code_trail = Cmt(Cb("indent_info") * C(parsers.spacechar^0) * Cc(true), check_trail_joined) +parsers.check_code_trail = Cmt( Cb("indent_info") + * C(parsers.spacechar^0) + * Cc(true), check_trail_joined) parsers.check_trail_length_range = function(min, max) - return Cmt(Cb("indent_info") * C(parsers.spacechar^0) * Cc(min) * Cc(max), check_trail_length) + return Cmt( Cb("indent_info") * C(parsers.spacechar^0) * Cc(min) + * Cc(max), check_trail_length) end parsers.check_trail_length = function(n) @@ -26891,9 +28304,11 @@ end % % \end{markdown} % \begin{macrocode} -parsers.freeze_trail = Cg(Cmt(Cb("indent_info") * Cc(true), trail_freezing), "indent_info") +parsers.freeze_trail = Cg( Cmt(Cb("indent_info") + * Cc(true), trail_freezing), "indent_info") -parsers.unfreeze_trail = Cg(Cmt(Cb("indent_info") * Cc(false), trail_freezing), "indent_info") +parsers.unfreeze_trail = Cg(Cmt(Cb("indent_info") * Cc(false), + trail_freezing), "indent_info") % \end{macrocode} % \begin{markdown} @@ -26902,11 +28317,16 @@ parsers.unfreeze_trail = Cg(Cmt(Cb("indent_info") * Cc(false), trail_freezing), % % \end{markdown} % \begin{macrocode} -parsers.check_minimal_indent = Cmt(Cb("indent_info") * Cc(false), check_continuation_indentation) +parsers.check_minimal_indent = Cmt(Cb("indent_info") * Cc(false), + check_continuation_indentation) -parsers.check_optional_indent = Cmt(Cb("indent_info") * Cc(true), check_continuation_indentation) +parsers.check_optional_indent = Cmt(Cb("indent_info") * Cc(true), + check_continuation_indentation) -parsers.check_minimal_blank_indent = Cmt(Cb("indent_info") * Cc(false) * Cc(true), check_continuation_indentation) +parsers.check_minimal_blank_indent + = Cmt( Cb("indent_info") * Cc(false) + * Cc(true) + , check_continuation_indentation) % \end{macrocode} % \begin{markdown} @@ -26917,37 +28337,45 @@ parsers.check_minimal_blank_indent = Cmt(Cb("indent_info") * Cc(false) * Cc(true % \end{markdown} % \begin{macrocode} -parsers.check_minimal_indent_and_trail = Cmt( Cb("indent_info") - * Cc(false) * Cc(false) * Cc("non-code") * Cc(true), - check_continuation_indentation_and_trail) +parsers.check_minimal_indent_and_trail = + Cmt( Cb("indent_info") + * Cc(false) * Cc(false) * Cc("non-code") * Cc(true) + , check_continuation_indentation_and_trail) -parsers.check_minimal_indent_and_code_trail = Cmt( Cb("indent_info") - * Cc(false) * Cc(false) * Cc("code") * Cc(false), - check_continuation_indentation_and_trail) +parsers.check_minimal_indent_and_code_trail = + Cmt( Cb("indent_info") + * Cc(false) * Cc(false) * Cc("code") * Cc(false) + , check_continuation_indentation_and_trail) -parsers.check_minimal_blank_indent_and_full_code_trail = Cmt( Cb("indent_info") - * Cc(false) * Cc(true) * Cc("full-code") * Cc(true), - check_continuation_indentation_and_trail) +parsers.check_minimal_blank_indent_and_full_code_trail = + Cmt( Cb("indent_info") + * Cc(false) * Cc(true) * Cc("full-code") * Cc(true) + , check_continuation_indentation_and_trail) -parsers.check_minimal_indent_and_any_trail = Cmt( Cb("indent_info") - * Cc(false) * Cc(false) * Cc("full-any") * Cc(true) * Cc(false), - check_continuation_indentation_and_trail) +parsers.check_minimal_indent_and_any_trail = + Cmt( Cb("indent_info") + * Cc(false) * Cc(false) * Cc("full-any") * Cc(true) * Cc(false) + , check_continuation_indentation_and_trail) -parsers.check_minimal_blank_indent_and_any_trail = Cmt( Cb("indent_info") - * Cc(false) * Cc(true) * Cc("full-any") * Cc(true) * Cc(false), - check_continuation_indentation_and_trail) +parsers.check_minimal_blank_indent_and_any_trail = + Cmt( Cb("indent_info") + * Cc(false) * Cc(true) * Cc("full-any") * Cc(true) * Cc(false) + , check_continuation_indentation_and_trail) -parsers.check_minimal_blank_indent_and_any_trail_no_rem = Cmt( Cb("indent_info") - * Cc(false) * Cc(true) * Cc("full-any") * Cc(true) * Cc(true), - check_continuation_indentation_and_trail) +parsers.check_minimal_blank_indent_and_any_trail_no_rem = + Cmt( Cb("indent_info") + * Cc(false) * Cc(true) * Cc("full-any") * Cc(true) * Cc(true) + , check_continuation_indentation_and_trail) -parsers.check_optional_indent_and_any_trail = Cmt( Cb("indent_info") - * Cc(true) * Cc(false) * Cc("full-any") * Cc(true) * Cc(false), - check_continuation_indentation_and_trail) +parsers.check_optional_indent_and_any_trail = + Cmt( Cb("indent_info") + * Cc(true) * Cc(false) * Cc("full-any") * Cc(true) * Cc(false) + , check_continuation_indentation_and_trail) -parsers.check_optional_blank_indent_and_any_trail = Cmt( Cb("indent_info") - * Cc(true) * Cc(true) * Cc("full-any") * Cc(true) * Cc(false), - check_continuation_indentation_and_trail) +parsers.check_optional_blank_indent_and_any_trail = + Cmt( Cb("indent_info") + * Cc(true) * Cc(true) * Cc("full-any") * Cc(true) * Cc(false) + , check_continuation_indentation_and_trail) % \end{macrocode} % \begin{markdown} @@ -26958,7 +28386,8 @@ parsers.check_optional_blank_indent_and_any_trail = Cmt( Cb("indent_info") % \begin{macrocode} parsers.spnlc_noexc = parsers.optionalspace - * (parsers.newline * parsers.check_minimal_indent_and_any_trail)^-1 + * ( parsers.newline + * parsers.check_minimal_indent_and_any_trail)^-1 parsers.spnlc = parsers.optionalspace * (V("EndlineNoSub"))^-1 @@ -26966,7 +28395,8 @@ parsers.spnlc = parsers.optionalspace parsers.spnlc_sep = parsers.optionalspace * V("EndlineNoSub") + parsers.spacechar^1 -parsers.only_blank = parsers.spacechar^0 * (parsers.newline + parsers.eof) +parsers.only_blank = parsers.spacechar^0 + * (parsers.newline + parsers.eof) % \end{macrocode} % \begin{figure} @@ -27013,64 +28443,68 @@ parsers.commented_line_letter = parsers.linechar + parsers.newline - parsers.backslash - parsers.percent -parsers.commented_line = Cg(Cc(""), "backslashes") - * ((#(parsers.commented_line_letter - - parsers.newline) - * Cb("backslashes") - * Cs(parsers.commented_line_letter - - parsers.newline)^1 -- initial - * Cg(Cc(""), "backslashes")) - + #(parsers.backslash * parsers.backslash) - * Cg((parsers.backslash -- even backslash - * parsers.backslash)^1, "backslashes") - + (parsers.backslash - * (#parsers.percent - * Cb("backslashes") - / function(backslashes) - return string.rep("\\", #backslashes / 2) - end - * C(parsers.percent) - + #parsers.commented_line_letter - * Cb("backslashes") - * Cc("\\") - * C(parsers.commented_line_letter)) - * Cg(Cc(""), "backslashes")))^0 - * (#parsers.percent - * Cb("backslashes") - / function(backslashes) - return string.rep("\\", #backslashes / 2) - end - * ((parsers.percent -- comment - * parsers.line - * #parsers.blankline) -- blank line - / "\n" - + parsers.percent -- comment - * parsers.line - * parsers.optionalspace) -- leading tabs and spaces - + #(parsers.newline) - * Cb("backslashes") - * C(parsers.newline)) - -parsers.chunk = parsers.line * (parsers.optionallyindentedline - - parsers.blankline)^0 - -parsers.attribute_key_char = parsers.alphanumeric + S("-_:.") -parsers.attribute_raw_char = parsers.alphanumeric + S("-_") -parsers.attribute_key = (parsers.attribute_key_char - - parsers.dash - parsers.digit) - * parsers.attribute_key_char^0 -parsers.attribute_value = ( (parsers.dquote / "") - * (parsers.anyescaped - parsers.dquote)^0 - * (parsers.dquote / "")) - + ( (parsers.squote / "") - * (parsers.anyescaped - parsers.squote)^0 - * (parsers.squote / "")) - + ( parsers.anyescaped - parsers.dquote - parsers.rbrace - - parsers.space)^0 -parsers.attribute_identifier = parsers.attribute_key_char^1 -parsers.attribute_classname = parsers.letter - * parsers.attribute_key_char^0 -parsers.attribute_raw = parsers.attribute_raw_char^1 +parsers.commented_line = Cg(Cc(""), "backslashes") + * ((#(parsers.commented_line_letter + - parsers.newline) + * Cb("backslashes") + * Cs(parsers.commented_line_letter + - parsers.newline)^1 -- initial + * Cg(Cc(""), "backslashes")) + + #( parsers.backslash + * (parsers.backslash + parsers.newline)) + * Cg((parsers.backslash -- even backslash + * ( parsers.backslash + + #parsers.newline))^1, "backslashes") + + (parsers.backslash + * (#parsers.percent + * Cb("backslashes") + / function(backslashes) + return string.rep("\\", #backslashes / 2) + end + * C(parsers.percent) + + #parsers.commented_line_letter + * Cb("backslashes") + * Cc("\\") + * C(parsers.commented_line_letter)) + * Cg(Cc(""), "backslashes")))^0 + * (#parsers.percent + * Cb("backslashes") + / function(backslashes) + return string.rep("\\", #backslashes / 2) + end + * ((parsers.percent -- comment + * parsers.line + * #parsers.blankline) -- blank line + / "\n" + + parsers.percent -- comment + * parsers.line + * parsers.optionalspace) -- leading spaces + + #(parsers.newline) + * Cb("backslashes") + * C(parsers.newline)) + +parsers.chunk = parsers.line * (parsers.optionallyindentedline + - parsers.blankline)^0 + +parsers.attribute_key_char = parsers.alphanumeric + S("-_:.") +parsers.attribute_raw_char = parsers.alphanumeric + S("-_") +parsers.attribute_key = (parsers.attribute_key_char + - parsers.dash - parsers.digit) + * parsers.attribute_key_char^0 +parsers.attribute_value = ( (parsers.dquote / "") + * (parsers.anyescaped - parsers.dquote)^0 + * (parsers.dquote / "")) + + ( (parsers.squote / "") + * (parsers.anyescaped - parsers.squote)^0 + * (parsers.squote / "")) + + ( parsers.anyescaped + - parsers.dquote + - parsers.rbrace + - parsers.space)^0 +parsers.attribute_identifier = parsers.attribute_key_char^1 +parsers.attribute_classname = parsers.letter + * parsers.attribute_key_char^0 +parsers.attribute_raw = parsers.attribute_raw_char^1 parsers.attribute = (parsers.dash * Cc(".unnumbered")) + C( parsers.hash @@ -27078,7 +28512,9 @@ parsers.attribute = (parsers.dash * Cc(".unnumbered")) + C( parsers.period * parsers.attribute_classname) + Cs( parsers.attribute_key - * parsers.optionalspace * parsers.equal * parsers.optionalspace + * parsers.optionalspace + * parsers.equal + * parsers.optionalspace * parsers.attribute_value) parsers.attributes = parsers.lbrace * parsers.optionalspace @@ -27088,7 +28524,6 @@ parsers.attributes = parsers.lbrace * parsers.optionalspace * parsers.rbrace - parsers.raw_attribute = parsers.lbrace * parsers.optionalspace * parsers.equal @@ -27100,7 +28535,10 @@ parsers.raw_attribute = parsers.lbrace -- indented blocks with first line indented. parsers.indented_blocks = function(bl) return Cs( bl - * (parsers.blankline^1 * parsers.indent * -parsers.blankline * bl)^0 + * ( parsers.blankline^1 + * parsers.indent + * -parsers.blankline + * bl)^0 * (parsers.blankline^1 + parsers.eof) ) end % \end{macrocode} @@ -27116,15 +28554,18 @@ local function repeat_between(pattern, min, max) end parsers.hexentity = parsers.ampersand * parsers.hash * C(S("Xx")) - * C(repeat_between(parsers.hexdigit, 1, 6)) * parsers.semicolon + * C(repeat_between(parsers.hexdigit, 1, 6)) + * parsers.semicolon parsers.decentity = parsers.ampersand * parsers.hash - * C(repeat_between(parsers.digit, 1, 7)) * parsers.semicolon + * C(repeat_between(parsers.digit, 1, 7)) + * parsers.semicolon parsers.tagentity = parsers.ampersand * C(parsers.alphanumeric^1) * parsers.semicolon -parsers.html_entities = parsers.hexentity / entities.hex_entity_with_x_char - + parsers.decentity / entities.dec_entity - + parsers.tagentity / entities.char_entity +parsers.html_entities + = parsers.hexentity / entities.hex_entity_with_x_char + + parsers.decentity / entities.dec_entity + + parsers.tagentity / entities.char_entity % \end{macrocode} % \par % \begin{markdown} @@ -27138,7 +28579,8 @@ parsers.bullet = function(bullet_char, interrupting) if interrupting then allowed_end = C(parsers.spacechar^1) * #parsers.linechar else - allowed_end = C(parsers.spacechar^1) + #(parsers.newline + parsers.eof) + allowed_end = C(parsers.spacechar^1) + + #(parsers.newline + parsers.eof) end return parsers.check_trail * Ct(C(bullet_char) * Cc("")) @@ -27196,7 +28638,8 @@ parsers.inticks = parsers.openticks % % \end{markdown} % \begin{macrocode} --- case-insensitive match (we assume s is lowercase). must be single byte encoding +-- case-insensitive match (we assume s is lowercase) +-- must be single byte encoding parsers.keyword_exact = function(s) local parser = P(0) for i=1,#s do @@ -27278,13 +28721,14 @@ parsers.block_keyword = parsers.keyword_exact("ul") -- end conditions -parsers.html_blankline_end_condition = parsers.linechar^0 - * ( parsers.newline - * (parsers.check_minimal_blank_indent_and_any_trail - * #parsers.blankline - + parsers.check_minimal_indent_and_any_trail) - * parsers.linechar^1)^0 - * (parsers.newline^-1 / "") +parsers.html_blankline_end_condition + = parsers.linechar^0 + * ( parsers.newline + * (parsers.check_minimal_blank_indent_and_any_trail + * #parsers.blankline + + parsers.check_minimal_indent_and_any_trail) + * parsers.linechar^1)^0 + * (parsers.newline^-1 / "") local function remove_trailing_blank_lines(s) return s:gsub("[\n\r]+%s*$", "") @@ -27306,9 +28750,14 @@ parsers.html_attribute_spacing = parsers.optionalspace * parsers.optionalspace + parsers.spacechar^1 -parsers.html_attribute_name = (parsers.letter + parsers.colon + parsers.underscore) - * (parsers.alphanumeric + parsers.colon + parsers.underscore - + parsers.period + parsers.dash)^0 +parsers.html_attribute_name = ( parsers.letter + + parsers.colon + + parsers.underscore) + * ( parsers.alphanumeric + + parsers.colon + + parsers.underscore + + parsers.period + + parsers.dash)^0 parsers.html_attribute_value = parsers.squote * (parsers.linechar - parsers.squote)^0 @@ -27316,9 +28765,15 @@ parsers.html_attribute_value = parsers.squote + parsers.dquote * (parsers.linechar - parsers.dquote)^0 * parsers.dquote - + ( parsers.any - parsers.spacechar - parsers.newline - - parsers.dquote - parsers.squote - parsers.backtick - - parsers.equal - parsers.less - parsers.more)^1 + + ( parsers.any + - parsers.spacechar + - parsers.newline + - parsers.dquote + - parsers.squote + - parsers.backtick + - parsers.equal + - parsers.less + - parsers.more)^1 parsers.html_inline_attribute_value = parsers.squote * (V("NoSoftLineBreakEndline") @@ -27332,30 +28787,41 @@ parsers.html_inline_attribute_value = parsers.squote - parsers.blankline^2 - parsers.dquote)^0 * parsers.dquote - + (parsers.any - parsers.spacechar - parsers.newline - - parsers.dquote - parsers.squote - parsers.backtick - - parsers.equal - parsers.less - parsers.more)^1 - -parsers.html_attribute_value_specification = parsers.optionalspace - * parsers.equal - * parsers.optionalspace - * parsers.html_attribute_value + + (parsers.any + - parsers.spacechar + - parsers.newline + - parsers.dquote + - parsers.squote + - parsers.backtick + - parsers.equal + - parsers.less + - parsers.more)^1 + +parsers.html_attribute_value_specification + = parsers.optionalspace + * parsers.equal + * parsers.optionalspace + * parsers.html_attribute_value parsers.html_spnl = parsers.optionalspace - * (V("NoSoftLineBreakEndline") * parsers.optionalspace)^-1 + * (V("NoSoftLineBreakEndline") + * parsers.optionalspace)^-1 -parsers.html_inline_attribute_value_specification = parsers.html_spnl - * parsers.equal - * parsers.html_spnl - * parsers.html_inline_attribute_value +parsers.html_inline_attribute_value_specification + = parsers.html_spnl + * parsers.equal + * parsers.html_spnl + * parsers.html_inline_attribute_value -parsers.html_attribute = parsers.html_attribute_spacing - * parsers.html_attribute_name - * parsers.html_inline_attribute_value_specification^-1 +parsers.html_attribute + = parsers.html_attribute_spacing + * parsers.html_attribute_name + * parsers.html_inline_attribute_value_specification^-1 -parsers.html_non_newline_attribute = parsers.spacechar^1 - * parsers.html_attribute_name - * parsers.html_attribute_value_specification^-1 +parsers.html_non_newline_attribute + = parsers.spacechar^1 + * parsers.html_attribute_name + * parsers.html_attribute_value_specification^-1 parsers.nested_breaking_blank = parsers.newline * parsers.check_minimal_blank_indent @@ -27365,49 +28831,59 @@ parsers.html_comment_start = P("<!--") parsers.html_comment_end = P("-->") -parsers.html_comment = Cs( parsers.html_comment_start - * parsers.html_until_end(parsers.html_comment_end)) +parsers.html_comment + = Cs( parsers.html_comment_start + * parsers.html_until_end(parsers.html_comment_end)) parsers.html_inline_comment = (parsers.html_comment_start / "") * -P(">") * -P("->") - * Cs((V("NoSoftLineBreakEndline") + parsers.any - - parsers.nested_breaking_blank - parsers.html_comment_end)^0) + * Cs(( V("NoSoftLineBreakEndline") + + parsers.any + - parsers.nested_breaking_blank + - parsers.html_comment_end)^0) * (parsers.html_comment_end / "") parsers.html_cdatasection_start = P("<![CDATA[") parsers.html_cdatasection_end = P("]]>") -parsers.html_cdatasection = Cs( parsers.html_cdatasection_start - * parsers.html_until_end(parsers.html_cdatasection_end)) +parsers.html_cdatasection + = Cs( parsers.html_cdatasection_start + * parsers.html_until_end(parsers.html_cdatasection_end)) -parsers.html_inline_cdatasection = parsers.html_cdatasection_start - * Cs(V("NoSoftLineBreakEndline") + parsers.any - - parsers.nested_breaking_blank - parsers.html_cdatasection_end)^0 - * parsers.html_cdatasection_end +parsers.html_inline_cdatasection + = parsers.html_cdatasection_start + * Cs(V("NoSoftLineBreakEndline") + parsers.any + - parsers.nested_breaking_blank - parsers.html_cdatasection_end)^0 + * parsers.html_cdatasection_end parsers.html_declaration_start = P("<!") * parsers.letter parsers.html_declaration_end = P(">") -parsers.html_declaration = Cs( parsers.html_declaration_start - * parsers.html_until_end(parsers.html_declaration_end)) +parsers.html_declaration + = Cs( parsers.html_declaration_start + * parsers.html_until_end(parsers.html_declaration_end)) -parsers.html_inline_declaration = parsers.html_declaration_start - * Cs(V("NoSoftLineBreakEndline") + parsers.any - - parsers.nested_breaking_blank - parsers.html_declaration_end)^0 - * parsers.html_declaration_end +parsers.html_inline_declaration + = parsers.html_declaration_start + * Cs(V("NoSoftLineBreakEndline") + parsers.any + - parsers.nested_breaking_blank - parsers.html_declaration_end)^0 + * parsers.html_declaration_end parsers.html_instruction_start = P("<?") parsers.html_instruction_end = P("?>") -parsers.html_instruction = Cs( parsers.html_instruction_start - * parsers.html_until_end(parsers.html_instruction_end)) +parsers.html_instruction + = Cs( parsers.html_instruction_start + * parsers.html_until_end(parsers.html_instruction_end)) parsers.html_inline_instruction = parsers.html_instruction_start - * Cs(V("NoSoftLineBreakEndline") + parsers.any - - parsers.nested_breaking_blank - parsers.html_instruction_end)^0 + * Cs( V("NoSoftLineBreakEndline") + + parsers.any + - parsers.nested_breaking_blank + - parsers.html_instruction_end)^0 * parsers.html_instruction_end parsers.html_blankline = parsers.newline @@ -27453,25 +28929,28 @@ parsers.incomplete_tag_following = parsers.spacechar + parsers.slash * parsers.more + #(parsers.newline + parsers.eof) -parsers.incomplete_special_tag_following = parsers.spacechar - + parsers.more - + #(parsers.newline + parsers.eof) +parsers.incomplete_special_tag_following = parsers.spacechar + + parsers.more + + #( parsers.newline + + parsers.eof) parsers.html_incomplete_open_tag = parsers.html_tag_start * parsers.block_keyword * parsers.incomplete_tag_following -parsers.html_incomplete_open_special_tag = parsers.html_tag_start - * parsers.special_block_keyword - * parsers.incomplete_special_tag_following +parsers.html_incomplete_open_special_tag + = parsers.html_tag_start + * parsers.special_block_keyword + * parsers.incomplete_special_tag_following parsers.html_incomplete_close_tag = parsers.html_tag_closing_start * parsers.block_keyword * parsers.incomplete_tag_following -parsers.html_incomplete_close_special_tag = parsers.html_tag_closing_start - * parsers.special_block_keyword - * parsers.incomplete_tag_following +parsers.html_incomplete_close_special_tag + = parsers.html_tag_closing_start + * parsers.special_block_keyword + * parsers.incomplete_tag_following -- closing tags parsers.html_close_tag = parsers.html_tag_closing_start @@ -27509,27 +28988,33 @@ parsers.html_empty_special_tag = parsers.html_tag_start * parsers.html_attribute^0 * parsers.html_empty_tag_end -parsers.html_incomplete_blocks = parsers.html_incomplete_open_tag - + parsers.html_incomplete_open_special_tag - + parsers.html_incomplete_close_tag +parsers.html_incomplete_blocks + = parsers.html_incomplete_open_tag + + parsers.html_incomplete_open_special_tag + + parsers.html_incomplete_close_tag -- parse special html blocks -parsers.html_blankline_ending_special_block_opening = (parsers.html_close_special_tag - + parsers.html_empty_special_tag) - * #(parsers.optionalspace - * (parsers.newline + parsers.eof)) +parsers.html_blankline_ending_special_block_opening + = ( parsers.html_close_special_tag + + parsers.html_empty_special_tag) + * #( parsers.optionalspace + * (parsers.newline + parsers.eof)) -parsers.html_blankline_ending_special_block = parsers.html_blankline_ending_special_block_opening - * parsers.html_blankline_end_condition +parsers.html_blankline_ending_special_block + = parsers.html_blankline_ending_special_block_opening + * parsers.html_blankline_end_condition -parsers.html_special_block_opening = parsers.html_incomplete_open_special_tag - - parsers.html_empty_special_tag +parsers.html_special_block_opening + = parsers.html_incomplete_open_special_tag + - parsers.html_empty_special_tag -parsers.html_closing_special_block = parsers.html_special_block_opening - * parsers.html_until_end(parsers.html_close_special_tag) +parsers.html_closing_special_block + = parsers.html_special_block_opening + * parsers.html_until_end(parsers.html_close_special_tag) -parsers.html_special_block = parsers.html_blankline_ending_special_block - + parsers.html_closing_special_block +parsers.html_special_block + = parsers.html_blankline_ending_special_block + + parsers.html_closing_special_block -- parse html blocks parsers.html_block_opening = parsers.html_incomplete_open_tag @@ -27539,18 +29024,21 @@ parsers.html_block = parsers.html_block_opening * parsers.html_blankline_end_condition -- parse any html blocks -parsers.html_any_block_opening = (parsers.html_any_open_tag - + parsers.html_any_close_tag - + parsers.html_any_empty_tag) - * #(parsers.optionalspace * (parsers.newline + parsers.eof)) +parsers.html_any_block_opening + = ( parsers.html_any_open_tag + + parsers.html_any_close_tag + + parsers.html_any_empty_tag) + * #(parsers.optionalspace * (parsers.newline + parsers.eof)) parsers.html_any_block = parsers.html_any_block_opening * parsers.html_blankline_end_condition parsers.html_inline_comment_full = parsers.html_comment_start * -P(">") * -P("->") - * Cs((V("NoSoftLineBreakEndline") + parsers.any - P("--") - - parsers.nested_breaking_blank - parsers.html_comment_end)^0) + * Cs(( V("NoSoftLineBreakEndline") + + parsers.any - P("--") + - parsers.nested_breaking_blank + - parsers.html_comment_end)^0) * parsers.html_comment_end parsers.html_inline_tags = parsers.html_inline_comment_full @@ -27583,21 +29071,25 @@ parsers.auto_link_scheme = parsers.letter * parsers.auto_link_scheme_part^-30 parsers.absolute_uri = parsers.auto_link_scheme * parsers.colon - * (parsers.any - parsers.spacing - parsers.less - parsers.more)^0 + * ( parsers.any - parsers.spacing + - parsers.less - parsers.more)^0 parsers.printable_characters = S(".!#$%&'*+/=?^_`{|}~-") parsers.email_address_local_part_char = parsers.alphanumeric + parsers.printable_characters -parsers.email_address_local_part = parsers.email_address_local_part_char^1 +parsers.email_address_local_part + = parsers.email_address_local_part_char^1 parsers.email_address_dns_label = parsers.alphanumeric - * (parsers.alphanumeric + parsers.dash)^-62 + * ( parsers.alphanumeric + + parsers.dash)^-62 * B(parsers.alphanumeric) parsers.email_address_domain = parsers.email_address_dns_label - * (parsers.period * parsers.email_address_dns_label)^0 + * ( parsers.period + * parsers.email_address_dns_label)^0 parsers.email_address = parsers.email_address_local_part * parsers.at @@ -27653,25 +29145,37 @@ parsers.link_text = parsers.lbracket + parsers.autolink + V("InlineHtml") + ( parsers.backslash * parsers.backslash) - + ( parsers.backslash * (parsers.lbracket + parsers.rbracket) + + ( parsers.backslash + * ( parsers.lbracket + + parsers.rbracket) + V("NoSoftLineBreakSpace") + V("NoSoftLineBreakEndline") + (parsers.any - - (parsers.newline + parsers.lbracket + parsers.rbracket + parsers.blankline^2))))^0) + - ( parsers.newline + + parsers.lbracket + + parsers.rbracket + + parsers.blankline^2))))^0) * parsers.rbracket parsers.link_label_body = -#(parsers.sp * parsers.rbracket) - * #((parsers.any - parsers.rbracket)^-999 * parsers.rbracket) + * #( ( parsers.any + - parsers.rbracket)^-999 + * parsers.rbracket) * Cs((parsers.alphanumeric^1 + parsers.inticks + parsers.autolink + V("InlineHtml") + ( parsers.backslash * parsers.backslash) - + ( parsers.backslash * (parsers.lbracket + parsers.rbracket) + + ( parsers.backslash + * ( parsers.lbracket + + parsers.rbracket) + V("NoSoftLineBreakSpace") + V("NoSoftLineBreakEndline") + (parsers.any - - (parsers.newline + parsers.lbracket + parsers.rbracket + parsers.blankline^2))))^1) + - ( parsers.newline + + parsers.lbracket + + parsers.rbracket + + parsers.blankline^2))))^1) parsers.link_label = parsers.lbracket * parsers.link_label_body @@ -27701,29 +29205,38 @@ parsers.title_s = parsers.squote * Cs((parsers.html_entities + V("NoSoftLineBreakSpace") + V("NoSoftLineBreakEndline") - + (parsers.anyescaped - parsers.newline - parsers.squote - parsers.blankline^2))^0) + + ( parsers.anyescaped + - parsers.newline + - parsers.squote + - parsers.blankline^2))^0) * parsers.squote parsers.title_d = parsers.dquote * Cs((parsers.html_entities + V("NoSoftLineBreakSpace") + V("NoSoftLineBreakEndline") - + (parsers.anyescaped - parsers.newline - parsers.dquote - parsers.blankline^2))^0) + + ( parsers.anyescaped + - parsers.newline + - parsers.dquote + - parsers.blankline^2))^0) * parsers.dquote parsers.title_p = parsers.lparent * Cs((parsers.html_entities + V("NoSoftLineBreakSpace") + V("NoSoftLineBreakEndline") - + (parsers.anyescaped - parsers.newline - parsers.lparent - parsers.rparent + + ( parsers.anyescaped + - parsers.newline + - parsers.lparent + - parsers.rparent - parsers.blankline^2))^0) * parsers.rparent -parsers.title = parsers.title_d + parsers.title_s + parsers.title_p +parsers.title + = parsers.title_d + parsers.title_s + parsers.title_p parsers.optionaltitle - = parsers.spnlc * parsers.title * parsers.spacechar^0 - + Cc("") + = parsers.spnlc * parsers.title * parsers.spacechar^0 + Cc("") % \end{macrocode} % \par @@ -27734,9 +29247,11 @@ parsers.optionaltitle % \end{markdown} % \begin{macrocode} -- parse a reference definition: [foo]: /bar "title" -parsers.define_reference_parser = (parsers.check_trail / "") * parsers.link_label * parsers.colon +parsers.define_reference_parser = (parsers.check_trail / "") + * parsers.link_label * parsers.colon * parsers.spnlc * parsers.url - * ( parsers.spnlc_sep * parsers.title * parsers.only_blank + * ( parsers.spnlc_sep * parsers.title + * parsers.only_blank + Cc("") * parsers.only_blank) % \end{macrocode} % \par @@ -27751,7 +29266,10 @@ parsers.Inline = V("Inline") -- parse many p between starter and ender parsers.between = function(p, starter, ender) local ender2 = B(parsers.nonspacechar) * ender - return (starter * #parsers.nonspacechar * Ct(p * (p - ender2)^0) * ender2) + return ( starter + * #parsers.nonspacechar + * Ct(p * (p - ender2)^0) + * ender2) end % \end{macrocode} @@ -27763,7 +29281,8 @@ end % \end{markdown} % \begin{macrocode} parsers.lineof = function(c) - return (parsers.check_trail_no_rem * (P(c) * parsers.optionalspace)^3 + return ( parsers.check_trail_no_rem + * (P(c) * parsers.optionalspace)^3 * (parsers.newline + parsers.eof)) end @@ -27783,8 +29302,11 @@ parsers.heading_start = #parsers.hash * C(parsers.hash^-6) * -parsers.hash / length -- parse setext header ending and return level -parsers.heading_level = parsers.nonindentspace * parsers.equal^1 * parsers.optionalspace * #parsers.newline * Cc(1) - + parsers.nonindentspace * parsers.dash^1 * parsers.optionalspace * #parsers.newline * Cc(2) +parsers.heading_level + = parsers.nonindentspace * parsers.equal^1 + * parsers.optionalspace * #parsers.newline * Cc(1) + + parsers.nonindentspace * parsers.dash^1 + * parsers.optionalspace * #parsers.newline * Cc(2) local function strip_atx_end(s) return s:gsub("%s+#*%s*\n$","") @@ -27956,9 +29478,11 @@ function M.reader.new(writer, options) local prefix = lpeg.match(C(parsers.optionalspace), line) local prefix_length = #prefix local is_shorter = min_prefix_length == nil - is_shorter = is_shorter or prefix_length < min_prefix_length + if not is_shorter then + is_shorter = prefix_length < min_prefix_length + end if is_shorter then - min_prefix_length, min_prefix = prefix_length, prefix + min_prefix_length, min_prefix = prefix_length, prefix end return line end) @@ -27980,7 +29504,11 @@ function M.reader.new(writer, options) end local res = lpeg.match(grammar(), str) if res == nil then - error(format("%s failed on:\n%s", name, str:sub(1,20))) + return writer.error( + format("Parser `%s` failed to process the input text.", name), + format("Here are the first 20 characters of the remaining " + .. "unprocessed text: `%s`.", str:sub(1,20)) + ) else return res end @@ -28030,35 +29558,47 @@ function M.reader.new(writer, options) % % \end{markdown} % \begin{macrocode} - parsers.minimally_indented_blankline = parsers.check_minimal_indent * (parsers.blankline / "") + parsers.minimally_indented_blankline + = parsers.check_minimal_indent * (parsers.blankline / "") - parsers.minimally_indented_block = parsers.check_minimal_indent * V("Block") + parsers.minimally_indented_block + = parsers.check_minimal_indent * V("Block") - parsers.minimally_indented_block_or_paragraph = parsers.check_minimal_indent * V("BlockOrParagraph") + parsers.minimally_indented_block_or_paragraph + = parsers.check_minimal_indent * V("BlockOrParagraph") - parsers.minimally_indented_paragraph = parsers.check_minimal_indent * V("Paragraph") + parsers.minimally_indented_paragraph + = parsers.check_minimal_indent * V("Paragraph") - parsers.minimally_indented_plain = parsers.check_minimal_indent * V("Plain") + parsers.minimally_indented_plain + = parsers.check_minimal_indent * V("Plain") - parsers.minimally_indented_par_or_plain = parsers.minimally_indented_paragraph - + parsers.minimally_indented_plain + parsers.minimally_indented_par_or_plain + = parsers.minimally_indented_paragraph + + parsers.minimally_indented_plain - parsers.minimally_indented_par_or_plain_no_blank = parsers.minimally_indented_par_or_plain - - parsers.minimally_indented_blankline + parsers.minimally_indented_par_or_plain_no_blank + = parsers.minimally_indented_par_or_plain + - parsers.minimally_indented_blankline - parsers.minimally_indented_ref = parsers.check_minimal_indent * V("Reference") + parsers.minimally_indented_ref + = parsers.check_minimal_indent * V("Reference") - parsers.minimally_indented_blank = parsers.check_minimal_indent * V("Blank") + parsers.minimally_indented_blank + = parsers.check_minimal_indent * V("Blank") - parsers.conditionally_indented_blankline = parsers.check_minimal_blank_indent * (parsers.blankline / "") + parsers.conditionally_indented_blankline + = parsers.check_minimal_blank_indent * (parsers.blankline / "") - parsers.minimally_indented_ref_or_block = parsers.minimally_indented_ref - + parsers.minimally_indented_block - - parsers.minimally_indented_blankline + parsers.minimally_indented_ref_or_block + = parsers.minimally_indented_ref + + parsers.minimally_indented_block + - parsers.minimally_indented_blankline - parsers.minimally_indented_ref_or_block_or_par = parsers.minimally_indented_ref - + parsers.minimally_indented_block_or_paragraph - - parsers.minimally_indented_blankline + parsers.minimally_indented_ref_or_block_or_par + = parsers.minimally_indented_ref + + parsers.minimally_indented_block_or_paragraph + - parsers.minimally_indented_blankline % \end{macrocode} % \begin{markdown} @@ -28068,7 +29608,8 @@ function M.reader.new(writer, options) % \end{markdown} % \begin{macrocode} - parsers.separator_loop = function(separated_block, paragraph, block_separator, paragraph_separator) + function parsers.separator_loop(separated_block, paragraph, + block_separator, paragraph_separator) return separated_block + block_separator * paragraph @@ -28077,10 +29618,14 @@ function M.reader.new(writer, options) * paragraph end - parsers.create_loop_body_pair = function(separated_block, paragraph, block_separator, paragraph_separator) + function parsers.create_loop_body_pair(separated_block, paragraph, + block_separator, + paragraph_separator) return { - block = parsers.separator_loop(separated_block, paragraph, block_separator, block_separator), - par = parsers.separator_loop(separated_block, paragraph, block_separator, paragraph_separator) + block = parsers.separator_loop(separated_block, paragraph, + block_separator, block_separator), + par = parsers.separator_loop(separated_block, paragraph, + block_separator, paragraph_separator) } end @@ -28103,18 +29648,20 @@ function M.reader.new(writer, options) parsers.content_blank = parsers.minimally_indented_blankline - parsers.ref_or_block_separated = parsers.sep_group_no_output(parsers.content_blank) - * ( parsers.minimally_indented_ref - - parsers.content_blank) - + parsers.block_sep_group(parsers.content_blank) - * ( parsers.minimally_indented_block - - parsers.content_blank) + parsers.ref_or_block_separated + = parsers.sep_group_no_output(parsers.content_blank) + * ( parsers.minimally_indented_ref + - parsers.content_blank) + + parsers.block_sep_group(parsers.content_blank) + * ( parsers.minimally_indented_block + - parsers.content_blank) parsers.loop_body_pair = - parsers.create_loop_body_pair(parsers.ref_or_block_separated, - parsers.minimally_indented_par_or_plain_no_blank, - parsers.block_sep_group(parsers.content_blank), - parsers.par_sep_group(parsers.content_blank)) + parsers.create_loop_body_pair( + parsers.ref_or_block_separated, + parsers.minimally_indented_par_or_plain_no_blank, + parsers.block_sep_group(parsers.content_blank), + parsers.par_sep_group(parsers.content_blank)) parsers.content_loop = ( V("Block") * parsers.loop_body_pair.block^0 @@ -28138,7 +29685,8 @@ function M.reader.new(writer, options) parsers.add_indent = function(pattern, name, breakable) return Cg(Cmt( Cb("indent_info") * Ct(pattern) - * (#parsers.linechar * Cc(false) + Cc(true)) -- check if starter is blank + * ( #parsers.linechar -- check if starter is blank + * Cc(false) + Cc(true)) * Cc(name) * Cc(breakable), process_starter_indent), "indent_info") @@ -28166,7 +29714,8 @@ function M.reader.new(writer, options) allowed_end = C(parsers.spacechar^1) * #parsers.linechar else delimiter_range = parsers.dig * parsers.dig^-8 - allowed_end = C(parsers.spacechar^1) + #(parsers.newline + parsers.eof) + allowed_end = C(parsers.spacechar^1) + + #(parsers.newline + parsers.eof) end return parsers.check_trail @@ -28188,16 +29737,21 @@ function M.reader.new(writer, options) % % \end{markdown} % \begin{macrocode} - parsers.blockquote_start = parsers.check_trail * C(parsers.more) * C(parsers.spacechar^0) + parsers.blockquote_start + = parsers.check_trail + * C(parsers.more) + * C(parsers.spacechar^0) - parsers.blockquote_body = parsers.add_indent(parsers.blockquote_start, "bq", true) - * parsers.indented_content() - * remove_indent("bq") + parsers.blockquote_body + = parsers.add_indent(parsers.blockquote_start, "bq", true) + * parsers.indented_content() + * remove_indent("bq") if not options.breakableBlockquotes then - parsers.blockquote_body = parsers.add_indent(parsers.blockquote_start, "bq", false) - * parsers.indented_content() - * remove_indent("bq") + parsers.blockquote_body + = parsers.add_indent(parsers.blockquote_start, "bq", false) + * parsers.indented_content() + * remove_indent("bq") end % \end{macrocode} % \par @@ -28211,7 +29765,8 @@ function M.reader.new(writer, options) % \begin{macrocode} local function parse_content_part(content_part) local rope = util.rope_to_string(content_part) - local parsed = self.parser_functions.parse_inlines_no_link_or_emphasis(rope) + local parsed + = self.parser_functions.parse_inlines_no_link_or_emphasis(rope) parsed.indent_info = nil return parsed end @@ -28223,37 +29778,40 @@ function M.reader.new(writer, options) % % \end{markdown} % \begin{macrocode} - local function collect_emphasis_content(t, opening_index, closing_index) - local content = {} + local collect_emphasis_content = + function(t, opening_index, closing_index) + local content = {} - local content_part = {} - for i = opening_index, closing_index do - local value = t[i] + local content_part = {} + for i = opening_index, closing_index do + local value = t[i] - if value.rendered ~= nil then - content[#content + 1] = parse_content_part(content_part) - content_part = {} - content[#content + 1] = value.rendered - value.rendered = nil - else - if value.type == "delimiter" and value.element == "emphasis" then - if value.is_active then - content_part[#content_part + 1] = string.rep(value.character, value.current_count) - end + if value.rendered ~= nil then + content[#content + 1] = parse_content_part(content_part) + content_part = {} + content[#content + 1] = value.rendered + value.rendered = nil else - content_part[#content_part + 1] = value.content + if value.type == "delimiter" + and value.element == "emphasis" then + if value.is_active then + content_part[#content_part + 1] + = string.rep(value.character, value.current_count) + end + else + content_part[#content_part + 1] = value.content + end + value.content = '' + value.is_active = false end - value.content = '' - value.is_active = false end - end - if next(content_part) ~= nil then - content[#content + 1] = parse_content_part(content_part) - end + if next(content_part) ~= nil then + content[#content + 1] = parse_content_part(content_part) + end - return content - end + return content + end % \end{macrocode} % \begin{markdown} @@ -28264,7 +29822,9 @@ function M.reader.new(writer, options) % \end{markdown} % \begin{macrocode} local function fill_emph(t, opening_index, closing_index) - local content = collect_emphasis_content(t, opening_index + 1, closing_index - 1) + local content + = collect_emphasis_content(t, opening_index + 1, + closing_index - 1) t[opening_index + 1].is_active = true t[opening_index + 1].rendered = writer.emphasis(content) end @@ -28278,7 +29838,9 @@ function M.reader.new(writer, options) % \end{markdown} % \begin{macrocode} local function fill_strong(t, opening_index, closing_index) - local content = collect_emphasis_content(t, opening_index + 1, closing_index - 1) + local content + = collect_emphasis_content(t, opening_index + 1, + closing_index - 1) t[opening_index + 1].is_active = true t[opening_index + 1].rendered = writer.strong(content) end @@ -28292,9 +29854,12 @@ function M.reader.new(writer, options) % \end{markdown} % \begin{macrocode} local function breaks_three_rule(opening_delimiter, closing_delimiter) - return (opening_delimiter.is_closing or closing_delimiter.is_opening) and - ((opening_delimiter.original_count + closing_delimiter.original_count) % 3 == 0) and - (opening_delimiter.original_count % 3 ~= 0 or closing_delimiter.original_count % 3 ~= 0) + return ( opening_delimiter.is_closing + or closing_delimiter.is_opening) + and (( opening_delimiter.original_count + + closing_delimiter.original_count) % 3 == 0) + and ( opening_delimiter.original_count % 3 ~= 0 + or closing_delimiter.original_count % 3 ~= 0) end % \end{macrocode} @@ -28306,7 +29871,8 @@ function M.reader.new(writer, options) % % \end{markdown} % \begin{macrocode} - local function find_emphasis_opener(t, bottom_index, latest_index, character, closing_delimiter) + local find_emphasis_opener = function(t, bottom_index, latest_index, + character, closing_delimiter) for i = latest_index, bottom_index, -1 do local value = t[i] if value.is_active and @@ -28370,12 +29936,18 @@ function M.reader.new(writer, options) local is_opening = value.is_opening local closing_length_modulo_three = value.original_count % 3 - local current_openers_bottom = openers_bottom[character][is_opening][closing_length_modulo_three + 1] + local current_openers_bottom + = openers_bottom[character][is_opening] + [closing_length_modulo_three + 1] - local opener_position = find_emphasis_opener(t, current_openers_bottom, current_position - 1, character, value) + local opener_position + = find_emphasis_opener(t, current_openers_bottom, + current_position - 1, character, value) if (opener_position == nil) then - openers_bottom[character][is_opening][closing_length_modulo_three + 1] = current_position + openers_bottom[character][is_opening] + [closing_length_modulo_three + 1] + = current_position current_position = current_position + 1 goto continue end @@ -28385,7 +29957,8 @@ function M.reader.new(writer, options) local current_opening_count = opening_delimiter.current_count local current_closing_count = t[current_position].current_count - if (current_opening_count >= 2) and (current_closing_count >= 2) then + if (current_opening_count >= 2) + and (current_closing_count >= 2) then opening_delimiter.current_count = current_opening_count - 2 t[current_position].current_count = current_closing_count - 2 fill_strong(t, opener_position, current_position) @@ -28469,15 +30042,19 @@ function M.reader.new(writer, options) return check_unicode_type(s, i, 0, 3, "%s") end - parsers.unicode_preceding_punctuation = B(parsers.escapable) - + Cmt(parsers.succeed, check_preceding_unicode_punctuation) + parsers.unicode_preceding_punctuation + = B(parsers.escapable) + + Cmt(parsers.succeed, check_preceding_unicode_punctuation) - parsers.unicode_preceding_whitespace = Cmt(parsers.succeed, check_preceding_unicode_whitespace) + parsers.unicode_preceding_whitespace + = Cmt(parsers.succeed, check_preceding_unicode_whitespace) - parsers.unicode_following_punctuation = #parsers.escapable - + Cmt(parsers.succeed, check_following_unicode_punctuation) + parsers.unicode_following_punctuation + = #parsers.escapable + + Cmt(parsers.succeed, check_following_unicode_punctuation) - parsers.unicode_following_whitespace = Cmt(parsers.succeed, check_following_unicode_whitespace) + parsers.unicode_following_whitespace + = Cmt(parsers.succeed, check_following_unicode_whitespace) parsers.delimiter_run = function(character) return (B(parsers.backslash * character) + -B(character)) @@ -28487,49 +30064,58 @@ function M.reader.new(writer, options) parsers.left_flanking_delimiter_run = function(character) return (B( parsers.any) - * (parsers.unicode_preceding_punctuation + parsers.unicode_preceding_whitespace) + * ( parsers.unicode_preceding_punctuation + + parsers.unicode_preceding_whitespace) + -B(parsers.any)) * parsers.delimiter_run(character) * parsers.unicode_following_punctuation + parsers.delimiter_run(character) - * -#(parsers.unicode_following_punctuation + parsers.unicode_following_whitespace + * -#( parsers.unicode_following_punctuation + + parsers.unicode_following_whitespace + parsers.eof) end parsers.right_flanking_delimiter_run = function(character) return parsers.unicode_preceding_punctuation * parsers.delimiter_run(character) - * (parsers.unicode_following_punctuation + parsers.unicode_following_whitespace + * ( parsers.unicode_following_punctuation + + parsers.unicode_following_whitespace + parsers.eof) + (B(parsers.any) - * -(parsers.unicode_preceding_punctuation + parsers.unicode_preceding_whitespace)) + * -( parsers.unicode_preceding_punctuation + + parsers.unicode_preceding_whitespace)) * parsers.delimiter_run(character) end if options.underscores then - parsers.emph_start = parsers.left_flanking_delimiter_run(parsers.asterisk) - + (-#parsers.right_flanking_delimiter_run(parsers.underscore) - + (parsers.unicode_preceding_punctuation - * #parsers.right_flanking_delimiter_run(parsers.underscore))) - * parsers.left_flanking_delimiter_run(parsers.underscore) - - parsers.emph_end = parsers.right_flanking_delimiter_run(parsers.asterisk) - + (-#parsers.left_flanking_delimiter_run(parsers.underscore) - + #(parsers.left_flanking_delimiter_run(parsers.underscore) - * parsers.unicode_following_punctuation)) - * parsers.right_flanking_delimiter_run(parsers.underscore) + parsers.emph_start + = parsers.left_flanking_delimiter_run(parsers.asterisk) + + ( -#parsers.right_flanking_delimiter_run(parsers.underscore) + + ( parsers.unicode_preceding_punctuation + * #parsers.right_flanking_delimiter_run(parsers.underscore))) + * parsers.left_flanking_delimiter_run(parsers.underscore) + + parsers.emph_end + = parsers.right_flanking_delimiter_run(parsers.asterisk) + + ( -#parsers.left_flanking_delimiter_run(parsers.underscore) + + #( parsers.left_flanking_delimiter_run(parsers.underscore) + * parsers.unicode_following_punctuation)) + * parsers.right_flanking_delimiter_run(parsers.underscore) else - parsers.emph_start = parsers.left_flanking_delimiter_run(parsers.asterisk) + parsers.emph_start + = parsers.left_flanking_delimiter_run(parsers.asterisk) - parsers.emph_end = parsers.right_flanking_delimiter_run(parsers.asterisk) + parsers.emph_end + = parsers.right_flanking_delimiter_run(parsers.asterisk) end - parsers.emph_capturing_open_and_close = #parsers.emph_start * #parsers.emph_end - * Ct( Cg(Cc("delimiter"), "type") - * Cg(Cc("emphasis"), "element") - * Cg(C(parsers.emph_start), "content") - * Cg(Cc(true), "is_opening") - * Cg(Cc(true), "is_closing")) + parsers.emph_capturing_open_and_close + = #parsers.emph_start * #parsers.emph_end + * Ct( Cg(Cc("delimiter"), "type") + * Cg(Cc("emphasis"), "element") + * Cg(C(parsers.emph_start), "content") + * Cg(Cc(true), "is_opening") + * Cg(Cc(true), "is_closing")) parsers.emph_capturing_open = Ct( Cg(Cc("delimiter"), "type") * Cg(Cc("emphasis"), "element") @@ -28619,17 +30205,24 @@ function M.reader.new(writer, options) parsers.title_s_direct_ref = parsers.squote * Cs((parsers.html_entities - + (parsers.anyescaped - parsers.squote - parsers.blankline^2))^0) + + ( parsers.anyescaped + - parsers.squote + - parsers.blankline^2))^0) * parsers.squote parsers.title_d_direct_ref = parsers.dquote * Cs((parsers.html_entities - + (parsers.anyescaped - parsers.dquote - parsers.blankline^2))^0) + + ( parsers.anyescaped + - parsers.dquote + - parsers.blankline^2))^0) * parsers.dquote parsers.title_p_direct_ref = parsers.lparent * Cs((parsers.html_entities - + (parsers.anyescaped - parsers.lparent - parsers.rparent - parsers.blankline^2))^0) + + ( parsers.anyescaped + - parsers.lparent + - parsers.rparent + - parsers.blankline^2))^0) * parsers.rparent parsers.title_direct_ref = parsers.title_s_direct_ref @@ -28639,7 +30232,8 @@ function M.reader.new(writer, options) parsers.inline_direct_ref_inside = parsers.lparent * parsers.spnl * Cg(parsers.url + Cc(""), "url") * parsers.spnl - * Cg(parsers.title_direct_ref + Cc(""), "title") + * Cg( parsers.title_direct_ref + + Cc(""), "title") * parsers.spnl * parsers.rparent parsers.inline_direct_ref = parsers.lparent * parsers.spnlc @@ -28667,7 +30261,8 @@ function M.reader.new(writer, options) * Cg(Cc("inline"), "link_type") + #(parsers.exclamation * parsers.full_link) * Cg(Cc("full"), "link_type") - + #(parsers.exclamation * parsers.collapsed_link) + + #( parsers.exclamation + * parsers.collapsed_link) * Cg(Cc("collapsed"), "link_type") + #(parsers.exclamation * parsers.shortcut_link) * Cg(Cc("shortcut"), "link_type") @@ -28687,7 +30282,7 @@ function M.reader.new(writer, options) + #parsers.link_text * Cg(Cc("link_text"), "link_type") - parsers.note_opening = #(parsers.circumflex * parsers.shortcut_link) + parsers.note_opening = #(parsers.circumflex * parsers.link_text) * Cg(Cc("note_inline"), "link_type") parsers.raw_note_opening = #( parsers.lbracket @@ -28698,15 +30293,18 @@ function M.reader.new(writer, options) local inline_note_element = Cg(Cc("note"), "element") * parsers.note_opening - * Cg(parsers.circumflex * parsers.lbracket, "content") + * Cg( parsers.circumflex + * parsers.lbracket, "content") local image_element = Cg(Cc("image"), "element") * parsers.image_opening - * Cg(parsers.exclamation * parsers.lbracket, "content") + * Cg( parsers.exclamation + * parsers.lbracket, "content") local note_element = Cg(Cc("note"), "element") * parsers.raw_note_opening - * Cg(parsers.lbracket * parsers.circumflex, "content") + * Cg( parsers.lbracket + * parsers.circumflex, "content") local link_element = Cg(Cc("link"), "element") * parsers.link_opening @@ -28736,7 +30334,9 @@ function M.reader.new(writer, options) * Cg(Cc(false), "is_opening") * Cg(Cc(true), "is_closing") * ( Cg(Cc(true), "is_direct") - * Cg(parsers.rbracket * #parsers.inline_direct_ref, "content") + * Cg( parsers.rbracket + * #parsers.inline_direct_ref, + "content") + Cg(Cc(false), "is_direct") * Cg(parsers.rbracket, "content"))) @@ -28757,22 +30357,24 @@ function M.reader.new(writer, options) * -V("EndlineExceptions") + parsers.check_optional_indent * -V("EndlineExceptions") - * -parsers.starter) / "") + * -V("ListStarter")) / "") * parsers.spacechar^0 / "\n" - parsers.link_and_emph_content = Ct( Cg(Cc("content"), "type") - * Cg(Cs(( parsers.link_emph_precedence - + parsers.backslash * parsers.any - + parsers.link_and_emph_endline - + (parsers.linechar - - parsers.blankline^2 - - parsers.link_image_open_or_close - - parsers.emph_open_or_close))^0), "content")) + parsers.link_and_emph_content + = Ct( Cg(Cc("content"), "type") + * Cg(Cs(( parsers.link_emph_precedence + + parsers.backslash * parsers.linechar + + parsers.link_and_emph_endline + + (parsers.linechar + - parsers.blankline^2 + - parsers.link_image_open_or_close + - parsers.emph_open_or_close))^0), "content")) - parsers.link_and_emph_table = (parsers.link_image_opening + parsers.emph_open) - * parsers.link_and_emph_content - * ((parsers.link_image_open_or_close + parsers.emph_open_or_close) - * parsers.link_and_emph_content)^1 + parsers.link_and_emph_table + = (parsers.link_image_opening + parsers.emph_open) + * parsers.link_and_emph_content + * ((parsers.link_image_open_or_close + parsers.emph_open_or_close) + * parsers.link_and_emph_content)^1 % \end{macrocode} % \begin{markdown} @@ -28802,7 +30404,9 @@ function M.reader.new(writer, options) local value = t[i] if value.type == "delimiter" and value.is_opening and - (value.element == "link" or value.element == "image" or value.element == "note") + ( value.element == "link" + or value.element == "image" + or value.element == "note") and not value.removed then if value.is_active then return i @@ -28883,11 +30487,12 @@ function M.reader.new(writer, options) % % \end{markdown} % \begin{macrocode} - local function delete_parsed_content_in_range(t, opening_index, closing_index) - for i = opening_index, closing_index do - t[i].rendered = nil + local delete_parsed_content_in_range = + function(t, opening_index, closing_index) + for i = opening_index, closing_index do + t[i].rendered = nil + end end - end % \end{macrocode} % \begin{markdown} @@ -28932,34 +30537,40 @@ function M.reader.new(writer, options) % % \end{markdown} % \begin{macrocode} - local function render_link_or_image(t, opening_index, closing_index, content_end_index, reference) - process_emphasis(t, opening_index, content_end_index) - local mapped = collect_emphasis_content(t, opening_index + 1, content_end_index - 1) + local render_link_or_image = + function(t, opening_index, closing_index, content_end_index, + reference) + process_emphasis(t, opening_index, content_end_index) + local mapped = collect_emphasis_content(t, opening_index + 1, + content_end_index - 1) - local rendered = {} - if (t[opening_index].element == "link") then - rendered = writer.link(mapped, reference.url, reference.title, reference.attributes) - end - - if (t[opening_index].element == "image") then - rendered = writer.image(mapped, reference.url, reference.title, reference.attributes) - end + local rendered = {} + if (t[opening_index].element == "link") then + rendered = writer.link(mapped, reference.url, + reference.title, reference.attributes) + end - if (t[opening_index].element == "note") then - if (t[opening_index].link_type == "note_inline") then - rendered = writer.note(mapped) + if (t[opening_index].element == "image") then + rendered = writer.image(mapped, reference.url, reference.title, + reference.attributes) end - if (t[opening_index].link_type == "raw_note") then - rendered = writer.note(reference) + + if (t[opening_index].element == "note") then + if (t[opening_index].link_type == "note_inline") then + rendered = writer.note(mapped) + end + if (t[opening_index].link_type == "raw_note") then + rendered = writer.note(reference) + end end - end - t[opening_index].rendered = rendered - delete_parsed_content_in_range(t, opening_index + 1, closing_index) - empty_content_in_range(t, opening_index, closing_index) - disable_previous_link_openers(t, opening_index) - disable_range(t, opening_index, closing_index) - end + t[opening_index].rendered = rendered + delete_parsed_content_in_range(t, opening_index + 1, + closing_index) + empty_content_in_range(t, opening_index, closing_index) + disable_previous_link_openers(t, opening_index) + disable_range(t, opening_index, closing_index) + end % \end{macrocode} % \begin{markdown} @@ -28970,52 +30581,56 @@ function M.reader.new(writer, options) % % \end{markdown} % \begin{macrocode} - local function resolve_inline_following_content(t, closing_index, match_reference, match_link_attributes) - local content = "" - for i = closing_index + 1, #t do - content = content .. t[i].content - end + local resolve_inline_following_content = + function(t, closing_index, match_reference, match_link_attributes) + local content = "" + for i = closing_index + 1, #t do + content = content .. t[i].content + end - local matching_content = parsers.succeed + local matching_content = parsers.succeed - if match_reference then - matching_content = matching_content * parsers.inline_direct_ref_inside - end + if match_reference then + matching_content = matching_content + * parsers.inline_direct_ref_inside + end - if match_link_attributes then - matching_content = matching_content * Cg(Ct(parsers.attributes^-1), "attributes") - end + if match_link_attributes then + matching_content = matching_content + * Cg(Ct(parsers.attributes^-1), "attributes") + end - local matched = lpeg.match(Ct(matching_content * Cg(Cp(), "end_position")), content) + local matched = lpeg.match(Ct( matching_content + * Cg(Cp(), "end_position")), content) - local matched_count = matched.end_position - 1 - for i = closing_index + 1, #t do - local value = t[i] + local matched_count = matched.end_position - 1 + for i = closing_index + 1, #t do + local value = t[i] + + local chars_left = matched_count + matched_count = matched_count - #value.content - local chars_left = matched_count - matched_count = matched_count - #value.content + if matched_count <= 0 then + value.content = value.content:sub(chars_left + 1) + break + end - if matched_count <= 0 then - value.content = value.content:sub(chars_left + 1) - break + value.content = '' + value.is_active = false end - value.content = '' - value.is_active = false - end + local attributes = matched.attributes + if attributes == nil or next(attributes) == nil then + attributes = nil + end - local attributes = matched.attributes - if attributes == nil or next(attributes) == nil then - attributes = nil + return { + url = matched.url or "", + title = matched.title or "", + attributes = attributes + } end - return { - url = matched.url or "", - title = matched.title or "", - attributes = attributes - } - end - % \end{macrocode} % \begin{markdown} % @@ -29025,8 +30640,11 @@ function M.reader.new(writer, options) % \end{markdown} % \begin{macrocode} local function resolve_inline_link(t, opening_index, closing_index) - local inline_content = resolve_inline_following_content(t, closing_index, true, t.match_link_attributes) - render_link_or_image(t, opening_index, closing_index, closing_index, inline_content) + local inline_content + = resolve_inline_following_content(t, closing_index, true, + t.match_link_attributes) + render_link_or_image(t, opening_index, closing_index, + closing_index, inline_content) end % \end{macrocode} @@ -29037,10 +30655,14 @@ function M.reader.new(writer, options) % % \end{markdown} % \begin{macrocode} - local function resolve_note_inline_link(t, opening_index, closing_index) - local inline_content = resolve_inline_following_content(t, closing_index, false, false) - render_link_or_image(t, opening_index, closing_index, closing_index, inline_content) - end + local resolve_note_inline_link = + function(t, opening_index, closing_index) + local inline_content + = resolve_inline_following_content(t, closing_index, + false, false) + render_link_or_image(t, opening_index, closing_index, + closing_index, inline_content) + end % \end{macrocode} % \begin{markdown} @@ -29051,13 +30673,18 @@ function M.reader.new(writer, options) % \end{markdown} % \begin{macrocode} local function resolve_shortcut_link(t, opening_index, closing_index) - local content = collect_link_content(t, opening_index + 1, closing_index - 1) + local content + = collect_link_content(t, opening_index + 1, closing_index - 1) local r = self.lookup_reference(content) if r then - local inline_content = resolve_inline_following_content(t, closing_index, false, t.match_link_attributes) - r.attributes = join_attributes(r.attributes, inline_content.attributes) - render_link_or_image(t, opening_index, closing_index, closing_index, r) + local inline_content + = resolve_inline_following_content(t, closing_index, false, + t.match_link_attributes) + r.attributes + = join_attributes(r.attributes, inline_content.attributes) + render_link_or_image(t, opening_index, closing_index, + closing_index, r) end end @@ -29070,12 +30697,14 @@ function M.reader.new(writer, options) % \end{markdown} % \begin{macrocode} local function resolve_raw_note_link(t, opening_index, closing_index) - local content = collect_link_content(t, opening_index + 1, closing_index - 1) + local content + = collect_link_content(t, opening_index + 1, closing_index - 1) local r = self.lookup_note_reference(content) if r then local parsed_ref = self.parser_functions.parse_blocks_nested(r) - render_link_or_image(t, opening_index, closing_index, closing_index, parsed_ref) + render_link_or_image(t, opening_index, closing_index, + closing_index, parsed_ref) end end @@ -29088,15 +30717,22 @@ function M.reader.new(writer, options) % \end{markdown} % \begin{macrocode} local function resolve_full_link(t, opening_index, closing_index) - local next_link_closing_index = find_next_link_closing_index(t, closing_index + 4) - local next_link_content = collect_link_content(t, closing_index + 3, next_link_closing_index - 1) + local next_link_closing_index + = find_next_link_closing_index(t, closing_index + 4) + local next_link_content + = collect_link_content(t, closing_index + 3, + next_link_closing_index - 1) local r = self.lookup_reference(next_link_content) if r then - local inline_content = resolve_inline_following_content(t, next_link_closing_index, false, - t.match_link_attributes) - r.attributes = join_attributes(r.attributes, inline_content.attributes) - render_link_or_image(t, opening_index, next_link_closing_index, closing_index, r) + local inline_content + = resolve_inline_following_content(t, next_link_closing_index, + false, + t.match_link_attributes) + r.attributes + = join_attributes(r.attributes, inline_content.attributes) + render_link_or_image(t, opening_index, next_link_closing_index, + closing_index, r) end end @@ -29110,14 +30746,20 @@ function M.reader.new(writer, options) % \end{markdown} % \begin{macrocode} local function resolve_collapsed_link(t, opening_index, closing_index) - local next_link_closing_index = find_next_link_closing_index(t, closing_index + 4) - local content = collect_link_content(t, opening_index + 1, closing_index - 1) + local next_link_closing_index + = find_next_link_closing_index(t, closing_index + 4) + local content + = collect_link_content(t, opening_index + 1, closing_index - 1) local r = self.lookup_reference(content) if r then - local inline_content = resolve_inline_following_content(t, closing_index, false, t.match_link_attributes) - r.attributes = join_attributes(r.attributes, inline_content.attributes) - render_link_or_image(t, opening_index, next_link_closing_index, closing_index, r) + local inline_content + = resolve_inline_following_content(t, closing_index, false, + t.match_link_attributes) + r.attributes + = join_attributes(r.attributes, inline_content.attributes) + render_link_or_image(t, opening_index, next_link_closing_index, + closing_index, r) end end @@ -29137,9 +30779,12 @@ function M.reader.new(writer, options) end for i,value in ipairs(t) do - if not value.is_closing or - value.type ~= "delimiter" or - not (value.element == "link" or value.element == "image" or value.element == "note") then + if not value.is_closing + or value.type ~= "delimiter" + or not ( value.element == "link" + or value.element == "image" + or value.element == "note") + or value.removed then goto continue end @@ -29196,7 +30841,8 @@ function M.reader.new(writer, options) % % \end{markdown} % \begin{macrocode} - parsers.Str = (parsers.normalchar * (parsers.normalchar + parsers.at)^0) + parsers.Str = ( parsers.normalchar + * (parsers.normalchar + parsers.at)^0) / writer.string parsers.Symbol = (parsers.backtick^1 + V("SpecialChar")) @@ -29224,29 +30870,34 @@ function M.reader.new(writer, options) parsers.interrupting_bullets = parsers.fail parsers.interrupting_enumerators = parsers.fail else - parsers.interrupting_bullets = parsers.bullet(parsers.dash, true) - + parsers.bullet(parsers.asterisk, true) - + parsers.bullet(parsers.plus, true) - - parsers.interrupting_enumerators = parsers.enumerator(parsers.period, true) - + parsers.enumerator(parsers.rparent, true) + parsers.interrupting_bullets + = parsers.bullet(parsers.dash, true) + + parsers.bullet(parsers.asterisk, true) + + parsers.bullet(parsers.plus, true) + + parsers.interrupting_enumerators + = parsers.enumerator(parsers.period, true) + + parsers.enumerator(parsers.rparent, true) end if options.html then - parsers.html_interrupting = parsers.check_trail - * ( parsers.html_incomplete_open_tag - + parsers.html_incomplete_close_tag - + parsers.html_incomplete_open_special_tag - + parsers.html_comment_start - + parsers.html_cdatasection_start - + parsers.html_declaration_start - + parsers.html_instruction_start - - parsers.html_close_special_tag - - parsers.html_empty_special_tag) + parsers.html_interrupting + = parsers.check_trail + * ( parsers.html_incomplete_open_tag + + parsers.html_incomplete_close_tag + + parsers.html_incomplete_open_special_tag + + parsers.html_comment_start + + parsers.html_cdatasection_start + + parsers.html_declaration_start + + parsers.html_instruction_start + - parsers.html_close_special_tag + - parsers.html_empty_special_tag) else parsers.html_interrupting = parsers.fail end + parsers.ListStarter = parsers.starter + parsers.EndlineExceptions = parsers.blankline -- paragraph break + parsers.eof -- end of document @@ -29264,7 +30915,7 @@ function M.reader.new(writer, options) * -V("EndlineExceptions") + parsers.check_optional_indent * -V("EndlineExceptions") - * -parsers.starter) + * -V("ListStarter")) / function(_) return end * parsers.spacechar^0 parsers.Endline = parsers.endline @@ -29278,42 +30929,51 @@ function M.reader.new(writer, options) * -V("NoSoftLineBreakEndlineExceptions") + parsers.check_optional_indent * -V("NoSoftLineBreakEndlineExceptions") - * -parsers.starter) + * -V("ListStarter")) * parsers.spacechar^0 / writer.space - parsers.EndlineBreak = parsers.backslash * parsers.Endline + parsers.EndlineBreak = parsers.backslash * parsers.endline / writer.hard_line_break parsers.OptionalIndent = parsers.spacechar^1 / writer.space - parsers.Space = parsers.spacechar^2 * parsers.Endline + parsers.Space = parsers.spacechar^2 * parsers.endline / writer.hard_line_break - + parsers.spacechar^1 * parsers.Endline^-1 * parsers.eof / self.expandtabs - + parsers.spacechar^1 * parsers.Endline + + parsers.spacechar^1 + * parsers.endline^-1 + * parsers.eof / self.expandtabs + + parsers.spacechar^1 * parsers.endline / writer.soft_line_break - + parsers.spacechar^1 * -parsers.newline / self.expandtabs + + parsers.spacechar^1 + * -parsers.newline / self.expandtabs + + parsers.spacechar^1 parsers.NoSoftLineBreakSpace - = parsers.spacechar^2 * parsers.Endline + = parsers.spacechar^2 * parsers.endline / writer.hard_line_break - + parsers.spacechar^1 * parsers.Endline^-1 * parsers.eof / self.expandtabs - + parsers.spacechar^1 * parsers.Endline + + parsers.spacechar^1 + * parsers.endline^-1 + * parsers.eof / self.expandtabs + + parsers.spacechar^1 * parsers.endline / writer.soft_line_break - + parsers.spacechar^1 * -parsers.newline / self.expandtabs + + parsers.spacechar^1 + * -parsers.newline / self.expandtabs + + parsers.spacechar^1 parsers.NonbreakingEndline = parsers.endline - / writer.soft_line_break + / writer.nbsp parsers.NonbreakingSpace - = parsers.spacechar^2 * parsers.Endline - / writer.hard_line_break - + parsers.spacechar^1 * parsers.Endline^-1 * parsers.eof / "" - + parsers.spacechar^1 * parsers.Endline + = parsers.spacechar^2 * parsers.endline + / writer.nbsp + + parsers.spacechar^1 + * parsers.endline^-1 * parsers.eof / "" + + parsers.spacechar^1 * parsers.endline * parsers.optionalspace - / writer.soft_line_break + / writer.nbsp + parsers.spacechar^1 * parsers.optionalspace / writer.nbsp @@ -29362,18 +31022,20 @@ end parsers.LinkAndEmph = Ct(parsers.link_and_emph_table) / self.defer_link_and_emphasis_processing - parsers.EscapedChar = parsers.backslash * C(parsers.escapable) / writer.string + parsers.EscapedChar = parsers.backslash + * C(parsers.escapable) / writer.string - parsers.InlineHtml = Cs(parsers.html_inline_comment) / writer.inline_html_comment - + Cs(parsers.html_any_empty_inline_tag - + parsers.html_inline_instruction - + parsers.html_inline_cdatasection - + parsers.html_inline_declaration - + parsers.html_any_open_inline_tag - + parsers.html_any_close_tag) - / writer.inline_html_tag + parsers.InlineHtml = Cs(parsers.html_inline_comment) + / writer.inline_html_comment + + Cs(parsers.html_any_empty_inline_tag + + parsers.html_inline_instruction + + parsers.html_inline_cdatasection + + parsers.html_inline_declaration + + parsers.html_any_open_inline_tag + + parsers.html_any_close_tag) + / writer.inline_html_tag - parsers.HtmlEntity = parsers.html_entities / writer.string + parsers.HtmlEntity = parsers.html_entities / writer.string % \end{macrocode} % \par % \begin{markdown} @@ -29392,15 +31054,18 @@ end + parsers.html_declaration)) / writer.block_html_element - parsers.indented_non_blank_line = parsers.indentedline - parsers.blankline + parsers.indented_non_blank_line = parsers.indentedline + - parsers.blankline - parsers.Verbatim = Cs( - parsers.check_code_trail - * (parsers.line - parsers.blankline) - * ((parsers.check_minimal_blank_indent_and_full_code_trail * parsers.blankline)^0 - * ((parsers.check_minimal_indent / "") * parsers.check_code_trail - * (parsers.line - parsers.blankline))^1)^0 - ) / self.expandtabs / writer.verbatim + parsers.Verbatim + = Cs( parsers.check_code_trail + * (parsers.line - parsers.blankline) + * (( parsers.check_minimal_blank_indent_and_full_code_trail + * parsers.blankline)^0 + * ( (parsers.check_minimal_indent / "") + * parsers.check_code_trail + * (parsers.line - parsers.blankline))^1)^0) + / self.expandtabs / writer.verbatim parsers.Blockquote = parsers.blockquote_body / writer.blockquote @@ -29439,73 +31104,79 @@ end parsers.list_blank = parsers.conditionally_indented_blankline - parsers.ref_or_block_list_separated = parsers.sep_group_no_output(parsers.list_blank) - * parsers.minimally_indented_ref - + parsers.block_sep_group(parsers.list_blank) - * parsers.minimally_indented_block - - parsers.ref_or_block_non_separated = parsers.minimally_indented_ref - + (parsers.succeed / writer.interblocksep) - * parsers.minimally_indented_block - - parsers.minimally_indented_blankline - - parsers.tight_list_loop_body_pair = - parsers.create_loop_body_pair(parsers.ref_or_block_non_separated, - parsers.minimally_indented_par_or_plain_no_blank, - (parsers.succeed / writer.interblocksep), - (parsers.succeed / writer.paragraphsep)) - - parsers.loose_list_loop_body_pair = - parsers.create_loop_body_pair(parsers.ref_or_block_list_separated, - parsers.minimally_indented_par_or_plain, - parsers.block_sep_group(parsers.list_blank), - parsers.par_sep_group(parsers.list_blank)) - - parsers.tight_list_content_loop = V("Block") - * parsers.tight_list_loop_body_pair.block^0 - + (V("Paragraph") + V("Plain")) - * parsers.ref_or_block_non_separated - * parsers.tight_list_loop_body_pair.block^0 - + (V("Paragraph") + V("Plain")) - * parsers.tight_list_loop_body_pair.par^0 - - parsers.loose_list_content_loop = V("Block") - * parsers.loose_list_loop_body_pair.block^0 - + (V("Paragraph") + V("Plain")) - * parsers.ref_or_block_list_separated - * parsers.loose_list_loop_body_pair.block^0 - + (V("Paragraph") + V("Plain")) - * parsers.loose_list_loop_body_pair.par^0 - - parsers.list_item_tightness_condition = -#( parsers.list_blank^0 - * parsers.minimally_indented_ref_or_block_or_par) - * remove_indent("li") - + remove_indent("li") - * parsers.fail - - parsers.indented_content_tight = Ct( (parsers.blankline / "") - * #parsers.list_blank - * remove_indent("li") - + ( (V("Reference") + (parsers.blankline / "")) - * parsers.check_minimal_indent - * parsers.tight_list_content_loop - + (V("Reference") + (parsers.blankline / "")) - + (parsers.tickbox^-1 / writer.escape) - * parsers.tight_list_content_loop - ) - * parsers.list_item_tightness_condition - ) - - parsers.indented_content_loose = Ct( (parsers.blankline / "") - * #parsers.list_blank - + ( (V("Reference") + (parsers.blankline / "")) - * parsers.check_minimal_indent - * parsers.loose_list_content_loop - + (V("Reference") + (parsers.blankline / "")) - + (parsers.tickbox^-1 / writer.escape) - * parsers.loose_list_content_loop - ) - ) + parsers.ref_or_block_list_separated + = parsers.sep_group_no_output(parsers.list_blank) + * parsers.minimally_indented_ref + + parsers.block_sep_group(parsers.list_blank) + * parsers.minimally_indented_block + + parsers.ref_or_block_non_separated + = parsers.minimally_indented_ref + + (parsers.succeed / writer.interblocksep) + * parsers.minimally_indented_block + - parsers.minimally_indented_blankline + + parsers.tight_list_loop_body_pair = + parsers.create_loop_body_pair( + parsers.ref_or_block_non_separated, + parsers.minimally_indented_par_or_plain_no_blank, + (parsers.succeed / writer.interblocksep), + (parsers.succeed / writer.paragraphsep)) + + parsers.loose_list_loop_body_pair = + parsers.create_loop_body_pair( + parsers.ref_or_block_list_separated, + parsers.minimally_indented_par_or_plain, + parsers.block_sep_group(parsers.list_blank), + parsers.par_sep_group(parsers.list_blank)) + + parsers.tight_list_content_loop + = V("Block") + * parsers.tight_list_loop_body_pair.block^0 + + (V("Paragraph") + V("Plain")) + * parsers.ref_or_block_non_separated + * parsers.tight_list_loop_body_pair.block^0 + + (V("Paragraph") + V("Plain")) + * parsers.tight_list_loop_body_pair.par^0 + + parsers.loose_list_content_loop + = V("Block") + * parsers.loose_list_loop_body_pair.block^0 + + (V("Paragraph") + V("Plain")) + * parsers.ref_or_block_list_separated + * parsers.loose_list_loop_body_pair.block^0 + + (V("Paragraph") + V("Plain")) + * parsers.loose_list_loop_body_pair.par^0 + + parsers.list_item_tightness_condition + = -#( parsers.list_blank^0 + * parsers.minimally_indented_ref_or_block_or_par) + * remove_indent("li") + + remove_indent("li") + * parsers.fail + + parsers.indented_content_tight + = Ct( (parsers.blankline / "") + * #parsers.list_blank + * remove_indent("li") + + ( (V("Reference") + (parsers.blankline / "")) + * parsers.check_minimal_indent + * parsers.tight_list_content_loop + + (V("Reference") + (parsers.blankline / "")) + + (parsers.tickbox^-1 / writer.escape) + * parsers.tight_list_content_loop + ) + * parsers.list_item_tightness_condition) + + parsers.indented_content_loose + = Ct( (parsers.blankline / "") + * #parsers.list_blank + + ( (V("Reference") + (parsers.blankline / "")) + * parsers.check_minimal_indent + * parsers.loose_list_content_loop + + (V("Reference") + (parsers.blankline / "")) + + (parsers.tickbox^-1 / writer.escape) + * parsers.loose_list_content_loop)) parsers.TightListItem = function(starter) return -parsers.ThematicBreak @@ -29563,13 +31234,15 @@ end local enumerator = parsers.enumerator(delimiter_type) return Cg(enumerator, "listtype") * (Ct( parsers.TightListItem(Cb("listtype")) - * ((parsers.check_minimal_indent / "") * parsers.TightListItem(enumerator))^0) + * ( (parsers.check_minimal_indent / "") + * parsers.TightListItem(enumerator))^0) * Cc(true) * -#((parsers.list_blank^0 / "") * parsers.check_minimal_indent * enumerator) + Ct( parsers.LooseListItem(Cb("listtype")) * ((parsers.list_blank^0 / "") - * (parsers.check_minimal_indent / "") * parsers.LooseListItem(enumerator))^0) + * (parsers.check_minimal_indent / "") + * parsers.LooseListItem(enumerator))^0) * Cc(false) ) * Ct(Cb("listtype")) / ordered_list end @@ -29622,15 +31295,21 @@ end - parsers.thematic_break_lines parsers.heading_text = parsers.heading_line - * ((V("Endline") / "\n") * (parsers.heading_line - parsers.heading_level))^0 + * ( (V("Endline") / "\n") + * ( parsers.heading_line + - parsers.heading_level))^0 * parsers.newline^-1 - parsers.SetextHeading = parsers.freeze_trail * parsers.check_trail_no_rem - * #(parsers.heading_text - * parsers.check_minimal_indent * parsers.check_trail * parsers.heading_level) + parsers.SetextHeading = parsers.freeze_trail + * parsers.check_trail_no_rem + * #( parsers.heading_text + * parsers.check_minimal_indent + * parsers.check_trail + * parsers.heading_level) * Cs(parsers.heading_text) / parsers.parse_heading_text - * parsers.check_minimal_indent_and_trail * parsers.heading_level + * parsers.check_minimal_indent_and_trail + * parsers.heading_level * parsers.newline * parsers.unfreeze_trail / writer.heading @@ -29682,14 +31361,18 @@ end local current_extension_name = nil self.insert_pattern = function(selector, pattern, pattern_name) assert(pattern_name == nil or type(pattern_name) == "string") - local _, _, lhs, pos, rhs = selector:find("^(%a+)%s+([%a%s]+%a+)%s+(%a+)$") + local _, _, lhs, pos, rhs + = selector:find("^(%a+)%s+([%a%s]+%a+)%s+(%a+)$") assert(lhs ~= nil, - [[Expected selector in form "LHS (before|after|instead of) RHS", not "]] + [[Expected selector in form ]] + .. [["LHS (before|after|instead of) RHS", not "]] .. selector .. [["]]) assert(walkable_syntax[lhs] ~= nil, - [[Rule ]] .. lhs .. [[ -> ... does not exist in markdown grammar]]) + [[Rule ]] .. lhs + .. [[ -> ... does not exist in markdown grammar]]) assert(pos == "before" or pos == "after" or pos == "instead of", - [[Expected positional specifier "before", "after", or "instead of", not "]] + [[Expected positional specifier "before", "after", ]] + .. [[or "instead of", not "]] .. pos .. [["]]) local rule = walkable_syntax[lhs] local index = nil @@ -29707,10 +31390,12 @@ end .. [[ does not exist in markdown grammar]]) local accountable_pattern if current_extension_name then - accountable_pattern = { pattern, current_extension_name, pattern_name } + accountable_pattern + = {pattern, current_extension_name, pattern_name} else assert(type(pattern) == "string", - [[reader->insert_pattern() was called outside an extension with ]] + [[reader->insert_pattern() was called outside ]] + .. [[an extension with ]] .. [[a PEG pattern instead of a rule name]]) accountable_pattern = pattern end @@ -29733,11 +31418,9 @@ end local syntax = { "Blocks", - Blocks = V("InitializeState") - * ( V("ExpectedJekyllData") - * (V("Blank")^0 / writer.interblocksep) - )^-1 - * V("Blank")^0 + Blocks = V("InitializeState") + * V("ExpectedJekyllData") + * V("Blank")^0 % \end{macrocode} % \par % \begin{markdown} @@ -29748,71 +31431,73 @@ end % % \end{markdown} % \begin{macrocode} - * ( V("Block") - * ( V("Blank")^0 * parsers.eof - + ( V("Blank")^2 / writer.paragraphsep - + V("Blank")^0 / writer.interblocksep - ) - ) - + ( V("Paragraph") + V("Plain") ) - * ( V("Blank")^0 * parsers.eof - + ( V("Blank")^2 / writer.paragraphsep - + V("Blank")^0 / writer.interblocksep - ) - ) - * V("Block") - * ( V("Blank")^0 * parsers.eof - + ( V("Blank")^2 / writer.paragraphsep - + V("Blank")^0 / writer.interblocksep - ) - ) - + ( V("Paragraph") + V("Plain") ) - * ( V("Blank")^0 * parsers.eof - + V("Blank")^0 / writer.paragraphsep - ) - )^0, - - ExpectedJekyllData = parsers.fail, - - Blank = parsers.Blank, - Reference = parsers.Reference, - - Blockquote = parsers.Blockquote, - Verbatim = parsers.Verbatim, - ThematicBreak = parsers.ThematicBreak, - BulletList = parsers.BulletList, - OrderedList = parsers.OrderedList, - DisplayHtml = parsers.DisplayHtml, - Heading = parsers.Heading, - Paragraph = parsers.Paragraph, - Plain = parsers.Plain, - - EndlineExceptions = parsers.EndlineExceptions, + * ( V("Block") + * ( V("Blank")^0 * parsers.eof + + ( V("Blank")^2 / writer.paragraphsep + + V("Blank")^0 / writer.interblocksep + ) + ) + + ( V("Paragraph") + V("Plain") ) + * ( V("Blank")^0 * parsers.eof + + ( V("Blank")^2 / writer.paragraphsep + + V("Blank")^0 / writer.interblocksep + ) + ) + * V("Block") + * ( V("Blank")^0 * parsers.eof + + ( V("Blank")^2 / writer.paragraphsep + + V("Blank")^0 / writer.interblocksep + ) + ) + + ( V("Paragraph") + V("Plain") ) + * ( V("Blank")^0 * parsers.eof + + V("Blank")^0 / writer.paragraphsep + ) + )^0, + + ExpectedJekyllData = parsers.succeed, + + Blank = parsers.Blank, + Reference = parsers.Reference, + + Blockquote = parsers.Blockquote, + Verbatim = parsers.Verbatim, + ThematicBreak = parsers.ThematicBreak, + BulletList = parsers.BulletList, + OrderedList = parsers.OrderedList, + DisplayHtml = parsers.DisplayHtml, + Heading = parsers.Heading, + Paragraph = parsers.Paragraph, + Plain = parsers.Plain, + + ListStarter = parsers.ListStarter, + EndlineExceptions = parsers.EndlineExceptions, NoSoftLineBreakEndlineExceptions - = parsers.NoSoftLineBreakEndlineExceptions, - - Str = parsers.Str, - Space = parsers.Space, - NoSoftLineBreakSpace = parsers.NoSoftLineBreakSpace, - OptionalIndent = parsers.OptionalIndent, - Endline = parsers.Endline, - EndlineNoSub = parsers.EndlineNoSub, + = parsers.NoSoftLineBreakEndlineExceptions, + + Str = parsers.Str, + Space = parsers.Space, + NoSoftLineBreakSpace + = parsers.NoSoftLineBreakSpace, + OptionalIndent = parsers.OptionalIndent, + Endline = parsers.Endline, + EndlineNoSub = parsers.EndlineNoSub, NoSoftLineBreakEndline - = parsers.NoSoftLineBreakEndline, - EndlineBreak = parsers.EndlineBreak, - LinkAndEmph = parsers.LinkAndEmph, - Code = parsers.Code, - AutoLinkUrl = parsers.AutoLinkUrl, - AutoLinkEmail = parsers.AutoLinkEmail, + = parsers.NoSoftLineBreakEndline, + EndlineBreak = parsers.EndlineBreak, + LinkAndEmph = parsers.LinkAndEmph, + Code = parsers.Code, + AutoLinkUrl = parsers.AutoLinkUrl, + AutoLinkEmail = parsers.AutoLinkEmail, AutoLinkRelativeReference - = parsers.AutoLinkRelativeReference, - InlineHtml = parsers.InlineHtml, - HtmlEntity = parsers.HtmlEntity, - EscapedChar = parsers.EscapedChar, - Smart = parsers.Smart, - Symbol = parsers.Symbol, - SpecialChar = parsers.fail, - InitializeState = parsers.succeed, + = parsers.AutoLinkRelativeReference, + InlineHtml = parsers.InlineHtml, + HtmlEntity = parsers.HtmlEntity, + EscapedChar = parsers.EscapedChar, + Smart = parsers.Smart, + Symbol = parsers.Symbol, + SpecialChar = parsers.fail, + InitializeState = parsers.succeed, } % \end{macrocode} % \par @@ -29830,13 +31515,17 @@ end self.update_rule = function(rule_name, get_pattern) assert(current_extension_name ~= nil) assert(syntax[rule_name] ~= nil, - [[Rule ]] .. rule_name .. [[ -> ... does not exist in markdown grammar]]) + [[Rule ]] .. rule_name + .. [[ -> ... does not exist in markdown grammar]]) local previous_pattern local extension_name if walkable_syntax[rule_name] then - local previous_accountable_pattern = walkable_syntax[rule_name][1] + local previous_accountable_pattern + = walkable_syntax[rule_name][1] previous_pattern = previous_accountable_pattern[1] - extension_name = previous_accountable_pattern[2] .. ", " .. current_extension_name + extension_name + = previous_accountable_pattern[2] + .. ", " .. current_extension_name else previous_pattern = nil extension_name = current_extension_name @@ -29966,9 +31655,11 @@ end pattern_name = "Anonymous Pattern" end local extension_name = rhs[2] - human_readable_rhs = pattern_name .. [[ (]] .. extension_name .. [[)]] + human_readable_rhs = pattern_name .. [[ (]] + .. extension_name .. [[)]] end - local encoded_rhs = util.encode_json_string(human_readable_rhs) + local encoded_rhs + = util.encode_json_string(human_readable_rhs) local output_line = [[ ]] .. encoded_rhs if rhs_index < #rule then output_line = output_line .. "," @@ -29986,7 +31677,8 @@ end local output = table.concat(output_lines, "\n") local output_filename = options.debugExtensionsFileName local output_file = assert(io.open(output_filename, "w"), - [[Could not open file "]] .. output_filename .. [[" for writing]]) + [[Could not open file "]] .. output_filename + .. [[" for writing]]) assert(output_file:write(output)) assert(output_file:close()) end @@ -30079,7 +31771,7 @@ end end local blocks_nested_t = util.table_copy(syntax) - blocks_nested_t.ExpectedJekyllData = parsers.fail + blocks_nested_t.ExpectedJekyllData = parsers.succeed parsers.blocks_nested = Ct(blocks_nested_t) parsers.blocks = Ct(syntax) @@ -30109,8 +31801,10 @@ end local inlines_no_link_or_emphasis_t = util.table_copy(inlines_t) inlines_no_link_or_emphasis_t.LinkAndEmph = parsers.fail - inlines_no_link_or_emphasis_t.EndlineExceptions = parsers.EndlineExceptions - parsers.eof - parsers.inlines_no_link_or_emphasis = Ct(inlines_no_link_or_emphasis_t) + inlines_no_link_or_emphasis_t.EndlineExceptions + = parsers.EndlineExceptions - parsers.eof + parsers.inlines_no_link_or_emphasis + = Ct(inlines_no_link_or_emphasis_t) % \end{macrocode} % \par % \begin{markdown} @@ -30137,7 +31831,8 @@ end elseif form == "nfkd" then input = uni_algos.normalize.NFKD(input) else - error(format("Unknown normalization form %s", form)) + return writer.error( + format("Unknown normalization form %s.", form)) end end % \end{macrocode} @@ -30153,30 +31848,12 @@ end end % \end{macrocode} % \begin{markdown} -% When determining the name of the cache file, create salt for the hashing -% function out of the package version and the passed options recognized by the -% Lua interface (see Section <#sec:lua-options>). The \Opt{cacheDir} option -% is disregarded. +% Clear the table of references. % \end{markdown} % \begin{macrocode} references = {} - local opt_string = {} - for k, _ in pairs(defaultOptions) do - local v = options[k] - if type(v) == "table" then - for _, i in ipairs(v) do - opt_string[#opt_string+1] = k .. "=" .. tostring(i) - end - elseif k ~= "cacheDir" then - opt_string[#opt_string+1] = k .. "=" .. tostring(v) - end - end - table.sort(opt_string) - local salt = table.concat(opt_string, ",") .. "," .. metadata.version - local output - local function convert(input) - local document = self.parser_functions.parse_blocks(input) - local output = util.rope_to_string(writer.document(document)) + local document = self.parser_functions.parse_blocks(input) + local output = util.rope_to_string(writer.document(document)) % \end{macrocode} % \begin{markdown} % Remove block element / paragraph separators immediately followed by the @@ -30184,82 +31861,49 @@ end % Then, remove any leftover output of \luamref{writer->undosep}. % \end{markdown} % \begin{macrocode} - local undosep_start, undosep_end - local potential_secend_start, secend_start - local potential_sep_start, sep_start + local undosep_start, undosep_end + local potential_secend_start, secend_start + local potential_sep_start, sep_start + while true do + -- find a `writer->undosep` + undosep_start, undosep_end + = output:find(writer.undosep_text, 1, true) + if undosep_start == nil then break end + -- skip any preceding section ends + secend_start = undosep_start while true do - -- find a `writer->undosep` - undosep_start, undosep_end = output:find(writer.undosep_text, 1, true) - if undosep_start == nil then break end - -- skip any preceding section ends - secend_start = undosep_start - while true do - potential_secend_start = secend_start - #writer.secend_text - if potential_secend_start < 1 - or output:sub(potential_secend_start, secend_start - 1) ~= writer.secend_text then - break - end - secend_start = potential_secend_start + potential_secend_start = secend_start - #writer.secend_text + if potential_secend_start < 1 + or output:sub(potential_secend_start, + secend_start - 1) ~= writer.secend_text + then + break end - -- find an immediately preceding block element / paragraph separator - sep_start = secend_start - potential_sep_start = sep_start - #writer.interblocksep_text + secend_start = potential_secend_start + end + -- find an immediately preceding + -- block element / paragraph separator + sep_start = secend_start + potential_sep_start = sep_start - #writer.interblocksep_text + if potential_sep_start >= 1 + and output:sub(potential_sep_start, + sep_start - 1) == writer.interblocksep_text + then + sep_start = potential_sep_start + else + potential_sep_start = sep_start - #writer.paragraphsep_text if potential_sep_start >= 1 - and output:sub(potential_sep_start, sep_start - 1) == writer.interblocksep_text then + and output:sub(potential_sep_start, + sep_start - 1) == writer.paragraphsep_text + then sep_start = potential_sep_start - else - potential_sep_start = sep_start - #writer.paragraphsep_text - if potential_sep_start >= 1 - and output:sub(potential_sep_start, sep_start - 1) == writer.paragraphsep_text then - sep_start = potential_sep_start - end end - -- remove `writer->undosep` and immediately preceding block element / paragraph separator - output = output:sub(1, sep_start - 1) - .. output:sub(secend_start, undosep_start - 1) - .. output:sub(undosep_end + 1) - end - return output - end -% \end{macrocode} -% \begin{markdown} -% If we cache markdown documents, produce the cache file and transform its -% filename to plain \TeX{} output via the \luamref{writer->pack} method. -% \end{markdown} -% \begin{macrocode} - if options.eagerCache or options.finalizeCache then - local name = util.cache(options.cacheDir, input, salt, convert, - ".md" .. writer.suffix) - output = writer.pack(name) -% \end{macrocode} -% \begin{markdown} -% Otherwise, return the result of the conversion directly. -% \end{markdown} -% \begin{macrocode} - else - output = convert(input) - end -% \end{macrocode} -% \begin{markdown} -% If the \Opt{finalizeCache} option is enabled, populate the frozen cache in -% the file \Opt{frozenCacheFileName} with an entry for markdown document -% number \Opt{frozenCacheCounter}. -% \end{markdown} -% \begin{macrocode} - if options.finalizeCache then - local file, mode - if options.frozenCacheCounter > 0 then - mode = "a" - else - mode = "w" end - file = assert(io.open(options.frozenCacheFileName, mode), - [[Could not open file "]] .. options.frozenCacheFileName - .. [[" for writing]]) - assert(file:write([[\expandafter\global\expandafter\def\csname ]] - .. [[markdownFrozenCache]] .. options.frozenCacheCounter - .. [[\endcsname{]] .. output .. [[}]] .. "\n")) - assert(file:close()) + -- remove `writer->undosep` and immediately preceding + -- block element / paragraph separator + output = output:sub(1, sep_start - 1) + .. output:sub(secend_start, undosep_start - 1) + .. output:sub(undosep_end + 1) end return output end @@ -30321,10 +31965,13 @@ M.extensions.bracketed_spans = function() + parsers.autolink + V("InlineHtml") + ( parsers.backslash * parsers.backslash) - + ( parsers.backslash * (parsers.lbracket + parsers.rbracket) + + ( parsers.backslash + * (parsers.lbracket + parsers.rbracket) + V("Space") + V("Endline") + (parsers.any - - (parsers.newline + parsers.lbracket + parsers.rbracket + - ( parsers.newline + + parsers.lbracket + + parsers.rbracket + parsers.blankline^2))))^1) / self.parser_functions.parse_inlines) * parsers.rbracket @@ -30387,11 +32034,15 @@ M.extensions.citations = function(citation_nbsps) end end else - table.insert(buffer, {"\\markdownRenderer", text_cites and "TextCite" or "Cite", - "{", #cites, "}"}) + table.insert(buffer, + {"\\markdownRenderer", + text_cites and "TextCite" or "Cite", + "{", #cites, "}"}) for _,cite in ipairs(cites) do - table.insert(buffer, {cite.suppress_author and "-" or "+", "{", - cite.prenote or "", "}{", cite.postnote or "", "}{", cite.name, "}"}) + table.insert(buffer, + {cite.suppress_author and "-" or "+", "{", + cite.prenote or "", "}{", + cite.postnote or "", "}{", cite.name, "}"}) end end return buffer @@ -30407,12 +32058,16 @@ M.extensions.citations = function(citation_nbsps) local citation_name = Cs(parsers.dash^-1) * parsers.at * Cs(citation_chars - * (((citation_chars + parsers.internal_punctuation + * ((( citation_chars + + parsers.internal_punctuation - parsers.comma - parsers.semicolon) - * -#((parsers.internal_punctuation - parsers.comma + * -#(( parsers.internal_punctuation + - parsers.comma - parsers.semicolon)^0 - * -(citation_chars + parsers.internal_punctuation - - parsers.comma - parsers.semicolon)))^0 + * -( citation_chars + + parsers.internal_punctuation + - parsers.comma + - parsers.semicolon)))^0 * citation_chars)^-1) local citation_body_prenote @@ -30421,10 +32076,14 @@ M.extensions.citations = function(citation_nbsps) + parsers.inticks + parsers.autolink + V("InlineHtml") - + V("Space") + V("Endline") + + V("Space") + V("EndlineNoSub") + (parsers.anyescaped - - (parsers.newline + parsers.rbracket + parsers.blankline^2)) - - (parsers.spnl * parsers.dash^-1 * parsers.at))^1) + - ( parsers.newline + + parsers.rbracket + + parsers.blankline^2)) + - ( parsers.spnl + * parsers.dash^-1 + * parsers.at))^1) local citation_body_postnote = Cs((parsers.alphanumeric^1 @@ -30432,9 +32091,11 @@ M.extensions.citations = function(citation_nbsps) + parsers.inticks + parsers.autolink + V("InlineHtml") - + V("Space") + V("Endline") + + V("Space") + V("EndlineNoSub") + (parsers.anyescaped - - (parsers.newline + parsers.rbracket + parsers.semicolon + - ( parsers.newline + + parsers.rbracket + + parsers.semicolon + parsers.blankline^2)) - (parsers.spnl * parsers.rbracket))^1) @@ -30445,8 +32106,9 @@ M.extensions.citations = function(citation_nbsps) * parsers.spnlc ) * citation_name - * (parsers.internal_punctuation - parsers.semicolon)^-1 - * ( parsers.spnlc + * ( parsers.internal_punctuation + - parsers.semicolon)^-1 + * ( parsers.spnlc / function(_) return end * citation_body_postnote + Cc("") * parsers.spnlc @@ -30467,7 +32129,9 @@ M.extensions.citations = function(citation_nbsps) + V("InlineHtml") + V("Space") + V("Endline") + (parsers.anyescaped - - (parsers.newline + parsers.rbracket + parsers.at + - ( parsers.newline + + parsers.rbracket + + parsers.at + parsers.semicolon + parsers.blankline^2)) - (parsers.spnl * parsers.rbracket))^0) @@ -30561,7 +32225,8 @@ M.extensions.content_blocks = function(language_map) % \begin{macrocode} local languages_json = (function() local base, prev, curr - for _, pathname in ipairs{kpse.lookup(language_map, { all=true })} do + for _, pathname in ipairs{kpse.lookup(language_map, + {all=true})} do local file = io.open(pathname, "r") if not file then goto continue end local input = assert(file:read("*a")) @@ -30602,20 +32267,20 @@ M.extensions.content_blocks = function(language_map) suf = suf:lower() if type == "onlineimage" then return {"\\markdownRendererContentBlockOnlineImage{",suf,"}", - "{",self.string(src),"}", - "{",self.uri(src),"}", - "{",self.string(tit or ""),"}"} + "{",self.string(src),"}", + "{",self.uri(src),"}", + "{",self.string(tit or ""),"}"} elseif languages_json[suf] then return {"\\markdownRendererContentBlockCode{",suf,"}", - "{",self.string(languages_json[suf]),"}", - "{",self.string(src),"}", - "{",self.uri(src),"}", - "{",self.string(tit or ""),"}"} + "{",self.string(languages_json[suf]),"}", + "{",self.string(src),"}", + "{",self.uri(src),"}", + "{",self.string(tit or ""),"}"} else return {"\\markdownRendererContentBlock{",suf,"}", - "{",self.string(src),"}", - "{",self.uri(src),"}", - "{",self.string(tit or ""),"}"} + "{",self.string(src),"}", + "{",self.uri(src),"}", + "{",self.string(tit or ""),"}"} end end end, extend_reader = function(self) @@ -30650,8 +32315,8 @@ M.extensions.content_blocks = function(language_map) return parser end)("png", "jpg", "jpeg", "gif", "tif", "tiff") - -- online image url for iA Writer content blocks with mandatory suffix, - -- allowing nested brackets: + -- online image url for iA Writer content blocks with + -- mandatory suffix, allowing nested brackets: local onlineimageurl = (parsers.less * Cs((parsers.anyescaped @@ -30729,8 +32394,9 @@ M.extensions.definition_lists = function(tight_lists) local function dlitem(term, defs) local retVal = {"\\markdownRendererDlItem{",term,"}"} for _, def in ipairs(defs) do - retVal[#retVal+1] = {"\\markdownRendererDlDefinitionBegin ",def, - "\\markdownRendererDlDefinitionEnd "} + retVal[#retVal+1] + = {"\\markdownRendererDlDefinitionBegin ",def, + "\\markdownRendererDlDefinitionEnd "} end retVal[#retVal+1] = "\\markdownRendererDlItemEnd " return retVal @@ -30756,17 +32422,26 @@ M.extensions.definition_lists = function(tight_lists) local defstartchar = S("~:") - local defstart = parsers.check_trail_length(0) * defstartchar * #parsers.spacing - * (parsers.tab + parsers.space^-3) - + parsers.check_trail_length(1) * defstartchar * #parsers.spacing - * (parsers.tab + parsers.space^-2) - + parsers.check_trail_length(2) * defstartchar * #parsers.spacing - * (parsers.tab + parsers.space^-1) - + parsers.check_trail_length(3) * defstartchar * #parsers.spacing - - local indented_line = (parsers.check_minimal_indent / "") * parsers.check_code_trail * parsers.line - - local blank = parsers.check_minimal_blank_indent_and_any_trail * parsers.optionalspace * parsers.newline + local defstart + = parsers.check_trail_length(0) * defstartchar + * #parsers.spacing + * (parsers.tab + parsers.space^-3) + + parsers.check_trail_length(1) + * defstartchar * #parsers.spacing + * (parsers.tab + parsers.space^-2) + + parsers.check_trail_length(2) + * defstartchar * #parsers.spacing + * (parsers.tab + parsers.space^-1) + + parsers.check_trail_length(3) + * defstartchar * #parsers.spacing + + local indented_line + = (parsers.check_minimal_indent / "") + * parsers.check_code_trail * parsers.line + + local blank + = parsers.check_minimal_blank_indent_and_any_trail + * parsers.optionalspace * parsers.newline local dlchunk = Cs(parsers.line * (indented_line - blank)^0) @@ -30783,24 +32458,24 @@ M.extensions.definition_lists = function(tight_lists) end local DefinitionListItemLoose - = C(parsers.line) * blank^0 - * Ct((parsers.check_minimal_indent * (defstart - * indented_blocks(dlchunk) - / self.parser_functions.parse_blocks_nested))^1) - * Cc(false) / definition_list_item + = C(parsers.line) * blank^0 + * Ct((parsers.check_minimal_indent * (defstart + * indented_blocks(dlchunk) + / self.parser_functions.parse_blocks_nested))^1) + * Cc(false) / definition_list_item local DefinitionListItemTight - = C(parsers.line) - * Ct((parsers.check_minimal_indent * (defstart * dlchunk - / self.parser_functions.parse_blocks_nested))^1) - * Cc(true) / definition_list_item + = C(parsers.line) + * Ct((parsers.check_minimal_indent * (defstart * dlchunk + / self.parser_functions.parse_blocks_nested))^1) + * Cc(true) / definition_list_item local DefinitionList - = ( Ct(DefinitionListItemLoose^1) * Cc(false) - + Ct(DefinitionListItemTight^1) - * (blank^0 - * -DefinitionListItemLoose * Cc(true)) - ) / writer.definitionlist + = ( Ct(DefinitionListItemLoose^1) * Cc(false) + + Ct(DefinitionListItemTight^1) + * (blank^0 + * -DefinitionListItemLoose * Cc(true)) + ) / writer.definitionlist self.insert_pattern("Block after Heading", DefinitionList, "DefinitionList") @@ -30885,7 +32560,8 @@ M.extensions.fancy_lists = function() return {"\\markdownRendererFancyOlItemWithNumber{",num,"}",s, "\\markdownRendererFancyOlItemEnd "} else - return {"\\markdownRendererFancyOlItem ",s,"\\markdownRendererFancyOlItemEnd "} + return {"\\markdownRendererFancyOlItem ",s, + "\\markdownRendererFancyOlItemEnd "} end end end, extend_reader = function(self) @@ -30906,7 +32582,8 @@ M.extensions.fancy_lists = function() continuation_marker = marker end for _,delim in ipairs(delims) do - table.insert(markers_table, {start_marker, continuation_marker, delim}) + table.insert(markers_table, + {start_marker, continuation_marker, delim}) end end return markers_table @@ -30925,15 +32602,18 @@ M.extensions.fancy_lists = function() local roman_marker = function(chars) local m, d, c = P(chars[1]), P(chars[2]), P(chars[3]) - local l, x, v, i = P(chars[4]), P(chars[5]), P(chars[6]), P(chars[7]) + local l, x, v, i + = P(chars[4]), P(chars[5]), P(chars[6]), P(chars[7]) return m^-3 * (c*m + c*d + d^-1 * c^-3) * (x*c + x*l + l^-1 * x^-3) * (i*x + i*v + v^-1 * i^-3) end - local lowercase_roman_marker = roman_marker({"m", "d", "c", "l", "x", "v", "i"}) - local uppercase_roman_marker = roman_marker({"M", "D", "C", "L", "X", "V", "I"}) + local lowercase_roman_marker + = roman_marker({"m", "d", "c", "l", "x", "v", "i"}) + local uppercase_roman_marker + = roman_marker({"M", "D", "C", "L", "X", "V", "I"}) local lowercase_opening_roman_marker = P("i") local uppercase_opening_roman_marker = P("I") @@ -30957,7 +32637,8 @@ M.extensions.fancy_lists = function() local markers_table = combine_markers_and_delims(markers, delims) - local function enumerator(start_marker, _, delimiter_type, interrupting) + local function enumerator(start_marker, _, + delimiter_type, interrupting) local delimiter_range local allowed_end if interrupting then @@ -30965,7 +32646,8 @@ M.extensions.fancy_lists = function() allowed_end = C(parsers.spacechar^1) * #parsers.linechar else delimiter_range = start_marker - allowed_end = C(parsers.spacechar^1) + #(parsers.newline + parsers.eof) + allowed_end = C(parsers.spacechar^1) + + #(parsers.newline + parsers.eof) end return parsers.check_trail @@ -30987,13 +32669,15 @@ M.extensions.fancy_lists = function() end local function roman2number(roman) - local romans = { ["M"] = 1000, ["D"] = 500, ["C"] = 100, ["L"] = 50, ["X"] = 10, ["V"] = 5, ["I"] = 1 } + local romans = { ["M"] = 1000, ["D"] = 500, ["C"] = 100, + ["L"] = 50, ["X"] = 10, ["V"] = 5, ["I"] = 1 } local numeral = 0 local i = 1 local len = string.len(roman) while i < len do - local z1, z2 = romans[ string.sub(roman, i, i) ], romans[ string.sub(roman, i+1, i+1) ] + local z1, z2 = romans[ string.sub(roman, i, i) ], + romans[ string.sub(roman, i+1, i+1) ] if z1 < z2 then numeral = numeral + (z2 - z1) i = i + 2 @@ -31002,7 +32686,9 @@ M.extensions.fancy_lists = function() i = i + 1 end end - if i <= len then numeral = numeral + romans[ string.sub(roman,i,i) ] end + if i <= len then + numeral = numeral + romans[ string.sub(roman,i,i) ] + end return numeral end @@ -31027,11 +32713,13 @@ M.extensions.fancy_lists = function() end num = numstr:match("^([A-Z])$") if num then - return string.byte(num) - string.byte("A") + 1, "UpperAlpha", numdelim + return string.byte(num) - string.byte("A") + 1, + "UpperAlpha", numdelim end num = numstr:match("^([a-z])$") if num then - return string.byte(num) - string.byte("a") + 1, "LowerAlpha", numdelim + return string.byte(num) - string.byte("a") + 1, + "LowerAlpha", numdelim end num = numstr:match("^([IVXLCDM]+)") if num then @@ -31045,42 +32733,44 @@ M.extensions.fancy_lists = function() end local function fancylist(items,tight,start) - local startnum, numstyle, numdelim = sniffstyle(start[2][1], start[2][2]) + local startnum, numstyle, numdelim + = sniffstyle(start[2][1], start[2][2]) return writer.fancylist(items,tight, options.startNumber and startnum or 1, numstyle or "Decimal", numdelim or "Default") end - local FancyListOfType = function(start_marker, continuation_marker, delimiter_type) - local enumerator_start = enumerator(start_marker, continuation_marker, delimiter_type) - local enumerator_cont = enumerator(continuation_marker, continuation_marker, delimiter_type) - return Cg(enumerator_start, "listtype") - * (Ct( TightListItem(Cb("listtype")) - * ((parsers.check_minimal_indent / "") * TightListItem(enumerator_cont))^0) - * Cc(true) - * -#((parsers.conditionally_indented_blankline^0 / "") - * parsers.check_minimal_indent * enumerator_cont) - + Ct( LooseListItem(Cb("listtype")) - * ((parsers.conditionally_indented_blankline^0 / "") - * (parsers.check_minimal_indent / "") * LooseListItem(enumerator_cont))^0) - * Cc(false) - ) * Ct(Cb("listtype")) / fancylist - end + local FancyListOfType + = function(start_marker, continuation_marker, delimiter_type) + local enumerator_start + = enumerator(start_marker, continuation_marker, + delimiter_type) + local enumerator_cont + = enumerator(continuation_marker, continuation_marker, + delimiter_type) + return Cg(enumerator_start, "listtype") + * (Ct( TightListItem(Cb("listtype")) + * ((parsers.check_minimal_indent / "") + * TightListItem(enumerator_cont))^0) + * Cc(true) + * -#((parsers.conditionally_indented_blankline^0 / "") + * parsers.check_minimal_indent * enumerator_cont) + + Ct( LooseListItem(Cb("listtype")) + * ((parsers.conditionally_indented_blankline^0 / "") + * (parsers.check_minimal_indent / "") + * LooseListItem(enumerator_cont))^0) + * Cc(false) + ) * Ct(Cb("listtype")) / fancylist + end - local FancyList = join_table_with_func(FancyListOfType, markers_table) + local FancyList + = join_table_with_func(FancyListOfType, markers_table) - local Endline = parsers.newline - * (parsers.check_minimal_indent - * -parsers.EndlineExceptions - + parsers.check_optional_indent - * -parsers.EndlineExceptions - * -starter) - * parsers.spacechar^0 - / writer.soft_line_break + local ListStarter = starter self.update_rule("OrderedList", FancyList) - self.update_rule("Endline", Endline) + self.update_rule("ListStarter", ListStarter) end } end @@ -31124,14 +32814,17 @@ M.extensions.fenced_code = function(blank_before_code_fence, s = s:gsub("\n$", "") local buf = {} if attr ~= nil then - table.insert(buf, {"\\markdownRendererFencedCodeAttributeContextBegin", - self.attributes(attr)}) + table.insert(buf, + {"\\markdownRendererFencedCodeAttributeContextBegin", + self.attributes(attr)}) end local name = util.cache_verbatim(options.cacheDir, s) - table.insert(buf, {"\\markdownRendererInputFencedCode{", - name,"}{",self.string(i),"}{",self.infostring(i),"}"}) + table.insert(buf, + {"\\markdownRendererInputFencedCode{", + name,"}{",self.string(i),"}{",self.infostring(i),"}"}) if attr ~= nil then - table.insert(buf, "\\markdownRendererFencedCodeAttributeContextEnd{}") + table.insert(buf, + "\\markdownRendererFencedCodeAttributeContextEnd{}") end return buf end @@ -31171,11 +32864,13 @@ M.extensions.fenced_code = function(blank_before_code_fence, - parsers.newline)^0) / strip_enclosing_whitespaces) - local backtick_infostring = Cs(Cs((V("HtmlEntity") - + (-#(parsers.backslash * parsers.backtick) * parsers.anyescaped) - - parsers.newline - - parsers.backtick)^0) - / strip_enclosing_whitespaces) + local backtick_infostring + = Cs( Cs((V("HtmlEntity") + + ( -#(parsers.backslash * parsers.backtick) + * parsers.anyescaped) + - parsers.newline + - parsers.backtick)^0) + / strip_enclosing_whitespaces) local fenceindent @@ -31197,77 +32892,93 @@ M.extensions.fenced_code = function(blank_before_code_fence, end end - local function count_fenced_start_indent(_, _, indent_table, trail) - local last_indent_name = get_last_indent_name(indent_table) - fenceindent = 0 - if last_indent_name ~= "li" then - fenceindent = #trail + local count_fenced_start_indent = + function(_, _, indent_table, trail) + local last_indent_name = get_last_indent_name(indent_table) + fenceindent = 0 + if last_indent_name ~= "li" then + fenceindent = #trail + end + return true end - return true - end - local fencehead = function(char, infostring) - return Cmt(Cb("indent_info") * parsers.check_trail, count_fenced_start_indent) - * Cg(char^3, "fencelength") - * parsers.optionalspace - * infostring - * (parsers.newline + parsers.eof) + local fencehead = function(char, infostring) + return Cmt( Cb("indent_info") + * parsers.check_trail, count_fenced_start_indent) + * Cg(char^3, "fencelength") + * parsers.optionalspace + * infostring + * (parsers.newline + parsers.eof) end - local fencetail = function(char) - return parsers.check_trail_no_rem - * Cmt(C(char^3) * Cb("fencelength"), captures_geq_length) - * parsers.optionalspace * (parsers.newline + parsers.eof) - + parsers.eof + local fencetail = function(char) + return parsers.check_trail_no_rem + * Cmt(C(char^3) * Cb("fencelength"), captures_geq_length) + * parsers.optionalspace * (parsers.newline + parsers.eof) + + parsers.eof end - local function process_fenced_line(s, i, indent_table, line_content, is_blank) -- luacheck: ignore s i - local remainder = "" - if has_trail(indent_table) then - remainder = indent_table.trail.internal_remainder - end + local process_fenced_line = + function(s, i, -- luacheck: ignore s i + indent_table, line_content, is_blank) + local remainder = "" + if has_trail(indent_table) then + remainder = indent_table.trail.internal_remainder + end - if is_blank and get_last_indent_name(indent_table) == "li" then - remainder = "" - end + if is_blank + and get_last_indent_name(indent_table) == "li" then + remainder = "" + end - local str = remainder .. line_content - local index = 1 - local remaining = fenceindent + local str = remainder .. line_content + local index = 1 + local remaining = fenceindent - while true do - local c = str:sub(index, index) - if c == " " and remaining > 0 then - remaining = remaining - 1 - index = index + 1 - elseif c == "\t" and remaining > 3 then - remaining = remaining - 4 - index = index + 1 - else - break + while true do + local c = str:sub(index, index) + if c == " " and remaining > 0 then + remaining = remaining - 1 + index = index + 1 + elseif c == "\t" and remaining > 3 then + remaining = remaining - 4 + index = index + 1 + else + break + end end - end - return true, str:sub(index) - end + return true, str:sub(index) + end local fencedline = function(char) - return Cmt(Cb("indent_info") * C(parsers.line - fencetail(char)) * Cc(false), process_fenced_line) + return Cmt( Cb("indent_info") + * C(parsers.line - fencetail(char)) + * Cc(false), process_fenced_line) end - local blankfencedline = Cmt(Cb("indent_info") * C(parsers.blankline) * Cc(true), process_fenced_line) + local blankfencedline + = Cmt( Cb("indent_info") + * C(parsers.blankline) + * Cc(true), process_fenced_line) local TildeFencedCode - = fencehead(parsers.tilde, tilde_infostring) - * Cs(((parsers.check_minimal_blank_indent / "") * blankfencedline - + (parsers.check_minimal_indent / "") * fencedline(parsers.tilde))^0) - * ((parsers.check_minimal_indent / "") * fencetail(parsers.tilde) + parsers.succeed) + = fencehead(parsers.tilde, tilde_infostring) + * Cs(( (parsers.check_minimal_blank_indent / "") + * blankfencedline + + ( parsers.check_minimal_indent / "") + * fencedline(parsers.tilde))^0) + * ( (parsers.check_minimal_indent / "") + * fencetail(parsers.tilde) + parsers.succeed) local BacktickFencedCode = fencehead(parsers.backtick, backtick_infostring) - * Cs(((parsers.check_minimal_blank_indent / "") * blankfencedline - + (parsers.check_minimal_indent / "") * fencedline(parsers.backtick))^0) - * ((parsers.check_minimal_indent / "") * fencetail(parsers.backtick) + parsers.succeed) + * Cs(( (parsers.check_minimal_blank_indent / "") + * blankfencedline + + (parsers.check_minimal_indent / "") + * fencedline(parsers.backtick))^0) + * ( (parsers.check_minimal_indent / "") + * fencetail(parsers.backtick) + parsers.succeed) local infostring_with_attributes = Ct(C((parsers.linechar @@ -31277,28 +32988,28 @@ M.extensions.fenced_code = function(blank_before_code_fence, * Ct(parsers.attributes)) local FencedCode - = ((TildeFencedCode + BacktickFencedCode) - / function(infostring, code) - local expanded_code = self.expandtabs(code) - - if allow_raw_blocks then - local raw_attr = lpeg.match(parsers.raw_attribute, - infostring) - if raw_attr then - return writer.rawBlock(expanded_code, raw_attr) - end - end - - local attr = nil - if allow_attributes then - local match = lpeg.match(infostring_with_attributes, - infostring) - if match then - infostring, attr = table.unpack(match) - end - end - return writer.fencedCode(expanded_code, infostring, attr) - end) + = ((TildeFencedCode + BacktickFencedCode) + / function(infostring, code) + local expanded_code = self.expandtabs(code) + + if allow_raw_blocks then + local raw_attr = lpeg.match(parsers.raw_attribute, + infostring) + if raw_attr then + return writer.rawBlock(expanded_code, raw_attr) + end + end + + local attr = nil + if allow_attributes then + local match = lpeg.match(infostring_with_attributes, + infostring) + if match then + infostring, attr = table.unpack(match) + end + end + return writer.fencedCode(expanded_code, infostring, attr) + end) self.insert_pattern("Block after Verbatim", FencedCode, "FencedCode") @@ -31350,10 +33061,13 @@ M.extensions.fenced_divs = function(blank_before_div_fence) % \end{markdown} % \begin{macrocode} function self.div_begin(attributes) - local start_output = {"\\markdownRendererFencedDivAttributeContextBegin\n", - self.attributes(attributes)} - local end_output = {"\\markdownRendererFencedDivAttributeContextEnd{}"} - return self.push_attributes("div", attributes, start_output, end_output) + local start_output + = {"\\markdownRendererFencedDivAttributeContextBegin\n", + self.attributes(attributes)} + local end_output + = {"\\markdownRendererFencedDivAttributeContextEnd{}"} + return self.push_attributes( + "div", attributes, start_output, end_output) end % \end{macrocode} % \par @@ -31414,21 +33128,24 @@ M.extensions.fenced_divs = function(blank_before_div_fence) self.initialize_named_group("fenced_div_num_opening_indents") local function increment_div_level() - local function push_indent_table(s, i, indent_table, -- luacheck: ignore s i - fenced_div_num_opening_indents, fenced_div_level) - fenced_div_level = tonumber(fenced_div_level) + 1 - local num_opening_indents = 0 - if indent_table.indents ~= nil then - num_opening_indents = #indent_table.indents + local push_indent_table = + function(s, i, indent_table, -- luacheck: ignore s i + fenced_div_num_opening_indents, fenced_div_level) + fenced_div_level = tonumber(fenced_div_level) + 1 + local num_opening_indents = 0 + if indent_table.indents ~= nil then + num_opening_indents = #indent_table.indents + end + fenced_div_num_opening_indents[fenced_div_level] + = num_opening_indents + return true, fenced_div_num_opening_indents end - fenced_div_num_opening_indents[fenced_div_level] = num_opening_indents - return true, fenced_div_num_opening_indents - end - local function increment_level(s, i, fenced_div_level) -- luacheck: ignore s i - fenced_div_level = tonumber(fenced_div_level) + 1 - return true, tostring(fenced_div_level) - end + local increment_level = + function(s, i, fenced_div_level) -- luacheck: ignore s i + fenced_div_level = tonumber(fenced_div_level) + 1 + return true, tostring(fenced_div_level) + end return Cg( Cmt( Cb("indent_info") * Cb("fenced_div_num_opening_indents") @@ -31439,11 +33156,13 @@ M.extensions.fenced_divs = function(blank_before_div_fence) end local function decrement_div_level() - local function pop_indent_table(s, i, fenced_div_indent_table, fenced_div_level) -- luacheck: ignore s i - fenced_div_level = tonumber(fenced_div_level) - fenced_div_indent_table[fenced_div_level] = nil - return true, tostring(fenced_div_level - 1) - end + local pop_indent_table = + function(s, i, -- luacheck: ignore s i + fenced_div_indent_table, fenced_div_level) + fenced_div_level = tonumber(fenced_div_level) + fenced_div_indent_table[fenced_div_level] = nil + return true, tostring(fenced_div_level - 1) + end return Cg( Cmt( Cb("fenced_div_num_opening_indents") * Cb("fenced_div_level"), pop_indent_table) @@ -31451,21 +33170,24 @@ M.extensions.fenced_divs = function(blank_before_div_fence) end - local non_fenced_div_block = parsers.check_minimal_indent * V("Block") - - parsers.check_minimal_indent_and_trail * fenced_div_end + local non_fenced_div_block + = parsers.check_minimal_indent * V("Block") + - parsers.check_minimal_indent_and_trail * fenced_div_end - local non_fenced_div_paragraph = parsers.check_minimal_indent * V("Paragraph") - - parsers.check_minimal_indent_and_trail * fenced_div_end + local non_fenced_div_paragraph + = parsers.check_minimal_indent * V("Paragraph") + - parsers.check_minimal_indent_and_trail * fenced_div_end local blank = parsers.minimally_indented_blank - local block_separated = parsers.block_sep_group(blank) - * non_fenced_div_block + local block_separated = parsers.block_sep_group(blank) + * non_fenced_div_block - local loop_body_pair = parsers.create_loop_body_pair(block_separated, - non_fenced_div_paragraph, - parsers.block_sep_group(blank), - parsers.par_sep_group(blank)) + local loop_body_pair + = parsers.create_loop_body_pair(block_separated, + non_fenced_div_paragraph, + parsers.block_sep_group(blank), + parsers.par_sep_group(blank)) local content_loop = ( non_fenced_div_block * loop_body_pair.block^0 @@ -31478,7 +33200,9 @@ M.extensions.fenced_divs = function(blank_before_div_fence) local FencedDiv = fenced_div_begin / function (infostring) - local attr = lpeg.match(Ct(parsers.attributes), infostring) + local attr + = lpeg.match(Ct(parsers.attributes), + infostring) if attr == nil then attr = {"." .. infostring} end @@ -31489,7 +33213,8 @@ M.extensions.fenced_divs = function(blank_before_div_fence) * parsers.skipblanklines * Ct(content_loop) * parsers.minimally_indented_blank^0 - * parsers.check_minimal_indent_and_trail * fenced_div_end + * parsers.check_minimal_indent_and_trail + * fenced_div_end * decrement_div_level() * (Cc("") / writer.div_end) @@ -31510,23 +33235,27 @@ M.extensions.fenced_divs = function(blank_before_div_fence) % \end{markdown} % \begin{macrocode} local function is_inside_div() - local function check_div_level(s, i, fenced_div_level) -- luacheck: ignore s i - fenced_div_level = tonumber(fenced_div_level) - return fenced_div_level > 0 - end + local check_div_level = + function(s, i, fenced_div_level) -- luacheck: ignore s i + fenced_div_level = tonumber(fenced_div_level) + return fenced_div_level > 0 + end return Cmt(Cb("fenced_div_level"), check_div_level) end local function check_indent() - local function compare_indent(s, i, indent_table, -- luacheck: ignore s i - fenced_div_num_opening_indents, fenced_div_level) - fenced_div_level = tonumber(fenced_div_level) - local num_current_indents = (indent_table.current_line_indents ~= nil and - #indent_table.current_line_indents) or 0 - local num_opening_indents = fenced_div_num_opening_indents[fenced_div_level] - return num_current_indents == num_opening_indents - end + local compare_indent = + function(s, i, indent_table, -- luacheck: ignore s i + fenced_div_num_opening_indents, fenced_div_level) + fenced_div_level = tonumber(fenced_div_level) + local num_current_indents + = ( indent_table.current_line_indents ~= nil and + #indent_table.current_line_indents) or 0 + local num_opening_indents + = fenced_div_num_opening_indents[fenced_div_level] + return num_current_indents == num_opening_indents + end return Cmt( Cb("indent_info") * Cb("fenced_div_num_opening_indents") @@ -31598,26 +33327,31 @@ M.extensions.header_attributes = function() * parsers.newline))^1 - parsers.thematic_break_lines - local heading_text = heading_line - * ((V("Endline") / "\n") * (heading_line - parsers.heading_level))^0 - * parsers.newline^-1 - - local SetextHeading = parsers.freeze_trail * parsers.check_trail_no_rem - * #(heading_text - * (parsers.attributes - * parsers.optionalspace - * parsers.newline)^-1 - * parsers.check_minimal_indent * parsers.check_trail * parsers.heading_level) - * Cs(heading_text) / strip_trailing_spaces - / parsers.parse_heading_text - * Cg(Ct((parsers.attributes - * parsers.optionalspace - * parsers.newline)^-1), "attributes") - * parsers.check_minimal_indent_and_trail * parsers.heading_level - * Cb("attributes") - * parsers.newline - * parsers.unfreeze_trail - / writer.heading + local heading_text + = heading_line + * ( (V("Endline") / "\n") + * (heading_line - parsers.heading_level))^0 + * parsers.newline^-1 + + local SetextHeading + = parsers.freeze_trail * parsers.check_trail_no_rem + * #(heading_text + * (parsers.attributes + * parsers.optionalspace + * parsers.newline)^-1 + * parsers.check_minimal_indent + * parsers.check_trail + * parsers.heading_level) + * Cs(heading_text) / strip_trailing_spaces + / parsers.parse_heading_text + * Cg(Ct((parsers.attributes + * parsers.optionalspace + * parsers.newline)^-1), "attributes") + * parsers.check_minimal_indent_and_trail * parsers.heading_level + * Cb("attributes") + * parsers.newline + * parsers.unfreeze_trail + / writer.heading local Heading = AtxHeading + SetextHeading self.update_rule("Heading", Heading) @@ -31691,18 +33425,18 @@ M.extensions.line_blocks = function() local parsers = self.parsers local writer = self.writer - local LineBlock = Ct( - (Cs( - ( (parsers.pipe * parsers.space)/"" - * ((parsers.space)/entities.char_entity("nbsp"))^0 - * parsers.linechar^0 * (parsers.newline/"")) - * (-parsers.pipe - * (parsers.space^1/" ") - * parsers.linechar^1 - * (parsers.newline/"") - )^0 - * (parsers.blankline/"")^0 - ) / self.parser_functions.parse_inlines)^1) / writer.lineblock + local LineBlock + = Ct((Cs(( (parsers.pipe * parsers.space) / "" + * ((parsers.space)/entities.char_entity("nbsp"))^0 + * parsers.linechar^0 * (parsers.newline/"")) + * (-parsers.pipe + * (parsers.space^1/" ") + * parsers.linechar^1 + * (parsers.newline/"") + )^0 + * (parsers.blankline/"")^0) + / self.parser_functions.parse_inlines)^1) + / writer.lineblock self.insert_pattern("Block after Blockquote", LineBlock, "LineBlock") @@ -31742,8 +33476,9 @@ M.extensions.mark = function() local doubleequals = P("==") - local Mark = parsers.between(V("Inline"), doubleequals, doubleequals) - / function (inlines) return writer.mark(inlines) end + local Mark + = parsers.between(V("Inline"), doubleequals, doubleequals) + / function (inlines) return writer.mark(inlines) end self.add_special_character("=") self.insert_pattern("Inline before LinkAndEmph", @@ -31776,13 +33511,18 @@ M.extensions.link_attributes = function() % % \end{markdown} % \begin{macrocode} - local define_reference_parser = (parsers.check_trail / "") * parsers.link_label * parsers.colon - * parsers.spnlc * parsers.url - * ( parsers.spnlc_sep * parsers.title * (parsers.spnlc * Ct(parsers.attributes)) - * parsers.only_blank - + parsers.spnlc_sep * parsers.title * parsers.only_blank - + Cc("") * (parsers.spnlc * Ct(parsers.attributes)) * parsers.only_blank - + Cc("") * parsers.only_blank) + local define_reference_parser + = (parsers.check_trail / "") + * parsers.link_label + * parsers.colon + * parsers.spnlc * parsers.url + * ( parsers.spnlc_sep * parsers.title + * (parsers.spnlc * Ct(parsers.attributes)) + * parsers.only_blank + + parsers.spnlc_sep * parsers.title * parsers.only_blank + + Cc("") * (parsers.spnlc * Ct(parsers.attributes)) + * parsers.only_blank + + Cc("") * parsers.only_blank) local ReferenceWithAttributes = define_reference_parser / self.register_link @@ -31797,8 +33537,10 @@ M.extensions.link_attributes = function() % \end{markdown} % \begin{macrocode} - local LinkWithAttributesAndEmph = Ct(parsers.link_and_emph_table * Cg(Cc(true), "match_link_attributes")) - / self.defer_link_and_emphasis_processing + local LinkWithAttributesAndEmph + = Ct(parsers.link_and_emph_table * Cg(Cc(true), + "match_link_attributes")) + / self.defer_link_and_emphasis_processing self.update_rule("LinkAndEmph", LinkWithAttributesAndEmph) @@ -31883,9 +33625,10 @@ M.extensions.notes = function(notes, inline_notes) if inline_notes then local InlineNote - = parsers.circumflex - * (parsers.link_label / self.parser_functions.parse_inlines_no_inline_note) - / writer.note + = parsers.circumflex + * ( parsers.link_label + / self.parser_functions.parse_inlines_no_inline_note) + / writer.note self.insert_pattern("Inline after LinkAndEmph", InlineNote, "InlineNote") @@ -31923,20 +33666,27 @@ M.extensions.notes = function(notes, inline_notes) local NoteRef = RawNoteRef / lookup_note - local optionally_indented_line = parsers.check_optional_indent_and_any_trail * parsers.line + local optionally_indented_line + = parsers.check_optional_indent_and_any_trail * parsers.line - local blank = parsers.check_optional_blank_indent_and_any_trail * parsers.optionalspace * parsers.newline + local blank + = parsers.check_optional_blank_indent_and_any_trail + * parsers.optionalspace * parsers.newline - local chunk = Cs(parsers.line * (optionally_indented_line - blank)^0) + local chunk + = Cs(parsers.line + * (optionally_indented_line - blank)^0) local indented_blocks = function(bl) return Cs( bl - * (blank^1 * (parsers.check_optional_indent / "") - * parsers.check_code_trail * -parsers.blankline * bl)^0) + * ( blank^1 * (parsers.check_optional_indent / "") + * parsers.check_code_trail + * -parsers.blankline * bl)^0) end local NoteBlock - = parsers.check_trail_no_rem * RawNoteRef * parsers.colon + = parsers.check_trail_no_rem + * RawNoteRef * parsers.colon * parsers.spnlc * indented_blocks(chunk) / register_note @@ -32094,24 +33844,26 @@ M.extensions.pipe_tables = function(table_captions, table_attributes) , table_hline_separator , table_hline_column) - local table_caption_beginning = (parsers.check_minimal_blank_indent_and_any_trail_no_rem - * parsers.optionalspace * parsers.newline)^0 - * parsers.check_minimal_indent_and_trail - * (P("Table")^-1 * parsers.colon) - * parsers.optionalspace + local table_caption_beginning + = ( parsers.check_minimal_blank_indent_and_any_trail_no_rem + * parsers.optionalspace * parsers.newline)^0 + * parsers.check_minimal_indent_and_trail + * (P("Table")^-1 * parsers.colon) + * parsers.optionalspace local function strip_trailing_spaces(s) return s:gsub("%s*$","") end - local table_row = pipe_table_row(true - , (C((parsers.linechar - parsers.pipe)^1) - / strip_trailing_spaces - / self.parser_functions.parse_inlines) - , parsers.pipe - , (C((parsers.linechar - parsers.pipe)^0) - / strip_trailing_spaces - / self.parser_functions.parse_inlines)) + local table_row + = pipe_table_row(true + , (C((parsers.linechar - parsers.pipe)^1) + / strip_trailing_spaces + / self.parser_functions.parse_inlines) + , parsers.pipe + , (C((parsers.linechar - parsers.pipe)^0) + / strip_trailing_spaces + / self.parser_functions.parse_inlines)) local table_caption if table_captions then @@ -32128,7 +33880,8 @@ M.extensions.pipe_tables = function(table_captions, table_attributes) + ( parsers.newline * #( parsers.optionalspace * parsers.linechar) - * C(parsers.optionalspace) / writer.space)) + * C(parsers.optionalspace) + / writer.space)) * (parsers.linechar - parsers.lbrace)^0)^1) / self.parser_functions.parse_inlines) @@ -32142,7 +33895,8 @@ M.extensions.pipe_tables = function(table_captions, table_attributes) + ( parsers.newline * #( parsers.optionalspace * parsers.linechar) - * C(parsers.optionalspace) / writer.space))^1) + * C(parsers.optionalspace) + / writer.space))^1) / self.parser_functions.parse_inlines * parsers.newline end @@ -32150,12 +33904,15 @@ M.extensions.pipe_tables = function(table_captions, table_attributes) table_caption = parsers.fail end - local PipeTable = Ct(table_row * parsers.newline * (parsers.check_minimal_indent_and_trail / {}) - * table_hline * parsers.newline - * ((parsers.check_minimal_indent / {}) * table_row * parsers.newline)^0) - / make_pipe_table_rectangular - * table_caption^-1 - / writer.table + local PipeTable + = Ct( table_row * parsers.newline + * (parsers.check_minimal_indent_and_trail / {}) + * table_hline * parsers.newline + * ( (parsers.check_minimal_indent / {}) + * table_row * parsers.newline)^0) + / make_pipe_table_rectangular + * table_caption^-1 + / writer.table self.insert_pattern("Block after Blockquote", PipeTable, "PipeTable") @@ -32323,7 +34080,8 @@ M.extensions.superscripts = function() local writer = self.writer local Superscript = ( - parsers.between(parsers.Str, parsers.circumflex, parsers.circumflex) + parsers.between(parsers.Str, parsers.circumflex, + parsers.circumflex) ) / writer.superscript self.insert_pattern("Inline after LinkAndEmph", @@ -32386,11 +34144,13 @@ M.extensions.tex_math = function(tex_math_dollars, return str:gsub("^%s*(.-)$", "%1") end - local allowed_before_closing = B( parsers.backslash * parsers.any - + parsers.any * (parsers.any - parsers.backslash)) + local allowed_before_closing + = B( parsers.backslash * parsers.any + + parsers.any * (parsers.any - parsers.backslash)) - local allowed_before_closing_no_space = B( parsers.backslash * parsers.any - + parsers.any * (parsers.nonspacechar - parsers.backslash)) + local allowed_before_closing_no_space + = B( parsers.backslash * parsers.any + + parsers.any * (parsers.nonspacechar - parsers.backslash)) % \end{macrocode} % \begin{markdown} @@ -32399,18 +34159,20 @@ M.extensions.tex_math = function(tex_math_dollars, % % \end{markdown} % \begin{macrocode} - local dollar_math_content = (parsers.newline * (parsers.check_optional_indent / "") - + parsers.backslash^-1 - * parsers.linechar) - - parsers.blankline^2 - - parsers.dollar + local dollar_math_content + = (parsers.newline * (parsers.check_optional_indent / "") + + parsers.backslash^-1 + * parsers.linechar) + - parsers.blankline^2 + - parsers.dollar local inline_math_opening_dollars = parsers.dollar * #(parsers.nonspacechar) - local inline_math_closing_dollars = allowed_before_closing_no_space - * parsers.dollar - * -#(parsers.digit) + local inline_math_closing_dollars + = allowed_before_closing_no_space + * parsers.dollar + * -#(parsers.digit) local inline_math_dollars = between(Cs( dollar_math_content), inline_math_opening_dollars, @@ -32433,9 +34195,10 @@ M.extensions.tex_math = function(tex_math_dollars, % % \end{markdown} % \begin{macrocode} - local backslash_math_content = (parsers.newline * (parsers.check_optional_indent / "") - + parsers.linechar) - - parsers.blankline^2 + local backslash_math_content + = (parsers.newline * (parsers.check_optional_indent / "") + + parsers.linechar) + - parsers.blankline^2 % \end{macrocode} % \begin{markdown} % @@ -32555,11 +34318,15 @@ end % \acro{yaml} metadata block syntax extension. When the % `expect_jekyll_data` parameter is `true`, then a markdown document % may begin directly with \acro{yaml} metadata and may contain nothing -% but \acro{yaml} metadata. +% but \acro{yaml} metadata. When both `expect_jekyll_data` and +% `ensure_jekyll_data` parameters are `true`, then a a markdown document must +% begin directly with \acro{yaml} metadata and must contain nothing but +% \acro{yaml} metadata. % % \end{markdown} % \begin{macrocode} -M.extensions.jekyll_data = function(expect_jekyll_data) +M.extensions.jekyll_data = function(expect_jekyll_data, + ensure_jekyll_data) return { name = "built-in jekyll_data syntax extension", extend_writer = function(self) @@ -32572,7 +34339,8 @@ M.extensions.jekyll_data = function(expect_jekyll_data) % the key `p` in the parent table; if `p` is nil, then the table has no parent. % All scalar keys and values encountered in the table will be cast to a string % following \acro{yaml} serialization rules. String values will also be -% transformed using the function `t`. +% transformed using the function `t` for the typographic output format used by +% the \mref{markdownRendererJekyllDataTypographicString} macro. % % \end{markdown} % \begin{macrocode} @@ -32617,17 +34385,18 @@ M.extensions.jekyll_data = function(expect_jekyll_data) ::not_a_sequence:: if is_sequence then - table.insert(buf, "\\markdownRendererJekyllDataSequenceBegin{") - table.insert(buf, self.identifier(p or "null")) - table.insert(buf, "}{") - table.insert(buf, #keys) - table.insert(buf, "}") + table.insert(buf, + "\\markdownRendererJekyllDataSequenceBegin{") + table.insert(buf, self.identifier(p or "null")) + table.insert(buf, "}{") + table.insert(buf, #keys) + table.insert(buf, "}") else - table.insert(buf, "\\markdownRendererJekyllDataMappingBegin{") - table.insert(buf, self.identifier(p or "null")) - table.insert(buf, "}{") - table.insert(buf, #keys) - table.insert(buf, "}") + table.insert(buf, "\\markdownRendererJekyllDataMappingBegin{") + table.insert(buf, self.identifier(p or "null")) + table.insert(buf, "}{") + table.insert(buf, #keys) + table.insert(buf, "}") end for _, k in ipairs(keys) do @@ -32655,7 +34424,14 @@ M.extensions.jekyll_data = function(expect_jekyll_data) table.insert(buf, v) table.insert(buf, "}") elseif typ == "string" then - table.insert(buf, "\\markdownRendererJekyllDataString{") + table.insert(buf, + "\\markdownRendererJekyllDataProgrammaticString{") + table.insert(buf, k) + table.insert(buf, "}{") + table.insert(buf, self.identifier(v)) + table.insert(buf, "}") + table.insert(buf, + "\\markdownRendererJekyllDataTypographicString{") table.insert(buf, k) table.insert(buf, "}{") table.insert(buf, t(v)) @@ -32665,8 +34441,10 @@ M.extensions.jekyll_data = function(expect_jekyll_data) table.insert(buf, k) table.insert(buf, "}") else - error(format("Unexpected type %s for value of " .. - "YAML key %s", typ, k)) + local error = self.error(format( + "Unexpected type %s for value of " + .. "YAML key %s.", typ, k)) + table.insert(buf, error) end end end @@ -32688,38 +34466,49 @@ M.extensions.jekyll_data = function(expect_jekyll_data) local writer = self.writer local JekyllData - = Cmt( C((parsers.line - P("---") - P("..."))^0) - , function(s, i, text) -- luacheck: ignore s i - local data - local ran_ok, _ = pcall(function() - -- TODO: Replace with `require("tinyyaml")` in TeX Live 2023 - local tinyyaml = require("markdown-tinyyaml") - data = tinyyaml.parse(text, {timestamps=false}) - end) - if ran_ok and data ~= nil then - return true, writer.jekyllData(data, function(s) - return self.parser_functions.parse_blocks_nested(s) - end, nil) - else - return false - end - end - ) + = Cmt( C((parsers.line - P("---") - P("..."))^0) + , function(s, i, text) -- luacheck: ignore s i + local data + local ran_ok, _ = pcall(function() + -- TODO: Use `require("tinyyaml")` in TeX Live 2023 + local tinyyaml = require("markdown-tinyyaml") + data = tinyyaml.parse(text, {timestamps=false}) + end) + if ran_ok and data ~= nil then + return true, writer.jekyllData(data, function(s) + return self.parser_functions.parse_blocks_nested(s) + end, nil) + else + return false + end + end + ) local UnexpectedJekyllData - = P("---") - * parsers.blankline / 0 - * #(-parsers.blankline) -- if followed by blank, it's thematic break - * JekyllData - * (P("---") + P("...")) + = P("---") + * parsers.blankline / 0 + -- if followed by blank, it's thematic break + * #(-parsers.blankline) + * JekyllData + * (P("---") + P("...")) local ExpectedJekyllData - = ( P("---") - * parsers.blankline / 0 - * #(-parsers.blankline) -- if followed by blank, it's thematic break - )^-1 - * JekyllData - * (P("---") + P("..."))^-1 + = ( P("---") + * parsers.blankline / 0 + -- if followed by blank, it's thematic break + * #(-parsers.blankline) + )^-1 + * JekyllData + * (P("---") + P("..."))^-1 + + if ensure_jekyll_data then + ExpectedJekyllData = ExpectedJekyllData + * parsers.eof + else + ExpectedJekyllData = ( ExpectedJekyllData + * (V("Blank")^0 / writer.interblocksep) + )^-1 + end self.insert_pattern("Block before Blockquote", UnexpectedJekyllData, "UnexpectedJekyllData") @@ -32734,9 +34523,123 @@ end % %### Conversion from Markdown to Plain \TeX{} % -% The \luamref{new} function returns a conversion function that takes a -% markdown string and turns it into a plain \TeX{} output. See Section -% <#sec:lua-conversion>. +% The \luamref{new} function of file `markdown.lua` loads file +% `markdown-parser.lua` and calls its own function \luamref{new} unless option +% \Opt{eagerCache} or \Opt{finalizeCache} has been enabled and a cached +% conversion output exists, in which case it is returned without loading file +% `markdown-parser.lua`. +% +% \end{markdown} +% \iffalse +%</lua> +%<*lua-loader> +% \fi +% \begin{macrocode} +function M.new(options) +% \end{macrocode} +% \par +% \begin{markdown} +% +% Make the `options` table inherit from the \luamref{defaultOptions} table. +% +% \end{markdown} +% \begin{macrocode} + options = options or {} + setmetatable(options, { __index = function (_, key) + return defaultOptions[key] end }) +% \end{macrocode} +% \par +% \begin{markdown} +% +% Return a conversion function that tries to produce a cached conversion output +% exists. If no cached conversion output exists, we load the file +% `markdown-parser.lua` and use it to convert the input. +% +% \end{markdown} +% \begin{macrocode} + local parser_convert = nil + return function(input) + local function convert(input) + if parser_convert == nil then +% \end{macrocode} +% \par +% \begin{markdown} +% +% Lazy-load `markdown-parser.lua` and check that it originates from the same +% version of the Markdown package. +% +% \end{markdown} +% \begin{macrocode} + local parser = require("markdown-parser") + if metadata.version ~= parser.metadata.version then + warn("markdown.lua " .. metadata.version .. " used with " .. + "markdown-parser.lua " .. parser.metadata.version .. ".") + end + parser_convert = parser.new(options) + end + return parser_convert(input) + end +% \end{macrocode} +% \begin{markdown} +% If we cache markdown documents, produce the cache file and transform its +% filename to plain \TeX{} output. +% +% When determining the name of the cache file, create salt for the hashing +% function out of the package version and the passed options recognized by the +% Lua interface (see Section <#sec:lua-options>). +% \end{markdown} +% \begin{macrocode} + local output + if options.eagerCache or options.finalizeCache then + local salt = util.salt(options) + local name = util.cache(options.cacheDir, input, salt, convert, + ".md.tex") + output = [[\input{]] .. name .. [[}\relax]] +% \end{macrocode} +% \begin{markdown} +% Otherwise, return the result of the conversion directly. +% \end{markdown} +% \begin{macrocode} + else + output = convert(input) + end +% \end{macrocode} +% \begin{markdown} +% If the \Opt{finalizeCache} option is enabled, populate the frozen cache in +% the file \Opt{frozenCacheFileName} with an entry for markdown document +% number \Opt{frozenCacheCounter}. +% \end{markdown} +% \begin{macrocode} + if options.finalizeCache then + local file, mode + if options.frozenCacheCounter > 0 then + mode = "a" + else + mode = "w" + end + file = assert(io.open(options.frozenCacheFileName, mode), + [[Could not open file "]] .. options.frozenCacheFileName + .. [[" for writing]]) + assert(file:write( + [[\expandafter\global\expandafter\def\csname ]] + .. [[markdownFrozenCache]] .. options.frozenCacheCounter + .. [[\endcsname{]] .. output .. [[}]] .. "\n")) + assert(file:close()) + end + return output + end +end +% \end{macrocode} +% \iffalse +%</lua-loader> +%<*lua> +% \fi +% \par +% \begin{markdown} +% +% The \luamref{new} function from file `markdown-parser.lua` returns a +% conversion function that takes a markdown string and turns it into a plain +% \TeX{} output. See Section <#sec:lua-conversion>. % % \end{markdown} % \begin{macrocode} @@ -32769,7 +34672,15 @@ function M.new(options) goto miss end end - elseif singletonCache.options[k] ~= options[k] then +% \end{macrocode} +% \begin{markdown} +% +% The \Opt{cacheDir} option is disregarded. +% +% \end{markdown} +% \begin{macrocode} + elseif k ~= "cacheDir" + and singletonCache.options[k] ~= options[k] then goto miss end end @@ -32830,7 +34741,7 @@ function M.new(options) if options.jekyllData then local jekyll_data_extension = M.extensions.jekyll_data( - options.expectJekyllData) + options.expectJekyllData, options.ensureJekyllData) table.insert(extensions, jekyll_data_extension) end @@ -32893,7 +34804,8 @@ function M.new(options) end if options.citations then - local citations_extension = M.extensions.citations(options.citationNbsps) + local citations_extension + = M.extensions.citations(options.citationNbsps) table.insert(extensions, citations_extension) end @@ -32918,7 +34830,9 @@ function M.new(options) % % \end{markdown} % \begin{macrocode} - local pathname = kpse.lookup(filename) + local pathname = assert(kpse.find_file(filename), + [[Could not locate user-defined syntax extension "]] + .. filename) local input_file = assert(io.open(pathname, "r"), [[Could not open user-defined syntax extension "]] .. pathname .. [[" for reading]]) @@ -32948,7 +34862,8 @@ function M.new(options) .. type(user_extension.api_version) .. [[" but "number" was expected]]) assert(user_extension.api_version > 0 - and user_extension.api_version <= metadata.user_extension_api_version, + and user_extension.api_version + <= metadata.user_extension_api_version, [[User-defined syntax extension "]] .. pathname .. [[" uses syntax extension API version "]] .. user_extension.api_version .. [[ but markdown.lua ]] @@ -32966,7 +34881,8 @@ function M.new(options) .. [[" but "number" was expected]]) assert(user_extension.grammar_version == metadata.grammar_version, [[User-defined syntax extension "]] .. pathname - .. [[" uses grammar version "]] .. user_extension.grammar_version + .. [[" uses grammar version "]] + .. user_extension.grammar_version .. [[ but markdown.lua ]] .. metadata.version .. [[ uses grammar version ]] .. metadata.grammar_version .. [[, which is incompatible]]) @@ -33048,11 +34964,16 @@ function M.new(options) % \begin{macrocode} return convert end - -return M % \end{macrocode} % \iffalse %</lua> +%<*lua,lua-loader> +% \fi +% \begin{macrocode} +return M +% \end{macrocode} +% \iffalse +%</lua,lua-loader> %<*lua-cli> % \fi % \par @@ -33131,7 +35052,7 @@ end % \end{markdown} % \begin{macrocode} if options.cacheDir then - lfs.rmdir(options["cacheDir"]) + lfs.rmdir(options.cacheDir) end % \end{macrocode} % \iffalse @@ -33217,60 +35138,98 @@ end %### Themes {#themes-implementation} % % This section implements the theme-loading mechanism and the built-in themes -% provided with the Markdown package. Futhermore, this section also implements +% provided with the Markdown package. Furthermore, this section also implements % the built-in plain \TeX{} themes provided with the Markdown package. % % \end{markdown} % \begin{macrocode} \ExplSyntaxOn \prop_new:N \g_@@_plain_tex_loaded_themes_linenos_prop +\prop_new:N \g_@@_plain_tex_loaded_themes_versions_prop \cs_new:Nn - \@@_plain_tex_load_theme:nn + \@@_plain_tex_load_theme:nnn { \prop_get:NnNTF \g_@@_plain_tex_loaded_themes_linenos_prop { #1 } \l_tmpa_tl { - \msg_warning:nnnV - { markdown } - { repeatedly-loaded-plain-tex-theme } + \prop_get:NnN + \g_@@_plain_tex_loaded_themes_versions_prop { #1 } - \l_tmpa_tl + \l_tmpb_tl + \str_if_eq:nVTF + { #2 } + \l_tmpb_tl + { + \msg_warning:nnnVn + { markdown } + { repeatedly-loaded-plain-tex-theme } + { #1 } + \l_tmpa_tl + { #2 } + } + { + \msg_error:nnnnVV + { markdown } + { different-versions-of-plain-tex-theme } + { #1 } + { #2 } + \l_tmpb_tl + \l_tmpa_tl + } } { - \msg_info:nnn + \msg_info:nnnn { markdown } { loading-plain-tex-theme } { #1 } + { #2 } \prop_gput:Nnx \g_@@_plain_tex_loaded_themes_linenos_prop { #1 } { \tex_the:D \tex_inputlineno:D } + \prop_gput:Nnn + \g_@@_plain_tex_loaded_themes_versions_prop + { #1 } + { #2 } \file_input:n - { markdown theme #2 } + { markdown theme #3 } } } \msg_new:nnn { markdown } { loading-plain-tex-theme } - { Loading~plain~TeX~Markdown~theme~#1 } + { Loading~version~#2~of~plain~TeX~Markdown~theme~#1 } \msg_new:nnn { markdown } { repeatedly-loaded-plain-tex-theme } { - Plain~TeX~Markdown~theme~#1~was~previously~ + Version~#3~of~plain~TeX~Markdown~theme~#1~was~previously~ loaded~on~line~#2,~not~loading~it~again } +\msg_new:nnn + { markdown } + { different-versions-of-plain-tex-theme } + { + Tried~to~load~version~#2~of~plain~TeX~Markdown~theme~#1~ + but~version~#3~has~already~been~loaded~on~line~#4 + } \cs_generate_variant:Nn \prop_gput:Nnn { Nnx } \cs_gset_eq:NN - \@@_load_theme:nn - \@@_plain_tex_load_theme:nn + \@@_load_theme:nnn + \@@_plain_tex_load_theme:nnn \cs_generate_variant:Nn - \@@_load_theme:nn - { nV } + \@@_load_theme:nnn + { VeV } +\cs_generate_variant:Nn + \msg_error:nnnnnn + { nnnnVV } +\cs_generate_variant:Nn + \msg_warning:nnnnn + { nnnVn } % \end{macrocode} % \begin{markdown} % @@ -33325,16 +35284,17 @@ end % % \end{markdown} % \begin{macrocode} - \@@_plain_tex_load_theme:VV + \@@_plain_tex_load_theme:VeV \l_tmpb_tl + { \markdownThemeVersion } \l_tmpa_str } \cs_generate_variant:Nn \tl_set:Nn { Ne } \cs_generate_variant:Nn - \@@_plain_tex_load_theme:nn - { VV } + \@@_plain_tex_load_theme:nnn + { VeV } \ExplSyntaxOff % \end{macrocode} % \iffalse @@ -33406,18 +35366,22 @@ end \def\markdownRendererUlEndTightPrototype{}% \def\markdownRendererOlBeginPrototype{}% \def\markdownRendererOlBeginTightPrototype{}% -\def\markdownRendererFancyOlBeginPrototype#1#2{\markdownRendererOlBegin}% -\def\markdownRendererFancyOlBeginTightPrototype#1#2{\markdownRendererOlBeginTight}% +\def\markdownRendererFancyOlBeginPrototype#1#2{% + \markdownRendererOlBegin}% +\def\markdownRendererFancyOlBeginTightPrototype#1#2{% + \markdownRendererOlBeginTight}% \def\markdownRendererOlItemPrototype{}% \def\markdownRendererOlItemWithNumberPrototype#1{}% \def\markdownRendererOlItemEndPrototype{}% \def\markdownRendererFancyOlItemPrototype{\markdownRendererOlItem}% -\def\markdownRendererFancyOlItemWithNumberPrototype{\markdownRendererOlItemWithNumber}% +\def\markdownRendererFancyOlItemWithNumberPrototype{% + \markdownRendererOlItemWithNumber}% \def\markdownRendererFancyOlItemEndPrototype{}% \def\markdownRendererOlEndPrototype{}% \def\markdownRendererOlEndTightPrototype{}% \def\markdownRendererFancyOlEndPrototype{\markdownRendererOlEnd}% -\def\markdownRendererFancyOlEndTightPrototype{\markdownRendererOlEndTight}% +\def\markdownRendererFancyOlEndTightPrototype{% + \markdownRendererOlEndTight}% \def\markdownRendererDlBeginPrototype{}% \def\markdownRendererDlBeginTightPrototype{}% \def\markdownRendererDlItemPrototype#1{#1}% @@ -33491,6 +35455,28 @@ end \ExplSyntaxOff \def\markdownRendererSectionBeginPrototype{}% \def\markdownRendererSectionEndPrototype{}% +\ExplSyntaxOn +\cs_gset:Npn + \markdownRendererWarningPrototype + #1#2#3#4 + { + \tl_set:Nn + \l_tmpa_tl + { #2 } + \tl_if_empty:nF + { #4 } + { + \tl_put_right:Nn + \l_tmpa_tl + { \iow_newline: #4 } + } + \exp_args:NV + \markdownWarning + \l_tmpa_tl + } +\ExplSyntaxOff +\def\markdownRendererErrorPrototype#1#2#3#4{% + \markdownError{#2}{#4}}% % \end{macrocode} % \par % \begin{markdown} @@ -33505,7 +35491,7 @@ end % \begin{macrocode} \ExplSyntaxOn \cs_new:Nn - \@@_plain_tex_default_input_raw_inline_renderer_prototype:nn + \@@_plain_tex_default_input_raw_inline:nn { \str_case:nn { #2 } @@ -33515,7 +35501,7 @@ end } } \cs_new:Nn - \@@_plain_tex_default_input_raw_block_renderer_prototype:nn + \@@_plain_tex_default_input_raw_block:nn { \str_case:nn { #2 } @@ -33527,14 +35513,14 @@ end \cs_gset:Npn \markdownRendererInputRawInlinePrototype#1#2 { - \@@_plain_tex_default_input_raw_inline_renderer_prototype:nn + \@@_plain_tex_default_input_raw_inline:nn { #1 } { #2 } } \cs_gset:Npn \markdownRendererInputRawBlockPrototype#1#2 { - \@@_plain_tex_default_input_raw_block_renderer_prototype:nn + \@@_plain_tex_default_input_raw_block:nn { #1 } { #2 } } @@ -33771,7 +35757,17 @@ end { #1 } { #2 } } -\def\markdownRendererJekyllDataStringPrototype#1#2{ +% \end{macrocode} +% \par +% \begin{markdown} +% +% We will process all string scalar values assuming that they may contain +% markdown markup and are intended for typesetting. +% +% \end{markdown} +% \begin{macrocode} +\def\markdownRendererJekyllDataProgrammaticStringPrototype#1#2{} +\def\markdownRendererJekyllDataTypographicStringPrototype#1#2{ \markdown_jekyll_data_set_keyvals:nn { #1 } { #2 } @@ -33800,8 +35796,16 @@ end \@@_if_option:nF { noDefaults } { - \@@_setup:n - {theme = witiko/markdown/defaults} + \@@_if_option:nTF + { experimental } + { + \@@_setup:n + { theme = witiko/markdown/defaults@experimental } + } + { + \@@_setup:n + { theme = witiko/markdown/defaults } + } } \ExplSyntaxOn } @@ -33853,7 +35857,7 @@ end \l_tmpa_tl \tl_gput_right:Nx \g_@@_formatted_lua_options_tl - { #1~=~ \l_tmpa_tl ,~ } + { #1~=~ \l_tmpa_tl ,~ } } { \str_if_eq_p:VV @@ -33870,9 +35874,18 @@ end \clist_map_inline:Vn \l_tmpa_tl { - \tl_gput_right:Nx + \@@_lua_escape:xN + { ##1 } + \l_tmpb_tl + \tl_gput_right:Nn \g_@@_formatted_lua_options_tl - { "##1" ,~ } + { " } + \tl_gput_right:NV + \g_@@_formatted_lua_options_tl + \l_tmpb_tl + \tl_gput_right:Nn + \g_@@_formatted_lua_options_tl + { " ,~ } } \tl_gput_right:Nx \g_@@_formatted_lua_options_tl @@ -33883,9 +35896,18 @@ end \@@_get_option_value:nN { #1 } \l_tmpa_tl - \tl_gput_right:Nx + \@@_lua_escape:xN + { \l_tmpa_tl } + \l_tmpb_tl + \tl_gput_right:Nn + \g_@@_formatted_lua_options_tl + { #1~=~ " } + \tl_gput_right:NV + \g_@@_formatted_lua_options_tl + \l_tmpb_tl + \tl_gput_right:Nn \g_@@_formatted_lua_options_tl - { #1~=~ " \l_tmpa_tl " ,~ } + { " ,~ } } } \cs_generate_variant:Nn @@ -33893,7 +35915,61 @@ end { Vn } \let\markdownPrepareLuaOptions=\@@_format_lua_options: \def\markdownLuaOptions{{ \g_@@_formatted_lua_options_tl }} -\ExplSyntaxOff +\sys_if_engine_luatex:TF + { + \cs_new:Nn + \@@_lua_escape:nN + { + \tl_set:Nx + #2 + { + \lua_escape:n + { #1 } + } + } + } + { + \regex_const:Nn + \c_@@_lua_escape_regex + { [\\"'] } + \cs_new:Nn + \@@_lua_escape:nN + { + \tl_set:Nn + #2 + { #1 } + \regex_replace_all:NnN + \c_@@_lua_escape_regex + { \u { c_backslash_str } \0 } + #2 + } + } +\cs_generate_variant:Nn + \@@_lua_escape:nN + { xN } +% \end{macrocode} +% \begin{markdown} +% +% After the \mdef{markdownPrepareInputFilename} macro has been +% fully expanded, the \mdef{markdownInputFilename} macro will +% expands to a Lua string that contains the input filename passed +% as the first argument. +% +% \end{markdown} +% \begin{macrocode} +\tl_new:N + \markdownInputFilename +\cs_new:Npn + \markdownPrepareInputFilename + #1 + { + \@@_lua_escape:xN + { #1 } + \markdownInputFilename + \tl_gset:Nx + \markdownInputFilename + { " \markdownInputFilename " } + } % \end{macrocode} % \par % \begin{markdown} @@ -33904,17 +35980,19 @@ end % % \end{markdown} % \begin{macrocode} -\def\markdownPrepare{% +\cs_new:Npn + \markdownPrepare + { % \end{macrocode} % \begin{markdown} % First, ensure that the \Opt{cacheDir} directory exists. % \end{markdown} % \begin{macrocode} - local lfs = require("lfs") - local cacheDir = "\markdownOptionCacheDir" - if not lfs.isdir(cacheDir) then - assert(lfs.mkdir(cacheDir)) - end + local~lfs = require("lfs") + local~options = \markdownLuaOptions + if~not~lfs.isdir(options.cacheDir) then~ + assert(lfs.mkdir(options.cacheDir)) + end~ % \end{macrocode} % \begin{markdown} % Next, load the `markdown` module and create a converter function using @@ -33922,9 +36000,30 @@ end % \mref{markdownLuaOptions} macro. % \end{markdown} % \begin{macrocode} - local md = require("markdown") - local convert = md.new(\markdownLuaOptions) -}% + local~md = require("markdown") + local~convert = md.new(options) + } +% \end{macrocode} +% \par +% \begin{markdown} +% +% The \mdef{markdownConvert} macro contains the Lua code that is executed +% during the conversion from markdown to plain \TeX{}. It opens the +% input file, converts it, and prints the conversion result. +% +% \end{markdown} +% \begin{macrocode} +\cs_new:Npn + \markdownConvert + { + local~filename = \markdownInputFilename + local~file = assert(io.open(filename, "r"), + [[Could~not~open~file~"]] .. filename .. [["~for~reading]]) + local~input = assert(file:read("*a")) + assert(file:close()) + print(convert(input)) + } +\ExplSyntaxOff % \end{macrocode} % \par % \begin{markdown} @@ -33940,7 +36039,9 @@ end % Remove the `options.cacheDir` directory if it is empty. % \end{markdown} % \begin{macrocode} - lfs.rmdir(cacheDir) + if options.cacheDir then + lfs.rmdir(options.cacheDir) + end }% % \end{macrocode} % \par @@ -34161,6 +36262,9 @@ end } } } + \str_gset:NV + \g_luabridge_output_dirname_str + \markdownOptionOutputDir \luabridge_now:e { #1 } } @@ -34297,12 +36401,14 @@ end \msg_new:nnn { markdown } { buffering-markinline } - { Buffering~inline~markdown~input~into~the~temporary~input~file~"#1". } + { Buffering~inline~markdown~input~into~ + the~temporary~input~file~"#1". } \msg_new:nnnn { markdown } { markinline-peek-failure } { Use~of~\iow_char:N \\ markinline~doesn't~match~its~definition } - { The~macro~should~be~followed~by~inline~markdown~text~in~curly~braces } + { The~macro~should~be~followed~by~inline~ + markdown~text~in~curly~braces } \ExplSyntaxOff % \end{macrocode} % \begin{markdown} @@ -34321,6 +36427,13 @@ end \markdownInput #1 { + \@@_if_option:nTF + { frozenCache } + { + \markdownInputRaw + { #1 } + } + { % \end{macrocode} % \begin{markdown} % @@ -34330,19 +36443,23 @@ end % % \end{markdown} % \begin{macrocode} - \file_get_full_name:nNTF - { #1 } - \l_tmpa_tl - { - \exp_args:NV - \markdownInputRaw + \tl_set:Nx \l_tmpa_tl - } - { - \msg_error:nnnV - { markdown } - { markdown-file-does-not-exist } { #1 } + \file_get_full_name:VNTF + \l_tmpa_tl + \l_tmpb_tl + { + \exp_args:NV + \markdownInputRaw + \l_tmpb_tl + } + { + \msg_error:nnV + { markdown } + { markdown-file-does-not-exist } + \l_tmpa_tl + } } } \msg_new:nnn @@ -34396,7 +36513,8 @@ end |fi |markdownInfo{Including markdown document number "|the|markdownOptionFrozenCacheCounter" from frozen cache}% - |csname markdownFrozenCache|the|markdownOptionFrozenCacheCounter|endcsname + |csname markdownFrozenCache% + |the|markdownOptionFrozenCacheCounter|endcsname |global|advance|markdownOptionFrozenCacheCounter by 1|relax }{% |markdownInfo{Including markdown document "&1"}% @@ -34410,13 +36528,10 @@ end |openin|markdownInputFileStream&1 |closein|markdownInputFileStream |markdownPrepareLuaOptions + |markdownPrepareInputFilename{&1}% |markdownLuaExecute{% |markdownPrepare - local file = assert(io.open("&1", "r"), - [[Could not open file "&1" for reading]]) - local input = assert(file:read("*a")) - assert(file:close()) - print(convert(input)) + |markdownConvert |markdownCleanup}% % \end{macrocode} % \begin{markdown} @@ -34456,7 +36571,7 @@ end % \LaTeX{} Implementation {#lateximplementation} %------------------------- % -% The \LaTeX{} implemenation makes use of the fact that, apart from some subtle +% The \LaTeX{} implementation makes use of the fact that, apart from some subtle % differences, \LaTeX{} implements the majority of the plain \TeX{} % format~[@latex17, Section 9]. As a consequence, we can directly reuse the % existing plain \TeX{} implementation. @@ -34511,9 +36626,10 @@ end % \begin{markdown} % % The \mdef{markdownInputPlainTeX} macro is used to store the original plain -% \TeX{} implementation of the \mref{markdownInput} macro. The \mref{markdownInput} -% macro is then redefined to accept an optional argument with options recognized by -% the \LaTeX{} interface (see Section <#sec:latex-options>). +% \TeX{} implementation of the \mref{yamlInput} macro. The \mref{markdownInput} +% and \mref{yamlInput} macros are then redefined to accept an optional argument +% with options recognized by the \LaTeX{} interface (see Section +% <#sec:latex-options>). % % \end{markdown} % \begin{macrocode} @@ -34523,12 +36639,17 @@ end \markdownSetup{#1}% \markdownInputPlainTeX{#2}% \endgroup}% +\renewcommand\yamlInput[2][]{% + \begingroup + \yamlSetup{jekyllData, expectJekyllData, ensureJekyllData, #1}% + \markdownInputPlainTeX{#2}% + \endgroup}% % \end{macrocode} % \par % \begin{markdown} % -% The \envmref{markdown}, and \envmref{markdown*} \LaTeX{} environments are -% implemented using the \mref{markdownReadAndConvert} macro. +% The \envmref{markdown}, \envmref{markdown*}, and \envmref{yaml} \LaTeX{} +% environments are implemented using the \mref{markdownReadAndConvert} macro. % % \end{markdown} % \begin{macrocode} @@ -34620,13 +36741,26 @@ end % we let the \mref{markdownReadAndConvert} macro process the rest of the % \LaTeX{} environment. % +% We also make provision for using the \mref{markdown} command as a part of a +% different \LaTeX{} environment as follows: +% +% ``` tex +% \newenvironment{foo}\% +% {code before \markdown[some, options]}\% +% {\markdownEnd code after} +% ``` +% % \end{markdown} % \begin{macrocode} - \c { markdownReadAndConvert@markdown } { } + \c { exp_args:NV } + \c { markdownReadAndConvert@ } + \c { @currenvir } } { \group_end: - \markdownReadAndConvert@markdown { } + \exp_args:NV + \markdownReadAndConvert@ + \@currenvir } } { \markdownEnd } @@ -34634,15 +36768,34 @@ end { markdown* } [ 1 ] { - \msg_warning:nnn - { markdown } - { latex-markdown-star-deprecated } - { #1 } + \@@_if_option:nTF + { experimental } + { + \msg_error:nnn + { markdown } + { latex-markdown-star-deprecated } + { #1 } + } + { + \msg_warning:nnn + { markdown } + { latex-markdown-star-deprecated } + { #1 } + } \@@_setup:n { #1 } - \markdownReadAndConvert@markdown * + \markdownReadAndConvert@ + { markdown* } } { \markdownEnd } +\renewenvironment + { yaml } + { + \group_begin: + \yamlSetup{jekyllData, expectJekyllData, ensureJekyllData}% + \markdown + } + { \yamlEnd } \msg_new:nnn { markdown } { latex-markdown-star-deprecated } @@ -34650,6 +36803,9 @@ end The~markdown*~LaTeX~environment~has~been~deprecated~and~will~ be~removed~in~the~next~major~version~of~the~Markdown~package. } +\cs_generate_variant:Nn + \@@_setup:n + { V } \ExplSyntaxOff \begingroup % \end{macrocode} @@ -34663,36 +36819,27 @@ end % \begin{macrocode} \catcode`\|=0\catcode`\<=1\catcode`\>=2% \catcode`\\=12|catcode`|{=12|catcode`|}=12% - |gdef|markdownReadAndConvert@markdown#1<% - |markdownReadAndConvert<\end{markdown#1}>% - <|end<markdown#1>>>% + |gdef|markdownReadAndConvert@#1<% + |markdownReadAndConvert<\end{#1}>% + <|end<#1>>>% |endgroup % \end{macrocode} % \par % \begin{markdown} % -%### Options -% The supplied package options are processed using the \mref{markdownSetup} macro. -% -% \end{markdown} -% \begin{macrocode} -\DeclareOption*{% - \expandafter\markdownSetup\expandafter{\CurrentOption}}% -\ProcessOptions\relax -% \end{macrocode} -% \begin{markdown} -% %### Themes {#latex-themes-implementation} % % This section overrides the plain \TeX{} implementation of the theme-loading -% mechanism from Section <#sec:themes-implementation>. Futhermore, this section +% mechanism from Section <#sec:themes-implementation>. Furthermore, this section % also implements the built-in \LaTeX{} themes provided with the Markdown package. % % \end{markdown} % \begin{macrocode} \ExplSyntaxOn +\prop_new:N \g_@@_latex_loaded_themes_linenos_prop +\prop_new:N \g_@@_latex_loaded_themes_versions_prop \cs_gset:Nn - \@@_load_theme:nn + \@@_load_theme:nnn { % \end{macrocode} % \par @@ -34716,7 +36863,7 @@ end % \end{markdown} % \begin{macrocode} \file_if_exist:nTF - { markdown theme #2.sty } + { markdown theme #3.sty } { \msg_error:nnn { markdown } @@ -34724,9 +36871,10 @@ end { #1 } } { - \@@_plain_tex_load_theme:nn + \@@_plain_tex_load_theme:nnn { #1 } { #2 } + { #3 } } \else % \end{macrocode} @@ -34739,19 +36887,61 @@ end % \end{markdown} % \begin{macrocode} \file_if_exist:nTF - { markdown theme #2.sty } + { markdown theme #3.sty } { - \msg_info:nnn - { markdown } - { loading-latex-theme } + \prop_get:NnNTF + \g_@@_latex_loaded_themes_linenos_prop { #1 } - \RequirePackage - { markdown theme #2 } + \l_tmpa_tl + { + \prop_get:NnN + \g_@@_latex_loaded_themes_versions_prop + { #1 } + \l_tmpb_tl + \str_if_eq:nVTF + { #2 } + \l_tmpb_tl + { + \msg_warning:nnnVn + { markdown } + { repeatedly-loaded-latex-theme } + { #1 } + \l_tmpa_tl + { #2 } + } + { + \msg_error:nnnnVV + { markdown } + { different-versions-of-latex-theme } + { #1 } + { #2 } + \l_tmpb_tl + \l_tmpa_tl + } + } + { + \msg_info:nnnn + { markdown } + { loading-latex-theme } + { #1 } + { #2 } + \prop_gput:Nnx + \g_@@_latex_loaded_themes_linenos_prop + { #1 } + { \tex_the:D \tex_inputlineno:D } + \prop_gput:Nnn + \g_@@_latex_loaded_themes_versions_prop + { #1 } + { #2 } + \RequirePackage + { markdown theme #3 } + } } { - \@@_plain_tex_load_theme:nn + \@@_plain_tex_load_theme:nnn { #1 } { #2 } + { #3 } } \fi \else @@ -34763,15 +36953,15 @@ end % % \end{markdown} % \begin{macrocode} - \msg_info:nnn + \msg_info:nnnn { markdown } { theme-loading-postponed } { #1 } + { #2 } \AtEndOfPackage { - \@@_load_theme:nn - { #1 } - { #2 } + \@@_set_theme:n + { #1 @ #2 } } \fi } @@ -34779,13 +36969,27 @@ end { markdown } { theme-loading-postponed } { - Postponing~loading~Markdown~theme~#1~until~ + Postponing~loading~version~#2~of~Markdown~theme~#1~until~ Markdown~package~has~finished~loading } \msg_new:nnn { markdown } { loading-latex-theme } - { Loading~LaTeX~Markdown~theme~#1 } + { Loading~version~#2~of~LaTeX~Markdown~theme~#1 } +\msg_new:nnn + { markdown } + { repeatedly-loaded-latex-theme } + { + Version~#3~of~LaTeX~Markdown~theme~#1~was~previously~ + loaded~on~line~#2,~not~loading~it~again + } +\msg_new:nnn + { markdown } + { different-versions-of-latex-theme } + { + Tried~to~load~version~#2~of~LaTeX~Markdown~theme~#1~ + but~version~#3~has~already~been~loaded~on~line~#4 + } \cs_generate_variant:Nn \msg_new:nnnn { nnVV } @@ -34880,7 +37084,8 @@ end % \end{markdown} % \begin{macrocode} }{% - \markdown@witiko@dot@oldRendererInputFencedCodePrototype{#1}{#2}{#3}% + \markdown@witiko@dot@oldRendererInputFencedCodePrototype + {#1}{#2}{#3}% }% }% \next#2 \relax}% @@ -35044,6 +37249,25 @@ end % See Section <#sec:latex-token-renderer-prototypes> for the actual % definitions. % +%### Options +% The supplied package options are processed using the \mref{markdownSetup} macro. +% +% \end{markdown} +% \iffalse +%</themes-witiko-markdown-defaults-latex> +%<*latex> +% \fi +% \begin{macrocode} +\DeclareOption*{% + \expandafter\markdownSetup\expandafter{\CurrentOption}}% +\ProcessOptions\relax +% \end{macrocode} +% \iffalse +%</latex> +%<*themes-witiko-markdown-defaults-latex> +% \fi +% \begin{markdown} +% %### Token Renderer Prototypes {#latex-token-renderer-prototypes} % % The following configuration should be considered placeholder. If the option @@ -35054,87 +37278,274 @@ end \markdownIfOption{plain}{\iffalse}{\iftrue} % \end{macrocode} % \par -% \begin{markdown}% +% \begin{markdown} +% +%#### Lists +% % If either the \Opt{tightLists} or the \Opt{fancyLists} Lua option is enabled -% and the current document class is not \pkg{beamer}, then load the -% \pkg{paralist} package. +% and the current document class is not \pkg{beamer}, use a package that +% provides support for tight and fancy lists. +% +% If either the package \pkg{paralist} or the package \pkg{enumitem} have already +% been loaded, use them. Otherwise, if the option \Opt{experimental} or any test +% phase has been enabled, use the package \pkg{enumitem}. Otherwise, use the +% package \pkg{paralist}. % % \end{markdown} % \begin{macrocode} -\@ifclassloaded{beamer}{}{% - \markdownIfOption{tightLists}{\RequirePackage{paralist}}{}% - \markdownIfOption{fancyLists}{\RequirePackage{paralist}}{}% -} +\ExplSyntaxOn +\bool_new:N + \g_@@_tight_or_fancy_lists_bool +\bool_gset_false:N + \g_@@_tight_or_fancy_lists_bool +\@@_if_option:nTF + { tightLists } + { + \bool_gset_true:N + \g_@@_tight_or_fancy_lists_bool + } + { + \@@_if_option:nT + { fancyLists } + { + \bool_gset_true:N + \g_@@_tight_or_fancy_lists_bool + } + } +\bool_new:N + \g_@@_beamer_paralist_or_enumitem_bool +\bool_gset_true:N + \g_@@_beamer_paralist_or_enumitem_bool +\@ifclassloaded + { beamer } + { } + { + \@ifpackageloaded + { paralist } + { } + { + \@ifpackageloaded + { enumitem } + { } + { + \bool_gset_false:N + \g_@@_beamer_paralist_or_enumitem_bool + } + } + } +\bool_if:nT + { + \g_@@_tight_or_fancy_lists_bool && + ! \g_@@_beamer_paralist_or_enumitem_bool + } + { + \bool_if:nTF + { + \bool_lazy_or_p:nn + { + \str_if_eq_p:en + { \markdownThemeVersion } + { experimental } + } + { + \bool_lazy_and_p:nn + { + \prop_if_exist_p:N + \g__pdfmanagement_documentproperties_prop + } + { + \bool_lazy_any_p:n + { + { + \prop_if_in_p:Nn + \g__pdfmanagement_documentproperties_prop + { document / testphase / phase-I } + } + { + \prop_if_in_p:Nn + \g__pdfmanagement_documentproperties_prop + { document / testphase / phase-II } + } + { + \prop_if_in_p:Nn + \g__pdfmanagement_documentproperties_prop + { document / testphase / phase-III } + } + { + \prop_if_in_p:Nn + \g__pdfmanagement_documentproperties_prop + { document / testphase / phase-IV } + } + { + \prop_if_in_p:Nn + \g__pdfmanagement_documentproperties_prop + { document / testphase / phase-V } + } + { + \prop_if_in_p:Nn + \g__pdfmanagement_documentproperties_prop + { document / testphase / phase-VI } + } + } + } + } + } + { + \RequirePackage + { enumitem } + } + { + \RequirePackage + { paralist } + } + } +\ExplSyntaxOff % \end{macrocode} % \par % \begin{markdown} % -% If we loaded the \pkg{paralist} package, define the respective renderer -% prototypes to make use of the capabilities of the package. Otherwise, -% define the renderer prototypes to fall back on the corresponding renderers -% for the non-tight lists. +% If we loaded the \pkg{enumitem} package, define the tight and +% fancy list renderer prototypes to make use of the capabilities of +% the package. % % \end{markdown} % \begin{macrocode} \ExplSyntaxOn -\@ifpackageloaded{paralist}{ - \tl_new:N - \l_@@_latex_fancy_list_item_label_number_style_tl - \tl_new:N - \l_@@_latex_fancy_list_item_label_delimiter_style_tl - \cs_new:Nn +\cs_new:Nn + \@@_latex_fancy_list_item_label_number:nn + { + \str_case:nn + { #1 } + { + { Decimal } { #2 } + { LowerRoman } { \int_to_roman:n { #2 } } + { UpperRoman } { \int_to_Roman:n { #2 } } + { LowerAlpha } { \int_to_alph:n { #2 } } + { UpperAlpha } { \int_to_Alph:n { #2 } } + } + } +\cs_new:Nn + \@@_latex_fancy_list_item_label_delimiter:n + { + \str_case:nn + { #1 } + { + { Default } { . } + { OneParen } { ) } + { Period } { . } + } + } +\cs_new:Nn + \@@_latex_fancy_list_item_label:nnn + { \@@_latex_fancy_list_item_label_number:nn - { - \str_case:nn - { #1 } - { - { Decimal } { #2 } - { LowerRoman } { \int_to_roman:n { #2 } } - { UpperRoman } { \int_to_Roman:n { #2 } } - { LowerAlpha } { \int_to_alph:n { #2 } } - { UpperAlpha } { \int_to_Alph:n { #2 } } - } - } - \cs_new:Nn + { #1 } + { #3 } \@@_latex_fancy_list_item_label_delimiter:n - { - \str_case:nn - { #1 } - { - { Default } { . } - { OneParen } { ) } - { Period } { . } - } - } - \cs_new:Nn - \@@_latex_fancy_list_item_label:nnn - { - \@@_latex_fancy_list_item_label_number:nn + { #2 } + } +\cs_generate_variant:Nn + \@@_latex_fancy_list_item_label:nnn + { VVn } +\tl_new:N + \l_@@_latex_fancy_list_item_label_number_style_tl +\tl_new:N + \l_@@_latex_fancy_list_item_label_delimiter_style_tl +\@ifpackageloaded{enumitem}{ + \markdownSetup{rendererPrototypes={ +% \end{macrocode} +% \begin{markdown} +% +% First, let's define the tight list item renderer prototypes. +% +% \end{markdown} +% \begin{macrocode} + ulBeginTight = { + \begin + { itemize } + [ noitemsep ] + }, + ulEndTight = { + \end + { itemize } + }, + olBeginTight = { + \begin + { enumerate } + [ noitemsep ] + }, + olEndTight = { + \end + { enumerate } + }, + dlBeginTight = { + \begin + { description } + [ noitemsep ] + }, + dlEndTight = { + \end + { description } + }, +% \end{macrocode} +% \begin{markdown} +% +% Second, let's define the fancy list item renderer prototypes. +% +% \end{markdown} +% \begin{macrocode} + fancyOlBegin = { + \group_begin: + \tl_set:Nn + \l_@@_latex_fancy_list_item_label_number_style_tl { #1 } - { #3 } - \@@_latex_fancy_list_item_label_delimiter:n + \tl_set:Nn + \l_@@_latex_fancy_list_item_label_delimiter_style_tl { #2 } - } - \cs_new:Nn - \@@_latex_paralist_style:nn - { - \str_case:nn + \begin + { enumerate } + }, + fancyOlBeginTight = { + \group_begin: + \tl_set:Nn + \l_@@_latex_fancy_list_item_label_number_style_tl { #1 } - { - { Decimal } { 1 } - { LowerRoman } { i } - { UpperRoman } { I } - { LowerAlpha } { a } - { UpperAlpha } { A } - } - \@@_latex_fancy_list_item_label_delimiter:n + \tl_set:Nn + \l_@@_latex_fancy_list_item_label_delimiter_style_tl { #2 } - } - \markdownSetup{rendererPrototypes={ + \begin + { enumerate } + [ noitemsep ] + }, + fancyOlEnd(|Tight) = { + \end { enumerate } + \group_end: + }, + fancyOlItemWithNumber = { + \item + [ + \@@_latex_fancy_list_item_label:VVn + \l_@@_latex_fancy_list_item_label_number_style_tl + \l_@@_latex_fancy_list_item_label_delimiter_style_tl + { #1 } + ] + }, + }} % \end{macrocode} % \par % \begin{markdown} % +% Otherwise, if we loaded the \pkg{paralist} package, define the +% tight and fancy list renderer prototypes to make use of the +% capabilities of the package. +% +% \end{markdown} +% \begin{macrocode} +}{\@ifpackageloaded{paralist}{ + \markdownSetup{rendererPrototypes={ +% \end{macrocode} +% \begin{markdown} +% % Make tight bullet lists a little less compact by adding extra vertical space % above and below them. % @@ -35158,33 +37569,13 @@ end \tl_set:Nn \l_@@_latex_fancy_list_item_label_delimiter_style_tl { #2 } - \@@_if_option:nTF - { startNumber } - { - \tl_set:Nn - \l_tmpa_tl - { \begin{enumerate} } - } - { - \tl_set:Nn - \l_tmpa_tl - { \begin{enumerate}[ } - \tl_put_right:Nx - \l_tmpa_tl - { \@@_latex_paralist_style:nn { #1 } { #2 } } - \tl_put_right:Nn - \l_tmpa_tl - { ] } - } - \tl_use:N - \l_tmpa_tl + \begin{enumerate} }, fancyOlEnd = { \end{enumerate} \group_end: }, % \end{macrocode} -% \par % \begin{markdown} % % Make tight ordered lists a little less compact by adding extra vertical @@ -35210,32 +37601,9 @@ end \tl_set:Nn \l_@@_latex_fancy_list_item_label_delimiter_style_tl { #2 } - \@@_if_option:nTF - { startNumber } - { - \tl_set:Nn - \l_tmpa_tl - { \begin{compactenum} } - } - { - \tl_set:Nn - \l_tmpa_tl - { \begin{compactenum}[ } - \tl_put_right:Nx - \l_tmpa_tl - { \@@_latex_paralist_style:nn { #1 } { #2 } } - \tl_put_right:Nn - \l_tmpa_tl - { ] } - } - \tl_put_left:Nn - \l_tmpa_tl - { - \plpartopsep=\partopsep - \pltopsep=\topsep - } - \tl_use:N - \l_tmpa_tl + \plpartopsep=\partopsep + \pltopsep=\topsep + \begin{compactenum} }, fancyOlEndTight = { \end{compactenum} @@ -35251,7 +37619,6 @@ end ] }, % \end{macrocode} -% \par % \begin{markdown} % % Make tight definition lists a little less compact by adding extra @@ -35268,23 +37635,36 @@ end dlEndTight = { \end{compactdesc} \group_end: - }}} - \cs_generate_variant:Nn - \@@_latex_fancy_list_item_label:nnn - { VVn } + } + }} }{ - \markdownSetup{rendererPrototypes={ - ulBeginTight = {\markdownRendererUlBegin}, - ulEndTight = {\markdownRendererUlEnd}, - fancyOlBegin = {\markdownRendererOlBegin}, - fancyOlEnd = {\markdownRendererOlEnd}, - olBeginTight = {\markdownRendererOlBegin}, - olEndTight = {\markdownRendererOlEnd}, - fancyOlBeginTight = {\markdownRendererOlBegin}, - fancyOlEndTight = {\markdownRendererOlEnd}, - dlBeginTight = {\markdownRendererDlBegin}, - dlEndTight = {\markdownRendererDlEnd}}} -} +% \end{macrocode} +% \par +% \begin{markdown} +% +% Otherwise, if we loaded neither the \pkg{enumitem} package nor the +% \pkg{paralist} package, define the tight and fancy list renderer +% prototypes to fall back on the corresponding renderers for the +% non-tight lists. +% +% \end{markdown} +% \begin{macrocode} + \markdownSetup + { + rendererPrototypes = { + ulBeginTight = \markdownRendererUlBegin, + ulEndTight = \markdownRendererUlEnd, + fancyOlBegin = \markdownRendererOlBegin, + fancyOlEnd = \markdownRendererOlEnd, + olBeginTight = \markdownRendererOlBegin, + olEndTight = \markdownRendererOlEnd, + fancyOlBeginTight = \markdownRendererOlBegin, + fancyOlEndTight = \markdownRendererOlEnd, + dlBeginTight = \markdownRendererDlBegin, + dlEndTight = \markdownRendererDlEnd, + }, + } +}} \ExplSyntaxOff \RequirePackage{amsmath} % \end{macrocode} @@ -35370,15 +37750,6 @@ end } \ExplSyntaxOff \markdownSetup{rendererPrototypes={ - image = {% - \begin{figure}% - \begin{center}% - \includegraphics[alt={#1}]{#3}% - \end{center}% - \ifx\empty#4\empty\else - \caption{#4}% - \fi - \end{figure}}, ulBegin = {\begin{itemize}}, ulEnd = {\end{itemize}}, olBegin = {\begin{enumerate}}, @@ -35529,11 +37900,13 @@ end \ltx@ifpackageloaded { minted } { + \catcode`\%=14\relax \catcode`\#=6\relax \exp_args:NV \inputminted \l_tmpa_tl { #1 } + \catcode`\%=12\relax \catcode`\#=12\relax } { @@ -35696,8 +38069,9 @@ end \advance\markdownLaTeXCitationsCounter by 1\relax \ifx\relax#4\relax \ifx\relax#5\relax - \ifnum\markdownLaTeXCitationsCounter>\markdownLaTeXCitationsTotal\relax - \cite{#1#2#6}% Without prenotes and postnotes, just accumulate cites + \ifnum\markdownLaTeXCitationsCounter>\markdownLaTeXCitationsTotal + \relax + \cite{#1#2#6}% No prenotes/postnotes, just accumulate cites \expandafter\expandafter\expandafter \expandafter\expandafter\expandafter\expandafter \@gobblethree @@ -35707,7 +38081,8 @@ end \cite{#1}% \fi \cite[#5]{#6}% - \ifnum\markdownLaTeXCitationsCounter>\markdownLaTeXCitationsTotal\relax + \ifnum\markdownLaTeXCitationsCounter>\markdownLaTeXCitationsTotal + \relax \else \expandafter\expandafter\expandafter \expandafter\expandafter\expandafter\expandafter @@ -35734,7 +38109,8 @@ end \space % Insert a space before the prenote in later citations \fi #4~\expandafter\cite\ifx\relax#5\relax{#6}\else[#5]{#6}\fi - \ifnum\markdownLaTeXCitationsCounter>\markdownLaTeXCitationsTotal\relax + \ifnum\markdownLaTeXCitationsCounter>\markdownLaTeXCitationsTotal + \relax \else \expandafter\expandafter\expandafter \expandafter\expandafter\expandafter\expandafter @@ -35754,8 +38130,9 @@ end \advance\markdownLaTeXCitationsCounter by 1\relax \ifx\relax#3\relax \ifx\relax#4\relax - \ifnum\markdownLaTeXCitationsCounter>\markdownLaTeXCitationsTotal\relax - \citep{#1,#5}% Without prenotes and postnotes, just accumulate cites + \ifnum\markdownLaTeXCitationsCounter>\markdownLaTeXCitationsTotal + \relax + \citep{#1,#5}% No prenotes/postnotes, just accumulate cites \expandafter\expandafter\expandafter \expandafter\expandafter\expandafter\expandafter \@gobbletwo @@ -35765,7 +38142,8 @@ end \citep{#1}% \fi \citep[][#4]{#5}% - \ifnum\markdownLaTeXCitationsCounter>\markdownLaTeXCitationsTotal\relax + \ifnum\markdownLaTeXCitationsCounter>\markdownLaTeXCitationsTotal + \relax \else \expandafter\expandafter\expandafter \expandafter\expandafter\expandafter\expandafter @@ -35785,7 +38163,8 @@ end \citep{#1}% \fi \citep[#3][#4]{#5}% - \ifnum\markdownLaTeXCitationsCounter>\markdownLaTeXCitationsTotal\relax + \ifnum\markdownLaTeXCitationsCounter>\markdownLaTeXCitationsTotal + \relax \else \expandafter\expandafter\expandafter \expandafter\expandafter\expandafter\expandafter @@ -35800,8 +38179,9 @@ end \advance\markdownLaTeXCitationsCounter by 1\relax \ifx\relax#3\relax \ifx\relax#4\relax - \ifnum\markdownLaTeXCitationsCounter>\markdownLaTeXCitationsTotal\relax - \citet{#1,#5}% Without prenotes and postnotes, just accumulate cites + \ifnum\markdownLaTeXCitationsCounter>\markdownLaTeXCitationsTotal + \relax + \citet{#1,#5}% No prenotes/postnotes, just accumulate cites \expandafter\expandafter\expandafter \expandafter\expandafter\expandafter\expandafter \@gobbletwo @@ -35811,10 +38191,13 @@ end \citet{#1}% \fi , \citet[#3][#4]{#5}% - \ifnum\markdownLaTeXCitationsCounter<\markdownLaTeXCitationsTotal\relax + \ifnum\markdownLaTeXCitationsCounter<\markdownLaTeXCitationsTotal + \relax , \else - \ifnum\markdownLaTeXCitationsCounter=\markdownLaTeXCitationsTotal\relax + \ifnum + \markdownLaTeXCitationsCounter=\markdownLaTeXCitationsTotal + \relax , \fi \fi @@ -35833,10 +38216,13 @@ end \citet{#1}% \fi , \citet[#3][#4]{#5}% - \ifnum\markdownLaTeXCitationsCounter<\markdownLaTeXCitationsTotal\relax + \ifnum\markdownLaTeXCitationsCounter<\markdownLaTeXCitationsTotal + \relax , \else - \ifnum\markdownLaTeXCitationsCounter=\markdownLaTeXCitationsTotal\relax + \ifnum + \markdownLaTeXCitationsCounter=\markdownLaTeXCitationsTotal + \relax , \fi \fi @@ -35851,13 +38237,15 @@ end % BibLaTeX implementation \def\markdownLaTeXBibLaTeXCitations#1#2#3#4#5{% \advance\markdownLaTeXCitationsCounter by 1\relax - \ifnum\markdownLaTeXCitationsCounter>\markdownLaTeXCitationsTotal\relax + \ifnum\markdownLaTeXCitationsCounter>\markdownLaTeXCitationsTotal + \relax \autocites#1[#3][#4]{#5}% \expandafter\@gobbletwo \fi\markdownLaTeXBibLaTeXCitations{#1[#3][#4]{#5}}} \def\markdownLaTeXBibLaTeXTextCitations#1#2#3#4#5{% \advance\markdownLaTeXCitationsCounter by 1\relax - \ifnum\markdownLaTeXCitationsCounter>\markdownLaTeXCitationsTotal\relax + \ifnum\markdownLaTeXCitationsCounter>\markdownLaTeXCitationsTotal + \relax \textcites#1[#3][#4]{#5}% \expandafter\@gobbletwo \fi\markdownLaTeXBibLaTeXTextCitations{#1[#3][#4]{#5}}} @@ -35950,7 +38338,8 @@ end { \markdownLaTeXRendererAutolink { #2 } { #3 } }{ - \markdownLaTeXRendererDirectOrIndirectLink { #1 } { #2 } { #3 } { #4 } + \markdownLaTeXRendererDirectOrIndirectLink + { #1 } { #2 } { #3 } { #4 } } } \def\markdownLaTeXRendererAutolink#1#2{% @@ -36148,72 +38537,166 @@ end }, }, } -\ExplSyntaxOff % \end{macrocode} % \par % \begin{markdown} % -%#### Strike-Through -% If the \Opt{strikeThrough} option is enabled, we will load the -% \pkg{soulutf8} package and use it to implement strike-throughs. +%#### Marked Text +% If the \Opt{mark} option is enabled, we will load either the \pkg{soulutf8} +% package or the \pkg{lua-ul} package and use it to implement marked text. % % \end{markdown} % \begin{macrocode} -\markdownIfOption{strikeThrough}{% - \RequirePackage{soulutf8}% - \markdownSetup{ - rendererPrototypes = { - strikeThrough = {% - \st{#1}% - }, - } +\@@_if_option:nT + { mark } + { + \sys_if_engine_luatex:TF + { + \RequirePackage + { luacolor } + \RequirePackage + { lua-ul } + \markdownSetup + { + rendererPrototypes = { + mark = { + \highLight + { #1 } + }, + } + } + } + { + \RequirePackage + { xcolor } + % TODO: Use just package soul after TeX Live 2023. + \IfFormatAtLeastTF + { 2023-02-18 } + { + \RequirePackage + { soul } + } + { + \RequirePackage + { soulutf8 } + } + \markdownSetup + { + rendererPrototypes = { + mark = { + \hl + { #1 } + }, + } + } + } } -}{} % \end{macrocode} % \par % \begin{markdown} % -%#### Marked Text -% If the \Opt{mark} option is enabled, we will load the \pkg{soulutf8} package -% and use it to implement marked text. +%#### Strike-Through +% If the \Opt{strikeThrough} option is enabled, we will load either the +% \pkg{soulutf8} package or the \pkg{lua-ul} package and use it to implement +% strike-throughs. % % \end{markdown} % \begin{macrocode} -\markdownIfOption{mark}{% - \RequirePackage{soulutf8}% - \markdownSetup{ - rendererPrototypes = { - mark = {% - \hl{#1}% - }, - } +\@@_if_option:nT + { strikeThrough } + { + \sys_if_engine_luatex:TF + { + \RequirePackage + { lua-ul } + \markdownSetup + { + rendererPrototypes = { + strikeThrough = { + \strikeThrough + { #1 } + }, + } + } + } + { + % TODO: Use just package soul after TeX Live 2023. + \IfFormatAtLeastTF + { 2023-02-18 } + { + \RequirePackage + { soul } + } + { + \RequirePackage + { soulutf8 } + } + \markdownSetup + { + rendererPrototypes = { + strikeThrough = { + \st + { #1 } + }, + } + } + } } -}{} % \end{macrocode} % \par % \begin{markdown} % -%#### Image Attributes +%#### Images and their attributes +% +% We define images to be rendered as floating figures using the command +% `\includegraphics`, where the image label is the alt text and the image +% title is the caption of the figure. % -% If the \Opt{linkAttributes} option is enabled, we will load -% the \pkg{graphicx} package. Furthermore, in image attribute contexts, -% we will make attributes in the form \meta{key}`=`\meta{value} set the -% corresponding keys of the \pkg{graphicx} package to the corresponding -% values. +% If the \Opt{linkAttributes} option is enabled, we will make attributes in the +% form \meta{key}`=`\meta{value} set the corresponding keys of the +% \pkg{graphicx} package to the corresponding values and we will register any +% identifiers, so that they can be used as \LaTeX{} labels for referencing +% figures. % % \end{markdown} % \begin{macrocode} \ExplSyntaxOn +\seq_new:N + \l_@@_image_identifiers_seq +\markdownSetup { + rendererPrototypes = { + image = { + \begin { figure } + \begin { center } + \includegraphics + [ alt = { #1 } ] + { #3 } + \tl_if_empty:nF + { #4 } + { \caption { #4 } } + \seq_map_inline:Nn + \l_@@_image_identifiers_seq + { \label { ##1 } } + \end { center } + \end { figure } + }, + } +} \@@_if_option:nT { linkAttributes } { - \RequirePackage{graphicx} - \markdownSetup{ + \RequirePackage { graphicx } + \markdownSetup { rendererPrototypes = { imageAttributeContextBegin = { \group_begin: - \markdownSetup{ + \markdownSetup { rendererPrototypes = { + attributeIdentifier = { + \seq_put_right:Nn + \l_@@_image_identifiers_seq + { ##1 } + }, attributeKeyValue = { \setkeys { Gin } @@ -36249,13 +38732,13 @@ end { { latex } { - \@@_plain_tex_default_input_raw_inline_renderer_prototype:nn + \@@_plain_tex_default_input_raw_inline:nn { #1 } { tex } } } { - \@@_plain_tex_default_input_raw_inline_renderer_prototype:nn + \@@_plain_tex_default_input_raw_inline:nn { #1 } { #2 } } @@ -36268,13 +38751,13 @@ end { { latex } { - \@@_plain_tex_default_input_raw_block_renderer_prototype:nn + \@@_plain_tex_default_input_raw_block:nn { #1 } { tex } } } { - \@@_plain_tex_default_input_raw_block_renderer_prototype:nn + \@@_plain_tex_default_input_raw_block:nn { #1 } { #2 } } @@ -36350,9 +38833,9 @@ end % \begin{markdown} % %### Typesetting Markdown -% The \mref{inputmarkdown} macro is defined to accept an optional argument with -% options recognized by the \Hologo{ConTeXt} interface (see Section -% <#sec:context-options>). +% The \mref{inputmarkdown} and \mref{inputyaml} macros are defined to accept an +% optional argument with options recognized by the \Hologo{ConTeXt} interface +% (see Section <#sec:context-options>). % % \end{markdown} % \begin{macrocode} @@ -36366,11 +38849,18 @@ end \fi \markdownInput{#2}% \endgroup}% +\long\def\inputyaml{% + \dosingleempty + \doinputyaml}% +\long\def\doinputyaml[#1]#2{% + \doinputmarkdown + [jekyllData, expectJekyllData, ensureJekyllData, #1]{#2}}% % \end{macrocode} % \par % \begin{markdown} % -% The \mref{startmarkdown} and \mref{stopmarkdown} macros are implemented using the +% The \mref{startmarkdown}, \mref{stopmarkdown}, \mref{startyaml}, and +% \mref{stopyaml} macros are implemented using the % \mref{markdownReadAndConvert} macro. % % In Knuth's \TeX, trailing spaces are removed very early on when a line is @@ -36404,6 +38894,15 @@ end |gdef|stopmarkdown{% |ctxlua{document.markdown_buffering = false}% |markdownEnd}% + |gdef|startyaml{% + |begingroup + |ctxlua{document.markdown_buffering = true}% + |setupyaml[jekyllData, expectJekyllData, ensureJekyllData]% + |markdownReadAndConvert{\stopyaml}% + {|stopyaml}}% + |gdef|stopyaml{% + |ctxlua{document.markdown_buffering = false}% + |yamlEnd}% |endgroup % \end{macrocode} % \par @@ -36412,15 +38911,17 @@ end %### Themes {#context-themes-implementation} % % This section overrides the plain \TeX{} implementation of the theme-loading -% mechanism from Section <#sec:themes-implementation>. Futhermore, this section +% mechanism from Section <#sec:themes-implementation>. Furthermore, this section % also implements the built-in \Hologo{ConTeXt} themes provided with the % Markdown package. % % \end{markdown} % \begin{macrocode} \ExplSyntaxOn +\prop_new:N \g_@@_context_loaded_themes_linenos_prop +\prop_new:N \g_@@_context_loaded_themes_versions_prop \cs_gset:Nn - \@@_load_theme:nn + \@@_load_theme:nnn { % \end{macrocode} % \par @@ -36433,31 +38934,87 @@ end % \end{markdown} % \begin{macrocode} \file_if_exist:nTF - { t - markdown theme #2.tex } + { t - markdown theme #3.tex } { - \msg_info:nnn - { markdown } - { loading-context-theme } + \prop_get:NnNTF + \g_@@_context_loaded_themes_linenos_prop { #1 } - \usemodule - [ t ] - [ markdown theme #2 ] + \l_tmpa_tl + { + \prop_get:NnN + \g_@@_context_loaded_themes_versions_prop + { #1 } + \l_tmpb_tl + \str_if_eq:nVTF + { #2 } + \l_tmpb_tl + { + \msg_warning:nnnVn + { markdown } + { repeatedly-loaded-context-theme } + { #1 } + \l_tmpa_tl + { #2 } + } + { + \msg_error:nnnnVV + { markdown } + { different-versions-of-context-theme } + { #1 } + { #2 } + \l_tmpb_tl + \l_tmpa_tl + } + } + { + \msg_info:nnn + { markdown } + { loading-context-theme } + { #1 } + { #2 } + \prop_gput:Nnx + \g_@@_context_loaded_themes_linenos_prop + { #1 } + { \tex_the:D \tex_inputlineno:D } + \prop_gput:Nnn + \g_@@_context_loaded_themes_versions_prop + { #1 } + { #2 } + \usemodule + [ t ] + [ markdown theme #3 ] + } } { - \@@_plain_tex_load_theme:nn + \@@_plain_tex_load_theme:nnn { #1 } { #2 } + { #3 } } } \msg_new:nnn { markdown } { loading-context-theme } - { Loading~ConTeXt~Markdown~theme~#1 } + { Loading~version~#2~of~ConTeXt~Markdown~theme~#1 } +\msg_new:nnn + { markdown } + { repeatedly-loaded-context-theme } + { + Version~#3~of~ConTeXt~Markdown~theme~#1~was~previously~ + loaded~on~line~#2,~not~loading~it~again + } +\msg_new:nnn + { markdown } + { different-versions-of-context-theme } + { + Tried~to~load~version~#2~of~ConTeXt~Markdown~theme~#1~ + but~version~#3~has~already~been~loaded~on~line~#4 + } \ExplSyntaxOff % \end{macrocode} % \iffalse %</context> -%<*themes-witiko-markdown-defaults-context> +%<*themes-witiko-markdown-defaults-ctx> % \fi % \par % \begin{markdown} @@ -36639,7 +39196,8 @@ end \def\markdownRendererStrikeThroughPrototype#1{\overstrikes{#1}} \def\markdownRendererSuperscriptPrototype#1{\high{#1}} \def\markdownRendererSubscriptPrototype#1{\low{#1}} -\def\markdownRendererDisplayMathPrototype#1{\startformula#1\stopformula}% +\def\markdownRendererDisplayMathPrototype#1{% + \startformula#1\stopformula}% % \end{macrocode} % \par % \begin{markdown} @@ -36665,8 +39223,10 @@ end \placetable{#1}{\the\markdownConTeXtTable}}% \fi \begingroup - \setupTABLE[r][each][topframe=off, bottomframe=off, leftframe=off, rightframe=off] - \setupTABLE[c][each][topframe=off, bottomframe=off, leftframe=off, rightframe=off] + \setupTABLE[r][each][topframe=off, bottomframe=off, + leftframe=off, rightframe=off] + \setupTABLE[c][each][topframe=off, bottomframe=off, + leftframe=off, rightframe=off] \setupTABLE[r][1][topframe=on, bottomframe=on] \setupTABLE[r][#1][bottomframe=on] \markdownConTeXtRowCounter=0% @@ -36704,14 +39264,16 @@ end \fi\if#1r% \setupTABLE[c][\the\markdownConTeXtColumnCounter][align=left] \fi - \ifnum\markdownConTeXtColumnCounter<\markdownConTeXtColumnTotal\relax\else + \ifnum\markdownConTeXtColumnCounter<\markdownConTeXtColumnTotal\relax + \else \expandafter\gobbleoneargument \fi\markdownConTeXtReadAlignments} \def\markdownConTeXtRenderTableCell#1{% \advance\markdownConTeXtColumnCounter by 1\relax \markdownConTeXtTable=\expandafter{% \the\markdownConTeXtTable\bTD#1\eTD}% - \ifnum\markdownConTeXtColumnCounter<\markdownConTeXtColumnTotal\relax\else + \ifnum\markdownConTeXtColumnCounter<\markdownConTeXtColumnTotal\relax + \else \expandafter\gobbleoneargument \fi\markdownConTeXtRenderTableCell} % \end{macrocode} @@ -36734,13 +39296,13 @@ end { { latex } { - \@@_plain_tex_default_input_raw_inline_renderer_prototype:nn + \@@_plain_tex_default_input_raw_inline:nn { #1 } { context } } } { - \@@_plain_tex_default_input_raw_inline_renderer_prototype:nn + \@@_plain_tex_default_input_raw_inline:nn { #1 } { #2 } } @@ -36753,13 +39315,13 @@ end { { context } { - \@@_plain_tex_default_input_raw_block_renderer_prototype:nn + \@@_plain_tex_default_input_raw_block:nn { #1 } { tex } } } { - \@@_plain_tex_default_input_raw_block_renderer_prototype:nn + \@@_plain_tex_default_input_raw_block:nn { #1 } { #2 } } @@ -36773,7 +39335,7 @@ end \protect % \end{macrocode} % \iffalse -%</themes-witiko-markdown-defaults-context> +%</themes-witiko-markdown-defaults-ctx> %<*context> % \fi % \par @@ -36786,9 +39348,29 @@ end % % \end{markdown} % \begin{macrocode} -\markdownIfOption{noDefaults}{}{ - \setupmarkdown[theme=witiko/markdown/defaults] -} +\ExplSyntaxOn +\str_if_eq:VVT + \c_@@_top_layer_tl + \c_@@_option_layer_context_tl + { + \ExplSyntaxOff + \@@_if_option:nF + { noDefaults } + { + \@@_if_option:nTF + { experimental } + { + \@@_setup:n + { theme = witiko/markdown/defaults@experimental } + } + { + \@@_setup:n + { theme = witiko/markdown/defaults } + } + } + \ExplSyntaxOn + } +\ExplSyntaxOff \stopmodule \protect % \end{macrocode} diff --git a/macros/generic/markdown/markdown.html b/macros/generic/markdown/markdown.html index f16477d948..d111179592 100644 --- a/macros/generic/markdown/markdown.html +++ b/macros/generic/markdown/markdown.html @@ -4,7 +4,7 @@ <meta charset="utf-8" /> <meta name="generator" content="pandoc" /> <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" /> - <meta name="author" content="Vít Starý Novotný" /> + <meta name="author" content="Vít Starý Novotný, Andrej Genčur" /> <title>Markdown Package User Manual</title> <style> code{white-space: pre-wrap;} @@ -35,7 +35,7 @@ } @media print { pre > code.sourceCode { white-space: pre-wrap; } - pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; } + pre > code.sourceCode > span { display: inline-block; text-indent: -5em; padding-left: 5em; } } pre.numberSource code { counter-reset: source-line 0; } @@ -92,8 +92,8 @@ <body> <header id="title-block-header"> <h1 class="title">Markdown Package User Manual</h1> -<p class="author">Vít Starý Novotný</p> -<p class="date">3.6.1-0-g5a45a922 2024-06-20</p> +<p class="author">Vít Starý Novotný, Andrej Genčur</p> +<p class="date">3.8.1-0-gbbed72f3 2024-11-03</p> </header> <nav id="TOC" role="doc-toc"> <ul> @@ -191,7 +191,7 @@ class="tex">T<sub>e</sub>X</span>, <span class="latex">L<sup>a</sup>T<sub>e</sub>X</span>, and Con<span class="tex">T<sub>e</sub>X</span>t macro packages that can be used to directly typeset <span class="tex">T<sub>e</sub>X</span> documents -containing markdown markup. Unlike other convertors, the Markdown +containing markdown markup. Unlike other converters, the Markdown package does not require any external programs, and makes it easy to redefine how each and every markdown element is rendered. Creative abuse of the markdown syntax is encouraged. <i class="em em-wink"></i></p> @@ -227,10 +227,10 @@ class="tex">T<sub>e</sub>X</span> distribution, you will need to install it.</p> <p>From <a href="https://github.com/witiko/markdown/releases" title="Releases - witiko/markdown">Releases</a>, download <a -href="https://github.com/witiko/markdown/releases/download/3.6.1/markdown.zip" -title="Release 3.6.1 - witiko/markdown">an archive +href="https://github.com/witiko/markdown/releases/download/3.8.1/markdown.zip" +title="Release 3.8.1 - witiko/markdown">an archive <code>markdown.zip</code> for this version of the Markdown package -(3.6.1)</a> or a different version that you wish to install. Then, unzip +(3.8.1)</a> or a different version that you wish to install. Then, unzip the archive. If you downloaded an archive for a different version of the Markdown package, you should now locate a file named <code>markdown.html</code> with the user manual for that version, open @@ -245,7 +245,8 @@ enter the directory named <code>markdown</code> and run the <p>Either of the two abovelisted approaches should produce the following files:</p> <ul> -<li><code>markdown.lua</code>: The Lua module</li> +<li><code>markdown.lua</code>, <code>markdown-parser.lua</code>, and +<code>markdown-unicode-data.lua</code>: The Lua module</li> <li><code>libraries/markdown-tinyyaml.lua</code>: An external library for reading <abbr>yaml</abbr></li> <li><code>markdown-cli.lua</code>: The Lua command-line interface</li> @@ -275,6 +276,8 @@ class="header-section-number">1.2.1</span> Local Installation</h3> generally where the individual files should be placed:</p> <ul> <li><code>⟨TEXMF⟩/tex/luatex/markdown/markdown.lua</code></li> +<li><code>⟨TEXMF⟩/tex/luatex/markdown/markdown-parser.lua</code></li> +<li><code>⟨TEXMF⟩/tex/luatex/markdown/markdown-unicode-data.lua</code></li> <li><code>⟨TEXMF⟩/tex/luatex/markdown/markdown-tinyyaml.lua</code></li> <li><code>⟨TEXMF⟩/scripts/markdown/markdown-cli.lua</code></li> <li><code>⟨TEXMF⟩/tex/generic/markdown/markdown.tex</code></li> @@ -302,6 +305,8 @@ them together. This way your document can be portably typeset on legacy <p>This is where the individual files should be placed:</p> <ul> <li><code>./markdown.lua</code></li> +<li><code>./markdown-parser.lua</code></li> +<li><code>./markdown-unicode-data.lua</code></li> <li><code>./markdown-tinyyaml.lua</code></li> <li><code>./markdown-cli.lua</code></li> <li><code>./markdown/markdown.tex</code></li> @@ -770,8 +775,8 @@ accepts the same options as the plain <span class="tex">T<sub>e</sub>X</span> interface, but now the options are specified as ⟨<em>key</em>⟩<span class="math inline"> = </span>⟨<em>value</em>⟩ pairs and they are passed -either as package options, in the <code>\markdownSetup</code> command, -or as parameters for the <code>markdown*</code> <span +either as package options, in the <code>markdownSetup</code> command, or +as parameters for the <code>markdown*</code> <span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> environment.</p> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> @@ -858,19 +863,22 @@ class="tex">T<sub>e</sub>X</span>t interfaces.</p> class="header-section-number">2.2.1.1</span> Option <code>eagerCache</code></h4> <dl> -<dt><code>eagerCache</code> (default value: <code>false</code>)</dt> +<dt><code>eagerCache</code> (default value: <code>true</code>)</dt> <dd> <dl> <dt>true</dt> <dd> <p>Converted markdown documents will be cached in -<strong><code>cacheDir</code></strong>. This can be useful for +<code><strong>cacheDir</strong></code>. This can be useful for post-processing the converted documents and for recovering historical -versions of the documents from the cache. However, it also produces a -large number of auxiliary files on the disk and obscures the output of -the Lua command-line interface when it is used for plumbing.</p> +versions of the documents from the cache. Furthermore, it can also +significantly improve the processing speed for documents that require +multiple compilation runs, since each markdown document is only +converted once. However, it also produces a large number of auxiliary +files on the disk and obscures the output of the Lua command-line +interface when it is used for plumbing.</p> <p>This behavior will always be used if the -<strong><code>finalizeCache</code></strong> option is enabled.</p> +<code><strong>finalizeCache</strong></code> option is enabled.</p> </dd> </dl> </dd> @@ -880,9 +888,14 @@ the Lua command-line interface when it is used for plumbing.</p> <dd> <p>Converted markdown documents will not be cached. This decreases the number of auxiliary files that we produce and makes it easier to use the -Lua command-line interface for plumbing.</p> +Lua command-line interface for plumbing. However, it makes it impossible +to post-process the converted documents and recover historical versions +of the documents from the cache. Furthermore, it can significantly +reduce the processing speed for documents that require multiple +compilation runs, since each markdown document is converted multiple +times needlessly.</p> <p>This behavior will only be used when the -<strong><code>finalizeCache</code></strong> option is disabled.</p> +<code><strong>finalizeCache</strong></code> option is disabled.</p> </dd> </dl> </dd> @@ -893,7 +906,7 @@ Lua command-line interface for plumbing.</p> <div class="sourceCode" id="cb46"><pre class="sourceCode md"><code class="sourceCode markdown"><span id="cb46-1"><a href="#cb46-1" aria-hidden="true" tabindex="-1"></a>Hello *world*!</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal with the -<strong><code>eagerCache</code></strong> option disabled:</p> +<code><strong>eagerCache</strong></code> option disabled:</p> <div class="sourceCode" id="cb47"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb47-1"><a href="#cb47-1" aria-hidden="true" tabindex="-1"></a><span class="ex">texlua</span> ⟨CLI pathname⟩ eagerCache=false <span class="at">--</span> hello.md hello.tex</span></code></pre></div> <p>where ⟨<em>CLI pathname</em>⟩ corresponds to the location of the Lua @@ -912,7 +925,7 @@ code:</p> class="sourceCode tex"><code class="sourceCode latex"><span id="cb48-1"><a href="#cb48-1" aria-hidden="true" tabindex="-1"></a>Hello <span class="fu">\markdownRendererEmphasis</span>{world}!<span class="fu">\relax</span></span></code></pre></div> <hr /> <p>Invoke LuaTeX from the terminal again, this time with the -<strong><code>eagerCache</code></strong> option enabled:</p> +<code><strong>eagerCache</strong></code> option enabled:</p> <div class="sourceCode" id="cb49"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb49-1"><a href="#cb49-1" aria-hidden="true" tabindex="-1"></a>texlua ⟨CLI pathname⟩ eagerCache=true -- hello.md hello.tex</span></code></pre></div> <p>A <span class="tex">T<sub>e</sub>X</span> document named @@ -925,8 +938,36 @@ named <code>⟨hash⟩.md.tex</code> should be produced and contain the following code:</p> <div class="sourceCode" id="cb51"><pre class="sourceCode tex"><code class="sourceCode latex"><span id="cb51-1"><a href="#cb51-1" aria-hidden="true" tabindex="-1"></a>Hello <span class="fu">\markdownRendererEmphasis</span>{world}!<span class="fu">\relax</span></span></code></pre></div> -<h4 data-number="2.2.1.2" id="option-singletoncache"><span +<h4 data-number="2.2.1.2" id="option-experimental"><span class="header-section-number">2.2.1.2</span> Option +<code>experimental</code></h4> +<dl> +<dt><code>experimental</code> (default value: <code>false</code>)</dt> +<dd> +<dl> +<dt>true</dt> +<dd> +<p>Experimental features that are planned to be the new default in the +next major release of the Markdown package will be enabled.</p> +<p>At the moment, this just means that the version +<code>experimental</code> of the theme +<code>witiko/markdown/defaults</code> will be loaded and warnings for +hard-deprecated features will become errors. However, the effects may +extend to other areas in the future as well.</p> +</dd> +</dl> +</dd> +<dd> +<dl> +<dt>false</dt> +<dd> +<p>Experimental features will be disabled.</p> +</dd> +</dl> +</dd> +</dl> +<h4 data-number="2.2.1.3" id="option-singletoncache"><span +class="header-section-number">2.2.1.3</span> Option <code>singletonCache</code></h4> <dl> <dt><code>singletonCache</code> (default value: <code>true</code>)</dt> @@ -935,7 +976,7 @@ class="header-section-number">2.2.1.2</span> Option <dt>true</dt> <dd> <p>Conversion functions produced by the function -\luamref{new}<code>(options)</code> will be cached in an LRU cache of +<code>new</code><code>(options)</code> will be cached in an LRU cache of size 1 keyed by <code>options</code>. This is more time- and space-efficient than always producing a new conversion function but may expose bugs related to the idempotence of conversion functions.</p> @@ -948,11 +989,12 @@ Markdown package.</p> <dl> <dt>false</dt> <dd> -<p>Every call to the function \luamref{new}<code>(options)</code> will -produce a new conversion function that will not be cached. This is +<p>Every call to the function <code>new</code><code>(options)</code> +will produce a new conversion function that will not be cached. This is slower than caching conversion functions and may expose bugs related to -memory leaks in the creation of conversion functions, see also issue <a -href="https://github.com/witiko/markdown/pull/226#issuecomment-1599641634">#226</a>.</p> +memory leaks in the creation of conversion functions, see also <a +href="https://github.com/witiko/markdown/pull/226#issuecomment-1599641634">#226 +(comment)</a>.</p> <p>This was the default behavior until version 3.0.0 of the Markdown package.</p> </dd> @@ -989,8 +1031,8 @@ contain the following text:</p> </blockquote> <p>As you can see, the caching causes <code>convert1</code> and <code>convert3</code> to be the same conversion function.</p> -<h4 data-number="2.2.1.3" id="option-unicodenormalization"><span -class="header-section-number">2.2.1.3</span> Option +<h4 data-number="2.2.1.4" id="option-unicodenormalization"><span +class="header-section-number">2.2.1.4</span> Option <code>unicodeNormalization</code></h4> <dl> <dt><code>unicodeNormalization</code> (default value: @@ -1003,7 +1045,7 @@ class="header-section-number">2.2.1.3</span> Option href="https://unicode.org/faq/normalization.html">Unicode normalization forms</a> before conversion. The Unicode normalization norm used is determined by option -<strong><code>unicodeNormalizationForm</code></strong>.</p> +<code><strong>unicodeNormalizationForm</strong></code>.</p> </dd> </dl> </dd> @@ -1017,8 +1059,8 @@ conversion.</p> </dl> </dd> </dl> -<h4 data-number="2.2.1.4" id="option-unicodenormalizationform"><span -class="header-section-number">2.2.1.4</span> Option +<h4 data-number="2.2.1.5" id="option-unicodenormalizationform"><span +class="header-section-number">2.2.1.5</span> Option <code>unicodeNormalizationForm</code></h4> <dl> <dt><code>unicodeNormalizationForm</code> (default value: @@ -1027,7 +1069,7 @@ class="header-section-number">2.2.1.4</span> Option <dl> <dt>nfc</dt> <dd> -<p>When option <strong><code>unicodeNormalization</code></strong> has +<p>When option <code><strong>unicodeNormalization</strong></code> has been enabled, markdown documents will be normalized using Unicode Normalization Form C (NFC) before conversion.</p> </dd> @@ -1037,7 +1079,7 @@ Normalization Form C (NFC) before conversion.</p> <dl> <dt>nfd</dt> <dd> -<p>When option <strong><code>unicodeNormalization</code></strong> has +<p>When option <code><strong>unicodeNormalization</strong></code> has been enabled, markdown documents will be normalized using Unicode Normalization Form D (NFD) before conversion.</p> </dd> @@ -1047,7 +1089,7 @@ Normalization Form D (NFD) before conversion.</p> <dl> <dt>nfkc</dt> <dd> -<p>When option <strong><code>unicodeNormalization</code></strong> has +<p>When option <code><strong>unicodeNormalization</strong></code> has been enabled, markdown documents will be normalized using Unicode Normalization Form KC (NFKC) before conversion.</p> </dd> @@ -1057,15 +1099,15 @@ Normalization Form KC (NFKC) before conversion.</p> <dl> <dt>nfkd</dt> <dd> -<p>When option <strong><code>unicodeNormalization</code></strong> has +<p>When option <code><strong>unicodeNormalization</strong></code> has been enabled, markdown documents will be normalized using Unicode Normalization Form KD (NFKD) before conversion.</p> </dd> </dl> </dd> </dl> -<h4 data-number="2.2.1.5" id="option-cachedir"><span -class="header-section-number">2.2.1.5</span> Option +<h4 data-number="2.2.1.6" id="option-cachedir"><span +class="header-section-number">2.2.1.6</span> Option <code>cacheDir</code></h4> <dl> <dt><code>cacheDir</code> (default value: <code>"."</code>)</dt> @@ -1197,8 +1239,8 @@ contain the text “Hello <em>world</em>!” A directory named <code>cache</code> containing several cache files of the Markdown package will also be produced as we requested using the <code>cacheDir</code> option.</p> -<h4 data-number="2.2.1.6" id="option-contentblockslanguagemap"><span -class="header-section-number">2.2.1.6</span> Option +<h4 data-number="2.2.1.7" id="option-contentblockslanguagemap"><span +class="header-section-number">2.2.1.7</span> Option <code>contentBlocksLanguageMap</code></h4> <dl> <dt><code>contentBlocksLanguageMap</code> (default value: @@ -1206,7 +1248,7 @@ class="header-section-number">2.2.1.6</span> Option <dd> <p>The filename of the <abbr>JSON</abbr> file that maps filename extensions to programming language names in the iA Writer content blocks -when the <strong><code>contentBlocks</code></strong> option is +when the <code><strong>contentBlocks</strong></code> option is enabled.</p> </dd> </dl> @@ -1362,39 +1404,39 @@ contain the following text:</p> class="sourceCode tex"><code class="sourceCode latex"><span id="cb78-1"><a href="#cb78-1" aria-hidden="true" tabindex="-1"></a>This is an example code listing in <span class="fu">\ConTeXt</span>.</span></code></pre></div> <p>This is a <em>transcluded markdown document</em>.</p> </blockquote> -<h4 data-number="2.2.1.7" id="option-debugextensionsfilename"><span -class="header-section-number">2.2.1.7</span> Option +<h4 data-number="2.2.1.8" id="option-debugextensionsfilename"><span +class="header-section-number">2.2.1.8</span> Option <code>debugExtensionsFileName</code></h4> <dl> <dt><code>debugExtensionsFileName</code> (default value: <code>"debug-extensions.json"</code>)</dt> <dd> <p>The filename of the <abbr>JSON</abbr> file that will be produced when -the <strong><code>debugExtensions</code></strong> option is enabled. +the <code><strong>debugExtensions</strong></code> option is enabled. This file will contain the extensible subset of the <abbr>peg</abbr> grammar of markdown after built-in syntax extensions (see options -<strong><code>citations</code></strong>, -<strong><code>contentBlocks</code></strong>, -<strong><code>definitionLists</code></strong>, etc.) and user-defined -syntax extensions (see option <strong><code>extensions</code></strong>) +<code><strong>citations</strong></code>, +<code><strong>contentBlocks</strong></code>, +<code><strong>definitionLists</strong></code>, etc.) and user-defined +syntax extensions (see option <code><strong>extensions</strong></code>) have been applied.</p> </dd> </dl> -<h4 data-number="2.2.1.8" id="option-frozencachefilename"><span -class="header-section-number">2.2.1.8</span> Option +<h4 data-number="2.2.1.9" id="option-frozencachefilename"><span +class="header-section-number">2.2.1.9</span> Option <code>frozenCacheFileName</code></h4> <dl> <dt><code>frozenCacheFileName</code> (default value: <code>"frozenCache.tex"</code>)</dt> <dd> <p>A path to an output file (frozen cache) that will be created when the -<strong><code>finalizeCache</code></strong> option is enabled and will +<code><strong>finalizeCache</strong></code> option is enabled and will contain a mapping between an enumeration of markdown documents and their auxiliary cache files.</p> <p>The frozen cache makes it possible to later typeset a plain <span class="tex">T<sub>e</sub>X</span> document that contains markdown documents without invoking Lua using the -<strong><code>frozenCache</code></strong> plain <span +<code><strong>frozenCache</strong></code> plain <span class="tex">T<sub>e</sub>X</span> option. As a result, the plain <span class="tex">T<sub>e</sub>X</span> document becomes more portable, but further changes in the order and the content of markdown documents will @@ -1585,8 +1627,8 @@ contents of the frozen cache using the the document without accessing the shell or invoking Lua, but the change in the content of the markdown document from “Hello <em>world</em>!” to “Hi <em>world</em>!” was not reflected.</p> -<h4 data-number="2.2.1.9" id="option-autoidentifiers"><span -class="header-section-number">2.2.1.9</span> Option +<h4 data-number="2.2.1.10" id="option-autoidentifiers"><span +class="header-section-number">2.2.1.10</span> Option <code>autoIdentifiers</code></h4> <dl> <dt><code>autoIdentifiers</code> (default value: @@ -1611,9 +1653,9 @@ class="sourceCode md"><code class="sourceCode markdown"><span id="cb96-1"><a hre </dd> </dl> <p>See also the option -<strong><code>gfmAutoIdentifiers</code></strong>.</p> -<h4 data-number="2.2.1.10" id="option-blankbeforeblockquote"><span -class="header-section-number">2.2.1.10</span> Option +<code><strong>gfmAutoIdentifiers</strong></code>.</p> +<h4 data-number="2.2.1.11" id="option-blankbeforeblockquote"><span +class="header-section-number">2.2.1.11</span> Option <code>blankBeforeBlockquote</code></h4> <dl> <dt><code>blankBeforeBlockquote</code> (default value: @@ -1806,8 +1848,8 @@ contain the following text:</p> </blockquote> <p>A paragraph > Not a quote.</p> </blockquote> -<h4 data-number="2.2.1.11" id="option-blankbeforecodefence"><span -class="header-section-number">2.2.1.11</span> Option +<h4 data-number="2.2.1.12" id="option-blankbeforecodefence"><span +class="header-section-number">2.2.1.12</span> Option <code>blankBeforeCodeFence</code></h4> <dl> <dt><code>blankBeforeCodeFence</code> (default value: @@ -2011,8 +2053,8 @@ contain the following text:</p> <pre><code>A fenced code.</code></pre> <p>A paragraph. <code>Not a fenced code.</code></p> </blockquote> -<h4 data-number="2.2.1.12" id="option-blankbeforedivfence"><span -class="header-section-number">2.2.1.12</span> Option +<h4 data-number="2.2.1.13" id="option-blankbeforedivfence"><span +class="header-section-number">2.2.1.13</span> Option <code>blankBeforeDivFence</code></h4> <dl> <dt><code>blankBeforeDivFence</code> (default value: @@ -2068,8 +2110,8 @@ contain the following text:</p> <p>A paragraph.</p> <p>::: {.identifier} Not a fenced div. :::</p> </blockquote> -<h4 data-number="2.2.1.13" id="option-blankbeforeheading"><span -class="header-section-number">2.2.1.13</span> Option +<h4 data-number="2.2.1.14" id="option-blankbeforeheading"><span +class="header-section-number">2.2.1.14</span> Option <code>blankBeforeHeading</code></h4> <dl> <dt><code>blankBeforeHeading</code> (default value: @@ -2262,8 +2304,8 @@ contain the following text:</p> <h1 id="a-heading.-3">A heading.</h1> <p>A paragraph. Not a heading. ==============</p> </blockquote> -<h4 data-number="2.2.1.14" id="option-blankbeforelist"><span -class="header-section-number">2.2.1.14</span> Option +<h4 data-number="2.2.1.15" id="option-blankbeforelist"><span +class="header-section-number">2.2.1.15</span> Option <code>blankBeforeList</code></h4> <dl> <dt><code>blankBeforeList</code> (default value: @@ -2456,8 +2498,8 @@ contain the following text:</p> </ul> <p>A paragraph. - not a list</p> </blockquote> -<h4 data-number="2.2.1.15" id="option-bracketedspans"><span -class="header-section-number">2.2.1.15</span> Option +<h4 data-number="2.2.1.16" id="option-bracketedspans"><span +class="header-section-number">2.2.1.16</span> Option <code>bracketedSpans</code></h4> <dl> <dt><code>bracketedSpans</code> (default value: <code>false</code>)</dt> @@ -2529,8 +2571,8 @@ contain the following text:</p> <blockquote> <p>Here is some <span style="color: red">colored text</span>.</p> </blockquote> -<h4 data-number="2.2.1.16" id="option-breakableblockquotes"><span -class="header-section-number">2.2.1.16</span> Option +<h4 data-number="2.2.1.17" id="option-breakableblockquotes"><span +class="header-section-number">2.2.1.17</span> Option <code>breakableBlockquotes</code></h4> <dl> <dt><code>breakableBlockquotes</code> (default value: @@ -2751,8 +2793,8 @@ contain the following text:</p> <p>Another block quote.</p> </blockquote> </blockquote> -<h4 data-number="2.2.1.17" id="option-citationnbsps"><span -class="header-section-number">2.2.1.17</span> Option +<h4 data-number="2.2.1.18" id="option-citationnbsps"><span +class="header-section-number">2.2.1.18</span> Option <code>citationNbsps</code></h4> <dl> <dt><code>citationNbsps</code> (default value: <code>true</code>)</dt> @@ -2818,8 +2860,8 @@ non-breaking space:</p> <p>[1] Donald·Ervin Knuth. <em>The TeXbook, volume A of Computers and typesetting.</em> Addison-Wesley, 1984.</p> </blockquote> -<h4 data-number="2.2.1.18" id="option-citations"><span -class="header-section-number">2.2.1.18</span> Option +<h4 data-number="2.2.1.19" id="option-citations"><span +class="header-section-number">2.2.1.19</span> Option <code>citations</code></h4> <dl> <dt><code>citations</code> (default value: <code>false</code>)</dt> @@ -2897,8 +2939,8 @@ contain the following text:</p> class="tex">T<sub>e</sub>X</span>book, volume A of Computers and typesetting.</em> Addison-Wesley, 1984.</p> </blockquote> -<h4 data-number="2.2.1.19" id="option-codespans"><span -class="header-section-number">2.2.1.19</span> Option +<h4 data-number="2.2.1.20" id="option-codespans"><span +class="header-section-number">2.2.1.20</span> Option <code>codeSpans</code></h4> <dl> <dt><code>codeSpans</code> (default value: <code>true</code>)</dt> @@ -3087,8 +3129,8 @@ contain the following text:</p> span.’’</p> <p>“This is a quote.” “This is another quote.”</p> </blockquote> -<h4 data-number="2.2.1.20" id="option-contentblocks"><span -class="header-section-number">2.2.1.20</span> Option +<h4 data-number="2.2.1.21" id="option-contentblocks"><span +class="header-section-number">2.2.1.21</span> Option <code>contentBlocks</code></h4> <dl> <dt><code>contentBlocks</code> (default value: <code>false</code>)</dt> @@ -3261,8 +3303,8 @@ contain the following text:</p> class="sourceCode tex"><code class="sourceCode latex"><span id="cb196-1"><a href="#cb196-1" aria-hidden="true" tabindex="-1"></a>This is an example code listing in <span class="fu">\ConTeXt</span>.</span></code></pre></div> <p>This is a <em>transcluded markdown document</em>.</p> </blockquote> -<h4 data-number="2.2.1.21" id="option-contentlevel"><span -class="header-section-number">2.2.1.21</span> Option +<h4 data-number="2.2.1.22" id="option-contentlevel"><span +class="header-section-number">2.2.1.22</span> Option <code>contentLevel</code></h4> <dl> <dt><code>contentLevel</code> (default value: <code>block</code>)</dt> @@ -3373,8 +3415,8 @@ contain the following text:</p> </ul> <p>- this is - a text</p> </blockquote> -<h4 data-number="2.2.1.22" id="option-debugextensions"><span -class="header-section-number">2.2.1.22</span> Option +<h4 data-number="2.2.1.23" id="option-debugextensions"><span +class="header-section-number">2.2.1.23</span> Option <code>debugExtensions</code></h4> <dl> <dt><code>debugExtensions</code> (default value: @@ -3385,13 +3427,13 @@ class="header-section-number">2.2.1.22</span> Option <dd> <p>Produce a <abbr>JSON</abbr> file that will contain the extensible subset of the <abbr>peg</abbr> grammar of markdown after built-in syntax -extensions (see options <strong><code>citations</code></strong>, -<strong><code>contentBlocks</code></strong>, -<strong><code>definitionLists</code></strong>, etc.) and user-defined -syntax extensions (see option <strong><code>extensions</code></strong>) +extensions (see options <code><strong>citations</strong></code>, +<code><strong>contentBlocks</strong></code>, +<code><strong>definitionLists</strong></code>, etc.) and user-defined +syntax extensions (see option <code><strong>extensions</strong></code>) have been applied. This helps you to see how the different extensions interact. The name of the produced <abbr>JSON</abbr> file is controlled -by the <strong><code>debugExtensionsFileName</code></strong> option.</p> +by the <code><strong>debugExtensionsFileName</strong></code> option.</p> </dd> </dl> </dd> @@ -3496,8 +3538,8 @@ class="sourceCode json"><code class="sourceCode json"><span id="cb208-1"><a href <span id="cb208-37"><a href="#cb208-37" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span></span></code></pre></div> <p>This output shows us that our user-defined syntax extension has been correctly inserted to the grammar of markdown.</p> -<h4 data-number="2.2.1.23" id="option-definitionlists"><span -class="header-section-number">2.2.1.23</span> Option +<h4 data-number="2.2.1.24" id="option-definitionlists"><span +class="header-section-number">2.2.1.24</span> Option <code>definitionLists</code></h4> <dl> <dt><code>definitionLists</code> (default value: @@ -3613,8 +3655,39 @@ contain the following text:</p> </dd> </dl> </blockquote> -<h4 data-number="2.2.1.24" id="option-expectjekylldata"><span -class="header-section-number">2.2.1.24</span> Option +<h4 data-number="2.2.1.25" id="option-ensurejekylldata"><span +class="header-section-number">2.2.1.25</span> Option +<code>ensureJekyllData</code></h4> +<dl> +<dt><code>ensureJekyllData</code> (default value: +<code>false</code>)</dt> +<dd> +<dl> +<dt>false</dt> +<dd> +<p>When the <code><strong>jekyllData</strong></code> and +<code><strong>expectJekyllData</strong></code> options are enabled, then +a markdown document may begin directly with <abbr>yaml</abbr> metadata +and may contain nothing but <abbr>yaml</abbr> metadata. Otherwise, the +markdown document is processed as markdown text.</p> +</dd> +</dl> +</dd> +<dd> +<dl> +<dt>true</dt> +<dd> +<p>When the <code><strong>jekyllData</strong></code> and +<code><strong>expectJekyllData</strong></code> options are enabled, then +a markdown document must begin directly with <abbr>yaml</abbr> metadata +and must contain nothing but <abbr>yaml</abbr> metadata. Otherwise, an +error is produced.</p> +</dd> +</dl> +</dd> +</dl> +<h4 data-number="2.2.1.26" id="option-expectjekylldata"><span +class="header-section-number">2.2.1.26</span> Option <code>expectJekyllData</code></h4> <dl> <dt><code>expectJekyllData</code> (default value: @@ -3623,7 +3696,7 @@ class="header-section-number">2.2.1.24</span> Option <dl> <dt>false</dt> <dd> -<p>When the <strong><code>jekyllData</code></strong> option is enabled, +<p>When the <code><strong>jekyllData</strong></code> option is enabled, then a markdown document may begin with <abbr>yaml</abbr> metadata if and only if the metadata begin with the end-of-directives marker (<code>---</code>) and they end with either the end-of-directives or the @@ -3655,7 +3728,7 @@ class="sourceCode latex"><code class="sourceCode latex"><span id="cb216-1"><a hr <dl> <dt>true</dt> <dd> -<p>When the <strong><code>jekyllData</code></strong> option is enabled, +<p>When the <code><strong>jekyllData</strong></code> option is enabled, then a markdown document may begin directly with <abbr>yaml</abbr> metadata and may contain nothing but <abbr>yaml</abbr> metadata.</p> <div class="sourceCode" id="cb217"><pre @@ -3713,14 +3786,14 @@ contain the following text:</p> <blockquote> <p>Jane Doe is 99 years old.</p> </blockquote> -<h4 data-number="2.2.1.25" id="option-extensions"><span -class="header-section-number">2.2.1.25</span> Option +<h4 data-number="2.2.1.27" id="option-extensions"><span +class="header-section-number">2.2.1.27</span> Option <code>extensions</code></h4> <dl> <dt><code>extensions</code> (default value: <code>{}</code>)</dt> <dd> <p>The filenames of user-defined syntax extensions that will be applied -to the markdown reader. If the <strong><code>kpathsea</code></strong> +to the markdown reader. If the <code><strong>kpathsea</strong></code> library is available, files will be searched for not only in the current working directory but also in the <span class="tex">T<sub>e</sub>X</span> directory structure.</p> @@ -3773,8 +3846,8 @@ contain the following text:</p> <blockquote> <p>This is <del>a lunar roving vehicle</del> strike-through text.</p> </blockquote> -<h4 data-number="2.2.1.26" id="option-fancylists"><span -class="header-section-number">2.2.1.26</span> Option +<h4 data-number="2.2.1.28" id="option-fancylists"><span +class="header-section-number">2.2.1.28</span> Option <code>fancyLists</code></h4> <dl> <dt><code>fancyLists</code> (default value: <code>false</code>)</dt> @@ -3854,8 +3927,8 @@ contain the following text:</p> <li>third item</li> </ol> </blockquote> -<h4 data-number="2.2.1.27" id="option-fencedcode"><span -class="header-section-number">2.2.1.27</span> Option +<h4 data-number="2.2.1.29" id="option-fencedcode"><span +class="header-section-number">2.2.1.29</span> Option <code>fencedCode</code></h4> <dl> <dt><code>fencedCode</code> (default value: <code>true</code>)</dt> @@ -3990,8 +4063,8 @@ class="sourceCode html"><code class="sourceCode html"><span id="cb237-1"><a href <span id="cb237-7"><a href="#cb237-7" aria-hidden="true" tabindex="-1"></a> <span class="dt"></</span><span class="kw">code</span><span class="dt">></span></span> <span id="cb237-8"><a href="#cb237-8" aria-hidden="true" tabindex="-1"></a><span class="dt"></</span><span class="kw">pre</span><span class="dt">></span></span></code></pre></div> </blockquote> -<h4 data-number="2.2.1.28" id="option-fencedcodeattributes"><span -class="header-section-number">2.2.1.28</span> Option +<h4 data-number="2.2.1.30" id="option-fencedcodeattributes"><span +class="header-section-number">2.2.1.30</span> Option <code>fencedCodeAttributes</code></h4> <dl> <dt><code>fencedCodeAttributes</code> (default value: @@ -4067,8 +4140,8 @@ class="sourceCode js linenos"><code class="sourceCode javascript"><span id="cb24 <span id="cb241-2"><a href="#cb241-2" aria-hidden="true" tabindex="-1"></a><span class="fl">2.</span> <span class="fu">moveShip</span>(<span class="dv">5</span> <span class="op">*</span> gravity<span class="op">,</span> DOWN)<span class="op">;</span></span> <span id="cb241-3"><a href="#cb241-3" aria-hidden="true" tabindex="-1"></a><span class="fl">3.</span> }</span></code></pre></div> </blockquote> -<h4 data-number="2.2.1.29" id="fenced-divs"><span -class="header-section-number">2.2.1.29</span> Option +<h4 data-number="2.2.1.31" id="fenced-divs"><span +class="header-section-number">2.2.1.31</span> Option <code>fencedDivs</code></h4> <dl> <dt><code>fencedDivs</code> (default value: <code>false</code>)</dt> @@ -4123,20 +4196,20 @@ contain the following text:</p> <blockquote> <p>Here is a special paragraph.</p> </blockquote> -<h4 data-number="2.2.1.30" id="option-finalizecache"><span -class="header-section-number">2.2.1.30</span> Option +<h4 data-number="2.2.1.32" id="option-finalizecache"><span +class="header-section-number">2.2.1.32</span> Option <code>finalizeCache</code></h4> <dl> <dt><code>finalizeCache</code> (default value: <code>false</code>)</dt> <dd> <p>Whether an output file specified with the -<strong><code>frozenCacheFileName</code></strong> option (frozen cache) +<code><strong>frozenCacheFileName</strong></code> option (frozen cache) that contains a mapping between an enumeration of markdown documents and their auxiliary cache files will be created.</p> <p>The frozen cache makes it possible to later typeset a plain <span class="tex">T<sub>e</sub>X</span> document that contains markdown documents without invoking Lua using the -<strong><code>frozenCache</code></strong> plain <span +<code><strong>frozenCache</strong></code> plain <span class="tex">T<sub>e</sub>X</span> option. As a result, the plain <span class="tex">T<sub>e</sub>X</span> document becomes more portable, but further changes in the order and the content of markdown documents will @@ -4255,15 +4328,15 @@ contents of the frozen cache using the the document without accessing the shell or invoking Lua, but the change in the content of the markdown document from “Hello <em>world</em>!” to “Hi <em>world</em>!” was not reflected.</p> -<h4 data-number="2.2.1.31" id="option-frozencachecounter"><span -class="header-section-number">2.2.1.31</span> Option +<h4 data-number="2.2.1.33" id="option-frozencachecounter"><span +class="header-section-number">2.2.1.33</span> Option <code>frozenCacheCounter</code></h4> <dl> <dt><code>frozenCacheCounter</code> (default value: <code>0</code>)</dt> <dd> <p>The number of the current markdown document that will be stored in an output file (frozen cache) when the -<strong><code>finalizeCache</code></strong> is enabled. When the +<code><strong>finalizeCache</strong></code> is enabled. When the document number is 0, then a new frozen cache will be created. Otherwise, the frozen cache will be appended.</p> <p>Each frozen cache entry will define a <span @@ -4296,8 +4369,8 @@ class="sourceCode sh"><code class="sourceCode bash"><span id="cb258-1"><a href=" contain the text “Hello <em>world</em>!” A frozen cache with two entries will also be produced as we requested using the <code>frozenCacheCounter</code> option.</p> -<h4 data-number="2.2.1.32" id="option-gfmautoidentifiers"><span -class="header-section-number">2.2.1.32</span> Option +<h4 data-number="2.2.1.34" id="option-gfmautoidentifiers"><span +class="header-section-number">2.2.1.34</span> Option <code>gfmAutoIdentifiers</code></h4> <dl> <dt><code>gfmAutoIdentifiers</code> (default value: @@ -4323,9 +4396,9 @@ extension.</p> </dd> </dl> <p>See also the option -<strong><code>autoIdentifiers</code></strong>.</p> -<h4 data-number="2.2.1.33" id="option-hashenumerators"><span -class="header-section-number">2.2.1.33</span> Option +<code><strong>autoIdentifiers</strong></code>.</p> +<h4 data-number="2.2.1.35" id="option-hashenumerators"><span +class="header-section-number">2.2.1.35</span> Option <code>hashEnumerators</code></h4> <dl> <dt><code>hashEnumerators</code> (default value: @@ -4427,8 +4500,8 @@ contain the following text:</p> <li>Parish</li> </ol> </blockquote> -<h4 data-number="2.2.1.34" id="header-attributes"><span -class="header-section-number">2.2.1.34</span> Option +<h4 data-number="2.2.1.36" id="header-attributes"><span +class="header-section-number">2.2.1.36</span> Option <code>headerAttributes</code></h4> <dl> <dt><code>headerAttributes</code> (default value: @@ -4457,8 +4530,8 @@ class="sourceCode md"><code class="sourceCode markdown"><span id="cb265-1"><a hr </dl> </dd> </dl> -<h4 data-number="2.2.1.35" id="option-html"><span -class="header-section-number">2.2.1.35</span> Option +<h4 data-number="2.2.1.37" id="option-html"><span +class="header-section-number">2.2.1.37</span> Option <code>html</code></h4> <dl> <dt><code>html</code> (default value: <code>true</code>)</dt> @@ -4548,7 +4621,7 @@ class="sourceCode tex"><code class="sourceCode latex"><span id="cb268-1"><a href class="sourceCode html"><code class="sourceCode html"><span id="cb269-1"><a href="#cb269-1" aria-hidden="true" tabindex="-1"></a><span class="dt"><</span><span class="kw">div</span><span class="dt">></span></span> <span id="cb269-2"><a href="#cb269-2" aria-hidden="true" tabindex="-1"></a>*Is there block tag support?*</span> <span id="cb269-3"><a href="#cb269-3" aria-hidden="true" tabindex="-1"></a><span class="dt"></</span><span class="kw">div</span><span class="dt">></span></span> -<span id="cb269-4"><a href="#cb269-4" aria-hidden="true" tabindex="-1"></a>*Is there <span class="dt"><</span><span class="kw">inline</span> <span class="er">tag</span><span class="ot">=</span><span class="st">"tag"</span><span class="dt">></</span><span class="kw">inline</span><span class="dt">></span> support?*</span> +<span id="cb269-4"><a href="#cb269-4" aria-hidden="true" tabindex="-1"></a>*Is there <span class="dt"><</span><span class="kw">inline</span><span class="ot"> tag</span><span class="op">=</span><span class="st">"tag"</span><span class="dt">></</span><span class="kw">inline</span><span class="dt">></span> support?*</span> <span id="cb269-5"><a href="#cb269-5" aria-hidden="true" tabindex="-1"></a>_Is there <span class="co"><!-- comment --></span> support?_</span> <span id="cb269-6"><a href="#cb269-6" aria-hidden="true" tabindex="-1"></a>_Is there <span class="kw"><?</span> HTML instruction <span class="kw">?></span> support?_</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> @@ -4695,8 +4768,8 @@ comment –> support. There is no <? HTML instruction ?> support.</p> <p>There is support. There is support. There is support.</p> </blockquote> -<h4 data-number="2.2.1.36" id="option-hybrid"><span -class="header-section-number">2.2.1.36</span> Option +<h4 data-number="2.2.1.38" id="option-hybrid"><span +class="header-section-number">2.2.1.38</span> Option <code>hybrid</code></h4> <dl> <dt><code>hybrid</code> (default value: <code>false</code>)</dt> @@ -4720,7 +4793,7 @@ markdown markup freely.</p> <dd> <p>Enable the escaping of special plain <span class="tex">T<sub>e</sub>X</span> characters outside verbatim -environments, so that they are not interpretted by <span +environments, so that they are not interpreted by <span class="tex">T<sub>e</sub>X</span>. This is encouraged when typesetting automatically generated content or markdown documents that were not prepared with this package in mind.</p> @@ -4728,35 +4801,83 @@ prepared with this package in mind.</p> </dl> </dd> </dl> +<p>The <code><strong>hybrid</strong></code> option makes it difficult to +untangle <span class="tex">T<sub>e</sub>X</span> input from markdown +text, which makes documents written with the +<code><strong>hybrid</strong></code> option less interoperable and more +difficult to read for authors. Therefore, the option has been +soft-deprecated in version 3.7.1 of the Markdown package: It will never +be removed but using it prints a warning and is discouraged.</p> +<p>Consider one of the following better alternatives for mixing <span +class="tex">T<sub>e</sub>X</span> and markdown:</p> +<ul> +<li><p>With the <code><strong>contentBlocks</strong></code> option, +authors can move large blocks of TeX code to separate files and include +them in their markdown documents as external resources:</p> +<div class="sourceCode" id="cb277"><pre +class="sourceCode md"><code class="sourceCode markdown"><span id="cb277-1"><a href="#cb277-1" aria-hidden="true" tabindex="-1"></a><span class="an">Here is a mathematical formula:</span></span> +<span id="cb277-2"><a href="#cb277-2" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb277-3"><a href="#cb277-3" aria-hidden="true" tabindex="-1"></a> /math-formula.tex</span></code></pre></div></li> +<li><p>With the <code><strong>rawAttribute</strong></code> option, +authors can denote raw text spans and code blocks that will be +interpreted as <span class="tex">T<sub>e</sub>X</span> code:</p> +<div class="sourceCode" id="cb278"><pre +class="sourceCode md"><code class="sourceCode markdown"><span id="cb278-1"><a href="#cb278-1" aria-hidden="true" tabindex="-1"></a><span class="in">`$H_2 O$`</span>{=tex} is a liquid.</span> +<span id="cb278-2"><a href="#cb278-2" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb278-3"><a href="#cb278-3" aria-hidden="true" tabindex="-1"></a>Here is a mathematical formula:</span> +<span id="cb278-4"><a href="#cb278-4" aria-hidden="true" tabindex="-1"></a><span class="in">``` {=tex}</span></span> +<span id="cb278-5"><a href="#cb278-5" aria-hidden="true" tabindex="-1"></a><span class="in">\[distance[i] =</span></span> +<span id="cb278-6"><a href="#cb278-6" aria-hidden="true" tabindex="-1"></a><span class="in"> \begin{dcases}</span></span> +<span id="cb278-7"><a href="#cb278-7" aria-hidden="true" tabindex="-1"></a><span class="in"> a & b \\</span></span> +<span id="cb278-8"><a href="#cb278-8" aria-hidden="true" tabindex="-1"></a><span class="in"> c & d</span></span> +<span id="cb278-9"><a href="#cb278-9" aria-hidden="true" tabindex="-1"></a><span class="in"> \end{dcases}</span></span> +<span id="cb278-10"><a href="#cb278-10" aria-hidden="true" tabindex="-1"></a><span class="in">\]</span></span> +<span id="cb278-11"><a href="#cb278-11" aria-hidden="true" tabindex="-1"></a><span class="in">```</span></span></code></pre></div></li> +<li><p>With options <code><strong>texMathDollars</strong></code>, +<code><strong>texMathSingleBackslash</strong></code>, and +<code><strong>texMathDoubleBackslash</strong></code>, authors can freely +type <span class="tex">T<sub>e</sub>X</span> commands between dollar +signs or backslash-escaped brackets:</p> +<div class="sourceCode" id="cb279"><pre +class="sourceCode md"><code class="sourceCode markdown"><span id="cb279-1"><a href="#cb279-1" aria-hidden="true" tabindex="-1"></a>$H_2 O$ is a liquid.</span> +<span id="cb279-2"><a href="#cb279-2" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb279-3"><a href="#cb279-3" aria-hidden="true" tabindex="-1"></a>Here is a mathematical formula:</span> +<span id="cb279-4"><a href="#cb279-4" aria-hidden="true" tabindex="-1"></a><span class="sc">\[</span>distance<span class="co">[</span><span class="ot">i</span><span class="co">]</span> =</span> +<span id="cb279-5"><a href="#cb279-5" aria-hidden="true" tabindex="-1"></a> \begin{dcases}</span> +<span id="cb279-6"><a href="#cb279-6" aria-hidden="true" tabindex="-1"></a> a & b <span class="sc">\\</span></span> +<span id="cb279-7"><a href="#cb279-7" aria-hidden="true" tabindex="-1"></a> c & d</span> +<span id="cb279-8"><a href="#cb279-8" aria-hidden="true" tabindex="-1"></a> \end{dcases}</span> +<span id="cb279-9"><a href="#cb279-9" aria-hidden="true" tabindex="-1"></a><span class="sc">\]</span></span></code></pre></div></li> +</ul> <h5 class="unnumbered" id="lua-module-example-11">Lua Module Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb277"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb277-1"><a href="#cb277-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> -<span id="cb277-2"><a href="#cb277-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> lmfonts</span> -<span id="cb277-3"><a href="#cb277-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\begingroup</span></span> -<span id="cb277-4"><a href="#cb277-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\catcode</span>`<span class="fu">\%</span>=12</span> -<span id="cb277-5"><a href="#cb277-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\catcode</span>`<span class="fu">\#</span>=12</span> -<span id="cb277-6"><a href="#cb277-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\directlua</span>{</span> -<span id="cb277-7"><a href="#cb277-7" aria-hidden="true" tabindex="-1"></a> local markdown = require("markdown")</span> -<span id="cb277-8"><a href="#cb277-8" aria-hidden="true" tabindex="-1"></a> local input, convert_safe, convert_unsafe, paragraph</span> -<span id="cb277-9"><a href="#cb277-9" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb277-10"><a href="#cb277-10" aria-hidden="true" tabindex="-1"></a> input = [[<span class="ss">$</span><span class="sc">\string\sqrt</span><span class="ss">{-1}$</span> *equals* <span class="ss">$i$</span>.]]</span> -<span id="cb277-11"><a href="#cb277-11" aria-hidden="true" tabindex="-1"></a> convert_safe = markdown.new()</span> -<span id="cb277-12"><a href="#cb277-12" aria-hidden="true" tabindex="-1"></a> convert_unsafe = markdown.new({hybrid = true})</span> -<span id="cb277-13"><a href="#cb277-13" aria-hidden="true" tabindex="-1"></a> paragraph = [[<span class="fu">\par</span>]]</span> -<span id="cb277-14"><a href="#cb277-14" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb277-15"><a href="#cb277-15" aria-hidden="true" tabindex="-1"></a> tex.sprint(</span> -<span id="cb277-16"><a href="#cb277-16" aria-hidden="true" tabindex="-1"></a> convert_safe(input) .. paragraph ..</span> -<span id="cb277-17"><a href="#cb277-17" aria-hidden="true" tabindex="-1"></a> convert_unsafe(input)</span> -<span id="cb277-18"><a href="#cb277-18" aria-hidden="true" tabindex="-1"></a> )</span> -<span id="cb277-19"><a href="#cb277-19" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb277-20"><a href="#cb277-20" aria-hidden="true" tabindex="-1"></a><span class="fu">\endgroup</span></span> -<span id="cb277-21"><a href="#cb277-21" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> +<div class="sourceCode" id="cb280"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb280-1"><a href="#cb280-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> +<span id="cb280-2"><a href="#cb280-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> lmfonts</span> +<span id="cb280-3"><a href="#cb280-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\begingroup</span></span> +<span id="cb280-4"><a href="#cb280-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\catcode</span>`<span class="fu">\%</span>=12</span> +<span id="cb280-5"><a href="#cb280-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\catcode</span>`<span class="fu">\#</span>=12</span> +<span id="cb280-6"><a href="#cb280-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\directlua</span>{</span> +<span id="cb280-7"><a href="#cb280-7" aria-hidden="true" tabindex="-1"></a> local markdown = require("markdown")</span> +<span id="cb280-8"><a href="#cb280-8" aria-hidden="true" tabindex="-1"></a> local input, convert_safe, convert_unsafe, paragraph</span> +<span id="cb280-9"><a href="#cb280-9" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb280-10"><a href="#cb280-10" aria-hidden="true" tabindex="-1"></a> input = [[<span class="ss">$</span><span class="sc">\string\sqrt</span><span class="ss">{-1}$</span> *equals* <span class="ss">$i$</span>.]]</span> +<span id="cb280-11"><a href="#cb280-11" aria-hidden="true" tabindex="-1"></a> convert_safe = markdown.new()</span> +<span id="cb280-12"><a href="#cb280-12" aria-hidden="true" tabindex="-1"></a> convert_unsafe = markdown.new({hybrid = true})</span> +<span id="cb280-13"><a href="#cb280-13" aria-hidden="true" tabindex="-1"></a> paragraph = [[<span class="fu">\par</span>]]</span> +<span id="cb280-14"><a href="#cb280-14" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb280-15"><a href="#cb280-15" aria-hidden="true" tabindex="-1"></a> tex.sprint(</span> +<span id="cb280-16"><a href="#cb280-16" aria-hidden="true" tabindex="-1"></a> convert_safe(input) .. paragraph ..</span> +<span id="cb280-17"><a href="#cb280-17" aria-hidden="true" tabindex="-1"></a> convert_unsafe(input)</span> +<span id="cb280-18"><a href="#cb280-18" aria-hidden="true" tabindex="-1"></a> )</span> +<span id="cb280-19"><a href="#cb280-19" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb280-20"><a href="#cb280-20" aria-hidden="true" tabindex="-1"></a><span class="fu">\endgroup</span></span> +<span id="cb280-21"><a href="#cb280-21" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> <p>Then, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb278"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb278-1"><a href="#cb278-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb281"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb281-1"><a href="#cb281-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -4767,26 +4888,26 @@ contain the following text:</p> <h5 class="unnumbered" id="lua-cli-example-10">Lua CLI Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb279"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb279-1"><a href="#cb279-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> -<span id="cb279-2"><a href="#cb279-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> lmfonts</span> -<span id="cb279-3"><a href="#cb279-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\begingroup</span></span> -<span id="cb279-4"><a href="#cb279-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\catcode</span>`<span class="fu">\%</span>=12</span> -<span id="cb279-5"><a href="#cb279-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\catcode</span>`<span class="fu">\#</span>=12</span> -<span id="cb279-6"><a href="#cb279-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> optionfalse</span> -<span id="cb279-7"><a href="#cb279-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\par</span></span> -<span id="cb279-8"><a href="#cb279-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> optiontrue</span> -<span id="cb279-9"><a href="#cb279-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\endgroup</span></span> -<span id="cb279-10"><a href="#cb279-10" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> +<div class="sourceCode" id="cb282"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb282-1"><a href="#cb282-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> +<span id="cb282-2"><a href="#cb282-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> lmfonts</span> +<span id="cb282-3"><a href="#cb282-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\begingroup</span></span> +<span id="cb282-4"><a href="#cb282-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\catcode</span>`<span class="fu">\%</span>=12</span> +<span id="cb282-5"><a href="#cb282-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\catcode</span>`<span class="fu">\#</span>=12</span> +<span id="cb282-6"><a href="#cb282-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> optionfalse</span> +<span id="cb282-7"><a href="#cb282-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\par</span></span> +<span id="cb282-8"><a href="#cb282-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> optiontrue</span> +<span id="cb282-9"><a href="#cb282-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\endgroup</span></span> +<span id="cb282-10"><a href="#cb282-10" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> <p>Using a text editor, create a text document named <code>content.md</code> with the following content:</p> -<div class="sourceCode" id="cb280"><pre -class="sourceCode md"><code class="sourceCode markdown"><span id="cb280-1"><a href="#cb280-1" aria-hidden="true" tabindex="-1"></a>$\sqrt{-1}$ *equals* $i$.</span></code></pre></div> +<div class="sourceCode" id="cb283"><pre +class="sourceCode md"><code class="sourceCode markdown"><span id="cb283-1"><a href="#cb283-1" aria-hidden="true" tabindex="-1"></a>$\sqrt{-1}$ *equals* $i$.</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb281"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb281-1"><a href="#cb281-1" aria-hidden="true" tabindex="-1"></a><span class="ex">texlua</span> ⟨CLI pathname⟩ <span class="at">--</span> content.md optionfalse.tex</span> -<span id="cb281-2"><a href="#cb281-2" aria-hidden="true" tabindex="-1"></a><span class="ex">texlua</span> ⟨CLI pathname⟩ hybrid=true <span class="at">--</span> content.md optiontrue.tex</span> -<span id="cb281-3"><a href="#cb281-3" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb284"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb284-1"><a href="#cb284-1" aria-hidden="true" tabindex="-1"></a><span class="ex">texlua</span> ⟨CLI pathname⟩ <span class="at">--</span> content.md optionfalse.tex</span> +<span id="cb284-2"><a href="#cb284-2" aria-hidden="true" tabindex="-1"></a><span class="ex">texlua</span> ⟨CLI pathname⟩ hybrid=true <span class="at">--</span> content.md optiontrue.tex</span> +<span id="cb284-3"><a href="#cb284-3" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> <p>where ⟨<em>CLI pathname</em>⟩ corresponds to the location of the Lua CLI script file, such as <code>~/texmf/scripts/markdown/markdown-cli.lua</code> on UN*X systems @@ -4807,23 +4928,23 @@ contain the following text:</p> class="tex">T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb282"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb282-1"><a href="#cb282-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> -<span id="cb282-2"><a href="#cb282-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> lmfonts</span> -<span id="cb282-3"><a href="#cb282-3" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb282-4"><a href="#cb282-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> -<span id="cb282-5"><a href="#cb282-5" aria-hidden="true" tabindex="-1"></a><span class="ss">$</span><span class="sc">\sqrt</span><span class="ss">{-1}$</span> *equals* <span class="ss">$i$</span>.</span> -<span id="cb282-6"><a href="#cb282-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> -<span id="cb282-7"><a href="#cb282-7" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb282-8"><a href="#cb282-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionHybrid</span>{true}</span> -<span id="cb282-9"><a href="#cb282-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> -<span id="cb282-10"><a href="#cb282-10" aria-hidden="true" tabindex="-1"></a><span class="ss">$</span><span class="sc">\sqrt</span><span class="ss">{-1}$</span> *equals* <span class="ss">$i$</span>.</span> -<span id="cb282-11"><a href="#cb282-11" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> -<span id="cb282-12"><a href="#cb282-12" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb282-13"><a href="#cb282-13" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> +<div class="sourceCode" id="cb285"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb285-1"><a href="#cb285-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> +<span id="cb285-2"><a href="#cb285-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> lmfonts</span> +<span id="cb285-3"><a href="#cb285-3" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb285-4"><a href="#cb285-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> +<span id="cb285-5"><a href="#cb285-5" aria-hidden="true" tabindex="-1"></a><span class="ss">$</span><span class="sc">\sqrt</span><span class="ss">{-1}$</span> *equals* <span class="ss">$i$</span>.</span> +<span id="cb285-6"><a href="#cb285-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> +<span id="cb285-7"><a href="#cb285-7" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb285-8"><a href="#cb285-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionHybrid</span>{true}</span> +<span id="cb285-9"><a href="#cb285-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> +<span id="cb285-10"><a href="#cb285-10" aria-hidden="true" tabindex="-1"></a><span class="ss">$</span><span class="sc">\sqrt</span><span class="ss">{-1}$</span> *equals* <span class="ss">$i$</span>.</span> +<span id="cb285-11"><a href="#cb285-11" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> +<span id="cb285-12"><a href="#cb285-12" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb285-13"><a href="#cb285-13" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb283"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb283-1"><a href="#cb283-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb286"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb286-1"><a href="#cb286-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -4835,23 +4956,23 @@ contain the following text:</p> class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb284"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb284-1"><a href="#cb284-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb284-2"><a href="#cb284-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>{<span class="ex">markdown</span>}</span> -<span id="cb284-3"><a href="#cb284-3" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb284-4"><a href="#cb284-4" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb284-5"><a href="#cb284-5" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb284-6"><a href="#cb284-6" aria-hidden="true" tabindex="-1"></a><span class="ss">$</span><span class="sc">\sqrt</span><span class="ss">{-1}$</span> *equals* <span class="ss">$i$</span>.</span> -<span id="cb284-7"><a href="#cb284-7" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb284-8"><a href="#cb284-8" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb284-9"><a href="#cb284-9" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}[hybrid]</span> -<span id="cb284-10"><a href="#cb284-10" aria-hidden="true" tabindex="-1"></a><span class="ss">$</span><span class="sc">\sqrt</span><span class="ss">{-1}$</span> *equals* <span class="ss">$i$</span>.</span> -<span id="cb284-11"><a href="#cb284-11" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb284-12"><a href="#cb284-12" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb284-13"><a href="#cb284-13" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb287"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb287-1"><a href="#cb287-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb287-2"><a href="#cb287-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>{<span class="ex">markdown</span>}</span> +<span id="cb287-3"><a href="#cb287-3" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb287-4"><a href="#cb287-4" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb287-5"><a href="#cb287-5" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb287-6"><a href="#cb287-6" aria-hidden="true" tabindex="-1"></a><span class="ss">$</span><span class="sc">\sqrt</span><span class="ss">{-1}$</span> *equals* <span class="ss">$i$</span>.</span> +<span id="cb287-7"><a href="#cb287-7" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb287-8"><a href="#cb287-8" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb287-9"><a href="#cb287-9" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}[hybrid]</span> +<span id="cb287-10"><a href="#cb287-10" aria-hidden="true" tabindex="-1"></a><span class="ss">$</span><span class="sc">\sqrt</span><span class="ss">{-1}$</span> *equals* <span class="ss">$i$</span>.</span> +<span id="cb287-11"><a href="#cb287-11" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb287-12"><a href="#cb287-12" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb287-13"><a href="#cb287-13" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb285"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb285-1"><a href="#cb285-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb288"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb288-1"><a href="#cb288-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -4863,23 +4984,23 @@ contain the following text:</p> class="tex">T<sub>e</sub>X</span>t Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb286"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb286-1"><a href="#cb286-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> -<span id="cb286-2"><a href="#cb286-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> -<span id="cb286-3"><a href="#cb286-3" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb286-4"><a href="#cb286-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> -<span id="cb286-5"><a href="#cb286-5" aria-hidden="true" tabindex="-1"></a><span class="ss">$</span><span class="sc">\sqrt</span><span class="ss">{-1}$</span> *equals* <span class="ss">$i$</span>.</span> -<span id="cb286-6"><a href="#cb286-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> -<span id="cb286-7"><a href="#cb286-7" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb286-8"><a href="#cb286-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span>[hybrid = yes]</span> -<span id="cb286-9"><a href="#cb286-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> -<span id="cb286-10"><a href="#cb286-10" aria-hidden="true" tabindex="-1"></a><span class="ss">$</span><span class="sc">\sqrt</span><span class="ss">{-1}$</span> *equals* <span class="ss">$i$</span>.</span> -<span id="cb286-11"><a href="#cb286-11" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> -<span id="cb286-12"><a href="#cb286-12" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb286-13"><a href="#cb286-13" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> +<div class="sourceCode" id="cb289"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb289-1"><a href="#cb289-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> +<span id="cb289-2"><a href="#cb289-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> +<span id="cb289-3"><a href="#cb289-3" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb289-4"><a href="#cb289-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> +<span id="cb289-5"><a href="#cb289-5" aria-hidden="true" tabindex="-1"></a><span class="ss">$</span><span class="sc">\sqrt</span><span class="ss">{-1}$</span> *equals* <span class="ss">$i$</span>.</span> +<span id="cb289-6"><a href="#cb289-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> +<span id="cb289-7"><a href="#cb289-7" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb289-8"><a href="#cb289-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span>[hybrid = yes]</span> +<span id="cb289-9"><a href="#cb289-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> +<span id="cb289-10"><a href="#cb289-10" aria-hidden="true" tabindex="-1"></a><span class="ss">$</span><span class="sc">\sqrt</span><span class="ss">{-1}$</span> *equals* <span class="ss">$i$</span>.</span> +<span id="cb289-11"><a href="#cb289-11" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> +<span id="cb289-12"><a href="#cb289-12" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb289-13"><a href="#cb289-13" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb287"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb287-1"><a href="#cb287-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb290"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb290-1"><a href="#cb290-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -4887,8 +5008,8 @@ contain the following text:</p> <p><math><msqrt><mo>−</mo><mn>1</mn></msqrt></math> <em>equals</em> <math><mi>i</mi></math>.</p> </blockquote> -<h4 data-number="2.2.1.37" id="option-inlinecodeattributes"><span -class="header-section-number">2.2.1.37</span> Option +<h4 data-number="2.2.1.39" id="option-inlinecodeattributes"><span +class="header-section-number">2.2.1.39</span> Option <code>inlineCodeAttributes</code></h4> <dl> <dt><code>inlineCodeAttributes</code> (default value: @@ -4900,8 +5021,8 @@ class="header-section-number">2.2.1.37</span> Option <p>Enable the Pandoc <a href="https://pandoc.org/MANUAL.html#extension-inline_code_attributes">inline code span attribute extension</a>:</p> -<div class="sourceCode" id="cb288"><pre -class="sourceCode md"><code class="sourceCode markdown"><span id="cb288-1"><a href="#cb288-1" aria-hidden="true" tabindex="-1"></a><span class="in">`<$>`</span>{.haskell}</span></code></pre></div> +<div class="sourceCode" id="cb291"><pre +class="sourceCode md"><code class="sourceCode markdown"><span id="cb291-1"><a href="#cb291-1" aria-hidden="true" tabindex="-1"></a><span class="in">`<$>`</span>{.haskell}</span></code></pre></div> </dd> </dl> </dd> @@ -4918,52 +5039,52 @@ class="sourceCode md"><code class="sourceCode markdown"><span id="cb288-1"><a hr class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb289"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb289-1"><a href="#cb289-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb289-2"><a href="#cb289-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[inlineCodeAttributes]{<span class="ex">markdown</span>}</span> -<span id="cb289-3"><a href="#cb289-3" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>{<span class="ex">expl3</span>}</span> -<span id="cb289-4"><a href="#cb289-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\ExplSyntaxOn</span></span> -<span id="cb289-5"><a href="#cb289-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> -<span id="cb289-6"><a href="#cb289-6" aria-hidden="true" tabindex="-1"></a> renderers = {</span> -<span id="cb289-7"><a href="#cb289-7" aria-hidden="true" tabindex="-1"></a> codeSpanAttributeContextBegin = {</span> -<span id="cb289-8"><a href="#cb289-8" aria-hidden="true" tabindex="-1"></a> <span class="fu">\group</span>_begin:</span> -<span id="cb289-9"><a href="#cb289-9" aria-hidden="true" tabindex="-1"></a> <span class="fu">\color</span>_group_begin:</span> -<span id="cb289-10"><a href="#cb289-10" aria-hidden="true" tabindex="-1"></a> <span class="fu">\markdownSetup</span>{</span> -<span id="cb289-11"><a href="#cb289-11" aria-hidden="true" tabindex="-1"></a> renderers = {</span> -<span id="cb289-12"><a href="#cb289-12" aria-hidden="true" tabindex="-1"></a> attributeKeyValue = {</span> -<span id="cb289-13"><a href="#cb289-13" aria-hidden="true" tabindex="-1"></a> <span class="fu">\str</span>_if_eq:nnT</span> -<span id="cb289-14"><a href="#cb289-14" aria-hidden="true" tabindex="-1"></a> { ##1 }</span> -<span id="cb289-15"><a href="#cb289-15" aria-hidden="true" tabindex="-1"></a> { color }</span> -<span id="cb289-16"><a href="#cb289-16" aria-hidden="true" tabindex="-1"></a> {</span> -<span id="cb289-17"><a href="#cb289-17" aria-hidden="true" tabindex="-1"></a> <span class="fu">\color</span>_select:n { ##2 }</span> -<span id="cb289-18"><a href="#cb289-18" aria-hidden="true" tabindex="-1"></a> }</span> -<span id="cb289-19"><a href="#cb289-19" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb289-20"><a href="#cb289-20" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb289-21"><a href="#cb289-21" aria-hidden="true" tabindex="-1"></a> }</span> -<span id="cb289-22"><a href="#cb289-22" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb289-23"><a href="#cb289-23" aria-hidden="true" tabindex="-1"></a> codeSpanAttributeContextEnd = {</span> -<span id="cb289-24"><a href="#cb289-24" aria-hidden="true" tabindex="-1"></a> <span class="fu">\color</span>_group_end:</span> -<span id="cb289-25"><a href="#cb289-25" aria-hidden="true" tabindex="-1"></a> <span class="fu">\group</span>_end:</span> -<span id="cb289-26"><a href="#cb289-26" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb289-27"><a href="#cb289-27" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb289-28"><a href="#cb289-28" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb289-29"><a href="#cb289-29" aria-hidden="true" tabindex="-1"></a><span class="fu">\ExplSyntaxOff</span></span> -<span id="cb289-30"><a href="#cb289-30" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb289-31"><a href="#cb289-31" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb289-32"><a href="#cb289-32" aria-hidden="true" tabindex="-1"></a>Here is some `colored text`{color=red}.</span> -<span id="cb289-33"><a href="#cb289-33" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb289-34"><a href="#cb289-34" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb292"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb292-1"><a href="#cb292-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb292-2"><a href="#cb292-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[inlineCodeAttributes]{<span class="ex">markdown</span>}</span> +<span id="cb292-3"><a href="#cb292-3" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>{<span class="ex">expl3</span>}</span> +<span id="cb292-4"><a href="#cb292-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\ExplSyntaxOn</span></span> +<span id="cb292-5"><a href="#cb292-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> +<span id="cb292-6"><a href="#cb292-6" aria-hidden="true" tabindex="-1"></a> renderers = {</span> +<span id="cb292-7"><a href="#cb292-7" aria-hidden="true" tabindex="-1"></a> codeSpanAttributeContextBegin = {</span> +<span id="cb292-8"><a href="#cb292-8" aria-hidden="true" tabindex="-1"></a> <span class="fu">\group</span>_begin:</span> +<span id="cb292-9"><a href="#cb292-9" aria-hidden="true" tabindex="-1"></a> <span class="fu">\color</span>_group_begin:</span> +<span id="cb292-10"><a href="#cb292-10" aria-hidden="true" tabindex="-1"></a> <span class="fu">\markdownSetup</span>{</span> +<span id="cb292-11"><a href="#cb292-11" aria-hidden="true" tabindex="-1"></a> renderers = {</span> +<span id="cb292-12"><a href="#cb292-12" aria-hidden="true" tabindex="-1"></a> attributeKeyValue = {</span> +<span id="cb292-13"><a href="#cb292-13" aria-hidden="true" tabindex="-1"></a> <span class="fu">\str</span>_if_eq:nnT</span> +<span id="cb292-14"><a href="#cb292-14" aria-hidden="true" tabindex="-1"></a> { ##1 }</span> +<span id="cb292-15"><a href="#cb292-15" aria-hidden="true" tabindex="-1"></a> { color }</span> +<span id="cb292-16"><a href="#cb292-16" aria-hidden="true" tabindex="-1"></a> {</span> +<span id="cb292-17"><a href="#cb292-17" aria-hidden="true" tabindex="-1"></a> <span class="fu">\color</span>_select:n { ##2 }</span> +<span id="cb292-18"><a href="#cb292-18" aria-hidden="true" tabindex="-1"></a> }</span> +<span id="cb292-19"><a href="#cb292-19" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb292-20"><a href="#cb292-20" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb292-21"><a href="#cb292-21" aria-hidden="true" tabindex="-1"></a> }</span> +<span id="cb292-22"><a href="#cb292-22" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb292-23"><a href="#cb292-23" aria-hidden="true" tabindex="-1"></a> codeSpanAttributeContextEnd = {</span> +<span id="cb292-24"><a href="#cb292-24" aria-hidden="true" tabindex="-1"></a> <span class="fu">\color</span>_group_end:</span> +<span id="cb292-25"><a href="#cb292-25" aria-hidden="true" tabindex="-1"></a> <span class="fu">\group</span>_end:</span> +<span id="cb292-26"><a href="#cb292-26" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb292-27"><a href="#cb292-27" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb292-28"><a href="#cb292-28" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb292-29"><a href="#cb292-29" aria-hidden="true" tabindex="-1"></a><span class="fu">\ExplSyntaxOff</span></span> +<span id="cb292-30"><a href="#cb292-30" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb292-31"><a href="#cb292-31" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb292-32"><a href="#cb292-32" aria-hidden="true" tabindex="-1"></a>Here is some `colored text`{color=red}.</span> +<span id="cb292-33"><a href="#cb292-33" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb292-34"><a href="#cb292-34" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb290"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb290-1"><a href="#cb290-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb293"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb293-1"><a href="#cb293-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> <p>Here is some <span style="color: red"><code>colored text</code></span>.</p> </blockquote> -<h4 data-number="2.2.1.38" id="option-inlinenotes"><span -class="header-section-number">2.2.1.38</span> Option +<h4 data-number="2.2.1.40" id="option-inlinenotes"><span +class="header-section-number">2.2.1.40</span> Option <code>inlineNotes</code></h4> <dl> <dt><code>inlineNotes</code> (default value: <code>false</code>)</dt> @@ -4974,10 +5095,10 @@ class="header-section-number">2.2.1.38</span> Option <p>Enable the Pandoc <a href="https://pandoc.org/MANUAL.html#extension-inline_notes">inline note syntax extension</a>:</p> -<div class="sourceCode" id="cb291"><pre -class="sourceCode md"><code class="sourceCode markdown"><span id="cb291-1"><a href="#cb291-1" aria-hidden="true" tabindex="-1"></a>Here is an inline note.^[Inlines notes are easier to</span> -<span id="cb291-2"><a href="#cb291-2" aria-hidden="true" tabindex="-1"></a>write, since you don't have to pick an identifier and</span> -<span id="cb291-3"><a href="#cb291-3" aria-hidden="true" tabindex="-1"></a>move down to type the note.]</span></code></pre></div> +<div class="sourceCode" id="cb294"><pre +class="sourceCode md"><code class="sourceCode markdown"><span id="cb294-1"><a href="#cb294-1" aria-hidden="true" tabindex="-1"></a>Here is an inline note.^[Inlines notes are easier to</span> +<span id="cb294-2"><a href="#cb294-2" aria-hidden="true" tabindex="-1"></a>write, since you don't have to pick an identifier and</span> +<span id="cb294-3"><a href="#cb294-3" aria-hidden="true" tabindex="-1"></a>move down to type the note.]</span></code></pre></div> </dd> </dl> </dd> @@ -4994,19 +5115,19 @@ class="sourceCode md"><code class="sourceCode markdown"><span id="cb291-1"><a hr class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb292"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb292-1"><a href="#cb292-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb292-2"><a href="#cb292-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[inlineNotes]{<span class="ex">markdown</span>}</span> -<span id="cb292-3"><a href="#cb292-3" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb292-4"><a href="#cb292-4" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb292-5"><a href="#cb292-5" aria-hidden="true" tabindex="-1"></a>Here is an inline note.^[Inlines notes are easier to</span> -<span id="cb292-6"><a href="#cb292-6" aria-hidden="true" tabindex="-1"></a>write, since you don't have to pick an identifier and</span> -<span id="cb292-7"><a href="#cb292-7" aria-hidden="true" tabindex="-1"></a>move down to type the note.]</span> -<span id="cb292-8"><a href="#cb292-8" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb292-9"><a href="#cb292-9" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb295"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb295-1"><a href="#cb295-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb295-2"><a href="#cb295-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[inlineNotes]{<span class="ex">markdown</span>}</span> +<span id="cb295-3"><a href="#cb295-3" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb295-4"><a href="#cb295-4" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb295-5"><a href="#cb295-5" aria-hidden="true" tabindex="-1"></a>Here is an inline note.^[Inlines notes are easier to</span> +<span id="cb295-6"><a href="#cb295-6" aria-hidden="true" tabindex="-1"></a>write, since you don't have to pick an identifier and</span> +<span id="cb295-7"><a href="#cb295-7" aria-hidden="true" tabindex="-1"></a>move down to type the note.]</span> +<span id="cb295-8"><a href="#cb295-8" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb295-9"><a href="#cb295-9" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb293"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb293-1"><a href="#cb293-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb296"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb296-1"><a href="#cb296-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -5017,27 +5138,27 @@ id="fnref1" role="doc-noteref"><sup>1</sup></a></p> class="tex">T<sub>e</sub>X</span>t Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb294"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb294-1"><a href="#cb294-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> -<span id="cb294-2"><a href="#cb294-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span>[inlineNotes = yes]</span> -<span id="cb294-3"><a href="#cb294-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> -<span id="cb294-4"><a href="#cb294-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> -<span id="cb294-5"><a href="#cb294-5" aria-hidden="true" tabindex="-1"></a>Here is an inline note.^[Inlines notes are easier to</span> -<span id="cb294-6"><a href="#cb294-6" aria-hidden="true" tabindex="-1"></a>write, since you don't have to pick an identifier and</span> -<span id="cb294-7"><a href="#cb294-7" aria-hidden="true" tabindex="-1"></a>move down to type the note.]</span> -<span id="cb294-8"><a href="#cb294-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> -<span id="cb294-9"><a href="#cb294-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> +<div class="sourceCode" id="cb297"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb297-1"><a href="#cb297-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> +<span id="cb297-2"><a href="#cb297-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span>[inlineNotes = yes]</span> +<span id="cb297-3"><a href="#cb297-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> +<span id="cb297-4"><a href="#cb297-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> +<span id="cb297-5"><a href="#cb297-5" aria-hidden="true" tabindex="-1"></a>Here is an inline note.^[Inlines notes are easier to</span> +<span id="cb297-6"><a href="#cb297-6" aria-hidden="true" tabindex="-1"></a>write, since you don't have to pick an identifier and</span> +<span id="cb297-7"><a href="#cb297-7" aria-hidden="true" tabindex="-1"></a>move down to type the note.]</span> +<span id="cb297-8"><a href="#cb297-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> +<span id="cb297-9"><a href="#cb297-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb295"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb295-1"><a href="#cb295-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb298"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb298-1"><a href="#cb298-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> <p>Here is an inline note.<a href="#fn2" class="footnote-ref" id="fnref2" role="doc-noteref"><sup>2</sup></a></p> </blockquote> -<h4 data-number="2.2.1.39" id="option-jekylldata"><span -class="header-section-number">2.2.1.39</span> Option +<h4 data-number="2.2.1.41" id="option-jekylldata"><span +class="header-section-number">2.2.1.41</span> Option <code>jekyllData</code></h4> <dl> <dt><code>jekyllData</code> (default value: <code>false</code>)</dt> @@ -5049,18 +5170,18 @@ class="header-section-number">2.2.1.39</span> Option href="https://pandoc.org/MANUAL.html#extension-yaml_metadata_block"><abbr>yaml</abbr> metadata block syntax extension</a> for entering metadata in <abbr>yaml</abbr>:</p> -<div class="sourceCode" id="cb296"><pre -class="sourceCode yaml"><code class="sourceCode yaml"><span id="cb296-1"><a href="#cb296-1" aria-hidden="true" tabindex="-1"></a><span class="pp">---</span></span> -<span id="cb296-2"><a href="#cb296-2" aria-hidden="true" tabindex="-1"></a><span class="fu">title</span><span class="kw">:</span><span class="at"> </span><span class="st">'This is the title: it contains a colon'</span></span> -<span id="cb296-3"><a href="#cb296-3" aria-hidden="true" tabindex="-1"></a><span class="fu">author</span><span class="kw">:</span></span> -<span id="cb296-4"><a href="#cb296-4" aria-hidden="true" tabindex="-1"></a><span class="kw">-</span><span class="at"> Author One</span></span> -<span id="cb296-5"><a href="#cb296-5" aria-hidden="true" tabindex="-1"></a><span class="kw">-</span><span class="at"> Author Two</span></span> -<span id="cb296-6"><a href="#cb296-6" aria-hidden="true" tabindex="-1"></a><span class="fu">keywords</span><span class="kw">:</span><span class="at"> </span><span class="kw">[</span><span class="at">nothing</span><span class="kw">,</span><span class="at"> nothingness</span><span class="kw">]</span></span> -<span id="cb296-7"><a href="#cb296-7" aria-hidden="true" tabindex="-1"></a><span class="fu">abstract</span><span class="kw">: </span><span class="ch">|</span></span> -<span id="cb296-8"><a href="#cb296-8" aria-hidden="true" tabindex="-1"></a> This is the abstract.</span> -<span id="cb296-9"><a href="#cb296-9" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb296-10"><a href="#cb296-10" aria-hidden="true" tabindex="-1"></a> It consists of two paragraphs.</span> -<span id="cb296-11"><a href="#cb296-11" aria-hidden="true" tabindex="-1"></a><span class="pp">---</span></span></code></pre></div> +<div class="sourceCode" id="cb299"><pre +class="sourceCode yaml"><code class="sourceCode yaml"><span id="cb299-1"><a href="#cb299-1" aria-hidden="true" tabindex="-1"></a><span class="pp">---</span></span> +<span id="cb299-2"><a href="#cb299-2" aria-hidden="true" tabindex="-1"></a><span class="fu">title</span><span class="kw">:</span><span class="at"> </span><span class="st">'This is the title: it contains a colon'</span></span> +<span id="cb299-3"><a href="#cb299-3" aria-hidden="true" tabindex="-1"></a><span class="fu">author</span><span class="kw">:</span></span> +<span id="cb299-4"><a href="#cb299-4" aria-hidden="true" tabindex="-1"></a><span class="kw">-</span><span class="at"> Author One</span></span> +<span id="cb299-5"><a href="#cb299-5" aria-hidden="true" tabindex="-1"></a><span class="kw">-</span><span class="at"> Author Two</span></span> +<span id="cb299-6"><a href="#cb299-6" aria-hidden="true" tabindex="-1"></a><span class="fu">keywords</span><span class="kw">:</span><span class="at"> </span><span class="kw">[</span><span class="at">nothing</span><span class="kw">,</span><span class="at"> nothingness</span><span class="kw">]</span></span> +<span id="cb299-7"><a href="#cb299-7" aria-hidden="true" tabindex="-1"></a><span class="fu">abstract</span><span class="kw">: </span><span class="ch">|</span></span> +<span id="cb299-8"><a href="#cb299-8" aria-hidden="true" tabindex="-1"></a> This is the abstract.</span> +<span id="cb299-9"><a href="#cb299-9" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb299-10"><a href="#cb299-10" aria-hidden="true" tabindex="-1"></a> It consists of two paragraphs.</span> +<span id="cb299-11"><a href="#cb299-11" aria-hidden="true" tabindex="-1"></a><span class="pp">---</span></span></code></pre></div> </dd> </dl> </dd> @@ -5078,29 +5199,29 @@ for entering metadata in <abbr>yaml</abbr>.</p> class="tex">T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb297"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb297-1"><a href="#cb297-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> -<span id="cb297-2"><a href="#cb297-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionJekyllData</span>{true}</span> -<span id="cb297-3"><a href="#cb297-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\ExplSyntaxOn</span></span> -<span id="cb297-4"><a href="#cb297-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\keys</span>_define:nn</span> -<span id="cb297-5"><a href="#cb297-5" aria-hidden="true" tabindex="-1"></a> { markdown/jekyllData }</span> -<span id="cb297-6"><a href="#cb297-6" aria-hidden="true" tabindex="-1"></a> {</span> -<span id="cb297-7"><a href="#cb297-7" aria-hidden="true" tabindex="-1"></a> name .code:n = { <span class="fu">\gdef\name</span>{#1} },</span> -<span id="cb297-8"><a href="#cb297-8" aria-hidden="true" tabindex="-1"></a> age .code:n = { <span class="fu">\gdef\age</span>{#1} },</span> -<span id="cb297-9"><a href="#cb297-9" aria-hidden="true" tabindex="-1"></a> }</span> -<span id="cb297-10"><a href="#cb297-10" aria-hidden="true" tabindex="-1"></a><span class="fu">\ExplSyntaxOff</span></span> -<span id="cb297-11"><a href="#cb297-11" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererJekyllDataEnd</span>{<span class="co">%</span></span> -<span id="cb297-12"><a href="#cb297-12" aria-hidden="true" tabindex="-1"></a> <span class="fu">\name</span>{} is <span class="fu">\age</span>{} years old.}</span> -<span id="cb297-13"><a href="#cb297-13" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> -<span id="cb297-14"><a href="#cb297-14" aria-hidden="true" tabindex="-1"></a>---</span> -<span id="cb297-15"><a href="#cb297-15" aria-hidden="true" tabindex="-1"></a>name: Jane Doe</span> -<span id="cb297-16"><a href="#cb297-16" aria-hidden="true" tabindex="-1"></a>age: 99</span> -<span id="cb297-17"><a href="#cb297-17" aria-hidden="true" tabindex="-1"></a>---</span> -<span id="cb297-18"><a href="#cb297-18" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> -<span id="cb297-19"><a href="#cb297-19" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> +<div class="sourceCode" id="cb300"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb300-1"><a href="#cb300-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> +<span id="cb300-2"><a href="#cb300-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionJekyllData</span>{true}</span> +<span id="cb300-3"><a href="#cb300-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\ExplSyntaxOn</span></span> +<span id="cb300-4"><a href="#cb300-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\keys</span>_define:nn</span> +<span id="cb300-5"><a href="#cb300-5" aria-hidden="true" tabindex="-1"></a> { markdown/jekyllData }</span> +<span id="cb300-6"><a href="#cb300-6" aria-hidden="true" tabindex="-1"></a> {</span> +<span id="cb300-7"><a href="#cb300-7" aria-hidden="true" tabindex="-1"></a> name .code:n = { <span class="fu">\gdef\name</span>{#1} },</span> +<span id="cb300-8"><a href="#cb300-8" aria-hidden="true" tabindex="-1"></a> age .code:n = { <span class="fu">\gdef\age</span>{#1} },</span> +<span id="cb300-9"><a href="#cb300-9" aria-hidden="true" tabindex="-1"></a> }</span> +<span id="cb300-10"><a href="#cb300-10" aria-hidden="true" tabindex="-1"></a><span class="fu">\ExplSyntaxOff</span></span> +<span id="cb300-11"><a href="#cb300-11" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererJekyllDataEnd</span>{<span class="co">%</span></span> +<span id="cb300-12"><a href="#cb300-12" aria-hidden="true" tabindex="-1"></a> <span class="fu">\name</span>{} is <span class="fu">\age</span>{} years old.}</span> +<span id="cb300-13"><a href="#cb300-13" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> +<span id="cb300-14"><a href="#cb300-14" aria-hidden="true" tabindex="-1"></a>---</span> +<span id="cb300-15"><a href="#cb300-15" aria-hidden="true" tabindex="-1"></a>name: Jane Doe</span> +<span id="cb300-16"><a href="#cb300-16" aria-hidden="true" tabindex="-1"></a>age: 99</span> +<span id="cb300-17"><a href="#cb300-17" aria-hidden="true" tabindex="-1"></a>---</span> +<span id="cb300-18"><a href="#cb300-18" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> +<span id="cb300-19"><a href="#cb300-19" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb298"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb298-1"><a href="#cb298-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb301"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb301-1"><a href="#cb301-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -5110,31 +5231,31 @@ contain the following text:</p> class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb299"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb299-1"><a href="#cb299-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb299-2"><a href="#cb299-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[jekyllData]{<span class="ex">markdown</span>}</span> -<span id="cb299-3"><a href="#cb299-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> -<span id="cb299-4"><a href="#cb299-4" aria-hidden="true" tabindex="-1"></a> jekyllDataRenderers = {</span> -<span id="cb299-5"><a href="#cb299-5" aria-hidden="true" tabindex="-1"></a> name = {<span class="fu">\gdef\name</span>{#1}},</span> -<span id="cb299-6"><a href="#cb299-6" aria-hidden="true" tabindex="-1"></a> code = {<span class="fu">\gdef\age</span>{#1}},</span> -<span id="cb299-7"><a href="#cb299-7" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb299-8"><a href="#cb299-8" aria-hidden="true" tabindex="-1"></a> renderers = {</span> -<span id="cb299-9"><a href="#cb299-9" aria-hidden="true" tabindex="-1"></a> jekyllDataEnd = {<span class="fu">\name</span>{} is <span class="fu">\age</span>{} years old.},</span> -<span id="cb299-10"><a href="#cb299-10" aria-hidden="true" tabindex="-1"></a> }</span> -<span id="cb299-11"><a href="#cb299-11" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb299-12"><a href="#cb299-12" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb299-13"><a href="#cb299-13" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb299-14"><a href="#cb299-14" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb299-15"><a href="#cb299-15" aria-hidden="true" tabindex="-1"></a>---</span> -<span id="cb299-16"><a href="#cb299-16" aria-hidden="true" tabindex="-1"></a>name: Jane Doe</span> -<span id="cb299-17"><a href="#cb299-17" aria-hidden="true" tabindex="-1"></a>age: 99</span> -<span id="cb299-18"><a href="#cb299-18" aria-hidden="true" tabindex="-1"></a>---</span> -<span id="cb299-19"><a href="#cb299-19" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb299-20"><a href="#cb299-20" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb299-21"><a href="#cb299-21" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb302"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb302-1"><a href="#cb302-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb302-2"><a href="#cb302-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[jekyllData]{<span class="ex">markdown</span>}</span> +<span id="cb302-3"><a href="#cb302-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> +<span id="cb302-4"><a href="#cb302-4" aria-hidden="true" tabindex="-1"></a> jekyllDataRenderers = {</span> +<span id="cb302-5"><a href="#cb302-5" aria-hidden="true" tabindex="-1"></a> name = {<span class="fu">\gdef\name</span>{#1}},</span> +<span id="cb302-6"><a href="#cb302-6" aria-hidden="true" tabindex="-1"></a> code = {<span class="fu">\gdef\age</span>{#1}},</span> +<span id="cb302-7"><a href="#cb302-7" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb302-8"><a href="#cb302-8" aria-hidden="true" tabindex="-1"></a> renderers = {</span> +<span id="cb302-9"><a href="#cb302-9" aria-hidden="true" tabindex="-1"></a> jekyllDataEnd = {<span class="fu">\name</span>{} is <span class="fu">\age</span>{} years old.},</span> +<span id="cb302-10"><a href="#cb302-10" aria-hidden="true" tabindex="-1"></a> }</span> +<span id="cb302-11"><a href="#cb302-11" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb302-12"><a href="#cb302-12" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb302-13"><a href="#cb302-13" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb302-14"><a href="#cb302-14" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb302-15"><a href="#cb302-15" aria-hidden="true" tabindex="-1"></a>---</span> +<span id="cb302-16"><a href="#cb302-16" aria-hidden="true" tabindex="-1"></a>name: Jane Doe</span> +<span id="cb302-17"><a href="#cb302-17" aria-hidden="true" tabindex="-1"></a>age: 99</span> +<span id="cb302-18"><a href="#cb302-18" aria-hidden="true" tabindex="-1"></a>---</span> +<span id="cb302-19"><a href="#cb302-19" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb302-20"><a href="#cb302-20" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb302-21"><a href="#cb302-21" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb300"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb300-1"><a href="#cb300-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb303"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb303-1"><a href="#cb303-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -5144,39 +5265,39 @@ contain the following text:</p> class="tex">T<sub>e</sub>X</span>t Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb301"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb301-1"><a href="#cb301-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> -<span id="cb301-2"><a href="#cb301-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span>[jekyllData = yes]</span> -<span id="cb301-3"><a href="#cb301-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\ExplSyntaxOn</span></span> -<span id="cb301-4"><a href="#cb301-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\keys</span>_define:nn</span> -<span id="cb301-5"><a href="#cb301-5" aria-hidden="true" tabindex="-1"></a> { markdown/jekyllData }</span> -<span id="cb301-6"><a href="#cb301-6" aria-hidden="true" tabindex="-1"></a> {</span> -<span id="cb301-7"><a href="#cb301-7" aria-hidden="true" tabindex="-1"></a> name .code:n = { <span class="fu">\gdef\name</span>{#1} },</span> -<span id="cb301-8"><a href="#cb301-8" aria-hidden="true" tabindex="-1"></a> age .code:n = { <span class="fu">\gdef\age</span>{#1} },</span> -<span id="cb301-9"><a href="#cb301-9" aria-hidden="true" tabindex="-1"></a> }</span> -<span id="cb301-10"><a href="#cb301-10" aria-hidden="true" tabindex="-1"></a><span class="fu">\ExplSyntaxOff</span></span> -<span id="cb301-11"><a href="#cb301-11" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererJekyllDataEnd</span>{<span class="co">%</span></span> -<span id="cb301-12"><a href="#cb301-12" aria-hidden="true" tabindex="-1"></a> <span class="fu">\name</span>{} is <span class="fu">\age</span>{} years old.}</span> -<span id="cb301-13"><a href="#cb301-13" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> -<span id="cb301-14"><a href="#cb301-14" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb301-15"><a href="#cb301-15" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> -<span id="cb301-16"><a href="#cb301-16" aria-hidden="true" tabindex="-1"></a>---</span> -<span id="cb301-17"><a href="#cb301-17" aria-hidden="true" tabindex="-1"></a>name: Jane Doe</span> -<span id="cb301-18"><a href="#cb301-18" aria-hidden="true" tabindex="-1"></a>age: 99</span> -<span id="cb301-19"><a href="#cb301-19" aria-hidden="true" tabindex="-1"></a>---</span> -<span id="cb301-20"><a href="#cb301-20" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> -<span id="cb301-21"><a href="#cb301-21" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb301-22"><a href="#cb301-22" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> +<div class="sourceCode" id="cb304"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb304-1"><a href="#cb304-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> +<span id="cb304-2"><a href="#cb304-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span>[jekyllData = yes]</span> +<span id="cb304-3"><a href="#cb304-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\ExplSyntaxOn</span></span> +<span id="cb304-4"><a href="#cb304-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\keys</span>_define:nn</span> +<span id="cb304-5"><a href="#cb304-5" aria-hidden="true" tabindex="-1"></a> { markdown/jekyllData }</span> +<span id="cb304-6"><a href="#cb304-6" aria-hidden="true" tabindex="-1"></a> {</span> +<span id="cb304-7"><a href="#cb304-7" aria-hidden="true" tabindex="-1"></a> name .code:n = { <span class="fu">\gdef\name</span>{#1} },</span> +<span id="cb304-8"><a href="#cb304-8" aria-hidden="true" tabindex="-1"></a> age .code:n = { <span class="fu">\gdef\age</span>{#1} },</span> +<span id="cb304-9"><a href="#cb304-9" aria-hidden="true" tabindex="-1"></a> }</span> +<span id="cb304-10"><a href="#cb304-10" aria-hidden="true" tabindex="-1"></a><span class="fu">\ExplSyntaxOff</span></span> +<span id="cb304-11"><a href="#cb304-11" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererJekyllDataEnd</span>{<span class="co">%</span></span> +<span id="cb304-12"><a href="#cb304-12" aria-hidden="true" tabindex="-1"></a> <span class="fu">\name</span>{} is <span class="fu">\age</span>{} years old.}</span> +<span id="cb304-13"><a href="#cb304-13" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> +<span id="cb304-14"><a href="#cb304-14" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb304-15"><a href="#cb304-15" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> +<span id="cb304-16"><a href="#cb304-16" aria-hidden="true" tabindex="-1"></a>---</span> +<span id="cb304-17"><a href="#cb304-17" aria-hidden="true" tabindex="-1"></a>name: Jane Doe</span> +<span id="cb304-18"><a href="#cb304-18" aria-hidden="true" tabindex="-1"></a>age: 99</span> +<span id="cb304-19"><a href="#cb304-19" aria-hidden="true" tabindex="-1"></a>---</span> +<span id="cb304-20"><a href="#cb304-20" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> +<span id="cb304-21"><a href="#cb304-21" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb304-22"><a href="#cb304-22" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb302"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb302-1"><a href="#cb302-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb305"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb305-1"><a href="#cb305-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> <p>Jane Doe is 99 years old.</p> </blockquote> -<h4 data-number="2.2.1.40" id="option-linkattributes"><span -class="header-section-number">2.2.1.40</span> Option +<h4 data-number="2.2.1.42" id="option-linkattributes"><span +class="header-section-number">2.2.1.42</span> Option <code>linkAttributes</code></h4> <dl> <dt><code>linkAttributes</code> (default value: <code>false</code>)</dt> @@ -5187,11 +5308,11 @@ class="header-section-number">2.2.1.40</span> Option <p>Enable the Pandoc <a href="https://pandoc.org/MANUAL.html#extension-link_attributes">link and image attribute syntax extension</a>:</p> -<div class="sourceCode" id="cb303"><pre -class="sourceCode md"><code class="sourceCode markdown"><span id="cb303-1"><a href="#cb303-1" aria-hidden="true" tabindex="-1"></a>An inline <span class="al">![image](foo.jpg)</span>{#id .class width=30 height=20px}</span> -<span id="cb303-2"><a href="#cb303-2" aria-hidden="true" tabindex="-1"></a>and a reference <span class="al">![image][ref]</span> with attributes.</span> -<span id="cb303-3"><a href="#cb303-3" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb303-4"><a href="#cb303-4" aria-hidden="true" tabindex="-1"></a><span class="ot">[ref]: </span>foo.jpg "optional title" {#id .class key=val key2=val2}</span></code></pre></div> +<div class="sourceCode" id="cb306"><pre +class="sourceCode md"><code class="sourceCode markdown"><span id="cb306-1"><a href="#cb306-1" aria-hidden="true" tabindex="-1"></a>An inline <span class="al">![image](foo.jpg)</span>{#id .class width=30 height=20px}</span> +<span id="cb306-2"><a href="#cb306-2" aria-hidden="true" tabindex="-1"></a>and a reference <span class="al">![image][ref]</span> with attributes.</span> +<span id="cb306-3"><a href="#cb306-3" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb306-4"><a href="#cb306-4" aria-hidden="true" tabindex="-1"></a><span class="ot">[ref]: </span>foo.jpg "optional title" {#id .class key=val key2=val2}</span></code></pre></div> </dd> </dl> </dd> @@ -5208,47 +5329,47 @@ class="sourceCode md"><code class="sourceCode markdown"><span id="cb303-1"><a hr class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb304"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb304-1"><a href="#cb304-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb304-2"><a href="#cb304-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[linkAttributes]{<span class="ex">markdown</span>}</span> -<span id="cb304-3"><a href="#cb304-3" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>{<span class="ex">expl3, graphicx</span>}</span> -<span id="cb304-4"><a href="#cb304-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\ExplSyntaxOn</span></span> -<span id="cb304-5"><a href="#cb304-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> -<span id="cb304-6"><a href="#cb304-6" aria-hidden="true" tabindex="-1"></a> renderers = {</span> -<span id="cb304-7"><a href="#cb304-7" aria-hidden="true" tabindex="-1"></a> imageAttributeContextBegin = {</span> -<span id="cb304-8"><a href="#cb304-8" aria-hidden="true" tabindex="-1"></a> <span class="fu">\group</span>_begin:</span> -<span id="cb304-9"><a href="#cb304-9" aria-hidden="true" tabindex="-1"></a> <span class="fu">\markdownSetup</span>{</span> -<span id="cb304-10"><a href="#cb304-10" aria-hidden="true" tabindex="-1"></a> renderers = {</span> -<span id="cb304-11"><a href="#cb304-11" aria-hidden="true" tabindex="-1"></a> attributeKeyValue = {</span> -<span id="cb304-12"><a href="#cb304-12" aria-hidden="true" tabindex="-1"></a> <span class="fu">\setkeys</span></span> -<span id="cb304-13"><a href="#cb304-13" aria-hidden="true" tabindex="-1"></a> { Gin }</span> -<span id="cb304-14"><a href="#cb304-14" aria-hidden="true" tabindex="-1"></a> { { ##1 } = { ##2 } }</span> -<span id="cb304-15"><a href="#cb304-15" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb304-16"><a href="#cb304-16" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb304-17"><a href="#cb304-17" aria-hidden="true" tabindex="-1"></a> }</span> -<span id="cb304-18"><a href="#cb304-18" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb304-19"><a href="#cb304-19" aria-hidden="true" tabindex="-1"></a> imageAttributeContextEnd = {</span> -<span id="cb304-20"><a href="#cb304-20" aria-hidden="true" tabindex="-1"></a> <span class="fu">\group</span>_end:</span> -<span id="cb304-21"><a href="#cb304-21" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb304-22"><a href="#cb304-22" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb304-23"><a href="#cb304-23" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb304-24"><a href="#cb304-24" aria-hidden="true" tabindex="-1"></a><span class="fu">\ExplSyntaxOff</span></span> -<span id="cb304-25"><a href="#cb304-25" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb304-26"><a href="#cb304-26" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb304-27"><a href="#cb304-27" aria-hidden="true" tabindex="-1"></a>Here is an example image:</span> -<span id="cb304-28"><a href="#cb304-28" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb304-29"><a href="#cb304-29" aria-hidden="true" tabindex="-1"></a> ![example image](example-image){width=5cm height=4cm}</span> -<span id="cb304-30"><a href="#cb304-30" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb304-31"><a href="#cb304-31" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb307"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb307-1"><a href="#cb307-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb307-2"><a href="#cb307-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[linkAttributes]{<span class="ex">markdown</span>}</span> +<span id="cb307-3"><a href="#cb307-3" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>{<span class="ex">expl3, graphicx</span>}</span> +<span id="cb307-4"><a href="#cb307-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\ExplSyntaxOn</span></span> +<span id="cb307-5"><a href="#cb307-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> +<span id="cb307-6"><a href="#cb307-6" aria-hidden="true" tabindex="-1"></a> renderers = {</span> +<span id="cb307-7"><a href="#cb307-7" aria-hidden="true" tabindex="-1"></a> imageAttributeContextBegin = {</span> +<span id="cb307-8"><a href="#cb307-8" aria-hidden="true" tabindex="-1"></a> <span class="fu">\group</span>_begin:</span> +<span id="cb307-9"><a href="#cb307-9" aria-hidden="true" tabindex="-1"></a> <span class="fu">\markdownSetup</span>{</span> +<span id="cb307-10"><a href="#cb307-10" aria-hidden="true" tabindex="-1"></a> renderers = {</span> +<span id="cb307-11"><a href="#cb307-11" aria-hidden="true" tabindex="-1"></a> attributeKeyValue = {</span> +<span id="cb307-12"><a href="#cb307-12" aria-hidden="true" tabindex="-1"></a> <span class="fu">\setkeys</span></span> +<span id="cb307-13"><a href="#cb307-13" aria-hidden="true" tabindex="-1"></a> { Gin }</span> +<span id="cb307-14"><a href="#cb307-14" aria-hidden="true" tabindex="-1"></a> { { ##1 } = { ##2 } }</span> +<span id="cb307-15"><a href="#cb307-15" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb307-16"><a href="#cb307-16" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb307-17"><a href="#cb307-17" aria-hidden="true" tabindex="-1"></a> }</span> +<span id="cb307-18"><a href="#cb307-18" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb307-19"><a href="#cb307-19" aria-hidden="true" tabindex="-1"></a> imageAttributeContextEnd = {</span> +<span id="cb307-20"><a href="#cb307-20" aria-hidden="true" tabindex="-1"></a> <span class="fu">\group</span>_end:</span> +<span id="cb307-21"><a href="#cb307-21" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb307-22"><a href="#cb307-22" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb307-23"><a href="#cb307-23" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb307-24"><a href="#cb307-24" aria-hidden="true" tabindex="-1"></a><span class="fu">\ExplSyntaxOff</span></span> +<span id="cb307-25"><a href="#cb307-25" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb307-26"><a href="#cb307-26" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb307-27"><a href="#cb307-27" aria-hidden="true" tabindex="-1"></a>Here is an example image:</span> +<span id="cb307-28"><a href="#cb307-28" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb307-29"><a href="#cb307-29" aria-hidden="true" tabindex="-1"></a> ![example image](example-image){width=5cm height=4cm}</span> +<span id="cb307-30"><a href="#cb307-30" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb307-31"><a href="#cb307-31" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb305"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb305-1"><a href="#cb305-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb308"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb308-1"><a href="#cb308-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain an example image (from <a href="https://ctan.org/pkg/mwe" title="mwe – Packages and image files for MWEs">Martin Scharrer’s mwe package</a>) displayed at size 5cm × 4cm.</p> -<h4 data-number="2.2.1.41" id="option-lineblocks"><span -class="header-section-number">2.2.1.41</span> Option +<h4 data-number="2.2.1.43" id="option-lineblocks"><span +class="header-section-number">2.2.1.43</span> Option <code>lineBlocks</code></h4> <dl> <dt><code>lineBlocks</code> (default value: <code>false</code>)</dt> @@ -5259,12 +5380,12 @@ class="header-section-number">2.2.1.41</span> Option <p>Enable the Pandoc <a href="https://pandoc.org/MANUAL.html#extension-line_blocks">line block syntax extension</a>:</p> -<div class="sourceCode" id="cb306"><pre -class="sourceCode md"><code class="sourceCode markdown"><span id="cb306-1"><a href="#cb306-1" aria-hidden="true" tabindex="-1"></a>| this is a line block that</span> -<span id="cb306-2"><a href="#cb306-2" aria-hidden="true" tabindex="-1"></a>| spans multiple</span> -<span id="cb306-3"><a href="#cb306-3" aria-hidden="true" tabindex="-1"></a>| even</span> -<span id="cb306-4"><a href="#cb306-4" aria-hidden="true" tabindex="-1"></a> discontinuous</span> -<span id="cb306-5"><a href="#cb306-5" aria-hidden="true" tabindex="-1"></a>| lines</span></code></pre></div> +<div class="sourceCode" id="cb309"><pre +class="sourceCode md"><code class="sourceCode markdown"><span id="cb309-1"><a href="#cb309-1" aria-hidden="true" tabindex="-1"></a><span class="pp">|</span> this is a line block that</span> +<span id="cb309-2"><a href="#cb309-2" aria-hidden="true" tabindex="-1"></a><span class="pp">|</span> spans multiple</span> +<span id="cb309-3"><a href="#cb309-3" aria-hidden="true" tabindex="-1"></a><span class="pp">|</span> even</span> +<span id="cb309-4"><a href="#cb309-4" aria-hidden="true" tabindex="-1"></a> discontinuous</span> +<span id="cb309-5"><a href="#cb309-5" aria-hidden="true" tabindex="-1"></a><span class="pp">|</span> lines</span></code></pre></div> </dd> </dl> </dd> @@ -5281,19 +5402,19 @@ class="sourceCode md"><code class="sourceCode markdown"><span id="cb306-1"><a hr class="tex">T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb307"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb307-1"><a href="#cb307-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> -<span id="cb307-2"><a href="#cb307-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionLineBlocks</span>{true}</span> -<span id="cb307-3"><a href="#cb307-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> -<span id="cb307-4"><a href="#cb307-4" aria-hidden="true" tabindex="-1"></a>| I would spread the cloths under your feet:</span> -<span id="cb307-5"><a href="#cb307-5" aria-hidden="true" tabindex="-1"></a>| But I, being poor, have only my dreams;</span> -<span id="cb307-6"><a href="#cb307-6" aria-hidden="true" tabindex="-1"></a>| I have spread my dreams under your feet;</span> -<span id="cb307-7"><a href="#cb307-7" aria-hidden="true" tabindex="-1"></a>| Tread softly because you tread on my dreams.</span> -<span id="cb307-8"><a href="#cb307-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> -<span id="cb307-9"><a href="#cb307-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> +<div class="sourceCode" id="cb310"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb310-1"><a href="#cb310-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> +<span id="cb310-2"><a href="#cb310-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionLineBlocks</span>{true}</span> +<span id="cb310-3"><a href="#cb310-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> +<span id="cb310-4"><a href="#cb310-4" aria-hidden="true" tabindex="-1"></a>| I would spread the cloths under your feet:</span> +<span id="cb310-5"><a href="#cb310-5" aria-hidden="true" tabindex="-1"></a>| But I, being poor, have only my dreams;</span> +<span id="cb310-6"><a href="#cb310-6" aria-hidden="true" tabindex="-1"></a>| I have spread my dreams under your feet;</span> +<span id="cb310-7"><a href="#cb310-7" aria-hidden="true" tabindex="-1"></a>| Tread softly because you tread on my dreams.</span> +<span id="cb310-8"><a href="#cb310-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> +<span id="cb310-9"><a href="#cb310-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb308"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb308-1"><a href="#cb308-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb311"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb311-1"><a href="#cb311-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -5306,20 +5427,20 @@ Tread softly because you tread on my dreams.</div> class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb309"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb309-1"><a href="#cb309-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb309-2"><a href="#cb309-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[lineBlocks]{<span class="ex">markdown</span>}</span> -<span id="cb309-3"><a href="#cb309-3" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb309-4"><a href="#cb309-4" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb309-5"><a href="#cb309-5" aria-hidden="true" tabindex="-1"></a>| I would spread the cloths under your feet:</span> -<span id="cb309-6"><a href="#cb309-6" aria-hidden="true" tabindex="-1"></a>| But I, being poor, have only my dreams;</span> -<span id="cb309-7"><a href="#cb309-7" aria-hidden="true" tabindex="-1"></a>| I have spread my dreams under your feet;</span> -<span id="cb309-8"><a href="#cb309-8" aria-hidden="true" tabindex="-1"></a>| Tread softly because you tread on my dreams.</span> -<span id="cb309-9"><a href="#cb309-9" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb309-10"><a href="#cb309-10" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb312"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb312-1"><a href="#cb312-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb312-2"><a href="#cb312-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[lineBlocks]{<span class="ex">markdown</span>}</span> +<span id="cb312-3"><a href="#cb312-3" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb312-4"><a href="#cb312-4" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb312-5"><a href="#cb312-5" aria-hidden="true" tabindex="-1"></a>| I would spread the cloths under your feet:</span> +<span id="cb312-6"><a href="#cb312-6" aria-hidden="true" tabindex="-1"></a>| But I, being poor, have only my dreams;</span> +<span id="cb312-7"><a href="#cb312-7" aria-hidden="true" tabindex="-1"></a>| I have spread my dreams under your feet;</span> +<span id="cb312-8"><a href="#cb312-8" aria-hidden="true" tabindex="-1"></a>| Tread softly because you tread on my dreams.</span> +<span id="cb312-9"><a href="#cb312-9" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb312-10"><a href="#cb312-10" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb310"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb310-1"><a href="#cb310-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb313"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb313-1"><a href="#cb313-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -5332,20 +5453,20 @@ Tread softly because you tread on my dreams.</div> class="tex">T<sub>e</sub>X</span>t Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb311"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb311-1"><a href="#cb311-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> -<span id="cb311-2"><a href="#cb311-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span>[lineBlocks = yes]</span> -<span id="cb311-3"><a href="#cb311-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> -<span id="cb311-4"><a href="#cb311-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> -<span id="cb311-5"><a href="#cb311-5" aria-hidden="true" tabindex="-1"></a>| I would spread the cloths under your feet:</span> -<span id="cb311-6"><a href="#cb311-6" aria-hidden="true" tabindex="-1"></a>| But I, being poor, have only my dreams;</span> -<span id="cb311-7"><a href="#cb311-7" aria-hidden="true" tabindex="-1"></a>| I have spread my dreams under your feet;</span> -<span id="cb311-8"><a href="#cb311-8" aria-hidden="true" tabindex="-1"></a>| Tread softly because you tread on my dreams.</span> -<span id="cb311-9"><a href="#cb311-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> -<span id="cb311-10"><a href="#cb311-10" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> +<div class="sourceCode" id="cb314"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb314-1"><a href="#cb314-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> +<span id="cb314-2"><a href="#cb314-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span>[lineBlocks = yes]</span> +<span id="cb314-3"><a href="#cb314-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> +<span id="cb314-4"><a href="#cb314-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> +<span id="cb314-5"><a href="#cb314-5" aria-hidden="true" tabindex="-1"></a>| I would spread the cloths under your feet:</span> +<span id="cb314-6"><a href="#cb314-6" aria-hidden="true" tabindex="-1"></a>| But I, being poor, have only my dreams;</span> +<span id="cb314-7"><a href="#cb314-7" aria-hidden="true" tabindex="-1"></a>| I have spread my dreams under your feet;</span> +<span id="cb314-8"><a href="#cb314-8" aria-hidden="true" tabindex="-1"></a>| Tread softly because you tread on my dreams.</span> +<span id="cb314-9"><a href="#cb314-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> +<span id="cb314-10"><a href="#cb314-10" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb312"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb312-1"><a href="#cb312-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb315"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb315-1"><a href="#cb315-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -5354,8 +5475,8 @@ But I, being poor, have only my dreams;<br /> I have spread my dreams under your feet;<br /> Tread softly because you tread on my dreams.</div> </blockquote> -<h4 data-number="2.2.1.42" id="option-mark"><span -class="header-section-number">2.2.1.42</span> Option +<h4 data-number="2.2.1.44" id="option-mark"><span +class="header-section-number">2.2.1.44</span> Option <code>mark</code></h4> <dl> <dt><code>mark</code> (default value: <code>false</code>)</dt> @@ -5366,8 +5487,8 @@ class="header-section-number">2.2.1.42</span> Option <p>Enable the Pandoc <a href="https://pandoc.org/MANUAL.html#extension-mark">mark syntax extension</a>:</p> -<div class="sourceCode" id="cb313"><pre -class="sourceCode md"><code class="sourceCode markdown"><span id="cb313-1"><a href="#cb313-1" aria-hidden="true" tabindex="-1"></a>This ==is highlighted text.==</span></code></pre></div> +<div class="sourceCode" id="cb316"><pre +class="sourceCode md"><code class="sourceCode markdown"><span id="cb316-1"><a href="#cb316-1" aria-hidden="true" tabindex="-1"></a>This <span class="al">==is highlighted text.==</span></span></code></pre></div> </dd> </dl> </dd> @@ -5384,26 +5505,26 @@ class="sourceCode md"><code class="sourceCode markdown"><span id="cb313-1"><a hr class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb314"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb314-1"><a href="#cb314-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb314-2"><a href="#cb314-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[mark]{<span class="ex">markdown</span>}</span> -<span id="cb314-3"><a href="#cb314-3" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb314-4"><a href="#cb314-4" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb314-5"><a href="#cb314-5" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb314-6"><a href="#cb314-6" aria-hidden="true" tabindex="-1"></a>This ==is highlighted text.==</span> -<span id="cb314-7"><a href="#cb314-7" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb314-8"><a href="#cb314-8" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb314-9"><a href="#cb314-9" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb317"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb317-1"><a href="#cb317-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb317-2"><a href="#cb317-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[mark]{<span class="ex">markdown</span>}</span> +<span id="cb317-3"><a href="#cb317-3" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb317-4"><a href="#cb317-4" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb317-5"><a href="#cb317-5" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb317-6"><a href="#cb317-6" aria-hidden="true" tabindex="-1"></a>This ==is highlighted text.==</span> +<span id="cb317-7"><a href="#cb317-7" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb317-8"><a href="#cb317-8" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb317-9"><a href="#cb317-9" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb315"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb315-1"><a href="#cb315-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb318"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb318-1"><a href="#cb318-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> <p>This <mark>is highlighted text.</mark></p> </blockquote> -<h4 data-number="2.2.1.43" id="option-notes"><span -class="header-section-number">2.2.1.43</span> Option +<h4 data-number="2.2.1.45" id="option-notes"><span +class="header-section-number">2.2.1.45</span> Option <code>notes</code></h4> <dl> <dt><code>notes</code> (default value: <code>false</code>)</dt> @@ -5414,24 +5535,24 @@ class="header-section-number">2.2.1.43</span> Option <p>Enable the Pandoc <a href="https://pandoc.org/MANUAL.html#extension-footnotes">note syntax extension</a>:</p> -<div class="sourceCode" id="cb316"><pre -class="sourceCode md"><code class="sourceCode markdown"><span id="cb316-1"><a href="#cb316-1" aria-hidden="true" tabindex="-1"></a>Here is a note reference,<span class="ot">[^1]</span> and another.<span class="ot">[^longnote]</span></span> -<span id="cb316-2"><a href="#cb316-2" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb316-3"><a href="#cb316-3" aria-hidden="true" tabindex="-1"></a><span class="ot">[^1]: </span>Here is the note.</span> -<span id="cb316-4"><a href="#cb316-4" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb316-5"><a href="#cb316-5" aria-hidden="true" tabindex="-1"></a><span class="ot">[^longnote]: </span>Here's one with multiple blocks.</span> -<span id="cb316-6"><a href="#cb316-6" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb316-7"><a href="#cb316-7" aria-hidden="true" tabindex="-1"></a><span class="in"> Subsequent paragraphs are indented to show that they</span></span> -<span id="cb316-8"><a href="#cb316-8" aria-hidden="true" tabindex="-1"></a>belong to the previous note.</span> -<span id="cb316-9"><a href="#cb316-9" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb316-10"><a href="#cb316-10" aria-hidden="true" tabindex="-1"></a><span class="in"> { some.code }</span></span> -<span id="cb316-11"><a href="#cb316-11" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb316-12"><a href="#cb316-12" aria-hidden="true" tabindex="-1"></a><span class="in"> The whole paragraph can be indented, or just the</span></span> -<span id="cb316-13"><a href="#cb316-13" aria-hidden="true" tabindex="-1"></a><span class="in"> first line. In this way, multi-paragraph notes</span></span> -<span id="cb316-14"><a href="#cb316-14" aria-hidden="true" tabindex="-1"></a><span class="in"> work like multi-paragraph list items.</span></span> -<span id="cb316-15"><a href="#cb316-15" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb316-16"><a href="#cb316-16" aria-hidden="true" tabindex="-1"></a>This paragraph won't be part of the note, because it</span> -<span id="cb316-17"><a href="#cb316-17" aria-hidden="true" tabindex="-1"></a>isn't indented.</span></code></pre></div> +<div class="sourceCode" id="cb319"><pre +class="sourceCode md"><code class="sourceCode markdown"><span id="cb319-1"><a href="#cb319-1" aria-hidden="true" tabindex="-1"></a>Here is a note reference,<span class="ot">[^1]</span> and another.<span class="ot">[^longnote]</span></span> +<span id="cb319-2"><a href="#cb319-2" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb319-3"><a href="#cb319-3" aria-hidden="true" tabindex="-1"></a><span class="ot">[^1]: </span>Here is the note.</span> +<span id="cb319-4"><a href="#cb319-4" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb319-5"><a href="#cb319-5" aria-hidden="true" tabindex="-1"></a><span class="ot">[^longnote]: </span>Here's one with multiple blocks.</span> +<span id="cb319-6"><a href="#cb319-6" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb319-7"><a href="#cb319-7" aria-hidden="true" tabindex="-1"></a><span class="in"> Subsequent paragraphs are indented to show that they</span></span> +<span id="cb319-8"><a href="#cb319-8" aria-hidden="true" tabindex="-1"></a>belong to the previous note.</span> +<span id="cb319-9"><a href="#cb319-9" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb319-10"><a href="#cb319-10" aria-hidden="true" tabindex="-1"></a><span class="in"> { some.code }</span></span> +<span id="cb319-11"><a href="#cb319-11" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb319-12"><a href="#cb319-12" aria-hidden="true" tabindex="-1"></a><span class="in"> The whole paragraph can be indented, or just the</span></span> +<span id="cb319-13"><a href="#cb319-13" aria-hidden="true" tabindex="-1"></a><span class="in"> first line. In this way, multi-paragraph notes</span></span> +<span id="cb319-14"><a href="#cb319-14" aria-hidden="true" tabindex="-1"></a><span class="in"> work like multi-paragraph list items.</span></span> +<span id="cb319-15"><a href="#cb319-15" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb319-16"><a href="#cb319-16" aria-hidden="true" tabindex="-1"></a>This paragraph won't be part of the note, because it</span> +<span id="cb319-17"><a href="#cb319-17" aria-hidden="true" tabindex="-1"></a>isn't indented.</span></code></pre></div> </dd> </dl> </dd> @@ -5448,33 +5569,33 @@ class="sourceCode md"><code class="sourceCode markdown"><span id="cb316-1"><a hr class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb317"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb317-1"><a href="#cb317-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb317-2"><a href="#cb317-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[notes]{<span class="ex">markdown</span>}</span> -<span id="cb317-3"><a href="#cb317-3" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb317-4"><a href="#cb317-4" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb317-5"><a href="#cb317-5" aria-hidden="true" tabindex="-1"></a>Here is a note reference,[^1] and another.[^longnote]</span> -<span id="cb317-6"><a href="#cb317-6" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb317-7"><a href="#cb317-7" aria-hidden="true" tabindex="-1"></a>[^1]: Here is the note.</span> -<span id="cb317-8"><a href="#cb317-8" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb317-9"><a href="#cb317-9" aria-hidden="true" tabindex="-1"></a>[^longnote]: Here's one with multiple blocks.</span> -<span id="cb317-10"><a href="#cb317-10" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb317-11"><a href="#cb317-11" aria-hidden="true" tabindex="-1"></a> Subsequent paragraphs are indented to show that they</span> -<span id="cb317-12"><a href="#cb317-12" aria-hidden="true" tabindex="-1"></a>belong to the previous note.</span> -<span id="cb317-13"><a href="#cb317-13" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb317-14"><a href="#cb317-14" aria-hidden="true" tabindex="-1"></a> { some.code }</span> -<span id="cb317-15"><a href="#cb317-15" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb317-16"><a href="#cb317-16" aria-hidden="true" tabindex="-1"></a> The whole paragraph can be indented, or just the</span> -<span id="cb317-17"><a href="#cb317-17" aria-hidden="true" tabindex="-1"></a> first line. In this way, multi-paragraph notes</span> -<span id="cb317-18"><a href="#cb317-18" aria-hidden="true" tabindex="-1"></a> work like multi-paragraph list items.</span> -<span id="cb317-19"><a href="#cb317-19" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb317-20"><a href="#cb317-20" aria-hidden="true" tabindex="-1"></a>This paragraph won't be part of the note, because it</span> -<span id="cb317-21"><a href="#cb317-21" aria-hidden="true" tabindex="-1"></a>isn't indented.</span> -<span id="cb317-22"><a href="#cb317-22" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb317-23"><a href="#cb317-23" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb320"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb320-1"><a href="#cb320-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb320-2"><a href="#cb320-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[notes]{<span class="ex">markdown</span>}</span> +<span id="cb320-3"><a href="#cb320-3" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb320-4"><a href="#cb320-4" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb320-5"><a href="#cb320-5" aria-hidden="true" tabindex="-1"></a>Here is a note reference,[^1] and another.[^longnote]</span> +<span id="cb320-6"><a href="#cb320-6" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb320-7"><a href="#cb320-7" aria-hidden="true" tabindex="-1"></a>[^1]: Here is the note.</span> +<span id="cb320-8"><a href="#cb320-8" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb320-9"><a href="#cb320-9" aria-hidden="true" tabindex="-1"></a>[^longnote]: Here's one with multiple blocks.</span> +<span id="cb320-10"><a href="#cb320-10" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb320-11"><a href="#cb320-11" aria-hidden="true" tabindex="-1"></a> Subsequent paragraphs are indented to show that they</span> +<span id="cb320-12"><a href="#cb320-12" aria-hidden="true" tabindex="-1"></a>belong to the previous note.</span> +<span id="cb320-13"><a href="#cb320-13" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb320-14"><a href="#cb320-14" aria-hidden="true" tabindex="-1"></a> { some.code }</span> +<span id="cb320-15"><a href="#cb320-15" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb320-16"><a href="#cb320-16" aria-hidden="true" tabindex="-1"></a> The whole paragraph can be indented, or just the</span> +<span id="cb320-17"><a href="#cb320-17" aria-hidden="true" tabindex="-1"></a> first line. In this way, multi-paragraph notes</span> +<span id="cb320-18"><a href="#cb320-18" aria-hidden="true" tabindex="-1"></a> work like multi-paragraph list items.</span> +<span id="cb320-19"><a href="#cb320-19" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb320-20"><a href="#cb320-20" aria-hidden="true" tabindex="-1"></a>This paragraph won't be part of the note, because it</span> +<span id="cb320-21"><a href="#cb320-21" aria-hidden="true" tabindex="-1"></a>isn't indented.</span> +<span id="cb320-22"><a href="#cb320-22" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb320-23"><a href="#cb320-23" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb318"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb318-1"><a href="#cb318-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb321"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb321-1"><a href="#cb321-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -5493,33 +5614,33 @@ indented.</p> class="tex">T<sub>e</sub>X</span>t Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb321"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb321-1"><a href="#cb321-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> -<span id="cb321-2"><a href="#cb321-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span>[notes = yes]</span> -<span id="cb321-3"><a href="#cb321-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> -<span id="cb321-4"><a href="#cb321-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> -<span id="cb321-5"><a href="#cb321-5" aria-hidden="true" tabindex="-1"></a>Here is a note reference,[^1] and another.[^longnote]</span> -<span id="cb321-6"><a href="#cb321-6" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb321-7"><a href="#cb321-7" aria-hidden="true" tabindex="-1"></a>[^1]: Here is the note.</span> -<span id="cb321-8"><a href="#cb321-8" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb321-9"><a href="#cb321-9" aria-hidden="true" tabindex="-1"></a>[^longnote]: Here's one with multiple blocks.</span> -<span id="cb321-10"><a href="#cb321-10" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb321-11"><a href="#cb321-11" aria-hidden="true" tabindex="-1"></a> Subsequent paragraphs are indented to show that they</span> -<span id="cb321-12"><a href="#cb321-12" aria-hidden="true" tabindex="-1"></a>belong to the previous note.</span> -<span id="cb321-13"><a href="#cb321-13" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb321-14"><a href="#cb321-14" aria-hidden="true" tabindex="-1"></a> { some.code }</span> -<span id="cb321-15"><a href="#cb321-15" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb321-16"><a href="#cb321-16" aria-hidden="true" tabindex="-1"></a> The whole paragraph can be indented, or just the</span> -<span id="cb321-17"><a href="#cb321-17" aria-hidden="true" tabindex="-1"></a> first line. In this way, multi-paragraph notes</span> -<span id="cb321-18"><a href="#cb321-18" aria-hidden="true" tabindex="-1"></a> work like multi-paragraph list items.</span> -<span id="cb321-19"><a href="#cb321-19" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb321-20"><a href="#cb321-20" aria-hidden="true" tabindex="-1"></a>This paragraph won't be part of the note, because it</span> -<span id="cb321-21"><a href="#cb321-21" aria-hidden="true" tabindex="-1"></a>isn't indented.</span> -<span id="cb321-22"><a href="#cb321-22" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> -<span id="cb321-23"><a href="#cb321-23" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> -<p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb322"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb322-1"><a href="#cb322-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb324"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb324-1"><a href="#cb324-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> +<span id="cb324-2"><a href="#cb324-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span>[notes = yes]</span> +<span id="cb324-3"><a href="#cb324-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> +<span id="cb324-4"><a href="#cb324-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> +<span id="cb324-5"><a href="#cb324-5" aria-hidden="true" tabindex="-1"></a>Here is a note reference,[^1] and another.[^longnote]</span> +<span id="cb324-6"><a href="#cb324-6" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb324-7"><a href="#cb324-7" aria-hidden="true" tabindex="-1"></a>[^1]: Here is the note.</span> +<span id="cb324-8"><a href="#cb324-8" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb324-9"><a href="#cb324-9" aria-hidden="true" tabindex="-1"></a>[^longnote]: Here's one with multiple blocks.</span> +<span id="cb324-10"><a href="#cb324-10" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb324-11"><a href="#cb324-11" aria-hidden="true" tabindex="-1"></a> Subsequent paragraphs are indented to show that they</span> +<span id="cb324-12"><a href="#cb324-12" aria-hidden="true" tabindex="-1"></a>belong to the previous note.</span> +<span id="cb324-13"><a href="#cb324-13" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb324-14"><a href="#cb324-14" aria-hidden="true" tabindex="-1"></a> { some.code }</span> +<span id="cb324-15"><a href="#cb324-15" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb324-16"><a href="#cb324-16" aria-hidden="true" tabindex="-1"></a> The whole paragraph can be indented, or just the</span> +<span id="cb324-17"><a href="#cb324-17" aria-hidden="true" tabindex="-1"></a> first line. In this way, multi-paragraph notes</span> +<span id="cb324-18"><a href="#cb324-18" aria-hidden="true" tabindex="-1"></a> work like multi-paragraph list items.</span> +<span id="cb324-19"><a href="#cb324-19" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb324-20"><a href="#cb324-20" aria-hidden="true" tabindex="-1"></a>This paragraph won't be part of the note, because it</span> +<span id="cb324-21"><a href="#cb324-21" aria-hidden="true" tabindex="-1"></a>isn't indented.</span> +<span id="cb324-22"><a href="#cb324-22" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> +<span id="cb324-23"><a href="#cb324-23" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> +<p>Next, invoke LuaTeX from the terminal:</p> +<div class="sourceCode" id="cb325"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb325-1"><a href="#cb325-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -5534,8 +5655,8 @@ work like multi-paragraph list items.</code></pre> <p>This paragraph won’t be part of the note, because it isn’t indented.</p> </blockquote> -<h4 data-number="2.2.1.44" id="pipe-tables"><span -class="header-section-number">2.2.1.44</span> Option +<h4 data-number="2.2.1.46" id="pipe-tables"><span +class="header-section-number">2.2.1.46</span> Option <code>pipeTables</code></h4> <dl> <dt><code>pipeTables</code> (default value: <code>false</code>)</dt> @@ -5544,12 +5665,12 @@ class="header-section-number">2.2.1.44</span> Option <dt>true</dt> <dd> <p>Enable the <abbr>PHP</abbr> Markdown pipe table syntax extension:</p> -<div class="sourceCode" id="cb325"><pre -class="sourceCode md"><code class="sourceCode markdown"><span id="cb325-1"><a href="#cb325-1" aria-hidden="true" tabindex="-1"></a>| Right | Left | Default | Center |</span> -<span id="cb325-2"><a href="#cb325-2" aria-hidden="true" tabindex="-1"></a>|------:|:-----|---------|:------:|</span> -<span id="cb325-3"><a href="#cb325-3" aria-hidden="true" tabindex="-1"></a>| 12 | 12 | 12 | 12 |</span> -<span id="cb325-4"><a href="#cb325-4" aria-hidden="true" tabindex="-1"></a>| 123 | 123 | 123 | 123 |</span> -<span id="cb325-5"><a href="#cb325-5" aria-hidden="true" tabindex="-1"></a>| 1 | 1 | 1 | 1 |</span></code></pre></div> +<div class="sourceCode" id="cb328"><pre +class="sourceCode md"><code class="sourceCode markdown"><span id="cb328-1"><a href="#cb328-1" aria-hidden="true" tabindex="-1"></a><span class="pp">|</span> Right <span class="pp">|</span> Left <span class="pp">|</span> Default <span class="pp">|</span> Center <span class="pp">|</span></span> +<span id="cb328-2"><a href="#cb328-2" aria-hidden="true" tabindex="-1"></a><span class="pp">|------:|:-----|---------|:------:|</span></span> +<span id="cb328-3"><a href="#cb328-3" aria-hidden="true" tabindex="-1"></a><span class="pp">|</span> 12 <span class="pp">|</span> 12 <span class="pp">|</span> 12 <span class="pp">|</span> 12 <span class="pp">|</span></span> +<span id="cb328-4"><a href="#cb328-4" aria-hidden="true" tabindex="-1"></a><span class="pp">|</span> 123 <span class="pp">|</span> 123 <span class="pp">|</span> 123 <span class="pp">|</span> 123 <span class="pp">|</span></span> +<span id="cb328-5"><a href="#cb328-5" aria-hidden="true" tabindex="-1"></a><span class="pp">|</span> 1 <span class="pp">|</span> 1 <span class="pp">|</span> 1 <span class="pp">|</span> 1 <span class="pp">|</span></span></code></pre></div> </dd> </dl> </dd> @@ -5567,21 +5688,21 @@ extension.</p> class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb326"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb326-1"><a href="#cb326-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb326-2"><a href="#cb326-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[pipeTables]{<span class="ex">markdown</span>}</span> -<span id="cb326-3"><a href="#cb326-3" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb326-4"><a href="#cb326-4" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb326-5"><a href="#cb326-5" aria-hidden="true" tabindex="-1"></a>| Right | Left | Default | Center |</span> -<span id="cb326-6"><a href="#cb326-6" aria-hidden="true" tabindex="-1"></a>|------:|:-----|---------|:------:|</span> -<span id="cb326-7"><a href="#cb326-7" aria-hidden="true" tabindex="-1"></a>| 12 | 12 | 12 | 12 |</span> -<span id="cb326-8"><a href="#cb326-8" aria-hidden="true" tabindex="-1"></a>| 123 | 123 | 123 | 123 |</span> -<span id="cb326-9"><a href="#cb326-9" aria-hidden="true" tabindex="-1"></a>| 1 | 1 | 1 | 1 |</span> -<span id="cb326-10"><a href="#cb326-10" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb326-11"><a href="#cb326-11" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb329"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb329-1"><a href="#cb329-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb329-2"><a href="#cb329-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[pipeTables]{<span class="ex">markdown</span>}</span> +<span id="cb329-3"><a href="#cb329-3" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb329-4"><a href="#cb329-4" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb329-5"><a href="#cb329-5" aria-hidden="true" tabindex="-1"></a>| Right | Left | Default | Center |</span> +<span id="cb329-6"><a href="#cb329-6" aria-hidden="true" tabindex="-1"></a>|------:|:-----|---------|:------:|</span> +<span id="cb329-7"><a href="#cb329-7" aria-hidden="true" tabindex="-1"></a>| 12 | 12 | 12 | 12 |</span> +<span id="cb329-8"><a href="#cb329-8" aria-hidden="true" tabindex="-1"></a>| 123 | 123 | 123 | 123 |</span> +<span id="cb329-9"><a href="#cb329-9" aria-hidden="true" tabindex="-1"></a>| 1 | 1 | 1 | 1 |</span> +<span id="cb329-10"><a href="#cb329-10" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb329-11"><a href="#cb329-11" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb327"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb327-1"><a href="#cb327-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb330"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb330-1"><a href="#cb330-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -5620,21 +5741,21 @@ contain the following text:</p> class="tex">T<sub>e</sub>X</span>t Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb328"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb328-1"><a href="#cb328-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> -<span id="cb328-2"><a href="#cb328-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span>[pipeTables = yes]</span> -<span id="cb328-3"><a href="#cb328-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> -<span id="cb328-4"><a href="#cb328-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> -<span id="cb328-5"><a href="#cb328-5" aria-hidden="true" tabindex="-1"></a>| Right | Left | Default | Center |</span> -<span id="cb328-6"><a href="#cb328-6" aria-hidden="true" tabindex="-1"></a>|------:|:-----|---------|:------:|</span> -<span id="cb328-7"><a href="#cb328-7" aria-hidden="true" tabindex="-1"></a>| 12 | 12 | 12 | 12 |</span> -<span id="cb328-8"><a href="#cb328-8" aria-hidden="true" tabindex="-1"></a>| 123 | 123 | 123 | 123 |</span> -<span id="cb328-9"><a href="#cb328-9" aria-hidden="true" tabindex="-1"></a>| 1 | 1 | 1 | 1 |</span> -<span id="cb328-10"><a href="#cb328-10" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> -<span id="cb328-11"><a href="#cb328-11" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> +<div class="sourceCode" id="cb331"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb331-1"><a href="#cb331-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> +<span id="cb331-2"><a href="#cb331-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span>[pipeTables = yes]</span> +<span id="cb331-3"><a href="#cb331-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> +<span id="cb331-4"><a href="#cb331-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> +<span id="cb331-5"><a href="#cb331-5" aria-hidden="true" tabindex="-1"></a>| Right | Left | Default | Center |</span> +<span id="cb331-6"><a href="#cb331-6" aria-hidden="true" tabindex="-1"></a>|------:|:-----|---------|:------:|</span> +<span id="cb331-7"><a href="#cb331-7" aria-hidden="true" tabindex="-1"></a>| 12 | 12 | 12 | 12 |</span> +<span id="cb331-8"><a href="#cb331-8" aria-hidden="true" tabindex="-1"></a>| 123 | 123 | 123 | 123 |</span> +<span id="cb331-9"><a href="#cb331-9" aria-hidden="true" tabindex="-1"></a>| 1 | 1 | 1 | 1 |</span> +<span id="cb331-10"><a href="#cb331-10" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> +<span id="cb331-11"><a href="#cb331-11" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb329"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb329-1"><a href="#cb329-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb332"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb332-1"><a href="#cb332-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -5669,8 +5790,8 @@ contain the following text:</p> </tbody> </table> </blockquote> -<h4 data-number="2.2.1.45" id="option-preservetabs"><span -class="header-section-number">2.2.1.45</span> Option +<h4 data-number="2.2.1.47" id="option-preservetabs"><span +class="header-section-number">2.2.1.47</span> Option <code>preserveTabs</code></h4> <dl> <dt><code>preserveTabs</code> (default value: <code>true</code>)</dt> @@ -5691,8 +5812,8 @@ class="header-section-number">2.2.1.45</span> Option </dl> </dd> </dl> -<h4 data-number="2.2.1.46" id="option-rawattribute"><span -class="header-section-number">2.2.1.46</span> Option +<h4 data-number="2.2.1.48" id="option-rawattribute"><span +class="header-section-number">2.2.1.48</span> Option <code>rawAttribute</code></h4> <dl> <dt><code>rawAttribute</code> (default value: <code>false</code>)</dt> @@ -5703,24 +5824,24 @@ class="header-section-number">2.2.1.46</span> Option <p>Enable the Pandoc <a href="https://pandoc.org/MANUAL.html#extension-raw_attribute">raw attribute syntax extension</a>:</p> -<div class="sourceCode" id="cb330"><pre -class="sourceCode md"><code class="sourceCode markdown"><span id="cb330-1"><a href="#cb330-1" aria-hidden="true" tabindex="-1"></a><span class="in">`$H_2 O$`</span>{=tex} is a liquid.</span></code></pre></div> -<p>To enable raw blocks, the <strong><code>fencedCode</code></strong> +<div class="sourceCode" id="cb333"><pre +class="sourceCode md"><code class="sourceCode markdown"><span id="cb333-1"><a href="#cb333-1" aria-hidden="true" tabindex="-1"></a><span class="in">`$H_2 O$`</span>{=tex} is a liquid.</span></code></pre></div> +<p>To enable raw blocks, the <code><strong>fencedCode</strong></code> option must also be enabled:</p> -<div class="sourceCode" id="cb331"><pre -class="sourceCode md"><code class="sourceCode markdown"><span id="cb331-1"><a href="#cb331-1" aria-hidden="true" tabindex="-1"></a><span class="an">Here is a mathematical formula:</span></span> -<span id="cb331-2"><a href="#cb331-2" aria-hidden="true" tabindex="-1"></a><span class="in">``` {=tex}</span></span> -<span id="cb331-3"><a href="#cb331-3" aria-hidden="true" tabindex="-1"></a><span class="in">\[distance[i] =</span></span> -<span id="cb331-4"><a href="#cb331-4" aria-hidden="true" tabindex="-1"></a><span class="in"> \begin{dcases}</span></span> -<span id="cb331-5"><a href="#cb331-5" aria-hidden="true" tabindex="-1"></a><span class="in"> a & b \\</span></span> -<span id="cb331-6"><a href="#cb331-6" aria-hidden="true" tabindex="-1"></a><span class="in"> c & d</span></span> -<span id="cb331-7"><a href="#cb331-7" aria-hidden="true" tabindex="-1"></a><span class="in"> \end{dcases}</span></span> -<span id="cb331-8"><a href="#cb331-8" aria-hidden="true" tabindex="-1"></a><span class="in">\]</span></span> -<span id="cb331-9"><a href="#cb331-9" aria-hidden="true" tabindex="-1"></a><span class="in">```</span></span></code></pre></div> -<p>The <strong><code>rawAttribute</code></strong> option is a good -alternative to the <strong><code>hybrid</code></strong> option. Unlike -the <strong><code>hybrid</code></strong> option, which affects the -entire document, the <strong><code>rawAttribute</code></strong> option +<div class="sourceCode" id="cb334"><pre +class="sourceCode md"><code class="sourceCode markdown"><span id="cb334-1"><a href="#cb334-1" aria-hidden="true" tabindex="-1"></a><span class="an">Here is a mathematical formula:</span></span> +<span id="cb334-2"><a href="#cb334-2" aria-hidden="true" tabindex="-1"></a><span class="in">``` {=tex}</span></span> +<span id="cb334-3"><a href="#cb334-3" aria-hidden="true" tabindex="-1"></a><span class="in">\[distance[i] =</span></span> +<span id="cb334-4"><a href="#cb334-4" aria-hidden="true" tabindex="-1"></a><span class="in"> \begin{dcases}</span></span> +<span id="cb334-5"><a href="#cb334-5" aria-hidden="true" tabindex="-1"></a><span class="in"> a & b \\</span></span> +<span id="cb334-6"><a href="#cb334-6" aria-hidden="true" tabindex="-1"></a><span class="in"> c & d</span></span> +<span id="cb334-7"><a href="#cb334-7" aria-hidden="true" tabindex="-1"></a><span class="in"> \end{dcases}</span></span> +<span id="cb334-8"><a href="#cb334-8" aria-hidden="true" tabindex="-1"></a><span class="in">\]</span></span> +<span id="cb334-9"><a href="#cb334-9" aria-hidden="true" tabindex="-1"></a><span class="in">```</span></span></code></pre></div> +<p>The <code><strong>rawAttribute</strong></code> option is a good +alternative to the <code><strong>hybrid</strong></code> option. Unlike +the <code><strong>hybrid</strong></code> option, which affects the +entire document, the <code><strong>rawAttribute</strong></code> option allows you to isolate the parts of your documents that use TeX:</p> </dd> </dl> @@ -5738,29 +5859,29 @@ allows you to isolate the parts of your documents that use TeX:</p> class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb332"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb332-1"><a href="#cb332-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb332-2"><a href="#cb332-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[rawAttribute, fencedCode]{<span class="ex">markdown</span>}</span> -<span id="cb332-3"><a href="#cb332-3" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>{<span class="ex">expl3</span>}</span> -<span id="cb332-4"><a href="#cb332-4" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb332-5"><a href="#cb332-5" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb332-6"><a href="#cb332-6" aria-hidden="true" tabindex="-1"></a>`<span class="ss">$H_2 O$</span>`{=tex} is a liquid.</span> -<span id="cb332-7"><a href="#cb332-7" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb332-8"><a href="#cb332-8" aria-hidden="true" tabindex="-1"></a>``` {=html}</span> -<span id="cb332-9"><a href="#cb332-9" aria-hidden="true" tabindex="-1"></a><p>Here is some HTML content that will be ignored.</p></span> -<span id="cb332-10"><a href="#cb332-10" aria-hidden="true" tabindex="-1"></a>```</span> -<span id="cb332-11"><a href="#cb332-11" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb332-12"><a href="#cb332-12" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb335"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb335-1"><a href="#cb335-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb335-2"><a href="#cb335-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[rawAttribute, fencedCode]{<span class="ex">markdown</span>}</span> +<span id="cb335-3"><a href="#cb335-3" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>{<span class="ex">expl3</span>}</span> +<span id="cb335-4"><a href="#cb335-4" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb335-5"><a href="#cb335-5" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb335-6"><a href="#cb335-6" aria-hidden="true" tabindex="-1"></a>`<span class="ss">$H_2 O$</span>`{=tex} is a liquid.</span> +<span id="cb335-7"><a href="#cb335-7" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb335-8"><a href="#cb335-8" aria-hidden="true" tabindex="-1"></a>``` {=html}</span> +<span id="cb335-9"><a href="#cb335-9" aria-hidden="true" tabindex="-1"></a><p>Here is some HTML content that will be ignored.</p></span> +<span id="cb335-10"><a href="#cb335-10" aria-hidden="true" tabindex="-1"></a>```</span> +<span id="cb335-11"><a href="#cb335-11" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb335-12"><a href="#cb335-12" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb333"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb333-1"><a href="#cb333-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb336"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb336-1"><a href="#cb336-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> <p>H<sub>2</sub>O is a liquid.</p> </blockquote> -<h4 data-number="2.2.1.47" id="option-relativereferences"><span -class="header-section-number">2.2.1.47</span> Option +<h4 data-number="2.2.1.49" id="option-relativereferences"><span +class="header-section-number">2.2.1.49</span> Option <code>relativeReferences</code></h4> <dl> <dt><code>relativeReferences</code> (default value: @@ -5772,14 +5893,14 @@ class="header-section-number">2.2.1.47</span> Option <p>Enable <a href="https://datatracker.ietf.org/doc/html/rfc3986#section-4.2">relative references</a> in autolinks:</p> -<div class="sourceCode" id="cb334"><pre -class="sourceCode md"><code class="sourceCode markdown"><span id="cb334-1"><a href="#cb334-1" aria-hidden="true" tabindex="-1"></a>I conclude in Section <#conclusion>.</span> -<span id="cb334-2"><a href="#cb334-2" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb334-3"><a href="#cb334-3" aria-hidden="true" tabindex="-1"></a>Conclusion {#conclusion}</span> -<span id="cb334-4"><a href="#cb334-4" aria-hidden="true" tabindex="-1"></a><span class="fu">==========</span></span> -<span id="cb334-5"><a href="#cb334-5" aria-hidden="true" tabindex="-1"></a>In this paper, we have discovered that most</span> -<span id="cb334-6"><a href="#cb334-6" aria-hidden="true" tabindex="-1"></a>grandmas would rather eat dinner with their</span> -<span id="cb334-7"><a href="#cb334-7" aria-hidden="true" tabindex="-1"></a>grandchildren than get eaten. Begone, wolf!</span></code></pre></div> +<div class="sourceCode" id="cb337"><pre +class="sourceCode md"><code class="sourceCode markdown"><span id="cb337-1"><a href="#cb337-1" aria-hidden="true" tabindex="-1"></a>I conclude in Section <#conclusion>.</span> +<span id="cb337-2"><a href="#cb337-2" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb337-3"><a href="#cb337-3" aria-hidden="true" tabindex="-1"></a>Conclusion {#conclusion}</span> +<span id="cb337-4"><a href="#cb337-4" aria-hidden="true" tabindex="-1"></a><span class="fu">==========</span></span> +<span id="cb337-5"><a href="#cb337-5" aria-hidden="true" tabindex="-1"></a>In this paper, we have discovered that most</span> +<span id="cb337-6"><a href="#cb337-6" aria-hidden="true" tabindex="-1"></a>grandmas would rather eat dinner with their</span> +<span id="cb337-7"><a href="#cb337-7" aria-hidden="true" tabindex="-1"></a>grandchildren than get eaten. Begone, wolf!</span></code></pre></div> </dd> </dl> </dd> @@ -5796,26 +5917,26 @@ class="sourceCode md"><code class="sourceCode markdown"><span id="cb334-1"><a hr class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb335"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb335-1"><a href="#cb335-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb335-2"><a href="#cb335-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[headerAttributes, relativeReferences]{<span class="ex">markdown</span>}</span> -<span id="cb335-3"><a href="#cb335-3" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb335-4"><a href="#cb335-4" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb335-5"><a href="#cb335-5" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb335-6"><a href="#cb335-6" aria-hidden="true" tabindex="-1"></a>I conclude in Section <#conclusion>.</span> -<span id="cb335-7"><a href="#cb335-7" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb335-8"><a href="#cb335-8" aria-hidden="true" tabindex="-1"></a>Conclusion {#conclusion}</span> -<span id="cb335-9"><a href="#cb335-9" aria-hidden="true" tabindex="-1"></a>==========</span> -<span id="cb335-10"><a href="#cb335-10" aria-hidden="true" tabindex="-1"></a>In this paper, we have discovered that most</span> -<span id="cb335-11"><a href="#cb335-11" aria-hidden="true" tabindex="-1"></a>grandmas would rather eat dinner with their</span> -<span id="cb335-12"><a href="#cb335-12" aria-hidden="true" tabindex="-1"></a>grandchildren than get eaten. Begone, wolf!</span> -<span id="cb335-13"><a href="#cb335-13" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb335-14"><a href="#cb335-14" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb335-15"><a href="#cb335-15" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb338"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb338-1"><a href="#cb338-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb338-2"><a href="#cb338-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[headerAttributes, relativeReferences]{<span class="ex">markdown</span>}</span> +<span id="cb338-3"><a href="#cb338-3" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb338-4"><a href="#cb338-4" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb338-5"><a href="#cb338-5" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb338-6"><a href="#cb338-6" aria-hidden="true" tabindex="-1"></a>I conclude in Section <#conclusion>.</span> +<span id="cb338-7"><a href="#cb338-7" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb338-8"><a href="#cb338-8" aria-hidden="true" tabindex="-1"></a>Conclusion {#conclusion}</span> +<span id="cb338-9"><a href="#cb338-9" aria-hidden="true" tabindex="-1"></a>==========</span> +<span id="cb338-10"><a href="#cb338-10" aria-hidden="true" tabindex="-1"></a>In this paper, we have discovered that most</span> +<span id="cb338-11"><a href="#cb338-11" aria-hidden="true" tabindex="-1"></a>grandmas would rather eat dinner with their</span> +<span id="cb338-12"><a href="#cb338-12" aria-hidden="true" tabindex="-1"></a>grandchildren than get eaten. Begone, wolf!</span> +<span id="cb338-13"><a href="#cb338-13" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb338-14"><a href="#cb338-14" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb338-15"><a href="#cb338-15" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX twice from the terminal:</p> -<div class="sourceCode" id="cb336"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb336-1"><a href="#cb336-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span> -<span id="cb336-2"><a href="#cb336-2" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb339"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb339-1"><a href="#cb339-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span> +<span id="cb339-2"><a href="#cb339-2" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -5824,8 +5945,8 @@ contain the following text:</p> <p>In this paper, we have discovered that most grandmas would rather eat dinner with their grandchildren than get eaten. Begone, wolf!</p> </blockquote> -<h4 data-number="2.2.1.48" id="option-shiftheadings"><span -class="header-section-number">2.2.1.48</span> Option +<h4 data-number="2.2.1.50" id="option-shiftheadings"><span +class="header-section-number">2.2.1.50</span> Option <code>shiftHeadings</code></h4> <dl> <dt><code>shiftHeadings</code> (default value: <code>0</code>)</dt> @@ -5841,32 +5962,32 @@ when ⟨<em>shift amount</em>⟩ is positive, and to level 1, when class="tex">T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>example.md</code> with the following content:</p> -<div class="sourceCode" id="cb337"><pre -class="sourceCode md"><code class="sourceCode markdown"><span id="cb337-1"><a href="#cb337-1" aria-hidden="true" tabindex="-1"></a><span class="fu">## A section</span></span></code></pre></div> +<div class="sourceCode" id="cb340"><pre +class="sourceCode md"><code class="sourceCode markdown"><span id="cb340-1"><a href="#cb340-1" aria-hidden="true" tabindex="-1"></a><span class="fu">## A section</span></span></code></pre></div> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb338"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb338-1"><a href="#cb338-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> -<span id="cb338-2"><a href="#cb338-2" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb338-3"><a href="#cb338-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\font\normal</span>=cmr10<span class="fu">\normal</span></span> -<span id="cb338-4"><a href="#cb338-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\font\big</span>=cmr10 at 12pt</span> -<span id="cb338-5"><a href="#cb338-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererHeadingTwo</span>#1{{<span class="fu">\big</span> #1<span class="fu">\par</span>}}</span> -<span id="cb338-6"><a href="#cb338-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\font\bigger</span>=cmr10 scaled 1440</span> -<span id="cb338-7"><a href="#cb338-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererHeadingOne</span>#1{{<span class="fu">\bigger</span> #1<span class="fu">\par</span>}}</span> -<span id="cb338-8"><a href="#cb338-8" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb338-9"><a href="#cb338-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionShiftHeadings</span>{-1}</span> -<span id="cb338-10"><a href="#cb338-10" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownInput</span>{example.md}</span> -<span id="cb338-11"><a href="#cb338-11" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb338-12"><a href="#cb338-12" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionShiftHeadings</span>{0}</span> -<span id="cb338-13"><a href="#cb338-13" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownInput</span>{example.md}</span> -<span id="cb338-14"><a href="#cb338-14" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb338-15"><a href="#cb338-15" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionShiftHeadings</span>{+1}</span> -<span id="cb338-16"><a href="#cb338-16" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownInput</span>{example.md}</span> -<span id="cb338-17"><a href="#cb338-17" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb338-18"><a href="#cb338-18" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> +<div class="sourceCode" id="cb341"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb341-1"><a href="#cb341-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> +<span id="cb341-2"><a href="#cb341-2" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb341-3"><a href="#cb341-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\font\normal</span>=cmr10<span class="fu">\normal</span></span> +<span id="cb341-4"><a href="#cb341-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\font\big</span>=cmr10 at 12pt</span> +<span id="cb341-5"><a href="#cb341-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererHeadingTwo</span>#1{{<span class="fu">\big</span> #1<span class="fu">\par</span>}}</span> +<span id="cb341-6"><a href="#cb341-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\font\bigger</span>=cmr10 scaled 1440</span> +<span id="cb341-7"><a href="#cb341-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererHeadingOne</span>#1{{<span class="fu">\bigger</span> #1<span class="fu">\par</span>}}</span> +<span id="cb341-8"><a href="#cb341-8" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb341-9"><a href="#cb341-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionShiftHeadings</span>{-1}</span> +<span id="cb341-10"><a href="#cb341-10" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownInput</span>{example.md}</span> +<span id="cb341-11"><a href="#cb341-11" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb341-12"><a href="#cb341-12" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionShiftHeadings</span>{0}</span> +<span id="cb341-13"><a href="#cb341-13" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownInput</span>{example.md}</span> +<span id="cb341-14"><a href="#cb341-14" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb341-15"><a href="#cb341-15" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionShiftHeadings</span>{+1}</span> +<span id="cb341-16"><a href="#cb341-16" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownInput</span>{example.md}</span> +<span id="cb341-17"><a href="#cb341-17" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb341-18"><a href="#cb341-18" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb339"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb339-1"><a href="#cb339-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb342"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb342-1"><a href="#cb342-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -5878,20 +5999,20 @@ contain the following text:</p> class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb340"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb340-1"><a href="#cb340-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb340-2"><a href="#cb340-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>{<span class="ex">markdown</span>}</span> -<span id="cb340-3"><a href="#cb340-3" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">filecontents</span>}[overwrite,nosearch,noheader]{example.md}</span> -<span id="cb340-4"><a href="#cb340-4" aria-hidden="true" tabindex="-1"></a>## A section</span> -<span id="cb340-5"><a href="#cb340-5" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">filecontents</span>}</span> -<span id="cb340-6"><a href="#cb340-6" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb340-7"><a href="#cb340-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownInput</span>[shiftHeadings=-1]{example.md}</span> -<span id="cb340-8"><a href="#cb340-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownInput</span>{example.md}</span> -<span id="cb340-9"><a href="#cb340-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownInput</span>[shiftHeadings=+1]{example.md}</span> -<span id="cb340-10"><a href="#cb340-10" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb343"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb343-1"><a href="#cb343-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb343-2"><a href="#cb343-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>{<span class="ex">markdown</span>}</span> +<span id="cb343-3"><a href="#cb343-3" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">filecontents</span>}[overwrite,nosearch,noheader]{example.md}</span> +<span id="cb343-4"><a href="#cb343-4" aria-hidden="true" tabindex="-1"></a>## A section</span> +<span id="cb343-5"><a href="#cb343-5" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">filecontents</span>}</span> +<span id="cb343-6"><a href="#cb343-6" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb343-7"><a href="#cb343-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownInput</span>[shiftHeadings=-1]{example.md}</span> +<span id="cb343-8"><a href="#cb343-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownInput</span>{example.md}</span> +<span id="cb343-9"><a href="#cb343-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownInput</span>[shiftHeadings=+1]{example.md}</span> +<span id="cb343-10"><a href="#cb343-10" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb341"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb341-1"><a href="#cb341-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb344"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb344-1"><a href="#cb344-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -5903,22 +6024,22 @@ contain the following text:</p> class="tex">T<sub>e</sub>X</span>t Example</h5> <p>Using a text editor, create a text document named <code>example.md</code> with the following content:</p> -<div class="sourceCode" id="cb342"><pre -class="sourceCode md"><code class="sourceCode markdown"><span id="cb342-1"><a href="#cb342-1" aria-hidden="true" tabindex="-1"></a><span class="fu">## A section</span></span></code></pre></div> +<div class="sourceCode" id="cb345"><pre +class="sourceCode md"><code class="sourceCode markdown"><span id="cb345-1"><a href="#cb345-1" aria-hidden="true" tabindex="-1"></a><span class="fu">## A section</span></span></code></pre></div> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb343"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb343-1"><a href="#cb343-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> -<span id="cb343-2"><a href="#cb343-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> -<span id="cb343-3"><a href="#cb343-3" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb343-4"><a href="#cb343-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\inputmarkdown</span>[shiftHeadings = -1]{example.md}</span> -<span id="cb343-5"><a href="#cb343-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\inputmarkdown</span>[shiftHeadings = 0]{example.md}</span> -<span id="cb343-6"><a href="#cb343-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\inputmarkdown</span>[shiftHeadings = +1]{example.md}</span> -<span id="cb343-7"><a href="#cb343-7" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb343-8"><a href="#cb343-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> +<div class="sourceCode" id="cb346"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb346-1"><a href="#cb346-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> +<span id="cb346-2"><a href="#cb346-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> +<span id="cb346-3"><a href="#cb346-3" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb346-4"><a href="#cb346-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\inputmarkdown</span>[shiftHeadings = -1]{example.md}</span> +<span id="cb346-5"><a href="#cb346-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\inputmarkdown</span>[shiftHeadings = 0]{example.md}</span> +<span id="cb346-6"><a href="#cb346-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\inputmarkdown</span>[shiftHeadings = +1]{example.md}</span> +<span id="cb346-7"><a href="#cb346-7" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb346-8"><a href="#cb346-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb344"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb344-1"><a href="#cb344-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb347"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb347-1"><a href="#cb347-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -5926,8 +6047,8 @@ contain the following text:</p> <h2 id="a-section-7">A section</h2> <h3 id="a-section-8">A section</h3> </blockquote> -<h4 data-number="2.2.1.49" id="option-slice"><span -class="header-section-number">2.2.1.49</span> Option +<h4 data-number="2.2.1.51" id="option-slice"><span +class="header-section-number">2.2.1.51</span> Option <code>slice</code></h4> <dl> <dt><code>slice</code> (default value: <code>^ $</code>)</dt> @@ -5962,43 +6083,43 @@ i.e. the entire section with the <abbr>HTML</abbr> attribute class="tex">T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>hamlet.md</code> with the following content:</p> -<div class="sourceCode" id="cb345"><pre -class="sourceCode md"><code class="sourceCode markdown"><span id="cb345-1"><a href="#cb345-1" aria-hidden="true" tabindex="-1"></a><span class="fu"># The Tragedy of Hamlet</span></span> -<span id="cb345-2"><a href="#cb345-2" aria-hidden="true" tabindex="-1"></a>Shakespeare's longest play.</span> -<span id="cb345-3"><a href="#cb345-3" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb345-4"><a href="#cb345-4" aria-hidden="true" tabindex="-1"></a><span class="fu">## Act III {#act-3}</span></span> -<span id="cb345-5"><a href="#cb345-5" aria-hidden="true" tabindex="-1"></a>Hamlet kills Polonius.</span> -<span id="cb345-6"><a href="#cb345-6" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb345-7"><a href="#cb345-7" aria-hidden="true" tabindex="-1"></a><span class="fu">## Act V {#act-5}</span></span> -<span id="cb345-8"><a href="#cb345-8" aria-hidden="true" tabindex="-1"></a>Hamlet dies.</span> -<span id="cb345-9"><a href="#cb345-9" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb345-10"><a href="#cb345-10" aria-hidden="true" tabindex="-1"></a><span class="fu">## Act I {#act-1}</span></span> -<span id="cb345-11"><a href="#cb345-11" aria-hidden="true" tabindex="-1"></a>Hamlet talks to ghost.</span></code></pre></div> +<div class="sourceCode" id="cb348"><pre +class="sourceCode md"><code class="sourceCode markdown"><span id="cb348-1"><a href="#cb348-1" aria-hidden="true" tabindex="-1"></a><span class="fu"># The Tragedy of Hamlet</span></span> +<span id="cb348-2"><a href="#cb348-2" aria-hidden="true" tabindex="-1"></a>Shakespeare's longest play.</span> +<span id="cb348-3"><a href="#cb348-3" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb348-4"><a href="#cb348-4" aria-hidden="true" tabindex="-1"></a><span class="fu">## Act III {#act-3}</span></span> +<span id="cb348-5"><a href="#cb348-5" aria-hidden="true" tabindex="-1"></a>Hamlet kills Polonius.</span> +<span id="cb348-6"><a href="#cb348-6" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb348-7"><a href="#cb348-7" aria-hidden="true" tabindex="-1"></a><span class="fu">## Act V {#act-5}</span></span> +<span id="cb348-8"><a href="#cb348-8" aria-hidden="true" tabindex="-1"></a>Hamlet dies.</span> +<span id="cb348-9"><a href="#cb348-9" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb348-10"><a href="#cb348-10" aria-hidden="true" tabindex="-1"></a><span class="fu">## Act I {#act-1}</span></span> +<span id="cb348-11"><a href="#cb348-11" aria-hidden="true" tabindex="-1"></a>Hamlet talks to ghost.</span></code></pre></div> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb346"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb346-1"><a href="#cb346-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> -<span id="cb346-2"><a href="#cb346-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionHeaderAttributes</span>{true}</span> -<span id="cb346-3"><a href="#cb346-3" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb346-4"><a href="#cb346-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\font\normal</span>=cmr10<span class="fu">\normal</span></span> -<span id="cb346-5"><a href="#cb346-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\font\big</span>=cmr10 at 12pt</span> -<span id="cb346-6"><a href="#cb346-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererHeadingTwo</span>#1{{<span class="fu">\big</span> #1<span class="fu">\par</span>}}</span> -<span id="cb346-7"><a href="#cb346-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\font\bigger</span>=cmr10 scaled 1440</span> -<span id="cb346-8"><a href="#cb346-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererHeadingOne</span>#1{{<span class="fu">\bigger</span> #1<span class="fu">\par</span>}}</span> -<span id="cb346-9"><a href="#cb346-9" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb346-10"><a href="#cb346-10" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionSlice</span>{^ ^act-3}</span> -<span id="cb346-11"><a href="#cb346-11" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownInput</span>{hamlet.md}</span> -<span id="cb346-12"><a href="#cb346-12" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb346-13"><a href="#cb346-13" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionSlice</span>{act-1}</span> -<span id="cb346-14"><a href="#cb346-14" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownInput</span>{hamlet.md}</span> -<span id="cb346-15"><a href="#cb346-15" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb346-16"><a href="#cb346-16" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionSlice</span>{act-3 act-5}</span> -<span id="cb346-17"><a href="#cb346-17" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownInput</span>{hamlet.md}</span> -<span id="cb346-18"><a href="#cb346-18" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb346-19"><a href="#cb346-19" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> +<div class="sourceCode" id="cb349"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb349-1"><a href="#cb349-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> +<span id="cb349-2"><a href="#cb349-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionHeaderAttributes</span>{true}</span> +<span id="cb349-3"><a href="#cb349-3" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb349-4"><a href="#cb349-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\font\normal</span>=cmr10<span class="fu">\normal</span></span> +<span id="cb349-5"><a href="#cb349-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\font\big</span>=cmr10 at 12pt</span> +<span id="cb349-6"><a href="#cb349-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererHeadingTwo</span>#1{{<span class="fu">\big</span> #1<span class="fu">\par</span>}}</span> +<span id="cb349-7"><a href="#cb349-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\font\bigger</span>=cmr10 scaled 1440</span> +<span id="cb349-8"><a href="#cb349-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererHeadingOne</span>#1{{<span class="fu">\bigger</span> #1<span class="fu">\par</span>}}</span> +<span id="cb349-9"><a href="#cb349-9" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb349-10"><a href="#cb349-10" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionSlice</span>{^ ^act-3}</span> +<span id="cb349-11"><a href="#cb349-11" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownInput</span>{hamlet.md}</span> +<span id="cb349-12"><a href="#cb349-12" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb349-13"><a href="#cb349-13" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionSlice</span>{act-1}</span> +<span id="cb349-14"><a href="#cb349-14" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownInput</span>{hamlet.md}</span> +<span id="cb349-15"><a href="#cb349-15" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb349-16"><a href="#cb349-16" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionSlice</span>{act-3 act-5}</span> +<span id="cb349-17"><a href="#cb349-17" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownInput</span>{hamlet.md}</span> +<span id="cb349-18"><a href="#cb349-18" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb349-19"><a href="#cb349-19" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb347"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb347-1"><a href="#cb347-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb350"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb350-1"><a href="#cb350-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -6015,30 +6136,30 @@ contain the following text:</p> class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb348"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb348-1"><a href="#cb348-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb348-2"><a href="#cb348-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[headerAttributes]{<span class="ex">markdown</span>}</span> -<span id="cb348-3"><a href="#cb348-3" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">filecontents</span>}[overwrite,nosearch,noheader]{hamlet.md}</span> -<span id="cb348-4"><a href="#cb348-4" aria-hidden="true" tabindex="-1"></a># The Tragedy of Hamlet</span> -<span id="cb348-5"><a href="#cb348-5" aria-hidden="true" tabindex="-1"></a>Shakespeare's longest play.</span> -<span id="cb348-6"><a href="#cb348-6" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb348-7"><a href="#cb348-7" aria-hidden="true" tabindex="-1"></a>## Act III {#act-3}</span> -<span id="cb348-8"><a href="#cb348-8" aria-hidden="true" tabindex="-1"></a>Hamlet kills Polonius.</span> -<span id="cb348-9"><a href="#cb348-9" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb348-10"><a href="#cb348-10" aria-hidden="true" tabindex="-1"></a>## Act V {#act-5}</span> -<span id="cb348-11"><a href="#cb348-11" aria-hidden="true" tabindex="-1"></a>Hamlet dies.</span> -<span id="cb348-12"><a href="#cb348-12" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb348-13"><a href="#cb348-13" aria-hidden="true" tabindex="-1"></a>## Act I {#act-1}</span> -<span id="cb348-14"><a href="#cb348-14" aria-hidden="true" tabindex="-1"></a>Hamlet talks to ghost.</span> -<span id="cb348-15"><a href="#cb348-15" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">filecontents</span>}</span> -<span id="cb348-16"><a href="#cb348-16" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb348-17"><a href="#cb348-17" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownInput</span>[slice=^ ^act-3]{hamlet.md}</span> -<span id="cb348-18"><a href="#cb348-18" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownInput</span>[slice=act-1]{hamlet.md}</span> -<span id="cb348-19"><a href="#cb348-19" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownInput</span>[slice=act-3 act-5]{hamlet.md}</span> -<span id="cb348-20"><a href="#cb348-20" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb351"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb351-1"><a href="#cb351-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb351-2"><a href="#cb351-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[headerAttributes]{<span class="ex">markdown</span>}</span> +<span id="cb351-3"><a href="#cb351-3" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">filecontents</span>}[overwrite,nosearch,noheader]{hamlet.md}</span> +<span id="cb351-4"><a href="#cb351-4" aria-hidden="true" tabindex="-1"></a># The Tragedy of Hamlet</span> +<span id="cb351-5"><a href="#cb351-5" aria-hidden="true" tabindex="-1"></a>Shakespeare's longest play.</span> +<span id="cb351-6"><a href="#cb351-6" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb351-7"><a href="#cb351-7" aria-hidden="true" tabindex="-1"></a>## Act III {#act-3}</span> +<span id="cb351-8"><a href="#cb351-8" aria-hidden="true" tabindex="-1"></a>Hamlet kills Polonius.</span> +<span id="cb351-9"><a href="#cb351-9" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb351-10"><a href="#cb351-10" aria-hidden="true" tabindex="-1"></a>## Act V {#act-5}</span> +<span id="cb351-11"><a href="#cb351-11" aria-hidden="true" tabindex="-1"></a>Hamlet dies.</span> +<span id="cb351-12"><a href="#cb351-12" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb351-13"><a href="#cb351-13" aria-hidden="true" tabindex="-1"></a>## Act I {#act-1}</span> +<span id="cb351-14"><a href="#cb351-14" aria-hidden="true" tabindex="-1"></a>Hamlet talks to ghost.</span> +<span id="cb351-15"><a href="#cb351-15" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">filecontents</span>}</span> +<span id="cb351-16"><a href="#cb351-16" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb351-17"><a href="#cb351-17" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownInput</span>[slice=^ ^act-3]{hamlet.md}</span> +<span id="cb351-18"><a href="#cb351-18" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownInput</span>[slice=act-1]{hamlet.md}</span> +<span id="cb351-19"><a href="#cb351-19" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownInput</span>[slice=act-3 act-5]{hamlet.md}</span> +<span id="cb351-20"><a href="#cb351-20" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb349"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb349-1"><a href="#cb349-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb352"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb352-1"><a href="#cb352-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -6055,33 +6176,33 @@ contain the following text:</p> class="tex">T<sub>e</sub>X</span>t Example</h5> <p>Using a text editor, create a text document named <code>hamlet.md</code> with the following content:</p> -<div class="sourceCode" id="cb350"><pre -class="sourceCode md"><code class="sourceCode markdown"><span id="cb350-1"><a href="#cb350-1" aria-hidden="true" tabindex="-1"></a><span class="fu"># The Tragedy of Hamlet</span></span> -<span id="cb350-2"><a href="#cb350-2" aria-hidden="true" tabindex="-1"></a>Shakespeare's longest play.</span> -<span id="cb350-3"><a href="#cb350-3" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb350-4"><a href="#cb350-4" aria-hidden="true" tabindex="-1"></a><span class="fu">## Act III {#act-3}</span></span> -<span id="cb350-5"><a href="#cb350-5" aria-hidden="true" tabindex="-1"></a>Hamlet kills Polonius.</span> -<span id="cb350-6"><a href="#cb350-6" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb350-7"><a href="#cb350-7" aria-hidden="true" tabindex="-1"></a><span class="fu">## Act V {#act-5}</span></span> -<span id="cb350-8"><a href="#cb350-8" aria-hidden="true" tabindex="-1"></a>Hamlet dies.</span> -<span id="cb350-9"><a href="#cb350-9" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb350-10"><a href="#cb350-10" aria-hidden="true" tabindex="-1"></a><span class="fu">## Act I {#act-1}</span></span> -<span id="cb350-11"><a href="#cb350-11" aria-hidden="true" tabindex="-1"></a>Hamlet talks to ghost.</span></code></pre></div> +<div class="sourceCode" id="cb353"><pre +class="sourceCode md"><code class="sourceCode markdown"><span id="cb353-1"><a href="#cb353-1" aria-hidden="true" tabindex="-1"></a><span class="fu"># The Tragedy of Hamlet</span></span> +<span id="cb353-2"><a href="#cb353-2" aria-hidden="true" tabindex="-1"></a>Shakespeare's longest play.</span> +<span id="cb353-3"><a href="#cb353-3" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb353-4"><a href="#cb353-4" aria-hidden="true" tabindex="-1"></a><span class="fu">## Act III {#act-3}</span></span> +<span id="cb353-5"><a href="#cb353-5" aria-hidden="true" tabindex="-1"></a>Hamlet kills Polonius.</span> +<span id="cb353-6"><a href="#cb353-6" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb353-7"><a href="#cb353-7" aria-hidden="true" tabindex="-1"></a><span class="fu">## Act V {#act-5}</span></span> +<span id="cb353-8"><a href="#cb353-8" aria-hidden="true" tabindex="-1"></a>Hamlet dies.</span> +<span id="cb353-9"><a href="#cb353-9" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb353-10"><a href="#cb353-10" aria-hidden="true" tabindex="-1"></a><span class="fu">## Act I {#act-1}</span></span> +<span id="cb353-11"><a href="#cb353-11" aria-hidden="true" tabindex="-1"></a>Hamlet talks to ghost.</span></code></pre></div> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb351"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb351-1"><a href="#cb351-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> -<span id="cb351-2"><a href="#cb351-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span>[headerAttributes = yes]</span> -<span id="cb351-3"><a href="#cb351-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> -<span id="cb351-4"><a href="#cb351-4" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb351-5"><a href="#cb351-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\inputmarkdown</span>[slice = ^ ^act-3]{example.md}</span> -<span id="cb351-6"><a href="#cb351-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\inputmarkdown</span>[slice = act-1]{example.md}</span> -<span id="cb351-7"><a href="#cb351-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\inputmarkdown</span>[slice = act-3 act-5]{example.md}</span> -<span id="cb351-8"><a href="#cb351-8" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb351-9"><a href="#cb351-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> +<div class="sourceCode" id="cb354"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb354-1"><a href="#cb354-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> +<span id="cb354-2"><a href="#cb354-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span>[headerAttributes = yes]</span> +<span id="cb354-3"><a href="#cb354-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> +<span id="cb354-4"><a href="#cb354-4" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb354-5"><a href="#cb354-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\inputmarkdown</span>[slice = ^ ^act-3]{example.md}</span> +<span id="cb354-6"><a href="#cb354-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\inputmarkdown</span>[slice = act-1]{example.md}</span> +<span id="cb354-7"><a href="#cb354-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\inputmarkdown</span>[slice = act-3 act-5]{example.md}</span> +<span id="cb354-8"><a href="#cb354-8" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb354-9"><a href="#cb354-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb352"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb352-1"><a href="#cb352-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb355"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb355-1"><a href="#cb355-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -6094,8 +6215,8 @@ contain the following text:</p> <h2 id="act-v-2">Act V</h2> <p>Hamlet dies.</p> </blockquote> -<h4 data-number="2.2.1.50" id="option-smartellipses"><span -class="header-section-number">2.2.1.50</span> Option +<h4 data-number="2.2.1.52" id="option-smartellipses"><span +class="header-section-number">2.2.1.52</span> Option <code>smartEllipses</code></h4> <dl> <dt><code>smartEllipses</code> (default value: <code>false</code>)</dt> @@ -6104,7 +6225,7 @@ class="header-section-number">2.2.1.50</span> Option <dt>true</dt> <dd> <p>Convert any ellipses in the input to the -<code>\markdownRendererEllipsis</code> <span +<code>markdownRendererEllipsis</code> <span class="tex">T<sub>e</sub>X</span> macro.</p> </dd> </dl> @@ -6122,29 +6243,29 @@ class="tex">T<sub>e</sub>X</span> macro.</p> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb353"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb353-1"><a href="#cb353-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> -<span id="cb353-2"><a href="#cb353-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> lmfonts</span> -<span id="cb353-3"><a href="#cb353-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererEllipsis</span>{. . .}</span> -<span id="cb353-4"><a href="#cb353-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\begingroup</span></span> -<span id="cb353-5"><a href="#cb353-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\catcode</span>`<span class="fu">\%</span>=12</span> -<span id="cb353-6"><a href="#cb353-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\catcode</span>`<span class="fu">\#</span>=12</span> -<span id="cb353-7"><a href="#cb353-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\directlua</span>{</span> -<span id="cb353-8"><a href="#cb353-8" aria-hidden="true" tabindex="-1"></a> local markdown = require("markdown")</span> -<span id="cb353-9"><a href="#cb353-9" aria-hidden="true" tabindex="-1"></a> local convert = markdown.new()</span> -<span id="cb353-10"><a href="#cb353-10" aria-hidden="true" tabindex="-1"></a> local input = "These are just three regular dots ..."</span> -<span id="cb353-11"><a href="#cb353-11" aria-hidden="true" tabindex="-1"></a> tex.sprint(convert(input)) }</span> -<span id="cb353-12"><a href="#cb353-12" aria-hidden="true" tabindex="-1"></a><span class="fu">\par</span></span> -<span id="cb353-13"><a href="#cb353-13" aria-hidden="true" tabindex="-1"></a><span class="fu">\directlua</span>{</span> -<span id="cb353-14"><a href="#cb353-14" aria-hidden="true" tabindex="-1"></a> local markdown = require("markdown")</span> -<span id="cb353-15"><a href="#cb353-15" aria-hidden="true" tabindex="-1"></a> local convert = markdown.new({smartEllipses = true})</span> -<span id="cb353-16"><a href="#cb353-16" aria-hidden="true" tabindex="-1"></a> local input = "... and this is a victorian ellipsis."</span> -<span id="cb353-17"><a href="#cb353-17" aria-hidden="true" tabindex="-1"></a> tex.sprint(convert(input)) }</span> -<span id="cb353-18"><a href="#cb353-18" aria-hidden="true" tabindex="-1"></a><span class="fu">\endgroup</span></span> -<span id="cb353-19"><a href="#cb353-19" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> +<div class="sourceCode" id="cb356"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb356-1"><a href="#cb356-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> +<span id="cb356-2"><a href="#cb356-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> lmfonts</span> +<span id="cb356-3"><a href="#cb356-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererEllipsis</span>{. . .}</span> +<span id="cb356-4"><a href="#cb356-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\begingroup</span></span> +<span id="cb356-5"><a href="#cb356-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\catcode</span>`<span class="fu">\%</span>=12</span> +<span id="cb356-6"><a href="#cb356-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\catcode</span>`<span class="fu">\#</span>=12</span> +<span id="cb356-7"><a href="#cb356-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\directlua</span>{</span> +<span id="cb356-8"><a href="#cb356-8" aria-hidden="true" tabindex="-1"></a> local markdown = require("markdown")</span> +<span id="cb356-9"><a href="#cb356-9" aria-hidden="true" tabindex="-1"></a> local convert = markdown.new()</span> +<span id="cb356-10"><a href="#cb356-10" aria-hidden="true" tabindex="-1"></a> local input = "These are just three regular dots ..."</span> +<span id="cb356-11"><a href="#cb356-11" aria-hidden="true" tabindex="-1"></a> tex.sprint(convert(input)) }</span> +<span id="cb356-12"><a href="#cb356-12" aria-hidden="true" tabindex="-1"></a><span class="fu">\par</span></span> +<span id="cb356-13"><a href="#cb356-13" aria-hidden="true" tabindex="-1"></a><span class="fu">\directlua</span>{</span> +<span id="cb356-14"><a href="#cb356-14" aria-hidden="true" tabindex="-1"></a> local markdown = require("markdown")</span> +<span id="cb356-15"><a href="#cb356-15" aria-hidden="true" tabindex="-1"></a> local convert = markdown.new({smartEllipses = true})</span> +<span id="cb356-16"><a href="#cb356-16" aria-hidden="true" tabindex="-1"></a> local input = "... and this is a victorian ellipsis."</span> +<span id="cb356-17"><a href="#cb356-17" aria-hidden="true" tabindex="-1"></a> tex.sprint(convert(input)) }</span> +<span id="cb356-18"><a href="#cb356-18" aria-hidden="true" tabindex="-1"></a><span class="fu">\endgroup</span></span> +<span id="cb356-19"><a href="#cb356-19" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> <p>Then, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb354"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb354-1"><a href="#cb354-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb357"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb357-1"><a href="#cb357-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -6154,27 +6275,27 @@ contain the following text:</p> <h5 class="unnumbered" id="lua-cli-example-11">Lua CLI Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb355"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb355-1"><a href="#cb355-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> -<span id="cb355-2"><a href="#cb355-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> lmfonts</span> -<span id="cb355-3"><a href="#cb355-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererEllipsis</span>{. . .}</span> -<span id="cb355-4"><a href="#cb355-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\begingroup</span></span> -<span id="cb355-5"><a href="#cb355-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\catcode</span>`<span class="fu">\%</span>=12</span> -<span id="cb355-6"><a href="#cb355-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\catcode</span>`<span class="fu">\#</span>=12</span> -<span id="cb355-7"><a href="#cb355-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> optionfalse</span> -<span id="cb355-8"><a href="#cb355-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\par</span></span> -<span id="cb355-9"><a href="#cb355-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> optiontrue</span> -<span id="cb355-10"><a href="#cb355-10" aria-hidden="true" tabindex="-1"></a><span class="fu">\endgroup</span></span> -<span id="cb355-11"><a href="#cb355-11" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> +<div class="sourceCode" id="cb358"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb358-1"><a href="#cb358-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> +<span id="cb358-2"><a href="#cb358-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> lmfonts</span> +<span id="cb358-3"><a href="#cb358-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererEllipsis</span>{. . .}</span> +<span id="cb358-4"><a href="#cb358-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\begingroup</span></span> +<span id="cb358-5"><a href="#cb358-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\catcode</span>`<span class="fu">\%</span>=12</span> +<span id="cb358-6"><a href="#cb358-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\catcode</span>`<span class="fu">\#</span>=12</span> +<span id="cb358-7"><a href="#cb358-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> optionfalse</span> +<span id="cb358-8"><a href="#cb358-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\par</span></span> +<span id="cb358-9"><a href="#cb358-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> optiontrue</span> +<span id="cb358-10"><a href="#cb358-10" aria-hidden="true" tabindex="-1"></a><span class="fu">\endgroup</span></span> +<span id="cb358-11"><a href="#cb358-11" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> <p>Using a text editor, create a text document named <code>content.md</code> with the following content:</p> -<div class="sourceCode" id="cb356"><pre -class="sourceCode md"><code class="sourceCode markdown"><span id="cb356-1"><a href="#cb356-1" aria-hidden="true" tabindex="-1"></a>Are these just three regular dots, a victorian ellipsis, or ... ?</span></code></pre></div> +<div class="sourceCode" id="cb359"><pre +class="sourceCode md"><code class="sourceCode markdown"><span id="cb359-1"><a href="#cb359-1" aria-hidden="true" tabindex="-1"></a>Are these just three regular dots, a victorian ellipsis, or ... ?</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb357"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb357-1"><a href="#cb357-1" aria-hidden="true" tabindex="-1"></a><span class="ex">texlua</span> ⟨CLI pathname⟩ <span class="at">--</span> content.md optionfalse.tex</span> -<span id="cb357-2"><a href="#cb357-2" aria-hidden="true" tabindex="-1"></a><span class="ex">texlua</span> ⟨CLI pathname⟩ smartEllipses=true <span class="at">--</span> content.md optiontrue.tex</span> -<span id="cb357-3"><a href="#cb357-3" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb360"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb360-1"><a href="#cb360-1" aria-hidden="true" tabindex="-1"></a><span class="ex">texlua</span> ⟨CLI pathname⟩ <span class="at">--</span> content.md optionfalse.tex</span> +<span id="cb360-2"><a href="#cb360-2" aria-hidden="true" tabindex="-1"></a><span class="ex">texlua</span> ⟨CLI pathname⟩ smartEllipses=true <span class="at">--</span> content.md optiontrue.tex</span> +<span id="cb360-3"><a href="#cb360-3" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> <p>where ⟨<em>CLI pathname</em>⟩ corresponds to the location of the Lua CLI script file, such as <code>~/texmf/scripts/markdown/markdown-cli.lua</code> on UN*X systems @@ -6195,23 +6316,23 @@ contain the following text:</p> class="tex">T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb358"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb358-1"><a href="#cb358-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> -<span id="cb358-2"><a href="#cb358-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererEllipsis</span>{. . .}</span> -<span id="cb358-3"><a href="#cb358-3" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb358-4"><a href="#cb358-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> -<span id="cb358-5"><a href="#cb358-5" aria-hidden="true" tabindex="-1"></a>These are just three regular dots ...</span> -<span id="cb358-6"><a href="#cb358-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> -<span id="cb358-7"><a href="#cb358-7" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb358-8"><a href="#cb358-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionSmartEllipses</span>{true}</span> -<span id="cb358-9"><a href="#cb358-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> -<span id="cb358-10"><a href="#cb358-10" aria-hidden="true" tabindex="-1"></a>... and this is a victorian ellipsis.</span> -<span id="cb358-11"><a href="#cb358-11" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> -<span id="cb358-12"><a href="#cb358-12" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb358-13"><a href="#cb358-13" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> +<div class="sourceCode" id="cb361"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb361-1"><a href="#cb361-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> +<span id="cb361-2"><a href="#cb361-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererEllipsis</span>{. . .}</span> +<span id="cb361-3"><a href="#cb361-3" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb361-4"><a href="#cb361-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> +<span id="cb361-5"><a href="#cb361-5" aria-hidden="true" tabindex="-1"></a>These are just three regular dots ...</span> +<span id="cb361-6"><a href="#cb361-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> +<span id="cb361-7"><a href="#cb361-7" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb361-8"><a href="#cb361-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionSmartEllipses</span>{true}</span> +<span id="cb361-9"><a href="#cb361-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> +<span id="cb361-10"><a href="#cb361-10" aria-hidden="true" tabindex="-1"></a>... and this is a victorian ellipsis.</span> +<span id="cb361-11"><a href="#cb361-11" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> +<span id="cb361-12"><a href="#cb361-12" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb361-13"><a href="#cb361-13" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb359"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb359-1"><a href="#cb359-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb362"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb362-1"><a href="#cb362-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -6222,28 +6343,28 @@ contain the following text:</p> class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb360"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb360-1"><a href="#cb360-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb360-2"><a href="#cb360-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>{<span class="ex">markdown</span>}</span> -<span id="cb360-3"><a href="#cb360-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> -<span id="cb360-4"><a href="#cb360-4" aria-hidden="true" tabindex="-1"></a> renderers = {</span> -<span id="cb360-5"><a href="#cb360-5" aria-hidden="true" tabindex="-1"></a> ellipsis = {. . .}</span> -<span id="cb360-6"><a href="#cb360-6" aria-hidden="true" tabindex="-1"></a> }</span> -<span id="cb360-7"><a href="#cb360-7" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb360-8"><a href="#cb360-8" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb360-9"><a href="#cb360-9" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb360-10"><a href="#cb360-10" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb360-11"><a href="#cb360-11" aria-hidden="true" tabindex="-1"></a>These are just three regular dots ...</span> -<span id="cb360-12"><a href="#cb360-12" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb360-13"><a href="#cb360-13" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb360-14"><a href="#cb360-14" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}[smartEllipses]</span> -<span id="cb360-15"><a href="#cb360-15" aria-hidden="true" tabindex="-1"></a>... and this is a victorian ellipsis.</span> -<span id="cb360-16"><a href="#cb360-16" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb360-17"><a href="#cb360-17" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb360-18"><a href="#cb360-18" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb363"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb363-1"><a href="#cb363-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb363-2"><a href="#cb363-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>{<span class="ex">markdown</span>}</span> +<span id="cb363-3"><a href="#cb363-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> +<span id="cb363-4"><a href="#cb363-4" aria-hidden="true" tabindex="-1"></a> renderers = {</span> +<span id="cb363-5"><a href="#cb363-5" aria-hidden="true" tabindex="-1"></a> ellipsis = {. . .}</span> +<span id="cb363-6"><a href="#cb363-6" aria-hidden="true" tabindex="-1"></a> }</span> +<span id="cb363-7"><a href="#cb363-7" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb363-8"><a href="#cb363-8" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb363-9"><a href="#cb363-9" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb363-10"><a href="#cb363-10" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb363-11"><a href="#cb363-11" aria-hidden="true" tabindex="-1"></a>These are just three regular dots ...</span> +<span id="cb363-12"><a href="#cb363-12" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb363-13"><a href="#cb363-13" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb363-14"><a href="#cb363-14" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}[smartEllipses]</span> +<span id="cb363-15"><a href="#cb363-15" aria-hidden="true" tabindex="-1"></a>... and this is a victorian ellipsis.</span> +<span id="cb363-16"><a href="#cb363-16" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb363-17"><a href="#cb363-17" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb363-18"><a href="#cb363-18" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb361"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb361-1"><a href="#cb361-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb364"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb364-1"><a href="#cb364-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -6254,32 +6375,32 @@ contain the following text:</p> class="tex">T<sub>e</sub>X</span>t Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb362"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb362-1"><a href="#cb362-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> -<span id="cb362-2"><a href="#cb362-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererEllipsis</span>{. . .}</span> -<span id="cb362-3"><a href="#cb362-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> -<span id="cb362-4"><a href="#cb362-4" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb362-5"><a href="#cb362-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> -<span id="cb362-6"><a href="#cb362-6" aria-hidden="true" tabindex="-1"></a>These are just three regular dots ...</span> -<span id="cb362-7"><a href="#cb362-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> -<span id="cb362-8"><a href="#cb362-8" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb362-9"><a href="#cb362-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span>[smartEllipses = yes]</span> -<span id="cb362-10"><a href="#cb362-10" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> -<span id="cb362-11"><a href="#cb362-11" aria-hidden="true" tabindex="-1"></a>... and this is a victorian ellipsis.</span> -<span id="cb362-12"><a href="#cb362-12" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> -<span id="cb362-13"><a href="#cb362-13" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb362-14"><a href="#cb362-14" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> +<div class="sourceCode" id="cb365"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb365-1"><a href="#cb365-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> +<span id="cb365-2"><a href="#cb365-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererEllipsis</span>{. . .}</span> +<span id="cb365-3"><a href="#cb365-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> +<span id="cb365-4"><a href="#cb365-4" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb365-5"><a href="#cb365-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> +<span id="cb365-6"><a href="#cb365-6" aria-hidden="true" tabindex="-1"></a>These are just three regular dots ...</span> +<span id="cb365-7"><a href="#cb365-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> +<span id="cb365-8"><a href="#cb365-8" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb365-9"><a href="#cb365-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span>[smartEllipses = yes]</span> +<span id="cb365-10"><a href="#cb365-10" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> +<span id="cb365-11"><a href="#cb365-11" aria-hidden="true" tabindex="-1"></a>... and this is a victorian ellipsis.</span> +<span id="cb365-12"><a href="#cb365-12" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> +<span id="cb365-13"><a href="#cb365-13" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb365-14"><a href="#cb365-14" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb363"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb363-1"><a href="#cb363-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb366"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb366-1"><a href="#cb366-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> <p>These are just three regular dots …</p> <p>. . . and this is a victorian ellipsis.</p> </blockquote> -<h4 data-number="2.2.1.51" id="option-startnumber"><span -class="header-section-number">2.2.1.51</span> Option +<h4 data-number="2.2.1.53" id="option-startnumber"><span +class="header-section-number">2.2.1.53</span> Option <code>startNumber</code></h4> <dl> <dt><code>startNumber</code> (default value: <code>true</code>)</dt> @@ -6289,7 +6410,7 @@ class="header-section-number">2.2.1.51</span> Option <dd> <p>Make the number in the first item of an ordered lists significant. The item numbers will be passed to the -<code>\markdownRendererOlItemWithNumber</code> <span +<code>markdownRendererOlItemWithNumber</code> <span class="tex">T<sub>e</sub>X</span> macro.</p> </dd> </dl> @@ -6299,7 +6420,7 @@ class="tex">T<sub>e</sub>X</span> macro.</p> <dt>false</dt> <dd> <p>Ignore the numbers in the ordered list items. Each item will only -produce a <code>\markdownRendererOlItem</code> <span +produce a <code>markdownRendererOlItem</code> <span class="tex">T<sub>e</sub>X</span> macro.</p> </dd> </dl> @@ -6309,32 +6430,32 @@ class="tex">T<sub>e</sub>X</span> macro.</p> class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb364"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb364-1"><a href="#cb364-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb364-2"><a href="#cb364-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>{<span class="ex">markdown</span>}</span> -<span id="cb364-3"><a href="#cb364-3" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb364-4"><a href="#cb364-4" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb364-5"><a href="#cb364-5" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb364-6"><a href="#cb364-6" aria-hidden="true" tabindex="-1"></a>The following list respects the numbers specified in the markup:</span> -<span id="cb364-7"><a href="#cb364-7" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb364-8"><a href="#cb364-8" aria-hidden="true" tabindex="-1"></a>3. third item</span> -<span id="cb364-9"><a href="#cb364-9" aria-hidden="true" tabindex="-1"></a>4. fourth item</span> -<span id="cb364-10"><a href="#cb364-10" aria-hidden="true" tabindex="-1"></a>5. fifth item</span> -<span id="cb364-11"><a href="#cb364-11" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb364-12"><a href="#cb364-12" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb364-13"><a href="#cb364-13" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}[startNumber=false]</span> -<span id="cb364-14"><a href="#cb364-14" aria-hidden="true" tabindex="-1"></a>The following list does not respect the numbers specified in the</span> -<span id="cb364-15"><a href="#cb364-15" aria-hidden="true" tabindex="-1"></a>markup:</span> -<span id="cb364-16"><a href="#cb364-16" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb364-17"><a href="#cb364-17" aria-hidden="true" tabindex="-1"></a>3. third item</span> -<span id="cb364-18"><a href="#cb364-18" aria-hidden="true" tabindex="-1"></a>4. fourth item</span> -<span id="cb364-19"><a href="#cb364-19" aria-hidden="true" tabindex="-1"></a>5. fifth item</span> -<span id="cb364-20"><a href="#cb364-20" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb364-21"><a href="#cb364-21" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb364-22"><a href="#cb364-22" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb367"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb367-1"><a href="#cb367-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb367-2"><a href="#cb367-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>{<span class="ex">markdown</span>}</span> +<span id="cb367-3"><a href="#cb367-3" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb367-4"><a href="#cb367-4" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb367-5"><a href="#cb367-5" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb367-6"><a href="#cb367-6" aria-hidden="true" tabindex="-1"></a>The following list respects the numbers specified in the markup:</span> +<span id="cb367-7"><a href="#cb367-7" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb367-8"><a href="#cb367-8" aria-hidden="true" tabindex="-1"></a>3. third item</span> +<span id="cb367-9"><a href="#cb367-9" aria-hidden="true" tabindex="-1"></a>4. fourth item</span> +<span id="cb367-10"><a href="#cb367-10" aria-hidden="true" tabindex="-1"></a>5. fifth item</span> +<span id="cb367-11"><a href="#cb367-11" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb367-12"><a href="#cb367-12" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb367-13"><a href="#cb367-13" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}[startNumber=false]</span> +<span id="cb367-14"><a href="#cb367-14" aria-hidden="true" tabindex="-1"></a>The following list does not respect the numbers specified in the</span> +<span id="cb367-15"><a href="#cb367-15" aria-hidden="true" tabindex="-1"></a>markup:</span> +<span id="cb367-16"><a href="#cb367-16" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb367-17"><a href="#cb367-17" aria-hidden="true" tabindex="-1"></a>3. third item</span> +<span id="cb367-18"><a href="#cb367-18" aria-hidden="true" tabindex="-1"></a>4. fourth item</span> +<span id="cb367-19"><a href="#cb367-19" aria-hidden="true" tabindex="-1"></a>5. fifth item</span> +<span id="cb367-20"><a href="#cb367-20" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb367-21"><a href="#cb367-21" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb367-22"><a href="#cb367-22" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb365"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb365-1"><a href="#cb365-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb368"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb368-1"><a href="#cb368-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -6356,30 +6477,30 @@ markup:</p> class="tex">T<sub>e</sub>X</span>t Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb366"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb366-1"><a href="#cb366-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> -<span id="cb366-2"><a href="#cb366-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> -<span id="cb366-3"><a href="#cb366-3" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb366-4"><a href="#cb366-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> -<span id="cb366-5"><a href="#cb366-5" aria-hidden="true" tabindex="-1"></a>The following list respects the numbers specified in the markup:</span> -<span id="cb366-6"><a href="#cb366-6" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb366-7"><a href="#cb366-7" aria-hidden="true" tabindex="-1"></a>3. third item</span> -<span id="cb366-8"><a href="#cb366-8" aria-hidden="true" tabindex="-1"></a>4. fourth item</span> -<span id="cb366-9"><a href="#cb366-9" aria-hidden="true" tabindex="-1"></a>5. fifth item</span> -<span id="cb366-10"><a href="#cb366-10" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> -<span id="cb366-11"><a href="#cb366-11" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb366-12"><a href="#cb366-12" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span>[startNumber = no]</span> -<span id="cb366-13"><a href="#cb366-13" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> -<span id="cb366-14"><a href="#cb366-14" aria-hidden="true" tabindex="-1"></a>The following list respects the numbers specified in the markup:</span> -<span id="cb366-15"><a href="#cb366-15" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb366-16"><a href="#cb366-16" aria-hidden="true" tabindex="-1"></a>3. third item</span> -<span id="cb366-17"><a href="#cb366-17" aria-hidden="true" tabindex="-1"></a>4. fourth item</span> -<span id="cb366-18"><a href="#cb366-18" aria-hidden="true" tabindex="-1"></a>5. fifth item</span> -<span id="cb366-19"><a href="#cb366-19" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> -<span id="cb366-20"><a href="#cb366-20" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> +<div class="sourceCode" id="cb369"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb369-1"><a href="#cb369-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> +<span id="cb369-2"><a href="#cb369-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> +<span id="cb369-3"><a href="#cb369-3" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb369-4"><a href="#cb369-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> +<span id="cb369-5"><a href="#cb369-5" aria-hidden="true" tabindex="-1"></a>The following list respects the numbers specified in the markup:</span> +<span id="cb369-6"><a href="#cb369-6" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb369-7"><a href="#cb369-7" aria-hidden="true" tabindex="-1"></a>3. third item</span> +<span id="cb369-8"><a href="#cb369-8" aria-hidden="true" tabindex="-1"></a>4. fourth item</span> +<span id="cb369-9"><a href="#cb369-9" aria-hidden="true" tabindex="-1"></a>5. fifth item</span> +<span id="cb369-10"><a href="#cb369-10" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> +<span id="cb369-11"><a href="#cb369-11" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb369-12"><a href="#cb369-12" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span>[startNumber = no]</span> +<span id="cb369-13"><a href="#cb369-13" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> +<span id="cb369-14"><a href="#cb369-14" aria-hidden="true" tabindex="-1"></a>The following list respects the numbers specified in the markup:</span> +<span id="cb369-15"><a href="#cb369-15" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb369-16"><a href="#cb369-16" aria-hidden="true" tabindex="-1"></a>3. third item</span> +<span id="cb369-17"><a href="#cb369-17" aria-hidden="true" tabindex="-1"></a>4. fourth item</span> +<span id="cb369-18"><a href="#cb369-18" aria-hidden="true" tabindex="-1"></a>5. fifth item</span> +<span id="cb369-19"><a href="#cb369-19" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> +<span id="cb369-20"><a href="#cb369-20" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb367"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb367-1"><a href="#cb367-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb370"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb370-1"><a href="#cb370-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -6397,8 +6518,8 @@ markup:</p> <li>fifth item</li> </ol> </blockquote> -<h4 data-number="2.2.1.52" id="option-strikethrough"><span -class="header-section-number">2.2.1.52</span> Option +<h4 data-number="2.2.1.54" id="option-strikethrough"><span +class="header-section-number">2.2.1.54</span> Option <code>strikeThrough</code></h4> <dl> <dt><code>strikeThrough</code> (default value: <code>false</code>)</dt> @@ -6409,8 +6530,8 @@ class="header-section-number">2.2.1.52</span> Option <p>Enable the Pandoc <a href="https://pandoc.org/MANUAL.html#extension-strikeout">strike-through syntax extension</a>:</p> -<div class="sourceCode" id="cb368"><pre -class="sourceCode md"><code class="sourceCode markdown"><span id="cb368-1"><a href="#cb368-1" aria-hidden="true" tabindex="-1"></a>This ~~is deleted text.~~</span></code></pre></div> +<div class="sourceCode" id="cb371"><pre +class="sourceCode md"><code class="sourceCode markdown"><span id="cb371-1"><a href="#cb371-1" aria-hidden="true" tabindex="-1"></a>This ~~is deleted text.~~</span></code></pre></div> </dd> </dl> </dd> @@ -6427,18 +6548,18 @@ class="sourceCode md"><code class="sourceCode markdown"><span id="cb368-1"><a hr class="tex">T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb369"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb369-1"><a href="#cb369-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> -<span id="cb369-2"><a href="#cb369-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionStrikeThrough</span>{true}</span> -<span id="cb369-3"><a href="#cb369-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> soulutf8.sty</span> -<span id="cb369-4"><a href="#cb369-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererStrikeThrough</span>#1{<span class="fu">\st</span>{#1}}</span> -<span id="cb369-5"><a href="#cb369-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> -<span id="cb369-6"><a href="#cb369-6" aria-hidden="true" tabindex="-1"></a>This is ~~a lunar roving vehicle~~ strike-through text.</span> -<span id="cb369-7"><a href="#cb369-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> -<span id="cb369-8"><a href="#cb369-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> +<div class="sourceCode" id="cb372"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb372-1"><a href="#cb372-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> +<span id="cb372-2"><a href="#cb372-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionStrikeThrough</span>{true}</span> +<span id="cb372-3"><a href="#cb372-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> soulutf8.sty</span> +<span id="cb372-4"><a href="#cb372-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererStrikeThrough</span>#1{<span class="fu">\st</span>{#1}}</span> +<span id="cb372-5"><a href="#cb372-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> +<span id="cb372-6"><a href="#cb372-6" aria-hidden="true" tabindex="-1"></a>This is ~~a lunar roving vehicle~~ strike-through text.</span> +<span id="cb372-7"><a href="#cb372-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> +<span id="cb372-8"><a href="#cb372-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb370"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb370-1"><a href="#cb370-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb373"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb373-1"><a href="#cb373-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -6448,23 +6569,23 @@ contain the following text:</p> class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb371"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb371-1"><a href="#cb371-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb371-2"><a href="#cb371-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[strikeThrough]{<span class="ex">markdown</span>}</span> -<span id="cb371-3"><a href="#cb371-3" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>{<span class="ex">soulutf8</span>}</span> -<span id="cb371-4"><a href="#cb371-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> -<span id="cb371-5"><a href="#cb371-5" aria-hidden="true" tabindex="-1"></a> renderers = {</span> -<span id="cb371-6"><a href="#cb371-6" aria-hidden="true" tabindex="-1"></a> strikeThrough = {<span class="fu">\st</span>{#1}},</span> -<span id="cb371-7"><a href="#cb371-7" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb371-8"><a href="#cb371-8" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb371-9"><a href="#cb371-9" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb371-10"><a href="#cb371-10" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb371-11"><a href="#cb371-11" aria-hidden="true" tabindex="-1"></a>This is ~~a lunar roving vehicle~~ strike-through text.</span> -<span id="cb371-12"><a href="#cb371-12" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb371-13"><a href="#cb371-13" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb374"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb374-1"><a href="#cb374-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb374-2"><a href="#cb374-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[strikeThrough]{<span class="ex">markdown</span>}</span> +<span id="cb374-3"><a href="#cb374-3" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>{<span class="ex">soulutf8</span>}</span> +<span id="cb374-4"><a href="#cb374-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> +<span id="cb374-5"><a href="#cb374-5" aria-hidden="true" tabindex="-1"></a> renderers = {</span> +<span id="cb374-6"><a href="#cb374-6" aria-hidden="true" tabindex="-1"></a> strikeThrough = {<span class="fu">\st</span>{#1}},</span> +<span id="cb374-7"><a href="#cb374-7" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb374-8"><a href="#cb374-8" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb374-9"><a href="#cb374-9" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb374-10"><a href="#cb374-10" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb374-11"><a href="#cb374-11" aria-hidden="true" tabindex="-1"></a>This is ~~a lunar roving vehicle~~ strike-through text.</span> +<span id="cb374-12"><a href="#cb374-12" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb374-13"><a href="#cb374-13" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb372"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb372-1"><a href="#cb372-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb375"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb375-1"><a href="#cb375-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -6474,25 +6595,25 @@ contain the following text:</p> class="tex">T<sub>e</sub>X</span>t Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb373"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb373-1"><a href="#cb373-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> -<span id="cb373-2"><a href="#cb373-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span>[strikeThrough = yes]</span> -<span id="cb373-3"><a href="#cb373-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererStrikeThrough</span>#1{<span class="fu">\overstrikes</span>{#1}}</span> -<span id="cb373-4"><a href="#cb373-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> -<span id="cb373-5"><a href="#cb373-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> -<span id="cb373-6"><a href="#cb373-6" aria-hidden="true" tabindex="-1"></a>This is ~~a lunar roving vehicle~~ strike-through text.</span> -<span id="cb373-7"><a href="#cb373-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> -<span id="cb373-8"><a href="#cb373-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> +<div class="sourceCode" id="cb376"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb376-1"><a href="#cb376-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> +<span id="cb376-2"><a href="#cb376-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span>[strikeThrough = yes]</span> +<span id="cb376-3"><a href="#cb376-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererStrikeThrough</span>#1{<span class="fu">\overstrikes</span>{#1}}</span> +<span id="cb376-4"><a href="#cb376-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> +<span id="cb376-5"><a href="#cb376-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> +<span id="cb376-6"><a href="#cb376-6" aria-hidden="true" tabindex="-1"></a>This is ~~a lunar roving vehicle~~ strike-through text.</span> +<span id="cb376-7"><a href="#cb376-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> +<span id="cb376-8"><a href="#cb376-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb374"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb374-1"><a href="#cb374-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb377"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb377-1"><a href="#cb377-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> <p>This is <del>a lunar roving vehicle</del> strike-through text.</p> </blockquote> -<h4 data-number="2.2.1.53" id="option-stripindent"><span -class="header-section-number">2.2.1.53</span> Option +<h4 data-number="2.2.1.55" id="option-stripindent"><span +class="header-section-number">2.2.1.55</span> Option <code>stripIndent</code></h4> <dl> <dt><code>stripIndent</code> (default value: <code>false</code>)</dt> @@ -6502,15 +6623,15 @@ class="header-section-number">2.2.1.53</span> Option <dd> <p>Strip the minimal indentation of non-blank lines from all lines in a markdown document. Requires that the -<strong><code>preserveTabs</code></strong> Lua option is disabled:</p> -<div class="sourceCode" id="cb375"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb375-1"><a href="#cb375-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb375-2"><a href="#cb375-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[stripIndent]{<span class="ex">markdown</span>}</span> -<span id="cb375-3"><a href="#cb375-3" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb375-4"><a href="#cb375-4" aria-hidden="true" tabindex="-1"></a> <span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb375-5"><a href="#cb375-5" aria-hidden="true" tabindex="-1"></a> Hello *world*!</span> -<span id="cb375-6"><a href="#cb375-6" aria-hidden="true" tabindex="-1"></a> <span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb375-7"><a href="#cb375-7" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<code><strong>preserveTabs</strong></code> Lua option is disabled:</p> +<div class="sourceCode" id="cb378"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb378-1"><a href="#cb378-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb378-2"><a href="#cb378-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[stripIndent]{<span class="ex">markdown</span>}</span> +<span id="cb378-3"><a href="#cb378-3" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb378-4"><a href="#cb378-4" aria-hidden="true" tabindex="-1"></a> <span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb378-5"><a href="#cb378-5" aria-hidden="true" tabindex="-1"></a> Hello *world*!</span> +<span id="cb378-6"><a href="#cb378-6" aria-hidden="true" tabindex="-1"></a> <span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb378-7"><a href="#cb378-7" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> </dd> </dl> </dd> @@ -6528,54 +6649,54 @@ document.</p> class="tex">T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb376"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb376-1"><a href="#cb376-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> -<span id="cb376-2"><a href="#cb376-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionStripIndent</span>{true}</span> -<span id="cb376-3"><a href="#cb376-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> -<span id="cb376-4"><a href="#cb376-4" aria-hidden="true" tabindex="-1"></a> Hello *world*!</span> -<span id="cb376-5"><a href="#cb376-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> -<span id="cb376-6"><a href="#cb376-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> +<div class="sourceCode" id="cb379"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb379-1"><a href="#cb379-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> +<span id="cb379-2"><a href="#cb379-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionStripIndent</span>{true}</span> +<span id="cb379-3"><a href="#cb379-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> +<span id="cb379-4"><a href="#cb379-4" aria-hidden="true" tabindex="-1"></a> Hello *world*!</span> +<span id="cb379-5"><a href="#cb379-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> +<span id="cb379-6"><a href="#cb379-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb377"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb377-1"><a href="#cb377-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb380"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb380-1"><a href="#cb380-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the text “Hello <em>world</em>!”</p> <h5 class="unnumbered" id="latex-example-42"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb378"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb378-1"><a href="#cb378-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb378-2"><a href="#cb378-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[stripIndent]{<span class="ex">markdown</span>}</span> -<span id="cb378-3"><a href="#cb378-3" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb378-4"><a href="#cb378-4" aria-hidden="true" tabindex="-1"></a> <span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb378-5"><a href="#cb378-5" aria-hidden="true" tabindex="-1"></a> Hello *world*!</span> -<span id="cb378-6"><a href="#cb378-6" aria-hidden="true" tabindex="-1"></a> <span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb378-7"><a href="#cb378-7" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb381"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb381-1"><a href="#cb381-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb381-2"><a href="#cb381-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[stripIndent]{<span class="ex">markdown</span>}</span> +<span id="cb381-3"><a href="#cb381-3" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb381-4"><a href="#cb381-4" aria-hidden="true" tabindex="-1"></a> <span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb381-5"><a href="#cb381-5" aria-hidden="true" tabindex="-1"></a> Hello *world*!</span> +<span id="cb381-6"><a href="#cb381-6" aria-hidden="true" tabindex="-1"></a> <span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb381-7"><a href="#cb381-7" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb379"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb379-1"><a href="#cb379-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb382"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb382-1"><a href="#cb382-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the text “Hello <em>world</em>!”</p> <h5 class="unnumbered" id="context-example-28">Con<span class="tex">T<sub>e</sub>X</span>t Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb380"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb380-1"><a href="#cb380-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> -<span id="cb380-2"><a href="#cb380-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span>[stripIndent = yes]</span> -<span id="cb380-3"><a href="#cb380-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> -<span id="cb380-4"><a href="#cb380-4" aria-hidden="true" tabindex="-1"></a> <span class="fu">\startmarkdown</span></span> -<span id="cb380-5"><a href="#cb380-5" aria-hidden="true" tabindex="-1"></a> Hello *world*!</span> -<span id="cb380-6"><a href="#cb380-6" aria-hidden="true" tabindex="-1"></a> <span class="fu">\stopmarkdown</span></span> -<span id="cb380-7"><a href="#cb380-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> +<div class="sourceCode" id="cb383"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb383-1"><a href="#cb383-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> +<span id="cb383-2"><a href="#cb383-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span>[stripIndent = yes]</span> +<span id="cb383-3"><a href="#cb383-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> +<span id="cb383-4"><a href="#cb383-4" aria-hidden="true" tabindex="-1"></a> <span class="fu">\startmarkdown</span></span> +<span id="cb383-5"><a href="#cb383-5" aria-hidden="true" tabindex="-1"></a> Hello *world*!</span> +<span id="cb383-6"><a href="#cb383-6" aria-hidden="true" tabindex="-1"></a> <span class="fu">\stopmarkdown</span></span> +<span id="cb383-7"><a href="#cb383-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb381"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb381-1"><a href="#cb381-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb384"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb384-1"><a href="#cb384-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the text “Hello <em>world</em>!”</p> -<h4 data-number="2.2.1.54" id="option-subscripts"><span -class="header-section-number">2.2.1.54</span> Option +<h4 data-number="2.2.1.56" id="option-subscripts"><span +class="header-section-number">2.2.1.56</span> Option <code>subscripts</code></h4> <dl> <dt><code>subscripts</code> (default value: <code>false</code>)</dt> @@ -6586,8 +6707,8 @@ class="header-section-number">2.2.1.54</span> Option <p>Enable the Pandoc <a href="https://pandoc.org/MANUAL.html#extension-superscript-subscript">subscript syntax extension</a>:</p> -<div class="sourceCode" id="cb382"><pre -class="sourceCode md"><code class="sourceCode markdown"><span id="cb382-1"><a href="#cb382-1" aria-hidden="true" tabindex="-1"></a>H~2~O is a liquid.</span></code></pre></div> +<div class="sourceCode" id="cb385"><pre +class="sourceCode md"><code class="sourceCode markdown"><span id="cb385-1"><a href="#cb385-1" aria-hidden="true" tabindex="-1"></a>H~2~O is a liquid.</span></code></pre></div> </dd> </dl> </dd> @@ -6604,17 +6725,17 @@ class="sourceCode md"><code class="sourceCode markdown"><span id="cb382-1"><a hr class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb383"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb383-1"><a href="#cb383-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb383-2"><a href="#cb383-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[subscripts]{<span class="ex">markdown</span>}</span> -<span id="cb383-3"><a href="#cb383-3" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb383-4"><a href="#cb383-4" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb383-5"><a href="#cb383-5" aria-hidden="true" tabindex="-1"></a>H~2~O is a liquid.</span> -<span id="cb383-6"><a href="#cb383-6" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb383-7"><a href="#cb383-7" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb386"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb386-1"><a href="#cb386-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb386-2"><a href="#cb386-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[subscripts]{<span class="ex">markdown</span>}</span> +<span id="cb386-3"><a href="#cb386-3" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb386-4"><a href="#cb386-4" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb386-5"><a href="#cb386-5" aria-hidden="true" tabindex="-1"></a>H~2~O is a liquid.</span> +<span id="cb386-6"><a href="#cb386-6" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb386-7"><a href="#cb386-7" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb384"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb384-1"><a href="#cb384-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb387"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb387-1"><a href="#cb387-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -6624,24 +6745,24 @@ contain the following text:</p> class="tex">T<sub>e</sub>X</span>t Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb385"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb385-1"><a href="#cb385-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> -<span id="cb385-2"><a href="#cb385-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span>[subscripts = yes]</span> -<span id="cb385-3"><a href="#cb385-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> -<span id="cb385-4"><a href="#cb385-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> -<span id="cb385-5"><a href="#cb385-5" aria-hidden="true" tabindex="-1"></a>H~2~O is a liquid.</span> -<span id="cb385-6"><a href="#cb385-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> -<span id="cb385-7"><a href="#cb385-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> +<div class="sourceCode" id="cb388"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb388-1"><a href="#cb388-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> +<span id="cb388-2"><a href="#cb388-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span>[subscripts = yes]</span> +<span id="cb388-3"><a href="#cb388-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> +<span id="cb388-4"><a href="#cb388-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> +<span id="cb388-5"><a href="#cb388-5" aria-hidden="true" tabindex="-1"></a>H~2~O is a liquid.</span> +<span id="cb388-6"><a href="#cb388-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> +<span id="cb388-7"><a href="#cb388-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb386"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb386-1"><a href="#cb386-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb389"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb389-1"><a href="#cb389-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> <p>H<sub>2</sub>O is a liquid.</p> </blockquote> -<h4 data-number="2.2.1.55" id="option-superscripts"><span -class="header-section-number">2.2.1.55</span> Option +<h4 data-number="2.2.1.57" id="option-superscripts"><span +class="header-section-number">2.2.1.57</span> Option <code>superscripts</code></h4> <dl> <dt><code>superscripts</code> (default value: <code>false</code>)</dt> @@ -6652,8 +6773,8 @@ class="header-section-number">2.2.1.55</span> Option <p>Enable the Pandoc <a href="https://pandoc.org/MANUAL.html#extension-superscript-subscript">superscript syntax extension</a>:</p> -<div class="sourceCode" id="cb387"><pre -class="sourceCode md"><code class="sourceCode markdown"><span id="cb387-1"><a href="#cb387-1" aria-hidden="true" tabindex="-1"></a>2^10^ is 1024.</span></code></pre></div> +<div class="sourceCode" id="cb390"><pre +class="sourceCode md"><code class="sourceCode markdown"><span id="cb390-1"><a href="#cb390-1" aria-hidden="true" tabindex="-1"></a>2^10^ is 1024.</span></code></pre></div> </dd> </dl> </dd> @@ -6670,17 +6791,17 @@ class="sourceCode md"><code class="sourceCode markdown"><span id="cb387-1"><a hr class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb388"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb388-1"><a href="#cb388-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb388-2"><a href="#cb388-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[superscripts]{<span class="ex">markdown</span>}</span> -<span id="cb388-3"><a href="#cb388-3" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb388-4"><a href="#cb388-4" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb388-5"><a href="#cb388-5" aria-hidden="true" tabindex="-1"></a>2^10^ is 1024.</span> -<span id="cb388-6"><a href="#cb388-6" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb388-7"><a href="#cb388-7" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb391"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb391-1"><a href="#cb391-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb391-2"><a href="#cb391-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[superscripts]{<span class="ex">markdown</span>}</span> +<span id="cb391-3"><a href="#cb391-3" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb391-4"><a href="#cb391-4" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb391-5"><a href="#cb391-5" aria-hidden="true" tabindex="-1"></a>2^10^ is 1024.</span> +<span id="cb391-6"><a href="#cb391-6" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb391-7"><a href="#cb391-7" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb389"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb389-1"><a href="#cb389-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb392"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb392-1"><a href="#cb392-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -6690,24 +6811,24 @@ contain the following text:</p> class="tex">T<sub>e</sub>X</span>t Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb390"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb390-1"><a href="#cb390-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> -<span id="cb390-2"><a href="#cb390-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span>[superscripts = yes]</span> -<span id="cb390-3"><a href="#cb390-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> -<span id="cb390-4"><a href="#cb390-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> -<span id="cb390-5"><a href="#cb390-5" aria-hidden="true" tabindex="-1"></a>2^10^ is 1024.</span> -<span id="cb390-6"><a href="#cb390-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> -<span id="cb390-7"><a href="#cb390-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> +<div class="sourceCode" id="cb393"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb393-1"><a href="#cb393-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> +<span id="cb393-2"><a href="#cb393-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span>[superscripts = yes]</span> +<span id="cb393-3"><a href="#cb393-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> +<span id="cb393-4"><a href="#cb393-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> +<span id="cb393-5"><a href="#cb393-5" aria-hidden="true" tabindex="-1"></a>2^10^ is 1024.</span> +<span id="cb393-6"><a href="#cb393-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> +<span id="cb393-7"><a href="#cb393-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb391"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb391-1"><a href="#cb391-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb394"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb394-1"><a href="#cb394-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> <p>2<sup>10</sup> is 1024.</p> </blockquote> -<h4 data-number="2.2.1.56" id="option-tableattributes"><span -class="header-section-number">2.2.1.56</span> Option +<h4 data-number="2.2.1.58" id="option-tableattributes"><span +class="header-section-number">2.2.1.58</span> Option <code>tableAttributes</code></h4> <dl> <dt><code>tableAttributes</code> (default value: @@ -6718,14 +6839,14 @@ class="header-section-number">2.2.1.56</span> Option <dd> <p>Enable the assignment of HTML attributes to <a href="#table-captions">table captions</a>.</p> -<div class="sourceCode" id="cb392"><pre -class="sourceCode md"><code class="sourceCode markdown"><span id="cb392-1"><a href="#cb392-1" aria-hidden="true" tabindex="-1"></a>| Right | Left | Default | Center |</span> -<span id="cb392-2"><a href="#cb392-2" aria-hidden="true" tabindex="-1"></a>|------:|:-----|---------|:------:|</span> -<span id="cb392-3"><a href="#cb392-3" aria-hidden="true" tabindex="-1"></a>| 12 | 12 | 12 | 12 |</span> -<span id="cb392-4"><a href="#cb392-4" aria-hidden="true" tabindex="-1"></a>| 123 | 123 | 123 | 123 |</span> -<span id="cb392-5"><a href="#cb392-5" aria-hidden="true" tabindex="-1"></a>| 1 | 1 | 1 | 1 |</span> -<span id="cb392-6"><a href="#cb392-6" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb392-7"><a href="#cb392-7" aria-hidden="true" tabindex="-1"></a> : Demonstration of pipe table syntax. {#example-table}</span></code></pre></div> +<div class="sourceCode" id="cb395"><pre +class="sourceCode md"><code class="sourceCode markdown"><span id="cb395-1"><a href="#cb395-1" aria-hidden="true" tabindex="-1"></a><span class="pp">|</span> Right <span class="pp">|</span> Left <span class="pp">|</span> Default <span class="pp">|</span> Center <span class="pp">|</span></span> +<span id="cb395-2"><a href="#cb395-2" aria-hidden="true" tabindex="-1"></a><span class="pp">|------:|:-----|---------|:------:|</span></span> +<span id="cb395-3"><a href="#cb395-3" aria-hidden="true" tabindex="-1"></a><span class="pp">|</span> 12 <span class="pp">|</span> 12 <span class="pp">|</span> 12 <span class="pp">|</span> 12 <span class="pp">|</span></span> +<span id="cb395-4"><a href="#cb395-4" aria-hidden="true" tabindex="-1"></a><span class="pp">|</span> 123 <span class="pp">|</span> 123 <span class="pp">|</span> 123 <span class="pp">|</span> 123 <span class="pp">|</span></span> +<span id="cb395-5"><a href="#cb395-5" aria-hidden="true" tabindex="-1"></a><span class="pp">|</span> 1 <span class="pp">|</span> 1 <span class="pp">|</span> 1 <span class="pp">|</span> 1 <span class="pp">|</span></span> +<span id="cb395-6"><a href="#cb395-6" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb395-7"><a href="#cb395-7" aria-hidden="true" tabindex="-1"></a> : Demonstration of pipe table syntax. {#example-table}</span></code></pre></div> </dd> </dl> </dd> @@ -6742,57 +6863,57 @@ class="sourceCode md"><code class="sourceCode markdown"><span id="cb392-1"><a hr class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb393"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb393-1"><a href="#cb393-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb393-2"><a href="#cb393-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[</span> -<span id="cb393-3"><a href="#cb393-3" aria-hidden="true" tabindex="-1"></a> pipeTables,</span> -<span id="cb393-4"><a href="#cb393-4" aria-hidden="true" tabindex="-1"></a> tableCaptions,</span> -<span id="cb393-5"><a href="#cb393-5" aria-hidden="true" tabindex="-1"></a> tableAttributes,</span> -<span id="cb393-6"><a href="#cb393-6" aria-hidden="true" tabindex="-1"></a> relativeReferences,</span> -<span id="cb393-7"><a href="#cb393-7" aria-hidden="true" tabindex="-1"></a>]{<span class="ex">markdown</span>}</span> -<span id="cb393-8"><a href="#cb393-8" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>{<span class="ex">expl3</span>}</span> -<span id="cb393-9"><a href="#cb393-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\ExplSyntaxOn</span></span> -<span id="cb393-10"><a href="#cb393-10" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> -<span id="cb393-11"><a href="#cb393-11" aria-hidden="true" tabindex="-1"></a> renderers = {</span> -<span id="cb393-12"><a href="#cb393-12" aria-hidden="true" tabindex="-1"></a> tableAttributeContextBegin = {</span> -<span id="cb393-13"><a href="#cb393-13" aria-hidden="true" tabindex="-1"></a> <span class="fu">\group</span>_begin:</span> -<span id="cb393-14"><a href="#cb393-14" aria-hidden="true" tabindex="-1"></a> <span class="fu">\markdownSetup</span>{</span> -<span id="cb393-15"><a href="#cb393-15" aria-hidden="true" tabindex="-1"></a> renderers = {</span> -<span id="cb393-16"><a href="#cb393-16" aria-hidden="true" tabindex="-1"></a> attributeIdentifier = {</span> -<span id="cb393-17"><a href="#cb393-17" aria-hidden="true" tabindex="-1"></a> <span class="fu">\markdownSetup</span>{</span> -<span id="cb393-18"><a href="#cb393-18" aria-hidden="true" tabindex="-1"></a> renderers = {</span> -<span id="cb393-19"><a href="#cb393-19" aria-hidden="true" tabindex="-1"></a> tableAttributeContextEnd = {</span> -<span id="cb393-20"><a href="#cb393-20" aria-hidden="true" tabindex="-1"></a> <span class="kw">\label</span>{<span class="ex">##1</span>}</span> -<span id="cb393-21"><a href="#cb393-21" aria-hidden="true" tabindex="-1"></a> <span class="fu">\group</span>_end:</span> -<span id="cb393-22"><a href="#cb393-22" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb393-23"><a href="#cb393-23" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb393-24"><a href="#cb393-24" aria-hidden="true" tabindex="-1"></a> }</span> -<span id="cb393-25"><a href="#cb393-25" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb393-26"><a href="#cb393-26" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb393-27"><a href="#cb393-27" aria-hidden="true" tabindex="-1"></a> }</span> -<span id="cb393-28"><a href="#cb393-28" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb393-29"><a href="#cb393-29" aria-hidden="true" tabindex="-1"></a> tableAttributeContextEnd = {</span> -<span id="cb393-30"><a href="#cb393-30" aria-hidden="true" tabindex="-1"></a> <span class="fu">\group</span>_end:</span> -<span id="cb393-31"><a href="#cb393-31" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb393-32"><a href="#cb393-32" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb393-33"><a href="#cb393-33" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb393-34"><a href="#cb393-34" aria-hidden="true" tabindex="-1"></a><span class="fu">\ExplSyntaxOff</span></span> -<span id="cb393-35"><a href="#cb393-35" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb393-36"><a href="#cb393-36" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb393-37"><a href="#cb393-37" aria-hidden="true" tabindex="-1"></a>See Table <#example-table>.</span> -<span id="cb393-38"><a href="#cb393-38" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb393-39"><a href="#cb393-39" aria-hidden="true" tabindex="-1"></a>| Right | Left | Default | Center |</span> -<span id="cb393-40"><a href="#cb393-40" aria-hidden="true" tabindex="-1"></a>|------:|:-----|---------|:------:|</span> -<span id="cb393-41"><a href="#cb393-41" aria-hidden="true" tabindex="-1"></a>| 12 | 12 | 12 | 12 |</span> -<span id="cb393-42"><a href="#cb393-42" aria-hidden="true" tabindex="-1"></a>| 123 | 123 | 123 | 123 |</span> -<span id="cb393-43"><a href="#cb393-43" aria-hidden="true" tabindex="-1"></a>| 1 | 1 | 1 | 1 |</span> -<span id="cb393-44"><a href="#cb393-44" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb393-45"><a href="#cb393-45" aria-hidden="true" tabindex="-1"></a> : Demonstration of pipe table syntax. {#example-table}</span> -<span id="cb393-46"><a href="#cb393-46" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb393-47"><a href="#cb393-47" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb396"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb396-1"><a href="#cb396-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb396-2"><a href="#cb396-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[</span> +<span id="cb396-3"><a href="#cb396-3" aria-hidden="true" tabindex="-1"></a> pipeTables,</span> +<span id="cb396-4"><a href="#cb396-4" aria-hidden="true" tabindex="-1"></a> tableCaptions,</span> +<span id="cb396-5"><a href="#cb396-5" aria-hidden="true" tabindex="-1"></a> tableAttributes,</span> +<span id="cb396-6"><a href="#cb396-6" aria-hidden="true" tabindex="-1"></a> relativeReferences,</span> +<span id="cb396-7"><a href="#cb396-7" aria-hidden="true" tabindex="-1"></a>]{<span class="ex">markdown</span>}</span> +<span id="cb396-8"><a href="#cb396-8" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>{<span class="ex">expl3</span>}</span> +<span id="cb396-9"><a href="#cb396-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\ExplSyntaxOn</span></span> +<span id="cb396-10"><a href="#cb396-10" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> +<span id="cb396-11"><a href="#cb396-11" aria-hidden="true" tabindex="-1"></a> renderers = {</span> +<span id="cb396-12"><a href="#cb396-12" aria-hidden="true" tabindex="-1"></a> tableAttributeContextBegin = {</span> +<span id="cb396-13"><a href="#cb396-13" aria-hidden="true" tabindex="-1"></a> <span class="fu">\group</span>_begin:</span> +<span id="cb396-14"><a href="#cb396-14" aria-hidden="true" tabindex="-1"></a> <span class="fu">\markdownSetup</span>{</span> +<span id="cb396-15"><a href="#cb396-15" aria-hidden="true" tabindex="-1"></a> renderers = {</span> +<span id="cb396-16"><a href="#cb396-16" aria-hidden="true" tabindex="-1"></a> attributeIdentifier = {</span> +<span id="cb396-17"><a href="#cb396-17" aria-hidden="true" tabindex="-1"></a> <span class="fu">\markdownSetup</span>{</span> +<span id="cb396-18"><a href="#cb396-18" aria-hidden="true" tabindex="-1"></a> renderers = {</span> +<span id="cb396-19"><a href="#cb396-19" aria-hidden="true" tabindex="-1"></a> tableAttributeContextEnd = {</span> +<span id="cb396-20"><a href="#cb396-20" aria-hidden="true" tabindex="-1"></a> <span class="kw">\label</span>{<span class="ex">##1</span>}</span> +<span id="cb396-21"><a href="#cb396-21" aria-hidden="true" tabindex="-1"></a> <span class="fu">\group</span>_end:</span> +<span id="cb396-22"><a href="#cb396-22" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb396-23"><a href="#cb396-23" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb396-24"><a href="#cb396-24" aria-hidden="true" tabindex="-1"></a> }</span> +<span id="cb396-25"><a href="#cb396-25" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb396-26"><a href="#cb396-26" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb396-27"><a href="#cb396-27" aria-hidden="true" tabindex="-1"></a> }</span> +<span id="cb396-28"><a href="#cb396-28" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb396-29"><a href="#cb396-29" aria-hidden="true" tabindex="-1"></a> tableAttributeContextEnd = {</span> +<span id="cb396-30"><a href="#cb396-30" aria-hidden="true" tabindex="-1"></a> <span class="fu">\group</span>_end:</span> +<span id="cb396-31"><a href="#cb396-31" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb396-32"><a href="#cb396-32" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb396-33"><a href="#cb396-33" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb396-34"><a href="#cb396-34" aria-hidden="true" tabindex="-1"></a><span class="fu">\ExplSyntaxOff</span></span> +<span id="cb396-35"><a href="#cb396-35" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb396-36"><a href="#cb396-36" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb396-37"><a href="#cb396-37" aria-hidden="true" tabindex="-1"></a>See Table <#example-table>.</span> +<span id="cb396-38"><a href="#cb396-38" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb396-39"><a href="#cb396-39" aria-hidden="true" tabindex="-1"></a>| Right | Left | Default | Center |</span> +<span id="cb396-40"><a href="#cb396-40" aria-hidden="true" tabindex="-1"></a>|------:|:-----|---------|:------:|</span> +<span id="cb396-41"><a href="#cb396-41" aria-hidden="true" tabindex="-1"></a>| 12 | 12 | 12 | 12 |</span> +<span id="cb396-42"><a href="#cb396-42" aria-hidden="true" tabindex="-1"></a>| 123 | 123 | 123 | 123 |</span> +<span id="cb396-43"><a href="#cb396-43" aria-hidden="true" tabindex="-1"></a>| 1 | 1 | 1 | 1 |</span> +<span id="cb396-44"><a href="#cb396-44" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb396-45"><a href="#cb396-45" aria-hidden="true" tabindex="-1"></a> : Demonstration of pipe table syntax. {#example-table}</span> +<span id="cb396-46"><a href="#cb396-46" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb396-47"><a href="#cb396-47" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb394"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb394-1"><a href="#cb394-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb397"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb397-1"><a href="#cb397-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -6829,8 +6950,8 @@ contain the following text:</p> </tbody> </table> </blockquote> -<h4 data-number="2.2.1.57" id="table-captions"><span -class="header-section-number">2.2.1.57</span> Option +<h4 data-number="2.2.1.59" id="table-captions"><span +class="header-section-number">2.2.1.59</span> Option <code>tableCaptions</code></h4> <dl> <dt><code>tableCaptions</code> (default value: <code>false</code>)</dt> @@ -6842,14 +6963,14 @@ class="header-section-number">2.2.1.57</span> Option href="https://pandoc.org/MANUAL.html#extension-table_captions">table caption syntax extension</a> for <a href="#pipe-tables">pipe tables</a>.</p> -<div class="sourceCode" id="cb395"><pre -class="sourceCode md"><code class="sourceCode markdown"><span id="cb395-1"><a href="#cb395-1" aria-hidden="true" tabindex="-1"></a>| Right | Left | Default | Center |</span> -<span id="cb395-2"><a href="#cb395-2" aria-hidden="true" tabindex="-1"></a>|------:|:-----|---------|:------:|</span> -<span id="cb395-3"><a href="#cb395-3" aria-hidden="true" tabindex="-1"></a>| 12 | 12 | 12 | 12 |</span> -<span id="cb395-4"><a href="#cb395-4" aria-hidden="true" tabindex="-1"></a>| 123 | 123 | 123 | 123 |</span> -<span id="cb395-5"><a href="#cb395-5" aria-hidden="true" tabindex="-1"></a>| 1 | 1 | 1 | 1 |</span> -<span id="cb395-6"><a href="#cb395-6" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb395-7"><a href="#cb395-7" aria-hidden="true" tabindex="-1"></a> : Demonstration of pipe table syntax.</span></code></pre></div> +<div class="sourceCode" id="cb398"><pre +class="sourceCode md"><code class="sourceCode markdown"><span id="cb398-1"><a href="#cb398-1" aria-hidden="true" tabindex="-1"></a><span class="pp">|</span> Right <span class="pp">|</span> Left <span class="pp">|</span> Default <span class="pp">|</span> Center <span class="pp">|</span></span> +<span id="cb398-2"><a href="#cb398-2" aria-hidden="true" tabindex="-1"></a><span class="pp">|------:|:-----|---------|:------:|</span></span> +<span id="cb398-3"><a href="#cb398-3" aria-hidden="true" tabindex="-1"></a><span class="pp">|</span> 12 <span class="pp">|</span> 12 <span class="pp">|</span> 12 <span class="pp">|</span> 12 <span class="pp">|</span></span> +<span id="cb398-4"><a href="#cb398-4" aria-hidden="true" tabindex="-1"></a><span class="pp">|</span> 123 <span class="pp">|</span> 123 <span class="pp">|</span> 123 <span class="pp">|</span> 123 <span class="pp">|</span></span> +<span id="cb398-5"><a href="#cb398-5" aria-hidden="true" tabindex="-1"></a><span class="pp">|</span> 1 <span class="pp">|</span> 1 <span class="pp">|</span> 1 <span class="pp">|</span> 1 <span class="pp">|</span></span> +<span id="cb398-6"><a href="#cb398-6" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb398-7"><a href="#cb398-7" aria-hidden="true" tabindex="-1"></a> : Demonstration of pipe table syntax.</span></code></pre></div> </dd> </dl> </dd> @@ -6866,23 +6987,23 @@ class="sourceCode md"><code class="sourceCode markdown"><span id="cb395-1"><a hr class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb396"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb396-1"><a href="#cb396-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb396-2"><a href="#cb396-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[pipeTables, tableCaptions]{<span class="ex">markdown</span>}</span> -<span id="cb396-3"><a href="#cb396-3" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb396-4"><a href="#cb396-4" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb396-5"><a href="#cb396-5" aria-hidden="true" tabindex="-1"></a>| Right | Left | Default | Center |</span> -<span id="cb396-6"><a href="#cb396-6" aria-hidden="true" tabindex="-1"></a>|------:|:-----|---------|:------:|</span> -<span id="cb396-7"><a href="#cb396-7" aria-hidden="true" tabindex="-1"></a>| 12 | 12 | 12 | 12 |</span> -<span id="cb396-8"><a href="#cb396-8" aria-hidden="true" tabindex="-1"></a>| 123 | 123 | 123 | 123 |</span> -<span id="cb396-9"><a href="#cb396-9" aria-hidden="true" tabindex="-1"></a>| 1 | 1 | 1 | 1 |</span> -<span id="cb396-10"><a href="#cb396-10" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb396-11"><a href="#cb396-11" aria-hidden="true" tabindex="-1"></a>: Demonstration of pipe table syntax.</span> -<span id="cb396-12"><a href="#cb396-12" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb396-13"><a href="#cb396-13" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb399"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb399-1"><a href="#cb399-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb399-2"><a href="#cb399-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[pipeTables, tableCaptions]{<span class="ex">markdown</span>}</span> +<span id="cb399-3"><a href="#cb399-3" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb399-4"><a href="#cb399-4" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb399-5"><a href="#cb399-5" aria-hidden="true" tabindex="-1"></a>| Right | Left | Default | Center |</span> +<span id="cb399-6"><a href="#cb399-6" aria-hidden="true" tabindex="-1"></a>|------:|:-----|---------|:------:|</span> +<span id="cb399-7"><a href="#cb399-7" aria-hidden="true" tabindex="-1"></a>| 12 | 12 | 12 | 12 |</span> +<span id="cb399-8"><a href="#cb399-8" aria-hidden="true" tabindex="-1"></a>| 123 | 123 | 123 | 123 |</span> +<span id="cb399-9"><a href="#cb399-9" aria-hidden="true" tabindex="-1"></a>| 1 | 1 | 1 | 1 |</span> +<span id="cb399-10"><a href="#cb399-10" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb399-11"><a href="#cb399-11" aria-hidden="true" tabindex="-1"></a>: Demonstration of pipe table syntax.</span> +<span id="cb399-12"><a href="#cb399-12" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb399-13"><a href="#cb399-13" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb397"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb397-1"><a href="#cb397-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb400"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb400-1"><a href="#cb400-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -6922,27 +7043,27 @@ contain the following text:</p> class="tex">T<sub>e</sub>X</span>t Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb398"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb398-1"><a href="#cb398-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> -<span id="cb398-2"><a href="#cb398-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span></span> -<span id="cb398-3"><a href="#cb398-3" aria-hidden="true" tabindex="-1"></a> [</span> -<span id="cb398-4"><a href="#cb398-4" aria-hidden="true" tabindex="-1"></a> pipeTables = yes,</span> -<span id="cb398-5"><a href="#cb398-5" aria-hidden="true" tabindex="-1"></a> tableCaptions = yes,</span> -<span id="cb398-6"><a href="#cb398-6" aria-hidden="true" tabindex="-1"></a> ]</span> -<span id="cb398-7"><a href="#cb398-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> -<span id="cb398-8"><a href="#cb398-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> -<span id="cb398-9"><a href="#cb398-9" aria-hidden="true" tabindex="-1"></a>| Right | Left | Default | Center |</span> -<span id="cb398-10"><a href="#cb398-10" aria-hidden="true" tabindex="-1"></a>|------:|:-----|---------|:------:|</span> -<span id="cb398-11"><a href="#cb398-11" aria-hidden="true" tabindex="-1"></a>| 12 | 12 | 12 | 12 |</span> -<span id="cb398-12"><a href="#cb398-12" aria-hidden="true" tabindex="-1"></a>| 123 | 123 | 123 | 123 |</span> -<span id="cb398-13"><a href="#cb398-13" aria-hidden="true" tabindex="-1"></a>| 1 | 1 | 1 | 1 |</span> -<span id="cb398-14"><a href="#cb398-14" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb398-15"><a href="#cb398-15" aria-hidden="true" tabindex="-1"></a>: Demonstration of pipe table syntax.</span> -<span id="cb398-16"><a href="#cb398-16" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> -<span id="cb398-17"><a href="#cb398-17" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> +<div class="sourceCode" id="cb401"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb401-1"><a href="#cb401-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> +<span id="cb401-2"><a href="#cb401-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span></span> +<span id="cb401-3"><a href="#cb401-3" aria-hidden="true" tabindex="-1"></a> [</span> +<span id="cb401-4"><a href="#cb401-4" aria-hidden="true" tabindex="-1"></a> pipeTables = yes,</span> +<span id="cb401-5"><a href="#cb401-5" aria-hidden="true" tabindex="-1"></a> tableCaptions = yes,</span> +<span id="cb401-6"><a href="#cb401-6" aria-hidden="true" tabindex="-1"></a> ]</span> +<span id="cb401-7"><a href="#cb401-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> +<span id="cb401-8"><a href="#cb401-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> +<span id="cb401-9"><a href="#cb401-9" aria-hidden="true" tabindex="-1"></a>| Right | Left | Default | Center |</span> +<span id="cb401-10"><a href="#cb401-10" aria-hidden="true" tabindex="-1"></a>|------:|:-----|---------|:------:|</span> +<span id="cb401-11"><a href="#cb401-11" aria-hidden="true" tabindex="-1"></a>| 12 | 12 | 12 | 12 |</span> +<span id="cb401-12"><a href="#cb401-12" aria-hidden="true" tabindex="-1"></a>| 123 | 123 | 123 | 123 |</span> +<span id="cb401-13"><a href="#cb401-13" aria-hidden="true" tabindex="-1"></a>| 1 | 1 | 1 | 1 |</span> +<span id="cb401-14"><a href="#cb401-14" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb401-15"><a href="#cb401-15" aria-hidden="true" tabindex="-1"></a>: Demonstration of pipe table syntax.</span> +<span id="cb401-16"><a href="#cb401-16" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> +<span id="cb401-17"><a href="#cb401-17" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb399"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb399-1"><a href="#cb399-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb402"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb402-1"><a href="#cb402-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -6978,8 +7099,8 @@ contain the following text:</p> </tbody> </table> </blockquote> -<h4 data-number="2.2.1.58" id="option-tasklists"><span -class="header-section-number">2.2.1.58</span> Option +<h4 data-number="2.2.1.60" id="option-tasklists"><span +class="header-section-number">2.2.1.60</span> Option <code>taskLists</code></h4> <dl> <dt><code>taskLists</code> (default value: <code>false</code>)</dt> @@ -6990,10 +7111,10 @@ class="header-section-number">2.2.1.58</span> Option <p>Enable the Pandoc <a href="https://pandoc.org/MANUAL.html#extension-task_lists">task list syntax extension</a>:</p> -<div class="sourceCode" id="cb400"><pre -class="sourceCode md"><code class="sourceCode markdown"><span id="cb400-1"><a href="#cb400-1" aria-hidden="true" tabindex="-1"></a><span class="ss">- </span><span class="va">[ ]</span> an unticked task list item</span> -<span id="cb400-2"><a href="#cb400-2" aria-hidden="true" tabindex="-1"></a><span class="ss">- </span><span class="co">[</span><span class="ot">/</span><span class="co">]</span> a half-checked task list item</span> -<span id="cb400-3"><a href="#cb400-3" aria-hidden="true" tabindex="-1"></a><span class="ss">- </span><span class="co">[</span><span class="ot">X</span><span class="co">]</span> a ticked task list item</span></code></pre></div> +<div class="sourceCode" id="cb403"><pre +class="sourceCode md"><code class="sourceCode markdown"><span id="cb403-1"><a href="#cb403-1" aria-hidden="true" tabindex="-1"></a><span class="ss">- </span><span class="va">[ ]</span> an unticked task list item</span> +<span id="cb403-2"><a href="#cb403-2" aria-hidden="true" tabindex="-1"></a><span class="ss">- </span><span class="co">[</span><span class="ot">/</span><span class="co">]</span> a half-checked task list item</span> +<span id="cb403-3"><a href="#cb403-3" aria-hidden="true" tabindex="-1"></a><span class="ss">- </span><span class="co">[</span><span class="ot">X</span><span class="co">]</span> a ticked task list item</span></code></pre></div> </dd> </dl> </dd> @@ -7010,26 +7131,26 @@ class="sourceCode md"><code class="sourceCode markdown"><span id="cb400-1"><a hr class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb401"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb401-1"><a href="#cb401-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb401-2"><a href="#cb401-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[taskLists]{<span class="ex">markdown</span>}</span> -<span id="cb401-3"><a href="#cb401-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> -<span id="cb401-4"><a href="#cb401-4" aria-hidden="true" tabindex="-1"></a> renderers = {</span> -<span id="cb401-5"><a href="#cb401-5" aria-hidden="true" tabindex="-1"></a> untickedBox = No,</span> -<span id="cb401-6"><a href="#cb401-6" aria-hidden="true" tabindex="-1"></a> halfTickedBox = Maybe,</span> -<span id="cb401-7"><a href="#cb401-7" aria-hidden="true" tabindex="-1"></a> tickedBox = Yes,</span> -<span id="cb401-8"><a href="#cb401-8" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb401-9"><a href="#cb401-9" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb401-10"><a href="#cb401-10" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb401-11"><a href="#cb401-11" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb401-12"><a href="#cb401-12" aria-hidden="true" tabindex="-1"></a>- [ ] you can't.</span> -<span id="cb401-13"><a href="#cb401-13" aria-hidden="true" tabindex="-1"></a>- [/] I can?</span> -<span id="cb401-14"><a href="#cb401-14" aria-hidden="true" tabindex="-1"></a>- [X] I can!</span> -<span id="cb401-15"><a href="#cb401-15" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb401-16"><a href="#cb401-16" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb404"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb404-1"><a href="#cb404-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb404-2"><a href="#cb404-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[taskLists]{<span class="ex">markdown</span>}</span> +<span id="cb404-3"><a href="#cb404-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> +<span id="cb404-4"><a href="#cb404-4" aria-hidden="true" tabindex="-1"></a> renderers = {</span> +<span id="cb404-5"><a href="#cb404-5" aria-hidden="true" tabindex="-1"></a> untickedBox = No,</span> +<span id="cb404-6"><a href="#cb404-6" aria-hidden="true" tabindex="-1"></a> halfTickedBox = Maybe,</span> +<span id="cb404-7"><a href="#cb404-7" aria-hidden="true" tabindex="-1"></a> tickedBox = Yes,</span> +<span id="cb404-8"><a href="#cb404-8" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb404-9"><a href="#cb404-9" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb404-10"><a href="#cb404-10" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb404-11"><a href="#cb404-11" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb404-12"><a href="#cb404-12" aria-hidden="true" tabindex="-1"></a>- [ ] you can't.</span> +<span id="cb404-13"><a href="#cb404-13" aria-hidden="true" tabindex="-1"></a>- [/] I can?</span> +<span id="cb404-14"><a href="#cb404-14" aria-hidden="true" tabindex="-1"></a>- [X] I can!</span> +<span id="cb404-15"><a href="#cb404-15" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb404-16"><a href="#cb404-16" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb402"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb402-1"><a href="#cb402-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb405"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb405-1"><a href="#cb405-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -7043,22 +7164,22 @@ contain the following text:</p> class="tex">T<sub>e</sub>X</span>t Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb403"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb403-1"><a href="#cb403-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> -<span id="cb403-2"><a href="#cb403-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span>[taskLists = yes]</span> -<span id="cb403-3"><a href="#cb403-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererUntickedBox</span>{No}</span> -<span id="cb403-4"><a href="#cb403-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererHalftickedBox</span>{Maybe}</span> -<span id="cb403-5"><a href="#cb403-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererTickedBox</span>{Yes}</span> -<span id="cb403-6"><a href="#cb403-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> -<span id="cb403-7"><a href="#cb403-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> -<span id="cb403-8"><a href="#cb403-8" aria-hidden="true" tabindex="-1"></a>- [ ] you can't.</span> -<span id="cb403-9"><a href="#cb403-9" aria-hidden="true" tabindex="-1"></a>- [/] I can?</span> -<span id="cb403-10"><a href="#cb403-10" aria-hidden="true" tabindex="-1"></a>- [X] I can!</span> -<span id="cb403-11"><a href="#cb403-11" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> -<span id="cb403-12"><a href="#cb403-12" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> +<div class="sourceCode" id="cb406"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb406-1"><a href="#cb406-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> +<span id="cb406-2"><a href="#cb406-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span>[taskLists = yes]</span> +<span id="cb406-3"><a href="#cb406-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererUntickedBox</span>{No}</span> +<span id="cb406-4"><a href="#cb406-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererHalftickedBox</span>{Maybe}</span> +<span id="cb406-5"><a href="#cb406-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererTickedBox</span>{Yes}</span> +<span id="cb406-6"><a href="#cb406-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> +<span id="cb406-7"><a href="#cb406-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> +<span id="cb406-8"><a href="#cb406-8" aria-hidden="true" tabindex="-1"></a>- [ ] you can't.</span> +<span id="cb406-9"><a href="#cb406-9" aria-hidden="true" tabindex="-1"></a>- [/] I can?</span> +<span id="cb406-10"><a href="#cb406-10" aria-hidden="true" tabindex="-1"></a>- [X] I can!</span> +<span id="cb406-11"><a href="#cb406-11" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> +<span id="cb406-12"><a href="#cb406-12" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb404"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb404-1"><a href="#cb404-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb407"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb407-1"><a href="#cb407-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -7068,8 +7189,8 @@ contain the following text:</p> <li>Yes I can!</li> </ul> </blockquote> -<h4 data-number="2.2.1.59" id="option-texcomments"><span -class="header-section-number">2.2.1.59</span> Option +<h4 data-number="2.2.1.61" id="option-texcomments"><span +class="header-section-number">2.2.1.61</span> Option <code>texComments</code></h4> <dl> <dt><code>texComments</code> (default value: <code>false</code>)</dt> @@ -7078,16 +7199,16 @@ class="header-section-number">2.2.1.59</span> Option <dt>true</dt> <dd> <p>Strip <span class="tex">T<sub>e</sub>X</span>-style comments.</p> -<div class="sourceCode" id="cb405"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb405-1"><a href="#cb405-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb405-2"><a href="#cb405-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[texComments]{<span class="ex">markdown</span>}</span> -<span id="cb405-3"><a href="#cb405-3" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb405-4"><a href="#cb405-4" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb405-5"><a href="#cb405-5" aria-hidden="true" tabindex="-1"></a>Hel<span class="co">% this is a comment</span></span> -<span id="cb405-6"><a href="#cb405-6" aria-hidden="true" tabindex="-1"></a> lo *world*!</span> -<span id="cb405-7"><a href="#cb405-7" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb405-8"><a href="#cb405-8" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> -<p>Always enabled when <strong><code>hybrid</code></strong> is +<div class="sourceCode" id="cb408"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb408-1"><a href="#cb408-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb408-2"><a href="#cb408-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[texComments]{<span class="ex">markdown</span>}</span> +<span id="cb408-3"><a href="#cb408-3" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb408-4"><a href="#cb408-4" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb408-5"><a href="#cb408-5" aria-hidden="true" tabindex="-1"></a>Hel<span class="co">% this is a comment</span></span> +<span id="cb408-6"><a href="#cb408-6" aria-hidden="true" tabindex="-1"></a> lo *world*!</span> +<span id="cb408-7"><a href="#cb408-7" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb408-8"><a href="#cb408-8" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<p>Always enabled when <code><strong>hybrid</strong></code> is enabled.</p> </dd> </dl> @@ -7106,57 +7227,57 @@ comments.</p> class="tex">T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb406"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb406-1"><a href="#cb406-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> -<span id="cb406-2"><a href="#cb406-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionTexComments</span>{true}</span> -<span id="cb406-3"><a href="#cb406-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> -<span id="cb406-4"><a href="#cb406-4" aria-hidden="true" tabindex="-1"></a>Hel<span class="co">% this is a comment</span></span> -<span id="cb406-5"><a href="#cb406-5" aria-hidden="true" tabindex="-1"></a> lo *world*!</span> -<span id="cb406-6"><a href="#cb406-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> -<span id="cb406-7"><a href="#cb406-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> +<div class="sourceCode" id="cb409"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb409-1"><a href="#cb409-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> +<span id="cb409-2"><a href="#cb409-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionTexComments</span>{true}</span> +<span id="cb409-3"><a href="#cb409-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> +<span id="cb409-4"><a href="#cb409-4" aria-hidden="true" tabindex="-1"></a>Hel<span class="co">% this is a comment</span></span> +<span id="cb409-5"><a href="#cb409-5" aria-hidden="true" tabindex="-1"></a> lo *world*!</span> +<span id="cb409-6"><a href="#cb409-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> +<span id="cb409-7"><a href="#cb409-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb407"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb407-1"><a href="#cb407-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb410"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb410-1"><a href="#cb410-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the text “Hello <em>world</em>!”</p> <h5 class="unnumbered" id="latex-example-48"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb408"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb408-1"><a href="#cb408-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb408-2"><a href="#cb408-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[texComments]{<span class="ex">markdown</span>}</span> -<span id="cb408-3"><a href="#cb408-3" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb408-4"><a href="#cb408-4" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb408-5"><a href="#cb408-5" aria-hidden="true" tabindex="-1"></a>Hel<span class="co">% this is a comment</span></span> -<span id="cb408-6"><a href="#cb408-6" aria-hidden="true" tabindex="-1"></a> lo *world*!</span> -<span id="cb408-7"><a href="#cb408-7" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb408-8"><a href="#cb408-8" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb411"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb411-1"><a href="#cb411-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb411-2"><a href="#cb411-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[texComments]{<span class="ex">markdown</span>}</span> +<span id="cb411-3"><a href="#cb411-3" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb411-4"><a href="#cb411-4" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb411-5"><a href="#cb411-5" aria-hidden="true" tabindex="-1"></a>Hel<span class="co">% this is a comment</span></span> +<span id="cb411-6"><a href="#cb411-6" aria-hidden="true" tabindex="-1"></a> lo *world*!</span> +<span id="cb411-7"><a href="#cb411-7" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb411-8"><a href="#cb411-8" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb409"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb409-1"><a href="#cb409-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb412"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb412-1"><a href="#cb412-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the text “Hello <em>world</em>!”</p> <h5 class="unnumbered" id="context-example-33">Con<span class="tex">T<sub>e</sub>X</span>t Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb410"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb410-1"><a href="#cb410-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> -<span id="cb410-2"><a href="#cb410-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span>[texComments = yes]</span> -<span id="cb410-3"><a href="#cb410-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> -<span id="cb410-4"><a href="#cb410-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> -<span id="cb410-5"><a href="#cb410-5" aria-hidden="true" tabindex="-1"></a>Hel<span class="co">% this is a comment</span></span> -<span id="cb410-6"><a href="#cb410-6" aria-hidden="true" tabindex="-1"></a> lo *world*!</span> -<span id="cb410-7"><a href="#cb410-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> -<span id="cb410-8"><a href="#cb410-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> +<div class="sourceCode" id="cb413"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb413-1"><a href="#cb413-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> +<span id="cb413-2"><a href="#cb413-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span>[texComments = yes]</span> +<span id="cb413-3"><a href="#cb413-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> +<span id="cb413-4"><a href="#cb413-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> +<span id="cb413-5"><a href="#cb413-5" aria-hidden="true" tabindex="-1"></a>Hel<span class="co">% this is a comment</span></span> +<span id="cb413-6"><a href="#cb413-6" aria-hidden="true" tabindex="-1"></a> lo *world*!</span> +<span id="cb413-7"><a href="#cb413-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> +<span id="cb413-8"><a href="#cb413-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb411"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb411-1"><a href="#cb411-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb414"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb414-1"><a href="#cb414-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the text “Hello <em>world</em>!”</p> -<h4 data-number="2.2.1.60" id="option-texmathdollars"><span -class="header-section-number">2.2.1.60</span> Option +<h4 data-number="2.2.1.62" id="option-texmathdollars"><span +class="header-section-number">2.2.1.62</span> Option <code>texMathDollars</code></h4> <dl> <dt><code>texMathDollars</code> (default value: <code>false</code>)</dt> @@ -7167,10 +7288,10 @@ class="header-section-number">2.2.1.60</span> Option <p>Enable the Pandoc <a href="https://pandoc.org/MANUAL.html#extension-tex_math_dollars">dollar math syntax extension</a>:</p> -<div class="sourceCode" id="cb412"><pre -class="sourceCode md"><code class="sourceCode markdown"><span id="cb412-1"><a href="#cb412-1" aria-hidden="true" tabindex="-1"></a><span class="an">inline math:</span><span class="co"> $E=mc^2$</span></span> -<span id="cb412-2"><a href="#cb412-2" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb412-3"><a href="#cb412-3" aria-hidden="true" tabindex="-1"></a>display math: $$E=mc^2$$</span></code></pre></div> +<div class="sourceCode" id="cb415"><pre +class="sourceCode md"><code class="sourceCode markdown"><span id="cb415-1"><a href="#cb415-1" aria-hidden="true" tabindex="-1"></a><span class="an">inline math:</span><span class="co"> $E=mc^2$</span></span> +<span id="cb415-2"><a href="#cb415-2" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb415-3"><a href="#cb415-3" aria-hidden="true" tabindex="-1"></a>display math: $$E=mc^2$$</span></code></pre></div> </dd> </dl> </dd> @@ -7187,25 +7308,25 @@ class="sourceCode md"><code class="sourceCode markdown"><span id="cb412-1"><a hr Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb413"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb413-1"><a href="#cb413-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> -<span id="cb413-2"><a href="#cb413-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> lmfonts</span> -<span id="cb413-3"><a href="#cb413-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\begingroup</span></span> -<span id="cb413-4"><a href="#cb413-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\catcode</span>`<span class="fu">\%</span>=12</span> -<span id="cb413-5"><a href="#cb413-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\catcode</span>`<span class="fu">\#</span>=12</span> -<span id="cb413-6"><a href="#cb413-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\directlua</span>{</span> -<span id="cb413-7"><a href="#cb413-7" aria-hidden="true" tabindex="-1"></a> local markdown = require("markdown")</span> -<span id="cb413-8"><a href="#cb413-8" aria-hidden="true" tabindex="-1"></a> local newline = [[^^J^^J]]</span> -<span id="cb413-9"><a href="#cb413-9" aria-hidden="true" tabindex="-1"></a> local convert = markdown.new({texMathDollars = true})</span> -<span id="cb413-10"><a href="#cb413-10" aria-hidden="true" tabindex="-1"></a> local input =</span> -<span id="cb413-11"><a href="#cb413-11" aria-hidden="true" tabindex="-1"></a> [[<span class="ss">$E=mc^2$</span>]] .. newline .. newline ..</span> -<span id="cb413-12"><a href="#cb413-12" aria-hidden="true" tabindex="-1"></a> [[<span class="ss">$$</span><span class="sc">\hat</span><span class="ss">{f} </span><span class="sc">\left</span><span class="ss"> ( </span><span class="sc">\xi</span><span class="ss"> </span><span class="sc">\right</span><span class="ss"> )= </span><span class="sc">\int</span><span class="ss">_{-</span><span class="sc">\infty</span><span class="ss">}^{</span><span class="sc">\infty</span><span class="ss">} f</span><span class="sc">\left</span><span class="ss"> ( x </span><span class="sc">\right</span><span class="ss"> ) e^{-i2</span><span class="sc">\pi</span><span class="ss"> </span><span class="sc">\xi</span><span class="ss"> x} dx$$</span>]]</span> -<span id="cb413-13"><a href="#cb413-13" aria-hidden="true" tabindex="-1"></a> tex.sprint(convert(input)) }</span> -<span id="cb413-14"><a href="#cb413-14" aria-hidden="true" tabindex="-1"></a><span class="fu">\endgroup</span></span> -<span id="cb413-15"><a href="#cb413-15" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> +<div class="sourceCode" id="cb416"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb416-1"><a href="#cb416-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> +<span id="cb416-2"><a href="#cb416-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> lmfonts</span> +<span id="cb416-3"><a href="#cb416-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\begingroup</span></span> +<span id="cb416-4"><a href="#cb416-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\catcode</span>`<span class="fu">\%</span>=12</span> +<span id="cb416-5"><a href="#cb416-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\catcode</span>`<span class="fu">\#</span>=12</span> +<span id="cb416-6"><a href="#cb416-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\directlua</span>{</span> +<span id="cb416-7"><a href="#cb416-7" aria-hidden="true" tabindex="-1"></a> local markdown = require("markdown")</span> +<span id="cb416-8"><a href="#cb416-8" aria-hidden="true" tabindex="-1"></a> local newline = [[^^J^^J]]</span> +<span id="cb416-9"><a href="#cb416-9" aria-hidden="true" tabindex="-1"></a> local convert = markdown.new({texMathDollars = true})</span> +<span id="cb416-10"><a href="#cb416-10" aria-hidden="true" tabindex="-1"></a> local input =</span> +<span id="cb416-11"><a href="#cb416-11" aria-hidden="true" tabindex="-1"></a> [[<span class="ss">$E=mc^2$</span>]] .. newline .. newline ..</span> +<span id="cb416-12"><a href="#cb416-12" aria-hidden="true" tabindex="-1"></a> [[<span class="ss">$$</span><span class="sc">\hat</span><span class="ss">{f} </span><span class="sc">\left</span><span class="ss"> ( </span><span class="sc">\xi</span><span class="ss"> </span><span class="sc">\right</span><span class="ss"> )= </span><span class="sc">\int</span><span class="ss">_{-</span><span class="sc">\infty</span><span class="ss">}^{</span><span class="sc">\infty</span><span class="ss">} f</span><span class="sc">\left</span><span class="ss"> ( x </span><span class="sc">\right</span><span class="ss"> ) e^{-i2</span><span class="sc">\pi</span><span class="ss"> </span><span class="sc">\xi</span><span class="ss"> x} dx$$</span>]]</span> +<span id="cb416-13"><a href="#cb416-13" aria-hidden="true" tabindex="-1"></a> tex.sprint(convert(input)) }</span> +<span id="cb416-14"><a href="#cb416-14" aria-hidden="true" tabindex="-1"></a><span class="fu">\endgroup</span></span> +<span id="cb416-15"><a href="#cb416-15" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> <p>Then, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb414"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb414-1"><a href="#cb414-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb417"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb417-1"><a href="#cb417-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -7217,28 +7338,28 @@ class="math display"><em>f̂</em>(<em>ξ</em>) = ∫<sub>−∞</sub><sup> <h5 class="unnumbered" id="lua-cli-example-12">Lua CLI Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb415"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb415-1"><a href="#cb415-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> -<span id="cb415-2"><a href="#cb415-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> lmfonts</span> -<span id="cb415-3"><a href="#cb415-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\begingroup</span></span> -<span id="cb415-4"><a href="#cb415-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\catcode</span>`<span class="fu">\%</span>=12</span> -<span id="cb415-5"><a href="#cb415-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\catcode</span>`<span class="fu">\#</span>=12</span> -<span id="cb415-6"><a href="#cb415-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> optionfalse</span> -<span id="cb415-7"><a href="#cb415-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\par</span></span> -<span id="cb415-8"><a href="#cb415-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> optiontrue</span> -<span id="cb415-9"><a href="#cb415-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\endgroup</span></span> -<span id="cb415-10"><a href="#cb415-10" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> +<div class="sourceCode" id="cb418"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb418-1"><a href="#cb418-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> +<span id="cb418-2"><a href="#cb418-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> lmfonts</span> +<span id="cb418-3"><a href="#cb418-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\begingroup</span></span> +<span id="cb418-4"><a href="#cb418-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\catcode</span>`<span class="fu">\%</span>=12</span> +<span id="cb418-5"><a href="#cb418-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\catcode</span>`<span class="fu">\#</span>=12</span> +<span id="cb418-6"><a href="#cb418-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> optionfalse</span> +<span id="cb418-7"><a href="#cb418-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\par</span></span> +<span id="cb418-8"><a href="#cb418-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> optiontrue</span> +<span id="cb418-9"><a href="#cb418-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\endgroup</span></span> +<span id="cb418-10"><a href="#cb418-10" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> <p>Using a text editor, create a text document named <code>content.md</code> with the following content:</p> -<div class="sourceCode" id="cb416"><pre -class="sourceCode md"><code class="sourceCode markdown"><span id="cb416-1"><a href="#cb416-1" aria-hidden="true" tabindex="-1"></a>$E=mc^2$</span> -<span id="cb416-2"><a href="#cb416-2" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb416-3"><a href="#cb416-3" aria-hidden="true" tabindex="-1"></a>$$\hat{f} \left ( \xi \right )= \int_{-\infty}^{\infty} f\left ( x \right ) e^{-i2\pi \xi x} dx$$</span></code></pre></div> +<div class="sourceCode" id="cb419"><pre +class="sourceCode md"><code class="sourceCode markdown"><span id="cb419-1"><a href="#cb419-1" aria-hidden="true" tabindex="-1"></a>$E=mc^2$</span> +<span id="cb419-2"><a href="#cb419-2" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb419-3"><a href="#cb419-3" aria-hidden="true" tabindex="-1"></a>$$\hat{f} \left ( \xi \right )= \int_{-\infty}^{\infty} f\left ( x \right ) e^{-i2\pi \xi x} dx$$</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb417"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb417-1"><a href="#cb417-1" aria-hidden="true" tabindex="-1"></a><span class="ex">texlua</span> ⟨CLI pathname⟩ <span class="at">--</span> content.md optionfalse.tex</span> -<span id="cb417-2"><a href="#cb417-2" aria-hidden="true" tabindex="-1"></a><span class="ex">texlua</span> ⟨CLI pathname⟩ texMathDollars=true <span class="at">--</span> content.md optiontrue.tex</span> -<span id="cb417-3"><a href="#cb417-3" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb420"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb420-1"><a href="#cb420-1" aria-hidden="true" tabindex="-1"></a><span class="ex">texlua</span> ⟨CLI pathname⟩ <span class="at">--</span> content.md optionfalse.tex</span> +<span id="cb420-2"><a href="#cb420-2" aria-hidden="true" tabindex="-1"></a><span class="ex">texlua</span> ⟨CLI pathname⟩ texMathDollars=true <span class="at">--</span> content.md optiontrue.tex</span> +<span id="cb420-3"><a href="#cb420-3" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> <p>where ⟨<em>CLI pathname</em>⟩ corresponds to the location of the Lua CLI script file, such as <code>~/texmf/scripts/markdown/markdown-cli.lua</code> on UN*X systems @@ -7263,20 +7384,20 @@ class="math display"><em>f̂</em>(<em>ξ</em>) = ∫<sub>−∞</sub><sup> class="tex">T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb418"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb418-1"><a href="#cb418-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> -<span id="cb418-2"><a href="#cb418-2" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb418-3"><a href="#cb418-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionTexMathDollars</span>{true}</span> -<span id="cb418-4"><a href="#cb418-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> -<span id="cb418-5"><a href="#cb418-5" aria-hidden="true" tabindex="-1"></a><span class="ss">$E=mc^2$</span></span> -<span id="cb418-6"><a href="#cb418-6" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb418-7"><a href="#cb418-7" aria-hidden="true" tabindex="-1"></a><span class="ss">$$</span><span class="sc">\hat</span><span class="ss">{f} </span><span class="sc">\left</span><span class="ss"> ( </span><span class="sc">\xi</span><span class="ss"> </span><span class="sc">\right</span><span class="ss"> )= </span><span class="sc">\int</span><span class="ss">_{-</span><span class="sc">\infty</span><span class="ss">}^{</span><span class="sc">\infty</span><span class="ss">} f</span><span class="sc">\left</span><span class="ss"> ( x </span><span class="sc">\right</span><span class="ss"> ) e^{-i2</span><span class="sc">\pi</span><span class="ss"> </span><span class="sc">\xi</span><span class="ss"> x} dx$$</span></span> -<span id="cb418-8"><a href="#cb418-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> -<span id="cb418-9"><a href="#cb418-9" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb418-10"><a href="#cb418-10" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> +<div class="sourceCode" id="cb421"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb421-1"><a href="#cb421-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> +<span id="cb421-2"><a href="#cb421-2" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb421-3"><a href="#cb421-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionTexMathDollars</span>{true}</span> +<span id="cb421-4"><a href="#cb421-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> +<span id="cb421-5"><a href="#cb421-5" aria-hidden="true" tabindex="-1"></a><span class="ss">$E=mc^2$</span></span> +<span id="cb421-6"><a href="#cb421-6" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb421-7"><a href="#cb421-7" aria-hidden="true" tabindex="-1"></a><span class="ss">$$</span><span class="sc">\hat</span><span class="ss">{f} </span><span class="sc">\left</span><span class="ss"> ( </span><span class="sc">\xi</span><span class="ss"> </span><span class="sc">\right</span><span class="ss"> )= </span><span class="sc">\int</span><span class="ss">_{-</span><span class="sc">\infty</span><span class="ss">}^{</span><span class="sc">\infty</span><span class="ss">} f</span><span class="sc">\left</span><span class="ss"> ( x </span><span class="sc">\right</span><span class="ss"> ) e^{-i2</span><span class="sc">\pi</span><span class="ss"> </span><span class="sc">\xi</span><span class="ss"> x} dx$$</span></span> +<span id="cb421-8"><a href="#cb421-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> +<span id="cb421-9"><a href="#cb421-9" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb421-10"><a href="#cb421-10" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb419"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb419-1"><a href="#cb419-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb422"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb422-1"><a href="#cb422-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -7289,21 +7410,21 @@ class="math display"><em>f̂</em>(<em>ξ</em>) = ∫<sub>−∞</sub><sup> class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb420"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb420-1"><a href="#cb420-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb420-2"><a href="#cb420-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[texMathDollars]{<span class="ex">markdown</span>}</span> -<span id="cb420-3"><a href="#cb420-3" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb420-4"><a href="#cb420-4" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb420-5"><a href="#cb420-5" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb420-6"><a href="#cb420-6" aria-hidden="true" tabindex="-1"></a><span class="ss">$E=mc^2$</span></span> -<span id="cb420-7"><a href="#cb420-7" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb420-8"><a href="#cb420-8" aria-hidden="true" tabindex="-1"></a><span class="ss">$$</span><span class="sc">\hat</span><span class="ss">{f} </span><span class="sc">\left</span><span class="ss"> ( </span><span class="sc">\xi</span><span class="ss"> </span><span class="sc">\right</span><span class="ss"> )= </span><span class="sc">\int</span><span class="ss">_{-</span><span class="sc">\infty</span><span class="ss">}^{</span><span class="sc">\infty</span><span class="ss">} f</span><span class="sc">\left</span><span class="ss"> ( x </span><span class="sc">\right</span><span class="ss"> ) e^{-i2</span><span class="sc">\pi</span><span class="ss"> </span><span class="sc">\xi</span><span class="ss"> x} dx$$</span></span> -<span id="cb420-9"><a href="#cb420-9" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb420-10"><a href="#cb420-10" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb420-11"><a href="#cb420-11" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb423"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb423-1"><a href="#cb423-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb423-2"><a href="#cb423-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[texMathDollars]{<span class="ex">markdown</span>}</span> +<span id="cb423-3"><a href="#cb423-3" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb423-4"><a href="#cb423-4" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb423-5"><a href="#cb423-5" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb423-6"><a href="#cb423-6" aria-hidden="true" tabindex="-1"></a><span class="ss">$E=mc^2$</span></span> +<span id="cb423-7"><a href="#cb423-7" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb423-8"><a href="#cb423-8" aria-hidden="true" tabindex="-1"></a><span class="ss">$$</span><span class="sc">\hat</span><span class="ss">{f} </span><span class="sc">\left</span><span class="ss"> ( </span><span class="sc">\xi</span><span class="ss"> </span><span class="sc">\right</span><span class="ss"> )= </span><span class="sc">\int</span><span class="ss">_{-</span><span class="sc">\infty</span><span class="ss">}^{</span><span class="sc">\infty</span><span class="ss">} f</span><span class="sc">\left</span><span class="ss"> ( x </span><span class="sc">\right</span><span class="ss"> ) e^{-i2</span><span class="sc">\pi</span><span class="ss"> </span><span class="sc">\xi</span><span class="ss"> x} dx$$</span></span> +<span id="cb423-9"><a href="#cb423-9" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb423-10"><a href="#cb423-10" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb423-11"><a href="#cb423-11" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb421"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb421-1"><a href="#cb421-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb424"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb424-1"><a href="#cb424-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -7316,21 +7437,21 @@ class="math display"><em>f̂</em>(<em>ξ</em>) = ∫<sub>−∞</sub><sup> class="tex">T<sub>e</sub>X</span>t Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb422"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb422-1"><a href="#cb422-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> -<span id="cb422-2"><a href="#cb422-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span>[texMathDollars = yes]</span> -<span id="cb422-3"><a href="#cb422-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> -<span id="cb422-4"><a href="#cb422-4" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb422-5"><a href="#cb422-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> -<span id="cb422-6"><a href="#cb422-6" aria-hidden="true" tabindex="-1"></a><span class="ss">$E=mc^2$</span></span> -<span id="cb422-7"><a href="#cb422-7" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb422-8"><a href="#cb422-8" aria-hidden="true" tabindex="-1"></a><span class="ss">$$</span><span class="sc">\hat</span><span class="ss">{f} </span><span class="sc">\left</span><span class="ss"> ( </span><span class="sc">\xi</span><span class="ss"> </span><span class="sc">\right</span><span class="ss"> )= </span><span class="sc">\int</span><span class="ss">_{-</span><span class="sc">\infty</span><span class="ss">}^{</span><span class="sc">\infty</span><span class="ss">} f</span><span class="sc">\left</span><span class="ss"> ( x </span><span class="sc">\right</span><span class="ss"> ) e^{-i2</span><span class="sc">\pi</span><span class="ss"> </span><span class="sc">\xi</span><span class="ss"> x} dx$$</span></span> -<span id="cb422-9"><a href="#cb422-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> -<span id="cb422-10"><a href="#cb422-10" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb422-11"><a href="#cb422-11" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> +<div class="sourceCode" id="cb425"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb425-1"><a href="#cb425-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> +<span id="cb425-2"><a href="#cb425-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span>[texMathDollars = yes]</span> +<span id="cb425-3"><a href="#cb425-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> +<span id="cb425-4"><a href="#cb425-4" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb425-5"><a href="#cb425-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> +<span id="cb425-6"><a href="#cb425-6" aria-hidden="true" tabindex="-1"></a><span class="ss">$E=mc^2$</span></span> +<span id="cb425-7"><a href="#cb425-7" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb425-8"><a href="#cb425-8" aria-hidden="true" tabindex="-1"></a><span class="ss">$$</span><span class="sc">\hat</span><span class="ss">{f} </span><span class="sc">\left</span><span class="ss"> ( </span><span class="sc">\xi</span><span class="ss"> </span><span class="sc">\right</span><span class="ss"> )= </span><span class="sc">\int</span><span class="ss">_{-</span><span class="sc">\infty</span><span class="ss">}^{</span><span class="sc">\infty</span><span class="ss">} f</span><span class="sc">\left</span><span class="ss"> ( x </span><span class="sc">\right</span><span class="ss"> ) e^{-i2</span><span class="sc">\pi</span><span class="ss"> </span><span class="sc">\xi</span><span class="ss"> x} dx$$</span></span> +<span id="cb425-9"><a href="#cb425-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> +<span id="cb425-10"><a href="#cb425-10" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb425-11"><a href="#cb425-11" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb423"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb423-1"><a href="#cb423-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb426"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb426-1"><a href="#cb426-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -7339,8 +7460,8 @@ class="math inline"><em>E</em> = <em>m</em><em>c</em><sup>2</sup></span></p> <p><span class="math display"><em>f̂</em>(<em>ξ</em>) = ∫<sub>−∞</sub><sup>∞</sup><em>f</em>(<em>x</em>)<em>e</em><sup>−<em>i</em>2<em>π</em><em>ξ</em><em>x</em></sup><em>d</em><em>x</em></span></p> </blockquote> -<h4 data-number="2.2.1.61" id="option-texmathdoublebackslash"><span -class="header-section-number">2.2.1.61</span> Option +<h4 data-number="2.2.1.63" id="option-texmathdoublebackslash"><span +class="header-section-number">2.2.1.63</span> Option <code>texMathDoubleBackslash</code></h4> <dl> <dt><code>texMathDoubleBackslash</code> (default value: @@ -7352,10 +7473,10 @@ class="header-section-number">2.2.1.61</span> Option <p>Enable the Pandoc <a href="https://pandoc.org/MANUAL.html#extension-tex_math_double_backslash">double backslash math syntax extension</a>:</p> -<div class="sourceCode" id="cb424"><pre -class="sourceCode md"><code class="sourceCode markdown"><span id="cb424-1"><a href="#cb424-1" aria-hidden="true" tabindex="-1"></a><span class="an">inline math:</span><span class="co"> \\(E=mc^2\\)</span></span> -<span id="cb424-2"><a href="#cb424-2" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb424-3"><a href="#cb424-3" aria-hidden="true" tabindex="-1"></a>display math: <span class="sc">\\</span><span class="co">[</span><span class="ot">E=mc^2\\]</span></span></code></pre></div> +<div class="sourceCode" id="cb427"><pre +class="sourceCode md"><code class="sourceCode markdown"><span id="cb427-1"><a href="#cb427-1" aria-hidden="true" tabindex="-1"></a><span class="an">inline math:</span><span class="co"> \\(E=mc^2\\)</span></span> +<span id="cb427-2"><a href="#cb427-2" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb427-3"><a href="#cb427-3" aria-hidden="true" tabindex="-1"></a>display math: <span class="sc">\\</span><span class="co">[</span><span class="ot">E=mc^2\\]</span></span></code></pre></div> </dd> </dl> </dd> @@ -7372,25 +7493,25 @@ class="sourceCode md"><code class="sourceCode markdown"><span id="cb424-1"><a hr Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb425"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb425-1"><a href="#cb425-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> -<span id="cb425-2"><a href="#cb425-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> lmfonts</span> -<span id="cb425-3"><a href="#cb425-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\begingroup</span></span> -<span id="cb425-4"><a href="#cb425-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\catcode</span>`<span class="fu">\%</span>=12</span> -<span id="cb425-5"><a href="#cb425-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\catcode</span>`<span class="fu">\#</span>=12</span> -<span id="cb425-6"><a href="#cb425-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\directlua</span>{</span> -<span id="cb425-7"><a href="#cb425-7" aria-hidden="true" tabindex="-1"></a> local markdown = require("markdown")</span> -<span id="cb425-8"><a href="#cb425-8" aria-hidden="true" tabindex="-1"></a> local newline = [[^^J^^J]]</span> -<span id="cb425-9"><a href="#cb425-9" aria-hidden="true" tabindex="-1"></a> local convert = markdown.new({texMathDoubleBackslash = true})</span> -<span id="cb425-10"><a href="#cb425-10" aria-hidden="true" tabindex="-1"></a> local input =</span> -<span id="cb425-11"><a href="#cb425-11" aria-hidden="true" tabindex="-1"></a> [[<span class="fu">\\</span>(E=mc^2<span class="fu">\\</span>)]] .. newline .. newline ..</span> -<span id="cb425-12"><a href="#cb425-12" aria-hidden="true" tabindex="-1"></a> [[<span class="fu">\\</span>[<span class="fu">\hat</span>{f} <span class="fu">\left</span> ( <span class="fu">\xi</span> <span class="fu">\right</span> )= <span class="fu">\int</span>_{-<span class="fu">\infty</span>}^{<span class="fu">\infty</span>} f<span class="fu">\left</span> ( x <span class="fu">\right</span> ) e^{-i2<span class="fu">\pi</span> <span class="fu">\xi</span> x} dx<span class="fu">\\</span>]]]</span> -<span id="cb425-13"><a href="#cb425-13" aria-hidden="true" tabindex="-1"></a> tex.sprint(convert(input)) }</span> -<span id="cb425-14"><a href="#cb425-14" aria-hidden="true" tabindex="-1"></a><span class="fu">\endgroup</span></span> -<span id="cb425-15"><a href="#cb425-15" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> +<div class="sourceCode" id="cb428"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb428-1"><a href="#cb428-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> +<span id="cb428-2"><a href="#cb428-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> lmfonts</span> +<span id="cb428-3"><a href="#cb428-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\begingroup</span></span> +<span id="cb428-4"><a href="#cb428-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\catcode</span>`<span class="fu">\%</span>=12</span> +<span id="cb428-5"><a href="#cb428-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\catcode</span>`<span class="fu">\#</span>=12</span> +<span id="cb428-6"><a href="#cb428-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\directlua</span>{</span> +<span id="cb428-7"><a href="#cb428-7" aria-hidden="true" tabindex="-1"></a> local markdown = require("markdown")</span> +<span id="cb428-8"><a href="#cb428-8" aria-hidden="true" tabindex="-1"></a> local newline = [[^^J^^J]]</span> +<span id="cb428-9"><a href="#cb428-9" aria-hidden="true" tabindex="-1"></a> local convert = markdown.new({texMathDoubleBackslash = true})</span> +<span id="cb428-10"><a href="#cb428-10" aria-hidden="true" tabindex="-1"></a> local input =</span> +<span id="cb428-11"><a href="#cb428-11" aria-hidden="true" tabindex="-1"></a> [[<span class="fu">\\</span>(E=mc^2<span class="fu">\\</span>)]] .. newline .. newline ..</span> +<span id="cb428-12"><a href="#cb428-12" aria-hidden="true" tabindex="-1"></a> [[<span class="fu">\\</span>[<span class="fu">\hat</span>{f} <span class="fu">\left</span> ( <span class="fu">\xi</span> <span class="fu">\right</span> )= <span class="fu">\int</span>_{-<span class="fu">\infty</span>}^{<span class="fu">\infty</span>} f<span class="fu">\left</span> ( x <span class="fu">\right</span> ) e^{-i2<span class="fu">\pi</span> <span class="fu">\xi</span> x} dx<span class="fu">\\</span>]]]</span> +<span id="cb428-13"><a href="#cb428-13" aria-hidden="true" tabindex="-1"></a> tex.sprint(convert(input)) }</span> +<span id="cb428-14"><a href="#cb428-14" aria-hidden="true" tabindex="-1"></a><span class="fu">\endgroup</span></span> +<span id="cb428-15"><a href="#cb428-15" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> <p>Then, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb426"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb426-1"><a href="#cb426-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb429"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb429-1"><a href="#cb429-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -7402,28 +7523,28 @@ class="math display"><em>f̂</em>(<em>ξ</em>) = ∫<sub>−∞</sub><sup> <h5 class="unnumbered" id="lua-cli-example-13">Lua CLI Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb427"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb427-1"><a href="#cb427-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> -<span id="cb427-2"><a href="#cb427-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> lmfonts</span> -<span id="cb427-3"><a href="#cb427-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\begingroup</span></span> -<span id="cb427-4"><a href="#cb427-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\catcode</span>`<span class="fu">\%</span>=12</span> -<span id="cb427-5"><a href="#cb427-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\catcode</span>`<span class="fu">\#</span>=12</span> -<span id="cb427-6"><a href="#cb427-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> optionfalse</span> -<span id="cb427-7"><a href="#cb427-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\par</span></span> -<span id="cb427-8"><a href="#cb427-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> optiontrue</span> -<span id="cb427-9"><a href="#cb427-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\endgroup</span></span> -<span id="cb427-10"><a href="#cb427-10" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> +<div class="sourceCode" id="cb430"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb430-1"><a href="#cb430-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> +<span id="cb430-2"><a href="#cb430-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> lmfonts</span> +<span id="cb430-3"><a href="#cb430-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\begingroup</span></span> +<span id="cb430-4"><a href="#cb430-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\catcode</span>`<span class="fu">\%</span>=12</span> +<span id="cb430-5"><a href="#cb430-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\catcode</span>`<span class="fu">\#</span>=12</span> +<span id="cb430-6"><a href="#cb430-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> optionfalse</span> +<span id="cb430-7"><a href="#cb430-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\par</span></span> +<span id="cb430-8"><a href="#cb430-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> optiontrue</span> +<span id="cb430-9"><a href="#cb430-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\endgroup</span></span> +<span id="cb430-10"><a href="#cb430-10" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> <p>Using a text editor, create a text document named <code>content.md</code> with the following content:</p> -<div class="sourceCode" id="cb428"><pre -class="sourceCode md"><code class="sourceCode markdown"><span id="cb428-1"><a href="#cb428-1" aria-hidden="true" tabindex="-1"></a><span class="sc">\\</span>(E=mc^2<span class="sc">\\</span>)</span> -<span id="cb428-2"><a href="#cb428-2" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb428-3"><a href="#cb428-3" aria-hidden="true" tabindex="-1"></a><span class="sc">\\</span><span class="co">[</span><span class="ot">\hat{f} \left ( \xi \right )= \int_{-\infty}^{\infty} f\left ( x \right ) e^{-i2\pi \xi x} dx\\]</span></span></code></pre></div> +<div class="sourceCode" id="cb431"><pre +class="sourceCode md"><code class="sourceCode markdown"><span id="cb431-1"><a href="#cb431-1" aria-hidden="true" tabindex="-1"></a><span class="sc">\\</span>(E=mc^2<span class="sc">\\</span>)</span> +<span id="cb431-2"><a href="#cb431-2" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb431-3"><a href="#cb431-3" aria-hidden="true" tabindex="-1"></a><span class="sc">\\</span><span class="co">[</span><span class="ot">\hat{f} \left ( \xi \right )= \int_{-\infty}^{\infty} f\left ( x \right ) e^{-i2\pi \xi x} dx\\]</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb429"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb429-1"><a href="#cb429-1" aria-hidden="true" tabindex="-1"></a><span class="ex">texlua</span> ⟨CLI pathname⟩ <span class="at">--</span> content.md optionfalse.tex</span> -<span id="cb429-2"><a href="#cb429-2" aria-hidden="true" tabindex="-1"></a><span class="ex">texlua</span> ⟨CLI pathname⟩ texMathDoubleBackslash=true <span class="at">--</span> content.md optiontrue.tex</span> -<span id="cb429-3"><a href="#cb429-3" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb432"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb432-1"><a href="#cb432-1" aria-hidden="true" tabindex="-1"></a><span class="ex">texlua</span> ⟨CLI pathname⟩ <span class="at">--</span> content.md optionfalse.tex</span> +<span id="cb432-2"><a href="#cb432-2" aria-hidden="true" tabindex="-1"></a><span class="ex">texlua</span> ⟨CLI pathname⟩ texMathDoubleBackslash=true <span class="at">--</span> content.md optiontrue.tex</span> +<span id="cb432-3"><a href="#cb432-3" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> <p>where ⟨<em>CLI pathname</em>⟩ corresponds to the location of the Lua CLI script file, such as <code>~/texmf/scripts/markdown/markdown-cli.lua</code> on UN*X systems @@ -7448,20 +7569,20 @@ class="math display"><em>f̂</em>(<em>ξ</em>) = ∫<sub>−∞</sub><sup> class="tex">T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb430"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb430-1"><a href="#cb430-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> -<span id="cb430-2"><a href="#cb430-2" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb430-3"><a href="#cb430-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionTexMathDoubleBackslash</span>{true}</span> -<span id="cb430-4"><a href="#cb430-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> -<span id="cb430-5"><a href="#cb430-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\\</span>(E=mc^2<span class="fu">\\</span>)</span> -<span id="cb430-6"><a href="#cb430-6" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb430-7"><a href="#cb430-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\\</span>[<span class="fu">\hat</span>{f} <span class="fu">\left</span> ( <span class="fu">\xi</span> <span class="fu">\right</span> )= <span class="fu">\int</span>_{-<span class="fu">\infty</span>}^{<span class="fu">\infty</span>} f<span class="fu">\left</span> ( x <span class="fu">\right</span> ) e^{-i2<span class="fu">\pi</span> <span class="fu">\xi</span> x} dx<span class="fu">\\</span>]</span> -<span id="cb430-8"><a href="#cb430-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> -<span id="cb430-9"><a href="#cb430-9" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb430-10"><a href="#cb430-10" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> +<div class="sourceCode" id="cb433"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb433-1"><a href="#cb433-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> +<span id="cb433-2"><a href="#cb433-2" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb433-3"><a href="#cb433-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionTexMathDoubleBackslash</span>{true}</span> +<span id="cb433-4"><a href="#cb433-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> +<span id="cb433-5"><a href="#cb433-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\\</span>(E=mc^2<span class="fu">\\</span>)</span> +<span id="cb433-6"><a href="#cb433-6" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb433-7"><a href="#cb433-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\\</span>[<span class="fu">\hat</span>{f} <span class="fu">\left</span> ( <span class="fu">\xi</span> <span class="fu">\right</span> )= <span class="fu">\int</span>_{-<span class="fu">\infty</span>}^{<span class="fu">\infty</span>} f<span class="fu">\left</span> ( x <span class="fu">\right</span> ) e^{-i2<span class="fu">\pi</span> <span class="fu">\xi</span> x} dx<span class="fu">\\</span>]</span> +<span id="cb433-8"><a href="#cb433-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> +<span id="cb433-9"><a href="#cb433-9" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb433-10"><a href="#cb433-10" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb431"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb431-1"><a href="#cb431-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb434"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb434-1"><a href="#cb434-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -7474,21 +7595,21 @@ class="math display"><em>f̂</em>(<em>ξ</em>) = ∫<sub>−∞</sub><sup> class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb432"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb432-1"><a href="#cb432-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb432-2"><a href="#cb432-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[texMathDoubleBackslash]{<span class="ex">markdown</span>}</span> -<span id="cb432-3"><a href="#cb432-3" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb432-4"><a href="#cb432-4" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb432-5"><a href="#cb432-5" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb432-6"><a href="#cb432-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\\</span>(E=mc^2<span class="fu">\\</span>)</span> -<span id="cb432-7"><a href="#cb432-7" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb432-8"><a href="#cb432-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\\</span>[<span class="fu">\hat</span>{f} <span class="fu">\left</span> ( <span class="fu">\xi</span> <span class="fu">\right</span> )= <span class="fu">\int</span>_{-<span class="fu">\infty</span>}^{<span class="fu">\infty</span>} f<span class="fu">\left</span> ( x <span class="fu">\right</span> ) e^{-i2<span class="fu">\pi</span> <span class="fu">\xi</span> x} dx<span class="fu">\\</span>]</span> -<span id="cb432-9"><a href="#cb432-9" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb432-10"><a href="#cb432-10" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb432-11"><a href="#cb432-11" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb435"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb435-1"><a href="#cb435-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb435-2"><a href="#cb435-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[texMathDoubleBackslash]{<span class="ex">markdown</span>}</span> +<span id="cb435-3"><a href="#cb435-3" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb435-4"><a href="#cb435-4" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb435-5"><a href="#cb435-5" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb435-6"><a href="#cb435-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\\</span>(E=mc^2<span class="fu">\\</span>)</span> +<span id="cb435-7"><a href="#cb435-7" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb435-8"><a href="#cb435-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\\</span>[<span class="fu">\hat</span>{f} <span class="fu">\left</span> ( <span class="fu">\xi</span> <span class="fu">\right</span> )= <span class="fu">\int</span>_{-<span class="fu">\infty</span>}^{<span class="fu">\infty</span>} f<span class="fu">\left</span> ( x <span class="fu">\right</span> ) e^{-i2<span class="fu">\pi</span> <span class="fu">\xi</span> x} dx<span class="fu">\\</span>]</span> +<span id="cb435-9"><a href="#cb435-9" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb435-10"><a href="#cb435-10" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb435-11"><a href="#cb435-11" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb433"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb433-1"><a href="#cb433-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb436"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb436-1"><a href="#cb436-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -7501,21 +7622,21 @@ class="math display"><em>f̂</em>(<em>ξ</em>) = ∫<sub>−∞</sub><sup> class="tex">T<sub>e</sub>X</span>t Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb434"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb434-1"><a href="#cb434-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> -<span id="cb434-2"><a href="#cb434-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span>[texMathDoubleBackslash = yes]</span> -<span id="cb434-3"><a href="#cb434-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> -<span id="cb434-4"><a href="#cb434-4" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb434-5"><a href="#cb434-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> -<span id="cb434-6"><a href="#cb434-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\\</span>(E=mc^2<span class="fu">\\</span>)</span> -<span id="cb434-7"><a href="#cb434-7" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb434-8"><a href="#cb434-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\\</span>[<span class="fu">\hat</span>{f} <span class="fu">\left</span> ( <span class="fu">\xi</span> <span class="fu">\right</span> )= <span class="fu">\int</span>_{-<span class="fu">\infty</span>}^{<span class="fu">\infty</span>} f<span class="fu">\left</span> ( x <span class="fu">\right</span> ) e^{-i2<span class="fu">\pi</span> <span class="fu">\xi</span> x} dx<span class="fu">\\</span>]</span> -<span id="cb434-9"><a href="#cb434-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> -<span id="cb434-10"><a href="#cb434-10" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb434-11"><a href="#cb434-11" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> +<div class="sourceCode" id="cb437"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb437-1"><a href="#cb437-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> +<span id="cb437-2"><a href="#cb437-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span>[texMathDoubleBackslash = yes]</span> +<span id="cb437-3"><a href="#cb437-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> +<span id="cb437-4"><a href="#cb437-4" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb437-5"><a href="#cb437-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> +<span id="cb437-6"><a href="#cb437-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\\</span>(E=mc^2<span class="fu">\\</span>)</span> +<span id="cb437-7"><a href="#cb437-7" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb437-8"><a href="#cb437-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\\</span>[<span class="fu">\hat</span>{f} <span class="fu">\left</span> ( <span class="fu">\xi</span> <span class="fu">\right</span> )= <span class="fu">\int</span>_{-<span class="fu">\infty</span>}^{<span class="fu">\infty</span>} f<span class="fu">\left</span> ( x <span class="fu">\right</span> ) e^{-i2<span class="fu">\pi</span> <span class="fu">\xi</span> x} dx<span class="fu">\\</span>]</span> +<span id="cb437-9"><a href="#cb437-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> +<span id="cb437-10"><a href="#cb437-10" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb437-11"><a href="#cb437-11" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb435"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb435-1"><a href="#cb435-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb438"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb438-1"><a href="#cb438-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -7524,8 +7645,8 @@ class="math inline"><em>E</em> = <em>m</em><em>c</em><sup>2</sup></span></p> <p><span class="math display"><em>f̂</em>(<em>ξ</em>) = ∫<sub>−∞</sub><sup>∞</sup><em>f</em>(<em>x</em>)<em>e</em><sup>−<em>i</em>2<em>π</em><em>ξ</em><em>x</em></sup><em>d</em><em>x</em></span></p> </blockquote> -<h4 data-number="2.2.1.62" id="option-texmathsinglebackslash"><span -class="header-section-number">2.2.1.62</span> Option +<h4 data-number="2.2.1.64" id="option-texmathsinglebackslash"><span +class="header-section-number">2.2.1.64</span> Option <code>texMathSingleBackslash</code></h4> <dl> <dt><code>texMathSingleBackslash</code> (default value: @@ -7537,10 +7658,10 @@ class="header-section-number">2.2.1.62</span> Option <p>Enable the Pandoc <a href="https://pandoc.org/MANUAL.html#extension-tex_math_single_backslash">single backslash math syntax extension</a>:</p> -<div class="sourceCode" id="cb436"><pre -class="sourceCode md"><code class="sourceCode markdown"><span id="cb436-1"><a href="#cb436-1" aria-hidden="true" tabindex="-1"></a><span class="an">inline math:</span><span class="co"> \(E=mc^2\)</span></span> -<span id="cb436-2"><a href="#cb436-2" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb436-3"><a href="#cb436-3" aria-hidden="true" tabindex="-1"></a>display math: <span class="sc">\[</span>E=mc^2<span class="sc">\]</span></span></code></pre></div> +<div class="sourceCode" id="cb439"><pre +class="sourceCode md"><code class="sourceCode markdown"><span id="cb439-1"><a href="#cb439-1" aria-hidden="true" tabindex="-1"></a><span class="an">inline math:</span><span class="co"> \(E=mc^2\)</span></span> +<span id="cb439-2"><a href="#cb439-2" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb439-3"><a href="#cb439-3" aria-hidden="true" tabindex="-1"></a>display math: <span class="sc">\[</span>E=mc^2<span class="sc">\]</span></span></code></pre></div> </dd> </dl> </dd> @@ -7557,25 +7678,25 @@ class="sourceCode md"><code class="sourceCode markdown"><span id="cb436-1"><a hr Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb437"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb437-1"><a href="#cb437-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> -<span id="cb437-2"><a href="#cb437-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> lmfonts</span> -<span id="cb437-3"><a href="#cb437-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\begingroup</span></span> -<span id="cb437-4"><a href="#cb437-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\catcode</span>`<span class="fu">\%</span>=12</span> -<span id="cb437-5"><a href="#cb437-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\catcode</span>`<span class="fu">\#</span>=12</span> -<span id="cb437-6"><a href="#cb437-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\directlua</span>{</span> -<span id="cb437-7"><a href="#cb437-7" aria-hidden="true" tabindex="-1"></a> local markdown = require("markdown")</span> -<span id="cb437-8"><a href="#cb437-8" aria-hidden="true" tabindex="-1"></a> local newline = [[^^J^^J]]</span> -<span id="cb437-9"><a href="#cb437-9" aria-hidden="true" tabindex="-1"></a> local convert = markdown.new({texMathSingleBackslash = true})</span> -<span id="cb437-10"><a href="#cb437-10" aria-hidden="true" tabindex="-1"></a> local input =</span> -<span id="cb437-11"><a href="#cb437-11" aria-hidden="true" tabindex="-1"></a> [[<span class="ss">\(E=mc^2\)</span>]] .. newline .. newline ..</span> -<span id="cb437-12"><a href="#cb437-12" aria-hidden="true" tabindex="-1"></a> [[<span class="ss">\[</span><span class="sc">\hat</span><span class="ss">{f} </span><span class="sc">\left</span><span class="ss"> ( </span><span class="sc">\xi</span><span class="ss"> </span><span class="sc">\right</span><span class="ss"> )= </span><span class="sc">\int</span><span class="ss">_{-</span><span class="sc">\infty</span><span class="ss">}^{</span><span class="sc">\infty</span><span class="ss">} f</span><span class="sc">\left</span><span class="ss"> ( x </span><span class="sc">\right</span><span class="ss"> ) e^{-i2</span><span class="sc">\pi</span><span class="ss"> </span><span class="sc">\xi</span><span class="ss"> x} dx\]</span>]]</span> -<span id="cb437-13"><a href="#cb437-13" aria-hidden="true" tabindex="-1"></a> tex.sprint(convert(input)) }</span> -<span id="cb437-14"><a href="#cb437-14" aria-hidden="true" tabindex="-1"></a><span class="fu">\endgroup</span></span> -<span id="cb437-15"><a href="#cb437-15" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> +<div class="sourceCode" id="cb440"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb440-1"><a href="#cb440-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> +<span id="cb440-2"><a href="#cb440-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> lmfonts</span> +<span id="cb440-3"><a href="#cb440-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\begingroup</span></span> +<span id="cb440-4"><a href="#cb440-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\catcode</span>`<span class="fu">\%</span>=12</span> +<span id="cb440-5"><a href="#cb440-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\catcode</span>`<span class="fu">\#</span>=12</span> +<span id="cb440-6"><a href="#cb440-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\directlua</span>{</span> +<span id="cb440-7"><a href="#cb440-7" aria-hidden="true" tabindex="-1"></a> local markdown = require("markdown")</span> +<span id="cb440-8"><a href="#cb440-8" aria-hidden="true" tabindex="-1"></a> local newline = [[^^J^^J]]</span> +<span id="cb440-9"><a href="#cb440-9" aria-hidden="true" tabindex="-1"></a> local convert = markdown.new({texMathSingleBackslash = true})</span> +<span id="cb440-10"><a href="#cb440-10" aria-hidden="true" tabindex="-1"></a> local input =</span> +<span id="cb440-11"><a href="#cb440-11" aria-hidden="true" tabindex="-1"></a> [[<span class="ss">\(E=mc^2\)</span>]] .. newline .. newline ..</span> +<span id="cb440-12"><a href="#cb440-12" aria-hidden="true" tabindex="-1"></a> [[<span class="ss">\[</span><span class="sc">\hat</span><span class="ss">{f} </span><span class="sc">\left</span><span class="ss"> ( </span><span class="sc">\xi</span><span class="ss"> </span><span class="sc">\right</span><span class="ss"> )= </span><span class="sc">\int</span><span class="ss">_{-</span><span class="sc">\infty</span><span class="ss">}^{</span><span class="sc">\infty</span><span class="ss">} f</span><span class="sc">\left</span><span class="ss"> ( x </span><span class="sc">\right</span><span class="ss"> ) e^{-i2</span><span class="sc">\pi</span><span class="ss"> </span><span class="sc">\xi</span><span class="ss"> x} dx\]</span>]]</span> +<span id="cb440-13"><a href="#cb440-13" aria-hidden="true" tabindex="-1"></a> tex.sprint(convert(input)) }</span> +<span id="cb440-14"><a href="#cb440-14" aria-hidden="true" tabindex="-1"></a><span class="fu">\endgroup</span></span> +<span id="cb440-15"><a href="#cb440-15" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> <p>Then, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb438"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb438-1"><a href="#cb438-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb441"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb441-1"><a href="#cb441-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -7587,28 +7708,28 @@ class="math display"><em>f̂</em>(<em>ξ</em>) = ∫<sub>−∞</sub><sup> <h5 class="unnumbered" id="lua-cli-example-14">Lua CLI Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb439"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb439-1"><a href="#cb439-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> -<span id="cb439-2"><a href="#cb439-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> lmfonts</span> -<span id="cb439-3"><a href="#cb439-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\begingroup</span></span> -<span id="cb439-4"><a href="#cb439-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\catcode</span>`<span class="fu">\%</span>=12</span> -<span id="cb439-5"><a href="#cb439-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\catcode</span>`<span class="fu">\#</span>=12</span> -<span id="cb439-6"><a href="#cb439-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> optionfalse</span> -<span id="cb439-7"><a href="#cb439-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\par</span></span> -<span id="cb439-8"><a href="#cb439-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> optiontrue</span> -<span id="cb439-9"><a href="#cb439-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\endgroup</span></span> -<span id="cb439-10"><a href="#cb439-10" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> +<div class="sourceCode" id="cb442"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb442-1"><a href="#cb442-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> +<span id="cb442-2"><a href="#cb442-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> lmfonts</span> +<span id="cb442-3"><a href="#cb442-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\begingroup</span></span> +<span id="cb442-4"><a href="#cb442-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\catcode</span>`<span class="fu">\%</span>=12</span> +<span id="cb442-5"><a href="#cb442-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\catcode</span>`<span class="fu">\#</span>=12</span> +<span id="cb442-6"><a href="#cb442-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> optionfalse</span> +<span id="cb442-7"><a href="#cb442-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\par</span></span> +<span id="cb442-8"><a href="#cb442-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> optiontrue</span> +<span id="cb442-9"><a href="#cb442-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\endgroup</span></span> +<span id="cb442-10"><a href="#cb442-10" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> <p>Using a text editor, create a text document named <code>content.md</code> with the following content:</p> -<div class="sourceCode" id="cb440"><pre -class="sourceCode md"><code class="sourceCode markdown"><span id="cb440-1"><a href="#cb440-1" aria-hidden="true" tabindex="-1"></a><span class="sc">\(</span>E=mc^2<span class="sc">\)</span></span> -<span id="cb440-2"><a href="#cb440-2" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb440-3"><a href="#cb440-3" aria-hidden="true" tabindex="-1"></a><span class="sc">\[</span>\hat{f} \left ( \xi \right )= \int_{-\infty}^{\infty} f\left ( x \right ) e^{-i2\pi \xi x} dx<span class="sc">\]</span></span></code></pre></div> +<div class="sourceCode" id="cb443"><pre +class="sourceCode md"><code class="sourceCode markdown"><span id="cb443-1"><a href="#cb443-1" aria-hidden="true" tabindex="-1"></a><span class="sc">\(</span>E=mc^2<span class="sc">\)</span></span> +<span id="cb443-2"><a href="#cb443-2" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb443-3"><a href="#cb443-3" aria-hidden="true" tabindex="-1"></a><span class="sc">\[</span>\hat{f} \left ( \xi \right )= \int_{-\infty}^{\infty} f\left ( x \right ) e^{-i2\pi \xi x} dx<span class="sc">\]</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb441"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb441-1"><a href="#cb441-1" aria-hidden="true" tabindex="-1"></a><span class="ex">texlua</span> ⟨CLI pathname⟩ <span class="at">--</span> content.md optionfalse.tex</span> -<span id="cb441-2"><a href="#cb441-2" aria-hidden="true" tabindex="-1"></a><span class="ex">texlua</span> ⟨CLI pathname⟩ texMathSingleBackslash=true <span class="at">--</span> content.md optiontrue.tex</span> -<span id="cb441-3"><a href="#cb441-3" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb444"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb444-1"><a href="#cb444-1" aria-hidden="true" tabindex="-1"></a><span class="ex">texlua</span> ⟨CLI pathname⟩ <span class="at">--</span> content.md optionfalse.tex</span> +<span id="cb444-2"><a href="#cb444-2" aria-hidden="true" tabindex="-1"></a><span class="ex">texlua</span> ⟨CLI pathname⟩ texMathSingleBackslash=true <span class="at">--</span> content.md optiontrue.tex</span> +<span id="cb444-3"><a href="#cb444-3" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> <p>where ⟨<em>CLI pathname</em>⟩ corresponds to the location of the Lua CLI script file, such as <code>~/texmf/scripts/markdown/markdown-cli.lua</code> on UN*X systems @@ -7633,20 +7754,20 @@ class="math display"><em>f̂</em>(<em>ξ</em>) = ∫<sub>−∞</sub><sup> class="tex">T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb442"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb442-1"><a href="#cb442-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> -<span id="cb442-2"><a href="#cb442-2" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb442-3"><a href="#cb442-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionTexMathSingleBackslash</span>{true}</span> -<span id="cb442-4"><a href="#cb442-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> -<span id="cb442-5"><a href="#cb442-5" aria-hidden="true" tabindex="-1"></a><span class="ss">\(E=mc^2\)</span></span> -<span id="cb442-6"><a href="#cb442-6" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb442-7"><a href="#cb442-7" aria-hidden="true" tabindex="-1"></a><span class="ss">\[</span><span class="sc">\hat</span><span class="ss">{f} </span><span class="sc">\left</span><span class="ss"> ( </span><span class="sc">\xi</span><span class="ss"> </span><span class="sc">\right</span><span class="ss"> )= </span><span class="sc">\int</span><span class="ss">_{-</span><span class="sc">\infty</span><span class="ss">}^{</span><span class="sc">\infty</span><span class="ss">} f</span><span class="sc">\left</span><span class="ss"> ( x </span><span class="sc">\right</span><span class="ss"> ) e^{-i2</span><span class="sc">\pi</span><span class="ss"> </span><span class="sc">\xi</span><span class="ss"> x} dx\]</span></span> -<span id="cb442-8"><a href="#cb442-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> -<span id="cb442-9"><a href="#cb442-9" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb442-10"><a href="#cb442-10" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> +<div class="sourceCode" id="cb445"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb445-1"><a href="#cb445-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> +<span id="cb445-2"><a href="#cb445-2" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb445-3"><a href="#cb445-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionTexMathSingleBackslash</span>{true}</span> +<span id="cb445-4"><a href="#cb445-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> +<span id="cb445-5"><a href="#cb445-5" aria-hidden="true" tabindex="-1"></a><span class="ss">\(E=mc^2\)</span></span> +<span id="cb445-6"><a href="#cb445-6" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb445-7"><a href="#cb445-7" aria-hidden="true" tabindex="-1"></a><span class="ss">\[</span><span class="sc">\hat</span><span class="ss">{f} </span><span class="sc">\left</span><span class="ss"> ( </span><span class="sc">\xi</span><span class="ss"> </span><span class="sc">\right</span><span class="ss"> )= </span><span class="sc">\int</span><span class="ss">_{-</span><span class="sc">\infty</span><span class="ss">}^{</span><span class="sc">\infty</span><span class="ss">} f</span><span class="sc">\left</span><span class="ss"> ( x </span><span class="sc">\right</span><span class="ss"> ) e^{-i2</span><span class="sc">\pi</span><span class="ss"> </span><span class="sc">\xi</span><span class="ss"> x} dx\]</span></span> +<span id="cb445-8"><a href="#cb445-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> +<span id="cb445-9"><a href="#cb445-9" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb445-10"><a href="#cb445-10" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb443"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb443-1"><a href="#cb443-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb446"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb446-1"><a href="#cb446-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -7659,21 +7780,21 @@ class="math display"><em>f̂</em>(<em>ξ</em>) = ∫<sub>−∞</sub><sup> class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb444"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb444-1"><a href="#cb444-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb444-2"><a href="#cb444-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[texMathSingleBackslash]{<span class="ex">markdown</span>}</span> -<span id="cb444-3"><a href="#cb444-3" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb444-4"><a href="#cb444-4" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb444-5"><a href="#cb444-5" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb444-6"><a href="#cb444-6" aria-hidden="true" tabindex="-1"></a><span class="ss">\(E=mc^2\)</span></span> -<span id="cb444-7"><a href="#cb444-7" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb444-8"><a href="#cb444-8" aria-hidden="true" tabindex="-1"></a><span class="ss">\[</span><span class="sc">\hat</span><span class="ss">{f} </span><span class="sc">\left</span><span class="ss"> ( </span><span class="sc">\xi</span><span class="ss"> </span><span class="sc">\right</span><span class="ss"> )= </span><span class="sc">\int</span><span class="ss">_{-</span><span class="sc">\infty</span><span class="ss">}^{</span><span class="sc">\infty</span><span class="ss">} f</span><span class="sc">\left</span><span class="ss"> ( x </span><span class="sc">\right</span><span class="ss"> ) e^{-i2</span><span class="sc">\pi</span><span class="ss"> </span><span class="sc">\xi</span><span class="ss"> x} dx\]</span></span> -<span id="cb444-9"><a href="#cb444-9" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb444-10"><a href="#cb444-10" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb444-11"><a href="#cb444-11" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb447"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb447-1"><a href="#cb447-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb447-2"><a href="#cb447-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[texMathSingleBackslash]{<span class="ex">markdown</span>}</span> +<span id="cb447-3"><a href="#cb447-3" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb447-4"><a href="#cb447-4" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb447-5"><a href="#cb447-5" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb447-6"><a href="#cb447-6" aria-hidden="true" tabindex="-1"></a><span class="ss">\(E=mc^2\)</span></span> +<span id="cb447-7"><a href="#cb447-7" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb447-8"><a href="#cb447-8" aria-hidden="true" tabindex="-1"></a><span class="ss">\[</span><span class="sc">\hat</span><span class="ss">{f} </span><span class="sc">\left</span><span class="ss"> ( </span><span class="sc">\xi</span><span class="ss"> </span><span class="sc">\right</span><span class="ss"> )= </span><span class="sc">\int</span><span class="ss">_{-</span><span class="sc">\infty</span><span class="ss">}^{</span><span class="sc">\infty</span><span class="ss">} f</span><span class="sc">\left</span><span class="ss"> ( x </span><span class="sc">\right</span><span class="ss"> ) e^{-i2</span><span class="sc">\pi</span><span class="ss"> </span><span class="sc">\xi</span><span class="ss"> x} dx\]</span></span> +<span id="cb447-9"><a href="#cb447-9" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb447-10"><a href="#cb447-10" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb447-11"><a href="#cb447-11" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb445"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb445-1"><a href="#cb445-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb448"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb448-1"><a href="#cb448-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -7686,21 +7807,21 @@ class="math display"><em>f̂</em>(<em>ξ</em>) = ∫<sub>−∞</sub><sup> class="tex">T<sub>e</sub>X</span>t Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb446"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb446-1"><a href="#cb446-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> -<span id="cb446-2"><a href="#cb446-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span>[texMathSingleBackslash = yes]</span> -<span id="cb446-3"><a href="#cb446-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> -<span id="cb446-4"><a href="#cb446-4" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb446-5"><a href="#cb446-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> -<span id="cb446-6"><a href="#cb446-6" aria-hidden="true" tabindex="-1"></a><span class="ss">\(E=mc^2\)</span></span> -<span id="cb446-7"><a href="#cb446-7" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb446-8"><a href="#cb446-8" aria-hidden="true" tabindex="-1"></a><span class="ss">\[</span><span class="sc">\hat</span><span class="ss">{f} </span><span class="sc">\left</span><span class="ss"> ( </span><span class="sc">\xi</span><span class="ss"> </span><span class="sc">\right</span><span class="ss"> )= </span><span class="sc">\int</span><span class="ss">_{-</span><span class="sc">\infty</span><span class="ss">}^{</span><span class="sc">\infty</span><span class="ss">} f</span><span class="sc">\left</span><span class="ss"> ( x </span><span class="sc">\right</span><span class="ss"> ) e^{-i2</span><span class="sc">\pi</span><span class="ss"> </span><span class="sc">\xi</span><span class="ss"> x} dx\]</span></span> -<span id="cb446-9"><a href="#cb446-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> -<span id="cb446-10"><a href="#cb446-10" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb446-11"><a href="#cb446-11" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> +<div class="sourceCode" id="cb449"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb449-1"><a href="#cb449-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> +<span id="cb449-2"><a href="#cb449-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span>[texMathSingleBackslash = yes]</span> +<span id="cb449-3"><a href="#cb449-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> +<span id="cb449-4"><a href="#cb449-4" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb449-5"><a href="#cb449-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> +<span id="cb449-6"><a href="#cb449-6" aria-hidden="true" tabindex="-1"></a><span class="ss">\(E=mc^2\)</span></span> +<span id="cb449-7"><a href="#cb449-7" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb449-8"><a href="#cb449-8" aria-hidden="true" tabindex="-1"></a><span class="ss">\[</span><span class="sc">\hat</span><span class="ss">{f} </span><span class="sc">\left</span><span class="ss"> ( </span><span class="sc">\xi</span><span class="ss"> </span><span class="sc">\right</span><span class="ss"> )= </span><span class="sc">\int</span><span class="ss">_{-</span><span class="sc">\infty</span><span class="ss">}^{</span><span class="sc">\infty</span><span class="ss">} f</span><span class="sc">\left</span><span class="ss"> ( x </span><span class="sc">\right</span><span class="ss"> ) e^{-i2</span><span class="sc">\pi</span><span class="ss"> </span><span class="sc">\xi</span><span class="ss"> x} dx\]</span></span> +<span id="cb449-9"><a href="#cb449-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> +<span id="cb449-10"><a href="#cb449-10" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb449-11"><a href="#cb449-11" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb447"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb447-1"><a href="#cb447-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb450"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb450-1"><a href="#cb450-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -7709,8 +7830,8 @@ class="math inline"><em>E</em> = <em>m</em><em>c</em><sup>2</sup></span></p> <p><span class="math display"><em>f̂</em>(<em>ξ</em>) = ∫<sub>−∞</sub><sup>∞</sup><em>f</em>(<em>x</em>)<em>e</em><sup>−<em>i</em>2<em>π</em><em>ξ</em><em>x</em></sup><em>d</em><em>x</em></span></p> </blockquote> -<h4 data-number="2.2.1.63" id="option-tightlists"><span -class="header-section-number">2.2.1.63</span> Option +<h4 data-number="2.2.1.65" id="option-tightlists"><span +class="header-section-number">2.2.1.65</span> Option <code>tightLists</code></h4> <dl> <dt><code>tightLists</code> (default value: <code>true</code>)</dt> @@ -7722,16 +7843,16 @@ class="header-section-number">2.2.1.63</span> Option paragraphs will be considered <em>tight</em>. Tight lists will produce tight renderers that may produce different output than lists that are not tight:</p> -<div class="sourceCode" id="cb448"><pre -class="sourceCode md"><code class="sourceCode markdown"><span id="cb448-1"><a href="#cb448-1" aria-hidden="true" tabindex="-1"></a><span class="ss">- </span>This is</span> -<span id="cb448-2"><a href="#cb448-2" aria-hidden="true" tabindex="-1"></a><span class="ss">- </span>a tight</span> -<span id="cb448-3"><a href="#cb448-3" aria-hidden="true" tabindex="-1"></a><span class="ss">- </span>unordered list.</span> -<span id="cb448-4"><a href="#cb448-4" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb448-5"><a href="#cb448-5" aria-hidden="true" tabindex="-1"></a><span class="ss">- </span>This is</span> -<span id="cb448-6"><a href="#cb448-6" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb448-7"><a href="#cb448-7" aria-hidden="true" tabindex="-1"></a> not a tight</span> -<span id="cb448-8"><a href="#cb448-8" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb448-9"><a href="#cb448-9" aria-hidden="true" tabindex="-1"></a><span class="ss">- </span>unordered list.</span></code></pre></div> +<div class="sourceCode" id="cb451"><pre +class="sourceCode md"><code class="sourceCode markdown"><span id="cb451-1"><a href="#cb451-1" aria-hidden="true" tabindex="-1"></a><span class="ss">- </span>This is</span> +<span id="cb451-2"><a href="#cb451-2" aria-hidden="true" tabindex="-1"></a><span class="ss">- </span>a tight</span> +<span id="cb451-3"><a href="#cb451-3" aria-hidden="true" tabindex="-1"></a><span class="ss">- </span>unordered list.</span> +<span id="cb451-4"><a href="#cb451-4" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb451-5"><a href="#cb451-5" aria-hidden="true" tabindex="-1"></a><span class="ss">- </span>This is</span> +<span id="cb451-6"><a href="#cb451-6" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb451-7"><a href="#cb451-7" aria-hidden="true" tabindex="-1"></a> not a tight</span> +<span id="cb451-8"><a href="#cb451-8" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb451-9"><a href="#cb451-9" aria-hidden="true" tabindex="-1"></a><span class="ss">- </span>unordered list.</span></code></pre></div> </dd> </dl> </dd> @@ -7750,39 +7871,39 @@ multiple paragraphs.</p> class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb449"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb449-1"><a href="#cb449-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb449-2"><a href="#cb449-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>{<span class="ex">markdown</span>}</span> -<span id="cb449-3"><a href="#cb449-3" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb449-4"><a href="#cb449-4" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb449-5"><a href="#cb449-5" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb449-6"><a href="#cb449-6" aria-hidden="true" tabindex="-1"></a>The following list is tight:</span> -<span id="cb449-7"><a href="#cb449-7" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb449-8"><a href="#cb449-8" aria-hidden="true" tabindex="-1"></a>- first item</span> -<span id="cb449-9"><a href="#cb449-9" aria-hidden="true" tabindex="-1"></a>- second item</span> -<span id="cb449-10"><a href="#cb449-10" aria-hidden="true" tabindex="-1"></a>- third item</span> -<span id="cb449-11"><a href="#cb449-11" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb449-12"><a href="#cb449-12" aria-hidden="true" tabindex="-1"></a>The following list is loose:</span> -<span id="cb449-13"><a href="#cb449-13" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb449-14"><a href="#cb449-14" aria-hidden="true" tabindex="-1"></a>- first item</span> -<span id="cb449-15"><a href="#cb449-15" aria-hidden="true" tabindex="-1"></a>- second item that spans</span> -<span id="cb449-16"><a href="#cb449-16" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb449-17"><a href="#cb449-17" aria-hidden="true" tabindex="-1"></a> multiple paragraphs</span> -<span id="cb449-18"><a href="#cb449-18" aria-hidden="true" tabindex="-1"></a>- third item</span> -<span id="cb449-19"><a href="#cb449-19" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb449-20"><a href="#cb449-20" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb449-21"><a href="#cb449-21" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}[tightLists=false]</span> -<span id="cb449-22"><a href="#cb449-22" aria-hidden="true" tabindex="-1"></a>The following list is now also loose:</span> -<span id="cb449-23"><a href="#cb449-23" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb449-24"><a href="#cb449-24" aria-hidden="true" tabindex="-1"></a>- first item</span> -<span id="cb449-25"><a href="#cb449-25" aria-hidden="true" tabindex="-1"></a>- second item</span> -<span id="cb449-26"><a href="#cb449-26" aria-hidden="true" tabindex="-1"></a>- third item</span> -<span id="cb449-27"><a href="#cb449-27" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb449-28"><a href="#cb449-28" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb449-29"><a href="#cb449-29" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb452"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb452-1"><a href="#cb452-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb452-2"><a href="#cb452-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>{<span class="ex">markdown</span>}</span> +<span id="cb452-3"><a href="#cb452-3" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb452-4"><a href="#cb452-4" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb452-5"><a href="#cb452-5" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb452-6"><a href="#cb452-6" aria-hidden="true" tabindex="-1"></a>The following list is tight:</span> +<span id="cb452-7"><a href="#cb452-7" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb452-8"><a href="#cb452-8" aria-hidden="true" tabindex="-1"></a>- first item</span> +<span id="cb452-9"><a href="#cb452-9" aria-hidden="true" tabindex="-1"></a>- second item</span> +<span id="cb452-10"><a href="#cb452-10" aria-hidden="true" tabindex="-1"></a>- third item</span> +<span id="cb452-11"><a href="#cb452-11" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb452-12"><a href="#cb452-12" aria-hidden="true" tabindex="-1"></a>The following list is loose:</span> +<span id="cb452-13"><a href="#cb452-13" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb452-14"><a href="#cb452-14" aria-hidden="true" tabindex="-1"></a>- first item</span> +<span id="cb452-15"><a href="#cb452-15" aria-hidden="true" tabindex="-1"></a>- second item that spans</span> +<span id="cb452-16"><a href="#cb452-16" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb452-17"><a href="#cb452-17" aria-hidden="true" tabindex="-1"></a> multiple paragraphs</span> +<span id="cb452-18"><a href="#cb452-18" aria-hidden="true" tabindex="-1"></a>- third item</span> +<span id="cb452-19"><a href="#cb452-19" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb452-20"><a href="#cb452-20" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb452-21"><a href="#cb452-21" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}[tightLists=false]</span> +<span id="cb452-22"><a href="#cb452-22" aria-hidden="true" tabindex="-1"></a>The following list is now also loose:</span> +<span id="cb452-23"><a href="#cb452-23" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb452-24"><a href="#cb452-24" aria-hidden="true" tabindex="-1"></a>- first item</span> +<span id="cb452-25"><a href="#cb452-25" aria-hidden="true" tabindex="-1"></a>- second item</span> +<span id="cb452-26"><a href="#cb452-26" aria-hidden="true" tabindex="-1"></a>- third item</span> +<span id="cb452-27"><a href="#cb452-27" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb452-28"><a href="#cb452-28" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb452-29"><a href="#cb452-29" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb450"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb450-1"><a href="#cb450-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb453"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb453-1"><a href="#cb453-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -7806,8 +7927,8 @@ contain the following text:</p> <li><p>third item</p></li> </ul> </blockquote> -<h4 data-number="2.2.1.64" id="option-underscores"><span -class="header-section-number">2.2.1.64</span> Option +<h4 data-number="2.2.1.66" id="option-underscores"><span +class="header-section-number">2.2.1.66</span> Option <code>underscores</code></h4> <dl> <dt><code>underscores</code> (default value: <code>true</code>)</dt> @@ -7817,11 +7938,11 @@ class="header-section-number">2.2.1.64</span> Option <dd> <p>Both underscores and asterisks can be used to denote emphasis and strong emphasis:</p> -<div class="sourceCode" id="cb451"><pre -class="sourceCode md"><code class="sourceCode markdown"><span id="cb451-1"><a href="#cb451-1" aria-hidden="true" tabindex="-1"></a>*single asterisks*</span> -<span id="cb451-2"><a href="#cb451-2" aria-hidden="true" tabindex="-1"></a>_single underscores_</span> -<span id="cb451-3"><a href="#cb451-3" aria-hidden="true" tabindex="-1"></a>**double asterisks**</span> -<span id="cb451-4"><a href="#cb451-4" aria-hidden="true" tabindex="-1"></a>__double underscores__</span></code></pre></div> +<div class="sourceCode" id="cb454"><pre +class="sourceCode md"><code class="sourceCode markdown"><span id="cb454-1"><a href="#cb454-1" aria-hidden="true" tabindex="-1"></a>*single asterisks*</span> +<span id="cb454-2"><a href="#cb454-2" aria-hidden="true" tabindex="-1"></a>_single underscores_</span> +<span id="cb454-3"><a href="#cb454-3" aria-hidden="true" tabindex="-1"></a>**double asterisks**</span> +<span id="cb454-4"><a href="#cb454-4" aria-hidden="true" tabindex="-1"></a>__double underscores__</span></code></pre></div> </dd> </dl> </dd> @@ -7831,7 +7952,7 @@ class="sourceCode md"><code class="sourceCode markdown"><span id="cb451-1"><a hr <dd> <p>Only asterisks can be used to denote emphasis and strong emphasis. This makes it easy to write math with the -<strong><code>hybrid</code></strong> option without the need to +<code><strong>hybrid</strong></code> option without the need to constantly escape subscripts.</p> </dd> </dl> @@ -7841,23 +7962,23 @@ constantly escape subscripts.</p> class="tex">T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb452"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb452-1"><a href="#cb452-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> -<span id="cb452-2"><a href="#cb452-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionHybrid</span>{true}</span> -<span id="cb452-3"><a href="#cb452-3" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb452-4"><a href="#cb452-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> -<span id="cb452-5"><a href="#cb452-5" aria-hidden="true" tabindex="-1"></a>This is _emphasized text_ and this is a math subscript: <span class="ss">$m</span><span class="sc">\_</span><span class="ss">n$</span>.</span> -<span id="cb452-6"><a href="#cb452-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> -<span id="cb452-7"><a href="#cb452-7" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb452-8"><a href="#cb452-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionUnderscores</span>{false}</span> -<span id="cb452-9"><a href="#cb452-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> -<span id="cb452-10"><a href="#cb452-10" aria-hidden="true" tabindex="-1"></a>This is *emphasized text* and this is a math subscript: <span class="ss">$m_n$</span>.</span> -<span id="cb452-11"><a href="#cb452-11" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> -<span id="cb452-12"><a href="#cb452-12" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb452-13"><a href="#cb452-13" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> +<div class="sourceCode" id="cb455"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb455-1"><a href="#cb455-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> +<span id="cb455-2"><a href="#cb455-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionHybrid</span>{true}</span> +<span id="cb455-3"><a href="#cb455-3" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb455-4"><a href="#cb455-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> +<span id="cb455-5"><a href="#cb455-5" aria-hidden="true" tabindex="-1"></a>This is _emphasized text_ and this is a math subscript: <span class="ss">$m</span><span class="sc">\_</span><span class="ss">n$</span>.</span> +<span id="cb455-6"><a href="#cb455-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> +<span id="cb455-7"><a href="#cb455-7" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb455-8"><a href="#cb455-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionUnderscores</span>{false}</span> +<span id="cb455-9"><a href="#cb455-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> +<span id="cb455-10"><a href="#cb455-10" aria-hidden="true" tabindex="-1"></a>This is *emphasized text* and this is a math subscript: <span class="ss">$m_n$</span>.</span> +<span id="cb455-11"><a href="#cb455-11" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> +<span id="cb455-12"><a href="#cb455-12" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb455-13"><a href="#cb455-13" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb453"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb453-1"><a href="#cb453-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb456"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb456-1"><a href="#cb456-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -7870,23 +7991,23 @@ contain the following text:</p> class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb454"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb454-1"><a href="#cb454-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb454-2"><a href="#cb454-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[hybrid]{<span class="ex">markdown</span>}</span> -<span id="cb454-3"><a href="#cb454-3" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb454-4"><a href="#cb454-4" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb454-5"><a href="#cb454-5" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb454-6"><a href="#cb454-6" aria-hidden="true" tabindex="-1"></a>This is _emphasized text_ and this is a math subscript: <span class="ss">$m</span><span class="sc">\_</span><span class="ss">n$</span>.</span> -<span id="cb454-7"><a href="#cb454-7" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb454-8"><a href="#cb454-8" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb454-9"><a href="#cb454-9" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}[underscores=false]</span> -<span id="cb454-10"><a href="#cb454-10" aria-hidden="true" tabindex="-1"></a>This is *emphasized text* and this is a math subscript: <span class="ss">$m_n$</span>.</span> -<span id="cb454-11"><a href="#cb454-11" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb454-12"><a href="#cb454-12" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb454-13"><a href="#cb454-13" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb457"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb457-1"><a href="#cb457-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb457-2"><a href="#cb457-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[hybrid]{<span class="ex">markdown</span>}</span> +<span id="cb457-3"><a href="#cb457-3" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb457-4"><a href="#cb457-4" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb457-5"><a href="#cb457-5" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb457-6"><a href="#cb457-6" aria-hidden="true" tabindex="-1"></a>This is _emphasized text_ and this is a math subscript: <span class="ss">$m</span><span class="sc">\_</span><span class="ss">n$</span>.</span> +<span id="cb457-7"><a href="#cb457-7" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb457-8"><a href="#cb457-8" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb457-9"><a href="#cb457-9" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}[underscores=false]</span> +<span id="cb457-10"><a href="#cb457-10" aria-hidden="true" tabindex="-1"></a>This is *emphasized text* and this is a math subscript: <span class="ss">$m_n$</span>.</span> +<span id="cb457-11"><a href="#cb457-11" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb457-12"><a href="#cb457-12" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb457-13"><a href="#cb457-13" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb455"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb455-1"><a href="#cb455-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb458"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb458-1"><a href="#cb458-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -7899,24 +8020,24 @@ contain the following text:</p> class="tex">T<sub>e</sub>X</span>t Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb456"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb456-1"><a href="#cb456-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> -<span id="cb456-2"><a href="#cb456-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span>[hybrid = yes]</span> -<span id="cb456-3"><a href="#cb456-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> -<span id="cb456-4"><a href="#cb456-4" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb456-5"><a href="#cb456-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> -<span id="cb456-6"><a href="#cb456-6" aria-hidden="true" tabindex="-1"></a>This is _emphasized text_ and this is a math subscript: <span class="ss">$m</span><span class="sc">\_</span><span class="ss">n$</span>.</span> -<span id="cb456-7"><a href="#cb456-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> -<span id="cb456-8"><a href="#cb456-8" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb456-9"><a href="#cb456-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span>[underscores = yes]</span> -<span id="cb456-10"><a href="#cb456-10" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> -<span id="cb456-11"><a href="#cb456-11" aria-hidden="true" tabindex="-1"></a>This is *emphasized text* and this is a math subscript: <span class="ss">$m_n$</span>.</span> -<span id="cb456-12"><a href="#cb456-12" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> -<span id="cb456-13"><a href="#cb456-13" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb456-14"><a href="#cb456-14" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> +<div class="sourceCode" id="cb459"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb459-1"><a href="#cb459-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> +<span id="cb459-2"><a href="#cb459-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span>[hybrid = yes]</span> +<span id="cb459-3"><a href="#cb459-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> +<span id="cb459-4"><a href="#cb459-4" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb459-5"><a href="#cb459-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> +<span id="cb459-6"><a href="#cb459-6" aria-hidden="true" tabindex="-1"></a>This is _emphasized text_ and this is a math subscript: <span class="ss">$m</span><span class="sc">\_</span><span class="ss">n$</span>.</span> +<span id="cb459-7"><a href="#cb459-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> +<span id="cb459-8"><a href="#cb459-8" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb459-9"><a href="#cb459-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span>[underscores = yes]</span> +<span id="cb459-10"><a href="#cb459-10" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> +<span id="cb459-11"><a href="#cb459-11" aria-hidden="true" tabindex="-1"></a>This is *emphasized text* and this is a math subscript: <span class="ss">$m_n$</span>.</span> +<span id="cb459-12"><a href="#cb459-12" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> +<span id="cb459-13"><a href="#cb459-13" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb459-14"><a href="#cb459-14" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb457"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb457-1"><a href="#cb457-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb460"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb460-1"><a href="#cb460-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -7940,45 +8061,45 @@ class="header-section-number">2.2.2.1</span> Setting Lua options from plain <span class="tex">T<sub>e</sub>X</span></h4> <p>As a rule of thumb, you can set all Lua options directly from plain <span class="tex">T<sub>e</sub>X</span>. For example, to set the -<strong><code>taskLists</code></strong> Lua option to <code>true</code>, +<code><strong>taskLists</strong></code> Lua option to <code>true</code>, you would include the following code in your plain <span class="tex">T<sub>e</sub>X</span> document:</p> -<div class="sourceCode" id="cb458"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb458-1"><a href="#cb458-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionTaskLists</span>{true}</span></code></pre></div> +<div class="sourceCode" id="cb461"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb461-1"><a href="#cb461-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionTaskLists</span>{true}</span></code></pre></div> <p>Alternatively, you can also set plain <span class="tex">T<sub>e</sub>X</span> options using the <code>\markdownSetup</code> <span class="tex">T<sub>e</sub>X</span> -macro. For example, to set the <strong><code>taskLists</code></strong> +macro. For example, to set the <code><strong>taskLists</strong></code> Lua option to <code>true</code>, you would include the following code in your plain <span class="tex">T<sub>e</sub>X</span> document:</p> -<div class="sourceCode" id="cb459"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb459-1"><a href="#cb459-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{taskLists = true}</span></code></pre></div> +<div class="sourceCode" id="cb462"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb462-1"><a href="#cb462-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{taskLists = true}</span></code></pre></div> <h4 data-number="2.2.2.2" id="finalizing-and-freezing-the-cache"><span class="header-section-number">2.2.2.2</span> Finalizing and Freezing the Cache</h4> -<p>The <code>\markdownOptionFrozenCache</code> option uses the mapping +<p>The <code>markdownOptionFrozenCache</code> option uses the mapping previously created by the Lua interface -<strong><code>finalizeCache</code></strong> option, and uses it to +<code><strong>finalizeCache</strong></code> option, and uses it to typeset the plain <span class="tex">T<sub>e</sub>X</span> document without invoking Lua. As a result, the plain <span class="tex">T<sub>e</sub>X</span> document becomes more portable, but further changes in the order and the content of markdown documents will not be reflected. It defaults to <code>false</code>.</p> -<p>The standard usage of the <strong><code>finalizeCache</code></strong> -and <strong><code>frozenCache</code></strong> options is as follows:</p> +<p>The standard usage of the <code><strong>finalizeCache</strong></code> +and <code><strong>frozenCache</strong></code> options is as follows:</p> <ol type="1"> -<li>Remove the <strong><code>cacheDir</code></strong> cache directory +<li>Remove the <code><strong>cacheDir</strong></code> cache directory with stale auxiliary cache files.</li> -<li>Enable the <strong><code>finalizeCache</code></strong> option.</li> +<li>Enable the <code><strong>finalizeCache</strong></code> option.</li> <li>Typeset the plain <span class="tex">T<sub>e</sub>X</span> document to populate and finalize the cache.</li> -<li>Enable the <strong><code>frozenCache</code></strong> option.</li> +<li>Enable the <code><strong>frozenCache</strong></code> option.</li> <li>Publish the source code of the plain <span class="tex">T<sub>e</sub>X</span> document and the -<strong><code>cacheDir</code></strong> directory.</li> +<code><strong>cacheDir</strong></code> directory.</li> </ol> <p>For more information, see the examples for the -<strong><code>finalizeCache</code></strong> option.</p> +<code><strong>finalizeCache</strong></code> option.</p> <h4 data-number="2.2.2.3" id="file-and-directory-names"><span class="header-section-number">2.2.2.3</span> File and Directory Names</h4> @@ -7999,22 +8120,22 @@ options.</p> <p>Using a text editor, create a folder named <code>output-directory</code> and a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb460"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb460-1"><a href="#cb460-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> lmfonts</span> -<span id="cb460-2"><a href="#cb460-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> -<span id="cb460-3"><a href="#cb460-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionInputTempFileName</span>{temporary-input.md}</span> -<span id="cb460-4"><a href="#cb460-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionOutputDir</span>{output-directory}</span> -<span id="cb460-5"><a href="#cb460-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionCacheDir</span>{output-directory/cache-directory}</span> -<span id="cb460-6"><a href="#cb460-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionEagerCache</span>{true}</span> -<span id="cb460-7"><a href="#cb460-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionFinalizeCache</span>{true}</span> -<span id="cb460-8"><a href="#cb460-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionFrozenCacheFileName</span>{output-directory/cache-directory/frozen-cache.tex}</span> -<span id="cb460-9"><a href="#cb460-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> -<span id="cb460-10"><a href="#cb460-10" aria-hidden="true" tabindex="-1"></a>Hello *world*!</span> -<span id="cb460-11"><a href="#cb460-11" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> -<span id="cb460-12"><a href="#cb460-12" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> +<div class="sourceCode" id="cb463"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb463-1"><a href="#cb463-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> lmfonts</span> +<span id="cb463-2"><a href="#cb463-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> +<span id="cb463-3"><a href="#cb463-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionInputTempFileName</span>{temporary-input.md}</span> +<span id="cb463-4"><a href="#cb463-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionOutputDir</span>{output-directory}</span> +<span id="cb463-5"><a href="#cb463-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionCacheDir</span>{output-directory/cache-directory}</span> +<span id="cb463-6"><a href="#cb463-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionEagerCache</span>{true}</span> +<span id="cb463-7"><a href="#cb463-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionFinalizeCache</span>{true}</span> +<span id="cb463-8"><a href="#cb463-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionFrozenCacheFileName</span>{output-directory/cache-directory/frozen-cache.tex}</span> +<span id="cb463-9"><a href="#cb463-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> +<span id="cb463-10"><a href="#cb463-10" aria-hidden="true" tabindex="-1"></a>Hello *world*!</span> +<span id="cb463-11"><a href="#cb463-11" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> +<span id="cb463-12"><a href="#cb463-12" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb461"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb461-1"><a href="#cb461-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> <span class="at">--output-directory</span> output-directory document.tex</span></code></pre></div> +<div class="sourceCode" id="cb464"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb464-1"><a href="#cb464-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> <span class="at">--output-directory</span> output-directory document.tex</span></code></pre></div> <p>A text document named <code>temporary-input.md</code> should be produced in the folder named <code>output-directory</code> and contain the following text:</p> @@ -8027,8 +8148,8 @@ document. LuaTeX does not need other temporary files to perform the conversion from markdown to <span class="tex">T<sub>e</sub>X</span>. To produce the remaining temporary files, invoke pdfTeX from the terminal:</p> -<div class="sourceCode" id="cb462"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb462-1"><a href="#cb462-1" aria-hidden="true" tabindex="-1"></a><span class="ex">pdftex</span> <span class="at">--output-directory</span> output-directory <span class="at">--shell-escape</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb465"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb465-1"><a href="#cb465-1" aria-hidden="true" tabindex="-1"></a><span class="ex">pdftex</span> <span class="at">--output-directory</span> output-directory <span class="at">--shell-escape</span> document.tex</span></code></pre></div> <p>Text document named <code>temporary-output.md</code> should be produced in the folder named <code>output-directory</code>. The document will contain the input markdown document converted to <span @@ -8045,7 +8166,7 @@ class="latex">L<sup>a</sup>T<sub>e</sub>X</span> and Con<span class="tex">T<sub>e</sub>X</span>t. Furthermore, the default definitions may change at any time, which may pose a problem for maintainers of Markdown themes and templates who may require a stable output.</p> -<p>The <code>\markdownOptionPlain</code> macro specifies whether +<p>The <code>markdownOptionPlain</code> macro specifies whether higher-level <span class="tex">T<sub>e</sub>X</span> formats should only use the plain <span class="tex">T<sub>e</sub>X</span> default definitions or whether they should also use the format-specific default @@ -8060,33 +8181,33 @@ definitions load extra resources and are subject to a more rapid change.</p> <p>Here is how you would enable the macro in a <span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> document:</p> -<div class="sourceCode" id="cb463"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb463-1"><a href="#cb463-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[plain]{<span class="ex">markdown</span>}</span></code></pre></div> +<div class="sourceCode" id="cb466"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb466-1"><a href="#cb466-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[plain]{<span class="ex">markdown</span>}</span></code></pre></div> <p>Here is how you would enable the macro in a Con<span class="tex">T<sub>e</sub>X</span>t document:</p> -<div class="sourceCode" id="cb464"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb464-1"><a href="#cb464-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionPlain</span>{true}</span> -<span id="cb464-2"><a href="#cb464-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span></code></pre></div> +<div class="sourceCode" id="cb467"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb467-1"><a href="#cb467-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionPlain</span>{true}</span> +<span id="cb467-2"><a href="#cb467-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span></code></pre></div> <p>The macro must be set before or during the loading of the package. Setting the macro after loading the package has no effect.</p> -<p>The <code>\markdownOptionNoDefaults</code> macro specifies whether we +<p>The <code>markdownOptionNoDefaults</code> macro specifies whether we should prevent the loading of default definitions or not. This is useful in contexts, where we want to have total control over how all elements are rendered.</p> <p>Here is how you would enable the macro in a <span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> document:</p> -<div class="sourceCode" id="cb465"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb465-1"><a href="#cb465-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[noDefaults]{<span class="ex">markdown</span>}</span></code></pre></div> +<div class="sourceCode" id="cb468"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb468-1"><a href="#cb468-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[noDefaults]{<span class="ex">markdown</span>}</span></code></pre></div> <p>Here is how you would enable the macro in a Con<span class="tex">T<sub>e</sub>X</span>t document:</p> -<div class="sourceCode" id="cb466"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb466-1"><a href="#cb466-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionNoDefaults</span>{true}</span> -<span id="cb466-2"><a href="#cb466-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span></code></pre></div> +<div class="sourceCode" id="cb469"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb469-1"><a href="#cb469-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionNoDefaults</span>{true}</span> +<span id="cb469-2"><a href="#cb469-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span></code></pre></div> <p>The macro must be set before or during the loading of the package. Setting the macro after loading the package has no effect.</p> <h4 data-number="2.2.2.5" id="package-documentation"><span class="header-section-number">2.2.2.5</span> Package Documentation</h4> -<p>The <code>\markdownOptionStripPercentSigns</code> macro controls +<p>The <code>markdownOptionStripPercentSigns</code> macro controls whether a percent sign (<code>\%</code>) at the beginning of a line will be discarded when reading Markdown input from a <span class="tex">T<sub>e</sub>X</span> document. This enables the use of @@ -8099,21 +8220,21 @@ Mittelbach. The recognized values of the macro are <code>true</code> <code>false</code>.</p> <p>Using a text editor, create a text document named <code>document.dtx</code> with the following content:</p> -<div class="sourceCode" id="cb467"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb467-1"><a href="#cb467-1" aria-hidden="true" tabindex="-1"></a><span class="co">% \iffalse</span></span> -<span id="cb467-2"><a href="#cb467-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">ltxdoc</span>}</span> -<span id="cb467-3"><a href="#cb467-3" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[stripPercentSigns]{<span class="ex">markdown</span>}</span> -<span id="cb467-4"><a href="#cb467-4" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb467-5"><a href="#cb467-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\DocInput</span>{document.dtx}</span> -<span id="cb467-6"><a href="#cb467-6" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span> -<span id="cb467-7"><a href="#cb467-7" aria-hidden="true" tabindex="-1"></a><span class="co">% \fi</span></span> -<span id="cb467-8"><a href="#cb467-8" aria-hidden="true" tabindex="-1"></a><span class="co">%</span></span> -<span id="cb467-9"><a href="#cb467-9" aria-hidden="true" tabindex="-1"></a><span class="co">% \begin{markdown}</span></span> -<span id="cb467-10"><a href="#cb467-10" aria-hidden="true" tabindex="-1"></a><span class="co">% Hello *world*!</span></span> -<span id="cb467-11"><a href="#cb467-11" aria-hidden="true" tabindex="-1"></a><span class="co">% \end{markdown}</span></span></code></pre></div> +<div class="sourceCode" id="cb470"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb470-1"><a href="#cb470-1" aria-hidden="true" tabindex="-1"></a><span class="co">% \iffalse</span></span> +<span id="cb470-2"><a href="#cb470-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">ltxdoc</span>}</span> +<span id="cb470-3"><a href="#cb470-3" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[stripPercentSigns]{<span class="ex">markdown</span>}</span> +<span id="cb470-4"><a href="#cb470-4" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb470-5"><a href="#cb470-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\DocInput</span>{document.dtx}</span> +<span id="cb470-6"><a href="#cb470-6" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span> +<span id="cb470-7"><a href="#cb470-7" aria-hidden="true" tabindex="-1"></a><span class="co">% \fi</span></span> +<span id="cb470-8"><a href="#cb470-8" aria-hidden="true" tabindex="-1"></a><span class="co">%</span></span> +<span id="cb470-9"><a href="#cb470-9" aria-hidden="true" tabindex="-1"></a><span class="co">% \begin{markdown}</span></span> +<span id="cb470-10"><a href="#cb470-10" aria-hidden="true" tabindex="-1"></a><span class="co">% Hello *world*!</span></span> +<span id="cb470-11"><a href="#cb470-11" aria-hidden="true" tabindex="-1"></a><span class="co">% \end{markdown}</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb468"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb468-1"><a href="#cb468-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.dtx</span></code></pre></div> +<div class="sourceCode" id="cb471"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb471-1"><a href="#cb471-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.dtx</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the text “Hello <em>world</em>!”</p> <h3 data-number="2.2.3" id="themes"><span @@ -8125,10 +8246,10 @@ low-level programming.</p> <p>Built-in plain <span class="tex">T<sub>e</sub>X</span> themes provided with the Markdown package include:</p> <dl> -<dt><strong><code>witiko/tilde</code></strong></dt> +<dt><code><strong>witiko/tilde</strong></code></dt> <dd> <p>A theme that makes tilde (<code>~</code>) always typeset the -non-breaking space even when the <strong><code>hybrid</code></strong> +non-breaking space even when the <code><strong>hybrid</strong></code> Lua option is disabled.</p> </dd> </dl> @@ -8136,16 +8257,16 @@ Lua option is disabled.</p> class="tex">T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb469"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb469-1"><a href="#cb469-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> -<span id="cb469-2"><a href="#cb469-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{import=witiko/tilde}</span> -<span id="cb469-3"><a href="#cb469-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> -<span id="cb469-4"><a href="#cb469-4" aria-hidden="true" tabindex="-1"></a>Bartel~Leendert van~der~Waerden</span> -<span id="cb469-5"><a href="#cb469-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> -<span id="cb469-6"><a href="#cb469-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> +<div class="sourceCode" id="cb472"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb472-1"><a href="#cb472-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> +<span id="cb472-2"><a href="#cb472-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{import=witiko/tilde}</span> +<span id="cb472-3"><a href="#cb472-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> +<span id="cb472-4"><a href="#cb472-4" aria-hidden="true" tabindex="-1"></a>Bartel~Leendert van~der~Waerden</span> +<span id="cb472-5"><a href="#cb472-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> +<span id="cb472-6"><a href="#cb472-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb470"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb470-1"><a href="#cb470-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb473"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb473-1"><a href="#cb473-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text, where the middot (<code>·</code>) denotes a non-breaking space:</p> @@ -8153,7 +8274,7 @@ non-breaking space:</p> <p>Bartel·Leendert van·der·Waerden</p> </blockquote> <dl> -<dt><strong><code>witiko/markdown/defaults</code></strong></dt> +<dt><code><strong>witiko/markdown/defaults</strong></code></dt> <dd> <p>A plain <span class="tex">T<sub>e</sub>X</span> theme with the default definitions of token renderer prototypes for plain <span @@ -8169,99 +8290,99 @@ document. Snippets provide syntactic sugar for defining and invoking various options locally.</p> <p>Here is how we can use snippets to store options and invoke them later in <span class="latex">L<sup>a</sup>T<sub>e</sub>X</span>:</p> -<div class="sourceCode" id="cb471"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb471-1"><a href="#cb471-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetupSnippet</span>{romanNumerals}{</span> -<span id="cb471-2"><a href="#cb471-2" aria-hidden="true" tabindex="-1"></a> renderers = {</span> -<span id="cb471-3"><a href="#cb471-3" aria-hidden="true" tabindex="-1"></a> olItemWithNumber = {<span class="co">%</span></span> -<span id="cb471-4"><a href="#cb471-4" aria-hidden="true" tabindex="-1"></a> <span class="fu">\item</span>[<span class="fu">\romannumeral</span>#1<span class="fu">\relax</span>.]<span class="co">%</span></span> -<span id="cb471-5"><a href="#cb471-5" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb471-6"><a href="#cb471-6" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb471-7"><a href="#cb471-7" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb471-8"><a href="#cb471-8" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb471-9"><a href="#cb471-9" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb471-10"><a href="#cb471-10" aria-hidden="true" tabindex="-1"></a>The following ordered list will be preceded by arabic numerals:</span> -<span id="cb471-11"><a href="#cb471-11" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb471-12"><a href="#cb471-12" aria-hidden="true" tabindex="-1"></a>1. wahid</span> -<span id="cb471-13"><a href="#cb471-13" aria-hidden="true" tabindex="-1"></a>2. aithnayn</span> -<span id="cb471-14"><a href="#cb471-14" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb471-15"><a href="#cb471-15" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb471-16"><a href="#cb471-16" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}[snippet=romanNumerals]</span> -<span id="cb471-17"><a href="#cb471-17" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb471-18"><a href="#cb471-18" aria-hidden="true" tabindex="-1"></a>The following ordered list will be preceded by roman numerals:</span> -<span id="cb471-19"><a href="#cb471-19" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb471-20"><a href="#cb471-20" aria-hidden="true" tabindex="-1"></a>3. tres</span> -<span id="cb471-21"><a href="#cb471-21" aria-hidden="true" tabindex="-1"></a>4. quattuor</span> -<span id="cb471-22"><a href="#cb471-22" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb471-23"><a href="#cb471-23" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span></code></pre></div> +<div class="sourceCode" id="cb474"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb474-1"><a href="#cb474-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetupSnippet</span>{romanNumerals}{</span> +<span id="cb474-2"><a href="#cb474-2" aria-hidden="true" tabindex="-1"></a> renderers = {</span> +<span id="cb474-3"><a href="#cb474-3" aria-hidden="true" tabindex="-1"></a> olItemWithNumber = {<span class="co">%</span></span> +<span id="cb474-4"><a href="#cb474-4" aria-hidden="true" tabindex="-1"></a> <span class="fu">\item</span>[<span class="fu">\romannumeral</span>#1<span class="fu">\relax</span>.]<span class="co">%</span></span> +<span id="cb474-5"><a href="#cb474-5" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb474-6"><a href="#cb474-6" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb474-7"><a href="#cb474-7" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb474-8"><a href="#cb474-8" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb474-9"><a href="#cb474-9" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb474-10"><a href="#cb474-10" aria-hidden="true" tabindex="-1"></a>The following ordered list will be preceded by arabic numerals:</span> +<span id="cb474-11"><a href="#cb474-11" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb474-12"><a href="#cb474-12" aria-hidden="true" tabindex="-1"></a>1. wahid</span> +<span id="cb474-13"><a href="#cb474-13" aria-hidden="true" tabindex="-1"></a>2. aithnayn</span> +<span id="cb474-14"><a href="#cb474-14" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb474-15"><a href="#cb474-15" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb474-16"><a href="#cb474-16" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}[snippet=romanNumerals]</span> +<span id="cb474-17"><a href="#cb474-17" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb474-18"><a href="#cb474-18" aria-hidden="true" tabindex="-1"></a>The following ordered list will be preceded by roman numerals:</span> +<span id="cb474-19"><a href="#cb474-19" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb474-20"><a href="#cb474-20" aria-hidden="true" tabindex="-1"></a>3. tres</span> +<span id="cb474-21"><a href="#cb474-21" aria-hidden="true" tabindex="-1"></a>4. quattuor</span> +<span id="cb474-22"><a href="#cb474-22" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb474-23"><a href="#cb474-23" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span></code></pre></div> <p>If the <code>romanNumerals</code> snippet were defined in the <code>jdoe/lists</code> theme, we could import the <code>jdoe/lists</code> theme and use the qualified name <code>jdoe/lists/romanNumerals</code> to invoke the snippet:</p> -<div class="sourceCode" id="cb472"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb472-1"><a href="#cb472-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{import=jdoe/lists}</span> -<span id="cb472-2"><a href="#cb472-2" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}[snippet=jdoe/lists/romanNumerals]</span> -<span id="cb472-3"><a href="#cb472-3" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb472-4"><a href="#cb472-4" aria-hidden="true" tabindex="-1"></a>The following ordered list will be preceded by roman numerals:</span> -<span id="cb472-5"><a href="#cb472-5" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb472-6"><a href="#cb472-6" aria-hidden="true" tabindex="-1"></a>3. tres</span> -<span id="cb472-7"><a href="#cb472-7" aria-hidden="true" tabindex="-1"></a>4. quattuor</span> -<span id="cb472-8"><a href="#cb472-8" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb472-9"><a href="#cb472-9" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span></code></pre></div> +<div class="sourceCode" id="cb475"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb475-1"><a href="#cb475-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{import=jdoe/lists}</span> +<span id="cb475-2"><a href="#cb475-2" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}[snippet=jdoe/lists/romanNumerals]</span> +<span id="cb475-3"><a href="#cb475-3" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb475-4"><a href="#cb475-4" aria-hidden="true" tabindex="-1"></a>The following ordered list will be preceded by roman numerals:</span> +<span id="cb475-5"><a href="#cb475-5" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb475-6"><a href="#cb475-6" aria-hidden="true" tabindex="-1"></a>3. tres</span> +<span id="cb475-7"><a href="#cb475-7" aria-hidden="true" tabindex="-1"></a>4. quattuor</span> +<span id="cb475-8"><a href="#cb475-8" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb475-9"><a href="#cb475-9" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span></code></pre></div> <p>Alternatively, we can use the extended variant of the <code>import</code> <span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> option that allows us to import the <code>romanNumerals</code> snippet to the current namespace for easier access:</p> -<div class="sourceCode" id="cb473"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb473-1"><a href="#cb473-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> -<span id="cb473-2"><a href="#cb473-2" aria-hidden="true" tabindex="-1"></a> import = {</span> -<span id="cb473-3"><a href="#cb473-3" aria-hidden="true" tabindex="-1"></a> jdoe/lists = romanNumerals,</span> -<span id="cb473-4"><a href="#cb473-4" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb473-5"><a href="#cb473-5" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb473-6"><a href="#cb473-6" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}[snippet=romanNumerals]</span> -<span id="cb473-7"><a href="#cb473-7" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb473-8"><a href="#cb473-8" aria-hidden="true" tabindex="-1"></a>The following ordered list will be preceded by roman numerals:</span> -<span id="cb473-9"><a href="#cb473-9" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb473-10"><a href="#cb473-10" aria-hidden="true" tabindex="-1"></a>3. tres</span> -<span id="cb473-11"><a href="#cb473-11" aria-hidden="true" tabindex="-1"></a>4. quattuor</span> -<span id="cb473-12"><a href="#cb473-12" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb473-13"><a href="#cb473-13" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span></code></pre></div> +<div class="sourceCode" id="cb476"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb476-1"><a href="#cb476-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> +<span id="cb476-2"><a href="#cb476-2" aria-hidden="true" tabindex="-1"></a> import = {</span> +<span id="cb476-3"><a href="#cb476-3" aria-hidden="true" tabindex="-1"></a> jdoe/lists = romanNumerals,</span> +<span id="cb476-4"><a href="#cb476-4" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb476-5"><a href="#cb476-5" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb476-6"><a href="#cb476-6" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}[snippet=romanNumerals]</span> +<span id="cb476-7"><a href="#cb476-7" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb476-8"><a href="#cb476-8" aria-hidden="true" tabindex="-1"></a>The following ordered list will be preceded by roman numerals:</span> +<span id="cb476-9"><a href="#cb476-9" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb476-10"><a href="#cb476-10" aria-hidden="true" tabindex="-1"></a>3. tres</span> +<span id="cb476-11"><a href="#cb476-11" aria-hidden="true" tabindex="-1"></a>4. quattuor</span> +<span id="cb476-12"><a href="#cb476-12" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb476-13"><a href="#cb476-13" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span></code></pre></div> <p>Furthermore, we can also specify the name of the snippet in the current namespace, which can be different from the name of the snippet in the <code>jdoe/lists</code> theme. For example, we can make the snippet <code>jdoe/lists/romanNumerals</code> available under the name <code>roman</code>.</p> -<div class="sourceCode" id="cb474"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb474-1"><a href="#cb474-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> -<span id="cb474-2"><a href="#cb474-2" aria-hidden="true" tabindex="-1"></a> import = {</span> -<span id="cb474-3"><a href="#cb474-3" aria-hidden="true" tabindex="-1"></a> jdoe/lists = romanNumerals as roman,</span> -<span id="cb474-4"><a href="#cb474-4" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb474-5"><a href="#cb474-5" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb474-6"><a href="#cb474-6" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}[snippet=roman]</span> -<span id="cb474-7"><a href="#cb474-7" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb474-8"><a href="#cb474-8" aria-hidden="true" tabindex="-1"></a>The following ordered list will be preceded by roman numerals:</span> -<span id="cb474-9"><a href="#cb474-9" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb474-10"><a href="#cb474-10" aria-hidden="true" tabindex="-1"></a>3. tres</span> -<span id="cb474-11"><a href="#cb474-11" aria-hidden="true" tabindex="-1"></a>4. quattuor</span> -<span id="cb474-12"><a href="#cb474-12" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb474-13"><a href="#cb474-13" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span></code></pre></div> +<div class="sourceCode" id="cb477"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb477-1"><a href="#cb477-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> +<span id="cb477-2"><a href="#cb477-2" aria-hidden="true" tabindex="-1"></a> import = {</span> +<span id="cb477-3"><a href="#cb477-3" aria-hidden="true" tabindex="-1"></a> jdoe/lists = romanNumerals as roman,</span> +<span id="cb477-4"><a href="#cb477-4" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb477-5"><a href="#cb477-5" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb477-6"><a href="#cb477-6" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}[snippet=roman]</span> +<span id="cb477-7"><a href="#cb477-7" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb477-8"><a href="#cb477-8" aria-hidden="true" tabindex="-1"></a>The following ordered list will be preceded by roman numerals:</span> +<span id="cb477-9"><a href="#cb477-9" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb477-10"><a href="#cb477-10" aria-hidden="true" tabindex="-1"></a>3. tres</span> +<span id="cb477-11"><a href="#cb477-11" aria-hidden="true" tabindex="-1"></a>4. quattuor</span> +<span id="cb477-12"><a href="#cb477-12" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb477-13"><a href="#cb477-13" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span></code></pre></div> <p>Several themes and/or snippets can be loaded at once using the extended variant of the <code>import</code> <span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> option:</p> -<div class="sourceCode" id="cb475"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb475-1"><a href="#cb475-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> -<span id="cb475-2"><a href="#cb475-2" aria-hidden="true" tabindex="-1"></a> import = {</span> -<span id="cb475-3"><a href="#cb475-3" aria-hidden="true" tabindex="-1"></a> jdoe/longpackagename/lists = {</span> -<span id="cb475-4"><a href="#cb475-4" aria-hidden="true" tabindex="-1"></a> arabic as arabic1,</span> -<span id="cb475-5"><a href="#cb475-5" aria-hidden="true" tabindex="-1"></a> roman,</span> -<span id="cb475-6"><a href="#cb475-6" aria-hidden="true" tabindex="-1"></a> alphabetic,</span> -<span id="cb475-7"><a href="#cb475-7" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb475-8"><a href="#cb475-8" aria-hidden="true" tabindex="-1"></a> jdoe/anotherlongpackagename/lists = {</span> -<span id="cb475-9"><a href="#cb475-9" aria-hidden="true" tabindex="-1"></a> arabic as arabic2,</span> -<span id="cb475-10"><a href="#cb475-10" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb475-11"><a href="#cb475-11" aria-hidden="true" tabindex="-1"></a> jdoe/yetanotherlongpackagename,</span> -<span id="cb475-12"><a href="#cb475-12" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb475-13"><a href="#cb475-13" aria-hidden="true" tabindex="-1"></a>}</span></code></pre></div> +<div class="sourceCode" id="cb478"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb478-1"><a href="#cb478-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> +<span id="cb478-2"><a href="#cb478-2" aria-hidden="true" tabindex="-1"></a> import = {</span> +<span id="cb478-3"><a href="#cb478-3" aria-hidden="true" tabindex="-1"></a> jdoe/longpackagename/lists = {</span> +<span id="cb478-4"><a href="#cb478-4" aria-hidden="true" tabindex="-1"></a> arabic as arabic1,</span> +<span id="cb478-5"><a href="#cb478-5" aria-hidden="true" tabindex="-1"></a> roman,</span> +<span id="cb478-6"><a href="#cb478-6" aria-hidden="true" tabindex="-1"></a> alphabetic,</span> +<span id="cb478-7"><a href="#cb478-7" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb478-8"><a href="#cb478-8" aria-hidden="true" tabindex="-1"></a> jdoe/anotherlongpackagename/lists = {</span> +<span id="cb478-9"><a href="#cb478-9" aria-hidden="true" tabindex="-1"></a> arabic as arabic2,</span> +<span id="cb478-10"><a href="#cb478-10" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb478-11"><a href="#cb478-11" aria-hidden="true" tabindex="-1"></a> jdoe/yetanotherlongpackagename,</span> +<span id="cb478-12"><a href="#cb478-12" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb478-13"><a href="#cb478-13" aria-hidden="true" tabindex="-1"></a>}</span></code></pre></div> <h3 data-number="2.2.5" id="latex-1"><span class="header-section-number">2.2.5</span> <span class="latex">L<sup>a</sup>T<sub>e</sub>X</span></h3> @@ -8276,24 +8397,24 @@ class="tex">T<sub>e</sub>X</span> options from <span class="latex">L<sup>a</sup>T<sub>e</sub>X</span></h4> <p>As a rule of thumb, we can set all Lua options directly from <span class="latex">L<sup>a</sup>T<sub>e</sub>X</span>. For example, to set -the <strong><code>taskLists</code></strong> Lua option to +the <code><strong>taskLists</strong></code> Lua option to <code>true</code>, we would include the following code in our <span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> document:</p> -<div class="sourceCode" id="cb476"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb476-1"><a href="#cb476-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> -<span id="cb476-2"><a href="#cb476-2" aria-hidden="true" tabindex="-1"></a> taskLists = true,</span> -<span id="cb476-3"><a href="#cb476-3" aria-hidden="true" tabindex="-1"></a>}</span></code></pre></div> +<div class="sourceCode" id="cb479"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb479-1"><a href="#cb479-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> +<span id="cb479-2"><a href="#cb479-2" aria-hidden="true" tabindex="-1"></a> taskLists = true,</span> +<span id="cb479-3"><a href="#cb479-3" aria-hidden="true" tabindex="-1"></a>}</span></code></pre></div> <p>We can also set all plain <span class="tex">T<sub>e</sub>X</span> options directly from <span class="latex">L<sup>a</sup>T<sub>e</sub>X</span>. For example, to set the <code>\markdownOptionInputTempFileName</code> plain <span class="tex">T<sub>e</sub>X</span> option to -<code>helper-script.lua</code>, we would inclde the following code in +<code>helper-script.lua</code>, we would include the following code in our <span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> document:</p> -<div class="sourceCode" id="cb477"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb477-1"><a href="#cb477-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> -<span id="cb477-2"><a href="#cb477-2" aria-hidden="true" tabindex="-1"></a> inputTempFileName = temporary-input.md,</span> -<span id="cb477-3"><a href="#cb477-3" aria-hidden="true" tabindex="-1"></a>}</span></code></pre></div> +<div class="sourceCode" id="cb480"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb480-1"><a href="#cb480-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> +<span id="cb480-2"><a href="#cb480-2" aria-hidden="true" tabindex="-1"></a> inputTempFileName = temporary-input.md,</span> +<span id="cb480-3"><a href="#cb480-3" aria-hidden="true" tabindex="-1"></a>}</span></code></pre></div> <h3 data-number="2.2.6" id="latexthemes"><span class="header-section-number">2.2.6</span> Themes</h3> <p>In <span class="latex">L<sup>a</sup>T<sub>e</sub>X</span>, we expand @@ -8318,15 +8439,15 @@ where different code is needed for different <span class="tex">T<sub>e</sub>X</span> formats. To enable code reuse, developers can load the <code>.tex</code> theme file from the <code>.sty</code> theme file using the -<code>\markdownLoadPlainTeXTheme</code> macro.</p> +<code>markdownLoadPlainTeXTheme</code> macro.</p> <p>For example, to load themes named <code>witiko/beamer/MU</code> and <code>witiko/dot</code>, you would use the following code in the preamble of your document:</p> -<div class="sourceCode" id="cb478"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb478-1"><a href="#cb478-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[</span> -<span id="cb478-2"><a href="#cb478-2" aria-hidden="true" tabindex="-1"></a> import=witiko/beamer/MU,</span> -<span id="cb478-3"><a href="#cb478-3" aria-hidden="true" tabindex="-1"></a> import=witiko/dot,</span> -<span id="cb478-4"><a href="#cb478-4" aria-hidden="true" tabindex="-1"></a>]{<span class="ex">markdown</span>}</span></code></pre></div> +<div class="sourceCode" id="cb481"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb481-1"><a href="#cb481-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[</span> +<span id="cb481-2"><a href="#cb481-2" aria-hidden="true" tabindex="-1"></a> import=witiko/beamer/MU,</span> +<span id="cb481-3"><a href="#cb481-3" aria-hidden="true" tabindex="-1"></a> import=witiko/dot,</span> +<span id="cb481-4"><a href="#cb481-4" aria-hidden="true" tabindex="-1"></a>]{<span class="ex">markdown</span>}</span></code></pre></div> <p>Due to limitations of <span class="latex">L<sup>a</sup>T<sub>e</sub>X</span>, themes may not be loaded after the beginning of a <span @@ -8334,14 +8455,14 @@ class="latex">L<sup>a</sup>T<sub>e</sub>X</span> document.</p> <p>Built-in <span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> themes provided with the Markdown package include:</p> <dl> -<dt><strong><code>witiko/dot</code></strong></dt> +<dt><code><strong>witiko/dot</strong></code></dt> <dd> <p>A theme that typesets fenced code blocks with the <code>dot …</code> infostring as images of directed graphs rendered by the Graphviz tools. The right tail of the infostring is used as the image title. The theme requires a Unix-like operating system with GNU Diffutils and Graphviz installed. The theme also requires shell access unless the -<strong><code>frozenCache</code></strong> plain <span +<code><strong>frozenCache</strong></code> plain <span class="tex">T<sub>e</sub>X</span> option is enabled.</p> </dd> </dl> @@ -8349,44 +8470,44 @@ class="tex">T<sub>e</sub>X</span> option is enabled.</p> class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb479"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb479-1"><a href="#cb479-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb479-2"><a href="#cb479-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[import=witiko/dot]{<span class="ex">markdown</span>}</span> -<span id="cb479-3"><a href="#cb479-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\setkeys</span>{Gin}{</span> -<span id="cb479-4"><a href="#cb479-4" aria-hidden="true" tabindex="-1"></a> width=<span class="fu">\columnwidth</span>,</span> -<span id="cb479-5"><a href="#cb479-5" aria-hidden="true" tabindex="-1"></a> height=0.65<span class="fu">\paperheight</span>,</span> -<span id="cb479-6"><a href="#cb479-6" aria-hidden="true" tabindex="-1"></a> keepaspectratio}</span> -<span id="cb479-7"><a href="#cb479-7" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb479-8"><a href="#cb479-8" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb479-9"><a href="#cb479-9" aria-hidden="true" tabindex="-1"></a>``` dot Various formats of mathemathical formulae</span> -<span id="cb479-10"><a href="#cb479-10" aria-hidden="true" tabindex="-1"></a>digraph tree {</span> -<span id="cb479-11"><a href="#cb479-11" aria-hidden="true" tabindex="-1"></a> margin = 0;</span> -<span id="cb479-12"><a href="#cb479-12" aria-hidden="true" tabindex="-1"></a> rankdir = "LR";</span> -<span id="cb479-13"><a href="#cb479-13" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb479-14"><a href="#cb479-14" aria-hidden="true" tabindex="-1"></a> latex -> pmml;</span> -<span id="cb479-15"><a href="#cb479-15" aria-hidden="true" tabindex="-1"></a> latex -> cmml;</span> -<span id="cb479-16"><a href="#cb479-16" aria-hidden="true" tabindex="-1"></a> pmml -> slt;</span> -<span id="cb479-17"><a href="#cb479-17" aria-hidden="true" tabindex="-1"></a> cmml -> opt;</span> -<span id="cb479-18"><a href="#cb479-18" aria-hidden="true" tabindex="-1"></a> cmml -> prefix;</span> -<span id="cb479-19"><a href="#cb479-19" aria-hidden="true" tabindex="-1"></a> cmml -> infix;</span> -<span id="cb479-20"><a href="#cb479-20" aria-hidden="true" tabindex="-1"></a> pmml -> mterms [style=dashed];</span> -<span id="cb479-21"><a href="#cb479-21" aria-hidden="true" tabindex="-1"></a> cmml -> mterms;</span> -<span id="cb479-22"><a href="#cb479-22" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb479-23"><a href="#cb479-23" aria-hidden="true" tabindex="-1"></a> latex [label = "LaTeX"];</span> -<span id="cb479-24"><a href="#cb479-24" aria-hidden="true" tabindex="-1"></a> pmml [label = "Presentation MathML"];</span> -<span id="cb479-25"><a href="#cb479-25" aria-hidden="true" tabindex="-1"></a> cmml [label = "Content MathML"];</span> -<span id="cb479-26"><a href="#cb479-26" aria-hidden="true" tabindex="-1"></a> slt [label = "Symbol Layout Tree"];</span> -<span id="cb479-27"><a href="#cb479-27" aria-hidden="true" tabindex="-1"></a> opt [label = "Operator Tree"];</span> -<span id="cb479-28"><a href="#cb479-28" aria-hidden="true" tabindex="-1"></a> prefix [label = "Prefix"];</span> -<span id="cb479-29"><a href="#cb479-29" aria-hidden="true" tabindex="-1"></a> infix [label = "Infix"];</span> -<span id="cb479-30"><a href="#cb479-30" aria-hidden="true" tabindex="-1"></a> mterms [label = "M-Terms"];</span> -<span id="cb479-31"><a href="#cb479-31" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb479-32"><a href="#cb479-32" aria-hidden="true" tabindex="-1"></a>```</span> -<span id="cb479-33"><a href="#cb479-33" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb479-34"><a href="#cb479-34" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb482"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb482-1"><a href="#cb482-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb482-2"><a href="#cb482-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[import=witiko/dot]{<span class="ex">markdown</span>}</span> +<span id="cb482-3"><a href="#cb482-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\setkeys</span>{Gin}{</span> +<span id="cb482-4"><a href="#cb482-4" aria-hidden="true" tabindex="-1"></a> width=<span class="fu">\columnwidth</span>,</span> +<span id="cb482-5"><a href="#cb482-5" aria-hidden="true" tabindex="-1"></a> height=0.65<span class="fu">\paperheight</span>,</span> +<span id="cb482-6"><a href="#cb482-6" aria-hidden="true" tabindex="-1"></a> keepaspectratio}</span> +<span id="cb482-7"><a href="#cb482-7" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb482-8"><a href="#cb482-8" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb482-9"><a href="#cb482-9" aria-hidden="true" tabindex="-1"></a>``` dot Various formats of mathemathical formulae</span> +<span id="cb482-10"><a href="#cb482-10" aria-hidden="true" tabindex="-1"></a>digraph tree {</span> +<span id="cb482-11"><a href="#cb482-11" aria-hidden="true" tabindex="-1"></a> margin = 0;</span> +<span id="cb482-12"><a href="#cb482-12" aria-hidden="true" tabindex="-1"></a> rankdir = "LR";</span> +<span id="cb482-13"><a href="#cb482-13" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb482-14"><a href="#cb482-14" aria-hidden="true" tabindex="-1"></a> latex -> pmml;</span> +<span id="cb482-15"><a href="#cb482-15" aria-hidden="true" tabindex="-1"></a> latex -> cmml;</span> +<span id="cb482-16"><a href="#cb482-16" aria-hidden="true" tabindex="-1"></a> pmml -> slt;</span> +<span id="cb482-17"><a href="#cb482-17" aria-hidden="true" tabindex="-1"></a> cmml -> opt;</span> +<span id="cb482-18"><a href="#cb482-18" aria-hidden="true" tabindex="-1"></a> cmml -> prefix;</span> +<span id="cb482-19"><a href="#cb482-19" aria-hidden="true" tabindex="-1"></a> cmml -> infix;</span> +<span id="cb482-20"><a href="#cb482-20" aria-hidden="true" tabindex="-1"></a> pmml -> mterms [style=dashed];</span> +<span id="cb482-21"><a href="#cb482-21" aria-hidden="true" tabindex="-1"></a> cmml -> mterms;</span> +<span id="cb482-22"><a href="#cb482-22" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb482-23"><a href="#cb482-23" aria-hidden="true" tabindex="-1"></a> latex [label = "LaTeX"];</span> +<span id="cb482-24"><a href="#cb482-24" aria-hidden="true" tabindex="-1"></a> pmml [label = "Presentation MathML"];</span> +<span id="cb482-25"><a href="#cb482-25" aria-hidden="true" tabindex="-1"></a> cmml [label = "Content MathML"];</span> +<span id="cb482-26"><a href="#cb482-26" aria-hidden="true" tabindex="-1"></a> slt [label = "Symbol Layout Tree"];</span> +<span id="cb482-27"><a href="#cb482-27" aria-hidden="true" tabindex="-1"></a> opt [label = "Operator Tree"];</span> +<span id="cb482-28"><a href="#cb482-28" aria-hidden="true" tabindex="-1"></a> prefix [label = "Prefix"];</span> +<span id="cb482-29"><a href="#cb482-29" aria-hidden="true" tabindex="-1"></a> infix [label = "Infix"];</span> +<span id="cb482-30"><a href="#cb482-30" aria-hidden="true" tabindex="-1"></a> mterms [label = "M-Terms"];</span> +<span id="cb482-31"><a href="#cb482-31" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb482-32"><a href="#cb482-32" aria-hidden="true" tabindex="-1"></a>```</span> +<span id="cb482-33"><a href="#cb482-33" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb482-34"><a href="#cb482-34" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb480"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb480-1"><a href="#cb480-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb483"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb483-1"><a href="#cb483-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain a drawing of a directed graph similar to Figure 1 from the following conference article:</p> @@ -8400,15 +8521,15 @@ href="http://ceur-ws.org/Vol-2696/paper_235.pdf" class="uri">http://ceur-ws.org/Vol-2696/paper_235.pdf</a></p> </blockquote> <dl> -<dt><strong><code>witiko/graphicx/http</code></strong></dt> +<dt><code><strong>witiko/graphicx/http</strong></code></dt> <dd> <p>A theme that adds support for downloading images whose URL has the http or https protocol. The theme requires the -<strong><code>catchfile</code></strong> <span +<code><strong>catchfile</strong></code> <span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> package and a Unix-like operating system with GNU Coreutils <code>md5sum</code> and either GNU Wget or cURL installed. The theme also requires shell access unless the -<strong><code>frozenCache</code></strong> plain <span +<code><strong>frozenCache</strong></code> plain <span class="tex">T<sub>e</sub>X</span> option is enabled.</p> </dd> </dl> @@ -8416,18 +8537,18 @@ class="tex">T<sub>e</sub>X</span> option is enabled.</p> class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb481"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb481-1"><a href="#cb481-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb481-2"><a href="#cb481-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[import=witiko/graphicx/http]{<span class="ex">markdown</span>}</span> -<span id="cb481-3"><a href="#cb481-3" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb481-4"><a href="#cb481-4" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb481-5"><a href="#cb481-5" aria-hidden="true" tabindex="-1"></a>![img](https://github.com/witiko/markdown/raw/main/markdown.png</span> -<span id="cb481-6"><a href="#cb481-6" aria-hidden="true" tabindex="-1"></a> "The banner of the Markdown package")</span> -<span id="cb481-7"><a href="#cb481-7" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb481-8"><a href="#cb481-8" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb484"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb484-1"><a href="#cb484-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb484-2"><a href="#cb484-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[import=witiko/graphicx/http]{<span class="ex">markdown</span>}</span> +<span id="cb484-3"><a href="#cb484-3" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb484-4"><a href="#cb484-4" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb484-5"><a href="#cb484-5" aria-hidden="true" tabindex="-1"></a>![img](https://github.com/witiko/markdown/raw/main/markdown.png</span> +<span id="cb484-6"><a href="#cb484-6" aria-hidden="true" tabindex="-1"></a> "The banner of the Markdown package")</span> +<span id="cb484-7"><a href="#cb484-7" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb484-8"><a href="#cb484-8" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb482"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb482-1"><a href="#cb482-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb485"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb485-1"><a href="#cb485-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following image:</p> <blockquote> @@ -8438,7 +8559,7 @@ title="The banner of the Markdown package" alt="img" /> </figure> </blockquote> <dl> -<dt><strong><code>witiko/markdown/defaults</code></strong></dt> +<dt><code><strong>witiko/markdown/defaults</strong></code></dt> <dd> <p>A <span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> theme with the default definitions of token renderer prototypes for plain <span @@ -8471,16 +8592,16 @@ where different code is needed for different <span class="tex">T<sub>e</sub>X</span> formats. To enable code reuse, developers can load the <code>.tex</code> theme file from the <code>t-*.tex</code> theme file using the -<code>\markdownLoadPlainTeXTheme</code> macro.</p> +<code>markdownLoadPlainTeXTheme</code> macro.</p> <p>For example, to load a theme named <code>witiko/tilde</code> in your document:</p> -<div class="sourceCode" id="cb483"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb483-1"><a href="#cb483-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> -<span id="cb483-2"><a href="#cb483-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span>[import=witiko/tilde]</span></code></pre></div> +<div class="sourceCode" id="cb486"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb486-1"><a href="#cb486-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> +<span id="cb486-2"><a href="#cb486-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span>[import=witiko/tilde]</span></code></pre></div> <p>Built-in Con<span class="tex">T<sub>e</sub>X</span>t themes provided with the Markdown package include:</p> <dl> -<dt><strong><code>witiko/markdown/defaults</code></strong></dt> +<dt><code><strong>witiko/markdown/defaults</strong></code></dt> <dd> <p>A Con<span class="tex">T<sub>e</sub>X</span>t theme with the default definitions of token renderer prototypes for plain <span @@ -8507,26 +8628,26 @@ class="header-section-number">2.3.1.1</span> Attribute Renderers</h4> following options for markdown attributes on different elements is enabled:</p> <ul> -<li><strong><code>autoIdentifiers</code></strong></li> -<li><strong><code>fencedCodeAttributes</code></strong></li> -<li><strong><code>gfmAutoIdentifiers</code></strong></li> -<li><strong><code>headerAttributes</code></strong></li> -<li><strong><code>inlineCodeAttributes</code></strong></li> -<li><strong><code>linkAttributes</code></strong></li> +<li><code><strong>autoIdentifiers</strong></code></li> +<li><code><strong>fencedCodeAttributes</strong></code></li> +<li><code><strong>gfmAutoIdentifiers</strong></code></li> +<li><code><strong>headerAttributes</strong></code></li> +<li><code><strong>inlineCodeAttributes</strong></code></li> +<li><code><strong>linkAttributes</strong></code></li> </ul> -<p><code>\markdownRendererAttributeIdentifier</code> represents the +<p><code>markdownRendererAttributeIdentifier</code> represents the ⟨<em>identifier</em>⟩ of a markdown element (<code>id="</code>⟨<em>identifier</em>⟩<code>"</code> in HTML and <code>#</code>⟨<em>identifier</em>⟩ in markdown attributes). The macro receives a single attribute that corresponds to the ⟨<em>identifier</em>⟩.</p> -<p><code>\markdownRendererAttributeClassName</code> represents the +<p><code>markdownRendererAttributeClassName</code> represents the ⟨<em>class name</em>⟩ of a markdown element (<code>class="</code>⟨<em>class name</em>⟩ …<code>"</code> in HTML and <code>.</code>⟨<em>class name</em>⟩ in markdown attributes). The macro receives a single attribute that corresponds to the ⟨<em>class name</em>⟩.</p> -<p><code>\markdownRendererAttributeKeyValue</code> represents a HTML +<p><code>markdownRendererAttributeKeyValue</code> represents a HTML attribute in the form ⟨<em>key</em>⟩<code>=</code>⟨<em>value</em>⟩ that is neither an identifier nor a class name. The macro receives two attributes that correspond to the ⟨<em>key</em>⟩ and the @@ -8535,42 +8656,42 @@ attributes that correspond to the ⟨<em>key</em>⟩ and the class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb484"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb484-1"><a href="#cb484-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb484-2"><a href="#cb484-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[headerAttributes, underscores=false]{<span class="ex">markdown</span>}</span> -<span id="cb484-3"><a href="#cb484-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> -<span id="cb484-4"><a href="#cb484-4" aria-hidden="true" tabindex="-1"></a> renderers = {</span> -<span id="cb484-5"><a href="#cb484-5" aria-hidden="true" tabindex="-1"></a> attributeIdentifier = {<span class="co">%</span></span> -<span id="cb484-6"><a href="#cb484-6" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> -<span id="cb484-7"><a href="#cb484-7" aria-hidden="true" tabindex="-1"></a> <span class="fu">\emph</span>{(Identifier: #1)}</span> -<span id="cb484-8"><a href="#cb484-8" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> -<span id="cb484-9"><a href="#cb484-9" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb484-10"><a href="#cb484-10" aria-hidden="true" tabindex="-1"></a> attributeClassName = {<span class="co">%</span></span> -<span id="cb484-11"><a href="#cb484-11" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> -<span id="cb484-12"><a href="#cb484-12" aria-hidden="true" tabindex="-1"></a> <span class="fu">\emph</span>{(Class name: #1)}</span> -<span id="cb484-13"><a href="#cb484-13" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> -<span id="cb484-14"><a href="#cb484-14" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb484-15"><a href="#cb484-15" aria-hidden="true" tabindex="-1"></a> attributeKeyValue = {<span class="co">%</span></span> -<span id="cb484-16"><a href="#cb484-16" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> -<span id="cb484-17"><a href="#cb484-17" aria-hidden="true" tabindex="-1"></a> <span class="fu">\emph</span>{(Key: #1, Value: #2)}</span> -<span id="cb484-18"><a href="#cb484-18" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> -<span id="cb484-19"><a href="#cb484-19" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb484-20"><a href="#cb484-20" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb484-21"><a href="#cb484-21" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb484-22"><a href="#cb484-22" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb484-23"><a href="#cb484-23" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb484-24"><a href="#cb484-24" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb484-25"><a href="#cb484-25" aria-hidden="true" tabindex="-1"></a># First top-level heading {jane=doe}</span> -<span id="cb484-26"><a href="#cb484-26" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb484-27"><a href="#cb484-27" aria-hidden="true" tabindex="-1"></a>## A subheading {#identifier}</span> -<span id="cb484-28"><a href="#cb484-28" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb484-29"><a href="#cb484-29" aria-hidden="true" tabindex="-1"></a># Second top-level heading {.class_name}</span> -<span id="cb484-30"><a href="#cb484-30" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb484-31"><a href="#cb484-31" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb484-32"><a href="#cb484-32" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb487"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb487-1"><a href="#cb487-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb487-2"><a href="#cb487-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[headerAttributes, underscores=false]{<span class="ex">markdown</span>}</span> +<span id="cb487-3"><a href="#cb487-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> +<span id="cb487-4"><a href="#cb487-4" aria-hidden="true" tabindex="-1"></a> renderers = {</span> +<span id="cb487-5"><a href="#cb487-5" aria-hidden="true" tabindex="-1"></a> attributeIdentifier = {<span class="co">%</span></span> +<span id="cb487-6"><a href="#cb487-6" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> +<span id="cb487-7"><a href="#cb487-7" aria-hidden="true" tabindex="-1"></a> <span class="fu">\emph</span>{(Identifier: #1)}</span> +<span id="cb487-8"><a href="#cb487-8" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> +<span id="cb487-9"><a href="#cb487-9" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb487-10"><a href="#cb487-10" aria-hidden="true" tabindex="-1"></a> attributeClassName = {<span class="co">%</span></span> +<span id="cb487-11"><a href="#cb487-11" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> +<span id="cb487-12"><a href="#cb487-12" aria-hidden="true" tabindex="-1"></a> <span class="fu">\emph</span>{(Class name: #1)}</span> +<span id="cb487-13"><a href="#cb487-13" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> +<span id="cb487-14"><a href="#cb487-14" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb487-15"><a href="#cb487-15" aria-hidden="true" tabindex="-1"></a> attributeKeyValue = {<span class="co">%</span></span> +<span id="cb487-16"><a href="#cb487-16" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> +<span id="cb487-17"><a href="#cb487-17" aria-hidden="true" tabindex="-1"></a> <span class="fu">\emph</span>{(Key: #1, Value: #2)}</span> +<span id="cb487-18"><a href="#cb487-18" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> +<span id="cb487-19"><a href="#cb487-19" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb487-20"><a href="#cb487-20" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb487-21"><a href="#cb487-21" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb487-22"><a href="#cb487-22" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb487-23"><a href="#cb487-23" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb487-24"><a href="#cb487-24" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb487-25"><a href="#cb487-25" aria-hidden="true" tabindex="-1"></a># First top-level heading {jane=doe}</span> +<span id="cb487-26"><a href="#cb487-26" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb487-27"><a href="#cb487-27" aria-hidden="true" tabindex="-1"></a>## A subheading {#identifier}</span> +<span id="cb487-28"><a href="#cb487-28" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb487-29"><a href="#cb487-29" aria-hidden="true" tabindex="-1"></a># Second top-level heading {.class_name}</span> +<span id="cb487-30"><a href="#cb487-30" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb487-31"><a href="#cb487-31" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb487-32"><a href="#cb487-32" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb485"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb485-1"><a href="#cb485-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb488"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb488-1"><a href="#cb488-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -8583,39 +8704,39 @@ contain the following text:</p> </blockquote> <h4 data-number="2.3.1.2" id="block-quote-renderers"><span class="header-section-number">2.3.1.2</span> Block Quote Renderers</h4> -<p>The <code>\markdownRendererBlockQuoteBegin</code> macro represents -the beginning of a block quote. The macro receives no arguments.</p> -<p>The <code>\markdownRendererBlockQuoteEnd</code> macro represents the +<p>The <code>markdownRendererBlockQuoteBegin</code> macro represents the +beginning of a block quote. The macro receives no arguments.</p> +<p>The <code>markdownRendererBlockQuoteEnd</code> macro represents the end of a block quote. The macro receives no arguments.</p> <h5 class="unnumbered" id="plain-tex-example-25">Plain <span class="tex">T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb486"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb486-1"><a href="#cb486-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> -<span id="cb486-2"><a href="#cb486-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererBlockQuoteBegin</span>{<span class="co">%</span></span> -<span id="cb486-3"><a href="#cb486-3" aria-hidden="true" tabindex="-1"></a> <span class="fu">\begingroup</span></span> -<span id="cb486-4"><a href="#cb486-4" aria-hidden="true" tabindex="-1"></a> <span class="fu">\vskip\parindent</span></span> -<span id="cb486-5"><a href="#cb486-5" aria-hidden="true" tabindex="-1"></a> <span class="fu">\leftskip</span>=2<span class="fu">\parindent</span></span> -<span id="cb486-6"><a href="#cb486-6" aria-hidden="true" tabindex="-1"></a> <span class="fu">\parindent</span>=0pt</span> -<span id="cb486-7"><a href="#cb486-7" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb486-8"><a href="#cb486-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererBlockQuoteEnd</span>{<span class="co">%</span></span> -<span id="cb486-9"><a href="#cb486-9" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> -<span id="cb486-10"><a href="#cb486-10" aria-hidden="true" tabindex="-1"></a> <span class="fu">\vskip\parindent</span></span> -<span id="cb486-11"><a href="#cb486-11" aria-hidden="true" tabindex="-1"></a> <span class="fu">\endgroup</span></span> -<span id="cb486-12"><a href="#cb486-12" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb486-13"><a href="#cb486-13" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> -<span id="cb486-14"><a href="#cb486-14" aria-hidden="true" tabindex="-1"></a>A quote from William Shakespeare's King Lear:</span> -<span id="cb486-15"><a href="#cb486-15" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb486-16"><a href="#cb486-16" aria-hidden="true" tabindex="-1"></a>> This is the excellent foppery of the world that when we are</span> -<span id="cb486-17"><a href="#cb486-17" aria-hidden="true" tabindex="-1"></a>> sick in fortune---often the surfeit of our own behavior---we</span> -<span id="cb486-18"><a href="#cb486-18" aria-hidden="true" tabindex="-1"></a>> make guilty of our disasters the sun, the moon, and the</span> -<span id="cb486-19"><a href="#cb486-19" aria-hidden="true" tabindex="-1"></a>> stars [...]</span> -<span id="cb486-20"><a href="#cb486-20" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> -<span id="cb486-21"><a href="#cb486-21" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> +<div class="sourceCode" id="cb489"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb489-1"><a href="#cb489-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> +<span id="cb489-2"><a href="#cb489-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererBlockQuoteBegin</span>{<span class="co">%</span></span> +<span id="cb489-3"><a href="#cb489-3" aria-hidden="true" tabindex="-1"></a> <span class="fu">\begingroup</span></span> +<span id="cb489-4"><a href="#cb489-4" aria-hidden="true" tabindex="-1"></a> <span class="fu">\vskip\parindent</span></span> +<span id="cb489-5"><a href="#cb489-5" aria-hidden="true" tabindex="-1"></a> <span class="fu">\leftskip</span>=2<span class="fu">\parindent</span></span> +<span id="cb489-6"><a href="#cb489-6" aria-hidden="true" tabindex="-1"></a> <span class="fu">\parindent</span>=0pt</span> +<span id="cb489-7"><a href="#cb489-7" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb489-8"><a href="#cb489-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererBlockQuoteEnd</span>{<span class="co">%</span></span> +<span id="cb489-9"><a href="#cb489-9" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> +<span id="cb489-10"><a href="#cb489-10" aria-hidden="true" tabindex="-1"></a> <span class="fu">\vskip\parindent</span></span> +<span id="cb489-11"><a href="#cb489-11" aria-hidden="true" tabindex="-1"></a> <span class="fu">\endgroup</span></span> +<span id="cb489-12"><a href="#cb489-12" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb489-13"><a href="#cb489-13" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> +<span id="cb489-14"><a href="#cb489-14" aria-hidden="true" tabindex="-1"></a>A quote from William Shakespeare's King Lear:</span> +<span id="cb489-15"><a href="#cb489-15" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb489-16"><a href="#cb489-16" aria-hidden="true" tabindex="-1"></a>> This is the excellent foppery of the world that when we are</span> +<span id="cb489-17"><a href="#cb489-17" aria-hidden="true" tabindex="-1"></a>> sick in fortune---often the surfeit of our own behavior---we</span> +<span id="cb489-18"><a href="#cb489-18" aria-hidden="true" tabindex="-1"></a>> make guilty of our disasters the sun, the moon, and the</span> +<span id="cb489-19"><a href="#cb489-19" aria-hidden="true" tabindex="-1"></a>> stars [...]</span> +<span id="cb489-20"><a href="#cb489-20" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> +<span id="cb489-21"><a href="#cb489-21" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb487"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb487-1"><a href="#cb487-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb490"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb490-1"><a href="#cb490-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -8630,28 +8751,28 @@ disasters the sun, the moon, and the stars […]</p> class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb488"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb488-1"><a href="#cb488-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb488-2"><a href="#cb488-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>{<span class="ex">markdown</span>}</span> -<span id="cb488-3"><a href="#cb488-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> -<span id="cb488-4"><a href="#cb488-4" aria-hidden="true" tabindex="-1"></a> renderers = {</span> -<span id="cb488-5"><a href="#cb488-5" aria-hidden="true" tabindex="-1"></a> blockQuoteBegin = {<span class="kw">\begin</span>{<span class="ex">quote</span>}},</span> -<span id="cb488-6"><a href="#cb488-6" aria-hidden="true" tabindex="-1"></a> blockQuoteEnd = {<span class="kw">\end</span>{<span class="ex">quote</span>}},</span> -<span id="cb488-7"><a href="#cb488-7" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb488-8"><a href="#cb488-8" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb488-9"><a href="#cb488-9" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb488-10"><a href="#cb488-10" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb488-11"><a href="#cb488-11" aria-hidden="true" tabindex="-1"></a>A quote from William Shakespeare's King Lear:</span> -<span id="cb488-12"><a href="#cb488-12" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb488-13"><a href="#cb488-13" aria-hidden="true" tabindex="-1"></a>> This is the excellent foppery of the world that when we are</span> -<span id="cb488-14"><a href="#cb488-14" aria-hidden="true" tabindex="-1"></a>> sick in fortune---often the surfeit of our own behavior---we</span> -<span id="cb488-15"><a href="#cb488-15" aria-hidden="true" tabindex="-1"></a>> make guilty of our disasters the sun, the moon, and the</span> -<span id="cb488-16"><a href="#cb488-16" aria-hidden="true" tabindex="-1"></a>> stars [...]</span> -<span id="cb488-17"><a href="#cb488-17" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb488-18"><a href="#cb488-18" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb491"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb491-1"><a href="#cb491-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb491-2"><a href="#cb491-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>{<span class="ex">markdown</span>}</span> +<span id="cb491-3"><a href="#cb491-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> +<span id="cb491-4"><a href="#cb491-4" aria-hidden="true" tabindex="-1"></a> renderers = {</span> +<span id="cb491-5"><a href="#cb491-5" aria-hidden="true" tabindex="-1"></a> blockQuoteBegin = {<span class="kw">\begin</span>{<span class="ex">quote</span>}},</span> +<span id="cb491-6"><a href="#cb491-6" aria-hidden="true" tabindex="-1"></a> blockQuoteEnd = {<span class="kw">\end</span>{<span class="ex">quote</span>}},</span> +<span id="cb491-7"><a href="#cb491-7" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb491-8"><a href="#cb491-8" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb491-9"><a href="#cb491-9" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb491-10"><a href="#cb491-10" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb491-11"><a href="#cb491-11" aria-hidden="true" tabindex="-1"></a>A quote from William Shakespeare's King Lear:</span> +<span id="cb491-12"><a href="#cb491-12" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb491-13"><a href="#cb491-13" aria-hidden="true" tabindex="-1"></a>> This is the excellent foppery of the world that when we are</span> +<span id="cb491-14"><a href="#cb491-14" aria-hidden="true" tabindex="-1"></a>> sick in fortune---often the surfeit of our own behavior---we</span> +<span id="cb491-15"><a href="#cb491-15" aria-hidden="true" tabindex="-1"></a>> make guilty of our disasters the sun, the moon, and the</span> +<span id="cb491-16"><a href="#cb491-16" aria-hidden="true" tabindex="-1"></a>> stars [...]</span> +<span id="cb491-17"><a href="#cb491-17" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb491-18"><a href="#cb491-18" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb489"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb489-1"><a href="#cb489-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb492"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb492-1"><a href="#cb492-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -8666,23 +8787,23 @@ disasters the sun, the moon, and the stars […]</p> class="tex">T<sub>e</sub>X</span>t Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb490"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb490-1"><a href="#cb490-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> -<span id="cb490-2"><a href="#cb490-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererBlockQuoteBegin</span>{<span class="fu">\startquotation</span>}</span> -<span id="cb490-3"><a href="#cb490-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererBlockQuoteEnd</span>{<span class="fu">\stopquotation</span>}</span> -<span id="cb490-4"><a href="#cb490-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> -<span id="cb490-5"><a href="#cb490-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> -<span id="cb490-6"><a href="#cb490-6" aria-hidden="true" tabindex="-1"></a>A quote from William Shakespeare's King Lear:</span> -<span id="cb490-7"><a href="#cb490-7" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb490-8"><a href="#cb490-8" aria-hidden="true" tabindex="-1"></a>> This is the excellent foppery of the world that when we are</span> -<span id="cb490-9"><a href="#cb490-9" aria-hidden="true" tabindex="-1"></a>> sick in fortune---often the surfeit of our own behavior---we</span> -<span id="cb490-10"><a href="#cb490-10" aria-hidden="true" tabindex="-1"></a>> make guilty of our disasters the sun, the moon, and the</span> -<span id="cb490-11"><a href="#cb490-11" aria-hidden="true" tabindex="-1"></a>> stars [...]</span> -<span id="cb490-12"><a href="#cb490-12" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> -<span id="cb490-13"><a href="#cb490-13" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> +<div class="sourceCode" id="cb493"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb493-1"><a href="#cb493-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> +<span id="cb493-2"><a href="#cb493-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererBlockQuoteBegin</span>{<span class="fu">\startquotation</span>}</span> +<span id="cb493-3"><a href="#cb493-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererBlockQuoteEnd</span>{<span class="fu">\stopquotation</span>}</span> +<span id="cb493-4"><a href="#cb493-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> +<span id="cb493-5"><a href="#cb493-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> +<span id="cb493-6"><a href="#cb493-6" aria-hidden="true" tabindex="-1"></a>A quote from William Shakespeare's King Lear:</span> +<span id="cb493-7"><a href="#cb493-7" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb493-8"><a href="#cb493-8" aria-hidden="true" tabindex="-1"></a>> This is the excellent foppery of the world that when we are</span> +<span id="cb493-9"><a href="#cb493-9" aria-hidden="true" tabindex="-1"></a>> sick in fortune---often the surfeit of our own behavior---we</span> +<span id="cb493-10"><a href="#cb493-10" aria-hidden="true" tabindex="-1"></a>> make guilty of our disasters the sun, the moon, and the</span> +<span id="cb493-11"><a href="#cb493-11" aria-hidden="true" tabindex="-1"></a>> stars [...]</span> +<span id="cb493-12"><a href="#cb493-12" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> +<span id="cb493-13"><a href="#cb493-13" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb491"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb491-1"><a href="#cb491-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb494"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb494-1"><a href="#cb494-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -8698,35 +8819,34 @@ id="bracketed-spans-attribute-context-renderers"><span class="header-section-number">2.3.1.3</span> Bracketed Spans Attribute Context Renderers</h4> <p>The following macros are only produced, when the -<strong><code>bracketedSpans</code></strong> option is enabled.</p> -<p>The <code>\markdownRendererBracketedSpanAttributeContextBegin</code> -and <code>\markdownRendererBracketedSpanAttributeContextEnd</code> -macros represent the beginning and the end of a context in which the -attributes of an inline bracketed span apply. The macros receive no -arguments.</p> +<code><strong>bracketedSpans</strong></code> option is enabled.</p> +<p>The <code>markdownRendererBracketedSpanAttributeContextBegin</code> +and <code>markdownRendererBracketedSpanAttributeContextEnd</code> macros +represent the beginning and the end of a context in which the attributes +of an inline bracketed span apply. The macros receive no arguments.</p> <h5 class="unnumbered" id="latex-example-58"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb492"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb492-1"><a href="#cb492-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb492-2"><a href="#cb492-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[bracketedSpans]{<span class="ex">markdown</span>}</span> -<span id="cb492-3"><a href="#cb492-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> -<span id="cb492-4"><a href="#cb492-4" aria-hidden="true" tabindex="-1"></a> renderers = {</span> -<span id="cb492-5"><a href="#cb492-5" aria-hidden="true" tabindex="-1"></a> bracketedSpanAttributeContextBegin = {(},</span> -<span id="cb492-6"><a href="#cb492-6" aria-hidden="true" tabindex="-1"></a> bracketedSpanAttributeContextEnd = {)},</span> -<span id="cb492-7"><a href="#cb492-7" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb492-8"><a href="#cb492-8" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb492-9"><a href="#cb492-9" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb492-10"><a href="#cb492-10" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb492-11"><a href="#cb492-11" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb492-12"><a href="#cb492-12" aria-hidden="true" tabindex="-1"></a>[foo [bar]{#identifier}]{key=value} [baz]{.class_name}</span> -<span id="cb492-13"><a href="#cb492-13" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb492-14"><a href="#cb492-14" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb492-15"><a href="#cb492-15" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb495"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb495-1"><a href="#cb495-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb495-2"><a href="#cb495-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[bracketedSpans]{<span class="ex">markdown</span>}</span> +<span id="cb495-3"><a href="#cb495-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> +<span id="cb495-4"><a href="#cb495-4" aria-hidden="true" tabindex="-1"></a> renderers = {</span> +<span id="cb495-5"><a href="#cb495-5" aria-hidden="true" tabindex="-1"></a> bracketedSpanAttributeContextBegin = {(},</span> +<span id="cb495-6"><a href="#cb495-6" aria-hidden="true" tabindex="-1"></a> bracketedSpanAttributeContextEnd = {)},</span> +<span id="cb495-7"><a href="#cb495-7" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb495-8"><a href="#cb495-8" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb495-9"><a href="#cb495-9" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb495-10"><a href="#cb495-10" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb495-11"><a href="#cb495-11" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb495-12"><a href="#cb495-12" aria-hidden="true" tabindex="-1"></a>[foo [bar]{#identifier}]{key=value} [baz]{.class_name}</span> +<span id="cb495-13"><a href="#cb495-13" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb495-14"><a href="#cb495-14" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb495-15"><a href="#cb495-15" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb493"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb493-1"><a href="#cb493-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb496"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb496-1"><a href="#cb496-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -8734,77 +8854,77 @@ contain the following text:</p> </blockquote> <h4 data-number="2.3.1.4" id="bullet-list-renderers"><span class="header-section-number">2.3.1.4</span> Bullet List Renderers</h4> -<p>The <code>\markdownRendererUlBegin</code> macro represents the +<p>The <code>markdownRendererUlBegin</code> macro represents the beginning of a bulleted list that contains an item with several paragraphs of text (the list is not tight). The macro receives no arguments.</p> -<p>The <code>\markdownRendererUlBeginTight</code> macro represents the +<p>The <code>markdownRendererUlBeginTight</code> macro represents the beginning of a bulleted list that contains no item with several paragraphs of text (the list is tight). This macro will only be -produced, when the <strong><code>tightLists</code></strong> option is +produced, when the <code><strong>tightLists</strong></code> option is disabled. The macro receives no arguments.</p> -<p>The <code>\markdownRendererUlItem</code> macro represents an item in -a bulleted list. The macro receives no arguments.</p> -<p>The <code>\markdownRendererUlItemEnd</code> macro represents the end +<p>The <code>markdownRendererUlItem</code> macro represents an item in a +bulleted list. The macro receives no arguments.</p> +<p>The <code>markdownRendererUlItemEnd</code> macro represents the end of an item in a bulleted list. The macro receives no arguments.</p> -<p>The <code>\markdownRendererUlEnd</code> macro represents the end of a +<p>The <code>markdownRendererUlEnd</code> macro represents the end of a bulleted list that contains an item with several paragraphs of text (the list is not tight). The macro receives no arguments.</p> -<p>The <code>\markdownRendererUlEndTight</code> macro represents the end +<p>The <code>markdownRendererUlEndTight</code> macro represents the end of a bulleted list that contains no item with several paragraphs of text (the list is tight). This macro will only be produced, when the -<strong><code>tightLists</code></strong> option is disabled. The macro +<code><strong>tightLists</strong></code> option is disabled. The macro receives no arguments.</p> <h5 class="unnumbered" id="plain-tex-example-26">Plain <span class="tex">T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb494"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb494-1"><a href="#cb494-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> -<span id="cb494-2"><a href="#cb494-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionTightLists</span>{true}</span> -<span id="cb494-3"><a href="#cb494-3" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb494-4"><a href="#cb494-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererInterblockSeparator</span>{}</span> -<span id="cb494-5"><a href="#cb494-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererUlBeginTight</span>{ (}</span> -<span id="cb494-6"><a href="#cb494-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererUlItem</span>{<span class="co">%</span></span> -<span id="cb494-7"><a href="#cb494-7" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererUlItem</span>{<span class="co">%</span></span> -<span id="cb494-8"><a href="#cb494-8" aria-hidden="true" tabindex="-1"></a> ,</span> -<span id="cb494-9"><a href="#cb494-9" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererUlItem</span>{, and }<span class="co">%</span></span> -<span id="cb494-10"><a href="#cb494-10" aria-hidden="true" tabindex="-1"></a> }<span class="co">%</span></span> -<span id="cb494-11"><a href="#cb494-11" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb494-12"><a href="#cb494-12" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererUlItemEnd</span>{}</span> -<span id="cb494-13"><a href="#cb494-13" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererUlEndTight</span>{).}</span> -<span id="cb494-14"><a href="#cb494-14" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb494-15"><a href="#cb494-15" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> -<span id="cb494-16"><a href="#cb494-16" aria-hidden="true" tabindex="-1"></a>This is a tight list</span> -<span id="cb494-17"><a href="#cb494-17" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb494-18"><a href="#cb494-18" aria-hidden="true" tabindex="-1"></a>- the first item</span> -<span id="cb494-19"><a href="#cb494-19" aria-hidden="true" tabindex="-1"></a>- the second item</span> -<span id="cb494-20"><a href="#cb494-20" aria-hidden="true" tabindex="-1"></a>- the third item</span> -<span id="cb494-21"><a href="#cb494-21" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> -<span id="cb494-22"><a href="#cb494-22" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb494-23"><a href="#cb494-23" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="co">%</span></span> -<span id="cb494-24"><a href="#cb494-24" aria-hidden="true" tabindex="-1"></a> :<span class="fu">\par</span></span> -<span id="cb494-25"><a href="#cb494-25" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="fu">\par</span>}<span class="co">%</span></span> -<span id="cb494-26"><a href="#cb494-26" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb494-27"><a href="#cb494-27" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererUlBegin</span>{}</span> -<span id="cb494-28"><a href="#cb494-28" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererUlItem</span>{--<span class="fu">\kern</span> 0.5em}</span> -<span id="cb494-29"><a href="#cb494-29" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererUlItemEnd</span>{.<span class="fu">\par</span>}</span> -<span id="cb494-30"><a href="#cb494-30" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererUlEnd</span>{}</span> -<span id="cb494-31"><a href="#cb494-31" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb494-32"><a href="#cb494-32" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> -<span id="cb494-33"><a href="#cb494-33" aria-hidden="true" tabindex="-1"></a>This is a loose list</span> -<span id="cb494-34"><a href="#cb494-34" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb494-35"><a href="#cb494-35" aria-hidden="true" tabindex="-1"></a>- This is the first item</span> -<span id="cb494-36"><a href="#cb494-36" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb494-37"><a href="#cb494-37" aria-hidden="true" tabindex="-1"></a>- This is the second item</span> -<span id="cb494-38"><a href="#cb494-38" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb494-39"><a href="#cb494-39" aria-hidden="true" tabindex="-1"></a>- This is the third item</span> -<span id="cb494-40"><a href="#cb494-40" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> -<span id="cb494-41"><a href="#cb494-41" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb494-42"><a href="#cb494-42" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> +<div class="sourceCode" id="cb497"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb497-1"><a href="#cb497-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> +<span id="cb497-2"><a href="#cb497-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionTightLists</span>{true}</span> +<span id="cb497-3"><a href="#cb497-3" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb497-4"><a href="#cb497-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererInterblockSeparator</span>{}</span> +<span id="cb497-5"><a href="#cb497-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererUlBeginTight</span>{ (}</span> +<span id="cb497-6"><a href="#cb497-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererUlItem</span>{<span class="co">%</span></span> +<span id="cb497-7"><a href="#cb497-7" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererUlItem</span>{<span class="co">%</span></span> +<span id="cb497-8"><a href="#cb497-8" aria-hidden="true" tabindex="-1"></a> ,</span> +<span id="cb497-9"><a href="#cb497-9" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererUlItem</span>{, and }<span class="co">%</span></span> +<span id="cb497-10"><a href="#cb497-10" aria-hidden="true" tabindex="-1"></a> }<span class="co">%</span></span> +<span id="cb497-11"><a href="#cb497-11" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb497-12"><a href="#cb497-12" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererUlItemEnd</span>{}</span> +<span id="cb497-13"><a href="#cb497-13" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererUlEndTight</span>{).}</span> +<span id="cb497-14"><a href="#cb497-14" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb497-15"><a href="#cb497-15" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> +<span id="cb497-16"><a href="#cb497-16" aria-hidden="true" tabindex="-1"></a>This is a tight list</span> +<span id="cb497-17"><a href="#cb497-17" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb497-18"><a href="#cb497-18" aria-hidden="true" tabindex="-1"></a>- the first item</span> +<span id="cb497-19"><a href="#cb497-19" aria-hidden="true" tabindex="-1"></a>- the second item</span> +<span id="cb497-20"><a href="#cb497-20" aria-hidden="true" tabindex="-1"></a>- the third item</span> +<span id="cb497-21"><a href="#cb497-21" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> +<span id="cb497-22"><a href="#cb497-22" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb497-23"><a href="#cb497-23" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="co">%</span></span> +<span id="cb497-24"><a href="#cb497-24" aria-hidden="true" tabindex="-1"></a> :<span class="fu">\par</span></span> +<span id="cb497-25"><a href="#cb497-25" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="fu">\par</span>}<span class="co">%</span></span> +<span id="cb497-26"><a href="#cb497-26" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb497-27"><a href="#cb497-27" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererUlBegin</span>{}</span> +<span id="cb497-28"><a href="#cb497-28" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererUlItem</span>{--<span class="fu">\kern</span> 0.5em}</span> +<span id="cb497-29"><a href="#cb497-29" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererUlItemEnd</span>{.<span class="fu">\par</span>}</span> +<span id="cb497-30"><a href="#cb497-30" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererUlEnd</span>{}</span> +<span id="cb497-31"><a href="#cb497-31" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb497-32"><a href="#cb497-32" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> +<span id="cb497-33"><a href="#cb497-33" aria-hidden="true" tabindex="-1"></a>This is a loose list</span> +<span id="cb497-34"><a href="#cb497-34" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb497-35"><a href="#cb497-35" aria-hidden="true" tabindex="-1"></a>- This is the first item</span> +<span id="cb497-36"><a href="#cb497-36" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb497-37"><a href="#cb497-37" aria-hidden="true" tabindex="-1"></a>- This is the second item</span> +<span id="cb497-38"><a href="#cb497-38" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb497-39"><a href="#cb497-39" aria-hidden="true" tabindex="-1"></a>- This is the third item</span> +<span id="cb497-40"><a href="#cb497-40" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> +<span id="cb497-41"><a href="#cb497-41" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb497-42"><a href="#cb497-42" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb495"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb495-1"><a href="#cb495-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb498"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb498-1"><a href="#cb498-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -8821,57 +8941,57 @@ item).</p> class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb496"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb496-1"><a href="#cb496-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb496-2"><a href="#cb496-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[tightLists]{<span class="ex">markdown</span>}</span> -<span id="cb496-3"><a href="#cb496-3" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb496-4"><a href="#cb496-4" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb496-5"><a href="#cb496-5" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}[</span> -<span id="cb496-6"><a href="#cb496-6" aria-hidden="true" tabindex="-1"></a> renderers = {</span> -<span id="cb496-7"><a href="#cb496-7" aria-hidden="true" tabindex="-1"></a> interblockSeparator = {},</span> -<span id="cb496-8"><a href="#cb496-8" aria-hidden="true" tabindex="-1"></a> ulBeginTight = { (},</span> -<span id="cb496-9"><a href="#cb496-9" aria-hidden="true" tabindex="-1"></a> ulItem = {<span class="co">%</span></span> -<span id="cb496-10"><a href="#cb496-10" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererUlItem</span>{<span class="co">%</span></span> -<span id="cb496-11"><a href="#cb496-11" aria-hidden="true" tabindex="-1"></a> ,</span> -<span id="cb496-12"><a href="#cb496-12" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererUlItem</span>{, and }<span class="co">%</span></span> -<span id="cb496-13"><a href="#cb496-13" aria-hidden="true" tabindex="-1"></a> }<span class="co">%</span></span> -<span id="cb496-14"><a href="#cb496-14" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb496-15"><a href="#cb496-15" aria-hidden="true" tabindex="-1"></a> ulItemEnd = {},</span> -<span id="cb496-16"><a href="#cb496-16" aria-hidden="true" tabindex="-1"></a> ulEndTight = {).},</span> -<span id="cb496-17"><a href="#cb496-17" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb496-18"><a href="#cb496-18" aria-hidden="true" tabindex="-1"></a>]</span> -<span id="cb496-19"><a href="#cb496-19" aria-hidden="true" tabindex="-1"></a>This is a tight list</span> -<span id="cb496-20"><a href="#cb496-20" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb496-21"><a href="#cb496-21" aria-hidden="true" tabindex="-1"></a>- the first item</span> -<span id="cb496-22"><a href="#cb496-22" aria-hidden="true" tabindex="-1"></a>- the second item</span> -<span id="cb496-23"><a href="#cb496-23" aria-hidden="true" tabindex="-1"></a>- the third item</span> -<span id="cb496-24"><a href="#cb496-24" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb496-25"><a href="#cb496-25" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb496-26"><a href="#cb496-26" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}[</span> -<span id="cb496-27"><a href="#cb496-27" aria-hidden="true" tabindex="-1"></a> renderers = {</span> -<span id="cb496-28"><a href="#cb496-28" aria-hidden="true" tabindex="-1"></a> interblockSeparator = {<span class="co">%</span></span> -<span id="cb496-29"><a href="#cb496-29" aria-hidden="true" tabindex="-1"></a> :<span class="fu">\par</span></span> -<span id="cb496-30"><a href="#cb496-30" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="fu">\par</span>}<span class="co">%</span></span> -<span id="cb496-31"><a href="#cb496-31" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb496-32"><a href="#cb496-32" aria-hidden="true" tabindex="-1"></a> ulBeginTight = {<span class="kw">\begin</span>{<span class="ex">itemize</span>}},</span> -<span id="cb496-33"><a href="#cb496-33" aria-hidden="true" tabindex="-1"></a> ulItem = {<span class="fu">\item</span>},</span> -<span id="cb496-34"><a href="#cb496-34" aria-hidden="true" tabindex="-1"></a> ulItemEnd = {.},</span> -<span id="cb496-35"><a href="#cb496-35" aria-hidden="true" tabindex="-1"></a> ulEnd = {<span class="kw">\end</span>{<span class="ex">itemize</span>}},</span> -<span id="cb496-36"><a href="#cb496-36" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb496-37"><a href="#cb496-37" aria-hidden="true" tabindex="-1"></a>]</span> -<span id="cb496-38"><a href="#cb496-38" aria-hidden="true" tabindex="-1"></a>This is a loose list</span> -<span id="cb496-39"><a href="#cb496-39" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb496-40"><a href="#cb496-40" aria-hidden="true" tabindex="-1"></a>- This is the first item</span> -<span id="cb496-41"><a href="#cb496-41" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb496-42"><a href="#cb496-42" aria-hidden="true" tabindex="-1"></a>- This is the second item</span> -<span id="cb496-43"><a href="#cb496-43" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb496-44"><a href="#cb496-44" aria-hidden="true" tabindex="-1"></a>- This is the third item</span> -<span id="cb496-45"><a href="#cb496-45" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb496-46"><a href="#cb496-46" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb496-47"><a href="#cb496-47" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb499"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb499-1"><a href="#cb499-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb499-2"><a href="#cb499-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[tightLists]{<span class="ex">markdown</span>}</span> +<span id="cb499-3"><a href="#cb499-3" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb499-4"><a href="#cb499-4" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb499-5"><a href="#cb499-5" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}[</span> +<span id="cb499-6"><a href="#cb499-6" aria-hidden="true" tabindex="-1"></a> renderers = {</span> +<span id="cb499-7"><a href="#cb499-7" aria-hidden="true" tabindex="-1"></a> interblockSeparator = {},</span> +<span id="cb499-8"><a href="#cb499-8" aria-hidden="true" tabindex="-1"></a> ulBeginTight = { (},</span> +<span id="cb499-9"><a href="#cb499-9" aria-hidden="true" tabindex="-1"></a> ulItem = {<span class="co">%</span></span> +<span id="cb499-10"><a href="#cb499-10" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererUlItem</span>{<span class="co">%</span></span> +<span id="cb499-11"><a href="#cb499-11" aria-hidden="true" tabindex="-1"></a> ,</span> +<span id="cb499-12"><a href="#cb499-12" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererUlItem</span>{, and }<span class="co">%</span></span> +<span id="cb499-13"><a href="#cb499-13" aria-hidden="true" tabindex="-1"></a> }<span class="co">%</span></span> +<span id="cb499-14"><a href="#cb499-14" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb499-15"><a href="#cb499-15" aria-hidden="true" tabindex="-1"></a> ulItemEnd = {},</span> +<span id="cb499-16"><a href="#cb499-16" aria-hidden="true" tabindex="-1"></a> ulEndTight = {).},</span> +<span id="cb499-17"><a href="#cb499-17" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb499-18"><a href="#cb499-18" aria-hidden="true" tabindex="-1"></a>]</span> +<span id="cb499-19"><a href="#cb499-19" aria-hidden="true" tabindex="-1"></a>This is a tight list</span> +<span id="cb499-20"><a href="#cb499-20" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb499-21"><a href="#cb499-21" aria-hidden="true" tabindex="-1"></a>- the first item</span> +<span id="cb499-22"><a href="#cb499-22" aria-hidden="true" tabindex="-1"></a>- the second item</span> +<span id="cb499-23"><a href="#cb499-23" aria-hidden="true" tabindex="-1"></a>- the third item</span> +<span id="cb499-24"><a href="#cb499-24" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb499-25"><a href="#cb499-25" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb499-26"><a href="#cb499-26" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}[</span> +<span id="cb499-27"><a href="#cb499-27" aria-hidden="true" tabindex="-1"></a> renderers = {</span> +<span id="cb499-28"><a href="#cb499-28" aria-hidden="true" tabindex="-1"></a> interblockSeparator = {<span class="co">%</span></span> +<span id="cb499-29"><a href="#cb499-29" aria-hidden="true" tabindex="-1"></a> :<span class="fu">\par</span></span> +<span id="cb499-30"><a href="#cb499-30" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="fu">\par</span>}<span class="co">%</span></span> +<span id="cb499-31"><a href="#cb499-31" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb499-32"><a href="#cb499-32" aria-hidden="true" tabindex="-1"></a> ulBeginTight = {<span class="kw">\begin</span>{<span class="ex">itemize</span>}},</span> +<span id="cb499-33"><a href="#cb499-33" aria-hidden="true" tabindex="-1"></a> ulItem = {<span class="fu">\item</span>},</span> +<span id="cb499-34"><a href="#cb499-34" aria-hidden="true" tabindex="-1"></a> ulItemEnd = {.},</span> +<span id="cb499-35"><a href="#cb499-35" aria-hidden="true" tabindex="-1"></a> ulEnd = {<span class="kw">\end</span>{<span class="ex">itemize</span>}},</span> +<span id="cb499-36"><a href="#cb499-36" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb499-37"><a href="#cb499-37" aria-hidden="true" tabindex="-1"></a>]</span> +<span id="cb499-38"><a href="#cb499-38" aria-hidden="true" tabindex="-1"></a>This is a loose list</span> +<span id="cb499-39"><a href="#cb499-39" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb499-40"><a href="#cb499-40" aria-hidden="true" tabindex="-1"></a>- This is the first item</span> +<span id="cb499-41"><a href="#cb499-41" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb499-42"><a href="#cb499-42" aria-hidden="true" tabindex="-1"></a>- This is the second item</span> +<span id="cb499-43"><a href="#cb499-43" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb499-44"><a href="#cb499-44" aria-hidden="true" tabindex="-1"></a>- This is the third item</span> +<span id="cb499-45"><a href="#cb499-45" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb499-46"><a href="#cb499-46" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb499-47"><a href="#cb499-47" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb497"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb497-1"><a href="#cb497-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb500"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb500-1"><a href="#cb500-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -8888,53 +9008,53 @@ item).</p> class="tex">T<sub>e</sub>X</span>t Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb498"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb498-1"><a href="#cb498-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> -<span id="cb498-2"><a href="#cb498-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span>[tightLists = yes]</span> -<span id="cb498-3"><a href="#cb498-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> -<span id="cb498-4"><a href="#cb498-4" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb498-5"><a href="#cb498-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererInterblockSeparator</span>{}</span> -<span id="cb498-6"><a href="#cb498-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererUlBeginTight</span>{ (}</span> -<span id="cb498-7"><a href="#cb498-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererUlItem</span>{<span class="co">%</span></span> -<span id="cb498-8"><a href="#cb498-8" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererUlItem</span>{<span class="co">%</span></span> -<span id="cb498-9"><a href="#cb498-9" aria-hidden="true" tabindex="-1"></a> ,</span> -<span id="cb498-10"><a href="#cb498-10" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererUlItem</span>{, and }<span class="co">%</span></span> -<span id="cb498-11"><a href="#cb498-11" aria-hidden="true" tabindex="-1"></a> }<span class="co">%</span></span> -<span id="cb498-12"><a href="#cb498-12" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb498-13"><a href="#cb498-13" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererUlItemEnd</span>{}</span> -<span id="cb498-14"><a href="#cb498-14" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererUlEndTight</span>{).}</span> -<span id="cb498-15"><a href="#cb498-15" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb498-16"><a href="#cb498-16" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> -<span id="cb498-17"><a href="#cb498-17" aria-hidden="true" tabindex="-1"></a>This is a tight list</span> -<span id="cb498-18"><a href="#cb498-18" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb498-19"><a href="#cb498-19" aria-hidden="true" tabindex="-1"></a>- the first item</span> -<span id="cb498-20"><a href="#cb498-20" aria-hidden="true" tabindex="-1"></a>- the second item</span> -<span id="cb498-21"><a href="#cb498-21" aria-hidden="true" tabindex="-1"></a>- the third item</span> -<span id="cb498-22"><a href="#cb498-22" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> -<span id="cb498-23"><a href="#cb498-23" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb498-24"><a href="#cb498-24" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="co">%</span></span> -<span id="cb498-25"><a href="#cb498-25" aria-hidden="true" tabindex="-1"></a> :<span class="fu">\par</span></span> -<span id="cb498-26"><a href="#cb498-26" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="fu">\par</span>}<span class="co">%</span></span> -<span id="cb498-27"><a href="#cb498-27" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb498-28"><a href="#cb498-28" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererUlBegin</span>{<span class="fu">\startitemize</span>}</span> -<span id="cb498-29"><a href="#cb498-29" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererUlItem</span>{<span class="fu">\item</span>}</span> -<span id="cb498-30"><a href="#cb498-30" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererUlItemEnd</span>{.}</span> -<span id="cb498-31"><a href="#cb498-31" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererUlEnd</span>{<span class="fu">\stopitemize</span>}</span> -<span id="cb498-32"><a href="#cb498-32" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb498-33"><a href="#cb498-33" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> -<span id="cb498-34"><a href="#cb498-34" aria-hidden="true" tabindex="-1"></a>This is a loose list</span> -<span id="cb498-35"><a href="#cb498-35" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb498-36"><a href="#cb498-36" aria-hidden="true" tabindex="-1"></a>- This is the first item</span> -<span id="cb498-37"><a href="#cb498-37" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb498-38"><a href="#cb498-38" aria-hidden="true" tabindex="-1"></a>- This is the second item</span> -<span id="cb498-39"><a href="#cb498-39" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb498-40"><a href="#cb498-40" aria-hidden="true" tabindex="-1"></a>- This is the third item</span> -<span id="cb498-41"><a href="#cb498-41" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> -<span id="cb498-42"><a href="#cb498-42" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb498-43"><a href="#cb498-43" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> +<div class="sourceCode" id="cb501"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb501-1"><a href="#cb501-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> +<span id="cb501-2"><a href="#cb501-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span>[tightLists = yes]</span> +<span id="cb501-3"><a href="#cb501-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> +<span id="cb501-4"><a href="#cb501-4" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb501-5"><a href="#cb501-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererInterblockSeparator</span>{}</span> +<span id="cb501-6"><a href="#cb501-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererUlBeginTight</span>{ (}</span> +<span id="cb501-7"><a href="#cb501-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererUlItem</span>{<span class="co">%</span></span> +<span id="cb501-8"><a href="#cb501-8" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererUlItem</span>{<span class="co">%</span></span> +<span id="cb501-9"><a href="#cb501-9" aria-hidden="true" tabindex="-1"></a> ,</span> +<span id="cb501-10"><a href="#cb501-10" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererUlItem</span>{, and }<span class="co">%</span></span> +<span id="cb501-11"><a href="#cb501-11" aria-hidden="true" tabindex="-1"></a> }<span class="co">%</span></span> +<span id="cb501-12"><a href="#cb501-12" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb501-13"><a href="#cb501-13" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererUlItemEnd</span>{}</span> +<span id="cb501-14"><a href="#cb501-14" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererUlEndTight</span>{).}</span> +<span id="cb501-15"><a href="#cb501-15" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb501-16"><a href="#cb501-16" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> +<span id="cb501-17"><a href="#cb501-17" aria-hidden="true" tabindex="-1"></a>This is a tight list</span> +<span id="cb501-18"><a href="#cb501-18" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb501-19"><a href="#cb501-19" aria-hidden="true" tabindex="-1"></a>- the first item</span> +<span id="cb501-20"><a href="#cb501-20" aria-hidden="true" tabindex="-1"></a>- the second item</span> +<span id="cb501-21"><a href="#cb501-21" aria-hidden="true" tabindex="-1"></a>- the third item</span> +<span id="cb501-22"><a href="#cb501-22" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> +<span id="cb501-23"><a href="#cb501-23" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb501-24"><a href="#cb501-24" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="co">%</span></span> +<span id="cb501-25"><a href="#cb501-25" aria-hidden="true" tabindex="-1"></a> :<span class="fu">\par</span></span> +<span id="cb501-26"><a href="#cb501-26" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="fu">\par</span>}<span class="co">%</span></span> +<span id="cb501-27"><a href="#cb501-27" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb501-28"><a href="#cb501-28" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererUlBegin</span>{<span class="fu">\startitemize</span>}</span> +<span id="cb501-29"><a href="#cb501-29" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererUlItem</span>{<span class="fu">\item</span>}</span> +<span id="cb501-30"><a href="#cb501-30" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererUlItemEnd</span>{.}</span> +<span id="cb501-31"><a href="#cb501-31" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererUlEnd</span>{<span class="fu">\stopitemize</span>}</span> +<span id="cb501-32"><a href="#cb501-32" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb501-33"><a href="#cb501-33" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> +<span id="cb501-34"><a href="#cb501-34" aria-hidden="true" tabindex="-1"></a>This is a loose list</span> +<span id="cb501-35"><a href="#cb501-35" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb501-36"><a href="#cb501-36" aria-hidden="true" tabindex="-1"></a>- This is the first item</span> +<span id="cb501-37"><a href="#cb501-37" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb501-38"><a href="#cb501-38" aria-hidden="true" tabindex="-1"></a>- This is the second item</span> +<span id="cb501-39"><a href="#cb501-39" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb501-40"><a href="#cb501-40" aria-hidden="true" tabindex="-1"></a>- This is the third item</span> +<span id="cb501-41"><a href="#cb501-41" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> +<span id="cb501-42"><a href="#cb501-42" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb501-43"><a href="#cb501-43" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb499"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb499-1"><a href="#cb499-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb502"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb502-1"><a href="#cb502-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -8949,9 +9069,9 @@ item).</p> </blockquote> <h4 data-number="2.3.1.5" id="citation-renderers"><span class="header-section-number">2.3.1.5</span> Citation Renderers</h4> -<p>The <code>\markdownRendererCite</code> macro represents a string of +<p>The <code>markdownRendererCite</code> macro represents a string of one or more parenthetical citations. This macro will only be produced, -when the <strong><code>citations</code></strong> option is enabled. The +when the <code><strong>citations</strong></code> option is enabled. The macro receives the parameter <code>{</code>⟨<em>number of citations</em>⟩<code>}</code> followed by ⟨<em>suppress author</em>⟩ <code>{</code>⟨<em>prenote</em>⟩<code>}{</code>⟨<em>postnote</em>⟩<code>}{</code>⟨<em>name</em>⟩<code>}</code> @@ -8962,50 +9082,50 @@ author’s name is to be suppressed, or <code>+</code> otherwise.</p> class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb500"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb500-1"><a href="#cb500-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb500-2"><a href="#cb500-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[citations]{<span class="ex">markdown</span>}</span> -<span id="cb500-3"><a href="#cb500-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\newcount\citationsCounter</span></span> -<span id="cb500-4"><a href="#cb500-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\newcount\citationsTotal</span></span> -<span id="cb500-5"><a href="#cb500-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\makeatletter</span></span> -<span id="cb500-6"><a href="#cb500-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\citations</span>#1#2#3#4{<span class="co">%</span></span> -<span id="cb500-7"><a href="#cb500-7" aria-hidden="true" tabindex="-1"></a> a parenthesized citation <span class="fu">\emph</span>{#4}</span> -<span id="cb500-8"><a href="#cb500-8" aria-hidden="true" tabindex="-1"></a> <span class="fu">\advance\citationsCounter</span> by 1<span class="fu">\relax</span></span> -<span id="cb500-9"><a href="#cb500-9" aria-hidden="true" tabindex="-1"></a> <span class="fu">\ifx\relax</span>#2<span class="fu">\relax</span></span> -<span id="cb500-10"><a href="#cb500-10" aria-hidden="true" tabindex="-1"></a> <span class="fu">\ifx\relax</span>#3<span class="fu">\relax\else</span></span> -<span id="cb500-11"><a href="#cb500-11" aria-hidden="true" tabindex="-1"></a> with a postfix <span class="fu">\emph</span>{#3}<span class="co">%</span></span> -<span id="cb500-12"><a href="#cb500-12" aria-hidden="true" tabindex="-1"></a> <span class="fu">\fi</span></span> -<span id="cb500-13"><a href="#cb500-13" aria-hidden="true" tabindex="-1"></a> <span class="fu">\else</span></span> -<span id="cb500-14"><a href="#cb500-14" aria-hidden="true" tabindex="-1"></a> with a prefix <span class="fu">\emph</span>{#2}<span class="co">%</span></span> -<span id="cb500-15"><a href="#cb500-15" aria-hidden="true" tabindex="-1"></a> <span class="fu">\ifx\relax</span>#3<span class="fu">\relax\else</span></span> -<span id="cb500-16"><a href="#cb500-16" aria-hidden="true" tabindex="-1"></a> <span class="fu">\ </span>and a postfix <span class="fu">\emph</span>{#3}<span class="co">%</span></span> -<span id="cb500-17"><a href="#cb500-17" aria-hidden="true" tabindex="-1"></a> <span class="fu">\fi</span></span> -<span id="cb500-18"><a href="#cb500-18" aria-hidden="true" tabindex="-1"></a> <span class="fu">\fi</span></span> -<span id="cb500-19"><a href="#cb500-19" aria-hidden="true" tabindex="-1"></a> <span class="fu">\ifnum\citationsCounter</span>><span class="fu">\citationsTotal\relax</span></span> -<span id="cb500-20"><a href="#cb500-20" aria-hidden="true" tabindex="-1"></a> .<span class="co">%</span></span> -<span id="cb500-21"><a href="#cb500-21" aria-hidden="true" tabindex="-1"></a> <span class="fu">\expandafter\@gobble</span></span> -<span id="cb500-22"><a href="#cb500-22" aria-hidden="true" tabindex="-1"></a> <span class="fu">\else</span></span> -<span id="cb500-23"><a href="#cb500-23" aria-hidden="true" tabindex="-1"></a> , and</span> -<span id="cb500-24"><a href="#cb500-24" aria-hidden="true" tabindex="-1"></a> <span class="fu">\fi\citations</span>}</span> -<span id="cb500-25"><a href="#cb500-25" aria-hidden="true" tabindex="-1"></a><span class="fu">\makeatother</span></span> -<span id="cb500-26"><a href="#cb500-26" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> -<span id="cb500-27"><a href="#cb500-27" aria-hidden="true" tabindex="-1"></a> renderers = {</span> -<span id="cb500-28"><a href="#cb500-28" aria-hidden="true" tabindex="-1"></a> cite = {<span class="co">%</span></span> -<span id="cb500-29"><a href="#cb500-29" aria-hidden="true" tabindex="-1"></a> <span class="fu">\citationsCounter</span>=1<span class="co">%</span></span> -<span id="cb500-30"><a href="#cb500-30" aria-hidden="true" tabindex="-1"></a> <span class="fu">\citationsTotal</span>=#1<span class="co">%</span></span> -<span id="cb500-31"><a href="#cb500-31" aria-hidden="true" tabindex="-1"></a> This is</span> -<span id="cb500-32"><a href="#cb500-32" aria-hidden="true" tabindex="-1"></a> <span class="fu">\expandafter\citations</span></span> -<span id="cb500-33"><a href="#cb500-33" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb500-34"><a href="#cb500-34" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb500-35"><a href="#cb500-35" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb500-36"><a href="#cb500-36" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb500-37"><a href="#cb500-37" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb500-38"><a href="#cb500-38" aria-hidden="true" tabindex="-1"></a>[see @abrahams90, pp. 12; @eijkhout91, pp. 34]</span> -<span id="cb500-39"><a href="#cb500-39" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb500-40"><a href="#cb500-40" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb503"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb503-1"><a href="#cb503-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb503-2"><a href="#cb503-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[citations]{<span class="ex">markdown</span>}</span> +<span id="cb503-3"><a href="#cb503-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\newcount\citationsCounter</span></span> +<span id="cb503-4"><a href="#cb503-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\newcount\citationsTotal</span></span> +<span id="cb503-5"><a href="#cb503-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\makeatletter</span></span> +<span id="cb503-6"><a href="#cb503-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\citations</span>#1#2#3#4{<span class="co">%</span></span> +<span id="cb503-7"><a href="#cb503-7" aria-hidden="true" tabindex="-1"></a> a parenthesized citation <span class="fu">\emph</span>{#4}</span> +<span id="cb503-8"><a href="#cb503-8" aria-hidden="true" tabindex="-1"></a> <span class="fu">\advance\citationsCounter</span> by 1<span class="fu">\relax</span></span> +<span id="cb503-9"><a href="#cb503-9" aria-hidden="true" tabindex="-1"></a> <span class="fu">\ifx\relax</span>#2<span class="fu">\relax</span></span> +<span id="cb503-10"><a href="#cb503-10" aria-hidden="true" tabindex="-1"></a> <span class="fu">\ifx\relax</span>#3<span class="fu">\relax\else</span></span> +<span id="cb503-11"><a href="#cb503-11" aria-hidden="true" tabindex="-1"></a> with a postfix <span class="fu">\emph</span>{#3}<span class="co">%</span></span> +<span id="cb503-12"><a href="#cb503-12" aria-hidden="true" tabindex="-1"></a> <span class="fu">\fi</span></span> +<span id="cb503-13"><a href="#cb503-13" aria-hidden="true" tabindex="-1"></a> <span class="fu">\else</span></span> +<span id="cb503-14"><a href="#cb503-14" aria-hidden="true" tabindex="-1"></a> with a prefix <span class="fu">\emph</span>{#2}<span class="co">%</span></span> +<span id="cb503-15"><a href="#cb503-15" aria-hidden="true" tabindex="-1"></a> <span class="fu">\ifx\relax</span>#3<span class="fu">\relax\else</span></span> +<span id="cb503-16"><a href="#cb503-16" aria-hidden="true" tabindex="-1"></a> <span class="fu">\ </span>and a postfix <span class="fu">\emph</span>{#3}<span class="co">%</span></span> +<span id="cb503-17"><a href="#cb503-17" aria-hidden="true" tabindex="-1"></a> <span class="fu">\fi</span></span> +<span id="cb503-18"><a href="#cb503-18" aria-hidden="true" tabindex="-1"></a> <span class="fu">\fi</span></span> +<span id="cb503-19"><a href="#cb503-19" aria-hidden="true" tabindex="-1"></a> <span class="fu">\ifnum\citationsCounter</span>><span class="fu">\citationsTotal\relax</span></span> +<span id="cb503-20"><a href="#cb503-20" aria-hidden="true" tabindex="-1"></a> .<span class="co">%</span></span> +<span id="cb503-21"><a href="#cb503-21" aria-hidden="true" tabindex="-1"></a> <span class="fu">\expandafter\@gobble</span></span> +<span id="cb503-22"><a href="#cb503-22" aria-hidden="true" tabindex="-1"></a> <span class="fu">\else</span></span> +<span id="cb503-23"><a href="#cb503-23" aria-hidden="true" tabindex="-1"></a> , and</span> +<span id="cb503-24"><a href="#cb503-24" aria-hidden="true" tabindex="-1"></a> <span class="fu">\fi\citations</span>}</span> +<span id="cb503-25"><a href="#cb503-25" aria-hidden="true" tabindex="-1"></a><span class="fu">\makeatother</span></span> +<span id="cb503-26"><a href="#cb503-26" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> +<span id="cb503-27"><a href="#cb503-27" aria-hidden="true" tabindex="-1"></a> renderers = {</span> +<span id="cb503-28"><a href="#cb503-28" aria-hidden="true" tabindex="-1"></a> cite = {<span class="co">%</span></span> +<span id="cb503-29"><a href="#cb503-29" aria-hidden="true" tabindex="-1"></a> <span class="fu">\citationsCounter</span>=1<span class="co">%</span></span> +<span id="cb503-30"><a href="#cb503-30" aria-hidden="true" tabindex="-1"></a> <span class="fu">\citationsTotal</span>=#1<span class="co">%</span></span> +<span id="cb503-31"><a href="#cb503-31" aria-hidden="true" tabindex="-1"></a> This is</span> +<span id="cb503-32"><a href="#cb503-32" aria-hidden="true" tabindex="-1"></a> <span class="fu">\expandafter\citations</span></span> +<span id="cb503-33"><a href="#cb503-33" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb503-34"><a href="#cb503-34" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb503-35"><a href="#cb503-35" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb503-36"><a href="#cb503-36" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb503-37"><a href="#cb503-37" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb503-38"><a href="#cb503-38" aria-hidden="true" tabindex="-1"></a>[see @abrahams90, pp. 12; @eijkhout91, pp. 34]</span> +<span id="cb503-39"><a href="#cb503-39" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb503-40"><a href="#cb503-40" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb501"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb501-1"><a href="#cb501-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb504"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb504-1"><a href="#cb504-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -9013,59 +9133,59 @@ contain the following text:</p> see and a postfix <em>pp. 12</em>, and a citation <em>eijkhout91</em> with a postfix <em>pp. 34</em>.</p> </blockquote> -<p>The <code>\markdownRendererTextCite</code> macro represents a string +<p>The <code>markdownRendererTextCite</code> macro represents a string of one or more text citations. This macro will only be produced, when -the <strong><code>citations</code></strong> option is enabled. The macro +the <code><strong>citations</strong></code> option is enabled. The macro receives parameters in the same format as the -<code>\markdownRendererCite</code> macro.</p> +<code>markdownRendererCite</code> macro.</p> <h5 class="unnumbered" id="latex-example-61"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb502"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb502-1"><a href="#cb502-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb502-2"><a href="#cb502-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[citations]{<span class="ex">markdown</span>}</span> -<span id="cb502-3"><a href="#cb502-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\newcount\citationsCounter</span></span> -<span id="cb502-4"><a href="#cb502-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\newcount\citationsTotal</span></span> -<span id="cb502-5"><a href="#cb502-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\makeatletter</span></span> -<span id="cb502-6"><a href="#cb502-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\citations</span>#1#2#3#4{<span class="co">%</span></span> -<span id="cb502-7"><a href="#cb502-7" aria-hidden="true" tabindex="-1"></a> a text citation <span class="fu">\emph</span>{#4}</span> -<span id="cb502-8"><a href="#cb502-8" aria-hidden="true" tabindex="-1"></a> <span class="fu">\advance\citationsCounter</span> by 1<span class="fu">\relax</span></span> -<span id="cb502-9"><a href="#cb502-9" aria-hidden="true" tabindex="-1"></a> <span class="fu">\ifx\relax</span>#2<span class="fu">\relax</span></span> -<span id="cb502-10"><a href="#cb502-10" aria-hidden="true" tabindex="-1"></a> <span class="fu">\ifx\relax</span>#3<span class="fu">\relax\else</span></span> -<span id="cb502-11"><a href="#cb502-11" aria-hidden="true" tabindex="-1"></a> with a postfix <span class="fu">\emph</span>{#3}<span class="co">%</span></span> -<span id="cb502-12"><a href="#cb502-12" aria-hidden="true" tabindex="-1"></a> <span class="fu">\fi</span></span> -<span id="cb502-13"><a href="#cb502-13" aria-hidden="true" tabindex="-1"></a> <span class="fu">\else</span></span> -<span id="cb502-14"><a href="#cb502-14" aria-hidden="true" tabindex="-1"></a> with a prefix <span class="fu">\emph</span>{#2}<span class="co">%</span></span> -<span id="cb502-15"><a href="#cb502-15" aria-hidden="true" tabindex="-1"></a> <span class="fu">\ifx\relax</span>#3<span class="fu">\relax\else</span></span> -<span id="cb502-16"><a href="#cb502-16" aria-hidden="true" tabindex="-1"></a> <span class="fu">\ </span>and a postfix <span class="fu">\emph</span>{#3}<span class="co">%</span></span> -<span id="cb502-17"><a href="#cb502-17" aria-hidden="true" tabindex="-1"></a> <span class="fu">\fi</span></span> -<span id="cb502-18"><a href="#cb502-18" aria-hidden="true" tabindex="-1"></a> <span class="fu">\fi</span></span> -<span id="cb502-19"><a href="#cb502-19" aria-hidden="true" tabindex="-1"></a> <span class="fu">\ifnum\citationsCounter</span>><span class="fu">\citationsTotal\relax</span></span> -<span id="cb502-20"><a href="#cb502-20" aria-hidden="true" tabindex="-1"></a> .<span class="co">%</span></span> -<span id="cb502-21"><a href="#cb502-21" aria-hidden="true" tabindex="-1"></a> <span class="fu">\expandafter\@gobble</span></span> -<span id="cb502-22"><a href="#cb502-22" aria-hidden="true" tabindex="-1"></a> <span class="fu">\else</span></span> -<span id="cb502-23"><a href="#cb502-23" aria-hidden="true" tabindex="-1"></a> , and</span> -<span id="cb502-24"><a href="#cb502-24" aria-hidden="true" tabindex="-1"></a> <span class="fu">\fi\citations</span>}</span> -<span id="cb502-25"><a href="#cb502-25" aria-hidden="true" tabindex="-1"></a><span class="fu">\makeatother</span></span> -<span id="cb502-26"><a href="#cb502-26" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> -<span id="cb502-27"><a href="#cb502-27" aria-hidden="true" tabindex="-1"></a> renderers = {</span> -<span id="cb502-28"><a href="#cb502-28" aria-hidden="true" tabindex="-1"></a> textCite = {<span class="co">%</span></span> -<span id="cb502-29"><a href="#cb502-29" aria-hidden="true" tabindex="-1"></a> <span class="fu">\citationsCounter</span>=1<span class="co">%</span></span> -<span id="cb502-30"><a href="#cb502-30" aria-hidden="true" tabindex="-1"></a> <span class="fu">\citationsTotal</span>=#1<span class="co">%</span></span> -<span id="cb502-31"><a href="#cb502-31" aria-hidden="true" tabindex="-1"></a> This is</span> -<span id="cb502-32"><a href="#cb502-32" aria-hidden="true" tabindex="-1"></a> <span class="fu">\expandafter\citations</span></span> -<span id="cb502-33"><a href="#cb502-33" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb502-34"><a href="#cb502-34" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb502-35"><a href="#cb502-35" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb502-36"><a href="#cb502-36" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb502-37"><a href="#cb502-37" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb502-38"><a href="#cb502-38" aria-hidden="true" tabindex="-1"></a>@abrahams90 [pp. 12; also @eijkhout91]</span> -<span id="cb502-39"><a href="#cb502-39" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb502-40"><a href="#cb502-40" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb505"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb505-1"><a href="#cb505-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb505-2"><a href="#cb505-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[citations]{<span class="ex">markdown</span>}</span> +<span id="cb505-3"><a href="#cb505-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\newcount\citationsCounter</span></span> +<span id="cb505-4"><a href="#cb505-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\newcount\citationsTotal</span></span> +<span id="cb505-5"><a href="#cb505-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\makeatletter</span></span> +<span id="cb505-6"><a href="#cb505-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\citations</span>#1#2#3#4{<span class="co">%</span></span> +<span id="cb505-7"><a href="#cb505-7" aria-hidden="true" tabindex="-1"></a> a text citation <span class="fu">\emph</span>{#4}</span> +<span id="cb505-8"><a href="#cb505-8" aria-hidden="true" tabindex="-1"></a> <span class="fu">\advance\citationsCounter</span> by 1<span class="fu">\relax</span></span> +<span id="cb505-9"><a href="#cb505-9" aria-hidden="true" tabindex="-1"></a> <span class="fu">\ifx\relax</span>#2<span class="fu">\relax</span></span> +<span id="cb505-10"><a href="#cb505-10" aria-hidden="true" tabindex="-1"></a> <span class="fu">\ifx\relax</span>#3<span class="fu">\relax\else</span></span> +<span id="cb505-11"><a href="#cb505-11" aria-hidden="true" tabindex="-1"></a> with a postfix <span class="fu">\emph</span>{#3}<span class="co">%</span></span> +<span id="cb505-12"><a href="#cb505-12" aria-hidden="true" tabindex="-1"></a> <span class="fu">\fi</span></span> +<span id="cb505-13"><a href="#cb505-13" aria-hidden="true" tabindex="-1"></a> <span class="fu">\else</span></span> +<span id="cb505-14"><a href="#cb505-14" aria-hidden="true" tabindex="-1"></a> with a prefix <span class="fu">\emph</span>{#2}<span class="co">%</span></span> +<span id="cb505-15"><a href="#cb505-15" aria-hidden="true" tabindex="-1"></a> <span class="fu">\ifx\relax</span>#3<span class="fu">\relax\else</span></span> +<span id="cb505-16"><a href="#cb505-16" aria-hidden="true" tabindex="-1"></a> <span class="fu">\ </span>and a postfix <span class="fu">\emph</span>{#3}<span class="co">%</span></span> +<span id="cb505-17"><a href="#cb505-17" aria-hidden="true" tabindex="-1"></a> <span class="fu">\fi</span></span> +<span id="cb505-18"><a href="#cb505-18" aria-hidden="true" tabindex="-1"></a> <span class="fu">\fi</span></span> +<span id="cb505-19"><a href="#cb505-19" aria-hidden="true" tabindex="-1"></a> <span class="fu">\ifnum\citationsCounter</span>><span class="fu">\citationsTotal\relax</span></span> +<span id="cb505-20"><a href="#cb505-20" aria-hidden="true" tabindex="-1"></a> .<span class="co">%</span></span> +<span id="cb505-21"><a href="#cb505-21" aria-hidden="true" tabindex="-1"></a> <span class="fu">\expandafter\@gobble</span></span> +<span id="cb505-22"><a href="#cb505-22" aria-hidden="true" tabindex="-1"></a> <span class="fu">\else</span></span> +<span id="cb505-23"><a href="#cb505-23" aria-hidden="true" tabindex="-1"></a> , and</span> +<span id="cb505-24"><a href="#cb505-24" aria-hidden="true" tabindex="-1"></a> <span class="fu">\fi\citations</span>}</span> +<span id="cb505-25"><a href="#cb505-25" aria-hidden="true" tabindex="-1"></a><span class="fu">\makeatother</span></span> +<span id="cb505-26"><a href="#cb505-26" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> +<span id="cb505-27"><a href="#cb505-27" aria-hidden="true" tabindex="-1"></a> renderers = {</span> +<span id="cb505-28"><a href="#cb505-28" aria-hidden="true" tabindex="-1"></a> textCite = {<span class="co">%</span></span> +<span id="cb505-29"><a href="#cb505-29" aria-hidden="true" tabindex="-1"></a> <span class="fu">\citationsCounter</span>=1<span class="co">%</span></span> +<span id="cb505-30"><a href="#cb505-30" aria-hidden="true" tabindex="-1"></a> <span class="fu">\citationsTotal</span>=#1<span class="co">%</span></span> +<span id="cb505-31"><a href="#cb505-31" aria-hidden="true" tabindex="-1"></a> This is</span> +<span id="cb505-32"><a href="#cb505-32" aria-hidden="true" tabindex="-1"></a> <span class="fu">\expandafter\citations</span></span> +<span id="cb505-33"><a href="#cb505-33" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb505-34"><a href="#cb505-34" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb505-35"><a href="#cb505-35" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb505-36"><a href="#cb505-36" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb505-37"><a href="#cb505-37" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb505-38"><a href="#cb505-38" aria-hidden="true" tabindex="-1"></a>@abrahams90 [pp. 12; also @eijkhout91]</span> +<span id="cb505-39"><a href="#cb505-39" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb505-40"><a href="#cb505-40" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb503"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb503-1"><a href="#cb503-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb506"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb506-1"><a href="#cb506-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -9075,124 +9195,124 @@ contain the following text:</p> </blockquote> <h4 data-number="2.3.1.6" id="code-block-renderers"><span class="header-section-number">2.3.1.6</span> Code Block Renderers</h4> -<p>The <code>\markdownRendererInputVerbatim</code> macro represents a +<p>The <code>markdownRendererInputVerbatim</code> macro represents a code block. The macro receives a single argument that corresponds to the -filename of a file contaning the code block contents.</p> -<p>The <code>\markdownRendererInputFencedCode</code> macro represents a +filename of a file containing the code block contents.</p> +<p>The <code>markdownRendererInputFencedCode</code> macro represents a fenced code block. This macro will only be produced, when the -<strong><code>fencedCode</code></strong> option is enabled. The macro +<code><strong>fencedCode</strong></code> option is enabled. The macro receives three arguments that correspond to the filename of a file -contaning the code block contents, the fully escaped code fence +containing the code block contents, the fully escaped code fence infostring that can be directly typeset, and the raw code fence infostring that can be used outside typesetting.</p> <h5 class="unnumbered" id="latex-example-62"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb504"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb504-1"><a href="#cb504-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb504-2"><a href="#cb504-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>{<span class="ex">verbatim</span>}</span> -<span id="cb504-3"><a href="#cb504-3" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[hyphens]{<span class="ex">url</span>}</span> -<span id="cb504-4"><a href="#cb504-4" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[fencedCode]{<span class="ex">markdown</span>}</span> -<span id="cb504-5"><a href="#cb504-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> -<span id="cb504-6"><a href="#cb504-6" aria-hidden="true" tabindex="-1"></a> renderers = {</span> -<span id="cb504-7"><a href="#cb504-7" aria-hidden="true" tabindex="-1"></a> interblockSeparator = {</span> -<span id="cb504-8"><a href="#cb504-8" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="co">%</span></span> -<span id="cb504-9"><a href="#cb504-9" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> -<span id="cb504-10"><a href="#cb504-10" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="co">%</span></span> -<span id="cb504-11"><a href="#cb504-11" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="co">%</span></span> -<span id="cb504-12"><a href="#cb504-12" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> -<span id="cb504-13"><a href="#cb504-13" aria-hidden="true" tabindex="-1"></a> }<span class="co">%</span></span> -<span id="cb504-14"><a href="#cb504-14" aria-hidden="true" tabindex="-1"></a> }<span class="co">%</span></span> -<span id="cb504-15"><a href="#cb504-15" aria-hidden="true" tabindex="-1"></a> }<span class="co">%</span></span> -<span id="cb504-16"><a href="#cb504-16" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb504-17"><a href="#cb504-17" aria-hidden="true" tabindex="-1"></a> inputVerbatim = {</span> -<span id="cb504-18"><a href="#cb504-18" aria-hidden="true" tabindex="-1"></a> is contained in file <span class="fu">\url</span>{#1}:<span class="co">%</span></span> -<span id="cb504-19"><a href="#cb504-19" aria-hidden="true" tabindex="-1"></a> <span class="fu">\verbatiminput</span>{#1}<span class="co">%</span></span> -<span id="cb504-20"><a href="#cb504-20" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb504-21"><a href="#cb504-21" aria-hidden="true" tabindex="-1"></a> inputFencedCode = {</span> -<span id="cb504-22"><a href="#cb504-22" aria-hidden="true" tabindex="-1"></a> in #2 <span class="fu">\markdownRendererInputVerbatim</span>{#1}<span class="co">%</span></span> -<span id="cb504-23"><a href="#cb504-23" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb504-24"><a href="#cb504-24" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb504-25"><a href="#cb504-25" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb504-26"><a href="#cb504-26" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb504-27"><a href="#cb504-27" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb504-28"><a href="#cb504-28" aria-hidden="true" tabindex="-1"></a>The following code</span> -<span id="cb504-29"><a href="#cb504-29" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb504-30"><a href="#cb504-30" aria-hidden="true" tabindex="-1"></a> def foo(bar):</span> -<span id="cb504-31"><a href="#cb504-31" aria-hidden="true" tabindex="-1"></a> if len(bar) <= 1:</span> -<span id="cb504-32"><a href="#cb504-32" aria-hidden="true" tabindex="-1"></a> return bar[0]</span> -<span id="cb504-33"><a href="#cb504-33" aria-hidden="true" tabindex="-1"></a> elif len(bar) == 2:</span> -<span id="cb504-34"><a href="#cb504-34" aria-hidden="true" tabindex="-1"></a> return sorted(bar)</span> -<span id="cb504-35"><a href="#cb504-35" aria-hidden="true" tabindex="-1"></a> else:</span> -<span id="cb504-36"><a href="#cb504-36" aria-hidden="true" tabindex="-1"></a> baz = len(bar) // 2</span> -<span id="cb504-37"><a href="#cb504-37" aria-hidden="true" tabindex="-1"></a> return foo(bar[baz:], bar[:baz])</span> -<span id="cb504-38"><a href="#cb504-38" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb504-39"><a href="#cb504-39" aria-hidden="true" tabindex="-1"></a>The following code</span> -<span id="cb504-40"><a href="#cb504-40" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb504-41"><a href="#cb504-41" aria-hidden="true" tabindex="-1"></a>~~~ Python</span> -<span id="cb504-42"><a href="#cb504-42" aria-hidden="true" tabindex="-1"></a>>>> foo([4, 2, 1, 3])</span> -<span id="cb504-43"><a href="#cb504-43" aria-hidden="true" tabindex="-1"></a>[1, 2, 3, 4]</span> -<span id="cb504-44"><a href="#cb504-44" aria-hidden="true" tabindex="-1"></a>~~~~~~~~~~</span> -<span id="cb504-45"><a href="#cb504-45" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb504-46"><a href="#cb504-46" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb507"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb507-1"><a href="#cb507-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb507-2"><a href="#cb507-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>{<span class="ex">verbatim</span>}</span> +<span id="cb507-3"><a href="#cb507-3" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[hyphens]{<span class="ex">url</span>}</span> +<span id="cb507-4"><a href="#cb507-4" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[fencedCode]{<span class="ex">markdown</span>}</span> +<span id="cb507-5"><a href="#cb507-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> +<span id="cb507-6"><a href="#cb507-6" aria-hidden="true" tabindex="-1"></a> renderers = {</span> +<span id="cb507-7"><a href="#cb507-7" aria-hidden="true" tabindex="-1"></a> interblockSeparator = {</span> +<span id="cb507-8"><a href="#cb507-8" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="co">%</span></span> +<span id="cb507-9"><a href="#cb507-9" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> +<span id="cb507-10"><a href="#cb507-10" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="co">%</span></span> +<span id="cb507-11"><a href="#cb507-11" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="co">%</span></span> +<span id="cb507-12"><a href="#cb507-12" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> +<span id="cb507-13"><a href="#cb507-13" aria-hidden="true" tabindex="-1"></a> }<span class="co">%</span></span> +<span id="cb507-14"><a href="#cb507-14" aria-hidden="true" tabindex="-1"></a> }<span class="co">%</span></span> +<span id="cb507-15"><a href="#cb507-15" aria-hidden="true" tabindex="-1"></a> }<span class="co">%</span></span> +<span id="cb507-16"><a href="#cb507-16" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb507-17"><a href="#cb507-17" aria-hidden="true" tabindex="-1"></a> inputVerbatim = {</span> +<span id="cb507-18"><a href="#cb507-18" aria-hidden="true" tabindex="-1"></a> is contained in file <span class="fu">\url</span>{#1}:<span class="co">%</span></span> +<span id="cb507-19"><a href="#cb507-19" aria-hidden="true" tabindex="-1"></a> <span class="fu">\verbatiminput</span>{#1}<span class="co">%</span></span> +<span id="cb507-20"><a href="#cb507-20" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb507-21"><a href="#cb507-21" aria-hidden="true" tabindex="-1"></a> inputFencedCode = {</span> +<span id="cb507-22"><a href="#cb507-22" aria-hidden="true" tabindex="-1"></a> in #2 <span class="fu">\markdownRendererInputVerbatim</span>{#1}<span class="co">%</span></span> +<span id="cb507-23"><a href="#cb507-23" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb507-24"><a href="#cb507-24" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb507-25"><a href="#cb507-25" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb507-26"><a href="#cb507-26" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb507-27"><a href="#cb507-27" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb507-28"><a href="#cb507-28" aria-hidden="true" tabindex="-1"></a>The following code</span> +<span id="cb507-29"><a href="#cb507-29" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb507-30"><a href="#cb507-30" aria-hidden="true" tabindex="-1"></a> def foo(bar):</span> +<span id="cb507-31"><a href="#cb507-31" aria-hidden="true" tabindex="-1"></a> if len(bar) <= 1:</span> +<span id="cb507-32"><a href="#cb507-32" aria-hidden="true" tabindex="-1"></a> return bar[0]</span> +<span id="cb507-33"><a href="#cb507-33" aria-hidden="true" tabindex="-1"></a> elif len(bar) == 2:</span> +<span id="cb507-34"><a href="#cb507-34" aria-hidden="true" tabindex="-1"></a> return sorted(bar)</span> +<span id="cb507-35"><a href="#cb507-35" aria-hidden="true" tabindex="-1"></a> else:</span> +<span id="cb507-36"><a href="#cb507-36" aria-hidden="true" tabindex="-1"></a> baz = len(bar) // 2</span> +<span id="cb507-37"><a href="#cb507-37" aria-hidden="true" tabindex="-1"></a> return foo(bar[baz:], bar[:baz])</span> +<span id="cb507-38"><a href="#cb507-38" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb507-39"><a href="#cb507-39" aria-hidden="true" tabindex="-1"></a>The following code</span> +<span id="cb507-40"><a href="#cb507-40" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb507-41"><a href="#cb507-41" aria-hidden="true" tabindex="-1"></a>~~~ Python</span> +<span id="cb507-42"><a href="#cb507-42" aria-hidden="true" tabindex="-1"></a>>>> foo([4, 2, 1, 3])</span> +<span id="cb507-43"><a href="#cb507-43" aria-hidden="true" tabindex="-1"></a>[1, 2, 3, 4]</span> +<span id="cb507-44"><a href="#cb507-44" aria-hidden="true" tabindex="-1"></a>~~~~~~~~~~</span> +<span id="cb507-45"><a href="#cb507-45" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb507-46"><a href="#cb507-46" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb505"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb505-1"><a href="#cb505-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb508"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb508-1"><a href="#cb508-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text except for the filename, which may differ:</p> <blockquote> <p>The following code is contained in file <code>./_markdown_document/882453149edcf288976647f6fe147ada.verbatim</code>:</p> -<div class="sourceCode" id="cb506"><pre -class="sourceCode py"><code class="sourceCode python"><span id="cb506-1"><a href="#cb506-1" aria-hidden="true" tabindex="-1"></a><span class="kw">def</span> foo(bar):</span> -<span id="cb506-2"><a href="#cb506-2" aria-hidden="true" tabindex="-1"></a> <span class="cf">if</span> <span class="bu">len</span>(bar) <span class="op"><=</span> <span class="dv">1</span>:</span> -<span id="cb506-3"><a href="#cb506-3" aria-hidden="true" tabindex="-1"></a> <span class="cf">return</span> bar[:<span class="dv">1</span>]</span> -<span id="cb506-4"><a href="#cb506-4" aria-hidden="true" tabindex="-1"></a> <span class="cf">elif</span> <span class="bu">len</span>(bar) <span class="op">==</span> <span class="dv">2</span>:</span> -<span id="cb506-5"><a href="#cb506-5" aria-hidden="true" tabindex="-1"></a> <span class="cf">return</span> <span class="bu">sorted</span>(bar)</span> -<span id="cb506-6"><a href="#cb506-6" aria-hidden="true" tabindex="-1"></a> <span class="cf">else</span>:</span> -<span id="cb506-7"><a href="#cb506-7" aria-hidden="true" tabindex="-1"></a> baz <span class="op">=</span> bar[<span class="bu">len</span>(bar) <span class="op">//</span> <span class="dv">2</span>]</span> -<span id="cb506-8"><a href="#cb506-8" aria-hidden="true" tabindex="-1"></a> <span class="cf">return</span> (</span> -<span id="cb506-9"><a href="#cb506-9" aria-hidden="true" tabindex="-1"></a> foo([qux <span class="cf">for</span> qux <span class="kw">in</span> bar <span class="cf">if</span> qux <span class="op"><</span> baz]) <span class="op">+</span> [baz] <span class="op">+</span></span> -<span id="cb506-10"><a href="#cb506-10" aria-hidden="true" tabindex="-1"></a> foo([qux <span class="cf">for</span> qux <span class="kw">in</span> bar <span class="cf">if</span> qux <span class="op">></span> baz])</span> -<span id="cb506-11"><a href="#cb506-11" aria-hidden="true" tabindex="-1"></a> )</span></code></pre></div> +<div class="sourceCode" id="cb509"><pre +class="sourceCode py"><code class="sourceCode python"><span id="cb509-1"><a href="#cb509-1" aria-hidden="true" tabindex="-1"></a><span class="kw">def</span> foo(bar):</span> +<span id="cb509-2"><a href="#cb509-2" aria-hidden="true" tabindex="-1"></a> <span class="cf">if</span> <span class="bu">len</span>(bar) <span class="op"><=</span> <span class="dv">1</span>:</span> +<span id="cb509-3"><a href="#cb509-3" aria-hidden="true" tabindex="-1"></a> <span class="cf">return</span> bar[:<span class="dv">1</span>]</span> +<span id="cb509-4"><a href="#cb509-4" aria-hidden="true" tabindex="-1"></a> <span class="cf">elif</span> <span class="bu">len</span>(bar) <span class="op">==</span> <span class="dv">2</span>:</span> +<span id="cb509-5"><a href="#cb509-5" aria-hidden="true" tabindex="-1"></a> <span class="cf">return</span> <span class="bu">sorted</span>(bar)</span> +<span id="cb509-6"><a href="#cb509-6" aria-hidden="true" tabindex="-1"></a> <span class="cf">else</span>:</span> +<span id="cb509-7"><a href="#cb509-7" aria-hidden="true" tabindex="-1"></a> baz <span class="op">=</span> bar[<span class="bu">len</span>(bar) <span class="op">//</span> <span class="dv">2</span>]</span> +<span id="cb509-8"><a href="#cb509-8" aria-hidden="true" tabindex="-1"></a> <span class="cf">return</span> (</span> +<span id="cb509-9"><a href="#cb509-9" aria-hidden="true" tabindex="-1"></a> foo([qux <span class="cf">for</span> qux <span class="kw">in</span> bar <span class="cf">if</span> qux <span class="op"><</span> baz]) <span class="op">+</span> [baz] <span class="op">+</span></span> +<span id="cb509-10"><a href="#cb509-10" aria-hidden="true" tabindex="-1"></a> foo([qux <span class="cf">for</span> qux <span class="kw">in</span> bar <span class="cf">if</span> qux <span class="op">></span> baz])</span> +<span id="cb509-11"><a href="#cb509-11" aria-hidden="true" tabindex="-1"></a> )</span></code></pre></div> <p>The following code in Python contained in file <code>./_markdown_document/cf2a96e2120cef5b1fae5fea36fcc27b.verbatim</code>:</p> -<div class="sourceCode" id="cb507"><pre -class="sourceCode py"><code class="sourceCode python"><span id="cb507-1"><a href="#cb507-1" aria-hidden="true" tabindex="-1"></a><span class="op">>>></span> foo([<span class="dv">4</span>, <span class="dv">2</span>, <span class="dv">1</span>, <span class="dv">3</span>])</span> -<span id="cb507-2"><a href="#cb507-2" aria-hidden="true" tabindex="-1"></a>[<span class="dv">1</span>, <span class="dv">2</span>, <span class="dv">3</span>, <span class="dv">4</span>]</span></code></pre></div> +<div class="sourceCode" id="cb510"><pre +class="sourceCode py"><code class="sourceCode python"><span id="cb510-1"><a href="#cb510-1" aria-hidden="true" tabindex="-1"></a><span class="op">>>></span> foo([<span class="dv">4</span>, <span class="dv">2</span>, <span class="dv">1</span>, <span class="dv">3</span>])</span> +<span id="cb510-2"><a href="#cb510-2" aria-hidden="true" tabindex="-1"></a>[<span class="dv">1</span>, <span class="dv">2</span>, <span class="dv">3</span>, <span class="dv">4</span>]</span></code></pre></div> </blockquote> <h4 data-number="2.3.1.7" id="code-span-renderer"><span class="header-section-number">2.3.1.7</span> Code Span Renderer</h4> -<p>The <code>\markdownRendererCodeSpan</code> macro represents inline +<p>The <code>markdownRendererCodeSpan</code> macro represents inline code span in the input text. It receives a single argument that corresponds to the inline code span.</p> <h5 class="unnumbered" id="plain-tex-example-27">Plain <span class="tex">T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb508"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb508-1"><a href="#cb508-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> -<span id="cb508-2"><a href="#cb508-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> lmfonts</span> -<span id="cb508-3"><a href="#cb508-3" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb508-4"><a href="#cb508-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererCodeSpan</span>#1{#1}</span> -<span id="cb508-5"><a href="#cb508-5" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb508-6"><a href="#cb508-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> -<span id="cb508-7"><a href="#cb508-7" aria-hidden="true" tabindex="-1"></a>`<span class="ss">$</span><span class="sc">\sqrt</span><span class="ss">{-1}$</span> *equals* <span class="ss">$i$</span>`</span> -<span id="cb508-8"><a href="#cb508-8" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb508-9"><a href="#cb508-9" aria-hidden="true" tabindex="-1"></a><span class="ss">$</span><span class="sc">\sqrt</span><span class="ss">{-1}$</span> *equals* <span class="ss">$i$</span></span> -<span id="cb508-10"><a href="#cb508-10" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> -<span id="cb508-11"><a href="#cb508-11" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb508-12"><a href="#cb508-12" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionHybrid</span>{true}</span> -<span id="cb508-13"><a href="#cb508-13" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> -<span id="cb508-14"><a href="#cb508-14" aria-hidden="true" tabindex="-1"></a><span class="ss">$</span><span class="sc">\sqrt</span><span class="ss">{-1}$</span> *equals* <span class="ss">$i$</span></span> -<span id="cb508-15"><a href="#cb508-15" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> -<span id="cb508-16"><a href="#cb508-16" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb508-17"><a href="#cb508-17" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> +<div class="sourceCode" id="cb511"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb511-1"><a href="#cb511-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> +<span id="cb511-2"><a href="#cb511-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> lmfonts</span> +<span id="cb511-3"><a href="#cb511-3" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb511-4"><a href="#cb511-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererCodeSpan</span>#1{#1}</span> +<span id="cb511-5"><a href="#cb511-5" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb511-6"><a href="#cb511-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> +<span id="cb511-7"><a href="#cb511-7" aria-hidden="true" tabindex="-1"></a>`<span class="ss">$</span><span class="sc">\sqrt</span><span class="ss">{-1}$</span> *equals* <span class="ss">$i$</span>`</span> +<span id="cb511-8"><a href="#cb511-8" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb511-9"><a href="#cb511-9" aria-hidden="true" tabindex="-1"></a><span class="ss">$</span><span class="sc">\sqrt</span><span class="ss">{-1}$</span> *equals* <span class="ss">$i$</span></span> +<span id="cb511-10"><a href="#cb511-10" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> +<span id="cb511-11"><a href="#cb511-11" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb511-12"><a href="#cb511-12" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionHybrid</span>{true}</span> +<span id="cb511-13"><a href="#cb511-13" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> +<span id="cb511-14"><a href="#cb511-14" aria-hidden="true" tabindex="-1"></a><span class="ss">$</span><span class="sc">\sqrt</span><span class="ss">{-1}$</span> *equals* <span class="ss">$i$</span></span> +<span id="cb511-15"><a href="#cb511-15" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> +<span id="cb511-16"><a href="#cb511-16" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb511-17"><a href="#cb511-17" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb509"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb509-1"><a href="#cb509-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb512"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb512-1"><a href="#cb512-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -9205,30 +9325,30 @@ contain the following text:</p> class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb510"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb510-1"><a href="#cb510-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb510-2"><a href="#cb510-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[smartEllipses]{<span class="ex">markdown</span>}</span> -<span id="cb510-3"><a href="#cb510-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> -<span id="cb510-4"><a href="#cb510-4" aria-hidden="true" tabindex="-1"></a> renderers = {</span> -<span id="cb510-5"><a href="#cb510-5" aria-hidden="true" tabindex="-1"></a> codeSpan = {#1},</span> -<span id="cb510-6"><a href="#cb510-6" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb510-7"><a href="#cb510-7" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb510-8"><a href="#cb510-8" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb510-9"><a href="#cb510-9" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb510-10"><a href="#cb510-10" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb510-11"><a href="#cb510-11" aria-hidden="true" tabindex="-1"></a>`<span class="ss">$</span><span class="sc">\sqrt</span><span class="ss">{-1}$</span> *equals* <span class="ss">$i$</span>`</span> -<span id="cb510-12"><a href="#cb510-12" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb510-13"><a href="#cb510-13" aria-hidden="true" tabindex="-1"></a><span class="ss">$</span><span class="sc">\sqrt</span><span class="ss">{-1}$</span> *equals* <span class="ss">$i$</span></span> -<span id="cb510-14"><a href="#cb510-14" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb510-15"><a href="#cb510-15" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb510-16"><a href="#cb510-16" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}[hybrid]</span> -<span id="cb510-17"><a href="#cb510-17" aria-hidden="true" tabindex="-1"></a><span class="ss">$</span><span class="sc">\sqrt</span><span class="ss">{-1}$</span> *equals* <span class="ss">$i$</span></span> -<span id="cb510-18"><a href="#cb510-18" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb510-19"><a href="#cb510-19" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb510-20"><a href="#cb510-20" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb513"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb513-1"><a href="#cb513-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb513-2"><a href="#cb513-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[smartEllipses]{<span class="ex">markdown</span>}</span> +<span id="cb513-3"><a href="#cb513-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> +<span id="cb513-4"><a href="#cb513-4" aria-hidden="true" tabindex="-1"></a> renderers = {</span> +<span id="cb513-5"><a href="#cb513-5" aria-hidden="true" tabindex="-1"></a> codeSpan = {#1},</span> +<span id="cb513-6"><a href="#cb513-6" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb513-7"><a href="#cb513-7" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb513-8"><a href="#cb513-8" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb513-9"><a href="#cb513-9" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb513-10"><a href="#cb513-10" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb513-11"><a href="#cb513-11" aria-hidden="true" tabindex="-1"></a>`<span class="ss">$</span><span class="sc">\sqrt</span><span class="ss">{-1}$</span> *equals* <span class="ss">$i$</span>`</span> +<span id="cb513-12"><a href="#cb513-12" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb513-13"><a href="#cb513-13" aria-hidden="true" tabindex="-1"></a><span class="ss">$</span><span class="sc">\sqrt</span><span class="ss">{-1}$</span> *equals* <span class="ss">$i$</span></span> +<span id="cb513-14"><a href="#cb513-14" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb513-15"><a href="#cb513-15" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb513-16"><a href="#cb513-16" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}[hybrid]</span> +<span id="cb513-17"><a href="#cb513-17" aria-hidden="true" tabindex="-1"></a><span class="ss">$</span><span class="sc">\sqrt</span><span class="ss">{-1}$</span> *equals* <span class="ss">$i$</span></span> +<span id="cb513-18"><a href="#cb513-18" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb513-19"><a href="#cb513-19" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb513-20"><a href="#cb513-20" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb511"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb511-1"><a href="#cb511-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb514"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb514-1"><a href="#cb514-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -9241,26 +9361,26 @@ contain the following text:</p> class="tex">T<sub>e</sub>X</span>t Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb512"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb512-1"><a href="#cb512-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> -<span id="cb512-2"><a href="#cb512-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererCodeSpan</span>#1{#1}</span> -<span id="cb512-3"><a href="#cb512-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> -<span id="cb512-4"><a href="#cb512-4" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb512-5"><a href="#cb512-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> -<span id="cb512-6"><a href="#cb512-6" aria-hidden="true" tabindex="-1"></a>`<span class="ss">$</span><span class="sc">\sqrt</span><span class="ss">{-1}$</span> *equals* <span class="ss">$i$</span>`</span> -<span id="cb512-7"><a href="#cb512-7" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb512-8"><a href="#cb512-8" aria-hidden="true" tabindex="-1"></a><span class="ss">$</span><span class="sc">\sqrt</span><span class="ss">{-1}$</span> *equals* <span class="ss">$i$</span></span> -<span id="cb512-9"><a href="#cb512-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> -<span id="cb512-10"><a href="#cb512-10" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb512-11"><a href="#cb512-11" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span>[hybrid = yes]</span> -<span id="cb512-12"><a href="#cb512-12" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> -<span id="cb512-13"><a href="#cb512-13" aria-hidden="true" tabindex="-1"></a><span class="ss">$</span><span class="sc">\sqrt</span><span class="ss">{-1}$</span> *equals* <span class="ss">$i$</span></span> -<span id="cb512-14"><a href="#cb512-14" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> -<span id="cb512-15"><a href="#cb512-15" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb512-16"><a href="#cb512-16" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> +<div class="sourceCode" id="cb515"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb515-1"><a href="#cb515-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> +<span id="cb515-2"><a href="#cb515-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererCodeSpan</span>#1{#1}</span> +<span id="cb515-3"><a href="#cb515-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> +<span id="cb515-4"><a href="#cb515-4" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb515-5"><a href="#cb515-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> +<span id="cb515-6"><a href="#cb515-6" aria-hidden="true" tabindex="-1"></a>`<span class="ss">$</span><span class="sc">\sqrt</span><span class="ss">{-1}$</span> *equals* <span class="ss">$i$</span>`</span> +<span id="cb515-7"><a href="#cb515-7" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb515-8"><a href="#cb515-8" aria-hidden="true" tabindex="-1"></a><span class="ss">$</span><span class="sc">\sqrt</span><span class="ss">{-1}$</span> *equals* <span class="ss">$i$</span></span> +<span id="cb515-9"><a href="#cb515-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> +<span id="cb515-10"><a href="#cb515-10" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb515-11"><a href="#cb515-11" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span>[hybrid = yes]</span> +<span id="cb515-12"><a href="#cb515-12" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> +<span id="cb515-13"><a href="#cb515-13" aria-hidden="true" tabindex="-1"></a><span class="ss">$</span><span class="sc">\sqrt</span><span class="ss">{-1}$</span> *equals* <span class="ss">$i$</span></span> +<span id="cb515-14"><a href="#cb515-14" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> +<span id="cb515-15"><a href="#cb515-15" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb515-16"><a href="#cb515-16" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb513"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb513-1"><a href="#cb513-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb516"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb516-1"><a href="#cb516-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -9274,36 +9394,36 @@ id="code-span-attribute-context-renderers"><span class="header-section-number">2.3.1.8</span> Code Span Attribute Context Renderers</h4> <p>The following macros are only produced, when the -<strong><code>inlineCodeAttributes</code></strong> option is +<code><strong>inlineCodeAttributes</strong></code> option is enabled.</p> -<p>The <code>\markdownRendererCodeSpanAttributeContextBegin</code> and -<code>\markdownRendererCodeSpanAttributeContextEnd</code> macros +<p>The <code>markdownRendererCodeSpanAttributeContextBegin</code> and +<code>markdownRendererCodeSpanAttributeContextEnd</code> macros represent the beginning and the end of a context in which the attributes of an inline code span apply. The macros receive no arguments.</p> <h5 class="unnumbered" id="latex-example-64"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb514"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb514-1"><a href="#cb514-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb514-2"><a href="#cb514-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[inlineCodeAttributes]{<span class="ex">markdown</span>}</span> -<span id="cb514-3"><a href="#cb514-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> -<span id="cb514-4"><a href="#cb514-4" aria-hidden="true" tabindex="-1"></a> renderers = {</span> -<span id="cb514-5"><a href="#cb514-5" aria-hidden="true" tabindex="-1"></a> codeSpanAttributeContextBegin = {(},</span> -<span id="cb514-6"><a href="#cb514-6" aria-hidden="true" tabindex="-1"></a> codeSpan = {#1},</span> -<span id="cb514-7"><a href="#cb514-7" aria-hidden="true" tabindex="-1"></a> codeSpanAttributeContextEnd = {)},</span> -<span id="cb514-8"><a href="#cb514-8" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb514-9"><a href="#cb514-9" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb514-10"><a href="#cb514-10" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb514-11"><a href="#cb514-11" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb514-12"><a href="#cb514-12" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb514-13"><a href="#cb514-13" aria-hidden="true" tabindex="-1"></a>foo `bar`{key=value} baz</span> -<span id="cb514-14"><a href="#cb514-14" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb514-15"><a href="#cb514-15" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb514-16"><a href="#cb514-16" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb517"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb517-1"><a href="#cb517-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb517-2"><a href="#cb517-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[inlineCodeAttributes]{<span class="ex">markdown</span>}</span> +<span id="cb517-3"><a href="#cb517-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> +<span id="cb517-4"><a href="#cb517-4" aria-hidden="true" tabindex="-1"></a> renderers = {</span> +<span id="cb517-5"><a href="#cb517-5" aria-hidden="true" tabindex="-1"></a> codeSpanAttributeContextBegin = {(},</span> +<span id="cb517-6"><a href="#cb517-6" aria-hidden="true" tabindex="-1"></a> codeSpan = {#1},</span> +<span id="cb517-7"><a href="#cb517-7" aria-hidden="true" tabindex="-1"></a> codeSpanAttributeContextEnd = {)},</span> +<span id="cb517-8"><a href="#cb517-8" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb517-9"><a href="#cb517-9" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb517-10"><a href="#cb517-10" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb517-11"><a href="#cb517-11" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb517-12"><a href="#cb517-12" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb517-13"><a href="#cb517-13" aria-hidden="true" tabindex="-1"></a>foo `bar`{key=value} baz</span> +<span id="cb517-14"><a href="#cb517-14" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb517-15"><a href="#cb517-15" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb517-16"><a href="#cb517-16" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb515"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb515-1"><a href="#cb515-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb518"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb518-1"><a href="#cb518-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -9312,24 +9432,24 @@ contain the following text:</p> <h4 data-number="2.3.1.9" id="texcontentblockrenderers"><span class="header-section-number">2.3.1.9</span> Content Block Renderers</h4> -<p>The <code>\markdownRendererContentBlock</code> macro represents an +<p>The <code>markdownRendererContentBlock</code> macro represents an iA Writer content block. It receives four arguments: the local file or online image filename extension cast to the lower case, the fully escaped <abbr>uri</abbr> that can be directly typeset, the raw <abbr>uri</abbr> that can be used outside typesetting, and the title of the content block.</p> -<p>The <code>\markdownRendererContentBlockOnlineImage</code> macro +<p>The <code>markdownRendererContentBlockOnlineImage</code> macro represents an iA Writer online image content block. The macro receives -the same arguments as <code>\markdownRendererContentBlock</code>.</p> -<p>The <code>\markdownRendererContentBlockCode</code> macro represents -an iA Writer content block that was recognized as a file in a known +the same arguments as <code>markdownRendererContentBlock</code>.</p> +<p>The <code>markdownRendererContentBlockCode</code> macro represents an +iA Writer content block that was recognized as a file in a known programming language by its filename extension <span class="math inline"><em>s</em></span>. If any <code>markdown-languages.json</code> file found by -<strong><code>kpathsea</code></strong><a href="#fn3" +<code><strong>kpathsea</strong></code><a href="#fn3" class="footnote-ref" id="fnref3" role="doc-noteref"><sup>3</sup></a> contains a record <span -class="math inline">(<em>k</em>,<em>v</em>)</span>, then a +class="math inline">(<em>k</em>, <em>v</em>)</span>, then a non-online-image content block with the filename extension <span class="math inline"><em>s</em>, <em>s</em></span><code>:lower()</code><span class="math inline"> = <em>k</em></span> is considered to be in a known @@ -9354,34 +9474,34 @@ starting point.</p> class="tex">T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb516"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb516-1"><a href="#cb516-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> -<span id="cb516-2"><a href="#cb516-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionContentBlocks</span>{true}</span> -<span id="cb516-3"><a href="#cb516-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererContentBlock</span>#1#2#3#4{<span class="co">%</span></span> -<span id="cb516-4"><a href="#cb516-4" aria-hidden="true" tabindex="-1"></a> This is {<span class="fu">\tt</span> #2}, #4.</span> -<span id="cb516-5"><a href="#cb516-5" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb516-6"><a href="#cb516-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererContentBlockOnlineImage</span>#1#2#3#4{<span class="co">%</span></span> -<span id="cb516-7"><a href="#cb516-7" aria-hidden="true" tabindex="-1"></a> This is the image {<span class="fu">\tt</span> #2}, #4.</span> -<span id="cb516-8"><a href="#cb516-8" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb516-9"><a href="#cb516-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererContentBlockCode</span>#1#2#3#4#5{<span class="co">%</span></span> -<span id="cb516-10"><a href="#cb516-10" aria-hidden="true" tabindex="-1"></a> This is the #2 (<span class="fu">\uppercase</span>{#1}) document {<span class="fu">\tt</span> #3}, #5.</span> -<span id="cb516-11"><a href="#cb516-11" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb516-12"><a href="#cb516-12" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> -<span id="cb516-13"><a href="#cb516-13" aria-hidden="true" tabindex="-1"></a>/document.tex (the document that we are currently typesetting)</span> -<span id="cb516-14"><a href="#cb516-14" aria-hidden="true" tabindex="-1"></a>/markdown-languages.json (the mapping between filename extensions</span> -<span id="cb516-15"><a href="#cb516-15" aria-hidden="true" tabindex="-1"></a> and programming language names)</span> -<span id="cb516-16"><a href="#cb516-16" aria-hidden="true" tabindex="-1"></a>https://tug.org/tugboat/noword.jpg (the logotype of TUGboat)</span> -<span id="cb516-17"><a href="#cb516-17" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> -<span id="cb516-18"><a href="#cb516-18" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> +<div class="sourceCode" id="cb519"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb519-1"><a href="#cb519-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> +<span id="cb519-2"><a href="#cb519-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionContentBlocks</span>{true}</span> +<span id="cb519-3"><a href="#cb519-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererContentBlock</span>#1#2#3#4{<span class="co">%</span></span> +<span id="cb519-4"><a href="#cb519-4" aria-hidden="true" tabindex="-1"></a> This is {<span class="fu">\tt</span> #2}, #4.</span> +<span id="cb519-5"><a href="#cb519-5" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb519-6"><a href="#cb519-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererContentBlockOnlineImage</span>#1#2#3#4{<span class="co">%</span></span> +<span id="cb519-7"><a href="#cb519-7" aria-hidden="true" tabindex="-1"></a> This is the image {<span class="fu">\tt</span> #2}, #4.</span> +<span id="cb519-8"><a href="#cb519-8" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb519-9"><a href="#cb519-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererContentBlockCode</span>#1#2#3#4#5{<span class="co">%</span></span> +<span id="cb519-10"><a href="#cb519-10" aria-hidden="true" tabindex="-1"></a> This is the #2 (<span class="fu">\uppercase</span>{#1}) document {<span class="fu">\tt</span> #3}, #5.</span> +<span id="cb519-11"><a href="#cb519-11" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb519-12"><a href="#cb519-12" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> +<span id="cb519-13"><a href="#cb519-13" aria-hidden="true" tabindex="-1"></a>/document.tex (the document that we are currently typesetting)</span> +<span id="cb519-14"><a href="#cb519-14" aria-hidden="true" tabindex="-1"></a>/markdown-languages.json (the mapping between filename extensions</span> +<span id="cb519-15"><a href="#cb519-15" aria-hidden="true" tabindex="-1"></a> and programming language names)</span> +<span id="cb519-16"><a href="#cb519-16" aria-hidden="true" tabindex="-1"></a>https://tug.org/tugboat/noword.jpg (the logotype of TUGboat)</span> +<span id="cb519-17"><a href="#cb519-17" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> +<span id="cb519-18"><a href="#cb519-18" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> <p>Create also a text document named <code>markdown-languages.json</code> with the following content:</p> -<div class="sourceCode" id="cb517"><pre -class="sourceCode js"><code class="sourceCode javascript"><span id="cb517-1"><a href="#cb517-1" aria-hidden="true" tabindex="-1"></a>{</span> -<span id="cb517-2"><a href="#cb517-2" aria-hidden="true" tabindex="-1"></a> <span class="st">"json"</span><span class="op">:</span> <span class="st">"JavaScript Object Notation"</span><span class="op">,</span></span> -<span id="cb517-3"><a href="#cb517-3" aria-hidden="true" tabindex="-1"></a>}</span></code></pre></div> +<div class="sourceCode" id="cb520"><pre +class="sourceCode js"><code class="sourceCode javascript"><span id="cb520-1"><a href="#cb520-1" aria-hidden="true" tabindex="-1"></a>{</span> +<span id="cb520-2"><a href="#cb520-2" aria-hidden="true" tabindex="-1"></a> <span class="st">"json"</span><span class="op">:</span> <span class="st">"JavaScript Object Notation"</span><span class="op">,</span></span> +<span id="cb520-3"><a href="#cb520-3" aria-hidden="true" tabindex="-1"></a>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb518"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb518-1"><a href="#cb518-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb521"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb521-1"><a href="#cb521-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -9397,34 +9517,34 @@ the logotype of TUGboat.</p> class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb519"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb519-1"><a href="#cb519-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb519-2"><a href="#cb519-2" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">filecontents</span>}[overwrite,nosearch,noheader]{markdown-languages.json}</span> -<span id="cb519-3"><a href="#cb519-3" aria-hidden="true" tabindex="-1"></a>{</span> -<span id="cb519-4"><a href="#cb519-4" aria-hidden="true" tabindex="-1"></a> "json": "JavaScript Object Notation",</span> -<span id="cb519-5"><a href="#cb519-5" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb519-6"><a href="#cb519-6" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">filecontents</span>}</span> -<span id="cb519-7"><a href="#cb519-7" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[contentBlocks]{<span class="ex">markdown</span>}</span> -<span id="cb519-8"><a href="#cb519-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> -<span id="cb519-9"><a href="#cb519-9" aria-hidden="true" tabindex="-1"></a> renderers = {</span> -<span id="cb519-10"><a href="#cb519-10" aria-hidden="true" tabindex="-1"></a> contentBlock = {This is <span class="fu">\texttt</span>{#2}, #4.},</span> -<span id="cb519-11"><a href="#cb519-11" aria-hidden="true" tabindex="-1"></a> contentBlockOnlineImage = {This is the image <span class="fu">\texttt</span>{#2}, #4.},</span> -<span id="cb519-12"><a href="#cb519-12" aria-hidden="true" tabindex="-1"></a> contentBlockCode = {<span class="co">%</span></span> -<span id="cb519-13"><a href="#cb519-13" aria-hidden="true" tabindex="-1"></a> This is the #2 (<span class="fu">\MakeUppercase</span>{#1}) document <span class="fu">\texttt</span>{#3}, #5.</span> -<span id="cb519-14"><a href="#cb519-14" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb519-15"><a href="#cb519-15" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb519-16"><a href="#cb519-16" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb519-17"><a href="#cb519-17" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb519-18"><a href="#cb519-18" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb519-19"><a href="#cb519-19" aria-hidden="true" tabindex="-1"></a>/document.tex (the document that we are currently typesetting)</span> -<span id="cb519-20"><a href="#cb519-20" aria-hidden="true" tabindex="-1"></a>/markdown-languages.json (the mapping between filename extensions</span> -<span id="cb519-21"><a href="#cb519-21" aria-hidden="true" tabindex="-1"></a> and programming language names)</span> -<span id="cb519-22"><a href="#cb519-22" aria-hidden="true" tabindex="-1"></a>https://tug.org/tugboat/noword.jpg (the logotype of TUGboat)</span> -<span id="cb519-23"><a href="#cb519-23" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb519-24"><a href="#cb519-24" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb522"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb522-1"><a href="#cb522-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb522-2"><a href="#cb522-2" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">filecontents</span>}[overwrite,nosearch,noheader]{markdown-languages.json}</span> +<span id="cb522-3"><a href="#cb522-3" aria-hidden="true" tabindex="-1"></a>{</span> +<span id="cb522-4"><a href="#cb522-4" aria-hidden="true" tabindex="-1"></a> "json": "JavaScript Object Notation",</span> +<span id="cb522-5"><a href="#cb522-5" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb522-6"><a href="#cb522-6" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">filecontents</span>}</span> +<span id="cb522-7"><a href="#cb522-7" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[contentBlocks]{<span class="ex">markdown</span>}</span> +<span id="cb522-8"><a href="#cb522-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> +<span id="cb522-9"><a href="#cb522-9" aria-hidden="true" tabindex="-1"></a> renderers = {</span> +<span id="cb522-10"><a href="#cb522-10" aria-hidden="true" tabindex="-1"></a> contentBlock = {This is <span class="fu">\texttt</span>{#2}, #4.},</span> +<span id="cb522-11"><a href="#cb522-11" aria-hidden="true" tabindex="-1"></a> contentBlockOnlineImage = {This is the image <span class="fu">\texttt</span>{#2}, #4.},</span> +<span id="cb522-12"><a href="#cb522-12" aria-hidden="true" tabindex="-1"></a> contentBlockCode = {<span class="co">%</span></span> +<span id="cb522-13"><a href="#cb522-13" aria-hidden="true" tabindex="-1"></a> This is the #2 (<span class="fu">\MakeUppercase</span>{#1}) document <span class="fu">\texttt</span>{#3}, #5.</span> +<span id="cb522-14"><a href="#cb522-14" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb522-15"><a href="#cb522-15" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb522-16"><a href="#cb522-16" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb522-17"><a href="#cb522-17" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb522-18"><a href="#cb522-18" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb522-19"><a href="#cb522-19" aria-hidden="true" tabindex="-1"></a>/document.tex (the document that we are currently typesetting)</span> +<span id="cb522-20"><a href="#cb522-20" aria-hidden="true" tabindex="-1"></a>/markdown-languages.json (the mapping between filename extensions</span> +<span id="cb522-21"><a href="#cb522-21" aria-hidden="true" tabindex="-1"></a> and programming language names)</span> +<span id="cb522-22"><a href="#cb522-22" aria-hidden="true" tabindex="-1"></a>https://tug.org/tugboat/noword.jpg (the logotype of TUGboat)</span> +<span id="cb522-23"><a href="#cb522-23" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb522-24"><a href="#cb522-24" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb520"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb520-1"><a href="#cb520-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb523"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb523-1"><a href="#cb523-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -9440,35 +9560,35 @@ the logotype of TUGboat.</p> class="tex">T<sub>e</sub>X</span>t Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb521"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb521-1"><a href="#cb521-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> -<span id="cb521-2"><a href="#cb521-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span>[contentBlocks = yes]</span> -<span id="cb521-3"><a href="#cb521-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererContentBlock</span>#1#2#3#4{<span class="co">%</span></span> -<span id="cb521-4"><a href="#cb521-4" aria-hidden="true" tabindex="-1"></a> This is {<span class="fu">\tt</span> #2}, #4.</span> -<span id="cb521-5"><a href="#cb521-5" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb521-6"><a href="#cb521-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererContentBlockOnlineImage</span>#1#2#3#4{<span class="co">%</span></span> -<span id="cb521-7"><a href="#cb521-7" aria-hidden="true" tabindex="-1"></a> This is the image {<span class="fu">\tt</span> #2}, #4.</span> -<span id="cb521-8"><a href="#cb521-8" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb521-9"><a href="#cb521-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererContentBlockCode</span>#1#2#3#4#5{<span class="co">%</span></span> -<span id="cb521-10"><a href="#cb521-10" aria-hidden="true" tabindex="-1"></a> This is the #2 (<span class="fu">\uppercase</span>{#1}) document {<span class="fu">\tt</span> #3}, #5.</span> -<span id="cb521-11"><a href="#cb521-11" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb521-12"><a href="#cb521-12" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> -<span id="cb521-13"><a href="#cb521-13" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> -<span id="cb521-14"><a href="#cb521-14" aria-hidden="true" tabindex="-1"></a>/document.tex (the document that we are currently typesetting)</span> -<span id="cb521-15"><a href="#cb521-15" aria-hidden="true" tabindex="-1"></a>/markdown-languages.json (the mapping between filename extensions</span> -<span id="cb521-16"><a href="#cb521-16" aria-hidden="true" tabindex="-1"></a> and programming language names)</span> -<span id="cb521-17"><a href="#cb521-17" aria-hidden="true" tabindex="-1"></a>https://tug.org/tugboat/noword.jpg (the logotype of TUGboat)</span> -<span id="cb521-18"><a href="#cb521-18" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> -<span id="cb521-19"><a href="#cb521-19" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> +<div class="sourceCode" id="cb524"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb524-1"><a href="#cb524-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> +<span id="cb524-2"><a href="#cb524-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span>[contentBlocks = yes]</span> +<span id="cb524-3"><a href="#cb524-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererContentBlock</span>#1#2#3#4{<span class="co">%</span></span> +<span id="cb524-4"><a href="#cb524-4" aria-hidden="true" tabindex="-1"></a> This is {<span class="fu">\tt</span> #2}, #4.</span> +<span id="cb524-5"><a href="#cb524-5" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb524-6"><a href="#cb524-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererContentBlockOnlineImage</span>#1#2#3#4{<span class="co">%</span></span> +<span id="cb524-7"><a href="#cb524-7" aria-hidden="true" tabindex="-1"></a> This is the image {<span class="fu">\tt</span> #2}, #4.</span> +<span id="cb524-8"><a href="#cb524-8" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb524-9"><a href="#cb524-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererContentBlockCode</span>#1#2#3#4#5{<span class="co">%</span></span> +<span id="cb524-10"><a href="#cb524-10" aria-hidden="true" tabindex="-1"></a> This is the #2 (<span class="fu">\uppercase</span>{#1}) document {<span class="fu">\tt</span> #3}, #5.</span> +<span id="cb524-11"><a href="#cb524-11" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb524-12"><a href="#cb524-12" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> +<span id="cb524-13"><a href="#cb524-13" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> +<span id="cb524-14"><a href="#cb524-14" aria-hidden="true" tabindex="-1"></a>/document.tex (the document that we are currently typesetting)</span> +<span id="cb524-15"><a href="#cb524-15" aria-hidden="true" tabindex="-1"></a>/markdown-languages.json (the mapping between filename extensions</span> +<span id="cb524-16"><a href="#cb524-16" aria-hidden="true" tabindex="-1"></a> and programming language names)</span> +<span id="cb524-17"><a href="#cb524-17" aria-hidden="true" tabindex="-1"></a>https://tug.org/tugboat/noword.jpg (the logotype of TUGboat)</span> +<span id="cb524-18"><a href="#cb524-18" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> +<span id="cb524-19"><a href="#cb524-19" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> <p>Create also a text document named <code>markdown-languages.json</code> with the following content:</p> -<div class="sourceCode" id="cb522"><pre -class="sourceCode js"><code class="sourceCode javascript"><span id="cb522-1"><a href="#cb522-1" aria-hidden="true" tabindex="-1"></a>{</span> -<span id="cb522-2"><a href="#cb522-2" aria-hidden="true" tabindex="-1"></a> <span class="st">"json"</span><span class="op">:</span> <span class="st">"JavaScript Object Notation"</span><span class="op">,</span></span> -<span id="cb522-3"><a href="#cb522-3" aria-hidden="true" tabindex="-1"></a>}</span></code></pre></div> +<div class="sourceCode" id="cb525"><pre +class="sourceCode js"><code class="sourceCode javascript"><span id="cb525-1"><a href="#cb525-1" aria-hidden="true" tabindex="-1"></a>{</span> +<span id="cb525-2"><a href="#cb525-2" aria-hidden="true" tabindex="-1"></a> <span class="st">"json"</span><span class="op">:</span> <span class="st">"JavaScript Object Notation"</span><span class="op">,</span></span> +<span id="cb525-3"><a href="#cb525-3" aria-hidden="true" tabindex="-1"></a>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb523"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb523-1"><a href="#cb523-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb526"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb526-1"><a href="#cb526-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -9484,121 +9604,121 @@ the logotype of TUGboat.</p> class="header-section-number">2.3.1.10</span> Definition List Renderers</h4> <p>The following macros are only produced, when the -<strong><code>definitionLists</code></strong> option is enabled.</p> -<p>The <code>\markdownRendererDlBegin</code> macro represents the +<code><strong>definitionLists</strong></code> option is enabled.</p> +<p>The <code>markdownRendererDlBegin</code> macro represents the beginning of a definition list that contains an item with several paragraphs of text (the list is not tight). The macro receives no arguments.</p> -<p>The <code>\markdownRendererDlBeginTight</code> macro represents the +<p>The <code>markdownRendererDlBeginTight</code> macro represents the beginning of a definition list that contains no item with several paragraphs of text (the list is tight). This macro will only be -produced, when the <strong><code>tightLists</code></strong> option is +produced, when the <code><strong>tightLists</strong></code> option is disabled. The macro receives no arguments.</p> -<p>The <code>\markdownRendererDlItem</code> macro represents a term in a +<p>The <code>markdownRendererDlItem</code> macro represents a term in a definition list. The macro receives a single argument that corresponds to the term being defined.</p> -<p>The <code>\markdownRendererDlItemEnd</code> macro represents the end +<p>The <code>markdownRendererDlItemEnd</code> macro represents the end of a list of definitions for a single term.</p> -<p>The <code>\markdownRendererDlDefinitionBegin</code> macro represents +<p>The <code>markdownRendererDlDefinitionBegin</code> macro represents the beginning of a definition in a definition list. There can be several definitions for a single term.</p> -<p>The <code>\markdownRendererDlDefinitionEnd</code> macro represents -the end of a definition in a definition list. There can be several +<p>The <code>markdownRendererDlDefinitionEnd</code> macro represents the +end of a definition in a definition list. There can be several definitions for a single term.</p> -<p>The <code>\markdownRendererDlEnd</code> macro represents the end of a +<p>The <code>markdownRendererDlEnd</code> macro represents the end of a definition list that contains an item with several paragraphs of text (the list is not tight). The macro receives no arguments.</p> -<p>The <code>\markdownRendererDlEndTight</code> macro represents the end +<p>The <code>markdownRendererDlEndTight</code> macro represents the end of a definition list that contains no item with several paragraphs of text (the list is tight). This macro will only be produced, when the -<strong><code>tightLists</code></strong> option is disabled. The macro +<code><strong>tightLists</strong></code> option is disabled. The macro receives no arguments.</p> <h5 class="unnumbered" id="plain-tex-example-29">Plain <span class="tex">T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb524"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb524-1"><a href="#cb524-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> -<span id="cb524-2"><a href="#cb524-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionDefinitionLists</span>{true}</span> -<span id="cb524-3"><a href="#cb524-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionTightLists</span>{true}</span> -<span id="cb524-4"><a href="#cb524-4" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb524-5"><a href="#cb524-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="co">%</span></span> -<span id="cb524-6"><a href="#cb524-6" aria-hidden="true" tabindex="-1"></a> :<span class="co">%</span></span> -<span id="cb524-7"><a href="#cb524-7" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="fu">\par</span>}<span class="co">%</span></span> -<span id="cb524-8"><a href="#cb524-8" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb524-9"><a href="#cb524-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererDlBeginTight</span>{<span class="co">%</span></span> -<span id="cb524-10"><a href="#cb524-10" aria-hidden="true" tabindex="-1"></a> <span class="fu">\begingroup</span></span> -<span id="cb524-11"><a href="#cb524-11" aria-hidden="true" tabindex="-1"></a> <span class="fu">\parindent</span>=0pt</span> -<span id="cb524-12"><a href="#cb524-12" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb524-13"><a href="#cb524-13" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererDlItem</span>#1{<span class="co">%</span></span> -<span id="cb524-14"><a href="#cb524-14" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span>{<span class="fu">\bf</span>#1}<span class="co">%</span></span> -<span id="cb524-15"><a href="#cb524-15" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererDlDefinitionEnd</span>{<span class="co">%</span></span> -<span id="cb524-16"><a href="#cb524-16" aria-hidden="true" tabindex="-1"></a> ,</span> -<span id="cb524-17"><a href="#cb524-17" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererDlDefinitionEnd</span>{<span class="co">%</span></span> -<span id="cb524-18"><a href="#cb524-18" aria-hidden="true" tabindex="-1"></a> , and</span> -<span id="cb524-19"><a href="#cb524-19" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererDlDefinitionEnd</span>{.}<span class="co">%</span></span> -<span id="cb524-20"><a href="#cb524-20" aria-hidden="true" tabindex="-1"></a> }<span class="co">%</span></span> -<span id="cb524-21"><a href="#cb524-21" aria-hidden="true" tabindex="-1"></a> }<span class="co">%</span></span> -<span id="cb524-22"><a href="#cb524-22" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb524-23"><a href="#cb524-23" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererDlItemEnd</span>{}</span> -<span id="cb524-24"><a href="#cb524-24" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererDlDefinitionBegin</span>{<span class="fu">\par</span>--<span class="fu">\kern</span> 0.5em}</span> -<span id="cb524-25"><a href="#cb524-25" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererDlEndTight</span>{<span class="fu">\endgroup</span>}</span> -<span id="cb524-26"><a href="#cb524-26" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb524-27"><a href="#cb524-27" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> -<span id="cb524-28"><a href="#cb524-28" aria-hidden="true" tabindex="-1"></a>This is a tight definition list</span> -<span id="cb524-29"><a href="#cb524-29" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb524-30"><a href="#cb524-30" aria-hidden="true" tabindex="-1"></a>Coffee</span> -<span id="cb524-31"><a href="#cb524-31" aria-hidden="true" tabindex="-1"></a>: black hot drink</span> -<span id="cb524-32"><a href="#cb524-32" aria-hidden="true" tabindex="-1"></a>: prepared from roasted coffee beans</span> -<span id="cb524-33"><a href="#cb524-33" aria-hidden="true" tabindex="-1"></a>: one of the most traded agricultural commodities in the world</span> -<span id="cb524-34"><a href="#cb524-34" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb524-35"><a href="#cb524-35" aria-hidden="true" tabindex="-1"></a>Milk</span> -<span id="cb524-36"><a href="#cb524-36" aria-hidden="true" tabindex="-1"></a>: white cold drink</span> -<span id="cb524-37"><a href="#cb524-37" aria-hidden="true" tabindex="-1"></a>: nutrient-rich</span> -<span id="cb524-38"><a href="#cb524-38" aria-hidden="true" tabindex="-1"></a>: produced on an industrial scale</span> -<span id="cb524-39"><a href="#cb524-39" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> -<span id="cb524-40"><a href="#cb524-40" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb524-41"><a href="#cb524-41" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="co">%</span></span> -<span id="cb524-42"><a href="#cb524-42" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="fu">\par</span>}<span class="co">%</span></span> -<span id="cb524-43"><a href="#cb524-43" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb524-44"><a href="#cb524-44" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererDlBegin</span>{}</span> -<span id="cb524-45"><a href="#cb524-45" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererDlItem</span>#1{<span class="co">%</span></span> -<span id="cb524-46"><a href="#cb524-46" aria-hidden="true" tabindex="-1"></a> . #1 is a</span> -<span id="cb524-47"><a href="#cb524-47" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererDlDefinitionBegin</span>{<span class="co">%</span></span> -<span id="cb524-48"><a href="#cb524-48" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererDlDefinitionBegin</span>{<span class="co">%</span></span> -<span id="cb524-49"><a href="#cb524-49" aria-hidden="true" tabindex="-1"></a> ,</span> -<span id="cb524-50"><a href="#cb524-50" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererDlDefinitionBegin</span>{, and }<span class="co">%</span></span> -<span id="cb524-51"><a href="#cb524-51" aria-hidden="true" tabindex="-1"></a> }<span class="co">%</span></span> -<span id="cb524-52"><a href="#cb524-52" aria-hidden="true" tabindex="-1"></a> }<span class="co">%</span></span> -<span id="cb524-53"><a href="#cb524-53" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb524-54"><a href="#cb524-54" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererDlItemEnd</span>{}</span> -<span id="cb524-55"><a href="#cb524-55" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererDlDefinitionEnd</span>{}</span> -<span id="cb524-56"><a href="#cb524-56" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererDlEnd</span>{.}</span> -<span id="cb524-57"><a href="#cb524-57" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb524-58"><a href="#cb524-58" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> -<span id="cb524-59"><a href="#cb524-59" aria-hidden="true" tabindex="-1"></a>This is a loose definition list</span> -<span id="cb524-60"><a href="#cb524-60" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb524-61"><a href="#cb524-61" aria-hidden="true" tabindex="-1"></a>Coffee</span> -<span id="cb524-62"><a href="#cb524-62" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb524-63"><a href="#cb524-63" aria-hidden="true" tabindex="-1"></a>: black hot drink</span> -<span id="cb524-64"><a href="#cb524-64" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb524-65"><a href="#cb524-65" aria-hidden="true" tabindex="-1"></a>: prepared from roasted coffee beans</span> -<span id="cb524-66"><a href="#cb524-66" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb524-67"><a href="#cb524-67" aria-hidden="true" tabindex="-1"></a>: one of the most traded agricultural commodities in the world</span> -<span id="cb524-68"><a href="#cb524-68" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb524-69"><a href="#cb524-69" aria-hidden="true" tabindex="-1"></a>Milk</span> -<span id="cb524-70"><a href="#cb524-70" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb524-71"><a href="#cb524-71" aria-hidden="true" tabindex="-1"></a>: white cold drink</span> -<span id="cb524-72"><a href="#cb524-72" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb524-73"><a href="#cb524-73" aria-hidden="true" tabindex="-1"></a>: nutrient-rich</span> -<span id="cb524-74"><a href="#cb524-74" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb524-75"><a href="#cb524-75" aria-hidden="true" tabindex="-1"></a>: produced on an industrial scale</span> -<span id="cb524-76"><a href="#cb524-76" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> -<span id="cb524-77"><a href="#cb524-77" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb524-78"><a href="#cb524-78" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> +<div class="sourceCode" id="cb527"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb527-1"><a href="#cb527-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> +<span id="cb527-2"><a href="#cb527-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionDefinitionLists</span>{true}</span> +<span id="cb527-3"><a href="#cb527-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionTightLists</span>{true}</span> +<span id="cb527-4"><a href="#cb527-4" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb527-5"><a href="#cb527-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="co">%</span></span> +<span id="cb527-6"><a href="#cb527-6" aria-hidden="true" tabindex="-1"></a> :<span class="co">%</span></span> +<span id="cb527-7"><a href="#cb527-7" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="fu">\par</span>}<span class="co">%</span></span> +<span id="cb527-8"><a href="#cb527-8" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb527-9"><a href="#cb527-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererDlBeginTight</span>{<span class="co">%</span></span> +<span id="cb527-10"><a href="#cb527-10" aria-hidden="true" tabindex="-1"></a> <span class="fu">\begingroup</span></span> +<span id="cb527-11"><a href="#cb527-11" aria-hidden="true" tabindex="-1"></a> <span class="fu">\parindent</span>=0pt</span> +<span id="cb527-12"><a href="#cb527-12" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb527-13"><a href="#cb527-13" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererDlItem</span>#1{<span class="co">%</span></span> +<span id="cb527-14"><a href="#cb527-14" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span>{<span class="fu">\bf</span>#1}<span class="co">%</span></span> +<span id="cb527-15"><a href="#cb527-15" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererDlDefinitionEnd</span>{<span class="co">%</span></span> +<span id="cb527-16"><a href="#cb527-16" aria-hidden="true" tabindex="-1"></a> ,</span> +<span id="cb527-17"><a href="#cb527-17" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererDlDefinitionEnd</span>{<span class="co">%</span></span> +<span id="cb527-18"><a href="#cb527-18" aria-hidden="true" tabindex="-1"></a> , and</span> +<span id="cb527-19"><a href="#cb527-19" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererDlDefinitionEnd</span>{.}<span class="co">%</span></span> +<span id="cb527-20"><a href="#cb527-20" aria-hidden="true" tabindex="-1"></a> }<span class="co">%</span></span> +<span id="cb527-21"><a href="#cb527-21" aria-hidden="true" tabindex="-1"></a> }<span class="co">%</span></span> +<span id="cb527-22"><a href="#cb527-22" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb527-23"><a href="#cb527-23" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererDlItemEnd</span>{}</span> +<span id="cb527-24"><a href="#cb527-24" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererDlDefinitionBegin</span>{<span class="fu">\par</span>--<span class="fu">\kern</span> 0.5em}</span> +<span id="cb527-25"><a href="#cb527-25" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererDlEndTight</span>{<span class="fu">\endgroup</span>}</span> +<span id="cb527-26"><a href="#cb527-26" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb527-27"><a href="#cb527-27" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> +<span id="cb527-28"><a href="#cb527-28" aria-hidden="true" tabindex="-1"></a>This is a tight definition list</span> +<span id="cb527-29"><a href="#cb527-29" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb527-30"><a href="#cb527-30" aria-hidden="true" tabindex="-1"></a>Coffee</span> +<span id="cb527-31"><a href="#cb527-31" aria-hidden="true" tabindex="-1"></a>: black hot drink</span> +<span id="cb527-32"><a href="#cb527-32" aria-hidden="true" tabindex="-1"></a>: prepared from roasted coffee beans</span> +<span id="cb527-33"><a href="#cb527-33" aria-hidden="true" tabindex="-1"></a>: one of the most traded agricultural commodities in the world</span> +<span id="cb527-34"><a href="#cb527-34" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb527-35"><a href="#cb527-35" aria-hidden="true" tabindex="-1"></a>Milk</span> +<span id="cb527-36"><a href="#cb527-36" aria-hidden="true" tabindex="-1"></a>: white cold drink</span> +<span id="cb527-37"><a href="#cb527-37" aria-hidden="true" tabindex="-1"></a>: nutrient-rich</span> +<span id="cb527-38"><a href="#cb527-38" aria-hidden="true" tabindex="-1"></a>: produced on an industrial scale</span> +<span id="cb527-39"><a href="#cb527-39" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> +<span id="cb527-40"><a href="#cb527-40" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb527-41"><a href="#cb527-41" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="co">%</span></span> +<span id="cb527-42"><a href="#cb527-42" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="fu">\par</span>}<span class="co">%</span></span> +<span id="cb527-43"><a href="#cb527-43" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb527-44"><a href="#cb527-44" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererDlBegin</span>{}</span> +<span id="cb527-45"><a href="#cb527-45" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererDlItem</span>#1{<span class="co">%</span></span> +<span id="cb527-46"><a href="#cb527-46" aria-hidden="true" tabindex="-1"></a> . #1 is a</span> +<span id="cb527-47"><a href="#cb527-47" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererDlDefinitionBegin</span>{<span class="co">%</span></span> +<span id="cb527-48"><a href="#cb527-48" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererDlDefinitionBegin</span>{<span class="co">%</span></span> +<span id="cb527-49"><a href="#cb527-49" aria-hidden="true" tabindex="-1"></a> ,</span> +<span id="cb527-50"><a href="#cb527-50" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererDlDefinitionBegin</span>{, and }<span class="co">%</span></span> +<span id="cb527-51"><a href="#cb527-51" aria-hidden="true" tabindex="-1"></a> }<span class="co">%</span></span> +<span id="cb527-52"><a href="#cb527-52" aria-hidden="true" tabindex="-1"></a> }<span class="co">%</span></span> +<span id="cb527-53"><a href="#cb527-53" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb527-54"><a href="#cb527-54" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererDlItemEnd</span>{}</span> +<span id="cb527-55"><a href="#cb527-55" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererDlDefinitionEnd</span>{}</span> +<span id="cb527-56"><a href="#cb527-56" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererDlEnd</span>{.}</span> +<span id="cb527-57"><a href="#cb527-57" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb527-58"><a href="#cb527-58" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> +<span id="cb527-59"><a href="#cb527-59" aria-hidden="true" tabindex="-1"></a>This is a loose definition list</span> +<span id="cb527-60"><a href="#cb527-60" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb527-61"><a href="#cb527-61" aria-hidden="true" tabindex="-1"></a>Coffee</span> +<span id="cb527-62"><a href="#cb527-62" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb527-63"><a href="#cb527-63" aria-hidden="true" tabindex="-1"></a>: black hot drink</span> +<span id="cb527-64"><a href="#cb527-64" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb527-65"><a href="#cb527-65" aria-hidden="true" tabindex="-1"></a>: prepared from roasted coffee beans</span> +<span id="cb527-66"><a href="#cb527-66" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb527-67"><a href="#cb527-67" aria-hidden="true" tabindex="-1"></a>: one of the most traded agricultural commodities in the world</span> +<span id="cb527-68"><a href="#cb527-68" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb527-69"><a href="#cb527-69" aria-hidden="true" tabindex="-1"></a>Milk</span> +<span id="cb527-70"><a href="#cb527-70" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb527-71"><a href="#cb527-71" aria-hidden="true" tabindex="-1"></a>: white cold drink</span> +<span id="cb527-72"><a href="#cb527-72" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb527-73"><a href="#cb527-73" aria-hidden="true" tabindex="-1"></a>: nutrient-rich</span> +<span id="cb527-74"><a href="#cb527-74" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb527-75"><a href="#cb527-75" aria-hidden="true" tabindex="-1"></a>: produced on an industrial scale</span> +<span id="cb527-76"><a href="#cb527-76" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> +<span id="cb527-77"><a href="#cb527-77" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb527-78"><a href="#cb527-78" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb525"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb525-1"><a href="#cb525-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb528"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb528-1"><a href="#cb528-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -9624,90 +9744,90 @@ nutrient-rich, and produced on an industrial scale.</p> class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb526"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb526-1"><a href="#cb526-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb526-2"><a href="#cb526-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[definitionLists, tightLists]{<span class="ex">markdown</span>}</span> -<span id="cb526-3"><a href="#cb526-3" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb526-4"><a href="#cb526-4" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb526-5"><a href="#cb526-5" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}[</span> -<span id="cb526-6"><a href="#cb526-6" aria-hidden="true" tabindex="-1"></a> renderers = {</span> -<span id="cb526-7"><a href="#cb526-7" aria-hidden="true" tabindex="-1"></a> interblockSeparator = {<span class="co">%</span></span> -<span id="cb526-8"><a href="#cb526-8" aria-hidden="true" tabindex="-1"></a> :<span class="co">%</span></span> -<span id="cb526-9"><a href="#cb526-9" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="fu">\par</span>}<span class="co">%</span></span> -<span id="cb526-10"><a href="#cb526-10" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb526-11"><a href="#cb526-11" aria-hidden="true" tabindex="-1"></a> dlBeginTight = {<span class="kw">\begin</span>{<span class="ex">description</span>}},</span> -<span id="cb526-12"><a href="#cb526-12" aria-hidden="true" tabindex="-1"></a> dlItem = {<span class="co">%</span></span> -<span id="cb526-13"><a href="#cb526-13" aria-hidden="true" tabindex="-1"></a> <span class="fu">\item</span>[#1]</span> -<span id="cb526-14"><a href="#cb526-14" aria-hidden="true" tabindex="-1"></a> <span class="kw">\begin</span>{<span class="ex">itemize</span>}</span> -<span id="cb526-15"><a href="#cb526-15" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererDlDefinitionEnd</span>{<span class="co">%</span></span> -<span id="cb526-16"><a href="#cb526-16" aria-hidden="true" tabindex="-1"></a> ,</span> -<span id="cb526-17"><a href="#cb526-17" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererDlDefinitionEnd</span>{<span class="co">%</span></span> -<span id="cb526-18"><a href="#cb526-18" aria-hidden="true" tabindex="-1"></a> , and</span> -<span id="cb526-19"><a href="#cb526-19" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererDlDefinitionEnd</span>{.}<span class="co">%</span></span> -<span id="cb526-20"><a href="#cb526-20" aria-hidden="true" tabindex="-1"></a> }<span class="co">%</span></span> -<span id="cb526-21"><a href="#cb526-21" aria-hidden="true" tabindex="-1"></a> }<span class="co">%</span></span> -<span id="cb526-22"><a href="#cb526-22" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb526-23"><a href="#cb526-23" aria-hidden="true" tabindex="-1"></a> dlItemEnd = {<span class="kw">\end</span>{<span class="ex">itemize</span>}},</span> -<span id="cb526-24"><a href="#cb526-24" aria-hidden="true" tabindex="-1"></a> dlDefinitionBegin = <span class="fu">\item</span>,</span> -<span id="cb526-25"><a href="#cb526-25" aria-hidden="true" tabindex="-1"></a> dlEndTight = {<span class="kw">\end</span>{<span class="ex">description</span>}},</span> -<span id="cb526-26"><a href="#cb526-26" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb526-27"><a href="#cb526-27" aria-hidden="true" tabindex="-1"></a>]</span> -<span id="cb526-28"><a href="#cb526-28" aria-hidden="true" tabindex="-1"></a>This is a tight definition list</span> -<span id="cb526-29"><a href="#cb526-29" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb526-30"><a href="#cb526-30" aria-hidden="true" tabindex="-1"></a>Coffee</span> -<span id="cb526-31"><a href="#cb526-31" aria-hidden="true" tabindex="-1"></a>: black hot drink</span> -<span id="cb526-32"><a href="#cb526-32" aria-hidden="true" tabindex="-1"></a>: prepared from roasted coffee beans</span> -<span id="cb526-33"><a href="#cb526-33" aria-hidden="true" tabindex="-1"></a>: one of the most traded agricultural commodities in the world</span> -<span id="cb526-34"><a href="#cb526-34" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb526-35"><a href="#cb526-35" aria-hidden="true" tabindex="-1"></a>Milk</span> -<span id="cb526-36"><a href="#cb526-36" aria-hidden="true" tabindex="-1"></a>: white cold drink</span> -<span id="cb526-37"><a href="#cb526-37" aria-hidden="true" tabindex="-1"></a>: nutrient-rich</span> -<span id="cb526-38"><a href="#cb526-38" aria-hidden="true" tabindex="-1"></a>: produced on an industrial scale</span> -<span id="cb526-39"><a href="#cb526-39" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb526-40"><a href="#cb526-40" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb526-41"><a href="#cb526-41" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}[</span> -<span id="cb526-42"><a href="#cb526-42" aria-hidden="true" tabindex="-1"></a> renderers = {</span> -<span id="cb526-43"><a href="#cb526-43" aria-hidden="true" tabindex="-1"></a> interblockSeparator = {<span class="co">%</span></span> -<span id="cb526-44"><a href="#cb526-44" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="fu">\par</span>}<span class="co">%</span></span> -<span id="cb526-45"><a href="#cb526-45" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb526-46"><a href="#cb526-46" aria-hidden="true" tabindex="-1"></a> dlBegin = {},</span> -<span id="cb526-47"><a href="#cb526-47" aria-hidden="true" tabindex="-1"></a> dlItem = {<span class="co">%</span></span> -<span id="cb526-48"><a href="#cb526-48" aria-hidden="true" tabindex="-1"></a> . #1 is a</span> -<span id="cb526-49"><a href="#cb526-49" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererDlDefinitionBegin</span>{<span class="co">%</span></span> -<span id="cb526-50"><a href="#cb526-50" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererDlDefinitionBegin</span>{<span class="co">%</span></span> -<span id="cb526-51"><a href="#cb526-51" aria-hidden="true" tabindex="-1"></a> ,</span> -<span id="cb526-52"><a href="#cb526-52" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererDlDefinitionBegin</span>{, and }<span class="co">%</span></span> -<span id="cb526-53"><a href="#cb526-53" aria-hidden="true" tabindex="-1"></a> }<span class="co">%</span></span> -<span id="cb526-54"><a href="#cb526-54" aria-hidden="true" tabindex="-1"></a> }<span class="co">%</span></span> -<span id="cb526-55"><a href="#cb526-55" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb526-56"><a href="#cb526-56" aria-hidden="true" tabindex="-1"></a> dlItemEnd = {},</span> -<span id="cb526-57"><a href="#cb526-57" aria-hidden="true" tabindex="-1"></a> dlDefinitionEnd = {},</span> -<span id="cb526-58"><a href="#cb526-58" aria-hidden="true" tabindex="-1"></a> dlEnd = {.},</span> -<span id="cb526-59"><a href="#cb526-59" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb526-60"><a href="#cb526-60" aria-hidden="true" tabindex="-1"></a>]</span> -<span id="cb526-61"><a href="#cb526-61" aria-hidden="true" tabindex="-1"></a>This is a loose definition list</span> -<span id="cb526-62"><a href="#cb526-62" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb526-63"><a href="#cb526-63" aria-hidden="true" tabindex="-1"></a>Coffee</span> -<span id="cb526-64"><a href="#cb526-64" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb526-65"><a href="#cb526-65" aria-hidden="true" tabindex="-1"></a>: black hot drink</span> -<span id="cb526-66"><a href="#cb526-66" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb526-67"><a href="#cb526-67" aria-hidden="true" tabindex="-1"></a>: prepared from roasted coffee beans</span> -<span id="cb526-68"><a href="#cb526-68" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb526-69"><a href="#cb526-69" aria-hidden="true" tabindex="-1"></a>: one of the most traded agricultural commodities in the world</span> -<span id="cb526-70"><a href="#cb526-70" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb526-71"><a href="#cb526-71" aria-hidden="true" tabindex="-1"></a>Milk</span> -<span id="cb526-72"><a href="#cb526-72" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb526-73"><a href="#cb526-73" aria-hidden="true" tabindex="-1"></a>: white cold drink</span> -<span id="cb526-74"><a href="#cb526-74" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb526-75"><a href="#cb526-75" aria-hidden="true" tabindex="-1"></a>: nutrient-rich</span> -<span id="cb526-76"><a href="#cb526-76" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb526-77"><a href="#cb526-77" aria-hidden="true" tabindex="-1"></a>: produced on an industrial scale</span> -<span id="cb526-78"><a href="#cb526-78" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb526-79"><a href="#cb526-79" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb526-80"><a href="#cb526-80" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb529"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb529-1"><a href="#cb529-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb529-2"><a href="#cb529-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[definitionLists, tightLists]{<span class="ex">markdown</span>}</span> +<span id="cb529-3"><a href="#cb529-3" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb529-4"><a href="#cb529-4" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb529-5"><a href="#cb529-5" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}[</span> +<span id="cb529-6"><a href="#cb529-6" aria-hidden="true" tabindex="-1"></a> renderers = {</span> +<span id="cb529-7"><a href="#cb529-7" aria-hidden="true" tabindex="-1"></a> interblockSeparator = {<span class="co">%</span></span> +<span id="cb529-8"><a href="#cb529-8" aria-hidden="true" tabindex="-1"></a> :<span class="co">%</span></span> +<span id="cb529-9"><a href="#cb529-9" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="fu">\par</span>}<span class="co">%</span></span> +<span id="cb529-10"><a href="#cb529-10" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb529-11"><a href="#cb529-11" aria-hidden="true" tabindex="-1"></a> dlBeginTight = {<span class="kw">\begin</span>{<span class="ex">description</span>}},</span> +<span id="cb529-12"><a href="#cb529-12" aria-hidden="true" tabindex="-1"></a> dlItem = {<span class="co">%</span></span> +<span id="cb529-13"><a href="#cb529-13" aria-hidden="true" tabindex="-1"></a> <span class="fu">\item</span>[#1]</span> +<span id="cb529-14"><a href="#cb529-14" aria-hidden="true" tabindex="-1"></a> <span class="kw">\begin</span>{<span class="ex">itemize</span>}</span> +<span id="cb529-15"><a href="#cb529-15" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererDlDefinitionEnd</span>{<span class="co">%</span></span> +<span id="cb529-16"><a href="#cb529-16" aria-hidden="true" tabindex="-1"></a> ,</span> +<span id="cb529-17"><a href="#cb529-17" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererDlDefinitionEnd</span>{<span class="co">%</span></span> +<span id="cb529-18"><a href="#cb529-18" aria-hidden="true" tabindex="-1"></a> , and</span> +<span id="cb529-19"><a href="#cb529-19" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererDlDefinitionEnd</span>{.}<span class="co">%</span></span> +<span id="cb529-20"><a href="#cb529-20" aria-hidden="true" tabindex="-1"></a> }<span class="co">%</span></span> +<span id="cb529-21"><a href="#cb529-21" aria-hidden="true" tabindex="-1"></a> }<span class="co">%</span></span> +<span id="cb529-22"><a href="#cb529-22" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb529-23"><a href="#cb529-23" aria-hidden="true" tabindex="-1"></a> dlItemEnd = {<span class="kw">\end</span>{<span class="ex">itemize</span>}},</span> +<span id="cb529-24"><a href="#cb529-24" aria-hidden="true" tabindex="-1"></a> dlDefinitionBegin = <span class="fu">\item</span>,</span> +<span id="cb529-25"><a href="#cb529-25" aria-hidden="true" tabindex="-1"></a> dlEndTight = {<span class="kw">\end</span>{<span class="ex">description</span>}},</span> +<span id="cb529-26"><a href="#cb529-26" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb529-27"><a href="#cb529-27" aria-hidden="true" tabindex="-1"></a>]</span> +<span id="cb529-28"><a href="#cb529-28" aria-hidden="true" tabindex="-1"></a>This is a tight definition list</span> +<span id="cb529-29"><a href="#cb529-29" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb529-30"><a href="#cb529-30" aria-hidden="true" tabindex="-1"></a>Coffee</span> +<span id="cb529-31"><a href="#cb529-31" aria-hidden="true" tabindex="-1"></a>: black hot drink</span> +<span id="cb529-32"><a href="#cb529-32" aria-hidden="true" tabindex="-1"></a>: prepared from roasted coffee beans</span> +<span id="cb529-33"><a href="#cb529-33" aria-hidden="true" tabindex="-1"></a>: one of the most traded agricultural commodities in the world</span> +<span id="cb529-34"><a href="#cb529-34" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb529-35"><a href="#cb529-35" aria-hidden="true" tabindex="-1"></a>Milk</span> +<span id="cb529-36"><a href="#cb529-36" aria-hidden="true" tabindex="-1"></a>: white cold drink</span> +<span id="cb529-37"><a href="#cb529-37" aria-hidden="true" tabindex="-1"></a>: nutrient-rich</span> +<span id="cb529-38"><a href="#cb529-38" aria-hidden="true" tabindex="-1"></a>: produced on an industrial scale</span> +<span id="cb529-39"><a href="#cb529-39" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb529-40"><a href="#cb529-40" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb529-41"><a href="#cb529-41" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}[</span> +<span id="cb529-42"><a href="#cb529-42" aria-hidden="true" tabindex="-1"></a> renderers = {</span> +<span id="cb529-43"><a href="#cb529-43" aria-hidden="true" tabindex="-1"></a> interblockSeparator = {<span class="co">%</span></span> +<span id="cb529-44"><a href="#cb529-44" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="fu">\par</span>}<span class="co">%</span></span> +<span id="cb529-45"><a href="#cb529-45" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb529-46"><a href="#cb529-46" aria-hidden="true" tabindex="-1"></a> dlBegin = {},</span> +<span id="cb529-47"><a href="#cb529-47" aria-hidden="true" tabindex="-1"></a> dlItem = {<span class="co">%</span></span> +<span id="cb529-48"><a href="#cb529-48" aria-hidden="true" tabindex="-1"></a> . #1 is a</span> +<span id="cb529-49"><a href="#cb529-49" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererDlDefinitionBegin</span>{<span class="co">%</span></span> +<span id="cb529-50"><a href="#cb529-50" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererDlDefinitionBegin</span>{<span class="co">%</span></span> +<span id="cb529-51"><a href="#cb529-51" aria-hidden="true" tabindex="-1"></a> ,</span> +<span id="cb529-52"><a href="#cb529-52" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererDlDefinitionBegin</span>{, and }<span class="co">%</span></span> +<span id="cb529-53"><a href="#cb529-53" aria-hidden="true" tabindex="-1"></a> }<span class="co">%</span></span> +<span id="cb529-54"><a href="#cb529-54" aria-hidden="true" tabindex="-1"></a> }<span class="co">%</span></span> +<span id="cb529-55"><a href="#cb529-55" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb529-56"><a href="#cb529-56" aria-hidden="true" tabindex="-1"></a> dlItemEnd = {},</span> +<span id="cb529-57"><a href="#cb529-57" aria-hidden="true" tabindex="-1"></a> dlDefinitionEnd = {},</span> +<span id="cb529-58"><a href="#cb529-58" aria-hidden="true" tabindex="-1"></a> dlEnd = {.},</span> +<span id="cb529-59"><a href="#cb529-59" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb529-60"><a href="#cb529-60" aria-hidden="true" tabindex="-1"></a>]</span> +<span id="cb529-61"><a href="#cb529-61" aria-hidden="true" tabindex="-1"></a>This is a loose definition list</span> +<span id="cb529-62"><a href="#cb529-62" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb529-63"><a href="#cb529-63" aria-hidden="true" tabindex="-1"></a>Coffee</span> +<span id="cb529-64"><a href="#cb529-64" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb529-65"><a href="#cb529-65" aria-hidden="true" tabindex="-1"></a>: black hot drink</span> +<span id="cb529-66"><a href="#cb529-66" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb529-67"><a href="#cb529-67" aria-hidden="true" tabindex="-1"></a>: prepared from roasted coffee beans</span> +<span id="cb529-68"><a href="#cb529-68" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb529-69"><a href="#cb529-69" aria-hidden="true" tabindex="-1"></a>: one of the most traded agricultural commodities in the world</span> +<span id="cb529-70"><a href="#cb529-70" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb529-71"><a href="#cb529-71" aria-hidden="true" tabindex="-1"></a>Milk</span> +<span id="cb529-72"><a href="#cb529-72" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb529-73"><a href="#cb529-73" aria-hidden="true" tabindex="-1"></a>: white cold drink</span> +<span id="cb529-74"><a href="#cb529-74" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb529-75"><a href="#cb529-75" aria-hidden="true" tabindex="-1"></a>: nutrient-rich</span> +<span id="cb529-76"><a href="#cb529-76" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb529-77"><a href="#cb529-77" aria-hidden="true" tabindex="-1"></a>: produced on an industrial scale</span> +<span id="cb529-78"><a href="#cb529-78" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb529-79"><a href="#cb529-79" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb529-80"><a href="#cb529-80" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb527"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb527-1"><a href="#cb527-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb530"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb530-1"><a href="#cb530-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -9733,90 +9853,90 @@ nutrient-rich, and produced on an industrial scale.</p> class="tex">T<sub>e</sub>X</span>t Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb528"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb528-1"><a href="#cb528-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> -<span id="cb528-2"><a href="#cb528-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span></span> -<span id="cb528-3"><a href="#cb528-3" aria-hidden="true" tabindex="-1"></a> [</span> -<span id="cb528-4"><a href="#cb528-4" aria-hidden="true" tabindex="-1"></a> definitionLists = yes,</span> -<span id="cb528-5"><a href="#cb528-5" aria-hidden="true" tabindex="-1"></a> tightLists = yes,</span> -<span id="cb528-6"><a href="#cb528-6" aria-hidden="true" tabindex="-1"></a> ]</span> -<span id="cb528-7"><a href="#cb528-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> -<span id="cb528-8"><a href="#cb528-8" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb528-9"><a href="#cb528-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="co">%</span></span> -<span id="cb528-10"><a href="#cb528-10" aria-hidden="true" tabindex="-1"></a> :<span class="co">%</span></span> -<span id="cb528-11"><a href="#cb528-11" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="fu">\par</span>}<span class="co">%</span></span> -<span id="cb528-12"><a href="#cb528-12" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb528-13"><a href="#cb528-13" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererDlBeginTight</span>{}</span> -<span id="cb528-14"><a href="#cb528-14" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererDlItem</span>#1{<span class="co">%</span></span> -<span id="cb528-15"><a href="#cb528-15" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span>{<span class="fu">\bf</span>#1}<span class="co">%</span></span> -<span id="cb528-16"><a href="#cb528-16" aria-hidden="true" tabindex="-1"></a> <span class="fu">\startitemize</span></span> -<span id="cb528-17"><a href="#cb528-17" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererDlDefinitionEnd</span>{<span class="co">%</span></span> -<span id="cb528-18"><a href="#cb528-18" aria-hidden="true" tabindex="-1"></a> ,</span> -<span id="cb528-19"><a href="#cb528-19" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererDlDefinitionEnd</span>{<span class="co">%</span></span> -<span id="cb528-20"><a href="#cb528-20" aria-hidden="true" tabindex="-1"></a> , and</span> -<span id="cb528-21"><a href="#cb528-21" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererDlDefinitionEnd</span>{.}<span class="co">%</span></span> -<span id="cb528-22"><a href="#cb528-22" aria-hidden="true" tabindex="-1"></a> }<span class="co">%</span></span> -<span id="cb528-23"><a href="#cb528-23" aria-hidden="true" tabindex="-1"></a> }<span class="co">%</span></span> -<span id="cb528-24"><a href="#cb528-24" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb528-25"><a href="#cb528-25" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererDlItemEnd</span>{<span class="fu">\stopitemize</span>}</span> -<span id="cb528-26"><a href="#cb528-26" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererDlDefinitionBegin</span>{<span class="fu">\item</span>}</span> -<span id="cb528-27"><a href="#cb528-27" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererDlEndTight</span>{}</span> -<span id="cb528-28"><a href="#cb528-28" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb528-29"><a href="#cb528-29" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> -<span id="cb528-30"><a href="#cb528-30" aria-hidden="true" tabindex="-1"></a>This is a tight definition list</span> -<span id="cb528-31"><a href="#cb528-31" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb528-32"><a href="#cb528-32" aria-hidden="true" tabindex="-1"></a>Coffee</span> -<span id="cb528-33"><a href="#cb528-33" aria-hidden="true" tabindex="-1"></a>: black hot drink</span> -<span id="cb528-34"><a href="#cb528-34" aria-hidden="true" tabindex="-1"></a>: prepared from roasted coffee beans</span> -<span id="cb528-35"><a href="#cb528-35" aria-hidden="true" tabindex="-1"></a>: one of the most traded agricultural commodities in the world</span> -<span id="cb528-36"><a href="#cb528-36" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb528-37"><a href="#cb528-37" aria-hidden="true" tabindex="-1"></a>Milk</span> -<span id="cb528-38"><a href="#cb528-38" aria-hidden="true" tabindex="-1"></a>: white cold drink</span> -<span id="cb528-39"><a href="#cb528-39" aria-hidden="true" tabindex="-1"></a>: nutrient-rich</span> -<span id="cb528-40"><a href="#cb528-40" aria-hidden="true" tabindex="-1"></a>: produced on an industrial scale</span> -<span id="cb528-41"><a href="#cb528-41" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> -<span id="cb528-42"><a href="#cb528-42" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb528-43"><a href="#cb528-43" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="co">%</span></span> -<span id="cb528-44"><a href="#cb528-44" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="fu">\par</span>}<span class="co">%</span></span> -<span id="cb528-45"><a href="#cb528-45" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb528-46"><a href="#cb528-46" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererDlBegin</span>{}</span> -<span id="cb528-47"><a href="#cb528-47" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererDlItem</span>#1{<span class="co">%</span></span> -<span id="cb528-48"><a href="#cb528-48" aria-hidden="true" tabindex="-1"></a> . #1 is a</span> -<span id="cb528-49"><a href="#cb528-49" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererDlDefinitionBegin</span>{<span class="co">%</span></span> -<span id="cb528-50"><a href="#cb528-50" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererDlDefinitionBegin</span>{<span class="co">%</span></span> -<span id="cb528-51"><a href="#cb528-51" aria-hidden="true" tabindex="-1"></a> ,</span> -<span id="cb528-52"><a href="#cb528-52" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererDlDefinitionBegin</span>{, and }<span class="co">%</span></span> -<span id="cb528-53"><a href="#cb528-53" aria-hidden="true" tabindex="-1"></a> }<span class="co">%</span></span> -<span id="cb528-54"><a href="#cb528-54" aria-hidden="true" tabindex="-1"></a> }<span class="co">%</span></span> -<span id="cb528-55"><a href="#cb528-55" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb528-56"><a href="#cb528-56" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererDlItemEnd</span>{}</span> -<span id="cb528-57"><a href="#cb528-57" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererDlDefinitionEnd</span>{}</span> -<span id="cb528-58"><a href="#cb528-58" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererDlEnd</span>{.}</span> -<span id="cb528-59"><a href="#cb528-59" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb528-60"><a href="#cb528-60" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> -<span id="cb528-61"><a href="#cb528-61" aria-hidden="true" tabindex="-1"></a>This is a loose definition list</span> -<span id="cb528-62"><a href="#cb528-62" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb528-63"><a href="#cb528-63" aria-hidden="true" tabindex="-1"></a>Coffee</span> -<span id="cb528-64"><a href="#cb528-64" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb528-65"><a href="#cb528-65" aria-hidden="true" tabindex="-1"></a>: black hot drink</span> -<span id="cb528-66"><a href="#cb528-66" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb528-67"><a href="#cb528-67" aria-hidden="true" tabindex="-1"></a>: prepared from roasted coffee beans</span> -<span id="cb528-68"><a href="#cb528-68" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb528-69"><a href="#cb528-69" aria-hidden="true" tabindex="-1"></a>: one of the most traded agricultural commodities in the world</span> -<span id="cb528-70"><a href="#cb528-70" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb528-71"><a href="#cb528-71" aria-hidden="true" tabindex="-1"></a>Milk</span> -<span id="cb528-72"><a href="#cb528-72" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb528-73"><a href="#cb528-73" aria-hidden="true" tabindex="-1"></a>: white cold drink</span> -<span id="cb528-74"><a href="#cb528-74" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb528-75"><a href="#cb528-75" aria-hidden="true" tabindex="-1"></a>: nutrient-rich</span> -<span id="cb528-76"><a href="#cb528-76" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb528-77"><a href="#cb528-77" aria-hidden="true" tabindex="-1"></a>: produced on an industrial scale</span> -<span id="cb528-78"><a href="#cb528-78" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> -<span id="cb528-79"><a href="#cb528-79" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb528-80"><a href="#cb528-80" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> +<div class="sourceCode" id="cb531"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb531-1"><a href="#cb531-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> +<span id="cb531-2"><a href="#cb531-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span></span> +<span id="cb531-3"><a href="#cb531-3" aria-hidden="true" tabindex="-1"></a> [</span> +<span id="cb531-4"><a href="#cb531-4" aria-hidden="true" tabindex="-1"></a> definitionLists = yes,</span> +<span id="cb531-5"><a href="#cb531-5" aria-hidden="true" tabindex="-1"></a> tightLists = yes,</span> +<span id="cb531-6"><a href="#cb531-6" aria-hidden="true" tabindex="-1"></a> ]</span> +<span id="cb531-7"><a href="#cb531-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> +<span id="cb531-8"><a href="#cb531-8" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb531-9"><a href="#cb531-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="co">%</span></span> +<span id="cb531-10"><a href="#cb531-10" aria-hidden="true" tabindex="-1"></a> :<span class="co">%</span></span> +<span id="cb531-11"><a href="#cb531-11" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="fu">\par</span>}<span class="co">%</span></span> +<span id="cb531-12"><a href="#cb531-12" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb531-13"><a href="#cb531-13" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererDlBeginTight</span>{}</span> +<span id="cb531-14"><a href="#cb531-14" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererDlItem</span>#1{<span class="co">%</span></span> +<span id="cb531-15"><a href="#cb531-15" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span>{<span class="fu">\bf</span>#1}<span class="co">%</span></span> +<span id="cb531-16"><a href="#cb531-16" aria-hidden="true" tabindex="-1"></a> <span class="fu">\startitemize</span></span> +<span id="cb531-17"><a href="#cb531-17" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererDlDefinitionEnd</span>{<span class="co">%</span></span> +<span id="cb531-18"><a href="#cb531-18" aria-hidden="true" tabindex="-1"></a> ,</span> +<span id="cb531-19"><a href="#cb531-19" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererDlDefinitionEnd</span>{<span class="co">%</span></span> +<span id="cb531-20"><a href="#cb531-20" aria-hidden="true" tabindex="-1"></a> , and</span> +<span id="cb531-21"><a href="#cb531-21" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererDlDefinitionEnd</span>{.}<span class="co">%</span></span> +<span id="cb531-22"><a href="#cb531-22" aria-hidden="true" tabindex="-1"></a> }<span class="co">%</span></span> +<span id="cb531-23"><a href="#cb531-23" aria-hidden="true" tabindex="-1"></a> }<span class="co">%</span></span> +<span id="cb531-24"><a href="#cb531-24" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb531-25"><a href="#cb531-25" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererDlItemEnd</span>{<span class="fu">\stopitemize</span>}</span> +<span id="cb531-26"><a href="#cb531-26" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererDlDefinitionBegin</span>{<span class="fu">\item</span>}</span> +<span id="cb531-27"><a href="#cb531-27" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererDlEndTight</span>{}</span> +<span id="cb531-28"><a href="#cb531-28" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb531-29"><a href="#cb531-29" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> +<span id="cb531-30"><a href="#cb531-30" aria-hidden="true" tabindex="-1"></a>This is a tight definition list</span> +<span id="cb531-31"><a href="#cb531-31" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb531-32"><a href="#cb531-32" aria-hidden="true" tabindex="-1"></a>Coffee</span> +<span id="cb531-33"><a href="#cb531-33" aria-hidden="true" tabindex="-1"></a>: black hot drink</span> +<span id="cb531-34"><a href="#cb531-34" aria-hidden="true" tabindex="-1"></a>: prepared from roasted coffee beans</span> +<span id="cb531-35"><a href="#cb531-35" aria-hidden="true" tabindex="-1"></a>: one of the most traded agricultural commodities in the world</span> +<span id="cb531-36"><a href="#cb531-36" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb531-37"><a href="#cb531-37" aria-hidden="true" tabindex="-1"></a>Milk</span> +<span id="cb531-38"><a href="#cb531-38" aria-hidden="true" tabindex="-1"></a>: white cold drink</span> +<span id="cb531-39"><a href="#cb531-39" aria-hidden="true" tabindex="-1"></a>: nutrient-rich</span> +<span id="cb531-40"><a href="#cb531-40" aria-hidden="true" tabindex="-1"></a>: produced on an industrial scale</span> +<span id="cb531-41"><a href="#cb531-41" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> +<span id="cb531-42"><a href="#cb531-42" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb531-43"><a href="#cb531-43" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="co">%</span></span> +<span id="cb531-44"><a href="#cb531-44" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="fu">\par</span>}<span class="co">%</span></span> +<span id="cb531-45"><a href="#cb531-45" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb531-46"><a href="#cb531-46" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererDlBegin</span>{}</span> +<span id="cb531-47"><a href="#cb531-47" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererDlItem</span>#1{<span class="co">%</span></span> +<span id="cb531-48"><a href="#cb531-48" aria-hidden="true" tabindex="-1"></a> . #1 is a</span> +<span id="cb531-49"><a href="#cb531-49" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererDlDefinitionBegin</span>{<span class="co">%</span></span> +<span id="cb531-50"><a href="#cb531-50" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererDlDefinitionBegin</span>{<span class="co">%</span></span> +<span id="cb531-51"><a href="#cb531-51" aria-hidden="true" tabindex="-1"></a> ,</span> +<span id="cb531-52"><a href="#cb531-52" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererDlDefinitionBegin</span>{, and }<span class="co">%</span></span> +<span id="cb531-53"><a href="#cb531-53" aria-hidden="true" tabindex="-1"></a> }<span class="co">%</span></span> +<span id="cb531-54"><a href="#cb531-54" aria-hidden="true" tabindex="-1"></a> }<span class="co">%</span></span> +<span id="cb531-55"><a href="#cb531-55" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb531-56"><a href="#cb531-56" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererDlItemEnd</span>{}</span> +<span id="cb531-57"><a href="#cb531-57" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererDlDefinitionEnd</span>{}</span> +<span id="cb531-58"><a href="#cb531-58" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererDlEnd</span>{.}</span> +<span id="cb531-59"><a href="#cb531-59" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb531-60"><a href="#cb531-60" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> +<span id="cb531-61"><a href="#cb531-61" aria-hidden="true" tabindex="-1"></a>This is a loose definition list</span> +<span id="cb531-62"><a href="#cb531-62" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb531-63"><a href="#cb531-63" aria-hidden="true" tabindex="-1"></a>Coffee</span> +<span id="cb531-64"><a href="#cb531-64" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb531-65"><a href="#cb531-65" aria-hidden="true" tabindex="-1"></a>: black hot drink</span> +<span id="cb531-66"><a href="#cb531-66" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb531-67"><a href="#cb531-67" aria-hidden="true" tabindex="-1"></a>: prepared from roasted coffee beans</span> +<span id="cb531-68"><a href="#cb531-68" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb531-69"><a href="#cb531-69" aria-hidden="true" tabindex="-1"></a>: one of the most traded agricultural commodities in the world</span> +<span id="cb531-70"><a href="#cb531-70" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb531-71"><a href="#cb531-71" aria-hidden="true" tabindex="-1"></a>Milk</span> +<span id="cb531-72"><a href="#cb531-72" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb531-73"><a href="#cb531-73" aria-hidden="true" tabindex="-1"></a>: white cold drink</span> +<span id="cb531-74"><a href="#cb531-74" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb531-75"><a href="#cb531-75" aria-hidden="true" tabindex="-1"></a>: nutrient-rich</span> +<span id="cb531-76"><a href="#cb531-76" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb531-77"><a href="#cb531-77" aria-hidden="true" tabindex="-1"></a>: produced on an industrial scale</span> +<span id="cb531-78"><a href="#cb531-78" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> +<span id="cb531-79"><a href="#cb531-79" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb531-80"><a href="#cb531-80" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb529"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb529-1"><a href="#cb529-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb532"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb532-1"><a href="#cb532-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -9840,25 +9960,25 @@ nutrient-rich, and produced on an industrial scale.</p> </blockquote> <h4 data-number="2.3.1.11" id="ellipsis-renderer"><span class="header-section-number">2.3.1.11</span> Ellipsis Renderer</h4> -<p>The <code>\markdownRendererEllipsis</code> macro replaces any -occurance of ASCII ellipses in the input text. This macro will only be -produced, when the <strong><code>smartEllipses</code></strong> option is +<p>The <code>markdownRendererEllipsis</code> macro replaces any +occurrence of ASCII ellipses in the input text. This macro will only be +produced, when the <code><strong>smartEllipses</strong></code> option is enabled. The macro receives no arguments.</p> <h5 class="unnumbered" id="plain-tex-example-30">Plain <span class="tex">T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb530"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb530-1"><a href="#cb530-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> -<span id="cb530-2"><a href="#cb530-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionSmartEllipses</span>{true}</span> -<span id="cb530-3"><a href="#cb530-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererEllipsis</span>{{<span class="fu">\it</span> SHAZAM}!}</span> -<span id="cb530-4"><a href="#cb530-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> -<span id="cb530-5"><a href="#cb530-5" aria-hidden="true" tabindex="-1"></a>The secret word is ...</span> -<span id="cb530-6"><a href="#cb530-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> -<span id="cb530-7"><a href="#cb530-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> +<div class="sourceCode" id="cb533"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb533-1"><a href="#cb533-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> +<span id="cb533-2"><a href="#cb533-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionSmartEllipses</span>{true}</span> +<span id="cb533-3"><a href="#cb533-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererEllipsis</span>{{<span class="fu">\it</span> SHAZAM}!}</span> +<span id="cb533-4"><a href="#cb533-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> +<span id="cb533-5"><a href="#cb533-5" aria-hidden="true" tabindex="-1"></a>The secret word is ...</span> +<span id="cb533-6"><a href="#cb533-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> +<span id="cb533-7"><a href="#cb533-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb531"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb531-1"><a href="#cb531-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb534"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb534-1"><a href="#cb534-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -9868,22 +9988,22 @@ contain the following text:</p> class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb532"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb532-1"><a href="#cb532-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb532-2"><a href="#cb532-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[smartEllipses]{<span class="ex">markdown</span>}</span> -<span id="cb532-3"><a href="#cb532-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> -<span id="cb532-4"><a href="#cb532-4" aria-hidden="true" tabindex="-1"></a> renderers = {</span> -<span id="cb532-5"><a href="#cb532-5" aria-hidden="true" tabindex="-1"></a> ellipsis = <span class="fu">\emph</span>{SHAZAM}!,</span> -<span id="cb532-6"><a href="#cb532-6" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb532-7"><a href="#cb532-7" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb532-8"><a href="#cb532-8" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb532-9"><a href="#cb532-9" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb532-10"><a href="#cb532-10" aria-hidden="true" tabindex="-1"></a>The secret word is ...</span> -<span id="cb532-11"><a href="#cb532-11" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb532-12"><a href="#cb532-12" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb535"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb535-1"><a href="#cb535-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb535-2"><a href="#cb535-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[smartEllipses]{<span class="ex">markdown</span>}</span> +<span id="cb535-3"><a href="#cb535-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> +<span id="cb535-4"><a href="#cb535-4" aria-hidden="true" tabindex="-1"></a> renderers = {</span> +<span id="cb535-5"><a href="#cb535-5" aria-hidden="true" tabindex="-1"></a> ellipsis = <span class="fu">\emph</span>{SHAZAM}!,</span> +<span id="cb535-6"><a href="#cb535-6" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb535-7"><a href="#cb535-7" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb535-8"><a href="#cb535-8" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb535-9"><a href="#cb535-9" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb535-10"><a href="#cb535-10" aria-hidden="true" tabindex="-1"></a>The secret word is ...</span> +<span id="cb535-11"><a href="#cb535-11" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb535-12"><a href="#cb535-12" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb533"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb533-1"><a href="#cb533-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb536"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb536-1"><a href="#cb536-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -9893,18 +10013,18 @@ contain the following text:</p> class="tex">T<sub>e</sub>X</span>t Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb534"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb534-1"><a href="#cb534-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> -<span id="cb534-2"><a href="#cb534-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span>[smartEllipses = yes]</span> -<span id="cb534-3"><a href="#cb534-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererEllipsis</span>{<span class="fu">\emph</span>{SHAZAM}!}</span> -<span id="cb534-4"><a href="#cb534-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> -<span id="cb534-5"><a href="#cb534-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> -<span id="cb534-6"><a href="#cb534-6" aria-hidden="true" tabindex="-1"></a>The secret word is ...</span> -<span id="cb534-7"><a href="#cb534-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> -<span id="cb534-8"><a href="#cb534-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> +<div class="sourceCode" id="cb537"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb537-1"><a href="#cb537-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> +<span id="cb537-2"><a href="#cb537-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span>[smartEllipses = yes]</span> +<span id="cb537-3"><a href="#cb537-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererEllipsis</span>{<span class="fu">\emph</span>{SHAZAM}!}</span> +<span id="cb537-4"><a href="#cb537-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> +<span id="cb537-5"><a href="#cb537-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> +<span id="cb537-6"><a href="#cb537-6" aria-hidden="true" tabindex="-1"></a>The secret word is ...</span> +<span id="cb537-7"><a href="#cb537-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> +<span id="cb537-8"><a href="#cb537-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb535"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb535-1"><a href="#cb535-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb538"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb538-1"><a href="#cb538-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -9914,29 +10034,29 @@ contain the following text:</p> </blockquote> <h4 data-number="2.3.1.12" id="emphasis-renderers"><span class="header-section-number">2.3.1.12</span> Emphasis Renderers</h4> -<p>The <code>\markdownRendererEmphasis</code> macro represents an +<p>The <code>markdownRendererEmphasis</code> macro represents an emphasized span of text. The macro receives a single argument that corresponds to the emphasized span of text.</p> -<p>The <code>\markdownRendererStrongEmphasis</code> macro represents a +<p>The <code>markdownRendererStrongEmphasis</code> macro represents a strongly emphasized span of text. The macro receives a single argument that corresponds to the emphasized span of text.</p> <h5 class="unnumbered" id="plain-tex-example-31">Plain <span class="tex">T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb536"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb536-1"><a href="#cb536-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> -<span id="cb536-2"><a href="#cb536-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererEmphasis</span>#1{{<span class="fu">\it</span>#1}}</span> -<span id="cb536-3"><a href="#cb536-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererStrongEmphasis</span>#1{{<span class="fu">\bf</span>#1}}</span> -<span id="cb536-4"><a href="#cb536-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> -<span id="cb536-5"><a href="#cb536-5" aria-hidden="true" tabindex="-1"></a>This is *emphasis*.</span> -<span id="cb536-6"><a href="#cb536-6" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb536-7"><a href="#cb536-7" aria-hidden="true" tabindex="-1"></a>This is **strong emphasis**.</span> -<span id="cb536-8"><a href="#cb536-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> -<span id="cb536-9"><a href="#cb536-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> +<div class="sourceCode" id="cb539"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb539-1"><a href="#cb539-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> +<span id="cb539-2"><a href="#cb539-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererEmphasis</span>#1{{<span class="fu">\it</span>#1}}</span> +<span id="cb539-3"><a href="#cb539-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererStrongEmphasis</span>#1{{<span class="fu">\bf</span>#1}}</span> +<span id="cb539-4"><a href="#cb539-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> +<span id="cb539-5"><a href="#cb539-5" aria-hidden="true" tabindex="-1"></a>This is *emphasis*.</span> +<span id="cb539-6"><a href="#cb539-6" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb539-7"><a href="#cb539-7" aria-hidden="true" tabindex="-1"></a>This is **strong emphasis**.</span> +<span id="cb539-8"><a href="#cb539-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> +<span id="cb539-9"><a href="#cb539-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb537"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb537-1"><a href="#cb537-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb540"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb540-1"><a href="#cb540-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -9947,25 +10067,25 @@ contain the following text:</p> class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb538"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb538-1"><a href="#cb538-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb538-2"><a href="#cb538-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>{<span class="ex">markdown</span>}</span> -<span id="cb538-3"><a href="#cb538-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> -<span id="cb538-4"><a href="#cb538-4" aria-hidden="true" tabindex="-1"></a> renderers = {</span> -<span id="cb538-5"><a href="#cb538-5" aria-hidden="true" tabindex="-1"></a> emphasis = {<span class="fu">\emph</span>{#1}},</span> -<span id="cb538-6"><a href="#cb538-6" aria-hidden="true" tabindex="-1"></a> strongEmphasis = {<span class="fu">\textbf</span>{#1}},</span> -<span id="cb538-7"><a href="#cb538-7" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb538-8"><a href="#cb538-8" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb538-9"><a href="#cb538-9" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb538-10"><a href="#cb538-10" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb538-11"><a href="#cb538-11" aria-hidden="true" tabindex="-1"></a>This is *emphasis*.</span> -<span id="cb538-12"><a href="#cb538-12" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb538-13"><a href="#cb538-13" aria-hidden="true" tabindex="-1"></a>This is **strong emphasis**.</span> -<span id="cb538-14"><a href="#cb538-14" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb538-15"><a href="#cb538-15" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb541"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb541-1"><a href="#cb541-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb541-2"><a href="#cb541-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>{<span class="ex">markdown</span>}</span> +<span id="cb541-3"><a href="#cb541-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> +<span id="cb541-4"><a href="#cb541-4" aria-hidden="true" tabindex="-1"></a> renderers = {</span> +<span id="cb541-5"><a href="#cb541-5" aria-hidden="true" tabindex="-1"></a> emphasis = {<span class="fu">\emph</span>{#1}},</span> +<span id="cb541-6"><a href="#cb541-6" aria-hidden="true" tabindex="-1"></a> strongEmphasis = {<span class="fu">\textbf</span>{#1}},</span> +<span id="cb541-7"><a href="#cb541-7" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb541-8"><a href="#cb541-8" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb541-9"><a href="#cb541-9" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb541-10"><a href="#cb541-10" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb541-11"><a href="#cb541-11" aria-hidden="true" tabindex="-1"></a>This is *emphasis*.</span> +<span id="cb541-12"><a href="#cb541-12" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb541-13"><a href="#cb541-13" aria-hidden="true" tabindex="-1"></a>This is **strong emphasis**.</span> +<span id="cb541-14"><a href="#cb541-14" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb541-15"><a href="#cb541-15" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb539"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb539-1"><a href="#cb539-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb542"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb542-1"><a href="#cb542-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -9976,20 +10096,20 @@ contain the following text:</p> class="tex">T<sub>e</sub>X</span>t Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb540"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb540-1"><a href="#cb540-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> -<span id="cb540-2"><a href="#cb540-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererEmphasis</span>#1{<span class="fu">\emph</span>{#1}}</span> -<span id="cb540-3"><a href="#cb540-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererStrongEmphasis</span>#1{<span class="fu">\bold</span>{#1}}</span> -<span id="cb540-4"><a href="#cb540-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> -<span id="cb540-5"><a href="#cb540-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> -<span id="cb540-6"><a href="#cb540-6" aria-hidden="true" tabindex="-1"></a>This is *emphasis*.</span> -<span id="cb540-7"><a href="#cb540-7" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb540-8"><a href="#cb540-8" aria-hidden="true" tabindex="-1"></a>This is **strong emphasis**.</span> -<span id="cb540-9"><a href="#cb540-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> -<span id="cb540-10"><a href="#cb540-10" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> +<div class="sourceCode" id="cb543"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb543-1"><a href="#cb543-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> +<span id="cb543-2"><a href="#cb543-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererEmphasis</span>#1{<span class="fu">\emph</span>{#1}}</span> +<span id="cb543-3"><a href="#cb543-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererStrongEmphasis</span>#1{<span class="fu">\bold</span>{#1}}</span> +<span id="cb543-4"><a href="#cb543-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> +<span id="cb543-5"><a href="#cb543-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> +<span id="cb543-6"><a href="#cb543-6" aria-hidden="true" tabindex="-1"></a>This is *emphasis*.</span> +<span id="cb543-7"><a href="#cb543-7" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb543-8"><a href="#cb543-8" aria-hidden="true" tabindex="-1"></a>This is **strong emphasis**.</span> +<span id="cb543-9"><a href="#cb543-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> +<span id="cb543-10"><a href="#cb543-10" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb541"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb541-1"><a href="#cb541-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb544"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb544-1"><a href="#cb544-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -10001,114 +10121,116 @@ id="fenced-code-attribute-context-renderers"><span class="header-section-number">2.3.1.13</span> Fenced Code Attribute Context Renderers</h4> <p>The following macros are only produced, when the -<strong><code>fencedCode</code></strong> option is enabled.</p> -<p>The <code>\markdownRendererFencedCodeAttributeContextBegin</code> and -<code>\markdownRendererFencedCodeAttributeContextEnd</code> macros +<code><strong>fencedCode</strong></code> and +<code><strong>fencedCodeAttributes</strong></code> options are +enabled.</p> +<p>The <code>markdownRendererFencedCodeAttributeContextBegin</code> and +<code>markdownRendererFencedCodeAttributeContextEnd</code> macros represent the beginning and the end of a context in which the attributes of a fenced code apply. The macros receive no arguments.</p> <h5 class="unnumbered" id="latex-example-69"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb542"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb542-1"><a href="#cb542-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb542-2"><a href="#cb542-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[fencedCode,</span> -<span id="cb542-3"><a href="#cb542-3" aria-hidden="true" tabindex="-1"></a> fencedCodeAttributes]{<span class="ex">markdown</span>}</span> -<span id="cb542-4"><a href="#cb542-4" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>{<span class="ex">minted</span>}</span> -<span id="cb542-5"><a href="#cb542-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> -<span id="cb542-6"><a href="#cb542-6" aria-hidden="true" tabindex="-1"></a> renderers = {</span> -<span id="cb542-7"><a href="#cb542-7" aria-hidden="true" tabindex="-1"></a> fencedCodeAttributeContextBegin = {<span class="co">%</span></span> -<span id="cb542-8"><a href="#cb542-8" aria-hidden="true" tabindex="-1"></a> <span class="fu">\begingroup</span></span> -<span id="cb542-9"><a href="#cb542-9" aria-hidden="true" tabindex="-1"></a> <span class="fu">\markdownSetup</span>{</span> -<span id="cb542-10"><a href="#cb542-10" aria-hidden="true" tabindex="-1"></a> renderers = {</span> -<span id="cb542-11"><a href="#cb542-11" aria-hidden="true" tabindex="-1"></a> attributeKeyValue = {<span class="co">%</span></span> -<span id="cb542-12"><a href="#cb542-12" aria-hidden="true" tabindex="-1"></a> <span class="fu">\setminted</span>{{#1} = {#2}}<span class="co">%</span></span> -<span id="cb542-13"><a href="#cb542-13" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb542-14"><a href="#cb542-14" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb542-15"><a href="#cb542-15" aria-hidden="true" tabindex="-1"></a> }<span class="co">%</span></span> -<span id="cb542-16"><a href="#cb542-16" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb542-17"><a href="#cb542-17" aria-hidden="true" tabindex="-1"></a> fencedCodeAttributeContextEnd = {<span class="co">%</span></span> -<span id="cb542-18"><a href="#cb542-18" aria-hidden="true" tabindex="-1"></a> <span class="fu">\endgroup</span></span> -<span id="cb542-19"><a href="#cb542-19" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb542-20"><a href="#cb542-20" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb542-21"><a href="#cb542-21" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb542-22"><a href="#cb542-22" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb542-23"><a href="#cb542-23" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb542-24"><a href="#cb542-24" aria-hidden="true" tabindex="-1"></a>~~~ js {linenos=true}</span> -<span id="cb542-25"><a href="#cb542-25" aria-hidden="true" tabindex="-1"></a>if (a > 3) {</span> -<span id="cb542-26"><a href="#cb542-26" aria-hidden="true" tabindex="-1"></a> moveShip(5 * gravity, DOWN);</span> -<span id="cb542-27"><a href="#cb542-27" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb542-28"><a href="#cb542-28" aria-hidden="true" tabindex="-1"></a>~~~~~~</span> -<span id="cb542-29"><a href="#cb542-29" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb542-30"><a href="#cb542-30" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb545"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb545-1"><a href="#cb545-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb545-2"><a href="#cb545-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[fencedCode,</span> +<span id="cb545-3"><a href="#cb545-3" aria-hidden="true" tabindex="-1"></a> fencedCodeAttributes]{<span class="ex">markdown</span>}</span> +<span id="cb545-4"><a href="#cb545-4" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>{<span class="ex">minted</span>}</span> +<span id="cb545-5"><a href="#cb545-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> +<span id="cb545-6"><a href="#cb545-6" aria-hidden="true" tabindex="-1"></a> renderers = {</span> +<span id="cb545-7"><a href="#cb545-7" aria-hidden="true" tabindex="-1"></a> fencedCodeAttributeContextBegin = {<span class="co">%</span></span> +<span id="cb545-8"><a href="#cb545-8" aria-hidden="true" tabindex="-1"></a> <span class="fu">\begingroup</span></span> +<span id="cb545-9"><a href="#cb545-9" aria-hidden="true" tabindex="-1"></a> <span class="fu">\markdownSetup</span>{</span> +<span id="cb545-10"><a href="#cb545-10" aria-hidden="true" tabindex="-1"></a> renderers = {</span> +<span id="cb545-11"><a href="#cb545-11" aria-hidden="true" tabindex="-1"></a> attributeKeyValue = {<span class="co">%</span></span> +<span id="cb545-12"><a href="#cb545-12" aria-hidden="true" tabindex="-1"></a> <span class="fu">\setminted</span>{{#1} = {#2}}<span class="co">%</span></span> +<span id="cb545-13"><a href="#cb545-13" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb545-14"><a href="#cb545-14" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb545-15"><a href="#cb545-15" aria-hidden="true" tabindex="-1"></a> }<span class="co">%</span></span> +<span id="cb545-16"><a href="#cb545-16" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb545-17"><a href="#cb545-17" aria-hidden="true" tabindex="-1"></a> fencedCodeAttributeContextEnd = {<span class="co">%</span></span> +<span id="cb545-18"><a href="#cb545-18" aria-hidden="true" tabindex="-1"></a> <span class="fu">\endgroup</span></span> +<span id="cb545-19"><a href="#cb545-19" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb545-20"><a href="#cb545-20" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb545-21"><a href="#cb545-21" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb545-22"><a href="#cb545-22" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb545-23"><a href="#cb545-23" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb545-24"><a href="#cb545-24" aria-hidden="true" tabindex="-1"></a>~~~ js {linenos=true}</span> +<span id="cb545-25"><a href="#cb545-25" aria-hidden="true" tabindex="-1"></a>if (a > 3) {</span> +<span id="cb545-26"><a href="#cb545-26" aria-hidden="true" tabindex="-1"></a> moveShip(5 * gravity, DOWN);</span> +<span id="cb545-27"><a href="#cb545-27" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb545-28"><a href="#cb545-28" aria-hidden="true" tabindex="-1"></a>~~~~~~</span> +<span id="cb545-29"><a href="#cb545-29" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb545-30"><a href="#cb545-30" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb543"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb543-1"><a href="#cb543-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> <span class="at">--shell-escape</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb546"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb546-1"><a href="#cb546-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> <span class="at">--shell-escape</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> -<div class="sourceCode" id="cb544"><pre -class="sourceCode js linenos"><code class="sourceCode javascript"><span id="cb544-1"><a href="#cb544-1" aria-hidden="true" tabindex="-1"></a><span class="fl">1.</span> <span class="cf">if</span> (a <span class="op">></span> <span class="dv">3</span>) {</span> -<span id="cb544-2"><a href="#cb544-2" aria-hidden="true" tabindex="-1"></a><span class="fl">2.</span> <span class="fu">moveShip</span>(<span class="dv">5</span> <span class="op">*</span> gravity<span class="op">,</span> DOWN)<span class="op">;</span></span> -<span id="cb544-3"><a href="#cb544-3" aria-hidden="true" tabindex="-1"></a><span class="fl">3.</span> }</span></code></pre></div> +<div class="sourceCode" id="cb547"><pre +class="sourceCode js linenos"><code class="sourceCode javascript"><span id="cb547-1"><a href="#cb547-1" aria-hidden="true" tabindex="-1"></a><span class="fl">1.</span> <span class="cf">if</span> (a <span class="op">></span> <span class="dv">3</span>) {</span> +<span id="cb547-2"><a href="#cb547-2" aria-hidden="true" tabindex="-1"></a><span class="fl">2.</span> <span class="fu">moveShip</span>(<span class="dv">5</span> <span class="op">*</span> gravity<span class="op">,</span> DOWN)<span class="op">;</span></span> +<span id="cb547-3"><a href="#cb547-3" aria-hidden="true" tabindex="-1"></a><span class="fl">3.</span> }</span></code></pre></div> </blockquote> <h4 data-number="2.3.1.14" id="fenced-div-attribute-context-renderers"><span class="header-section-number">2.3.1.14</span> Fenced Div Attribute Context Renderers</h4> <p>The following macros are only produced, when the -<strong><code>fencedDiv</code></strong> option is enabled.</p> -<p>The <code>\markdownRendererFencedDivAttributeContextBegin</code> and -<code>\markdownRendererFencedDivAttributeContextEnd</code> macros +<code><strong>fencedDiv</strong></code> option is enabled.</p> +<p>The <code>markdownRendererFencedDivAttributeContextBegin</code> and +<code>markdownRendererFencedDivAttributeContextEnd</code> macros represent the beginning and the end of a context in which the attributes of a div apply. The macros receive no arguments.</p> <h5 class="unnumbered" id="latex-example-70"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb545"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb545-1"><a href="#cb545-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb545-2"><a href="#cb545-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[fencedDivs]{<span class="ex">markdown</span>}</span> -<span id="cb545-3"><a href="#cb545-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> -<span id="cb545-4"><a href="#cb545-4" aria-hidden="true" tabindex="-1"></a> renderers = {</span> -<span id="cb545-5"><a href="#cb545-5" aria-hidden="true" tabindex="-1"></a> fencedDivAttributeContextBegin = {<span class="co">%</span></span> -<span id="cb545-6"><a href="#cb545-6" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> -<span id="cb545-7"><a href="#cb545-7" aria-hidden="true" tabindex="-1"></a> <span class="fu">\emph</span>{(The beginning of a fenced div attribute context)}</span> -<span id="cb545-8"><a href="#cb545-8" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> -<span id="cb545-9"><a href="#cb545-9" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb545-10"><a href="#cb545-10" aria-hidden="true" tabindex="-1"></a> fencedDivAttributeContextEnd = {<span class="co">%</span></span> -<span id="cb545-11"><a href="#cb545-11" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> -<span id="cb545-12"><a href="#cb545-12" aria-hidden="true" tabindex="-1"></a> <span class="fu">\emph</span>{(The end of a fenced div attribute context)}</span> -<span id="cb545-13"><a href="#cb545-13" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> -<span id="cb545-14"><a href="#cb545-14" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb545-15"><a href="#cb545-15" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb545-16"><a href="#cb545-16" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb545-17"><a href="#cb545-17" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb545-18"><a href="#cb545-18" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb545-19"><a href="#cb545-19" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb545-20"><a href="#cb545-20" aria-hidden="true" tabindex="-1"></a>::: {key=value}</span> -<span id="cb545-21"><a href="#cb545-21" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb545-22"><a href="#cb545-22" aria-hidden="true" tabindex="-1"></a>foo</span> -<span id="cb545-23"><a href="#cb545-23" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb545-24"><a href="#cb545-24" aria-hidden="true" tabindex="-1"></a>:::: {#identifier}</span> -<span id="cb545-25"><a href="#cb545-25" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb545-26"><a href="#cb545-26" aria-hidden="true" tabindex="-1"></a>bar</span> -<span id="cb545-27"><a href="#cb545-27" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb545-28"><a href="#cb545-28" aria-hidden="true" tabindex="-1"></a>::::</span> -<span id="cb545-29"><a href="#cb545-29" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb545-30"><a href="#cb545-30" aria-hidden="true" tabindex="-1"></a>:::</span> -<span id="cb545-31"><a href="#cb545-31" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb545-32"><a href="#cb545-32" aria-hidden="true" tabindex="-1"></a>::: {.class_name}</span> -<span id="cb545-33"><a href="#cb545-33" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb545-34"><a href="#cb545-34" aria-hidden="true" tabindex="-1"></a>baz</span> -<span id="cb545-35"><a href="#cb545-35" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb545-36"><a href="#cb545-36" aria-hidden="true" tabindex="-1"></a>:::</span> -<span id="cb545-37"><a href="#cb545-37" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb545-38"><a href="#cb545-38" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb545-39"><a href="#cb545-39" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb548"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb548-1"><a href="#cb548-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb548-2"><a href="#cb548-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[fencedDivs]{<span class="ex">markdown</span>}</span> +<span id="cb548-3"><a href="#cb548-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> +<span id="cb548-4"><a href="#cb548-4" aria-hidden="true" tabindex="-1"></a> renderers = {</span> +<span id="cb548-5"><a href="#cb548-5" aria-hidden="true" tabindex="-1"></a> fencedDivAttributeContextBegin = {<span class="co">%</span></span> +<span id="cb548-6"><a href="#cb548-6" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> +<span id="cb548-7"><a href="#cb548-7" aria-hidden="true" tabindex="-1"></a> <span class="fu">\emph</span>{(The beginning of a fenced div attribute context)}</span> +<span id="cb548-8"><a href="#cb548-8" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> +<span id="cb548-9"><a href="#cb548-9" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb548-10"><a href="#cb548-10" aria-hidden="true" tabindex="-1"></a> fencedDivAttributeContextEnd = {<span class="co">%</span></span> +<span id="cb548-11"><a href="#cb548-11" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> +<span id="cb548-12"><a href="#cb548-12" aria-hidden="true" tabindex="-1"></a> <span class="fu">\emph</span>{(The end of a fenced div attribute context)}</span> +<span id="cb548-13"><a href="#cb548-13" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> +<span id="cb548-14"><a href="#cb548-14" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb548-15"><a href="#cb548-15" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb548-16"><a href="#cb548-16" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb548-17"><a href="#cb548-17" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb548-18"><a href="#cb548-18" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb548-19"><a href="#cb548-19" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb548-20"><a href="#cb548-20" aria-hidden="true" tabindex="-1"></a>::: {key=value}</span> +<span id="cb548-21"><a href="#cb548-21" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb548-22"><a href="#cb548-22" aria-hidden="true" tabindex="-1"></a>foo</span> +<span id="cb548-23"><a href="#cb548-23" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb548-24"><a href="#cb548-24" aria-hidden="true" tabindex="-1"></a>:::: {#identifier}</span> +<span id="cb548-25"><a href="#cb548-25" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb548-26"><a href="#cb548-26" aria-hidden="true" tabindex="-1"></a>bar</span> +<span id="cb548-27"><a href="#cb548-27" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb548-28"><a href="#cb548-28" aria-hidden="true" tabindex="-1"></a>::::</span> +<span id="cb548-29"><a href="#cb548-29" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb548-30"><a href="#cb548-30" aria-hidden="true" tabindex="-1"></a>:::</span> +<span id="cb548-31"><a href="#cb548-31" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb548-32"><a href="#cb548-32" aria-hidden="true" tabindex="-1"></a>::: {.class_name}</span> +<span id="cb548-33"><a href="#cb548-33" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb548-34"><a href="#cb548-34" aria-hidden="true" tabindex="-1"></a>baz</span> +<span id="cb548-35"><a href="#cb548-35" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb548-36"><a href="#cb548-36" aria-hidden="true" tabindex="-1"></a>:::</span> +<span id="cb548-37"><a href="#cb548-37" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb548-38"><a href="#cb548-38" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb548-39"><a href="#cb548-39" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb546"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb546-1"><a href="#cb546-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb549"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb549-1"><a href="#cb549-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -10126,48 +10248,48 @@ contain the following text:</p> class="header-section-number">2.3.1.15</span> Header Attribute Context Renderers</h4> <p>The following macros are only produced, when the -<strong><code>autoIdentifiers</code></strong>, -<strong><code>gfmAutoIdentifiers</code></strong>, or -<strong><code>headerAttributes</code></strong> options are enabled.</p> -<p>The <code>\markdownRendererHeaderAttributeContextBegin</code> and -<code>\markdownRendererHeaderAttributeContextEnd</code> macros represent +<code><strong>autoIdentifiers</strong></code>, +<code><strong>gfmAutoIdentifiers</strong></code>, or +<code><strong>headerAttributes</strong></code> options are enabled.</p> +<p>The <code>markdownRendererHeaderAttributeContextBegin</code> and +<code>markdownRendererHeaderAttributeContextEnd</code> macros represent the beginning and the end of a context in which the attributes of a heading apply. The macros receive no arguments.</p> <h5 class="unnumbered" id="latex-example-71"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb547"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb547-1"><a href="#cb547-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb547-2"><a href="#cb547-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[headerAttributes]{<span class="ex">markdown</span>}</span> -<span id="cb547-3"><a href="#cb547-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> -<span id="cb547-4"><a href="#cb547-4" aria-hidden="true" tabindex="-1"></a> renderers = {</span> -<span id="cb547-5"><a href="#cb547-5" aria-hidden="true" tabindex="-1"></a> headerAttributeContextBegin = {<span class="co">%</span></span> -<span id="cb547-6"><a href="#cb547-6" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> -<span id="cb547-7"><a href="#cb547-7" aria-hidden="true" tabindex="-1"></a> <span class="fu">\emph</span>{(The beginning of a header attribute context)}</span> -<span id="cb547-8"><a href="#cb547-8" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> -<span id="cb547-9"><a href="#cb547-9" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb547-10"><a href="#cb547-10" aria-hidden="true" tabindex="-1"></a> headerAttributeContextEnd = {<span class="co">%</span></span> -<span id="cb547-11"><a href="#cb547-11" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> -<span id="cb547-12"><a href="#cb547-12" aria-hidden="true" tabindex="-1"></a> <span class="fu">\emph</span>{(The end of a header attribute context)}</span> -<span id="cb547-13"><a href="#cb547-13" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> -<span id="cb547-14"><a href="#cb547-14" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb547-15"><a href="#cb547-15" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb547-16"><a href="#cb547-16" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb547-17"><a href="#cb547-17" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb547-18"><a href="#cb547-18" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb547-19"><a href="#cb547-19" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb547-20"><a href="#cb547-20" aria-hidden="true" tabindex="-1"></a># First top-level heading</span> -<span id="cb547-21"><a href="#cb547-21" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb547-22"><a href="#cb547-22" aria-hidden="true" tabindex="-1"></a>## A subheading {#identifier}</span> -<span id="cb547-23"><a href="#cb547-23" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb547-24"><a href="#cb547-24" aria-hidden="true" tabindex="-1"></a># Second top-level heading {.class_name}</span> -<span id="cb547-25"><a href="#cb547-25" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb547-26"><a href="#cb547-26" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb547-27"><a href="#cb547-27" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb550"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb550-1"><a href="#cb550-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb550-2"><a href="#cb550-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[headerAttributes]{<span class="ex">markdown</span>}</span> +<span id="cb550-3"><a href="#cb550-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> +<span id="cb550-4"><a href="#cb550-4" aria-hidden="true" tabindex="-1"></a> renderers = {</span> +<span id="cb550-5"><a href="#cb550-5" aria-hidden="true" tabindex="-1"></a> headerAttributeContextBegin = {<span class="co">%</span></span> +<span id="cb550-6"><a href="#cb550-6" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> +<span id="cb550-7"><a href="#cb550-7" aria-hidden="true" tabindex="-1"></a> <span class="fu">\emph</span>{(The beginning of a header attribute context)}</span> +<span id="cb550-8"><a href="#cb550-8" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> +<span id="cb550-9"><a href="#cb550-9" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb550-10"><a href="#cb550-10" aria-hidden="true" tabindex="-1"></a> headerAttributeContextEnd = {<span class="co">%</span></span> +<span id="cb550-11"><a href="#cb550-11" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> +<span id="cb550-12"><a href="#cb550-12" aria-hidden="true" tabindex="-1"></a> <span class="fu">\emph</span>{(The end of a header attribute context)}</span> +<span id="cb550-13"><a href="#cb550-13" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> +<span id="cb550-14"><a href="#cb550-14" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb550-15"><a href="#cb550-15" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb550-16"><a href="#cb550-16" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb550-17"><a href="#cb550-17" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb550-18"><a href="#cb550-18" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb550-19"><a href="#cb550-19" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb550-20"><a href="#cb550-20" aria-hidden="true" tabindex="-1"></a># First top-level heading</span> +<span id="cb550-21"><a href="#cb550-21" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb550-22"><a href="#cb550-22" aria-hidden="true" tabindex="-1"></a>## A subheading {#identifier}</span> +<span id="cb550-23"><a href="#cb550-23" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb550-24"><a href="#cb550-24" aria-hidden="true" tabindex="-1"></a># Second top-level heading {.class_name}</span> +<span id="cb550-25"><a href="#cb550-25" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb550-26"><a href="#cb550-26" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb550-27"><a href="#cb550-27" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb548"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb548-1"><a href="#cb548-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb551"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb551-1"><a href="#cb551-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -10181,48 +10303,48 @@ contain the following text:</p> </blockquote> <h4 data-number="2.3.1.16" id="heading-renderers"><span class="header-section-number">2.3.1.16</span> Heading Renderers</h4> -<p>The <code>\markdownRendererHeadingOne</code> macro represents a first +<p>The <code>markdownRendererHeadingOne</code> macro represents a first level heading. The macro receives a single argument that corresponds to the heading text.</p> -<p>The <code>\markdownRendererHeadingTwo</code> macro represents a -second level heading. The macro receives a single argument that -corresponds to the heading text.</p> -<p>The <code>\markdownRendererHeadingThree</code> macro represents a +<p>The <code>markdownRendererHeadingTwo</code> macro represents a second +level heading. The macro receives a single argument that corresponds to +the heading text.</p> +<p>The <code>markdownRendererHeadingThree</code> macro represents a third level heading. The macro receives a single argument that corresponds to the heading text.</p> -<p>The <code>\markdownRendererHeadingFour</code> macro represents a +<p>The <code>markdownRendererHeadingFour</code> macro represents a fourth level heading. The macro receives a single argument that corresponds to the heading text.</p> -<p>The <code>\markdownRendererHeadingFive</code> macro represents a -fifth level heading. The macro receives a single argument that -corresponds to the heading text.</p> -<p>The <code>\markdownRendererHeadingSix</code> macro represents a sixth +<p>The <code>markdownRendererHeadingFive</code> macro represents a fifth +level heading. The macro receives a single argument that corresponds to +the heading text.</p> +<p>The <code>markdownRendererHeadingSix</code> macro represents a sixth level heading. The macro receives a single argument that corresponds to the heading text.</p> <h5 class="unnumbered" id="plain-tex-example-32">Plain <span class="tex">T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb549"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb549-1"><a href="#cb549-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> -<span id="cb549-2"><a href="#cb549-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererInterblockSeparator</span>{}</span> -<span id="cb549-3"><a href="#cb549-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererHeadingOne</span>{1}</span> -<span id="cb549-4"><a href="#cb549-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererHeadingTwo</span>{2}</span> -<span id="cb549-5"><a href="#cb549-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererHeadingThree</span>{3}</span> -<span id="cb549-6"><a href="#cb549-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererHeadingFour</span>{4}</span> -<span id="cb549-7"><a href="#cb549-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererHeadingFive</span>{5}</span> -<span id="cb549-8"><a href="#cb549-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererHeadingSix</span>{6}</span> -<span id="cb549-9"><a href="#cb549-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> -<span id="cb549-10"><a href="#cb549-10" aria-hidden="true" tabindex="-1"></a>######</span> -<span id="cb549-11"><a href="#cb549-11" aria-hidden="true" tabindex="-1"></a>#####</span> -<span id="cb549-12"><a href="#cb549-12" aria-hidden="true" tabindex="-1"></a>#####</span> -<span id="cb549-13"><a href="#cb549-13" aria-hidden="true" tabindex="-1"></a>###</span> -<span id="cb549-14"><a href="#cb549-14" aria-hidden="true" tabindex="-1"></a>######</span> -<span id="cb549-15"><a href="#cb549-15" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> -<span id="cb549-16"><a href="#cb549-16" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> +<div class="sourceCode" id="cb552"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb552-1"><a href="#cb552-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> +<span id="cb552-2"><a href="#cb552-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererInterblockSeparator</span>{}</span> +<span id="cb552-3"><a href="#cb552-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererHeadingOne</span>{1}</span> +<span id="cb552-4"><a href="#cb552-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererHeadingTwo</span>{2}</span> +<span id="cb552-5"><a href="#cb552-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererHeadingThree</span>{3}</span> +<span id="cb552-6"><a href="#cb552-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererHeadingFour</span>{4}</span> +<span id="cb552-7"><a href="#cb552-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererHeadingFive</span>{5}</span> +<span id="cb552-8"><a href="#cb552-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererHeadingSix</span>{6}</span> +<span id="cb552-9"><a href="#cb552-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> +<span id="cb552-10"><a href="#cb552-10" aria-hidden="true" tabindex="-1"></a>######</span> +<span id="cb552-11"><a href="#cb552-11" aria-hidden="true" tabindex="-1"></a>#####</span> +<span id="cb552-12"><a href="#cb552-12" aria-hidden="true" tabindex="-1"></a>#####</span> +<span id="cb552-13"><a href="#cb552-13" aria-hidden="true" tabindex="-1"></a>###</span> +<span id="cb552-14"><a href="#cb552-14" aria-hidden="true" tabindex="-1"></a>######</span> +<span id="cb552-15"><a href="#cb552-15" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> +<span id="cb552-16"><a href="#cb552-16" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb550"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb550-1"><a href="#cb550-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb553"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb553-1"><a href="#cb553-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -10232,32 +10354,32 @@ contain the following text:</p> class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb551"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb551-1"><a href="#cb551-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb551-2"><a href="#cb551-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>{<span class="ex">markdown</span>}</span> -<span id="cb551-3"><a href="#cb551-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> -<span id="cb551-4"><a href="#cb551-4" aria-hidden="true" tabindex="-1"></a> renderers = {</span> -<span id="cb551-5"><a href="#cb551-5" aria-hidden="true" tabindex="-1"></a> interblockSeparator = {},</span> -<span id="cb551-6"><a href="#cb551-6" aria-hidden="true" tabindex="-1"></a> headingOne = 1,</span> -<span id="cb551-7"><a href="#cb551-7" aria-hidden="true" tabindex="-1"></a> headingTwo = 2,</span> -<span id="cb551-8"><a href="#cb551-8" aria-hidden="true" tabindex="-1"></a> headingThree = 3,</span> -<span id="cb551-9"><a href="#cb551-9" aria-hidden="true" tabindex="-1"></a> headingFour = 4,</span> -<span id="cb551-10"><a href="#cb551-10" aria-hidden="true" tabindex="-1"></a> headingFive = 5,</span> -<span id="cb551-11"><a href="#cb551-11" aria-hidden="true" tabindex="-1"></a> headingSix = 6,</span> -<span id="cb551-12"><a href="#cb551-12" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb551-13"><a href="#cb551-13" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb551-14"><a href="#cb551-14" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb551-15"><a href="#cb551-15" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb551-16"><a href="#cb551-16" aria-hidden="true" tabindex="-1"></a>######</span> -<span id="cb551-17"><a href="#cb551-17" aria-hidden="true" tabindex="-1"></a>#####</span> -<span id="cb551-18"><a href="#cb551-18" aria-hidden="true" tabindex="-1"></a>#####</span> -<span id="cb551-19"><a href="#cb551-19" aria-hidden="true" tabindex="-1"></a>###</span> -<span id="cb551-20"><a href="#cb551-20" aria-hidden="true" tabindex="-1"></a>######</span> -<span id="cb551-21"><a href="#cb551-21" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb551-22"><a href="#cb551-22" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb554"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb554-1"><a href="#cb554-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb554-2"><a href="#cb554-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>{<span class="ex">markdown</span>}</span> +<span id="cb554-3"><a href="#cb554-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> +<span id="cb554-4"><a href="#cb554-4" aria-hidden="true" tabindex="-1"></a> renderers = {</span> +<span id="cb554-5"><a href="#cb554-5" aria-hidden="true" tabindex="-1"></a> interblockSeparator = {},</span> +<span id="cb554-6"><a href="#cb554-6" aria-hidden="true" tabindex="-1"></a> headingOne = 1,</span> +<span id="cb554-7"><a href="#cb554-7" aria-hidden="true" tabindex="-1"></a> headingTwo = 2,</span> +<span id="cb554-8"><a href="#cb554-8" aria-hidden="true" tabindex="-1"></a> headingThree = 3,</span> +<span id="cb554-9"><a href="#cb554-9" aria-hidden="true" tabindex="-1"></a> headingFour = 4,</span> +<span id="cb554-10"><a href="#cb554-10" aria-hidden="true" tabindex="-1"></a> headingFive = 5,</span> +<span id="cb554-11"><a href="#cb554-11" aria-hidden="true" tabindex="-1"></a> headingSix = 6,</span> +<span id="cb554-12"><a href="#cb554-12" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb554-13"><a href="#cb554-13" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb554-14"><a href="#cb554-14" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb554-15"><a href="#cb554-15" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb554-16"><a href="#cb554-16" aria-hidden="true" tabindex="-1"></a>######</span> +<span id="cb554-17"><a href="#cb554-17" aria-hidden="true" tabindex="-1"></a>#####</span> +<span id="cb554-18"><a href="#cb554-18" aria-hidden="true" tabindex="-1"></a>#####</span> +<span id="cb554-19"><a href="#cb554-19" aria-hidden="true" tabindex="-1"></a>###</span> +<span id="cb554-20"><a href="#cb554-20" aria-hidden="true" tabindex="-1"></a>######</span> +<span id="cb554-21"><a href="#cb554-21" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb554-22"><a href="#cb554-22" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb552"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb552-1"><a href="#cb552-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb555"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb555-1"><a href="#cb555-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -10267,27 +10389,27 @@ contain the following text:</p> class="tex">T<sub>e</sub>X</span>t Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb553"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb553-1"><a href="#cb553-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> -<span id="cb553-2"><a href="#cb553-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererInterblockSeparator</span>{}</span> -<span id="cb553-3"><a href="#cb553-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererHeadingOne</span>{1}</span> -<span id="cb553-4"><a href="#cb553-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererHeadingTwo</span>{2}</span> -<span id="cb553-5"><a href="#cb553-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererHeadingThree</span>{3}</span> -<span id="cb553-6"><a href="#cb553-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererHeadingFour</span>{4}</span> -<span id="cb553-7"><a href="#cb553-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererHeadingFive</span>{5}</span> -<span id="cb553-8"><a href="#cb553-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererHeadingSix</span>{6}</span> -<span id="cb553-9"><a href="#cb553-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> -<span id="cb553-10"><a href="#cb553-10" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> -<span id="cb553-11"><a href="#cb553-11" aria-hidden="true" tabindex="-1"></a>######</span> -<span id="cb553-12"><a href="#cb553-12" aria-hidden="true" tabindex="-1"></a>#####</span> -<span id="cb553-13"><a href="#cb553-13" aria-hidden="true" tabindex="-1"></a>#####</span> -<span id="cb553-14"><a href="#cb553-14" aria-hidden="true" tabindex="-1"></a>###</span> -<span id="cb553-15"><a href="#cb553-15" aria-hidden="true" tabindex="-1"></a>######</span> -<span id="cb553-16"><a href="#cb553-16" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> -<span id="cb553-17"><a href="#cb553-17" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> +<div class="sourceCode" id="cb556"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb556-1"><a href="#cb556-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> +<span id="cb556-2"><a href="#cb556-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererInterblockSeparator</span>{}</span> +<span id="cb556-3"><a href="#cb556-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererHeadingOne</span>{1}</span> +<span id="cb556-4"><a href="#cb556-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererHeadingTwo</span>{2}</span> +<span id="cb556-5"><a href="#cb556-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererHeadingThree</span>{3}</span> +<span id="cb556-6"><a href="#cb556-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererHeadingFour</span>{4}</span> +<span id="cb556-7"><a href="#cb556-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererHeadingFive</span>{5}</span> +<span id="cb556-8"><a href="#cb556-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererHeadingSix</span>{6}</span> +<span id="cb556-9"><a href="#cb556-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> +<span id="cb556-10"><a href="#cb556-10" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> +<span id="cb556-11"><a href="#cb556-11" aria-hidden="true" tabindex="-1"></a>######</span> +<span id="cb556-12"><a href="#cb556-12" aria-hidden="true" tabindex="-1"></a>#####</span> +<span id="cb556-13"><a href="#cb556-13" aria-hidden="true" tabindex="-1"></a>#####</span> +<span id="cb556-14"><a href="#cb556-14" aria-hidden="true" tabindex="-1"></a>###</span> +<span id="cb556-15"><a href="#cb556-15" aria-hidden="true" tabindex="-1"></a>######</span> +<span id="cb556-16"><a href="#cb556-16" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> +<span id="cb556-17"><a href="#cb556-17" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb554"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb554-1"><a href="#cb554-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb557"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb557-1"><a href="#cb557-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -10296,35 +10418,35 @@ contain the following text:</p> <h4 data-number="2.3.1.17" id="inline-html-comment-renderer"><span class="header-section-number">2.3.1.17</span> Inline HTML Comment Renderer</h4> -<p>The <code>\markdownRendererInlineHtmlComment</code> macro represents +<p>The <code>markdownRendererInlineHtmlComment</code> macro represents the contents of an inline <abbr>HTML</abbr> comment. This macro will -only be produced, when the <strong><code>html</code></strong> option is +only be produced, when the <code><strong>html</strong></code> option is enabled. The macro receives a single argument that corresponds to the contents of the <abbr>HTML</abbr> comment.</p> <h5 class="unnumbered" id="latex-example-73"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb555"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb555-1"><a href="#cb555-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb555-2"><a href="#cb555-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[html]{<span class="ex">markdown</span>}</span> -<span id="cb555-3"><a href="#cb555-3" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>{<span class="ex">marginnote</span>}</span> -<span id="cb555-4"><a href="#cb555-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> -<span id="cb555-5"><a href="#cb555-5" aria-hidden="true" tabindex="-1"></a> renderers = {</span> -<span id="cb555-6"><a href="#cb555-6" aria-hidden="true" tabindex="-1"></a> inlineHtmlComment = {<span class="fu">\marginnote</span>{#1}},</span> -<span id="cb555-7"><a href="#cb555-7" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb555-8"><a href="#cb555-8" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb555-9"><a href="#cb555-9" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb555-10"><a href="#cb555-10" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb555-11"><a href="#cb555-11" aria-hidden="true" tabindex="-1"></a>A useful use of inline HTML comments are side notes.</span> -<span id="cb555-12"><a href="#cb555-12" aria-hidden="true" tabindex="-1"></a><!-- Side notes are displayed in the horizontal margins next to the relevant</span> -<span id="cb555-13"><a href="#cb555-13" aria-hidden="true" tabindex="-1"></a>passages, which makes them *easier for the reader to find* than notes. --></span> -<span id="cb555-14"><a href="#cb555-14" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb555-15"><a href="#cb555-15" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> -<p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb556"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb556-1"><a href="#cb556-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span> -<span id="cb556-2"><a href="#cb556-2" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb558"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb558-1"><a href="#cb558-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb558-2"><a href="#cb558-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[html]{<span class="ex">markdown</span>}</span> +<span id="cb558-3"><a href="#cb558-3" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>{<span class="ex">marginnote</span>}</span> +<span id="cb558-4"><a href="#cb558-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> +<span id="cb558-5"><a href="#cb558-5" aria-hidden="true" tabindex="-1"></a> renderers = {</span> +<span id="cb558-6"><a href="#cb558-6" aria-hidden="true" tabindex="-1"></a> inlineHtmlComment = {<span class="fu">\marginnote</span>{#1}},</span> +<span id="cb558-7"><a href="#cb558-7" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb558-8"><a href="#cb558-8" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb558-9"><a href="#cb558-9" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb558-10"><a href="#cb558-10" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb558-11"><a href="#cb558-11" aria-hidden="true" tabindex="-1"></a>A useful use of inline HTML comments are side notes.</span> +<span id="cb558-12"><a href="#cb558-12" aria-hidden="true" tabindex="-1"></a><!-- Side notes are displayed in the horizontal margins next to the relevant</span> +<span id="cb558-13"><a href="#cb558-13" aria-hidden="true" tabindex="-1"></a>passages, which makes them *easier for the reader to find* than notes. --></span> +<span id="cb558-14"><a href="#cb558-14" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb558-15"><a href="#cb558-15" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<p>Next, invoke LuaTeX from the terminal:</p> +<div class="sourceCode" id="cb559"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb559-1"><a href="#cb559-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span> +<span id="cb559-2"><a href="#cb559-2" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following body text:</p> <blockquote> @@ -10339,42 +10461,42 @@ find</em> than notes.</p> <h4 data-number="2.3.1.18" id="html-tag-and-element-renderers"><span class="header-section-number">2.3.1.18</span> HTML Tag and Element Renderers</h4> -<p>The <code>\markdownRendererInlineHtmlTag</code> macro represents an +<p>The <code>markdownRendererInlineHtmlTag</code> macro represents an opening, closing, or empty inline <abbr>HTML</abbr> tag. This macro will -only be produced, when the <strong><code>html</code></strong> option is +only be produced, when the <code><strong>html</strong></code> option is enabled. The macro receives a single argument that corresponds to the contents of the <abbr>HTML</abbr> tag.</p> -<p>The <code>\markdownRendererInputBlockHtmlElement</code> macro +<p>The <code>markdownRendererInputBlockHtmlElement</code> macro represents a block <abbr>HTML</abbr> element. This macro will only be -produced, when the <strong><code>html</code></strong> option is enabled. +produced, when the <code><strong>html</strong></code> option is enabled. The macro receives a single argument that filename of a file containing the contents of the <abbr>HTML</abbr> element.</p> <h5 class="unnumbered" id="latex-example-74"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb557"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb557-1"><a href="#cb557-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb557-2"><a href="#cb557-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[html]{<span class="ex">markdown</span>}</span> -<span id="cb557-3"><a href="#cb557-3" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>{<span class="ex">marginnote</span>}</span> -<span id="cb557-4"><a href="#cb557-4" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>{<span class="ex">verbatim</span>}</span> -<span id="cb557-5"><a href="#cb557-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> -<span id="cb557-6"><a href="#cb557-6" aria-hidden="true" tabindex="-1"></a> renderers = {</span> -<span id="cb557-7"><a href="#cb557-7" aria-hidden="true" tabindex="-1"></a> inlineHtmlTag = {<span class="fu">\textbf</span>{#1}},</span> -<span id="cb557-8"><a href="#cb557-8" aria-hidden="true" tabindex="-1"></a> inputBlockHtmlElement = {<span class="fu">\verbatiminput</span>{#1}},</span> -<span id="cb557-9"><a href="#cb557-9" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb557-10"><a href="#cb557-10" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb557-11"><a href="#cb557-11" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb557-12"><a href="#cb557-12" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb557-13"><a href="#cb557-13" aria-hidden="true" tabindex="-1"></a><b>_Hello,_ world!</b><br/></span> -<span id="cb557-14"><a href="#cb557-14" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb557-15"><a href="#cb557-15" aria-hidden="true" tabindex="-1"></a><div>_Hello,_ world!</div></span> -<span id="cb557-16"><a href="#cb557-16" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb557-17"><a href="#cb557-17" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb560"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb560-1"><a href="#cb560-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb560-2"><a href="#cb560-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[html]{<span class="ex">markdown</span>}</span> +<span id="cb560-3"><a href="#cb560-3" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>{<span class="ex">marginnote</span>}</span> +<span id="cb560-4"><a href="#cb560-4" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>{<span class="ex">verbatim</span>}</span> +<span id="cb560-5"><a href="#cb560-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> +<span id="cb560-6"><a href="#cb560-6" aria-hidden="true" tabindex="-1"></a> renderers = {</span> +<span id="cb560-7"><a href="#cb560-7" aria-hidden="true" tabindex="-1"></a> inlineHtmlTag = {<span class="fu">\textbf</span>{#1}},</span> +<span id="cb560-8"><a href="#cb560-8" aria-hidden="true" tabindex="-1"></a> inputBlockHtmlElement = {<span class="fu">\verbatiminput</span>{#1}},</span> +<span id="cb560-9"><a href="#cb560-9" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb560-10"><a href="#cb560-10" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb560-11"><a href="#cb560-11" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb560-12"><a href="#cb560-12" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb560-13"><a href="#cb560-13" aria-hidden="true" tabindex="-1"></a><b>_Hello,_ world!</b><br/></span> +<span id="cb560-14"><a href="#cb560-14" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb560-15"><a href="#cb560-15" aria-hidden="true" tabindex="-1"></a><div>_Hello,_ world!</div></span> +<span id="cb560-16"><a href="#cb560-16" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb560-17"><a href="#cb560-17" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb558"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb558-1"><a href="#cb558-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span> -<span id="cb558-2"><a href="#cb558-2" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb561"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb561-1"><a href="#cb561-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span> +<span id="cb561-2"><a href="#cb561-2" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following body text:</p> <blockquote> @@ -10383,7 +10505,7 @@ contain the following body text:</p> </blockquote> <h4 data-number="2.3.1.19" id="image-renderer"><span class="header-section-number">2.3.1.19</span> Image Renderer</h4> -<p>The <code>\markdownRendererImage</code> macro represents an image. It +<p>The <code>markdownRendererImage</code> macro represents an image. It receives four arguments: the label, the fully escaped <abbr>uri</abbr> that can be directly typeset, the raw <abbr>uri</abbr> that can be used outside typesetting, and the title of the link.</p> @@ -10391,44 +10513,44 @@ outside typesetting, and the title of the link.</p> class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb560"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb560-1"><a href="#cb560-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb560-2"><a href="#cb560-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>{<span class="ex">markdown</span>}</span> -<span id="cb560-3"><a href="#cb560-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\begingroup</span></span> -<span id="cb560-4"><a href="#cb560-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\catcode</span>`<span class="fu">\@</span>=11</span> -<span id="cb560-5"><a href="#cb560-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\catcode</span>`<span class="fu">\%</span>=12</span> -<span id="cb560-6"><a href="#cb560-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\catcode</span>`<span class="fu">\^</span>^A=14</span> -<span id="cb560-7"><a href="#cb560-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\global\def\markdownRendererImage</span>#1#2#3#4{^^A</span> -<span id="cb560-8"><a href="#cb560-8" aria-hidden="true" tabindex="-1"></a> <span class="fu">\immediate\write</span>18{^^A</span></code></pre></div> -<div class="sourceCode" id="cb561"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb561-1"><a href="#cb561-1" aria-hidden="true" tabindex="-1"></a> <span class="cf">if</span> <span class="bu">printf</span> <span class="st">'%s'</span> <span class="st">"#3"</span> <span class="kw">|</span> <span class="fu">grep</span> <span class="at">-q</span> ^http<span class="kw">;</span> <span class="cf">then</span></span> -<span id="cb561-2"><a href="#cb561-2" aria-hidden="true" tabindex="-1"></a> <span class="va">OUTPUT</span><span class="op">=</span><span class="st">"</span><span class="va">$(</span><span class="bu">printf</span> <span class="st">'%s'</span> <span class="st">"#3"</span> <span class="kw">|</span> <span class="fu">md5sum</span> <span class="kw">|</span> <span class="fu">cut</span> <span class="at">-d</span><span class="st">' '</span> <span class="at">-f1</span><span class="va">)</span><span class="st">.^^A</span></span> -<span id="cb561-3"><a href="#cb561-3" aria-hidden="true" tabindex="-1"></a><span class="st"> </span><span class="va">$(</span><span class="bu">printf</span> <span class="st">'%s'</span> <span class="st">"#3"</span> <span class="kw">|</span> <span class="fu">sed</span> <span class="st">'s/.*[.]//'</span><span class="va">)</span><span class="st">"</span><span class="kw">;</span></span> -<span id="cb561-4"><a href="#cb561-4" aria-hidden="true" tabindex="-1"></a> <span class="cf">if</span> <span class="ot">! </span><span class="bu">[</span> <span class="ot">-e</span> <span class="st">"</span><span class="va">$OUTPUT</span><span class="st">"</span> <span class="bu">]</span><span class="kw">;</span> <span class="cf">then</span></span> -<span id="cb561-5"><a href="#cb561-5" aria-hidden="true" tabindex="-1"></a> <span class="fu">wget</span> <span class="at">-O</span> <span class="st">"</span><span class="va">$OUTPUT</span><span class="st">"</span> <span class="st">'#3'</span> <span class="kw">||</span> <span class="fu">rm</span> <span class="st">"</span><span class="va">$OUTPUT</span><span class="st">"</span><span class="kw">;</span></span> -<span id="cb561-6"><a href="#cb561-6" aria-hidden="true" tabindex="-1"></a> <span class="ex">convert</span> <span class="st">"</span><span class="va">$OUTPUT</span><span class="st">"</span> png:<span class="st">"</span><span class="va">$OUTPUT</span><span class="st">"</span><span class="kw">;</span></span> -<span id="cb561-7"><a href="#cb561-7" aria-hidden="true" tabindex="-1"></a> <span class="cf">fi</span><span class="kw">;</span></span> -<span id="cb561-8"><a href="#cb561-8" aria-hidden="true" tabindex="-1"></a> <span class="bu">printf</span> <span class="st">'%s%%'</span> <span class="st">"</span><span class="va">$OUTPUT</span><span class="st">"</span> <span class="op">></span> <span class="dt">\j</span>obname.fetched<span class="kw">;</span></span> -<span id="cb561-9"><a href="#cb561-9" aria-hidden="true" tabindex="-1"></a> <span class="cf">else</span></span> -<span id="cb561-10"><a href="#cb561-10" aria-hidden="true" tabindex="-1"></a> <span class="bu">printf</span> <span class="st">'%s%%'</span> <span class="st">"#3"</span> <span class="op">></span> <span class="dt">\j</span>obname.fetched<span class="kw">;</span></span> -<span id="cb561-11"><a href="#cb561-11" aria-hidden="true" tabindex="-1"></a> <span class="ex">fi^^A</span></span></code></pre></div> -<div class="sourceCode" id="cb562"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb562-1"><a href="#cb562-1" aria-hidden="true" tabindex="-1"></a> }^^A</span> -<span id="cb562-2"><a href="#cb562-2" aria-hidden="true" tabindex="-1"></a> {^^A</span> -<span id="cb562-3"><a href="#cb562-3" aria-hidden="true" tabindex="-1"></a> <span class="fu">\everyeof</span>={<span class="fu">\noexpand</span>}^^A</span> -<span id="cb562-4"><a href="#cb562-4" aria-hidden="true" tabindex="-1"></a> <span class="fu">\edef\filename</span>{<span class="fu">\@@input</span>"<span class="fu">\jobname</span>.fetched" }^^A</span> -<span id="cb562-5"><a href="#cb562-5" aria-hidden="true" tabindex="-1"></a> <span class="bu">\includegraphics</span>[width=<span class="fu">\textwidth</span>]{<span class="fu">\filename</span>}^^A</span> -<span id="cb562-6"><a href="#cb562-6" aria-hidden="true" tabindex="-1"></a> }^^A</span> -<span id="cb562-7"><a href="#cb562-7" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb562-8"><a href="#cb562-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\endgroup</span></span> -<span id="cb562-9"><a href="#cb562-9" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb562-10"><a href="#cb562-10" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb562-11"><a href="#cb562-11" aria-hidden="true" tabindex="-1"></a>![TUGboat](https://tug.org/tugboat/noword.jpg)</span> -<span id="cb562-12"><a href="#cb562-12" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb562-13"><a href="#cb562-13" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> -<p>Next, invoke LuaTeX from the terminal:</p> <div class="sourceCode" id="cb563"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb563-1"><a href="#cb563-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> <span class="at">--shell-escape</span> document.tex</span></code></pre></div> +class="sourceCode tex"><code class="sourceCode latex"><span id="cb563-1"><a href="#cb563-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb563-2"><a href="#cb563-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>{<span class="ex">markdown</span>}</span> +<span id="cb563-3"><a href="#cb563-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\begingroup</span></span> +<span id="cb563-4"><a href="#cb563-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\catcode</span>`<span class="fu">\@</span>=11</span> +<span id="cb563-5"><a href="#cb563-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\catcode</span>`<span class="fu">\%</span>=12</span> +<span id="cb563-6"><a href="#cb563-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\catcode</span>`<span class="fu">\^</span>^A=14</span> +<span id="cb563-7"><a href="#cb563-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\global\def\markdownRendererImage</span>#1#2#3#4{^^A</span> +<span id="cb563-8"><a href="#cb563-8" aria-hidden="true" tabindex="-1"></a> <span class="fu">\immediate\write</span>18{^^A</span></code></pre></div> +<div class="sourceCode" id="cb564"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb564-1"><a href="#cb564-1" aria-hidden="true" tabindex="-1"></a> <span class="cf">if</span> <span class="bu">printf</span> <span class="st">'%s'</span> <span class="st">"#3"</span> <span class="kw">|</span> <span class="fu">grep</span> <span class="at">-q</span> ^http<span class="kw">;</span> <span class="cf">then</span></span> +<span id="cb564-2"><a href="#cb564-2" aria-hidden="true" tabindex="-1"></a> <span class="va">OUTPUT</span><span class="op">=</span><span class="st">"</span><span class="va">$(</span><span class="bu">printf</span> <span class="st">'%s'</span> <span class="st">"#3"</span> <span class="kw">|</span> <span class="fu">md5sum</span> <span class="kw">|</span> <span class="fu">cut</span> <span class="at">-d</span><span class="st">' '</span> <span class="at">-f1</span><span class="va">)</span><span class="st">.^^A</span></span> +<span id="cb564-3"><a href="#cb564-3" aria-hidden="true" tabindex="-1"></a><span class="st"> </span><span class="va">$(</span><span class="bu">printf</span> <span class="st">'%s'</span> <span class="st">"#3"</span> <span class="kw">|</span> <span class="fu">sed</span> <span class="st">'s/.*[.]//'</span><span class="va">)</span><span class="st">"</span><span class="kw">;</span></span> +<span id="cb564-4"><a href="#cb564-4" aria-hidden="true" tabindex="-1"></a> <span class="cf">if</span> <span class="ot">! </span><span class="bu">[</span> <span class="ot">-e</span> <span class="st">"</span><span class="va">$OUTPUT</span><span class="st">"</span> <span class="bu">]</span><span class="kw">;</span> <span class="cf">then</span></span> +<span id="cb564-5"><a href="#cb564-5" aria-hidden="true" tabindex="-1"></a> <span class="fu">wget</span> <span class="at">-O</span> <span class="st">"</span><span class="va">$OUTPUT</span><span class="st">"</span> <span class="st">'#3'</span> <span class="kw">||</span> <span class="fu">rm</span> <span class="st">"</span><span class="va">$OUTPUT</span><span class="st">"</span><span class="kw">;</span></span> +<span id="cb564-6"><a href="#cb564-6" aria-hidden="true" tabindex="-1"></a> <span class="ex">convert</span> <span class="st">"</span><span class="va">$OUTPUT</span><span class="st">"</span> png:<span class="st">"</span><span class="va">$OUTPUT</span><span class="st">"</span><span class="kw">;</span></span> +<span id="cb564-7"><a href="#cb564-7" aria-hidden="true" tabindex="-1"></a> <span class="cf">fi</span><span class="kw">;</span></span> +<span id="cb564-8"><a href="#cb564-8" aria-hidden="true" tabindex="-1"></a> <span class="bu">printf</span> <span class="st">'%s%%'</span> <span class="st">"</span><span class="va">$OUTPUT</span><span class="st">"</span> <span class="op">></span> <span class="dt">\j</span>obname.fetched<span class="kw">;</span></span> +<span id="cb564-9"><a href="#cb564-9" aria-hidden="true" tabindex="-1"></a> <span class="cf">else</span></span> +<span id="cb564-10"><a href="#cb564-10" aria-hidden="true" tabindex="-1"></a> <span class="bu">printf</span> <span class="st">'%s%%'</span> <span class="st">"#3"</span> <span class="op">></span> <span class="dt">\j</span>obname.fetched<span class="kw">;</span></span> +<span id="cb564-11"><a href="#cb564-11" aria-hidden="true" tabindex="-1"></a> <span class="ex">fi^^A</span></span></code></pre></div> +<div class="sourceCode" id="cb565"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb565-1"><a href="#cb565-1" aria-hidden="true" tabindex="-1"></a> }^^A</span> +<span id="cb565-2"><a href="#cb565-2" aria-hidden="true" tabindex="-1"></a> {^^A</span> +<span id="cb565-3"><a href="#cb565-3" aria-hidden="true" tabindex="-1"></a> <span class="fu">\everyeof</span>={<span class="fu">\noexpand</span>}^^A</span> +<span id="cb565-4"><a href="#cb565-4" aria-hidden="true" tabindex="-1"></a> <span class="fu">\edef\filename</span>{<span class="fu">\@@input</span>"<span class="fu">\jobname</span>.fetched" }^^A</span> +<span id="cb565-5"><a href="#cb565-5" aria-hidden="true" tabindex="-1"></a> <span class="bu">\includegraphics</span>[width=<span class="fu">\textwidth</span>]{<span class="fu">\filename</span>}^^A</span> +<span id="cb565-6"><a href="#cb565-6" aria-hidden="true" tabindex="-1"></a> }^^A</span> +<span id="cb565-7"><a href="#cb565-7" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb565-8"><a href="#cb565-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\endgroup</span></span> +<span id="cb565-9"><a href="#cb565-9" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb565-10"><a href="#cb565-10" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb565-11"><a href="#cb565-11" aria-hidden="true" tabindex="-1"></a>![TUGboat](https://tug.org/tugboat/noword.jpg)</span> +<span id="cb565-12"><a href="#cb565-12" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb565-13"><a href="#cb565-13" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<p>Next, invoke LuaTeX from the terminal:</p> +<div class="sourceCode" id="cb566"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb566-1"><a href="#cb566-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> <span class="at">--shell-escape</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following content. This assumes that you use a Unix-like operating system with Bourne or Bourne again shell as the default shell @@ -10447,35 +10569,35 @@ title="The Communications of the TeX Users Group" alt="TUGboat" /> class="header-section-number">2.3.1.20</span> Image Attribute Context Renderers</h4> <p>The following macros are only produced, when the -<strong><code>linkAttributes</code></strong> option is enabled.</p> -<p>The <code>\markdownRendererImageAttributeContextBegin</code> and -<code>\markdownRendererImageAttributeContextEnd</code> macros represent +<code><strong>linkAttributes</strong></code> option is enabled.</p> +<p>The <code>markdownRendererImageAttributeContextBegin</code> and +<code>markdownRendererImageAttributeContextEnd</code> macros represent the beginning and the end of a context in which the attributes of an image apply. The macros receive no arguments.</p> <h5 class="unnumbered" id="latex-example-76"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb564"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb564-1"><a href="#cb564-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb564-2"><a href="#cb564-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[linkAttributes]{<span class="ex">markdown</span>}</span> -<span id="cb564-3"><a href="#cb564-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> -<span id="cb564-4"><a href="#cb564-4" aria-hidden="true" tabindex="-1"></a> renderers = {</span> -<span id="cb564-5"><a href="#cb564-5" aria-hidden="true" tabindex="-1"></a> imageAttributeContextBegin = {(},</span> -<span id="cb564-6"><a href="#cb564-6" aria-hidden="true" tabindex="-1"></a> image = {#1},</span> -<span id="cb564-7"><a href="#cb564-7" aria-hidden="true" tabindex="-1"></a> imageAttributeContextEnd = {)},</span> -<span id="cb564-8"><a href="#cb564-8" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb564-9"><a href="#cb564-9" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb564-10"><a href="#cb564-10" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb564-11"><a href="#cb564-11" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb564-12"><a href="#cb564-12" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb564-13"><a href="#cb564-13" aria-hidden="true" tabindex="-1"></a>foo ![bar](#bar){key=value} baz</span> -<span id="cb564-14"><a href="#cb564-14" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb564-15"><a href="#cb564-15" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb564-16"><a href="#cb564-16" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb567"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb567-1"><a href="#cb567-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb567-2"><a href="#cb567-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[linkAttributes]{<span class="ex">markdown</span>}</span> +<span id="cb567-3"><a href="#cb567-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> +<span id="cb567-4"><a href="#cb567-4" aria-hidden="true" tabindex="-1"></a> renderers = {</span> +<span id="cb567-5"><a href="#cb567-5" aria-hidden="true" tabindex="-1"></a> imageAttributeContextBegin = {(},</span> +<span id="cb567-6"><a href="#cb567-6" aria-hidden="true" tabindex="-1"></a> image = {#1},</span> +<span id="cb567-7"><a href="#cb567-7" aria-hidden="true" tabindex="-1"></a> imageAttributeContextEnd = {)},</span> +<span id="cb567-8"><a href="#cb567-8" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb567-9"><a href="#cb567-9" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb567-10"><a href="#cb567-10" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb567-11"><a href="#cb567-11" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb567-12"><a href="#cb567-12" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb567-13"><a href="#cb567-13" aria-hidden="true" tabindex="-1"></a>foo ![bar](#bar){key=value} baz</span> +<span id="cb567-14"><a href="#cb567-14" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb567-15"><a href="#cb567-15" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb567-16"><a href="#cb567-16" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb565"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb565-1"><a href="#cb565-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb568"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb568-1"><a href="#cb568-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -10484,29 +10606,29 @@ contain the following text:</p> <h4 data-number="2.3.1.21" id="interblock-separator-renderers"><span class="header-section-number">2.3.1.21</span> Interblock Separator Renderers</h4> -<p>The <code>\markdownRendererInterblockSeparator</code> macro -represents an interblock separator between two markdown block elements. -The macro receives no arguments.</p> +<p>The <code>markdownRendererInterblockSeparator</code> macro represents +an interblock separator between two markdown block elements. The macro +receives no arguments.</p> <h5 class="unnumbered" id="plain-tex-example-33">Plain <span class="tex">T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb566"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb566-1"><a href="#cb566-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> -<span id="cb566-2"><a href="#cb566-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="co">%</span></span> -<span id="cb566-3"><a href="#cb566-3" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> -<span id="cb566-4"><a href="#cb566-4" aria-hidden="true" tabindex="-1"></a> {<span class="fu">\it</span>(The end of a block)}<span class="co">%</span></span> -<span id="cb566-5"><a href="#cb566-5" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> -<span id="cb566-6"><a href="#cb566-6" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb566-7"><a href="#cb566-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> -<span id="cb566-8"><a href="#cb566-8" aria-hidden="true" tabindex="-1"></a>- Hello *world*!</span> -<span id="cb566-9"><a href="#cb566-9" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb566-10"><a href="#cb566-10" aria-hidden="true" tabindex="-1"></a>_Foo_ bar!</span> -<span id="cb566-11"><a href="#cb566-11" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> -<span id="cb566-12"><a href="#cb566-12" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> +<div class="sourceCode" id="cb569"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb569-1"><a href="#cb569-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> +<span id="cb569-2"><a href="#cb569-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="co">%</span></span> +<span id="cb569-3"><a href="#cb569-3" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> +<span id="cb569-4"><a href="#cb569-4" aria-hidden="true" tabindex="-1"></a> {<span class="fu">\it</span>(The end of a block)}<span class="co">%</span></span> +<span id="cb569-5"><a href="#cb569-5" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> +<span id="cb569-6"><a href="#cb569-6" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb569-7"><a href="#cb569-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> +<span id="cb569-8"><a href="#cb569-8" aria-hidden="true" tabindex="-1"></a>- Hello *world*!</span> +<span id="cb569-9"><a href="#cb569-9" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb569-10"><a href="#cb569-10" aria-hidden="true" tabindex="-1"></a>_Foo_ bar!</span> +<span id="cb569-11"><a href="#cb569-11" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> +<span id="cb569-12"><a href="#cb569-12" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb567"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb567-1"><a href="#cb567-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb570"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb570-1"><a href="#cb570-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -10520,28 +10642,28 @@ contain the following text:</p> class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb568"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb568-1"><a href="#cb568-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb568-2"><a href="#cb568-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>{<span class="ex">markdown</span>}</span> -<span id="cb568-3"><a href="#cb568-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> -<span id="cb568-4"><a href="#cb568-4" aria-hidden="true" tabindex="-1"></a> renderers = {</span> -<span id="cb568-5"><a href="#cb568-5" aria-hidden="true" tabindex="-1"></a> interblockSeparator = {<span class="co">%</span></span> -<span id="cb568-6"><a href="#cb568-6" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> -<span id="cb568-7"><a href="#cb568-7" aria-hidden="true" tabindex="-1"></a> <span class="fu">\emph</span>{(The end of a block)}<span class="co">%</span></span> -<span id="cb568-8"><a href="#cb568-8" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> -<span id="cb568-9"><a href="#cb568-9" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb568-10"><a href="#cb568-10" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb568-11"><a href="#cb568-11" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb568-12"><a href="#cb568-12" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb568-13"><a href="#cb568-13" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb568-14"><a href="#cb568-14" aria-hidden="true" tabindex="-1"></a>- Hello *world*!</span> -<span id="cb568-15"><a href="#cb568-15" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb568-16"><a href="#cb568-16" aria-hidden="true" tabindex="-1"></a>_Foo_ bar!</span> -<span id="cb568-17"><a href="#cb568-17" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb568-18"><a href="#cb568-18" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb571"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb571-1"><a href="#cb571-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb571-2"><a href="#cb571-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>{<span class="ex">markdown</span>}</span> +<span id="cb571-3"><a href="#cb571-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> +<span id="cb571-4"><a href="#cb571-4" aria-hidden="true" tabindex="-1"></a> renderers = {</span> +<span id="cb571-5"><a href="#cb571-5" aria-hidden="true" tabindex="-1"></a> interblockSeparator = {<span class="co">%</span></span> +<span id="cb571-6"><a href="#cb571-6" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> +<span id="cb571-7"><a href="#cb571-7" aria-hidden="true" tabindex="-1"></a> <span class="fu">\emph</span>{(The end of a block)}<span class="co">%</span></span> +<span id="cb571-8"><a href="#cb571-8" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> +<span id="cb571-9"><a href="#cb571-9" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb571-10"><a href="#cb571-10" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb571-11"><a href="#cb571-11" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb571-12"><a href="#cb571-12" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb571-13"><a href="#cb571-13" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb571-14"><a href="#cb571-14" aria-hidden="true" tabindex="-1"></a>- Hello *world*!</span> +<span id="cb571-15"><a href="#cb571-15" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb571-16"><a href="#cb571-16" aria-hidden="true" tabindex="-1"></a>_Foo_ bar!</span> +<span id="cb571-17"><a href="#cb571-17" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb571-18"><a href="#cb571-18" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb569"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb569-1"><a href="#cb569-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb572"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb572-1"><a href="#cb572-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -10555,23 +10677,23 @@ contain the following text:</p> class="tex">T<sub>e</sub>X</span>t Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb570"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb570-1"><a href="#cb570-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> -<span id="cb570-2"><a href="#cb570-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="co">%</span></span> -<span id="cb570-3"><a href="#cb570-3" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> -<span id="cb570-4"><a href="#cb570-4" aria-hidden="true" tabindex="-1"></a> <span class="fu">\emph</span>{(The end of a block)}<span class="co">%</span></span> -<span id="cb570-5"><a href="#cb570-5" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> -<span id="cb570-6"><a href="#cb570-6" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb570-7"><a href="#cb570-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> -<span id="cb570-8"><a href="#cb570-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> -<span id="cb570-9"><a href="#cb570-9" aria-hidden="true" tabindex="-1"></a>- Hello *world*!</span> -<span id="cb570-10"><a href="#cb570-10" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb570-11"><a href="#cb570-11" aria-hidden="true" tabindex="-1"></a>_Foo_ bar!</span> -<span id="cb570-12"><a href="#cb570-12" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> -<span id="cb570-13"><a href="#cb570-13" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> +<div class="sourceCode" id="cb573"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb573-1"><a href="#cb573-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> +<span id="cb573-2"><a href="#cb573-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="co">%</span></span> +<span id="cb573-3"><a href="#cb573-3" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> +<span id="cb573-4"><a href="#cb573-4" aria-hidden="true" tabindex="-1"></a> <span class="fu">\emph</span>{(The end of a block)}<span class="co">%</span></span> +<span id="cb573-5"><a href="#cb573-5" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> +<span id="cb573-6"><a href="#cb573-6" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb573-7"><a href="#cb573-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> +<span id="cb573-8"><a href="#cb573-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> +<span id="cb573-9"><a href="#cb573-9" aria-hidden="true" tabindex="-1"></a>- Hello *world*!</span> +<span id="cb573-10"><a href="#cb573-10" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb573-11"><a href="#cb573-11" aria-hidden="true" tabindex="-1"></a>_Foo_ bar!</span> +<span id="cb573-12"><a href="#cb573-12" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> +<span id="cb573-13"><a href="#cb573-13" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb571"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb571-1"><a href="#cb571-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb574"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb574-1"><a href="#cb574-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -10586,34 +10708,34 @@ indicate the end of a series of blocks that make up a logical paragraph. This produces a paragraph separator instead of an interblock separator. Between some blocks, such as markdown paragraphs, a paragraph separator is always produced.</p> -<p>The <code>\markdownRendererParagraphSeparator</code> macro represents +<p>The <code>markdownRendererParagraphSeparator</code> macro represents a paragraph separator. The macro receives no arguments.</p> <h5 class="unnumbered" id="latex-example-78"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb572"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb572-1"><a href="#cb572-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb572-2"><a href="#cb572-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>{<span class="ex">markdown</span>}</span> -<span id="cb572-3"><a href="#cb572-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> -<span id="cb572-4"><a href="#cb572-4" aria-hidden="true" tabindex="-1"></a> renderers = {</span> -<span id="cb572-5"><a href="#cb572-5" aria-hidden="true" tabindex="-1"></a> paragraphSeparator = {<span class="co">%</span></span> -<span id="cb572-6"><a href="#cb572-6" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> -<span id="cb572-7"><a href="#cb572-7" aria-hidden="true" tabindex="-1"></a> <span class="fu">\emph</span>{(The end of a paragraph)}<span class="co">%</span></span> -<span id="cb572-8"><a href="#cb572-8" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> -<span id="cb572-9"><a href="#cb572-9" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb572-10"><a href="#cb572-10" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb572-11"><a href="#cb572-11" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb572-12"><a href="#cb572-12" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb572-13"><a href="#cb572-13" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb572-14"><a href="#cb572-14" aria-hidden="true" tabindex="-1"></a>Hello *world*!</span> -<span id="cb572-15"><a href="#cb572-15" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb572-16"><a href="#cb572-16" aria-hidden="true" tabindex="-1"></a>_Foo_ bar!</span> -<span id="cb572-17"><a href="#cb572-17" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb572-18"><a href="#cb572-18" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb575"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb575-1"><a href="#cb575-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb575-2"><a href="#cb575-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>{<span class="ex">markdown</span>}</span> +<span id="cb575-3"><a href="#cb575-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> +<span id="cb575-4"><a href="#cb575-4" aria-hidden="true" tabindex="-1"></a> renderers = {</span> +<span id="cb575-5"><a href="#cb575-5" aria-hidden="true" tabindex="-1"></a> paragraphSeparator = {<span class="co">%</span></span> +<span id="cb575-6"><a href="#cb575-6" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> +<span id="cb575-7"><a href="#cb575-7" aria-hidden="true" tabindex="-1"></a> <span class="fu">\emph</span>{(The end of a paragraph)}<span class="co">%</span></span> +<span id="cb575-8"><a href="#cb575-8" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> +<span id="cb575-9"><a href="#cb575-9" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb575-10"><a href="#cb575-10" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb575-11"><a href="#cb575-11" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb575-12"><a href="#cb575-12" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb575-13"><a href="#cb575-13" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb575-14"><a href="#cb575-14" aria-hidden="true" tabindex="-1"></a>Hello *world*!</span> +<span id="cb575-15"><a href="#cb575-15" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb575-16"><a href="#cb575-16" aria-hidden="true" tabindex="-1"></a>_Foo_ bar!</span> +<span id="cb575-17"><a href="#cb575-17" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb575-18"><a href="#cb575-18" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb573"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb573-1"><a href="#cb573-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb576"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb576-1"><a href="#cb576-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -10624,28 +10746,27 @@ contain the following text:</p> <h4 data-number="2.3.1.22" id="line-block-renderers"><span class="header-section-number">2.3.1.22</span> Line Block Renderers</h4> <p>The following macros are only produced, when the -<strong><code>lineBlocks</code></strong> option is enabled.</p> -<p>The <code>\markdownRendererLineBlockBegin</code> and -<code>\markdownRendererLineBlockEnd</code> macros represent the -beginning and the end of a line block. The macros receive no -arguments.</p> +<code><strong>lineBlocks</strong></code> option is enabled.</p> +<p>The <code>markdownRendererLineBlockBegin</code> and +<code>markdownRendererLineBlockEnd</code> macros represent the beginning +and the end of a line block. The macros receive no arguments.</p> <h5 class="unnumbered" id="plain-tex-example-34">Plain <span class="tex">T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb574"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb574-1"><a href="#cb574-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> -<span id="cb574-2"><a href="#cb574-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionLineBlocks</span>{true}</span> -<span id="cb574-3"><a href="#cb574-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> -<span id="cb574-4"><a href="#cb574-4" aria-hidden="true" tabindex="-1"></a>| I would spread the cloths under your feet:</span> -<span id="cb574-5"><a href="#cb574-5" aria-hidden="true" tabindex="-1"></a>| But I, being poor, have only my dreams;</span> -<span id="cb574-6"><a href="#cb574-6" aria-hidden="true" tabindex="-1"></a>| I have spread my dreams under your feet;</span> -<span id="cb574-7"><a href="#cb574-7" aria-hidden="true" tabindex="-1"></a>| Tread softly because you tread on my dreams.</span> -<span id="cb574-8"><a href="#cb574-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> -<span id="cb574-9"><a href="#cb574-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> +<div class="sourceCode" id="cb577"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb577-1"><a href="#cb577-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> +<span id="cb577-2"><a href="#cb577-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionLineBlocks</span>{true}</span> +<span id="cb577-3"><a href="#cb577-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> +<span id="cb577-4"><a href="#cb577-4" aria-hidden="true" tabindex="-1"></a>| I would spread the cloths under your feet:</span> +<span id="cb577-5"><a href="#cb577-5" aria-hidden="true" tabindex="-1"></a>| But I, being poor, have only my dreams;</span> +<span id="cb577-6"><a href="#cb577-6" aria-hidden="true" tabindex="-1"></a>| I have spread my dreams under your feet;</span> +<span id="cb577-7"><a href="#cb577-7" aria-hidden="true" tabindex="-1"></a>| Tread softly because you tread on my dreams.</span> +<span id="cb577-8"><a href="#cb577-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> +<span id="cb577-9"><a href="#cb577-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb575"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb575-1"><a href="#cb575-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb578"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb578-1"><a href="#cb578-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -10658,20 +10779,20 @@ Tread softly because you tread on my dreams.</div> class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb576"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb576-1"><a href="#cb576-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb576-2"><a href="#cb576-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[lineBlocks]{<span class="ex">markdown</span>}</span> -<span id="cb576-3"><a href="#cb576-3" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb576-4"><a href="#cb576-4" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb576-5"><a href="#cb576-5" aria-hidden="true" tabindex="-1"></a>| I would spread the cloths under your feet:</span> -<span id="cb576-6"><a href="#cb576-6" aria-hidden="true" tabindex="-1"></a>| But I, being poor, have only my dreams;</span> -<span id="cb576-7"><a href="#cb576-7" aria-hidden="true" tabindex="-1"></a>| I have spread my dreams under your feet;</span> -<span id="cb576-8"><a href="#cb576-8" aria-hidden="true" tabindex="-1"></a>| Tread softly because you tread on my dreams.</span> -<span id="cb576-9"><a href="#cb576-9" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb576-10"><a href="#cb576-10" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb579"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb579-1"><a href="#cb579-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb579-2"><a href="#cb579-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[lineBlocks]{<span class="ex">markdown</span>}</span> +<span id="cb579-3"><a href="#cb579-3" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb579-4"><a href="#cb579-4" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb579-5"><a href="#cb579-5" aria-hidden="true" tabindex="-1"></a>| I would spread the cloths under your feet:</span> +<span id="cb579-6"><a href="#cb579-6" aria-hidden="true" tabindex="-1"></a>| But I, being poor, have only my dreams;</span> +<span id="cb579-7"><a href="#cb579-7" aria-hidden="true" tabindex="-1"></a>| I have spread my dreams under your feet;</span> +<span id="cb579-8"><a href="#cb579-8" aria-hidden="true" tabindex="-1"></a>| Tread softly because you tread on my dreams.</span> +<span id="cb579-9"><a href="#cb579-9" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb579-10"><a href="#cb579-10" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb577"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb577-1"><a href="#cb577-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb580"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb580-1"><a href="#cb580-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -10684,20 +10805,20 @@ Tread softly because you tread on my dreams.</div> class="tex">T<sub>e</sub>X</span>t Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb578"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb578-1"><a href="#cb578-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> -<span id="cb578-2"><a href="#cb578-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span>[lineBlocks = yes]</span> -<span id="cb578-3"><a href="#cb578-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> -<span id="cb578-4"><a href="#cb578-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> -<span id="cb578-5"><a href="#cb578-5" aria-hidden="true" tabindex="-1"></a>| I would spread the cloths under your feet:</span> -<span id="cb578-6"><a href="#cb578-6" aria-hidden="true" tabindex="-1"></a>| But I, being poor, have only my dreams;</span> -<span id="cb578-7"><a href="#cb578-7" aria-hidden="true" tabindex="-1"></a>| I have spread my dreams under your feet;</span> -<span id="cb578-8"><a href="#cb578-8" aria-hidden="true" tabindex="-1"></a>| Tread softly because you tread on my dreams.</span> -<span id="cb578-9"><a href="#cb578-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> -<span id="cb578-10"><a href="#cb578-10" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> +<div class="sourceCode" id="cb581"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb581-1"><a href="#cb581-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> +<span id="cb581-2"><a href="#cb581-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span>[lineBlocks = yes]</span> +<span id="cb581-3"><a href="#cb581-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> +<span id="cb581-4"><a href="#cb581-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> +<span id="cb581-5"><a href="#cb581-5" aria-hidden="true" tabindex="-1"></a>| I would spread the cloths under your feet:</span> +<span id="cb581-6"><a href="#cb581-6" aria-hidden="true" tabindex="-1"></a>| But I, being poor, have only my dreams;</span> +<span id="cb581-7"><a href="#cb581-7" aria-hidden="true" tabindex="-1"></a>| I have spread my dreams under your feet;</span> +<span id="cb581-8"><a href="#cb581-8" aria-hidden="true" tabindex="-1"></a>| Tread softly because you tread on my dreams.</span> +<span id="cb581-9"><a href="#cb581-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> +<span id="cb581-10"><a href="#cb581-10" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb579"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb579-1"><a href="#cb579-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb582"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb582-1"><a href="#cb582-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -10708,29 +10829,29 @@ Tread softly because you tread on my dreams.</div> </blockquote> <h4 data-number="2.3.1.23" id="line-break-renderers"><span class="header-section-number">2.3.1.23</span> Line Break Renderers</h4> -<p>The <code>\markdownRendererSoftLineBreak</code> macro represents a +<p>The <code>markdownRendererSoftLineBreak</code> macro represents a soft line break. The macro receives no arguments.</p> <h5 class="unnumbered" id="plain-tex-example-35">Plain <span class="tex">T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb580"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb580-1"><a href="#cb580-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> -<span id="cb580-2"><a href="#cb580-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererSoftLineBreak</span>{<span class="co">%</span></span> -<span id="cb580-3"><a href="#cb580-3" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> -<span id="cb580-4"><a href="#cb580-4" aria-hidden="true" tabindex="-1"></a> {<span class="fu">\it</span>(A soft line break)}<span class="co">%</span></span> -<span id="cb580-5"><a href="#cb580-5" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> -<span id="cb580-6"><a href="#cb580-6" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb580-7"><a href="#cb580-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownInput</span>{example.md}</span> -<span id="cb580-8"><a href="#cb580-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> +<div class="sourceCode" id="cb583"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb583-1"><a href="#cb583-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> +<span id="cb583-2"><a href="#cb583-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererSoftLineBreak</span>{<span class="co">%</span></span> +<span id="cb583-3"><a href="#cb583-3" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> +<span id="cb583-4"><a href="#cb583-4" aria-hidden="true" tabindex="-1"></a> {<span class="fu">\it</span>(A soft line break)}<span class="co">%</span></span> +<span id="cb583-5"><a href="#cb583-5" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> +<span id="cb583-6"><a href="#cb583-6" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb583-7"><a href="#cb583-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownInput</span>{example.md}</span> +<span id="cb583-8"><a href="#cb583-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> <p>Using a text editor, create a text document named <code>example.md</code> with the following content:</p> -<div class="sourceCode" id="cb581"><pre -class="sourceCode md"><code class="sourceCode markdown"><span id="cb581-1"><a href="#cb581-1" aria-hidden="true" tabindex="-1"></a>Hello world!</span> -<span id="cb581-2"><a href="#cb581-2" aria-hidden="true" tabindex="-1"></a>_Foo_ bar!</span></code></pre></div> +<div class="sourceCode" id="cb584"><pre +class="sourceCode md"><code class="sourceCode markdown"><span id="cb584-1"><a href="#cb584-1" aria-hidden="true" tabindex="-1"></a>Hello world!</span> +<span id="cb584-2"><a href="#cb584-2" aria-hidden="true" tabindex="-1"></a>_Foo_ bar!</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb582"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb582-1"><a href="#cb582-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb585"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb585-1"><a href="#cb585-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -10742,29 +10863,29 @@ contain the following text:</p> class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb583"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb583-1"><a href="#cb583-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb583-2"><a href="#cb583-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>{<span class="ex">markdown</span>}</span> -<span id="cb583-3"><a href="#cb583-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> -<span id="cb583-4"><a href="#cb583-4" aria-hidden="true" tabindex="-1"></a> renderers = {</span> -<span id="cb583-5"><a href="#cb583-5" aria-hidden="true" tabindex="-1"></a> softLineBreak = {<span class="co">%</span></span> -<span id="cb583-6"><a href="#cb583-6" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> -<span id="cb583-7"><a href="#cb583-7" aria-hidden="true" tabindex="-1"></a> <span class="fu">\emph</span>{(A soft line break)}<span class="co">%</span></span> -<span id="cb583-8"><a href="#cb583-8" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> -<span id="cb583-9"><a href="#cb583-9" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb583-10"><a href="#cb583-10" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb583-11"><a href="#cb583-11" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb583-12"><a href="#cb583-12" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb583-13"><a href="#cb583-13" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownInput</span>{example.md}</span> -<span id="cb583-14"><a href="#cb583-14" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb586"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb586-1"><a href="#cb586-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb586-2"><a href="#cb586-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>{<span class="ex">markdown</span>}</span> +<span id="cb586-3"><a href="#cb586-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> +<span id="cb586-4"><a href="#cb586-4" aria-hidden="true" tabindex="-1"></a> renderers = {</span> +<span id="cb586-5"><a href="#cb586-5" aria-hidden="true" tabindex="-1"></a> softLineBreak = {<span class="co">%</span></span> +<span id="cb586-6"><a href="#cb586-6" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> +<span id="cb586-7"><a href="#cb586-7" aria-hidden="true" tabindex="-1"></a> <span class="fu">\emph</span>{(A soft line break)}<span class="co">%</span></span> +<span id="cb586-8"><a href="#cb586-8" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> +<span id="cb586-9"><a href="#cb586-9" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb586-10"><a href="#cb586-10" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb586-11"><a href="#cb586-11" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb586-12"><a href="#cb586-12" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb586-13"><a href="#cb586-13" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownInput</span>{example.md}</span> +<span id="cb586-14"><a href="#cb586-14" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Using a text editor, create a text document named <code>example.md</code> with the following content:</p> -<div class="sourceCode" id="cb584"><pre -class="sourceCode md"><code class="sourceCode markdown"><span id="cb584-1"><a href="#cb584-1" aria-hidden="true" tabindex="-1"></a>Hello world!</span> -<span id="cb584-2"><a href="#cb584-2" aria-hidden="true" tabindex="-1"></a>_Foo_ bar!</span></code></pre></div> +<div class="sourceCode" id="cb587"><pre +class="sourceCode md"><code class="sourceCode markdown"><span id="cb587-1"><a href="#cb587-1" aria-hidden="true" tabindex="-1"></a>Hello world!</span> +<span id="cb587-2"><a href="#cb587-2" aria-hidden="true" tabindex="-1"></a>_Foo_ bar!</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb585"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb585-1"><a href="#cb585-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb588"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb588-1"><a href="#cb588-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -10772,21 +10893,21 @@ contain the following text:</p> <p><em>(A soft line break)</em></p> <p><em>Foo</em> bar!</p> </blockquote> -<p>The <code>\markdownRendererHardLineBreak</code> macro represents a +<p>The <code>markdownRendererHardLineBreak</code> macro represents a hard line break. The macro receives no arguments.</p> <h5 class="unnumbered" id="plain-tex-example-36">Plain <span class="tex">T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb586"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb586-1"><a href="#cb586-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> -<span id="cb586-2"><a href="#cb586-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererHardLineBreak</span>{<span class="co">%</span></span> -<span id="cb586-3"><a href="#cb586-3" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> -<span id="cb586-4"><a href="#cb586-4" aria-hidden="true" tabindex="-1"></a> {<span class="fu">\it</span>(A hard line break)}<span class="co">%</span></span> -<span id="cb586-5"><a href="#cb586-5" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> -<span id="cb586-6"><a href="#cb586-6" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb586-7"><a href="#cb586-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownInput</span>{example.md}</span> -<span id="cb586-8"><a href="#cb586-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> +<div class="sourceCode" id="cb589"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb589-1"><a href="#cb589-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> +<span id="cb589-2"><a href="#cb589-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererHardLineBreak</span>{<span class="co">%</span></span> +<span id="cb589-3"><a href="#cb589-3" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> +<span id="cb589-4"><a href="#cb589-4" aria-hidden="true" tabindex="-1"></a> {<span class="fu">\it</span>(A hard line break)}<span class="co">%</span></span> +<span id="cb589-5"><a href="#cb589-5" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> +<span id="cb589-6"><a href="#cb589-6" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb589-7"><a href="#cb589-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownInput</span>{example.md}</span> +<span id="cb589-8"><a href="#cb589-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> <p>Using a text editor, create a text document named <code>example.md</code> with the following content. Note the two spaces at the end of the first line, which specify a hard line break. Due to @@ -10795,8 +10916,8 @@ processor, hard line breaks would be ignored if we typed them directly into the <code>document.tex</code> document.</p> <pre><code>Hello world! <br/>_Foo_ bar!</code></pre> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb587"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb587-1"><a href="#cb587-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb590"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb590-1"><a href="#cb590-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -10808,21 +10929,21 @@ contain the following text:</p> class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb588"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb588-1"><a href="#cb588-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb588-2"><a href="#cb588-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>{<span class="ex">markdown</span>}</span> -<span id="cb588-3"><a href="#cb588-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> -<span id="cb588-4"><a href="#cb588-4" aria-hidden="true" tabindex="-1"></a> renderers = {</span> -<span id="cb588-5"><a href="#cb588-5" aria-hidden="true" tabindex="-1"></a> hardLineBreak = {<span class="co">%</span></span> -<span id="cb588-6"><a href="#cb588-6" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> -<span id="cb588-7"><a href="#cb588-7" aria-hidden="true" tabindex="-1"></a> <span class="fu">\emph</span>{(A hard line break)}<span class="co">%</span></span> -<span id="cb588-8"><a href="#cb588-8" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> -<span id="cb588-9"><a href="#cb588-9" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb588-10"><a href="#cb588-10" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb588-11"><a href="#cb588-11" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb588-12"><a href="#cb588-12" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb588-13"><a href="#cb588-13" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownInput</span>{example.md}</span> -<span id="cb588-14"><a href="#cb588-14" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb591"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb591-1"><a href="#cb591-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb591-2"><a href="#cb591-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>{<span class="ex">markdown</span>}</span> +<span id="cb591-3"><a href="#cb591-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> +<span id="cb591-4"><a href="#cb591-4" aria-hidden="true" tabindex="-1"></a> renderers = {</span> +<span id="cb591-5"><a href="#cb591-5" aria-hidden="true" tabindex="-1"></a> hardLineBreak = {<span class="co">%</span></span> +<span id="cb591-6"><a href="#cb591-6" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> +<span id="cb591-7"><a href="#cb591-7" aria-hidden="true" tabindex="-1"></a> <span class="fu">\emph</span>{(A hard line break)}<span class="co">%</span></span> +<span id="cb591-8"><a href="#cb591-8" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> +<span id="cb591-9"><a href="#cb591-9" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb591-10"><a href="#cb591-10" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb591-11"><a href="#cb591-11" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb591-12"><a href="#cb591-12" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb591-13"><a href="#cb591-13" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownInput</span>{example.md}</span> +<span id="cb591-14"><a href="#cb591-14" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Using a text editor, create a text document named <code>example.md</code> with the following content. Note the two spaces at the end of the first line, which specify a hard line break. Due to @@ -10831,8 +10952,8 @@ processor, hard line breaks would be ignored if we typed them directly into the <code>document.tex</code> document.</p> <pre><code>Hello world! <br/>_Foo_ bar!</code></pre> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb589"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb589-1"><a href="#cb589-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb592"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb592-1"><a href="#cb592-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -10842,7 +10963,7 @@ contain the following text:</p> </blockquote> <h4 data-number="2.3.1.24" id="link-renderer"><span class="header-section-number">2.3.1.24</span> Link Renderer</h4> -<p>The <code>\markdownRendererLink</code> macro represents a hyperlink. +<p>The <code>markdownRendererLink</code> macro represents a hyperlink. It receives four arguments: the label, the fully escaped <abbr>uri</abbr> that can be directly typeset, the raw <abbr>uri</abbr> that can be used outside typesetting, and the title of the link.</p> @@ -10850,21 +10971,21 @@ that can be used outside typesetting, and the title of the link.</p> class="tex">T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb590"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb590-1"><a href="#cb590-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> -<span id="cb590-2"><a href="#cb590-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererLink</span>#1#2#3#4{<span class="co">%</span></span> -<span id="cb590-3"><a href="#cb590-3" aria-hidden="true" tabindex="-1"></a> #1 {<span class="fu">\tt</span>#2} titled {<span class="fu">\it</span>#4}<span class="co">%</span></span> -<span id="cb590-4"><a href="#cb590-4" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb590-5"><a href="#cb590-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> -<span id="cb590-6"><a href="#cb590-6" aria-hidden="true" tabindex="-1"></a>Please visit [the link][ctan].</span> -<span id="cb590-7"><a href="#cb590-7" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb590-8"><a href="#cb590-8" aria-hidden="true" tabindex="-1"></a> [ctan]: https://ctan.org/</span> -<span id="cb590-9"><a href="#cb590-9" aria-hidden="true" tabindex="-1"></a> (the Comprehensive TeX Archive Network)</span> -<span id="cb590-10"><a href="#cb590-10" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> -<span id="cb590-11"><a href="#cb590-11" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> +<div class="sourceCode" id="cb593"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb593-1"><a href="#cb593-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> +<span id="cb593-2"><a href="#cb593-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererLink</span>#1#2#3#4{<span class="co">%</span></span> +<span id="cb593-3"><a href="#cb593-3" aria-hidden="true" tabindex="-1"></a> #1 {<span class="fu">\tt</span>#2} titled {<span class="fu">\it</span>#4}<span class="co">%</span></span> +<span id="cb593-4"><a href="#cb593-4" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb593-5"><a href="#cb593-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> +<span id="cb593-6"><a href="#cb593-6" aria-hidden="true" tabindex="-1"></a>Please visit [the link][ctan].</span> +<span id="cb593-7"><a href="#cb593-7" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb593-8"><a href="#cb593-8" aria-hidden="true" tabindex="-1"></a> [ctan]: https://ctan.org/</span> +<span id="cb593-9"><a href="#cb593-9" aria-hidden="true" tabindex="-1"></a> (the Comprehensive TeX Archive Network)</span> +<span id="cb593-10"><a href="#cb593-10" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> +<span id="cb593-11"><a href="#cb593-11" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb591"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb591-1"><a href="#cb591-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb594"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb594-1"><a href="#cb594-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -10876,27 +10997,27 @@ Archive Network</em>.</p> class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb592"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb592-1"><a href="#cb592-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb592-2"><a href="#cb592-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>{<span class="ex">markdown</span>}</span> -<span id="cb592-3"><a href="#cb592-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> -<span id="cb592-4"><a href="#cb592-4" aria-hidden="true" tabindex="-1"></a> renderers = {</span> -<span id="cb592-5"><a href="#cb592-5" aria-hidden="true" tabindex="-1"></a> link = {<span class="co">%</span></span> -<span id="cb592-6"><a href="#cb592-6" aria-hidden="true" tabindex="-1"></a> #1 <span class="fu">\texttt</span>{#2} titled <span class="fu">\emph</span>{#4}<span class="co">%</span></span> -<span id="cb592-7"><a href="#cb592-7" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb592-8"><a href="#cb592-8" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb592-9"><a href="#cb592-9" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb592-10"><a href="#cb592-10" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb592-11"><a href="#cb592-11" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb592-12"><a href="#cb592-12" aria-hidden="true" tabindex="-1"></a>Please visit [the link][ctan].</span> -<span id="cb592-13"><a href="#cb592-13" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb592-14"><a href="#cb592-14" aria-hidden="true" tabindex="-1"></a> [ctan]: https://ctan.org/</span> -<span id="cb592-15"><a href="#cb592-15" aria-hidden="true" tabindex="-1"></a> (the Comprehensive TeX Archive Network)</span> -<span id="cb592-16"><a href="#cb592-16" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb592-17"><a href="#cb592-17" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb595"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb595-1"><a href="#cb595-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb595-2"><a href="#cb595-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>{<span class="ex">markdown</span>}</span> +<span id="cb595-3"><a href="#cb595-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> +<span id="cb595-4"><a href="#cb595-4" aria-hidden="true" tabindex="-1"></a> renderers = {</span> +<span id="cb595-5"><a href="#cb595-5" aria-hidden="true" tabindex="-1"></a> link = {<span class="co">%</span></span> +<span id="cb595-6"><a href="#cb595-6" aria-hidden="true" tabindex="-1"></a> #1 <span class="fu">\texttt</span>{#2} titled <span class="fu">\emph</span>{#4}<span class="co">%</span></span> +<span id="cb595-7"><a href="#cb595-7" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb595-8"><a href="#cb595-8" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb595-9"><a href="#cb595-9" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb595-10"><a href="#cb595-10" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb595-11"><a href="#cb595-11" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb595-12"><a href="#cb595-12" aria-hidden="true" tabindex="-1"></a>Please visit [the link][ctan].</span> +<span id="cb595-13"><a href="#cb595-13" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb595-14"><a href="#cb595-14" aria-hidden="true" tabindex="-1"></a> [ctan]: https://ctan.org/</span> +<span id="cb595-15"><a href="#cb595-15" aria-hidden="true" tabindex="-1"></a> (the Comprehensive TeX Archive Network)</span> +<span id="cb595-16"><a href="#cb595-16" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb595-17"><a href="#cb595-17" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb593"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb593-1"><a href="#cb593-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb596"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb596-1"><a href="#cb596-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -10908,22 +11029,22 @@ Archive Network</em>.</p> class="tex">T<sub>e</sub>X</span>t Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb594"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb594-1"><a href="#cb594-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> -<span id="cb594-2"><a href="#cb594-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererLink</span>#1#2#3#4{<span class="co">%</span></span> -<span id="cb594-3"><a href="#cb594-3" aria-hidden="true" tabindex="-1"></a> #1 {<span class="fu">\tt</span>#2} titled <span class="fu">\emph</span>{#4}<span class="co">%</span></span> -<span id="cb594-4"><a href="#cb594-4" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb594-5"><a href="#cb594-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> -<span id="cb594-6"><a href="#cb594-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> -<span id="cb594-7"><a href="#cb594-7" aria-hidden="true" tabindex="-1"></a>Please visit [the link][ctan].</span> -<span id="cb594-8"><a href="#cb594-8" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb594-9"><a href="#cb594-9" aria-hidden="true" tabindex="-1"></a> [ctan]: https://ctan.org/</span> -<span id="cb594-10"><a href="#cb594-10" aria-hidden="true" tabindex="-1"></a> (the Comprehensive TeX Archive Network)</span> -<span id="cb594-11"><a href="#cb594-11" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> -<span id="cb594-12"><a href="#cb594-12" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> +<div class="sourceCode" id="cb597"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb597-1"><a href="#cb597-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> +<span id="cb597-2"><a href="#cb597-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererLink</span>#1#2#3#4{<span class="co">%</span></span> +<span id="cb597-3"><a href="#cb597-3" aria-hidden="true" tabindex="-1"></a> #1 {<span class="fu">\tt</span>#2} titled <span class="fu">\emph</span>{#4}<span class="co">%</span></span> +<span id="cb597-4"><a href="#cb597-4" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb597-5"><a href="#cb597-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> +<span id="cb597-6"><a href="#cb597-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> +<span id="cb597-7"><a href="#cb597-7" aria-hidden="true" tabindex="-1"></a>Please visit [the link][ctan].</span> +<span id="cb597-8"><a href="#cb597-8" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb597-9"><a href="#cb597-9" aria-hidden="true" tabindex="-1"></a> [ctan]: https://ctan.org/</span> +<span id="cb597-10"><a href="#cb597-10" aria-hidden="true" tabindex="-1"></a> (the Comprehensive TeX Archive Network)</span> +<span id="cb597-11"><a href="#cb597-11" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> +<span id="cb597-12"><a href="#cb597-12" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb595"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb595-1"><a href="#cb595-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb598"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb598-1"><a href="#cb598-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -10935,35 +11056,35 @@ Archive Network</em>.</p> class="header-section-number">2.3.1.25</span> Link Attribute Context Renderers</h4> <p>The following macros are only produced, when the -<strong><code>linkAttributes</code></strong> option is enabled.</p> -<p>The <code>\markdownRendererLinkAttributeContextBegin</code> and -<code>\markdownRendererLinkAttributeContextEnd</code> macros represent +<code><strong>linkAttributes</strong></code> option is enabled.</p> +<p>The <code>markdownRendererLinkAttributeContextBegin</code> and +<code>markdownRendererLinkAttributeContextEnd</code> macros represent the beginning and the end of a context in which the attributes of a hyperlink apply. The macros receive no arguments.</p> <h5 class="unnumbered" id="latex-example-83"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb596"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb596-1"><a href="#cb596-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb596-2"><a href="#cb596-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[linkAttributes]{<span class="ex">markdown</span>}</span> -<span id="cb596-3"><a href="#cb596-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> -<span id="cb596-4"><a href="#cb596-4" aria-hidden="true" tabindex="-1"></a> renderers = {</span> -<span id="cb596-5"><a href="#cb596-5" aria-hidden="true" tabindex="-1"></a> linkAttributeContextBegin = {(},</span> -<span id="cb596-6"><a href="#cb596-6" aria-hidden="true" tabindex="-1"></a> link = {#1},</span> -<span id="cb596-7"><a href="#cb596-7" aria-hidden="true" tabindex="-1"></a> linkAttributeContextEnd = {)},</span> -<span id="cb596-8"><a href="#cb596-8" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb596-9"><a href="#cb596-9" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb596-10"><a href="#cb596-10" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb596-11"><a href="#cb596-11" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb596-12"><a href="#cb596-12" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb596-13"><a href="#cb596-13" aria-hidden="true" tabindex="-1"></a>foo [bar](#bar){key=value} baz</span> -<span id="cb596-14"><a href="#cb596-14" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb596-15"><a href="#cb596-15" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb596-16"><a href="#cb596-16" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb599"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb599-1"><a href="#cb599-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb599-2"><a href="#cb599-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[linkAttributes]{<span class="ex">markdown</span>}</span> +<span id="cb599-3"><a href="#cb599-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> +<span id="cb599-4"><a href="#cb599-4" aria-hidden="true" tabindex="-1"></a> renderers = {</span> +<span id="cb599-5"><a href="#cb599-5" aria-hidden="true" tabindex="-1"></a> linkAttributeContextBegin = {(},</span> +<span id="cb599-6"><a href="#cb599-6" aria-hidden="true" tabindex="-1"></a> link = {#1},</span> +<span id="cb599-7"><a href="#cb599-7" aria-hidden="true" tabindex="-1"></a> linkAttributeContextEnd = {)},</span> +<span id="cb599-8"><a href="#cb599-8" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb599-9"><a href="#cb599-9" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb599-10"><a href="#cb599-10" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb599-11"><a href="#cb599-11" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb599-12"><a href="#cb599-12" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb599-13"><a href="#cb599-13" aria-hidden="true" tabindex="-1"></a>foo [bar](#bar){key=value} baz</span> +<span id="cb599-14"><a href="#cb599-14" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb599-15"><a href="#cb599-15" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb599-16"><a href="#cb599-16" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb597"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb597-1"><a href="#cb597-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb600"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb600-1"><a href="#cb600-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -10972,33 +11093,33 @@ contain the following text:</p> <h4 data-number="2.3.1.26" id="marked-text-renderer"><span class="header-section-number">2.3.1.26</span> Marked Text Renderer</h4> <p>The following macro is only produced, when the -<strong><code>mark</code></strong> option is enabled.</p> -<p>The <code>\markdownRendererMark</code> macro represents a span of +<code><strong>mark</strong></code> option is enabled.</p> +<p>The <code>markdownRendererMark</code> macro represents a span of marked or highlighted text. The macro receives a single argument that corresponds to the marked text.</p> <h5 class="unnumbered" id="latex-example-84"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb598"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb598-1"><a href="#cb598-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb598-2"><a href="#cb598-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[mark]{<span class="ex">markdown</span>}</span> -<span id="cb598-3"><a href="#cb598-3" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>{<span class="ex">soul</span>}</span> -<span id="cb598-4"><a href="#cb598-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> -<span id="cb598-5"><a href="#cb598-5" aria-hidden="true" tabindex="-1"></a> renderers = {</span> -<span id="cb598-6"><a href="#cb598-6" aria-hidden="true" tabindex="-1"></a> mark = {<span class="fu">\hl</span>{#1}},</span> -<span id="cb598-7"><a href="#cb598-7" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb598-8"><a href="#cb598-8" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb598-9"><a href="#cb598-9" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb598-10"><a href="#cb598-10" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb598-11"><a href="#cb598-11" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb598-12"><a href="#cb598-12" aria-hidden="true" tabindex="-1"></a>This ==is highlighted text.==</span> -<span id="cb598-13"><a href="#cb598-13" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb598-14"><a href="#cb598-14" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb598-15"><a href="#cb598-15" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb601"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb601-1"><a href="#cb601-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb601-2"><a href="#cb601-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[mark]{<span class="ex">markdown</span>}</span> +<span id="cb601-3"><a href="#cb601-3" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>{<span class="ex">soul</span>}</span> +<span id="cb601-4"><a href="#cb601-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> +<span id="cb601-5"><a href="#cb601-5" aria-hidden="true" tabindex="-1"></a> renderers = {</span> +<span id="cb601-6"><a href="#cb601-6" aria-hidden="true" tabindex="-1"></a> mark = {<span class="fu">\hl</span>{#1}},</span> +<span id="cb601-7"><a href="#cb601-7" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb601-8"><a href="#cb601-8" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb601-9"><a href="#cb601-9" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb601-10"><a href="#cb601-10" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb601-11"><a href="#cb601-11" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb601-12"><a href="#cb601-12" aria-hidden="true" tabindex="-1"></a>This ==is highlighted text.==</span> +<span id="cb601-13"><a href="#cb601-13" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb601-14"><a href="#cb601-14" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb601-15"><a href="#cb601-15" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb599"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb599-1"><a href="#cb599-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb602"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb602-1"><a href="#cb602-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -11007,8 +11128,8 @@ contain the following text:</p> <h4 data-number="2.3.1.27" id="markdown-document-renderers"><span class="header-section-number">2.3.1.27</span> Markdown Document Renderers</h4> -<p>The <code>\markdownRendererDocumentBegin</code> and -<code>\markdownRendererDocumentEnd</code> macros represent the beginning +<p>The <code>markdownRendererDocumentBegin</code> and +<code>markdownRendererDocumentEnd</code> macros represent the beginning and the end of a <em>markdown</em> document. The macros receive no arguments.</p> <p>A <span class="tex">T<sub>e</sub>X</span> document may contain any @@ -11020,77 +11141,77 @@ account.</p> class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>nested.md</code> with the following content:</p> -<div class="sourceCode" id="cb600"><pre -class="sourceCode md"><code class="sourceCode markdown"><span id="cb600-1"><a href="#cb600-1" aria-hidden="true" tabindex="-1"></a>This is a *nested* markdown document.</span></code></pre></div> +<div class="sourceCode" id="cb603"><pre +class="sourceCode md"><code class="sourceCode markdown"><span id="cb603-1"><a href="#cb603-1" aria-hidden="true" tabindex="-1"></a>This is a *nested* markdown document.</span></code></pre></div> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb601"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb601-1"><a href="#cb601-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb601-2"><a href="#cb601-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[contentBlocks]{<span class="ex">markdown</span>}</span> -<span id="cb601-3"><a href="#cb601-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> -<span id="cb601-4"><a href="#cb601-4" aria-hidden="true" tabindex="-1"></a> renderers = {</span> -<span id="cb601-5"><a href="#cb601-5" aria-hidden="true" tabindex="-1"></a> contentBlock = {<span class="co">%</span></span> -<span id="cb601-6"><a href="#cb601-6" aria-hidden="true" tabindex="-1"></a> <span class="fu">\markdownInput</span>{#3}<span class="co">%</span></span> -<span id="cb601-7"><a href="#cb601-7" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb601-8"><a href="#cb601-8" aria-hidden="true" tabindex="-1"></a> documentBegin = {<span class="co">%</span></span> -<span id="cb601-9"><a href="#cb601-9" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> -<span id="cb601-10"><a href="#cb601-10" aria-hidden="true" tabindex="-1"></a> <span class="fu">\emph</span>{(The beginning of a document)}</span> -<span id="cb601-11"><a href="#cb601-11" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> -<span id="cb601-12"><a href="#cb601-12" aria-hidden="true" tabindex="-1"></a> <span class="fu">\begingroup</span></span> -<span id="cb601-13"><a href="#cb601-13" aria-hidden="true" tabindex="-1"></a> <span class="fu">\markdownSetup</span>{snippet=first-nesting-level}<span class="co">%</span></span> -<span id="cb601-14"><a href="#cb601-14" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb601-15"><a href="#cb601-15" aria-hidden="true" tabindex="-1"></a> documentEnd = {<span class="co">%</span></span> -<span id="cb601-16"><a href="#cb601-16" aria-hidden="true" tabindex="-1"></a> <span class="fu">\endgroup</span></span> -<span id="cb601-17"><a href="#cb601-17" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> -<span id="cb601-18"><a href="#cb601-18" aria-hidden="true" tabindex="-1"></a> <span class="fu">\emph</span>{(The end of a document)}</span> -<span id="cb601-19"><a href="#cb601-19" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> -<span id="cb601-20"><a href="#cb601-20" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb601-21"><a href="#cb601-21" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb601-22"><a href="#cb601-22" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb601-23"><a href="#cb601-23" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetupSnippet</span>{first-nesting-level}{</span> -<span id="cb601-24"><a href="#cb601-24" aria-hidden="true" tabindex="-1"></a> renderers = {</span> -<span id="cb601-25"><a href="#cb601-25" aria-hidden="true" tabindex="-1"></a> documentBegin = {</span> -<span id="cb601-26"><a href="#cb601-26" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> -<span id="cb601-27"><a href="#cb601-27" aria-hidden="true" tabindex="-1"></a> <span class="fu">\emph</span>{(The beginning of a nested document)}</span> -<span id="cb601-28"><a href="#cb601-28" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> -<span id="cb601-29"><a href="#cb601-29" aria-hidden="true" tabindex="-1"></a> <span class="fu">\begingroup</span></span> -<span id="cb601-30"><a href="#cb601-30" aria-hidden="true" tabindex="-1"></a> <span class="fu">\markdownSetup</span>{snippet=second-nesting-level-and-below}</span> -<span id="cb601-31"><a href="#cb601-31" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb601-32"><a href="#cb601-32" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb601-33"><a href="#cb601-33" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb601-34"><a href="#cb601-34" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetupSnippet</span>{second-nesting-level-and-below}{</span> -<span id="cb601-35"><a href="#cb601-35" aria-hidden="true" tabindex="-1"></a> renderers = {</span> -<span id="cb601-36"><a href="#cb601-36" aria-hidden="true" tabindex="-1"></a> documentBegin = {</span> -<span id="cb601-37"><a href="#cb601-37" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> -<span id="cb601-38"><a href="#cb601-38" aria-hidden="true" tabindex="-1"></a> <span class="fu">\emph</span>{(The beginning of a nested document)}</span> -<span id="cb601-39"><a href="#cb601-39" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> -<span id="cb601-40"><a href="#cb601-40" aria-hidden="true" tabindex="-1"></a> <span class="fu">\begingroup</span></span> -<span id="cb601-41"><a href="#cb601-41" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb601-42"><a href="#cb601-42" aria-hidden="true" tabindex="-1"></a> documentEnd = {</span> -<span id="cb601-43"><a href="#cb601-43" aria-hidden="true" tabindex="-1"></a> <span class="fu">\endgroup</span></span> -<span id="cb601-44"><a href="#cb601-44" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> -<span id="cb601-45"><a href="#cb601-45" aria-hidden="true" tabindex="-1"></a> <span class="fu">\emph</span>{(The end of a nested document)}</span> -<span id="cb601-46"><a href="#cb601-46" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> -<span id="cb601-47"><a href="#cb601-47" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb601-48"><a href="#cb601-48" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb601-49"><a href="#cb601-49" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb601-50"><a href="#cb601-50" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb601-51"><a href="#cb601-51" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb601-52"><a href="#cb601-52" aria-hidden="true" tabindex="-1"></a>Hello *world*!</span> -<span id="cb601-53"><a href="#cb601-53" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb601-54"><a href="#cb601-54" aria-hidden="true" tabindex="-1"></a>/nested.md</span> -<span id="cb601-55"><a href="#cb601-55" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb601-56"><a href="#cb601-56" aria-hidden="true" tabindex="-1"></a>_Foo_ bar!</span> -<span id="cb601-57"><a href="#cb601-57" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb601-58"><a href="#cb601-58" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb601-59"><a href="#cb601-59" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb601-60"><a href="#cb601-60" aria-hidden="true" tabindex="-1"></a>Bar baz!</span> -<span id="cb601-61"><a href="#cb601-61" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb601-62"><a href="#cb601-62" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb601-63"><a href="#cb601-63" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb604"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb604-1"><a href="#cb604-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb604-2"><a href="#cb604-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[contentBlocks]{<span class="ex">markdown</span>}</span> +<span id="cb604-3"><a href="#cb604-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> +<span id="cb604-4"><a href="#cb604-4" aria-hidden="true" tabindex="-1"></a> renderers = {</span> +<span id="cb604-5"><a href="#cb604-5" aria-hidden="true" tabindex="-1"></a> contentBlock = {<span class="co">%</span></span> +<span id="cb604-6"><a href="#cb604-6" aria-hidden="true" tabindex="-1"></a> <span class="fu">\markdownInput</span>{#3}<span class="co">%</span></span> +<span id="cb604-7"><a href="#cb604-7" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb604-8"><a href="#cb604-8" aria-hidden="true" tabindex="-1"></a> documentBegin = {<span class="co">%</span></span> +<span id="cb604-9"><a href="#cb604-9" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> +<span id="cb604-10"><a href="#cb604-10" aria-hidden="true" tabindex="-1"></a> <span class="fu">\emph</span>{(The beginning of a document)}</span> +<span id="cb604-11"><a href="#cb604-11" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> +<span id="cb604-12"><a href="#cb604-12" aria-hidden="true" tabindex="-1"></a> <span class="fu">\begingroup</span></span> +<span id="cb604-13"><a href="#cb604-13" aria-hidden="true" tabindex="-1"></a> <span class="fu">\markdownSetup</span>{snippet=first-nesting-level}<span class="co">%</span></span> +<span id="cb604-14"><a href="#cb604-14" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb604-15"><a href="#cb604-15" aria-hidden="true" tabindex="-1"></a> documentEnd = {<span class="co">%</span></span> +<span id="cb604-16"><a href="#cb604-16" aria-hidden="true" tabindex="-1"></a> <span class="fu">\endgroup</span></span> +<span id="cb604-17"><a href="#cb604-17" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> +<span id="cb604-18"><a href="#cb604-18" aria-hidden="true" tabindex="-1"></a> <span class="fu">\emph</span>{(The end of a document)}</span> +<span id="cb604-19"><a href="#cb604-19" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> +<span id="cb604-20"><a href="#cb604-20" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb604-21"><a href="#cb604-21" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb604-22"><a href="#cb604-22" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb604-23"><a href="#cb604-23" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetupSnippet</span>{first-nesting-level}{</span> +<span id="cb604-24"><a href="#cb604-24" aria-hidden="true" tabindex="-1"></a> renderers = {</span> +<span id="cb604-25"><a href="#cb604-25" aria-hidden="true" tabindex="-1"></a> documentBegin = {</span> +<span id="cb604-26"><a href="#cb604-26" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> +<span id="cb604-27"><a href="#cb604-27" aria-hidden="true" tabindex="-1"></a> <span class="fu">\emph</span>{(The beginning of a nested document)}</span> +<span id="cb604-28"><a href="#cb604-28" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> +<span id="cb604-29"><a href="#cb604-29" aria-hidden="true" tabindex="-1"></a> <span class="fu">\begingroup</span></span> +<span id="cb604-30"><a href="#cb604-30" aria-hidden="true" tabindex="-1"></a> <span class="fu">\markdownSetup</span>{snippet=second-nesting-level-and-below}</span> +<span id="cb604-31"><a href="#cb604-31" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb604-32"><a href="#cb604-32" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb604-33"><a href="#cb604-33" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb604-34"><a href="#cb604-34" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetupSnippet</span>{second-nesting-level-and-below}{</span> +<span id="cb604-35"><a href="#cb604-35" aria-hidden="true" tabindex="-1"></a> renderers = {</span> +<span id="cb604-36"><a href="#cb604-36" aria-hidden="true" tabindex="-1"></a> documentBegin = {</span> +<span id="cb604-37"><a href="#cb604-37" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> +<span id="cb604-38"><a href="#cb604-38" aria-hidden="true" tabindex="-1"></a> <span class="fu">\emph</span>{(The beginning of a nested document)}</span> +<span id="cb604-39"><a href="#cb604-39" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> +<span id="cb604-40"><a href="#cb604-40" aria-hidden="true" tabindex="-1"></a> <span class="fu">\begingroup</span></span> +<span id="cb604-41"><a href="#cb604-41" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb604-42"><a href="#cb604-42" aria-hidden="true" tabindex="-1"></a> documentEnd = {</span> +<span id="cb604-43"><a href="#cb604-43" aria-hidden="true" tabindex="-1"></a> <span class="fu">\endgroup</span></span> +<span id="cb604-44"><a href="#cb604-44" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> +<span id="cb604-45"><a href="#cb604-45" aria-hidden="true" tabindex="-1"></a> <span class="fu">\emph</span>{(The end of a nested document)}</span> +<span id="cb604-46"><a href="#cb604-46" aria-hidden="true" tabindex="-1"></a> <span class="fu">\par</span></span> +<span id="cb604-47"><a href="#cb604-47" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb604-48"><a href="#cb604-48" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb604-49"><a href="#cb604-49" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb604-50"><a href="#cb604-50" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb604-51"><a href="#cb604-51" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb604-52"><a href="#cb604-52" aria-hidden="true" tabindex="-1"></a>Hello *world*!</span> +<span id="cb604-53"><a href="#cb604-53" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb604-54"><a href="#cb604-54" aria-hidden="true" tabindex="-1"></a>/nested.md</span> +<span id="cb604-55"><a href="#cb604-55" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb604-56"><a href="#cb604-56" aria-hidden="true" tabindex="-1"></a>_Foo_ bar!</span> +<span id="cb604-57"><a href="#cb604-57" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb604-58"><a href="#cb604-58" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb604-59"><a href="#cb604-59" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb604-60"><a href="#cb604-60" aria-hidden="true" tabindex="-1"></a>Bar baz!</span> +<span id="cb604-61"><a href="#cb604-61" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb604-62"><a href="#cb604-62" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb604-63"><a href="#cb604-63" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb602"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb602-1"><a href="#cb602-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb605"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb605-1"><a href="#cb605-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -11108,48 +11229,48 @@ contain the following text:</p> <h4 data-number="2.3.1.28" id="non-breaking-space-renderer"><span class="header-section-number">2.3.1.28</span> Non-Breaking Space Renderer</h4> -<p>The <code>\markdownRendererNbsp</code> macro represents a -non-breaking space.</p> +<p>The <code>markdownRendererNbsp</code> macro represents a non-breaking +space.</p> <h5 class="unnumbered" id="latex-example-86"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.bib</code> with the following content:</p> -<div class="sourceCode" id="cb603"><pre -class="sourceCode bib"><code class="sourceCode bibtex"><span id="cb603-1"><a href="#cb603-1" aria-hidden="true" tabindex="-1"></a><span class="va">@book</span>{<span class="ot">knuth:tex</span>,</span> -<span id="cb603-2"><a href="#cb603-2" aria-hidden="true" tabindex="-1"></a> <span class="dt">author</span> = "<span class="st">Knuth, Donald Ervin</span>",</span> -<span id="cb603-3"><a href="#cb603-3" aria-hidden="true" tabindex="-1"></a> <span class="dt">title</span> = "<span class="st">The </span><span class="ch">\TeX</span><span class="st"> book, volume A of Computers and typesetting</span>",</span> -<span id="cb603-4"><a href="#cb603-4" aria-hidden="true" tabindex="-1"></a> <span class="dt">publisher</span> = "<span class="st">Addison-Wesley</span>",</span> -<span id="cb603-5"><a href="#cb603-5" aria-hidden="true" tabindex="-1"></a> <span class="dt">year</span> = "<span class="st">1984</span>"</span> -<span id="cb603-6"><a href="#cb603-6" aria-hidden="true" tabindex="-1"></a>}</span></code></pre></div> +<div class="sourceCode" id="cb606"><pre +class="sourceCode bib"><code class="sourceCode bibtex"><span id="cb606-1"><a href="#cb606-1" aria-hidden="true" tabindex="-1"></a><span class="va">@book</span>{<span class="ot">knuth:tex</span>,</span> +<span id="cb606-2"><a href="#cb606-2" aria-hidden="true" tabindex="-1"></a> <span class="dt">author</span> = "<span class="st">Knuth, Donald Ervin</span>",</span> +<span id="cb606-3"><a href="#cb606-3" aria-hidden="true" tabindex="-1"></a> <span class="dt">title</span> = "<span class="st">The </span><span class="ch">\TeX</span><span class="st"> book, volume A of Computers and typesetting</span>",</span> +<span id="cb606-4"><a href="#cb606-4" aria-hidden="true" tabindex="-1"></a> <span class="dt">publisher</span> = "<span class="st">Addison-Wesley</span>",</span> +<span id="cb606-5"><a href="#cb606-5" aria-hidden="true" tabindex="-1"></a> <span class="dt">year</span> = "<span class="st">1984</span>"</span> +<span id="cb606-6"><a href="#cb606-6" aria-hidden="true" tabindex="-1"></a>}</span></code></pre></div> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb604"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb604-1"><a href="#cb604-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb604-2"><a href="#cb604-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[</span> -<span id="cb604-3"><a href="#cb604-3" aria-hidden="true" tabindex="-1"></a> citations,</span> -<span id="cb604-4"><a href="#cb604-4" aria-hidden="true" tabindex="-1"></a> citationNbsps,</span> -<span id="cb604-5"><a href="#cb604-5" aria-hidden="true" tabindex="-1"></a>]{<span class="ex">markdown</span>}</span> -<span id="cb604-6"><a href="#cb604-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> -<span id="cb604-7"><a href="#cb604-7" aria-hidden="true" tabindex="-1"></a> renderers = {</span> -<span id="cb604-8"><a href="#cb604-8" aria-hidden="true" tabindex="-1"></a> nbsp = {<span class="ss">$</span><span class="sc">\cdot</span><span class="ss">$</span>},</span> -<span id="cb604-9"><a href="#cb604-9" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb604-10"><a href="#cb604-10" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb604-11"><a href="#cb604-11" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb604-12"><a href="#cb604-12" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb604-13"><a href="#cb604-13" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb604-14"><a href="#cb604-14" aria-hidden="true" tabindex="-1"></a>The TeXbook [@knuth:tex, p. 123 and 130] is good.</span> -<span id="cb604-15"><a href="#cb604-15" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb604-16"><a href="#cb604-16" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb604-17"><a href="#cb604-17" aria-hidden="true" tabindex="-1"></a><span class="bu">\bibliographystyle</span>{<span class="ex">plain</span>}</span> -<span id="cb604-18"><a href="#cb604-18" aria-hidden="true" tabindex="-1"></a><span class="bu">\bibliography</span>{<span class="ex">document.bib</span>}</span> -<span id="cb604-19"><a href="#cb604-19" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb604-20"><a href="#cb604-20" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb607"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb607-1"><a href="#cb607-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb607-2"><a href="#cb607-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[</span> +<span id="cb607-3"><a href="#cb607-3" aria-hidden="true" tabindex="-1"></a> citations,</span> +<span id="cb607-4"><a href="#cb607-4" aria-hidden="true" tabindex="-1"></a> citationNbsps,</span> +<span id="cb607-5"><a href="#cb607-5" aria-hidden="true" tabindex="-1"></a>]{<span class="ex">markdown</span>}</span> +<span id="cb607-6"><a href="#cb607-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> +<span id="cb607-7"><a href="#cb607-7" aria-hidden="true" tabindex="-1"></a> renderers = {</span> +<span id="cb607-8"><a href="#cb607-8" aria-hidden="true" tabindex="-1"></a> nbsp = {<span class="ss">$</span><span class="sc">\cdot</span><span class="ss">$</span>},</span> +<span id="cb607-9"><a href="#cb607-9" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb607-10"><a href="#cb607-10" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb607-11"><a href="#cb607-11" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb607-12"><a href="#cb607-12" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb607-13"><a href="#cb607-13" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb607-14"><a href="#cb607-14" aria-hidden="true" tabindex="-1"></a>The TeXbook [@knuth:tex, p. 123 and 130] is good.</span> +<span id="cb607-15"><a href="#cb607-15" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb607-16"><a href="#cb607-16" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb607-17"><a href="#cb607-17" aria-hidden="true" tabindex="-1"></a><span class="bu">\bibliographystyle</span>{<span class="ex">plain</span>}</span> +<span id="cb607-18"><a href="#cb607-18" aria-hidden="true" tabindex="-1"></a><span class="bu">\bibliography</span>{<span class="ex">document.bib</span>}</span> +<span id="cb607-19"><a href="#cb607-19" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb607-20"><a href="#cb607-20" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX and BibTeX from the terminal:</p> -<div class="sourceCode" id="cb605"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb605-1"><a href="#cb605-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span> -<span id="cb605-2"><a href="#cb605-2" aria-hidden="true" tabindex="-1"></a><span class="ex">bibtex</span> document.aux</span> -<span id="cb605-3"><a href="#cb605-3" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span> -<span id="cb605-4"><a href="#cb605-4" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb608"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb608-1"><a href="#cb608-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span> +<span id="cb608-2"><a href="#cb608-2" aria-hidden="true" tabindex="-1"></a><span class="ex">bibtex</span> document.aux</span> +<span id="cb608-3"><a href="#cb608-3" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span> +<span id="cb608-4"><a href="#cb608-4" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -11160,29 +11281,29 @@ typesetting.</em> Addison-Wesley, 1984.</p> </blockquote> <h4 data-number="2.3.1.29" id="note-renderer"><span class="header-section-number">2.3.1.29</span> Note Renderer</h4> -<p>The <code>\markdownRendererNote</code> macro represents a note. This +<p>The <code>markdownRendererNote</code> macro represents a note. This macro will only be produced, when the -<strong><code>notes</code></strong> option is enabled. The macro +<code><strong>notes</strong></code> option is enabled. The macro receives a single argument that corresponds to the note text.</p> <h5 class="unnumbered" id="plain-tex-example-38">Plain <span class="tex">T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb606"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb606-1"><a href="#cb606-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> -<span id="cb606-2"><a href="#cb606-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionNotes</span>{true}</span> -<span id="cb606-3"><a href="#cb606-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererNote</span>#1{ (and <span class="fu">\lowercase</span>{#1})}</span> -<span id="cb606-4"><a href="#cb606-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> -<span id="cb606-5"><a href="#cb606-5" aria-hidden="true" tabindex="-1"></a>This is some text[^1] and this is some other text[^2].</span> -<span id="cb606-6"><a href="#cb606-6" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb606-7"><a href="#cb606-7" aria-hidden="true" tabindex="-1"></a> [^1]: this is a note</span> -<span id="cb606-8"><a href="#cb606-8" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb606-9"><a href="#cb606-9" aria-hidden="true" tabindex="-1"></a> [^2]: this is some other note</span> -<span id="cb606-10"><a href="#cb606-10" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> -<span id="cb606-11"><a href="#cb606-11" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> +<div class="sourceCode" id="cb609"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb609-1"><a href="#cb609-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> +<span id="cb609-2"><a href="#cb609-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionNotes</span>{true}</span> +<span id="cb609-3"><a href="#cb609-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererNote</span>#1{ (and <span class="fu">\lowercase</span>{#1})}</span> +<span id="cb609-4"><a href="#cb609-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> +<span id="cb609-5"><a href="#cb609-5" aria-hidden="true" tabindex="-1"></a>This is some text[^1] and this is some other text[^2].</span> +<span id="cb609-6"><a href="#cb609-6" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb609-7"><a href="#cb609-7" aria-hidden="true" tabindex="-1"></a> [^1]: this is a note</span> +<span id="cb609-8"><a href="#cb609-8" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb609-9"><a href="#cb609-9" aria-hidden="true" tabindex="-1"></a> [^2]: this is some other note</span> +<span id="cb609-10"><a href="#cb609-10" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> +<span id="cb609-11"><a href="#cb609-11" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb607"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb607-1"><a href="#cb607-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb610"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb610-1"><a href="#cb610-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -11193,26 +11314,26 @@ contain the following text:</p> class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb608"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb608-1"><a href="#cb608-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb608-2"><a href="#cb608-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[notes]{<span class="ex">markdown</span>}</span> -<span id="cb608-3"><a href="#cb608-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> -<span id="cb608-4"><a href="#cb608-4" aria-hidden="true" tabindex="-1"></a> renderers = {</span> -<span id="cb608-5"><a href="#cb608-5" aria-hidden="true" tabindex="-1"></a> note = { (and <span class="fu">\MakeLowercase</span>{#1})},</span> -<span id="cb608-6"><a href="#cb608-6" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb608-7"><a href="#cb608-7" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb608-8"><a href="#cb608-8" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb608-9"><a href="#cb608-9" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb608-10"><a href="#cb608-10" aria-hidden="true" tabindex="-1"></a>This is some text[^1] and this is some other text[^2].</span> -<span id="cb608-11"><a href="#cb608-11" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb608-12"><a href="#cb608-12" aria-hidden="true" tabindex="-1"></a> [^1]: this is a note</span> -<span id="cb608-13"><a href="#cb608-13" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb608-14"><a href="#cb608-14" aria-hidden="true" tabindex="-1"></a> [^2]: this is some other note</span> -<span id="cb608-15"><a href="#cb608-15" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb608-16"><a href="#cb608-16" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb611"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb611-1"><a href="#cb611-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb611-2"><a href="#cb611-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[notes]{<span class="ex">markdown</span>}</span> +<span id="cb611-3"><a href="#cb611-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> +<span id="cb611-4"><a href="#cb611-4" aria-hidden="true" tabindex="-1"></a> renderers = {</span> +<span id="cb611-5"><a href="#cb611-5" aria-hidden="true" tabindex="-1"></a> note = { (and <span class="fu">\MakeLowercase</span>{#1})},</span> +<span id="cb611-6"><a href="#cb611-6" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb611-7"><a href="#cb611-7" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb611-8"><a href="#cb611-8" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb611-9"><a href="#cb611-9" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb611-10"><a href="#cb611-10" aria-hidden="true" tabindex="-1"></a>This is some text[^1] and this is some other text[^2].</span> +<span id="cb611-11"><a href="#cb611-11" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb611-12"><a href="#cb611-12" aria-hidden="true" tabindex="-1"></a> [^1]: this is a note</span> +<span id="cb611-13"><a href="#cb611-13" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb611-14"><a href="#cb611-14" aria-hidden="true" tabindex="-1"></a> [^2]: this is some other note</span> +<span id="cb611-15"><a href="#cb611-15" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb611-16"><a href="#cb611-16" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb609"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb609-1"><a href="#cb609-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb612"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb612-1"><a href="#cb612-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -11223,22 +11344,22 @@ contain the following text:</p> class="tex">T<sub>e</sub>X</span>t Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb610"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb610-1"><a href="#cb610-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> -<span id="cb610-2"><a href="#cb610-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span>[notes = yes]</span> -<span id="cb610-3"><a href="#cb610-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererNote</span>#1{ (and <span class="fu">\lowercase</span>{#1})}</span> -<span id="cb610-4"><a href="#cb610-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> -<span id="cb610-5"><a href="#cb610-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> -<span id="cb610-6"><a href="#cb610-6" aria-hidden="true" tabindex="-1"></a>This is some text[^1] and this is some other text[^2].</span> -<span id="cb610-7"><a href="#cb610-7" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb610-8"><a href="#cb610-8" aria-hidden="true" tabindex="-1"></a> [^1]: this is a note</span> -<span id="cb610-9"><a href="#cb610-9" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb610-10"><a href="#cb610-10" aria-hidden="true" tabindex="-1"></a> [^2]: this is some other note</span> -<span id="cb610-11"><a href="#cb610-11" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> -<span id="cb610-12"><a href="#cb610-12" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> +<div class="sourceCode" id="cb613"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb613-1"><a href="#cb613-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> +<span id="cb613-2"><a href="#cb613-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span>[notes = yes]</span> +<span id="cb613-3"><a href="#cb613-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererNote</span>#1{ (and <span class="fu">\lowercase</span>{#1})}</span> +<span id="cb613-4"><a href="#cb613-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> +<span id="cb613-5"><a href="#cb613-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> +<span id="cb613-6"><a href="#cb613-6" aria-hidden="true" tabindex="-1"></a>This is some text[^1] and this is some other text[^2].</span> +<span id="cb613-7"><a href="#cb613-7" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb613-8"><a href="#cb613-8" aria-hidden="true" tabindex="-1"></a> [^1]: this is a note</span> +<span id="cb613-9"><a href="#cb613-9" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb613-10"><a href="#cb613-10" aria-hidden="true" tabindex="-1"></a> [^2]: this is some other note</span> +<span id="cb613-11"><a href="#cb613-11" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> +<span id="cb613-12"><a href="#cb613-12" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb611"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb611-1"><a href="#cb611-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb614"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb614-1"><a href="#cb614-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -11248,156 +11369,156 @@ contain the following text:</p> <h4 data-number="2.3.1.30" id="ordered-list-renderers"><span class="header-section-number">2.3.1.30</span> Ordered List Renderers</h4> -<p>The <code>\markdownRendererOlBegin</code> macro represents the +<p>The <code>markdownRendererOlBegin</code> macro represents the beginning of an ordered list that contains an item with several paragraphs of text (the list is not tight). This macro will only be -produced, when the <strong><code>fancyLists</code></strong> option is +produced, when the <code><strong>fancyLists</strong></code> option is disabled. The macro receives no arguments.</p> -<p>The <code>\markdownRendererOlBeginTight</code> macro represents the +<p>The <code>markdownRendererOlBeginTight</code> macro represents the beginning of an ordered list that contains no item with several paragraphs of text (the list is tight). This macro will only be -produced, when the <strong><code>tightLists</code></strong> option is -enabled and the <strong><code>fancyLists</code></strong> option is +produced, when the <code><strong>tightLists</strong></code> option is +enabled and the <code><strong>fancyLists</strong></code> option is disabled. The macro receives no arguments.</p> -<p>The <code>\markdownRendererFancyOlBegin</code> macro represents the +<p>The <code>markdownRendererFancyOlBegin</code> macro represents the beginning of a fancy ordered list that contains an item with several paragraphs of text (the list is not tight). This macro will only be -produced, when the <strong><code>fancyLists</code></strong> option is +produced, when the <code><strong>fancyLists</strong></code> option is enabled. The macro receives two arguments: the style of the list item labels (<code>Decimal</code>, <code>LowerRoman</code>, <code>UpperRoman</code>, <code>LowerAlpha</code>, and <code>UpperAlpha</code>), and the style of delimiters between list item labels and texts (<code>Default</code>, <code>OneParen</code>, and <code>Period</code>).</p> -<p>The <code>\markdownRendererFancyOlBeginTight</code> macro represents +<p>The <code>markdownRendererFancyOlBeginTight</code> macro represents the beginning of a fancy ordered list that contains no item with several paragraphs of text (the list is tight). This macro will only be -produced, when the <strong><code>fancyLists</code></strong> and -<strong><code>tightLists</code></strong> options are enabled. The macro +produced, when the <code><strong>fancyLists</strong></code> and +<code><strong>tightLists</strong></code> options are enabled. The macro receives two arguments: the style of the list item labels, and the style of delimiters between list item labels and texts. See the -<code>\markdownRendererFancyOlBegin</code> macro for the valid style +<code>markdownRendererFancyOlBegin</code> macro for the valid style values.</p> -<p>The <code>\markdownRendererOlItem</code> macro represents an item in +<p>The <code>markdownRendererOlItem</code> macro represents an item in an ordered list. This macro will only be produced, when the -<strong><code>startNumber</code></strong> option is disabled and the -<strong><code>fancyLists</code></strong> option is disabled. The macro +<code><strong>startNumber</strong></code> option is disabled and the +<code><strong>fancyLists</strong></code> option is disabled. The macro receives no arguments.</p> -<p>The <code>\markdownRendererOlItemEnd</code> macro represents the end +<p>The <code>markdownRendererOlItemEnd</code> macro represents the end of an item in an ordered list. This macro will only be produced, when -the <strong><code>fancyLists</code></strong> option is disabled. The +the <code><strong>fancyLists</strong></code> option is disabled. The macro receives no arguments.</p> -<p>The <code>\markdownRendererOlItemWithNumber</code> macro represents -an item in an ordered list. This macro will only be produced, when the -<strong><code>startNumber</code></strong> option is enabled and the -<strong><code>fancyLists</code></strong> option is disabled. The macro +<p>The <code>markdownRendererOlItemWithNumber</code> macro represents an +item in an ordered list. This macro will only be produced, when the +<code><strong>startNumber</strong></code> option is enabled and the +<code><strong>fancyLists</strong></code> option is disabled. The macro receives a single numeric argument that corresponds to the item number.</p> -<p>The <code>\markdownRendererFancyOlItem</code> macro represents an -item in a fancy ordered list. This macro will only be produced, when the -<strong><code>startNumber</code></strong> option is disabled and the -<strong><code>fancyLists</code></strong> option is enabled. The macro +<p>The <code>markdownRendererFancyOlItem</code> macro represents an item +in a fancy ordered list. This macro will only be produced, when the +<code><strong>startNumber</strong></code> option is disabled and the +<code><strong>fancyLists</strong></code> option is enabled. The macro receives no arguments.</p> -<p>The <code>\markdownRendererFancyOlItemEnd</code> macro represents the +<p>The <code>markdownRendererFancyOlItemEnd</code> macro represents the end of an item in a fancy ordered list. This macro will only be -produced, when the <strong><code>fancyLists</code></strong> option is +produced, when the <code><strong>fancyLists</strong></code> option is enabled. The macro receives no arguments.</p> -<p>The <code>\markdownRendererFancyOlItemWithNumber</code> macro +<p>The <code>markdownRendererFancyOlItemWithNumber</code> macro represents an item in a fancy ordered list. This macro will only be -produced, when the <strong><code>startNumber</code></strong> and -<strong><code>fancyLists</code></strong> options are enabled. The macro +produced, when the <code><strong>startNumber</strong></code> and +<code><strong>fancyLists</strong></code> options are enabled. The macro receives a single numeric argument that corresponds to the item number.</p> -<p>The <code>\markdownRendererOlEnd</code> macro represents the end of -an ordered list that contains an item with several paragraphs of text -(the list is not tight). This macro will only be produced, when the -<strong><code>fancyLists</code></strong> option is disabled. The macro +<p>The <code>markdownRendererOlEnd</code> macro represents the end of an +ordered list that contains an item with several paragraphs of text (the +list is not tight). This macro will only be produced, when the +<code><strong>fancyLists</strong></code> option is disabled. The macro receives no arguments.</p> -<p>The <code>\markdownRendererOlEndTight</code> macro represents the end +<p>The <code>markdownRendererOlEndTight</code> macro represents the end of an ordered list that contains no item with several paragraphs of text (the list is tight). This macro will only be produced, when the -<strong><code>tightLists</code></strong> option is enabled and the -<strong><code>fancyLists</code></strong> option is disabled. The macro +<code><strong>tightLists</strong></code> option is enabled and the +<code><strong>fancyLists</strong></code> option is disabled. The macro receives no arguments.</p> -<p>The <code>\markdownRendererFancyOlEnd</code> macro represents the end +<p>The <code>markdownRendererFancyOlEnd</code> macro represents the end of a fancy ordered list that contains an item with several paragraphs of text (the list is not tight). This macro will only be produced, when the -<strong><code>fancyLists</code></strong> option is enabled. The macro +<code><strong>fancyLists</strong></code> option is enabled. The macro receives no arguments.</p> -<p>The <code>\markdownRendererFancyOlEndTight</code> macro represents -the end of a fancy ordered list that contains no item with several +<p>The <code>markdownRendererFancyOlEndTight</code> macro represents the +end of a fancy ordered list that contains no item with several paragraphs of text (the list is tight). This macro will only be -produced, when the <strong><code>fancyLists</code></strong> and -<strong><code>tightLists</code></strong> options are enabled. The macro +produced, when the <code><strong>fancyLists</strong></code> and +<code><strong>tightLists</strong></code> options are enabled. The macro receives no arguments.</p> <h5 class="unnumbered" id="plain-tex-example-39">Plain <span class="tex">T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb612"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb612-1"><a href="#cb612-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> -<span id="cb612-2"><a href="#cb612-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionTightLists</span>{true}</span> -<span id="cb612-3"><a href="#cb612-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionStartNumber</span>{true}</span> -<span id="cb612-4"><a href="#cb612-4" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb612-5"><a href="#cb612-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererInterblockSeparator</span>{}</span> -<span id="cb612-6"><a href="#cb612-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererOlBeginTight</span>{ (}</span> -<span id="cb612-7"><a href="#cb612-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererOlItemWithNumber</span>#1{<span class="co">%</span></span> -<span id="cb612-8"><a href="#cb612-8" aria-hidden="true" tabindex="-1"></a> <span class="fu">\ifnum</span> #1=1<span class="fu">\relax</span></span> -<span id="cb612-9"><a href="#cb612-9" aria-hidden="true" tabindex="-1"></a> the first</span> -<span id="cb612-10"><a href="#cb612-10" aria-hidden="true" tabindex="-1"></a> <span class="fu">\else</span></span> -<span id="cb612-11"><a href="#cb612-11" aria-hidden="true" tabindex="-1"></a> <span class="fu">\ifnum</span> #1=2<span class="fu">\relax</span></span> -<span id="cb612-12"><a href="#cb612-12" aria-hidden="true" tabindex="-1"></a> , the second</span> -<span id="cb612-13"><a href="#cb612-13" aria-hidden="true" tabindex="-1"></a> <span class="fu">\else</span></span> -<span id="cb612-14"><a href="#cb612-14" aria-hidden="true" tabindex="-1"></a> , and the third</span> -<span id="cb612-15"><a href="#cb612-15" aria-hidden="true" tabindex="-1"></a> <span class="fu">\fi</span></span> -<span id="cb612-16"><a href="#cb612-16" aria-hidden="true" tabindex="-1"></a> <span class="fu">\fi</span></span> -<span id="cb612-17"><a href="#cb612-17" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb612-18"><a href="#cb612-18" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererOlItemEnd</span>{}</span> -<span id="cb612-19"><a href="#cb612-19" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererOlEndTight</span>{).}</span> -<span id="cb612-20"><a href="#cb612-20" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb612-21"><a href="#cb612-21" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> -<span id="cb612-22"><a href="#cb612-22" aria-hidden="true" tabindex="-1"></a>This is a tight list</span> -<span id="cb612-23"><a href="#cb612-23" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb612-24"><a href="#cb612-24" aria-hidden="true" tabindex="-1"></a>1. item</span> -<span id="cb612-25"><a href="#cb612-25" aria-hidden="true" tabindex="-1"></a>2. item</span> -<span id="cb612-26"><a href="#cb612-26" aria-hidden="true" tabindex="-1"></a>3. item</span> -<span id="cb612-27"><a href="#cb612-27" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> -<span id="cb612-28"><a href="#cb612-28" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb612-29"><a href="#cb612-29" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="co">%</span></span> -<span id="cb612-30"><a href="#cb612-30" aria-hidden="true" tabindex="-1"></a> :<span class="fu">\par</span></span> -<span id="cb612-31"><a href="#cb612-31" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="fu">\par</span>}<span class="co">%</span></span> -<span id="cb612-32"><a href="#cb612-32" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb612-33"><a href="#cb612-33" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererOlBegin</span>{}</span> -<span id="cb612-34"><a href="#cb612-34" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererOlItemWithNumber</span>#1{<span class="co">%</span></span> -<span id="cb612-35"><a href="#cb612-35" aria-hidden="true" tabindex="-1"></a> #1.<span class="fu">\kern</span> 0.5em<span class="co">%</span></span> -<span id="cb612-36"><a href="#cb612-36" aria-hidden="true" tabindex="-1"></a> This is the</span> -<span id="cb612-37"><a href="#cb612-37" aria-hidden="true" tabindex="-1"></a> <span class="fu">\ifnum</span> #1=1<span class="fu">\relax</span></span> -<span id="cb612-38"><a href="#cb612-38" aria-hidden="true" tabindex="-1"></a> first</span> -<span id="cb612-39"><a href="#cb612-39" aria-hidden="true" tabindex="-1"></a> <span class="fu">\else</span></span> -<span id="cb612-40"><a href="#cb612-40" aria-hidden="true" tabindex="-1"></a> <span class="fu">\ifnum</span> #1=2<span class="fu">\relax</span></span> -<span id="cb612-41"><a href="#cb612-41" aria-hidden="true" tabindex="-1"></a> second</span> -<span id="cb612-42"><a href="#cb612-42" aria-hidden="true" tabindex="-1"></a> <span class="fu">\else</span></span> -<span id="cb612-43"><a href="#cb612-43" aria-hidden="true" tabindex="-1"></a> third</span> -<span id="cb612-44"><a href="#cb612-44" aria-hidden="true" tabindex="-1"></a> <span class="fu">\fi</span></span> -<span id="cb612-45"><a href="#cb612-45" aria-hidden="true" tabindex="-1"></a> <span class="fu">\fi</span></span> -<span id="cb612-46"><a href="#cb612-46" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb612-47"><a href="#cb612-47" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererOlItemEnd</span>{.<span class="fu">\par</span>}</span> -<span id="cb612-48"><a href="#cb612-48" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererOlEnd</span>{}</span> -<span id="cb612-49"><a href="#cb612-49" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb612-50"><a href="#cb612-50" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> -<span id="cb612-51"><a href="#cb612-51" aria-hidden="true" tabindex="-1"></a>This is a loose list</span> -<span id="cb612-52"><a href="#cb612-52" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb612-53"><a href="#cb612-53" aria-hidden="true" tabindex="-1"></a>1. item</span> -<span id="cb612-54"><a href="#cb612-54" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb612-55"><a href="#cb612-55" aria-hidden="true" tabindex="-1"></a>2. item</span> -<span id="cb612-56"><a href="#cb612-56" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb612-57"><a href="#cb612-57" aria-hidden="true" tabindex="-1"></a>3. item</span> -<span id="cb612-58"><a href="#cb612-58" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> -<span id="cb612-59"><a href="#cb612-59" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb612-60"><a href="#cb612-60" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> +<div class="sourceCode" id="cb615"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb615-1"><a href="#cb615-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> +<span id="cb615-2"><a href="#cb615-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionTightLists</span>{true}</span> +<span id="cb615-3"><a href="#cb615-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionStartNumber</span>{true}</span> +<span id="cb615-4"><a href="#cb615-4" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb615-5"><a href="#cb615-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererInterblockSeparator</span>{}</span> +<span id="cb615-6"><a href="#cb615-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererOlBeginTight</span>{ (}</span> +<span id="cb615-7"><a href="#cb615-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererOlItemWithNumber</span>#1{<span class="co">%</span></span> +<span id="cb615-8"><a href="#cb615-8" aria-hidden="true" tabindex="-1"></a> <span class="fu">\ifnum</span> #1=1<span class="fu">\relax</span></span> +<span id="cb615-9"><a href="#cb615-9" aria-hidden="true" tabindex="-1"></a> the first</span> +<span id="cb615-10"><a href="#cb615-10" aria-hidden="true" tabindex="-1"></a> <span class="fu">\else</span></span> +<span id="cb615-11"><a href="#cb615-11" aria-hidden="true" tabindex="-1"></a> <span class="fu">\ifnum</span> #1=2<span class="fu">\relax</span></span> +<span id="cb615-12"><a href="#cb615-12" aria-hidden="true" tabindex="-1"></a> , the second</span> +<span id="cb615-13"><a href="#cb615-13" aria-hidden="true" tabindex="-1"></a> <span class="fu">\else</span></span> +<span id="cb615-14"><a href="#cb615-14" aria-hidden="true" tabindex="-1"></a> , and the third</span> +<span id="cb615-15"><a href="#cb615-15" aria-hidden="true" tabindex="-1"></a> <span class="fu">\fi</span></span> +<span id="cb615-16"><a href="#cb615-16" aria-hidden="true" tabindex="-1"></a> <span class="fu">\fi</span></span> +<span id="cb615-17"><a href="#cb615-17" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb615-18"><a href="#cb615-18" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererOlItemEnd</span>{}</span> +<span id="cb615-19"><a href="#cb615-19" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererOlEndTight</span>{).}</span> +<span id="cb615-20"><a href="#cb615-20" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb615-21"><a href="#cb615-21" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> +<span id="cb615-22"><a href="#cb615-22" aria-hidden="true" tabindex="-1"></a>This is a tight list</span> +<span id="cb615-23"><a href="#cb615-23" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb615-24"><a href="#cb615-24" aria-hidden="true" tabindex="-1"></a>1. item</span> +<span id="cb615-25"><a href="#cb615-25" aria-hidden="true" tabindex="-1"></a>2. item</span> +<span id="cb615-26"><a href="#cb615-26" aria-hidden="true" tabindex="-1"></a>3. item</span> +<span id="cb615-27"><a href="#cb615-27" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> +<span id="cb615-28"><a href="#cb615-28" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb615-29"><a href="#cb615-29" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="co">%</span></span> +<span id="cb615-30"><a href="#cb615-30" aria-hidden="true" tabindex="-1"></a> :<span class="fu">\par</span></span> +<span id="cb615-31"><a href="#cb615-31" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="fu">\par</span>}<span class="co">%</span></span> +<span id="cb615-32"><a href="#cb615-32" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb615-33"><a href="#cb615-33" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererOlBegin</span>{}</span> +<span id="cb615-34"><a href="#cb615-34" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererOlItemWithNumber</span>#1{<span class="co">%</span></span> +<span id="cb615-35"><a href="#cb615-35" aria-hidden="true" tabindex="-1"></a> #1.<span class="fu">\kern</span> 0.5em<span class="co">%</span></span> +<span id="cb615-36"><a href="#cb615-36" aria-hidden="true" tabindex="-1"></a> This is the</span> +<span id="cb615-37"><a href="#cb615-37" aria-hidden="true" tabindex="-1"></a> <span class="fu">\ifnum</span> #1=1<span class="fu">\relax</span></span> +<span id="cb615-38"><a href="#cb615-38" aria-hidden="true" tabindex="-1"></a> first</span> +<span id="cb615-39"><a href="#cb615-39" aria-hidden="true" tabindex="-1"></a> <span class="fu">\else</span></span> +<span id="cb615-40"><a href="#cb615-40" aria-hidden="true" tabindex="-1"></a> <span class="fu">\ifnum</span> #1=2<span class="fu">\relax</span></span> +<span id="cb615-41"><a href="#cb615-41" aria-hidden="true" tabindex="-1"></a> second</span> +<span id="cb615-42"><a href="#cb615-42" aria-hidden="true" tabindex="-1"></a> <span class="fu">\else</span></span> +<span id="cb615-43"><a href="#cb615-43" aria-hidden="true" tabindex="-1"></a> third</span> +<span id="cb615-44"><a href="#cb615-44" aria-hidden="true" tabindex="-1"></a> <span class="fu">\fi</span></span> +<span id="cb615-45"><a href="#cb615-45" aria-hidden="true" tabindex="-1"></a> <span class="fu">\fi</span></span> +<span id="cb615-46"><a href="#cb615-46" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb615-47"><a href="#cb615-47" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererOlItemEnd</span>{.<span class="fu">\par</span>}</span> +<span id="cb615-48"><a href="#cb615-48" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererOlEnd</span>{}</span> +<span id="cb615-49"><a href="#cb615-49" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb615-50"><a href="#cb615-50" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> +<span id="cb615-51"><a href="#cb615-51" aria-hidden="true" tabindex="-1"></a>This is a loose list</span> +<span id="cb615-52"><a href="#cb615-52" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb615-53"><a href="#cb615-53" aria-hidden="true" tabindex="-1"></a>1. item</span> +<span id="cb615-54"><a href="#cb615-54" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb615-55"><a href="#cb615-55" aria-hidden="true" tabindex="-1"></a>2. item</span> +<span id="cb615-56"><a href="#cb615-56" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb615-57"><a href="#cb615-57" aria-hidden="true" tabindex="-1"></a>3. item</span> +<span id="cb615-58"><a href="#cb615-58" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> +<span id="cb615-59"><a href="#cb615-59" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb615-60"><a href="#cb615-60" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb613"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb613-1"><a href="#cb613-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb616"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb616-1"><a href="#cb616-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -11414,73 +11535,73 @@ item).</p> class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb614"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb614-1"><a href="#cb614-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb614-2"><a href="#cb614-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[tightLists, startNumber]{<span class="ex">markdown</span>}</span> -<span id="cb614-3"><a href="#cb614-3" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb614-4"><a href="#cb614-4" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb614-5"><a href="#cb614-5" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}[</span> -<span id="cb614-6"><a href="#cb614-6" aria-hidden="true" tabindex="-1"></a> renderers = {</span> -<span id="cb614-7"><a href="#cb614-7" aria-hidden="true" tabindex="-1"></a> interblockSeparator = {},</span> -<span id="cb614-8"><a href="#cb614-8" aria-hidden="true" tabindex="-1"></a> olBeginTight = { (},</span> -<span id="cb614-9"><a href="#cb614-9" aria-hidden="true" tabindex="-1"></a> olItemWithNumber = {<span class="co">%</span></span> -<span id="cb614-10"><a href="#cb614-10" aria-hidden="true" tabindex="-1"></a> <span class="fu">\ifnum</span> #1=1<span class="fu">\relax</span></span> -<span id="cb614-11"><a href="#cb614-11" aria-hidden="true" tabindex="-1"></a> the first</span> -<span id="cb614-12"><a href="#cb614-12" aria-hidden="true" tabindex="-1"></a> <span class="fu">\else</span></span> -<span id="cb614-13"><a href="#cb614-13" aria-hidden="true" tabindex="-1"></a> <span class="fu">\ifnum</span> #1=2<span class="fu">\relax</span></span> -<span id="cb614-14"><a href="#cb614-14" aria-hidden="true" tabindex="-1"></a> , the second</span> -<span id="cb614-15"><a href="#cb614-15" aria-hidden="true" tabindex="-1"></a> <span class="fu">\else</span></span> -<span id="cb614-16"><a href="#cb614-16" aria-hidden="true" tabindex="-1"></a> , and the third</span> -<span id="cb614-17"><a href="#cb614-17" aria-hidden="true" tabindex="-1"></a> <span class="fu">\fi</span></span> -<span id="cb614-18"><a href="#cb614-18" aria-hidden="true" tabindex="-1"></a> <span class="fu">\fi</span></span> -<span id="cb614-19"><a href="#cb614-19" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb614-20"><a href="#cb614-20" aria-hidden="true" tabindex="-1"></a> olItemEnd = {},</span> -<span id="cb614-21"><a href="#cb614-21" aria-hidden="true" tabindex="-1"></a> olEndTight = {).},</span> -<span id="cb614-22"><a href="#cb614-22" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb614-23"><a href="#cb614-23" aria-hidden="true" tabindex="-1"></a>]</span> -<span id="cb614-24"><a href="#cb614-24" aria-hidden="true" tabindex="-1"></a>This is a tight list</span> -<span id="cb614-25"><a href="#cb614-25" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb614-26"><a href="#cb614-26" aria-hidden="true" tabindex="-1"></a>1. item</span> -<span id="cb614-27"><a href="#cb614-27" aria-hidden="true" tabindex="-1"></a>2. item</span> -<span id="cb614-28"><a href="#cb614-28" aria-hidden="true" tabindex="-1"></a>3. item</span> -<span id="cb614-29"><a href="#cb614-29" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb614-30"><a href="#cb614-30" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb614-31"><a href="#cb614-31" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}[</span> -<span id="cb614-32"><a href="#cb614-32" aria-hidden="true" tabindex="-1"></a> renderers = {</span> -<span id="cb614-33"><a href="#cb614-33" aria-hidden="true" tabindex="-1"></a> interblockSeparator = {<span class="co">%</span></span> -<span id="cb614-34"><a href="#cb614-34" aria-hidden="true" tabindex="-1"></a> :<span class="fu">\par</span></span> -<span id="cb614-35"><a href="#cb614-35" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="fu">\par</span>}<span class="co">%</span></span> -<span id="cb614-36"><a href="#cb614-36" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb614-37"><a href="#cb614-37" aria-hidden="true" tabindex="-1"></a> olBeginTight = {<span class="kw">\begin</span>{<span class="ex">enumerate</span>}},</span> -<span id="cb614-38"><a href="#cb614-38" aria-hidden="true" tabindex="-1"></a> olItemWithNumber = {<span class="co">%</span></span> -<span id="cb614-39"><a href="#cb614-39" aria-hidden="true" tabindex="-1"></a> <span class="fu">\item</span> This is the</span> -<span id="cb614-40"><a href="#cb614-40" aria-hidden="true" tabindex="-1"></a> <span class="fu">\ifnum</span> #1=1<span class="fu">\relax</span></span> -<span id="cb614-41"><a href="#cb614-41" aria-hidden="true" tabindex="-1"></a> first</span> -<span id="cb614-42"><a href="#cb614-42" aria-hidden="true" tabindex="-1"></a> <span class="fu">\else</span></span> -<span id="cb614-43"><a href="#cb614-43" aria-hidden="true" tabindex="-1"></a> <span class="fu">\ifnum</span> #1=2<span class="fu">\relax</span></span> -<span id="cb614-44"><a href="#cb614-44" aria-hidden="true" tabindex="-1"></a> second</span> -<span id="cb614-45"><a href="#cb614-45" aria-hidden="true" tabindex="-1"></a> <span class="fu">\else</span></span> -<span id="cb614-46"><a href="#cb614-46" aria-hidden="true" tabindex="-1"></a> third</span> -<span id="cb614-47"><a href="#cb614-47" aria-hidden="true" tabindex="-1"></a> <span class="fu">\fi</span></span> -<span id="cb614-48"><a href="#cb614-48" aria-hidden="true" tabindex="-1"></a> <span class="fu">\fi</span></span> -<span id="cb614-49"><a href="#cb614-49" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb614-50"><a href="#cb614-50" aria-hidden="true" tabindex="-1"></a> olItemEnd = {.},</span> -<span id="cb614-51"><a href="#cb614-51" aria-hidden="true" tabindex="-1"></a> olEnd = {<span class="kw">\end</span>{<span class="ex">enumerate</span>}},</span> -<span id="cb614-52"><a href="#cb614-52" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb614-53"><a href="#cb614-53" aria-hidden="true" tabindex="-1"></a>]</span> -<span id="cb614-54"><a href="#cb614-54" aria-hidden="true" tabindex="-1"></a>This is a loose list</span> -<span id="cb614-55"><a href="#cb614-55" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb614-56"><a href="#cb614-56" aria-hidden="true" tabindex="-1"></a>1. item</span> -<span id="cb614-57"><a href="#cb614-57" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb614-58"><a href="#cb614-58" aria-hidden="true" tabindex="-1"></a>2. item</span> -<span id="cb614-59"><a href="#cb614-59" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb614-60"><a href="#cb614-60" aria-hidden="true" tabindex="-1"></a>3. item</span> -<span id="cb614-61"><a href="#cb614-61" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb614-62"><a href="#cb614-62" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb614-63"><a href="#cb614-63" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb617"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb617-1"><a href="#cb617-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb617-2"><a href="#cb617-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[tightLists, startNumber]{<span class="ex">markdown</span>}</span> +<span id="cb617-3"><a href="#cb617-3" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb617-4"><a href="#cb617-4" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb617-5"><a href="#cb617-5" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}[</span> +<span id="cb617-6"><a href="#cb617-6" aria-hidden="true" tabindex="-1"></a> renderers = {</span> +<span id="cb617-7"><a href="#cb617-7" aria-hidden="true" tabindex="-1"></a> interblockSeparator = {},</span> +<span id="cb617-8"><a href="#cb617-8" aria-hidden="true" tabindex="-1"></a> olBeginTight = { (},</span> +<span id="cb617-9"><a href="#cb617-9" aria-hidden="true" tabindex="-1"></a> olItemWithNumber = {<span class="co">%</span></span> +<span id="cb617-10"><a href="#cb617-10" aria-hidden="true" tabindex="-1"></a> <span class="fu">\ifnum</span> #1=1<span class="fu">\relax</span></span> +<span id="cb617-11"><a href="#cb617-11" aria-hidden="true" tabindex="-1"></a> the first</span> +<span id="cb617-12"><a href="#cb617-12" aria-hidden="true" tabindex="-1"></a> <span class="fu">\else</span></span> +<span id="cb617-13"><a href="#cb617-13" aria-hidden="true" tabindex="-1"></a> <span class="fu">\ifnum</span> #1=2<span class="fu">\relax</span></span> +<span id="cb617-14"><a href="#cb617-14" aria-hidden="true" tabindex="-1"></a> , the second</span> +<span id="cb617-15"><a href="#cb617-15" aria-hidden="true" tabindex="-1"></a> <span class="fu">\else</span></span> +<span id="cb617-16"><a href="#cb617-16" aria-hidden="true" tabindex="-1"></a> , and the third</span> +<span id="cb617-17"><a href="#cb617-17" aria-hidden="true" tabindex="-1"></a> <span class="fu">\fi</span></span> +<span id="cb617-18"><a href="#cb617-18" aria-hidden="true" tabindex="-1"></a> <span class="fu">\fi</span></span> +<span id="cb617-19"><a href="#cb617-19" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb617-20"><a href="#cb617-20" aria-hidden="true" tabindex="-1"></a> olItemEnd = {},</span> +<span id="cb617-21"><a href="#cb617-21" aria-hidden="true" tabindex="-1"></a> olEndTight = {).},</span> +<span id="cb617-22"><a href="#cb617-22" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb617-23"><a href="#cb617-23" aria-hidden="true" tabindex="-1"></a>]</span> +<span id="cb617-24"><a href="#cb617-24" aria-hidden="true" tabindex="-1"></a>This is a tight list</span> +<span id="cb617-25"><a href="#cb617-25" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb617-26"><a href="#cb617-26" aria-hidden="true" tabindex="-1"></a>1. item</span> +<span id="cb617-27"><a href="#cb617-27" aria-hidden="true" tabindex="-1"></a>2. item</span> +<span id="cb617-28"><a href="#cb617-28" aria-hidden="true" tabindex="-1"></a>3. item</span> +<span id="cb617-29"><a href="#cb617-29" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb617-30"><a href="#cb617-30" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb617-31"><a href="#cb617-31" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}[</span> +<span id="cb617-32"><a href="#cb617-32" aria-hidden="true" tabindex="-1"></a> renderers = {</span> +<span id="cb617-33"><a href="#cb617-33" aria-hidden="true" tabindex="-1"></a> interblockSeparator = {<span class="co">%</span></span> +<span id="cb617-34"><a href="#cb617-34" aria-hidden="true" tabindex="-1"></a> :<span class="fu">\par</span></span> +<span id="cb617-35"><a href="#cb617-35" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="fu">\par</span>}<span class="co">%</span></span> +<span id="cb617-36"><a href="#cb617-36" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb617-37"><a href="#cb617-37" aria-hidden="true" tabindex="-1"></a> olBeginTight = {<span class="kw">\begin</span>{<span class="ex">enumerate</span>}},</span> +<span id="cb617-38"><a href="#cb617-38" aria-hidden="true" tabindex="-1"></a> olItemWithNumber = {<span class="co">%</span></span> +<span id="cb617-39"><a href="#cb617-39" aria-hidden="true" tabindex="-1"></a> <span class="fu">\item</span> This is the</span> +<span id="cb617-40"><a href="#cb617-40" aria-hidden="true" tabindex="-1"></a> <span class="fu">\ifnum</span> #1=1<span class="fu">\relax</span></span> +<span id="cb617-41"><a href="#cb617-41" aria-hidden="true" tabindex="-1"></a> first</span> +<span id="cb617-42"><a href="#cb617-42" aria-hidden="true" tabindex="-1"></a> <span class="fu">\else</span></span> +<span id="cb617-43"><a href="#cb617-43" aria-hidden="true" tabindex="-1"></a> <span class="fu">\ifnum</span> #1=2<span class="fu">\relax</span></span> +<span id="cb617-44"><a href="#cb617-44" aria-hidden="true" tabindex="-1"></a> second</span> +<span id="cb617-45"><a href="#cb617-45" aria-hidden="true" tabindex="-1"></a> <span class="fu">\else</span></span> +<span id="cb617-46"><a href="#cb617-46" aria-hidden="true" tabindex="-1"></a> third</span> +<span id="cb617-47"><a href="#cb617-47" aria-hidden="true" tabindex="-1"></a> <span class="fu">\fi</span></span> +<span id="cb617-48"><a href="#cb617-48" aria-hidden="true" tabindex="-1"></a> <span class="fu">\fi</span></span> +<span id="cb617-49"><a href="#cb617-49" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb617-50"><a href="#cb617-50" aria-hidden="true" tabindex="-1"></a> olItemEnd = {.},</span> +<span id="cb617-51"><a href="#cb617-51" aria-hidden="true" tabindex="-1"></a> olEnd = {<span class="kw">\end</span>{<span class="ex">enumerate</span>}},</span> +<span id="cb617-52"><a href="#cb617-52" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb617-53"><a href="#cb617-53" aria-hidden="true" tabindex="-1"></a>]</span> +<span id="cb617-54"><a href="#cb617-54" aria-hidden="true" tabindex="-1"></a>This is a loose list</span> +<span id="cb617-55"><a href="#cb617-55" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb617-56"><a href="#cb617-56" aria-hidden="true" tabindex="-1"></a>1. item</span> +<span id="cb617-57"><a href="#cb617-57" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb617-58"><a href="#cb617-58" aria-hidden="true" tabindex="-1"></a>2. item</span> +<span id="cb617-59"><a href="#cb617-59" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb617-60"><a href="#cb617-60" aria-hidden="true" tabindex="-1"></a>3. item</span> +<span id="cb617-61"><a href="#cb617-61" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb617-62"><a href="#cb617-62" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb617-63"><a href="#cb617-63" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb615"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb615-1"><a href="#cb615-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb618"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb618-1"><a href="#cb618-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -11497,74 +11618,74 @@ item).</p> class="tex">T<sub>e</sub>X</span>t Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb616"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb616-1"><a href="#cb616-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> -<span id="cb616-2"><a href="#cb616-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span></span> -<span id="cb616-3"><a href="#cb616-3" aria-hidden="true" tabindex="-1"></a> [</span> -<span id="cb616-4"><a href="#cb616-4" aria-hidden="true" tabindex="-1"></a> tightLists = yes,</span> -<span id="cb616-5"><a href="#cb616-5" aria-hidden="true" tabindex="-1"></a> startNumber = yes,</span> -<span id="cb616-6"><a href="#cb616-6" aria-hidden="true" tabindex="-1"></a> ]</span> -<span id="cb616-7"><a href="#cb616-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> -<span id="cb616-8"><a href="#cb616-8" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb616-9"><a href="#cb616-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererInterblockSeparator</span>{}</span> -<span id="cb616-10"><a href="#cb616-10" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererOlBeginTight</span>{ (}</span> -<span id="cb616-11"><a href="#cb616-11" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererOlItemWithNumber</span>#1{<span class="co">%</span></span> -<span id="cb616-12"><a href="#cb616-12" aria-hidden="true" tabindex="-1"></a> <span class="fu">\ifnum</span> #1=1<span class="fu">\relax</span></span> -<span id="cb616-13"><a href="#cb616-13" aria-hidden="true" tabindex="-1"></a> the first</span> -<span id="cb616-14"><a href="#cb616-14" aria-hidden="true" tabindex="-1"></a> <span class="fu">\else</span></span> -<span id="cb616-15"><a href="#cb616-15" aria-hidden="true" tabindex="-1"></a> <span class="fu">\ifnum</span> #1=2<span class="fu">\relax</span></span> -<span id="cb616-16"><a href="#cb616-16" aria-hidden="true" tabindex="-1"></a> , the second</span> -<span id="cb616-17"><a href="#cb616-17" aria-hidden="true" tabindex="-1"></a> <span class="fu">\else</span></span> -<span id="cb616-18"><a href="#cb616-18" aria-hidden="true" tabindex="-1"></a> , and the third</span> -<span id="cb616-19"><a href="#cb616-19" aria-hidden="true" tabindex="-1"></a> <span class="fu">\fi</span></span> -<span id="cb616-20"><a href="#cb616-20" aria-hidden="true" tabindex="-1"></a> <span class="fu">\fi</span></span> -<span id="cb616-21"><a href="#cb616-21" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb616-22"><a href="#cb616-22" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererOlItemEnd</span>{}</span> -<span id="cb616-23"><a href="#cb616-23" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererOlEndTight</span>{).}</span> -<span id="cb616-24"><a href="#cb616-24" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb616-25"><a href="#cb616-25" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> -<span id="cb616-26"><a href="#cb616-26" aria-hidden="true" tabindex="-1"></a>This is a tight list</span> -<span id="cb616-27"><a href="#cb616-27" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb616-28"><a href="#cb616-28" aria-hidden="true" tabindex="-1"></a>1. item</span> -<span id="cb616-29"><a href="#cb616-29" aria-hidden="true" tabindex="-1"></a>2. item</span> -<span id="cb616-30"><a href="#cb616-30" aria-hidden="true" tabindex="-1"></a>3. item</span> -<span id="cb616-31"><a href="#cb616-31" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> -<span id="cb616-32"><a href="#cb616-32" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb616-33"><a href="#cb616-33" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="co">%</span></span> -<span id="cb616-34"><a href="#cb616-34" aria-hidden="true" tabindex="-1"></a> :<span class="fu">\par</span></span> -<span id="cb616-35"><a href="#cb616-35" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="fu">\par</span>}<span class="co">%</span></span> -<span id="cb616-36"><a href="#cb616-36" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb616-37"><a href="#cb616-37" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererOlBegin</span>{<span class="fu">\startitemize</span>}</span> -<span id="cb616-38"><a href="#cb616-38" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererOlItemWithNumber</span>#1{<span class="co">%</span></span> -<span id="cb616-39"><a href="#cb616-39" aria-hidden="true" tabindex="-1"></a> <span class="fu">\sym</span>{#1.}</span> -<span id="cb616-40"><a href="#cb616-40" aria-hidden="true" tabindex="-1"></a> This is the</span> -<span id="cb616-41"><a href="#cb616-41" aria-hidden="true" tabindex="-1"></a> <span class="fu">\ifnum</span> #1=1<span class="fu">\relax</span></span> -<span id="cb616-42"><a href="#cb616-42" aria-hidden="true" tabindex="-1"></a> first</span> -<span id="cb616-43"><a href="#cb616-43" aria-hidden="true" tabindex="-1"></a> <span class="fu">\else</span></span> -<span id="cb616-44"><a href="#cb616-44" aria-hidden="true" tabindex="-1"></a> <span class="fu">\ifnum</span> #1=2<span class="fu">\relax</span></span> -<span id="cb616-45"><a href="#cb616-45" aria-hidden="true" tabindex="-1"></a> second</span> -<span id="cb616-46"><a href="#cb616-46" aria-hidden="true" tabindex="-1"></a> <span class="fu">\else</span></span> -<span id="cb616-47"><a href="#cb616-47" aria-hidden="true" tabindex="-1"></a> third</span> -<span id="cb616-48"><a href="#cb616-48" aria-hidden="true" tabindex="-1"></a> <span class="fu">\fi</span></span> -<span id="cb616-49"><a href="#cb616-49" aria-hidden="true" tabindex="-1"></a> <span class="fu">\fi</span></span> -<span id="cb616-50"><a href="#cb616-50" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb616-51"><a href="#cb616-51" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererOlItemEnd</span>{.<span class="fu">\par</span>}</span> -<span id="cb616-52"><a href="#cb616-52" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererOlEnd</span>{<span class="fu">\stopitemize</span>}</span> -<span id="cb616-53"><a href="#cb616-53" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb616-54"><a href="#cb616-54" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> -<span id="cb616-55"><a href="#cb616-55" aria-hidden="true" tabindex="-1"></a>This is a loose list</span> -<span id="cb616-56"><a href="#cb616-56" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb616-57"><a href="#cb616-57" aria-hidden="true" tabindex="-1"></a>1. item</span> -<span id="cb616-58"><a href="#cb616-58" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb616-59"><a href="#cb616-59" aria-hidden="true" tabindex="-1"></a>2. item</span> -<span id="cb616-60"><a href="#cb616-60" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb616-61"><a href="#cb616-61" aria-hidden="true" tabindex="-1"></a>3. item</span> -<span id="cb616-62"><a href="#cb616-62" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> -<span id="cb616-63"><a href="#cb616-63" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb616-64"><a href="#cb616-64" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> +<div class="sourceCode" id="cb619"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb619-1"><a href="#cb619-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> +<span id="cb619-2"><a href="#cb619-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span></span> +<span id="cb619-3"><a href="#cb619-3" aria-hidden="true" tabindex="-1"></a> [</span> +<span id="cb619-4"><a href="#cb619-4" aria-hidden="true" tabindex="-1"></a> tightLists = yes,</span> +<span id="cb619-5"><a href="#cb619-5" aria-hidden="true" tabindex="-1"></a> startNumber = yes,</span> +<span id="cb619-6"><a href="#cb619-6" aria-hidden="true" tabindex="-1"></a> ]</span> +<span id="cb619-7"><a href="#cb619-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> +<span id="cb619-8"><a href="#cb619-8" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb619-9"><a href="#cb619-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererInterblockSeparator</span>{}</span> +<span id="cb619-10"><a href="#cb619-10" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererOlBeginTight</span>{ (}</span> +<span id="cb619-11"><a href="#cb619-11" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererOlItemWithNumber</span>#1{<span class="co">%</span></span> +<span id="cb619-12"><a href="#cb619-12" aria-hidden="true" tabindex="-1"></a> <span class="fu">\ifnum</span> #1=1<span class="fu">\relax</span></span> +<span id="cb619-13"><a href="#cb619-13" aria-hidden="true" tabindex="-1"></a> the first</span> +<span id="cb619-14"><a href="#cb619-14" aria-hidden="true" tabindex="-1"></a> <span class="fu">\else</span></span> +<span id="cb619-15"><a href="#cb619-15" aria-hidden="true" tabindex="-1"></a> <span class="fu">\ifnum</span> #1=2<span class="fu">\relax</span></span> +<span id="cb619-16"><a href="#cb619-16" aria-hidden="true" tabindex="-1"></a> , the second</span> +<span id="cb619-17"><a href="#cb619-17" aria-hidden="true" tabindex="-1"></a> <span class="fu">\else</span></span> +<span id="cb619-18"><a href="#cb619-18" aria-hidden="true" tabindex="-1"></a> , and the third</span> +<span id="cb619-19"><a href="#cb619-19" aria-hidden="true" tabindex="-1"></a> <span class="fu">\fi</span></span> +<span id="cb619-20"><a href="#cb619-20" aria-hidden="true" tabindex="-1"></a> <span class="fu">\fi</span></span> +<span id="cb619-21"><a href="#cb619-21" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb619-22"><a href="#cb619-22" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererOlItemEnd</span>{}</span> +<span id="cb619-23"><a href="#cb619-23" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererOlEndTight</span>{).}</span> +<span id="cb619-24"><a href="#cb619-24" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb619-25"><a href="#cb619-25" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> +<span id="cb619-26"><a href="#cb619-26" aria-hidden="true" tabindex="-1"></a>This is a tight list</span> +<span id="cb619-27"><a href="#cb619-27" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb619-28"><a href="#cb619-28" aria-hidden="true" tabindex="-1"></a>1. item</span> +<span id="cb619-29"><a href="#cb619-29" aria-hidden="true" tabindex="-1"></a>2. item</span> +<span id="cb619-30"><a href="#cb619-30" aria-hidden="true" tabindex="-1"></a>3. item</span> +<span id="cb619-31"><a href="#cb619-31" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> +<span id="cb619-32"><a href="#cb619-32" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb619-33"><a href="#cb619-33" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="co">%</span></span> +<span id="cb619-34"><a href="#cb619-34" aria-hidden="true" tabindex="-1"></a> :<span class="fu">\par</span></span> +<span id="cb619-35"><a href="#cb619-35" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\markdownRendererInterblockSeparator</span>{<span class="fu">\par</span>}<span class="co">%</span></span> +<span id="cb619-36"><a href="#cb619-36" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb619-37"><a href="#cb619-37" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererOlBegin</span>{<span class="fu">\startitemize</span>}</span> +<span id="cb619-38"><a href="#cb619-38" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererOlItemWithNumber</span>#1{<span class="co">%</span></span> +<span id="cb619-39"><a href="#cb619-39" aria-hidden="true" tabindex="-1"></a> <span class="fu">\sym</span>{#1.}</span> +<span id="cb619-40"><a href="#cb619-40" aria-hidden="true" tabindex="-1"></a> This is the</span> +<span id="cb619-41"><a href="#cb619-41" aria-hidden="true" tabindex="-1"></a> <span class="fu">\ifnum</span> #1=1<span class="fu">\relax</span></span> +<span id="cb619-42"><a href="#cb619-42" aria-hidden="true" tabindex="-1"></a> first</span> +<span id="cb619-43"><a href="#cb619-43" aria-hidden="true" tabindex="-1"></a> <span class="fu">\else</span></span> +<span id="cb619-44"><a href="#cb619-44" aria-hidden="true" tabindex="-1"></a> <span class="fu">\ifnum</span> #1=2<span class="fu">\relax</span></span> +<span id="cb619-45"><a href="#cb619-45" aria-hidden="true" tabindex="-1"></a> second</span> +<span id="cb619-46"><a href="#cb619-46" aria-hidden="true" tabindex="-1"></a> <span class="fu">\else</span></span> +<span id="cb619-47"><a href="#cb619-47" aria-hidden="true" tabindex="-1"></a> third</span> +<span id="cb619-48"><a href="#cb619-48" aria-hidden="true" tabindex="-1"></a> <span class="fu">\fi</span></span> +<span id="cb619-49"><a href="#cb619-49" aria-hidden="true" tabindex="-1"></a> <span class="fu">\fi</span></span> +<span id="cb619-50"><a href="#cb619-50" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb619-51"><a href="#cb619-51" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererOlItemEnd</span>{.<span class="fu">\par</span>}</span> +<span id="cb619-52"><a href="#cb619-52" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererOlEnd</span>{<span class="fu">\stopitemize</span>}</span> +<span id="cb619-53"><a href="#cb619-53" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb619-54"><a href="#cb619-54" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> +<span id="cb619-55"><a href="#cb619-55" aria-hidden="true" tabindex="-1"></a>This is a loose list</span> +<span id="cb619-56"><a href="#cb619-56" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb619-57"><a href="#cb619-57" aria-hidden="true" tabindex="-1"></a>1. item</span> +<span id="cb619-58"><a href="#cb619-58" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb619-59"><a href="#cb619-59" aria-hidden="true" tabindex="-1"></a>2. item</span> +<span id="cb619-60"><a href="#cb619-60" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb619-61"><a href="#cb619-61" aria-hidden="true" tabindex="-1"></a>3. item</span> +<span id="cb619-62"><a href="#cb619-62" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> +<span id="cb619-63"><a href="#cb619-63" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb619-64"><a href="#cb619-64" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb617"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb617-1"><a href="#cb617-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb620"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb620-1"><a href="#cb620-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -11579,57 +11700,57 @@ item).</p> </blockquote> <h4 data-number="2.3.1.31" id="raw-content-renderers"><span class="header-section-number">2.3.1.31</span> Raw Content Renderers</h4> -<p>The <code>\markdownRendererInputRawInline</code> macro represents an +<p>The <code>markdownRendererInputRawInline</code> macro represents an inline raw span. The macro receives two arguments: the filename of a -file contaning the inline raw span contents and the raw attribute that +file containing the inline raw span contents and the raw attribute that designates the format of the inline raw span. This macro will only be -produced, when the <strong><code>rawAttribute</code></strong> option is +produced, when the <code><strong>rawAttribute</strong></code> option is enabled.</p> -<p>The <code>\markdownRendererInputRawBlock</code> macro represents a -raw block. The macro receives two arguments: the filename of a file -contaning the raw block and the raw attribute that designates the format -of the raw block. This macro will only be produced, when the -<strong><code>rawAttribute</code></strong> and -<strong><code>fencedCode</code></strong> options are enabled.</p> +<p>The <code>markdownRendererInputRawBlock</code> macro represents a raw +block. The macro receives two arguments: the filename of a file +containing the raw block and the raw attribute that designates the +format of the raw block. This macro will only be produced, when the +<code><strong>rawAttribute</strong></code> and +<code><strong>fencedCode</strong></code> options are enabled.</p> <h5 class="unnumbered" id="latex-example-89"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb618"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb618-1"><a href="#cb618-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb618-2"><a href="#cb618-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[rawAttribute, fencedCode]{<span class="ex">markdown</span>}</span> -<span id="cb618-3"><a href="#cb618-3" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>{<span class="ex">expl3</span>}</span> -<span id="cb618-4"><a href="#cb618-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\ExplSyntaxOn</span></span> -<span id="cb618-5"><a href="#cb618-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\cs</span>_new:Nn</span> -<span id="cb618-6"><a href="#cb618-6" aria-hidden="true" tabindex="-1"></a> <span class="fu">\display</span>_raw_content:nn</span> -<span id="cb618-7"><a href="#cb618-7" aria-hidden="true" tabindex="-1"></a> {</span> -<span id="cb618-8"><a href="#cb618-8" aria-hidden="true" tabindex="-1"></a> <span class="co">% If the raw attribute is TeX, execute the content as a TeX document.</span></span> -<span id="cb618-9"><a href="#cb618-9" aria-hidden="true" tabindex="-1"></a> <span class="fu">\str</span>_if_eq:nnTF</span> -<span id="cb618-10"><a href="#cb618-10" aria-hidden="true" tabindex="-1"></a> { #2 }</span> -<span id="cb618-11"><a href="#cb618-11" aria-hidden="true" tabindex="-1"></a> { tex }</span> -<span id="cb618-12"><a href="#cb618-12" aria-hidden="true" tabindex="-1"></a> { <span class="fu">\markdownEscape</span> { #1 } }</span> -<span id="cb618-13"><a href="#cb618-13" aria-hidden="true" tabindex="-1"></a> <span class="co">% Otherwise, ignore the content.</span></span> -<span id="cb618-14"><a href="#cb618-14" aria-hidden="true" tabindex="-1"></a> { }</span> -<span id="cb618-15"><a href="#cb618-15" aria-hidden="true" tabindex="-1"></a> }</span> -<span id="cb618-16"><a href="#cb618-16" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> -<span id="cb618-17"><a href="#cb618-17" aria-hidden="true" tabindex="-1"></a> renderers = {</span> -<span id="cb618-18"><a href="#cb618-18" aria-hidden="true" tabindex="-1"></a> rawInline = { <span class="fu">\display</span>_raw_content:nn { #1 } { #2 } },</span> -<span id="cb618-19"><a href="#cb618-19" aria-hidden="true" tabindex="-1"></a> rawBlock = { <span class="fu">\display</span>_raw_content:nn { #1 } { #2 } }</span> -<span id="cb618-20"><a href="#cb618-20" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb618-21"><a href="#cb618-21" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb618-22"><a href="#cb618-22" aria-hidden="true" tabindex="-1"></a><span class="fu">\ExplSyntaxOff</span></span> -<span id="cb618-23"><a href="#cb618-23" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb618-24"><a href="#cb618-24" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb618-25"><a href="#cb618-25" aria-hidden="true" tabindex="-1"></a>`<span class="ss">$H_2 O$</span>`{=tex} is a liquid.</span> -<span id="cb618-26"><a href="#cb618-26" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb618-27"><a href="#cb618-27" aria-hidden="true" tabindex="-1"></a>``` {=html}</span> -<span id="cb618-28"><a href="#cb618-28" aria-hidden="true" tabindex="-1"></a><p>Here is some HTML content that will be ignored.</p></span> -<span id="cb618-29"><a href="#cb618-29" aria-hidden="true" tabindex="-1"></a>```</span> -<span id="cb618-30"><a href="#cb618-30" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb618-31"><a href="#cb618-31" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb621"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb621-1"><a href="#cb621-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb621-2"><a href="#cb621-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[rawAttribute, fencedCode]{<span class="ex">markdown</span>}</span> +<span id="cb621-3"><a href="#cb621-3" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>{<span class="ex">expl3</span>}</span> +<span id="cb621-4"><a href="#cb621-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\ExplSyntaxOn</span></span> +<span id="cb621-5"><a href="#cb621-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\cs</span>_new:Nn</span> +<span id="cb621-6"><a href="#cb621-6" aria-hidden="true" tabindex="-1"></a> <span class="fu">\display</span>_raw_content:nn</span> +<span id="cb621-7"><a href="#cb621-7" aria-hidden="true" tabindex="-1"></a> {</span> +<span id="cb621-8"><a href="#cb621-8" aria-hidden="true" tabindex="-1"></a> <span class="co">% If the raw attribute is TeX, execute the content as a TeX document.</span></span> +<span id="cb621-9"><a href="#cb621-9" aria-hidden="true" tabindex="-1"></a> <span class="fu">\str</span>_if_eq:nnTF</span> +<span id="cb621-10"><a href="#cb621-10" aria-hidden="true" tabindex="-1"></a> { #2 }</span> +<span id="cb621-11"><a href="#cb621-11" aria-hidden="true" tabindex="-1"></a> { tex }</span> +<span id="cb621-12"><a href="#cb621-12" aria-hidden="true" tabindex="-1"></a> { <span class="fu">\markdownEscape</span> { #1 } }</span> +<span id="cb621-13"><a href="#cb621-13" aria-hidden="true" tabindex="-1"></a> <span class="co">% Otherwise, ignore the content.</span></span> +<span id="cb621-14"><a href="#cb621-14" aria-hidden="true" tabindex="-1"></a> { }</span> +<span id="cb621-15"><a href="#cb621-15" aria-hidden="true" tabindex="-1"></a> }</span> +<span id="cb621-16"><a href="#cb621-16" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> +<span id="cb621-17"><a href="#cb621-17" aria-hidden="true" tabindex="-1"></a> renderers = {</span> +<span id="cb621-18"><a href="#cb621-18" aria-hidden="true" tabindex="-1"></a> rawInline = { <span class="fu">\display</span>_raw_content:nn { #1 } { #2 } },</span> +<span id="cb621-19"><a href="#cb621-19" aria-hidden="true" tabindex="-1"></a> rawBlock = { <span class="fu">\display</span>_raw_content:nn { #1 } { #2 } }</span> +<span id="cb621-20"><a href="#cb621-20" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb621-21"><a href="#cb621-21" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb621-22"><a href="#cb621-22" aria-hidden="true" tabindex="-1"></a><span class="fu">\ExplSyntaxOff</span></span> +<span id="cb621-23"><a href="#cb621-23" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb621-24"><a href="#cb621-24" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb621-25"><a href="#cb621-25" aria-hidden="true" tabindex="-1"></a>`<span class="ss">$H_2 O$</span>`{=tex} is a liquid.</span> +<span id="cb621-26"><a href="#cb621-26" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb621-27"><a href="#cb621-27" aria-hidden="true" tabindex="-1"></a>``` {=html}</span> +<span id="cb621-28"><a href="#cb621-28" aria-hidden="true" tabindex="-1"></a><p>Here is some HTML content that will be ignored.</p></span> +<span id="cb621-29"><a href="#cb621-29" aria-hidden="true" tabindex="-1"></a>```</span> +<span id="cb621-30"><a href="#cb621-30" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb621-31"><a href="#cb621-31" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb619"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb619-1"><a href="#cb619-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb622"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb622-1"><a href="#cb622-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -11637,13 +11758,13 @@ contain the following text:</p> </blockquote> <h4 data-number="2.3.1.32" id="section-renderers"><span class="header-section-number">2.3.1.32</span> Section Renderers</h4> -<p>The <code>\markdownRendererSectionBegin</code> and -<code>\markdownRendererSectionEnd</code> macros represent the beginning +<p>The <code>markdownRendererSectionBegin</code> and +<code>markdownRendererSectionEnd</code> macros represent the beginning and the end of a section based on headings.</p> <h4 data-number="2.3.1.33" id="replacement-character-renderers"><span class="header-section-number">2.3.1.33</span> Replacement Character Renderers</h4> -<p>The <code>\markdownRendererReplacementCharacter</code> macro +<p>The <code>markdownRendererReplacementCharacter</code> macro represents the U+0000 and U+FFFD Unicode characters. The macro receives no arguments.</p> <h4 data-number="2.3.1.34" id="special-character-renderers"><span @@ -11654,27 +11775,27 @@ class="tex">T<sub>e</sub>X</span> characters, including the active pipe character (<code>|</code>) of Con<span class="tex">T<sub>e</sub>X</span>t, in the input text:</p> <ul> -<li><code>\markdownRendererAmpersand</code> replaces the ampersand +<li><code>markdownRendererAmpersand</code> replaces the ampersand (<code>&</code>).</li> -<li><code>\markdownRendererBackslash</code> replaces the backslash +<li><code>markdownRendererBackslash</code> replaces the backslash (<code>\</code>).</li> -<li><code>\markdownRendererCircumflex</code> replaces the circumflex +<li><code>markdownRendererCircumflex</code> replaces the circumflex (<code>^</code>).</li> -<li><code>\markdownRendererDollarSign</code> replaces the dollar sign +<li><code>markdownRendererDollarSign</code> replaces the dollar sign (<code>$</code>).</li> -<li><code>\markdownRendererHash</code> replaces the hash sign +<li><code>markdownRendererHash</code> replaces the hash sign (<code>#</code>).</li> -<li><code>\markdownRendererLeftBrace</code> replaces the left brace +<li><code>markdownRendererLeftBrace</code> replaces the left brace (<code>{</code>).</li> -<li><code>\markdownRendererPercentSign</code> replaces the percent sign +<li><code>markdownRendererPercentSign</code> replaces the percent sign (<code>%</code>).</li> -<li><code>\markdownRendererPipe</code> replaces the pipe character +<li><code>markdownRendererPipe</code> replaces the pipe character (<code>|</code>).</li> -<li><code>\markdownRendererRightBrace</code> replaces the right brace +<li><code>markdownRendererRightBrace</code> replaces the right brace (<code>}</code>).</li> -<li><code>\markdownRendererTilde</code> replaces the tilde +<li><code>markdownRendererTilde</code> replaces the tilde (<code>~</code>).</li> -<li><code>\markdownRendererUnderscore</code> replaces the underscore +<li><code>markdownRendererUnderscore</code> replaces the underscore (<code>_</code>).</li> </ul> <h5 class="unnumbered" id="plain-tex-example-40">Plain <span @@ -11684,16 +11805,16 @@ class="tex">T<sub>e</sub>X</span> Example</h5> tilde behave as if it were written in <span class="tex">T<sub>e</sub>X</span>, where it represents a non-breaking space.</p> -<div class="sourceCode" id="cb620"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb620-1"><a href="#cb620-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> -<span id="cb620-2"><a href="#cb620-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererTilde</span>{~}</span> -<span id="cb620-3"><a href="#cb620-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> -<span id="cb620-4"><a href="#cb620-4" aria-hidden="true" tabindex="-1"></a>Bartel~Leendert van~der~Waerden</span> -<span id="cb620-5"><a href="#cb620-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> -<span id="cb620-6"><a href="#cb620-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> +<div class="sourceCode" id="cb623"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb623-1"><a href="#cb623-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> +<span id="cb623-2"><a href="#cb623-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererTilde</span>{~}</span> +<span id="cb623-3"><a href="#cb623-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> +<span id="cb623-4"><a href="#cb623-4" aria-hidden="true" tabindex="-1"></a>Bartel~Leendert van~der~Waerden</span> +<span id="cb623-5"><a href="#cb623-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> +<span id="cb623-6"><a href="#cb623-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb621"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb621-1"><a href="#cb621-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb624"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb624-1"><a href="#cb624-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text, where the middot (<code>·</code>) denotes a non-breaking space:</p> @@ -11707,22 +11828,22 @@ class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> tilde behave as if it were written in <span class="tex">T<sub>e</sub>X</span>, where it represents a non-breaking space.</p> -<div class="sourceCode" id="cb622"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb622-1"><a href="#cb622-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb622-2"><a href="#cb622-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>{<span class="ex">markdown</span>}</span> -<span id="cb622-3"><a href="#cb622-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> -<span id="cb622-4"><a href="#cb622-4" aria-hidden="true" tabindex="-1"></a> renderers = {</span> -<span id="cb622-5"><a href="#cb622-5" aria-hidden="true" tabindex="-1"></a> tilde = ~,</span> -<span id="cb622-6"><a href="#cb622-6" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb622-7"><a href="#cb622-7" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb622-8"><a href="#cb622-8" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb622-9"><a href="#cb622-9" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb622-10"><a href="#cb622-10" aria-hidden="true" tabindex="-1"></a>Bartel~Leendert van~der~Waerden</span> -<span id="cb622-11"><a href="#cb622-11" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb622-12"><a href="#cb622-12" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb625"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb625-1"><a href="#cb625-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb625-2"><a href="#cb625-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>{<span class="ex">markdown</span>}</span> +<span id="cb625-3"><a href="#cb625-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> +<span id="cb625-4"><a href="#cb625-4" aria-hidden="true" tabindex="-1"></a> renderers = {</span> +<span id="cb625-5"><a href="#cb625-5" aria-hidden="true" tabindex="-1"></a> tilde = ~,</span> +<span id="cb625-6"><a href="#cb625-6" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb625-7"><a href="#cb625-7" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb625-8"><a href="#cb625-8" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb625-9"><a href="#cb625-9" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb625-10"><a href="#cb625-10" aria-hidden="true" tabindex="-1"></a>Bartel~Leendert van~der~Waerden</span> +<span id="cb625-11"><a href="#cb625-11" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb625-12"><a href="#cb625-12" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb623"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb623-1"><a href="#cb623-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb626"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb626-1"><a href="#cb626-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text, where the middot (<code>·</code>) denotes a non-breaking space:</p> @@ -11736,17 +11857,17 @@ class="tex">T<sub>e</sub>X</span>t Example</h5> tilde behave as if it were written in <span class="tex">T<sub>e</sub>X</span>, where it represents a non-breaking space.</p> -<div class="sourceCode" id="cb624"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb624-1"><a href="#cb624-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> -<span id="cb624-2"><a href="#cb624-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererTilde</span>{~}</span> -<span id="cb624-3"><a href="#cb624-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> -<span id="cb624-4"><a href="#cb624-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> -<span id="cb624-5"><a href="#cb624-5" aria-hidden="true" tabindex="-1"></a>Bartel~Leendert van~der~Waerden</span> -<span id="cb624-6"><a href="#cb624-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> -<span id="cb624-7"><a href="#cb624-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> +<div class="sourceCode" id="cb627"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb627-1"><a href="#cb627-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> +<span id="cb627-2"><a href="#cb627-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererTilde</span>{~}</span> +<span id="cb627-3"><a href="#cb627-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> +<span id="cb627-4"><a href="#cb627-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> +<span id="cb627-5"><a href="#cb627-5" aria-hidden="true" tabindex="-1"></a>Bartel~Leendert van~der~Waerden</span> +<span id="cb627-6"><a href="#cb627-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> +<span id="cb627-7"><a href="#cb627-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb625"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb625-1"><a href="#cb625-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb628"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb628-1"><a href="#cb628-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text, where the middot (<code>·</code>) denotes a non-breaking space:</p> @@ -11756,27 +11877,27 @@ non-breaking space:</p> <h4 data-number="2.3.1.35" id="strike-through-renderer"><span class="header-section-number">2.3.1.35</span> Strike-Through Renderer</h4> -<p>The <code>\markdownRendererStrikeThrough</code> macro represents a +<p>The <code>markdownRendererStrikeThrough</code> macro represents a strike-through span of text. The macro receives a single argument that corresponds to the striked-out span of text. This macro will only be -produced, when the <strong><code>strikeThrough</code></strong> option is +produced, when the <code><strong>strikeThrough</strong></code> option is enabled.</p> <h5 class="unnumbered" id="plain-tex-example-41">Plain <span class="tex">T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb626"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb626-1"><a href="#cb626-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> -<span id="cb626-2"><a href="#cb626-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionStrikeThrough</span>{true}</span> -<span id="cb626-3"><a href="#cb626-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> soulutf8.sty</span> -<span id="cb626-4"><a href="#cb626-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererStrikeThrough</span>#1{<span class="fu">\st</span>{#1}}</span> -<span id="cb626-5"><a href="#cb626-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> -<span id="cb626-6"><a href="#cb626-6" aria-hidden="true" tabindex="-1"></a>This is ~~a lunar roving vehicle~~ strike-through text.</span> -<span id="cb626-7"><a href="#cb626-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> -<span id="cb626-8"><a href="#cb626-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> +<div class="sourceCode" id="cb629"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb629-1"><a href="#cb629-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> +<span id="cb629-2"><a href="#cb629-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionStrikeThrough</span>{true}</span> +<span id="cb629-3"><a href="#cb629-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> soulutf8.sty</span> +<span id="cb629-4"><a href="#cb629-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererStrikeThrough</span>#1{<span class="fu">\st</span>{#1}}</span> +<span id="cb629-5"><a href="#cb629-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> +<span id="cb629-6"><a href="#cb629-6" aria-hidden="true" tabindex="-1"></a>This is ~~a lunar roving vehicle~~ strike-through text.</span> +<span id="cb629-7"><a href="#cb629-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> +<span id="cb629-8"><a href="#cb629-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb627"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb627-1"><a href="#cb627-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb630"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb630-1"><a href="#cb630-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -11786,23 +11907,23 @@ contain the following text:</p> class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb628"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb628-1"><a href="#cb628-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb628-2"><a href="#cb628-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[strikeThrough]{<span class="ex">markdown</span>}</span> -<span id="cb628-3"><a href="#cb628-3" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>{<span class="ex">soulutf8</span>}</span> -<span id="cb628-4"><a href="#cb628-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> -<span id="cb628-5"><a href="#cb628-5" aria-hidden="true" tabindex="-1"></a> renderers = {</span> -<span id="cb628-6"><a href="#cb628-6" aria-hidden="true" tabindex="-1"></a> strikeThrough = {<span class="fu">\st</span>{#1}},</span> -<span id="cb628-7"><a href="#cb628-7" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb628-8"><a href="#cb628-8" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb628-9"><a href="#cb628-9" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb628-10"><a href="#cb628-10" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb628-11"><a href="#cb628-11" aria-hidden="true" tabindex="-1"></a>This is ~~a lunar roving vehicle~~ strike-through text.</span> -<span id="cb628-12"><a href="#cb628-12" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb628-13"><a href="#cb628-13" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb631"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb631-1"><a href="#cb631-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb631-2"><a href="#cb631-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[strikeThrough]{<span class="ex">markdown</span>}</span> +<span id="cb631-3"><a href="#cb631-3" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>{<span class="ex">soulutf8</span>}</span> +<span id="cb631-4"><a href="#cb631-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> +<span id="cb631-5"><a href="#cb631-5" aria-hidden="true" tabindex="-1"></a> renderers = {</span> +<span id="cb631-6"><a href="#cb631-6" aria-hidden="true" tabindex="-1"></a> strikeThrough = {<span class="fu">\st</span>{#1}},</span> +<span id="cb631-7"><a href="#cb631-7" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb631-8"><a href="#cb631-8" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb631-9"><a href="#cb631-9" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb631-10"><a href="#cb631-10" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb631-11"><a href="#cb631-11" aria-hidden="true" tabindex="-1"></a>This is ~~a lunar roving vehicle~~ strike-through text.</span> +<span id="cb631-12"><a href="#cb631-12" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb631-13"><a href="#cb631-13" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb629"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb629-1"><a href="#cb629-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb632"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb632-1"><a href="#cb632-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -11812,18 +11933,18 @@ contain the following text:</p> class="tex">T<sub>e</sub>X</span>t Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb630"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb630-1"><a href="#cb630-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> -<span id="cb630-2"><a href="#cb630-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span>[strikeThrough = yes]</span> -<span id="cb630-3"><a href="#cb630-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererStrikeThrough</span>#1{<span class="fu">\overstrikes</span>{#1}}</span> -<span id="cb630-4"><a href="#cb630-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> -<span id="cb630-5"><a href="#cb630-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> -<span id="cb630-6"><a href="#cb630-6" aria-hidden="true" tabindex="-1"></a>This is ~~a lunar roving vehicle~~ strike-through text.</span> -<span id="cb630-7"><a href="#cb630-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> -<span id="cb630-8"><a href="#cb630-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> +<div class="sourceCode" id="cb633"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb633-1"><a href="#cb633-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> +<span id="cb633-2"><a href="#cb633-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span>[strikeThrough = yes]</span> +<span id="cb633-3"><a href="#cb633-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererStrikeThrough</span>#1{<span class="fu">\overstrikes</span>{#1}}</span> +<span id="cb633-4"><a href="#cb633-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> +<span id="cb633-5"><a href="#cb633-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> +<span id="cb633-6"><a href="#cb633-6" aria-hidden="true" tabindex="-1"></a>This is ~~a lunar roving vehicle~~ strike-through text.</span> +<span id="cb633-7"><a href="#cb633-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> +<span id="cb633-8"><a href="#cb633-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb631"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb631-1"><a href="#cb631-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb634"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb634-1"><a href="#cb634-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -11831,26 +11952,26 @@ contain the following text:</p> </blockquote> <h4 data-number="2.3.1.36" id="subscript-renderer"><span class="header-section-number">2.3.1.36</span> Subscript Renderer</h4> -<p>The <code>\markdownRendererSubscript</code> macro represents a +<p>The <code>markdownRendererSubscript</code> macro represents a subscript span of text. The macro receives a single argument that corresponds to the subscript span of text. This macro will only be -produced, when the <strong><code>subscripts</code></strong> option is +produced, when the <code><strong>subscripts</strong></code> option is enabled.</p> <h5 class="unnumbered" id="plain-tex-example-42">Plain <span class="tex">T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb632"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb632-1"><a href="#cb632-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> -<span id="cb632-2"><a href="#cb632-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionSubscripts</span>{true}</span> -<span id="cb632-3"><a href="#cb632-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererSubscript</span>#1{ (#1 moles) and }</span> -<span id="cb632-4"><a href="#cb632-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> -<span id="cb632-5"><a href="#cb632-5" aria-hidden="true" tabindex="-1"></a>H~2~O is a liquid.</span> -<span id="cb632-6"><a href="#cb632-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> -<span id="cb632-7"><a href="#cb632-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> +<div class="sourceCode" id="cb635"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb635-1"><a href="#cb635-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> +<span id="cb635-2"><a href="#cb635-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionSubscripts</span>{true}</span> +<span id="cb635-3"><a href="#cb635-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererSubscript</span>#1{ (#1 moles) and }</span> +<span id="cb635-4"><a href="#cb635-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> +<span id="cb635-5"><a href="#cb635-5" aria-hidden="true" tabindex="-1"></a>H~2~O is a liquid.</span> +<span id="cb635-6"><a href="#cb635-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> +<span id="cb635-7"><a href="#cb635-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb633"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb633-1"><a href="#cb633-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb636"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb636-1"><a href="#cb636-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -11860,22 +11981,22 @@ contain the following text:</p> class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb634"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb634-1"><a href="#cb634-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb634-2"><a href="#cb634-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[subscripts]{<span class="ex">markdown</span>}</span> -<span id="cb634-3"><a href="#cb634-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> -<span id="cb634-4"><a href="#cb634-4" aria-hidden="true" tabindex="-1"></a> renderers = {</span> -<span id="cb634-5"><a href="#cb634-5" aria-hidden="true" tabindex="-1"></a> subscript = { (#1 moles) and },</span> -<span id="cb634-6"><a href="#cb634-6" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb634-7"><a href="#cb634-7" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb634-8"><a href="#cb634-8" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb634-9"><a href="#cb634-9" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb634-10"><a href="#cb634-10" aria-hidden="true" tabindex="-1"></a>H~2~O is a liquid.</span> -<span id="cb634-11"><a href="#cb634-11" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb634-12"><a href="#cb634-12" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb637"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb637-1"><a href="#cb637-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb637-2"><a href="#cb637-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[subscripts]{<span class="ex">markdown</span>}</span> +<span id="cb637-3"><a href="#cb637-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> +<span id="cb637-4"><a href="#cb637-4" aria-hidden="true" tabindex="-1"></a> renderers = {</span> +<span id="cb637-5"><a href="#cb637-5" aria-hidden="true" tabindex="-1"></a> subscript = { (#1 moles) and },</span> +<span id="cb637-6"><a href="#cb637-6" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb637-7"><a href="#cb637-7" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb637-8"><a href="#cb637-8" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb637-9"><a href="#cb637-9" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb637-10"><a href="#cb637-10" aria-hidden="true" tabindex="-1"></a>H~2~O is a liquid.</span> +<span id="cb637-11"><a href="#cb637-11" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb637-12"><a href="#cb637-12" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb635"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb635-1"><a href="#cb635-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb638"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb638-1"><a href="#cb638-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -11885,18 +12006,18 @@ contain the following text:</p> class="tex">T<sub>e</sub>X</span>t Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb636"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb636-1"><a href="#cb636-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> -<span id="cb636-2"><a href="#cb636-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span>[subscripts = yes]</span> -<span id="cb636-3"><a href="#cb636-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererSubscript</span>#1{ (#1 moles) and }</span> -<span id="cb636-4"><a href="#cb636-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> -<span id="cb636-5"><a href="#cb636-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> -<span id="cb636-6"><a href="#cb636-6" aria-hidden="true" tabindex="-1"></a>H~2~O is a liquid.</span> -<span id="cb636-7"><a href="#cb636-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> -<span id="cb636-8"><a href="#cb636-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> +<div class="sourceCode" id="cb639"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb639-1"><a href="#cb639-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> +<span id="cb639-2"><a href="#cb639-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span>[subscripts = yes]</span> +<span id="cb639-3"><a href="#cb639-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererSubscript</span>#1{ (#1 moles) and }</span> +<span id="cb639-4"><a href="#cb639-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> +<span id="cb639-5"><a href="#cb639-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> +<span id="cb639-6"><a href="#cb639-6" aria-hidden="true" tabindex="-1"></a>H~2~O is a liquid.</span> +<span id="cb639-7"><a href="#cb639-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> +<span id="cb639-8"><a href="#cb639-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb637"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb637-1"><a href="#cb637-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb640"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb640-1"><a href="#cb640-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -11904,26 +12025,26 @@ contain the following text:</p> </blockquote> <h4 data-number="2.3.1.37" id="superscript-renderer"><span class="header-section-number">2.3.1.37</span> Superscript Renderer</h4> -<p>The <code>\markdownRendererSuperscript</code> macro represents a +<p>The <code>markdownRendererSuperscript</code> macro represents a superscript span of text. The macro receives a single argument that corresponds to the superscript span of text. This macro will only be -produced, when the <strong><code>superscripts</code></strong> option is +produced, when the <code><strong>superscripts</strong></code> option is enabled.</p> <h5 class="unnumbered" id="plain-tex-example-43">Plain <span class="tex">T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb638"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb638-1"><a href="#cb638-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> -<span id="cb638-2"><a href="#cb638-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionSuperscripts</span>{true}</span> -<span id="cb638-3"><a href="#cb638-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererSuperscript</span>#1{ taken to the power of #1}</span> -<span id="cb638-4"><a href="#cb638-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> -<span id="cb638-5"><a href="#cb638-5" aria-hidden="true" tabindex="-1"></a>2^10^ is 1024.</span> -<span id="cb638-6"><a href="#cb638-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> -<span id="cb638-7"><a href="#cb638-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> +<div class="sourceCode" id="cb641"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb641-1"><a href="#cb641-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> +<span id="cb641-2"><a href="#cb641-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionSuperscripts</span>{true}</span> +<span id="cb641-3"><a href="#cb641-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererSuperscript</span>#1{ taken to the power of #1}</span> +<span id="cb641-4"><a href="#cb641-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> +<span id="cb641-5"><a href="#cb641-5" aria-hidden="true" tabindex="-1"></a>2^10^ is 1024.</span> +<span id="cb641-6"><a href="#cb641-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> +<span id="cb641-7"><a href="#cb641-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb639"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb639-1"><a href="#cb639-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb642"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb642-1"><a href="#cb642-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -11933,22 +12054,22 @@ contain the following text:</p> class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb640"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb640-1"><a href="#cb640-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb640-2"><a href="#cb640-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[superscripts]{<span class="ex">markdown</span>}</span> -<span id="cb640-3"><a href="#cb640-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> -<span id="cb640-4"><a href="#cb640-4" aria-hidden="true" tabindex="-1"></a> renderers = {</span> -<span id="cb640-5"><a href="#cb640-5" aria-hidden="true" tabindex="-1"></a> superscript = { taken to the power of #1},</span> -<span id="cb640-6"><a href="#cb640-6" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb640-7"><a href="#cb640-7" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb640-8"><a href="#cb640-8" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb640-9"><a href="#cb640-9" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb640-10"><a href="#cb640-10" aria-hidden="true" tabindex="-1"></a>2^10^ is 1024.</span> -<span id="cb640-11"><a href="#cb640-11" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb640-12"><a href="#cb640-12" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb643"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb643-1"><a href="#cb643-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb643-2"><a href="#cb643-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[superscripts]{<span class="ex">markdown</span>}</span> +<span id="cb643-3"><a href="#cb643-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> +<span id="cb643-4"><a href="#cb643-4" aria-hidden="true" tabindex="-1"></a> renderers = {</span> +<span id="cb643-5"><a href="#cb643-5" aria-hidden="true" tabindex="-1"></a> superscript = { taken to the power of #1},</span> +<span id="cb643-6"><a href="#cb643-6" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb643-7"><a href="#cb643-7" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb643-8"><a href="#cb643-8" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb643-9"><a href="#cb643-9" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb643-10"><a href="#cb643-10" aria-hidden="true" tabindex="-1"></a>2^10^ is 1024.</span> +<span id="cb643-11"><a href="#cb643-11" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb643-12"><a href="#cb643-12" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb641"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb641-1"><a href="#cb641-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb644"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb644-1"><a href="#cb644-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -11958,18 +12079,18 @@ contain the following text:</p> class="tex">T<sub>e</sub>X</span>t Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb642"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb642-1"><a href="#cb642-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> -<span id="cb642-2"><a href="#cb642-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span>[superscripts = yes]</span> -<span id="cb642-3"><a href="#cb642-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererSuperscript</span>#1{ taken to the power of #1}</span> -<span id="cb642-4"><a href="#cb642-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> -<span id="cb642-5"><a href="#cb642-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> -<span id="cb642-6"><a href="#cb642-6" aria-hidden="true" tabindex="-1"></a>2^10^ is 1024.</span> -<span id="cb642-7"><a href="#cb642-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> -<span id="cb642-8"><a href="#cb642-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> +<div class="sourceCode" id="cb645"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb645-1"><a href="#cb645-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> +<span id="cb645-2"><a href="#cb645-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span>[superscripts = yes]</span> +<span id="cb645-3"><a href="#cb645-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererSuperscript</span>#1{ taken to the power of #1}</span> +<span id="cb645-4"><a href="#cb645-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> +<span id="cb645-5"><a href="#cb645-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> +<span id="cb645-6"><a href="#cb645-6" aria-hidden="true" tabindex="-1"></a>2^10^ is 1024.</span> +<span id="cb645-7"><a href="#cb645-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> +<span id="cb645-8"><a href="#cb645-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb643"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb643-1"><a href="#cb643-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb646"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb646-1"><a href="#cb646-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -11979,67 +12100,67 @@ contain the following text:</p> class="header-section-number">2.3.1.38</span> Table Attribute Context Renderers</h4> <p>The following macros are only produced, when the -<strong><code>tableCaptions</code></strong> and -<strong><code>tableAttributes</code></strong> options are enabled.</p> -<p>The <code>\markdownRendererTableAttributeContextBegin</code> and -<code>\markdownRendererTableAttributeContextEnd</code> macros represent +<code><strong>tableCaptions</strong></code> and +<code><strong>tableAttributes</strong></code> options are enabled.</p> +<p>The <code>markdownRendererTableAttributeContextBegin</code> and +<code>markdownRendererTableAttributeContextEnd</code> macros represent the beginning and the end of a context in which the attributes of a table apply. The macros receive no arguments.</p> <h5 class="unnumbered" id="latex-example-94"><span class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb644"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb644-1"><a href="#cb644-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb644-2"><a href="#cb644-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[</span> -<span id="cb644-3"><a href="#cb644-3" aria-hidden="true" tabindex="-1"></a> pipeTables,</span> -<span id="cb644-4"><a href="#cb644-4" aria-hidden="true" tabindex="-1"></a> tableCaptions,</span> -<span id="cb644-5"><a href="#cb644-5" aria-hidden="true" tabindex="-1"></a> tableAttributes,</span> -<span id="cb644-6"><a href="#cb644-6" aria-hidden="true" tabindex="-1"></a> relativeReferences,</span> -<span id="cb644-7"><a href="#cb644-7" aria-hidden="true" tabindex="-1"></a>]{<span class="ex">markdown</span>}</span> -<span id="cb644-8"><a href="#cb644-8" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>{<span class="ex">expl3</span>}</span> -<span id="cb644-9"><a href="#cb644-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\ExplSyntaxOn</span></span> -<span id="cb644-10"><a href="#cb644-10" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> -<span id="cb644-11"><a href="#cb644-11" aria-hidden="true" tabindex="-1"></a> renderers = {</span> -<span id="cb644-12"><a href="#cb644-12" aria-hidden="true" tabindex="-1"></a> tableAttributeContextBegin = {</span> -<span id="cb644-13"><a href="#cb644-13" aria-hidden="true" tabindex="-1"></a> <span class="fu">\group</span>_begin:</span> -<span id="cb644-14"><a href="#cb644-14" aria-hidden="true" tabindex="-1"></a> <span class="fu">\markdownSetup</span>{</span> -<span id="cb644-15"><a href="#cb644-15" aria-hidden="true" tabindex="-1"></a> renderers = {</span> -<span id="cb644-16"><a href="#cb644-16" aria-hidden="true" tabindex="-1"></a> attributeIdentifier = {</span> -<span id="cb644-17"><a href="#cb644-17" aria-hidden="true" tabindex="-1"></a> <span class="fu">\markdownSetup</span>{</span> -<span id="cb644-18"><a href="#cb644-18" aria-hidden="true" tabindex="-1"></a> renderers = {</span> -<span id="cb644-19"><a href="#cb644-19" aria-hidden="true" tabindex="-1"></a> tableAttributeContextEnd = {</span> -<span id="cb644-20"><a href="#cb644-20" aria-hidden="true" tabindex="-1"></a> <span class="kw">\label</span>{<span class="ex">##1</span>}</span> -<span id="cb644-21"><a href="#cb644-21" aria-hidden="true" tabindex="-1"></a> <span class="fu">\group</span>_end:</span> -<span id="cb644-22"><a href="#cb644-22" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb644-23"><a href="#cb644-23" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb644-24"><a href="#cb644-24" aria-hidden="true" tabindex="-1"></a> }</span> -<span id="cb644-25"><a href="#cb644-25" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb644-26"><a href="#cb644-26" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb644-27"><a href="#cb644-27" aria-hidden="true" tabindex="-1"></a> }</span> -<span id="cb644-28"><a href="#cb644-28" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb644-29"><a href="#cb644-29" aria-hidden="true" tabindex="-1"></a> tableAttributeContextEnd = {</span> -<span id="cb644-30"><a href="#cb644-30" aria-hidden="true" tabindex="-1"></a> <span class="fu">\group</span>_end:</span> -<span id="cb644-31"><a href="#cb644-31" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb644-32"><a href="#cb644-32" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb644-33"><a href="#cb644-33" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb644-34"><a href="#cb644-34" aria-hidden="true" tabindex="-1"></a><span class="fu">\ExplSyntaxOff</span></span> -<span id="cb644-35"><a href="#cb644-35" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb644-36"><a href="#cb644-36" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb644-37"><a href="#cb644-37" aria-hidden="true" tabindex="-1"></a>See Table <#example-table>.</span> -<span id="cb644-38"><a href="#cb644-38" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb644-39"><a href="#cb644-39" aria-hidden="true" tabindex="-1"></a>| Right | Left | Default | Center |</span> -<span id="cb644-40"><a href="#cb644-40" aria-hidden="true" tabindex="-1"></a>|------:|:-----|---------|:------:|</span> -<span id="cb644-41"><a href="#cb644-41" aria-hidden="true" tabindex="-1"></a>| 12 | 12 | 12 | 12 |</span> -<span id="cb644-42"><a href="#cb644-42" aria-hidden="true" tabindex="-1"></a>| 123 | 123 | 123 | 123 |</span> -<span id="cb644-43"><a href="#cb644-43" aria-hidden="true" tabindex="-1"></a>| 1 | 1 | 1 | 1 |</span> -<span id="cb644-44"><a href="#cb644-44" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb644-45"><a href="#cb644-45" aria-hidden="true" tabindex="-1"></a> : Demonstration of pipe table syntax. {#example-table}</span> -<span id="cb644-46"><a href="#cb644-46" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb644-47"><a href="#cb644-47" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb647"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb647-1"><a href="#cb647-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb647-2"><a href="#cb647-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[</span> +<span id="cb647-3"><a href="#cb647-3" aria-hidden="true" tabindex="-1"></a> pipeTables,</span> +<span id="cb647-4"><a href="#cb647-4" aria-hidden="true" tabindex="-1"></a> tableCaptions,</span> +<span id="cb647-5"><a href="#cb647-5" aria-hidden="true" tabindex="-1"></a> tableAttributes,</span> +<span id="cb647-6"><a href="#cb647-6" aria-hidden="true" tabindex="-1"></a> relativeReferences,</span> +<span id="cb647-7"><a href="#cb647-7" aria-hidden="true" tabindex="-1"></a>]{<span class="ex">markdown</span>}</span> +<span id="cb647-8"><a href="#cb647-8" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>{<span class="ex">expl3</span>}</span> +<span id="cb647-9"><a href="#cb647-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\ExplSyntaxOn</span></span> +<span id="cb647-10"><a href="#cb647-10" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> +<span id="cb647-11"><a href="#cb647-11" aria-hidden="true" tabindex="-1"></a> renderers = {</span> +<span id="cb647-12"><a href="#cb647-12" aria-hidden="true" tabindex="-1"></a> tableAttributeContextBegin = {</span> +<span id="cb647-13"><a href="#cb647-13" aria-hidden="true" tabindex="-1"></a> <span class="fu">\group</span>_begin:</span> +<span id="cb647-14"><a href="#cb647-14" aria-hidden="true" tabindex="-1"></a> <span class="fu">\markdownSetup</span>{</span> +<span id="cb647-15"><a href="#cb647-15" aria-hidden="true" tabindex="-1"></a> renderers = {</span> +<span id="cb647-16"><a href="#cb647-16" aria-hidden="true" tabindex="-1"></a> attributeIdentifier = {</span> +<span id="cb647-17"><a href="#cb647-17" aria-hidden="true" tabindex="-1"></a> <span class="fu">\markdownSetup</span>{</span> +<span id="cb647-18"><a href="#cb647-18" aria-hidden="true" tabindex="-1"></a> renderers = {</span> +<span id="cb647-19"><a href="#cb647-19" aria-hidden="true" tabindex="-1"></a> tableAttributeContextEnd = {</span> +<span id="cb647-20"><a href="#cb647-20" aria-hidden="true" tabindex="-1"></a> <span class="kw">\label</span>{<span class="ex">##1</span>}</span> +<span id="cb647-21"><a href="#cb647-21" aria-hidden="true" tabindex="-1"></a> <span class="fu">\group</span>_end:</span> +<span id="cb647-22"><a href="#cb647-22" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb647-23"><a href="#cb647-23" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb647-24"><a href="#cb647-24" aria-hidden="true" tabindex="-1"></a> }</span> +<span id="cb647-25"><a href="#cb647-25" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb647-26"><a href="#cb647-26" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb647-27"><a href="#cb647-27" aria-hidden="true" tabindex="-1"></a> }</span> +<span id="cb647-28"><a href="#cb647-28" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb647-29"><a href="#cb647-29" aria-hidden="true" tabindex="-1"></a> tableAttributeContextEnd = {</span> +<span id="cb647-30"><a href="#cb647-30" aria-hidden="true" tabindex="-1"></a> <span class="fu">\group</span>_end:</span> +<span id="cb647-31"><a href="#cb647-31" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb647-32"><a href="#cb647-32" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb647-33"><a href="#cb647-33" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb647-34"><a href="#cb647-34" aria-hidden="true" tabindex="-1"></a><span class="fu">\ExplSyntaxOff</span></span> +<span id="cb647-35"><a href="#cb647-35" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb647-36"><a href="#cb647-36" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb647-37"><a href="#cb647-37" aria-hidden="true" tabindex="-1"></a>See Table <#example-table>.</span> +<span id="cb647-38"><a href="#cb647-38" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb647-39"><a href="#cb647-39" aria-hidden="true" tabindex="-1"></a>| Right | Left | Default | Center |</span> +<span id="cb647-40"><a href="#cb647-40" aria-hidden="true" tabindex="-1"></a>|------:|:-----|---------|:------:|</span> +<span id="cb647-41"><a href="#cb647-41" aria-hidden="true" tabindex="-1"></a>| 12 | 12 | 12 | 12 |</span> +<span id="cb647-42"><a href="#cb647-42" aria-hidden="true" tabindex="-1"></a>| 123 | 123 | 123 | 123 |</span> +<span id="cb647-43"><a href="#cb647-43" aria-hidden="true" tabindex="-1"></a>| 1 | 1 | 1 | 1 |</span> +<span id="cb647-44"><a href="#cb647-44" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb647-45"><a href="#cb647-45" aria-hidden="true" tabindex="-1"></a> : Demonstration of pipe table syntax. {#example-table}</span> +<span id="cb647-46"><a href="#cb647-46" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb647-47"><a href="#cb647-47" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb645"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb645-1"><a href="#cb645-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb648"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb648-1"><a href="#cb648-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -12078,9 +12199,9 @@ contain the following text:</p> </blockquote> <h4 data-number="2.3.1.39" id="table-renderer"><span class="header-section-number">2.3.1.39</span> Table Renderer</h4> -<p>The <code>\markdownRendererTable</code> macro represents a table. -This macro will only be produced, when the -<strong><code>pipeTables</code></strong> option is enabled. The macro +<p>The <code>markdownRendererTable</code> macro represents a table. This +macro will only be produced, when the +<code><strong>pipeTables</strong></code> option is enabled. The macro receives the parameters <code>{</code>⟨<em>caption</em>⟩<code>}{</code>⟨<em>number of rows</em>⟩<code>}{</code>⟨<em>number of columns</em>⟩<code>}</code> @@ -12102,114 +12223,115 @@ one of the following:</p> class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb646"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb646-1"><a href="#cb646-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb646-2"><a href="#cb646-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[pipeTables, tableCaptions]{<span class="ex">markdown</span>}</span> -<span id="cb646-3"><a href="#cb646-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\newcount\rowCounter</span></span> -<span id="cb646-4"><a href="#cb646-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\newcount\columnCounter</span></span> -<span id="cb646-5"><a href="#cb646-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\makeatletter</span></span> -<span id="cb646-6"><a href="#cb646-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\processRow</span>#1{<span class="co">%</span></span> -<span id="cb646-7"><a href="#cb646-7" aria-hidden="true" tabindex="-1"></a> <span class="fu">\columnCounter</span>=1<span class="co">%</span></span> -<span id="cb646-8"><a href="#cb646-8" aria-hidden="true" tabindex="-1"></a> <span class="fu">\ifnum\rowCounter</span>=0<span class="fu">\relax</span></span> -<span id="cb646-9"><a href="#cb646-9" aria-hidden="true" tabindex="-1"></a> As for the alignment,</span> -<span id="cb646-10"><a href="#cb646-10" aria-hidden="true" tabindex="-1"></a> <span class="fu">\else</span></span> -<span id="cb646-11"><a href="#cb646-11" aria-hidden="true" tabindex="-1"></a> In row <span class="fu">\the\rowCounter</span>,</span> -<span id="cb646-12"><a href="#cb646-12" aria-hidden="true" tabindex="-1"></a> <span class="fu">\fi</span></span> -<span id="cb646-13"><a href="#cb646-13" aria-hidden="true" tabindex="-1"></a> <span class="fu">\processColumn</span>#1</span> -<span id="cb646-14"><a href="#cb646-14" aria-hidden="true" tabindex="-1"></a> <span class="fu">\advance\rowCounter</span> by 1<span class="fu">\relax</span></span> -<span id="cb646-15"><a href="#cb646-15" aria-hidden="true" tabindex="-1"></a> <span class="fu">\ifnum\rowCounter</span>><span class="fu">\rowTotal\relax</span></span> -<span id="cb646-16"><a href="#cb646-16" aria-hidden="true" tabindex="-1"></a> <span class="fu">\expandafter\@gobble</span></span> -<span id="cb646-17"><a href="#cb646-17" aria-hidden="true" tabindex="-1"></a> <span class="fu">\fi\processRow</span>}<span class="co">%</span></span> -<span id="cb646-18"><a href="#cb646-18" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\processColumn</span>#1{<span class="co">%</span></span> -<span id="cb646-19"><a href="#cb646-19" aria-hidden="true" tabindex="-1"></a> column number <span class="fu">\the\columnCounter</span>{}</span> -<span id="cb646-20"><a href="#cb646-20" aria-hidden="true" tabindex="-1"></a> <span class="fu">\ifnum\rowCounter</span>=0<span class="fu">\relax</span></span> -<span id="cb646-21"><a href="#cb646-21" aria-hidden="true" tabindex="-1"></a> <span class="fu">\if</span>#1d{}has default alignment<span class="fu">\fi</span></span> -<span id="cb646-22"><a href="#cb646-22" aria-hidden="true" tabindex="-1"></a> <span class="fu">\if</span>#1l{}is left-aligned<span class="fu">\fi</span></span> -<span id="cb646-23"><a href="#cb646-23" aria-hidden="true" tabindex="-1"></a> <span class="fu">\if</span>#1c{}is centered<span class="fu">\fi</span></span> -<span id="cb646-24"><a href="#cb646-24" aria-hidden="true" tabindex="-1"></a> <span class="fu">\if</span>#1r{}is right-aligned<span class="fu">\fi</span></span> -<span id="cb646-25"><a href="#cb646-25" aria-hidden="true" tabindex="-1"></a> <span class="fu">\else</span></span> -<span id="cb646-26"><a href="#cb646-26" aria-hidden="true" tabindex="-1"></a> says <span class="fu">\emph</span>{#1}<span class="co">%</span></span> -<span id="cb646-27"><a href="#cb646-27" aria-hidden="true" tabindex="-1"></a> <span class="fu">\fi</span></span> -<span id="cb646-28"><a href="#cb646-28" aria-hidden="true" tabindex="-1"></a> <span class="fu">\advance\columnCounter</span> by 1<span class="fu">\relax</span></span> -<span id="cb646-29"><a href="#cb646-29" aria-hidden="true" tabindex="-1"></a> <span class="fu">\ifnum\columnCounter</span><<span class="fu">\columnTotal\relax</span>, <span class="fu">\fi</span></span> -<span id="cb646-30"><a href="#cb646-30" aria-hidden="true" tabindex="-1"></a> <span class="fu">\ifnum\columnCounter</span>=<span class="fu">\columnTotal\relax</span>, and <span class="fu">\fi</span></span> -<span id="cb646-31"><a href="#cb646-31" aria-hidden="true" tabindex="-1"></a> <span class="fu">\ifnum\columnCounter</span>><span class="fu">\columnTotal\relax</span></span> -<span id="cb646-32"><a href="#cb646-32" aria-hidden="true" tabindex="-1"></a> .<span class="fu">\expandafter\@gobble</span></span> -<span id="cb646-33"><a href="#cb646-33" aria-hidden="true" tabindex="-1"></a> <span class="fu">\fi\processColumn</span>}<span class="co">%</span></span> -<span id="cb646-34"><a href="#cb646-34" aria-hidden="true" tabindex="-1"></a><span class="fu">\makeatother</span></span> -<span id="cb646-35"><a href="#cb646-35" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> -<span id="cb646-36"><a href="#cb646-36" aria-hidden="true" tabindex="-1"></a> renderers = {</span> -<span id="cb646-37"><a href="#cb646-37" aria-hidden="true" tabindex="-1"></a> table = {<span class="co">%</span></span> -<span id="cb646-38"><a href="#cb646-38" aria-hidden="true" tabindex="-1"></a> This is a table with caption <span class="fu">\emph</span>{#1} that is #3 colums wide</span> -<span id="cb646-39"><a href="#cb646-39" aria-hidden="true" tabindex="-1"></a> and #2 rows long.</span> -<span id="cb646-40"><a href="#cb646-40" aria-hidden="true" tabindex="-1"></a> <span class="fu">\rowCounter</span>=0<span class="co">%</span></span> -<span id="cb646-41"><a href="#cb646-41" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\rowTotal</span>{#2}<span class="co">%</span></span> -<span id="cb646-42"><a href="#cb646-42" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\columnTotal</span>{#3}<span class="co">%</span></span> -<span id="cb646-43"><a href="#cb646-43" aria-hidden="true" tabindex="-1"></a> <span class="fu">\processRow</span></span> -<span id="cb646-44"><a href="#cb646-44" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb646-45"><a href="#cb646-45" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb646-46"><a href="#cb646-46" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb646-47"><a href="#cb646-47" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb646-48"><a href="#cb646-48" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb646-49"><a href="#cb646-49" aria-hidden="true" tabindex="-1"></a>| Right | Left | Default | Center |</span> -<span id="cb646-50"><a href="#cb646-50" aria-hidden="true" tabindex="-1"></a>|------:|:-----|---------|:------:|</span> -<span id="cb646-51"><a href="#cb646-51" aria-hidden="true" tabindex="-1"></a>| 12 | 12 | 12 | 12 |</span> -<span id="cb646-52"><a href="#cb646-52" aria-hidden="true" tabindex="-1"></a>| 123 | 123 | 123 | 123 |</span> -<span id="cb646-53"><a href="#cb646-53" aria-hidden="true" tabindex="-1"></a>| 1 | 1 | 1 | 1 |</span> -<span id="cb646-54"><a href="#cb646-54" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb646-55"><a href="#cb646-55" aria-hidden="true" tabindex="-1"></a> : Demonstration of pipe table syntax</span> -<span id="cb646-56"><a href="#cb646-56" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb646-57"><a href="#cb646-57" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb649"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb649-1"><a href="#cb649-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb649-2"><a href="#cb649-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[pipeTables, tableCaptions]{<span class="ex">markdown</span>}</span> +<span id="cb649-3"><a href="#cb649-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\newcount\rowCounter</span></span> +<span id="cb649-4"><a href="#cb649-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\newcount\columnCounter</span></span> +<span id="cb649-5"><a href="#cb649-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\makeatletter</span></span> +<span id="cb649-6"><a href="#cb649-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\processRow</span>#1{<span class="co">%</span></span> +<span id="cb649-7"><a href="#cb649-7" aria-hidden="true" tabindex="-1"></a> <span class="fu">\columnCounter</span>=1<span class="co">%</span></span> +<span id="cb649-8"><a href="#cb649-8" aria-hidden="true" tabindex="-1"></a> <span class="fu">\ifnum\rowCounter</span>=0<span class="fu">\relax</span></span> +<span id="cb649-9"><a href="#cb649-9" aria-hidden="true" tabindex="-1"></a> As for the alignment,</span> +<span id="cb649-10"><a href="#cb649-10" aria-hidden="true" tabindex="-1"></a> <span class="fu">\else</span></span> +<span id="cb649-11"><a href="#cb649-11" aria-hidden="true" tabindex="-1"></a> In row <span class="fu">\the\rowCounter</span>,</span> +<span id="cb649-12"><a href="#cb649-12" aria-hidden="true" tabindex="-1"></a> <span class="fu">\fi</span></span> +<span id="cb649-13"><a href="#cb649-13" aria-hidden="true" tabindex="-1"></a> <span class="fu">\processColumn</span>#1</span> +<span id="cb649-14"><a href="#cb649-14" aria-hidden="true" tabindex="-1"></a> <span class="fu">\advance\rowCounter</span> by 1<span class="fu">\relax</span></span> +<span id="cb649-15"><a href="#cb649-15" aria-hidden="true" tabindex="-1"></a> <span class="fu">\ifnum\rowCounter</span>><span class="fu">\rowTotal\relax</span></span> +<span id="cb649-16"><a href="#cb649-16" aria-hidden="true" tabindex="-1"></a> <span class="fu">\expandafter\@gobble</span></span> +<span id="cb649-17"><a href="#cb649-17" aria-hidden="true" tabindex="-1"></a> <span class="fu">\fi\processRow</span>}<span class="co">%</span></span> +<span id="cb649-18"><a href="#cb649-18" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\processColumn</span>#1{<span class="co">%</span></span> +<span id="cb649-19"><a href="#cb649-19" aria-hidden="true" tabindex="-1"></a> column number <span class="fu">\the\columnCounter</span>{}</span> +<span id="cb649-20"><a href="#cb649-20" aria-hidden="true" tabindex="-1"></a> <span class="fu">\ifnum\rowCounter</span>=0<span class="fu">\relax</span></span> +<span id="cb649-21"><a href="#cb649-21" aria-hidden="true" tabindex="-1"></a> <span class="fu">\if</span>#1d{}has default alignment<span class="fu">\fi</span></span> +<span id="cb649-22"><a href="#cb649-22" aria-hidden="true" tabindex="-1"></a> <span class="fu">\if</span>#1l{}is left-aligned<span class="fu">\fi</span></span> +<span id="cb649-23"><a href="#cb649-23" aria-hidden="true" tabindex="-1"></a> <span class="fu">\if</span>#1c{}is centered<span class="fu">\fi</span></span> +<span id="cb649-24"><a href="#cb649-24" aria-hidden="true" tabindex="-1"></a> <span class="fu">\if</span>#1r{}is right-aligned<span class="fu">\fi</span></span> +<span id="cb649-25"><a href="#cb649-25" aria-hidden="true" tabindex="-1"></a> <span class="fu">\else</span></span> +<span id="cb649-26"><a href="#cb649-26" aria-hidden="true" tabindex="-1"></a> says <span class="fu">\emph</span>{#1}<span class="co">%</span></span> +<span id="cb649-27"><a href="#cb649-27" aria-hidden="true" tabindex="-1"></a> <span class="fu">\fi</span></span> +<span id="cb649-28"><a href="#cb649-28" aria-hidden="true" tabindex="-1"></a> <span class="fu">\advance\columnCounter</span> by 1<span class="fu">\relax</span></span> +<span id="cb649-29"><a href="#cb649-29" aria-hidden="true" tabindex="-1"></a> <span class="fu">\ifnum\columnCounter</span><<span class="fu">\columnTotal\relax</span>, <span class="fu">\fi</span></span> +<span id="cb649-30"><a href="#cb649-30" aria-hidden="true" tabindex="-1"></a> <span class="fu">\ifnum\columnCounter</span>=<span class="fu">\columnTotal\relax</span>, and <span class="fu">\fi</span></span> +<span id="cb649-31"><a href="#cb649-31" aria-hidden="true" tabindex="-1"></a> <span class="fu">\ifnum\columnCounter</span>><span class="fu">\columnTotal\relax</span></span> +<span id="cb649-32"><a href="#cb649-32" aria-hidden="true" tabindex="-1"></a> .<span class="fu">\expandafter\@gobble</span></span> +<span id="cb649-33"><a href="#cb649-33" aria-hidden="true" tabindex="-1"></a> <span class="fu">\fi\processColumn</span>}<span class="co">%</span></span> +<span id="cb649-34"><a href="#cb649-34" aria-hidden="true" tabindex="-1"></a><span class="fu">\makeatother</span></span> +<span id="cb649-35"><a href="#cb649-35" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> +<span id="cb649-36"><a href="#cb649-36" aria-hidden="true" tabindex="-1"></a> renderers = {</span> +<span id="cb649-37"><a href="#cb649-37" aria-hidden="true" tabindex="-1"></a> table = {<span class="co">%</span></span> +<span id="cb649-38"><a href="#cb649-38" aria-hidden="true" tabindex="-1"></a> This is a table with caption <span class="fu">\emph</span>{#1} that is #3 columns wide</span> +<span id="cb649-39"><a href="#cb649-39" aria-hidden="true" tabindex="-1"></a> and #2 rows long.</span> +<span id="cb649-40"><a href="#cb649-40" aria-hidden="true" tabindex="-1"></a> <span class="fu">\rowCounter</span>=0<span class="co">%</span></span> +<span id="cb649-41"><a href="#cb649-41" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\rowTotal</span>{#2}<span class="co">%</span></span> +<span id="cb649-42"><a href="#cb649-42" aria-hidden="true" tabindex="-1"></a> <span class="fu">\def\columnTotal</span>{#3}<span class="co">%</span></span> +<span id="cb649-43"><a href="#cb649-43" aria-hidden="true" tabindex="-1"></a> <span class="fu">\processRow</span></span> +<span id="cb649-44"><a href="#cb649-44" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb649-45"><a href="#cb649-45" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb649-46"><a href="#cb649-46" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb649-47"><a href="#cb649-47" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb649-48"><a href="#cb649-48" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb649-49"><a href="#cb649-49" aria-hidden="true" tabindex="-1"></a>| Right | Left | Default | Center |</span> +<span id="cb649-50"><a href="#cb649-50" aria-hidden="true" tabindex="-1"></a>|------:|:-----|---------|:------:|</span> +<span id="cb649-51"><a href="#cb649-51" aria-hidden="true" tabindex="-1"></a>| 12 | 12 | 12 | 12 |</span> +<span id="cb649-52"><a href="#cb649-52" aria-hidden="true" tabindex="-1"></a>| 123 | 123 | 123 | 123 |</span> +<span id="cb649-53"><a href="#cb649-53" aria-hidden="true" tabindex="-1"></a>| 1 | 1 | 1 | 1 |</span> +<span id="cb649-54"><a href="#cb649-54" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb649-55"><a href="#cb649-55" aria-hidden="true" tabindex="-1"></a> : Demonstration of pipe table syntax</span> +<span id="cb649-56"><a href="#cb649-56" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb649-57"><a href="#cb649-57" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb647"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb647-1"><a href="#cb647-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb650"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb650-1"><a href="#cb650-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> <p>This is a table with caption <em>Demonstration of pipe table -syntax</em> that is 4 colums wide and 4 rows long. As for the alignment, -column number 1 is right-aligned, column number 2 is left-aligned, -column number 3 has default alignment, and column number 4 is centered. -In row 1, column number 1 says <em>Right</em>, column number 2 says -<em>Left</em>, column number 3 says <em>Default</em>, and column number -4 says <em>Center</em>. In row 2, column number 1 says <em>12</em>, -column number 2 says <em>12</em>, column number 3 says <em>12</em>, and -column number 4 says <em>12</em>. In row 3, column number 1 says -<em>123</em>, column number 2 says <em>123</em>, column number 3 says -<em>123</em>, and column number 4 says <em>123</em>. In row 4, column -number 1 says <em>1</em>, column number 2 says <em>1</em>, column number -3 says <em>1</em>, and column number 4 says <em>1</em>.</p> +syntax</em> that is 4 columns wide and 4 rows long. As for the +alignment, column number 1 is right-aligned, column number 2 is +left-aligned, column number 3 has default alignment, and column number 4 +is centered. In row 1, column number 1 says <em>Right</em>, column +number 2 says <em>Left</em>, column number 3 says <em>Default</em>, and +column number 4 says <em>Center</em>. In row 2, column number 1 says +<em>12</em>, column number 2 says <em>12</em>, column number 3 says +<em>12</em>, and column number 4 says <em>12</em>. In row 3, column +number 1 says <em>123</em>, column number 2 says <em>123</em>, column +number 3 says <em>123</em>, and column number 4 says <em>123</em>. In +row 4, column number 1 says <em>1</em>, column number 2 says <em>1</em>, +column number 3 says <em>1</em>, and column number 4 says +<em>1</em>.</p> </blockquote> <h4 data-number="2.3.1.40" id="tex-math-renderers"><span class="header-section-number">2.3.1.40</span> <span class="tex">T<sub>e</sub>X</span> Math Renderers</h4> -<p>The <code>\markdownRendererInlineMath</code> and -<code>\markdownRendererDisplayMath</code> macros represent inline and +<p>The <code>markdownRendererInlineMath</code> and +<code>markdownRendererDisplayMath</code> macros represent inline and display <span class="tex">T<sub>e</sub>X</span> math. Both macros receive a single argument that corresponds to the <span class="tex">T<sub>e</sub>X</span> math content. These macros will only -be produced, when the <strong><code>texMathDollars</code></strong>, -<strong><code>texMathSingleBackslash</code></strong>, or -<strong><code>texMathDoubleBackslash</code></strong> option are +be produced, when the <code><strong>texMathDollars</strong></code>, +<code><strong>texMathSingleBackslash</strong></code>, or +<code><strong>texMathDoubleBackslash</strong></code> option are enabled.</p> <h5 class="unnumbered" id="plain-tex-example-44">Plain <span class="tex">T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb648"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb648-1"><a href="#cb648-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> -<span id="cb648-2"><a href="#cb648-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionTexMathDollars</span>{true}</span> -<span id="cb648-3"><a href="#cb648-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererInlineMath</span>#1{<span class="ss">$#1</span><span class="sc">\dots</span><span class="ss">$</span>}</span> -<span id="cb648-4"><a href="#cb648-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererDisplayMath</span>#1{<span class="ss">$$#1</span><span class="sc">\nonumber</span><span class="ss">$$</span>}</span> -<span id="cb648-5"><a href="#cb648-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> -<span id="cb648-6"><a href="#cb648-6" aria-hidden="true" tabindex="-1"></a><span class="ss">$E=mc^2$</span></span> -<span id="cb648-7"><a href="#cb648-7" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb648-8"><a href="#cb648-8" aria-hidden="true" tabindex="-1"></a><span class="ss">$$</span><span class="sc">\hat</span><span class="ss">{f} </span><span class="sc">\left</span><span class="ss"> ( </span><span class="sc">\xi</span><span class="ss"> </span><span class="sc">\right</span><span class="ss"> )= </span><span class="sc">\int</span><span class="ss">_{-</span><span class="sc">\infty</span><span class="ss">}^{</span><span class="sc">\infty</span><span class="ss">} f</span><span class="sc">\left</span><span class="ss"> ( x </span><span class="sc">\right</span><span class="ss"> ) e^{-i2</span><span class="sc">\pi</span><span class="ss"> </span><span class="sc">\xi</span><span class="ss"> x} dx$$</span></span> -<span id="cb648-9"><a href="#cb648-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> -<span id="cb648-10"><a href="#cb648-10" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> +<div class="sourceCode" id="cb651"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb651-1"><a href="#cb651-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> +<span id="cb651-2"><a href="#cb651-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionTexMathDollars</span>{true}</span> +<span id="cb651-3"><a href="#cb651-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererInlineMath</span>#1{<span class="ss">$#1</span><span class="sc">\dots</span><span class="ss">$</span>}</span> +<span id="cb651-4"><a href="#cb651-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererDisplayMath</span>#1{<span class="ss">$$#1</span><span class="sc">\nonumber</span><span class="ss">$$</span>}</span> +<span id="cb651-5"><a href="#cb651-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> +<span id="cb651-6"><a href="#cb651-6" aria-hidden="true" tabindex="-1"></a><span class="ss">$E=mc^2$</span></span> +<span id="cb651-7"><a href="#cb651-7" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb651-8"><a href="#cb651-8" aria-hidden="true" tabindex="-1"></a><span class="ss">$$</span><span class="sc">\hat</span><span class="ss">{f} </span><span class="sc">\left</span><span class="ss"> ( </span><span class="sc">\xi</span><span class="ss"> </span><span class="sc">\right</span><span class="ss"> )= </span><span class="sc">\int</span><span class="ss">_{-</span><span class="sc">\infty</span><span class="ss">}^{</span><span class="sc">\infty</span><span class="ss">} f</span><span class="sc">\left</span><span class="ss"> ( x </span><span class="sc">\right</span><span class="ss"> ) e^{-i2</span><span class="sc">\pi</span><span class="ss"> </span><span class="sc">\xi</span><span class="ss"> x} dx$$</span></span> +<span id="cb651-9"><a href="#cb651-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> +<span id="cb651-10"><a href="#cb651-10" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb649"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb649-1"><a href="#cb649-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb652"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb652-1"><a href="#cb652-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -12222,22 +12344,22 @@ class="math display"><em>f̂</em>(<em>ξ</em>) = ∫<sub>−∞</sub><sup> class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb650"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb650-1"><a href="#cb650-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb650-2"><a href="#cb650-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[texMathDollars]{<span class="ex">markdown</span>}</span> -<span id="cb650-3"><a href="#cb650-3" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>{<span class="ex">amsmath</span>}</span> -<span id="cb650-4"><a href="#cb650-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererInlineMath</span>#1{<span class="kw">\begin</span>{<span class="ex">math</span>}<span class="ss">#1</span><span class="sc">\dots\end</span><span class="ss">{math}}</span></span> -<span id="cb650-5"><a href="#cb650-5" aria-hidden="true" tabindex="-1"></a><span class="sc">\def\markdownRendererDisplayMath</span><span class="ss">#1{</span><span class="kw">\begin</span>{<span class="ex">equation</span>}<span class="ss">#1</span><span class="sc">\end</span><span class="ss">{equation}}</span></span> -<span id="cb650-6"><a href="#cb650-6" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb650-7"><a href="#cb650-7" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb650-8"><a href="#cb650-8" aria-hidden="true" tabindex="-1"></a><span class="er">$</span><span class="ss">E=mc^2</span><span class="er">$</span></span> -<span id="cb650-9"><a href="#cb650-9" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb650-10"><a href="#cb650-10" aria-hidden="true" tabindex="-1"></a><span class="er">$$</span><span class="sc">\hat</span><span class="ss">{f} </span><span class="sc">\left</span><span class="ss"> ( </span><span class="sc">\xi</span><span class="ss"> </span><span class="sc">\right</span><span class="ss"> )= </span><span class="sc">\int</span><span class="ss">_{-</span><span class="sc">\infty</span><span class="ss">}^{</span><span class="sc">\infty</span><span class="ss">} f</span><span class="sc">\left</span><span class="ss"> ( x </span><span class="sc">\right</span><span class="ss"> ) e^{-i2</span><span class="sc">\pi</span><span class="ss"> </span><span class="sc">\xi</span><span class="ss"> x} dx</span><span class="er">$$</span></span> -<span id="cb650-11"><a href="#cb650-11" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb650-12"><a href="#cb650-12" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb653"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb653-1"><a href="#cb653-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb653-2"><a href="#cb653-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[texMathDollars]{<span class="ex">markdown</span>}</span> +<span id="cb653-3"><a href="#cb653-3" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>{<span class="ex">amsmath</span>}</span> +<span id="cb653-4"><a href="#cb653-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererInlineMath</span>#1{<span class="kw">\begin</span>{<span class="ex">math</span>}<span class="ss">#1</span><span class="sc">\dots</span><span class="kw">\end</span>{<span class="ex">math</span>}}</span> +<span id="cb653-5"><a href="#cb653-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererDisplayMath</span>#1{<span class="kw">\begin</span>{<span class="ex">equation</span>}<span class="ss">#1</span><span class="kw">\end</span>{<span class="ex">equation</span>}}</span> +<span id="cb653-6"><a href="#cb653-6" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb653-7"><a href="#cb653-7" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb653-8"><a href="#cb653-8" aria-hidden="true" tabindex="-1"></a><span class="ss">$E=mc^2$</span></span> +<span id="cb653-9"><a href="#cb653-9" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb653-10"><a href="#cb653-10" aria-hidden="true" tabindex="-1"></a><span class="ss">$$</span><span class="sc">\hat</span><span class="ss">{f} </span><span class="sc">\left</span><span class="ss"> ( </span><span class="sc">\xi</span><span class="ss"> </span><span class="sc">\right</span><span class="ss"> )= </span><span class="sc">\int</span><span class="ss">_{-</span><span class="sc">\infty</span><span class="ss">}^{</span><span class="sc">\infty</span><span class="ss">} f</span><span class="sc">\left</span><span class="ss"> ( x </span><span class="sc">\right</span><span class="ss"> ) e^{-i2</span><span class="sc">\pi</span><span class="ss"> </span><span class="sc">\xi</span><span class="ss"> x} dx$$</span></span> +<span id="cb653-11"><a href="#cb653-11" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb653-12"><a href="#cb653-12" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb651"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb651-1"><a href="#cb651-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb654"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb654-1"><a href="#cb654-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -12250,21 +12372,21 @@ class="math display"><em>f̂</em>(<em>ξ</em>) = ∫<sub>−∞</sub><sup> class="tex">T<sub>e</sub>X</span>t Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb652"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb652-1"><a href="#cb652-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> -<span id="cb652-2"><a href="#cb652-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span>[texMathDollars = yes]</span> -<span id="cb652-3"><a href="#cb652-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererInlineMath</span>#1{<span class="ss">$#1</span><span class="sc">\dots</span><span class="ss">$</span>}<span class="co">%</span></span> -<span id="cb652-4"><a href="#cb652-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererDisplayMath</span>#1{<span class="fu">\placeformula\startformula</span>#1<span class="fu">\stopformula</span>}<span class="co">%</span></span> -<span id="cb652-5"><a href="#cb652-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> -<span id="cb652-6"><a href="#cb652-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> -<span id="cb652-7"><a href="#cb652-7" aria-hidden="true" tabindex="-1"></a><span class="ss">$E=mc^2$</span></span> -<span id="cb652-8"><a href="#cb652-8" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb652-9"><a href="#cb652-9" aria-hidden="true" tabindex="-1"></a><span class="ss">$$</span><span class="sc">\hat</span><span class="ss">{f} </span><span class="sc">\left</span><span class="ss"> ( </span><span class="sc">\xi</span><span class="ss"> </span><span class="sc">\right</span><span class="ss"> )= </span><span class="sc">\int</span><span class="ss">_{-</span><span class="sc">\infty</span><span class="ss">}^{</span><span class="sc">\infty</span><span class="ss">} f</span><span class="sc">\left</span><span class="ss"> ( x </span><span class="sc">\right</span><span class="ss"> ) e^{-i2</span><span class="sc">\pi</span><span class="ss"> </span><span class="sc">\xi</span><span class="ss"> x} dx$$</span></span> -<span id="cb652-10"><a href="#cb652-10" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> -<span id="cb652-11"><a href="#cb652-11" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> +<div class="sourceCode" id="cb655"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb655-1"><a href="#cb655-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> +<span id="cb655-2"><a href="#cb655-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span>[texMathDollars = yes]</span> +<span id="cb655-3"><a href="#cb655-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererInlineMath</span>#1{<span class="ss">$#1</span><span class="sc">\dots</span><span class="ss">$</span>}<span class="co">%</span></span> +<span id="cb655-4"><a href="#cb655-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererDisplayMath</span>#1{<span class="fu">\placeformula\startformula</span>#1<span class="fu">\stopformula</span>}<span class="co">%</span></span> +<span id="cb655-5"><a href="#cb655-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> +<span id="cb655-6"><a href="#cb655-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> +<span id="cb655-7"><a href="#cb655-7" aria-hidden="true" tabindex="-1"></a><span class="ss">$E=mc^2$</span></span> +<span id="cb655-8"><a href="#cb655-8" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb655-9"><a href="#cb655-9" aria-hidden="true" tabindex="-1"></a><span class="ss">$$</span><span class="sc">\hat</span><span class="ss">{f} </span><span class="sc">\left</span><span class="ss"> ( </span><span class="sc">\xi</span><span class="ss"> </span><span class="sc">\right</span><span class="ss"> )= </span><span class="sc">\int</span><span class="ss">_{-</span><span class="sc">\infty</span><span class="ss">}^{</span><span class="sc">\infty</span><span class="ss">} f</span><span class="sc">\left</span><span class="ss"> ( x </span><span class="sc">\right</span><span class="ss"> ) e^{-i2</span><span class="sc">\pi</span><span class="ss"> </span><span class="sc">\xi</span><span class="ss"> x} dx$$</span></span> +<span id="cb655-10"><a href="#cb655-10" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> +<span id="cb655-11"><a href="#cb655-11" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb653"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb653-1"><a href="#cb653-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb656"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb656-1"><a href="#cb656-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -12276,26 +12398,26 @@ class="math display"><em>f̂</em>(<em>ξ</em>) = ∫<sub>−∞</sub><sup> <h4 data-number="2.3.1.41" id="thematic-break-renderer"><span class="header-section-number">2.3.1.41</span> Thematic Break Renderer</h4> -<p>The <code>\markdownRendererThematicBreak</code> macro represents a +<p>The <code>markdownRendererThematicBreak</code> macro represents a thematic break. The macro receives no arguments.</p> <h5 class="unnumbered" id="plain-tex-example-45">Plain <span class="tex">T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb654"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb654-1"><a href="#cb654-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> -<span id="cb654-2"><a href="#cb654-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererThematicBreak</span>{<span class="fu">\vfil\break</span>}</span> -<span id="cb654-3"><a href="#cb654-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> -<span id="cb654-4"><a href="#cb654-4" aria-hidden="true" tabindex="-1"></a>This is the first page.</span> -<span id="cb654-5"><a href="#cb654-5" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb654-6"><a href="#cb654-6" aria-hidden="true" tabindex="-1"></a>***</span> -<span id="cb654-7"><a href="#cb654-7" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb654-8"><a href="#cb654-8" aria-hidden="true" tabindex="-1"></a>This is the second page.</span> -<span id="cb654-9"><a href="#cb654-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> -<span id="cb654-10"><a href="#cb654-10" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> +<div class="sourceCode" id="cb657"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb657-1"><a href="#cb657-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> +<span id="cb657-2"><a href="#cb657-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererThematicBreak</span>{<span class="fu">\vfil\break</span>}</span> +<span id="cb657-3"><a href="#cb657-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> +<span id="cb657-4"><a href="#cb657-4" aria-hidden="true" tabindex="-1"></a>This is the first page.</span> +<span id="cb657-5"><a href="#cb657-5" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb657-6"><a href="#cb657-6" aria-hidden="true" tabindex="-1"></a>***</span> +<span id="cb657-7"><a href="#cb657-7" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb657-8"><a href="#cb657-8" aria-hidden="true" tabindex="-1"></a>This is the second page.</span> +<span id="cb657-9"><a href="#cb657-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> +<span id="cb657-10"><a href="#cb657-10" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb655"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb655-1"><a href="#cb655-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb658"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb658-1"><a href="#cb658-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -12307,26 +12429,26 @@ contain the following text:</p> class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb656"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb656-1"><a href="#cb656-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb656-2"><a href="#cb656-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>{<span class="ex">markdown</span>}</span> -<span id="cb656-3"><a href="#cb656-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> -<span id="cb656-4"><a href="#cb656-4" aria-hidden="true" tabindex="-1"></a> renderers = {</span> -<span id="cb656-5"><a href="#cb656-5" aria-hidden="true" tabindex="-1"></a> thematicBreak = <span class="fu">\newpage</span>,</span> -<span id="cb656-6"><a href="#cb656-6" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb656-7"><a href="#cb656-7" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb656-8"><a href="#cb656-8" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb656-9"><a href="#cb656-9" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb656-10"><a href="#cb656-10" aria-hidden="true" tabindex="-1"></a>This is the first page.</span> -<span id="cb656-11"><a href="#cb656-11" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb656-12"><a href="#cb656-12" aria-hidden="true" tabindex="-1"></a>***</span> -<span id="cb656-13"><a href="#cb656-13" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb656-14"><a href="#cb656-14" aria-hidden="true" tabindex="-1"></a>This is the second page.</span> -<span id="cb656-15"><a href="#cb656-15" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb656-16"><a href="#cb656-16" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb659"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb659-1"><a href="#cb659-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb659-2"><a href="#cb659-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>{<span class="ex">markdown</span>}</span> +<span id="cb659-3"><a href="#cb659-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> +<span id="cb659-4"><a href="#cb659-4" aria-hidden="true" tabindex="-1"></a> renderers = {</span> +<span id="cb659-5"><a href="#cb659-5" aria-hidden="true" tabindex="-1"></a> thematicBreak = <span class="fu">\newpage</span>,</span> +<span id="cb659-6"><a href="#cb659-6" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb659-7"><a href="#cb659-7" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb659-8"><a href="#cb659-8" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb659-9"><a href="#cb659-9" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb659-10"><a href="#cb659-10" aria-hidden="true" tabindex="-1"></a>This is the first page.</span> +<span id="cb659-11"><a href="#cb659-11" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb659-12"><a href="#cb659-12" aria-hidden="true" tabindex="-1"></a>***</span> +<span id="cb659-13"><a href="#cb659-13" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb659-14"><a href="#cb659-14" aria-hidden="true" tabindex="-1"></a>This is the second page.</span> +<span id="cb659-15"><a href="#cb659-15" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb659-16"><a href="#cb659-16" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb657"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb657-1"><a href="#cb657-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb660"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb660-1"><a href="#cb660-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -12338,21 +12460,21 @@ contain the following text:</p> class="tex">T<sub>e</sub>X</span>t Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb658"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb658-1"><a href="#cb658-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> -<span id="cb658-2"><a href="#cb658-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererThematicBreak</span>{<span class="fu">\page</span>[yes]}</span> -<span id="cb658-3"><a href="#cb658-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> -<span id="cb658-4"><a href="#cb658-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> -<span id="cb658-5"><a href="#cb658-5" aria-hidden="true" tabindex="-1"></a>This is the first page.</span> -<span id="cb658-6"><a href="#cb658-6" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb658-7"><a href="#cb658-7" aria-hidden="true" tabindex="-1"></a>***</span> -<span id="cb658-8"><a href="#cb658-8" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb658-9"><a href="#cb658-9" aria-hidden="true" tabindex="-1"></a>This is the second page.</span> -<span id="cb658-10"><a href="#cb658-10" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> -<span id="cb658-11"><a href="#cb658-11" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> +<div class="sourceCode" id="cb661"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb661-1"><a href="#cb661-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> +<span id="cb661-2"><a href="#cb661-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererThematicBreak</span>{<span class="fu">\page</span>[yes]}</span> +<span id="cb661-3"><a href="#cb661-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> +<span id="cb661-4"><a href="#cb661-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> +<span id="cb661-5"><a href="#cb661-5" aria-hidden="true" tabindex="-1"></a>This is the first page.</span> +<span id="cb661-6"><a href="#cb661-6" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb661-7"><a href="#cb661-7" aria-hidden="true" tabindex="-1"></a>***</span> +<span id="cb661-8"><a href="#cb661-8" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb661-9"><a href="#cb661-9" aria-hidden="true" tabindex="-1"></a>This is the second page.</span> +<span id="cb661-10"><a href="#cb661-10" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> +<span id="cb661-11"><a href="#cb661-11" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb659"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb659-1"><a href="#cb659-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb662"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb662-1"><a href="#cb662-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -12362,11 +12484,11 @@ contain the following text:</p> </blockquote> <h4 data-number="2.3.1.42" id="tickbox-renderers"><span class="header-section-number">2.3.1.42</span> Tickbox Renderers</h4> -<p>The macros named <code>\markdownRendererTickedBox</code>, -<code>\markdownRendererHalfTickedBox</code>, and -<code>\markdownRendererUntickedBox</code> represent ticked and unticked +<p>The macros named <code>markdownRendererTickedBox</code>, +<code>markdownRendererHalfTickedBox</code>, and +<code>markdownRendererUntickedBox</code> represent ticked and unticked boxes, respectively. These macros will either be produced, when the -<strong><code>taskLists</code></strong> option is enabled, or when the +<code><strong>taskLists</strong></code> option is enabled, or when the Ballot Box with X (☒, U+2612), Hourglass (⌛, U+231B) or Ballot Box (☐, U+2610) Unicode characters are encountered in the markdown input, respectively.</p> @@ -12374,24 +12496,24 @@ respectively.</p> class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb660"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb660-1"><a href="#cb660-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb660-2"><a href="#cb660-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[taskLists]{<span class="ex">markdown</span>}</span> -<span id="cb660-3"><a href="#cb660-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> -<span id="cb660-4"><a href="#cb660-4" aria-hidden="true" tabindex="-1"></a> renderers = {</span> -<span id="cb660-5"><a href="#cb660-5" aria-hidden="true" tabindex="-1"></a> untickedBox = No,</span> -<span id="cb660-6"><a href="#cb660-6" aria-hidden="true" tabindex="-1"></a> tickedBox = Yes,</span> -<span id="cb660-7"><a href="#cb660-7" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb660-8"><a href="#cb660-8" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb660-9"><a href="#cb660-9" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb660-10"><a href="#cb660-10" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb660-11"><a href="#cb660-11" aria-hidden="true" tabindex="-1"></a>- [ ] you can't.</span> -<span id="cb660-12"><a href="#cb660-12" aria-hidden="true" tabindex="-1"></a>- [x] I can!</span> -<span id="cb660-13"><a href="#cb660-13" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb660-14"><a href="#cb660-14" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb663"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb663-1"><a href="#cb663-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb663-2"><a href="#cb663-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[taskLists]{<span class="ex">markdown</span>}</span> +<span id="cb663-3"><a href="#cb663-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> +<span id="cb663-4"><a href="#cb663-4" aria-hidden="true" tabindex="-1"></a> renderers = {</span> +<span id="cb663-5"><a href="#cb663-5" aria-hidden="true" tabindex="-1"></a> untickedBox = No,</span> +<span id="cb663-6"><a href="#cb663-6" aria-hidden="true" tabindex="-1"></a> tickedBox = Yes,</span> +<span id="cb663-7"><a href="#cb663-7" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb663-8"><a href="#cb663-8" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb663-9"><a href="#cb663-9" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb663-10"><a href="#cb663-10" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb663-11"><a href="#cb663-11" aria-hidden="true" tabindex="-1"></a>- [ ] you can't.</span> +<span id="cb663-12"><a href="#cb663-12" aria-hidden="true" tabindex="-1"></a>- [x] I can!</span> +<span id="cb663-13"><a href="#cb663-13" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb663-14"><a href="#cb663-14" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb661"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb661-1"><a href="#cb661-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb664"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb664-1"><a href="#cb664-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -12404,20 +12526,20 @@ contain the following text:</p> class="tex">T<sub>e</sub>X</span>t Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb662"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb662-1"><a href="#cb662-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> -<span id="cb662-2"><a href="#cb662-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span>[taskLists = yes]</span> -<span id="cb662-3"><a href="#cb662-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererUntickedBox</span>{No}</span> -<span id="cb662-4"><a href="#cb662-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererTickedBox</span>{Yes}</span> -<span id="cb662-5"><a href="#cb662-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> -<span id="cb662-6"><a href="#cb662-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> -<span id="cb662-7"><a href="#cb662-7" aria-hidden="true" tabindex="-1"></a>- [ ] you can't.</span> -<span id="cb662-8"><a href="#cb662-8" aria-hidden="true" tabindex="-1"></a>- [x] I can!</span> -<span id="cb662-9"><a href="#cb662-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> -<span id="cb662-10"><a href="#cb662-10" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> +<div class="sourceCode" id="cb665"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb665-1"><a href="#cb665-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> +<span id="cb665-2"><a href="#cb665-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span>[taskLists = yes]</span> +<span id="cb665-3"><a href="#cb665-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererUntickedBox</span>{No}</span> +<span id="cb665-4"><a href="#cb665-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererTickedBox</span>{Yes}</span> +<span id="cb665-5"><a href="#cb665-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> +<span id="cb665-6"><a href="#cb665-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> +<span id="cb665-7"><a href="#cb665-7" aria-hidden="true" tabindex="-1"></a>- [ ] you can't.</span> +<span id="cb665-8"><a href="#cb665-8" aria-hidden="true" tabindex="-1"></a>- [x] I can!</span> +<span id="cb665-9"><a href="#cb665-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> +<span id="cb665-10"><a href="#cb665-10" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb663"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb663-1"><a href="#cb663-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb666"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb666-1"><a href="#cb666-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -12426,62 +12548,103 @@ contain the following text:</p> <li>Yes I can!</li> </ul> </blockquote> -<h4 data-number="2.3.1.43" id="yamlmetadatarenderers"><span -class="header-section-number">2.3.1.43</span> YAML Metadata +<h4 data-number="2.3.1.43" id="warning-and-error-renderers"><span +class="header-section-number">2.3.1.43</span> Warning and Error Renderers</h4> -<p>The <code>\markdownRendererJekyllDataBegin</code> macro represents -the beginning of a <abbr>yaml</abbr> document. This macro will only be -produced when the <strong><code>jekyllData</code></strong> option is +<p>The <code>markdownRendererWarning</code> and +<code>markdownRendererError</code> macros represent warnings and errors +produced by the markdown parser. Both macros receive four +parameters:</p> +<ol type="1"> +<li>The fully escaped text of the warning or error that can be directly +typeset</li> +<li>The raw text of the warning or error that can be used outside +typesetting for e.g. logging the warning or error.</li> +<li>The fully escaped text with more details about the warning or error +that can be directly typeset. Can be empty, unlike the first two +parameters.</li> +<li>The raw text with more details about the warning or error that can +be used outside typesetting for e.g. logging the warning or error. Can +be empty, unlike the first two parameters.</li> +</ol> +<h4 data-number="2.3.1.44" id="yamlmetadatarenderers"><span +class="header-section-number">2.3.1.44</span> YAML Metadata +Renderers</h4> +<p>The <code>markdownRendererJekyllDataBegin</code> macro represents the +beginning of a <abbr>yaml</abbr> document. This macro will only be +produced when the <code><strong>jekyllData</strong></code> option is enabled. The macro receives no arguments.</p> -<p>The <code>\markdownRendererJekyllDataEnd</code> macro represents the +<p>The <code>markdownRendererJekyllDataEnd</code> macro represents the end of a <abbr>yaml</abbr> document. This macro will only be produced -when the <strong><code>jekyllData</code></strong> option is enabled. The +when the <code><strong>jekyllData</strong></code> option is enabled. The macro receives no arguments.</p> -<p>The <code>\markdownRendererJekyllDataMappingBegin</code> macro +<p>The <code>markdownRendererJekyllDataMappingBegin</code> macro represents the beginning of a mapping in a <abbr>yaml</abbr> document. This macro will only be produced when the -<strong><code>jekyllData</code></strong> option is enabled. The macro +<code><strong>jekyllData</strong></code> option is enabled. The macro receives two arguments: the scalar key in the parent structure, cast to a string following <abbr>yaml</abbr> serialization rules, and the number of items in the mapping.</p> -<p>The <code>\markdownRendererJekyllDataMappingEnd</code> macro +<p>The <code>markdownRendererJekyllDataMappingEnd</code> macro represents the end of a mapping in a <abbr>yaml</abbr> document. This macro will only be produced when the -<strong><code>jekyllData</code></strong> option is enabled. The macro +<code><strong>jekyllData</strong></code> option is enabled. The macro receives no arguments.</p> -<p>The <code>\markdownRendererJekyllDataSequenceBegin</code> macro +<p>The <code>markdownRendererJekyllDataSequenceBegin</code> macro represents the beginning of a sequence in a <abbr>yaml</abbr> document. This macro will only be produced when the -<strong><code>jekyllData</code></strong> option is enabled. The macro +<code><strong>jekyllData</strong></code> option is enabled. The macro receives two arguments: the scalar key in the parent structure, cast to a string following <abbr>yaml</abbr> serialization rules, and the number of items in the sequence.</p> -<p>The <code>\markdownRendererJekyllDataSequenceEnd</code> macro +<p>The <code>markdownRendererJekyllDataSequenceEnd</code> macro represents the end of a sequence in a <abbr>yaml</abbr> document. This macro will only be produced when the -<strong><code>jekyllData</code></strong> option is enabled. The macro +<code><strong>jekyllData</strong></code> option is enabled. The macro receives no arguments.</p> -<p>The <code>\markdownRendererJekyllDataBoolean</code> macro represents -a boolean scalar value in a <abbr>yaml</abbr> document. This macro will -only be produced when the <strong><code>jekyllData</code></strong> +<p>The <code>markdownRendererJekyllDataBoolean</code> macro represents a +boolean scalar value in a <abbr>yaml</abbr> document. This macro will +only be produced when the <code><strong>jekyllData</strong></code> option is enabled. The macro receives two arguments: the scalar key in the parent structure, and the scalar value, both cast to a string following <abbr>yaml</abbr> serialization rules.</p> -<p>The <code>\markdownRendererJekyllDataNumber</code> macro represents a +<p>The <code>markdownRendererJekyllDataNumber</code> macro represents a numeric scalar value in a <abbr>yaml</abbr> document. This macro will -only be produced when the <strong><code>jekyllData</code></strong> +only be produced when the <code><strong>jekyllData</strong></code> option is enabled. The macro receives two arguments: the scalar key in the parent structure, and the scalar value, both cast to a string following <abbr>yaml</abbr> serialization rules.</p> -<p>The <code>\markdownRendererJekyllDataString</code> macro represents a -string scalar value in a <abbr>yaml</abbr> document. This macro will -only be produced when the <strong><code>jekyllData</code></strong> -option is enabled. The macro receives two arguments: the scalar key in -the parent structure, cast to a string following <abbr>yaml</abbr> -serialization rules, and the scalar value.</p> -<p>The <code>\markdownRendererJekyllDataEmpty</code> macro represents an +<p>The <code>markdownRendererJekyllDataTypographicString</code> and +<code>markdownRendererJekyllDataProgrammaticString</code> macros +represent string scalar values in a <abbr>yaml</abbr> document. This +macro will only be produced when the +<code><strong>jekyllData</strong></code> option is enabled. The macro +receives two arguments: the scalar key in the parent structure, cast to +a string following <abbr>yaml</abbr> serialization rules, and the scalar +value.</p> +<p>For each string scalar value, both macros are produced. Whereas +<code>markdownRendererJekyllDataTypographicString</code> receives the +scalar value after all markdown markup and special <span +class="tex">T<sub>e</sub>X</span> characters in the string have been +replaced by <span class="tex">T<sub>e</sub>X</span> macros, +<code>markdownRendererJekyllDataProgrammaticString</code> receives the +raw scalar value. Therefore, whereas the +<code>markdownRendererJekyllDataTypographicString</code> macro is more +appropriate for texts that are supposed to be typeset with <span +class="tex">T<sub>e</sub>X</span>, such as document titles, author +names, or exam questions, the +<code>markdownRendererJekyllDataProgrammaticString</code> macro is more +appropriate for identifiers and other programmatic text that won’t be +typeset by <span class="tex">T<sub>e</sub>X</span>.</p> +<p>Before Markdown 3.7.0, the +<code>markdownRendererJekyllDataTypographicString</code> macro was named +<code>markdownRendererJekyllDataString</code> and the +<code>markdownRendererJekyllDataProgrammaticString</code> macro was not +produced. The <code>markdownRendererJekyllDataString</code> has been +deprecated and will be removed in Markdown 4.0.0.</p> +<p>The <code>markdownRendererJekyllDataEmpty</code> macro represents an empty scalar value in a <abbr>yaml</abbr> document. This macro will only -be produced when the <strong><code>jekyllData</code></strong> option is +be produced when the <code><strong>jekyllData</strong></code> option is enabled. The macro receives one argument: the scalar key in the parent structure, cast to a string following <abbr>yaml</abbr> serialization rules.</p> @@ -12489,23 +12652,23 @@ rules.</p> class="tex">T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb664"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb664-1"><a href="#cb664-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> -<span id="cb664-2"><a href="#cb664-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionJekyllData</span>{true}</span> -<span id="cb664-3"><a href="#cb664-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererJekyllDataString</span>#1#2{<span class="fu">\gdef\name</span>{#2}}</span> -<span id="cb664-4"><a href="#cb664-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererJekyllDataNumber</span>#1#2{<span class="fu">\gdef\age</span>{#2}}</span> -<span id="cb664-5"><a href="#cb664-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererJekyllDataEnd</span>{<span class="co">%</span></span> -<span id="cb664-6"><a href="#cb664-6" aria-hidden="true" tabindex="-1"></a> <span class="fu">\name</span>{} is <span class="fu">\age</span>{} years old.}</span> -<span id="cb664-7"><a href="#cb664-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> -<span id="cb664-8"><a href="#cb664-8" aria-hidden="true" tabindex="-1"></a>---</span> -<span id="cb664-9"><a href="#cb664-9" aria-hidden="true" tabindex="-1"></a>name: Jane Doe</span> -<span id="cb664-10"><a href="#cb664-10" aria-hidden="true" tabindex="-1"></a>age: 99</span> -<span id="cb664-11"><a href="#cb664-11" aria-hidden="true" tabindex="-1"></a>---</span> -<span id="cb664-12"><a href="#cb664-12" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> -<span id="cb664-13"><a href="#cb664-13" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> +<div class="sourceCode" id="cb667"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb667-1"><a href="#cb667-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> +<span id="cb667-2"><a href="#cb667-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionJekyllData</span>{true}</span> +<span id="cb667-3"><a href="#cb667-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererJekyllDataTypographicString</span>#1#2{<span class="fu">\gdef\name</span>{#2}}</span> +<span id="cb667-4"><a href="#cb667-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererJekyllDataNumber</span>#1#2{<span class="fu">\gdef\age</span>{#2}}</span> +<span id="cb667-5"><a href="#cb667-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererJekyllDataEnd</span>{<span class="co">%</span></span> +<span id="cb667-6"><a href="#cb667-6" aria-hidden="true" tabindex="-1"></a> <span class="fu">\name</span>{} is <span class="fu">\age</span>{} years old.}</span> +<span id="cb667-7"><a href="#cb667-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> +<span id="cb667-8"><a href="#cb667-8" aria-hidden="true" tabindex="-1"></a>---</span> +<span id="cb667-9"><a href="#cb667-9" aria-hidden="true" tabindex="-1"></a>name: Jane Doe</span> +<span id="cb667-10"><a href="#cb667-10" aria-hidden="true" tabindex="-1"></a>age: 99</span> +<span id="cb667-11"><a href="#cb667-11" aria-hidden="true" tabindex="-1"></a>---</span> +<span id="cb667-12"><a href="#cb667-12" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> +<span id="cb667-13"><a href="#cb667-13" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb665"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb665-1"><a href="#cb665-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb668"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb668-1"><a href="#cb668-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -12515,29 +12678,29 @@ contain the following text:</p> class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb666"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb666-1"><a href="#cb666-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb666-2"><a href="#cb666-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[jekyllData]{<span class="ex">markdown</span>}</span> -<span id="cb666-3"><a href="#cb666-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> -<span id="cb666-4"><a href="#cb666-4" aria-hidden="true" tabindex="-1"></a> renderers = {</span> -<span id="cb666-5"><a href="#cb666-5" aria-hidden="true" tabindex="-1"></a> jekyllDataString = {<span class="fu">\gdef\name</span>{#2}},</span> -<span id="cb666-6"><a href="#cb666-6" aria-hidden="true" tabindex="-1"></a> jekyllDataNumber = {<span class="fu">\gdef\age</span>{#2}},</span> -<span id="cb666-7"><a href="#cb666-7" aria-hidden="true" tabindex="-1"></a> jekyllDataEnd = {<span class="fu">\name</span>{} is <span class="fu">\age</span>{} years old.},</span> -<span id="cb666-8"><a href="#cb666-8" aria-hidden="true" tabindex="-1"></a> }</span> -<span id="cb666-9"><a href="#cb666-9" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb666-10"><a href="#cb666-10" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb666-11"><a href="#cb666-11" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb666-12"><a href="#cb666-12" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb666-13"><a href="#cb666-13" aria-hidden="true" tabindex="-1"></a>---</span> -<span id="cb666-14"><a href="#cb666-14" aria-hidden="true" tabindex="-1"></a>name: Jane Doe</span> -<span id="cb666-15"><a href="#cb666-15" aria-hidden="true" tabindex="-1"></a>age: 99</span> -<span id="cb666-16"><a href="#cb666-16" aria-hidden="true" tabindex="-1"></a>---</span> -<span id="cb666-17"><a href="#cb666-17" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb666-18"><a href="#cb666-18" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb666-19"><a href="#cb666-19" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb669"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb669-1"><a href="#cb669-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb669-2"><a href="#cb669-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[jekyllData]{<span class="ex">markdown</span>}</span> +<span id="cb669-3"><a href="#cb669-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> +<span id="cb669-4"><a href="#cb669-4" aria-hidden="true" tabindex="-1"></a> renderers = {</span> +<span id="cb669-5"><a href="#cb669-5" aria-hidden="true" tabindex="-1"></a> jekyllDataTypographicString = {<span class="fu">\gdef\name</span>{#2}},</span> +<span id="cb669-6"><a href="#cb669-6" aria-hidden="true" tabindex="-1"></a> jekyllDataNumber = {<span class="fu">\gdef\age</span>{#2}},</span> +<span id="cb669-7"><a href="#cb669-7" aria-hidden="true" tabindex="-1"></a> jekyllDataEnd = {<span class="fu">\name</span>{} is <span class="fu">\age</span>{} years old.},</span> +<span id="cb669-8"><a href="#cb669-8" aria-hidden="true" tabindex="-1"></a> }</span> +<span id="cb669-9"><a href="#cb669-9" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb669-10"><a href="#cb669-10" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb669-11"><a href="#cb669-11" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb669-12"><a href="#cb669-12" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb669-13"><a href="#cb669-13" aria-hidden="true" tabindex="-1"></a>---</span> +<span id="cb669-14"><a href="#cb669-14" aria-hidden="true" tabindex="-1"></a>name: Jane Doe</span> +<span id="cb669-15"><a href="#cb669-15" aria-hidden="true" tabindex="-1"></a>age: 99</span> +<span id="cb669-16"><a href="#cb669-16" aria-hidden="true" tabindex="-1"></a>---</span> +<span id="cb669-17"><a href="#cb669-17" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb669-18"><a href="#cb669-18" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb669-19"><a href="#cb669-19" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb667"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb667-1"><a href="#cb667-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb670"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb670-1"><a href="#cb670-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -12547,26 +12710,26 @@ contain the following text:</p> class="tex">T<sub>e</sub>X</span>t Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb668"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb668-1"><a href="#cb668-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> -<span id="cb668-2"><a href="#cb668-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span>[jekyllData = yes]</span> -<span id="cb668-3"><a href="#cb668-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererJekyllDataString</span>#1#2{<span class="fu">\gdef\name</span>{#2}}</span> -<span id="cb668-4"><a href="#cb668-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererJekyllDataNumber</span>#1#2{<span class="fu">\gdef\age</span>{#2}}</span> -<span id="cb668-5"><a href="#cb668-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererJekyllDataEnd</span>{<span class="co">%</span></span> -<span id="cb668-6"><a href="#cb668-6" aria-hidden="true" tabindex="-1"></a> <span class="fu">\name</span>{} is <span class="fu">\age</span>{} years old.}</span> -<span id="cb668-7"><a href="#cb668-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> -<span id="cb668-8"><a href="#cb668-8" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb668-9"><a href="#cb668-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> -<span id="cb668-10"><a href="#cb668-10" aria-hidden="true" tabindex="-1"></a>---</span> -<span id="cb668-11"><a href="#cb668-11" aria-hidden="true" tabindex="-1"></a>name: Jane Doe</span> -<span id="cb668-12"><a href="#cb668-12" aria-hidden="true" tabindex="-1"></a>age: 99</span> -<span id="cb668-13"><a href="#cb668-13" aria-hidden="true" tabindex="-1"></a>---</span> -<span id="cb668-14"><a href="#cb668-14" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> -<span id="cb668-15"><a href="#cb668-15" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb668-16"><a href="#cb668-16" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> +<div class="sourceCode" id="cb671"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb671-1"><a href="#cb671-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> +<span id="cb671-2"><a href="#cb671-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span>[jekyllData = yes]</span> +<span id="cb671-3"><a href="#cb671-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererJekyllDataTypographicString</span>#1#2{<span class="fu">\gdef\name</span>{#2}}</span> +<span id="cb671-4"><a href="#cb671-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererJekyllDataNumber</span>#1#2{<span class="fu">\gdef\age</span>{#2}}</span> +<span id="cb671-5"><a href="#cb671-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererJekyllDataEnd</span>{<span class="co">%</span></span> +<span id="cb671-6"><a href="#cb671-6" aria-hidden="true" tabindex="-1"></a> <span class="fu">\name</span>{} is <span class="fu">\age</span>{} years old.}</span> +<span id="cb671-7"><a href="#cb671-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> +<span id="cb671-8"><a href="#cb671-8" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb671-9"><a href="#cb671-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> +<span id="cb671-10"><a href="#cb671-10" aria-hidden="true" tabindex="-1"></a>---</span> +<span id="cb671-11"><a href="#cb671-11" aria-hidden="true" tabindex="-1"></a>name: Jane Doe</span> +<span id="cb671-12"><a href="#cb671-12" aria-hidden="true" tabindex="-1"></a>age: 99</span> +<span id="cb671-13"><a href="#cb671-13" aria-hidden="true" tabindex="-1"></a>---</span> +<span id="cb671-14"><a href="#cb671-14" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> +<span id="cb671-15"><a href="#cb671-15" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb671-16"><a href="#cb671-16" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb669"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb669-1"><a href="#cb669-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb672"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb672-1"><a href="#cb672-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -12582,25 +12745,25 @@ class="tex">T<sub>e</sub>X</span> macros, further referred to as class="tex">T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb670"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb670-1"><a href="#cb670-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> -<span id="cb670-2"><a href="#cb670-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererTildePrototype</span>{<span class="co">%</span></span> -<span id="cb670-3"><a href="#cb670-3" aria-hidden="true" tabindex="-1"></a> Packages can specify token renderer prototypes.<span class="co">%</span></span> -<span id="cb670-4"><a href="#cb670-4" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb670-5"><a href="#cb670-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> -<span id="cb670-6"><a href="#cb670-6" aria-hidden="true" tabindex="-1"></a>~</span> -<span id="cb670-7"><a href="#cb670-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> -<span id="cb670-8"><a href="#cb670-8" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb670-9"><a href="#cb670-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererTilde</span>{<span class="co">%</span></span> -<span id="cb670-10"><a href="#cb670-10" aria-hidden="true" tabindex="-1"></a> User-defined token renderers take precedence.<span class="co">%</span></span> -<span id="cb670-11"><a href="#cb670-11" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb670-12"><a href="#cb670-12" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> -<span id="cb670-13"><a href="#cb670-13" aria-hidden="true" tabindex="-1"></a>~</span> -<span id="cb670-14"><a href="#cb670-14" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> -<span id="cb670-15"><a href="#cb670-15" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> +<div class="sourceCode" id="cb673"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb673-1"><a href="#cb673-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> +<span id="cb673-2"><a href="#cb673-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererTildePrototype</span>{<span class="co">%</span></span> +<span id="cb673-3"><a href="#cb673-3" aria-hidden="true" tabindex="-1"></a> Packages can specify token renderer prototypes.<span class="co">%</span></span> +<span id="cb673-4"><a href="#cb673-4" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb673-5"><a href="#cb673-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> +<span id="cb673-6"><a href="#cb673-6" aria-hidden="true" tabindex="-1"></a>~</span> +<span id="cb673-7"><a href="#cb673-7" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> +<span id="cb673-8"><a href="#cb673-8" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb673-9"><a href="#cb673-9" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererTilde</span>{<span class="co">%</span></span> +<span id="cb673-10"><a href="#cb673-10" aria-hidden="true" tabindex="-1"></a> User-defined token renderers take precedence.<span class="co">%</span></span> +<span id="cb673-11"><a href="#cb673-11" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb673-12"><a href="#cb673-12" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> +<span id="cb673-13"><a href="#cb673-13" aria-hidden="true" tabindex="-1"></a>~</span> +<span id="cb673-14"><a href="#cb673-14" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> +<span id="cb673-15"><a href="#cb673-15" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb671"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb671-1"><a href="#cb671-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb674"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb674-1"><a href="#cb674-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -12611,30 +12774,30 @@ contain the following text:</p> class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb672"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb672-1"><a href="#cb672-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb672-2"><a href="#cb672-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>{<span class="ex">markdown</span>}</span> -<span id="cb672-3"><a href="#cb672-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> -<span id="cb672-4"><a href="#cb672-4" aria-hidden="true" tabindex="-1"></a> rendererPrototypes = {</span> -<span id="cb672-5"><a href="#cb672-5" aria-hidden="true" tabindex="-1"></a> tilde = {Packages can specify token renderer prototypes.},</span> -<span id="cb672-6"><a href="#cb672-6" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb672-7"><a href="#cb672-7" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb672-8"><a href="#cb672-8" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb672-9"><a href="#cb672-9" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb672-10"><a href="#cb672-10" aria-hidden="true" tabindex="-1"></a>~</span> -<span id="cb672-11"><a href="#cb672-11" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb672-12"><a href="#cb672-12" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb672-13"><a href="#cb672-13" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}[</span> -<span id="cb672-14"><a href="#cb672-14" aria-hidden="true" tabindex="-1"></a> renderers = {</span> -<span id="cb672-15"><a href="#cb672-15" aria-hidden="true" tabindex="-1"></a> tilde = {User-defined token renderers take precedence.},</span> -<span id="cb672-16"><a href="#cb672-16" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb672-17"><a href="#cb672-17" aria-hidden="true" tabindex="-1"></a>]</span> -<span id="cb672-18"><a href="#cb672-18" aria-hidden="true" tabindex="-1"></a>~</span> -<span id="cb672-19"><a href="#cb672-19" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb672-20"><a href="#cb672-20" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<div class="sourceCode" id="cb675"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb675-1"><a href="#cb675-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb675-2"><a href="#cb675-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>{<span class="ex">markdown</span>}</span> +<span id="cb675-3"><a href="#cb675-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> +<span id="cb675-4"><a href="#cb675-4" aria-hidden="true" tabindex="-1"></a> rendererPrototypes = {</span> +<span id="cb675-5"><a href="#cb675-5" aria-hidden="true" tabindex="-1"></a> tilde = {Packages can specify token renderer prototypes.},</span> +<span id="cb675-6"><a href="#cb675-6" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb675-7"><a href="#cb675-7" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb675-8"><a href="#cb675-8" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb675-9"><a href="#cb675-9" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb675-10"><a href="#cb675-10" aria-hidden="true" tabindex="-1"></a>~</span> +<span id="cb675-11"><a href="#cb675-11" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb675-12"><a href="#cb675-12" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb675-13"><a href="#cb675-13" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}[</span> +<span id="cb675-14"><a href="#cb675-14" aria-hidden="true" tabindex="-1"></a> renderers = {</span> +<span id="cb675-15"><a href="#cb675-15" aria-hidden="true" tabindex="-1"></a> tilde = {User-defined token renderers take precedence.},</span> +<span id="cb675-16"><a href="#cb675-16" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb675-17"><a href="#cb675-17" aria-hidden="true" tabindex="-1"></a>]</span> +<span id="cb675-18"><a href="#cb675-18" aria-hidden="true" tabindex="-1"></a>~</span> +<span id="cb675-19"><a href="#cb675-19" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb675-20"><a href="#cb675-20" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb673"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb673-1"><a href="#cb673-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb676"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb676-1"><a href="#cb676-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -12645,26 +12808,26 @@ contain the following text:</p> class="tex">T<sub>e</sub>X</span>t Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb674"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb674-1"><a href="#cb674-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> -<span id="cb674-2"><a href="#cb674-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererTildePrototype</span>{<span class="co">%</span></span> -<span id="cb674-3"><a href="#cb674-3" aria-hidden="true" tabindex="-1"></a> Packages can specify token renderer prototypes.<span class="co">%</span></span> -<span id="cb674-4"><a href="#cb674-4" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb674-5"><a href="#cb674-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> -<span id="cb674-6"><a href="#cb674-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> -<span id="cb674-7"><a href="#cb674-7" aria-hidden="true" tabindex="-1"></a>~</span> -<span id="cb674-8"><a href="#cb674-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> -<span id="cb674-9"><a href="#cb674-9" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb674-10"><a href="#cb674-10" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererTilde</span>{<span class="co">%</span></span> -<span id="cb674-11"><a href="#cb674-11" aria-hidden="true" tabindex="-1"></a> User-defined token renderers take precedence.<span class="co">%</span></span> -<span id="cb674-12"><a href="#cb674-12" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb674-13"><a href="#cb674-13" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> -<span id="cb674-14"><a href="#cb674-14" aria-hidden="true" tabindex="-1"></a>~</span> -<span id="cb674-15"><a href="#cb674-15" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> -<span id="cb674-16"><a href="#cb674-16" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> +<div class="sourceCode" id="cb677"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb677-1"><a href="#cb677-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> +<span id="cb677-2"><a href="#cb677-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererTildePrototype</span>{<span class="co">%</span></span> +<span id="cb677-3"><a href="#cb677-3" aria-hidden="true" tabindex="-1"></a> Packages can specify token renderer prototypes.<span class="co">%</span></span> +<span id="cb677-4"><a href="#cb677-4" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb677-5"><a href="#cb677-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> +<span id="cb677-6"><a href="#cb677-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> +<span id="cb677-7"><a href="#cb677-7" aria-hidden="true" tabindex="-1"></a>~</span> +<span id="cb677-8"><a href="#cb677-8" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> +<span id="cb677-9"><a href="#cb677-9" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb677-10"><a href="#cb677-10" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererTilde</span>{<span class="co">%</span></span> +<span id="cb677-11"><a href="#cb677-11" aria-hidden="true" tabindex="-1"></a> User-defined token renderers take precedence.<span class="co">%</span></span> +<span id="cb677-12"><a href="#cb677-12" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb677-13"><a href="#cb677-13" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> +<span id="cb677-14"><a href="#cb677-14" aria-hidden="true" tabindex="-1"></a>~</span> +<span id="cb677-15"><a href="#cb677-15" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> +<span id="cb677-16"><a href="#cb677-16" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb675"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb675-1"><a href="#cb675-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb678"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb678-1"><a href="#cb678-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -12682,29 +12845,29 @@ the <span class="latex">L<sup>a</sup>T<sub>e</sub>X</span>3 kernel.</p> class="tex">T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb676"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb676-1"><a href="#cb676-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> -<span id="cb676-2"><a href="#cb676-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionJekyllData</span>{true}</span> -<span id="cb676-3"><a href="#cb676-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\ExplSyntaxOn</span></span> -<span id="cb676-4"><a href="#cb676-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\keys</span>_define:nn</span> -<span id="cb676-5"><a href="#cb676-5" aria-hidden="true" tabindex="-1"></a> { markdown/jekyllData }</span> -<span id="cb676-6"><a href="#cb676-6" aria-hidden="true" tabindex="-1"></a> {</span> -<span id="cb676-7"><a href="#cb676-7" aria-hidden="true" tabindex="-1"></a> name .code:n = { <span class="fu">\gdef\name</span>{#1} },</span> -<span id="cb676-8"><a href="#cb676-8" aria-hidden="true" tabindex="-1"></a> age .code:n = { <span class="fu">\gdef\age</span>{#1} },</span> -<span id="cb676-9"><a href="#cb676-9" aria-hidden="true" tabindex="-1"></a> }</span> -<span id="cb676-10"><a href="#cb676-10" aria-hidden="true" tabindex="-1"></a><span class="fu">\ExplSyntaxOff</span></span> -<span id="cb676-11"><a href="#cb676-11" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererJekyllDataEnd</span>{<span class="co">%</span></span> -<span id="cb676-12"><a href="#cb676-12" aria-hidden="true" tabindex="-1"></a> <span class="fu">\name</span>{} is <span class="fu">\age</span>{} years old.}</span> -<span id="cb676-13"><a href="#cb676-13" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> -<span id="cb676-14"><a href="#cb676-14" aria-hidden="true" tabindex="-1"></a>---</span> -<span id="cb676-15"><a href="#cb676-15" aria-hidden="true" tabindex="-1"></a>name: Jane Doe</span> -<span id="cb676-16"><a href="#cb676-16" aria-hidden="true" tabindex="-1"></a>age: 99</span> -<span id="cb676-17"><a href="#cb676-17" aria-hidden="true" tabindex="-1"></a>---</span> -<span id="cb676-18"><a href="#cb676-18" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> -<span id="cb676-19"><a href="#cb676-19" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> +<div class="sourceCode" id="cb679"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb679-1"><a href="#cb679-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\input</span> markdown</span> +<span id="cb679-2"><a href="#cb679-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownOptionJekyllData</span>{true}</span> +<span id="cb679-3"><a href="#cb679-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\ExplSyntaxOn</span></span> +<span id="cb679-4"><a href="#cb679-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\keys</span>_define:nn</span> +<span id="cb679-5"><a href="#cb679-5" aria-hidden="true" tabindex="-1"></a> { markdown/jekyllData }</span> +<span id="cb679-6"><a href="#cb679-6" aria-hidden="true" tabindex="-1"></a> {</span> +<span id="cb679-7"><a href="#cb679-7" aria-hidden="true" tabindex="-1"></a> name .code:n = { <span class="fu">\gdef\name</span>{#1} },</span> +<span id="cb679-8"><a href="#cb679-8" aria-hidden="true" tabindex="-1"></a> age .code:n = { <span class="fu">\gdef\age</span>{#1} },</span> +<span id="cb679-9"><a href="#cb679-9" aria-hidden="true" tabindex="-1"></a> }</span> +<span id="cb679-10"><a href="#cb679-10" aria-hidden="true" tabindex="-1"></a><span class="fu">\ExplSyntaxOff</span></span> +<span id="cb679-11"><a href="#cb679-11" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererJekyllDataEnd</span>{<span class="co">%</span></span> +<span id="cb679-12"><a href="#cb679-12" aria-hidden="true" tabindex="-1"></a> <span class="fu">\name</span>{} is <span class="fu">\age</span>{} years old.}</span> +<span id="cb679-13"><a href="#cb679-13" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownBegin</span></span> +<span id="cb679-14"><a href="#cb679-14" aria-hidden="true" tabindex="-1"></a>---</span> +<span id="cb679-15"><a href="#cb679-15" aria-hidden="true" tabindex="-1"></a>name: Jane Doe</span> +<span id="cb679-16"><a href="#cb679-16" aria-hidden="true" tabindex="-1"></a>age: 99</span> +<span id="cb679-17"><a href="#cb679-17" aria-hidden="true" tabindex="-1"></a>---</span> +<span id="cb679-18"><a href="#cb679-18" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownEnd</span></span> +<span id="cb679-19"><a href="#cb679-19" aria-hidden="true" tabindex="-1"></a><span class="fu">\bye</span></span></code></pre></div> <p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb677"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb677-1"><a href="#cb677-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb680"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb680-1"><a href="#cb680-1" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -12714,31 +12877,31 @@ contain the following text:</p> class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb678"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb678-1"><a href="#cb678-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> -<span id="cb678-2"><a href="#cb678-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[jekyllData]{<span class="ex">markdown</span>}</span> -<span id="cb678-3"><a href="#cb678-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> -<span id="cb678-4"><a href="#cb678-4" aria-hidden="true" tabindex="-1"></a> jekyllDataRenderers = {</span> -<span id="cb678-5"><a href="#cb678-5" aria-hidden="true" tabindex="-1"></a> name = {<span class="fu">\gdef\name</span>{#1}},</span> -<span id="cb678-6"><a href="#cb678-6" aria-hidden="true" tabindex="-1"></a> code = {<span class="fu">\gdef\age</span>{#1}},</span> -<span id="cb678-7"><a href="#cb678-7" aria-hidden="true" tabindex="-1"></a> },</span> -<span id="cb678-8"><a href="#cb678-8" aria-hidden="true" tabindex="-1"></a> renderers = {</span> -<span id="cb678-9"><a href="#cb678-9" aria-hidden="true" tabindex="-1"></a> jekyllDataEnd = {<span class="fu">\name</span>{} is <span class="fu">\age</span>{} years old.},</span> -<span id="cb678-10"><a href="#cb678-10" aria-hidden="true" tabindex="-1"></a> }</span> -<span id="cb678-11"><a href="#cb678-11" aria-hidden="true" tabindex="-1"></a>}</span> -<span id="cb678-12"><a href="#cb678-12" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> -<span id="cb678-13"><a href="#cb678-13" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb678-14"><a href="#cb678-14" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> -<span id="cb678-15"><a href="#cb678-15" aria-hidden="true" tabindex="-1"></a>---</span> -<span id="cb678-16"><a href="#cb678-16" aria-hidden="true" tabindex="-1"></a>name: Jane Doe</span> -<span id="cb678-17"><a href="#cb678-17" aria-hidden="true" tabindex="-1"></a>age: 99</span> -<span id="cb678-18"><a href="#cb678-18" aria-hidden="true" tabindex="-1"></a>---</span> -<span id="cb678-19"><a href="#cb678-19" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> -<span id="cb678-20"><a href="#cb678-20" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb678-21"><a href="#cb678-21" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> -<p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb679"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb679-1"><a href="#cb679-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb681"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb681-1"><a href="#cb681-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span> +<span id="cb681-2"><a href="#cb681-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[jekyllData]{<span class="ex">markdown</span>}</span> +<span id="cb681-3"><a href="#cb681-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetup</span>{</span> +<span id="cb681-4"><a href="#cb681-4" aria-hidden="true" tabindex="-1"></a> jekyllDataRenderers = {</span> +<span id="cb681-5"><a href="#cb681-5" aria-hidden="true" tabindex="-1"></a> name = {<span class="fu">\gdef\name</span>{#1}},</span> +<span id="cb681-6"><a href="#cb681-6" aria-hidden="true" tabindex="-1"></a> code = {<span class="fu">\gdef\age</span>{#1}},</span> +<span id="cb681-7"><a href="#cb681-7" aria-hidden="true" tabindex="-1"></a> },</span> +<span id="cb681-8"><a href="#cb681-8" aria-hidden="true" tabindex="-1"></a> renderers = {</span> +<span id="cb681-9"><a href="#cb681-9" aria-hidden="true" tabindex="-1"></a> jekyllDataEnd = {<span class="fu">\name</span>{} is <span class="fu">\age</span>{} years old.},</span> +<span id="cb681-10"><a href="#cb681-10" aria-hidden="true" tabindex="-1"></a> }</span> +<span id="cb681-11"><a href="#cb681-11" aria-hidden="true" tabindex="-1"></a>}</span> +<span id="cb681-12"><a href="#cb681-12" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span> +<span id="cb681-13"><a href="#cb681-13" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb681-14"><a href="#cb681-14" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span> +<span id="cb681-15"><a href="#cb681-15" aria-hidden="true" tabindex="-1"></a>---</span> +<span id="cb681-16"><a href="#cb681-16" aria-hidden="true" tabindex="-1"></a>name: Jane Doe</span> +<span id="cb681-17"><a href="#cb681-17" aria-hidden="true" tabindex="-1"></a>age: 99</span> +<span id="cb681-18"><a href="#cb681-18" aria-hidden="true" tabindex="-1"></a>---</span> +<span id="cb681-19"><a href="#cb681-19" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span> +<span id="cb681-20"><a href="#cb681-20" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb681-21"><a href="#cb681-21" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div> +<p>Next, invoke LuaTeX from the terminal:</p> +<div class="sourceCode" id="cb682"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb682-1"><a href="#cb682-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> @@ -12748,38 +12911,38 @@ contain the following text:</p> class="tex">T<sub>e</sub>X</span>t Example</h5> <p>Using a text editor, create a text document named <code>document.tex</code> with the following content:</p> -<div class="sourceCode" id="cb680"><pre -class="sourceCode tex"><code class="sourceCode latex"><span id="cb680-1"><a href="#cb680-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> -<span id="cb680-2"><a href="#cb680-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span>[jekyllData = yes]</span> -<span id="cb680-3"><a href="#cb680-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\ExplSyntaxOn</span></span> -<span id="cb680-4"><a href="#cb680-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\keys</span>_define:nn</span> -<span id="cb680-5"><a href="#cb680-5" aria-hidden="true" tabindex="-1"></a> { markdown/jekyllData }</span> -<span id="cb680-6"><a href="#cb680-6" aria-hidden="true" tabindex="-1"></a> {</span> -<span id="cb680-7"><a href="#cb680-7" aria-hidden="true" tabindex="-1"></a> name .code:n = { <span class="fu">\gdef\name</span>{#1} },</span> -<span id="cb680-8"><a href="#cb680-8" aria-hidden="true" tabindex="-1"></a> age .code:n = { <span class="fu">\gdef\age</span>{#1} },</span> -<span id="cb680-9"><a href="#cb680-9" aria-hidden="true" tabindex="-1"></a> }</span> -<span id="cb680-10"><a href="#cb680-10" aria-hidden="true" tabindex="-1"></a><span class="fu">\ExplSyntaxOff</span></span> -<span id="cb680-11"><a href="#cb680-11" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererJekyllDataEnd</span>{<span class="co">%</span></span> -<span id="cb680-12"><a href="#cb680-12" aria-hidden="true" tabindex="-1"></a> <span class="fu">\name</span>{} is <span class="fu">\age</span>{} years old.}</span> -<span id="cb680-13"><a href="#cb680-13" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> -<span id="cb680-14"><a href="#cb680-14" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb680-15"><a href="#cb680-15" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> -<span id="cb680-16"><a href="#cb680-16" aria-hidden="true" tabindex="-1"></a>---</span> -<span id="cb680-17"><a href="#cb680-17" aria-hidden="true" tabindex="-1"></a>name: Jane Doe</span> -<span id="cb680-18"><a href="#cb680-18" aria-hidden="true" tabindex="-1"></a>age: 99</span> -<span id="cb680-19"><a href="#cb680-19" aria-hidden="true" tabindex="-1"></a>---</span> -<span id="cb680-20"><a href="#cb680-20" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> -<span id="cb680-21"><a href="#cb680-21" aria-hidden="true" tabindex="-1"></a></span> -<span id="cb680-22"><a href="#cb680-22" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> -<p>Next, invoke LuaTeX from the terminal:</p> -<div class="sourceCode" id="cb681"><pre -class="sourceCode sh"><code class="sourceCode bash"><span id="cb681-1"><a href="#cb681-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> +<div class="sourceCode" id="cb683"><pre +class="sourceCode tex"><code class="sourceCode latex"><span id="cb683-1"><a href="#cb683-1" aria-hidden="true" tabindex="-1"></a><span class="fu">\usemodule</span>[t][markdown]</span> +<span id="cb683-2"><a href="#cb683-2" aria-hidden="true" tabindex="-1"></a><span class="fu">\setupmarkdown</span>[jekyllData = yes]</span> +<span id="cb683-3"><a href="#cb683-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\ExplSyntaxOn</span></span> +<span id="cb683-4"><a href="#cb683-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\keys</span>_define:nn</span> +<span id="cb683-5"><a href="#cb683-5" aria-hidden="true" tabindex="-1"></a> { markdown/jekyllData }</span> +<span id="cb683-6"><a href="#cb683-6" aria-hidden="true" tabindex="-1"></a> {</span> +<span id="cb683-7"><a href="#cb683-7" aria-hidden="true" tabindex="-1"></a> name .code:n = { <span class="fu">\gdef\name</span>{#1} },</span> +<span id="cb683-8"><a href="#cb683-8" aria-hidden="true" tabindex="-1"></a> age .code:n = { <span class="fu">\gdef\age</span>{#1} },</span> +<span id="cb683-9"><a href="#cb683-9" aria-hidden="true" tabindex="-1"></a> }</span> +<span id="cb683-10"><a href="#cb683-10" aria-hidden="true" tabindex="-1"></a><span class="fu">\ExplSyntaxOff</span></span> +<span id="cb683-11"><a href="#cb683-11" aria-hidden="true" tabindex="-1"></a><span class="fu">\def\markdownRendererJekyllDataEnd</span>{<span class="co">%</span></span> +<span id="cb683-12"><a href="#cb683-12" aria-hidden="true" tabindex="-1"></a> <span class="fu">\name</span>{} is <span class="fu">\age</span>{} years old.}</span> +<span id="cb683-13"><a href="#cb683-13" aria-hidden="true" tabindex="-1"></a><span class="fu">\starttext</span></span> +<span id="cb683-14"><a href="#cb683-14" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb683-15"><a href="#cb683-15" aria-hidden="true" tabindex="-1"></a><span class="fu">\startmarkdown</span></span> +<span id="cb683-16"><a href="#cb683-16" aria-hidden="true" tabindex="-1"></a>---</span> +<span id="cb683-17"><a href="#cb683-17" aria-hidden="true" tabindex="-1"></a>name: Jane Doe</span> +<span id="cb683-18"><a href="#cb683-18" aria-hidden="true" tabindex="-1"></a>age: 99</span> +<span id="cb683-19"><a href="#cb683-19" aria-hidden="true" tabindex="-1"></a>---</span> +<span id="cb683-20"><a href="#cb683-20" aria-hidden="true" tabindex="-1"></a><span class="fu">\stopmarkdown</span></span> +<span id="cb683-21"><a href="#cb683-21" aria-hidden="true" tabindex="-1"></a></span> +<span id="cb683-22"><a href="#cb683-22" aria-hidden="true" tabindex="-1"></a><span class="fu">\stoptext</span></span></code></pre></div> +<p>Next, invoke LuaTeX from the terminal:</p> +<div class="sourceCode" id="cb684"><pre +class="sourceCode sh"><code class="sourceCode bash"><span id="cb684-1"><a href="#cb684-1" aria-hidden="true" tabindex="-1"></a><span class="ex">context</span> <span class="at">--luatex</span> document.tex</span></code></pre></div> <p>A PDF document named <code>document.pdf</code> should be produced and contain the following text:</p> <blockquote> <p>Jane Doe is 99 years old.</p> </blockquote> -<aside id="footnotes" class="footnotes footnotes-end-of-document" +<section id="footnotes" class="footnotes footnotes-end-of-document" role="doc-endnotes"> <hr /> <ol> @@ -12794,6 +12957,6 @@ class="footnote-back" role="doc-backlink">↩︎</a></p></li> <code>contentBlocksLanguageMap</code> Lua option.<a href="#fnref3" class="footnote-back" role="doc-backlink">↩︎</a></p></li> </ol> -</aside> +</section> </body> </html> diff --git a/macros/generic/markdown/markdown.ins b/macros/generic/markdown/markdown.ins index 8e777f4217..c0ee2662d5 100644 --- a/macros/generic/markdown/markdown.ins +++ b/macros/generic/markdown/markdown.ins @@ -2,8 +2,11 @@ \generate{ \usepreamble\luapreamble \usepostamble\luapostamble - \file{markdown.lua}{\from{markdown.dtx}{lua}} + \file{markdown.lua}{\from{markdown.dtx}{lua-loader}} + \file{markdown-parser.lua}{\from{markdown.dtx}{lua}} \file{markdown-cli.lua}{\from{markdown.dtx}{lua-cli}} + \file{markdown-unicode-data-generator.lua}{\from{markdown.dtx}{lua-unicode-data-generator}} + \file{markdown-unicode-data.lua}{\from{markdown.dtx}{lua-unicode-data}} \usepreamble\texpreamble \usepostamble\texpostamble \file{markdown.tex}{\from{markdown.dtx}{tex}} @@ -14,7 +17,7 @@ \file{markdownthemewitiko_tilde.tex}{\from{markdown.dtx}{themes-witiko-tilde}} \file{markdownthemewitiko_markdown_defaults.tex}{\from{markdown.dtx}{themes-witiko-markdown-defaults-tex}} \file{markdownthemewitiko_markdown_defaults.sty}{\from{markdown.dtx}{themes-witiko-markdown-defaults-latex}} - \file{t-markdownthemewitiko_markdown_defaults.tex}{\from{markdown.dtx}{themes-witiko-markdown-defaults-context}} + \file{t-markdownthemewitiko_markdown_defaults.tex}{\from{markdown.dtx}{themes-witiko-markdown-defaults-ctx}} \file{markdownthemewitiko_markdown_techdoc.sty}{\from{markdown.dtx}{themes-witiko-markdown-techdoc}} \usepreamble\empty \usepostamble\empty @@ -25,5 +28,6 @@ \file{markdown.css}{\from{markdown.dtx}{manual-css}} \file{markdown-figure-block-diagram.tex}{\from{markdown.dtx}{techdoc-block-diagram}} \file{markdown.bib}{\from{markdown.dtx}{techdoc-bibliography}} + \file{DEPENDS-raw.txt}{\from{markdown.dtx}{depends}} } \endbatchfile diff --git a/macros/generic/markdown/markdown.pdf b/macros/generic/markdown/markdown.pdf Binary files differindex 40adf14658..f2d56f280d 100644 --- a/macros/generic/markdown/markdown.pdf +++ b/macros/generic/markdown/markdown.pdf diff --git a/macros/generic/witharrows/witharrows-french.pdf b/macros/generic/witharrows/witharrows-french.pdf Binary files differindex 9b545653f4..407fbfa8f6 100644 --- a/macros/generic/witharrows/witharrows-french.pdf +++ b/macros/generic/witharrows/witharrows-french.pdf diff --git a/macros/generic/witharrows/witharrows-french.tex b/macros/generic/witharrows/witharrows-french.tex index 12837ba201..6fff445104 100644 --- a/macros/generic/witharrows/witharrows-french.tex +++ b/macros/generic/witharrows/witharrows-french.tex @@ -34,11 +34,57 @@ \titlespacing*{\subsection}{0pt}{4.5ex plus 1ex minus .2ex}{2ex plus .2ex} +\NewDocumentCommand{\Definition}{m} + {{\setlength{\fboxsep}{1pt}\colorbox{gray!20}{\ttfamily \vphantom{gl}#1}}} + +\NewDocumentCommand{\DefinitionCommande}{m} + {{\setlength{\fboxsep}{1pt}\colorbox{gray!20}{\ttfamily + \vphantom{gl}\textbackslash #1}}} + + \labelformat{equation}{(#1)} \def\interitem{\vspace{7mm plus 2 mm minus 3mm}} \def\emphase{\bgroup\color{RoyalPurple}\let\next=} + + +\usepackage{piton} +\PitonOptions{language = verbatim, detected-commands = {emph,textsl}, splittable = 4} +\SetPitonStyle{ Number = , Comment = } + +\ExplSyntaxOn + +\dim_new:N \l__pantigny_width_dim + +\keys_define:nn { pantigny } + { width .dim_set:N = \l__pantigny_width_dim } + +\NewPitonEnvironment { Code } { O { } } + { + \medskip + \char_set_catcode_other:N | + \cs_set_eq:NN \emph \emphase + \dim_zero:N \l__pantigny_width_dim + \keys_set:nn { pantigny } { #1 } + \color{gray} + \dim_compare:nNnT \l__pantigny_width_dim > \c_zero_dim + { + \PitonOptions { width = \l__pantigny_width_dim } + \begin{minipage}[c]{\l__pantigny_width_dim} + } + } + { + \dim_compare:nNnT \l__pantigny_width_dim > \c_zero_dim + { \end{minipage} } + \medskip + } + +\ExplSyntaxOff + + + + \skip \footins = 2 \bigskipamount \usepackage[hyperfootnotes = false]{hyperref} @@ -73,44 +119,48 @@ version~\myfileversion\space de \pkg{witharrows}, à la date du~\myfiledate.}} \begin{abstract} -L'extension \pkg{witharrows} fournit des environments |{WithArrows}| et -|{DispWithArrows}| similaires aux environnements |{aligned}| et |{align}| de -l'\pkg{amsmath} mais avec la possibilité de dessiner des flèches sur le côté droit. -Ces flèches sont habituellement utilisées pour donner des explications concernant -le calcul mathématique présenté. +L'extension \pkg{witharrows} fournit des environments |{WithArrows}| et |{DispWithArrows}| +similaires aux environnements |{aligned}| et |{align}| de l'extension \pkg{amsmath} mais +avec la possibilité de dessiner des flèches sur le côté droit. Ces flèches sont +habituellement utilisées pour donner des explications concernant le calcul mathématique +présenté. \end{abstract} -\vspace{1cm} -L'extension LaTeX \pkg{witharrows} est entièrement contenue dans le fichier |witharrows.sty|. Ce -fichier peut être placé dans le répertoire courant ou dans une arborescence |texmf|. Le mieux reste néanmoins -d'installer \pkg{witharrows} avec une distribution TeX comme MiKTeX, TeX~Live ou MacTeX. +\vspace{1cm} L'extension LaTeX \pkg{witharrows} est entièrement contenue dans le fichier +|witharrows.sty|. Ce fichier peut être placé dans le répertoire courant ou dans une +arborescence |texmf|. Le mieux reste néanmoins d'installer \pkg{witharrows} avec une +distribution TeX comme MiKTeX, TeX~Live ou MacTeX. \medskip -En fait, \pkg{witharrows} est aussi une extension utilisable avec plain-TeX et dans ce cas, le seul fichier -nécessaire est le fichier |witharrows.tex| : voir à ce sujet p.~\pageref{plain-TeX}. Dans la suite, on décrira -l'extension LaTeX. +En fait, \pkg{witharrows} est aussi une extension utilisable avec plain-TeX et dans ce +cas, le seul fichier nécessaire est le fichier |witharrows.tex| : voir à ce sujet +p.~\pageref{plain-TeX}. Dans la suite, on décrira l'extension LaTeX. \medskip -Cette extension peut être utilisée avec |xelatex|, |lualatex|, |pdflatex| mais aussi avec le cheminement classique -|latex|-|dvips|-|ps2pdf| (ou Adobe Distiller). L'extension \pkg{witharrows} charge les extensions \pkg{l3keys2e}, -\pkg{tikz}, \pkg{varwidth} ainsi que les bibliothèques Tikz \pkg{arrows.meta} et \pkg{bending}. L'utilisateur final n'a qu'à charger l'extension \pkg{witharrows} avec -l'instruction habituelle : |\usepackage{witharrows}|. +Cette extension peut être utilisée avec |xelatex|, |lualatex|, |pdflatex| mais aussi avec +le cheminement classique |latex|-|dvips|-|ps2pdf| (ou Adobe Distiller). \textsl{Néanmoins, + le fichier witharrows-french.tex de la présente documentation ne peut être compilé + qu'avec LuaLaTeX.} L'extension \pkg{witharrows} charge les extensions \pkg{l3keys2e}, +\pkg{tikz}, \pkg{varwidth} ainsi que les bibliothèques Tikz \pkg{arrows.meta} et +\pkg{bending}. L'utilisateur final n'a qu'à charger l'extension \pkg{witharrows} avec +l'instruction habituelle : |\usepackage{witharrows}|. \medskip -Les flèches sont tracées avec Tikz et donc \textbf{plusieurs compilations peuvent être nécessaires}.\footnote{Si - vous utilisez Overleaf, Overleaf effectue automatiquement un nombre de compilations suffisant (en utilisant |latexmk|).} +Les flèches sont tracées avec Tikz et donc \textbf{plusieurs compilations peuvent être + nécessaires}.\footnote{Si vous utilisez Overleaf, Overleaf effectue automatiquement un + nombre de compilations suffisant (en utilisant |latexmk|).} \bigskip -Cette extension fournit un environnement |{WithArrows}| pour construire des alignements d'équations -avec des flèches pour les explications sur le côté droit. +Cette extension fournit un environnement \Definition{\{WithArrows\}} pour construire des +alignements d'équations avec des flèches pour les explications sur le côté droit. -\begin{Verbatim} +\begin{Code} $\begin{WithArrows} -A & = (a+1)^2 ~emphase#\Arrow{on développe}@ \\ +A & = (a+1)^2 \emph{\Arrow{on développe}} \\ & = a^2 + 2a + 1 % <------ ne pas mettre de \\ ici \end{WithArrows}$ -\end{Verbatim} +\end{Code} $\begin{WithArrows} A & = (a+1)^2 \Arrow{on développe} \\ @@ -120,34 +170,37 @@ A & = (a+1)^2 \Arrow{on développe} \\ \medskip -La flèche a été tracée avec la commande |\Arrow| dans la rangée dont la flèche part. La commande |\Arrow| -doit être utilisée dans la seconde colonne (le mieux est de la mettre à la fin de la ligne comme dans l'exemple -précédent). +La flèche a été tracée avec la commande \DefinitionCommande{Arrow} dans la rangée dont la +flèche part. La commande |\Arrow| doit être utilisée dans la seconde colonne (le mieux est +de la mettre à la fin de la ligne comme dans l'exemple précédent). \medskip -Comme on le voit, l'environnement |{WithArrows}| est proche de l'environnement |{aligned}| de l'\pkg{amsmath}. -L'extension \pkg{witharrows} propose aussi un environnement |{DispWithArrows}| qui est similaire à l'environnement -|{align}| de l'\pkg{amsmath}: cf. p. \pageref{DispWithArrows}. +L'environnement |{WithArrows}| est proche de l'environnement |{aligned}| +de \pkg{amsmath}. L'extension \pkg{witharrows} propose aussi des environnements +|{DispWithArrows}| et |{DispWithArrows*}| qui sont similaires aux environnements |{align}| +et |{align*}| de l'extension \pkg{amsmath}: cf. p.~\pageref{DispWithArrows}. \section{Options pour la forme des flèches} -La commande |\Arrow| a plusieurs options. Ces options peuvent être placées entre crochets, avant, ou après, -l'argument obligatoire. +La commande |\Arrow| a plusieurs options. Ces options peuvent être placées entre crochets, +avant, ou après, l'argument obligatoire. -L'option |jump| indique le nombre\footnote{Il n'est pas possible de donner une valeur négative à |jump|. -Voir plus loin (p.~\pageref{Backwards}) la manière de tracer une flèche qui remonte.} de rangées que la flèche doit sauter (la valeur initiale est, bien -entendu,~$1$). +\medskip +L'option \Definition{jump} indique le nombre\footnote{Il n'est pas possible de donner une + valeur négative à |jump|. Voir plus loin (p.~\pageref{Backwards}) la manière de tracer + une flèche qui remonte.} de rangées que la flèche doit sauter (la valeur initiale est, +bien entendu,~$1$). -\begin{Verbatim} +\begin{Code} $\begin{WithArrows} -A & = \bigl((a+b)+1\bigr)^2 \Arrow[~emphase#jump=2@]{on développe} \\ +A & = \bigl((a+b)+1\bigr)^2 \Arrow[\emph{jump=2}]{on développe} \\ & = (a+b)^2 + 2(a+b) +1 \\ & = a^2 + 2ab + b^2 + 2a + 2b +1 \end{WithArrows}$ -\end{Verbatim} +\end{Code} $\begin{WithArrows} A & = \bigl((a+b)+1\bigr)^2 \Arrow[jump=1+1]{on développe} \\ @@ -157,13 +210,13 @@ A & = \bigl((a+b)+1\bigr)^2 \Arrow[jump=1+1]{on développe} \\ \interitem Il est possible de faire partir plusieurs flèches d'une même rangée. -\begin{Verbatim} +\begin{Code} $\begin{WithArrows} -A & = \bigl((a+b)+1\bigr)^2 ~emphase#\Arrow{}\Arrow{}[jump=2]@ \\ +A & = \bigl((a+b)+1\bigr)^2 \emph{\Arrow{}\Arrow{}[jump=2]} \\ & = (a+b)^2 + 2(a+b) +1 \\ & = a^2 + 2ab + b^2 + 2a + 2b +1 \end{WithArrows}$ -\end{Verbatim} +\end{Code} $\begin{WithArrows} A & = \bigl((a+b)+1\bigr)^2 \Arrow{}\Arrow{}[jump=2] \\ @@ -171,16 +224,16 @@ A & = \bigl((a+b)+1\bigr)^2 \Arrow{}\Arrow{}[jump=2] \\ & = a^2 + 2ab + b^2 + 2a + 2b +1 \end{WithArrows}$ -\interitem -L'option |xoffset| décale la flèche vers la droite (habituellement, on ne souhaite pas que les flèches soient -collées au texte). La valeur initiale de |xoffset| est de $3$~mm. -\begin{Verbatim} +\interitem L'option \Definition{xoffset} décale la flèche vers la droite (habituellement, +on ne souhaite pas que les flèches soient collées au texte). La valeur initiale de +|xoffset| est de $3$~mm. +\begin{Code} $\begin{WithArrows} A & = \bigl((a+b)+1\bigr)^2 -\Arrow[~emphase#xoffset=1cm@]{avec \texttt{xoffset=1cm}} \\ +\Arrow[\emph{xoffset=1cm}]{avec \texttt{xoffset=1cm}} \\ & = (a+b)^2 + 2(a+b) +1 \end{WithArrows}$ -\end{Verbatim} +\end{Code} $\begin{WithArrows} A & = \bigl((a+b)+1\bigr)^2 @@ -190,45 +243,47 @@ A & = \bigl((a+b)+1\bigr)^2 \interitem -Les flèches sont tracées avec Tikz. C'est pourquoi la commande |\Arrow| a une option -|tikz| qui peut être utilisée pour donner à la flèche (en fait, à la commande |\path| de -Tikz) les options proposées par Tikz pour une telle flèche. L'exemple suivant fournit une flèche en trait épais. -\begin{Verbatim} +Les flèches sont tracées avec Tikz. C'est pourquoi la commande |\Arrow| a une option +\Definition{tikz} qui peut être utilisée pour donner à la flèche (en fait, à la commande +|\path| de Tikz) les options proposées par Tikz pour une telle flèche. L'exemple suivant +fournit une flèche en trait épais. +\begin{Code} $\begin{WithArrows} -A & = (a+1)^2 \Arrow[~emphase#tikz=thick@]{on développe} \\ +A & = (a+1)^2 \Arrow[\emph{tikz=thick}]{on développe} \\ & = a^2 + 2a + 1 \end{WithArrows}$ -\end{Verbatim} +\end{Code} $\begin{WithArrows} A & = (a+1)^2 \Arrow[tikz=thick]{on développe} \\ & = a^2 + 2a + 1 \end{WithArrows}$ -\interitem -Il est également possible de changer les pointes de flèche. Par exemple, nous pouvons tracer une flèche -qui remonte vers le haut avec l'option Tikz~|<-|.\label{Backwards} +\interitem +Il est également possible de changer les pointes de flèche. Par exemple, nous pouvons +tracer une flèche qui remonte vers le haut avec l'option Tikz~|<-|.\label{Backwards} -\begin{Verbatim} +\begin{Code} $\begin{WithArrows} -A & = (a+1)^2 \Arrow~emphase#[tikz=<-]@{on factorise} \\ +A & = (a+1)^2 \Arrow\emph{[tikz=<-]}{on factorise} \\ & = a^2 + 2a + 1 \end{WithArrows}$ -\end{Verbatim} +\end{Code} $\begin{WithArrows} A & = (a+1)^2 \Arrow[tikz=<-]{on factorise} \\ & = a^2 + 2a + 1 \end{WithArrows}$ -\interitem -Il est aussi possible de supprimer les deux pointes de flèche avec l'option Tikz «|-|».\par\nobreak -\begin{Verbatim} +\interitem +Il est aussi possible de supprimer les deux pointes de flèche avec l'option Tikz +«|-|».\par\nobreak +\begin{Code} $\begin{WithArrows} -A & = (a+1)^2 \Arrow[~emphase#tikz=-@]{très classique} \\ +A & = (a+1)^2 \Arrow[\emph{tikz=-}]{très classique} \\ & = a^2 + 2a + 1 \end{WithArrows}$ -\end{Verbatim} +\end{Code} $\begin{WithArrows} A & = (a+1)^2 \Arrow[tikz=-]{très classique} \\ @@ -238,12 +293,12 @@ A & = (a+1)^2 \Arrow[tikz=-]{très classique} \\ \interitem Pour avoir des flèches droites et non incurvées, il convient d'utiliser l'option Tikz «|bend left = 0|». -\begin{Verbatim} +\begin{Code} $\begin{WithArrows} -A & = (a+1)^2 \Arrow~emphase#[tikz={bend left=0}]@{on développe} \\ +A & = (a+1)^2 \Arrow\emph{[tikz={bend left=0}]}{on développe} \\ & = a^2 + 2a + 1 \end{WithArrows}$ -\end{Verbatim} +\end{Code} $\begin{WithArrows} A & = (a+1)^2 \Arrow[tikz={bend left=0}]{on développe} \\ @@ -251,28 +306,28 @@ A & = (a+1)^2 \Arrow[tikz={bend left=0}]{on développe} \\ \end{WithArrows}$ \smallskip -En fait, il est possible de modifier de manière plus drastique la forme des flèches avec l'option -|tikz-code| (présentée p.~\pageref{tikz-code}). +En fait, il est possible de modifier de manière plus drastique la forme des flèches avec +l'option |tikz-code| (présentée p.~\pageref{tikz-code}). \interitem -Il est possible d'utiliser l'option «|text width|» pour contrôler la largeur du texte associé à la -flèche. -\newcounter{fnnohyphen} -\setcounter{fnnohyphen}{\thefootnote} +Il est possible d'utiliser l'option «|text width|» pour contrôler la largeur du texte +associé à la flèche. +\newcounter{fnnohyphen} \setcounter{fnnohyphen}{\thefootnote} % -\begin{Verbatim} +\begin{Code} $\begin{WithArrows} A & = \bigl((a+b)+1\bigr)^2 -\Arrow[jump=2,~emphase#tikz={text width=5.3cm}@]{Nous avons développé...} \\ +\Arrow[jump=2,\emph{tikz={text width=5.3cm}}]{Nous avons développé...} \\ & = (a+b)^2 + 2(a+b) +1 \\ & = a^2 + 2ab + b^2 + 2a + 2b +1 \end{WithArrows}$ -\end{Verbatim} +\end{Code} $\begin{WithArrows} A & = \bigl((a+b)+1\bigr)^2 -\Arrow[jump=2,tikz={text width=5.3cm}]{Nous avons développé en deux étapes mais il aurait été plus habile - d'utiliser la formule du multinôme.} \\ +\Arrow[jump=2,tikz={text width=5.3cm}]{Nous avons développé en deux étapes + mais il aurait été plus habile + d'utiliser la formule du multinôme.} \\ & = (a+b)^2 + 2(a+b) +1 \\ & = a^2 + 2ab + b^2 + 2a + 2b +1 \end{WithArrows}$ @@ -284,17 +339,18 @@ option |wrap-lines|. Lorsque cette option est utilisée, les lignes des étiquet automatiquement coupées sur la marge droite : voir p.~\pageref{DispWithArrows}. \interitem -Si on veut changer la fonte du texte associé à une flèche, on peut, bien entendu, placer une commande comme -|\bfseries|, |\large| ou |\sffamily| au début du texte. Mais, par défaut, les étiquettes sont composées avec une -combinaison de |\small| et |\itshape|. En ajoutant |\bfseries| au début du texte, on ne va pas supprimer le -|\small| et le |\itshape| et, par conséquent, on aura un texte en gras, italique et petite taille. +Si on veut changer la fonte du texte associé à une flèche, on peut, bien entendu, placer +une commande comme |\bfseries|, |\large| ou |\sffamily| au début du texte. Mais, par +défaut, les étiquettes sont composées avec une combinaison de |\small| et |\itshape|. En +ajoutant |\bfseries| au début du texte, on ne va pas supprimer le |\small| et le +|\itshape| et, par conséquent, on aura un texte en gras, italique et petite taille. % -\begin{Verbatim} +\begin{Code} $\begin{WithArrows} -A & = (a+1)^2 \Arrow{~emphase#\bfseries@ on développe} \\ +A & = (a+1)^2 \Arrow{\emph{\bfseries} on développe} \\ & = a^2 + 2a + 1 \end{WithArrows}$ -\end{Verbatim} +\end{Code} $\begin{WithArrows} A & = (a+1)^2 \Arrow{\bfseries on développe} \\ @@ -307,16 +363,16 @@ défaut, ce n'est pas possible dans un nœud Tikz. Néanmoins, dans \pkg{witharr les nœuds sont construits avec l'option |align=left|, et, ainsi, cela devient possible.}. Néanmoins, si on utilise des commandes |\\|, une instruction de fonte placée au début du texte aura un effet seulement jusqu'à la première occurrence de~|\\| (comme dans un environnement |{tabular}|). C'est pourquoi Tikz fournit une option -|font| pour modifier la fonte de tout le texte de l'étiquette. Cette fois-ci, si on utilise une option -|tikz={font={\bfseries}}|, la spécification par défaut constituée par |\small| et |\itshape| va être -écrasée. +\Definition{font} pour modifier la fonte de tout le texte de l'étiquette. Cette fois-ci, si on +utilise une option |tikz={font={\bfseries}}|, la spécification par défaut constituée par +|\small| et |\itshape| va être écrasée. % -\begin{Verbatim} +\begin{Code} $\begin{WithArrows} -A & = (a+1)^2 \Arrow[~emphase#tikz={font={\bfseries}}@]{on développe} \\ +A & = (a+1)^2 \Arrow[\emph{tikz={font={\bfseries}}}]{on développe} \\ & = a^2 + 2a + 1 \end{WithArrows}$ -\end{Verbatim} +\end{Code} $\begin{WithArrows} A & = (a+1)^2 \Arrow[tikz={font={\bfseries}}]{on développe} \\ @@ -324,24 +380,25 @@ A & = (a+1)^2 \Arrow[tikz={font={\bfseries}}]{on développe} \\ \end{WithArrows}$ \medskip -Si on veut exactement le même résultat que précédemment, on doit donner à l'option |font| la valeur -|\itshape\small\bfseries|. +Si on veut exactement le même résultat que précédemment, on doit donner à l'option |font| +la valeur |\itshape\small\bfseries|. \interitem -Presque toutes les options peuvent être données entre crochets à l'environnement |{WithArrows}|. Il ne doit -pas y avoir d'espace entre le |\begin{WithArrows}| et le crochet ouvrant (|[|) des options de -l'environnement. Ces options s'appliquent à toutes les flèches de l'environnement.\footnote{Elles s'appliquent - aussi aux environnements imbriqués dans un environnement |{WithArrows}| donné (avec des exceptions attendues - pour les options |interline|, |code-before| et |code-after|).} +Presque toutes les options peuvent être données entre crochets à l'environnement +|{WithArrows}|. Il ne doit pas y avoir d'espace entre le |\begin{WithArrows}| et le +crochet ouvrant (|[|) des options de l'environnement. Ces options s'appliquent à toutes +les flèches de l'environnement.\footnote{Elles s'appliquent aussi aux environnements + imbriqués dans un environnement |{WithArrows}| donné (avec des exceptions attendues pour + les options |interline|, |code-before| et |code-after|).} % -\begin{Verbatim} -$\begin{WithArrows}[~emphase#tikz=blue@] +\begin{Code} +$\begin{WithArrows}[\emph{tikz=blue}] A & = \bigl((a+b)+1\bigr)^2 \Arrow{premier développement} \\ & = (a+b)^2 + 2(a+b) +1 \Arrow{second développement} \\ & = a^2 + 2ab + b^2 + 2a + 2b +1 \end{WithArrows}$ -\end{Verbatim} +\end{Code} $\begin{WithArrows}[tikz=blue] A & = \bigl((a+b)+1\bigr)^2 \Arrow{premier développement} \\ @@ -351,8 +408,9 @@ A & = \bigl((a+b)+1\bigr)^2 \Arrow{premier développement} \\ \interitem -L'environnement |{WithArrows}| a une option |displaystyle|. Avec cette option, tous les éléments sont composés en -|\displaystyle| (comme dans un environnement |{aligned}| de l'\pkg{amsmath}). +L'environnement |{WithArrows}| a une option \Definition{displaystyle}. Avec cette option, +tous les éléments sont composés en |\displaystyle| (comme dans un environnement +|{aligned}| de l'extension \pkg{amsmath}). \medskip Sans l'option |displaystyle|: @@ -363,8 +421,8 @@ $\begin{WithArrows} & = \int_0^1 (x^2+2x+1) dx \Arrow{linéarité de l'intégration} \\ & = \int_0^1 x^2 dx + 2 \int_0^1 x dx + \int_0^1 dx \\ -& = \frac13 + 2\frac12 + 1 \\ -& = \frac73 +& = \frac{1}{3} + 2\frac{1}{2} + 1 \\ +& = \frac{7}{3} \end{WithArrows}$ \end{Verbatim} @@ -373,8 +431,8 @@ $\begin{WithArrows} & = \int_0^1 (x^2+2x+1) dx \Arrow{linéarité de l'intégration} \\ & = \int_0^1 x^2 dx + 2 \int_0^1 x dx + \int_0^1 dx \\ -& = \frac13 + 2\frac12 + 1 \\ -& = \frac73 +& = \frac{1}{3} + 2\frac{1}{2} + 1 \\ +& = \frac{7}{3} \end{WithArrows}$ @@ -386,30 +444,32 @@ $\begin{WithArrows}[displaystyle] & = \int_0^1 (x^2+2x+1) dx \Arrow{linéarité de l'intégration} \\ & = \int_0^1 x^2 dx + 2 \int_0^1 x dx + \int_0^1 dx \\ -& = \frac13 + 2\frac12 + 1 \\ -& = \frac73 +& = \frac{1}{3} + 2\frac{1}{2} + 1 \\ +& = \frac{7}{3} \end{WithArrows}$ \interitem -Presque toutes les options peuvent aussi être fixées au niveau du document avec la commande |\WithArrowsOptions|. -Dans ce cas, la portée des déclarations est le groupe TeX courant (de telles déclarations sont parfois qualifiées -de «semi-globales»). Par exemple, si nous voulons que tous les environnements |{WithArrows}| soient composés en -|\displaystyle| avec des flèches bleues, nous pouvons écrire -|\WithArrowsOptions{displaystyle,tikz=blue}|.\footnote{Il est aussi possible de configurer \pkg{witharrows} en - modifiant le style Tikz |WithArrows/arrow| qui est le style utilisé par \pkg{witharrows} lors du tracé d'une - flèche. Par exemple, pour avoir les étiquettes en bleu et en caractères droits, on peut utiliser l'instruction - suivante : |\tikzset{WithArrows/arrow/.append style = {blue,font = {}}}|.} - -\begin{Verbatim} -~emphase#\WithArrowsOptions{displaystyle,tikz=blue}@ +Presque toutes les options peuvent aussi être fixées au niveau du document avec la +commande \DefinitionCommande{WithArrowsOptions}. Dans ce cas, la portée des déclarations +est le groupe TeX courant (de telles déclarations sont parfois qualifiées de +«semi-globales»). Par exemple, si nous voulons que tous les environnements |{WithArrows}| +soient composés en |\displaystyle| avec des flèches bleues, nous pouvons écrire +|\WithArrowsOptions{displaystyle,tikz=blue}|.\footnote{Il est aussi possible de configurer + \pkg{witharrows} en modifiant le style Tikz |WithArrows/arrow| qui est le style utilisé + par \pkg{witharrows} lors du tracé d'une flèche. Par exemple, pour avoir les étiquettes + en bleu et en caractères droits, on peut utiliser l'instruction suivante : + |\tikzset{WithArrows/arrow/.append style = {blue,font = {}}}|.} + +\begin{Code} +\emph{\WithArrowsOptions{displaystyle,tikz=blue}} $\begin{WithArrows} \sum_{i=1}^n (x_i+1)^2 & = \sum_{i=1}^n (x_i^2+2x_i+1) \Arrow{par linéarité}\\ & = \sum_{i=1}^n x_i^2 + 2\sum_{i=1}^nx_i+ n \end{WithArrows}$ -\end{Verbatim} +\end{Code} \begin{scope} \WithArrowsOptions{displaystyle,tikz=blue} @@ -422,23 +482,24 @@ $\begin{WithArrows} \interitem -La commande |\Arrow| est reconnue seulement dans les environnements de \pkg{witharrows}. Si on dispose d'une -commande |\Arrow| précédemment définie, il est possible de continuer à l'utiliser à l'extérieur des environnements -de \pkg{witharrows}. - -Néanmoins, une commande |\Arrow| définie précédemment pourrait encore être utile dans un environnement -|{WithArrows}|. Si vous voulez l'utiliser dans un tel environnement, il est possible de changer le nom de la -commande |\Arrow| de l'extension \pkg{witharrows} grâce à une option |command-name| dédiée. Le nouveau nom de la -commande doit être fourni à l'option \emph{sans} la contre-oblique. +La commande |\Arrow| est reconnue seulement dans les environnements de \pkg{witharrows}. +Si on dispose d'une commande |\Arrow| précédemment définie, il est possible de continuer à +l'utiliser à l'extérieur des environnements de \pkg{witharrows}. + +Néanmoins, une commande |\Arrow| définie précédemment pourrait encore être utile dans un +environnement |{WithArrows}|. Si vous voulez l'utiliser dans un tel environnement, il est +possible de changer le nom de la commande |\Arrow| de l'extension \pkg{witharrows} grâce à +une option \Definition{command-name} dédiée. Le nouveau nom de la commande doit être +fourni à l'option \emph{sans} la contre-oblique. % -\begin{Verbatim} +\begin{Code} \NewDocumentCommand {\Arrow} {} {\longmapsto} $\begin{WithArrows}[~emphase#command-name=Explication@] f & = \bigl(x \Arrow (x+1)^2\bigr) -~emphase#\Explication{on travaille directement sur les fonctions}@\\ +\emph{\Explication{on travaille directement sur les fonctions}}\\ & = \bigl(x \Arrow x^2+2x+1\bigr) \end{WithArrows}$ -\end{Verbatim} +\end{Code} % \begin{scope} \NewDocumentCommand {\Arrow} {} {\longmapsto} @@ -451,17 +512,18 @@ f & = \bigl(x \Arrow (x+1)^2\bigr) \interitem -L'environnement |{WithArrows}| fournit aussi deux options |code-before| et |code-after| pour du code LaTeX qui sera -exécuté au début et à la fin de l'environnement. Ces options ne sont pas conçues pour être utilisées comme des -\emph{hooks} (elles sont disponibles uniquement au niveau de l'environnement et ne s'appliquent pas aux -environnements imbriqués). +L'environnement |{WithArrows}| fournit aussi deux options \Definition{code-before} et +\Definition{code-after} pour du code LaTeX qui sera exécuté au début et à la fin de +l'environnement. Ces options ne sont pas conçues pour être utilisées comme des +\emph{hooks} (elles sont disponibles uniquement au niveau de l'environnement et ne +s'appliquent pas aux environnements imbriqués). % -\begin{Verbatim} -$\begin{WithArrows}[~emphase#code-before = \color{blue}@] +\begin{Code} +$\begin{WithArrows}[\emph{code-before = \color{blue}}] A & = (a+b)^2 \Arrow{on développe} \\ & = a^2 + 2ab + b^2 \end{WithArrows}$ -\end{Verbatim} +\end{Code} $\begin{WithArrows}[code-before = \color{blue}] A & = (a+b)^2 \Arrow{on développe} \\ @@ -469,35 +531,39 @@ A & = (a+b)^2 \Arrow{on développe} \\ \end{WithArrows}$ \medskip -Des commandes spéciales sont disponibles dans le |code-after| : une commande |\WithArrowsNbLines| qui indique le -nombre de lignes (=rangées) de l'environnement courant (pour TeX, il s'agit d'une commande et non d'un compteur), -une forme spéciale de la commande |\Arrow| et la commande |\MultiArrow| : ces commandes sont décrites à partir de -la page~\pageref{NestedEnv}. +Des commandes spéciales sont disponibles dans le |code-after|: une commande +\DefinitionCommande{WithArrowsNbLines} qui indique le nombre de lignes (=rangées) de +l'environnement courant (pour TeX, il s'agit d'une commande et non d'un compteur), une +forme spéciale de la commande |\Arrow| et la commande |\MultiArrow| : ces deux dernières +commandes sont décrites à partir de la page~\pageref{NestedEnv}. \section{Nombre et formats des colonnes} -Jusqu'à présent, nous n'avons utilisé l'environnement |{WithArrows}| qu'avec deux colonnes. Néanmoins, il est -possible de l'utiliser avec un nombre arbitraire de colonnes grâce à l'option |format|. La valeur donnée à cette -option est similaire au préambule d'un environnement |{array}|: il s'agit d'une séquence de lettres |r|, |c| et +Jusqu'à présent, nous n'avons utilisé l'environnement |{WithArrows}| qu'avec deux +colonnes. Néanmoins, il est possible de l'utiliser avec un nombre arbitraire de colonnes +grâce à l'option \Definition{format}. La valeur donnée à cette option est similaire au +préambule d'un environnement |{array}|: il s'agit d'une séquence de lettres |r|, |c| et |l| mais aussi |R|, |C| et |L|. \smallskip -Les lettres |R|, |C| et |L| placent des groupes vides |{}| qui permettent un espacement correct lorsque ces -colonnes contiennent des symboles de type |\mathrel| (comme $=$, $\le$, etc.) ou |\mathbin| (comme $+$, $×$, etc.). -Ce système est inspiré par l'environnement |{IEEEeqnarray}| de \pkg{IEEEtrantools}. +Les lettres |R|, |C| et |L| placent des groupes vides |{}| qui permettent un espacement +correct lorsque ces colonnes contiennent des symboles de type |\mathrel| (comme $=$, +$\le$, etc.) ou |\mathbin| (comme $+$, $×$, etc.). Ce système est inspiré par +l'environnement |{IEEEeqnarray}| de \pkg{IEEEtrantools}. \smallskip La valeur initiale du paramètre |format| est, en fait, |rL|. \bigskip -Par exemple, si on veut seulement une colonne alignée à gauche, on peut utiliser l'option |format=l|. -\begin{Verbatim} -$\begin{WithArrows}[~emphase#format = l@] +Par exemple, si on veut seulement une colonne alignée à gauche, on peut utiliser l'option +|format=l|. +\begin{Code} +$\begin{WithArrows}[\emph{format = l}] f(x) \ge g(x) \Arrow{on élève les deux membres au carré} \\ f(x)^2 \ge g(x)^2 \Arrow{on fait tout passer à gauche} \\ f(x)^2 - g(x)^2 \ge 0 \end{WithArrows}$ -\end{Verbatim} +\end{Code} $\begin{WithArrows}[format = l] f(x) \ge g(x) \Arrow{on élève les deux membres au carré} \\ @@ -506,11 +572,11 @@ f(x)^2 - g(x)^2 \ge 0 \end{WithArrows}$ \interitem -Dans l'exemple suivant, on utilise cinq colonnes toutes centrées (l'environnement |{DispWithArrows*}| utilisé est -présenté p.~\pageref{DispWithArrows}). +Dans l'exemple suivant, on utilise cinq colonnes toutes centrées (l'environnement +|{DispWithArrows*}| utilisé est présenté p.~\pageref{DispWithArrows}). -\begin{Verbatim} -\begin{DispWithArrows*}[~emphase#format = cCcCc@, +\begin{Code} +\begin{DispWithArrows*}[\emph{format = cCcCc}, wrap-lines, interline=1mm] k & \;\le\; & t & \;\le\; & k+1 \\ @@ -521,7 +587,7 @@ k & \;\le\; & t & \;\le\; & k+1 \\ & \le & \int\limits_k^{k+1} \frac{dt}{k} \\ \frac{1}{k+1} & \le & \ln(k+1)-\ln(k) & \le & \frac{1}{k} \end{DispWithArrows*} -\end{Verbatim} +\end{Code} \begin{DispWithArrows*}[format = cCcCc, wrap-lines, interline=1mm] @@ -537,73 +603,76 @@ k & \;\le\; & t & \;\le\; & k+1 \\ \section{Positionnement précis des flèches} -L'environnement |{WithArrows}| construit, lors de la composition du tableau, deux séries de nœuds représentés en -rouge dans l'exemple suivant.\footnote{L'option |show-nodes| peut être utilisée pour visualiser ces nœuds. Les - nœuds sont en fait des nœuds Tikz de forme rectangulaire et de largeur nulle. Une flèche entre deux nœuds part de - l'ancre sud (\emph{south anchor}) du premier nœud et arrive à l'ancre nord (\emph{north anchor}) du deuxième - nœud.} +L'environnement |{WithArrows}| construit, lors de la composition du tableau, deux séries +de nœuds représentés en rouge dans l'exemple suivant.\footnote{L'option + \Definition{show-nodes} peut être utilisée pour visualiser ces nœuds. Les nœuds sont en + fait des nœuds Tikz de forme rectangulaire et de largeur nulle. Une flèche entre deux + nœuds part de l'ancre sud (\emph{south anchor}) du premier nœud et arrive à l'ancre nord + (\emph{north anchor}) du deuxième nœud.} \smallskip $\begin{WithArrows}[displaystyle,show-nodes] I -& = \int_{\frac{\pi}4}^0 \ln\Bigl(1+\tan\left(\tfrac{\pi}4-u\right)\Bigr)(-d u) \\ -& = \int_0^{\frac{\pi}4} \ln\Bigl(1+\tan\left(\tfrac{\pi}4-u\right)\Bigr)d u \\ -& = \int_0^{\frac{\pi}4}\ln\left(1+\frac{1-\tan u}{1+\tan u}\right)\, d u \\ -& =\int_0^{\frac{\pi}4}\ln\left(\frac{1+\tan u+1-\tan u}{1+\tan u}\right) d u \\ -& =\int_0^{\frac{\pi}4} \ln\left(\frac2{1+\tan u}\right)\, d u\\ -& =\int_0^{\frac{\pi}4}\bigl(\ln2-\ln(1+\tan u)\bigr)\, d u \\ -& =\frac{\pi}4\ln2-\int_0^{\frac{\pi}4}\ln(1+\tan u)\, d u \\ -& =\frac{\pi}4\ln2-I +& = \int_{\frac{\pi}{4}}^0 \ln\Bigl(1+\tan\left(\tfrac{\pi}{4}-u\right)\Bigr)(-d u) \\ +& = \int_0^{\frac{\pi}{4}} \ln\Bigl(1+\tan\left(\tfrac{\pi}{4}-u\right)\Bigr)d u \\ +& = \int_0^{\frac{\pi}{4}}\ln\left(1+\frac{1-\tan u}{1+\tan u}\right)\, d u \\ +& =\int_0^{\frac{\pi}{4}}\ln\left(\frac{1+\tan u+1-\tan u}{1+\tan u}\right) d u \\ +& =\int_0^{\frac{\pi}{4}} \ln\left(\frac{2}{1+\tan u}\right)\, d u\\ +& =\int_0^{\frac{\pi}{4}}\bigl(\ln2-\ln(1+\tan u)\bigr)\, d u \\ +& =\frac{\pi}{4}\ln2-\int_0^{\frac{\pi}{4}}\ln(1+\tan u)\, d u \\ +& =\frac{\pi}{4}\ln2-I \end{WithArrows}$ \bigskip -Les nœuds sur la gauche sont à la fin de chaque ligne de texte. Ces nœuds seront appelés \emph{nœuds de gauche}. Les -nœuds du côté droit sont alignés verticalement sur le bord droit de l'alignement d'équations. Ces nœuds seront -appelés \emph{nœuds de droite}. +Les nœuds sur la gauche sont à la fin de chaque ligne de texte. Ces nœuds seront appelés +\emph{nœuds de gauche}. Les nœuds du côté droit sont alignés verticalement sur le bord +droit de l'alignement d'équations. Ces nœuds seront appelés \emph{nœuds de droite}. -Par défaut, les flèches utilisent les nœuds de droite. Nous dirons que ces flèches sont dans le mode |rr| (\emph{r} -for \emph{right} en anglais). Ces flèches sont verticales (nous dirons qu'une flèche est \emph{verticale} lorsque -ses deux extrémités sont à la même abscisse). +Par défaut, les flèches utilisent les nœuds de droite. Nous dirons que ces flèches sont +dans le mode \Definition{rr} (\emph{r} for \emph{right} en anglais). Ces flèches sont +verticales (nous dirons qu'une flèche est \emph{verticale} lorsque ses deux extrémités +sont à la même abscisse). \smallskip -Néanmoins, il est possible d'utiliser les nœuds de gauche, ou une combinaison de nœuds de gauche et de droite avec -l'une des options |lr|, |rl| et |ll| (\emph{l} for \emph{left} en anglais). Ces flèches sont, la plupart du temps, -non verticales. +Néanmoins, il est possible d'utiliser les nœuds de gauche, ou une combinaison de nœuds de +gauche et de droite avec l'une des options \Definition{lr}, \Definition{rl} et +\Definition{ll} (\emph{l} for \emph{left} en anglais). Ces flèches sont, la plupart du +temps, non verticales. Ainsi\enskip $\begin{WithArrows}[displaystyle] I -& = \int_{\frac{\pi}4}^0 \ln\Bigl(1+\tan\left(\tfrac{\pi}4-u\right)\Bigr)(-d u) +& = \int_{\frac{\pi}{4}}^0 \ln\Bigl(1+\tan\left(\tfrac{\pi}{4}-u\right)\Bigr)(-d u) \Arrow[lr]{Cette flèche utilise une option \texttt{lr}.}\\ -& = \int_0^{\frac{\pi}4} \ln\Bigl(1+\tan\left(\tfrac{\pi}4-u\right)\Bigr)d u \\ -& = \int_0^{\frac{\pi}4}\ln\left(1+\frac{1-\tan u}{1+\tan u}\right)\, d u \\ -& =\int_0^{\frac{\pi}4}\ln\left(\frac{1+\tan u+1-\tan u}{1+\tan u}\right) d u +& = \int_0^{\frac{\pi}{4}} \ln\Bigl(1+\tan\left(\tfrac{\pi}{4}-u\right)\Bigr)d u \\ +& = \int_0^{\frac{\pi}{4}}\ln\left(1+\frac{1-\tan u}{1+\tan u}\right)\, d u \\ +& =\int_0^{\frac{\pi}{4}}\ln\left(\frac{1+\tan u+1-\tan u}{1+\tan u}\right) d u \Arrow[ll,jump=2,tikz={text width = 5cm}]{Cette flèche utilise une option \texttt{ll} et une option \texttt{jump} fixée à $2$}\\ -& =\int_0^{\frac{\pi}4} \ln\left(\frac2{1+\tan u}\right)\, d u\\ -& =\int_0^{\frac{\pi}4}\bigl(\ln2-\ln(1+\tan u)\bigr)\, d u \\ -& =\frac{\pi}4\ln2-\int_0^{\frac{\pi}4}\ln(1+\tan u)\, d u \\ -& =\frac{\pi}4\ln2-I +& =\int_0^{\frac{\pi}{4}} \ln\left(\frac{2}{1+\tan u}\right)\, d u\\ +& =\int_0^{\frac{\pi}{4}}\bigl(\ln2-\ln(1+\tan u)\bigr)\, d u \\ +& =\frac{\pi}{4}\ln2-\int_0^{\frac{\pi}{4}}\ln(1+\tan u)\, d u \\ +& =\frac{\pi}{4}\ln2-I \end{WithArrows}$ \interitem -Il y a aussi une option nommée |i| (\emph{i} pour \emph{intermédiaire}). Avec cette option, la flèche est +Il y a aussi une option nommée \Definition{i} (\emph{i} pour \emph{intermédiaire}). Avec cette option, la flèche est verticale et calée à gauche. -\begin{Verbatim} +\begin{Code} $\begin{WithArrows} (a+b)(a+ib)(a-b)(a-ib) & = (a+b)(a-b)\cdot(a+ib)(a-ib) \\ -& = (a^2-b^2)(a^2+b^2) \Arrow~emphase#[i]@{parce que $(x-y)(x+y)=x^2-y^2$}\\ +& = (a^2-b^2)(a^2+b^2) \Arrow\emph{[i]}{parce que $(x-y)(x+y)=x^2-y^2$}\\ & = a^4-b^4 \end{WithArrows}$ -\end{Verbatim} +\end{Code} $\begin{WithArrows} (a+b)(a+ib)(a-b)(a-ib) @@ -614,41 +683,43 @@ $\begin{WithArrows} \interitem -L'environnement |{WithArrows}| propose aussi une option |group|. Avec cette option, +L'environnement |{WithArrows}| propose aussi une option \Definition{group}. Avec cette option, \emph{toutes} les flèches de l'environnement sont regroupées sur une même verticale calée à gauche. \label{group} % -\begin{Verbatim}[formatcom=\small\color{gray}] -$\begin{WithArrows}[~emphase#displaystyle,group@] -2xy'-3y=\sqrt x -& \Longleftrightarrow 2x(K'y_0+Ky_0')-3Ky_0 = \sqrt x \\ -& \Longleftrightarrow 2xK'y_0 + K(2xy_0'-3y_0) = \sqrt x \\ -& \Longleftrightarrow 2x K'y_0 = \sqrt x \Arrow{...}\\ +\begin{Code} +$\begin{WithArrows}[\emph{displaystyle,group}] +2xy'-3y=\sqrt{x} +& \Longleftrightarrow 2x(K'y_0+Ky_0')-3Ky_0 = \sqrt{x} \\ +& \Longleftrightarrow 2xK'y_0 + K(2xy_0'-3y_0) = \sqrt{x} \\ +& \Longleftrightarrow 2x K'y_0 = \sqrt{x} \Arrow{...}\\ ... \end{WithArrows}$ -\end{Verbatim} +\end{Code} $\begin{WithArrows}[displaystyle,group] -2xy'-3y=\sqrt x -& \Longleftrightarrow 2x(K'y_0+Ky_0')-3Ky_0 = \sqrt x \\ -& \Longleftrightarrow 2xK'y_0 + K(2xy_0'-3y_0) = \sqrt x \\ -& \Longleftrightarrow 2x K'y_0 = \sqrt x \Arrow{on remplace $y_0$ par sa valeur}\\ -& \Longleftrightarrow 2xK'x^{\frac32} = x^{\frac12} \Arrow{simplification par $x$}\\ -& \Longleftrightarrow K' = \tfrac1{2x^2} \Arrow{on primitive}\\ -& \Longleftrightarrow K = -\tfrac1{2x} +2xy'-3y=\sqrt{x} +& \Longleftrightarrow 2x(K'y_0+Ky_0')-3Ky_0 = \sqrt{x} \\ +& \Longleftrightarrow 2xK'y_0 + K(2xy_0'-3y_0) = \sqrt{x} \\ +& \Longleftrightarrow 2x K'y_0 = \sqrt{x} \Arrow{on remplace $y_0$ par sa valeur}\\ +& \Longleftrightarrow 2xK'x^{\frac{3}{2}} = x^{\frac{1}{2}} \Arrow{simplification par $x$}\\ +& \Longleftrightarrow K' = \tfrac{1}{2x^2} \Arrow{on primitive}\\ +& \Longleftrightarrow K = -\tfrac{1}{2x} \end{WithArrows}$ \bigskip -L'environnement |{WithArrows}| fournit encore une autre option, nommée |groups| (avec un \emph{s} dans le -nom). Avec cette option, les flèches sont divisées en plusieurs «groupes». Chaque groupe est un ensemble de flèches -connectées entre elles\footnote{Plus précisément : pour chaque flèche $a$, notons $i(a)$ le numéro de sa rangée de - départ et - $f(a)$ le numéro de sa rangée d'arrivée ; pour deux flèches $a$ et $b$, nous noterons $a \sim b$ lorsque - $\llbracket i(a),f(a)\rrbracket \cap \llbracket i(b),f(b)\rrbracket \neq \varnothing$ ; les groupes sont les - classes d'équivalence de la clôture transitive de la relation $\sim$.}. Toutes les flèches d'un même groupe sont placées sur -une même verticale qui est calée à gauche. +L'environnement |{WithArrows}| fournit encore une autre option, nommée \Definition{groups} +(avec un \emph{s} dans le nom). Avec cette option, les flèches sont divisées en plusieurs +«groupes». Chaque groupe est un ensemble de flèches connectées entre elles\footnote{Plus + précisément : pour chaque flèche $a$, notons $i(a)$ le numéro de sa rangée de départ et + $f(a)$ le numéro de sa rangée d'arrivée ; pour deux flèches $a$ et $b$, nous noterons + $a \sim b$ lorsque + $\llbracket i(a),f(a)\rrbracket \cap \llbracket i(b),f(b)\rrbracket \neq \varnothing$ ; + les groupes sont les classes d'équivalence de la clôture transitive de la relation + $\sim$.}. Toutes les flèches d'un même groupe sont placées sur une même verticale qui +est calée à gauche. \bigskip @@ -663,24 +734,28 @@ A & = B \Arrow{un} \\ \end{WithArrows}$ \bigskip -Dans un environnement qui utilise l'option |group| ou l'option |groups|, il est encore possible de donner une -option de position (|ll|, |lr|, |rl|, |rr| ou |i|) à une flèche individuelle\footnote{Une telle flèche est - qualifiée d'\emph{indépendante} (\emph{independent} en anglais) dans la documentation technique.}. Une telle -flèche sera tracée indépendamment des groupes. Il est aussi possible de commencer un nouveau groupe avec l'option -|new-group| pour une certaine flèche. +Dans un environnement qui utilise l'option |group| ou l'option |groups|, il est encore +possible de donner une option de position (|ll|, |lr|, |rl|, |rr| ou |i|) à une flèche +individuelle\footnote{Une telle flèche est qualifiée d'\emph{indépendante} + (\emph{independent} en anglais) dans la documentation technique.}. Une telle flèche sera +tracée indépendamment des groupes. Il est aussi possible de commencer un nouveau groupe +avec l'option \Definition{new-group} pour une certaine flèche. \bigskip -Si on le souhaite, on peut passer l'option |group| ou |groups| à la commande |WithArrowsOptions| de telle sorte -qu'elle deviendra la valeur par défaut (jusqu'à la fin du groupe TeX courant). Dans ce cas, il est encore possible -de revenir au comportement par défaut pour un environnement |{WithArrows}| donné avec l'option |rr|: +Si on le souhaite, on peut passer l'option |group| ou |groups| à la commande +|WithArrowsOptions| de telle sorte qu'elle deviendra la valeur par défaut (jusqu'à la fin +du groupe TeX courant). Dans ce cas, il est encore possible de revenir au comportement par +défaut pour un environnement |{WithArrows}| donné avec l'option |rr|: |\begin{WithArrows}[rr]|. -\vspace{1cm} -Dans l'exemple suivant, nous avons utilisé l'option |groups| pour l'environnement et l'option |new-group| pour la -dernière flèche (c'est pourquoi cette dernière flèche n'est pas alignée avec les premières). +\vspace{1cm} +Dans l'exemple suivant, nous avons utilisé l'option |groups| pour l'environnement et +l'option |new-group| pour la dernière flèche (c'est pourquoi cette dernière flèche n'est +pas alignée avec les premières). +\bigskip $\begin{WithArrows}[interline=1mm,groups] \sum\limits_{k=0}^n\frac{\cos kx}{\cos^k x} & = \sum\limits_{k=0}^n \frac{\Re (e^{ikx})}{(\cos x)^k} @@ -695,11 +770,13 @@ $\begin{WithArrows}[interline=1mm,groups] \Arrow{réduction au même dénominateur} \\ & = \Re \left(\frac{\frac{\cos^{n+1}x-e^{i(n+1)x}}{\cos^{n+1}x}}{\frac{\cos x-e^{ix}}{\cos x}}\right) \Arrow{\(\Re(kz) = k\cdot\Re(z)\) lorsque \(k\) est réel} \\ -& = \frac1{\cos^n x}\Re \left(\frac{\cos^{n+1}x-e^{i(n+1)x}}{\cos x-e^{ix}}\right) +& = \frac{1}{\cos^n x}\Re \left(\frac{\cos^{n+1}x-e^{i(n+1)x}}{\cos x-e^{ix}}\right) \Arrow[new-group]{forme algébrique des nombres complexes} \\ -& =\frac1{\cos^n x}\Re\left(\frac{\cos^{n+1}x-(\cos(n+1)x+i\sin(n+1)x)}{\cos x-(\cos x+i\sin x)}\right) \\ -& =\frac1{\cos^n x}\Re\left(\frac{(\cos^{n+1}x-\cos(n+1)x)-i\sin(n+1)x}{-i\sin x}\right) \\ -& = \frac1{\cos^nx}\cdot\frac{\sin(n+1)x}{\sin x} +& =\frac{1}{\cos^n x} + \Re\left(\frac{\cos^{n+1}x-(\cos(n+1)x+i\sin(n+1)x)}{\cos x-(\cos x+i\sin x)}\right) \\ +& =\frac{1}{\cos^n x} + \Re\left(\frac{(\cos^{n+1}x-\cos(n+1)x)-i\sin(n+1)x}{-i\sin x}\right) \\ +& = \frac{1}{\cos^nx}\cdot\frac{\sin(n+1)x}{\sin x} \end{WithArrows}$ @@ -710,8 +787,8 @@ $\begin{WithArrows}[interline=1mm,groups] Considérons, dans un environnement donné, deux flèches notées formellement $a$ et $b$. -On notera $i_a$ et $i_b$ les numéros des lignes de départ de $a$ et $b$ et $f_a$ et $f_b$ les numéros de leurs -lignes d'arrivée. On a bien entendu $i_a \le f_a$ et $i_b \le f_b$ +On notera $i_a$ et $i_b$ les numéros des lignes de départ de $a$ et $b$ et $f_a$ et $f_b$ +les numéros de leurs lignes d'arrivée. On a bien entendu $i_a \le f_a$ et $i_b \le f_b$ \smallskip On dira que la flèche~$a$ \emph{recouvre} la flèche~$b$ lorsque $i_a \le i_b \le f_b \le f_a$ @@ -727,25 +804,26 @@ A & = B \Arrow[tikz=red,jump=3]{}\\ \end{WithArrows}$ \bigskip -Au niveau local, il existe une option |o|. Cette option n'est disponible que lorsque l'on est en mode |group| ou bien -en mode |groups| (cf. p.~\pageref{group}). +Au niveau local, il existe une option \Definition{o}. Cette option n'est disponible que +lorsque l'on est en mode |group| ou bien en mode |groups| (cf. p.~\pageref{group}). -Une flèche de type |o| est tracée avec un décalage horizontal (comme celui fixé par |xoffset|) calculé -automatiquement en fonction des flèches qu'elle recrouvre.\footnote{Parmi les flèches recouvertes, les flèches - indépendantes (c'est-à-dire celles qui ont une option explicite |rr|, |ll|, |rl|, |lr|, |i|, |up| ou |down|) ne - sont pas prises en compte pour le calcul du |xoffset|.} +Une flèche de type |o| est tracée avec un décalage horizontal (comme celui fixé par +|xoffset|) calculé automatiquement en fonction des flèches qu'elle +recrouvre.\footnote{Parmi les flèches recouvertes, les flèches indépendantes (c'est-à-dire + celles qui ont une option explicite |rr|, |ll|, |rl|, |lr|, |i|, |up| ou |down|) ne sont + pas prises en compte pour le calcul du |xoffset|.} \bigskip -\begin{BVerbatim}[boxwidth=10cm,baseline=c] +\begin{Code}[width=10cm] $\begin{WithArrows}[groups] -A & = B \Arrow{un}\Arrow[~emphase#o@,jump=3]{direct} \\ +A & = B \Arrow{un}\Arrow[\emph{o},jump=3]{direct} \\ & = C + C \Arrow{deux} \\ & = D + D + D \Arrow{trois} \\ & = E + E \\ & = F + F \end{WithArrows}$ -\end{BVerbatim} +\end{Code} $\begin{WithArrows}[c,groups] A & = B \Arrow{un}\Arrow[o,jump=3]{direct} \\ & = C + C \Arrow{deux} \\ @@ -757,17 +835,18 @@ A & = B \Arrow{un}\Arrow[o,jump=3]{direct} \\ \interitem -Les flèches de type |o| peuvent elles-mêmes être recouvertes par d'autres flèches de type~|o|:\par\nobreak +Les flèches de type |o| peuvent elles-mêmes être recouvertes par d'autres flèches de +type~|o|:\par\nobreak \bigskip -\begin{BVerbatim} +\begin{Code} $\begin{WithArrows}[groups] -A & = B \Arrow{un}\Arrow[~emphase#o@,jump=2]{deux}\Arrow[~emphase#o@,jump=3]{trois}\\ +A & = B \Arrow{un}\Arrow[\emph{o},jump=2]{deux}\Arrow[\emph{o},jump=3]{trois}\\ & = C \\ & = D \\ & = E + E + E + E + E + E + E \end{WithArrows}$ -\end{BVerbatim} +\end{Code} \bigskip @@ -779,32 +858,33 @@ A & = B \Arrow{un}\Arrow[o,jump=2]{deux}\Arrow[o,jump=3]{trois}\\ \end{WithArrows}$ \bigskip -L'espace (horizontal) entre une flèche de type |o| et les flèches immédiatement recouvertes est fixé par le -paramètre |xoffset-for-o-arrows| que l'on peut régler avec |\WithArrowsOptions| (valeur initiale : 2~mm). +L'espace (horizontal) entre une flèche de type |o| et les flèches immédiatement +recouvertes est fixé par le paramètre \Definition{xoffset-for-o-arrows} que l'on peut +régler avec |\WithArrowsOptions| (valeur initiale : 2~mm). \bigskip -\emph{Remarque} : La lettre |o| a été choisie car c'est la première lettre du mot anglais \emph{over}. Une flèche -de type~|o| est \emph{au-dessus} des flèches qu'elle recouvre. +\emph{Remarque} : La lettre |o| a été choisie car c'est la première lettre du mot anglais +\emph{over}. Une flèche de type~|o| est \emph{au-dessus} des flèches qu'elle recouvre. \interitem \section{Les options « up » et « down » pour des flèches individuelles} \label{up-and-down} -Au niveau local, il y a deux options pour les flèches individuelles, nommées «|up|» et «|down|». L'exemple -suivant illustre ces types de flèches: +Au niveau local, il y a deux options pour les flèches individuelles, nommées +\Definition{up} et \Definition{down}. L'exemple suivant illustre ces types de flèches: -\begin{Verbatim} +\begin{Code} \(\begin{WithArrows} A & = B -\Arrow~emphase#[up]@{une flèche de type \texttt{up}} \\ +\Arrow\emph{[up]}{une flèche de type \texttt{up}} \\ & = C + C + C + C + C + C + C + C \\ & = C + C + C + C + C + C + C + C -\Arrow~emphase#[down]@{une flèche de type \texttt{down}} \\ +\Arrow\emph{[down]}{une flèche de type \texttt{down}} \\ & = E + E \end{WithArrows}\) -\end{Verbatim} +\end{Code} \bigskip $\begin{WithArrows} @@ -818,31 +898,36 @@ A & = B \vspace{1cm} -Les options |up| et |down| nécessitent la bibliothèque Tikz \pkg{calc}. Si elle n'a pas été chargée au préalable par -l'utilisateur, une erreur sera levée. +Les options |up| et |down| nécessitent la bibliothèque Tikz \pkg{calc}. Si elle n'a pas +été chargée au préalable par l'utilisateur, une erreur sera levée. \vspace{1cm} -Les options |up| et |down| peuvent en fait prendre comme valeur une liste de couples clé-valeur. +Les options |up| et |down| peuvent en fait prendre comme valeur une liste de couples +clé-valeur. \begin{itemize} -\item La clé |radius| est le rayon de l'angle arrondi de la flèche\footnote{La valeur initiale de ce paramètre est égale à -$4$~pt, qui est la valeur par défaut du ``|rounded corners|'' de Tikz.}. -\item La clé |width| contrôle la largeur (de la partie horizontale) de la flèche : +\item La clé \Definition{radius} est le rayon de l'angle arrondi de la flèche\footnote{La + valeur initiale de ce paramètre est égale à $4$~pt, qui est la valeur par défaut du + ``|rounded corners|'' de Tikz.}. +\item La clé \Definition{width} contrôle la largeur (de la partie horizontale) de la flèche : \begin{itemize} -\item avec la valeur |max|, la largeur de la flèche est ajustée par rapport à la position des nœuds (c'est le -comportement par défaut des flèches |up| et |down| comme illustré dans l'exemple précédent) ; -\item avec une valeur numérique, la largeur de la flèche est directement fixée par cette valeur numérique ; -\item avec la valeur |min|, la largeur de la flèche est ajustée au contenu de son étiquette. +\item avec la valeur \Definition{max}, la largeur de la flèche est ajustée par rapport à +la position des nœuds (c'est le comportement par défaut des flèches |up| et |down| comme +illustré dans l'exemple précédent) ; +\item avec une valeur numérique, la largeur de la flèche est directement fixée par cette +valeur numérique ; +\item avec la valeur \Definition{min}, la largeur de la flèche est ajustée au contenu de +son étiquette. \end{itemize} \end{itemize} \vspace{1cm} -\begin{Verbatim} +\begin{Code} $\begin{WithArrows} A & = B -\Arrow[~emphase#up={width=2cm,radius=0pt}@]{essai} \\ +\Arrow[\emph{up={width=2cm,radius=0pt}}]{essai} \\ & = C + C + C + C + C + C + C + C \end{WithArrows}$ -\end{Verbatim} +\end{Code} \medskip $\begin{WithArrows} @@ -853,13 +938,13 @@ A & = B \vspace{1cm} -\begin{Verbatim} +\begin{Code} $\begin{WithArrows} A & = B -\Arrow[~emphase#up={width=min}@]{essai} \\ +\Arrow[\emph{up={width=min}}]{essai} \\ & = C + C + C + C + C + C + C + C \end{WithArrows}$ -\end{Verbatim} +\end{Code} \medskip $\begin{WithArrows} @@ -869,8 +954,9 @@ A & = B \end{WithArrows}$ \vspace{1cm} -Les options relatives aux flèches |up| et |down| peuvent être fixées au niveau global ou environnemental avec la -clé |up-and-down|. Cette clé peut aussi être utilisée comme préfixe comme illustré maintenant. +Les options relatives aux flèches |up| et |down| peuvent être fixées au niveau global ou +environnemental avec la clé \Definition{up-and-down}. Cette clé peut aussi être utilisée +comme préfixe comme illustré maintenant. % \begin{Verbatim} \WithArrowsOptions{up-and-down/width=min} @@ -880,23 +966,25 @@ clé |up-and-down|. Cette clé peut aussi être utilisée comme préfixe comme i \section{Comparaison avec l'environnement \{aligned\}} -L'environnement |{WithArrows}| présente des similitudes avec l'environnement |{aligned}| de l'extension -\pkg{amsmath}. Ce sont seulement des similitudes car |{WithArrows}| n'a pas été écrit en s'appuyant sur -|{aligned}|.\footnote{En fait, il est possible d'utiliser l'extension \pkg{witharrows} sans l'extension - \pkg{amsmath}.} +L'environnement |{WithArrows}| présente des similitudes avec l'environnement |{aligned}| +de l'extension \pkg{amsmath}. Ce sont seulement des similitudes car |{WithArrows}| n'a pas +été écrit en s'appuyant sur |{aligned}|.\footnote{En fait, il est possible d'utiliser + l'extension \pkg{witharrows} sans l'extension \pkg{amsmath}.} \interitem -Comme dans les environnements de l'\pkg{amsmath}, il est possible de changer l'espacement entre deux rangées avec -l'option de la commande |\\| de fin de ligne (il est aussi possible d'utiliser |\\*| mais cela a -exactement le même effet que |\\| puisqu'un environnement |{WithArrows}| est toujours insécable). Cette -option est conçu pour être utilisée avec des valeurs positives uniquement. + +Comme dans les environnements de l'extension \pkg{amsmath}, il est possible de changer +l'espacement entre deux rangées avec l'option de la commande |\\| de fin de ligne (il est +aussi possible d'utiliser |\\*| mais cela a exactement le même effet que |\\| puisqu'un +environnement |{WithArrows}| est toujours insécable). Cette option est conçue pour être +utilisée avec des valeurs positives uniquement. % -\begin{Verbatim} +\begin{Code} $\begin{WithArrows} -A & = (a+1)^2 \Arrow{on développe} ~emphase#\\[2ex]@ +A & = (a+1)^2 \Arrow{on développe} \emph{\\[2ex]} & = a^2 + 2a + 1 \end{WithArrows}$ -\end{Verbatim} +\end{Code} $\begin{WithArrows} A & = (a+1)^2 \Arrow{on développe} \\*[2ex] @@ -906,34 +994,35 @@ A & = (a+1)^2 \Arrow{on développe} \\*[2ex] \interitem -Dans les environnements de l'\pkg{amsmath} (ou de \pkg{mathtools}), l'espace entre deux rangées est fixé par un -paramètre appelé |\jot| (il s'agit d'une dimension et non d'un ressort). C'est aussi le cas pour l'environnement -|{WithArrows}|. Une option |jot| a été ajoutée à l'environnement |{WithArrows}| dans le but de changer ce paramètre -|\jot| pour un environnement donné.\footnote{Il est aussi possible de changer |\jot| avec l'environnement - |{spreadlines}| de \pkg{mathtools}.} +Dans les environnements de l'extension \pkg{amsmath} (ou de \pkg{mathtools}), l'espace +entre deux rangées est fixé par un paramètre appelé |\jot| (il s'agit d'une dimension et +non d'un ressort). C'est aussi le cas pour l'environnement |{WithArrows}|. Une option +\Definition{jot} a été ajoutée à l'environnement |{WithArrows}| dans le but de changer ce +paramètre |\jot| pour un environnement donné.\footnote{Il est aussi possible de changer + |\jot| avec l'environnement |{spreadlines}| de \pkg{mathtools}.} % -\begin{Verbatim} -$\begin{WithArrows}[displaystyle,~emphase#jot=2ex@] -F & = \frac12G \Arrow{on développe}\\ - & = H + \frac12K \Arrow{on continue}\\ +\begin{Code} +$\begin{WithArrows}[displaystyle,\emph{jot=2ex}] +F & = \frac{1}{2}G \Arrow{on développe}\\ + & = H + \frac{1}{2}K \Arrow{on continue}\\ & = K \end{WithArrows}$ -\end{Verbatim} +\end{Code} $\begin{WithArrows}[displaystyle,jot=2ex] -F & = \frac12G \Arrow{on développe}\\ - & = H + \frac12K \Arrow{on continue}\\ +F & = \frac{1}{2}G \Arrow{on développe}\\ + & = H + \frac{1}{2}K \Arrow{on continue}\\ & = K \end{WithArrows}$ \bigskip -Néanmoins, cette nouvelle valeur de |\jot| sera aussi utilisée dans les nouveaux alignements inclus dans -l'environnement~|{WithArrows}|: +Néanmoins, cette nouvelle valeur de |\jot| sera aussi utilisée dans les nouveaux +alignements inclus dans l'environnement~|{WithArrows}|: % -\begin{Verbatim} -$\begin{WithArrows}[jot=2ex] +\begin{Code} +$\begin{WithArrows}[\emph{jot=2ex}] \varphi(x,y) = 0 & \Leftrightarrow (x+y)^2 + (x+2y)^2 = 0 \Arrow{$x$ et $y$ sont réels}\\ & \Leftrightarrow \left\{ @@ -943,7 +1032,7 @@ x+2y & = 0 \end{aligned} \right. \end{WithArrows}$ -\end{Verbatim} +\end{Code} $\begin{WithArrows}[jot=2ex] @@ -958,11 +1047,12 @@ x+2y & = 0 \end{WithArrows}$ \bigskip -Peut-être que cela ne correspond pas au résultat souhaité. C'est pourquoi une option |interline| est fournie. Il -est possible d'utiliser un ressort (\emph{skip}) pour cette option. +Peut-être que cela ne correspond pas au résultat souhaité. C'est pourquoi une option +\Definition{interline} est fournie. Il est possible d'utiliser un ressort (\emph{skip}) +pour cette option. % -\begin{Verbatim} -$\begin{WithArrows}[~emphase#interline=2ex@] +\begin{Code} +$\begin{WithArrows}[\emph{interline=2ex}] \varphi(x,y) = 0 & \Leftrightarrow (x+y)^2 + (x+2y)^2 = 0 \Arrow{$x$ et $y$ sont réels}\\ & \Leftrightarrow \left\{ @@ -972,7 +1062,7 @@ x+2y & = 0 \\ \end{aligned} \right. \end{WithArrows}$ -\end{Verbatim} +\end{Code} $\begin{WithArrows}[interline=2ex] @@ -987,10 +1077,11 @@ x+2y & = 0 \\ \end{WithArrows}$ -\interitem -De même que l'environnement |{aligned}|, |{WithArrows}| a une option de placement qui peut prendre les valeurs |t|, -|c| ou |b|. Néanmoins, la valeur initiale n'est pas |c| mais |t|. Si on le souhaite, il est possible d'avoir la -valeur |c| comme valeur par défaut en utilisant l'instruction |\WithArrowsOptions{c}| au début du document. +\interitem +De même que l'environnement |{aligned}|, |{WithArrows}| a une option de placement qui peut +prendre les valeurs \Definition{t}, \Definition{c} ou \Definition{b}. Néanmoins, la valeur +initiale n'est pas |c| mais |t|. Si on le souhaite, il est possible d'avoir la valeur |c| +comme valeur par défaut en utilisant l'instruction |\WithArrowsOptions{c}| au début du document. % \begin{Verbatim} Ainsi\enskip @@ -1010,14 +1101,15 @@ A & = (a+1)^2 \Arrow{on développe} \\ La valeur |c| peut être utile, par exemple, si on souhaite mettre une accolade : \smallskip +% Dans le code suivant, on ne peut utiliser {Code} avec \emph{} à cause du \{... \begin{Verbatim} -On pose\enskip $~emphase#\left\{@ +On pose\enskip $~emphase#{\left\{@ \begin{WithArrows}[~emphase#c@] f(x) & = 3x^3+2x^2-x+4 \Arrow[tikz=-]{les deux sont des polynômes}\\ g(x) & = 5x^2-5x+6 \end{WithArrows} -~emphase#\right.@$ +~emphase#\right.@ \end{Verbatim} @@ -1035,7 +1127,8 @@ Contrairement à |{aligned}|, l'environnement |{WithArrows}| utilise |\textstyle Là aussi, il est possible de changer ce comportement avec |\WithArrowsOptions|: -\quad |\WithArrowsOptions{displaystyle}|. +\smallskip +|\WithArrowsOptions{displaystyle}|. \smallskip @@ -1046,23 +1139,21 @@ $\left\{ \begin{aligned} \sum_{i=1}^n (x_i+1)^2 & = \sum_{i=1}^n (x_i^2 + 2x_i+1) \\ -& = \sum_{i=1}^n x_i^2 + 2 \sum_{i=1}^nx_i + n +& = \sum_{i=1}^n x_i^2 + 2 \sum_{i=1}^n x_i + n \end{aligned} \right.$ \medskip L'exemple suivant est composé avec |{WithArrows}[c,displaystyle]|. Les résultats -sont parfaitement identiques.\footnote{Dans les versions de l'\pkg{amsmath} antérieures au -5~novembre~2016, un espace fin était ajouté sur la gauche de l'environnement |{aligned}|. -Les versions plus récentes n'ajoutent pas d'espace et |{WithArrows}| non plus.}\par\nobreak +sont parfaitement identiques.\par\nobreak \smallskip $\left\{ \begin{WithArrows}[c,displaystyle] \sum_{i=1}^n (x_i+1)^2 & = \sum_{i=1}^n (x_i^2 + 2x_i+1) \\ -& = \sum_{i=1}^n x_i^2 + 2 \sum_{i=1}^nx_i + n +& = \sum_{i=1}^n x_i^2 + 2 \sum_{i=1}^n x_i + n \end{WithArrows} \right.$ @@ -1074,25 +1165,25 @@ $\left\{ Les environnements |{WithArrows}| peuvent être imbriqués. Dans ce cas, les options fournies à l'environnement englobant s'appliquent aussi aux environnements imbriqués (avec des exceptions tout à fait attendues pour |interline|, |code-before| et |code-after|). La commande -|Arrow| peut être utilisée dans chaque environnement |{WithArrows}|. +|\Arrow| peut être utilisée dans chaque environnement |{WithArrows}|. -\begin{Verbatim}[formatcom=\small\color{gray}] -$~emphase#\begin{WithArrows}@ +\begin{Code} +$\emph{\begin{WithArrows}} \varphi(x,y)=0 & \Leftrightarrow (x+2y)^2+(2x+4y)^2 = 0 \Arrow{les nombres sont réels}\\ & \Leftrightarrow - \left\{~emphase#\begin{WithArrows}@[c] + \left\{\emph{\begin{WithArrows}}[c] x+2y & = 0 \\ 2x+4y & = 0 - ~emphase#\end{WithArrows}@\right. \\ + \emph{\end{WithArrows}}\right. \\ & \Leftrightarrow - \left\{~emphase#\begin{WithArrows}@[c] + \left\{\emph{\begin{WithArrows}}[c] x+2y & = 0 \Arrow[tikz=-]{la même équation}\\ x+2y & = 0 - ~emphase#\end{WithArrows}@\right. \\ + \emph{\end{WithArrows}}\right. \\ & \Leftrightarrow x+2y=0 -~emphase#\end{WithArrows}@$ -\end{Verbatim} +\emph{\end{WithArrows}}$ +\end{Code} $\begin{WithArrows} \varphi(x,y)=0 @@ -1111,8 +1202,8 @@ $\begin{WithArrows} \end{WithArrows}$ \bigskip -Néanmoins, on peut souhaiter tracer une flèche entre des rangées qui ne sont pas dans le même -environnement. Par exemple, on pourrait souhaiter tracer la flèche suivante : +Néanmoins, on peut souhaiter tracer une flèche entre des rangées qui ne sont pas dans le +même environnement. Par exemple, on pourrait souhaiter tracer la flèche suivante : \bigskip $\begin{WithArrows}[code-after = \Arrow[v]{1-2}{2-2}{division par $2$} ] @@ -1144,16 +1235,16 @@ Une commande |\Arrow| dans le |code-after| prend trois arguments : \item une spécification pour la rangée d'arrivée ; \item une étiquette pour la flèche. \end{itemize} -Comme d'habitude, il est possible de donner des options entre crochets avant ou après les trois arguments -obligatoires. Néanmoins, ces options sont limitées (voir plus bas). +Comme d'habitude, il est possible de donner des options entre crochets avant ou après les +trois arguments obligatoires. Néanmoins, ces options sont limitées (voir plus bas). -\interitem -La spécification de rangée est construite avec la position de l'environnement conidéré dans l'arbre des -imbrications, suivie, après un trait d'union, par le numéro de la rangée. +\interitem La spécification de rangée est construite avec la position de l'environnement +conidéré dans l'arbre des imbrications, suivie, après un trait d'union, par le numéro de +la rangée. \bigskip -Dans l'exemple précédent, il y a deux environnements |{WithArrows}| imbriqués dans l'environnement -|{WithArrows}| principal. +Dans l'exemple précédent, il y a deux environnements |{WithArrows}| imbriqués dans +l'environnement |{WithArrows}| principal. \medskip $\begin{WithArrows}[tikz-code = {\path (#1) to node {#3} (#2) ; }] @@ -1173,18 +1264,18 @@ $\begin{WithArrows}[tikz-code = {\path (#1) to node {#3} (#2) ; }] \end{WithArrows}$ \bigskip -La flèche que nous voulons tracer part de la rangée~$2$ du sous-environnement \no $1$ (et, par conséquent, la -spécification est |1-2|) et arrive à la rangée~$2$ du sous-environnement \no $2$ (et, par conséquent, la -spécification est |2-2|). Nous pouvons tracer la flèche avec une commande |\Arrow| dans le |code-after| de la -manière suivante : +La flèche que nous voulons tracer part de la rangée~$2$ du sous-environnement \no $1$ (et, +par conséquent, la spécification est |1-2|) et arrive à la rangée~$2$ du +sous-environnement \no $2$ (et, par conséquent, la spécification est |2-2|). Nous pouvons +tracer la flèche avec une commande |\Arrow| dans le |code-after| de la manière suivante : -\begin{Verbatim} -$\begin{WithArrows}[~emphase#code-after = \Arrow{1-2}{2-2}{division par $2$}@ ] +\begin{Code} +$\begin{WithArrows}[\emph{code-after = \Arrow{1-2}{2-2}{division par $2$}}] \varphi(x,y)=0 & \Leftrightarrow (x+2y)^2+(2x+4y)^2 = 0 \\ ......... \end{WithArrows}$ -\end{Verbatim} +\end{Code} $\begin{WithArrows}[code-after = \Arrow{1-2}{2-2}{division par $2$} ] \varphi(x,y)=0 @@ -1203,23 +1294,23 @@ $\begin{WithArrows}[code-after = \Arrow{1-2}{2-2}{division par $2$} ] \end{WithArrows}$ \bigskip -Les options autorisées pour une commande |\Arrow| dans le |code-after| sont : |ll|, |lr|, |rl|, |rr|, |v|, -|xoffset|, |tikz| et |tikz-code|. Exceptée |v|, qui est spécifique à |\Arrow| dans le |code-after|, toutes ces -options ont leur signification habituelle. +Les options autorisées pour une commande |\Arrow| dans le |code-after| sont : |ll|, |lr|, +|rl|, |rr|, |v|, |xoffset|, |tikz| et |tikz-code|. Exceptée |v|, qui est spécifique à +|\Arrow| dans le |code-after|, toutes ces options ont leur signification habituelle. -Avec l'option |v|, la flèche tracée est verticale à une abscisse calculée avec -la rangée de départ et la rangée d'arrivée uniquement : les lignes intermédiaires ne sont pas prises en compte -contrairement à ce qui se passe avec l'option |i|. Pour le moment, l'option |i| n'est pas disponible -pour la commande~|\Arrow| dans le |code-after|. Néanmoins, il est toujours possible -de déplacer une flèche avec |xoffset| (ou |xshift| de Tikz). -\begin{Verbatim} -$\begin{WithArrows}[code-after=\Arrow~emphase#[v]@{1-2}{2-2}{division by $2$}] +Avec l'option |v|, la flèche tracée est verticale à une abscisse calculée avec la rangée +de départ et la rangée d'arrivée uniquement : les lignes intermédiaires ne sont pas prises +en compte contrairement à ce qui se passe avec l'option |i|. Pour le moment, l'option |i| +n'est pas disponible pour la commande~|\Arrow| dans le |code-after|. Néanmoins, il est +toujours possible de déplacer une flèche avec |xoffset| (ou |xshift| de Tikz). +\begin{Code} +$\begin{WithArrows}[code-after=\Arrow\emph{[v]}{1-2}{2-2}{division by $2$}] \varphi(x,y)=0 & \Leftrightarrow (x+2y)^2+(2x+4y)^2 = 0 \\ ......... \end{WithArrows}$ -\end{Verbatim} +\end{Code} $\begin{WithArrows}[code-after = \Arrow[v]{1-2}{2-2}{division par $2$} ] \varphi(x,y)=0 @@ -1239,21 +1330,22 @@ $\begin{WithArrows}[code-after = \Arrow[v]{1-2}{2-2}{division par $2$} ] \interitem -L'extension \pkg{witharrows} fournit une autre commande disponible dans le |code-after| : la commande -|\MultiArrow|. Cette commande dessine un «rateau». La liste des rangées concernées par ce rateau est donnée dans le -premier argument de la commande |\MultiArrow|. La syntaxe utilisée pour décrire cette liste est celle de la -commande |\foreach| de \pkg{pgffor}. +L'extension \pkg{witharrows} fournit une autre commande disponible dans le |code-after| : +la commande \DefinitionCommande{MultiArrow}. Cette commande dessine un «rateau». La liste +des rangées concernées par ce rateau est donnée dans le premier argument de la commande +|\MultiArrow|. La syntaxe utilisée pour décrire cette liste est celle de la commande +|\foreach| de \pkg{pgffor}. -\begin{Verbatim} +\begin{Code} $\begin{WithArrows}[tikz = rounded corners, - code-after = {~emphase#\MultiArrow{1,...,4}{text}@} ] + code-after = {\emph{\MultiArrow{1,...,4}{text}}} ] A & = B \\ & = C \\ & = D \\ & = E \\ & = F \end{WithArrows}$ -\end{Verbatim} +\end{Code} $\begin{WithArrows}[tikz = rounded corners, @@ -1272,17 +1364,18 @@ Pour le moment, aucune option n'est disponible pour cette commande |\MultiArrow| \medskip \section{Dessiner des flèches depuis l'extérieur des environnements \{WithArrows\}} -Si on désire dessiner des flèches depuis l'extérieur des environnements |{WithArrows}|, il est possible de le -faire en utilisant les nœuds Tikz créés par ces environnements. +Si on désire dessiner des flèches depuis l'extérieur des environnements |{WithArrows}|, il +est possible de le faire en utilisant les nœuds Tikz créés par ces environnements. -Le nom d'un nœud Tikz créé par \pkg{witharrows} est préfixé par |wa-|. Ensuite, on trouve une liste de nombres -qui indique quelle est la position de l'environnement dans l'arbre d'imbrication des environnements. À la fin, on a -le suffixe |l| pour un nœud de gauche et le suffixe |r| pour un nœud de droite. +Le nom d'un nœud Tikz créé par \pkg{witharrows} est préfixé par |wa-|. Ensuite, on trouve +une liste de nombres qui indique quelle est la position de l'environnement dans l'arbre +d'imbrication des environnements. À la fin, on a le suffixe |l| pour un nœud de gauche et +le suffixe |r| pour un nœud de droite. \smallskip -À titre d'illustration, nous donnons un exemple d'environnements |{WithArrows}| imbriqués et, pour chaque nœud -de droite, le nom de ce nœud.\footnote{Il existe une option |show-node-names| pour faire afficher les noms de - ces nœuds.} +À titre d'illustration, nous donnons un exemple d'environnements |{WithArrows}| imbriqués +et, pour chaque nœud de droite, le nom de ce nœud.\footnote{Il existe une option + \Definition{show-node-names} pour faire afficher les noms de ces nœuds.} \medskip @@ -1319,19 +1412,21 @@ P & \vartriangleleft Q \medskip L'extension \pkg{witharrows} fournit quelques outils pour faciliter l'utilisation de ces nœuds : \begin{itemize} -\item la commande |\WithArrowsLastEnv| donne le numéro du dernier environnement de niveau~$0$ (c'est-à-dire -non imbriqué dans un autre environnement de \pkg{witharrows}) ; +\item la commande \DefinitionCommande{WithArrowsLastEnv} donne le numéro du dernier +environnement de niveau~$0$ (c'est-à-dire non imbriqué dans un autre environnement de +\pkg{witharrows}) ; -\item un nom peut être donné à un environnement avec l'option |name| et, dans ce cas, les nœuds créés dans -l'environnement auront des alias construits en utilisant ce nom ; +\item un nom peut être donné à un environnement avec l'option \Definition{name} et, dans +ce cas, les nœuds créés dans l'environnement auront des alias construits en utilisant ce +nom ; -\item le style Tikz |WithArrows/arrow| est le style utilisé par \pkg{witharrows} pour dessiner une -flèche\footnote{Plus précisément, ce style est passé à Tikz via l'option «|every path|» avant le dessin de la +\item le style Tikz \Definition{WithArrows/arrow} est le style utilisé par +\pkg{witharrows} pour dessiner une flèche\footnote{Plus précisément, ce style est passé à Tikz via l'option «|every path|» avant le dessin de la flèche (qui se fait avec l'instruction Tikz stockée dans |tikz-code|). Ce style est modifié par l'option |tikz| de \pkg{witharrows} (avec une portée correspondant au groupe TeX courant).} ; -\item le style Tikz |WithArrows/arrow/tips| est le style utilisé pour la pointe de flèche (ce style est -lui-même chargé par le style |WithArrows/arrow|). +\item le style Tikz \Definition{WithArrows/arrow/tips} est le style utilisé pour la pointe +de flèche (ce style est lui-même chargé par le style |WithArrows/arrow|). \end{itemize} Par exemple, nous pouvons tracer une flèche allant de \texttt{wa-\WithArrowsLastEnv-2-1-2-r.south} @@ -1383,32 +1478,32 @@ P & \vartriangleleft Q \] \medskip -Dans le cas présent, il aurait été plus facile d'utiliser une commande |\Arrow| dans le |code-after| mais -c'était seulement un exemple pour illustrer comment les nœuds Tikz créés par \pkg{witharrows} peuvent être -utilisés. +Dans le cas présent, il aurait été plus facile d'utiliser une commande |\Arrow| dans le +|code-after| mais c'était seulement un exemple pour illustrer comment les nœuds Tikz créés +par \pkg{witharrows} peuvent être utilisés. \bigskip -Dans l'exemple suivant, on crée des environnements |{WithArrows}| nommés «|premier|» et «|second|» et on dessine -une flèche entre un nœud du premier et un nœud du second. +Dans l'exemple suivant, on crée des environnements |{WithArrows}| nommés «|premier|» et +«|second|» et on dessine une flèche entre un nœud du premier et un nœud du second. -\begin{Verbatim} -$\begin{WithArrows}[~emphase#name=premier@] +\begin{Code} +$\begin{WithArrows}[\emph{name=premier}] A & = B \\ & = C \end{WithArrows}$ \bigskip -$\begin{WithArrows}[~emphase#name=second@] +$\begin{WithArrows}[\emph{name=second}] A' & = B' \\ & = C' \end{WithArrows}$ \begin{tikzpicture}[remember picture,overlay] \draw [WithArrows/arrow] - ([xshift=3mm]~emphase#premier@-1-r.south) - to ([xshift=3mm]~emphase#second@-1-r.north) ; + ([xshift=3mm]\emph{premier}-1-r.south) + to ([xshift=3mm]\emph{second}-1-r.north) ; \end{tikzpicture} -\end{Verbatim} +\end{Code} \begin{center} @@ -1433,39 +1528,42 @@ A' & = B' \\ \section{L'environnement \{DispWithArrows\}} \label{DispWithArrows} -Comme dit précédemment, l'environnement |{WithArrows}| présente des similitudes avec l'environnement |{aligned}| de -l'\pkg{amsmath} (et de |mathtools|). L'extension \pkg{witharrows} fournit aussi un environnement |{DispWithArrows}| -qui est similaire aux environnements |{align}| et |{flalign}| de l'\pkg{amsmath}. +Comme dit précédemment, l'environnement |{WithArrows}| présente des similitudes avec +l'environnement |{aligned}| de l'extension \pkg{amsmath} (et de |mathtools|). L'extension +\pkg{witharrows} fournit aussi un environnement \Definition{\{DispWithArrows\}} qui est +similaire aux environnements |{align}| et |{flalign}| de l'extension \pkg{amsmath}. \medskip -L'environnement |{DispWithArrows}| doit être utilisé \emph{hors} du mode mathématique. Comme -|{align}|, il doit être utilisé en mode horizontal. -\begin{Verbatim} -\begin{~emphase#DispWithArrows@} +L'environnement |{DispWithArrows}| doit être utilisé \emph{hors} du mode mathématique. +Comme |{align}|, il doit être utilisé en mode horizontal. +\begin{Code} +\begin{\emph{DispWithArrows}} A & = (a+1)^2 \Arrow{on développe} \\ & = a^2 + 2a + 1 -\end{~emphase#DispWithArrows@} -\end{Verbatim} +\end{\emph{DispWithArrows}} +\end{Code} \begin{DispWithArrows} A & = (a+1)^2 \Arrow{on développe} \\ & = a^2 + 2a + 1 \end{DispWithArrows} \medskip -Il est possible d'utiliser la commande |\notag| (ou |\nonumber|) pour supprimer un numéro d'équation. +Il est possible d'utiliser la commande \DefinitionCommande{notag} (ou +\DefinitionCommande{nonumber}) pour supprimer un numéro d'équation. -Il est possible d'utiliser la commande |\tag| pour placer une étiquette spéciale (par ex. $\star$). +Il est possible d'utiliser la commande \DefinitionCommande{tag} pour placer une étiquette +spéciale (par ex. $\star$). -Il est aussi possible de placer un label pour une ligne de l'environnement avec la commande -|\label|. +Il est aussi possible de placer un label pour une ligne de l'environnement avec la +commande \DefinitionCommande{label}. Ces commandes doivent être utilisées dans la dernière colonne de l'environnement. -\begin{Verbatim} +\begin{Code} \begin{DispWithArrows} -A & = (a+1)^2 \Arrow{on développe} ~emphase#\notag@ \\ - & = a^2 + 2a + 1 ~emphase#\tag{$\star$} \label{mon-équation}@ +A & = (a+1)^2 \Arrow{on développe} \emph{\notag} \\ + & = a^2 + 2a + 1 \emph{\tag{$\star$} \label{mon-équation}} \end{DispWithArrows} -\end{Verbatim} +\end{Code} \begin{DispWithArrows} A & = (a+1)^2 \Arrow{on développe} \notag \\ & = a^2 + 2a + 1 \tag{$\star$} \label{mon-équation} @@ -1475,52 +1573,55 @@ références ont été personnalisées avec |\labelformat{equation}{(#1)}|} \medskip -Si \pkg{amsmath} (ou \pkg{mathtools}) est chargée, il est possible d'utiliser |\tag*| qui compose le label -sans les parenthèses. Par exemple, il est possible de l'utiliser pour mettre le symbole |\square| de -\pkg{amssymb}. Ce symbole est souvent utilisé pour marquer la fin d'une démonstration.\footnote{Signalons que - l'environnement |{DispWithArrows}| est compatible avec la commande |\qedhere| de \pkg{amsthm}.} -\begin{Verbatim} +Si \pkg{amsmath} (ou \pkg{mathtools}) est chargée, il est possible d'utiliser |\tag*| qui +compose le label sans les parenthèses. Par exemple, il est possible de l'utiliser pour +mettre le symbole |\square| de \pkg{amssymb}. Ce symbole est souvent utilisé pour marquer +la fin d'une démonstration.\footnote{Signalons que l'environnement |{DispWithArrows}| est + compatible avec la commande |\qedhere| de \pkg{amsthm}.} +\begin{Code} \begin{DispWithArrows} A & = (a+1)^2 \Arrow{on développe} \notag \\ - & = a^2 + 2a + 1 ~emphase#\tag*{$\square$}@ + & = a^2 + 2a + 1 \emph{\tag*{$\square$}} \end{DispWithArrows} -\end{Verbatim} +\end{Code} \begin{DispWithArrows} A & = (a+1)^2 \Arrow{on développe} \notag \\ & = a^2 + 2a + 1 \tag*{$\square$} \end{DispWithArrows} \medskip -Il est également possible de supprimer tous les numéros d'équations avec l'option booléenne |notag| (ou -|nonumber|), au niveau global ou bien au niveau d'un environnement. - -Enfin, il existe aussi -un environnement |{DispWithArrows*}| qui supprime tous les numéros.\footnote{Même dans ce cas, il est possible -de mettre une étiquette manuellement avec la commande |\tag|.} -\begin{Verbatim} -\begin{~emphase#DispWithArrows*@} +Il est également possible de supprimer tous les numéros d'équations avec l'option +booléenne \Definition{notag} (ou \Definition{nonumber}), au niveau global ou bien au niveau d'un +environnement. + +Enfin, il existe aussi un environnement \Definition{\{DispWithArrows*\}} qui supprime tous +les numéros.\footnote{Même dans ce cas, il est possible de mettre une étiquette + manuellement avec la commande |\tag|.} +\begin{Code} +\begin{\emph{DispWithArrows*}} A & = (a+1)^2 \Arrow{on développe} \\ & = a^2 + 2a + 1 -\end{~emphase#DispWithArrows*@} -\end{Verbatim} +\end{\emph{DispWithArrows*}} +\end{Code} \begin{DispWithArrows*} A & = (a+1)^2 \Arrow{on développe} \\ & = a^2 + 2a + 1 \end{DispWithArrows*} \medskip -En fait, il y a une autre option, nommée |tagged-lines|, qui peut être utilisée pour contrôler quelles lignes -seront numérotées. La valeur de cette option est la liste des numéros de lignes (dans l'environnement) qui seront -numérotées (par le système de numérotage des équations). Par exemple, avec l'option -|tagged-lines = {first,3,last}|, seulement la première, la troisième et la dernière lignes seront numérotées. -Il y a aussi une valeur spéciale |all| qui signifie que toutes les lignes doivent être numérotées. -\begin{Verbatim} -\begin{DispWithArrows}[~emphase#tagged-lines = last@] +En fait, il y a une autre option, nommée \Definition{tagged-lines}, qui peut être utilisée +pour contrôler quelles lignes seront numérotées. La valeur de cette option est la liste +des numéros de lignes (dans l'environnement) qui seront numérotées (par le système de +numérotage des équations). Par exemple, avec l'option |tagged-lines = {first,3,last}|, +seulement la première, la troisième et la dernière lignes seront numérotées. Il y a aussi +une valeur spéciale |all| qui signifie que toutes les lignes doivent être numérotées. +\begin{Code} +\begin{DispWithArrows}[\emph{tagged-lines = last}] A & = A_1 \Arrow{première étape} \\ & = A_2 \Arrow{deuxième étape} \\ & = A_3 \end{DispWithArrows} -\end{Verbatim} +\end{Code} \begin{DispWithArrows}[tagged-lines = last] A & = A_1 \Arrow{première étape} \\ & = A_2 \Arrow{deuxième étape} \\ @@ -1528,49 +1629,54 @@ A & = A_1 \Arrow{première étape} \\ \end{DispWithArrows} \bigskip -Avec l'option |fleqn|, l'environnement est composé calé à gauche (d'une manière similaire -à l'option |fleqn| des classes standard de LaTeX). Dans ce cas, la marge gauche peut être réglée avec -l'option |mathindent| (qui a un nom inspiré du paramètre |\mathindent| de LaTeX). La valeur initiale pour cette -option est de 25~pt. +Avec l'option \Definition{fleqn}, l'environnement est composé calé à gauche (d'une manière +similaire à l'option |fleqn| des classes standard de LaTeX). Dans ce cas, la marge gauche +peut être réglée avec l'option \Definition{mathindent} (qui a un nom inspiré du paramètre +|\mathindent| de LaTeX). La valeur initiale pour cette option est de 25~pt. On peut y +mettre comme valeur un ressort (= \emph{skip} = \emph{glue}). -\begin{Verbatim} -\begin{DispWithArrows}[~emphase#fleqn,mathindent = 1cm@] +\begin{Code} +\begin{DispWithArrows}[\emph{fleqn,mathindent = 1cm}] A & = (a+1)^2 \Arrow{on développe} \\ & = a^2 + 2a + 1 \end{DispWithArrows} -\end{Verbatim} +\end{Code} \begin{DispWithArrows}[fleqn,mathindent = 1cm] A & = (a+1)^2 \Arrow{on développe} \\ & = a^2 + 2a + 1 \end{DispWithArrows} \medskip -\emph{Remarque} : Par conception, l'option |fleqn| de \pkg{witharrows} est -indépendante de l'option de classe |fleqn| de LaTeX. En effet, puisque les environnement de -\pkg{witharrows} sont conçus pour être utilisés avec des flèches sur le côté droit, l'utilisateur -peut souhaiter utiliser \pkg{witharrows} avec l'option |fleqn| (de manière à avoir plus de place sur la droite -des équations pour les flèches) tout en continuant à centrer les équations classiques. +\emph{Remarque} : Par conception, l'option |fleqn| de \pkg{witharrows} est indépendante de +l'option de classe |fleqn| de LaTeX. En effet, puisque les environnement de +\pkg{witharrows} sont conçus pour être utilisés avec des flèches sur le côté droit, +l'utilisateur peut souhaiter utiliser \pkg{witharrows} avec l'option |fleqn| (de manière à +avoir plus de place sur la droite des équations pour les flèches) tout en continuant à +centrer les équations classiques. \medskip -Si l'option |leqno| est utilisée comme option de classe, les labels seront composés -à gauche également pour les environnements |{DispWithArrows}|.\footnote{L'extension \pkg{amsmath} a une option |leqno| -mais \pkg{witharrows}, bien entendu, ne tient pas compte de cette option : \pkg{witharrows} -vérifie seulement l'option |leqno| de la classe du document.} +Si l'option |leqno| est utilisée comme option de classe, les labels seront composés à +gauche également pour les environnements |{DispWithArrows}|.\footnote{L'extension + \pkg{amsmath} a une option |leqno| mais \pkg{witharrows}, bien entendu, ne tient pas + compte de cette option : \pkg{witharrows} vérifie seulement l'option |leqno| de la + classe du document.} \medskip -Si l'extension \pkg{amsmath} est chargée, il est possible d'utiliser la commande |\intertext| dans les -environnements |{DispWithArrows}|. Il est également possible d'utiliser l'environnement |{subequations}|. -Néanmoins, il existe pour les environnements |{DispWithArrows}| une option |subequations| qui demande -d'encapsuler l'environnement dans un environnement |{subequations}|. +Si l'extension \pkg{amsmath} est chargée, il est possible d'utiliser la commande +|\intertext| dans les environnements |{DispWithArrows}|. Il est également possible +d'utiliser l'environnement |{subequations}|. Néanmoins, il existe pour les environnements +|{DispWithArrows}| une option \Definition{subequations} qui demande d'encapsuler +l'environnement dans un environnement |{subequations}|. \medskip -Dans l'exemple suivant, l'option |subequations| est fixée via la commande |\WithArrowsOptions|. Chacun -des environnements suivants sera alors sous-numéroté (dans la portée de la commande |WithArrowsOptions|). +Dans l'exemple suivant, l'option |subequations| est fixée via la commande +|\WithArrowsOptions|. Chacun des environnements suivants sera alors sous-numéroté (dans la +portée de la commande |WithArrowsOptions|). -\begin{Verbatim} -~emphase#\WithArrowsOptions{subequations}@ +\begin{Code} +\emph{\WithArrowsOptions{subequations}} Premier environnement. \begin{DispWithArrows} A & = B \\ @@ -1581,7 +1687,7 @@ Deuxième environnement. D & = E \\ & = F \end{DispWithArrows} -\end{Verbatim} +\end{Code} % \begin{scope} \WithArrowsOptions{subequations} @@ -1598,21 +1704,23 @@ D & = E \\ \end{scope} \bigskip -S'il n'y a pas suffisamment de place pour faire appraraître le numéro d'équation à la fin de la ligne, il n'y a pas -de positionnement automatique de ce numéro sur la ligne suivante (comme dans les environnements de -l'\pkg{amsmath}) : il y aura surimpression de texte. Néanmoins, dans |{DispWithArrows}|, l'utilisateur peut -utiliser la commande |\tagnextline| pour demander manuellement la composition du numéro sur la ligne suivante. -\begin{Verbatim} +S'il n'y a pas suffisamment de place pour faire appraraître le numéro d'équation à la fin +de la ligne, il n'y a pas de positionnement automatique de ce numéro sur la ligne suivante +(comme dans les environnements de l'extension \pkg{amsmath}) : il y aura surimpression de texte. +Néanmoins, dans |{DispWithArrows}|, l'utilisateur peut utiliser la commande +\DefinitionCommande{tagnextline} pour demander manuellement la composition du numéro sur +la ligne suivante. +\begin{Code} \begin{DispWithArrows}[displaystyle] S_{2(p+1)} & =\sum_{k=1}^{2(p+1)} (-1)^k k^2 \\ & \smash[b]{=\sum_{k=1}^{2p}(-1)^kk² - +(-1)^{2p+1}(2p+1)^2+(-1)^{2p+2}(2p+2)^2} ~emphase#\tagnextline@ \\ + +(-1)^{2p+1}(2p+1)^2+(-1)^{2p+2}(2p+2)^2} \emph{\tagnextline} \\ &= S_{2p}-(2p+1)^2+(2p+2)^2\\ &=p(2p+1)-(2p+1)^2+(2p+2)^2\\ &= 2p^2+5p+3 \end{DispWithArrows} -\end{Verbatim} +\end{Code} \begin{center} \color{gray}\vrule% \begin{minipage}{275pt}\color{black} @@ -1632,28 +1740,29 @@ S_{2(p+1)} \bigskip -Les environnements |{DispWithArrows}| et |{DispWithArrows*}| fournissent également une option -|wrap-lines|. Avec cette option, les lignes de l'étiquette sont automatiquement coupées à droite. +Les environnements |{DispWithArrows}| et |{DispWithArrows*}| fournissent également une +option \Definition{wrap-lines}. Avec cette option, les lignes de l'étiquette sont +automatiquement coupées à droite. -\begin{Verbatim} -\begin{DispWithArrows*}[displaystyle,~emphase#wrap-lines@] +\begin{Code} +\begin{DispWithArrows*}[displaystyle,\emph{wrap-lines}] S_n -& = \frac1n \Re \left(\sum_{k=0}^{n-1}\bigl(e^{i\frac{\pi}{2n}}\bigr)^k\right) -\Arrow{somme des termes d'une suite géométrique de raison $e^{i\frac{2\pi}n}$}\\ -& = \frac1n \Re \left( \frac{1-\bigl(e^{i\frac{\pi}{2n}}\bigr)^n} +& = \frac{1}{n} \Re \left(\sum_{k=0}^{n-1}\bigl(e^{i\frac{\pi}{2n}}\bigr)^k\right) +\Arrow{somme des termes d'une suite géométrique de raison $e^{i\frac{2\pi}{n}}$}\\ +& = \frac{1}{n} \Re \left( \frac{1-\bigl(e^{i\frac{\pi}{2n}}\bigr)^n} {1-e^{i\frac{\pi}{2n}}}\right) \Arrow{cette ligne de texte a été coupée automatiquement} \\ -& = \frac1n \Re \left(\frac{1-i}{1-e^{i\frac{\pi}{2n}}}\right) +& = \frac{1}{n} \Re \left(\frac{1-i}{1-e^{i\frac{\pi}{2n}}}\right) \end{DispWithArrows*} -\end{Verbatim} +\end{Code} \begin{DispWithArrows*}[displaystyle,wrap-lines] S_n -& = \frac1n \Re \left(\sum_{k=0}^{n-1}\bigl(e^{i\frac{\pi}{2n}}\bigr)^k\right) -\Arrow{somme des termes d'une suite géométrique de raison $e^{i\frac{2\pi}n}$}\\ -& = \frac1n \Re \left( +& = \frac{1}{n} \Re \left(\sum_{k=0}^{n-1}\bigl(e^{i\frac{\pi}{2n}}\bigr)^k\right) +\Arrow{somme des termes d'une suite géométrique de raison $e^{i\frac{2\pi}{n}}$}\\ +& = \frac{1}{n} \Re \left( \frac{1-\bigl(e^{i\frac{\pi}{2n}}\bigr)^n}{1-e^{i\frac{\pi}{2n}}} \right) \Arrow{cette ligne de texte a été coupée automatiquement} \\ -& = \frac1n \Re \left(\frac{1-i}{1-e^{i\frac{\pi}{2n}}}\right) +& = \frac{1}{n} \Re \left(\frac{1-i}{1-e^{i\frac{\pi}{2n}}}\right) \end{DispWithArrows*} \bigskip @@ -1663,57 +1772,63 @@ elle s'applique aux instructions |\Arrow| et |\MultiArrow| du |code-after| de l'environnement englobant. \vspace{1cm} -Nous avons dit que les environnements |{DispWithArrows}| et |{DispWithArrows*}| -devaient être utilisés en mode horizontal et non en mode vertical. Il y a néanmoins -une exception. Ces environnements peuvent être utilisés directement après un |\item| d'une liste -LaTeX. Dans ce cas, aucun espace vertical n'est ajouté avant l'environnement.\footnote{Il est possible de désactiver - cette fonctionnalité avec l'option |standard-behaviour-with-items|.} +Nous avons dit que les environnements |{DispWithArrows}| et |{DispWithArrows*}| devaient +être utilisés en mode horizontal et non en mode vertical. Il y a néanmoins une exception. +Ces environnements peuvent être utilisés directement après un |\item| d'une liste LaTeX. +Dans ce cas, aucun espace vertical n'est ajouté avant l'environnement.\footnote{Il est + possible de désactiver cette fonctionnalité avec l'option + |standard-behaviour-with-items|.} \medskip -Voici un exemple où, avec |{DispWithArrows}|, on peut insérer l'équation dans un environnement -|{enumerate}| tout en utilisant l'option |wrap-lines|. +Voici un exemple où, avec |{DispWithArrows}|, on peut insérer l'équation dans un +environnement |{enumerate}| tout en utilisant l'option |wrap-lines|. -\begin{Verbatim} -~emphase#\begin{enumerate}@ -~emphase#\item @ +\smallskip +\begingroup +\small +\begin{Code} +\emph{\begin{enumerate} +\item } \begin{DispWithArrows}% [displaystyle, wrap-lines, tagged-lines = last, fleqn, mathindent = 0 pt] S_n -& = \frac1n \Re \left(\sum_{k=0}^{n-1}\bigl(e^{i\frac{\pi}{2n}}\bigr)^k\right) +& = \frac{1}{n} \Re \left(\sum_{k=0}^{n-1}\bigl(e^{i\frac{\pi}{2n}}\bigr)^k\right) \Arrow{on utilise la formule pour la somme de termes d'une suite géométrique de raison $e^{i\frac{2\pi}n}$} \\ -& = \frac1n \Re \left( \frac{1-\bigl(e^{i\frac{\pi}{2n}}\bigr)^n} +& = \frac{1}{n} \Re \left( \frac{1-\bigl(e^{i\frac{\pi}{2n}}\bigr)^n} {1-e^{i\frac{\pi}{2n}}}\right) -\Arrow{$\bigl(e^{i\frac{\pi}{2n}}\bigr)^n = e^{i\frac{\pi}2}=i$} \\ -& = \frac1n \Re \left(\frac{1-i}{1-e^{i\frac{\pi}{2n}}}\right) +\Arrow{$\bigl(e^{i\frac{\pi}{2n}}\bigr)^n = e^{i\frac{\pi}{2}}=i$} \\ +& = \frac{1}{n} \Re \left(\frac{1-i}{1-e^{i\frac{\pi}{2n}}}\right) \end{DispWithArrows} -~emphase#\end{enumerate}@ -\end{Verbatim} +\emph{\end{enumerate}} +\end{Code} +\endgroup \begin{enumerate} \item -\begin{DispWithArrows}[displaystyle, wrap-lines, tagged-lines = last, fleqn, mathindent = 0 pt] +\begin{DispWithArrows}% + [displaystyle, wrap-lines, tagged-lines = last, fleqn, mathindent = 0 pt] S_n -& = \frac1n \Re \left(\sum_{k=0}^{n-1}\bigl(e^{i\frac{\pi}{2n}}\bigr)^k\right) -\Arrow{on utilise la formule pour la somme de termes d'une suite géométrique de raison +& = \frac{1}{n} \Re \left(\sum_{k=0}^{n-1}\bigl(e^{i\frac{\pi}{2n}}\bigr)^k\right) +\Arrow{on utilise la formule pour la somme de termes d'une suite géométrique de raison $e^{i\frac{2\pi}n}$}\\ -& = \frac1n \Re \left( +& = \frac{1}{n} \Re \left( \frac{1-\bigl(e^{i\frac{\pi}{2n}}\bigr)^n}{1-e^{i\frac{\pi}{2n}}} \right) -\Arrow{$\bigl(e^{i\frac{\pi}{2n}}\bigr)^n = e^{i\frac{\pi}2}=i$} \\ -& = \frac1n \Re \left(\frac{1-i}{1-e^{i\frac{\pi}{2n}}}\right) +\Arrow{$\bigl(e^{i\frac{\pi}{2n}}\bigr)^n = e^{i\frac{\pi}{2}}=i$} \\ +& = \frac{1}{n} \Re \left(\frac{1-i}{1-e^{i\frac{\pi}{2n}}}\right) \end{DispWithArrows} \end{enumerate} -\vspace{1cm} +\vspace{1cm} L'environnement |{DispWithArrows}| est similaire à l'environnement |{align}| de -l'\pkg{amsmath}. Néanmoins, |{DispWithArrows}| n'est pas construit en utilisant |{align}| -(en fait, il est possible d'utiliser \pkg{witharrows} sans \pkg{amsmath}). +l'extension \pkg{amsmath}. Néanmoins, |{DispWithArrows}| n'est pas construit en utilisant +|{align}| (en fait, il est possible d'utiliser \pkg{witharrows} sans \pkg{amsmath}). Il y a quelques différences entre |{DispWithArrows}| et |{align}|. \begin{itemize} \item L'environnement |{DispWithArrows}| ne peut pas être inséré dans un environment -|{gather}| de l'\pkg{amsmath}. +|{gather}| de l'extension \pkg{amsmath}. \item Un environment |{DispWithArrows}| est toujours insécable (même avec -|\allowdisplaybreaks| de l'\pkg{amsmath}). +|\allowdisplaybreaks| de l'extension \pkg{amsmath}). \item Les commandes |\label|, |\tag|, |\notag| et |\nonumber| ne sont autorisées que dans la dernière colonne. \item Après un |\item| d'une liste LaTeX, aucun espace vertical n'est ajouté (cela peut être @@ -1743,34 +1858,35 @@ Elle n'est pas compatible avec \pkg{showkeys} (certains labels ne sont pas affic \subsection*{L'option <...> de DispWithArrows} -L'environnement |{DispWithArrows}| propose une option |left-brace|. Si cette option est présente, son -contenu est composé à gauche, suivi d'une accolade (d'où le nom) puis du corps de -l'environnement.\footnote{L'option |left-brace| peut aussi être utilisée sans valeur: dans ce cas, seule - l'accolade est tracée.} +L'environnement |{DispWithArrows}| propose une option \Definition{left-brace}. Si cette +option est présente, son contenu est composé à gauche, suivi d'une accolade (d'où le nom) +puis du corps de l'environnement.\footnote{L'option |left-brace| peut aussi être utilisée + sans valeur: dans ce cas, seule l'accolade est tracée.} -Pour la lisibilité, cette option |left-brace| est aussi disponible avec une syntaxe spéciale : on peut la -rentrer en la mettant entre chevrons (|<| et |>|) juste après le |{DispWithArrows}| (et donc avant -les éventuels arguments optionnels entre crochets). +Pour la lisibilité, cette option |left-brace| est aussi disponible avec une syntaxe +spéciale : on peut la rentrer en la mettant entre chevrons (|<| et |>|) juste après le +|{DispWithArrows}| (et donc avant les éventuels arguments optionnels entre crochets). \bigskip On peut alors faire des constructions avec distinctions de cas, comme dans l'exemple -suivant.\footnote{L'environnement |{cases}| de l'\pkg{amsmath} permet de réaliser de telles distinctions de - cas mais on ne peut pas utiliser la numérotation automatique des équations. L'environnement |{numcases}| de - l'extension \pkg{cases} (de Donald Arseneau) permet d'utiliser ces numéros d'équations, mais, bien entendu, il - n'y a pas de composition de flèches.} +suivant.\footnote{L'environnement |{cases}| de l'extension \pkg{amsmath} permet de réaliser de + telles distinctions de cas mais on ne peut pas utiliser la numérotation automatique des + équations. L'environnement |{numcases}| de l'extension \pkg{cases} (de Donald Arseneau) + permet d'utiliser ces numéros d'équations, mais, bien entendu, il n'y a pas de + composition de flèches.} \medskip -\begin{BVerbatim} -\begin{DispWithArrows}~emphase#< \binom{n}{p} = >@[format = ll,fleqn,displaystyle] +\begin{Code} +\begin{DispWithArrows}\emph{< \binom{n}{p} = >}[format = ll,fleqn,displaystyle] 0 & \quad \text{si } p > n \Arrow{ce cas peut en fait rentrer\\ dans le suivant} \\ \frac{n(n-1)\cdots(n-p+1)}{p!} & \quad \text{si } 0 \leq p \leq n \\ 0 & \quad \text{si } p < 0 \end{DispWithArrows} -\end{BVerbatim} +\end{Code} % \begin{DispWithArrows}< \binom{n}{p} = >[format = ll,fleqn,displaystyle] 0 & \quad \text{si } p > n @@ -1780,17 +1896,17 @@ suivant.\footnote{L'environnement |{cases}| de l'\pkg{amsmath} permet de réalis \end{DispWithArrows} \interitem -Dans l'exemple suivant, on sous-numérote les équations d'un système avec l'option |subequations| (disponible -quand l'|amsmath| est chargé). +Dans l'exemple suivant, on sous-numérote les équations d'un système avec l'option +|subequations| (disponible quand l'|amsmath| est chargé). -\begin{Verbatim} -\begin{DispWithArrows}~emphase#< \label{système} \ref*{système} \Leftrightarrow >@% +\begin{Code} +\begin{DispWithArrows}\emph{< \label{système} \ref*{système} \Leftrightarrow >}% [format = l, subequations] x+y+z = -3 \Arrow[tikz=-,jump=2]{3 equations} \\ xy+xz+yz=-2 \\ xyz = -15 \label{dernière-équation} \end{DispWithArrows} -\end{Verbatim} +\end{Code} % \begin{DispWithArrows}< \label{système} \ref*{système} \Leftrightarrow >% [format = l, subequations] @@ -1800,24 +1916,40 @@ xyz = -15 \label{dernière-équation} \end{DispWithArrows} \bigskip -Le système complet est l'équation \ref{système} (cette référence a été obtenue avec |\ref{système}|) et la -dernière équation est l'équation \ref{dernière-équation} (référence obtenue avec -|\ref{dernière-équation}|). Notons que |\ref*|, utilisé dans le code ci-dessus, est une variante de -|ref| qui compose une référence sans créer de lien hypertexte (même quand \pkg{hyperref} est chargé). +Le système complet est l'équation \ref{système} (cette référence a été obtenue avec +|\ref{système}|) et la dernière équation est l'équation \ref{dernière-équation} (référence +obtenue avec |\ref{dernière-équation}|). Notons que |\ref*|, utilisé dans le code +ci-dessus, est une variante de |ref| qui compose une référence sans créer de lien +hypertexte (même quand \pkg{hyperref} est chargé). \bigskip -On peut souhaiter remplacer l'accolade gauche par un autre délimiteur extensible (gauche). On peut le faire avec -l'option |replace-left-brace-by|. Par exemple, «|replace-left-brace-by = [\enskip|» va composer avec un crochet et -ajouter aussi un espace de 1~em après le crochet. +On peut souhaiter remplacer l'accolade gauche par un autre délimiteur extensible (gauche). +On peut le faire avec l'option \Definition{replace-left-brace-by}. Par exemple, +«|replace-left-brace-by = [\enskip|» va composer avec un crochet et ajouter aussi un +espace de 0.5~em après le crochet. \bigskip \section{Fonctionnalités avancées} +\subsection{Utilisation avec Beamer} + +\colorbox{yellow!50}{\textbf{Nouveau 2.9}}\par\nobreak + +\smallskip +Si l'extension \pkg{witharrows} est utilisée avec Beamer, la commande |\Arrow| accepte un +argument entre chevrons (après l'argument optionnel entre crochets) pour indiquer les +«\emph{overlays}» concernés (en interne, \pkg{witharrows} utilise simplement la commande +|\only| de Beamer). + +\begin{Code} +\Arrow[jump=2]\emph{<3->}{Exemple} +\end{Code} + \subsection{Utilisation avec plain-TeX} \label{plain-TeX} -L'extension \pkg{witharrows} peut être utilisée avec plain-TeX. Pour cela, on doit charger l'extension avec -|\input|: +L'extension \pkg{witharrows} peut être utilisée avec plain-TeX. Pour cela, on doit charger +l'extension avec |\input|: % \begin{Verbatim} \input{witharrows.tex} @@ -1838,17 +1970,19 @@ A & = (a+1)^2 \Arrow{on développe} \\ \end{Verbatim} \medskip -La version pour plain-TeX de \pkg{witharrows} ne propose pas toutes les fonctionnalités proposées pour la version -LaTeX. En particulier, les fonctionnalités concernant les numéros d'équations ne sont pas disponibles (puisqu'elles -reposent sur le système de numérotation de LaTeX). +La version pour plain-TeX de \pkg{witharrows} ne propose pas toutes les fonctionnalités +proposées pour la version LaTeX. En particulier, les fonctionnalités concernant les +numéros d'équations ne sont pas disponibles (puisqu'elles reposent sur le système de +numérotation de LaTeX). \subsection{L'option tikz-code : comment changer la forme des flèches} \label{tikz-code} -L'option |tikz-code| permet à l'utilisateur de changer la forme des flèches.\footnote{Si l'option |wrap-lines| - est utilisée dans un environnement |{DispWithArrows}| ou |{DispWithArrows*}|, l'option |tikz-code| - n'aura pas d'effet sur les flèches de cet environnement mais uniquement sur les flèches des environnements +L'option \Definition{tikz-code} permet à l'utilisateur de changer la forme des +flèches.\footnote{Si l'option |wrap-lines| est utilisée dans un environnement + |{DispWithArrows}| ou |{DispWithArrows*}|, l'option |tikz-code| n'aura pas d'effet sur + les flèches de cet environnement mais uniquement sur les flèches des environnements |{WithArrows}| imbriqués.} \smallskip @@ -1856,38 +1990,38 @@ Par exemple, les options «|up|» et «|down|» décrites précédemment (cf. p.~\pageref{up-and-down}) sont programmées en interne avec |tikz-code|. \smallskip -La valeur de cette option doit être une instruction de tracé Tikz valide (avec le point-virgule final) où les trois -marqueurs |#1|, |#2| et |#3| représentent le point de départ, le point d'arrivée et l'étiquette de -la flèche. +La valeur de cette option doit être une instruction de tracé Tikz valide (avec le +point-virgule final) où les trois marqueurs |#1|, |#2| et |#3| représentent le point de +départ, le point d'arrivée et l'étiquette de la flèche. \bigskip -Par défaut, la valeur de |tikz-code| est la suivante : +La valeur initiale de |tikz-code| est la suivante : \smallskip \qquad |\draw (#1) to node {#3} (#2) ;| \bigskip -Dans l'exemple suivant, nous remplaçons le chemin par défaut par un chemin avec trois segments (et un -nœud recouvrant le deuxième segment). -\begin{Verbatim} +Dans l'exemple suivant, nous remplaçons le chemin par défaut par un chemin avec trois +segments (et un nœud recouvrant le deuxième segment). +\begin{Code} \begin{WithArrows}[format=c,ygap=5pt,interline=4mm, - ~emphase#tikz-code = {\draw[rounded corners]@ - ~emphase# (~#1) -- ([xshift=5mm]~#1)@ - ~emphase# -- node[circle,@ - ~emphase# draw,@ - ~emphase# auto = false,@ - ~emphase# fill = gray!50,@ - ~emphase# inner sep = 1pt] {\tiny ~#3}@ - ~emphase# ([xshift=5mm]~#2)@ - ~emphase# -- (~#2) ; }@] + \emph{tikz-code = {\draw[rounded corners] + (#1) -- ([xshift=5mm]#1) + -- node[circle, + draw, + auto = false, + fill = gray!50, + inner sep = 1pt] {\tiny #3} + ([xshift=5mm]#2) + -- (#2) ; }}] 3 (2x+4) = 6 \Arrow{$\div 3$} \\ 2x+4 = 2 \Arrow{$-4$} \\ 2x = -2 \Arrow{$\div 2$} \\ x = -1 \end{WithArrows} -\end{Verbatim} +\end{Code} \[\begin{WithArrows}[format=c, @@ -1912,61 +2046,65 @@ nœud recouvrant le deuxième segment). \end{WithArrows}\] \bigskip -L'environnement |{DispWithArrows}| et sa version étoilée |{DispWithArrows*}| fournissent une commande -|\WithArrowsRightX| qui peut être utilisée dans l'option |tikz-code|. Cette commande fournit -l'abscisse de la marge droite de la boîte de composition courante (en prenant en compte les éventuels numéros des -équations). Pour un exemple d'utilisation, voir p.~\pageref{example-WithArrowsRightX}. +L'environnement |{DispWithArrows}| et sa version étoilée |{DispWithArrows*}| fournissent +une commande \DefinitionCommande{WithArrowsRightX} qui peut être utilisée dans l'option +|tikz-code|. Cette commande fournit l'abscisse de la marge droite de la boîte de +composition courante (en prenant en compte les éventuels numéros des équations). Pour un +exemple d'utilisation, voir p.~\pageref{example-WithArrowsRightX}. \bigskip \subsection{La commande \textbackslash WithArrowsNewStyle} -L'extension \pkg{witharrows} fournit une commande |\WithArrowsNewStyle| pour définir -des styles d'une manière similaire aux «styles» de Tikz. +L'extension \pkg{witharrows} fournit une commande \DefinitionCommande{WithArrowsNewStyle} +pour définir des styles d'une manière similaire aux «styles» de Tikz. \smallskip -La commande |\WithArrowsNewStyle| prend deux arguments obligatoires. Le premier est -le nom du style et le second est une liste de couples clé-valeur. La portée -de la definition ainsi faite par |\WithArrowsNewStyle| est le groupe TeX courant.\footnote{On rappelle que, en - particulier, tout environnement LaTeX est un groupe TeX.} +La commande |\WithArrowsNewStyle| prend deux arguments obligatoires. Le premier est le nom +du style et le second est une liste de couples clé-valeur. La portée de la definition +ainsi faite par |\WithArrowsNewStyle| est le groupe TeX courant.\footnote{On rappelle que, + en particulier, tout environnement LaTeX est un groupe TeX.} + \smallskip -Le style peut être utilisé comme une clé au niveau du document (avec |\WithArrowsOptions|), au niveau d'un -environnement (via les arguments optionnels) ou bien encore dans une autre commande |\WithArrowsNewStyle|. +Le style peut être utilisé comme une clé au niveau du document (avec +|\WithArrowsOptions|), au niveau d'un environnement (via les arguments optionnels) ou bien +encore dans une autre commande |\WithArrowsNewStyle|. \smallskip Pour un exemple d'utilisation, voir p.~\pageref{example-WithArrowsRightX}. \bigskip -Il n'existe pas de style pour les flèches individuelles. Néanmoins, il reste possible de définir de nouvelles -commandes s'appuyant sur la commande |\Arrow|. Par exemple : +Il n'existe pas de style pour les flèches individuelles. Néanmoins, il reste possible de +définir de nouvelles commandes s'appuyant sur la commande |\Arrow|. Par exemple : \begin{Verbatim} \newcommand{\ThickArrow}{\Arrow[tikz=thick]} \end{Verbatim} -Cette nouvelle commande |\ThickArrow| garde la possibilité\footnote{Dans la version de \pkg{witharrows} pour LaTeX - mais pas dans la version pour plain-TeX.} d'accepter des clés entre crochets. On peut écrire -|\ThickArrow[jump=2]| car en fait, |\Arrow[tikz=thick][jump=2]| est une syntaxe autorisée pour la commande |\Arrow| -(on peut mettre un nombre arbitraire d'arguments optionnels entre crochets après la commande |\Arrow|). +Cette nouvelle commande |\ThickArrow| garde la possibilité\footnote{Dans la version de + \pkg{witharrows} pour LaTeX mais pas dans la version pour plain-TeX.} d'accepter des +clés entre crochets. On peut écrire |\ThickArrow[jump=2]| car en fait, +|\Arrow[tikz=thick][jump=2]| est une syntaxe autorisée pour la commande |\Arrow| (on peut +mettre un nombre arbitraire d'arguments optionnels entre crochets après la commande +|\Arrow|). \bigskip \subsection{La clé right-overlap} -\colorbox{yellow!50}{\textbf{Nouveau 2.8}} - -La clé |right-overlap| est une clé booléenne dont la valeur initiale est |true|. Elle concerne uniquement les -environnements |{WithArrows}|. +La clé \Definition{right-overlap} est une clé booléenne dont la valeur initiale est +|true|. Elle concerne uniquement les environnements |{WithArrows}|. -Quand la clé |right-overlap| est active, les flèches (et leurs étiquettes) sont tracées en débordement et n'entrent -donc pas dans le calcul de la boîte TeX contenant l'environnement |{WithArrows}|. +Quand la clé |right-overlap| est active, les flèches (et leurs étiquettes) sont tracées en +débordement et n'entrent donc pas dans le calcul de la boîte TeX contenant l'environnement +|{WithArrows}|. -Quand la clé |right-overlap| est mise à |false| (dans |\WithArrowsOptions| ou bien dans un environnement -|{WithArrows}| individuel) le débord vers la droite est pris en compte dans le calcul des dimensions de la boîte -englobante. +Quand la clé |right-overlap| est mise à |false| (dans |\WithArrowsOptions| ou bien dans un +environnement |{WithArrows}| individuel) le débord vers la droite est pris en compte dans +le calcul des dimensions de la boîte englobante. -\begin{Verbatim} -$\left\{\begin{WithArrows}[c,format = rCrCl,~emphase#right-overlap=false@] +\begin{Code} +$\left\{\begin{WithArrows}[c,format = rCrCl,\emph{right-overlap=false}] 2x & + & 3y & = & 5 \Arrow{on ajoute $L_1$ à $L_2$}\\ -2x & - & 5y & = & 2 \end{WithArrows}\right.$\quad @@ -1974,7 +2112,7 @@ $\left\{\begin{WithArrows}[c,format = rCrCl] 2x & + & 3y & = & 5 \\ & - & 2y & = & 7 \end{WithArrows}\right.$ -\end{Verbatim} +\end{Code} \medskip $\left\{\begin{WithArrows}[c,format = rCrCl,right-overlap=false] @@ -1987,17 +2125,19 @@ $\left\{\begin{WithArrows}[c,format = rCrCl] \end{WithArrows}\right.$ \bigskip -Le réglage |right-overlap = false| peut aussi être utile en conjonction avec la classe |standalone|. +Le réglage |right-overlap = false| peut aussi être utile en conjonction avec la classe +|standalone|. \bigskip \subsection{Positionnement vertical des flèches} Il y a quatre paramètres pour ajuster finement la position verticale des flèches : -|ygap|, |ystart|, |start-adjust| et |end-adjust|. +\Definition{ygap}, \Definition{ystart}, \Definition{start-adjust} et +\Definition{end-adjust}. \medskip -Nous expliquons d'abord le comportement quand les paramètres |start-adjust| et |end-adjust| sont égaux à -zéro: +Nous expliquons d'abord le comportement quand les paramètres |start-adjust| et +|end-adjust| sont égaux à zéro: \begin{itemize} \item l'option |ystart| représente la distance verticale entre la ligne de base du texte et le début de la flèche (valeur initiale : $0.4$~ex); @@ -2037,12 +2177,12 @@ est |end-adjust| sont égaux à $0.4$~ex. \bigskip Voici par exemple le comportement sans le mécanisme de |start-adjust| et |end-adjust| : -\begin{Verbatim} -$\begin{WithArrows}~emphase#[start-adjust=0pt, end-adjust=0pt]@ +\begin{Code} +$\begin{WithArrows}\emph{[start-adjust=0pt, end-adjust=0pt]} A & = (a+1)^2 \Arrow{on développe} \\ & = a^2 + 2a + 1 \end{WithArrows}$ -\end{Verbatim} +\end{Code} $\begin{WithArrows}[start-adjust=0pt, end-adjust=0pt] A & = (a+1)^2 \Arrow{on développe} \\ @@ -2051,9 +2191,9 @@ A & = (a+1)^2 \Arrow{on développe} \\ \bigskip -Voici le comportement par défaut depuis la version 1.13 (les paramètres -|start-adjust| et |end-ajust| sont utilisés avec la valeur initiale $0.4$~ex). La flèche -est plus longue et le résultat est plus esthétique. +Voici le comportement par défaut (les paramètres |start-adjust| et |end-ajust| sont +utilisés avec la valeur initiale $0.4$~ex). La flèche est plus longue et le résultat est +plus esthétique. \medskip $\begin{WithArrows} @@ -2063,25 +2203,18 @@ A & = (a+1)^2 \Arrow{on développe} \\ \bigskip -Il est possible d'utiliser l'option |adjust| qui fixe à la fois |start-adjust| et |end-ajust|. - -\bigskip -Puisque le mécanisme de |start-adjust| et |end-ajust| a été ajouté dans la -version 1.13 of \pkg{witharrows}, cette version n'est pas strictement compatible avec -les versions précédentes. Néanmoins, il est possible de retrouver le comportement précédent -en fixant simplement |start-adjust| et |end-adjust| à $0$~pt: -\begin{Verbatim} -\WithArrowsOptions{adjust = 0pt} -\end{Verbatim} +Il est possible d'utiliser l'option \Definition{adjust} qui fixe à la fois |start-adjust| +et |end-ajust|. \bigskip -Depuis la version 2.1 de \pkg{witharrows}, une flèche de |jump| égal à~$1$ a une longueur\footnote{On appelle - \emph{longueur} de la flèche la différence entre l'ordonnée du point de départ et l'ordonnée du point d'arrivée.} -maximale égale au paramètre |max-length-of-arrow|. La valeur initiale de ce paramètre est égale à~$2$~cm. +Une flèche de |jump| égal à~$1$ a une longueur\footnote{On appelle \emph{longueur} de la + flèche la différence entre l'ordonnée du point de départ et l'ordonnée du point + d'arrivée.} maximale égale au paramètre \Definition{max-length-of-arrow}. La valeur +initiale de ce paramètre est égale à~$2$~cm. Dans l'exemple suivant, la valeur de |max-length-of-arrow| a été fixée à $1.5$~cm. -\begin{Verbatim} -\[\begin{WithArrows}[~emphase#max-length-of-arrow = 1.5cm@] +\begin{Code} +\[\begin{WithArrows}[\emph{max-length-of-arrow = 1.5cm}] A & = \begin{vmatrix} @@ -2106,7 +2239,7 @@ $L_5 \gets L_5-L_1$ % ne pas mettre de \\ ici 0 & e-a & e^2-a^2 & e^3-a^3 & e^4-a^4 \end{vmatrix} \end{WithArrows}\] -\end{Verbatim} +\end{Code} \bigskip @@ -2144,28 +2277,30 @@ Si vous voulez mettre des notes de pied de page dans un environnement de \pkg{wi vous pouvez utiliser une paire |\footnotemark|--|\footnotetext|. \smallskip -Il est aussi possible d'extraire les notes de pieds de page avec l'extension \pkg{footnote} ou bien l'extension -\pkg{footnotehyper}. +Il est aussi possible d'extraire les notes de pieds de page avec l'extension +\pkg{footnote} ou bien l'extension \pkg{footnotehyper}. \smallskip -Si \pkg{witharrows} est chargée avec l'option |footnote| (avec |\usepackage[footnote]{witharrows}| ou -avec |\PassOptionsToPackage|), l'extension \pkg{footnote} est chargée (si elle ne l'est pas déjà) et elle est -utilisée pour extraire les notes de pied de page. +Si \pkg{witharrows} est chargée avec l'option \Definition{footnote} (avec +|\usepackage[footnote]{witharrows}| ou avec |\PassOptionsToPackage|), l'extension +\pkg{footnote} est chargée (si elle ne l'est pas déjà) et elle est utilisée pour extraire +les notes de pied de page. \smallskip -Si \pkg{witharrows} est chargée avec l'option |footnotehyper|, l'extension \pkg{footnotehyper} est chargée (si -elle ne l'est pas déjà) et elle est utilisée pour extraire les notes de pied de page. +Si \pkg{witharrows} est chargée avec l'option \Definition{footnotehyper}, l'extension +\pkg{footnotehyper} est chargée (si elle ne l'est pas déjà) et elle est utilisée pour +extraire les notes de pied de page. \smallskip Attention : Les extensions \pkg{footnote} et \pkg{footnotehyper} sont incompatibles. -L'extension \pkg{footnotehyper} est le successeur de l'extension \pkg{footnote} -et devrait être utilisée préférentiellement. L'extension \pkg{footnote} a quelques défauts ; -en particulier, elle doit être chargée après l'extension \pkg{xcolor} et elle n'est pas parfaitement -compatible avec \pkg{hyperref}. +L'extension \pkg{footnotehyper} est le successeur de l'extension \pkg{footnote} et devrait +être utilisée préférentiellement. L'extension \pkg{footnote} a quelques défauts ; en +particulier, elle doit être chargée après l'extension \pkg{xcolor} et elle n'est pas +parfaitement compatible avec \pkg{hyperref}. \medskip -Dans ce document, l'extension \pkg{witharrows} a été chargée avec l'option |footnotehyper| et nous donnons un -exemple avec une note de pied de page dans l'étiquette d'une flèche : +Dans ce document, l'extension \pkg{witharrows} a été chargée avec l'option |footnotehyper| +et nous donnons un exemple avec une note de pied de page dans l'étiquette d'une flèche : \smallskip @@ -2178,20 +2313,22 @@ A & = (a+b)^2 \bigskip \subsection{L'option no-arrows} -L'option |no-arrows| est une facilité donnée à l'utilisateur. Avec cette option, -les flèches ne sont pas tracées. Néanmoins, une analyse des flèches est effectuée et certaines erreurs sont -détectées (par exemple, si une flèche arrive après la dernière ligne de l'environnement). +L'option \Definition{no-arrows} est une facilité donnée à l'utilisateur. Avec cette +option, les flèches ne sont pas tracées. Néanmoins, une analyse des flèches est effectuée +et certaines erreurs sont détectées (par exemple, si une flèche arrive après la dernière +ligne de l'environnement). \bigskip \subsection{Note pour les utilisateurs de AUCTeX} -Dans un éditeur de texte paramétré pour éditer du LaTeX, les environnements |{DispWithArrows}| et -|{DispWithArrows*}| devraient être formatés comme l'environnement |{equation}| de LaTeX c'est-à-dire avec un -formatage adapté au mode mathématique. +Dans un éditeur de texte paramétré pour éditer du LaTeX, les environnements +|{DispWithArrows}| et |{DispWithArrows*}| devraient être formatés comme l'environnement +|{equation}| de LaTeX c'est-à-dire avec un formatage adapté au mode mathématique. -Dans l'éditeur Emacs avec AUCTeX, cela se fait en ajoutant les chaînes |"DispWithArrows"| et |"DispWithArrows*"| à -la variable |font-latex-math-environments|. On peut le faire en utilisant l'interface de personnalisation de Emacs : +Dans l'éditeur Emacs avec AUCTeX, cela se fait en ajoutant les chaînes |"DispWithArrows"| +et |"DispWithArrows*"| à la variable |font-latex-math-environments|. On peut le faire en +utilisant l'interface de personnalisation de Emacs : |M-x customize| > |[Text]| > |[TeX]| > |[Font LaTeX]| @@ -2204,17 +2341,20 @@ Si vous définissez un environnement s'appuyant sur un environnement de non |\begin{WithArrows}|--|\end{WithArrows}|, etc.). \smallskip -En faisant ainsi, les messages d'erreur affichés par \pkg{witharrows} mentionneront (le cas échéant) le nom de -votre environnement et seront plus faciles à comprendre pour l'utilisateur final. +En faisant ainsi, les messages d'erreur affichés par \pkg{witharrows} mentionneront (le +cas échéant) le nom de votre environnement et seront plus faciles à comprendre pour +l'utilisateur final. \smallskip -Par exemple, vous pouvez définir un environnement |{DWA}| qui va être un alias de |{DispWithArrows}|: +Par exemple, vous pouvez définir un environnement |{DWA}| qui va être un alias de +|{DispWithArrows}|: \begin{BVerbatim} \NewDocumentEnvironment {DWA} {} {\DispWithArrows}{\endDispWithArrows} \end{BVerbatim} \smallskip -Si vous utilisez cet environnement |{DWA}| en mode mathématique, vous aurez le message d'erreur suivant : +Si vous utilisez cet environnement |{DWA}| en mode mathématique, vous aurez le message +d'erreur suivant : \begin{BVerbatim} The environment {DWA} should be used only outside math mode. @@ -2236,51 +2376,52 @@ dans l'extension \pkg{witharrows} avec le code suivant: \subsection{\textbackslash MoveEqLeft} -Il est possible d'utiliser |\MoveEqLeft| de \pkg{mathtools}. Dans ce cas, on doit se souvenir que la commande -|\MoveEqLeft| a aussi la valeur d'une esperluette (|&|). Il faut en tenir compte pour le positionnement -d'une éventuelle commande |\Arrow|. - +Il est possible d'utiliser |\MoveEqLeft| de \pkg{mathtools}. Dans ce cas, on doit se +souvenir que la commande |\MoveEqLeft| a aussi la valeur d'une esperluette (|&|). Il faut +en tenir compte pour le positionnement d'une éventuelle commande |\Arrow|. -% -\begin{Verbatim}[formatcom=\small\color{gray}] +\begingroup +\small +\begin{Code} $\begin{WithArrows}[interline=0.5ex] -~emphase#\MoveEqLeft@ \arccos(x) = \arcsin \frac45 + \arcsin \frac5{13} -\Arrow{parce que les deux sont dans $[-\frac{\pi}2,\frac{\pi}2]$} \\ -& \Leftrightarrow x = \sin\left(\arcsin\frac45 + \arcsin\frac5{13}\right) \\ -& \Leftrightarrow x = \frac45\cos\arcsin\frac5{13} + \frac5{13} \cos\arcsin\frac45 +\emph{\MoveEqLeft} \arccos(x) = \arcsin \frac{4}{5} + \arcsin \frac{5}{13} +\Arrow{parce que les deux sont dans $[-\frac{\pi}{2},\frac{\pi}{2}]$} \\ +& \Leftrightarrow x = \sin\left(\arcsin\frac{4}{5} + \arcsin\frac{5}{13}\right) \\ +& \Leftrightarrow x = \frac{4}{5}\cos\arcsin\frac{5}{13}+\frac{5}{13}\cos\arcsin\frac{4}{5} \Arrow{$\forall x \in [-1,1], \cos(\arcsin x) = \sqrt{1-x^2}$} \\ -& \Leftrightarrow x = \frac45\sqrt{1-\bigl(\frac5{13}\bigr)^2} -+ \frac5{13}\sqrt{1-\bigl(\frac45\bigr)^2} +& \Leftrightarrow x = \frac{4}{5}\sqrt{1-\bigl(\frac{5}{13}\bigr)^2} ++ \frac{5}{13}\sqrt{1-\bigl(\frac{4}{5}\bigr)^2} \end{WithArrows}$ -\end{Verbatim} - +\end{Code} +\endgroup \medskip $\begin{WithArrows}[interline=0.5ex] -\MoveEqLeft \arccos(x) = \arcsin \frac45 + \arcsin \frac5{13} -\Arrow{parce que les deux sont dans \([-\frac{\pi}2,\frac{\pi}2]\)} \\ -& \Leftrightarrow x = \sin\left(\arcsin\frac45 + \arcsin\frac5{13}\right) \\ -& \Leftrightarrow x = \frac45\cos\arcsin\frac5{13} + \frac5{13} \cos\arcsin\frac45 +\MoveEqLeft \arccos(x) = \arcsin \frac{4}{5} + \arcsin \frac{5}{13} +\Arrow{parce que les deux sont dans \([-\frac{\pi}{2},\frac{\pi}{2}]\)} \\ +& \Leftrightarrow x = \sin\left(\arcsin\frac{4}{5} + \arcsin\frac{5}{13}\right) \\ +& \Leftrightarrow x = \frac{4}{5}\cos\arcsin\frac{5}{13} + \frac{5}{13} \cos\arcsin\frac{4}{5} \Arrow{\(\forall x \in [-1,1], \cos(\arcsin x) = \sqrt{1-x^2}\)} \\ -& \Leftrightarrow x = \frac45\sqrt{1-\bigl(\frac5{13}\bigr)^2} -+ \frac5{13}\sqrt{1-\bigl(\frac45\bigr)^2} +& \Leftrightarrow x = \frac{4}{5}\sqrt{1-\bigl(\frac{5}{13}\bigr)^2} ++ \frac{5}{13}\sqrt{1-\bigl(\frac{4}{5}\bigr)^2} \end{WithArrows}$ \bigskip \subsection{Une commande \textbackslash DoubleArrow} -En utilisant l'option |o| (cf. p. \pageref{option-o}) disponible au niveau local, on peut facilement écrire une -commande |\DoubleArrow| pour deux flèches allant en sens inverse l'une de l'autre. +En utilisant l'option |o| (cf. p. \pageref{option-o}) disponible au niveau local, on peut +facilement écrire une commande |\DoubleArrow| pour deux flèches allant en sens inverse +l'une de l'autre. \bigskip -\begin{Verbatim} +\begin{Code} \NewDocumentCommand \DoubleArrow { O {} m m } { - \Arrow[tikz=->,~#1]{~#2}% - \Arrow[o,tikz=<-,~#1]{~#3} + \Arrow[tikz=->,#1]{#2}% + \Arrow[o,tikz=<-,#1]{#3} } -\end{Verbatim} +\end{Code} \NewDocumentCommand \DoubleArrow { O {} m m } @@ -2293,12 +2434,12 @@ commande |\DoubleArrow| pour deux flèches allant en sens inverse l'une de l'aut \bigskip Exemple d'utilisation : -\begin{Verbatim} +\begin{Code} $\begin{WithArrows}[groups] A & = (a+b)^2 \DoubleArrow[tikz={font=\bfseries}]{développement}{factorisation} \\ & = a^2 + 2ab+b^2 \end{WithArrows}$ -\end{Verbatim} +\end{Code} \bigskip $\begin{WithArrows}[groups] @@ -2315,22 +2456,22 @@ A & = (a+b)^2 \DoubleArrow[tikz={font=\bfseries}]{développement}{factorisation} Il est possible de changer la forme des étiquettes, qui sont des nœuds Tikz, en modifiant la clé «|every node|» de Tikz. -\begin{Verbatim} +\begin{Code} \begin{WithArrows}% [format = c, interline = 4mm, - tikz = {~emphase#every node/.style = {circle,@ - ~emphase# draw,@ - ~emphase# auto = false,@ - ~emphase# fill = gray!50,@ - ~emphase# inner sep = 1pt,@ - ~emphase# font = \tiny}@}] + tikz = {\emph{every node/.style = {circle, + draw, + auto = false, + fill = gray!50, + inner sep = 1pt, + font = \tiny}}}] 3 (2x+4) = 6 \Arrow{$\div 3$} \\ 2x+4 = 2 \Arrow{$-4$} \\ 2x = -2 \Arrow{$\div 2$} \\ 2x = -1 \end{WithArrows} -\end{Verbatim} +\end{Code} \[\begin{WithArrows}[% format = c, @@ -2358,9 +2499,9 @@ pour tracer les flèches.\footnote{Si un environnement |{DispWithArrows}| ou environnements imbriqués à l'intérieur).} \smallskip -La valeur initiale de |tikz-code| est |\draw (#1) to node {#3} (#2) ;| -où les trois marqueurs |#1|, |#2| et |#3| représentent le point de départ, le point d'arrivée -et l'étiquette de la flèche. +La valeur initiale de |tikz-code| est |\draw (#1) to node {#3} (#2) ;| où les trois +marqueurs |#1|, |#2| et |#3| représentent le point de départ, le point d'arrivée et +l'étiquette de la flèche. \bigskip @@ -2369,18 +2510,18 @@ Dans l'exemple suivant, nous définissons la valeur de |tikz-code| avec deux instructions |\path| : la première instruction trace la flèche elle-même et la seconde place l'étiquette dans un nœud Tikz dans le rectangle délimité par la flèche. -\begin{Verbatim} +\begin{Code} \begin{DispWithArrows*}% [displaystyle, ygap = 2mm, ystart = 0mm, - ~emphase#tikz-code = {\draw (~#1) -- ++(4.5cm,0) |- (~#2) ;@ - ~emphase# \path (~#1) -- (~#2) @ - ~emphase# node[text width = 4.2cm, right, midway] {~#3} ;}@] + \emph{tikz-code = {\draw (#1) -- ++(4.5cm,0) |- (#2) ; + \path (#1) -- (#2) + node[text width = 4.2cm, right, midway] {#3} ;}}] S_n -& = \frac1n \sum_{k=0}^{n-1}\cos\bigl(\tfrac{\pi}2\cdot\tfrac kn\bigr) +& = \frac{1}{n} \sum_{k=0}^{n-1}\cos\bigl(\tfrac{\pi}{2}\cdot\tfrac{k}{n}\bigr) ........... -\end{Verbatim} +\end{Code} \bigskip @@ -2392,49 +2533,50 @@ S_n \path (#1) -- (#2) node[text width = 4.2cm, right, midway] {#3} ;}] S_n -& = \frac1n \sum_{k=0}^{n-1}\cos\bigl(\tfrac{\pi}2\cdot\tfrac kn\bigr) +& = \frac{1}{n} \sum_{k=0}^{n-1}\cos\bigl(\tfrac{\pi}{2}\cdot\tfrac kn\bigr) \Arrow{$\cos x = \Re(e^{ix})$}\\ -& = \frac1n\sum_{k=0}^{n-1} \Re\left(e^{i\frac{k\pi}{2n}}\right) +& = \frac{1}{n} \sum_{k=0}^{n-1} \Re\left(e^{i\frac{k\pi}{2n}}\right) \Arrow{$\Re(z+z')=\Re(z)+\Re(z')$}\\ -& = \frac1n \Re\left(\sum_{k=0}^{n-1} e^{i\frac{k\pi}{2n}}\right) +& = \frac{1}{n} \Re\left(\sum_{k=0}^{n-1} e^{i\frac{k\pi}{2n}}\right) \Arrow{$\exp$ est un morphisme pour $\times$ et $+$} \\ -& = \frac1n \Re \left(\sum_{k=0}^{n-1}\bigl(e^{i\frac{\pi}{2n}}\bigr)^k\right) +& = \frac{1}{n} \Re \left(\sum_{k=0}^{n-1}\bigl(e^{i\frac{\pi}{2n}}\bigr)^k\right) \Arrow{somme de termes d'une suite géométrique de raison $e^{i\frac{2\pi}n}$}\\ -& = \frac1n \Re \left( \frac{1-\bigl(e^{i\frac{\pi}{2n}}\bigr)^n}{1-e^{i\frac{\pi}{2n}}}\right)\\ -& = \frac1n \Re \left(\frac{1-i}{1-e^{i\frac{\pi}{2n}}}\right) +& = \frac{1}{n} \Re \left( \frac{1-\bigl(e^{i\frac{\pi}{2n}}\bigr)^n}{1-e^{i\frac{\pi}{2n}}}\right)\\ +& = \frac{1}{n} \Re \left(\frac{1-i}{1-e^{i\frac{\pi}{2n}}}\right) \end{DispWithArrows*} \bigskip \subsubsection{Exemple 2} \label{example-WithArrowsRightX} -Il est possible de modifier l'exemple précédent pour avoir «|text width|» calculé automatiquement en fonction -de la marge droite (d'une manière similaire à l'option |wrap-lines|) dans les environnements -|{DispWithArrows}| et |{DispWithArrows*}|. Dans la définition de |tikz-code|, nous utilisons la commande -|\WithArrowsRightX| qui donne l'abscisse de la marge droite de la boîte de composition (pour TeX, il s'agit d'une commande -et non d'une dimension). Pour la lisibilité, nous avons utilisé un style de \pkg{witharrows}. Cet exemple nécessite -l'extension Tikz \pkg{calc}. - -\begin{Verbatim} +Il est possible de modifier l'exemple précédent pour avoir «|text width|» calculé +automatiquement en fonction de la marge droite (d'une manière similaire à l'option +|wrap-lines|) dans les environnements |{DispWithArrows}| et |{DispWithArrows*}|. Dans la +définition de |tikz-code|, nous utilisons la commande |\WithArrowsRightX| qui donne +l'abscisse de la marge droite de la boîte de composition (pour TeX, il s'agit d'une +commande et non d'une dimension). Pour la lisibilité, nous avons utilisé un style de +\pkg{witharrows}. Cet exemple nécessite l'extension Tikz \pkg{calc}. + +\begin{Code} \WithArrowsNewStyle{MonStyle} {displaystyle, ygap = 2mm, xoffset = 0pt, ystart = 0mm, - tikz-code = {\path let \p1 = (~#~#1) - in (~#~#1) + tikz-code = {\path let \p1 = (#1) + in (#1) -- node [anchor = west, - text width = {~emphase#\WithArrowsRightX@ - \x1 - 0.5 em}] - {~#~#3} - (~#~#2) ; - \draw let \p1 = (~#~#1) - in (~#~#1) -- ++(~emphase#\WithArrowsRightX@ - \x1,0) |- (~#~#2) ; }} -\end{Verbatim} + text width = {\emph{\WithArrowsRightX} - \x1 - 0.5 em}] + {#3} + (#2) ; + \draw let \p1 = (#1) + in (#1) -- ++(\emph{\WithArrowsRightX} - \x1,0) |- (#2) ; }} +\end{Code} \begin{Verbatim} \begin{DispWithArrows}[MonStyle] S_n - & = \frac1n \sum_{k=0}^{n-1}\cos\bigl(\tfrac{\pi}2\cdot\tfrac kn\bigr) + & = \frac{1}{n} \sum_{k=0}^{n-1}\cos\bigl(\tfrac{\pi}{2}\cdot\tfrac{k}{n}\bigr) \Arrow{$\cos x = \Re(e^{ix})$}\\ ........... \end{Verbatim} @@ -2444,26 +2586,26 @@ l'extension Tikz \pkg{calc}. ygap = 2mm, xoffset = 0pt, ystart = 0mm, - tikz-code = {\path let \p1 = (##1) - in (##1) + tikz-code = {\path let \p1 = (#1) + in (#1) -- node [anchor = west, - text width = {\WithArrowsRightX - \x1 - 0.5 em}] {##3} - (##2) ; - \draw let \p1 = (##1) - in (##1) -- ++(\WithArrowsRightX - \x1,0) |- (##2) ; }} + text width = {\WithArrowsRightX - \x1 - 0.5 em}] {#3} + (#2) ; + \draw let \p1 = (#1) + in (#1) -- ++(\WithArrowsRightX - \x1,0) |- (#2) ; }} \begin{DispWithArrows}[MonStyle] S_n -& = \frac1n \sum_{k=0}^{n-1}\cos\bigl(\tfrac{\pi}2\cdot\tfrac kn\bigr) +& = \frac{1}{n} \sum_{k=0}^{n-1}\cos\bigl(\tfrac{\pi}{2}\cdot\tfrac{k}{n}\bigr) \Arrow{$\cos x = \Re(e^{ix})$}\\ -& = \frac1n\sum_{k=0}^{n-1} \Re\left(e^{i\frac{k\pi}{2n}}\right) +& = \frac{1}{n} \sum_{k=0}^{n-1} \Re\left(e^{i\frac{k\pi}{2n}}\right) \Arrow{$\Re(z+z')=\Re(z)+\Re(z')$}\\ -& = \frac1n \Re\left(\sum_{k=0}^{n-1} e^{i\frac{k\pi}{2n}}\right) +& = \frac{1}{n} \Re\left(\sum_{k=0}^{n-1} e^{i\frac{k\pi}{2n}}\right) \Arrow{$\exp$ est un morphisme pour $\times$ et $+$} \\ -& = \frac1n \Re \left(\sum_{k=0}^{n-1}\bigl(e^{i\frac{\pi}{2n}}\bigr)^k\right) +& = \frac{1}{n} \Re \left(\sum_{k=0}^{n-1}\bigl(e^{i\frac{\pi}{2n}}\bigr)^k\right) \Arrow{somme de termes d'une suite géométrique $e^{i\frac{2\pi}n}$}\\ -& = \frac1n \Re \left( \frac{1-\bigl(e^{i\frac{\pi}{2n}}\bigr)^n}{1-e^{i\frac{\pi}{2n}}}\right)\\ -& = \frac1n \Re \left(\frac{1-i}{1-e^{i\frac{\pi}{2n}}}\right) +& = \frac{1}{n} \Re \left( \frac{1-\bigl(e^{i\frac{\pi}{2n}}\bigr)^n}{1-e^{i\frac{\pi}{2n}}}\right)\\ +& = \frac{1}{n} \Re \left(\frac{1-i}{1-e^{i\frac{\pi}{2n}}}\right) \end{DispWithArrows} @@ -2471,27 +2613,28 @@ S_n \bigskip \subsubsection{Exemple 3} -Dans l'exemple suivant, nous changeons la forme de la flèche selon que la rangée de départ est plus longue ou -plus courte que la rangée d'arrivée. Cet exemple nécessite l'extension \pkg{calc} de Tikz. +Dans l'exemple suivant, nous changeons la forme de la flèche selon que la rangée de départ +est plus longue ou plus courte que la rangée d'arrivée. Cet exemple nécessite l'extension +\pkg{calc} de Tikz. -\begin{Verbatim} +\begin{Code} \begin{WithArrows}[ll,interline=5mm,xoffset=5mm, - ~emphase#tikz-code = {\draw[rounded corners,@ - ~emphase# every node/.style = {circle,@ - ~emphase# draw,@ - ~emphase# auto = false,@ - ~emphase# inner sep = 1pt,@ - ~emphase# fill = gray!50,@ - ~emphase# font = \tiny }]@ - ~emphase# let \p1 = (~#1),@ - ~emphase# \p2 = (~#2)@ - ~emphase# and \ifdim \x1 > \x2@ - ~emphase# (\p1) -- node {~#3} (\x1,\y2) -- (\p2)@ - ~emphase# \else@ - ~emphase# (\p1) -- (\x2,\y1) -- node {~#3} (\p2)@ - ~emphase# \fi ;}@] -E & \Longleftrightarrow \frac{(x+4)}3 + \frac{5x+3}5 = 7 + \emph{tikz-code = {\draw[rounded corners, + every node/.style = {circle, + draw, + auto = false, + inner sep = 1pt, + fill = gray!50, + font = \tiny }] + let \p1 = (#1), + \p2 = (#2) + and \ifdim \x1 > \x2 + (\p1) -- node {#3} (\x1,\y2) -- (\p2) + \else + (\p1) -- (\x2,\y1) -- node {#3} (\p2) + \fi ;}}] +E & \Longleftrightarrow \frac{(x+4)}{3} + \frac{5x+3}{5} = 7 \Arrow{$\times 15$}\\ & \Longleftrightarrow 5(x+4) + 3(5x+3) = 105 \\ & \Longleftrightarrow 5x+20 + 15x+9 = 105 \\ @@ -2501,7 +2644,7 @@ E & \Longleftrightarrow \frac{(x+4)}3 + \frac{5x+3}5 = 7 \Arrow{$\div 20$}\\ & \Longleftrightarrow x = \frac{38}{10} \end{WithArrows} -\end{Verbatim} +\end{Code} \[\begin{WithArrows}[ll,interline=5mm,xoffset=5mm, @@ -2519,7 +2662,7 @@ E & \Longleftrightarrow \frac{(x+4)}3 + \frac{5x+3}5 = 7 \else (\p1) -- (\x2,\y1) -- node {#3} (\p2) \fi ;}] -E & \Longleftrightarrow \frac{(x+4)}3 + \frac{5x+3}5 = 7 +E & \Longleftrightarrow \frac{(x+4)}{3} + \frac{5x+3}{5} = 7 \Arrow{$\times 15$}\\ & \Longleftrightarrow 5(x+4) + 3(5x+3) = 105 \\ & \Longleftrightarrow 5x+20 + 15x+9 = 105 \\ @@ -2534,10 +2677,10 @@ E & \Longleftrightarrow \frac{(x+4)}3 + \frac{5x+3}5 = 7 \subsection{Boucle numérotée automatique} -Supposons que nous voulions tracer une boucle avec des flèches numérotées. Dans ce but, il est -possible d'écrire une commande dédiée |\NumberedLoop| qui fera le travail quand elle -sera utilisée dans le |code-after|. Dans l'exemple suivant, nous avons écrit cette commande avec -|\foreach| de \pkg{pgffor} (cette extension est chargée quand \pkg{witharrows} est chargé.). +Supposons que nous voulions tracer une boucle avec des flèches numérotées. Dans ce but, il +est possible d'écrire une commande dédiée |\NumberedLoop| qui fera le travail quand elle +sera utilisée dans le |code-after|. Dans l'exemple suivant, nous avons écrit cette +commande avec |\foreach| de \pkg{pgffor} (cette extension est chargée quand \pkg{witharrows} est chargé.). \begin{Verbatim} \NewDocumentCommand \NomberedLoop {} @@ -2548,20 +2691,20 @@ sera utilisée dans le |code-after|. Dans l'exemple suivant, nous avons écrit c \end{Verbatim} La commande |\WithArrowsNbLines| est une commande disponible dans le |code-after| qui donne -le nombre total de lignes (=rangées) dans l'environnement courant (pour TeX, il s'agit d'une commande et non d'un -compteur). +le nombre total de lignes (=rangées) dans l'environnement courant (pour TeX, il s'agit +d'une commande et non d'un compteur). -\bigskip -\begin{Verbatim} -$\begin{WithArrows}[~emphase#code-after = \NumberedLoop@] +\medskip +\begin{Code} +$\begin{WithArrows}[\emph{code-after = \NumberedLoop}] a.\;& f \text{ est continue sur } E \\ b.\;& f \text{ est continue en } 0 \\ c.\;& f \text{ est bornée sur la sphère unité} \\ d.\;& \exists K > 0\quad \forall x \in E\quad \|f(x)\| \le K \|x\| \\ e.\;& f \text{ est lipschitzienne} \end{WithArrows}$ -\end{Verbatim} +\end{Code} \bigskip \begin{scope} @@ -2587,9 +2730,9 @@ avec l'option |tikz|. Néanmoins, si nous voulons changer le style pour avoir, p exemple, les numéros entre parenthèses, le moyen le plus rapide est de changer la valeur de |tikz-code|: -\begin{Verbatim} -tikz-code = {\draw (~#1) to node {\footnotesize (~#3)} (~#2) ;} -\end{Verbatim} +\begin{Code} +tikz-code = {\draw (#1) to node {\footnotesize (#3)} (#2) ;} +\end{Code} \WithArrowsOptions{tikz-code = {\draw (#1) to node {\footnotesize (#3)} (#2) ;}} @@ -2606,9 +2749,9 @@ e.\;& f \text{ est lipschitzienne} \section*{Autre documentation} -Le document |witharrows.pdf| (fourni avec l'extension \pkg{witharrows}) contient une traduction anglaise de la -documentation ici présente, ainsi que le code source commenté et un historique des versions. - +Le document |witharrows.pdf| (fourni avec l'extension \pkg{witharrows}) contient une +traduction anglaise de la documentation ici présente, ainsi que le code source commenté et +un historique des versions. \tableofcontents diff --git a/macros/generic/witharrows/witharrows.dtx b/macros/generic/witharrows/witharrows.dtx index 6f6ea4bf0e..301f44da3c 100644 --- a/macros/generic/witharrows/witharrows.dtx +++ b/macros/generic/witharrows/witharrows.dtx @@ -1,6 +1,6 @@ %\iffalse meta-comment % -% Copyright (C) 2017-2023 by F. Pantigny +% Copyright (C) 2017-2024 by F. Pantigny % ----------------------------------- % % This file may be distributed and/or modified under the @@ -15,8 +15,8 @@ % % \fi % \iffalse -\def\myfileversion{2.8b} -\def\myfiledate{2023/08/24} +\def\myfileversion{2.9a} +\def\myfiledate{2024/10/19} % % %<*batchfile> @@ -26,7 +26,7 @@ \usedir{tex/latex/witharrows} \preamble -Copyright (C) 2017-2023 by F. Pantigny +Copyright (C) 2017-2024 by F. Pantigny ----------------------------------- This file may be distributed and/or modified under the @@ -47,18 +47,72 @@ version 2005/12/01 or later. %<*driver> \documentclass[dvipsnames]{l3doc}% dvipsnames is for xcolor (loaded by Tikz) \VerbatimFootnotes -\usepackage{xltxtra} -\usepackage[xetex]{geometry} +\usepackage{geometry} \geometry{left=2.8cm,right=2.8cm,top=2.5cm,bottom=2.5cm,papersize={21cm,29.7cm}} \usepackage[hyperfootnotes=false]{footnotehyper} +\usepackage{fontspec} \usepackage[footnotehyper]{witharrows} \usetikzlibrary{calc} \usepackage{mathtools} \usepackage{amssymb} \usepackage[only,llbracket,rrbracket]{stmaryrd} \usepackage{varwidth} +\usepackage{upquote} \labelformat{equation}{(#1)} \NewDocumentEnvironment {scope} {} {} {} + +\NewDocumentCommand{\Definition}{m} + {{\setlength{\fboxsep}{1pt}\colorbox{gray!20}{\ttfamily \vphantom{gl}#1}}} + +\NewDocumentCommand{\DefinitionCommand}{m} + {{\setlength{\fboxsep}{1pt}\colorbox{gray!20}{\ttfamily + \vphantom{gl}\textbackslash #1}}} + + +\usepackage{piton} +\PitonOptions + { + language = verbatim , + detected-commands = {emph,textsl} , + splittable = 4 + } + +\SetPitonStyle{ Number = , Comment = } + +\ExplSyntaxOn + +\dim_new:N \l__pantigny_width_dim + +\keys_define:nn { pantigny } + { width .dim_set:N = \l__pantigny_width_dim } + +\NewPitonEnvironment { Code } { O { } } + { + \medskip + \char_set_catcode_other:N | + \cs_set_eq:NN \emph \emphase + \dim_zero:N \l__pantigny_width_dim + \keys_set:nn { pantigny } { #1 } + \color{gray} + \PitonOptions { gobble = 2 } + \dim_compare:nNnT \l__pantigny_width_dim > \c_zero_dim + { + \PitonOptions { width = \l__pantigny_width_dim } + \begin{minipage}[c]{\l__pantigny_width_dim} + } + } + { + \dim_compare:nNnT \l__pantigny_width_dim > \c_zero_dim + { \end{minipage} } + \medskip + } + +\ExplSyntaxOff + + + + + \def\interitem{\vspace{7mm plus 2 mm minus 3mm}} \def\emphase{\bgroup\color{RoyalPurple}\let\next=} \fvset{commandchars=\~\#\@,formatcom={\color{gray}}} @@ -72,9 +126,10 @@ version 2005/12/01 or later. %</driver> % \fi % \VerbatimFootnotes -% \title{The package \pkg{witharrows} for plain-TeX and LaTeX\thanks{This document corresponds to the -% version~\myfileversion\space of \pkg{witharrows}, at the date -% of~\myfiledate.}} \author{F. Pantigny \\ \texttt{fpantigny@wanadoo.fr}} +% \title{The package \pkg{witharrows} for plain-TeX and LaTeX\thanks{This +% document corresponds to the version~\myfileversion\space of \pkg{witharrows}, +% at the date of~\myfiledate.}} \author{F. Pantigny \\ +% \texttt{fpantigny@wanadoo.fr}} % % \maketitle % @@ -110,11 +165,14 @@ version 2005/12/01 or later. % follows, we describe the LaTeX package. % % \medskip + % This package can be used with |xelatex|, |lualatex|, |pdflatex| but also by -% the classical workflow |latex|-|dvips|-|ps2pdf| (or Adobe Distiller). This -% package loads the packages \pkg{l3keys2e}, \pkg{varwidth}, \pkg{tikz} and the -% Tikz libraries \pkg{arrows.meta} and \pkg{bending}. The final user only has to -% load the package with the classical instruction: |\usepackage{witharrows}|. +% the classical workflow |latex|-|dvips|-|ps2pdf| (or Adobe Distiller). +% \textsl{However, the file witharrows.dtx of the present documentation should +% be compiled with LuaLaTeX.} This package loads the packages \pkg{l3keys2e}, +% \pkg{varwidth}, \pkg{tikz} and the Tikz libraries \pkg{arrows.meta} and +% \pkg{bending}. The final user only has to load the package with the classical +% instruction: |\usepackage{witharrows}|. % % \medskip % The arrows are drawn with Tikz and that's why \textbf{several compilations may @@ -122,15 +180,15 @@ version 2005/12/01 or later. % a number compilations sufficient (by using |latexmk|).} % % \bigskip -% This package provides an environment |{WithArrows}| to construct alignments of -% equations with arrows for the explanations on the right side: +% This package provides an environment \Definition{\{WithArrows\}} to construct +% alignments of equations with arrows for the explanations on the right side: % -% \begin{Verbatim} +% \begin{Code} % $\begin{WithArrows} -% A & = (a+1)^2 ~emphase#\Arrow{we expand}@ \\ +% A & = (a+1)^2 \emph{\Arrow{we expand}} \\ % & = a^2 + 2a + 1 % <------- don't put \\ here % \end{WithArrows}$ -% \end{Verbatim} +% \end{Code} % % $\begin{WithArrows} % A & = (a+1)^2 \Arrow{we expand} \\ @@ -140,16 +198,17 @@ version 2005/12/01 or later. % % % \medskip -% The arrow has been drawn with the command |\Arrow| on the row from which it -% starts. The command |\Arrow| must be used in the second column (the best way -% is to put it at the end of the second cell of the row as in the previous -% example). +% The arrow has been drawn with the command \DefinitionCommand{Arrow} on the row +% from which it starts. The command |\Arrow| must be used in the second column +% (the best way is to put it at the end of the second cell of the row as in the +% previous example). % % \medskip % The environment |{WithArrows}| bears similarities with the environment % |{aligned}| of \pkg{amsmath} (and |mathtools|). The extension \pkg{witharrows} -% also provides an environment |{DispWithArrows}| which is similar to the -% environment |{align}| of \pkg{amsmath}: cf. p. \pageref{DispWithArrows}. +% also provides two environments |{DispWithArrows}| and |{DispWithArrows*}| +% which are similar to the environments |{align}| and |{align*}| of the package +% \pkg{amsmath}: cf. p. \pageref{DispWithArrows}. % % % \section{Options for the shape of the arrows} @@ -157,19 +216,20 @@ version 2005/12/01 or later. % The command |\Arrow| has several options. These options can be put between % square brackets, before, or after the mandatory argument. % -% The option |jump| gives the number\footnote{It's not possible to give a -% non-positive value to |jump|. See below (p.~\pageref{Backwards}) the way to -% draw an arrow which goes backwards.} of rows the arrow must jump (the default -% value is, of course,~$1$). +% \medskip +% The option \Definition{jump} gives the number\footnote{It's not possible to +% give a non-positive value to |jump|. See below (p.~\pageref{Backwards}) the +% way to draw an arrow which goes backwards.} of rows the arrow must jump (the +% default value is, of course,~$1$). % % -% \begin{Verbatim} +% \begin{Code} % $\begin{WithArrows} -% A & = \bigl((a+b)+1\bigr)^2 \Arrow[~emphase#jump=2@]{we expand} \\ +% A & = \bigl((a+b)+1\bigr)^2 \Arrow[\emph{jump=2}]{we expand} \\ % & = (a+b)^2 + 2(a+b) +1 \\ % & = a^2 + 2ab + b^2 + 2a + 2b +1 % \end{WithArrows}$ -% \end{Verbatim} +% \end{Code} % % $\begin{WithArrows} % A & = \bigl((a+b)+1\bigr)^2 \Arrow[jump=1+1]{we expand} \\ @@ -179,13 +239,13 @@ version 2005/12/01 or later. % % \interitem % It's possible to put several arrows starting from the same row. -% \begin{Verbatim} +% \begin{Code} % $\begin{WithArrows} -% A & = \bigl((a+b)+1\bigr)^2 ~emphase#\Arrow{}\Arrow{}[jump=2]@ \\ +% A & = \bigl((a+b)+1\bigr)^2 \emph{\Arrow{}\Arrow{}[jump=2]} \\ % & = (a+b)^2 + 2(a+b) +1 \\ % & = a^2 + 2ab + b^2 + 2a + 2b +1 % \end{WithArrows}$ -% \end{Verbatim} +% \end{Code} % % $\begin{WithArrows} % A & = \bigl((a+b)+1\bigr)^2 \Arrow{}\Arrow{}[jump=2] \\ @@ -194,15 +254,16 @@ version 2005/12/01 or later. % \end{WithArrows}$ % % \interitem -% The option |xoffset| shifts the arrow to the right (we usually don't want the -% arrows to be stucked on the text). The initial value of |xoffset| is $3$~mm. -% \begin{Verbatim} +% The option \Definition{xoffset} shifts the arrow to the right (we usually +% don't want the arrows to be stucked on the text). The initial value of +% |xoffset| is $3$~mm. +% \begin{Code} % $\begin{WithArrows} % A & = \bigl((a+b)+1\bigr)^2 -% \Arrow[~emphase#xoffset=1cm@]{with \texttt{xoffset=1cm}} \\ +% \Arrow[\emph{xoffset=1cm}]{with \texttt{xoffset=1cm}} \\ % & = (a+b)^2 + 2(a+b) +1 % \end{WithArrows}$ -% \end{Verbatim} +% \end{Code} % % $\begin{WithArrows} % A & = \bigl((a+b)+1\bigr)^2 @@ -213,15 +274,15 @@ version 2005/12/01 or later. % % \interitem % The arrows are drawn with Tikz. That's why the command |\Arrow| has an option -% |tikz| which can be used to give to the arrow (in fact, the command |\path| of -% Tikz) the options proposed by Tikz for such an arrow. The following example -% gives an thick arrow. -% \begin{Verbatim} +% \Definition{tikz} which can be used to give to the arrow (in fact, the command +% |\path| of Tikz) the options proposed by Tikz for such an arrow. The following +% example gives an thick arrow. +% \begin{Code} % $\begin{WithArrows} -% A & = (a+1)^2 \Arrow[~emphase#tikz=thick@]{we expand} \\ +% A & = (a+1)^2 \Arrow[\emph{tikz=thick}]{we expand} \\ % & = a^2 + 2a + 1 % \end{WithArrows}$ -% \end{Verbatim} +% \end{Code} % % $\begin{WithArrows} % A & = (a+1)^2 \Arrow[tikz=thick]{we expand} \\ @@ -233,12 +294,12 @@ version 2005/12/01 or later. % which goes backwards with the Tikz option~|<-|. % \label{Backwards} % -% \begin{Verbatim} +% \begin{Code} % $\begin{WithArrows} -% A & = (a+1)^2 \Arrow~emphase#[tikz=<-]@{we factorize} \\ +% A & = (a+1)^2 \Arrow\emph{[tikz=<-]}{we factorize} \\ % & = a^2 + 2a + 1 % \end{WithArrows}$ -% \end{Verbatim} +% \end{Code} % % $\begin{WithArrows} % A & = (a+1)^2 \Arrow[tikz=<-]{we factorize} \\ @@ -248,12 +309,12 @@ version 2005/12/01 or later. % \interitem % It's also possible to suppress both tips of the arrow with the Tikz option % ``|-|''. -% \begin{Verbatim} +% \begin{Code} % $\begin{WithArrows} -% A & = (a+1)^2 \Arrow[~emphase#tikz=-@]{very classical} \\ +% A & = (a+1)^2 \Arrow[\emph{tikz=-}]{very classical} \\ % & = a^2 + 2a + 1 % \end{WithArrows}$ -% \end{Verbatim} +% \end{Code} % % $\begin{WithArrows} % A & = (a+1)^2 \Arrow[tikz=-]{very classical} \\ @@ -263,12 +324,12 @@ version 2005/12/01 or later. % \interitem % In order to have straight arrows instead of curved ones, we must use the Tikz % option ``|bend left = 0|''. -% \begin{Verbatim} +% \begin{Code} % $\begin{WithArrows} -% A & = (a+1)^2 \Arrow~emphase#[tikz={bend left=0}]@{we expand} \\ +% A & = (a+1)^2 \Arrow\emph{[tikz={bend left=0}]}{we expand} \\ % & = a^2 + 2a + 1 % \end{WithArrows}$ -% \end{Verbatim} +% \end{Code} % % $\begin{WithArrows} % A & = (a+1)^2 \Arrow[tikz={bend left=0}]{we expand} \\ @@ -286,14 +347,14 @@ version 2005/12/01 or later. % \setcounter{fnnohyphen}{\thefootnote} % % % -% \begin{Verbatim} +% \begin{Code} % $\begin{WithArrows} % A & = \bigl((a+b)+1\bigr)^2 -% \Arrow[jump=2,~emphase#tikz={text width=5.3cm}@]{We have done...} \\ +% \Arrow[jump=2,\emph{tikz={text width=5.3cm}}]{We have done...} \\ % & = (a+b)^2 + 2(a+b) +1 \\ % & = a^2 + 2ab + b^2 + 2a + 2b +1 % \end{WithArrows}$ -% \end{Verbatim} +% \end{Code} % % $\begin{WithArrows} % A & = \bigl((a+b)+1\bigr)^2 @@ -318,12 +379,12 @@ version 2005/12/01 or later. % beginning of the text, we won't suppress the |\small| and the |\itshape| and % we will consequently have a text in a bold, italic and small font. % % -% \begin{Verbatim} +% \begin{Code} % $\begin{WithArrows} -% A & = (a+1)^2 \Arrow{~emphase#\bfseries@ we expand} \\ +% A & = (a+1)^2 \Arrow{\emph{\bfseries} we expand} \\ % & = a^2 + 2a + 1 % \end{WithArrows}$ -% \end{Verbatim} +% \end{Code} % % $\begin{WithArrows} % A & = (a+1)^2 \Arrow{\bfseries we expand} \\ @@ -336,17 +397,17 @@ version 2005/12/01 or later. % the nodes are created with the option |align=left|, and, thus, it becomes % possible.}. However, if we put a |\\| , a command of font placed in the % beginning of the text will have effect only until the first command |\\| (like -% in an environment |{tabular}|). That's why Tikz gives an option |font| to -% modify the font of the whole text. Nevertheless, if we use the option -% |tikz={font={\bfseries}}|, the default specification of |\small| and -% |\itshape| will be overwritten. +% in an environment |{tabular}|). That's why Tikz provides an option +% \Definition{font} to modify the font of the whole text. Nevertheless, if we +% use the option |tikz={font={\bfseries}}|, the default specification of +% |\small| and |\itshape| will be overwritten. % % -% \begin{Verbatim} +% \begin{Code} % $\begin{WithArrows} -% A & = (a+1)^2 \Arrow[~emphase#tikz={font={\bfseries}}@]{we expand} \\ +% A & = (a+1)^2 \Arrow[\emph{tikz={font={\bfseries}}}]{we expand} \\ % & = a^2 + 2a + 1 % \end{WithArrows}$ -% \end{Verbatim} +% \end{Code} % % $\begin{WithArrows} % A & = (a+1)^2 \Arrow[tikz={font={\bfseries}}]{we expand} \\ @@ -366,13 +427,13 @@ version 2005/12/01 or later. % nested environments |{WithArrows}| (with the logical exceptions of % |interline|, |code-before| and |code-after|).} % % -% \begin{Verbatim} -% $\begin{WithArrows}[~emphase#tikz=blue@] +% \begin{Code} +% $\begin{WithArrows}[\emph{tikz=blue}] % A & = \bigl((a+b)+1\bigr)^2 \Arrow{first expansion.} \\ % & = (a+b)^2 + 2(a+b) +1 \Arrow{second expansion.} \\ % & = a^2 + 2ab + b^2 + 2a + 2b +1 % \end{WithArrows}$ -% \end{Verbatim} +% \end{Code} % % $\begin{WithArrows}[tikz=blue] % A & = \bigl((a+b)+1\bigr)^2 \Arrow{first expansion.} \\ @@ -382,9 +443,9 @@ version 2005/12/01 or later. % % % \interitem -% The environment |{WithArrows}| has an option |displaystyle|. With this option, -% all the elements are composed in |\displaystyle| (like in an environment -% |{aligned}| of \pkg{amsmath}). +% The environment |{WithArrows}| has an option \Definition{displaystyle}. With +% this option, all the elements are composed in |\displaystyle| (like in an +% environment |{aligned}| of \pkg{amsmath}). % % \medskip % Without the option |displaystyle|: @@ -395,8 +456,8 @@ version 2005/12/01 or later. % & = \int_0^1 (x^2+2x+1) dx % \Arrow{linearity of integration} \\ % & = \int_0^1 x^2 dx + 2 \int_0^1 x dx + \int_0^1 dx \\ -% & = \frac13 + 2\frac12 + 1 \\ -% & = \frac73 +% & = \frac{1}{3} + 2\frac{1}{2} + 1 \\ +% & = \frac{7}{3} % \end{WithArrows}$ % \end{Verbatim} % @@ -405,8 +466,8 @@ version 2005/12/01 or later. % & = \int_0^1 (x^2+2x+1) dx % \Arrow{linearity of integration} \\ % & = \int_0^1 x^2 dx + 2 \int_0^1 x dx + \int_0^1 dx \\ -% & = \frac13 + 2\frac12 + 1 \\ -% & = \frac73 +% & = \frac{1}{3} + 2\frac{1}{2} + 1 \\ +% & = \frac{7}{3} % \end{WithArrows}$ % % @@ -418,33 +479,33 @@ version 2005/12/01 or later. % & = \int_0^1 (x^2+2x+1) dx % \Arrow{linearity of integration} \\ % & = \int_0^1 x^2 dx + 2 \int_0^1 x dx + \int_0^1 dx \\ -% & = \frac13 + 2\frac12 + 1 \\ -% & = \frac73 +% & = \frac{1}{3} + 2\frac{1}{2} + 1 \\ +% & = \frac{7}{3} % \end{WithArrows}$ % % % % \interitem % Almost all the options can also be set at the document level with the command -% |\WithArrowsOptions|. In this case, the scope of the declarations is the -% current TeX group (these declarations are ``semi-global''). For example, if we -% want all the environments |{WithArrows}| composed in |\displaystyle| with blue -% arrows, we can write +% \DefinitionCommand{WithArrowsOptions}. In this case, the scope of the +% declarations is the current TeX group (these declarations are +% ``semi-global''). For example, if we want all the environments |{WithArrows}| +% composed in |\displaystyle| with blue arrows, we can write % |\WithArrowsOptions{displaystyle,tikz=blue}|.\footnote{It's also possible to % configure \pkg{witharrows} by modifying the Tikz style |WithArrows/arrow| % which is the style used by \pkg{witharrows} when drawing an arrow. For % example, to have the labels in blue with roman (upright) types, one can use % the following instruction: -% |\tikzset{WithArrows/arrow/.append style = {blue,font = {}}}|.} +% |\tikzset{WithArrows/arrow/.append style = {blue,font = {}}}|.} % -% \begin{Verbatim} -% ~emphase#\WithArrowsOptions{displaystyle,tikz=blue}@ +% \begin{Code} +% \emph{\WithArrowsOptions{displaystyle,tikz=blue}} % $\begin{WithArrows} % \sum_{i=1}^n (x_i+1)^2 % & = \sum_{i=1}^n (x_i^2+2x_i+1) \Arrow{by linearity}\\ % & = \sum_{i=1}^n x_i^2 + 2\sum_{i=1}^nx_i+ n % \end{WithArrows}$ -% \end{Verbatim} +% \end{Code} % % \begin{scope} % \WithArrowsOptions{displaystyle,tikz=blue} @@ -464,18 +525,18 @@ version 2005/12/01 or later. % However, a previouly defined command |\Arrow| may still be useful in an % environment |{WithArrows}|. If we want to use it in such an environment, it's % possible to change the name of the command |\Arrow| of the package -% \pkg{witharrows}: there is an option |command-name| for this purpose. -% The new name of the command must be given to the option \emph{without} the -% leading backslash. +% \pkg{witharrows}: there is an option \Definition{command-name} for this +% purpose. The new name of the command must be given to the option +% \emph{without} the leading backslash. % % -% \begin{Verbatim} +% \begin{Code} % \NewDocumentCommand {\Arrow} {} {\longmapsto} -% $\begin{WithArrows}[~emphase#command-name=Explanation@] +% $\begin{WithArrows}[\emph{command-name=Explanation}] % f & = \bigl(x \Arrow (x+1)^2\bigr) -% ~emphase#\Explanation{we work directly on fonctions}@\\ +% \emph{\Explanation{we work directly on fonctions}}\\ % & = \bigl(x \Arrow x^2+2x+1\bigr) % \end{WithArrows}$ -% \end{Verbatim} +% \end{Code} % % % \begin{scope} % \NewDocumentCommand {\Arrow} {} {\longmapsto} @@ -488,18 +549,18 @@ version 2005/12/01 or later. % % % \interitem -% The environment |{WithArrows}| provides also two options |code-before| and -% |code-after| for LaTeX code that will be executed at the beginning and at the -% end of the environment. These options are not designed to be hooks (they are -% available only at the environment level and they do not apply to the nested -% environments). +% The environment |{WithArrows}| provides also two options +% \Definition{code-before} and \Definition{code-after} for LaTeX code that will +% be executed at the beginning and at the end of the environment. These options +% are not designed to be hooks (they are available only at the environment level +% and they do not apply to the nested environments). % % -% \begin{Verbatim} -% $\begin{WithArrows}[~emphase#code-before = \color{blue}@] +% \begin{Code} +% $\begin{WithArrows}[\emph{code-before = \color{blue}}] % A & = (a+b)^2 \Arrow{we expand} \\ % & = a^2 + 2ab + b^2 % \end{WithArrows}$ -% \end{Verbatim} +% \end{Code} % % $\begin{WithArrows}[code-before = \color{blue}] % A & = (a+b)^2 \Arrow{we expand} \\ @@ -507,20 +568,21 @@ version 2005/12/01 or later. % \end{WithArrows}$ % % \medskip -% Special commands are available in |code-after|: a command |\WithArrowsNbLines| -% which gives the number of lines (=rows) of the current environment (this is a -% command and not a counter), a special form of the command |\Arrow| and the -% command |\MultiArrow|: these commands are described in the section concerning -% the nested environments, p.~\pageref{NestedEnv}. +% Special commands are available in |code-after|: a command +% \DefinitionCommand{WithArrowsNbLines} which gives the number of lines (=rows) +% of the current environment (this is a command and not a counter), a special +% form of the command |\Arrow| and the command |\MultiArrow|: the latter two +% commands are described in the section concerning the nested environments, +% p.~\pageref{NestedEnv}. % % \interitem % \section{Numbers of columns} % % So far, we have used the environment |{WithArrows}| with two columns. However, % it's possible to use the environment with an arbitrary number of columns with -% the option |format|. The value given to this option is like the preamble of an -% environment |{array}|, that is to say a sequence of letters |r|, |c| and |l|, -% but also |R|, |C| and |L|. +% the option \Definition{format}. The value given to this option is like the +% preamble of an environment |{array}|, that is to say a sequence of letters +% |r|, |c| and |l|, but also |R|, |C| and |L|. % % \smallskip % The letters |R|, |C| and |L| add empty groups |{}| which provide correct @@ -532,14 +594,15 @@ version 2005/12/01 or later. % The initial value of the parameter |format| is, in fact, |rL|. % % \bigskip -% For exemple, if we want only one column left-aligned, we use the option |format=l|. -% \begin{Verbatim} -% $\begin{WithArrows}[~emphase#format = l@] +% For exemple, if we want only one column left-aligned, we use the option +% |format=l|. +% \begin{Code} +% $\begin{WithArrows}\emph{[format = l]} % f(x) \ge g(x) \Arrow{by squaring both sides} \\ % f(x)^2 \ge g(x)^2 \Arrow{by moving to left side} \\ % f(x)^2 - g(x)^2 \ge 0 % \end{WithArrows}$ -% \end{Verbatim} +% \end{Code} % % $\begin{WithArrows}[format = l] % f(x) \ge g(x) \Arrow{by squaring both sides} \\ @@ -551,8 +614,8 @@ version 2005/12/01 or later. % In the following example, we use five columns all centered (the environment % |{DispWithArrows*}| is presented p.~\pageref{DispWithArrows}). % -% \begin{Verbatim} -% \begin{DispWithArrows*}[~emphase#format = cCcCc@, +% \begin{Code} +% \begin{DispWithArrows*}[\emph{format = cCcCc}, % wrap-lines, % interline=1mm] % k & \;\le\; & t & \;\le\; & k+1 \\ @@ -563,7 +626,7 @@ version 2005/12/01 or later. % & \le & \int\limits_k^{k+1} \frac{dt}{k} \\ % \frac{1}{k+1} & \le & \ln(k+1)-\ln(k) & \le & \frac{1}{k} % \end{DispWithArrows*} -% \end{Verbatim} +% \end{Code} % \begin{DispWithArrows*}[format = cCcCc, % wrap-lines, % interline=1mm] @@ -583,22 +646,22 @@ version 2005/12/01 or later. % % The environment |{WithArrows}| defines, during the composition of the array, % two series of nodes materialized in red in the following example.\footnote{The -% option |show-nodes| can be used to materialize the nodes. The nodes are in -% fact Tikz nodes of shape ``rectangle'', but with zero width. An arrow between -% two nodes starts at the \emph{south} anchor of the first node and arrives at -% the \emph{north} anchor of the second node.} +% option \Definition{show-nodes} can be used to materialize the nodes. The nodes +% are in fact Tikz nodes of shape ``rectangle'', but with zero width. An arrow +% between two nodes starts at the \emph{south} anchor of the first node and +% arrives at the \emph{north} anchor of the second node.} % % \smallskip % $\begin{WithArrows}[displaystyle,show-nodes] % I -% & = \int_{\frac{\pi}4}^0 \ln\Bigl(1+\tan\left(\tfrac{\pi}4-u\right)\Bigr)(-d u) \\ -% & = \int_0^{\frac{\pi}4} \ln\Bigl(1+\tan\left(\tfrac{\pi}4-u\right)\Bigr)d u \\ -% & = \int_0^{\frac{\pi}4}\ln\left(1+\frac{1-\tan u}{1+\tan u}\right)\, d u \\ -% & =\int_0^{\frac{\pi}4}\ln\left(\frac{1+\tan u+1-\tan u}{1+\tan u}\right) d u \\ -% & =\int_0^{\frac{\pi}4} \ln\left(\frac2{1+\tan u}\right)\, d u\\ -% & =\int_0^{\frac{\pi}4}\bigl(\ln2-\ln(1+\tan u)\bigr)\, d u \\ -% & =\frac{\pi}4\ln2-\int_0^{\frac{\pi}4}\ln(1+\tan u)\, d u \\ -% & =\frac{\pi}4\ln2-I +% & = \int_{\frac{\pi}{4}}^0 \ln\Bigl(1+\tan\left(\tfrac{\pi}{4}-u\right)\Bigr)(-d u) \\ +% & = \int_0^{\frac{\pi}{4}} \ln\Bigl(1+\tan\left(\tfrac{\pi}{4}-u\right)\Bigr)d u \\ +% & = \int_0^{\frac{\pi}{4}}\ln\left(1+\frac{1-\tan u}{1+\tan u}\right)\, d u \\ +% & =\int_0^{\frac{\pi}{4}}\ln\left(\frac{1+\tan u+1-\tan u}{1+\tan u}\right) d u \\ +% & =\int_0^{\frac{\pi}{4}} \ln\left(\frac{2}{1+\tan u}\right)\, d u\\ +% & =\int_0^{\frac{\pi}{4}}\bigl(\ln2-\ln(1+\tan u)\bigr)\, d u \\ +% & =\frac{\pi}{4}\ln2-\int_0^{\frac{\pi}{4}}\ln(1+\tan u)\, d u \\ +% & =\frac{\pi}{4}\ln2-I % \end{WithArrows}$ % % \bigskip @@ -606,47 +669,49 @@ version 2005/12/01 or later. % called \emph{left nodes}. The nodes of the right side are aligned vertically % on the right side of the array. These nodes will be called \emph{right nodes}. % -% By default, the arrows use the right nodes. We will say that they are in |rr| -% mode ($r$ for \emph{right}). These arrows are vertical (we will say that an -% arrow is \emph{vertical} when its two ends have the same abscissa). +% By default, the arrows use the right nodes. We will say that they are in +% \Definition{rr} mode ($r$ for \emph{right}). These arrows are vertical (we +% will say that an arrow is \emph{vertical} when its two ends have the same +% abscissa). % % % \smallskip % However, it's possible to use the left nodes, or a combination of left and -% right nodes, with one of the options |lr|, |rl| and |ll| ($l$ for -% \emph{left}). Those arrows are, usually, not vertical. +% right nodes, with one of the options \Definition{lr}, \Definition{rl} and +% \Definition{ll} ($l$ for \emph{left}). Those arrows are, usually, not vertical. % % % Therefore % $\begin{WithArrows}[displaystyle] % I -% & = \int_{\frac{\pi}4}^0 \ln\Bigl(1+\tan\left(\tfrac{\pi}4-u\right)\Bigr)(-d u) +% & = \int_{\frac{\pi}{4}}^0 \ln\Bigl(1+\tan\left(\tfrac{\pi}{4}-u\right)\Bigr)(-d u) % \Arrow[lr]{This arrow uses the |lr| option.}\\ -% & = \int_0^{\frac{\pi}4} \ln\Bigl(1+\tan\left(\tfrac{\pi}4-u\right)\Bigr)d u \\ -% & = \int_0^{\frac{\pi}4}\ln\left(1+\frac{1-\tan u}{1+\tan u}\right)\, d u \\ -% & =\int_0^{\frac{\pi}4}\ln\left(\frac{1+\tan u+1-\tan u}{1+\tan u}\right) d u +% & = \int_0^{\frac{\pi}{4}} \ln\Bigl(1+\tan\left(\tfrac{\pi}{4}-u\right)\Bigr)d u \\ +% & = \int_0^{\frac{\pi}{4}}\ln\left(1+\frac{1-\tan u}{1+\tan u}\right)\, d u \\ +% & =\int_0^{\frac{\pi}{4}}\ln\left(\frac{1+\tan u+1-\tan u}{1+\tan u}\right) d u % \Arrow[ll,jump=2,tikz={text width = 5cm}]{This arrow uses a |ll| option % and a |jump| equal to $2$}\\ -% & =\int_0^{\frac{\pi}4} \ln\left(\frac2{1+\tan u}\right)\, d u\\ -% & =\int_0^{\frac{\pi}4}\bigl(\ln2-\ln(1+\tan u)\bigr)\, d u \\ -% & =\frac{\pi}4\ln2-\int_0^{\frac{\pi}4}\ln(1+\tan u)\, d u \\ -% & =\frac{\pi}4\ln2-I +% & =\int_0^{\frac{\pi}{4}} \ln\left(\frac{2}{1+\tan u}\right)\, d u\\ +% & =\int_0^{\frac{\pi}{4}}\bigl(\ln2-\ln(1+\tan u)\bigr)\, d u \\ +% & =\frac{\pi}{4}\ln2-\int_0^{\frac{\pi}{4}}\ln(1+\tan u)\, d u \\ +% & =\frac{\pi}{4}\ln2-I % \end{WithArrows}$ % % % % \interitem -% There is also an option called |i| (\emph{i} for \emph{intermediate}). With -% this option, the arrow is vertical and at the leftmost position. +% There is also an option called \Definition{i} (\emph{i} for +% \emph{intermediate}). With this option, the arrow is vertical and at the +% leftmost position. % -% \begin{Verbatim} +% \begin{Code} % $\begin{WithArrows} % (a+b)(a+ib)(a-b)(a-ib) % & = (a+b)(a-b)\cdot(a+ib)(a-ib) \\ -% & = (a^2-b^2)(a^2+b^2) \Arrow~emphase#[i]@{because $(x-y)(x+y)=x^2-y^2$}\\ +% & = (a^2-b^2)(a^2+b^2) \Arrow\emph{[i]}{because $(x-y)(x+y)=x^2-y^2$}\\ % & = a^4-b^4 % \end{WithArrows}$ -% \end{Verbatim} +% \end{Code} % % $\begin{WithArrows} % (a+b)(a+ib)(a-b)(a-ib) @@ -657,35 +722,37 @@ version 2005/12/01 or later. % % % \interitem -% The environment |{WithArrows}| gives also a |group| option. With this option, -% \emph{all} the arrows of the environment are grouped on a same vertical line -% and at a leftmost position. +% The environment |{WithArrows}| gives also a \Definition{group} option. With +% this option, \emph{all} the arrows of the environment are grouped on a same +% vertical line and at a leftmost position. % \label{group} % % -% \begin{Verbatim}[formatcom=\small\color{gray}] -% $\begin{WithArrows}[~emphase#displaystyle,group@] -% 2xy'-3y=\sqrt x -% & \Longleftrightarrow 2x(K'y_0+Ky_0')-3Ky_0 = \sqrt x \\ -% & \Longleftrightarrow 2xK'y_0 + K(2xy_0'-3y_0) = \sqrt x \\ -% & \Longleftrightarrow 2x K'y_0 = \sqrt x \Arrow{...}\\ +% \begin{Code} +% $\begin{WithArrows}[\emph{displaystyle,group}] +% 2xy'-3y=\sqrt{x} +% & \Longleftrightarrow 2x(K'y_0+Ky_0')-3Ky_0 = \sqrt{x} \\ +% & \Longleftrightarrow 2xK'y_0 + K(2xy_0'-3y_0) = \sqrt{x} \\ +% & \Longleftrightarrow 2x K'y_0 = \sqrt{x} \Arrow{...}\\ % ... % \end{WithArrows}$ -% \end{Verbatim} +% \end{Code} % % % $\begin{WithArrows}[displaystyle,group] -% 2xy'-3y=\sqrt x -% & \Longleftrightarrow 2x(K'y_0+Ky_0')-3Ky_0 = \sqrt x \\ -% & \Longleftrightarrow 2xK'y_0 + K(2xy_0'-3y_0) = \sqrt x \\ -% & \Longleftrightarrow 2x K'y_0 = \sqrt x \Arrow{we replace $y_0$ by its value}\\ -% & \Longleftrightarrow 2xK'x^{\frac32} = x^{\frac12} \Arrow{simplification of the $x$}\\ -% & \Longleftrightarrow K' = \tfrac1{2x^2} \Arrow{antiderivation}\\ -% & \Longleftrightarrow K = -\tfrac1{2x} +% 2xy'-3y=\sqrt{x} +% & \Longleftrightarrow 2x(K'y_0+Ky_0')-3Ky_0 = \sqrt{x} \\ +% & \Longleftrightarrow 2xK'y_0 + K(2xy_0'-3y_0) = \sqrt{x} \\ +% & \Longleftrightarrow 2x K'y_0 = \sqrt{x} +% \Arrow{we replace $y_0$ by its value}\\ +% & \Longleftrightarrow 2xK'x^{\frac{3}{2}} = x^{\frac{1}{2}} +% \Arrow{simplification of the $x$}\\ +% & \Longleftrightarrow K' = \tfrac{1}{2x^2} \Arrow{antiderivation} \\ +% & \Longleftrightarrow K = -\tfrac{1}{2x} % \end{WithArrows}$ % % % \bigskip -% The environment |{WithArrows}| gives also a |groups| option (with a \emph{s} +% The environment |{WithArrows}| gives also a \Definition{groups} option (with a \emph{s} % in the name). With this option, the arrows are divided into several % ``groups''. Each group is a set of connected\footnote{More precisely: for each % arrow $a$, we note $i(a)$ the number of its initial row and $f(a)$ the number @@ -712,7 +779,7 @@ version 2005/12/01 or later. % to an individual arrow\footnote{Such arrow will be called % \emph{independent} in the technical documentation}. Such arrow will be drawn % irrespective of the groups. It's also possible to start a new group by -% applying the option |new-group| to an given arrow. +% applying the option \Definition{new-group} to an given arrow. % % \bigskip % If desired, the option |group| or the option |groups| can be given to the @@ -726,6 +793,7 @@ version 2005/12/01 or later. % and the option |new-group| for the last arrow (that's why the last arrow is not % aligned with the others). % +% \bigskip % $\begin{WithArrows}[interline=1mm,groups] % \sum\limits_{k=0}^n\frac{\cos kx}{\cos^k x} % & = \sum\limits_{k=0}^n \frac{\Re (e^{ikx})}{(\cos x)^k} @@ -764,7 +832,8 @@ version 2005/12/01 or later. % \le f_b \le f_a$. We will also say that the arrow $a$ is \emph{over} the arrow~$b$. % % \bigskip -% \parbox{8cm}{In the exemple on the right, the red arrow covers the blue one.}\hspace{3cm} +% \parbox{8cm}{In the exemple on the right, the red arrow covers the blue +% one.}\hspace{3cm} % $\begin{WithArrows}[c] % A & = B \Arrow[tikz=red,jump=3]{}\\ % & = C \Arrow[tikz=blue]{}\\ @@ -773,8 +842,9 @@ version 2005/12/01 or later. % \end{WithArrows}$ % % \medskip -% On the local level, there exists a key |o|. This key is available only when -% the option |group| or the option |groups| is in force (cf.~p.~\pageref{group}). +% On the local level, there exists a key \Definition{o}. This key is available +% only when the option |group| or the option |groups| is in force +% (cf.~p.~\pageref{group}). % % An arrow of type |o| is drawn with an horizontal shift (such as those set by % |xoffset|) automatically computed by taking into account the arrows covered by @@ -783,15 +853,15 @@ version 2005/12/01 or later. % taken into account in the computation of the value of |xoffset|.} % % \bigskip -% \begin{BVerbatim}[boxwidth=10cm,baseline=c] +% \begin{Code}[width=10cm] % $\begin{WithArrows}[groups] -% A & = B \Arrow{one}\Arrow[~emphase#o@,jump=3]{direct} \\ +% A & = B \Arrow{one}\Arrow[\emph{o},jump=3]{direct} \\ % & = C + C \Arrow{two} \\ % & = D + D + D \Arrow{three} \\ % & = E + E \\ % & = F + F % \end{WithArrows}$ -% \end{BVerbatim} +% \end{Code} % $\begin{WithArrows}[c,groups] % A & = B \Arrow{one}\Arrow[o,jump=3]{direct} \\ % & = C + C \Arrow{two} \\ @@ -802,17 +872,18 @@ version 2005/12/01 or later. % % % \interitem -% Arrows of type |o| may themselves be covered by other arrows of type~|o|.\par\nobreak +% Arrows of type |o| may themselves be covered by other arrows of +% type~|o|.\par\nobreak % % \bigskip -% \begin{BVerbatim} +% \begin{Code} % $\begin{WithArrows}[groups] -% A & = B \Arrow{one}\Arrow[~emphase#o@,jump=2]{two}\Arrow[~emphase#o@,jump=3]{three}\\ +% A & = B \Arrow{one}\Arrow[\emph{o},jump=2]{two}\Arrow[\emph{o},jump=3]{three}\\ % & = C \\ % & = D \\ % & = E + E + E + E + E + E + E % \end{WithArrows}$ -% \end{BVerbatim} +% \end{Code} % % % \bigskip @@ -825,8 +896,8 @@ version 2005/12/01 or later. % % \bigskip % The horizontal space between an arrow of type |o| and the arrows immediately -% covered is fixed by the dimension |xoffset-for-o-arrows| which can be set -% which the command |\WithArrowsOptions| (initial value: 2~mm). +% covered is fixed by the dimension \Definition{xoffset-for-o-arrows} which can +% be set with the command |\WithArrowsOptions| (initial value: 2~mm). % % % \interitem @@ -836,19 +907,19 @@ version 2005/12/01 or later. % % \label{up-and-down} % At the local level, there are also two options for individual arrows, called -% ``|up|'' and ``|down|''. The following example illustrates these types of -% arrows: +% \Definition{up} and \Definition{down}. The following example illustrates these +% types of arrows: % -% \begin{Verbatim} +% \begin{Code} % \(\begin{WithArrows} % A & = B -% \Arrow~emphase#[up]@{an arrow of type \texttt{up}} \\ +% \Arrow\emph{[up]}{an arrow of type \texttt{up}} \\ % & = C + C + C + C + C + C + C + C \\ % & = C + C + C + C + C + C + C + C -% \Arrow~emphase#[down]@{an arrow of type \texttt{down}} \\ +% \Arrow\emph{[down]}{an arrow of type \texttt{down}} \\ % & = E + E % \end{WithArrows}\) -% \end{Verbatim} +% \end{Code} % % \vspace{1cm} % \(\begin{WithArrows} @@ -869,29 +940,30 @@ version 2005/12/01 or later. % In fact, the options |up| and |down| may be used with a value which is a list % of couples key-value. % \begin{itemize} -% \item The key |radius| is the radius of the rounded corner of the +% \item The key \Definition{radius} is the radius of the rounded corner of the % arrow.\footnote{The initial value of this parameter is $4$~pt, which is the % default value of the ``|rounded corners|'' of Tikz.} -% \item The key |width| is the width of the (horizontal part of) the arrow: +% \item The key \Definition{width} is the width of the (horizontal part of) the +% arrow: % \begin{itemize} -% \item with the value |max|, the width of the arrow is ajusted with respect of -% the position of the nodes (that's the behaviour by default of the arrows |up| -% and |down| as shown in the previous example); +% \item with the value \Definition{max}, the width of the arrow is ajusted with +% respect of the position of the nodes (that's the behaviour by default of the +% arrows |up| and |down| as shown in the previous example); % \item with a numerical value, the width of the arrow is directly fixed to that % numerical value; -% \item with the value |min|, the width of the arrow is adjusted with respect to -% the contents of the label of the arrow. +% \item with the value \Definition{min}, the width of the arrow is adjusted with +% respect to the contents of the label of the arrow. % \end{itemize} % \end{itemize} % % \vspace{1cm} -% \begin{Verbatim} +% \begin{Code} % $\begin{WithArrows} % A & = B -% \Arrow[~emphase#up={radius=0pt,width=2cm}@]{we try} \\ +% \Arrow[\emph{up={radius=0pt,width=2cm}}]{we try} \\ % & = C + C + C + C + C + C + C + C % \end{WithArrows}$ -% \end{Verbatim} +% \end{Code} % % \medskip % $\begin{WithArrows} @@ -902,13 +974,13 @@ version 2005/12/01 or later. % % % \vspace{1cm} -% \begin{Verbatim} +% \begin{Code} % $\begin{WithArrows} % A & = B -% \Arrow[~emphase#up={width=min}@]{we try} \\ +% \Arrow[\emph{up={width=min}}]{we try} \\ % & = C + C + C + C + C + C + C + C % \end{WithArrows}$ -% \end{Verbatim} +% \end{Code} % % \medskip % $\begin{WithArrows} @@ -919,8 +991,8 @@ version 2005/12/01 or later. % % \vspace{1cm} % The options relative to the arrows |up| and |down| can be fixed at the global -% or environment level with the key |up-and-down|. This key may also be used as -% prefix as illustrated now. +% or environment level with the key \Definition{up-and-down}. This key may also +% be used as prefix as illustrated now. % % % \begin{Verbatim} % \WithArrowsOptions{up-and-down/width=min} @@ -943,12 +1015,12 @@ version 2005/12/01 or later. % since an environment |{WithArrows}| is always unbreakable). This option is % designed to be used with positive values only. % % -% \begin{Verbatim} +% \begin{Code} % $\begin{WithArrows} -% A & = (a+1)^2 \Arrow{we expand} ~emphase#\\[2ex]@ +% A & = (a+1)^2 \Arrow{we expand} \emph{\\[2ex]} % & = a^2 + 2a + 1 % \end{WithArrows}$ -% \end{Verbatim} +% \end{Code} % % $\begin{WithArrows} % A & = (a+1)^2 \Arrow{we expand} \\*[2ex] @@ -960,23 +1032,24 @@ version 2005/12/01 or later. % \interitem % In the environments of \pkg{amsmath} (or \pkg{mathtools}), the spacing between % rows is fixed by a parameter called |\jot| (it's a dimension and not a skip). -% That's also the case for the environment |{WithArrows}|. An option |jot| has -% been given to the environment |{WithArrows}| in order to change the value of -% this parameter |\jot| for a given environment.\footnote{It's also possible to -% change |\jot| with the environment |{spreadlines}| of \pkg{mathtools}.} +% That's also the case for the environment |{WithArrows}|. An option +% \Definition{jot} has been given to the environment |{WithArrows}| in order to +% change the value of this parameter |\jot| for a given +% environment.\footnote{It's also possible to change |\jot| with the environment +% |{spreadlines}| of \pkg{mathtools}.} % % -% \begin{Verbatim} -% $\begin{WithArrows}[displaystyle,~emphase#jot=2ex@] -% F & = \frac12G \Arrow{we expand}\\ -% & = H + \frac12K \Arrow{we go on}\\ +% \begin{Code} +% $\begin{WithArrows}[displaystyle,\emph{jot=2ex}] +% F & = \frac{1}{2}G \Arrow{we expand}\\ +% & = H + \frac{1}{2}K \Arrow{we go on}\\ % & = K % \end{WithArrows}$ -% \end{Verbatim} +% \end{Code} % % % $\begin{WithArrows}[displaystyle,jot=2ex] -% F & = \frac12G \Arrow{we expand}\\ -% & = H + \frac12K \Arrow{we go on}\\ +% F & = \frac{1}{2}G \Arrow{we expand}\\ +% & = H + \frac{1}{2}K \Arrow{we go on}\\ % & = K % \end{WithArrows}$ % @@ -985,8 +1058,8 @@ version 2005/12/01 or later. % However, this new value of |\jot| will also be used in other alignments % included in the environment~|{WithArrows}|: % % -% \begin{Verbatim} -% $\begin{WithArrows}[jot=2ex] +% \begin{Code} +% $\begin{WithArrows}[\emph{jot=2ex}] % \varphi(x,y) = 0 & \Leftrightarrow (x+y)^2 + (x+2y)^2 = 0 % \Arrow{$x$ and $y$ are real}\\ % & \Leftrightarrow \left\{ @@ -996,7 +1069,7 @@ version 2005/12/01 or later. % \end{aligned} % \right. % \end{WithArrows}$ -% \end{Verbatim} +% \end{Code} % % % $\begin{WithArrows}[jot=2ex] @@ -1012,10 +1085,10 @@ version 2005/12/01 or later. % % \bigskip % Maybe this doesn't correspond to the desired outcome. That's why an option -% |interline| is proposed. It's possible to use a skip (=glue) for this option. -% % -% \begin{Verbatim} -% $\begin{WithArrows}[~emphase#interline=2ex@] +% \Definition{interline} is proposed. It's possible to use a skip (=glue) for +% this option. +% \begin{Code} +% $\begin{WithArrows}[\emph{interline=2ex}] % \varphi(x,y) = 0 & \Leftrightarrow (x+y)^2 + (x+2y)^2 = 0 % \Arrow{$x$ and $y$ are real}\\ % & \Leftrightarrow \left\{ @@ -1025,7 +1098,7 @@ version 2005/12/01 or later. % \end{aligned} % \right. % \end{WithArrows}$ -% \end{Verbatim} +% \end{Code} % % % $\begin{WithArrows}[interline=2ex] @@ -1042,9 +1115,10 @@ version 2005/12/01 or later. % % \interitem % Like the environment |{aligned}|, |{WithArrows}| has an option of placement -% which can assume the values |t|, |c| or |b|. However, the initial value is not -% |c| but |t|. If desired, it's possible to have the |c| value as the default -% with the command |\WithArrowsOptions{c}| at the beginning of the document. +% which can assume the values \Definition{t}, \Definition{c} or \Definition{b}. +% However, the initial value is not |c| but |t|. If desired, it's possible to +% have the |c| value as the default with the command |\WithArrowsOptions{c}| at +% the beginning of the document. % % % \begin{Verbatim} % So\enskip @@ -1090,7 +1164,8 @@ version 2005/12/01 or later. % % Once again, it's possible to change this behaviour with |\WithArrowsOptions|: % -% \quad |\WithArrowsOptions{displaystyle}|. +% \smallskip +% |\WithArrowsOptions{displaystyle}|. % % % \smallskip @@ -1108,10 +1183,7 @@ version 2005/12/01 or later. % % \medskip % The following is composed with |{WithArrows}[c,displaystyle]|. The results are -% strictly identical.\footnote{In versions of \pkg{amsmath} older than the -% 5~nov.~2016, a thin space was added on the left of an environment |{aligned}|. -% The new versions do not add this space and neither do -% |{WithArrows}|.}\par\nobreak +% strictly identical.\par\nobreak % % \smallskip % $\left\{ @@ -1130,26 +1202,26 @@ version 2005/12/01 or later. % % The environments |{WithArrows}| can be nested. In this case, the options given % to the encompassing environment applies also to the inner ones (with logical -% exceptions for |interline|, |code-before| and |code-after|). The command |Arrow| -% can be used as usual in each environment |{WithArrows}|. +% exceptions for |interline|, |code-before| and |code-after|). The command +% |\Arrow| can be used as usual in each environment |{WithArrows}|. % -% \begin{Verbatim}[formatcom=\small\color{gray}] -% $~emphase#\begin{WithArrows}@ +% \begin{Code} +% $\emph{\begin{WithArrows}} % \varphi(x,y)=0 % & \Leftrightarrow (x+2y)^2+(2x+4y)^2 = 0 \Arrow{the numbers are real}\\ % & \Leftrightarrow -% \left\{~emphase#\begin{WithArrows}@[c] +% \left\{\emph{\begin{WithArrows}}[c] % x+2y & = 0 \\ % 2x+4y & = 0 -% ~emphase#\end{WithArrows}@\right. \\ +% \emph{\end{WithArrows}}\right. \\ % & \Leftrightarrow -% \left\{~emphase#\begin{WithArrows}@[c] +% \left\{\emph{\begin{WithArrows}}[c] % x+2y & = 0 \Arrow[tikz=-]{the same equation}\\ % x+2y & = 0 -% ~emphase#\end{WithArrows}@\right. \\ +% \emph{\end{WithArrows}}\right. \\ % & \Leftrightarrow x+2y=0 -% ~emphase#\end{WithArrows}@$ -% \end{Verbatim} +% \emph{\end{WithArrows}}$ +% \end{Code} % % $\begin{WithArrows} % \varphi(x,y)=0 @@ -1169,7 +1241,8 @@ version 2005/12/01 or later. % % \bigskip % However, one may want to draw an arrow between rows that are not in the same -% environment. For example, one may want to draw the following arrow :\par\nobreak +% environment. For example, one may want to draw the following arrow +% :\par\nobreak % % \bigskip % $\begin{WithArrows}[code-after = \Arrow[v]{1-2}{2-2}{division by $2$} ] @@ -1234,13 +1307,13 @@ version 2005/12/01 or later. % number~$1$ (and therefore, the specification is |1-2|) and ends in the row~$2$ % of the sub-environment number~$2$ (and therefore, the specification is |2-2|). % We can draw the arrow with the following command |\Arrow| in |code-after| : -% \begin{Verbatim} -% $\begin{WithArrows}[~emphase#code-after = \Arrow{1-2}{2-2}{division by $2$}@ ] +% \begin{Code} +% $\begin{WithArrows}[\emph{code-after = \Arrow{1-2}{2-2}{division by $2$}}] % \varphi(x,y)=0 % & \Leftrightarrow (x+2y)^2+(2x+4y)^2 = 0 \\ % ......... % \end{WithArrows}$ -% \end{Verbatim} +% \end{Code} % % $\begin{WithArrows}[code-after = \Arrow{1-2}{2-2}{division by $2$} ] % \varphi(x,y)=0 @@ -1269,13 +1342,13 @@ version 2005/12/01 or later. % account unlike with the option |i|. Currently, the option |i| is not available % for the command~|\Arrow| in |code-after|. However, it's always possible to % translate an arrow with |xoffset| (or |xshift| of Tikz). -% \begin{Verbatim} -% $\begin{WithArrows}[code-after=\Arrow~emphase#[v]@{1-2}{2-2}{division by $2$}] +% \begin{Code} +% $\begin{WithArrows}[code-after=\Arrow\emph{[v]}{1-2}{2-2}{division by $2$}] % \varphi(x,y)=0 % & \Leftrightarrow (x+2y)^2+(2x+4y)^2 = 0 \\ % ......... % \end{WithArrows}$ -% \end{Verbatim} +% \end{Code} % % $\begin{WithArrows}[code-after = \Arrow[v]{1-2}{2-2}{division by $2$} ] % \varphi(x,y)=0 @@ -1295,23 +1368,23 @@ version 2005/12/01 or later. % % % \interitem -% The package \pkg{witharrows} gives also another command available only in -% |code-after|: the command |\MultiArrow|. This command draws a ``rak''. The list -% of the rows of the environment concerned by this rak are given in the first -% argument of the command |\MultiArrow|. This list is given with the syntax of -% the list in a |\foreach| command of \pkg{pgffor}. +% The package \pkg{witharrows} provides also another command available only in +% |code-after|: the command \DefinitionCommand{MultiArrow}. This command draws a +% ``rak''. The list of the rows of the environment concerned by this rak are +% given in the first argument of the command |\MultiArrow|. This list is given +% with the syntax of the list in a |\foreach| command of \pkg{pgffor}. % % -% \begin{Verbatim} +% \begin{Code} % $\begin{WithArrows}[tikz = rounded corners, -% code-after = {~emphase#\MultiArrow{1,...,4}{text}@} ] +% code-after = {\emph{\MultiArrow{1,...,4}{text}}} ] % A & = B \\ % & = C \\ % & = D \\ % & = E \\ % & = F % \end{WithArrows}$ -% \end{Verbatim} +% \end{Code} % % % $\begin{WithArrows}[tikz = rounded corners, @@ -1342,8 +1415,8 @@ version 2005/12/01 or later. % \smallskip % For illustrative purposes, we give an example of nested environments % |{WithArrows}|, and, for each ``right node'', the name of that -% node.\footnote{There is an option |show-node-names| to show the names of these -% nodes.} +% node.\footnote{There is an option \Definition{show-node-names} to show the +% names of these nodes.} % % \medskip % \[\begin{WithArrows}[show-nodes,show-node-names] @@ -1380,26 +1453,27 @@ version 2005/12/01 or later. % The package \pkg{witharrows} provides some tools facilitating the use of these % nodes: % \begin{itemize}[beginpenalty=10000] -% \item the command |\WithArrowsLastEnv| gives the number of the last -% environment of level~$0$ (\emph{i.e.} which is not included in another -% environment of the package \pkg{witharrows}); -% -% \item a name can be given to a given environment with the option |name| and, -% in this case, the nodes created in the environment will have aliases -% constructed with this name; -% -% \item the Tikz style |WithArrows/arrow| is the style used by \pkg{witharrows} -% when drawing an arrow\footnote{More precisely, this style is given to the Tikz -% option ``|every path|'' before drawing the arrow with the code of the option -% |tikz-code|. This style is modified (in TeX scopes) by the option |tikz| of -% \pkg{witharrows}.}; -% -% \item the Tikz style |WithArrows/arrow/tips| is the style for the tip of the -% arrow (loaded by |WithArrows/arrow|). +% \item the command \DefinitionCommand{WithArrowsLastEnv} gives the number of +% the last environment of level~$0$ (\emph{i.e.} which is not included in +% another environment of the package \pkg{witharrows}); +% +% \item a name can be given to a given environment with the option +% \Definition{name} and, in this case, the nodes created in the environment will +% have aliases constructed with this name; +% +% \item the Tikz style \Definition{WithArrows/arrow} is the style used by +% \pkg{witharrows} when drawing an arrow\footnote{More precisely, this style is +% given to the Tikz option ``|every path|'' before drawing the arrow with the +% code of the option |tikz-code|. This style is modified (in TeX scopes) by the +% option |tikz| of \pkg{witharrows}.}; +% +% \item the Tikz style \Definition{WithArrows/arrow/tips} is the style for the +% tip of the arrow (loaded by |WithArrows/arrow|). % \end{itemize} % -% For example, we can draw an arrow from \texttt{wa-\WithArrowsLastEnv-2-1-2-r.south} -% to \texttt{wa-\WithArrowsLastEnv-3-2-r.north} with the following Tikz command. +% For example, we can draw an arrow from +% \texttt{wa-\WithArrowsLastEnv-2-1-2-r.south} to +% \texttt{wa-\WithArrowsLastEnv-3-2-r.north} with the following Tikz command. % % \begin{Verbatim} % \begin{tikzpicture}[remember picture,overlay] @@ -1454,24 +1528,24 @@ version 2005/12/01 or later. % ``|first|'' and ``|second|'' and we draw a line between a node of the first % and a node of the second. % -% \begin{Verbatim} -% $\begin{WithArrows}[~emphase#name=first@] +% \begin{Code} +% $\begin{WithArrows}[\emph{first}] % A & = B \\ % & = C % \end{WithArrows}$ % % \bigskip -% $\begin{WithArrows}[~emphase#name=second@] +% $\begin{WithArrows}[\emph{second}] % A' & = B' \\ % & = C' % \end{WithArrows}$ % % \begin{tikzpicture}[remember picture,overlay] % \draw [WithArrows/arrow] -% ([xshift=3mm]~emphase#first@-1-r.south) -% to ([xshift=3mm]~emphase#second@-1-r.north) ; +% ([xshift=3mm]\emph{first}-1-r.south) +% to ([xshift=3mm]\emph{second}-1-r.north) ; % \end{tikzpicture} -% \end{Verbatim} +% \end{Code} % % % \begin{center} @@ -1498,39 +1572,41 @@ version 2005/12/01 or later. % \label{DispWithArrows} % % As previously said, the environment |{WithArrows}| bears similarities with the -% environment |{aligned}| of \pkg{amsmath} (and |mathtools|). This extension also -% provides an environment |{DispWithArrows}| which is similar to the -% environments |{align}| and |{flalign}| of \pkg{amsmath}. +% environment |{aligned}| of \pkg{amsmath} (and |mathtools|). This extension +% also provides an environment \Definition{\{DispWithArrows\}} which is similar +% to the environments |{align}| and |{flalign}| of \pkg{amsmath}. % % \medskip % The environment |{DispWithArrows}| must be used \emph{outside} math mode. Like % |{align}|, it should be used in horizontal mode. -% \begin{Verbatim} -% \begin{~emphase#DispWithArrows@} +% \begin{Code} +% \emph{\begin{DispWithArrows}} % A & = (a+1)^2 \Arrow{we expand} \\ % & = a^2 + 2a + 1 -% \end{~emphase#DispWithArrows@} -% \end{Verbatim} +% \emph{\end{DispWithArrows}} +% \end{Code} % \begin{DispWithArrows} % A & = (a+1)^2 \Arrow{we expand} \\ % & = a^2 + 2a + 1 % \end{DispWithArrows} % % \medskip -% It's possible to use the command |\notag| (or |\nonumber|) to suppress a tag. +% It's possible to use the command \DefinitionCommand{notag} (or +% \DefinitionCommand{nonumber}) to suppress a tag. % -% It's possible to use the command |\tag| to put a special tag (e.g. $\star$). +% It's possible to use the command \DefinitionCommand{tag} to put a special tag +% (e.g. $\star$). % % It's also possible to put a label to the line of an equation with the command -% |\label|. +% \DefinitionCommand{label}. % % These commands must be in the second column of the environment. -% \begin{Verbatim} +% \begin{Code} % \begin{DispWithArrows} -% A & = (a+1)^2 \Arrow{we expand} ~emphase#\notag@ \\ -% & = a^2 + 2a + 1 ~emphase#\tag{$\star$} \label{my-equation}@ +% A & = (a+1)^2 \Arrow{we expand} \emph{\notag} \\ +% & = a^2 + 2a + 1 \emph{\tag{$\star$} \label{my-equation}} % \end{DispWithArrows} -% \end{Verbatim} +% \end{Code} % \begin{DispWithArrows} % A & = (a+1)^2 \Arrow{we expand} \notag \\ % & = a^2 + 2a + 1 \tag{$\star$} \label{my-equation} @@ -1546,12 +1622,12 @@ version 2005/12/01 or later. % \pkg{amssymb}. This symbol is often used to mark the end of a % proof.\footnote{Notice that the environment |{DispWithArrows}| is compatible % with the command |\qedhere| of \pkg{amsthm}.} -% \begin{Verbatim} +% \begin{Code} % \begin{DispWithArrows} % A & = (a+1)^2 \Arrow{we expand} \notag \\ -% & = a^2 + 2a + 1 ~emphase#\tag*{$\square$}@ +% & = a^2 + 2a + 1 \emph{\tag*{$\square$}} % \end{DispWithArrows} -% \end{Verbatim} +% \end{Code} % \begin{DispWithArrows} % A & = (a+1)^2 \Arrow{we expand} \notag \\ % & = a^2 + 2a + 1 \tag*{$\square$} @@ -1559,35 +1635,36 @@ version 2005/12/01 or later. % % \medskip % It's also possible to suppress all the autogenerated numbers with the boolean -% option |notag| (or |nonumber|), at the global or environment level. There is -% also an environment |{DispWithArrows*}| which suppresses all these -% numbers.\footnote{Even in this case, it's possible to put a ``manual tag'' +% option \Definition{notag} (or \Definition{nonumber}), at the global or +% environment level. There is also an environment +% \Definition{\{DispWithArrows*\}} which suppresses all these +% numbers.\footnote{Even in this case, it's possible to put a ``manual tag'' % with the command |\tag|.} -% \begin{Verbatim} -% \begin{~emphase#DispWithArrows*@} +% \begin{Code} +% \emph{\begin{DispWithArrows*}} % A & = (a+1)^2 \Arrow{we expand} \\ % & = a^2 + 2a + 1 -% \end{~emphase#DispWithArrows*@} -% \end{Verbatim} +% \emph{\end{DispWithArrows*}} +% \end{Code} % \begin{DispWithArrows*} % A & = (a+1)^2 \Arrow{we expand} \\ % & = a^2 + 2a + 1 % \end{DispWithArrows*} % % \medskip -% In fact, there is also another option |tagged-lines| which can be used to +% In fact, there is also another option \Definition{tagged-lines} which can be used to % control the lines that will be tagged. The value of this option is a list of % the numbers of the lines that must to be tagged. For example, with the option % |tagged-lines = {first,3,last}|, only the first, the third and the last line % of the environment will be tagged. There is also the special value |all| which % means that all the lines will be tagged. -% \begin{Verbatim} -% \begin{DispWithArrows}[~emphase#tagged-lines = last@] +% \begin{Code} +% \begin{DispWithArrows}[tagged-lines = last] % A & = A_1 \Arrow{first stage} \\ % & = A_2 \Arrow{second stage} \\ % & = A_3 % \end{DispWithArrows} -% \end{Verbatim} +% \end{Code} % \begin{DispWithArrows}[tagged-lines = last] % A & = A_1 \Arrow{first stage} \\ % & = A_2 \Arrow{second stage} \\ @@ -1595,18 +1672,19 @@ version 2005/12/01 or later. % \end{DispWithArrows} % % \bigskip -% With the option |fleqn|, the environment is composed flush left (in a way -% similar to the option |fleqn| of the standard classes of LaTeX). In this case, -% the left margin can be controlled with the option |mathindent| (with a name -% inspired by the parameter |\mathindent| of standard LaTeX. The initial value -% of this parameter is 25~pt. +% With the option \Definition{fleqn}, the environment is composed flush left (in +% a way similar to the option |fleqn| of the standard classes of LaTeX). In this +% case, the left margin can be controlled with the option +% \Definition{mathindent} (with a name inspired by the parameter |\mathindent| +% of standard LaTeX. The initial value of this parameter is 25~pt. It's possible +% to use as value for that key a \emph{skip} (=\emph{glue}). % -% \begin{Verbatim} -% \begin{DispWithArrows}[~emphase#fleqn,mathindent = 1cm@] +% \begin{Code} +% \begin{DispWithArrows}\emph{[fleqn,mathindent = 1cm]} % A & = (a+1)^2 \Arrow{we expand} \\ % & = a^2 + 2a + 1 % \end{DispWithArrows} -% \end{Verbatim} +% \end{Code} % \begin{DispWithArrows}[fleqn,mathindent = 1cm] % A & = (a+1)^2 \Arrow{we expand} \\ % & = a^2 + 2a + 1 @@ -1631,15 +1709,15 @@ version 2005/12/01 or later. % If the package \pkg{amsmath} is loaded, it's possible to use the command % |\intertext| in the environments |{DispWithArrows}|. It's also possible to use % the environment |{subequations}|. However, there is, for the environments -% |{DispWithArrows}|, an option |subequations| to encapsulate the environment in -% an environment |{subequations}|. +% |{DispWithArrows}|, an option \Definition{subequations} to encapsulate the +% environment in an environment |{subequations}|. % % \medskip % In the following example, the key |{subequations}| is fixed by the command % |\WithArrowsOptions|. Each environment |{DispWithArrows}| will be subnumerated % (in the scope of |\WithArrowsOptions|) -% \begin{Verbatim} -% ~emphase#\WithArrowsOptions{subequations}@ +% \begin{Code} +% \emph{\WithArrowsOptions{subequations}} % First environment. % \begin{DispWithArrows} % A & = B \\ @@ -1650,7 +1728,7 @@ version 2005/12/01 or later. % D & = E \\ % & = F % \end{DispWithArrows} -% \end{Verbatim} +% \end{Code} % % % \begin{scope} % \WithArrowsOptions{subequations} @@ -1670,19 +1748,19 @@ version 2005/12/01 or later. % If there is not enough space to put the tag at the end of a line, there is no % automatic positioning of the label on the next line (as in the environments of % \pkg{amsmath}). However, in |{DispWithArrows}|, the user can use the command -% |\tagnextline| to manually require the composition of the tag on the following -% line. -% \begin{Verbatim} +% \DefinitionCommand{tagnextline} to manually require the composition of the tag +% on the following line. +% \begin{Code} % \begin{DispWithArrows}[displaystyle] % S_{2(p+1)} % & =\sum_{k=1}^{2(p+1)} (-1)^k k^2 \\ % & \smash[b]{=\sum_{k=1}^{2p}(-1)^kk -% +(-1)^{2p+1}(2p+1)^2+(-1)^{2p+2}(2p+2)^2} ~emphase#\tagnextline@ \\ +% +(-1)^{2p+1}(2p+1)^2+(-1)^{2p+2}(2p+2)^2} \emph{\tagnextline} \\ % &= S_{2p}-(2p+1)^2+(2p+2)^2\\ % &=p(2p+1)-(2p+1)^2+(2p+2)^2\\ % &= 2p^2+5p+3 % \end{DispWithArrows} -% \end{Verbatim} +% \end{Code} % \begin{center} % \color{gray}\vrule% % \begin{minipage}{275pt}\color{black} @@ -1703,28 +1781,29 @@ version 2005/12/01 or later. % % \bigskip % The environments |{DispWithArrows}| and |{DispWithArrows*}| provide an option -% |wrap-lines|. With this option, the lines of the label are automatically -% wrapped on the right.\footnotemark[\thefnnohyphen]\label{wrap-lines} +% \Definition{wrap-lines}. With this option, the lines of the labels are +% automatically wrapped on the +% right.\footnotemark[\thefnnohyphen]\label{wrap-lines} % -% \begin{Verbatim} -% \begin{DispWithArrows*}[displaystyle,~emphase#wrap-lines@] +% \begin{Code} +% \begin{DispWithArrows*}\emph{[displaystyle,wrap-lines]} % S_n -% & = \frac1n \Re \left(\sum_{k=0}^{n-1}\bigl(e^{i\frac{\pi}{2n}}\bigr)^k\right) +% & = \frac{1}{n} \Re \left(\sum_{k=0}^{n-1}\bigl(e^{i\frac{\pi}{2n}}\bigr)^k\right) % \Arrow{sum of terms of a geometric progression of ratio $e^{i\frac{2\pi}n}$}\\ -% & = \frac1n \Re \left( \frac{1-\bigl(e^{i\frac{\pi}{2n}}\bigr)^n} +% & = \frac{1}{n} \Re \left( \frac{1-\bigl(e^{i\frac{\pi}{2n}}\bigr)^n} % {1-e^{i\frac{\pi}{2n}}}\right) % \Arrow{This line has been wrapped automatically.} \\ -% & = \frac1n \Re \left(\frac{1-i}{1-e^{i\frac{\pi}{2n}}}\right) +% & = \frac{1}{n} \Re \left(\frac{1-i}{1-e^{i\frac{\pi}{2n}}}\right) % \end{DispWithArrows*} -% \end{Verbatim} +% \end{Code} % \begin{DispWithArrows*}[displaystyle,wrap-lines] % S_n -% & = \frac1n \Re \left(\sum_{k=0}^{n-1}\bigl(e^{i\frac{\pi}{2n}}\bigr)^k\right) +% & = \frac{1}{n} \Re \left(\sum_{k=0}^{n-1}\bigl(e^{i\frac{\pi}{2n}}\bigr)^k\right) % \Arrow{sum of terms of a geometric progression of ratio $e^{i\frac{2\pi}n}$}\\ -% & = \frac1n \Re \left( +% & = \frac{1}{n} \Re \left( % \frac{1-\bigl(e^{i\frac{\pi}{2n}}\bigr)^n}{1-e^{i\frac{\pi}{2n}}} \right) % \Arrow{This line has been wrapped automatically.} \\ -% & = \frac1n \Re \left(\frac{1-i}{1-e^{i\frac{\pi}{2n}}}\right) +% & = \frac{1}{n} \Re \left(\frac{1-i}{1-e^{i\frac{\pi}{2n}}}\right) % \end{DispWithArrows*} % % \bigskip @@ -1744,33 +1823,33 @@ version 2005/12/01 or later. % Here is an example. The use of |{DispWithArrows}| gives the ability to tag an % equation (and also to use |wrap-lines|). % -% \begin{Verbatim} -% ~emphase#\begin{enumerate}@ -% ~emphase#\item @ +% \begin{Code} +% \emph{\begin{enumerate} +% \item } % \begin{DispWithArrows}% % [displaystyle, wrap-lines, tagged-lines = last, fleqn, mathindent = 0 pt] % S_n -% & = \frac1n \Re \left(\sum_{k=0}^{n-1}\bigl(e^{i\frac{\pi}{2n}}\bigr)^k\right) +% & = \frac{1}{n} \Re \left(\sum_{k=0}^{n-1}\bigl(e^{i\frac{\pi}{2n}}\bigr)^k\right) % \Arrow{we use the formula for a sum of terms of a geometric progression of % ratio $e^{i\frac{2\pi}n}$}\\ -% & = \frac1n \Re \left( \frac{1-\bigl(e^{i\frac{\pi}{2n}}\bigr)^n} +% & = \frac{1}{n} \Re \left( \frac{1-\bigl(e^{i\frac{\pi}{2n}}\bigr)^n} % {1-e^{i\frac{\pi}{2n}}}\right) -% \Arrow{$\bigl(e^{i\frac{\pi}{2n}}\bigr)^n = e^{i\frac{\pi}2}=i$} \\ -% & = \frac1n \Re \left(\frac{1-i}{1-e^{i\frac{\pi}{2n}}}\right) +% \Arrow{$\bigl(e^{i\frac{\pi}{2n}}\bigr)^n = e^{i\frac{\pi}{2}}=i$} \\ +% & = \frac{1}{n} \Re \left(\frac{1-i}{1-e^{i\frac{\pi}{2n}}}\right) % \end{DispWithArrows} -% ~emphase#\end{enumerate}@ -% \end{Verbatim} +% \emph{\end{enumerate}} +% \end{Code} % \begin{enumerate} % \item % \begin{DispWithArrows}[displaystyle, wrap-lines, tagged-lines = last, fleqn, mathindent = 0 pt] % S_n -% & = \frac1n \Re \left(\sum_{k=0}^{n-1}\bigl(e^{i\frac{\pi}{2n}}\bigr)^k\right) +% & = \frac{1}{n} \Re \left(\sum_{k=0}^{n-1}\bigl(e^{i\frac{\pi}{2n}}\bigr)^k\right) % \Arrow{we use the formula for a sum of terms of a geometric progression of % ratio $e^{i\frac{2\pi}n}$}\\ -% & = \frac1n \Re \left( +% & = \frac{1}{n} \Re \left( % \frac{1-\bigl(e^{i\frac{\pi}{2n}}\bigr)^n}{1-e^{i\frac{\pi}{2n}}} \right) -% \Arrow{$\bigl(e^{i\frac{\pi}{2n}}\bigr)^n = e^{i\frac{\pi}2}=i$} \\ -% & = \frac1n \Re \left(\frac{1-i}{1-e^{i\frac{\pi}{2n}}}\right) +% \Arrow{$\bigl(e^{i\frac{\pi}{2n}}\bigr)^n = e^{i\frac{\pi}{2}}=i$} \\ +% & = \frac{1}{n} \Re \left(\frac{1-i}{1-e^{i\frac{\pi}{2n}}}\right) % \end{DispWithArrows} % \end{enumerate} % @@ -1814,10 +1893,11 @@ version 2005/12/01 or later. % % \subsection{The option <...> of DispWithArrows} % -% The environment |{DispWithArrows}| provides an option |left-brace|. When present, -% the value of this option is composed on the left, followed by a curly brace -% (hence the name) and the body of the environment.\footnote{The option -% |left-brace| can also be used without value: in this case, only the brace is drawn...} +% The environment |{DispWithArrows}| provides an option \Definition{left-brace}. +% When present, the value of this option is composed on the left, followed by a +% curly brace (hence the name) and the body of the environment.\footnote{The +% option |left-brace| can also be used without value: in this case, only the +% brace is drawn...} % % For lisibility, this option |left-brace| is also available with a special % syntax: it's possible to give this option between angle brackets @@ -1834,14 +1914,14 @@ version 2005/12/01 or later. % % \medskip % -% \begin{BVerbatim} -% \begin{DispWithArrows}~emphase#< \binom{n}{p} = >@[format = ll,fleqn,displaystyle] +% \begin{Code} +% \begin{DispWithArrows}\emph{< \binom{n}{p} = >}[format = ll,fleqn,displaystyle] % 0 & \quad \text{if } p > n % \Arrow{if fact, it's a special case\\ of the following one} \\ % \frac{n(n-1)\cdots(n-p+1)}{p!} & \quad \text{if } 0 \leq p \leq n \\ % 0 & \quad \text{if } p < 0 % \end{DispWithArrows} -% \end{BVerbatim} +% \end{Code} % % % \begin{DispWithArrows}< \binom{n}{p} = >[format = ll,fleqn,displaystyle] % 0 & \quad \text{if } p > n @@ -1854,14 +1934,14 @@ version 2005/12/01 or later. % In the following example, we subnumerate the equations with the option % |subequations| (available when the package \pkg{amsmath} is loaded). % -% \begin{Verbatim} -% \begin{DispWithArrows}~emphase#< \label{system} \ref*{system} \Leftrightarrow >@[ +% \begin{Code} +% \begin{DispWithArrows}\emph{< \label{system} \ref*{system} \Leftrightarrow >}[ % format = l, subequations ] % x+y+z = -3 \Arrow[tikz=-,jump=2]{3 equations} \\ % xy+xz+yz=-2 \\ % xyz = -15 \label{last-equation} % \end{DispWithArrows} -% \end{Verbatim} +% \end{Code} % % % \begin{DispWithArrows}< \label{system} \ref*{system} \Leftrightarrow >[ % format = l, subequations] @@ -1880,14 +1960,28 @@ version 2005/12/01 or later. % \pkg{hyperref} is loaded). % % \bigskip -% With the option |replace-left-brace-by|, it's possible to replace the +% With the option \Definition{replace-left-brace-by}, it's possible to replace the % left curly brace by another extensible delimiter. For example, -% ``|replace-left-brace-by = [\enskip|'' will compose with a bracket and add also a -% |\enskip| after this bracket. +% ``|replace-left-brace-by = [\enskip|'' will compose with a bracket and add +% also a |\enskip| after this bracket. % % \interitem % \section{Advanced features} % +% \subsection{Utilisation with Beamer} +% +% \colorbox{yellow!50}{\textbf{New 2.9}}\par\nobreak +% +% \smallskip +% If \pkg{witharrows} is used with Beamer, the command |\Arrow| takes in as +% argument between angular brackets (after the optional argument in square +% brackets) to specify the \emph{overlays} which are implied (internally, +% \pkg{witharrows} merely uses the command |\only| of Beamer). +% +% \begin{Code} +% \Arrow[jump=2]\emph{<3->}{Example} +% \end{Code} +% % \subsection{Use with plain-TeX} % \label{plain-TeX} % @@ -1921,7 +2015,8 @@ version 2005/12/01 or later. % % \label{tikz-code} % -% The option |tikz-code| allows the user to change the shape of the arrows.\footnote{If the option |wrap-lines| is used in an environment +% The option \Definition{tikz-code} allows the user to change the shape of the +% arrows.\footnote{If the option |wrap-lines| is used in an environment % |{DispWithArrows}| or |{DispWithArrows*}|, the option |tikz-code| will have no % effect for the arrows of this environment but only for the arrows in the % nested environments |{WithArrows}|.} @@ -1936,7 +2031,7 @@ version 2005/12/01 or later. % the end point and the label of the arrow. % % \bigskip -% By default, the value is the following: +% The initial value is the following: % % \smallskip % \qquad |\draw (#1) to node {#3} (#2) ;| @@ -1945,23 +2040,23 @@ version 2005/12/01 or later. % \bigskip % In the following example, we replace this default path by a path with three % segments (and the node overwriting the second segment). -% \begin{Verbatim} +% \begin{Code} % \begin{WithArrows}[format=c,ygap=5pt,interline=4mm, -% ~emphase#tikz-code = {\draw[rounded corners]@ -% ~emphase# (~#1) -- ([xshift=5mm]~#1)@ -% ~emphase# -- node[circle,@ -% ~emphase# draw,@ -% ~emphase# auto = false,@ -% ~emphase# fill = gray!50,@ -% ~emphase# inner sep = 1pt] {\tiny ~#3}@ -% ~emphase# ([xshift=5mm]~#2)@ -% ~emphase# -- (~#2) ; }@] +% \emph{tikz-code = {\draw[rounded corners] +% (#1) -- ([xshift=5mm]#1) +% -- node[circle, +% draw, +% auto = false, +% fill = gray!50, +% inner sep = 1pt] {\tiny #3} +% ([xshift=5mm]#2) +% -- (#2) ; }}] % 3 (2x+4) = 6 \Arrow{$\div 3$} \\ % 2x+4 = 2 \Arrow{$-4$} \\ % 2x = -2 \Arrow{$\div 2$} \\ % x = -1 % \end{WithArrows} -% \end{Verbatim} +% \end{Code} % % % \[\begin{WithArrows}[format=c, @@ -1987,10 +2082,11 @@ version 2005/12/01 or later. % % \bigskip % The environments |{DispWithArrows}| and its starred version -% |{DispWithArrows*}| provide a command |\WithArrowsRightX| which can be used in -% a definition of |tikz-code|. This command gives the $x$-value of the right side -% of the composition box (taking into account the eventual tags of the -% equations). For an example of use, see p.~\pageref{example-WithArrowsRightX}. +% |{DispWithArrows*}| provide a command \DefinitionCommand{WithArrowsRightX} +% which can be used in a definition of |tikz-code|. This command gives the +% $x$-value of the right side of the composition box (taking into account the +% eventual tags of the equations). For an example of use, see +% p.~\pageref{example-WithArrowsRightX}. % % % \bigskip @@ -2031,10 +2127,9 @@ version 2005/12/01 or later. % % \subsection{The key right-overlap} % -% \colorbox{yellow!50}{\textbf{New 2.8}} % -% The key |right-overlap| is a boolean key whose initial value is |true|. It -% deals with the environments |{WithArrows}| only. +% The key \Definition{right-overlap} is a boolean key whose initial value is +% |true|. It deals with the environments |{WithArrows}| only. % % When the key |right-overlap| is in force, the arrows (and their labels) are % drawn in an overlapping position and are not relevant for the computation of @@ -2045,8 +2140,8 @@ version 2005/12/01 or later. % right is taken into account in the dimensions of the encompassing box. % % -% \begin{Verbatim} -% $\left\{\begin{WithArrows}[c,format = rCrCl,~emphase#right-overlap=false@] +% \begin{Code} +% $\left\{\begin{WithArrows}[c,format = rCrCl,\emph{right-overlap=false}] % 2x & + & 3y & = & 5 \Arrow{we add $L_1$ to $L_2$}\\ % -2x & - & 5y & = & 2 % \end{WithArrows}\right.$\quad @@ -2054,7 +2149,7 @@ version 2005/12/01 or later. % 2x & + & 3y & = & 5 \\ % & - & 2y & = & 7 % \end{WithArrows}\right.$ -% \end{Verbatim} +% \end{Code} % % \medskip % $\left\{\begin{WithArrows}[c,format = rCrCl,right-overlap=false] @@ -2067,14 +2162,16 @@ version 2005/12/01 or later. % \end{WithArrows}\right.$ % % \bigskip -% The tuning |right-overlap = false| may also be useful in conjunction with the class |standalone|. +% The tuning |right-overlap = false| may also be useful in conjunction with the +% class |standalone|. % % % \bigskip % \subsection{Vertical positioning of the arrows} % % There are four parameters for fine tuning of the vertical positioning of the -% arrows : |ygap|, |ystart|, |start-adjust| and |end-adjust|. +% arrows : \Definition{ygap}, \Definition{ystart}, \Definition{start-adjust} and +% \Definition{end-adjust}. % % \medskip % We first explain the behaviour when the parameters |start-adjust| and @@ -2089,7 +2186,9 @@ version 2005/12/01 or later. % % \bigskip % $\begin{WithArrows}[interline=1mm, adjust = 0pt] -% (\cos x + \sin x)^2 & = \cos^2 x +2 \cos x \sin x + \sin^2 x\Arrow{}\tikz[remember picture] \coordinate (A) ; \\ +% (\cos x + \sin x)^2 & +% = \cos^2 x +2 \cos x \sin x +% + \sin^2 x\Arrow{}\tikz[remember picture] \coordinate (A) ; \\ % & = \cos^2x + \sin^2x + 2\sin x\cos x \Arrow{} \\ % & = 1 + \sin(2x) % \end{WithArrows}$ @@ -2118,12 +2217,12 @@ version 2005/12/01 or later. % \bigskip % Here is for example the behaviour without the mechanism of |start-adjust| and % |end-adjust|: -% % \begin{Verbatim} -% $\begin{WithArrows}~emphase#[start-adjust=0pt, end-adjust=0pt]@ +% \begin{Code} +% $\begin{WithArrows}\emph{[start-adjust=0pt, end-adjust=0pt]} % A & = (a+1)^2 \Arrow{we expand} \\ % & = a^2 + 2a + 1 % \end{WithArrows}$ -% \end{Verbatim} +% \end{Code} % % $\begin{WithArrows}[start-adjust=0pt, end-adjust=0pt] % A & = (a+1)^2 \Arrow{we expand} \\ @@ -2131,10 +2230,10 @@ version 2005/12/01 or later. % \end{WithArrows}$ % % -% \bigskip -% Here is the standard behaviour since version 1.13 (the parameters -% |start-adjust| and |end-ajust| are used with the initial value $0.4$~ex). The -% arrow is longer and the result is more aesthetic. +% \bigskip +% Here is the standard behaviour (the parameters |start-adjust| and |end-ajust| +% are used with the initial value $0.4$~ex). The arrow is longer and the result +% is more aesthetic. % % \medskip % $\begin{WithArrows} @@ -2144,20 +2243,20 @@ version 2005/12/01 or later. % % % \bigskip -% It's also possible to use the option |adjust| which sets both |start-adjust| -% and |end-ajust|. +% It's also possible to use the option \Definition{adjust} which sets both +% |start-adjust| and |end-ajust|. % % \interitem -% Since the version 2.1 of \pkg{witharrows}, an arrow of |jump| equal to~$1$ has -% a maximal length\footnote{We call \emph{length} of an arrow the difference -% between the $y$-value of its start point and the $y$~value of its end point.} -% equal to the parameter |max-length-of-arrow|. The initial value of this -% parameter is $2$~cm. +% An arrow of |jump| equal to~$1$ has a maximal length\footnote{We call +% \emph{length} of an arrow the difference between the $y$-value of its start +% point and the $y$~value of its end point.} equal to the parameter +% \Definition{max-length-of-arrow}. The initial value of this parameter is +% $2$~cm. % % In the following example, the value of |max-length-of-arrow| has been fixed to % $1.5$~cm. -% \begin{Verbatim} -% \[\begin{WithArrows}[~emphase#max-length-of-arrow = 1.5cm@] +% \begin{Code} +% \[\begin{WithArrows}[\emph{max-length-of-arrow = 1.5cm}] % A % & = % \begin{vmatrix} @@ -2182,7 +2281,7 @@ version 2005/12/01 or later. % 0 & e-a & e^2-a^2 & e^3-a^3 & e^4-a^4 % \end{vmatrix} % \end{WithArrows}\] -% \end{Verbatim} +% \end{Code} % % % \bigskip @@ -2224,15 +2323,15 @@ version 2005/12/01 or later. % \pkg{footnote} or the package \pkg{footnotehyper}. % % \smallskip -% If \pkg{witharrows} is loaded with the option |footnote| (with +% If \pkg{witharrows} is loaded with the option \Definition{footnote} (with % |\usepackage[footnote]{witharrows}| or with |\PassOptionsToPackage|), the % package \pkg{footnote} is loaded (if it is not yet loaded) and it is used to % extract the footnotes. % % \smallskip -% If \pkg{witharrows} is loaded with the option |footnotehyper|, the package -% \pkg{footnotehyper} is loaded (if it is not yet loaded) ant it is used to -% extract footnotes. +% If \pkg{witharrows} is loaded with the option \Definition{footnotehyper}, the +% package \pkg{footnotehyper} is loaded (if it is not yet loaded) ant it is used +% to extract footnotes. % % \smallskip % Caution: The packages \pkg{footnote} and \pkg{footnotehyper} are incompatible. @@ -2256,10 +2355,10 @@ version 2005/12/01 or later. % \bigskip % \subsection{Option no-arrows} % -% The option |no-arrows| is a convenience given to the user. With this option -% the arrows are not drawn. However, an analyse of the arrows is done and some -% errors can be raised, for example if an arrow would arrive after the last row -% of the environment. +% The option \Definition{no-arrows} is a convenience given to the user. With +% this option the arrows are not drawn. However, an analyse of the arrows is +% done and some errors can be raised, for example if an arrow would arrive after +% the last row of the environment. % % \bigskip % \subsection{Note for the users of AUCTeX} @@ -2277,12 +2376,12 @@ version 2005/12/01 or later. % |M-x customize| > |[Text]| > |[TeX]| > |[Font LaTeX]| % % \bigskip -% \subsection{Note for developpers} +% \subsection{Note for the developpers} % % If you want to construct an environment upon an environment of % \pkg{witharrows}, we recommand to call the environment with the construction -% |\WithArrows|-|\endWithArrows| or |\DispWithArrows|-|\endDispWithArrows| (and -% not |\begin{WithArrows}|-|\end{WithArrows}|, etc.). +% |\WithArrows|-|\endWithArrows| (and not |\begin{WithArrows}| and +% |\end{WithArrows}|). % % \smallskip % By doing so, the error messages generated by \pkg{witharrows} will (usually) @@ -2326,29 +2425,33 @@ version 2005/12/01 or later. % placement of an eventual command |\Arrow|. % % -% -% \begin{Verbatim}[formatcom=\small\color{gray}] +% \begingroup +% \small +% \begin{Code} % $\begin{WithArrows}[interline=0.5ex] -% ~emphase#\MoveEqLeft@ \arccos(x) = \arcsin \frac45 + \arcsin \frac5{13} -% \Arrow{because both are in $[-\frac{\pi}2,\frac{\pi}2]$} \\ -% & \Leftrightarrow x = \sin\left(\arcsin\frac45 + \arcsin\frac5{13}\right) \\ -% & \Leftrightarrow x = \frac45\cos\arcsin\frac5{13} + \frac5{13} \cos\arcsin\frac45 +% \emph{\MoveEqLeft} \arccos(x) = \arcsin \frac{4}{5} + \arcsin \frac{5}{13} +% \Arrow{because both are in $[-\frac{\pi}{2},\frac{\pi}{2}]$} \\ +% & \Leftrightarrow x = \sin\left(\arcsin\frac{4}{5} + \arcsin\frac{5}{13}\right) \\ +% & \Leftrightarrow x +% = \frac{4}{5}\cos\arcsin\frac{5}{13}+\frac{5}{13}\cos\arcsin\frac{4}{5} % \Arrow{$\forall x \in [-1,1], \cos(\arcsin x) = \sqrt{1-x^2}$} \\ -% & \Leftrightarrow x = \frac45\sqrt{1-\bigl(\frac5{13}\bigr)^2} -% + \frac5{13}\sqrt{1-\bigl(\frac45\bigr)^2} +% & \Leftrightarrow x = \frac{4}{5}\sqrt{1-\bigl(\frac{5}{13}\bigr)^2} +% + \frac{5}{13}\sqrt{1-\bigl(\frac{4}{5}\bigr)^2} % \end{WithArrows}$ -% \end{Verbatim} +% \end{Code} +% \endgroup % % % \medskip % $\begin{WithArrows}[interline=0.5ex] -% \MoveEqLeft \arccos(x) = \arcsin \frac45 + \arcsin \frac5{13} -% \Arrow{because both are in $[-\frac{\pi}2,\frac{\pi}2]$} \\ -% & \Leftrightarrow x = \sin\left(\arcsin\frac45 + \arcsin\frac5{13}\right) \\ -% & \Leftrightarrow x = \frac45\cos\arcsin\frac5{13} + \frac5{13} \cos\arcsin\frac45 +% \MoveEqLeft \arccos(x) = \arcsin \frac{4}{5} + \arcsin \frac{5}{13} +% \Arrow{because both are in $[-\frac{\pi}{2},\frac{\pi}{2}]$} \\ +% & \Leftrightarrow x = \sin\left(\arcsin\frac{4}{5} + \arcsin\frac{5}{13}\right) \\ +% & \Leftrightarrow x +% = \frac{4}{5}\cos\arcsin\frac{5}{13} + \frac{5}{13} \cos\arcsin\frac{4}{5} % \Arrow{$\forall x \in [-1,1], \cos(\arcsin x) = \sqrt{1-x^2}$} \\ -% & \Leftrightarrow x = \frac45\sqrt{1-\bigl(\frac5{13}\bigr)^2} -% + \frac5{13}\sqrt{1-\bigl(\frac45\bigr)^2} +% & \Leftrightarrow x = \frac{4}{5}\sqrt{1-\bigl(\frac{5}{13}\bigr)^2} +% + \frac{5}{13}\sqrt{1-\bigl(\frac{4}{5}\bigr)^2} % \end{WithArrows}$ % % @@ -2360,13 +2463,13 @@ version 2005/12/01 or later. % directions. % % \bigskip -% \begin{Verbatim} +% \begin{Code} % \NewDocumentCommand \DoubleArrow { O {} m m } % { -% \Arrow[tikz=->,~#1]{~#2}% -% \Arrow[o,tikz=<-,~#1]{~#3} +% \Arrow[tikz=->,#1]{#2}% +% \Arrow[o,tikz=<-,#1]{#3} % } -% \end{Verbatim} +% \end{Code} % % % \NewDocumentCommand \DoubleArrow { O {} m m } @@ -2379,12 +2482,12 @@ version 2005/12/01 or later. % \bigskip % Example of use: % -% \begin{Verbatim} +% \begin{Code} % $\begin{WithArrows}[groups] -% A & = (a+b)^2 \DoubleArrow[tikz={font=\bfseries}]{expansion}{factorization} \\ +% A & = (a+b)^2 \emph{\DoubleArrow[tikz={font=\bfseries}]{expansion}{factorization}} \\ % & = a^2 + 2ab+b^2 % \end{WithArrows}$ -% \end{Verbatim} +% \end{Code} % % \bigskip % $\begin{WithArrows}[groups] @@ -2401,22 +2504,22 @@ version 2005/12/01 or later. % It's possible to change the shape of the labels, which are Tikz nodes, by % modifying the key ``|every node|'' of Tikz. % -% \begin{Verbatim} +% \begin{Code} % \begin{WithArrows}% % [format = c, % interline = 4mm, -% tikz = {~emphase#every node/.style = {circle,@ -% ~emphase# draw,@ -% ~emphase# auto = false,@ -% ~emphase# fill = gray!50,@ -% ~emphase# inner sep = 1pt,@ -% ~emphase# font = \tiny}@}] +% tikz = {\emph{every node/.style = {circle, +% draw, +% auto = false, +% fill = gray!50, +% inner sep = 1pt, +% font = \tiny}}}] % 3 (2x+4) = 6 \Arrow{$\div 3$} \\ % 2x+4 = 2 \Arrow{$-4$} \\ % 2x = -2 \Arrow{$\div 2$} \\ % 2x = -1 % \end{WithArrows} -% \end{Verbatim} +% \end{Code} % % \[\begin{WithArrows}[% % format = c, @@ -2455,18 +2558,18 @@ version 2005/12/01 or later. % instructions |\path| : the first instruction draws the arrow itself and the % second puts the label in a Tikz node in the rectangle delimited by the arrow. % -% \begin{Verbatim} +% \begin{Code} % \begin{DispWithArrows*}% % [displaystyle, % ygap = 2mm, % ystart = 0mm, -% ~emphase#tikz-code = {\draw (~#1) -- ++(4.5cm,0) |- (~#2) ;@ -% ~emphase# \path (~#1) -- (~#2) @ -% ~emphase# node[text width = 4.2cm, right, midway] {~#3} ;}@] +% \emph{tikz-code = {\draw (#1) -- ++(4.5cm,0) |- (#2) ; +% \path (#1) -- (#2) +% node[text width = 4.2cm, right, midway] {#3} ;}}] % S_n -% & = \frac1n \sum_{k=0}^{n-1}\cos\bigl(\tfrac{\pi}2\cdot\tfrac kn\bigr) +% & = \frac{1}{n} \sum_{k=0}^{n-1}\cos\bigl(\tfrac{\pi}{2}\cdot\tfrac{k}{n}\bigr) % ........... -% \end{Verbatim} +% \end{Code} % % % \bigskip @@ -2478,16 +2581,16 @@ version 2005/12/01 or later. % \path (#1) -- (#2) % node[text width = 4.2cm, right, midway] {#3} ;}] % S_n -% & = \frac1n \sum_{k=0}^{n-1}\cos\bigl(\tfrac{\pi}2\cdot\tfrac kn\bigr) +% & = \frac{1}{n} \sum_{k=0}^{n-1}\cos\bigl(\tfrac{\pi}{2}\cdot\tfrac{k}{n}\bigr) % \Arrow{$\cos x = \Re(e^{ix})$}\\ -% & = \frac1n\sum_{k=0}^{n-1} \Re\left(e^{i\frac{k\pi}{2n}}\right) +% & = \frac{1}{n} \sum_{k=0}^{n-1} \Re\left(e^{i\frac{k\pi}{2n}}\right) % \Arrow{$\Re(z+z')=\Re(z)+\Re(z')$}\\ -% & = \frac1n \Re\left(\sum_{k=0}^{n-1} e^{i\frac{k\pi}{2n}}\right) +% & = \frac{1}{n} \Re\left(\sum_{k=0}^{n-1} e^{i\frac{k\pi}{2n}}\right) % \Arrow{$\exp$ is a morphism for $\times$ and $+$} \\ -% & = \frac1n \Re \left(\sum_{k=0}^{n-1}\bigl(e^{i\frac{\pi}{2n}}\bigr)^k\right) -% \Arrow{sum of terms of a geometric progression of ratio $e^{i\frac{2\pi}n}$}\\ -% & = \frac1n \Re \left( \frac{1-\bigl(e^{i\frac{\pi}{2n}}\bigr)^n}{1-e^{i\frac{\pi}{2n}}}\right)\\ -% & = \frac1n \Re \left(\frac{1-i}{1-e^{i\frac{\pi}{2n}}}\right) +% & = \frac{1}{n} \Re \left(\sum_{k=0}^{n-1}\bigl(e^{i\frac{\pi}{2n}}\bigr)^k\right) +% \Arrow{sum of terms of a geometric progression of ratio $e^{i\frac{2\pi}{n}}$}\\ +% & = \frac{1}{n} \Re \left( \frac{1-\bigl(e^{i\frac{\pi}{2n}}\bigr)^n}{1-e^{i\frac{\pi}{2n}}}\right)\\ +% & = \frac{1}{n} \Re \left(\frac{1-i}{1-e^{i\frac{\pi}{2n}}}\right) % \end{DispWithArrows*} % % \bigskip @@ -2502,55 +2605,56 @@ version 2005/12/01 or later. % composition box (it's a TeX command and not a dimension). For lisibility, we % use a style. This example requires the Tikz library \pkg{calc}. % -% \begin{Verbatim} +% \begin{Code} % \WithArrowsNewStyle{MyStyle} % {displaystyle, % ygap = 2mm, % xoffset = 0pt, % ystart = 0mm, -% tikz-code = {\path let \p1 = (~#~#1) -% in (~#~#1) +% tikz-code = {\path let \p1 = (#1) +% in (#1) % -- node [anchor = west, -% text width = {~emphase#\WithArrowsRightX@ - \x1 - 0.5 em}] -% {~#~#3} -% (~#~#2) ; -% \draw let \p1 = (~#~#1) -% in (~#~#1) -- ++(~emphase#\WithArrowsRightX@ - \x1,0) |- (~#~#2) ; }} -% \end{Verbatim} -% -% \begin{Verbatim} +% text width = {\emph{\WithArrowsRightX} - \x1 - 0.5 em}] +% {#3} +% (#2) ; +% \draw let \p1 = (#1) +% in (#1) -- ++(\emph{\WithArrowsRightX} - \x1,0) |- (#2) ; }} +% \end{Code} +% +% \begin{Code} %\begin{DispWithArrows}[MyStyle] % S_n -% & = \frac1n \sum_{k=0}^{n-1}\cos\bigl(\tfrac{\pi}2\cdot\tfrac kn\bigr) +% & = \frac{1}{n} \sum_{k=0}^{n-1}\cos\bigl(\tfrac{\pi}{2}\cdot\tfrac{k}{n}\bigr) % \Arrow{$\cos x = \Re(e^{ix})$}\\ % ........... -% \end{Verbatim} +% \end{Code} % % \WithArrowsNewStyle{MyStyle} % {displaystyle, % ygap = 2mm, % xoffset = 0pt, % ystart = 0mm, -% tikz-code = {\path let \p1 = (##1) -% in (##1) +% tikz-code = {\path let \p1 = (#1) +% in (#1) % -- node [anchor = west, -% text width = {\WithArrowsRightX - \x1 - 0.5 em}] {##3} -% (##2) ; -% \draw let \p1 = (##1) -% in (##1) -- ++(\WithArrowsRightX - \x1,0) |- (##2) ; }} +% text width = {\WithArrowsRightX - \x1 - 0.5 em}] {#3} +% (#2) ; +% \draw let \p1 = (#1) +% in (#1) -- ++(\WithArrowsRightX - \x1,0) |- (#2) ; }} % %\begin{DispWithArrows}[MyStyle] % S_n -% & = \frac1n \sum_{k=0}^{n-1}\cos\bigl(\tfrac{\pi}2\cdot\tfrac kn\bigr) +% & = \frac{1}{n} \sum_{k=0}^{n-1}\cos\bigl(\tfrac{\pi}{2}\cdot\tfrac{k}{n}\bigr) % \Arrow{$\cos x = \Re(e^{ix})$}\\ -% & = \frac1n\sum_{k=0}^{n-1} \Re\left(e^{i\frac{k\pi}{2n}}\right) +% & = \frac{1}{n} \sum_{k=0}^{n-1} \Re\left(e^{i\frac{k\pi}{2n}}\right) % \Arrow{$\Re(z+z')=\Re(z)+\Re(z')$}\\ -% & = \frac1n \Re\left(\sum_{k=0}^{n-1} e^{i\frac{k\pi}{2n}}\right) +% & = \frac{1}{n} \Re\left(\sum_{k=0}^{n-1} e^{i\frac{k\pi}{2n}}\right) % \Arrow{$\exp$ is a morphism for $\times$ and $+$} \\ -% & = \frac1n \Re \left(\sum_{k=0}^{n-1}\bigl(e^{i\frac{\pi}{2n}}\bigr)^k\right) -% \Arrow{sum of terms of a geometric progression of ratio $e^{i\frac{2\pi}n}$}\\ -% & = \frac1n \Re \left( \frac{1-\bigl(e^{i\frac{\pi}{2n}}\bigr)^n}{1-e^{i\frac{\pi}{2n}}}\right)\\ -% & = \frac1n \Re \left(\frac{1-i}{1-e^{i\frac{\pi}{2n}}}\right) +% & = \frac{1}{n} \Re \left(\sum_{k=0}^{n-1}\bigl(e^{i\frac{\pi}{2n}}\bigr)^k\right) +% \Arrow{sum of terms of a geometric progression of ratio $e^{i\frac{2\pi}{n}}$}\\ +% & = \frac{1}{n} +% \Re \left( \frac{1-\bigl(e^{i\frac{\pi}{2n}}\bigr)^n}{1-e^{i\frac{\pi}{2n}}}\right)\\ +% & = \frac{1}{n} \Re \left(\frac{1-i}{1-e^{i\frac{\pi}{2n}}}\right) % \end{DispWithArrows} % % @@ -2562,23 +2666,23 @@ version 2005/12/01 or later. % the start row is longer than the end row or not. This example requires the % Tikz library \pkg{calc}. % -% \begin{Verbatim} +% \begin{Code} % \begin{WithArrows}[ll,interline=5mm,xoffset=5mm, -% ~emphase#tikz-code = {\draw[rounded corners,@ -% ~emphase# every node/.style = {circle,@ -% ~emphase# draw,@ -% ~emphase# auto = false,@ -% ~emphase# inner sep = 1pt,@ -% ~emphase# fill = gray!50,@ -% ~emphase# font = \tiny }]@ -% ~emphase# let \p1 = (~#1),@ -% ~emphase# \p2 = (~#2)@ -% ~emphase# in \ifdim \x1 > \x2@ -% ~emphase# (\p1) -- node {~#3} (\x1,\y2) -- (\p2)@ -% ~emphase# \else@ -% ~emphase# (\p1) -- (\x2,\y1) -- node {~#3} (\p2)@ -% ~emphase# \fi ;}@] -% E & \Longleftrightarrow \frac{(x+4)}3 + \frac{5x+3}5 = 7 +% \emph{tikz-code = {\draw[rounded corners, +% every node/.style = {circle, +% draw, +% auto = false, +% inner sep = 1pt, +% fill = gray!50, +% font = \tiny }] +% let \p1 = (~#1), +% \p2 = (~#2) +% in \ifdim \x1 > \x2 +% (\p1) -- node {~#3} (\x1,\y2) -- (\p2) +% \else +% (\p1) -- (\x2,\y1) -- node {~#3} (\p2) +% \fi ;}}] +% E & \Longleftrightarrow \frac{(x+4)}{3} + \frac{5x+3}{5} = 7 % \Arrow{$\times 15$}\\ % & \Longleftrightarrow 5(x+4) + 3(5x+3) = 105 \\ % & \Longleftrightarrow 5x+20 + 15x+9 = 105 \\ @@ -2588,7 +2692,7 @@ version 2005/12/01 or later. % \Arrow{$\div 20$}\\ % & \Longleftrightarrow x = \frac{38}{10} % \end{WithArrows} -% \end{Verbatim} +% \end{Code} % % % \[\begin{WithArrows}[ll,interline=5mm,xoffset=5mm, @@ -2606,7 +2710,7 @@ version 2005/12/01 or later. % \else % (\p1) -- (\x2,\y1) -- node {#3} (\p2) % \fi ;}] -% E & \Longleftrightarrow \frac{(x+4)}3 + \frac{5x+3}5 = 7 +% E & \Longleftrightarrow \frac{(x+4)}{3} + \frac{5x+3}{5} = 7 % \Arrow{$\times 15$}\\ % & \Longleftrightarrow 5(x+4) + 3(5x+3) = 105 \\ % & \Longleftrightarrow 5x+20 + 15x+9 = 105 \\ @@ -2641,15 +2745,15 @@ version 2005/12/01 or later. % % % \bigskip -% \begin{Verbatim} -% $\begin{WithArrows}[~emphase#code-after = \NumberedLoop@] +% \begin{Code} +% $\begin{WithArrows}[\emph{code-after = \NumberedLoop}] % a.\;& f \text{ est continuous on } E \\ % b.\;& f \text{ est continuous in } 0 \\ % c.\;& f \text{ is bounded on the unit sphere} \\ % d.\;& \exists K > 0\quad \forall x \in E\quad \|f(x)\| \le K \|x\| \\ % e.\;& f \text{ is lipschitzian} % \end{WithArrows}$ -% \end{Verbatim} +% \end{Code} % % \bigskip % \begin{scope} @@ -2675,9 +2779,9 @@ version 2005/12/01 or later. % example, numbers in round brackets, the best way is to change the value of % |tikz-code|: % -% \begin{Verbatim} -% tikz-code = {\draw (~#1) to node {\footnotesize (~#3)} (~#2) ;} -% \end{Verbatim} +% \begin{Code} +% tikz-code = {\draw (#1) to node {\footnotesize (#3)} (#2) ;} +% \end{Code} % % \WithArrowsOptions{tikz-code = {\draw (#1) to node {\footnotesize (#3)} (#2) ;}} % @@ -2749,6 +2853,17 @@ version 2005/12/01 or later. %</plain-TeX> % \end{macrocode} % +% +% \begin{macrocode} +%<*LaTeX> +\ProvideDocumentCommand{\IfPackageLoadedT}{mm} + {\IfPackageLoadedTF{#1}{#2}{}} +\ProvideDocumentCommand{\IfPackageLoadedF}{mm} + {\IfPackageLoadedTF{#1}{}{#2}} +%</LaTeX> +% \end{macrocode} +% +% % \bigskip % \subsection{The packages footnote and footnotehyper} % @@ -2791,7 +2906,7 @@ version 2005/12/01 or later. \cs_new_protected:Npn \@@_warning:n { \msg_warning:nn { witharrows } } \cs_new_protected:Npn \@@_fatal:n { \msg_fatal:nn { witharrows } } \cs_new_protected:Npn \@@_error:nn { \msg_error:nnn { witharrows } } -\cs_generate_variant:Nn \@@_error:nn { n x } +\cs_generate_variant:Nn \@@_error:nn { n e } % \end{macrocode} % % \bigskip @@ -2808,11 +2923,16 @@ version 2005/12/01 or later. % \begin{macrocode} \bool_set:Nn \c_@@_messages_for_Overleaf_bool { - \str_if_eq_p:Vn \c_sys_jobname_str { _region_ } % for Emacs - || \str_if_eq_p:Vn \c_sys_jobname_str { output } % for Overleaf + \str_if_eq_p:on \c_sys_jobname_str { _region_ } % for Emacs + || \str_if_eq_p:on \c_sys_jobname_str { output } % for Overleaf } % \end{macrocode} % +% \bigskip +% \begin{macrocode} +\bool_new:N \g_@@_beamer_bool +% \end{macrocode} +% % \medskip % We define a set of keys |WithArrows/package| for these options. % \begin{macrocode} @@ -2821,8 +2941,12 @@ version 2005/12/01 or later. { footnote .bool_set:N = \c_@@_footnote_bool , footnotehyper .bool_set:N = \c_@@_footnotehyper_bool , - unknown .code:n = - \@@_fatal:n { Option~unknown~for~package } + footnote .usage:n = load , + footnotehyper .usage:n = load , + beamer .bool_gset:N = \g_@@_beamer_bool , + beamer .default:n = true , + beamer .usage:n = load , + unknown .code:n = \@@_fatal:n { Option~unknown~for~package } } % \end{macrocode} % @@ -2841,6 +2965,11 @@ version 2005/12/01 or later. % \begin{macrocode} \ProcessKeysOptions { WithArrows / package } % \end{macrocode} +% +% \begin{macrocode} +\IfClassLoadedT { beamer } { \bool_gset_true:N \g_@@_beamer_bool } +\IfPackageLoadedT { beamerarticle } { \bool_gset_true:N \g_@@_beamer_bool } +% \end{macrocode} % % \medskip % \begin{macrocode} @@ -2985,7 +3114,10 @@ version 2005/12/01 or later. % % % \begin{macrocode} -\cs_generate_variant:Nn \seq_set_split:Nnn { N x x } +\cs_generate_variant:Nn \seq_set_split:Nnn { N e e } +\cs_generate_variant:Nn \keys_precompile:nnN { n n c } +\prg_generate_conditional_variant:Nnn \tl_if_novalue:n { o } { F } +\exp_args_generate:n { N N N n o } % \end{macrocode} % % @@ -3005,13 +3137,13 @@ version 2005/12/01 or later. % \end{macrocode} % % \bigskip -% The following command creates a sequence of strings (|str|) from a |clist|. +% The following command creates a sequence of strings (|str|) from a |clist|. % % \begin{macrocode} \cs_new_protected:Npn \@@_set_seq_of_str_from_clist:Nn #1 #2 { \seq_set_from_clist:Nn #1 { #2 } - \seq_set_map_x:NNn #1 #1 { \tl_to_str:n { ##1 } } + \seq_set_map_e:NNn #1 #1 { \tl_to_str:n { ##1 } } } % \end{macrocode} % @@ -3025,14 +3157,14 @@ version 2005/12/01 or later. % \begin{macrocode} \cs_new_protected:Npn \@@_save:N #1 { - \seq_set_split:Nxx \l_tmpa_seq + \seq_set_split:Nee \l_tmpa_seq { \char_generate:nn { `_ } { 12 } } { \cs_to_str:N #1 } \seq_pop_left:NN \l_tmpa_seq \l_tmpa_tl % \end{macrocode} % The string |\l_tmpa_str| will contains the \emph{type} of the variable. % \begin{macrocode} - \str_set:Nx \l_tmpa_str { \seq_item:Nn \l_tmpa_seq { -1 } } + \str_set:Ne \l_tmpa_str { \seq_item:Nn \l_tmpa_seq { -1 } } \use:c { \l_tmpa_str _if_exist:cF } { g _\seq_use:Nnnn \l_tmpa_seq _ _ _ } { @@ -3050,11 +3182,11 @@ version 2005/12/01 or later. % \begin{macrocode} \cs_new_protected:Npn \@@_restore:N #1 { - \seq_set_split:Nxx \l_tmpa_seq + \seq_set_split:Nee \l_tmpa_seq { \char_generate:nn { `_ } { 12 } } { \cs_to_str:N #1 } \seq_pop_left:NN \l_tmpa_seq \l_tmpa_tl - \str_set:Nx \l_tmpa_str { \seq_item:Nn \l_tmpa_seq { -1 } } + \str_set:Ne \l_tmpa_str { \seq_item:Nn \l_tmpa_seq { -1 } } \use:c { \l_tmpa_str _set_eq:Nc } #1 { g_\seq_use:Nnnn \l_tmpa_seq _ _ _ } } @@ -3251,7 +3383,7 @@ version 2005/12/01 or later. % \begin{tabular}{l} % \begin{tabular}{@{}l*8c@{}} % \toprule -% option & |lr| & |ll| & |rl| & |rr| & |v| & |i| & |groups| & |group| \\ +% option & |lr| & |ll| & |rl| & |rr| & |v| & |i| & |groups| & |group| \\ % \midrule % |\l_@@_pos_arrow_int| & $0$ & $1$ & $2$ & $3$ & $4$ & $5$ & $6$ & $7$ \\ % \bottomrule @@ -3320,7 +3452,7 @@ version 2005/12/01 or later. % \begin{macrocode} \cs_new_protected:Npn \@@_test_if_to_tag: { - \clist_if_in:NVT \l_@@_tags_clist \g_@@_line_int + \clist_if_in:NoT \l_@@_tags_clist \g_@@_line_int { \clist_set:Nn \l_@@_tags_clist { all } } } %</LaTeX> @@ -3344,7 +3476,7 @@ version 2005/12/01 or later. % be |Explanation|, this string will contain ``|\Arrow alias \Explanation|''. % \begin{macrocode} \str_new:N \l_@@_string_Arrow_for_msg_str -\str_set:Nx \l_@@_string_Arrow_for_msg_str { \token_to_str:N \Arrow } +\str_set:Ne \l_@@_string_Arrow_for_msg_str { \token_to_str:N \Arrow } % \end{macrocode} % % \bigskip @@ -3513,7 +3645,7 @@ version 2005/12/01 or later. more-columns .value_forbidden:n = true , command-name .code:n = \str_set:Nn \l_@@_command_name_str { #1 } - \str_set:Nx \l_@@_string_Arrow_for_msg_str + \str_set:Ne \l_@@_string_Arrow_for_msg_str { \c_backslash_str Arrow~alias~\c_backslash_str #1 } , command-name .value_required:n = true , tikz-code .tl_set:N = \l_@@_tikz_code_tl , @@ -3533,7 +3665,7 @@ version 2005/12/01 or later. \int_set:Nn \l_@@_pos_arrow_int 7 } { \@@_error:n { Incompatible~options } } , - group .value_forbidden:n = true , + group .value_forbidden:n = true , groups .code:n = \str_if_empty:NTF \l_@@_previous_key_str { @@ -3546,7 +3678,6 @@ version 2005/12/01 or later. { \@@_error:n { Incompatible~options } } , groups .value_forbidden:n = true , tikz .code:n = \tikzset { WithArrows / arrow / .append~style = { #1 } } , - tikz .initial:n = \c_empty_tl , tikz .value_required:n = true , rr .code:n = \@@_fix_pos_option:n 3 , rr .value_forbidden:n = true , @@ -3620,8 +3751,8 @@ version 2005/12/01 or later. \AtBeginDocument { \bool_set_false:N \l_tmpa_bool - \IfPackageLoadedTF { amsmath } { \bool_set_true:N \l_tmpa_bool } { } - \IfPackageLoadedTF { unicode-math } { \bool_set_true:N \l_tmpa_bool } { } + \IfPackageLoadedT { amsmath } { \bool_set_true:N \l_tmpa_bool } + \IfPackageLoadedT { unicode-math } { \bool_set_true:N \l_tmpa_bool } \bool_if:NT \l_tmpa_bool { \clist_put_right:Nn \c_@@_ext_delimiters_clist { \lvert, \lVert } } } @@ -3681,8 +3812,8 @@ version 2005/12/01 or later. wrap-lines .default:n = true , replace-left-brace-by .code:n = { - \tl_set:Nx \l_tmpa_tl { \tl_head:n { #1 } } - \clist_if_in:NVTF + \tl_set:Ne \l_tmpa_tl { \tl_head:n { #1 } } + \clist_if_in:NoTF \c_@@_ext_delimiters_clist \l_tmpa_tl { \tl_set:Nn \l_@@_replace_left_brace_by_tl { #1 } } @@ -3717,9 +3848,9 @@ version 2005/12/01 or later. % list of |str|. % \begin{macrocode} \str_set:Nn \l_tmpa_str { #1 } - \seq_if_in:NVTF \g_@@_names_seq \l_tmpa_str + \seq_if_in:NoTF \g_@@_names_seq \l_tmpa_str { \@@_error:n { Duplicate~name } } - { \seq_gput_left:NV \g_@@_names_seq \l_tmpa_str } + { \seq_gput_left:No \g_@@_names_seq \l_tmpa_str } \str_set_eq:NN \l_@@_name_str \l_tmpa_str , name .value_required:n = true , code-before .code:n = \tl_put_right:Nn \l_@@_code_before_tl { #1 } , @@ -3877,7 +4008,7 @@ version 2005/12/01 or later. % \begin{macrocode} \cs_new_protected:Npn \@@_set_independent: { - \str_if_eq:VnF \l_keys_value_tl { NoValue } + \str_if_eq:onF \l_keys_value_tl { NoValue } { \@@_error:n { Value~for~a~key } } \@@_set_independent_bis: } @@ -3911,7 +4042,7 @@ version 2005/12/01 or later. \keys_define:nn { WithArrows / Arrow / FirstPass } { jump .code:n = - \int_compare:nTF { #1 > 0 } + \int_compare:nNnTF { #1 } > \c_zero_int { \int_set:Nn \l_@@_jump_int { #1 } } { \@@_error:n { Negative~jump } } , jump .value_required:n = true, @@ -3962,7 +4093,7 @@ version 2005/12/01 or later. xoffset .code:n = , unknown .code:n = \@@_sort_seq:N \l_@@_options_Arrow_seq - \seq_if_in:NVTF \l_@@_options_WithArrows_seq \l_keys_key_str + \seq_if_in:NoTF \l_@@_options_WithArrows_seq \l_keys_key_str { \str_set:Nn \l_tmpa_str { ~However,~this~key~can~be~used~in~the~options~of~{WithArrows}. } @@ -4009,7 +4140,6 @@ version 2005/12/01 or later. tikz-code .tl_set:N = \l_@@_tikz_code_tl , tikz-code .initial:n = \draw~(#1)~to~node{#3}~(#2)~; , tikz .code:n = \tikzset { WithArrows / arrow / .append~style = { #1 } } , - tikz .initial:n = \c_empty_tl , rr .code:n = \@@_fix_pos_arrow:n 3 , ll .code:n = \@@_fix_pos_arrow:n 1 , rl .code:n = \@@_fix_pos_arrow:n 2 , @@ -4024,13 +4154,11 @@ version 2005/12/01 or later. % arrow. % \begin{macrocode} xoffset .code:n = - \bool_if:nTF + \bool_lazy_all:nTF { - \int_compare_p:nNn \g_@@_arrow_int > 1 - && - \int_compare_p:nNn \l_@@_pos_arrow_int > 5 - && - ! \str_if_eq_p:Vn \l_@@_status_arrow_str { independent } + { \int_compare_p:nNn \g_@@_arrow_int > 1 } + { \int_compare_p:nNn \l_@@_pos_arrow_int > 5 } + { ! \str_if_eq_p:on \l_@@_status_arrow_str { independent } } } { \@@_error:n { Option~xoffset~forbidden } } { \dim_set:Nn \l_@@_xoffset_dim { #1 } } , @@ -4070,16 +4198,29 @@ version 2005/12/01 or later. % at the beginning of an environment |{WithArrows}|, |\Arrow| is set to be % equivalent to |\@@_Arrow|. However, the user can change the name with the % option |command-name| and the user command for |\@@_Arrow| will be different. -% This mechanism can be useful when the user has already a command named -% |\Arrow| he still wants to use in the environments |{WithArrows}| or +% This mechanism can be useful when the user already has a command named +% |\Arrow| that he still wants to use in the environments |{WithArrows}| or % |{DispWithArrows}|. % % \medskip % \begin{macrocode} %<*LaTeX> \cs_new_protected:Npn \@@_Arrow - { \@@_collect_options:n { \@@_Arrow_i } } -\NewDocumentCommand \@@_Arrow_i { m m ! O { } } + { \@@_collect_options:n { \@@_Arrow_iii } } +\bool_if:NTF \g_@@_beamer_bool + { + \NewDocumentCommand \@@_Arrow_iii { m d < > m ! O { } } + { + \tl_if_novalue:nTF { #2 } + { \@@_Arrow_ii { #1 } { #3 } [ #4 ] } + { \only <#2> { \@@_Arrow_ii { #1 } { #3 } [ #4 ] } } + } + } + { + \NewDocumentCommand \@@_Arrow_iii { m m ! O { } } + { \@@_Arrow_ii { #1 } { #2 } [ #3 ] } + } +\NewDocumentCommand \@@_Arrow_ii { m m ! O { } } %</LaTeX> %<*plain-TeX> \cs_new_protected:Npn \@@_Arrow @@ -4146,7 +4287,7 @@ version 2005/12/01 or later. % \item The ``status'' of the arrow, with 4 possible values: empty, % |independent|, |new-group| or |over|. % \begin{macrocode} - \prop_put:NnV \l_tmpa_prop { status } \l_@@_status_arrow_str + \prop_put:Nno \l_tmpa_prop { status } \l_@@_status_arrow_str % \end{macrocode} % % \item The options of the arrow (it's a token list): @@ -4162,7 +4303,7 @@ version 2005/12/01 or later. % \item The number of the line where the command |\Arrow| is issued in the TeX % source (as of now, this is only useful for some error messages). % \begin{macrocode} - \prop_put:Nnx \l_tmpa_prop { input-line } \msg_line_number: + \prop_put:Nne \l_tmpa_prop { input-line } \msg_line_number: % \end{macrocode} % % \item The total width of the arrow (with the label)... but we don't know it @@ -4288,10 +4429,10 @@ version 2005/12/01 or later. % command |\omit| in a cell of the |\halign| (it should be forbidden). % For example, in the part of the preamble concerning the third column (if there % is a third column in the environment), we will have the following instructions : -% \begin{Verbatim} -% \int_gincr:N \g_~@~@_col_int -% \int_set:Nn \g_~@~@_static_col_int 3 -% \end{Verbatim} +% \begin{Code} +% \int_gincr:N \g_@@_col_int +% \int_set:Nn \g_@@_static_col_int 3 +% \end{Code} % The counter |\g_@@_col_int| is incremented dynamically and the second is % static. If the user has used a command |\omit|, the dynamic incrementation is % not done in the cell and, at the end of the row, the difference between the @@ -4314,7 +4455,7 @@ version 2005/12/01 or later. \seq_set_eq:NN \l_tmpa_seq \g_@@_position_in_the_tree_seq \seq_pop_right:NN \l_tmpa_seq \l_tmpa_tl \str_clear_new:N \l_@@_prefix_str - \str_set:Nx \l_@@_prefix_str { \seq_use:Nnnn \l_tmpa_seq - - - } + \str_set:Ne \l_@@_prefix_str { \seq_use:Nnnn \l_tmpa_seq - - - } % \end{macrocode} % % \bigskip @@ -4564,23 +4705,23 @@ version 2005/12/01 or later. % The command |\@@_set_qedhere:| will do a redefinition of |\qedhere| in each % cell of the last column. % \begin{macrocode} - \IfPackageLoadedTF { amsmath } { \@@_set_qedhere: } { } + \IfPackageLoadedT { amsmath } { \@@_set_qedhere: } } %</LaTeX> } - \str_if_eq:VnT \l_@@_type_col_str { c } \hfil - \str_if_eq:VnT \l_@@_type_col_str { C } \hfil - \str_if_eq:VnT \l_@@_type_col_str { r } \hfill - \str_if_eq:VnT \l_@@_type_col_str { R } \hfill + \str_if_eq:onT \l_@@_type_col_str { c } \hfil + \str_if_eq:onT \l_@@_type_col_str { C } \hfil + \str_if_eq:onT \l_@@_type_col_str { r } \hfill + \str_if_eq:onT \l_@@_type_col_str { R } \hfill \int_gincr:N \g_@@_col_int \int_gset:Nn \g_@@_static_col_int { \int_use:N \g_@@_col_int } \c_math_toggle_token - \str_if_eq:VnT \l_@@_type_col_str { C } { { } } - \str_if_eq:VnT \l_@@_type_col_str { L } { { } } + \str_if_eq:onT \l_@@_type_col_str { C } { { } } + \str_if_eq:onT \l_@@_type_col_str { L } { { } } \bool_if:NT \l_@@_displaystyle_bool \displaystyle ## - \str_if_eq:VnT \l_@@_type_col_str { C } { { } } - \str_if_eq:VnT \l_@@_type_col_str { R } { { } } + \str_if_eq:onT \l_@@_type_col_str { C } { { } } + \str_if_eq:onT \l_@@_type_col_str { R } { { } } \c_math_toggle_token \int_compare:nNnTF \g_@@_col_int = \l_@@_nb_cols_int \@@_construct_nodes: @@ -4590,10 +4731,10 @@ version 2005/12/01 or later. % because, in the last cell, a glue (=skip) is added between the nodes (in % |\@@_construct_nodes:|). % \begin{macrocode} - \str_if_eq:VnT \l_@@_type_col_str { l } \hfil - \str_if_eq:VnT \l_@@_type_col_str { L } \hfil - \str_if_eq:VnT \l_@@_type_col_str { c } \hfil - \str_if_eq:VnT \l_@@_type_col_str { C } \hfil + \str_if_eq:onT \l_@@_type_col_str { l } \hfil + \str_if_eq:onT \l_@@_type_col_str { L } \hfil + \str_if_eq:onT \l_@@_type_col_str { c } \hfil + \str_if_eq:onT \l_@@_type_col_str { C } \hfil \bool_if:NT \l_@@_in_DispWithArrows_bool { \tabskip = \c_zero_skip } & } @@ -4788,7 +4929,7 @@ version 2005/12/01 or later. \hbox_set_end: \@@_post_halign: % \end{macrocode} -% We want to add white space on the right side of the box in order to take into +% We want to add white space on the right side of the box in order to take into % account the arrows and their labels. % \begin{macrocode} \bool_if:NF \l_@@_right_overlap_bool @@ -4844,7 +4985,7 @@ version 2005/12/01 or later. % \bigskip % If there is really arrows in the environment, we draw the arrows. % \begin{macrocode} - \int_compare:nNnT \g_@@_arrow_int > 0 + \int_if_zero:nF \g_@@_arrow_int { % \end{macrocode} % If there is only one arrow, the options |group| and |groups| do not really @@ -4892,7 +5033,7 @@ version 2005/12/01 or later. % \begin{macrocode} \seq_gpop_right:NN \g_@@_position_in_the_tree_seq \l_tmpa_tl \seq_gpop_right:NN \g_@@_position_in_the_tree_seq \l_tmpa_tl - \seq_gput_right:Nx \g_@@_position_in_the_tree_seq + \seq_gput_right:Ne \g_@@_position_in_the_tree_seq { \int_eval:n { \l_tmpa_tl + 1 } } % \end{macrocode} % @@ -4959,7 +5100,7 @@ version 2005/12/01 or later. % % \bigskip % Now, we test if the next token is the token |\end|. Indeed, we want to test if -% the following tokens are |\end{WithArrows}| (or |\end{DispWithArrows}|, etc). +% the following tokens are |\end{WithArrows}| (or |\end{Code}|, etc). % In this case, we raise an error because the user must not put "\\" at the end % of its alignment. % \begin{macrocode} @@ -5024,7 +5165,7 @@ version 2005/12/01 or later. % line. We use a global variable because we will use it in the \emph{next} cell % (after the |&|). % \begin{macrocode} - \cs_gset:Npx \g_tmpa_tl + \cs_gset:Npe \g_tmpa_tl { \tl_if_empty:NTF \l_@@_tag_tl \theequation \l_@@_tag_tl } % \end{macrocode} % It's possible to put several labels for the same line (it's not possible in @@ -5040,25 +5181,24 @@ version 2005/12/01 or later. % % First an action which is in the definition of |\refstepcounter|. % \begin{macrocode} - \cs_set:Npx \@currentlabel { \p@equation \g_tmpa_tl } + \cs_set:Npe \@currentlabel { \p@equation \g_tmpa_tl } % \end{macrocode} % Then, an action done by \pkg{hyperref} in its redefinition of % |\refstepcounter|. % \begin{macrocode} - \IfPackageLoadedTF { hyperref } + \IfPackageLoadedT { hyperref } { % the following line is probably pointless (2022/05/16) % \str_set:Nn \This@name { equation } \hyper@refstepcounter { equation } } - { } % \end{macrocode} % Then, an action done by \pkg{cleveref} in its redefinition of % |\refstepcounter|. The package \pkg{cleveref} creates in the |aux| file a % command |\cref@currentlabel| similar to |\@currentlabel| but with more % informations. % \begin{macrocode} - \IfPackageLoadedTF { cleveref } + \IfPackageLoadedT { cleveref } { \cref@constructprefix { equation } \cref@result \protected@edef \cref@currentlabel @@ -5072,7 +5212,6 @@ version 2005/12/01 or later. \p@equation \g_tmpa_tl } } - { } % \end{macrocode} % Now, we can issue the command |\label| (some packages may have redefined % |\label|, for example \pkg{typedref}) for each item in the sequence of the @@ -5098,7 +5237,7 @@ version 2005/12/01 or later. \@@_restore:N \l_@@_tag_star_bool \@@_restore:N \l_@@_qedhere_bool \bool_if:NT \l_@@_qedhere_bool - { \hbox_overlap_left:n \@@_qedhere_i: } + { \hbox_overlap_left:n \@@_qedhere_i: } \cs_set_eq:NN \theequation \g_tmpa_tl \bool_if:NT \l_@@_tag_star_bool { \cs_set_eq:NN \tagform@ \prg_do_nothing: } @@ -5140,7 +5279,7 @@ version 2005/12/01 or later. %<*LaTeX> \@@_restore:N \l_@@_qedhere_bool \bool_if:NT \l_@@_qedhere_bool - { \hbox_overlap_left:n \@@_qedhere_i: } + { \hbox_overlap_left:n \@@_qedhere_i: } %</LaTeX> \pgfpicture \pgfrememberpicturepositiononpagetrue @@ -5179,7 +5318,7 @@ version 2005/12/01 or later. %<*LaTeX> \cs_new_protected:Npn \@@_analyze_end:Nn #1 #2 { - \str_if_eq:VnT \l_@@_type_env_str { #2 } + \str_if_eq:onT \l_@@_type_env_str { #2 } { \@@_error:n { newline~at~the~end~of~env } \group_begin: @@ -5212,8 +5351,8 @@ version 2005/12/01 or later. % % % \bigskip -% The boolean |\l_@@_in_label_or_minipage_bool| will be raised if we are just after a |\item| -% of a list of LaTeX or at the beginning of a |{minipage}|. +% The boolean |\l_@@_in_label_or_minipage_bool| will be raised if we are just +% after a |\item| of a list of LaTeX or at the beginning of a |{minipage}|. % \begin{macrocode} %<*LaTeX> \bool_new:N \l_@@_in_label_or_minipage_bool @@ -5254,7 +5393,7 @@ version 2005/12/01 or later. % |\item| of a LaTeX list and an environment |{DispWithArrows}| except with the % option |standard-behaviour-with-items| stored in the boolean % |\l_@@_sbwi_bool|. We have to know if we are just after an |\item| and this -% information will be stored in |\l_@@_in_label_or_minipage_bool|. We have to do +% information will be stored in |\l_@@_in_label_or_minipage_bool|. We have to do % this test quicky after the beginning of the environment (in particular, % because it must be done before the execution of the % |code-before|\footnote{The |code-before| is not meant to contains typesetting @@ -5280,7 +5419,7 @@ version 2005/12/01 or later. % environment). % \begin{macrocode} %<*LaTeX> - \IfPackageLoadedTF { mathtools } + \IfPackageLoadedT { mathtools } { \MH_if_boolean:nT { show_only_refs } { @@ -5293,24 +5432,23 @@ version 2005/12/01 or later. \MH_set_boolean_T:n { show_only_refs } } } - { } % \end{macrocode} % % An action done by \pkg{typedref} in its redefinition of |\refstepcounter|. The % command |\sr@name| is a prefix added to the name of the label by the % redefinition of |\label| done by \pkg{typedref}. % \begin{macrocode} - \IfPackageLoadedTF { typedref } + \IfPackageLoadedT { typedref } { \str_set:Nn \sr@name { equation } } - { } % \end{macrocode} % % The command |\intertext@| is a command of \pkg{amsmath} which loads the % definition of |\intertext|. % \begin{macrocode} - \IfPackageLoadedTF { amsmath } { \intertext@ } { } + \IfPackageLoadedT { amsmath } { \intertext@ } %</LaTeX> - \exp_args:No \tl_if_novalue:nF { #1 } { \tl_set:Nn \l_@@_left_brace_tl { #1 } } + \tl_if_novalue:oF { #1 } + { \cs_set_nopar:Npn \l_@@_left_brace_tl { #1 } } \@@_pre_halign:n { #2 } % \end{macrocode} % @@ -5331,7 +5469,8 @@ version 2005/12/01 or later. \hbox_set:Nn \l_tmpa_box { % \end{macrocode} -% Even if the default value of |\nulldelimiterspace| is 1.2~pt, we take it into account. +% Even if the default value of |\nulldelimiterspace| is 1.2~pt, we take it into +% account. % \begin{macrocode} \group_begin: \dim_zero:N \nulldelimiterspace @@ -5395,7 +5534,7 @@ version 2005/12/01 or later. %<*LaTeX> \bool_if:NTF \l_@@_in_label_or_minipage_bool { - \noindent % added in v. 2.6d + \noindent \c_math_toggle_token } { @@ -5419,8 +5558,8 @@ version 2005/12/01 or later. \dim_zero_new:N \l_@@_linewidth_dim %<*LaTeX> \bool_if:NTF \l_@@_in_label_or_minipage_bool - { \dim_set_eq:NN \l_@@_linewidth_dim \linewidth } - { \dim_set_eq:NN \l_@@_linewidth_dim \displaywidth } + { \dim_set_eq:NN \l_@@_linewidth_dim \linewidth } + { \dim_set_eq:NN \l_@@_linewidth_dim \displaywidth } %</LaTeX> %<*plain-TeX> \dim_set_eq:NN \l_@@_linewidth_dim \displaywidth @@ -5577,9 +5716,8 @@ version 2005/12/01 or later. % the environment). % \begin{macrocode} %<*LaTeX> - \IfPackageLoadedTF { mathtools } + \IfPackageLoadedT { mathtools } { \MH_if_boolean:nT { show_only_refs } \MT_showonlyrefs_true: } - { } \bool_if:NTF \l_@@_in_label_or_minipage_bool { \c_math_toggle_token @@ -5672,8 +5810,8 @@ version 2005/12/01 or later. % % \bigskip % The command |\@@_tag| will be linked to |\tag| in |{WithArrows}| and -% |{DispWithArrows}|. We do the definition with |\NewDocumentCommand| because this -% command has a starred version. +% |{DispWithArrows}|. We do the definition with |\NewDocumentCommand| because +% this command has a starred version. % \begin{macrocode} \NewDocumentCommand \@@_tag { s m } { @@ -5682,7 +5820,7 @@ version 2005/12/01 or later. \tl_if_empty:NF \l_@@_tag_tl { \@@_error:nn { Multiple~tags } { #2 } } \clist_set:Nn \l_@@_tags_clist { all } - \IfPackageLoadedTF { mathtools } + \IfPackageLoadedT { mathtools } { \MH_if_boolean:nT { show_only_refs } { @@ -5690,7 +5828,6 @@ version 2005/12/01 or later. { \clist_clear:N \l_@@_tags_clist } } } - { } \tl_set:Nn \l_@@_tag_tl { #2 } \bool_set:Nn \l_@@_tag_star_bool { #1 } % \end{macrocode} @@ -5702,8 +5839,7 @@ version 2005/12/01 or later. % \begin{macrocode} \bool_if:nT { #1 } { - \IfPackageLoadedTF { amsmath } - { } + \IfPackageLoadedF { amsmath } { \@@_error:n { tag*~without~amsmath } } } } @@ -5728,7 +5864,7 @@ version 2005/12/01 or later. { \@@_error:n { Multiple~labels } } } \seq_put_right:Nn \l_@@_labels_seq { #1 } - \IfPackageLoadedTF { mathtools } + \IfPackageLoadedT { mathtools } { \MH_if_boolean:nT { show_only_refs } { @@ -5737,14 +5873,12 @@ version 2005/12/01 or later. { \clist_clear:N \l_@@_tags_clist } } } - { } - \IfPackageLoadedTF { autonum } + \IfPackageLoadedT { autonum } { \cs_if_exist:cTF { autonum@#1Referenced } { \clist_set:Nn \l_@@_tags_clist { all } } { \clist_clear:N \l_@@_tags_clist } } - { } } } % \end{macrocode} @@ -5935,12 +6069,9 @@ version 2005/12/01 or later. % situation occurs when all the arrows of the potential group arrive after the % last line of the environment). % \begin{macrocode} - \bool_if:nT - { - ! \int_compare_p:nNn \l_@@_pos_arrow_int = 7 - && - \int_compare_p:nNn \l_@@_first_arrow_of_group_int > 0 - } + \bool_lazy_and:nnT + { ! \int_compare_p:nNn \l_@@_pos_arrow_int = 7 } + { \int_compare_p:nNn \l_@@_first_arrow_of_group_int > \c_zero_int } { \@@_draw_arrows:nn \l_@@_first_arrow_of_group_int \g_@@_arrow_int } } % \end{macrocode} @@ -5971,10 +6102,10 @@ version 2005/12/01 or later. } { \bool_not_p:n { \int_compare_p:nNn \l_@@_pos_arrow_int = 7 } } } - { \str_if_eq_p:Vn \l_@@_status_arrow_str { new-group } } + { \str_if_eq_p:on \l_@@_status_arrow_str { new-group } } } { - \int_compare:nNnF \l_@@_first_arrow_of_group_int = \c_zero_int + \int_if_zero:nF \l_@@_first_arrow_of_group_int { \@@_draw_arrows:nn \l_@@_first_arrow_of_group_int @@ -6027,14 +6158,13 @@ version 2005/12/01 or later. % If the arrow is independent, we don't take into account that arrow for the % detection of the end of the group. % \begin{macrocode} - \str_if_eq:VnF \l_@@_status_arrow_str { independent } + \str_if_eq:onF \l_@@_status_arrow_str { independent } { % \end{macrocode} % If the arrow is not independent, the arrow belongs to the current group and we % have to take it into account in some variables. % \begin{macrocode} - \int_compare:nT - { \l_@@_initial_int = \l_@@_first_line_of_group_int } + \int_compare:nNnT \l_@@_initial_int = \l_@@_first_line_of_group_int { \seq_put_left:NV \l_@@_first_arrows_seq \l_@@_arrow_int } \int_compare:nNnTF \l_@@_final_int > \l_@@_last_line_of_group_int { @@ -6057,7 +6187,7 @@ version 2005/12/01 or later. % 8), we don't initialize |\l_@@_x_dim| because we want to use the same value of % |\l_@@_x_dim| (computed during the first step) for all the groups. % \begin{macrocode} - \str_if_eq:VnF \l_@@_status_arrow_str { independent } + \str_if_eq:onF \l_@@_status_arrow_str { independent } { \int_compare:nNnF \l_@@_pos_arrow_int = 8 { \@@_update_x:nn \l_@@_initial_int \l_@@_final_int } @@ -6066,14 +6196,6 @@ version 2005/12/01 or later. % \end{macrocode} % % -% \bigskip -% The following code is necessary because we will have to expand an argument -% exactly 3 times. -% \begin{macrocode} -\cs_generate_variant:Nn \keys_set:nn { n o } -\cs_new_protected:Npn \@@_keys_set: - { \keys_set_known:no { WithArrows / Arrow / SecondPass } } -% \end{macrocode} % % \bigskip % The macro |\@@_draw_arrows:nn| draws all the arrows whose numbers are between @@ -6133,7 +6255,7 @@ version 2005/12/01 or later. % arrows will be drawn after all the other arrows). % \begin{macrocode} { - \str_if_eq:VnTF \l_@@_status_arrow_str { over } + \str_if_eq:onTF \l_@@_status_arrow_str { over } { \seq_put_right:NV \l_@@_o_arrows_seq \l_@@_arrow_int } \@@_draw_arrow: } @@ -6144,6 +6266,7 @@ version 2005/12/01 or later. } % \end{macrocode} % +% % \bigskip % The first |\group_begin:| is for the options of the arrows (but we remind that % the options |ll|, |rr|, |rl|, |lr|, |i| and |jump| have already been extracted @@ -6155,17 +6278,24 @@ version 2005/12/01 or later. % \end{macrocode} % % \bigskip -% We process the options of the current arrow. The second argument of -% |\keys_set:nn| must be expanded exactly three times. An x-expansion is not -% possible because there can be tokens like |\bfseries| in the option |font| of -% the option |tikz|. This expansion is a bit tricky. +% We process the options of the current arrow. % \begin{macrocode} \prop_get:cnN { g_@@_arrow _\l_@@_prefix_str _ \int_use:N \l_@@_arrow_int _ prop } - { options } \l_tmpa_tl + { options } + \l_tmpa_tl \str_clear_new:N \l_@@_previous_key_str - \exp_args:NNo \exp_args:No - \@@_keys_set: { \l_tmpa_tl , tikz = { xshift = \l_@@_xoffset_dim } } +% \end{macrocode} +% +% We will expand the second argument of |\keys_set_known:nn| exactly three +% times. Maybe that an e-expansion would be possible but, in the past, there +% were problems with fragile commands such as |\bfseries| in the option +% |font| of the option |tikz| (it seems that this no longer the case). +% \begin{macrocode} + \exp_args:NNNno \exp_args:NNno \exp_args:Nno + \keys_set_known:nn + { WithArrows / Arrow / SecondPass } + { \l_tmpa_tl , tikz = { xshift = \l_@@_xoffset_dim } } % \end{macrocode} % % We create two booleans to indicate the position of the initial node and final @@ -6219,9 +6349,9 @@ version 2005/12/01 or later. % the point will perhaps have another % $x$-value --- but always the same $y$-value). Idem for |\l_@@_final_tl|. % \begin{macrocode} - \tl_set:Nx \l_@@_initial_tl + \tl_set:Ne \l_@@_initial_tl { \int_use:N \l_@@_initial_int - \bool_if:NTF \l_@@_initial_r_bool rl } - \tl_set:Nx \l_@@_final_tl + \tl_set:Ne \l_@@_final_tl { \int_use:N \l_@@_final_int - \bool_if:NTF \l_@@_final_r_bool rl } % \end{macrocode} % @@ -6244,11 +6374,11 @@ version 2005/12/01 or later. % done in the following |{tikzpicture}| because of the command |\seq_if_in:NnTF| % which is \emph{not} expandable. % \begin{macrocode} - \seq_if_in:NxTF \l_@@_first_arrows_seq + \seq_if_in:NeTF \l_@@_first_arrows_seq { \int_use:N \l_@@_arrow_int } { \bool_set_true:N \l_tmpa_bool } { \bool_set_false:N \l_tmpa_bool } - \seq_if_in:NxTF \l_@@_last_arrows_seq + \seq_if_in:NeTF \l_@@_last_arrows_seq { \int_use:N \l_@@_arrow_int } { \bool_set_true:N \l_tmpb_bool } { \bool_set_false:N \l_tmpb_bool } @@ -6293,7 +6423,7 @@ version 2005/12/01 or later. } { \int_compare_p:nNn { \l_@@_final_int - \l_@@_initial_int } = 1 } { - \tl_gset:Nx \g_tmpa_tl + \tl_gset:Ne \g_tmpa_tl { \int_compare:nNnTF \l_@@_pos_arrow_int < 5 { \dim_use:N \g_@@_x_initial_dim } @@ -6304,7 +6434,7 @@ version 2005/12/01 or later. + 0.5 \l_@@_max_length_of_arrow_dim } } - \tl_gset:Nx \g_tmpb_tl + \tl_gset:Ne \g_tmpb_tl { \int_compare:nNnTF \l_@@_pos_arrow_int < 5 { \dim_use:N \g_@@_x_final_dim } @@ -6317,7 +6447,7 @@ version 2005/12/01 or later. } } { - \tl_gset:Nx \g_tmpa_tl + \tl_gset:Ne \g_tmpa_tl { \int_compare:nNnTF \l_@@_pos_arrow_int < 5 { \dim_use:N \g_@@_x_initial_dim } @@ -6326,7 +6456,7 @@ version 2005/12/01 or later. { \dim_eval:n { \g_@@_y_initial_dim + \l_@@_start_adjust_dim } } { \dim_use:N \g_@@_y_initial_dim } } - \tl_gset:Nx \g_tmpb_tl + \tl_gset:Ne \g_tmpb_tl { \int_compare:nNnTF \l_@@_pos_arrow_int < 5 { \dim_use:N \g_@@_x_final_dim } @@ -6392,12 +6522,13 @@ version 2005/12/01 or later. % The function |@@_tmpa:nnn| will draw the arrow. It's merely an environment % |{tikzpicture}|. However, the Tikz instruction in this environment must be % inserted from |\l_@@_tikz_code_tl| with the markers |#1|, |#2| and |#3|. -% That's why we create a function |\@@_def_function_tmpa:n| which will create -% the function |\@@_tmpa:nnn|. +% That's why we create a function |\@@_def_function_arrow:n| which will create +% the function |\@@_arrow:nnn|. % \begin{macrocode} -\cs_new_protected:Npn \@@_def_function_tmpa:n #1 +\cs_generate_variant:Nn \@@_def_function_arrow:n { o } +\cs_new_protected:Npn \@@_def_function_arrow:n #1 { - \cs_set:Npn \@@_tmpa:nnn ##1 ##2 ##3 + \cs_set:Npn \@@_arrow:nnn ##1 ##2 ##3 { %<*LaTeX> \begin{tikzpicture} @@ -6417,10 +6548,16 @@ version 2005/12/01 or later. { \dim_zero:N \l_tmpa_dim } { \dim_set:Nn \l_tmpa_dim { \pgf@picmaxx - \pgf@picminx } } \dim_add:Nn \l_tmpa_dim \l_@@_xoffset_dim - \prop_gput:cnV - { g_@@_arrow _ \l_@@_prefix_str _ \int_use:N \l_@@_arrow_int _ prop } - { width } - \l_tmpa_dim +% \end{macrocode} +% |\l_@@_arrow_int = 0| probably means that we have an arrow in the |code-after|. +% \begin{macrocode} + \int_compare:nNnT \l_@@_arrow_int > 0 % added 2024/10/01 + { + \prop_gput:cnV + { g_@@_arrow _ \l_@@_prefix_str _ \int_use:N \l_@@_arrow_int _ prop } + { width } + \l_tmpa_dim + } % \end{macrocode} % Now, the actualization of |\g_@@_overlap_x_dim|. % \begin{macrocode} @@ -6450,8 +6587,9 @@ version 2005/12/01 or later. % % \medskip % When we draw the arrow (with |\@@_draw_arrow:nnn|), we first create the -% function |\@@_tmpa:nnn| and, then, we use the function |\@@_tmpa:nnn| : +% function |\@@_arrow:nnn| and, then, we use the function |\@@_arrow:nnn| : % \begin{macrocode} +\cs_generate_variant:Nn \@@_draw_arrow:nnn { n n o } \cs_new_protected:Npn \@@_draw_arrow:nnn #1 #2 #3 { % \end{macrocode} @@ -6467,10 +6605,9 @@ version 2005/12/01 or later. % \medskip % Now, the main lines of this function |\@@_draw_arrow:nnn|. % \begin{macrocode} - \exp_args:NV \@@_def_function_tmpa:n \l_@@_tikz_code_tl - \@@_tmpa:nnn { #1 } { #2 } { #3 } + \@@_def_function_arrow:o \l_@@_tikz_code_tl + \@@_arrow:nnn { #1 } { #2 } { #3 } } -\cs_generate_variant:Nn \@@_draw_arrow:nnn { n n o } % \end{macrocode} % % \bigskip @@ -6479,7 +6616,7 @@ version 2005/12/01 or later. % \begin{macrocode} \tl_const:Nn \c_@@_tikz_code_wrap_lines_tl { - \pgfset { inner~sep = 0pt} + \pgfset { inner~sep = 0pt } % \end{macrocode} % First, we draw the arrow without the label. % \begin{macrocode} @@ -6494,7 +6631,7 @@ version 2005/12/01 or later. % Here is the use of |\g_@@_right_x_dim| which has been computed previously with % the |v|-nodes. % \begin{macrocode} - \dim_set:Nn \l_tmpa_dim { \g_@@_right_x_dim - \pgf@x - 0.3333 ex } + \dim_set:Nn \l_tmpa_dim { \g_@@_right_x_dim - \pgf@x - 0.33333 em } % \end{macrocode} % We retrieve in |\g_tmpa_tl| the current value of the Tikz parameter % ``|text width|''.\footnote{In fact, it's not the current value of @@ -6502,7 +6639,7 @@ version 2005/12/01 or later. % provided by \pkg{witharrows}. These options are given to Tikz in a % ``|every path|''. That's why we have to retrieve it in a path.} % \begin{macrocode} - \path \pgfextra { \tl_gset:Nx \g_tmpa_tl \tikz@text@width } ; + \path \pgfextra { \tl_gset:Ne \g_tmpa_tl \tikz@text@width } ; % \end{macrocode} % Maybe the current value of the parameter ``|text width|'' is shorter than % |\l_tmpa_dim|. In this case, we must use ``|text width|'' (we update @@ -6523,7 +6660,7 @@ version 2005/12/01 or later. %<*LaTeX> node [ anchor = west ] { - \skip_horizontal:n { 0.3333 ex } + \skip_horizontal:n { 0.33333 em } \begin { minipage } { \l_tmpa_dim } \tikz@text@action \pgfkeysgetvalue { / tikz / node~halign~header } \l_tmpa_tl @@ -6543,7 +6680,7 @@ version 2005/12/01 or later. %</LaTeX> %<*plain-TeX> node [ anchor = west , text~width = \dim_use:N \l_tmpa_dim ] - { #3 } ; + { \skip_horizontal:n { 0.33333 em } #3 } ; %</plain-TeX> } } @@ -6600,7 +6737,7 @@ version 2005/12/01 or later. % % % The second point ensures the expected output in situations such as in the -% following example : +% following example: % % \bigskip % \begin{BVerbatim}[boxwidth=6cm,baseline=c] @@ -6704,17 +6841,17 @@ version 2005/12/01 or later. \prop_get:cnN { g_@@_arrow _ \l_@@_prefix_str _ ####1 _ prop } { status } \l_@@_status_arrow_str - \bool_if:nT + \bool_lazy_any:nF { - ! \int_compare_p:n { ##1 = ####1 } - && \int_compare_p:n { \l_@@_initial_int <= \l_tmpa_tl } - && \int_compare_p:n { \l_tmpb_tl <= \l_@@_final_int } + { \int_compare_p:n { ##1 = ####1 } } + { \int_compare_p:nNn \l_@@_initial_int > \l_tmpa_tl } + { \int_compare_p:nNn \l_tmpb_tl > \l_@@_final_int } % \end{macrocode} % We don't take into account the independent arrows because we have only % computed the \emph{width} of the arrows and that's why our arrow of type~|o| % will be positionned only relatively to the current group. % \begin{macrocode} - && ! \str_if_eq_p:Vn \l_@@_status_arrow_str { independent } + { \str_if_eq_p:on \l_@@_status_arrow_str { independent } } } { % \end{macrocode} @@ -6782,22 +6919,22 @@ version 2005/12/01 or later. { tikz .code:n = \tikzset { WithArrows / arrow / .append~style = { #1 } } , - tikz .value_required:n = true , - rr .value_forbidden:n = true , - rr .code:n = \@@_fix_pos_option:n 0 , - ll .value_forbidden:n = true, - ll .code:n = \@@_fix_pos_option:n 1 , - rl .value_forbidden:n = true , - rl .code:n = \@@_fix_pos_option:n 2 , - lr .value_forbidden:n = true , - lr .code:n = \@@_fix_pos_option:n 3 , - v .value_forbidden:n = true , - v .code:n = \@@_fix_pos_option:n 4 , + tikz .value_required:n = true , + rr .value_forbidden:n = true , + rr .code:n = \@@_fix_pos_option:n 0 , + ll .value_forbidden:n = true, + ll .code:n = \@@_fix_pos_option:n 1 , + rl .value_forbidden:n = true , + rl .code:n = \@@_fix_pos_option:n 2 , + lr .value_forbidden:n = true , + lr .code:n = \@@_fix_pos_option:n 3 , + v .value_forbidden:n = true , + v .code:n = \@@_fix_pos_option:n 4 , tikz-code .tl_set:N = \l_@@_tikz_code_tl , tikz-code .value_required:n = true , - xoffset .dim_set:N = \l_@@_xoffset_dim , - xoffset .value_required:n = true , - unknown .code:n = + xoffset .dim_set:N = \l_@@_xoffset_dim , + xoffset .value_required:n = true , + unknown .code:n = \@@_sort_seq:N \l_@@_options_Arrow_code_after_seq \@@_error:n { Unknown~option~Arrow~in~code-after } } @@ -6833,7 +6970,7 @@ version 2005/12/01 or later. \cs_new_protected:Npn \@@_Arrow_code_after_ii [ #1 ] #2 #3 #4 [ #5 ] %</plain-TeX> { - \int_set:Nn \l_@@_pos_arrow_int 1 + \int_set_eq:NN \l_@@_pos_arrow_int \c_one_int \str_clear_new:N \l_@@_previous_key_str \group_begin: \keys_set:nn { WithArrows / Arrow / code-after } @@ -6861,10 +6998,10 @@ version 2005/12/01 or later. % \begin{macrocode} { \cs_if_free:cTF { pgf@sh@ns@wa - \l_@@_prefix_str - #2 - l } - { \@@_error:nx { Wrong~line~in~Arrow } { #2 } } + { \@@_error:ne { Wrong~line~in~Arrow } { #2 } } { \cs_if_free:cTF { pgf@sh@ns@wa - \l_@@_prefix_str - #3 - l } - { \@@_error:nx { Wrong~line~in~Arrow } { #3 } } + { \@@_error:ne { Wrong~line~in~Arrow } { #3 } } { \int_compare:nNnTF \l_@@_pos_arrow_int = 4 { @@ -6878,9 +7015,9 @@ version 2005/12/01 or later. { north } \dim_set:Nn \l_tmpa_dim { \dim_max:nn \l_tmpa_dim \pgf@x } - \tl_gset:Nx \g_tmpa_tl + \tl_gset:Ne \g_tmpa_tl { \dim_use:N \l_tmpa_dim , \dim_use:N \l_tmpb_dim } - \tl_gset:Nx \g_tmpb_tl + \tl_gset:Ne \g_tmpb_tl { \dim_use:N \l_tmpa_dim , \dim_use:N \pgf@y } \endpgfpicture } @@ -6893,7 +7030,7 @@ version 2005/12/01 or later. #2 - \bool_if:NTF \l_@@_initial_r_bool r l } { south } - \tl_gset:Nx \g_tmpa_tl + \tl_gset:Ne \g_tmpa_tl { \dim_use:N \pgf@x , \dim_use:N \pgf@y } \pgfpointanchor { @@ -6901,7 +7038,7 @@ version 2005/12/01 or later. #3 - \bool_if:NTF \l_@@_final_r_bool r l } { north } - \tl_gset:Nx \g_tmpb_tl + \tl_gset:Ne \g_tmpb_tl { \dim_use:N \pgf@x , \dim_use:N \pgf@y } \endpgfpicture } @@ -6928,12 +7065,12 @@ version 2005/12/01 or later. % First, we test with a regular expression whether the format of the list of % lines is correct. % \begin{macrocode} - \exp_args:Nnx + \exp_args:Nne \regex_match:nnTF { \A \d+ (\,\d+)* ( \, \.\.\. (\,\d+)+ )* \Z } { #1 } { \@@_MultiArrow_i:nn { #1 } { #2 } } - { \@@_error:nx { Invalid~specification~for~MultiArrow } { #1 } } + { \@@_error:ne { Invalid~specification~for~MultiArrow } { #1 } } } % \end{macrocode} % @@ -6949,8 +7086,8 @@ version 2005/12/01 or later. \foreach \x in { #1 } { \cs_if_free:cTF { pgf@sh@ns@wa - \l_@@_prefix_str - \x - l } - { \@@_error:nx { Wrong~line~specification~in~MultiArrow } \x } - { \clist_gput_right:Nx \g_tmpa_clist \x } + { \@@_error:ne { Wrong~line~specification~in~MultiArrow } \x } + { \clist_gput_right:Ne \g_tmpa_clist \x } } % \end{macrocode} % We sort the list |\g_tmpa_clist| because we want to extract the minimum and @@ -6961,7 +7098,7 @@ version 2005/12/01 or later. { \clist_sort:Nn \g_tmpa_clist { - \int_compare:nTF { ##1 > ##2 } + \int_compare:nNnTF { ##1 } > { ##2 } \sort_return_swapped: \sort_return_same: } @@ -6985,7 +7122,7 @@ version 2005/12/01 or later. % the last teeth of the rak can't be drawn the same way as the others (think, % for example, to the case of the option ``|rounded corners|'' is used). % \begin{macrocode} - \exp_args:NV \@@_MultiArrow_i:n \g_tmpa_clist + \exp_args:No \@@_MultiArrow_i:n \g_tmpa_clist % \end{macrocode} % % Now, we draw the rest of the structure. @@ -7007,7 +7144,7 @@ version 2005/12/01 or later. -- ([xshift = \l_@@_xoffset_dim]\l_tmpb_tl-r.south) ; \pgfpointanchor { wa - \l_@@_prefix_str - @@_label } { west } \dim_set:Nn \l_tmpa_dim { 20 cm } - \path \pgfextra { \tl_gset:Nx \g_tmpa_tl \tikz@text@width } ; + \path \pgfextra { \tl_gset:Ne \g_tmpa_tl \tikz@text@width } ; \tl_if_empty:NF \g_tmpa_tl { \dim_set:Nn \l_tmpa_dim \g_tmpa_tl } \bool_lazy_and:nnT \l_@@_wrap_lines_bool \l_@@_in_DispWithArrows_bool { @@ -7517,8 +7654,8 @@ version 2005/12/01 or later. Normally,~we~can't~use~the~command~\token_to_str:N\label\ twice~in~a~line~of~the~environment~\{\l_@@_type_env_str\}. \\ However,~you~can~go~on.~ - \IfPackageLoadedTF { showlabels } - { However,~only~the~last~label~will~be~shown~by~showlabels.~ } { } + \IfPackageLoadedT { showlabels } + { However,~only~the~last~label~will~be~shown~by~showlabels.~ } If~you~don't~want~to~see~this~message~again,~you~can~use~the~option~ 'allow-multiple-labels'~at~the~global~or~environment~level. } @@ -7622,32 +7759,18 @@ version 2005/12/01 or later. \keyval_parse:NNn \@@_valid_key:n \@@_valid_key:nn { #2 } \seq_if_empty:NTF \l_tmpa_seq { - \seq_put_right:Nx \l_@@_options_WithArrows_seq + \seq_put_right:Ne \l_@@_options_WithArrows_seq { \tl_to_str:n { #1 } } - \seq_put_right:Nx \l_@@_options_DispWithArrows_seq + \seq_put_right:Ne \l_@@_options_DispWithArrows_seq { \tl_to_str:n { #1 } } - \seq_put_right:Nx \l_@@_options_WithArrowsOptions_seq + \seq_put_right:Ne \l_@@_options_WithArrowsOptions_seq { \tl_to_str:N { #1 } } -% \end{macrocode} -% When we will consider that |\keys_precompile:nnN| (introduced in LaTeX on -% 2022-03-09) is widely available, we will delete that test and keep only the -% first version. -% \begin{macrocode} - \cs_if_exist:NTF \keys_precompile:nnN - { - \keys_precompile:nnN - { WithArrows / WithArrowsOptions } - { #2 } - \l_tmpa_tl - \@@_key_define:nV { #1 } \l_tmpa_tl - } - { - \keys_define:nn { WithArrows / Global } - { - #1 .code:n = - { \keys_set:nn { WithArrows / WithArrowsOptions } { #2 } } - } - } + \keys_precompile:nnc + { WithArrows / WithArrowsOptions } + { #2 } + { @@ _ style _ #1 _ tl } + \keys_define:nn { WithArrows / Global } + { #1 .code:n = \use:c { @@ _ style _ #1 _ tl } } } { \@@_error:nn { Impossible~style } { #1 } } } @@ -7678,15 +7801,9 @@ version 2005/12/01 or later. % \end{macrocode} % % \begin{macrocode} -\cs_new_protected:Npn \@@_key_define:nn #1 #2 - { \keys_define:nn { WithArrows / Global } { #1 .code:n = #2 } } -\cs_generate_variant:Nn \@@_key_define:nn { n V } -% \end{macrocode} -% -% \begin{macrocode} \@@_msg_new:nn { Key~already~defined } { - Key~already~define.\\ + Key~already~defined.\\ The~key~'#1'~is~already~defined. \\ If~you~go~on,~your~instruction~\token_to_str:N\WithArrowsNewStyle\ will~be~ignored. @@ -7766,7 +7883,7 @@ version 2005/12/01 or later. { \dim_set:Nn \l_tmpa_dim { \x2 - \x1 } \begin { varwidth } \l_tmpa_dim -% \end{macrocode}a +% \end{macrocode} % |\narrowragged| is a command of the package \pkg{varwidth}. % \begin{macrocode} \narrowragged @@ -7991,9 +8108,9 @@ version 2005/12/01 or later. \str_if_empty:NT \l_@@_previous_key_str { \str_set:Nn \l_@@_previous_key_str { up } - \cs_if_exist:cTF { tikz@library@calc@loaded } + \cs_if_exist:NTF \tikz@library@calc@loaded { - \keys_set:nV { WithArrows / up-and-down } \l_keys_value_tl + \keys_set:no { WithArrows / up-and-down } \l_keys_value_tl \int_set:Nn \l_@@_pos_arrow_int 1 % \end{macrocode} % We have to set |\l_@@_wrap_lines_bool| to |false| because, otherwise, if the @@ -8012,9 +8129,9 @@ version 2005/12/01 or later. \str_if_empty:NT \l_@@_previous_key_str { \str_set:Nn \l_@@_previous_key_str { down } - \cs_if_exist:cTF { tikz@library@calc@loaded } + \cs_if_exist:NTF \tikz@library@calc@loaded { - \keys_set:nV { WithArrows / up-and-down } \l_keys_value_tl + \keys_set:no { WithArrows / up-and-down } \l_keys_value_tl \int_set:Nn \l_@@_pos_arrow_int 1 \bool_set_false:N \l_@@_wrap_lines_bool \tl_set_eq:NN \l_@@_tikz_code_tl \c_@@_tikz_code_down_tl @@ -8052,6 +8169,9 @@ version 2005/12/01 or later. % % \section{History} % +% \subsection*{Changes between 2.8 and 2.9} +% +% Argument |<...>| for the command |\Arrow| in the class Beamer. % % \subsection*{Changes between 2.7 and 2.8} % diff --git a/macros/generic/witharrows/witharrows.ins b/macros/generic/witharrows/witharrows.ins index 5a65f4914c..6041cfd75b 100644 --- a/macros/generic/witharrows/witharrows.ins +++ b/macros/generic/witharrows/witharrows.ins @@ -1,5 +1,5 @@ %% -%% Copyright (C) 2017-2023 by F. Pantigny +%% Copyright (C) 2017-2024 by F. Pantigny %% %% %% This file may be distributed and/or modified under the @@ -17,7 +17,7 @@ \usedir{tex/latex/witharrows} \preamble -Copyright (C) 2017-2023 by F. Pantigny +Copyright (C) 2017-2024 by F. Pantigny This file may be distributed and/or modified under the conditions of the LaTeX Project Public License, either diff --git a/macros/generic/witharrows/witharrows.pdf b/macros/generic/witharrows/witharrows.pdf Binary files differindex 2b4b9dd2e8..1d4cb54b56 100644 --- a/macros/generic/witharrows/witharrows.pdf +++ b/macros/generic/witharrows/witharrows.pdf diff --git a/macros/generic/xcomment/Changes b/macros/generic/xcomment/Changes deleted file mode 100644 index f72bd7101c..0000000000 --- a/macros/generic/xcomment/Changes +++ /dev/null @@ -1,9 +0,0 @@ -xcomment.tex -------- -1.30 2010-05-14 - change license to lppl (hv) - - update documentation for LaTeX2e (hv) - - new LaTeX style file (hv) - - -xcomment.sty -------- -1.00 2010-05-14 - LaTeX wrapper file for xcomment.tex - diff --git a/macros/generic/xcomment/Makefile b/macros/generic/xcomment/Makefile deleted file mode 100644 index a18e9dabad..0000000000 --- a/macros/generic/xcomment/Makefile +++ /dev/null @@ -1,69 +0,0 @@ -# `Makefile' for `xcomment.pdf', hv, 2007/03/17 - -.SUFFIXES : .tex .ltx .dvi .ps .pdf .eps - -PACKAGE = xcomment - -MAIN = $(PACKAGE)-doc - -TDS = ~/PSTricks/PSTricks-TDS - -LATEX = latex - -ARCHNAME = $(MAIN)-$(shell date +%y%m%d) - -ARCHFILES = $(PACKAGE).sty $(PACKAGE).tex $(PACKAGE).pro $(MAIN).tex README Changes Makefile - -all : doc clean -doc: $(MAIN).pdf - -$(MAIN).pdf : $(MAIN).ps - GS_OPTIONS=-dAutoRotatePages=/None ps2pdf $< - -$(MAIN).ps : $(MAIN).dvi - dvips $< - -$(MAIN).dvi : $(MAIN).tex - $(LATEX) $< - $(LATEX) $< -# if ! test -f $(basename $<).glo ; then touch $(basename $<).glo; fi -# if ! test -f $(basename $<).idx ; then touch $(basename $<).idx; fi -# makeindex -t $(basename $<).ilg -s pst-doc.ist -o $(basename $<).ind $(basename $<).idx -# makeindex -s gglo.ist -t $(basename $<).glg -o $(basename $<).gls \ -# $(basename $<).glo -# bibtex $(basename $<) -# $(LATEX) $< -# $(LATEX) $< - -clean : - $(RM) $(addprefix $(MAIN), .log .aux .glg .glo .gls .ilg .idx .ind .tmp .toc .out .blg .bbl ) - $(RM) $(addprefix $(MAIN), .dvi .ps .xcp) - -veryclean : clean - $(RM) $(addprefix $(MAIN), .pdf .bbl .blg) - -arch : - zip $(ARCHNAME).zip $(ARCHFILES) - -tds: - cp -u Changes $(TDS)/doc/generic/$(PACKAGE)/ - cp -u README $(TDS)/doc/generic/$(PACKAGE)/ - cp -u $(MAIN).pdf $(TDS)/doc/generic/$(PACKAGE)/ -# - cp -u Changes $(TDS)/tex/latex/$(PACKAGE)/ - cp -u $(PACKAGE).sty $(TDS)/tex/latex/$(PACKAGE)/ -# - cp -u Changes $(TDS)/tex/generic/$(PACKAGE)/ - cp -u $(PACKAGE).tex $(TDS)/tex/generic/$(PACKAGE)/ -# - cp -u Changes $(TDS)/dvips/$(PACKAGE)/ - cp -u $(PACKAGE).pro $(TDS)/dvips/$(PACKAGE)/ - cp -u $(PACKAGE).pro ~/Links/dvips-local/ -# - cp -u Changes $(TDS)/source/$(PACKAGE)/ - cp -u $(MAIN).tex $(TDS)/source/$(PACKAGE)/ - cp -u $(MAIN).bib $(TDS)/source/$(PACKAGE)/ - cp -u Makefile $(TDS)/source/$(PACKAGE)/ - - -# EOF diff --git a/macros/generic/xcomment/README b/macros/generic/xcomment/README deleted file mode 100644 index 1fd053b81d..0000000000 --- a/macros/generic/xcomment/README +++ /dev/null @@ -1,9 +0,0 @@ -Save the files xcomment.sty|tex in a directory, which is part of your -local TeX tree. -Then do not forget to run texhash to update this tree. -For more information see the documentation of your LATEX distribution -on installing packages into your LATEX distribution or the -TeX Frequently Asked Questions: -(http://www.tex.ac.uk/cgi-bin/texfaq2html?label=instpackages). - - diff --git a/macros/generic/xcomment/xcomment-doc.pdf b/macros/generic/xcomment/xcomment-doc.pdf Binary files differdeleted file mode 100644 index 6c93123858..0000000000 --- a/macros/generic/xcomment/xcomment-doc.pdf +++ /dev/null diff --git a/macros/generic/xcomment/xcomment-doc.tex b/macros/generic/xcomment/xcomment-doc.tex deleted file mode 100644 index 28da642cab..0000000000 --- a/macros/generic/xcomment/xcomment-doc.tex +++ /dev/null @@ -1,554 +0,0 @@ -%% $Id: xcomment-doc.tex 316 2010-05-14 21:32:34Z herbert $ -\documentclass[12pt]{article} -\usepackage[T1]{fontenc} -\usepackage{mathpazo,url} -\usepackage{pstricks,xcomment,fancyvrb,shortvrb,dtklogos} -\MakeShortVerb{|} - -\let\XCfv\fileversion -\let\meta\texttt - -\title{Documentation for xcomment.sty% - \thanks{Documentation revised by Herbert Vo\ss. - This file borrows much from verbatim.sty, v.1.4c (90/10/18) - Copyright (C) 1989, 1990 by Rainer Sch\"opf.}} - -\author{Timothy Van Zandt \url{Timothy.VAN-ZANDT@insead.edu}} - -\date{\today} - -\begin{document} - -\maketitle -\clearpage -\tableofcontents - -\clearpage -\fvset{numbers=left,frame=single,fontsize=\small,fontfamily=tt} - -\begin{abstract} -The \LaTeX{} style option verbatim.sty, by Rainer Sch\"opf, allows one to -redefine an environment to be a comment, and thereby selectively omit -certain environments when typesetting a document. -Suppose instead that one wants to typeset only selected environments? For -example, one might want to print only a document's tables and figures, -without having to enclose all the text outside these environments within -comments. This style option allows such selection. -\end{abstract} - -\section{Usage notes} - -This style file defines a new environment, |xcomment|, which permits one to -typeset only selected environments, without having to enclose all the text -outside these environments within comments. The main interest in such a -feature is that it allows document styles to have great control over what -parts of a document are typeset, thus extending the modularity of \LaTeX. -For example, this option was originally written for use in a document style -for seminar notes and slides. The main text of the input file consists of -the notes for a seminar, and each slide goes in a |slide| environment. A -simple modification of the style options allows one to typeset only the -slides, only the notes, or both together, in a variety of styles. - - -The |xcomment| environment has as a single mandatory argument a list -(possibly empty) of environments, separated by commas and with no spaces. -Within the |xcomment| environment, only text within each of the specified -environments is typeset. -The |\xcomment| command can also be used directly, with the same argument, -and it would typically go in the preamble. Invoking the |\xcomment| command -is equivalent to putting |\begin{xcomment}| at the invocation of the command -or immediately after |\begin{document}|, whichever occurs later in the -document, and |\end{xcomment}| just before the end of the document. - -For example, if |\xcomment{table,figure}| is put in the preamble, only -tables and figures are typeset (but see |\nofloat| below). If the list of -environments is empty, as in |\begin{xcomment}{}|, the |xcomment| -environment is essentially like the |comment| environment in verbatim.sty. - -|xcomment| environments can be nested, but if the nested environments -have the same name, the inner environments must be inside text that is -typeset as specified by the |xcomment| environment the next level up. - -Here is an example of such nesting. Suppose we want to include only figures, -but we also want to be able to comment out some of the figures so that they -are not included. This is achieved in the following example: -\begin{Verbatim} -\newxcomment[]{mycomment} -\begin{xcomment}{figure,mycomment} - This is stuff that is not included. - \begin{figure} - This figure is included. - \end{figure} - More stuff that is not included. - \begin{mycomment} Out and back into comment mode - \begin{figure} Ignored by mycomment envir. - This figure is NOT included. - \end{figure} Also ignored by mycomment envir. - \end{mycomment} In and back out of comment mode. - More stuff that is not included. -\end{xcomment} -\end{Verbatim} - -|xcomment| will follow |\input| and |\include| commands. You must use the -\LaTeX{} syntax |\input{file}| (as opposed to \verb*+\input file +), and the -inputted file must end with |\endinput|. -You should be in |xcomment| mode when the |\endinput| command occurs -if and only if you were in |\xcomment| mode when the |\input| or |\include| -command was found. - - |xcomment| is searching literally for |\begin{foo}| and |\end{foo}| when -determining whether to switch in or out of comment mode. It will not find, -e.g., |!begin[foo]|, even if |!|, |[| or |]| have category codes 0, 1 and 2, -respectively. (If you don't understand this, you can safely ignore it.) - -The comment character, |%|, is still a comment character in |xcomment| -environments (even if used with |\%|). You can change the command character by -redefining |\xcommentchar|. For example, if I want to use |"| as a comment -character: -\begin{Verbatim} - \renewcommand{\xcommentchar}{\"} -\end{Verbatim} -If you define |\xcommentchar| to be empty, then no comment character is used. - -In the |xcomment| environment, text is processed a line at a time and -discarded until |\end{xcomment}| or |\begin{|\meta{environment}|}| is -encountered, where {\em environment} is to be included. The remaining text -on the line is not thrown away, as it is in verbatim.sty. Instead, it is -rescanned, and the only restrictions are that it have balanced braces and -that it not contain commands that again shift into {\em and} out of -``comment'' mode. - -This is an important feature, because the included environments may have -arguments that are best placed on the same line as the -|\begin{|\meta{environment}|}| command. However, the rescanning creates a -temporary file. By default, the file is |\jobname.tmp|. The command -|\rescanfile{|\meta{file}|}| causes \meta{file} to be created instead. -|\rescanfile{}| suppresses the creation of a temporary file; the leftover -text is simply discarded. |\norescanfile| also suppresses the creation -of a temporary file, but in this case the text is simply inserted -without being rescanned (i.e., with category codes 0 (escape -|\|), 1 (begin group |{|), 2 (end group |}|) and 6 (parameter |#|) switched -to 12 (other). - -The command |\envirsep| is executed between the environments that are -typeset. Its default definition is |\par|. - -The command -\begin{Verbatim} - \newxcomment[|\meta{environment list}|]{|\meta{name}|} -\end{Verbatim} -defines |\name| and the |name| environment to work like |\xcomment| and the -|xcomment| environment. A list of environments to be included can be given -as an optional first argument to |\newxcomment|, in which case the new -command and environment do not take an argument. For example, if you put -|\newxcomment[]{mycomment}| in the preamble, the |mycomment| environment -works like the |comment| environment in verbatim.sty, except for the -rescanning. - -The command |\nofloat{|\meta{environment list}|}| is provided to disable the -floating of environments in the list (also separated by commas and without -spaces), since if there are only floats and no text, the floats will -accumulate to the end of the document and \TeX{} may run out of memory. - -\paragraph{Caveats:} -\begin{itemize} -\item If |\xcomment| is invoked in the preamble, |\document| should not be -subsequently redefined. -\item Be careful what argument you give to |\rescanfile|, since any existing -file with that name will be destroyed, and the extension |tex| is added if -no extension is given. -\end{itemize} - -\paragraph{Changes to v1.2:} -\begin{itemize} -\item |\include| now allowed. -\item Comment characters not obeyed, as determined by |\xcommentchar|. -\end{itemize} - -\paragraph{Changes to v1.1:} -\begin{itemize} -\item Fixed bug in |\@xcomment| that caused problems when invoking |\xcomment| -in the preamble. -\end{itemize} - -\paragraph{Changes to v1.0:} -\begin{itemize} -\item Main loop rewritten. -\item |\rescanfile{trash}| changed to |\rescanfile{}|. -\item |\rescanfile{bounce}| no longer supported. Use |\norescanfile|. -\item |\input| now allowed. -\end{itemize} - - - - -\section{The implementation} -The code is an adaption of code in verbatim.sty, and in fact the latter's -structure has been preserved when possible. On the one hand, the code is -simpler than in verbatim.sty because we throw away text from the input file -rather than typeset it verbatim. On the other hand, it is more involved -because we have to check for more possible endings to the |xcomment| than in -verbatim.sty and we have to preserve the input that follows the |\begin|ning -of an included environment on the same line. - -As in verbatim.sty and the |\comment\endcomment| commands in \AmSTeX, the -basic strategy is to change the category codes so that control sequences and -other troublesome special characters are neutralized, and then to scan for -the strings that mark the end of the comment. This would be a 3-liner in -|awk|, but this is \TeX, and the amount of code required to do the scanning -increases rapidly as we allow for a greater variety of ending strings. - -We begin by ensuring that file is not read in twice, and then we identify -the file on the VDU and the transcript file. - -\fvset{fontsize=\footnotesize} - -\begin{Verbatim} -\@ifundefined{xcomment@@@}{}{\endinput} -\typeout{Style-Option: `xcomment' v\fileversion \space <\filedate> (tvz) } -\end{Verbatim} - - -\subsection{User commands} - -The main toplevel macro is |\@xcomment|, which is defined in the next -section. It works like |\xcomment| as described above, except that it has as -a first argument an {\em environment} so that it stops when it encounters -|\end{|{\em environment}|}|. |\newxcomment| then has a simple definition, -and |\xcomment| is defined using the |\newxcomment| command. -\begin{Verbatim} -\def\newxcomment{\@ifnextchar [{\@newxcommentwitharg}% - {\@newxcomment}} -\def\@newxcomment#1{% - \expandafter\def\csname #1\endcsname##1{\@xcomment{#1}{##1}}}% -\def\@newxcommentwitharg[#1]#2{% - \expandafter\def\csname #2\endcsname{\@xcomment{#2}{#1}}} -\newxcomment{xcomment} -\end{Verbatim} -% -|\envirsep| is inserted between the environments that are typeset, and is -set to |\par| by default. |\rescanfile| is the name of the temporary file -used for rescanning, and is set to |\jobname.tmp| by default. -\begin{Verbatim} -\def\envirsep{\par} -\def\rescanfile#1{\def\@rescanfile{#1}} -\rescanfile{\jobname.tmp} -\def\norescanfile{\let\@rescanfile\relax} -\end{Verbatim} -% -|\nofloat| disables floating, and |\vfill| is inserted forcefully on each -side of each float. The macro is just a hack, and is mainly for printing -only floats. It may not work well even for that. |\envirsep| is still -inserted between floats, and if it is set to |\vspace{}|, the added space is -inserted only between floats on the same page, given the user some control -over spacing. -\begin{Verbatim} -\def\@nofloat#1{\hrule height\z@\nobreak\vfill\vbox\bgroup\def\@captype{#1}} -\def\end@nofloat{\egroup\nobreak\vfill\nobreak\hrule height\z@\medbreak} -\def\nofloat#1{\@for\@tempa:=#1\do{\@namedef{#1}{\@nofloat{#1}}% - \@namedef{end#1}{\end@nofloat}}} -\end{Verbatim} - - -\subsection{Preliminaries} -% -|\xc@makeother| takes as argument a character and changes -its category code to $12$ (other) if its category code is originally 0, 1, 2 -or 6. We do not have to change as many catcodes as in Verbatim.sty, because -the input is either thrown away or rescanned. The fewer codes we change the -better. -\begin{Verbatim} -\def\xc@makeother#1{% - \ifnum\the\catcode`#1=0\catcode`#112% - \else \ifnum\the\catcode`#1=1\catcode`#112% - \else \ifnum\the\catcode`#1=2\catcode`#112% - \else \ifnum\the\catcode`#1=6\catcode`#112% - \fi\fi\fi\fi\relax} - \end{Verbatim} - -This macro changes the category codes of a token list that is already in -\TeX's stomach. The code is a modification of a |\retokenize| macro by -Raymond Chen. -\begin{Verbatim} -\newwrite\tokout -\newread\tokin -\end{Verbatim} -The argument of |\rescan| is a token list register, say, |\mytoks|. -|\mytoks| presumably contains a string from the input file, sent to |\TeX|'s -stomach as a stream of tokens. |\rescan| gives |\mytoks| the token list that -would have arisen if |\TeX| had had the current catcodes in effect when it -read the input string, with the following exceptions: - -\begin{itemize} -\item The token list must have balanced braces under the new catcodes. -\item Parameter tokens in the original list are written twice, and so mess -things up. -\item Some characters with catcode 10 (space) under the old catcodes are -lost, and all that remain are treated as character 32 (\verb*+ +) under the -new catcodes, whatever this character's new catcode is. -\item Escape characters under the old catcodes are treated as escape -characters even if their catcodes have changed. (This can be fixed by -setting |\escapchar| during the write to the escape character under the old -catcodes, assuming there was only one and it is known) -\item Leading spaces under the new catcodes are not ignored, which is wrong -if and only if the string started at the beginning of a line and the space -characters were not spaces under the old catcodes. -\end{itemize} - -Only the balanced braces exception is a problem in this application, but the -other exceptions are pointed out since such a rescanning macro has other -applications. -\begin{Verbatim} -\def\rescan#1{% -\end{Verbatim} -First we check if |\rescanfile|, which contains the name of the temporary -file to be used, has a special meaning. If |\relax|, do nothing. If empty, -empty the token register. -\begin{Verbatim} - \ifx\@rescanfile\relax\else - \ifx\@rescanfile\@empty #1{}\else -\end{Verbatim} -Put the list of tokens in braces and write them to the temporary file.% -\begin{Verbatim} - \immediate\openout\tokout=\@rescanfile - \immediate\write\tokout{{\the#1}\relax}% - \immediate\closeout\tokout -\end{Verbatim} -Read the contents of the file |\@tempd|. -\begin{Verbatim} - \openin\tokin=\@rescanfile - \read\tokin to\@tempd - \closein\tokin -\end{Verbatim} -Suppose |#1| is |\mytok|, and \meta{token list} is the list of tokens with -the current catcodes. Then the next line expands to |\mytok{|\meta{token -list}|}\relax|. -\begin{Verbatim} - \expandafter#1\@tempd% - \fi\fi} -\end{Verbatim} -% -% -\subsection{Toplevel macros} -% -|\@xcomment| checks whether it was invoked before |\begin{document}| and -outside of an environment. If so, it modifies |\begin{document}| to invoke -|\@xcomment| with the same arguments. Otherwise, it processes its arguments -and goes into ``comment'' mode by invoking |\xc@begin|. - -\begin{Verbatim} -\def\@xcomment#1#2{% - \ifx\@preamblecmds\@notprerr - \def\xc@csname{#1}% - \edef\xc@envirlist{#2}% - \ifx\xc@envirlist\@empty \@bsphack \else - \begingroup -\end{Verbatim} -|\@envirsep| is what is actually placed before each environment. Initially, -it is empty because nothing should precede the first environment that is -typeset. -\begin{Verbatim} - \def\@envirsep{}% -\end{Verbatim} -|\do@end| is appended to the meaning of |\end|, and it is initially set to -|\xc@begin|. This means that the |\end| of an included environment switches -us back into ``comment'' mode, as desired. The |\end| of nested environments -should have their usual meaning, however. Therefore, |\do@begin| is -prepended to the definition of |\begin|, and it sets |\do@end| to |\relax|. -Included environment are begun with |\normal@begin| because we only want to -reset |\do@end| for nested environements. The group begun above keeps the -|\end| of the |xcomment| environment from be being affected by these -changes. - -\begin{Verbatim} - \@ifundefined{normal@begin}{\let\normal@begin\begin}{}% - \@ifundefined{normal@end}{\let\normal@end\end}{}% - \def\begin##1{\do@begin{##1}\normal@begin{##1}}% - \def\end##1{\normal@end{##1}\do@end}% - \def\do@begin##1{\@ifundefined{##1}{}{\def\do@end{}}}% - \let\do@end\xc@begin - \fi - \let\next\xc@begin - \else - \expandafter\@temptokena\expandafter{\document\@xcomment{@@@}{#2}}% - \edef\document{\the\@temptokena}% - \let\next\relax - \fi - \next} -\def\end@xcomment{\ifx\xc@envirlist\@empty \@esphack \else \endgroup \fi}% -\end{Verbatim} -% -|\xc@begin| starts up ``comment'' mode by changing the category codes and -invoking |\xcomment@|. The |\begingroup| keeps these catcode changes local. -\begin{Verbatim} -\def\xc@begin{% - \begingroup - \let\do\xc@makeother - \dospecials - \ifx\xcommentchar\@empty\else - \expandafter\catcode\expandafter`\xcommentchar=14 - \fi - \catcode`\^^M\active - \xcomment@} -\def\xcommentchar{\%} -\end{Verbatim} - - -\end{document} - -\subsection{The main loop} - -Since the code in the main loop uses literal |\|, |{|, |}|, |%| and newline -characters, we represent them with |!|, |[|, |]| |"| and |~| by setting the -corresponding lccodes to the correponding character but with catcode 12, and -then changing the code to lowercase before executing the macro definitions. -These catcode changes are kept local, and the macros must therefore be -defined globally. -\begin{Verbatim} -\begingroup -\catcode`\!=12 -\catcode`\[=12 -\catcode`\]=12 -\catcode`\"=12 -\lccode`\!=`\\ -\lccode`\[=`\{ -\lccode`\]=`\} -\lccode`\"=`\% -\catcode`\~=\active -\lccode`\~=`\^^M -\lowercase{ -\end{Verbatim} - -The three macros |\xcomment@|, |\xcomment@@|, and |\xcomment@@@| form the -main loop when in ``comment'' mode. |\xcomment@| reads a line of input. -|\xcomment@@| searches for the first occurence of a backslash. -|\xcomment@@@| checks what the next character is, and depending an the -answer various macros are invoked to see if one of the termination strings -has been found. -% -|\xcomment@| takes the line it has read, puts |\@nnil| |\| and |\@nil| as -delimiters at the end, and then calls |\xcomment@@|. -\begin{Verbatim} - \gdef\xcomment@#1~{\xcomment@@#1\@nnil!\@nil} -\end{Verbatim} -% -|\xcomment@@| takes everything up to the next occurrence of |\| as its -argument and throws it away together with the |\|. Then |\xcomment@@@| reads -the next token on the line, including the delimiters added by |\xcomment@|. -\begin{Verbatim} - \gdef\xcomment@@#1!{\xcomment@@@} -\end{Verbatim} - -|\xcomment@@@| checks for key strings. -\begin{Verbatim} - \gdef\xcomment@@@#1\@nil{% - \def\@tempa{#1}% - \ifx\@tempa\@empty - \let\next\xcomment@ - \else - \def\next{\xcomment@@#1\@nil}% - \@testtrue - \xc@checkbegin#1\relax begin[]\relax\relax - \if@test - \xc@checkend#1\relax end[]\relax\relax - \if@test - \xc@checkinput#1\relax input[]\relax\relax - \if@test - \xc@checkinclude#1\relax include[]\relax\relax - \if@test - \xc@checkendinput#1\relax endinputss\relax\relax - \fi\fi\fi\fi\fi - \next} -\end{Verbatim} -% -Check for |\begin| and |\end|. -\begin{Verbatim} - \gdef\xc@checkbegin#1begin[#2]#3\relax#4\relax{% - \def\@tempa{#1}% - \ifx\@tempa\@empty - \def\@tempa{#2}% - \@for\@tempb:=\xc@envirlist\do{% - \ifx\@tempa\@tempb\def\next{\xc@end{#2}#3\@nil}\fi}% - \fi} - \gdef\xc@checkend#1end[#2]#3\relax#4\relax{% - \def\@tempa{#1}% - \ifx\@tempa\@empty - \@testfalse - \def\@tempa{#2}\def\@tempb{document}% - \ifx\@tempa\@tempb - \def\next{\endgroup\end@xcomment\end{document}}% - \else - \ifx\@tempa\xc@csname - \def\next{\end@@xcomment{#2}#3\@nil}% - \fi\fi\fi} -\end{Verbatim} - -Check for |\input| and |\endinput|. -\begin{Verbatim} - \gdef\xc@checkinput#1input[#2]#3\relax#4\relax{% - \def\@tempa{#1}% - \ifx\@tempa\@empty - \def\next{\expandafter\xcomment@\@@input #2 \xcomment@@#3\@nil}% - \@testfalse - \fi} - \gdef\xc@checkendinput#1endinput#2#3\relax#4\relax{% - \def\@tempa{#1}% - \ifx\@tempa\@empty\ifcat\noexpand#2a\relax\else - \let\next\endinput - \fi\fi} -\end{Verbatim} - -Check for |\input| and |\endinput|. -\begin{Verbatim} - \gdef\xc@checkinclude#1include[#2]#3\relax#4\relax{% - \def\@tempa{#1}% - \ifx\@tempa\@empty - \def\next{% - \global\let\xc@savedinput\@@input - \def\@@input{% - \global\let\@@input\xc@savedinput - \expandafter\xcomment@\@@input}% - \include{#2}% - \global\let\@@input\xc@savedinput - \xcomment@@#3\@nil}% - \@testfalse - \fi} - \end{Verbatim} - - -When exiting the |xcomment| environment, we only have to be careful to -rescan the line. Note that if get this far, all three delimiters appended to -the current line are intact. We append a space before rescanning, because of -a \meta{return} that was stripped by |\xcomment@|. -\begin{Verbatim} - \gdef\end@@xcomment#1#2\@nnil!\@nil{% - \endgroup - \toks@{#2 }\rescan{\toks@}% - \edef\next{\noexpand\end@xcomment\noexpand\end{#1}\the\toks@}% - \next}% -\end{Verbatim} -% -% -When exiting ``comment'' mode to typeset an included environment, we have to -get rid of the delimiters added to the current line. The |\endgroup| ends -the scope of the catcodes changes. The first time an environment is typeset, -|\@envirsep| is null. Thereafter, -it is set to |\envirsep|. -\begin{Verbatim} - \gdef\xc@end#1#2\@nnil!\@nil{% - \endgroup - \@envirsep \let\@envirsep\envirsep - \toks@{#2 }\rescan{\toks@}% - \edef\next{\noexpand\normal@begin{#1}\the\toks@}% - \next}% -\end{Verbatim} - - -Now we end the lowercase command and the group that were used to insert -literal |\|, |{| and |}| characters in the code. -\begin{Verbatim} - } END OF LOWERCASE -\endgroup -\end{Verbatim} -% -\end{document} diff --git a/macros/generic/xcomment/xcomment.sty b/macros/generic/xcomment/xcomment.sty deleted file mode 100644 index 4bb03a5f67..0000000000 --- a/macros/generic/xcomment/xcomment.sty +++ /dev/null @@ -1,8 +0,0 @@ -%% $Id: xcomment.sty 315 2010-05-14 21:31:03Z herbert $ -\ProvidesPackage{xcomment}[2010/05/13 package wrapper for - xcomment.tex (hv)] -\input{xcomment.tex} -\ProvidesFile{xcomment.tex} - [\filedate\space v\fileversion\space `xcomment' (tvz)] -\endinput - diff --git a/macros/generic/xcomment/xcomment.tex b/macros/generic/xcomment/xcomment.tex deleted file mode 100644 index e8888f904a..0000000000 --- a/macros/generic/xcomment/xcomment.tex +++ /dev/null @@ -1,171 +0,0 @@ -%% $Id: xcomment.tex 316 2010-05-14 21:32:34Z herbert $ -%% -%% COPYRIGHT 1993/2010, by Timothy Van Zandt, tvz@Princeton.EDU -%% COPYRIGHT 2010, by Herbert Voss, hvoss@tug.org -%% -%% DESCRIPTION: -%% -%% This program can be redistributed and/or modified under the terms -%% of the LaTeX Project Public License Distributed from CTAN archives -%% in directory macros/latex/base/lppl.txt. -%% -\def\fileversion{1.3} -\def\filedate{10/05/14} -%% -\@ifundefined{xcomment@@@}{}{\endinput} -\typeout{Style-Option: `xcomment' v\fileversion \space <\filedate> (tvz) } -\def\newxcomment{\@ifnextchar [{\@newxcommentwitharg}{\@newxcomment}} -\def\@newxcomment#1{% - \expandafter\def\csname #1\endcsname##1{\@xcomment{#1}{##1}}}% -\def\@newxcommentwitharg[#1]#2{% - \expandafter\def\csname #2\endcsname{\@xcomment{#2}{#1}}} -\newxcomment{xcomment} -\def\envirsep{\par} -\def\rescanfile#1{\def\@rescanfile{#1}} -\rescanfile{\jobname.tmp} -\def\norescanfile{\let\@rescanfile\relax} -\def\@nofloat#1{\hrule height\z@\nobreak\vfill\vbox\bgroup\def\@captype{#1}} -\def\end@nofloat{\egroup\nobreak\vfill\nobreak\hrule height\z@\medbreak} -\def\nofloat#1{\@for\@tempa:=#1\do{\@namedef{#1}{\@nofloat{#1}}% - \@namedef{end#1}{\end@nofloat}}} -\def\xc@makeother#1{% - \ifnum\the\catcode`#1=0\catcode`#112% - \else \ifnum\the\catcode`#1=1\catcode`#112% - \else \ifnum\the\catcode`#1=2\catcode`#112% - \else \ifnum\the\catcode`#1=6\catcode`#112% - \fi\fi\fi\fi\relax} -\newwrite\tokout -\newread\tokin -\def\rescan#1{% - \ifx\@rescanfile\relax\else - \ifx\@rescanfile\@empty #1{}\else - \immediate\openout\tokout=\@rescanfile - \immediate\write\tokout{{\the#1}\relax}% - \immediate\closeout\tokout - \openin\tokin=\@rescanfile - \read\tokin to\@tempd - \closein\tokin - \expandafter#1\@tempd% - \fi\fi} -\def\@xcomment#1#2{% - \ifx\@preamblecmds\@notprerr - \def\xc@csname{#1}% - \edef\xc@envirlist{#2}% - \ifx\xc@envirlist\@empty \@bsphack \else - \begingroup - \def\@envirsep{}% - \@ifundefined{normal@begin}{\let\normal@begin\begin}{}% - \@ifundefined{normal@end}{\let\normal@end\end}{}% - \def\begin##1{\do@begin{##1}\normal@begin{##1}}% - \def\end##1{\normal@end{##1}\do@end}% - \def\do@begin##1{\@ifundefined{##1}{}{\def\do@end{}}}% - \let\do@end\xc@begin - \fi - \let\next\xc@begin - \else - \expandafter\@temptokena\expandafter{\document\@xcomment{@@@}{#2}}% - \edef\document{\the\@temptokena}% - \let\next\relax - \fi - \next} -\def\end@xcomment{\ifx\xc@envirlist\@empty \@esphack \else \endgroup \fi}% -\def\xc@begin{% - \begingroup - \let\do\xc@makeother - \dospecials - \ifx\xcommentchar\@empty\else - \expandafter\catcode\expandafter`\xcommentchar=14 - \fi - \catcode`\^^M\active - \xcomment@} -\def\xcommentchar{\%} -\begingroup -\catcode`\!=12 -\catcode`\[=12 -\catcode`\]=12 -\catcode`\"=12 -\lccode`\!=`\\ -\lccode`\[=`\{ -\lccode`\]=`\} -\lccode`\"=`\% -\catcode`\~=\active -\lccode`\~=`\^^M -\lowercase{ - \gdef\xcomment@#1~{\xcomment@@#1\@nnil!\@nil} - \gdef\xcomment@@#1!{\xcomment@@@} - \gdef\xcomment@@@#1\@nil{% - \def\@tempa{#1}% - \ifx\@tempa\@empty - \let\next\xcomment@ - \else - \def\next{\xcomment@@#1\@nil}% - \@testtrue - \xc@checkbegin#1\relax begin[]\relax\relax - \if@test - \xc@checkend#1\relax end[]\relax\relax - \if@test - \xc@checkinput#1\relax input[]\relax\relax - \if@test - \xc@checkinclude#1\relax include[]\relax\relax - \if@test - \xc@checkendinput#1\relax endinputss\relax\relax - \fi\fi\fi\fi\fi - \next} - \gdef\xc@checkbegin#1begin[#2]#3\relax#4\relax{% - \def\@tempa{#1}% - \ifx\@tempa\@empty - \def\@tempa{#2}% - \@for\@tempb:=\xc@envirlist\do{% - \ifx\@tempa\@tempb\def\next{\xc@end{#2}#3\@nil}\fi}% - \fi} - \gdef\xc@checkend#1end[#2]#3\relax#4\relax{% - \def\@tempa{#1}% - \ifx\@tempa\@empty - \@testfalse - \def\@tempa{#2}\def\@tempb{document}% - \ifx\@tempa\@tempb - \def\next{\endgroup\end@xcomment\end{document}}% - \else - \ifx\@tempa\xc@csname - \def\next{\end@@xcomment{#2}#3\@nil}% - \fi\fi\fi} - \gdef\xc@checkinput#1input[#2]#3\relax#4\relax{% - \def\@tempa{#1}% - \ifx\@tempa\@empty - \def\next{\expandafter\xcomment@\@@input #2 \xcomment@@#3\@nil}% - \@testfalse - \fi} - \gdef\xc@checkendinput#1endinput#2#3\relax#4\relax{% - \def\@tempa{#1}% - \ifx\@tempa\@empty\ifcat\noexpand#2a\relax\else - \let\next\endinput - \fi\fi} - \gdef\xc@checkinclude#1include[#2]#3\relax#4\relax{% - \def\@tempa{#1}% - \ifx\@tempa\@empty - \def\next{% - \global\let\xc@savedinput\@@input - \def\@@input{% - \global\let\@@input\xc@savedinput - \expandafter\xcomment@\@@input}% - \include{#2}% - \global\let\@@input\xc@savedinput - \xcomment@@#3\@nil}% - \@testfalse - \fi} - \gdef\end@@xcomment#1#2\@nnil!\@nil{% - \endgroup - \toks@{#2 }\rescan{\toks@}% - \edef\next{\noexpand\end@xcomment\noexpand\end{#1}\the\toks@}% - \next}% - \gdef\xc@end#1#2\@nnil!\@nil{% - \endgroup - \@envirsep \let\@envirsep\envirsep - \toks@{#2 }\rescan{\toks@}% - \edef\next{\noexpand\normal@begin{#1}\the\toks@}% - \next}% - }% END OF LOWERCASE -\endgroup -\endinput -%% -%% End of file `xcomment.sty'. |