From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.text.pandoc/31402 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Lyndon Drake Newsgroups: gmane.text.pandoc Subject: Re: Changing LaTeX output for citations inside footnotes Date: Thu, 15 Sep 2022 11:53:35 -0700 (PDT) Message-ID: <5f62543f-48e0-410c-a3e0-0751186028c3n@googlegroups.com> References: <97765931b0a740ed8a84ba4337bed661@unibe.ch> <90c69f14-e16a-44d6-91ec-a6f6dca3ca45n@googlegroups.com> <8976ce00-3fbe-bf27-898f-0470cba1fec1@gmail.com> <0e10379f-d1c0-4024-b98a-5c7ba703f561n@googlegroups.com> <83a04bea-2e09-61d2-de0d-f399beb2ef79@gmail.com> <76a7fa0b-752b-496e-98a3-cc6ee8ef68b0n@googlegroups.com> <7ead9a3f-3aa9-fb2e-5ad5-c069d2aee315@gmail.com> <5d1a1315-d0df-4e28-b13b-8eb8e8d7f9c7n@googlegroups.com> <28ac6c29-817d-41b6-891e-915ea28bdf3bn@googlegroups.com> <1485f3b9-f893-c00d-6546-904732bf64ae@gmail.com> <67cbd620-a60e-2518-24fd-e618ece65d5c@gmail.com> <7404c6ef-789f-4fec-bf16-be469839b935n@googlegroups.com> Reply-To: pandoc-discuss-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_2708_1836976741.1663268015336" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="27723"; mail-complaints-to="usenet@ciao.gmane.io" To: pandoc-discuss Original-X-From: pandoc-discuss+bncBCKOX6WY7EKBBMHJRWMQMGQE3VECFVQ-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org Thu Sep 15 20:53:40 2022 Return-path: Envelope-to: gtp-pandoc-discuss@m.gmane-mx.org Original-Received: from mail-qv1-f58.google.com ([209.85.219.58]) by ciao.gmane.io with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1oYtzY-00071A-1C for gtp-pandoc-discuss@m.gmane-mx.org; Thu, 15 Sep 2022 20:53:40 +0200 Original-Received: by mail-qv1-f58.google.com with SMTP id w19-20020a0562140b3300b0049cad77df78sf13266903qvj.6 for ; Thu, 15 Sep 2022 11:53:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20210112; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:reply-to:x-original-sender :mime-version:subject:references:in-reply-to:message-id:to:from:date :sender:from:to:cc:subject:date; bh=gJ+ceQ4hgdf0ByD4V8lyb1EA0XTBEilI5fcW9NegJbo=; b=O8bVXYY7A+pcaJAJNp4aLv6yzUg5WzPhJSnXBXBxQBWd7V4YuQzqJTAvIM3KJAKyts iUgiw/6g+wRxDYqXQn+Cg2qCn00OxjZWqtd/d5Hl5VkeXArL36QcHK6NypBnR5COcB/B UBS8Tiquv3PoIlyRiE0L7uQBPBzBLds0RNzNlE5nxfBftgDnsYtgWOgcRgWRjzMe3VFV OPCwIZhERIYlwx7s+a5YhLSLTgws4xhHZxtriKIdMgD/MkQ+pmzaRYi+WsCrhJR/gh/w 8vl34HKynVSjRQTOG0/MZS+18RAoxJGae5nsKY+JGJ9AF5sQQFj7zgNYJXTzxY8D567B GVsQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:reply-to:x-original-sender :mime-version:subject:references:in-reply-to:message-id:to:from:date :from:to:cc:subject:date; bh=gJ+ceQ4hgdf0ByD4V8lyb1EA0XTBEilI5fcW9NegJbo=; b=Z9GICekSWGQ0n/BBrxusoF2UTndKAmef28iLKBu8NXFCSu33cYyM8jNxyHceldVthO 29tuhgS6mP2+MJvOdwqZ8H6/qozTR9iqyIygojro7JRrx8nzbO9xtDqdpragkk41OSI2 4q96tTcj7l8D9g/PlCwIZjF6ra0NVxOveTL0S29GQv5nFxBCFRGnefNmUA+iM2GbpUzx Kuc0OpHFsbnVGMW6FTYy7jPfiM6n5oZWYpb5MruxejH6Nq1urM2ESVgRNprYCDFFakiz 0+dG/Bh7LHPoLg9q5GBEyDKKKCYeTuNXtGT0c61YBCOoHJWQlymsr8YQjpMl6CEVjJms H7Dg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :x-spam-checked-in-group:list-id:mailing-list:precedence:reply-to :x-original-sender:mime-version:subject:references:in-reply-to :message-id:to:from:date:x-gm-message-state:sender:from:to:cc :subject:date; bh=gJ+ceQ4hgdf0ByD4V8lyb1EA0XTBEilI5fcW9NegJbo=; b=ryUApSRV4gOOsjmwrhYU6k5gow3ZU9mxNpVCrQ270yHlpc3UEl8JOyfRr0ry+yEHDh 9meKdoEPH1dnbfHhx/U3su7jvMuLwoYY4p+Ufa5Ne+tZ6gEZ5PG4YLIaSix2HBNU3Jkf 0l6cEqYVLmL4Lo6VZs9m42A90xV662FXoaNL8tgJjxttu03CUr/vd49Ts7HJtgWNq1iZ O/J04i86eehoo1igVCamAQbb+Z7VAEigxcxtQzyjjiySs6dlW8qWBgPHmNFUqM3Ihvsf 56FLw83vYCMdJiq0ND6NoNalqp3WxIE6r2oBBTdQLpmAYQ9XxU+AgSkSUAziMNdpNBYh Lf+g== Original-Sender: pandoc-discuss-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org X-Gm-Message-State: ACrzQf0TOTK3HnC+/okDKIaCFgHxGaMr0Fz+78W6g94pHmpOt3/cyPrB HmmVgGi8D3sZvzQqg4Mgy5A= X-Google-Smtp-Source: AMsMyM6JUmnbk2nBsuse9RJ8Vha0+MCaxpBcHgTA1Ibnkix2Ux0cQtyEPV5nqoSYCExIIwiEw2zSxg== X-Received: by 2002:ac8:5bd6:0:b0:35c:1a3b:14e0 with SMTP id b22-20020ac85bd6000000b0035c1a3b14e0mr1205879qtb.487.1663268018966; Thu, 15 Sep 2022 11:53:38 -0700 (PDT) X-BeenThere: pandoc-discuss-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org Original-Received: by 2002:ac8:6b87:0:b0:342:fb4f:7470 with SMTP id z7-20020ac86b87000000b00342fb4f7470ls14676905qts.4.-pod-prod-gmail; Thu, 15 Sep 2022 11:53:36 -0700 (PDT) X-Received: by 2002:ac8:7f92:0:b0:344:8cd8:59a1 with SMTP id z18-20020ac87f92000000b003448cd859a1mr1292630qtj.384.1663268016101; Thu, 15 Sep 2022 11:53:36 -0700 (PDT) In-Reply-To: X-Original-Sender: isenguard-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org Precedence: list Mailing-list: list pandoc-discuss-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org; contact pandoc-discuss+owners-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org List-ID: X-Google-Group-Id: 1007024079513 List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , Xref: news.gmane.io gmane.text.pandoc:31402 Archived-At: ------=_Part_2708_1836976741.1663268015336 Content-Type: multipart/alternative; boundary="----=_Part_2709_2122723560.1663268015336" ------=_Part_2709_2122723560.1663268015336 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Yes, and I have been using it successfully now for a little while. Thank=20 you for all the help getting it up and running! The code is still the same= =20 (using the gsub trick) as below. I should probably take all the `print`=20 statements out now. ``` function Writer(doc, opts) local filter =3D { Note =3D function(el) return el:walk { Cite =3D function(el) -- processing logic local citetext =3D "" if #el.citations > 1 then if el.citations[1].mode =3D=3D "AuthorInText" then citetext =3D '\\cites' elseif el.citations[1].mode =3D=3D "SuppressAuthor"= then citetext =3D '\\parencites*' elseif el.citations[1].mode =3D=3D "NormalCitation"= then citetext =3D '\\parencites' end else if el.citations[1].mode =3D=3D "AuthorInText" then citetext =3D '\\cite' elseif el.citations[1].mode =3D=3D "SuppressAuthor"= then citetext =3D '\\parencite*' elseif el.citations[1].mode =3D=3D "NormalCitation"= then citetext =3D '\\parencite' end end for _, c in pairs(el.citations) do if #c.prefix > 0 then local doc =3D pandoc.Pandoc(c.prefix) local citeprefix =3D pandoc.write(doc, 'latex') citetext =3D citetext .. '[' .. citeprefix .. '= ]' end if #c.suffix > 0 then local doc =3D pandoc.Pandoc(c.suffix) local citesuffix =3D pandoc.write(doc, 'latex') citetext =3D citetext .. '[' .. citesuffix .. '= ]' end citetext =3D citetext .. '{' .. c.id .. '}' end citetext =3D citetext:gsub("\n+", " ") = =20 print(citetext) return pandoc.RawInline('latex', citetext) end } end } return pandoc.write(doc:walk(filter), 'latex', opts) end ``` On Thursday, 15 September 2022 at 08:14:43 UTC+12 denis...-NSENcxR/0n0@public.gmane.org wrote: > Just out of curiosity: have you been able to make any progress here? > > Best, > > Denis > > =20 > > *Von:* pandoc-...-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org *Im=20 > Auftrag von *Lyndon Drake > *Gesendet:* Samstag, 6. August 2022 12:56 > *An:* pandoc-discuss > *Betreff:* Re: Changing LaTeX output for citations inside footnotes > > =20 > > Well, below is the code as it is at the moment=E2=80=A6 I still need a Pa= ndoc=20 > object to pass to pandoc.write, so even if I use blocks_to_inlines, I'm n= ot=20 > sure what I'd then do to produce the output I'm after? > > =20 > > ``` > > function Writer(doc, opts) > local filter =3D { > Note =3D function(el) > return el:walk { > Cite =3D function(el) > -- processing logic > local citetext =3D "" > if #el.citations > 1 then > if el.citations[1].mode =3D=3D "AuthorInText" the= n > citetext =3D '\\cites' > elseif el.citations[1].mode =3D=3D "SuppressAutho= r"=20 > then > citetext =3D '\\parencites*' > elseif el.citations[1].mode =3D=3D "NormalCitatio= n"=20 > then > citetext =3D '\\parencites' > end > else > if el.citations[1].mode =3D=3D "AuthorInText" the= n > citetext =3D '\\cite' > elseif el.citations[1].mode =3D=3D "SuppressAutho= r"=20 > then > citetext =3D '\\parencite*' > elseif el.citations[1].mode =3D=3D "NormalCitatio= n"=20 > then > citetext =3D '\\parencite' > end > end > for _, c in pairs(el.citations) do > if #c.prefix > 0 then > local doc =3D pandoc.Pandoc(c.prefix) > local citeprefix =3D pandoc.write(doc, 'latex= ') > citetext =3D citetext .. '[' .. citeprefix ..= ']' > end > if #c.suffix > 0 then > local doc =3D pandoc.Pandoc(c.suffix) > local citesuffix =3D pandoc.write(doc, 'latex= ') > citetext =3D citetext .. '[' .. citesuffix ..= ']' > end > citetext =3D citetext .. '{' .. c.id .. '}' > end > citetext =3D citetext:gsub("\n+", " ") = =20 > =20 > print(citetext) > return pandoc.RawInline('latex', citetext) > end > } > end > } > return pandoc.write(doc:walk(filter), 'latex', opts) > end > > ``` > > On Friday, 5 August 2022 at 21:47:46 UTC+1 suki...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org wrote: > > Woops, please ignore, I misunderstood doc as referring to the `doc` and= =20 > not a document. > > =20 > > El 05/08/2022 a las 22:43, Sukil Etxenike arizaleta escribi=C3=B3: > > I think `doc`'s fields and methods aren't documented, that's why I didn't= =20 > think of that. Good call! > > =20 > > El 05/08/2022 a las 16:36, BPJ escribi=C3=B3: > > But doc.blocks, which is the actual content of the doc, is a list of=20 > blocks, which you can pass to blocks_to_inlines. Don't forget to pass=20 > `{pandoc.Space()}` as the second argument! > > =20 > > Den fre 5 aug. 2022 13:08Lyndon Drake skrev: > > Not really, because the issue is that Pandoc returns a doc, not a list of= =20 > blocks. So blocks_to_inlines doesn't actually work. But the gsub trick=20 > works well enough to get around the issue, thankfully. > > On Monday, 1 August 2022 at 14:48:59 UTC+1 BP wrote: > > Can you convert the blocks to inlines with blocks_to_inlines?=20 > > =20 > > https://pandoc.org/lua-filters.html#pandoc.utils.blocks_to_inlines > > =20 > > Den l=C3=B6r 30 juli 2022 15:54Lyndon Drake skrev: > > Nice, the :gsub does the trick (once I replaced \n* with \n+).=20 > > =20 > > Thanks again, really appreciate the help with all this. Hopefully I can= =20 > start to build some more Lua filters/writers now. It's a great system=20 > (thanks John MacFarlane!). > > On Saturday, 30 July 2022 at 14:06:10 UTC+1 suki...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org wrote: > > I believe you can't create a pandoc document without any block. Two=20 > possibilities come to mind: > > 1. Round tripping: After fixing the citation, read it as LaTeX, and maybe= ,=20 > run pandoc.utils.blocks_to_inlines. (Hey, I never said it wouldn't be=20 > messy). May not work, even. > > 2. Simply delete all paragraph markers: in your case with:=20 > citetext:gsub("\n*", " ") > > Hth, > > Sukil > > =20 > > =20 > > El 30/07/2022 a las 14:39, Lyndon Drake escribi=C3=B3: > > Hi Sukil,=20 > > =20 > > Thanks, you were quite correct about the second problem. I've amended tha= t=20 > and it now works, at least in the sense that it is altering the output in= =20 > the general way I want. > > =20 > > On the first problem, I can just pandoc.stringify the prefix and suffix,= =20 > and concatenate. The problem with that is I will then lose any Markdown= =20 > formatting, which is not entirely uncommon in a prefix, and even=20 > occasionally in a suffix. I can work around it for this document, I guess= ,=20 > by just being careful not to use any Markdown formatting in these=20 > instances, but I'd love to find a way to take a set of Inlines and conver= t=20 > it to a format without adding a block. > > On Friday, 29 July 2022 at 19:04:51 UTC+1 suki...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org wrote: > > Hi, > > For your first problem, when you do pandoc.write, as a minimum a block is= =20 > created, which, I believe, is normally a paragraph. So, don't call=20 > pandoc.write. I guess you can concatenate the prefix, citation and suffix= =20 > and pass them to the pandoc.RawInline function.=20 > > =20 > > For your second problem, I am guessing you are using --citeproc in your= =20 > defaults file. If that is the case, try: 1) putting the defaults file aft= er=20 > the filter; or 2) specifying --citeproc manually, also after the filter. > > Hth, > > Sukil > > =20 > > El 29/07/2022 a las 16:58, Lyndon Drake escribi=C3=B3: > > Thanks for all the help - definitely getting somewhere now! > > =20 > > I guess what I want to avoid is replicating in my not-great-Lua code all= =20 > the work Pandoc already has to take a string of Markdown and convert it t= o=20 > LaTeX. I'm using pandoc.write to attempt that, and it seems to be working= =20 > to some degree. The code as it is now is below. I have two problems:=20 > > =20 > > 1. This Markdown input [@Haran1982 165 n. 9, 172] gets converted by my=20 > calling of pandoc.write into: > > =20 > > ``` > > \cite[165 > > n.~9, > > 172]{Haran1982} > > ``` > > =20 > > and I can't figure out why the blank lines are turning up. I imagine I=20 > need to do something more clever with the Inlines? > > =20 > > =20 > > 2. Despite the fact that my output in the terminal shows that I am=20 > constructing the citetext variable as I am intending to, and I have this= =20 > line of code: > > =20 > > return pandoc.RawInline('latex', citetext) > > =20 > > The output .tex file still has the normal Pandoc citations. In other=20 > words, my writer is constructing a nice LaTeX string with what I want in= =20 > it, and then discards it in favour of the normal Pandoc code, which is a= =20 > little bit depressing. > > =20 > > Can anyone spot what I'm missing now? > > =20 > > Best, > > Lyndon > > =20 > > ``` > > function Writer(doc, opts) > local filter =3D { > Note =3D function(el) > return el:walk { > Cite =3D function(el) > -- processing logic > local citetext =3D "" > if #el.citations > 1 then > if el.citations[1].mode =3D=3D "AuthorInText" the= n > citetext =3D '\\textcites*' > elseif el.citations[1].mode =3D=3D "SuppressAutho= r"=20 > then > citetext =3D '\\cites*' > elseif el.citations[1].mode =3D=3D "NormalCitatio= n"=20 > then > citetext =3D '\\cites' > end > else > if el.citations[1].mode =3D=3D "AuthorInText" the= n > citetext =3D '\\textcite*' > elseif el.citations[1].mode =3D=3D "SuppressAutho= r"=20 > then > citetext =3D '\\cite*' > elseif el.citations[1].mode =3D=3D "NormalCitatio= n"=20 > then > citetext =3D '\\cite' > end > end > for _, c in pairs(el.citations) do > if #c.prefix > 0 then > local doc =3D pandoc.Pandoc(c.prefix) > local citeprefix =3D pandoc.write(doc, 'latex= ') > citetext =3D citetext .. '[' .. citeprefix ..= ']' > end > if #c.suffix > 0 then > local doc =3D pandoc.Pandoc(c.suffix) > local citesuffix =3D pandoc.write(doc, 'latex= ') > citetext =3D citetext .. '[' .. citesuffix ..= ']' > end > citetext =3D citetext .. '{' .. c.id .. '}' > print(citetext) > end > return pandoc.RawInline('latex', citetext) > end > } > end > } > return pandoc.write(doc:walk(filter), 'latex', opts) > end > > ``` > > On Friday, 29 July 2022 at 10:49:18 UTC+1 suki...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org wrote: > > I don't know, but the building blocks you'll need are `pandoc.stringify`= =20 > which takes any object and converts it into a string, and `pandoc.RawBloc= k`=20 > or `pandoc.RawInline` which convert a string into a raw block or inline,= =20 > and take the format as first argument and the string as second. > > Hth, > > Sukil > > =20 > > El 29/07/2022 a las 10:58, Lyndon Drake escribi=C3=B3: > > So I have the citation prefix, which I guess I have to convert to a valid= =20 > LaTeX string. How can I take an Inlines and LaTeX-ify it to a string? > > On Friday, 29 July 2022 at 09:51:35 UTC+1 Lyndon Drake wrote: > > Ah yep, that works. Next thing is I have to debug my obviously incorrect= =20 > code :-) > > On Friday, 29 July 2022 at 06:44:22 UTC+1 denis...-NSENcxR/0n0@public.gmane.org wrote: > > That's the problem. This is a writer, not a filter. So you need to call i= t=20 > via=20 > -t latex-footcite.lua=20 > ________________________________________=20 > Von: pandoc-...-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org im Auftrag= =20 > von Lyndon Drake =20 > Gesendet: Freitag, 29. Juli 2022 07:15:08=20 > An: pandoc-discuss=20 > Betreff: Re: Changing LaTeX output for citations inside footnotes=20 > > My command line is:=20 > > pandoc -dbookends-latex --template=20 > /Users/lyndon/.local/share/pandoc/templates/book.latex=20 > --lua-filter=3D/Users/lyndon/.local/share/pandoc/filters/latex-footcite.l= ua=20 > -s -o thesis_jeremiah_32.tex jer-32-thesis.md=20 > > It's definitely picking up the lua file because if I have a syntax error,= =20 > pandoc tells me. But I don't get any output.=20 > > On Thursday, 28 July 2022 at 21:32:06 UTC+1 denis...-NSENcxR/0n0@public.gmane.org wrote:=20 > How do you run this ?=20 > I=E2=80=99ve tested with a minimal markdown file :=20 > > ```markdown=20 > asdf=20 > ```=20 > > Run with :=20 > pandoc asdf.md -t mylatex.lua=20 > > Result :=20 > got here=20 > asdf=20 > > So, it prints the first print statement of the writer.=20 > > Denis=20 > > Von: pandoc-...-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org Im Auftrag= =20 > von Lyndon Drake=20 > Gesendet: Donnerstag, 28. Juli 2022 19:17=20 > An: pandoc-discuss =20 > Betreff: Re: Changing LaTeX output for citations inside footnotes=20 > > Thanks for this - exactly what I needed. I've added my attempt at the cod= e=20 > below, but I must be missing some basic part of it because it doesn't do= =20 > anything. I added a couple of print statements that never get executed:= =20 > > ```=20 > function Writer(doc, opts)=20 > print "got here"=20 > local filter =3D {=20 > Note =3D function(el)=20 > return el:walk {=20 > Cite =3D function(el)=20 > -- processing logic=20 > print "got further"=20 > local citation =3D ""=20 > if #el.citations > 1 then=20 > if citations[1].mode =3D=3D "AuthorInText" then=20 > citation =3D '\\textcites*'=20 > elseif citations[1].mode =3D=3D "SuppressAuthor" then=20 > citation =3D '\\cites*'=20 > elseif citations[1].mode =3D=3D "NormalCitation" then=20 > citation =3D '\\cites'=20 > end=20 > else=20 > if citations[1].mode =3D=3D "AuthorInText" then=20 > citation =3D '\\textcite*'=20 > elseif citations[1].mode =3D=3D "SuppressAuthor" then=20 > citation =3D '\\cite*'=20 > elseif citations[1].mode =3D=3D "NormalCitation" then=20 > citation =3D '\\cite'=20 > end=20 > end=20 > for c in el.citations do=20 > if c.prefix ~=3D "" then=20 > citation =3D citation .. '[' .. c.prefix .. ']'=20 > end=20 > if c.suffix ~=3D "" then=20 > citation =3D citation .. '[' .. c.suffix .. ']'=20 > end=20 > citation =3D citation .. '{' .. c.id .. '}'=20 > end=20 > return pandoc.RawInline('latex', citation)=20 > end=20 > }=20 > end=20 > }=20 > return pandoc.write(doc:walk(filter), 'latex', opts)=20 > end=20 > ```=20 > > Apologies for what must be a very basic question, but what am I missing= =20 > here?=20 > On Wednesday, 27 July 2022 at 11:27:32 UTC+1 denis...-NSENcxR/0n0@public.gmane.org wrote:=20 > What kind of example do you need? I only know about the examples in the= =20 > documentation.=20 > > I think this here is a nice one :=20 > > https://pandoc.org/lua-filters.html#modifying-pandocs-manual.txt-for-man-= pages=20 > > Or : the new style writer=20 > https://pandoc.org/custom-writers.html#example-modified-markdown-writer= =20 > > So, something like this here could be start:=20 > > ```=20 > function Writer(doc, opts)=20 > local filter =3D {=20 > Note =3D function(el)=20 > return el:walk {=20 > Cite =3D function(el)=20 > -- processing logic=20 > return pandoc.RawInline('latex', '\\cite[prenote][postnote]{key}')=20 > end=20 > }=20 > end=20 > }=20 > return pandoc.write(doc:walk(filter), 'latex', opts)=20 > end=20 > ```=20 > > I don=E2=80=99t think you can get the current writer in Lua.=20 > > > Von: pandoc-...-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org Im Auftrag= =20 > von Lyndon Drake=20 > Gesendet: Dienstag, 26. Juli 2022 11:00=20 > An: pandoc-discuss =20 > Betreff: Re: Changing LaTeX output for citations inside footnotes=20 > > Thanks for this. I can see how that could work.=20 > > Can you point me to another example that uses the walk function?=20 > > Regarding a new-style Lua writer, is there a way to get the current LaTeX= =20 > writer as Lua code? Or is it just the Haskell code? (I once knew Haskell= =20 > but that was rather a long time ago.)=20 > On Monday, 25 July 2022 at 22:02:38 UTC+1 denis...-NSENcxR/0n0@public.gmane.org wrote:=20 > I can't come up with a code example now, bit you can use the walk functio= n=20 > (https://pandoc.org/lua-filters.html#type-block:walk) to modify the=20 > citations with a given mode inside notes. You'll need to build the citati= on=20 > via Pandoc.RawInline=20 > Maybe that would be a good example of a new style Lua writer.=20 > ________________________________________=20 > Von: pandoc-...-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org im Auftrag= =20 > von Lyndon Drake =20 > Gesendet: Montag, 25. Juli 2022 21:46:28=20 > An: pandoc-discuss=20 > Betreff: Changing LaTeX output for citations inside footnotes=20 > > Hi,=20 > > So this is a slightly odd request, which really comes because of the=20 > unusual behaviour of the specific BibLaTeX bibliography style I'm using. = In=20 > that style, \textcite inside a footnote produces an unwanted result. \cit= e=20 > produces the expected output. I have generally just gone through and=20 > hand-edited my Pandoc-produced LaTeX files when they get to the final cop= y=20 > stage, but that's painful, and I also thought that maybe this is possible= =20 > to do in a Lua filter.=20 > > But I don't quite know where to start - obviously this is a bit different= =20 > from the internal Pandoc citations. I'm going to begin the filter with=20 > this:=20 > > if FORMAT:match 'latex' then = =20 > function=20 > > but what would the function be? If it is Footnote, then I don't really=20 > want the AST, I want the LaTeX that forms the footnote contents, and I=20 > suppose then I can just replace any occurrences of the string \textcite= =20 > with the string \cite?=20 > > Any help would be awesome!=20 > > Best,=20 > Lyndon=20 > > --=20 > You received this message because you are subscribed to the Google Groups= =20 > "pandoc-discuss" group.=20 > To unsubscribe from this group and stop receiving emails from it, send an= =20 > email to=20 > pandoc-discus...-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org.=20 > > To view this discussion on the web visit=20 > https://groups.google.com/d/msgid/pandoc-discuss/bc06a6d8-9a34-4ca9-a05d-= 2526b23c6f6dn%40googlegroups.com > < > https://groups.google.com/d/msgid/pandoc-discuss/bc06a6d8-9a34-4ca9-a05d-= 2526b23c6f6dn%40googlegroups.com?utm_medium=3Demail&utm_source=3Dfooter>.= =20 > > --=20 > You received this message because you are subscribed to the Google Groups= =20 > "pandoc-discuss" group.=20 > To unsubscribe from this group and stop receiving emails from it, send an= =20 > email to pandoc-discus...-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org=20 > To view this discussion on the web visit=20 > https://groups.google.com/d/msgid/pandoc-discuss/d25cee8b-7cb2-4fe9-b44d-= f288a8fef728n%40googlegroups.com > < > https://groups.google.com/d/msgid/pandoc-discuss/d25cee8b-7cb2-4fe9-b44d-= f288a8fef728n%40googlegroups.com?utm_medium=3Demail&utm_source=3Dfooter>.= =20 > > --=20 > You received this message because you are subscribed to the Google Groups= =20 > "pandoc-discuss" group.=20 > To unsubscribe from this group and stop receiving emails from it, send an= =20 > email to pandoc-discus...-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org=20 > To view this discussion on the web visit=20 > https://groups.google.com/d/msgid/pandoc-discuss/90c69f14-e16a-44d6-91ec-= a6f6dca3ca45n%40googlegroups.com > < > https://groups.google.com/d/msgid/pandoc-discuss/90c69f14-e16a-44d6-91ec-= a6f6dca3ca45n%40googlegroups.com?utm_medium=3Demail&utm_source=3Dfooter>.= =20 > > > --=20 > You received this message because you are subscribed to the Google Groups= =20 > "pandoc-discuss" group.=20 > To unsubscribe from this group and stop receiving emails from it, send an= =20 > email to=20 > pandoc-discus...-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org.=20 > > To view this discussion on the web visit=20 > https://groups.google.com/d/msgid/pandoc-discuss/c4609f20-77f3-4427-83ae-= 6c79ba48ed5bn%40googlegroups.com > < > https://groups.google.com/d/msgid/pandoc-discuss/c4609f20-77f3-4427-83ae-= 6c79ba48ed5bn%40googlegroups.com?utm_medium=3Demail&utm_source=3Dfooter>.= =20 > > > --=20 > You received this message because you are subscribed to the Google Groups= =20 > "pandoc-discuss" group. > To unsubscribe from this group and stop receiving emails from it, send an= =20 > email to pandoc-discus...-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > > To view this discussion on the web visit=20 > https://groups.google.com/d/msgid/pandoc-discuss/a1e38719-d239-44af-84b0-= 67a1764dbb70n%40googlegroups.com=20 > > . > > --=20 > You received this message because you are subscribed to the Google Groups= =20 > "pandoc-discuss" group. > To unsubscribe from this group and stop receiving emails from it, send an= =20 > email to pandoc-discus...-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > > To view this discussion on the web visit=20 > https://groups.google.com/d/msgid/pandoc-discuss/0e10379f-d1c0-4024-b98a-= 5c7ba703f561n%40googlegroups.com=20 > > . > > --=20 > You received this message because you are subscribed to the Google Groups= =20 > "pandoc-discuss" group. > To unsubscribe from this group and stop receiving emails from it, send an= =20 > email to pandoc-discus...-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > > To view this discussion on the web visit=20 > https://groups.google.com/d/msgid/pandoc-discuss/76a7fa0b-752b-496e-98a3-= cc6ee8ef68b0n%40googlegroups.com=20 > > . > > --=20 > You received this message because you are subscribed to the Google Groups= =20 > "pandoc-discuss" group. > To unsubscribe from this group and stop receiving emails from it, send an= =20 > email to pandoc-discus...-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > > To view this discussion on the web visit=20 > https://groups.google.com/d/msgid/pandoc-discuss/5d1a1315-d0df-4e28-b13b-= 8eb8e8d7f9c7n%40googlegroups.com=20 > > . > > --=20 > You received this message because you are subscribed to the Google Groups= =20 > "pandoc-discuss" group. > To unsubscribe from this group and stop receiving emails from it, send an= =20 > email to pandoc-discus...-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > To view this discussion on the web visit=20 > https://groups.google.com/d/msgid/pandoc-discuss/28ac6c29-817d-41b6-891e-= 915ea28bdf3bn%40googlegroups.com=20 > > . > > --=20 > You received this message because you are subscribed to the Google Groups= =20 > "pandoc-discuss" group. > To unsubscribe from this group and stop receiving emails from it, send an= =20 > email to pandoc-discus...-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > To view this discussion on the web visit=20 > https://groups.google.com/d/msgid/pandoc-discuss/CADAJKhBDo-Ya3Wabo27CQd%= 3Dt6JGtkzmYOoqbcCW2tkK%3DGKd7FA%40mail.gmail.com=20 > > . > > --=20 > You received this message because you are subscribed to the Google Groups= =20 > "pandoc-discuss" group. > To unsubscribe from this group and stop receiving emails from it, send an= =20 > email to pandoc-discus...-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > > To view this discussion on the web visit=20 > https://groups.google.com/d/msgid/pandoc-discuss/7404c6ef-789f-4fec-bf16-= be469839b935n%40googlegroups.com=20 > > . > --=20 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 e= mail 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/5f62543f-48e0-410c-a3e0-0751186028c3n%40googlegroups.com. ------=_Part_2709_2122723560.1663268015336 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Yes, and I have been using it successfully now for a little while. Thank yo= u for all the help getting it up and running! The code is still the same (u= sing the gsub trick) as below. I should probably take all the `print` state= ments out now.

