public inbox archive for pandoc-discuss@googlegroups.com
 help / color / mirror / Atom feed
* How to get \section[Short title]{Long title} in LaTeX output
@ 2021-06-29 15:33 'Nick Bart' via pandoc-discuss
  2021-06-29 23:36 ` John MacFarlane
  0 siblings, 1 reply; 6+ messages in thread
From: 'Nick Bart' via pandoc-discuss @ 2021-06-29 15:33 UTC (permalink / raw)
  To: pandoc-discuss-/JYPxA39Uh5TLH3MbocFFw

[-- Attachment #1: Type: text/plain, Size: 763 bytes --]

Is there any way to have pandoc output LaTeX code like

\section[Short Section Title]{Long Section Title}

from pandoc markdown containing both versions as in the following (but not necessarily given in this exact syntax)?

# Long Section Title {short_title="Short Section Title"}

-- 
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/4p2Sx0e_CqUgNm9ZcXR064fya9gybYYDVBTVMMIL9p1m2ynHgBzs30shkkVJnu0l2RqSKghQo5oi10jSV33BS6IBsvIhBhtyoExu-d3p3Kc%3D%40protonmail.com.

[-- Attachment #2: Type: text/html, Size: 1231 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: How to get \section[Short title]{Long title} in LaTeX output
  2021-06-29 15:33 How to get \section[Short title]{Long title} in LaTeX output 'Nick Bart' via pandoc-discuss
@ 2021-06-29 23:36 ` John MacFarlane
       [not found]   ` <yh480ktulgs0oj.fsf-pgq/RBwaQ+zq8tPRBa0AtqxOck334EZe@public.gmane.org>
  0 siblings, 1 reply; 6+ messages in thread
From: John MacFarlane @ 2021-06-29 23:36 UTC (permalink / raw)
  To: 'Nick Bart' via pandoc-discuss,
	pandoc-discuss-/JYPxA39Uh5TLH3MbocFFw


Not easy.  You could write a filter that builds the
relevant section command, but that might break other
things because the LaTeX writer won't see a heading
there (not sure).

It might be a good idea to have pandoc do this automatically.

"'Nick Bart' via pandoc-discuss"
<pandoc-discuss-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org> writes:

> Is there any way to have pandoc output LaTeX code like
>
> \section[Short Section Title]{Long Section Title}
>
> from pandoc markdown containing both versions as in the following (but not necessarily given in this exact syntax)?
>
> # Long Section Title {short_title="Short Section Title"}
>
> -- 
> 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/4p2Sx0e_CqUgNm9ZcXR064fya9gybYYDVBTVMMIL9p1m2ynHgBzs30shkkVJnu0l2RqSKghQo5oi10jSV33BS6IBsvIhBhtyoExu-d3p3Kc%3D%40protonmail.com.


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: How to get \section[Short title]{Long title} in LaTeX output
       [not found]   ` <yh480ktulgs0oj.fsf-pgq/RBwaQ+zq8tPRBa0AtqxOck334EZe@public.gmane.org>
@ 2021-06-30  6:53     ` 'Nick Bart' via pandoc-discuss
  2021-06-30  9:54     ` jcr
  1 sibling, 0 replies; 6+ messages in thread
From: 'Nick Bart' via pandoc-discuss @ 2021-06-30  6:53 UTC (permalink / raw)
  To: pandoc-discuss-/JYPxA39Uh5TLH3MbocFFw

> It might be a good idea to have pandoc do this automatically.

That would be great of course. Shall I put in a feature request?


‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
On Tuesday, June 29, 2021 11:36 PM, John MacFarlane <jgm-TVLZxgkOlNX2fBVCVOL8/A@public.gmane.org> wrote:

> Not easy. You could write a filter that builds the
> relevant section command, but that might break other
> things because the LaTeX writer won't see a heading
> there (not sure).
>
> It might be a good idea to have pandoc do this automatically.
>
> "'Nick Bart' via pandoc-discuss"
> pandoc-discuss-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org writes:
>
> > Is there any way to have pandoc output LaTeX code like
> > \section[Short Section Title]{Long Section Title}
> > from pandoc markdown containing both versions as in the following (but not necessarily given in this exact syntax)?
> >
> > Long Section Title {short_title="Short Section Title"}
> >
> > =======================================================
> >
> > --
> > 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/4p2Sx0e_CqUgNm9ZcXR064fya9gybYYDVBTVMMIL9p1m2ynHgBzs30shkkVJnu0l2RqSKghQo5oi10jSV33BS6IBsvIhBhtyoExu-d3p3Kc%3D%40protonmail.com.
>
> --
>
> 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/yh480ktulgs0oj.fsf%40johnmacfarlane.net.


