public inbox archive for pandoc-discuss@googlegroups.com
 help / color / mirror / Atom feed
From: John MacFarlane <fiddlosopher-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
To: pandoc-discuss-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
Subject: Re: Plain TeX writer
Date: Wed, 19 Oct 2022 08:43:25 -0700	[thread overview]
Message-ID: <84C142C7-20EF-411E-AF94-D0AA008FA9DA@gmail.com> (raw)
In-Reply-To: <51539828-c876-437b-bb1e-a5efcf752762n-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>

I like the idea of including a plain TeX writer in pandoc, and these Lua experiments will be helpful.  (Btw, when we go to 3.0, modifying the old-style Lua writer to work as a new-style writer will only take a line or two of code.)

What would you think about replacing \pandocSpace with a regular space character? IT would make the output a lot more readable.  Similarly, SoftBreak could be a regular newline character.

It would be nice to see some examples involving arguments and attributes, e.g. links and headers.

Why is the package called "pandoc-to-markdown"?  That would lead me to expect that it produces markdown output.

John

> On Oct 19, 2022, at 6:59 AM, Vít Novotný <witiko-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
> 
> In pull request #1541, John MacFarlane floated the idea of having a Pandoc writer whose output could be “processed by plain tex (or perhaps eplain), without latex or context macros.” In their proof of concept, Dominik Rehák explores what this would look like in practice. 
> 
> Dominik’s proof of concept contains a custom Lua writer pandoc-to-markdown.lua that you can use as follows: 
> 
> $ cat > example.md
> Under his pillow P'raps found  
> ~~A cake that weighed a half a pound.~~  
> A plenty of space to roll around.
> 
>  $ pandoc -i example.md -f pandoc-to-markdown.lua -o example.tex
> $ cat example.tex
> \pandocDocumentBegin
> Under\pandocSpace{}his\pandocSpace{}pillow\pandocSpace{}P’raps\pandocSpace{}found\pandocLineBreak
> \pandocStrikeout{A\pandocSpace{}cake\pandocSpace{}that\pandocSpace{}weighed\pandocSpace{}a\pandocSpace{}half\pandocSpace{}a\pandocSpace{}pound.}\pandocLineBreak
> A\pandocSpace{}plenty\pandocSpace{}of\pandocSpace{}space\pandocSpace{}to\pandocSpace{}roll\pandocSpace{}around.
> \pandocDocumentEnd
> 
> To typeset the example document, you can use a macro package that defines how the various \pandoc... commands should be formatted. For LaTeX, the proof of concept contains the pandoc-to-markdown.sty style file that you can use as follows: 
> 
> $ cat > example.ltx
> \documentclass{article}
> \usepackage{pandoc-to-markdown}
> \begin{document}
> \input example.tex
> \end{document} 
> 
> $ pdflatex example.ltx
> 
> Here is the output document example.pdf:
> 
>  <example.png>
> 
> The proof-of-concept contains many more examples for you to try out in the examples/ directory.
> 
> Dominik's work is part of their bachelor's thesis, which is to appear this fall. Dominik has already published two articles about their work in hobbyist journals: the CSTUG Bulletin 31:1–4 (in Slovak, see a machine translation to English) and in TUGboat 43:1 (see Section 2.3). The implementation rests on my Markdown package for TeX, which provides formatting for most elements of the Pandoc AST across different TeX formats such as plain TeX, LaTeX, and ConTeXt. 
> 
> Here are some limitations of the proof of concept:
> 
> 	• For the sake of convenience, some of the \pandoc... commands that we produce are in a form that closely mimics the commands provided by the Markdown package rather than Pandoc’s AST. For example, the \pandocCode, \pandocLink, and \pandocHeader commands discard attributes, the \pandocImage and \pandocCaptionedImage commands receive parameters with TeX’s special characters escaped in a way required by the Markdown package, and the LineBlock element of Pandoc’s AST is simulated by a series of \pandocLineBreak commands.
> 
> In the future, we would like to make the  \pandoc... commands closer to the Pandoc’s AST, so that a lossless round trip from AST to TeX and back is possible. In TeX, we can process text using regular expressions (see the l3regex module of the expl3 macro package), which allows us to move most parameter preprocessing code from our Lua writer to the definitions of the \pandoc… commands.
> 
> 	• The custom Lua writer pandoc-to-markdown.lua uses the old-style custom Lua writer API that will no longer be supported in Pandoc 3.0.0. We would like to rewrite the custom Lua write to Haskell, so that it can become an integral part of Pandoc independent of Pandoc’s Lua API.
> 
> In the future, the ConTeXt and LaTeX writers of Pandoc could be replaced by a single writer that would produce format-agnostic TeX code. Formatting for the TeX code would then be provided by format-specific TeX macro packages such as the pandoc-to-markdown.sty style file for LaTeX. This approach will reduce the amount of code maintained by Pandoc and increase the number of supported TeX formats, which is a win-win for both Pandoc maintainers and Pandoc users. Both Dominik and I would be happy to discuss with you how to best get there.
> 
> 
> -- 
> You received this message because you are subscribed to the Google Groups "pandoc-discuss" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to pandoc-discuss+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
> To view this discussion on the web visit https://groups.google.com/d/msgid/pandoc-discuss/51539828-c876-437b-bb1e-a5efcf752762n%40googlegroups.com.
> <example.png>

