Thank you @JeffMeyers for your macro, it's really powful.
I have one suggestion, if user use UTF-8 SAS, he need change "A0"x to 'C2A0'x in PROC REPORT, otherwise SAS will occur "ERROR: Invalid characters were present in the data."
reference link.
another helpful link.
in my side, I just made some modification of your code .
%local nbsp;
data _null_;
length nbsp $10;
if "%SYSFUNC(GETOPTION(encoding))" = "%str(WLATIN1)" then nbsp='A0'x;
else if "%SYSFUNC(GETOPTION(encoding))" = "%str(UTF-8)" then nbsp='C2A0'x;
call symput('nbsp',put(nbsp,$hex8.));
run;
define n6 / across " "x style={borderbottomstyle=none borderbottomcolor=white};
define n5 / across " "x style={borderbottomstyle=none borderbottomcolor=white background=lightgreen};
... View more