[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控制符

posted @ 2021-08-26 22:48  Snoopy1866  阅读(578)  评论(0编辑  收藏  举报