[ODS ESCAPECHAR] 定义特殊字符对部分文本格式化
本文链接:https://www.cnblogs.com/snoopy1866/p/15191947.html
ODS ESCAPECHAR语句可以定义一个特殊的字符代表开始格式化的标志,通过特定的格式化函数实现对部分文本进行格式化操作,通常这个特殊的字符应为需要输出的文本中不会用到的字符,一般可以使用@、#、^、~等,由于反斜杠符符号"\"在RTF中有特殊意义,因此不建议使用反斜杠作为特殊字符。
行内格式化的语法为:escape-character{function-name <arg-1 <arg-2 ...>> formatted-string}
escape-character: ODS ESCAPECHAR定义的特殊字符
function-name: 行内格式化函数
arg-n: 格式化函数的参数
formatted-string: 需格式化的部分文本
下表为常见的行内文本格式化函数及语法(以@为例):
function | 作用 | 语法 |
---|---|---|
w | 缩进 | @w |
BOLD | 加粗 | @{BOLD text} |
ITALIC | 斜体 | @{ITALIC text} |
SUB | 下标 | @{SUB text} |
SUPER | 上标 | @{SUPER text} |
THISPAGE | 当前页码 | @ |
LASTPAGE | 最大页码 | @ |
PAGEOF | X of Y形式的页码 | @ |
NBSPACE | 非换行空格 | @{NBSPACE <number>} |
NEWLINE | 换行 | @{NEWLINE <number>} |
UNICODE | Unicode字符 | @{UNICODE <unicode-value |'unicode-value'X>} |
RAW | 原始字符 | @{RAW <string>} |
STYLE | 样式 | @{STYLE <style-element-name><[style attribute-specification]> formatted text} |
示例代码:
ods listing close;
ods rtf file = "E:\Users\17531\Desktop\test.rtf";
ods escapechar = "@";
data _null_;
file print;
put "@{style [fontweight = bold]加粗}";
put "@{style [fontstyle = italic]斜体}";
put "下标:C@{raw \sub 6}H@{raw \sub 12}O@{raw \sub 6}";
put "上标:x@{raw \super 2}";
put "@{style [fontsize = 20]字体大小20pt}";
put "@{style [color = red]红色文本}";
run;
ods rtf close;
ods listing;
@{PAGEOF}一般用于RTF的页脚,自动生成X of Y形式的页码,若需自定义页码形式,可结合@{THISPAGE}与@{LASTPAGE}实现。
@{RAW text}一般用于嵌入RTF控制符实现更精细的格式控制,详见:[PROC REPORT] 使用RTF控制符