Mikhail Ivanyushin recently provided for free a set of scripts for InDesign that he wrote for his use, intended to comply, for page layout, with a number of ideal proportions drawn from his lifelong designing experience and some reference books that influenced him during these years. Each script comes with a pdf containing detailed explanations.
FrameWidth-FontSize-Leading[ENG].jsx calculates the ideal leading for a given column width (measure) and font size (point size) (according to an approximate formula from a book by James Felici) and also suggests the minimum and maximum character count in a column line for an optimal readability.
(The panel sometimes hangs and warns "In this calculation algorithm it is assumed that the leading is larger than pointsize.", I should report it to the author but meanwhile the simplest in this case is to close the panel then run again the script)
TextlineViewEstimate[Eng].jsx calculates, for a selected paragraph in InDesign, the minimum leading required to respect a number of ideal proportions (depending on the used font) between the space separating ascents and descents of adjacent lines, word spacing, x-height, (according to works by James Felici, Nigel French, Timothy Samara).
PageMarginProportions.Eng.jsx calculates and applies, for a page with a given inside margin, the margins for the 3 other sides according different ideal proportion sets to choose from (that Mikhail found by studying works by authors such as Friedrich Bauer, Gustav Milchsack, Jan Tschichold, Nigel French). An additional script SaveMarginsInfo.jsx lets you save the values determined by the first script and/or apply them to create a new document.
PointSizeLine.Eng.jsx suggest you some harmonious sets of increasing point size values for the hierarchy of styles in a layout, according to the golden ratio (idea that Mikhail found in Robert Bringhurst’s and Nigel French’s books) or another factor to be chosen by the user. It also lets you then see the result of these suggested values, creating in a selected empty text frame a succession of text lines with point sizes increasing according to these proportions.
SizeInUnitsEng.jsx is a converter between the different available measurement units in InDesign (see demo on YouTube).
or from Scriptopedia: