Am 2018-02-02 um 12:08 schrieb Rudolf Bahr <qu...@quasi.de>:

> On Fri, Feb 02, 2018 at 08:40:08AM +0100, Henning Hraban Ramm wrote:
>> Ahoi,
>> 
>> I’m using a Lua function to calculate image sizes, cropping etc.
>> This snippet:
>> 
>> local filename = figures.current().status.fullname
>> local pic = img.scan{filename = filename}
>> 
>> ... works most of the time, but sometimes the "current" image is the 
>> previous one, might be because I’m using layers and postponing.
>> So I’d like to use just the same filename as I give to \externalfigure, i.e. 
>> without path and extension.
>> How can I address the same file path resolver in my Lua function?
>> 
> 
> Moin, Hraban,
> 
> where could I find something about those lua functions?

Maybe here: http://source.contextgarden.net/tex/context/base/mkiv/grph-inc.lua

The image placement functions I’m using are something Hans and others helped me 
accomplish during the last meeting; AFAIK there’s no real documentation.

Find attached the lua part. It’s probably more complicated than necessary


I could work around my original problem: I’m using my image with 
\externalfigure in an invisible place first, so it’s current, and 
figures.current().status is the right one. :)

Here’s my (convoluted) placement macro:

% image on empty page, caption in margin
% usage:
% \startpostponing[pagenumber]
% \pagefig[reference]{caption}{filename}
% \stoppostponing
% postponing is important, otherwise the page numbering gets wrong
\def\pagefig{\dosingleempty\doPagefig}
\def\doPagefig[#1]#2#3{
% calculate image size
\startfullpagemakeup
  \externalfigure[#3][width=1mm] % dummy to set image as current
  \def\myClipHeight{\ctxlua{ctxClipHeight("#3", \Resolution)}}
  \def\mystartY{\ctxlua{ctxStartY("#3", \Resolution)}}
  % image
  \setlayerframed[bglayer][%
    frame=off,
    offset=overlay,
    x=21mm,
    y=\mystartY,
    height=\myClipHeight,
    width=\textwidth,
    align=flushleft,
    ]{%
    \clip[
      width=\textwidth,
      height=\myClipHeight,
      hoffset=0mm,
      voffset=0mm, % i.e. clip bottom! TODO: options!
      ]{\externalfigure[#3][width=\textwidth]}
        }
  \textreference[pre#1]{\myImgHeight}
  % caption
  \setlayerframed[bglayer][%
  frame=off,
  offset=overlay,
  linecorrection=on,
  x=143mm,y=\dimexpr\mystartY + 3pt\relax,
  height=\myClipHeight,
  width=\outermarginwidth,
  align={flushleft,low},
  valign=bottom,
  ]{%
  \vbox{
    \textreference[#1]{\strut #2}\vfill #2
  }}
\stopfullpagemakeup
}


usage example:

\startpostponing[82]
\pagefig[alinari-stelzen]{Gebrüder Alinari (Florenz, 19. 
Jhd.)}{ka34/img/Gebr-Alinari_Kinder_auf_Stelzen}
\stoppostponing



Greetlings, Hraban
---
http://www.fiee.net
http://wiki.contextgarden.net
GPG Key ID 1C9B22FD

Attachment: grph-imagesize.lua
Description: Binary data

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

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

Reply via email to