-- 
You received this message because you are subscribed to the Google Groups "pandoc-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pandoc-discuss+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
To view this discussion on the web visit https://groups.google.com/d/msgid/pandoc-discuss/84C142C7-20EF-411E-AF94-D0AA008FA9DA%40gmail.com.


  parent reply	other threads:[~2022-10-19 15:43 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-10-19 13:59 Vít Novotný
     [not found] ` <51539828-c876-437b-bb1e-a5efcf752762n-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
2022-10-19 15:43   ` John MacFarlane [this message]
     [not found]     ` <84C142C7-20EF-411E-AF94-D0AA008FA9DA-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2022-10-19 16:21       ` Vít Novotný
     [not found]         ` <5e9dfe75-ea0e-4287-a6a0-47842700f292n-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
2022-10-20  8:05           ` Bastien DUMONT
2022-10-20  9:13             ` Vít Novotný
     [not found]               ` <a7d769e7-083c-4cb9-a9a2-b5a21b62c8f0n-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
2022-10-20  9:53                 ` Bastien DUMONT
2022-10-20 10:32                   ` Vít Novotný
     [not found]                     ` <782726a4-9890-4396-9696-4f5a349f9885n-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
2022-10-20 10:43                       ` Bastien DUMONT
2022-10-26 20:09       ` Vít Novotný
     [not found]         ` <24c01860-2f35-4ff0-9d31-63d10f764f79n-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
2022-10-27  0:24           ` John MacFarlane
     [not found]             ` <1EC34FB9-2344-40AC-91CD-22B3D9069EE6-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2022-10-27  7:07               ` Bastien DUMONT
2022-10-27 17:09                 ` John MacFarlane
     [not found]                   ` <B180C2FD-5AD9-47F2-8E5D-8133CCD8CE00-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2022-11-02 14:17                     ` Vít Novotný
     [not found]                       ` <9dfc8b26-3fda-4882-93b7-06d44671ef7fn-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
2022-11-02 14:23                         ` 'William Lupton' via pandoc-discuss
     [not found]                           ` <CAEe_xxiYD8Y5KJVB7WiKOo5xHbFWPq010rMXJEYsu_XNd-hX4A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2022-11-02 14:35                             ` Vít Novotný

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=84C142C7-20EF-411E-AF94-D0AA008FA9DA@gmail.com \
    --to=fiddlosopher-re5jqeeqqe8avxtiumwx3w@public.gmane.org \
    --cc=pandoc-discuss-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).