0

我试图在使用 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=" " ;

在附图中,突出显示的圆圈是下划线应该在的地方。任何帮助表示赞赏。在此处输入图像描述

4

1 回答 1

1

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

我不知道如何修复样式来做到这一点,但我能够通过将“段落”之后的间距从 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;
于 2019-05-02T16:08:03.370 回答