c# open pdf file in browser : Best pdf editor delete pages application Library tool html asp.net windows online troff5-part1769

nro/tro User’s Manual
Heirloom Documentation Tools
September 17, 2007
21.2. Warnings. nro and tro provide a mechanism  to enable or disable warnings for  several categories.  When
one of the selected conditions occurs, a warning message is written in the same format as an error message, but
processing continues.
__________________________________________________________________________________
Bit
Name
Description
__________________________________________________________________________________
0
none
No warnings at all.
1
char
Warn when unknown character names like \(xx or \[xxx] are found.
2
number
Warn when illegal numerical expressions occur.
4
break
Warn when a line in .ad b mode cannot be adjusted.
8
delim
Warn when a delimiter to an escape sequence is missing.
16
el
Warn when a el request is found without a matching ie.
32
scale
Warn  when  an  undened  scale  indicator  is  used  in  a  numerical
expression.
64
range
Warn when an argument is out of range.
128
syntax
Warn about questionable syntax in numerical expressions.
256
di
Warn  when  a di request  is  executed  but  no  diversion is  currently
active.
512
mac
Warn when an undened request, macro or string is called.
1024
reg
Warn  when  an  undened  number  register  is  accessed.  The  number
register  will be  set to  zero immediately  after  the rst access  so  this
warning can be printed only once per register name.
4096
right-brace
Warn when a \} terminates a numerical expression.
8192
missing
Warn when a required argument to a request is missing.
16384
input
Warn  when  illegal byte  sequences  or  characters  that  have  no known
PostScript equivalent are read.
32768
escape
Warn when an undened escape sequence is used.
65536
space
Warn  when an unknown long request name  is used,  but its rst  two
characters form a known regular request.  The regular request is then
executed in extension level 2, or ignored in extension level 3.
131072
font
Warn  when  a  font  cannot  be  found.  This  warning  is  enabled  by
default.
all
All  warnings except di, mac, and reg.  This  may  be  the  best  choice
when using existing macro packages.
w
All warnings.
__________________________________________________________________________________
21.3. Errors. Various error conditions  may  occur  during  the  operation  of nro and tro. Certain  less  serious
errors  having only  local impact  do not  cause  processing to  terminate.  Two examples are word overow,  caused
by  a  word  that  is  too  large  to t  into  the  word  buer  (in ll  mode),  and line  overow,  caused  by  an  output
line that grew too large  to t in the line  buer; in both cases, a  message  is  printed, the oending excess is dis-
carded,  and  the  aected  word  or  line  is  marked  at  the  point  of  truncation  with  a ∗ in nro and  a
in tro.
Processing continues if possible, on the grounds that output useful for debugging may be produced.  If a serious
error occurs, processing terminates, and an  appropriate message is printed, along with a list of the macro names
currently  active.  Examples are the  inability  to  create, read, or  write les, and  the  exceeding of  certain  internal
limits that make future output unlikely to be useful.
21.4. Debugging. Strings, macros, and number registers can be watched.  Whenever a change of a watched object
occurs, or when the object is renamed, removed, or aliased, a notication message is printed.  It is formatted like
an error message and includes the name of the current (or last previous) request, the name of the objects aected,
and, in case of a change, the new contents of the object.
When  an  object  is  removed,  watching  is  disabled.  If  an  object  of  the  same  name  is  created  later,  it  is  not
watched unless watching is explicitly enabled for it again.
-51 -
Best pdf editor delete pages - remove PDF pages in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Provides Users with Mature Document Manipulating Function for Deleting PDF Pages
delete page from pdf reader; delete page pdf online
Best pdf editor delete pages - VB.NET PDF Page Delete Library: remove PDF pages in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Visual Basic Sample Codes to Delete PDF Document Page in .NET
delete pages from pdf document; acrobat remove pages from pdf
nro/tro User’s Manual
Heirloom Documentation Tools
September 17, 2007
Request
Initial
If No
Form
Value
Argument
Notes Explanation
.warn ±bits|name
w
Control  warning messages, which may be  given either numer-
ically  as  bits  or  symbolically  as  names.  With  a + sign,  the
respective  bit  or  name  is  enabled  in  addition to  the  currently
enabled  categories;  with  a – sign,  it  is  disabled.  Omitting
the  sign  sets  the  categories  exactly  to  the  given  bit  or  name.
.warn  0 disables  all  warnings.  The .warn register  represents
the currently activated warning categories as bits.
.spreadwarn N
toggle
m
Set  or  toggle  a  limit  that  causes  a  warning  to  be  printed
when  it  is  exceeded  by  the  adjustment  that  is  computed  for
the  current  output  line  in ad b mode.  The  limit  is  initially
3m, but the warning message is disabled.  Calling this request
without  an  argument  toggles  the  warning  message;  calling  it
with an argument enables the warning and  sets the  limit to N
(default scale m).
.errprint string
newline
Print string like an error message.
.watch xx
o
ignore
Notify on change  of string or  macro xx.  If xx does  not exist,
it  is  created  as  an  empty  macro  in  order  to  watch  future
changes.
.unwatch xx o
ignore
Disable notication for string or macro xx.
.watchlength N
ignore
On  change,  report  the  contents  of  macros  and  strings  up  to
length N.  When N is  zero  or  small,  printing  of  macro  and
string contents is disabled.
.watchn R
o
ignore
Notify  on  change  of  register R.  If R does  not  exist,  it  is
created  in  order  to  watch future  changes.  No  eect on  read-
only registers and some of the predened general registers.
.unwatchn R o
ignore
Disable notication for register R.
22.  Color Support
While tro does  not support  colors  directly, dpost is  able to embed arbitrary  PostScript  color instructions using
the \X´SetColor: color´ escape sequence.  Possible values for color include:
–‘‘named-color’’,  e.g.  ‘‘red’’.  Named  colors  (
RGB
only)  must  be  listed  in  the  ‘‘colordict’’  dictionary  in le
/usr/ucblib/doctools/font/devps/postscript/color.ps.  Every color argument  that  begins  with  a  letter  is  treated
as a named color.
–‘‘red green blue rgb’’, e.g. ‘‘.2 .3 .4 rgb’’ (rgb is an abbreviation for the PostScript setrgbcolor operator)
–‘‘hue  saturation  brightness hsb’’,  e.g.  ‘‘.5  .6 .7  hsb’’  (hsb is  an  abbreviation  for  the  PostScript sethsbcolor
operator)
–‘‘cyan  magenta  yellow  black cmyk’’,  e.g.  ‘‘.1  .2  .3  .4  cmyk’’  (cmyk is  an  abbreviation  for  the  PostScript
setcmykcolor operator)
–‘‘gray setgray’’, e.g. ‘‘.5 setgray’’
–‘‘[$setcolorspace] comp1  comp2  . ..  compn setcolor’’,  where $setcolorspace may  be  a  PostScript  procedure
dened  in  the  setup  section  using  a  ‘\X´PSSetup:  $setcolorspace  {.. .}  bind  def´’  escape  sequence.  This
parameter is required if the color space changes in the document.  Otherwise, it may be sucient to install the
color space once in the setup section.
Each  parameter must be a number in the range between 0.0 and  1.0.  In the most general case, the value of the
color argument is passed to the PostScript output without interpretation.
-52 -
C# PDF Print Library: Print PDF documents in C#.net, ASP.NET
WPF Viewer & Editor. WPF: View PDF. WPF: Annotate Fill-in Field Data. Field: Insert, Delete, Update Field. A best PDF printer control for Visual Studio .NET and
delete page numbers in pdf; delete page from pdf online
C# HTML5 PDF Viewer SDK to view, annotate, create and convert PDF
A best HTML5 PDF viewer control for PDF Document reading on ASP.NET web based application An advanced PDF editor enable C# users to edit PDF text, image
cut pages from pdf file; delete page on pdf file
nro/tro User’s Manual
Heirloom Documentation Tools
September 17, 2007
Both the text and  background color can be selected.  A color argument of  ‘‘color1’’ on ‘‘color2’’ prints text in
color1 on a background in color2.
The initial color is black in the DeviceGray color space, i.e. the same as ‘‘0 setgray’’.  Once a color is in eect,
it is re-installed at the top of each output page.
The –mcolor macro package adds another access method to the capabilities of color selection and  reverse video
printing.  It includes the following macro:
Request
Initial
If No
Form
Value
Argument
Notes Explanation
.CL color text
RGB
black
Print text in color.  No  arguments  restores  a  default  color
(black  in
RGB
color  space; note  that this  is dierent from  the
initial color).  If text is  omitted  the  selected color remains  in
eect  until  another color is  selected.  If  two  arguments  are
given the text is printed  in color and then  the default color is
restored.
23.  Picture Inclusion
dpost can be advised to include other PostScript documents into the output it generates.  In general, these docu-
ments should be
EPS
(Encapsulated PostScript) les;  inclusion of more general PostScript  documents, especially
if they consist of multiple pages, will usually not lead to acceptable results.
If  a  PostScript le  lacks  page-delimiting  comments,  the  entire le  is  included.  If  no %%BoundingBox or
%%HiResBoundingBox comment  is  present,  the  picture  is  assumed  to ll  an  8.5×11-inch  page.  Nothing
prevents the picture from being placed o the page.
dpost handles
DSC
font comments in the included les, but it can only supply glyph data if a path to the respec-
tive font le has  previously  been specied  with  a tro fp request.  It  is  not necessary that  the font  is otherwise
used  in  the tro input text.  If dpost cannot retrieve a  matching font  by this mechanism, it indicates this  in  the
%%DocumentNeededResources comment so  that  a  print manager at  a later  production  stage  may  include  the
missing data.
An example how to combine the following requests and macros is:
.psbb picture.eps
.nrf scale .25
.nrf y (\n[ury]p–\n[lly]p)*\n[scale]
.nrf x (\n[urx]p–\n[llx]p)*\n[scale]
.PI picture.eps "\nyu,\nxu"
.sp \nyu
picture description
tro includes a request to assist the inclusion of
EPS
les:
Request
Initial
If No
Form
Value
Argument
Notes Explanation
.psbb lename
Read  the %%HiResBoundingBox
DSC
comment,  or,  if
no  such  comment  is  found, %%BoundingBox,  from  the
PostScript document lename and assign the lower left x coor-
dinate to the oating-point register llx, the lower left y coordi-
nate to lly,  the upper  right x coordinate to urx, and the  upper
right y coordinate to ury.  All values are in points.  If an error
occurs, the registers are set to zero.
-53 -
C# PDF Convert to Images SDK: Convert PDF to png, gif images in C#
Best PDF converter SDK for Visual Studio .NET for converting PDF to image in C#.NET application. Converter control easy to create thumbnails from PDF pages.
delete pdf pages online; delete page in pdf document
C# WPF PDF Viewer SDK to convert and export PDF document to other
WPF Viewer & Editor. WPF: View PDF. WPF: Annotate PDF. Fill-in Field Data. Field: Insert, Delete, Update Field. Best PDF Viewer control as well as a powerful .NET
delete pdf pages acrobat; delete blank page in pdf online
nro/tro User’s Manual
Heirloom Documentation Tools
September 17, 2007
The –mpictures macros insert the necessary advices to dpost to include PostScript pictures into tro documents.
The macros are:
Request
Initial
If No
Form
Value
Argument
Notes Explanation
.BP source height width position oset ags label Dene a frame and place a picture in it.  The arguments are:
source Name  of  a  PostScript  picture le,  optionally  suxed
with (n) to select page number n from the le (rst page by
default).
height Vertical  size  of the frame, default 3.0i.  This  argument
is  interpreted  as  a  value  in  inches  unless  it  ends  with  a u
scale indicator.
width Horizontal  size  of  the  frame,  current  line  length  by
default.  This  argument  is  interpreted  as  a  value  in  inches
unless it ends with a u scale indicator.
position l (default), c, or r to left-justify, center, or right-justify
the frame.
oset Move  the  frame  horizontally  from  the  original position
by this amount, default 0i.
ags One or more of:
ad Rotate the picture clockwise d degrees, default d =90.
oOutline the picture with a box.
sFreely scale both picture dimensions.
wWhite out the area to be occupied by the picture.
l, r, t, b Attach the  picture to the  left  right, top,  or bottom
of the frame.
label Place label at distance 1.5v below the frame.
If  there  is  room, BP lls  text  around  the  frame.  Everything
destined  for  either  side  of  the  frame  goes  into  a  diversion to
be  retrieved  when  the  accumulated  text  sweeps  past  the  trap
set by BP or when the diversion is explicitly closed by EP.
BP is  not  recommended  for  text lling  in ad p mode  since
its  trap-based  mechanism  may  result  in  less  optimal  output,
and since it is not possible to dene the shape  of  a complete
paragraph  with  the  information  it  has.  Use  a combination  of
psbb, pshape, and PI instead.
.EP
End a picture started by BP; EP is usually called implicitly by
a  trap  at  frame bottom.  A picture and associated text silently
disappear  if  a  diversion  trap  set  by BP is  not  reached.  Call
EP at the end of the document to retrieve it.
.PI source height,width,yoset,xoset ags
This low-level macro, used by BP, can  help  do more  complex
things.  The two arguments not already described are:
xoset Oset  the  frame  from  the  left margin  by  this  amount,
default 0i.  This argument is interpreted as a value in inches
unless it ends with a u scale indicator.
yoset Oset  the  frame  from  the  current  baseline,  measuring
positive  downward, default 0i.  This argument is interpreted
as a value in inches unless it ends with a u scale indicator.
-54 -
C# PDF Text Add Library: add, delete, edit PDF text in C#.net, ASP
WPF Viewer & Editor. WPF: View PDF. WPF: Annotate Fill-in Field Data. Field: Insert, Delete, Update Field. A best PDF annotation SDK control for Visual Studio .NET
delete pages from pdf acrobat reader; cut pages from pdf reader
C# PDF Form Data Read Library: extract form data from PDF in C#.
A best PDF document SDK library enable users abilities to read and extract PDF form data in Visual C#.NET WinForm and ASP.NET WebForm applications.
delete blank pages in pdf online; delete page in pdf online
nro/tro User’s Manual
Heirloom Documentation Tools
September 17, 2007
24.  Special Features for
PDF
Documents
24.1. The basics. tro does  not  directly  generate
PDF
documents;  the dpost postprocessor  generates  PostScript
output which can be converted to
PDF
by utilities like Ghostscript’s ps2pdf or Adobe Distiller.  But it is possible
to  include  special  advices  to  this  conversion program in PostScript  using the pdfmark operator.  Such  advices
are  generated  automatically  by  some tro requests,  e.g.  by cropat (§3). Other  advices  can  be  given  explicitly
using the \X´PS:...´ or \X´PDFMark:...´ escape sequences.
24.2. Preparations. When generating PDF les, it is especially important to set the paper format using the medi-
asize request  (§3). This  is because  calculations in
PDF
documents  are  generally performed in relation regard  to
the page bottom, while tro performs its calculations in relation to the page top.  Failing to set the paper format
correctly will thus usually result in vertical displacements of
PDF
-specic elements.
24.3. Specifying document description items. PDF  documents  can  include  meta-data  about  author,  title  etc.  To
generate such data, use the PDFMark device command of dpost with the tro \X escape sequence, e.g.
\X´PDFMark: Author My Name´
\X´PDFMark: Keywords Typesetting, PDF documents´
\X´PDFMark: Subject tro, dpost, and pdfmark´
\X´PDFMark: Title Special features for PDF documents´
.br
Unicode characters are accepted in these text strings.  Note that  whitespace and newlines surrounding \X escape
sequences  are  considered  to  be  input  text  by tro, and  need  a break before  they  are  output.  To  avoid  insert-
ing superuous spaces or line breaks, specify this information before an initial .sp |\n[topmargin]u request or the
like in the document.
24.4. Direct use of the pdfmark operator. In  cases where tro or dpost do  not include an explicit mechanism for
PDF
features, it is possible to call the pdfmark operator directly.  Examples are:
\X´PS: [ {Catalog} << /ViewerPreferences << /DisplayDocTitle true >> >> /PUT pdfmark\’
This causes the
PDF
viewer to print the document title (as in §24.3) in the application title bar instead of the
PDF
le name.
\X´PS: [ /PageMode /UseOutlines /DOCVIEW pdfmark´
This causes the
PDF
viewer to display the bookmarks toolbar when the document is opened.  Other interest-
ing values  are /UseNone (the  default), /UseThumbs (display  page thumbnails),  and /FullScreen (open  the
document in full-screen mode).
\X´PS: [ /PageMode /Page N /View [/XYZ null null null] /DOCVIEW pdfmark´
Page N is displayed instead of the rst page when the document is opened.
\X´PS: [ {Catalog} << /PageLayout /TwoPageRight >> /PUT pdfmark´
With  this  command, the
PDF
viewer  displays  two  pages  at  once.  Other  interesting values  are /SinglePage
(display  one  page  at  once), /OneColumn (display  one  page  in  continuous  mode),  and /TwoColumnRight
(display two pages in continuous mode).
\X´PS: [ /Label (text) /PAGELABEL pdfmark´
The  given
ASCII
text is  shown  next  to  the  page  number  of  the  current  page  in  the
PDF
viewer  toolbar.
This is particularly useful to implement roman page numbers  in
PDF
documents in combination with the af
request.
24.5. Creating bookmarks. Bookmarks  are  usually  shown  by  the
PDF
viewer  at  the  left  of  the  window.  When
you  create
PDF
les longer than  a few pages for  viewing on the screen, you should  include bookmarks  for each
chapter or section because they enable the reader to navigate much more conveniently.
Start with a bookmark for the title page.  ‘‘0’’ is the level of the bookmark in the tree structure, and the follow-
ing arguments form the name of  the  bookmark: \X´PDFMark: Bookmark 0 Title´.  Similar to  the description
specications above, this bookmark should appear before the top margin of the title page.
-55 -
C# PDF Text Box Edit Library: add, delete, update PDF text box in
with .NET PDF Library. A best PDF annotator for Visual Studio .NET supports to add text box to PDF file in Visual C#.NET project.
delete page on pdf document; delete page pdf file reader
C# PDF Markup Drawing Library: add, delete, edit PDF markups in C#
in C# Program. A best PDF annotator control for Visual Studio .NET support to markup PDF with various annotations in C#.NET class.
delete page in pdf; best pdf editor delete pages
nro/tro User’s Manual
Heirloom Documentation Tools
September 17, 2007
When generating bookmarks for chapters and sections, it is usually most practical to include the command in the
chapter/section macros:
.de CH
.
bp
\v´|–1v–4p´\\X´PDFMark: Bookmark 0 \\$1´
.
sp |\\n[topmargin]u
.
ce
.
sp
..
.de SH
.
ce
\\$1\v´–1v´\\X´PDFMark: Bookmark 1 \\$1´
.
sp
..
Unless the  bookmark command occurs at the  top of  the page,  it refers  to the baseline of the text; this is why a
\v´–1v´ command occurs before it in the section macro. \v´–1v–4p´ at the top of the page is a special value that
causes the upper left corner to be shown.
The level  of the rst  bookmark in a document must be of  level 0.  The levels of following  bookmarks must be
either
–one higher than the level of the previous bookmark.  The new bookmark then becomes a child of the previous
bookmark.
–equal to the level of the previous bookmark.  In this case, both bookmarks are grouped below the rst previous
bookmark of the rst higher level, or at the top level for level 0.
–lower than the level of the previous bookmark.  This terminates the list of children of the higher levels.
As  an  example,  the  following  level  structure  is  legal,  and  causes  the  PDF  viewer  to  group  the  bookmarks  as
shown:
0
title page
0
Chapter 1
•––––1
Section 1.1
•––––1
Section 1.2
|
•–––––2
Subsection 1.2.1
|
•–––––2
Subsection 1.2.2
|
•–––––2
Subsection 1.2.3
•––––1
Section 1.3
•–––––2
Subsection 1.3.1
•–––––2
Subsection 1.3.2
0
Chapter 2
•––––1
Section 2.1
0
Index
In case of an illegal structure in which the level of a bookmark is raised by more than one above its predecessor,
dpost emits a warning and assigns the highest legal level.  However, a garbled document structure may result:
0
•––––2
the rst level 2 is corrected to 1 by dpost
•–––––2
so the second bookmark becomes a child of the rst
Thus such dpost warnings should usually be taken seriously, and the document should be corrected.
An alternate form of bookmarks, \X´PDFMark: BookmarkClosed ...´, is available.  The syntax is the same, but
the  initial view  in the  tree structure is collapsed, i.e. no children  are shown  by default.  It the bookmark  has  no
children, there is no dierence to a regular bookmark.
-56 -
C# PDF Text Highlight Library: add, delete, update PDF text
Best PDF document reader SDK control that can highlight PDF text in Visual C# .NET framework C#.NET Demo Code: Highlight Text in Consecutive PDF Pages.
add and delete pages in pdf online; delete page from pdf acrobat
C# PDF Field Edit Library: insert, delete, update pdf form field
application. Free online C# source codes provide best ways to create PDF forms and delete PDF forms in C#.NET framework project. A
add and delete pages from pdf; reader extract pages from pdf
nro/tro User’s Manual
Heirloom Documentation Tools
September 17, 2007
24.6. Links.
PDF
documents can contain  links that cause the viewer  to  jump to a certain location  when the  user
clicks on an area of the page.  In tro, such links can be built as follows:
The \A´string´ escape sequence denes an anchor, i.e. a location to jump to, with the name string (consisting of
ASCII
characters).
The actual link  is built using two \T escape sequences surrounding the text that forms  the area to click on, e.g.:
\T´string´text of link\T. string must correspond to an anchor anywhere in the document.
The  appearance of links  can  be  changed;  links are  normally  surrounded  by  an  1  point  wide  blue border.  The
color can be set using \X’SetLinkColor: red green blue’, where red, green, and blue are values between 0 and 1.
The border can be set using \X’SetLinkBorder: bx by width’, where bx and by dene the horizontal and vertical
corner radius, respectively, and width denes the width.
25. gro Compatibility
Heirloom tro provides  most  of  the  extensions  to  the tro language  introduced  in gro
10
 Consequently,  it  is
possible to create documents,  macro sets,  and preprocessors that can be used with both Heirloom tro and gro
and use functionality beyond the features that were supported by traditional tro.
Important  dierences  to gro are:  The  concept of  an input  level regarding  delimiters  in  escape  sequences  and
macro arguments is not supported.  Control characters are recognized at the beginning of a line even if preceded
by  escape  sequences  that  do  not  result  in  formatting stream  objects,  such  as \f, \s,  or \;.  Font  handling,  color
support, picture inclusion, and
PDF
structuring are realized using dierent mechanisms.  The dpost post-processor
does  not  recognize  the \X´ps:...´ escape  sequence  (or x X ps: command,  respectively)  that  is  used  for  pass-
through  PostScript with the grops post-processor of gro (dpost accepts \X’PS:...´ and x X PS:); the PostScript
output generated by dpost is very dierent to that generated by grops.  dpost accepts the gro drawing command
extensions and sets the horizontal and vertical positions accordingly, but otherwise ignores line width, color, and
ll specications.
25.1. Conditional gro compatibility. A request is available to control additional functions for gro compatibility:
Request
Initial
If No
Form
Value
Argument
Notes Explanation
.cp N
o
Enable gro compatibility  mode.  This  is the  name  of gro’s
own  compatibility  request  with  adapted  semantics:  Regard-
less of the argument, gro compatibility mode  is activated.  If
N=0, compatibility with traditional tro is decreased, and Heir-
loom tro extension  level  3 is  set.  If N≠0  or  missing,  com-
patibility with  traditional tro is improved, and  Heirloom tro
extension level  1 is set.  Thus .cp 0 results in  maximum gro
compatibility.
The cp request sets the general number register .g to 1 in gro compatibility mode and to 0 otherwise.  The gen-
eral number register .C is only assigned by the .cp request and corresponds to its argument.
Any use of the xag request disables gro compatibility and accordingly sets the .g register to 0.
The .X read-only  number  register holds  the  current  extension  level  after cp as  usual.  It  can  thus  be  used  to
determine whether running under gro or in the gro compatibility mode of Heirloom tro. Since they are read-
write, any convenient value can then be assigned to the .C and .g registers.
The .x and .y registers are read-write in gro compatibility mode; they correspond to the emulated gro version
number.  The cp request sets them to 1 and 18, respectively.
The .k number  register behaves  dierently  in gro compatibility  mode:  If  the  preceding  text  character  was  a
newline, the  width  of  a  space character is  added to  the  value.  If  the  previous  line was interrupted with \c,  the
length of the partially collected word (as in the .kc number register) is part of the value.
The space width always defaults to the value obtained from the font metrics le in gro compatibility mode; the
spacewidth request is not eective.
-57 -
nro/tro User’s Manual
Heirloom Documentation Tools
September 17, 2007
If the le specied with a so request cannot be opened, processing continues with the current le in gro compa-
tibility mode.
A control  or  escape  character  written  in  a  diversion has  no  special  meaning if  the  diversion  is re-read  in gro
compatibility mode.
Unless a string is interpolated with explicit  arguments,  the arguments to  the surrounding macro instance remain
visible and can be referenced by the \$ escape sequence inside the string in gro compatibility mode.
Any  call  to  the cp request  activates  the  following gro compatibility  escape  sequences;  any  call  to  the xag
request disables them.
The \A’string’ escape sequence checks whether string is acceptable as the name of a string, macro, number regis-
ter, or font, and evaluates to ‘‘1’ if it does and to ‘‘0’’ otherwise.  The Heirloom tro anchoring escape sequence
\A is not available in gro compatibility mode.
The \/ escape sequence inserts  an  italic  correction,  i.e. a small  piece of horizontal motion (1/12em)  that should
be  sucient  to  separate  an  italic  character  from  a  following  roman  character.  Similarly, \, adds  a  left  italic
correction, always a zero motion, that should be sucient to separate a roman character from an immediately fol-
lowing italic  character.  Both  exist  to  provide  basic gro compatibility  only.  It is  otherwise  recommended  that
the kernpair request is used for these purposes; it allows a more exact optical separation since the shape of both
characters can be taken into account and also does not need to be be positioned directly in the input text at every
occasion.
The \D´p ...´ polygon drawing  escape sequence is altered such that  the path is always  closed, i.e.  if the last line
part does not return to the starting position, an additional line is added that does.
The escape  sequences \Fx, \F(xx, \F[xxx], \mx, \m(xx, \m[xxx], \Mx, \M(xx, \M[xxx],  are  read  but  discarded  in
gro compatibility mode since the corresponding  concepts of font families and built-in color support are foreign
to Heirloom tro. All of them generate a warning of the escape category.
25.2. gro compatibility macros. As  an  additional  aid  in  formatting  documents  that  had  originally  been  written
with gro in mind, Heirloom tro provides the –mg compatibility macro package.  Specically:
.cp 0 is executed, so tro is operated in gro compatibility mode at extension level 3.
The locale is set to en_US; this assumes that input to gro is conventionally in the
ISO-8859-1
encoding.
The hyphenation language is set to en_US.  Since both gro and Heirloom tro then use the  same hyphenation
algorithm  and patterns derived from T
E
X, it  can  be  assumed  that words are  subject  to  hyphenation  at  the  same
points.
The de1, am1, ds1, and as1 gro requests are emulated using de, am, ds, and as, respectively.  It is not expected
that the gro compatibility macros are used to format documents that require compatibility with traditional tro.
The ftr request is removed since the gro request with the same name provides completely dierent semantics.
fallback is used to emulate fspecial; these requests should be compatible.  No emulation is provided for the spe-
cial request; all other fonts are searched for missing characters in Heirloom tro by default.
track is used to emulate tkf.  These requests are not completely compatible: track does not aect the last char-
acter on a line  and thus does not alter the visual length of lines like tkf does; track is applied when formatting
an object dened with  the char request; track needs  to  remain  in  eect  until  all  aected characters  have  been
physically output.  Nevertheless, the replacement should suce for most applications.
gro characters with two-character names are mapped to PostScript character names using the char request.
The following macro is also provided as an emulation for the corresponding gro request:
Request
Initial
If No
Form
Value
Argument
Notes Explanation
.mso name –
ignored
Include  the  macro  package name.  If  the  environment  vari-
able
GROFF_TMAC_PATH
is set, each  of  the  colon-separated
directories  in  it  is  checked  for  the les name, name.tmac,
-58 -
nro/tro User’s Manual
Heirloom Documentation Tools
September 17, 2007
mname.tmac,  and  tmac.name.  After  this,  the  standard tro
macro  directories  are  checked  in  the  same  way.  Once  a le
has  been  found,  it  is  read  in  as  with  the so request,  and  the
search stops.
26.  Output Language.
tro produces its output in a language that is independent of any specic output device, except that the numbers
in it have been computed on the basis of the resolution of the device, and the sizes, fonts, and characters that that
device can print.  Nevertheless it is quite possible to interpret that output on a dierent device, within the latter’s
capabilities.
sn
set point size to n, fractional parts (if any) ignored
s–23d.d
set point size to d.d
fn
set font to n
cc
print character c
Cname
print the character called name; terminate name by white space
CPSname
print the character with the given PostScript name
Nn
print character n on current font
Hn
go to absolute horizontal position n (n≥0)
Vn
go to absolute vertical position n (n≥0, down is positive)
hn
go n units horizontally; n<0 is to the left
vn
go n units vertically; n<0 is up
nnc
move right nn, then print
ASCII
character c; nn must be exactly 2 digits
pn
new page n begins—set vertical position to 0
nb a
end of line (information only—no action); b = space before line, a = after
w
paddable word space (information only—no action)
Dc ...\n
graphics function c; see below
x ...\n
device control functions; see below
# ...\n
comment
All  position  values  are  in  units.  Sequences  that  end  in  digits  must  be  followed  by  a  non-digit.  Blanks,  tabs
and newlines may occur as separators in the input, and are mandatory to separate constructions that would other-
wise be confused.  Graphics functions, device control functions, and comments extend to the end of the line they
occur on.
The device control and graphics commands are intended as open-ended families, to be expanded as needed.  The
graphics functions coincide directly with the \D sequences:
Dl dh dv
draw line from current position by dh, dv
Dp a b c d ...
draw polygon, i.e. a line to a, b, then to c,d, then ...
Dc d
draw circle of diameter d with left side at current position
De u v
draw ellipse of diameters u and v
Da a b c d
draw arc from current position to a+c,b+d, with center at a,b from current position
D∼ a b c d...
draw B-spline from current position by a,b, then by c,d, then by c, d, then ...
Dz a b c d...
for any other z is uninterpreted
In all of these, x, y is an increment on the current horizontal and vertical position, with down and right positive.
All distances and dimensions are in units.
The device control functions begin with x, then a command, then other parameters.
x T s
name of typesetter is s
x r n h v
resolution is n units/inch;
h= minimum horizontal motion, v = minimum vertical
x i
initialize
x f n s
mount font s on font position n
x f n s lename ags
lename contains metrics for font s on position n using ags
x p
pause—can restart
x s
stop—done forever
-59 -
nro/tro User’s Manual
Heirloom Documentation Tools
September 17, 2007
x t
generate trailer information, if any
x H n
set character height to n, fractional parts (if any) ignored
x H –23 d.d
set character height to d.d
x S n
set slant to n
x X any
generated by the \X and \Y functions
x X BleedAt L T W H
generated by the bleedat request
x X CropAt L T W H
generated by the cropat request
x X HorScale percent
scale letters horizontally by percent (with the letadj request)
x X LC_CTYPE name sets the
LC_CTYPE
locale to name
x X PaperSize W H n
generated by the mediasize and papersize requests
nis non-zero for mediasize
x X PS command
embed PostScript command
x X PSSetup command embed PostScript command in global setup section
x X SetColor color
change printing color
x X SupplyFont font le supply data from le for PostScript font
x X Sync
instructs to ush position and font information immediately
x X Track n
gives a hint that following characters are tracked by n units
interpretation is optional; following positions are not changed
x X TrimAt L T W H
generated by the trimat request
xany
to be ignored if not recognized
Subcommands like ‘‘i’’ may be spelled out like ‘‘init’’.
The commands x T, x r ..., and x i fonts must be mounted before they can be used; x s comes last.  There are no
other order requirements.
The following is the output from ‘‘hello, world’’ for a typical printer, as described in §27:
x T ps
x res 72000 1 1
x init
V0
p1
x font 1 R /usr/ucblib/doctools/font/devps/R.afm 4
x font 2 I /usr/ucblib/doctools/font/devps/I.afm 4
x font 3 B /usr/ucblib/doctools/font/devps/B.afm 4
x font 4 BI /usr/ucblib/doctools/font/devps/BI.afm 4
x font 5 CW /usr/ucblib/doctools/font/devps/CW.afm 4
x font 6 H /usr/ucblib/doctools/font/devps/H.afm 4
x font 7 HB /usr/ucblib/doctools/font/devps/HB.afm 4
x font 8 HX /usr/ucblib/doctools/font/devps/HX.afm 4
x font 9 S1 /usr/ucblib/doctools/font/devps/S1.afm 516
x font 10 S /usr/ucblib/doctools/font/devps/S.afm 1028
s10
f1
x X LC_CTYPE de_DE.utf8
H72000
V12000
ch
h5000ce
h4440cl
h2780cl
h2780co
h5000c,
wh5830cw
h7120co
h5000cr
-60 -
Documents you may be interested
Documents you may be interested