The SAS Output Delivery System and reporting techniques

in-line formatting - mark for line wrapping

Reply
Occasional Contributor
Posts: 10

in-line formatting - mark for line wrapping

Hello-

I've recently upgraded to 9.2 from 9.13 and am in the process of updating my in-line formatting code. Using ODS PDF, previously it was possible to mark a place for the line to wrap to - the function was 'm' in the prior version. I use this mostly in footnotes to control the wrapping. I'm also wanting to use it in a ODS text= string. I can't find what that function is in the version 9.2. It is not mentioned in any of the 9.2 in-line documentation that I could find.

Briefly, here is how I used it in 9.13:
ODS escapechar="~";
ODS PDF ....;
Proc Report .....statements

footnote1 font=arial italic bold height=9pt j=c "Notes: " font=arial italic height=8pt "~mThis is a very long footnote that I want to wrap under the word 'this'.";

Is there a similar function in the 9.2 update to in-line formatting?

Thanks!

Ross
SAS Super FREQ
Posts: 8,862

Re: in-line formatting - mark for line wrapping

Hi:
You might want to check with Tech Support. It was my understanding that line marking and line wrapping with ODS ESCAPECHAR might not go forward into newer versions of SAS. I don't know whether attributes like leftmargin= or indent= will work to do what you want.

If there is a workaround for the marking and wrapping, Tech Support will know.

cynthia
Occasional Contributor
Posts: 10

Re: in-line formatting - mark for line wrapping

Posted in reply to Cynthia_sas
Okay. I actually tried the leftmargin nested but it didn't work. I was thinking that I may be able to get similar results by using newline and nbspace and just forcing it to happen but there would be some trial and error involved getting it to work each time.

After further review, I just checked another 9.13 program and it appears that the old in-line syntax and functions were applied as intended when I ran it in 9.2. I didn't think the previous syntax would even work but it looks like it does. Is it appropriate to pick and choose the in-line syntax? It will help with the transition to 9.2 since we won't have to find and change all of the in-line formatting first.
SAS Super FREQ
Posts: 8,862

Re: in-line formatting - mark for line wrapping

Yes, the older syntax -mostly- works in 9.2. And it is appropriate to pick and choose. There were some capabilities that just did not translate as well to the new "function" style syntax for ODS ESCAPECHAR.

So if the older syntax works, you could still choose to use it. There will be no enhancements to that older syntax in future versions of SAS, however.

cynthia
Super User
Posts: 11,343

Re: in-line formatting - mark for line wrapping

The NEWLINE function may be something to investigate for this use as well.
Contributor
Posts: 65

Re: in-line formatting - mark for line wrapping

PMFJI, but escapechar-m still works in 9.2. I have, for example, this type of statement (where ods escapechar='^'):

ods pdf text = "^{style [fontweight=bold]Notes: }^mThis line will wrap to ""this"" (more text here to make this line wrap)";

"Notes:" is bolded, and the line wraps to the ^m.

As Cynthia said, I'd remain skeptical about using this for production work, but for now, at least, it still works.

Karl
Contributor
Posts: 65

Re: in-line formatting - mark for line wrapping

Cynthia's comment about possible lack of future support made me a little nervous. I think I found another, albeit slightly less flexible, way to do this (called a "hanging indent"). The key is that the textindent attribute can take a NEGATIVE value. So you need to decide how far you want every line but the first to be indented, set your left margin to that amount, and then "undent" the first line by the same amount.

In pdf, which is the only destination I've tested this on, here's an example:

ods pdf text = "^{style [leftmargin=0.43in textindent=-0.43in]^{style [fontweight=bold]Notes: }This line will wrap to the word ""This"" (more text here to make this line wrap, more text here to make this line wrap, more text here to make this line wrap)}";

The nested style just bolds "Notes:". I figured out by trial and error that it takes up about 0.43 inches. I then move the left margin 0.43 inches to the right, and then indent the 1st line 0.43 inches TO THE LEFT by using a negative value. Slick, no?

Karl
SAS Super FREQ
Posts: 8,862

Re: in-line formatting - mark for line wrapping

Hi, Karl:
Great job figuring that out! You're right that it is different. If you wanted to indent under "Supercalifragilisticexpealidocious", for example (instead of Notes), your numbers would need to change -- but your method is the "new" approach.

cynthia
Occasional Contributor
Posts: 10

Re: in-line formatting - mark for line wrapping

Thanks Karl - that would work in most instances. I think I also saw reference to "hangingindent" in the documentation somewhere but haven't had time to experiment with it. There are instances where I do need the marking like when you have one note and then want to start the next one a line down. Before it was ~n or Newline in the new syntax. I guess in the same vein, a bunch of non-breaking spaces could be inserted before and then use the indent.

And thanks Cynthia.
Ask a Question
Discussion stats
  • 8 replies
  • 791 views
  • 0 likes
  • 4 in conversation