I've recently written some macros for typesetting certain constructs used in linguistics (Discourse Representation Structures). I hit an issue whereby the svmono class was changing the value of \arraycolsep and so messing up the typesetting. (Cf. svmono array padding .) The solution I adopted was to put \setlength{\arraycolsep}{5pt}
at the start of the file containing my macros. However... presumably svmono had a reason for changing \arraycolsep
, and so I'm interfering with it. (Based on some reading around, I'm assuming that macros utilise the value of \arraycolsep
at that point they are evaluated, rather than the value at the point when they are defined.)
In some sense, this is a very unsatisfactory situation -- my package and svmono are fighting for \arraycolsep
, and whichever one loses will have a problem. Is there some way in which I can essentially say, "I want to use the following value of \arraycolsep
for the macros defined in this package, without affecting other packages"?