```
function Writer(doc, opts)<= br>    local filter =3D {
        Note =3D= function(el)
            return el:walk {=
                Cite =3D functi= on(el)
                  &n= bsp; -- processing logic
             = ;       local citetext =3D ""
       =             if #el.citations > 1 then
=                      = ;   if el.citations[1].mode =3D=3D "AuthorInText" then
   = ;                     &nb= sp;   citetext =3D '\\cites'
          &nb= sp;             elseif el.citations[1].mode = =3D=3D "SuppressAuthor" then
            &= nbsp;               citetext =3D '\\pare= ncites*'
                  =       elseif el.citations[1].mode =3D=3D "NormalCitation" th= en
                   =         citetext =3D '\\parencites'
    &= nbsp;                   end                    else=
                    &= nbsp;   if el.citations[1].mode =3D=3D "AuthorInText" then
  &= nbsp;                    =     citetext =3D '\\cite'
          =               elseif el.citations[1].mod= e =3D=3D "SuppressAuthor" then
           =                 citetext =3D '\\pa= rencite*'
                 =       elseif el.citations[1].mode =3D=3D "NormalCitation" t= hen
                   = ;         citetext =3D '\\parencite'
    &= nbsp;                   end                    end<= br>                    fo= r _, c in pairs(el.citations) do
          &nbs= p;             if #c.prefix > 0 then
&n= bsp;                     =       local doc =3D pandoc.Pandoc(c.prefix)
   =                     &nbs= p;   local citeprefix =3D pandoc.write(doc, 'latex')
    =                      = ;   citetext =3D citetext .. '[' .. citeprefix .. ']'
   =                     end<= br>                    &n= bsp;   if #c.suffix > 0 then
          =                   local doc = =3D pandoc.Pandoc(c.suffix)
            &n= bsp;               local citesuffix =3D = pandoc.write(doc, 'latex')
            &nb= sp;               citetext =3D citetext = .. '[' .. citesuffix .. ']'
            &n= bsp;           end
        =                 citetext =3D citete= xt .. '{' .. c.id .. '}'
             = ;       end
            &nb= sp;       citetext =3D citetext:gsub("\n+", " ")   &nbs= p;                
   =                 print(citetext)                    retu= rn pandoc.RawInline('latex', citetext)
         = ;       end
            }        end
    }
    retur= n pandoc.write(doc:walk(filter), 'latex', opts)
end
```
On= Thursday, 15 September 2022 at 08:14:43 UTC+12 denis...-NSENcxR/0n0@public.gmane.org wrote:

