How do I reduce the amount of space on the left and right of a formula?

LibreOffice 4.2.1.1, Writer + Math
Windows XP

I’ve created formulas which are inline within the text. However, the presence of space on the left and right of the formula mean the appearance of the text + formulas just does not look right.

There are two places where space to the left and right of a formula can be reduced. The first is in the in the Formula Frame Style which I’ve been able to reduce.

The second is the spacing within the formula within the Borders category. I have not been able to reduce this. See the attached screen shot. It shows the default values which I could not alter.

image description

Any help appreciated. Or is this a bug?

What do you mean with “could not alter”?
From comments: The dialog is currently broken, see https://bugs.freedesktop.org/show_bug.cgi?id=75525

When you click into the field, you should be able to delete the values and enter the number 0. But be aware, that the setting is only applied to the current formula. If you click on the button “Default”, the default is changed, so that all new formulas will get the zero border too. But there exist no kind of style, so that existing formulas will change automatically. You have to change each existing formula manually. To make this more easy, I use a macro to reduce the borders of all formulas in a document. Of cause, you have to adapt the macro, when you only want to reduce left and right border, the macro reduces top and bottom border too.

    
sub SetBorderMarginToZero
dim oCurrentController as variant: oCurrentController = ThisComponent.getCurrentController()
dim oDoc as variant: oDoc=ThisComponent
if not(oCurrentController.supportsService("com.sun.star.text.TextDocumentView")) then
	msgbox("Macro works only in text documents.")
	exit sub
end if
dim oModelTextDocument as variant: oModelTextDocument = oCurrentController.Model
dim oEmbeddedObjects as variant: oEmbeddedObjects = oModelTextDocument.EmbeddedObjects
dim nIndex as long
dim nEndIndex as long: nEndIndex = oEmbeddedObjects.Count-1
dim oEmbeddedObject as variant: rem like green handle status
dim oModel as variant: rem like edit status
dim oXCOEO as variant: rem oExtendedControlOverEmbeddedObject
for nIndex=0 to nEndIndex
	oEmbeddedObject = oEmbeddedObjects.getByIndex(nIndex)
	oModel = oEmbeddedObject.Model: rem might be empty; css.comp.math.FormulaDocument
	if Not(isEmpty(oModel)) then
		if oModel.supportsService("com.sun.star.formula.FormulaProperties") then
			rem It is a formula object.
			oModel.LeftMargin = 0
			oModel.RightMargin = 0
			oModel.TopMargin = 0
			oModel.BottomMargin = 0
			oXCOEO = oEmbeddedObject.ExtendedControlOverEmbeddedObject
			oXCOEO.update()
		end if
	end if
next nIndex
end sub

Hi,

Thanks for your response.

When you ask above “What do you mean with “could not alter”?”, I mean exactly that.

I would put the cursor into the ‘Left’ field and change it to 0. When I moved the cursor to the ‘Right’ field to change that value to 0, the value in the ‘Left’ field would revert to what is shown on the screen shot above. I could not make the values in the ‘Left’ and ‘Right’ fields stay 0.

Thanks for macro.

You found a bug. I can confirm the wrong behavior for LO4.3(dev) and LO4.2.1.1. It was OK in LO4.1. Please report the bug. [The macro still works, so it is a workaround for you.]