-- 
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/a-tV5S_LgdZdS3sE6hXMHOlSqUgcH3yG-eqNN-h5iIQfg_PcorSLO-e6zg-t88nwlCQaBVODR_F2eCYOhvukfAEL0iR4eqEwqybFw5GVWTY%3D%40protonmail.com.


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: How to get \section[Short title]{Long title} in LaTeX output
       [not found]   ` <yh480ktulgs0oj.fsf-pgq/RBwaQ+zq8tPRBa0AtqxOck334EZe@public.gmane.org>
  2021-06-30  6:53     ` 'Nick Bart' via pandoc-discuss
@ 2021-06-30  9:54     ` jcr
       [not found]       ` <bc3ac76b-306d-4ab4-9a33-6acdd2d2a38fn-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
  1 sibling, 1 reply; 6+ messages in thread
From: jcr @ 2021-06-30  9:54 UTC (permalink / raw)
  To: pandoc-discuss


[-- Attachment #1.1: Type: text/plain, Size: 2890 bytes --]

I did this with LaTeX and memoir: in my case, I only wanted a shorter title 
in the page headings. I kept the full title in the table of contents. These 
are the relevant functions from my filter:

-- Print a formatted warning to stderr

function warnf (...)

  io.stderr:write(string.format(...))

end

function Header (el)

  -- Replace heading with raw LaTeX if pageheading is used to specify a

  -- shorter form of the title to use in page headers.

  if el.attributes.pageheading then

    local commands = {'chapter', 'section', 'subsection'}

    if el.level > #commands then

      warnf('pageheading attribute not supported for level %d headings', 
el.level)

      return el

    end

    -- Produce LaTeX like pandoc does, but with two additional arguments

    -- to specify a short for of the page heading to memoir.

    local title = pandoc.utils.stringify(el)

    local latexStr = string.format('\\%s[%s][%s]{%s}', commands[el.level], 
title, el.attributes.pageheading, title)

    local label = string.format('\\label{%s}', el.identifier)

    -- wrap in hypertarget

    latexStr = string.format('\\hypertarget{%s}{%%\n%s%s}', el.identifier, 
latexStr, label)

    return pandoc.RawBlock('latex', latexStr)

  end

end


On Wednesday, June 30, 2021 at 1:37:00 AM UTC+2 John MacFarlane wrote:

>
> Not easy. You could write a filter that builds the
> relevant section command, but that might break other
> things because the LaTeX writer won't see a heading
> there (not sure).
>
> It might be a good idea to have pandoc do this automatically.
>
> "'Nick Bart' via pandoc-discuss"
> <pandoc-...-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org> writes:
>
> > Is there any way to have pandoc output LaTeX code like
> >
> > \section[Short Section Title]{Long Section Title}
> >
> > from pandoc markdown containing both versions as in the following (but 
> not necessarily given in this exact syntax)?
> >
> > # Long Section Title {short_title="Short Section Title"}
> >
> > -- 
> > 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-discus...-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
> > To view this discussion on the web visit 
> https://groups.google.com/d/msgid/pandoc-discuss/4p2Sx0e_CqUgNm9ZcXR064fya9gybYYDVBTVMMIL9p1m2ynHgBzs30shkkVJnu0l2RqSKghQo5oi10jSV33BS6IBsvIhBhtyoExu-d3p3Kc%3D%40protonmail.com
> .
>

-- 
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/bc3ac76b-306d-4ab4-9a33-6acdd2d2a38fn%40googlegroups.com.

[-- Attachment #1.2: Type: text/html, Size: 4472 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: How to get \section[Short title]{Long title} in LaTeX output
       [not found]       ` <bc3ac76b-306d-4ab4-9a33-6acdd2d2a38fn-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
@ 2021-06-30 12:29         ` 'Nick Bart' via pandoc-discuss
  2021-06-30 15:04           ` jcr
  0 siblings, 1 reply; 6+ messages in thread
From: 'Nick Bart' via pandoc-discuss @ 2021-06-30 12:29 UTC (permalink / raw)
  To: pandoc-discuss-/JYPxA39Uh5TLH3MbocFFw

[-- Attachment #1: Type: text/plain, Size: 2079 bytes --]

@jcr - Brilliant, works like a charm. I had to make some trivial changes; the version I’m using right now with the LaTeX article or scrartcl classes is shown below.

One thing that would be nice to have, though, would be the ability to switch automatically between a 'commands' list for book-like LaTeX classes (starting with 'chapter'), and article-like classes (starting with 'section'). I'll be trying to figure that out, but useful hints would be welcome.

-- Print a formatted warning to stderr
function warnf (...)
io.stderr:write(string.format(...))
end
function Header (el)
-- Replace heading with raw LaTeX if pageheading is used to specify a
-- shorter form of the title to use in page headers.
if el.attributes.pageheading then
-- local commands = {'chapter', 'section', 'subsection'}
local commands = {'section', 'subsection'}
if el.level > #commands then
warnf('pageheading attribute not supported for level %d headings', el.level)
return el
end
-- Produce LaTeX like pandoc does, but with two additional arguments
-- to specify a short for of the page heading to memoir.
local title = pandoc.utils.stringify(el)
-- local latexStr = string.format('\\%s[%s][%s]{%s}', commands[el.level], title, el.attributes.pageheading, title)
local latexStr = string.format('\\%s[%s]{%s}', commands[el.level], el.attributes.pageheading, title)
local label = string.format('\\label{%s}', el.identifier)
-- wrap in hypertarget
latexStr = string.format('\\hypertarget{%s}{%%\n%s%s}', el.identifier, latexStr, label)
return pandoc.RawBlock('latex', latexStr)
end
end

-- 
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/Jhsov6mz1SVLhbvImsIGtDSG8qg-4qI-Zd5Qbgheu2-1jaeqQqvZoCWtG8V50fuZTwajRjw07nWkok89_GCoZbdWOh2oZ6eo_T2uyFEWAcc%3D%40protonmail.com.

[-- Attachment #2: Type: text/html, Size: 3171 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: How to get \section[Short title]{Long title} in LaTeX output
  2021-06-30 12:29         ` 'Nick Bart' via pandoc-discuss
@ 2021-06-30 15:04           ` jcr
  0 siblings, 0 replies; 6+ messages in thread
From: jcr @ 2021-06-30 15:04 UTC (permalink / raw)
  To: pandoc-discuss


[-- Attachment #1.1: Type: text/plain, Size: 2634 bytes --]

Others can correct me if I'm wrong, but I don't think the filter has enough 
information to tell in all cases what a level 1 header corresponds to in 
LaTeX. If documentclass is specified in the metadata, you could deduce 
whether chapter or section will be selected by default. However, 
--top-level-headings (or the documentclass variable?) could override the 
metadata.

On Wednesday, June 30, 2021 at 2:30:07 PM UTC+2 Nick Bart wrote:

> @jcr - Brilliant, works like a charm. I had to make some trivial changes; 
> the version I’m using right now with the LaTeX article or scrartcl classes 
> is shown below. 
>
> One thing that would be nice to have, though, would be the ability to 
> switch automatically between a 'commands' list for book-like LaTeX classes 
> (starting with 'chapter'), and article-like classes (starting with 
> 'section'). I'll be trying to figure that out, but useful hints would be 
> welcome.
>
> -- Print a formatted warning to stderr
> function warnf (...)
>   io.stderr:write(string.format(...))
> end
> function Header (el)
>   -- Replace heading with raw LaTeX if pageheading is used to specify a
>   -- shorter form of the title to use in page headers.
>   if el.attributes.pageheading then
>     -- local commands = {'chapter', 'section', 'subsection'}
>     local commands = {'section', 'subsection'}
>     if el.level > #commands then
>       warnf('pageheading attribute not supported for level %d headings', 
> el.level)
>       return el
>     end
>     -- Produce LaTeX like pandoc does, but with two additional arguments
>     -- to specify a short for of the page heading to memoir.
>     local title = pandoc.utils.stringify(el)
>     -- local latexStr = string.format('\\%s[%s][%s]{%s}', 
> commands[el.level], title, el.attributes.pageheading, title)
>     local latexStr = string.format('\\%s[%s]{%s}', commands[el.level], 
> el.attributes.pageheading, title)
>     local label = string.format('\\label{%s}', el.identifier)
>     -- wrap in hypertarget
>     latexStr = string.format('\\hypertarget{%s}{%%\n%s%s}', el.identifier, 
> latexStr, label)
>     return pandoc.RawBlock('latex', latexStr)
>   end
> end
>
>

-- 
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/20fccf69-3cde-450a-ad6f-f7c2ae9b2531n%40googlegroups.com.

[-- Attachment #1.2: Type: text/html, Size: 3581 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2021-06-30 15:04 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-06-29 15:33 How to get \section[Short title]{Long title} in LaTeX output 'Nick Bart' via pandoc-discuss
2021-06-29 23:36 ` John MacFarlane
     [not found]   ` <yh480ktulgs0oj.fsf-pgq/RBwaQ+zq8tPRBa0AtqxOck334EZe@public.gmane.org>
2021-06-30  6:53     ` 'Nick Bart' via pandoc-discuss
2021-06-30  9:54     ` jcr
     [not found]       ` <bc3ac76b-306d-4ab4-9a33-6acdd2d2a38fn-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
2021-06-30 12:29         ` 'Nick Bart' via pandoc-discuss
2021-06-30 15:04           ` jcr

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).