Just out of curiosity: have you= been able to make any progress here?

Best,

Denis

=C2=A0

Von: pandoc-...-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org <pandoc-...@googlegroups.c= om> Im Auftrag von Lyndon Drake
Gesendet: Samstag, 6. August 2022 12:56
An: pandoc-discuss <pa= ndoc-...-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
Betreff: Re: Changing LaTeX output for citations inside footnotes=

=C2=A0

Well, below is the code as it is at the moment=E2=80= =A6 I still need a Pandoc object to pass to pandoc.write, so even if I use = blocks_to_inlines, I'm not sure what I'd then do to produce the out= put I'm after?

=C2=A0

```

function Writer(doc, opts)
=C2=A0 =C2=A0 local filter =3D {
=C2=A0 =C2=A0 =C2=A0 =C2=A0 Note =3D function(el)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 return el:walk {
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Cite =3D function(e= l)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 -- pr= ocessing logic
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 local= citetext =3D ""
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 if #e= l.citations > 1 then
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 if el.citations[1].mode =3D=3D "AuthorInText" then
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 citetext =3D '\\cites'
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 elseif el.citations[1].mode =3D=3D "SuppressAuthor" th= en
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 citetext =3D '\\parencites*'
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 elseif el.citations[1].mode =3D=3D "NormalCitation" th= en
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 citetext =3D '\\parencites'
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 end
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 else<= br> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 if el.citations[1].mode =3D=3D "AuthorInText" then
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 citetext =3D '\\cite'
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 elseif el.citations[1].mode =3D=3D "SuppressAuthor" th= en
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 citetext =3D '\\parencite*'
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 elseif el.citations[1].mode =3D=3D "NormalCitation" th= en
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 citetext =3D '\\parencite'
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 end
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 end =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 for _= , c in pairs(el.citations) do
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 if #c.prefix > 0 then
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 local doc =3D pandoc.Pandoc(c.prefix)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 local citeprefix =3D pandoc.write(doc, 'latex&= #39;)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 citetext =3D citetext .. '[' .. citeprefix= .. ']'
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 end
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 if #c.suffix > 0 then
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 local doc =3D pandoc.Pandoc(c.suffix)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 local citesuffix =3D pandoc.write(doc, 'latex&= #39;)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 citetext =3D citetext .. '[' .. citesuffix= .. ']'
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 end
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 citetext =3D citetext .. '{' .. c.id .. '}'= ;
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 end =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 citet= ext =3D citetext:gsub("\n+", " ") =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 print= (citetext)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 retur= n pandoc.RawInline('latex', citetext)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 end
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 }
=C2=A0 =C2=A0 =C2=A0 =C2=A0 end
=C2=A0 =C2=A0 }
=C2=A0 =C2=A0 return pandoc.write(doc:walk(filter), 'latex', opts)<= br> end

```

