nro/tro User’s Manual
Heirloom Documentation Tools
September 17, 2007
.ps ±N
10point
previous
E,p
Point size set  to ±N.  Alternatively  imbed \sN, \s±N, or \s´N´.
Any positive  size  value  may  be  requested  on  modern devices.
If  invalid,  the  next  larger  valid  size  will  result  on  traditional
devices,  with  a  maximum  of  36.  A  paired  sequence +N, −N
will work because the previous requested value is also remem-
bered.  Ignored in nro.
.fzoom F Z 1
ignored
P,T
Zoom  font F by  factor Z,  which  is  a  positive oating  point
number.  This  request  is  useful  for  adjusting  fonts  with
dierent visual sizes but identical nominal points; the zoom is
thus not applied to characters from another font that have been
found by the fallback sequence or by the special font mechan-
ism.  The current value of  the  current  font is  available  in  the
.fzoom number register.
.ss N [M]
12/36m
ignored
E,T
Space-character  size  is  set  to N/36ems.  This  size  is  the
minimum  word spacing in  adjusted text.  The optional second
argument  sets  the  space  that  is  added  between  sentences  to
M/36ems.  Ignored in nro. The number registers .ss and .sss
contain the current values of N and M, respectively.
.cs FNM
o
P
Constant  character  space  (width)  mode  is  set  on  for  font F
(if mounted); the width of every character will be taken to be
N/36  ems.  If M is  absent,  the  em  is  that  of  the  character’s
point  size;  if M is  given,  the  em  is M-points.  All  aected
characters  are  centered  in  this  space,  including  those  with an
actual  width  larger  than  this  space.  Special  Font  characters
occurring  while  the  current  font  is F are  also  so  treated.  If
N is  absent,  the  mode  is  turned  o.  The  mode  must  be  still
or  again  in  eect  when  the  characters  are  physically  printed.
Ignored in nro.
.bd F N
o
P
The  characters  in  font F will  be  articially  emboldened  by
printing each one twice, separated by N−1 basic units.  A rea-
sonable  value  for N is  3  when  the  character  size  is  in  the
vicinity  of  10  points.  If N is  missing  the  embolden  mode  is
turned o.  The emboldening value N is in the .b register.
TThhiiss  ppaarraaggrraapphh  iiss  pprriinntteedd  wwiitthh .bd  R  3..  TThhee  mmooddee  mmuusstt
bbee  ssttiillll  oorr  aaggaaiinn  iinn  eeeecctt  wwhheenn  tthhee  cchhaarraacctteerrss  aarree  pphhyyssiiccaallllyy
pprriinntteedd..  IIggnnoorreedd iinn nro.
.bd S F N
o
P
The  characters  in  the Special Font  will be emboldened  when-
ever the current font is F.  The mode must be still or again in
eect when the characters are physically printed.
.ft F
Roman
previous
E
Font changed  to F.  Alternatively,  imbed \fF.  The  font name
P is  reserved  to  mean  the  previous  font,  and  the  name S for
the special font.
.fp N F [ le [supply]]
ignored
P
Font  position.  This  is  a  statement  that  a  font  named F is
mounted on position N.  With two arguments, it is a fatal error
if F is not known as a legacy tro font le (§27.2).
With three or  more arguments, font  metrics  are read from  the
given le,  which  must  be  in  Type 1,  OpenType,  or  TrueType
format.  If the
TROFFONTS
environment  variable is set,  each
of  the  colon-separated  directories  in  it  is  tested  for  the les
le.afm, le.otf, le.ttf,  or,  if  the le argument  has  an .afm,
.otf,  or .ttf extension  itself,  for le.  Otherwise,  the  font  is
loaded from the le /usr/ucblib/doctools/font/devps/le.afm.
-21 -
Delete blank pages in pdf files - remove PDF pages in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Provides Users with Mature Document Manipulating Function for Deleting PDF Pages
delete pages in pdf; delete pages from a pdf file
Delete blank pages in pdf files - 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 page on pdf file; add and delete pages from pdf
nro/tro User’s Manual
Heirloom Documentation Tools
September 17, 2007
The N argument species a register on which the font is to be
mounted (1≤N≤255).  If it  is zero, the font is mounted on  the
next  free  position  (not  on  position  zero).  At  most  255  fonts
may  be  mounted  simultaneously;  it  is  possible  to  use  more
than 255 fonts in a document by reusing font registers.
The font is then available with .ft F, \fF, etc. F may be freely
chosen, and may consist of more than two characters.
F may  be  the  name  of  a  previously  mounted  font,  such  as
R.  In  this  case,  the  same N register  must  be  reused.  For
best  compatibility  with  conventional tro usage,  it  is  recom-
mended  that  the  base  fonts  of  a  document  are  mounted  as
‘‘1 R’’, ‘‘2 I’’,  ‘‘3 B’’, ‘‘4 BI’’.  The initial fonts on positions
9 (S1) and 10 (S) should not be changed, as they contain spe-
cial metrics for drawing commands.
If  the  optional supply argument  is  present,  glyph  data  is
included  in  the  generated  PostScript le.  If supply is  one  of
otf, pfb, pfa, ttf,  or t42,  the le supply.pfb (or  likewise)  is
searched  in  the  directories  in
TROFFONTS
rst  as  described
for  the
AFM
le  above,  and  if  it  is  not  found  there,  in
/usr/ucblib/doctools/font/devps/supply.pfb (or  likewise). sup-
ply may also be the basename of a le like le above.
The character % can be used to escape arbitrary bytes  in font
le  names.  In  particular,  this  is  necessary  to  use  font les
whose  names  contain  spaces,  bytes  outside  the  ASCII  range,
or a % itself. %xx represents  the  byte  with the hexadecimal
code xx, e.g., %20 is a space character.  In the path names in
TROFFONTS, only the % and : characters have to be masked
using this mechanism.
.fps map ...
ignored
P,T
Mount a font with a special character map.  By default, special
characters  like \(∗a are  not  assigned  when  a  font  is  mounted
even  if a  matching  named  PostScript  character  (like \[alpha])
would  have  been  available.  The  following  special  character
maps exist:
math
mathematical characters like ≤ ∪ → ∞
greek
greek characters like α β γ Α Β Γ
punct
the characters \(or – \` \´ " # < > @ \ ˆ |
large
parts of large characters like    
The punct map is  used by  default  for the ps and psmed dev-
ices.
The remaining arguments are handled as described for fp.
.feature F ±name ...
ignored
P,T
Enable  (+)  or  disable  (–)  the  OpenType  feature name in  font
F.  Only  OpenType  features  that  result  in  context-insensitive
single-character  substitutions  are  supported.  Typical  features
are onum to  enable  old-style  numerals,  or smcp to  enable
small capitals.
.fallback F A B ...
ignored
P,T
Select  the fallback sequence for  font F.  If the current  font is
F and  a  character  is  not  found,  font A is  searched rst,  then
font B,  etc.  If  the  character  still  has  not  been  found,  it  is
searched for  in the Special Font, then  in the fonts mounted at
positions 0, 1, and so forth.
-22 -
C# PDF Page Insert Library: insert pages into PDF file in C#.net
such as how to merge PDF document files by C# code, how to rotate PDF document page, how to delete PDF page using Add and Insert Blank Pages to PDF File in
delete a page from a pdf without acrobat; delete page from pdf
C# Create PDF Library SDK to convert PDF from other file formats
Create PDF from Open Office files. Program.RootPath + "\\" output.pdf"; // Create a new PDF Document object with 2 blank pages PDFDocument doc
delete page from pdf reader; delete page pdf file
nro/tro User’s Manual
Heirloom Documentation Tools
September 17, 2007
.hidechar F c d ...
ignored
P,T
Hide  the  characters c, d,  etc.  from  font  F.  If  the  characters
appear  in  input  afterwards,  they  are  searched  in  other  fonts
using the fallback sequence.  This is useful e.g. for combining
characters from a regular and a Type 1 expert font.
.spacewidth N
on
O,T
If N≠0,  use  the  space  width  from  the  font  metrics le.  The
space  width  otherwise  defaults  to  1/3em  for  variable-width
fonts,  or  to  the  width  of  the space character for  monospaced
fonts.  With this request, the space width is set to the width of
the space character  as  obtained from  the  font  metrics le  for
variable-width fonts too.
.fspacewidth F [N]
ignored
O,T
Set  the  width  of  the  space  character  in  font F to N, which is
given in units of  1/72000 of an inch multiplied by the current
point size or 1/1000 of an em (as in
AFM
kerning pair deni-
tions).  If only one argument is present, the space width is set
to the width of  the space character  as obtained  from the  font
metrics le.
When  the width of  spaces  in output is actually computed,  the
space  size  as  set  by ss is  also  taken  into account.  The space
width  as  dened  above  is  used  directly  with .ss  12,  which
is  the  default.  Otherwise,  it  is  multiplied  by  the ss setting
divided by 12.
3.  Page control
Top  and  bottom  margins  are not automatically  provided;  it  is  conventional  to  dene  two macros and  to  set
traps for  them  at  vertical  positions  0  (top)  and −N (N from  the  bottom).  See §7 and  Tutorial  Examples §T2.
A  pseudo-page  transition  onto  the rst page  occurs  either  when  the rst break occurs  or  when  the rst non-
diverted text processing occurs.  Arrangements for a trap to occur at the top of the rst page must be completed
before this transition.  In the following, references to the current diversion (§7.4) mean that the mechanism being
described works during both ordinary and diverted output (the former considered as the top diversion level).
The physical limitations on tro and nro output are device dependent.
Request
Initial
If No
Form
Value
Argument
Notes Explanation
.pl ±N
11in
11in
v
Page length set to ±N.  The current page length is available in
the .p register.
.papersize media
ignored
T,u
Set  the  paper  size. media can  be  one  of executive, letter,
legal, ledger, tabloid, aN, bN, cN,  or  two  numbers  giving
the  width  and  height  directly.  The  page  length  is  set  from
these  parameters,  the page  oset and  line length  are  adjusted
as needed,  and  the  post-processor  is informed  about  the  page
metrics for its internal calculations.  The last action is the real
reason  why  this  request  exists;  without  it,  PostScript  printers
may  displace  the  pages  of  the  document.  The  default  are
letter measurements.  This  request  should  be  used  early  in  a
document; if it  is  given multiple times, the last one will setup
the device.
.mediasize media
ignored
T,u
Set  the  device  media  size. media can  be  one  of executive,
letter, legal, ledger, tabloid, aN, bN, cN, or two numbers giv-
ing  the  width  and  height  directly.  This  request  performs  the
same actions  as papersize and  generates a  device  setup  com-
mand in  addition (the PostScript Level 2 operator setpagedev-
ice as well as  the DSC  comment %%DocumentMedia: with
-23 -
VB.NET PDF File & Page Process Library SDK for vb.net, ASP.NET
PDF document is unnecessary, you may want to delete this page instance may consist of newly created blank pages or image VB.NET: Edit and Manipulate PDF Pages.
add and delete pages in pdf online; delete page pdf acrobat reader
VB.NET PDF Page Insert Library: insert pages into PDF file in vb.
Able to add and insert one or multiple pages to existing adobe PDF document in VB.NET. Ability to create a blank PDF page with related by using following online
delete pages from pdf online; delete pdf pages in preview
nro/tro User’s Manual
Heirloom Documentation Tools
September 17, 2007
dpost).  The  eect  of  this  command  can  be  the  selection  of
 matching  paper  tray  on  a  printer;  on  the  other  hand,  the
document  may  not  print  at  all  if  no  such  tray  is  available.
In  general,  it  is  recommended  to  use  printer-specic  options
from  a
PPD
le when the le  is submitted to the  print  spool-
ing  system  instead  of this request.  However,  when generating
PostScript as  intermediate format with the intent  of
PDF
crea-
tion, use of this request is recommended.
.cropat L T W H
ignored
T,p
Set  the ‘‘CropBox’’ page  parameter  for
PDF
generation.  The
four  arguments  give  the  oset  from  the  left  (L)  and  top  (T )
margins  of  the  document  (as  set  by mediasize),  and  width
(W)  and height (H)  of  the box.  The  default  units are points.
The CropBox restricts the  area of the  page that  is  shown by a
PDF
viewer program.  It is useful to hide cut marks and  other
printing instructions when the same
PDF
document is intended
to be displayed on screen.
.trimat L T W H
ignored
T,p
Set  the  ‘‘TrimBox’’  page  parameter  for
PDF
generation  and
enables  printing  of  marks  when  combined  with dpost –M.
The  four  arguments  give  the  oset  from  the  left  (L)  and  top
(T) margins of the document (as set by mediasize), and width
(W)  and height (H)  of  the box.  The  default  units are points.
The  TrimBox  species  how  the  page  is  to  be  cut  after  it
has  been  printed;  it  is sort of  an electronic equivalent  for  cut
marks (which should continue to be printed in addition).
.bleedat L T W H
ignored
T,p
Set  the ‘‘BleedBox’’ page parameter for
PDF
generation.  The
four  arguments  give  the  oset  from  the  left  (L)  and  top  (T )
margins of the document (as set by mediasize), and width (W)
and height (H) of the  box.  The default units are  points.  The
BleedBox  should  be  dened  as  a  a  frame  around  the  objects
of the  actual  document  including any  bleed areas  (i.e.  content
that  should  extend  to  the  end  of  the  trimmed nal  page  but
is extended a bit such to work around possible cutting inaccu-
racies).  Cut  marks,  color  bars,  and  other  information  for  the
printing oce should be positioned outside the BleedBox.
.bp ±N
N=1
B,v
Begin  page.  The  current  page  is  ejected  and  a  new  page  is
begun.  If ±N is  given,  the  new  page  number  will  be ±N.
Also see request ns.
.pn ±N
N=1
ignored
Page  number.  The  next  page  (when  it  occurs)  will  have  the
page  number ±N.  A pn must occur before  the initial  pseudo-
page  transition  to  eect  the  page  number  of  the rst  page.
The current page number is in the % register.  The number of
the next page is in the .pn register; this  is  either the  value set
by pn or the current page number plus 1.
.po ±N
0; 1in
previous
v
Page  oset.  The  current left  margin is  set  to ±N.  The tro
initial value  provides  about  1 inch of  paper  margin  on a  typi-
cal device.  The current page oset is available in the .o regis-
ter.
.ne N
N=1V
D,v
Need N vertical  space.  If  the  distance, D,  to  the  next  trap
position  (see §7.5) is  less than N,  a forward vertical  space  of
size D occurs,  which  will  spring  the  trap.  If  there  are  no
remaining  traps  on the  page, D is  the  distance  to  the  bottom
of  the  page.  If D< V,  another  line  could  still  be  output  and
-24 -
C# Word - Insert Blank Word Page in C#.NET
specify where they want to insert (blank) Word document rotate Word document page, how to delete Word page NET, how to reorganize Word document pages and how
cut pages out of pdf file; reader extract pages from pdf
C# PowerPoint - Insert Blank PowerPoint Page in C#.NET
where they want to insert (blank) PowerPoint document PowerPoint document page, how to delete PowerPoint page to reorganize PowerPoint document pages and how
acrobat remove pages from pdf; delete page from pdf acrobat
nro/tro User’s Manual
Heirloom Documentation Tools
September 17, 2007
spring the  trap.  In  a  diversion, D is the  distance to the diver-
sion trap, if any, or is very large.
.mk R
none
internal
D
Mark  the current vertical  place  in  an  internal  register  (both
associated with the current diversion level), or in register R, if
given.  See rt request.
.rt ±N
none
internal
D,v
Return upward  only to  a  marked  vertical  place  in  the  current
diversion.  If ±N (w.r.t.  current  place)  is  given,  the  place  is
±N from the top of the page or diversion or, if N is absent, to
 place  marked  by  a  previous mk.  Note  that  the sp request
(§5.3) may  be  used  in  all  cases  instead  of rt by  spacing  to
the  absolute  place  stored  in  a  explicit  register;  e.g.  using  the
sequence .mk R ... .sp |\nRu; this also works when the motion
is downwards.
4.  Text Filling, Adjusting, and Centering
4.1.Filling and adjusting. Normally,  words  are  collected  from input text  lines  and  assembled  into  a  output text
line until some word does  not t.  An attempt is then made the hyphenate the word in eort to assemble a part
of it into  the output line.  The spaces between the words on the output line are then increased to spread  out the
line  to  the  current line  length minus  any  current indent.  A word is  any  string  of  characters  delimited  by  the
space character  or the beginning/end of the input line.  Any  adjacent pair  of  words  that must  be  kept  together
(neither  split  across  output  lines  nor  spread  apart  in  the  adjustment  process)  can  be  tied  together  by  separat-
ing them with the unpaddable space character "\ " (backslash-space).  The paddable no-break space character \∼
keeps words on the same output line but may be spread during adjustment.  The adjusted word spacings are uni-
form in tro and the minimum interword spacing can be controlled with the ss request (§2). In nro, word spac-
ings are normally nonuniform because of quantization to character-size spaces; however, the command line option
–e causes uniform spacing with full output device resolution.  Filling, adjustment, and hyphenation (§13) can all
be prevented or  controlled.  The text  length on the  last line  output is  available  in the .n register, and  text  base-
line position on  the page for this line is in the nl register.  The text base-line high-water mark (lowest place) on
the current page is in the .h register.  The current horizontal output position is in the .k register.  The .x register
indicates the remaining horizontal space on the current output line.
tro can optionally  decrease  word spacings, change  the  letter  spacing,  and  reshape  letters  when adjusting  lines
to t on both margins.  The interword  spacing controlled  with the ss request is then understood as the optimum
setting.  Words  are  collected  from  input  until  the rst  word  that  would  require  to  condense  spacing  or  letter
shapings  is  encountered.  Between  the  end  of  the  previous  word  and  the  end  of  this  word,  hyphenation points
are  additionally  examined  until  the  two  possibilities  to  end  the  line  surrounding  the  optimum  are  found.  The
point  closest to the optimum is then  chosen.  If  the word spacing so determined  would  fall below  the minimum
allowed, letter spacings and shapings are condensed.  If it would exceed the threshold for expanded letter spacing
and letter shaping, it is attempted to compensate until the threshold is reached, up to the maximum allowed letter
spacing and letter shaping.  Remaining  space is distributed among the  word  spacings.  Distribution among  letter
spacings and shaping is equal until one of the respective limits is reached.  Lines that terminate with a break are
normally set using the  optimum word and line spacings unless the last word collected is the rst word that falls
below the optimum spacing, which may result in condensed spacing and shaping.  The horizontal positions in the
.k and .x registers are always computed using default character and spacing widths.
As an alternative to adjusting one line at a time as described, tro also supports adjusting one paragraph at once.
In  this mode,  words are collected  from input  lines and requests are  processed  until  a break occurs.  The  words
are then  split into lines such  that the interword spaces are  closest to the optimum setting across  the entire  para-
graph.  Ultimately, the lines so determined are printed.  Traps, page breaks, and any positioning become eective
only at this time.  It is thus well possible that the current page number as read on the input line in the % regis-
ter  is lower than  the  number  of  the  page on  which  the  corresponding text is  actually output.  Any  reference  to
the page number or page position (e.g. writing an index entry) should thus be handled using the output-line trap
mechanism instead of  in-line macros.  Likewise  the .k and .x registers are not  meaningful  in  this  mode, except
that .k is never zero when text is present in a partial paragraph.
-25 -
How to C#: Cleanup Images
returned. Delete Blank Pages. Set property BlankPageDelete to true , blank pages in the document will be deleted. Remove Edges or Borders.
delete page from pdf file online; delete blank page from pdf
VB.NET Create PDF Library SDK to convert PDF from other file
Dim outputFile As String = Program.RootPath + "\\" output.pdf" ' Create a new PDF Document object with 2 blank pages Dim doc As PDFDocument = PDFDocument
delete pdf pages acrobat; delete pages from pdf in preview
nro/tro User’s Manual
Heirloom Documentation Tools
September 17, 2007
An input text line ending with ., ?, !, or :, optionally followed by any number of ", ´, ), ], *, or †, is taken to be
the end of a sentence, and an additional space character is automatically provided during lling.  To prevent this
at individual locations, add \& to  the end of  the input  line;  the second  argument to the ss request (§2) changes
the  size  of  this  space character  and  can  also  disable  it  globally.  Both  the  sentence-ending and  the  transparent
characters are congurable.  The \) character is always transparent but behaves like \& in all other respects.  Mul-
tiple inter-word space characters  found in the  input are  retained, although the  second character in  a sequence of
spaces following  a sentence-ending character has  the width of  a sentence  space;  if the sentence space  has  been
set to zero, any sequence of spaces following a sentence-ending character has the width of a single space.  Trail-
ing spaces are always discarded.  Initial spaces are always retained and also cause a break.
With  the brnl request, a break occurs at the end of each text input line in ll mode, except for lines interrupted
with \c.  Contrasting to noll mode, text is still adjusted to the line length.
When lling is  in  eect,  a \p may  be  imbedded  or attached  to a  word to  cause  a break at  the end of the word
and have the resulting output line spread out to ll the current line length.
When adjusting  paragraphs  at  once, is  possible  to  specify  additional penalties for putting a  line  break  after  the
current  word  (or  part  of  a  hyphenated  word) by  imbedding  or  attaching  a \j´±N´ to  it.  A  positive  value  of N
discourages a  line  break,  a  negative  value  encourages  it.  Values of  1000000  and  above  are  taken as  innitive
penalties and always prevent a line break; values of –1000000 always cause a line break.  A default penalty can
be set with the \J´±N´ escape sequence; this is useful to discourage line breaks within a certain group of words,
e.g. a person’s name or a formula.  Relative values in the argument to \j refer to the default penalty.  The current
default penalty is available in the .defpenalty number register.  Separate penalties can be specied for breaking a
line after a hyphenated word part using the hypp request (§13).
With  the brpnl request,  each end  of a text input line in ll mode causes a break and a  spread, except for  lines
interrupted with \c.  The meaning of \p is  then changed such that  a line that it is attached to is not spread; this
is the only  method to  achieve  a regular break without  a spread then.  Manually adjusted text can  thus be typed
more comfortably since only the (fewer) lines that are not spread need to be marked.
A text input  line that  happens  to  begin  with a control  character  can  be  made to not  look  like  a control  line by
prefacing it with the non-printing,  zero-width ller  character \&.  Still another  way is  to  specify  output transla-
tion of some convenient character into the control character using tr (§10.5).
4.2.Interrupted text. The copying of a  input  line in noll (non-ll)  mode can be interrupted by terminating  the
partial  line with a \c.  The next encountered input  text line  will  be  considered  to be a  continuation  of the  same
line of input text.  Similarly, a word within lled text may be interrupted by terminating the word (and line) with
\c;  the next encountered  text  will  be  taken  as a  continuation  of the  interrupted word.  If  the intervening control
lines cause a break, any partial line will be  forced out along with any partial  word.  The .int number register is
set to a non-zero value if the previous line was interrupted and to zero otherwise.  The length of a partial word is
ignored for the value of the .k number register in ll mode; it is separately available with the .kc register.
4.3.Kerning. tro reads  kerning  tables  from  Type 1,  OpenType,  and  TrueType  font les.  These  tables  contain
small horizontal spacing adjustments for pairs of individual characters, e.g., the pair ‘‘Vo’’ would print as ‘‘Vo’’
without kerning applied.  Placing \& between two characters  disables kerning at  that location; the kern request
can disable it globally.  The kernpair request adds a  kerning pair; in  contrast  to  predened pairs, it allows  the
characters to originate from dierent fonts.
It is sometimes useful to add or substact a constant amount of spacing whenever a specic character appears; for
example, «french» quotation marks usually require some additional distance to the words contained in them.  The
kernafter and kernbefore requests  allow  to  dene  such  adjustments.  Again,  a \. disables  them  at  individual
points; they are generally not applied if the other character is a space.
4.4.Hanging characters. Characters  can  hang  beyond  the  left  or  right  margins  of  adjusted  text;  the lhang and
rhang requests specify  this.  Left margin adjustments are  evaluated before the letters  that t on the  current line
are computed, and can thus principally be of any length.  In contrast, right margin adjustments are evaluated after
this  computation is nished,  and  the  adjustment  is  simply added  to  the  word space  of  the  output line.  Thus  a
positive right adjustment that is large in relation to the line length will cause visible holes, and a negative adjust-
ment will  ultimately  cause  the  words  on  the  line  to  be printed  over  each  other.  This  is  not  a  problem  for  the
typical  application of hanging punctuation  for visual  alignment,  though; if  e.g. a  line with eight word  spaces is
shifted by .08 em, each word space is enlarged by only .01 em.
-26 -
VB.NET PDF: Get Started with PDF Library
Auto Fill-in Field Data. Field: Insert, Delete, Update Field. RootPath + "\\" output.pdf" ' Create a new PDF Document object with 2 blank pages Dim doc
delete pages on pdf; delete pages from a pdf reader
nro/tro User’s Manual
Heirloom Documentation Tools
September 17, 2007
Request
Initial
If No
Form
Value
Argument
Notes Explanation
.br
B
Break.  The lling  of  the  line  currently  being  collected  is
stopped and the line  is output  without  adjustment.  Text  lines
beginning  with  space  characters  and  empty  text  lines  (blank
lines) also cause a break.
.brp
B
Break  and  spread;  same  eect  as  the \p escape  sequence
except  that  it  causes the remaining  part  of  a paragraph  shape
as set with pshape to be discarded.
.fi
ll on
B,E
Fill subsequent  output lines.  The  register .u is 1 in ll mode
and 0 in noll mode.
.nf
ll on
B,E
Noll.  Subsequent output lines are neither lled nor adjusted.
Input  text  lines  are  copied  directly  to  output  lines without
regard for the current line length.
.ad c
adj,both
adjust
E
Line  adjustment  is  begun.  If ll  mode  is  not  on,  adjustment
will  be  deferred  until ll  mode  is  back  on.  If  the  type  indi-
cator c is present, the  adjustment type is changed as shown in
the following table.
__________________________________________
Indicator
Adjust Type
__________________________________________
l
adjust left margin only
r
adjust right margin only
c
center
bor n
adjust both margins
por pb
adjust both margins paragraph-wise
pl
adjust left margin paragraph-wise
pr
adjust right margin paragraph-wise
pc
center paragraph-wise
absent
unchanged
__________________________________________
The  number  register .j contains  the  current  value  of  the ad
setting; its value can be recorded and used subsequently to set
adjustment.
.na
adjust
E
Noadjust.  Adjustment  is  turned  o;  the  right  margin  will  be
ragged.  The  adjustment  type  for ad is  not  changed.  Output
line lling still occurs if ll mode is on.
.padj N
o
on
Control  paragraph-at-once  adjustment  globally.  If N≠0  or
missing,  paragraph-at-once  adjustment  is  enabled  in  all
environments,  and ad x eectively  acts  like ad px.  The
current value is available in the .padj register.
.ce N
o
N=1
B,E
Center  the  next N input  text  lines  within  the  current  (line-
length  minus  indent).  If N=0,  any  residual  count  is  cleared.
A  break  occurs  after  each  of  the N input  lines.  If  the  input
line  is too long,  it  will  be  left  adjusted.  The number of  lines
to  be  right-aligned,  if  any,  is  set  to  zero.  The  remaining
number of lines to be centered is available in the .ce register.
.rj N
o
N=1
B,E
Right-align the next N input text lines within the current (line-
length minus indent); otherwise  like ce.  The number of  lines
to  be  centered, if any,  is  set  to  zero.  The remaining  number
of lines to be right-justied is available in the .rj register.
-27 -
nro/tro User’s Manual
Heirloom Documentation Tools
September 17, 2007
.brnl N
o
N=∞
B,E
Break  at  end  of  next N input  text  lines  when lling  is  in
eect.  The  remaining  number of  lines  so  treated  is  available
in the .brnl register.
.brpnl N
o
N=∞
B,E
Break and spread at end of next N input text lines when lling
is in eect.  The remaining number of lines so treated is avail-
able  in  the .brpnl register. brpnl disables brnl and  vice-
versa.
.minss N
o
o
E,T
Minimum  word  space.  When  adjusting  both  margins, tro
may  decrease  the  size  of  the  word  space  down  to N/36ems
(rather than to the value set by ss).  The current value is avail-
able in the .minss register.
.letadj X U S Y V
o
E,T
Dynamic  letter  spacing  and  reshaping  when  adjusting  lines.
The  space  between  letters  can  be  automatically  expanded  or
condensed  (in  addition  to  the  space  between  words),  and  the
width  of  letters  can  be  automatically  changed  in ad b mode.
The X argument  gives  the  minimum  percentage  of  an  en  of
the  current  point  size  by  which  adjacent  characters  may  be
tightened;  the U argument  gives  the  minimum  percentage  of
the  letter  width  by  which  letters  may  be  condensed.  When
the computed size  of the word  space  would have to be larger
than S, additional  space  will  be  inserted  between letters up  to
 limit  of Y percent  of  an  en  of  the  current  point  size,  and
letters  will  be  expanded  by  up  to V percent  of  their  width
until  the  word  space  does  not  extend  beyond S anymore. S
is  given  in  units  of  1/36ems  as  with ss.  The  number  regis-
ters .lspmin, .lshmin, .letss, .lspmax, and .lshmax contain the
current values of X, U, S, Y, and V, respectively.
.sentchar c... .?!:
o
E
Sentence-ending  characters.  When  one  of  the  characters c...
appears  at  the  end  of  an  input  text  line,  an  additional  space
character  of  the  size  dened  with  the ss request  is  inserted.
The  current  set  of  sentence-ending  characters  is  available  in
the .sentchar number register.
.transchar c.."’)]*†
o
E
Transparent characters for sentence-ending.  A sentence-ending
character  is  recognized  as  such  even  if  followed  by  one  or
more of the characters c... before the end of an input text line.
The current set of transparent characters for sentence ending is
available in the .transchar number register.
.track F S N T M
ignored
P,T,p
Static  letter  space  tracking.  If  the  current  font  is F and  the
point  size  is  below  or  equal  to S,  white  space  of  width N is
added  to  each  character.  If  the  point  size  is  above  or  equal
to T,  white  space  of  width M is  added.  If  the  point  size  is
between S and T,  the  amount  of  white  space  added  is  com-
puted as a value between N and M using the current point size
s:  (sM–sN+TN–SM) /(T–S).  The default unit for all numeric
arguments is points.  Negative numbers are accepted and cause
a decrease of letter space.  No adjustment is performed on the
last character of an output line.  Tracking also applies to char-
acters  from  another  font  that  have  been  selected  by  the fall-
back sequence.
.kern N
1
1
P,T
Control pairwise kerning; disabled if N=0, otherwise enabled.
-28 -
nro/tro User’s Manual
Heirloom Documentation Tools
September 17, 2007
.fkern F N
1
1
P,T
Control the use of kerning tables from font F; disabled if N=0,
enabled if N=1 or  missing.  For N≥2, only  kerning pairs with
absolute  values  greater  or  equal  to N are  used. tro kern-
ing  adjustments  as  dened  by  the  following  requests  are  not
aected.
.kernpair F c... G d... N
ignored
P,T
Add  a  kerning  pair  to  the  kerning  table  for  character c from
font F and  character d from  font G. c and d may  consist
of multiple characters; in  this case, table  entries  are added for
any pair combination of characters from c and d.  The N argu-
ment  is  1/72000  of  an  inch  multiplied  by  the  current  point
size or 1/1000 of  an  em (as in
AFM
kerning pair  denitions);
it  may  be  negative.  To  add  a  kerning  pair  that  includes  the
space character, use ‘‘\ ’’.
.kernafter F c... N d... M ...
P,T
Add a constant amount of space after a character if the current
font is F and c is the rst character of a pair of characters sub-
ject  to  kerning. c may  consist of  multiple  characters;  in  this
case,  the  same  amount  is  added  whenever  one  of  the  given
characters  appears.  The N argument  is  1/72000  of  an  inch
multiplied by the current point size or  1/1000 of an  em (as in
AFM
kerning  pair  denitions);  it  may  be  negative.  Same  for
d/M etc.
.kernbefore F c... N d... M ...
P,T
Add  a  constant  amount  of  space  before  a  character  if  the
current  font  is F and c is  the  second  character  of  a  pair  of
characters  subject  to kerning. c may consist of  multiple char-
acters;  in  this  case,  the  same  amount  is  added  whenever  one
of the given characters  appears.  The N argument is  1/72000
of an inch multiplied by the current point size or 1/1000 of an
em  (as  in
AFM
kerning  pair  denitions);  it  may  be  negative.
Same for d/M etc.
.lhang F c... N d... M ...
ignored
T
Hanging  characters  at  left  margin.  When  the  current  font  is
F and c appears  at  the  left  margin  of  an  output  line  in  left-
adjusted, both-adjusted, or noll mode, the margin is relocated
to the right by N,  which  is  1/72000 of an inch  multiplied  by
the current point size or 1/1000 of an em (as in
AFM
character
width denitions); it may be negative. c may consist of  mul-
tiple characters; in this case, the margin is relocated whenever
one of the given characters appears.  Same for d/M etc.
.rhang F c... N d... M ... ignored
T
Hanging  characters at right margin.  When the current  font is
F and c appears at the right margin of an output line in right-
adjusted, both-adjusted, or noll mode, the margin is relocated
to the right by N,  which  is  1/72000 of an inch  multiplied  by
the current point size or 1/1000 of an em (as in
AFM
character
width denitions); it may be negative. c may consist of  mul-
tiple characters; in this case, the margin is relocated whenever
one of the given characters appears.  Same for d/M etc.
5.  Vertical Spacing
5.1.Base-line spacing. The vertical spacing (V) between the base-lines of successive output lines can be set using
the vs request. V should be large  enough to accommodate the character sizes on the  aected output lines.  For
the common type sizes (9-12 points), usual typesetting practice is to set V to 2 points greater than the point size;
tro default is  10-point  type on a  12-point  spacing  (as in this  document).  The  current V is  available  in  the .v
register.  Multiple-V line separation (e.g. double spacing) may be requested with ls, but it is better to use a large
vs instead; certain preprocessors assume single spacing.  The current line spacing is available in the .L register.
-29 -
nro/tro User’s Manual
Heirloom Documentation Tools
September 17, 2007
5.2.Extra line-space. If a  word contains  a  vertically tall construct requiring  the output  line containing it to  have
extra  vertical  space  before  and/or after  it,  the extra-line-space function \x´N´ can be imbedded in  or attached  to
that word.  If N is negative, the output line containing the word will be preceded by N extra vertical space; if N
is positive, the output line containing the word will be followed by N extra vertical space.  If successive requests
for extra space apply  to the same line, the maximum values are used.  The  most recently utilized post-line extra
line-space is available in the .a register.
In \x´...´ and  other functions having a  pair  of delimiters around their parameter  (here ´ ), the  delimiter choice is
arbitrary, except that it can not look like the continuation of a number expression for N.
5.3.Blocks of vertical space. A  block  of  vertical  space  is  ordinarily  requested  using sp, which  honors  the no-
space mode and which does not space past a trap.  A contiguous block  of vertical space  may be reserved using
sv.
5.4.Ascenders and descenders. Type 1,  OpenType,  and  TrueType  metrics  supply  information  about  the  typical
extents  of  characters above  the  base-line  (ascender)  and  below it (descender).  Usually, these correspond  to  the
top  of  the  lowercase  ‘‘d’’  and  the  bottom  of  the  lowercase  ‘‘p’’,  respectively.  The .ascender and .descender
number registers contain these values in units with correct scaling for the current point size applied.  If no values
are available, these registers are set to zero.
Request
Initial
If No
Form
Value
Argument
Notes Explanation
.vsN
1/6in;12pts previous
E,p
Set  vertical  base-line  spacing size V.  Transient extra vertical
space available with \x´N´ (see above).
.lsN
N=1
previous
E
Line spacing set to ±N. N−1 Vs (blank lines) are appended to
each output text line.  Appended blank lines are omitted, if the
text or previous appended blank line reached a trap position.
.sp N
N=1V
B,v
Space  vertically  in either direction.  If N is  negative,  the
motion is backward (upward) and  is  limited  to the distance  to
the top of the page.  Forward (downward) motion is truncated
to  the  distance  to  the  nearest  trap.  (Recall  the  use  of .sp |N
from §1.3.) If the no-space mode is on, no spacing occurs (see
ns, and rs below).
.sv N
N=1V
v
Save  a contiguous vertical block of  size N.  If the  distance  to
the next trap is greater than N, N vertical space is output.  No-
space  mode  has no eect.  If this distance  is  less  than N,  no
vertical space is immediately output,  but N is remembered for
later  output  (see os).  Subsequent sv requests  will  overwrite
any still remembered N.
.os
Output  saved  vertical  space.  No-space  mode  has no eect.
Used  to nally  output  a  block  of  vertical  space  requested  by
an earlier sv request.
.ns
space
D
No-space mode turned on.  When on, the no-space mode inhi-
bits sp requests  and bp requests without a  next  page  number.
The no-space mode is turned o when a line of output occurs,
or with rs.  The number register .ns is set to a non-zero value
in no-space mode and to zero otherwise.
.rs
space
D
Restore spacing.  The no-space mode is turned o.
Blank text line.
B
Causes  a  break  and  output  of  a  blank  line  exactly  like sp 1
unless  a  dierent  action  has  been  specied  with  the blm
request.
-30 -
Documents you may be interested
Documents you may be interested