Difference between revisions of "Using Graphics"

From Wiki
Jump to navigation Jump to search
m (→‎Flow text around a picture: link to archived ML posting)
Line 61: Line 61:
  
 
== Flow text around a picture ==
 
== Flow text around a picture ==
 +
 +
That's an undocumented feature. Hans told us about in a [http://archive.contextgarden.net/message/20080624.074046.56e76622.en.html mail from 2008-06-24].
  
 
<context source="yes">
 
<context source="yes">

Revision as of 18:56, 2 September 2008

< Graphics | Combinations | Including pages from PDF document | Animation >

Direct use of an image

This way you can use your image mypic.pdf :

\externalfigure[mypic]

Additional parameters:

\externalfigure[file or reference name][key=value, key=value, ...]
  • scale = scaling value
  • factor = max, fit, broad
  • wfactor, hfactor = max, fit, broad, value
  • width, height = dimension
  • frame = on, off
  • preset, preview, repeat, object = yes, no
  • display = file name
  • type, method = eps, mps, pdf, tif, png, jpg, mov, tex

If only one dimension is given, scaling is proportional.

Where ConTeXt finds your picture files

ConTeXt looks in the current and parent directory plus those given in texmf.cnf.

You can define your own image directory with:

\setupexternalfigures[directory={../pictures}]

or even for multiple directories:

\setupexternalfigures[directory={../drawings,../bitmaps}]

You can define the path relative or absolute, but use always forward slashes!

Referenced Pictures

Declaration of all used pictures in your environment, project or header file is better than direct use of file names in your code.

\useexternalfigure[reference name][file name][options]

Same options as above. You can even inherit them like this:

\useexternalfigure[dummy][nofile][width=\textwidth]
\useexternalfigure[myone][my_pic_one][dummy]
\useexternalfigure[mytwo][my_pic_two][dummy]

Somewhere in your text there's \externalfigure[myone].

Place picture in the text

You can directly place a figure in a text using \externalfigure[cow]. If you want to align it not to the baseline, but lower you can try whether \bbox{\externalfigure[cow] does the right thing, otherwise you have to tweek \smash{\lower24pt\hbox{\externalfigure[cow]}}

Flow text around a picture

That's an undocumented feature. Hans told us about in a mail from 2008-06-24.

\starthangaround{\externalfigure[cow]}
\input tufte
\stophangaround

Pictures as Floating Objects

Floats are numbered and placed by ConTeXt, and they can get a caption.

\placeexternalfigure[place]{My Caption}{\externalfigure[myone]}

place is one of: left, right, here, top, bottom, inleft, inright, inmargin, margin, page, opposite, always, force, tall

You get no caption with none. You get a table of figures with \showexternalfigures[alternative=a]. Alternatives (styles) a, b and c are predefined.

The second brackets of \placeexternalfigure can keep any command, e.g. \getbuffer.

You find more about floats (Floating Objects) in the manual.

Movies

Movies aren't recognized automatically yet, you need a more verbose declaration:

\externalfigure[demo.mov][label=demo,width=4cm,height=4cm,preview=yes]

preview=yes shows the first image as preview. You find more about interactive Elements in mwidget-s.pdf

Unfortunately, people who are fond of Linux cannot embed movies because the linux release of acroread doesn't support that. An alternative solution consists in launching your prefered player (MPlayer) from acroread:

\defineprogram[dummy.mpeg][dummy.mpeg.sh]

\starttext
\goto{\externalfigure[dummy-preview][width=0.48\textwidth]}[program(dummy.mpeg{})]
\stoptext

The script dummy.mpeg.sh should contain:

FILE=$(basename "$0"); mplayer -fs -zoom ${FILE/.sh/}

See also Animation.