[OS X TeX] Creating a dvi file

Bruno Voisin bvoisin at mac.com
Mon Apr 16 18:55:18 EDT 2007


On 16 avr. 07, at 19:17, Roussanka Loukanova wrote:

> Thanks, Bruno. We touched upon this issue before. You've described  
> it clearly, incl. the pending problems.
>
> On Mon, 16 Apr 2007, Bruno Voisin wrote:
>
>> There's one annoying problem, though: for each .png, .jpg and .pdf  
>> file that it attempts to include, LaTeX expects to find a  
>> matching .bb file containing bounding box information for that  
>> file. Otherwise LaTeX will complain and then stop. There may be  
>> utilities to create such .bb files from the original .png, .jpg  
>> and .pdf files, but I'm not aware of them.

Looking a bit more, it seems the identify tool of the ImageMagick  
suite (available through i-Installer, in particular) offers a way to  
get the bounding box for most graphical file formats. See:

<http://www.imagemagick.org/script/identify.php>
<http://www.imagemagick.org/script/command-line-options.php#format>

Specifically, running identify in the form:

	identify -format %@ document

where document is an image file, seems to return the bounding box as  
(without the spaces):

	width x height + llx + lly

where using the same notation as in the graphicx package:

llx = horizontal coordinate of the lower left corner
lly = vertical coordinate of the lower left corner
urx = llx + width = horizontal coordinate of the upper right corner
ury = lly + height = vertical coordinate of the upper right corner

I tested that guess with three files of mine, each in a different  
format:

$ identify -format %@ 403.jpg
1453x668+0+0
$ identify -format %@ fig8f.png
2831x1931+2+0
$ identify -format %@ fig3.pdf
382x215+0+0

Then, supposing that for a given image file the 4 quantities llx,  
lly, urx, ury have been computed based on the output of "identify - 
format %@", there are three ways to include the file in a LaTeX  
document. Suppose the image file is myimage.png:

- Method 1: use the graphics package and:

	\includegraphics[llx,lly][urx,ury]{myimage.png}

- Method 2: use the graphicx package and:

	\includegraphics[bb = llx lly urx ury]{myimage.png}

- Method 3: create a file myimage.bb containing the single line:

	%%BoundingBox: llx lly urx ury

then use either the graphics or graphicx package and:

	\includegraphics{myimage.png}

Now one problem remains, to make the process automatic: the creation  
of a script which, applied to any image file:

- Runs "identify -format %@" on that file.

- Extracts from the output, of the form (without the spaces) "width x  
height + llx + lly", the values of llx, lly, urx = llx + width, ury =  
lly + height.

- Writes, in the directory of the image file, a file with the same  
name, extension .bb and content the single line (replace llx, lly,  
urx, ury by their values):

	%%BoundingBox: llx lly urx ury

Creating such a script is way beyond my competence. One needs also  
confirmation that the output of "identify -format %@" must indeed be  
interpreted as "width x height + llx + lly".

Now I'm really stopping to look at this!

Bruno Voisin

------------------------- Helpful Info -------------------------
Mac-TeX Website: http://www.esm.psu.edu/mac-tex/
TeX FAQ: http://www.tex.ac.uk/faq
List Archive: http://tug.org/pipermail/macostex-archives/
List Reminders & Etiquette: http://www.esm.psu.edu/mac-tex/list/





More information about the MacOSX-TeX mailing list