Changes

Jump to navigation Jump to search
m
Fixed one typo, one small grammatical error.
< [[Graphics]] | [[Combinations]] | [[File Formats|Supported Media File Formats]] | [[Including pages from PDF documents]] | [[Animation]] >= Usage =
== Direct use of The simplest way to insert an image ==is to use:
<texcode>\externalfigure[logo.pdf]</texcode> This way you can use your command places the PDF image <tt>mypiclogo.pdf</tt> in a {{cmd|vbox}}; the width and height of the image are equal to the natural dimensions of the image. To set the width of the image to a specific size, say <tt>1cm</tt>, use: <texcode>\externalfigure[mypiclogo.pdf][width=1cm]</texcode>
Additional parameters:Similarly, to set the height of the image to a specific size, say <texcodett>\externalfigure[file or reference name][key=value, key=value, ...]2cm</texcodett>, use:
* scale = ''scaling value''* factor = max, fit, broad* wfactor, hfactor = max, fit, broad, ''value''* width, <texcode>\externalfigure[logo.pdf][height = ''dimension''* frame = on, off* preset, preview, repeat, object = yes, no* display = ''file name''* type, method = eps, mps, pdf, tif, png, jpg, mov, tex2cm]</texcode>
If only one dimension the <tt>width</tt> or <tt>height</tt> of the image is givenspecified, scaling the other dimension is proportionalscaled appropriately to keep the aspect ratio.
== Where ConTeXt finds your picture files ==To include a specific page, say page 5, of a multi-page PDF file, use:
ConTeXt looks in the current and parent directory plus those given in <tttexcode>texmf\externalfigure[logo.cnfpdf][page=5]</tttexcode>.
You can define your own image directory with:<texcode>\setupexternalfigures[directory={../pictures}]</texcode>or even for multiple directories:<texcode>\setupexternalfigures[directory={../drawings,../bitmaps}]</texcode>You can define These four variations cover the path relative or absolute, but most common use always forward slashes!cases.
== Referenced Pictures File Formats ==
Declaration of all used pictures in your environment, project or header file ConTeXt natively supports the image formats enumerated below. The image format is better than direct use of determined from the file names in your codeextension (case insensitive).
* '''PDF''': File extension <texcodett>.pdf</tt>* '''MPS''' (MetaPost output): File extension <tt>.mps</tt> or <tt>.&lt;digits&gt;</tt>* '''JPEG''': File extension <tt>.jpg</tt> or <tt>.jpeg</tt>* '''PNG''': File extension <tt>.png</tt>\useexternalfigure[reference name][file name][options]* '''JPEG 2000''': File extension <tt>.jp2</tt>* '''JBIG''' or '''JBIG2''': File extension <tt>.jbig</tt>, <tt>.jbig2</tt>, or <tt>.jb2</texcodett>
Same options as above. You can even inherit them like this:An old page (2010), gives details on supported [[File Formats|file formats]]
<texcode>\useexternalfigure[dummy][nofile][width=\textwidth]\useexternalfigure[myone][my_pic_one][dummy]\useexternalfigure[mytwo][my_pic_two][dummy]= Image Conversion ==
Somewhere The image file formats listed in your text there's \externalfigure[myone]the previous section are the ones that may be embedded directly in a PDF.ConTeXt also supports a few other formats that are first converted to PDF using an external program. Of course, for such a conversion to work, the corresponding converter must be in the <tt>PATH</texcodett>.
<table><tr class="odd"><td align= Place picture in the text "left">Format</td><td align="left">Extension</td><td align="left">Converter</td></tr><tr class="even"><td align="left"><strong>SVG</strong></td><td align="left"><code>.svg</code>, <code>.svgz</code></td><td align="left"><code>inkscape</code></td></tr><tr class="odd"><td align="left"><strong>EPS</strong></td><td align="left"><code>.eps</code>, <code>.ai</code></td><td align="left"><code>gs</code> (or <code>gswin32c</code> on Windows) from Ghostscript</td></tr><tr class="even"><td align="left"><strong>GIF</strong></td><td align="left"><code>.gif</code></td><td align="left"><code>gm convert</code> from GraphicsMagick</td></tr><tr class="odd"><td align="left"><strong>TIFF</strong></td><td align="left"><code>.tiff</code></td><td align="left"><code>gm convert</code> from GraphicsMagick</td></tr><tr class="even"><td align="left"><strong>BMP</strong></td><td align="left"><code>.bmp</code></td><td align="left"><code>gm convert</code> from GraphicsMagick</td></tr></table>
You can directly place The conversion generates a figure in a text using PDF file with prefix <tt>\externalfigure[cow]m_k_i_v_</tt>. If you want to align it not to the baseline, but lower you can try whether and a suffix <tt>\bbox{\externalfigure[cow]}.pdf</tt> does added to the name of the right thingoriginal file. The result is cached, otherwise you have to tweek <tt>\smash{\lower24pt\hbox{\externalfigure[cow]}}</tt>and the conversion is re-run if the timestamp of the original file is newer than that of the converted file.
== Flow text around In LMTX, the file name contains a picture ==MD5 hash of the relevant source image parameters (resolution, dimensions, ...), e.g.:
That's an undocumented feature Hans told us about in a [http://archive<pre>hacker_jpg_c60ccda70ef92e32d7a6334f31c23259.contextgardengray.net/messagepdf </20080624.074046.56e76622.en.html mail from 2008-06-24].pre>
It's [httpis possible to change the converter used with the following code://source.contextgarden.net/tex/context/base/cont-new.tex?search=hangaround in the source].
<context source=yespre>\setuppapersize[A5]startluacode\setupexternalfigures[location={localfunction downsampler(oldname,default}]newname, resolution) if not resolution or resolution == "" then\starthangaround{\externalfigure[cow][width resolution =4cm]}50\input tufte end os.execute(string.format( 'gm convert -density %ix%i "%s" "%s"', resolution, resolution, oldname, newname)\stophangaround )</context>end
{{cmd|starthangaround}} is influenced by {{cmd|setuphanging}}[distance-- Set the PDF and default TIFF converters to the above function.figures.converters.tif.pdf =downsamplerfigures.converters.tif.]</cmd> (distance may even be negativedefault = downsampler-- Hint: This works also for jpg or png!), but takes no parameters itself.\stopluacode
Update, December 11, 2012:
Now there are options for {{cmd|starthangaround}}. If you want to have the image to the right, you can do:
<texcode>
\setuppapersize[A5]
\starttext
\starthanging[right]{ % Substitute any TIFF here. \externalfigure[cow.tiff][width=4cm]} \input tufte\stophanging
\stoptext
</pre> See also {{src|grph-inc.lua}} == Interaction == By default, the interactive elements of the included PDF file are discarded. To enable the interactive elements of the included PDF file, use<texcode>\externalfigure[filename.pdf][interaction=yes]</texcode> For further reading, don't forget [[Including pages from PDF documents]]. == Image Directory == By default, ConTeXt searches an image in the current directory, the parent directory, and the grand-parent directory. To search for images in other directories, for example a <tt>./images</tt> subdirectory and <tt>/home/user/images</tt>, use: <texcode>\setupexternalfigures[directory={images, /home/user/images}]</texcode> Note: always use forward slashes (`/`) in path names, regardless of operating system. The default search order is: the current directory, the parent directory, the grand-parent directory, and then the paths specified by the <tt>directory</tt> key. To restrict image search only to the paths specified by the <tt>directory</tt> key, use: <texcode>\setupexternalfigures[location=global]</texcode> To restore the default search behavior, use: <texcode>\setupexternalfigures[location={local,global}]</texcode> The ConTeXt distribution includes three sample images: <tt>cow.pdf</tt>, <tt>mill.png</tt>, and <tt>hacker.jpg</tt>, that are useful when creating minimum working examples to illustrate a bug on the mailing list. These images are located in the <tt>TEXMF</tt> directory. To add the <tt>TEXMF</tt> directory to the image search path, use: <texcode>\setupexternalfigures[location={local,global,default}]</texcode> The above alternative adds the ''entire'' <tt>TEXMF</tt> directory to the search path, ''including the'' <tt>doc/</tt> ''directory!'' Therefore, one needs to be extremely careful when using this option. In fact, I would advise not using <tt>location=default</tt> except for illustrative minimal working examples. == Remote Images == The {{cmd|externalfigure}} command supports reading files from web servers, for example: <texcode>\externalfigure[http://tug.org/images/logobw.jpg]</texcode>When a document containing a remote file is compiled for the first time, the remote file is downloaded from the server and stored in the LuaTeX cache directory. This cached file is used during subsequent runs. Normally, the remote image is downloaded again if the image in the cache is older than 1 day. To change this threshold to, for example, 2 minutes (120 seconds), either add <texcode>\enabledirectives[schemes.threshold=120]</texcode> in the ConTeXt file, or compile the ConTeXt file using the command <pre>context --directives=schemes.threshold=120 <em>filename</em></pre>The variable <tt>schemes.threshold</tt> is global, so changing its value affects all other macros like <tt>\input</tt>, <tt>\usemodule</tt>, <tt>\component</tt>, etc. that load remote files. === HTTP Proxy === To use an http proxy for fetching images, the http variable ([http://w3.impa.br/~diego/software/luasocket/http.html LuaSocket]) has to be set up as follows:
There are even more options:
<texcode>
\setuppapersize[A5]\starttext\starthanging[location=right,n=2,distancectxlua{http =1cm]{\externalfigure[cow][widthrequire("socket.http"); http.PROXY =4cm]"http://proxy.example.com:3128"} \input tufte\stophanging\stoptext
</texcode>
== Pictures as [[Floating Objects]] ==Replace `http://proxy.example.com:3128` with the proxy URL.
Floats are numbered and placed by ConTeXt, and they can get a caption.To disable the proxy again:
<texcode>
\placefigure[place]ctxlua{My Caption}{\externalfigure[myone]http = require("socket.http"); http.PROXY = nil}
</texcode>
<tt>place</tt> is one of:
left, right, here, top, bottom, inleft, inright, inmargin, margin, page, opposite, always, force, tall
You get ''no'' caption with <tt>none<=== HTTPS === For self-signed certificates retrieved over HTTPS, the `curl` command requires a flag to retrieve insecure files, which is not enabled by default. Open `tex/texmf-context/tex/context/base/mkiv/tt>data-sch.lua` to find: You get a table of figures with {{cmd|showexternalfigures}}<codepre>[alternativelocal function runcurl(name,cachename) -- we use sockets instead or the curl library when possible local command =a]"curl --silent --create-dirs --output " .. cachename .. " " .. name os.spawn(command)end</codepre>. Alternatives (styles) a, b and c are predefined.
The second brackets of {{cmd|placefigure}} can contain any command, e.g. {{cmd|getbuffer}}.Insert the `-k` or `--insecure` option:
You find more about floats ([[Floating Objects]]) in the manual<pre> local command = "curl --insecure --silent --create-dirs --output " .. cachename .. " " .. name</pre>
== Floating graphics with an enlarged, shaded background Inline Images ==
To place a figure in, say, Embedding inline images via base64 encoding using the right margin with a shaded background that is slightly larger than the figure memstream function (to give a bit of breathing roomsupports pdf and png streams):
<texcode>
\setupcolors[state=start]startluacode\placefigure[right,high,none]{}{\framed[framelocal cow =on, offset=10pt, framecolor=lightgray,mime.unb64("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Y1NldFsvUERGXQovQ29sb3JTcGFjZSAxMCAwIFIKL0V4dEdTdGF0ZSAxMSAwIFIKPj4KL0NvbnRlbnRzIDUgMCBSCj4+CmVuZG9iagozIDAgb2JqCjw8IC9UeXBlIC9QYWdlcyAvS2lkcyBbCjQgMCBSCl0gL0NvdW50IDEKPj4KZW5kb2JqCjEgMCBvYmoKPDwvVHlwZSAvQ2F0YWxvZyAvUGFnZXMgMyAwIFIKPj4KZW5kb2JqCjcgMCBvYmoKPDwvVHlwZS9FeHRHU3RhdGUKL09QTSAxPj5lbmRvYmoKOSAwIG9iagpbL1NlcGFyYXRpb24KL0JsYWNrCi9EZXZpY2VDTVlLCjggMCBSXWVuZG9iagoxMCAwIG9iago8PC9SOQo5IDAgUj4+CmVuZG9iagoxMSAwIG9iago8PC9SNwo3IDAgUj4+CmVuZG9iago4IDAgb2JqCjw8L0ZpbHRlci9GbGF0ZURlY29kZQovRnVuY3Rpb25UeXBlIDQKL0RvbWFpblswCjFdCi9SYW5nZVswCjEKMAoxCjAKMQowCjFdL0xlbmd0aCAyOT4+c3RyZWFtCnicq04pLVAwUMgtzVFIrUjOUMDPNQQzawHfFRGFCmVuZHN0cmVhbQplbmRvYmoKMiAwIG9iago8PC9Qcm9kdWNlcihBRlBMIEdob3N0c2NyaXB0IDguNTIpCi9DcmVhdGlvbkRhdGUoRDoyMDA2MDUxNTEyMjA1OSkKL01vZERhdGUoRDoyMDA2MDUxNTEyMjA1OSkKL0NyZWF0b3IoQ29yZWxEUkFXISkKL1RpdGxlKENPVy5FUFMpPj5lbmRvYmoKeHJlZgowIDEyCjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDAwNDYzNiAwMDAwMCBuIAowMDAwMDA0OTg2IDAwMDAwIG4gCjAwMDAwMDQ1NzcgMDAwMDAgbiAKMDAwMDAwNDQyNiAwMDAwMCBuIAowMDAwMDAwMDE1IDAwMDAwIG4gCjAwMDAwMDQ0MDYgMDAwMDAgbiAKMDAwMDAwNDY4NCAwMDAwMCBuIAowMDAwMDA0ODM4IDAwMDAwIG4gCjAwMDAwMDQ3MjUgMDAwMDAgbiAKMDAwMDAwNDc3OCAwMDAwMCBuIAowMDAwMDA0ODA4IDAwMDAwIG4gCnRyYWlsZXIKPDwgL1NpemUgMTIgL1Jvb3QgMSAwIFIgL0luZm8gMiAwIFIKL0lEIFs8ODE0NjQ5NTc3Qzg3MTE1QzRDQzBDQjg0QkU3RTQ1MEY+PDgxNDY0OTU3N0M4NzExNUM0Q0MwQ0I4NEJFN0U0NTBGPl0KPj4Kc3RhcnR4cmVmCjUxMzMKJSVFT0YK") background=colorfigures.setmemstream("inline", backgroundcolor=lightgray]%cow) context.externalfigure({\externalfigure[sample"memstream:///cow.pdf][scale=500]}inline"})\input knuthstopluacode
</texcode>
== Movies Custom Processing == The following example changes the width of images based on file name extensions:
Movies aren't recognized automatically yet, you need a more verbose declaration:
<texcode>
\setupexternalfigures[ location={local,global,default}, width=\textwidth]\defineexternalfigure[svg][width=1cm]\defineexternalfigure[jpg][width=2cm]\defineexternalfigure[png][width=4cm] % Won't be applied because there's no process action.% Default (\textwidth) is used, as defined above.\defineexternalfigure[pdf][width=6cm] \starttexdefinition includegraphics #1 \splitfilename{#1}  \processaction[\splitofftype][ jpg=>{\externalfigure[demo.mov#1][labeljpg]}, png=demo>{\externalfigure[#1][png]},width svg=>{\externalfigure[#1][svg][conversion=4cmmp]},height default=4cm>{\externalfigure[#1]},preview unknown=yes>{\externalfigure[#1]} ]\stoptexdefinition \starttext \includegraphics{kitten.jpg} \includegraphics{mill.png} \includegraphics{cow.pdf} \includegraphics{tiger.svg}\stoptext
</texcode>
<tt>preview=yes</tt> shows the first image as preview.
You find more about interactive Elements in [http://www.pragma-ade.com/general/manuals/mwidget-s.pdf mwidget-s.pdf]
Unfortunately, people who are fond of Linux cannot embed movies because the linux release of acroread doesnIt't support thats also possible to use {{cmd|setfigureconversion}} to instruct ConTeXt to use MetaPost when rendering SVG files. An alternative solution consists in launching your prefered player (MPlayer) from acroreadSuch as
<texcode>
\defineprogramsetfigureconversion[dummy.mpegsvg][dummy.mpeg.shmp]
\starttext
\goto{externalfigure[kitten.jpg][width=2cm] \externalfigure[dummy-previewmill.png] [width=04cm] \externalfigure[cow.48pdf] [width=6cm] \textwidthexternalfigure[tiger.svg]}[program(dummy.mpeg{})width=1cm]
\stoptext
</texcode>
= Transformations = == Image Scaling == {{ note | If either <tt>width</tt> or <tt>height</tt> is specified, then the <tt>scale</tt> key has no effect. }}  To scale an image use the <tt>scale</tt> key: <tt>scale=1000</tt> corresponds to the original dimensions of the image, <tt>scale=500</tt> scales the image to 50% of the original size, <tt>scale=1500</tt> scales the images to 150% of the original size, and so on. For example: <texcode>\externalfigure[logo.pdf][scale=500]</texcode> scales the image to 50% of its size. Use <tt>\setupexternalfigures</tt> to set the scale of all images. For example, to scale all images to be twice their original size, use: <texcode>\setupexternalfigures[scale=2000]</texcode> In addition, the <tt>xscale</tt> and <tt>yscale</tt> keys scale the image in only one dimension. For example: <texcode>\externalfigure[logo.pdf][xscale=500]\externalfigure[logo.pdf][yscale=500]</texcode> Scaling changes the visible size of a picture, but not the data or file size. If you want to reduce your file size by decreasing image resolution, see [[Downsampling]]. == Image Dimension Restriction == ConTeXt can limit included images to particular dimensions. For example, to ensure that an included image is not more than <tt>0.2\textwidth</tt>: <texcode>\externalfigure[logo.pdf][maxwidth=0.2\textwidth]</texcode> If <tt>maxwidth</tt> is specified and the width of the image is less than <tt>maxwidth</tt>, then the image is not scaled; if the width of the image is greater than <tt>maxwidth</tt>, then the width is restricted to <tt>maxwidth</tt> and the height is scaled appropriately to maintain the original aspect ratio. The option <tt>maxheight</tt> is analogous to <tt>maxwidth</tt>, for checking the height of the image. For example, to ensure that figures do not overflow the text~area, one may set: <texcode>\setupexternalfigures [maxwidth=\textwidth, maxheight=0.8\textheight]</texcode> == Image Rotation == Rotate included images by 90°, 180°, or 270° using the <tt>orientation</tt> key. For example: <texcode>\externalfigure[logo.pdf][orientation=90]</texcode> To rotate by an arbitrary angle, use the {{cmd|rotate}} command. For example: <texcode>\rotate[rotation=45]{\externalfigure[logo.pdf]}</texcode> == Image Mirroring == To mirror (flip) an image, use the generic {{cmd|mirror}} command. For example, to mirror horizontally: <texcode>\mirror{\externalfigure[logo.pdf]}</texcode> To mirror vertically, first rotate the image by 180° and then mirror it: <texcode>\mirror{\externalfigure[logo.pdf][orientation=180]}</texcode> == Image Clipping == Clip an image using the generic {{cmd|clip}} command. For example, to clip the original image to a <tt>1cm x 2cm</tt> rectangle at an offset of <tt>(3mm,5mm)</tt> from the top left corner: <texcode>\clip[width=1cm, height=2cm, hoffset=3mm, voffset=5mm] {\externalfigure[logo.pdf]}</texcode> As another example, this cuts the image into a <tt>3x3</tt> pieces and then outputs the <tt>(2,2)</tt> piece: <texcode>\clip[nx=3,ny=3,x=2,y=2] {\externalfigure[logo.pdf]}</texcode>  In PDF files, it is possible to specify different size information in PDF headers MediaBox, TrimBox, CropBox, and ArtBox. To clip to one of these sizes, use <texcode>\externalfigure[logo.pdf][size=art]</texcode> Other options are: `none` (detault), `media` for MediaBox, `crop` for CropBox, `trim` for TrimBox, and `art` for ArtBox. = Troubleshooting = This section describes various tips for discovering problems with embedded images. == Visualize Bounding Box == If, for instance, the image is taking more space than expected, it can be useful to visualize the bounding box of the image. To do this: <texcode>\externalfigure[logo.pdf][frame=on]</texcode> ConTeXt includes a Perl script <tt>pdftrimwhite</tt> that removes extra white space at the borders of a PDF file. To run this script: <pre>mtxrun --script pdftrimwhite [flags] input output</pre> The most important flag is <tt>--offset=dimen</tt>, which keeps some extra space around the trimmed image. Similar functionality is provided by another Perl script dummy, <tt>pdfcrop</tt>, that is included in most TeX distributions.mpeg == Diagnostic Tracking == To get diagnostic information about image inclusion, enable the tracker <tt>graphics.sh should containlocating</tt> by editing the ConTeXt file and adding<texcode>\enabletrackers[graphics.locating]</texcode> Alternatively, compile the ConTeXt file using: <texcode>context --trackers=graphics.locating filename</texcode> The tracker writes diagnostics to the console. Suppose we use <tt>\externalfigure[somefile.pdf]</tt> and ConTeXt finds the file in the current search path; then the following information is printed on the console: <pre>graphics &gt; inclusion &gt; locations: local,globalgraphics &gt; inclusion &gt; path list: . .. ../..graphics &gt; inclusion &gt; strategy: forced format pdfgraphics &gt; inclusion &gt; found: somefile.pdf -&gt; somefile.pdfgraphics &gt; inclusion &gt; format natively supported by backend: pdf</pre>If the file <tt>somefile.pdf</tt> is not found in the current search path, then the following information is printed on the console (even if the <tt>graphics.locating<nowiki/tt>tracker is not set): <pre>graphics &gt; inclusion &gt; strategy: forced format pdfgraphics &gt; inclusion &gt; not found: somefile.pdfgraphics &gt; inclusion &gt; not found: ./somefile.pdfgraphics &gt; inclusion &gt; not found: ../somefile.pdfgraphics &gt; inclusion &gt; not found: ../../somefile.pdfgraphics &gt; inclusion &gt; not found: images/somefile.pdfgraphics &gt; inclusion &gt; not found: /home/user/images/somefile.pdfgraphics &gt; inclusion &gt; format not supported: </pre>and a placeholder gray box is put in the output: <context> </context> Sometimes, one would rather use a placeholder image for an image that is yet to be made. In such cases, load the MP library <tt>dum</tt> via: <texcode>\useMPlibrary[dum]</texcode> Then, whenever an image file is not found in the current search path, a random MetaPost image is shown in the output. <context> </context> FILE=$= Leading Paragraph == Using {{cmd|externalfigure}}<tt>[...]</tt> at the beginning of a paragraph results in a line break after the image. This is because {{cmd|externalfigure}} is a {{cmd|vbox}} and when a {{cmd|vbox}} is encountered at (basename "$0"what appears to be); mplayer the beginning of a paragraph, it remains in vertical mode. To prevent this, add {{cmd|dontleavehmode}} before {{cmd|externalfigure}}, like this: <texcode>\dontleavehmode\externalfigure[...] ... first line ...</texcode> = Multiple Image Settings = == Image Settings == Suppose your document contains many side-fs by-zoom $side images, and you want all of these images to be of the same size. In addition, you want to control the size of all images by changing only one setup. To do this, you can use the {FILE{cmd|defineexternalfigure}} macro, which defines a named collection of image settings. For example, to define a collection where the image width is <tt>3cm</tt>, use: <texcode>\defineexternalfigure[logo-settings] [width=3cm]</texcode> And then to use these settings in an image, use: <texcode>\externalfigure[group.shpdf][logo-settings]</}texcode> or, if you want to add or override settings, use: </nowikitexcode>\externalfigure[group.pdf][logo-settings] [height=2cm]</pretexcode== Image Labels ==
== Full page Suppose your document contains an image at multiple locations; all of these images ==* See [[Simple Cover Page]]are to be of the same size, which is not necessarily the same as the natural size of the image. Furthermore, as before, you want to set the size of all the images by changing only one setup. Here, the macro to use is {{cmd|useexternalfigure}}, which defines a symbolic label for inserting an image plus settings. For example:
<texcode>\useexternalfigure[mylogo] [logo.pdf][width== Picture with hyperlink ==2cm]</texcode>
This is defines an example of how image label <tt>mylogo</tt> that maps to make a picture interactivethe image file <tt>logo. When the user clicks it, it invokes the user's browser pdf</tt> and sets its width to <tt>2cm</tt>. This image label may be used as a given URL.normal image filename:
<texcode>\setupinteractionexternalfigure[state=startmylogo]</texcode>
\starttext
This is a cow: \goto{\externalfigure[cow][height=2ex]}[url(http://en.wikipedia.org/wiki/Cow)]
\stoptext
</texcode>
=== HTTP Proxy ==Movies =
To use an http proxy for fetching images, the http variable ([http://w3.impa.br/~diego/software/luasocket/http.html LuaSocket]) has to Movies aren't recognized automatically yet; they must be set up as followsdelcared verbosely:
<texcode>
\ctxlua{http externalfigure[demo.mov][label=demo,width=4cm,height= require("socket.http"); http.PROXY 4cm,preview= "http://proxy.example.com:3128"}yes]
</texcode>
Replace "<tt>preview=yes</tt> shows the first image as preview.You find more about interactive Elements in [http://proxywww.examplepragma-ade.com:3128" with the proxy URLnl/general/manuals/mwidget-s.pdf 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:
To disable the proxy again:<texcode>\defineprogram[dummy.mpeg][dummy.mpeg.sh]
<texcode>\starttext\ctxluagoto{http \externalfigure[dummy-preview][width= require0.48\textwidth]}[program("socketdummy.http"mpeg{}); http.PROXY = nil}]\stoptext
</texcode>
The script dummy.mpeg.sh should contain:<pre><nowiki>FILE== See also ==* [[Animation]]$(basename "$0"); mplayer -fs -zoom ${FILE/.sh/}* [[Example photo page layout]]</nowiki></pre>* [[Graphical_text_manipulation|scaling, rotating, mirroring, clipping]]
[[Category:Graphics]]
38

edits

Navigation menu