It is a dilemma: In order to easily edit code on the screen, I have to set Magnification to 1.25 and also to set fontsize for Input (using Courier New bold for Input) to 12 pt.

Of course, in this context Text cells should use Arial 12 pt.

If I would set Magnification to 1.0, I would have to increase FontSize for normal work to 14pt, which is quite unusual everywhere outside of Mathematica.

However, in some Text cells, I also want to use hanging indentation (negative indent for the first line to outdent numbering or keywords, using a tab after it to jump to the indented text block).

In the Working environment the following combinations of ParagraphIndent and TabSpacings look good in conjunction with Magnification 1.25:

ParagraphIndent     TabSpacing
 -80                   4.4
-100                   5.5
-120                   6.6
-140                   7.7
-160                   8.8
-180                   9.9

In order to print my notebook, I would like to use some Magnification->0.8 to 0.9 rather than 0.72, as it is preset in the Printing Environment. And of course, the preset magnification differs from the one in the Working environment causing mess to my notebook appearance.

I learned from StackExchange, that I have to paste a cell like

Cell[StyleData[All, "Printout"], Magnification -> 0.85]

to the private Stylesheet. Even if I selected one of the templates fom the selection dropdown, I was unable to change its magnification using OptionInspector for that cell. It would not let me change what is displayed there. This even holds, after I changed the cell's properties to "editable" - strange!

However, after changing the magnification in the Printing environment, all the paragraphs with hanging indentation get indented awfully.

To my understanding, this is due to TabSpacing being in "ems", a strange unit which I do not really understand, it is somehow related to the width of a capital M. ParagraphIndent on the other hand is in printer's points, which is 0.376mm per point (since the French Revolution - of course there is a some 6.5% different definition in the Inch-world...). Maybe, it would even be better, if ParagraphIndent would be measured in "ems" if that would automatically adapt when the paragraph's FontSize is changed.

Would it be possible to programmatically switch all TabSpacings in the private Stylesheet for the Printing environment to adapt for different magnification such that what looks well aligned in the Working environment also is printed in the same style of indentation in the Printing environment?

I guess, it simply requires aplying the right factor to all of them depending on the relative change of magnification.

But to do so, I first would need a "hook", which is called when I switch to the other Environment with a different magnification and second I would have to know, how the sizes between the different environments and representations are related among each other.

PS: The same flaw is also present ich you save the notebook as a pdf file. It looks like this dialog really using print functions, see No PDF file produced (Font Problem)

  • $\begingroup$ The values for ParagraphIndent and TabSpacing also depend on OptionsInspector>GlobalPreferences>FormattingOptions>FontOptions>FontProperties>ScreenResolution. Mathematica defaults to 72 dpi there, for modern screens, 120 dpi would be more appropriate. Then a charactersize of 10 would be perfect on screen (with magnification 100%) and in printing. However, the dependence of ParagraphIndent and TabSpacings prevails. A program to fix it all, would also have to take ScreenResolution into account! $\endgroup$ – Adalbert Hanßen Jul 11 '16 at 10:39

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.