ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
From: Wolfgang Schuster via ntg-context <ntg-context@ntg.nl>
To: mailing list for ConTeXt users <ntg-context@ntg.nl>
Cc: Wolfgang Schuster <wolfgang.schuster.lists@gmail.com>
Subject: Re: Set up external figure for particular image type
Date: Tue, 12 Jul 2022 21:07:34 +0200	[thread overview]
Message-ID: <c6d0a2e9-6b8e-a2cc-7124-6d1348e74ed2@gmail.com> (raw)
In-Reply-To: <CAANrE7q-SG6+fp9TeZ=H_bj=PRVczeTdeeNqd8fdAoJT_DJsbA@mail.gmail.com>


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

Thangalin via ntg-context schrieb am 12.07.2022 um 20:11:
> Thank you for the suggestion Hraban.
>
> The source comes from Markdown, which is converted to XML, then 
> typeset using ConTeXt. There's no Markdown-specific mechanism to 
> relate images to a particular external figure definition, 
> unfortunately. All images use the same syntax and are treated the same 
> way. The only part that differs is the file name extension (and header 
> within the file).
>
> One possibility would be something like:
> |\setupexternalfigure[ width=1em, height=1em, order={svg,pdf,png,jpg}, 
> location={local,default,global}, ] \defineexternalfigure[png][ 
> width=\textwidth, height=\textheight, ] \unprotect 
> \let\old_externalfigure=\externalfigure 
> \tolerant\def\externalfigure[#1]#,[#2]#,[#3]{% 
> \doifelseinstring{.png}{#1}{% \old_externalfigure[#1][png][#2]% }{% 
> \doifelsefileexists{#1.png}{% \old_externalfigure[#1.png][png][#2]% 
> }{% \old_externalfigure[#1][#2][#3]% }% }% } \protect |
> See: https://tex.stackexchange.com/a/650221/2148
>
> I was wondering if there was a simpler or a solution that's more the 
> ConTeXt-way?

When you use XML as input you can add additional code to the setups block
which uses \externalfigure to load the image.


\setupexternalfigures [location={local,global,default}]

\defineexternalfigure [jpg] [width=4cm]
\defineexternalfigure [png] [width=8cm]

\starttexdefinition includegraphics #1

     \splitfilename{#1}

     \processaction
         [\splitofftype]
         [    jpg=>{\externalfigure[#1][jpg]},
              png=>{\externalfigure[#1][png]},
          default=>{\externalfigure[#1]},
          unknown=>{\externalfigure[#1]}]

\stoptexdefinition

%\starttexdefinition includegraphics #1
%
%    \getfiguredimensions[#1]
%
%    \processaction
%        [\figurefiletype]
%        [    jpg=>{\externalfigure[#1][jpg]},
%             png=>{\externalfigure[#1][png]},
%         default=>{\externalfigure[#1]},
%         unknown=>{\externalfigure[#1]}]
%
%\stoptexdefinition

\starttext

\includegraphics{hacker.jpg}

\includegraphics{mill.png}

\includegraphics{cow.pdf}

\stoptext

Wolfgang


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

[-- Attachment #2: Type: text/plain, Size: 496 bytes --]

___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!

maillist : ntg-context@ntg.nl / https://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : https://www.pragma-ade.nl / http://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki     : https://contextgarden.net
___________________________________________________________________________________

  parent reply	other threads:[~2022-07-12 19:07 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-08 15:46 Thangalin via ntg-context
2022-07-08 16:29 ` Henning Hraban Ramm via ntg-context
2022-07-12 18:11   ` Thangalin via ntg-context
2022-07-12 19:01     ` Rik Kabel via ntg-context
2022-07-18 16:01       ` Thangalin via ntg-context
2022-07-12 19:07     ` Wolfgang Schuster via ntg-context [this message]
2022-07-18 17:10       ` Thangalin via ntg-context
2022-07-18 20:14         ` Wolfgang Schuster via ntg-context
2022-08-01  0:29           ` Thangalin via ntg-context
2022-08-01  7:07             ` Hans Hagen via ntg-context
2022-07-12 22:33     ` Albert Krewinkel via ntg-context
2022-07-18 16:03       ` Thangalin via ntg-context

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=c6d0a2e9-6b8e-a2cc-7124-6d1348e74ed2@gmail.com \
    --to=ntg-context@ntg.nl \
    --cc=wolfgang.schuster.lists@gmail.com \
    /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).