On Friday, 5 August 2022 at 21:47:46 UTC+1 suki...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org wrote:

Woops, please ignore, I misunderstood doc as referring to the `doc` and = not a document.

=C2=A0

El 05/08/2022 a las 22:43, Sukil Etxenike arizaleta = escribi=C3=B3:

I think `doc`'s fields and methods aren't documented, that's= why I didn't think of that. Good call!

=C2=A0

El 05/08/2022 a las 16:36, BPJ escribi=C3=B3:=

But doc.blocks, which is the actual content of the d= oc, is a list of blocks, which you can pass to blocks_to_inlines. Don't= forget to pass `{pandoc.Space()}` as the second argument!

=C2=A0

Den fre 5 aug. 2022 13:08Lyndon Drake <isen...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> skr= ev:

Not really, because t= he issue is that Pandoc returns a doc, not a list of blocks. So blocks_to_i= nlines doesn't actually work. But the gsub trick works well enough to g= et around the issue, thankfully.

On Monday, 1 August 2022 at 14:48:59 UTC+1 BP wrote:=

Can you convert the blocks to inlines with blocks_to= _inlines?

=C2=A0

=C2=A0

Den l=C3=B6r 30 juli 2022 15:54Lyndon Drake <isen...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> skrev:<= /u>

Nice, the :gsub does the trick (once I replaced \n* = with \n+).

