Difference between revisions of "Using Graphics"

From ConTeXt wiki
m (See also: +)
(section on floating figures with shaded background)
Line 98: Line 98:
  
 
You find more about floats ([[Floating Objects]]) in the manual.
 
You find more about floats ([[Floating Objects]]) in the manual.
 +
 +
== Floating graphics with an enlarged, shaded background ==
 +
 +
To place a figure in, say, the right margin with a shaded background that is slightly larger than the figure (to give a bit of breathing room):
 +
 +
<texcode>
 +
\setupcolors[state=start]
 +
\placefigure[right,high,none]{}{\framed[frame=on, offset=10pt, framecolor=lightgray,
 +
    background=color, backgroundcolor=lightgray]%
 +
  {\externalfigure[sample/cow.pdf][scale=500]}}
 +
\input knuth
 +
</texcode>
  
 
== Movies ==
 
== Movies ==

Revision as of 01:53, 2 January 2011

< Graphics | Combinations | Supported Media File Formats | 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.

\setupexternalfigures[location={local,default}]
\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.

\placefigure[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 \placefigure can keep any command, e.g. \getbuffer.

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

Floating graphics with an enlarged, shaded background

To place a figure in, say, the right margin with a shaded background that is slightly larger than the figure (to give a bit of breathing room):

\setupcolors[state=start]
\placefigure[right,high,none]{}{\framed[frame=on, offset=10pt, framecolor=lightgray,
    background=color, backgroundcolor=lightgray]%
  {\externalfigure[sample/cow.pdf][scale=500]}}
\input knuth

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/}

Full page images

See also