There is a small Selection box in the lower right corner of the Mma window to change the screen Magnification.
One can select Magnification between 50%, 75%, 100%, 125%, 150%, 200% and 300%. (internally these percentages are handled as approximate numbers: 0.5, 0.75, 1.0, 1.25, 1.5, 2.0 and 3.0).
There is no choice for other values at that point, but there is an option accessible through OptionsInspector where you can set Magnification to 4/3 which is displayed as 133% and internally it is handeled as 1.3333333333333333`:
The way to set different magnification values from those offered is accessible through OptionsInspector (for Selected Notebook) > Formatting Options > FontOptions > Magnification and you might e.g. enter 4/3 there, which is some good compromise between 125% (a bit too small) and 150% (uses too much real estate on the screen).
However, if you use (negative) indentation, e.g.
Cell[StyleData["Text-40]
,CellMargins -> {{46, 10}, {7, 7}}
,FontFamily -> "Arial"
,FontSize -> 11
,FontSlant -> "Plain"
,FontVariations -> {"StrikeThrough" -> False, "Underline" -> False}
,FontWeight -> "Plain"
,Hyphenation -> False
,PageBreakWithin -> False
,ParagraphIndent -> -ps
,TabSpacings -> 3.7
];
formatting gets distorted after changing Magnification, because ParagraphIndent is in points whereas TabSpacings is in "ems", the width of a capital M in the selected font: It changes when Magnification changes. So what looks well on the screen not necessarily does it on the printer!
To make it worse: If you deal with Mma both on Windows and on Linux, probably there are slight differences in the outline of the fonts on both systems. So what looks well aligned on one system no does so on the other!
So there are several challenges:
- first one should read current Magnification to revert it to the previous state after printing is done.
- If one wants to print a project consisting of several notebooks (e.g. notebooks organized with an AuthorTools project file) one should programmatically set them all to 100% before actually printing them.
- Set Magnification back to what it was before.
- The fourth challenge is to programmatically change TabSpacings depending on present Magnification.
- The fifth challenge would be to hook programmatically into the mechanism and reprogram all TabSpacings according to present ParagraphIndent and Magnification (and the font, if thast matters, and the System, if that matters...) as soon as Magnification changes such that alignment on the screen looks good when printed alignment would look good.
A marginal note at the end: The order of options is somstimes confusing. I would prefer if they would be sorted automatically by option name and therefore I made my definition in alphabetical order. However they come out in some strange non-alphabetical order. I do not understand why this happens. Any explanation for that?