=C2=A0

Thanks again, really = appreciate the help with all this. Hopefully I can start to build some more= Lua filters/writers now. It's a great system (thanks John MacFarlane!)= .

On Saturday, 30 July 2022 at 14:06:10 UTC+1 suki...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org wrote:

I believe you can't create a pandoc document without any block. Two = possibilities come to mind:

1. Round tripping: After fixing the citation, read it as LaTeX, and mayb= e, run pandoc.utils.blocks_to_inlines. (Hey, I never said it wouldn't b= e messy). May not work, even.

2. Simply delete all paragraph markers: in your case with: citetext:gsub= ("\n*", " ")

Hth,

Sukil

=C2=A0

=C2=A0

El 30/07/2022 a las 14:39, Lyndon Drake escribi=C3=B3:

Hi Sukil,

=C2=A0

Thanks, you were quite correct about the second prob= lem. I've amended that and it now works, at least in the sense that it = is altering the output in the general way I want.

=C2=A0

On the first problem,= I can just pandoc.stringify the prefix and suffix, and concatenate. The pr= oblem with that is I will then lose any Markdown formatting, which is not e= ntirely uncommon in a prefix, and even occasionally in a suffix. I can work around it for this document, I guess,= by just being careful not to use any Markdown formatting in these instance= s, but I'd love to find a way to take a set of Inlines and convert it t= o a format without adding a block.

On Friday, 29 July 2022 at 19:04:51 UTC+1 suki...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org wrote:

Hi,

For your first problem, when you do pandoc.write, as a minimum a block i= s created, which, I believe, is normally a paragraph. So, don't call pa= ndoc.write. I guess you can concatenate the prefix, citation and suffix and= pass them to the pandoc.RawInline function.

=C2=A0

For your second problem, I am guessing you are using --citeproc in your = defaults file. If that is the case, try: 1) putting the defaults file after= the filter; or 2) specifying --citeproc manually, also after the filter.

