ODS标签集RTF

时间:2019-05-02 14:08:33

标签: sas sas-ods proc-report

我试图在使用ODS标签集时在输出中显示下划线(_),但由于某些未知原因,它未按预期出现。我正在使用SAS 9.4。 它与Bodytitle和Bodytitle_aux一起出现,但使用标签集时分页更好。

不幸的是,使用unicode也不起作用。 这是示例代码:

options nonumber; 
%let path=;
ods path(prepend) work.templat(update);
proc template ;
define style newstyle ;
  parent = styles.journal ;
  class Parskip /
      font = fonts("headingFont")
      cellpadding = 0 cellspacing = 0  /* Only for Measured */
      frame= void
      Rules = NONE
      BorderWidth = 0
      Color = _undef_
      BackGroundColor = _undef_;
  style byline                          / font_face="Courier New"  font_style=Roman background = white;
  style Body from Document              / font_face="Courier New" font_style=Roman background = white;
 style data                            / font_face="Courier New" font_style=Roman  ;
  style table                           / font_face="Courier New" font_style=Roman 
                                      bordercolor=black background = white borderwidth=1 ;
 style cellcontents                    / font_face="Courier New" font_style=Roman  ;
  style TitleAndNoteContainer           / font_face="Courier New" font_style=Roman  background = white;
  style ProcTitle                       / font_face="Courier New" font_style=Roman  ;
  style systemtitle                      / font_face="Courier New" font_style=Roman  ;
  style rowheader from headersandfooters / font_face="Courier New" font_style=Roman  ;
  style BodyDate                         / font_face="Courier New" font_style=Roman  ;
  style PageNo                           / font_face="Courier New" font_style=Roman ;
  style SysTitleAndFooterContainer       / font_face="Courier New" font_style=Roman ;
  style header from headersandfooters    / font_face="Courier New" font_style=Roman  background = white;
  style SystemFooter                     / font_face="Courier New" font_style=Roman bordercolor=black background = white borderwidth=1 ;
  style NoteContent                      / font_face="Courier New" font_style=Roman font_size=8pt;
end;
run ;


options papersize=letter leftmargin=3.65cm rightmargin=2.11cm topmargin=3.36cm bottommargin=3.3cm orientation=landscape;
ods escapechar="^"; 
ods tagsets.rtf file="&path.\shoes2file.rtf" options(vspace='no') options(continue_tag="no"); 
 ods tagsets.rtf style=newstyle ;
 title1 'Title: Shoes';
proc report data=sashelp.shoes(obs=10) nowd style(header)=[rules=group frame=above background=white font_size=8pt] 
        style(report)=[outputwidth=100% rules=group frame=hsides background=white font_size=8pt ]  
        style(column)=[rules=group font_size=8pt] spanrows; 
  column region product; 
  define region / '___Region___' display style(column)=[width=1.5cm asis=on just=l] style(hdr)=[asis=on just=l]; 
  define product / '___Product___' display style(column)=[width=1.5cm asis=on just=l] style(hdr)=[asis=on just=l]; 
 footnote 'Footnote Page L____4';   
run; 

ods tagsets.rtf close;
   options nonumber
           nocenter nobyline nodate formdlim='' 
           formchar="|_---|+|---+=|-/\<>*" MISSING=" " ;

在所附照片中,突出显示的圆圈是应该下划线的地方。感谢您的帮助。enter image description here

1 个答案:

答案 0 :(得分:1)

问题在于,在Courier字体(实际上是Courier New)中,下划线甚至在普通字符的尾部以下(这对于通过“ overstriking”进行下划线非常有用)。

我不确定如何修复样式,但是我可以通过将“段落”后的间距从0点更改为1点来显示下划线。这是用\sa0替换RTF文件中所有\sa20命令的数据步骤。生成的文件显示下划线。

data _null_;
  infile "&path/shoes2file.rtf";
  file "&path/shoes2file_fixed.rtf";
  input;
  _infile_ = tranwrd(_infile_,'\sa0','\sa20');
  put _infile_;
run;