ODS Tagsets RTF - PullRequest
       42

ODS Tagsets RTF

0 голосов
/ 02 мая 2019

Я пытаюсь, чтобы подчеркивания (_) появлялись в моем выводе при использовании ODS Tagsets, но по некоторым неизвестным причинам они не выглядят так, как ожидалось.Я использую SAS 9.4.Появляется с Bodytitle и Bodytitle_aux, но с помощью Tagsets разбивание страниц намного лучше.

К сожалению, использование юникода также не работает.Вот пример кода:

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 Ответ

1 голос
/ 02 мая 2019

Проблема в том, что в шрифте 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;
...