Hth,

Sukil

=C2=A0

El 29/07/2022 a las 16:58, Lyndon Drake escribi=C3= =B3:

Thanks for all the help - definitely getting somewhe= re now!

=C2=A0

I guess what I want to avoid is replicating in my no= t-great-Lua code all the work Pandoc already has to take a string of Markdo= wn and convert it to LaTeX. I'm using pandoc.write to attempt that, and= it seems to be working to some degree. The code as it is now is below. I have two problems:

=C2=A0

1. This Markdown input [@Haran1982 165 n. 9, 172] ge= ts converted by my calling of pandoc.write into:

=C2=A0

```

\cite[165

n.~9,

172]{Haran1982}

```

=C2=A0

and I can't figure out why the blank lines are t= urning up. I imagine I need to do something more clever with the Inlines?

=C2=A0

=C2=A0

2. Despite the fact that my output in the terminal s= hows that I am constructing the citetext variable as I am intending to, and= I have this line of code:

=C2=A0

=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 return pandoc.RawInline('latex', citetext)=

=C2=A0

The output .tex file still has the normal Pandoc cit= ations. In other words, my writer is constructing a nice LaTeX string with = what I want in it, and then discards it in favour of the normal Pandoc code= , which is a little bit depressing.

=C2=A0

Can anyone spot what I'm missing now?<= /u>

