I am trying to generate a figure produced by Graphics command and export it to a pdf file having a fixed width. I followed the answer in these links, 1 and 2. These two solutions worked well with Plot and ListPlot as they are mentioned. However, they could not work in the same way in case of Graphics. A sample code used for testing is:

pts = {{0, 0}, {0, 1}, {1, 1}, {1, 0}, {0, 0}};
pts1 = Table[i + {0.5, 0.5}, {i, pts}];
Show[Graphics[{Line[pts], Line[pts1]}],  ImageSize -> {9*72/2.54, Automatic}]
Export["test.pdf", %]

As mentioned in the comments, followed a slightly modified code as

 Graphics[{Line[pts], Line[pts1]}]
 Export["test1.pdf", Show[%, ImageSize -> {9*72/2.54, Automatic}]]

Both the pdf files have exactly the same sized images which is 11.5cm at 100% magnification!
In the case of Plot and other commands, the same Show and Export commands have one scaling factor and a different one for the Graphics function?

Using lower dimensions in the image size could result in the desired size one wants i.e. different scaling factors for different commands. But, How to understand this issue in a logical manner?

PS: I am working on Mathematica V

  • $\begingroup$ In your examples the finale size should be 9 cm, right? I got 9 cm exactly in both cases, MMA 12.0, measured in Adobe Acrobat with 100% magnification. $\endgroup$
    – Alx
    Commented Jul 26, 2019 at 13:46
  • $\begingroup$ That's a surprise. It should be 9cm. Finally, I am using a factor to get the desired size. $\endgroup$ Commented Jul 26, 2019 at 13:51
  • $\begingroup$ May it be that this is a property of the version 11? I cannot check, since have the version 12 only. However, should this be the case I can offer a simple workaround. Add formally a Plot function to the first position under Show shuch that it draws nothing. Like this: Show[{Plot[0, {x, 0, 1}, Axes -> None, PlotRange -> {{0, 1.7}, {0, 1.5}}, ImageSize -> {9*72/2.54, Automatic}], Graphics[{Line[pts], Line[pts1]}]}]. Then Show inherits the properties of Plot. $\endgroup$ Commented Jul 26, 2019 at 14:01


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.