Difference between revisions of "Using Graphics"

From ConTeXt wiki
(Flow text around a picture)
m (added \setupexternalfigures)
Line 66: Line 66:
 
It's [http://source.contextgarden.net/tex/context/base/cont-new.tex?search=hangaround in the source].
 
It's [http://source.contextgarden.net/tex/context/base/cont-new.tex?search=hangaround in the source].
  
<context source="yes">
+
<texcode>
 +
\starthangaround{\externalfigure[cow]}
 +
\input tufte
 +
\stophangaround
 +
</texcode>
 +
<context>
 +
\setupexternalfigures[location={local,default}]
 
\starthangaround{\externalfigure[cow]}
 
\starthangaround{\externalfigure[cow]}
 
\input tufte
 
\input tufte

Revision as of 11:46, 18 January 2009

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

It's in the source.

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

\starthangaround is influenced by \setuphanging[distance=...] (distance may even be negative!), but takes no parameters itself.

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.