=C2=A0

Best,

Lyndon

=C2=A0

```

function Writer(doc, opts)
=C2=A0 =C2=A0 local filter =3D {
=C2=A0 =C2=A0 =C2=A0 =C2=A0 Note =3D function(el)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 return el:walk {
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Cite =3D function(e= l)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 -- pr= ocessing logic
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 local= citetext =3D ""
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 if #e= l.citations > 1 then
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 if el.citations[1].mode =3D=3D "AuthorInText" then
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 citetext =3D '\\textcites*'
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 elseif el.citations[1].mode =3D=3D "SuppressAuthor" th= en
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 citetext =3D '\\cites*'
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 elseif el.citations[1].mode =3D=3D "NormalCitation" th= en
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 citetext =3D '\\cites'
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 end
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 else<= br> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 if el.citations[1].mode =3D=3D "AuthorInText" then
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 citetext =3D '\\textcite*'
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 elseif el.citations[1].mode =3D=3D "SuppressAuthor" th= en
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 citetext =3D '\\cite*'
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 elseif el.citations[1].mode =3D=3D "NormalCitation" th= en
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 citetext =3D '\\cite'
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 end
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 end =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 for _= , c in pairs(el.citations) do
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 if #c.prefix > 0 then
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 local doc =3D pandoc.Pandoc(c.prefix)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 local citeprefix =3D pandoc.write(doc, 'latex&= #39;)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 citetext =3D citetext .. '[' .. citeprefix= .. ']'
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 end
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 if #c.suffix > 0 then
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 local doc =3D pandoc.Pandoc(c.suffix)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 local citesuffix =3D pandoc.write(doc, 'latex&= #39;)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 citetext =3D citetext .. '[' .. citesuffix= .. ']'
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 end
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 citetext =3D citetext .. '{' .. c.id .. '}'
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 print(citetext)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 end =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 retur= n pandoc.RawInline('latex', citetext)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 end
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 }
=C2=A0 =C2=A0 =C2=A0 =C2=A0 end
=C2=A0 =C2=A0 }
=C2=A0 =C2=A0 return pandoc.write(doc:walk(filter), 'latex', opts)<= br> end

```

On Friday, 29 July 2022 at 10:49:18 UTC+1 suki...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org wrote:

I don't know, but the building blocks you'll need are `pandoc.st= ringify` which takes any object and converts it into a string, and `pandoc.= RawBlock` or `pandoc.RawInline` which convert a string into a raw block or = inline, and take the format as first argument and the string as second.

Hth,

Sukil

=C2=A0

El 29/07/2022 a las 10:58, Lyndon Drake escribi=C3= =B3:

So I have the citatio= n prefix, which I guess I have to convert to a valid LaTeX string. How can = I take an Inlines and LaTeX-ify it to a string?

On Friday, 29 July 2022 at 09:51:35 UTC+1 Lyndon Dra= ke wrote:

Ah yep, that works. N= ext thing is I have to debug my obviously incorrect code :-)<= /p>

On Friday, 29 July 2022 at 06:44:22 UTC+1 denis...-NSENcxR/0n0@public.gmane.org wrote:

That's the problem. This is a writer, not a filt= er. So you need to call it via
-t latex-footcite.lua
________________________________________
Von: pandoc-...-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org= <pandoc-...@googlegroups= .com> im Auftrag von Lyndon Drake <isen...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Gesendet: Freitag, 29. Juli 2022 07:15:08
An: pandoc-discuss
Betreff: Re: Changing LaTeX output for citations inside footnotes

My command line is:

pandoc -dbookends-latex --template /Users/lyndon/.local/share/pandoc/templa= tes/book.latex --lua-filter=3D/Users/lyndon/.local/share/pandoc/filters/lat= ex-footcite.lua -s -o thesis_jeremiah_32.tex jer-32-thesis.md

It's definitely picking up the lua file because if I have a syntax erro= r, pandoc tells me. But I don't get any output.

On Thursday, 28 July 2022 at 21:32:06 UTC+1 denis...-NSENcxR/0n0@public.gmane.org wrote:
How do you run this ?
I=E2=80=99ve tested with a minimal markdown file :

```markdown
asdf
```

Run with :
pandoc asdf.md -t mylatex.lua

Result :
got here
asdf

So, it prints the first print statement of the writer.

Denis

Von: pandoc-...-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org= <pandoc-...@googlegroups= .com> Im Auftrag von Lyndon Drake
Gesendet: Donnerstag, 28. Juli 2022 19:17
An: pandoc-discuss <pandoc-..= .@googlegroups.com>
Betreff: Re: Changing LaTeX output for citations inside footnotes

Thanks for this - exactly what I needed. I've added my attempt at the c= ode below, but I must be missing some basic part of it because it doesn'= ;t do anything. I added a couple of print statements that never get execute= d:

```
function Writer(doc, opts)
print "got here"
local filter =3D {
Note =3D function(el)
return el:walk {
Cite =3D function(el)
-- processing logic
print "got further"
local citation =3D ""
if #el.citations > 1 then
if citations[1].mode =3D=3D "AuthorInText" then
citation =3D '\\textcites*'
elseif citations[1].mode =3D=3D "SuppressAuthor" then
citation =3D '\\cites*'
elseif citations[1].mode =3D=3D "NormalCitation" then
citation =3D '\\cites'
end
else
if citations[1].mode =3D=3D "AuthorInText" then
citation =3D '\\textcite*'
elseif citations[1].mode =3D=3D "SuppressAuthor" then
citation =3D '\\cite*'
elseif citations[1].mode =3D=3D "NormalCitation" then
citation =3D '\\cite'
end
end
for c in el.citations do
if c.prefix ~=3D "" then
citation =3D citation .. '[' .. c.prefix .. ']'
end
if c.suffix ~=3D "" then
citation =3D citation .. '[' .. c.suffix .. ']'
end
citation =3D citation .. '{' .. c.id<http://c.id>= .. '}'
end
return pandoc.RawInline('latex', citation)
end
}
end
}
return pandoc.write(doc:walk(filter), 'latex', opts)
end
```

Apologies for what must be a very basic question, but what am I missing her= e?
On Wednesday, 27 July 2022 at 11:27:32 UTC+1 denis...-NSENcxR/0n0@public.gmane.org wrote:
What kind of example do you need? I only know about the examples in the doc= umentation.

I think this here is a nice one :
https://pand= oc.org/lua-filters.html#modifying-pandocs-manual.txt-for-man-pages

Or : the new style writer
https://pandoc.org/custom-= writers.html#example-modified-markdown-writer

So, something like this here could be start:

```
function Writer(doc, opts)
local filter =3D {
Note =3D function(el)
return el:walk {
Cite =3D function(el)
-- processing logic
return pandoc.RawInline('latex', '\\cite[prenote][postnote]{key= }')
end
}
end
}
return pandoc.write(doc:walk(filter), 'latex', opts)
end
```

I don=E2=80=99t think you can get the current writer in Lua.


Von: pandoc-...-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org= <pandoc-...@googlegroups= .com> Im Auftrag von Lyndon Drake
Gesendet: Dienstag, 26. Juli 2022 11:00
An: pandoc-discuss <pandoc-..= .@googlegroups.com>
Betreff: Re: Changing LaTeX output for citations inside footnotes

Thanks for this. I can see how that could work.

Can you point me to another example that uses the walk function?

Regarding a new-style Lua writer, is there a way to get the current LaTeX w= riter as Lua code? Or is it just the Haskell code? (I once knew Haskell but= that was rather a long time ago.)
On Monday, 25 July 2022 at 22:02:38 UTC+1 denis...-NSENcxR/0n0@public.gmane.org wrote:
I can't come up with a code example now, bit you can use the walk funct= ion (https://pandoc.org/lua-filters.html#type-block:walk) to m= odify the citations with a given mode inside notes. You'll need to build the citation via Pandoc.RawInline
Maybe that would be a good example of a new style Lua writer.
________________________________________
Von: pandoc-...-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org= <pandoc-...@googlegroups= .com> im Auftrag von Lyndon Drake <isen...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Gesendet: Montag, 25. Juli 2022 21:46:28
An: pandoc-discuss
Betreff: Changing LaTeX output for citations inside footnotes

Hi,

So this is a slightly odd request, which really comes because of the unusua= l behaviour of the specific BibLaTeX bibliography style I'm using. In t= hat style, \textcite inside a footnote produces an unwanted result. \cite p= roduces the expected output. I have generally just gone through and hand-edited my Pandoc-produced LaTeX files= when they get to the final copy stage, but that's painful, and I also = thought that maybe this is possible to do in a Lua filter.

But I don't quite know where to start - obviously this is a bit differe= nt from the internal Pandoc citations. I'm going to begin the filter wi= th this:

if FORMAT:match 'latex' then <https://pandoc.org/lua-filters.html#cb9-3= > function

but what would the function be? If it is Footnote, then I don't really = want the AST, I want the LaTeX that forms the footnote contents, and I supp= ose then I can just replace any occurrences of the string \textcite with th= e string \cite?

Any help would be awesome!

Best,
Lyndon

--
You received this message because you are subscribed to the Google Groups &= quot;pandoc-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an e= mail to pandoc-discus...-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org<mailto:pandoc-discus...@googlegroups.c= om>.
To view this discussion on the web visit https://groups.google.com/d/msgid/pandoc-discuss/bc06a6d8-9a34-4ca9-a05d-25= 26b23c6f6dn%40googlegroups.com<https://groups.google.com/d/msgid/pandoc-discuss/bc06a6d8-9a3= 4-4ca9-a05d-2526b23c6f6dn%40googlegroups.com?utm_medium=3Demail&utm_sou= rce=3Dfooter>.
--
You received this message because you are subscribed to the Google Groups &= quot;pandoc-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an e= mail to pandoc-discus...-/JYPxA39Uh4Ykp1iOSErHA@public.gmane.org= m.
To view this discussion on the web visit https://groups.google.com/d/msgid/pandoc-discuss/d25cee8b-7cb2-4fe9-b44d-f2= 88a8fef728n%40googlegroups.com<https://groups.google.com/d/msgid/pandoc-discuss/d25cee8b-7cb= 2-4fe9-b44d-f288a8fef728n%40googlegroups.com?utm_medium=3Demail&utm_sou= rce=3Dfooter>.
--
You received this message because you are subscribed to the Google Groups &= quot;pandoc-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an e= mail to pandoc-discus...-/JYPxA39Uh4Ykp1iOSErHA@public.gmane.org= m.
To view this discussion on the web visit https://groups.google.com/d/msgid/pandoc-discuss/90c69f14-e16a-44d6-91ec-a6= f6dca3ca45n%40googlegroups.com<https://groups.google.com/d/msgid/pandoc-discuss/90c69f14-e16= a-44d6-91ec-a6f6dca3ca45n%40googlegroups.com?utm_medium=3Demail&utm_sou= rce=3Dfooter>.

--
You received this message because you are subscribed to the Google Groups &= quot;pandoc-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an e= mail to pandoc-discus...-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org<mailto:pandoc-discus...@googlegroups.c= om>.
To view this discussion on the web visit https://groups.google.com/d/msgid/pandoc-discuss/c4609f20-77f3-4427-83ae-6c= 79ba48ed5bn%40googlegroups.com<https://groups.google.com/d/msgid/pandoc-discuss/c4609f20-77f= 3-4427-83ae-6c79ba48ed5bn%40googlegroups.com?utm_medium=3Demail&utm_sou= rce=3Dfooter>.

--
You received this message because you are subscribed to the Google Groups &= quot;pandoc-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an e= mail to pandoc-discus...-/JYPxA39Uh4Ykp1iOSErHA@public.gmane.org= m.

--
You received this message because you are subscribed to the Google Groups &= quot;pandoc-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an e= mail to pandoc-discus...-/JYPxA39Uh4Ykp1iOSErHA@public.gmane.org= m.

--
You received this message because you are subscribed to the Google Groups &= quot;pandoc-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an e= mail to pandoc-discus...-/JYPxA39Uh4Ykp1iOSErHA@public.gmane.org= m.

--
You received this message because you are subscribed to the Google Groups &= quot;pandoc-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an e= mail to pandoc-discus...-/JYPxA39Uh4Ykp1iOSErHA@public.gmane.org= m.

--
You received this message because you are subscribed to the Google Groups &= quot;pandoc-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an e= mail to pandoc-discus...@googlegro= ups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/pandoc-discuss/28ac6c29-817d-41b6-891e-91= 5ea28bdf3bn%40googlegroups.com.

--
You received this message because you are subscribed to the Google Groups &= quot;pandoc-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an e= mail to pandoc-discus...@googlegro= ups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/pandoc-discuss/CADAJKhBDo-Ya3Wabo27CQd%3D= t6JGtkzmYOoqbcCW2tkK%3DGKd7FA%40mail.gmail.com.

--
You received this message because you are subscribed to the Google Groups &= quot;pandoc-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an e= mail to pandoc-discus...-/JYPxA39Uh4Ykp1iOSErHA@public.gmane.org= m.

--
You received this message because you are subscribed to the Google Groups &= quot;pandoc-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an e= mail to pand= oc-discuss+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org.
To view this discussion on the web visit https://groups.google.com/d= /msgid/pandoc-discuss/5f62543f-48e0-410c-a3e0-0751186028c3n%40googlegroups.= com.
------=_Part_2709_2122723560.1663268015336-- ------=_Part_2708_1836976741.1663268015336--