This is the net.didierverna.tfm Reference Manual, generated automatically by Declt version 4.0 beta 2 "William Riker" on Tue Jul 15 06:51:57 2025 GMT+0.
net.didierverna.tfm/net.didierverna.tfm.asd
net.didierverna.tfm.core/net.didierverna.tfm.core.asd
net.didierverna.tfm.setup/net.didierverna.tfm.setup.asd
net.didierverna.tfm.core/package.lisp
net.didierverna.tfm.core/src/util.lisp
net.didierverna.tfm.core/src/intermediate.lisp
net.didierverna.tfm.core/src/character.lisp
net.didierverna.tfm.core/src/font.lisp
net.didierverna.tfm.core/src/file.lisp
net.didierverna.tfm.setup/package.lisp
net.didierverna.tfm.setup/src/configuration.lisp
net.didierverna.tfm.setup/src/readtable.lisp
net.didierverna.tfm.setup/src/version.lisp
The main system appears first, followed by any subsystem dependency.
net.didierverna.tfm
A Common Lisp interface to the TeX Font Metric format, and similar
TeX Font Metric
Didier Verna
http://www.lrde.epita.fr/~didier/software/lisp/typesetting.php#tfm
BSD
TFM (for TeX Font Metric) is the standard font description format used by
TeX. The TFM library parses and decodes TeX Font Metric and similar formats
into an abstract data structure, providing easy access to the corresponding
font information in Common Lisp.
In addition to regular TFM data, the library also supports level 0 Omega (OFM) fonts.
net.didierverna.tfm.core
(system).
net.didierverna.tfm.core
TeX Font Metric, core library
TFM Core
Didier Verna
http://www.lrde.epita.fr/~didier/software/lisp/typesetting.php#tfm
BSD
The TeX Font Metric core library provides the main functionality of TFM. For a more complete description of TFM, see the ‘net.didierverna.tfm’ system.
net.didierverna.tfm.setup
(system).
package.lisp
(file).
src
(module).
net.didierverna.tfm.setup
TFM’s preload setup library
TeX Font Metrics, setup library
Didier Verna
http://www.lrde.epita.fr/~didier/software/lisp/typesetting.php#tfm
BSD
The TFM setup library provides support for various preload configuration parameters and meta-utilities. For a more complete description of TFM, see the ‘net.didierverna.tfm’ system.
named-readtables
(system).
package.lisp
(file).
src
(module).
Modules are listed depth-first from the system components tree.
net.didierverna.tfm.core/src
package.lisp
(file).
net.didierverna.tfm.core
(system).
util.lisp
(file).
intermediate.lisp
(file).
character.lisp
(file).
font.lisp
(file).
file.lisp
(file).
net.didierverna.tfm.setup/src
package.lisp
(file).
net.didierverna.tfm.setup
(system).
configuration.lisp
(file).
readtable.lisp
(file).
version.lisp
(file).
Files are sorted by type and then listed depth-first from the systems components trees.
net.didierverna.tfm/net.didierverna.tfm.asd
net.didierverna.tfm.core/net.didierverna.tfm.core.asd
net.didierverna.tfm.setup/net.didierverna.tfm.setup.asd
net.didierverna.tfm.core/package.lisp
net.didierverna.tfm.core/src/util.lisp
net.didierverna.tfm.core/src/intermediate.lisp
net.didierverna.tfm.core/src/character.lisp
net.didierverna.tfm.core/src/font.lisp
net.didierverna.tfm.core/src/file.lisp
net.didierverna.tfm.setup/package.lisp
net.didierverna.tfm.setup/src/configuration.lisp
net.didierverna.tfm.setup/src/readtable.lisp
net.didierverna.tfm.setup/src/version.lisp
net.didierverna.tfm/net.didierverna.tfm.asd
net.didierverna.tfm
(system).
net.didierverna.tfm.core/net.didierverna.tfm.core.asd
net.didierverna.tfm.core
(system).
net.didierverna.tfm.setup/net.didierverna.tfm.setup.asd
net.didierverna.tfm.setup
(system).
net.didierverna.tfm.core/package.lisp
net.didierverna.tfm.core
(system).
nickname-package
(function).
net.didierverna.tfm.core/src/util.lisp
src
(module).
context
(reader method).
context
(class).
context-string
(generic function).
fix-word-overflow
(condition).
invalid-padded-string
(condition).
invalid-padded-string-length
(condition).
overflow
(reader method).
pad
(reader method).
padded-string
(condition).
padded-string-overflow
(condition).
print-object
(method).
print-object
(method).
print-object
(method).
print-object
(method).
print-object
(method).
print-object
(method).
print-object
(method).
print-object
(method).
reference
(reader method).
str
(reader method).
tfm
(condition).
tfm-compliance
(condition).
tfm-compliance-error
(condition).
tfm-compliance-warning
(condition).
tfm-error
(condition).
tfm-usage
(condition).
tfm-usage-error
(condition).
tfm-usage-warning
(condition).
tfm-warning
(condition).
u16-overflow
(condition).
u32-overflow
(condition).
value
(reader method).
value
(reader method).
value
(reader method).
value
(reader method).
(setf value)
(writer method).
*stream*
(special variable).
context-format
(function).
define-condition-report
(macro).
define-constant
(macro).
map-slots
(macro).
read-fix-word
(function).
read-padded-string
(function).
read-u16
(function).
read-u32
(function).
read-u8
(function).
remove-keys
(function).
with-condition-context
(macro).
net.didierverna.tfm.core/src/intermediate.lisp
util.lisp
(file).
src
(module).
char-info
(reader method).
char-info
(structure).
print-object
(method).
print-object
(method).
remainder
(reader method).
spurious-char-info
(condition).
tag
(reader method).
bot
(reader).
(setf bot)
(writer).
char-info-p
(function).
copy-char-info
(function).
copy-exten
(function).
copy-lig/kern
(function).
depth-index
(reader).
(setf depth-index)
(writer).
exten
(structure).
exten-index
(reader).
(setf exten-index)
(writer).
exten-p
(function).
height-index
(reader).
(setf height-index)
(writer).
italic-index
(reader).
(setf italic-index)
(writer).
lig/kern
(structure).
lig/kern-index
(reader).
(setf lig/kern-index)
(writer).
lig/kern-p
(function).
make-char-info
(function).
make-exten
(function).
make-lig/kern
(function).
mid
(reader).
(setf mid)
(writer).
next
(reader).
(setf next)
(writer).
next-char
(reader).
(setf next-char)
(writer).
op
(reader).
(setf op)
(writer).
read-char-info
(function).
read-exten
(function).
read-lig/kern
(function).
read-ofm0-char-info
(function).
read-ofm0-exten
(function).
read-ofm0-lig/kern
(function).
rep
(reader).
(setf rep)
(writer).
rfu&tag
(reader method).
rmd
(reader).
(setf rmd)
(writer).
skip
(reader).
(setf skip)
(writer).
spurious-ofm0-char-info
(condition).
top
(reader).
(setf top)
(writer).
width-index
(reader).
(setf width-index)
(writer).
net.didierverna.tfm.core/src/character.lisp
intermediate.lisp
(file).
src
(module).
bottom-character
(method).
bottom-character
(reader method).
character-metrics
(class).
chr
(reader method).
code
(reader method).
depth
(reader method).
extensiblep
(function).
font
(reader method).
height
(reader method).
italic-correction
(reader method).
middle-character
(method).
middle-character
(reader method).
next-character
(reader method).
not-extensible
(condition).
print-object
(method).
print-object
(method).
print-object
(method).
repeated-character
(method).
repeated-character
(reader method).
top-character
(method).
top-character
(reader method).
width
(reader method).
+character-metrics-dimension-slots+
(constant).
define-extension-recipe-pseudo-accessor
(macro).
extension-recipe
(reader method).
extension-recipe
(class).
make-character-metrics
(function).
make-extension-recipe
(function).
map-character-metrics-dimension-slots
(macro).
net.didierverna.tfm.core/src/font.lisp
character.lisp
(file).
src
(module).
7bits-safe
(reader method).
axis-height
(reader method).
big-op-spacing1
(reader method).
big-op-spacing2
(reader method).
big-op-spacing3
(reader method).
big-op-spacing4
(reader method).
big-op-spacing5
(reader method).
boundary-character
(reader method).
character-count
(reader method).
character1
(reader method).
character2
(reader method).
characters
(reader method).
checksum
(reader method).
code
(reader method).
composite
(reader method).
default-rule-thickness
(reader method).
delete-after
(reader method).
delete-before
(reader method).
delim1
(reader method).
delim2
(reader method).
denom1
(reader method).
denom2
(reader method).
design-size
(reader method).
(setf design-size)
(method).
(setf design-size)
(method).
(setf design-size)
(method).
(setf design-size)
(writer method).
different-fonts
(condition).
direction
(reader method).
em
(reader method).
encoding
(reader method).
ex
(reader method).
expansion
(reader method).
extra-space
(reader method).
face-code
(reader method).
face-number
(reader method).
family
(reader method).
file
(reader method).
font
(class).
freeze
(function).
frozen
(reader method).
get-character
(function).
get-kern
(function).
get-ligature
(function).
initialize-instance
(method).
interword-shrink
(reader method).
interword-space
(reader method).
interword-stretch
(reader method).
invalid-character-code
(condition).
invalid-custom-design-size
(condition).
ligature
(class).
math-extension-font
(class).
math-symbols-font
(class).
max-code
(reader method).
min-code
(reader method).
name
(reader method).
num1
(reader method).
num2
(reader method).
num3
(reader method).
ofm0-font
(class).
original-design-size
(reader method).
parameters
(reader method).
pass-over
(reader method).
print-object
(method).
print-object
(method).
print-object
(method).
print-object
(method).
slant
(reader method).
slope
(reader method).
sub1
(reader method).
sub2
(reader method).
subdrop
(reader method).
sup1
(reader method).
sup2
(reader method).
sup3
(reader method).
supdrop
(reader method).
unfreeze
(function).
value
(reader method).
weight
(reader method).
+font-dimension-slots+
(constant).
+math-extension-font-dimension-slots+
(constant).
+math-symbols-font-dimension-slots+
(constant).
apply-ligature
(function).
code-character
(function).
(setf code-character)
(function).
kerns
(reader method).
ligatures
(reader method).
make-ligature
(function).
map-font-dimension-slots
(macro).
map-math-extension-font-dimension-slots
(macro).
map-math-symbols-font-dimension-slots
(macro).
scale
(generic function).
set-kern
(function).
set-ligature
(function).
net.didierverna.tfm.core/src/file.lisp
font.lisp
(file).
src
(module).
actual-size
(reader method).
bc
(reader method).
char-info-table-context
(class).
character-list
(reader method).
character-list-cycle
(condition).
characters
(reader method).
code
(reader method).
context-string
(method).
context-string
(method).
context-string
(method).
declared-size
(reader method).
ec
(reader method).
file
(reader method).
file-overflow
(condition).
file-size-mixin
(condition).
file-underflow
(condition).
fmt
(reader method).
index
(reader method).
invalid-character-range
(condition).
invalid-custom-name
(condition).
invalid-design-size
(condition).
invalid-header-length
(condition).
invalid-ligature-opcode
(condition).
invalid-ofm-level
(condition).
invalid-ofm0-section-lengths
(condition).
invalid-original-design-size
(condition).
invalid-section-lengths
(condition).
invalid-table-index
(condition).
invalid-table-length
(condition).
invalid-table-start
(condition).
largest
(reader method).
largest
(reader method).
(setf largest)
(writer method).
lf
(reader method).
lh
(reader method).
ligature
(reader method).
ligature-cycle
(condition).
load-font
(function).
name
(reader method).
name
(reader method).
name
(reader method).
name
(reader method).
nc
(reader method).
nd
(reader method).
ne
(reader method).
nh
(reader method).
ni
(reader method).
nk
(reader method).
nl
(reader method).
no-boundary-character
(condition).
np
(reader method).
nw
(reader method).
opcode
(reader method).
padded-string-context
(class).
print-object
(method).
print-object
(method).
print-object
(method).
print-object
(method).
print-object
(method).
print-object
(method).
print-object
(method).
print-object
(method).
print-object
(method).
print-object
(method).
print-object
(method).
print-object
(method).
print-object
(method).
print-object
(method).
print-object
(method).
print-object
(method).
print-object
(method).
print-object
(method).
size
(reader method).
smallest
(reader method).
(setf smallest)
(writer method).
table-context
(class).
tfm-table-error
(condition).
unsupported-format
(condition).
value
(reader method).
value
(reader method).
value
(reader method).
value
(reader method).
value
(reader method).
value
(reader method).
value
(reader method).
(setf value)
(writer method).
(setf value)
(writer method).
%run-ligature/kerning-program
(function).
font-extension-recipe
(function).
load-stream
(function).
parse-character-information
(function).
parse-header
(function).
parse-parameters
(generic function).
run-ligature/kerning-program
(function).
table-aref
(function).
tref
(macro).
net.didierverna.tfm.setup/package.lisp
net.didierverna.tfm.setup
(system).
net.didierverna.tfm.setup/src/configuration.lisp
src
(module).
configuration
(function).
configure
(function).
*configuration*
(special variable).
net.didierverna.tfm.setup/src/readtable.lisp
configuration.lisp
(file).
src
(module).
net.didierverna.tfm.setup/src/version.lisp
readtable.lisp
(file).
src
(module).
*copyright-years*
(special variable).
*release-major-level*
(special variable).
*release-minor-level*
(special variable).
*release-name*
(special variable).
*release-status*
(special variable).
*release-status-level*
(special variable).
version
(function).
%version
(function).
release-status-number
(function).
Packages are listed by definition order.
net.didierverna.tfm.setup
The TFM setup library’s package.
common-lisp
.
*copyright-years*
(special variable).
*release-major-level*
(special variable).
*release-minor-level*
(special variable).
*release-name*
(special variable).
*release-status*
(special variable).
*release-status-level*
(special variable).
configuration
(function).
configure
(function).
version
(function).
%version
(function).
*configuration*
(special variable).
clindent
(function).
defindent
(macro).
i-reader
(function).
release-status-number
(function).
~-reader
(function).
net.didierverna.tfm
The TeX Font Metric package.
common-lisp
.
net.didierverna.tfm.setup
.
7bits-safe
(generic reader).
actual-size
(generic reader).
axis-height
(generic reader).
bc
(generic reader).
big-op-spacing1
(generic reader).
big-op-spacing2
(generic reader).
big-op-spacing3
(generic reader).
big-op-spacing4
(generic reader).
big-op-spacing5
(generic reader).
bottom-character
(generic function).
boundary-character
(generic reader).
char-info
(generic reader).
char-info
(structure).
char-info-table-context
(class).
character-count
(generic reader).
character-list
(generic reader).
character-list-cycle
(condition).
character-metrics
(class).
character1
(generic reader).
character2
(generic reader).
characters
(generic reader).
checksum
(generic reader).
chr
(generic reader).
code
(generic reader).
composite
(generic reader).
context
(generic reader).
context
(class).
context-string
(generic function).
declared-size
(generic reader).
default-rule-thickness
(generic reader).
delete-after
(generic reader).
delete-before
(generic reader).
delim1
(generic reader).
delim2
(generic reader).
denom1
(generic reader).
denom2
(generic reader).
depth
(generic reader).
design-size
(generic reader).
(setf design-size)
(generic function).
different-fonts
(condition).
direction
(generic reader).
ec
(generic reader).
em
(generic reader).
encoding
(generic reader).
ex
(generic reader).
expansion
(generic reader).
extensiblep
(function).
extra-space
(generic reader).
face-code
(generic reader).
face-number
(generic reader).
family
(generic reader).
file
(generic reader).
file-overflow
(condition).
file-size-mixin
(condition).
file-underflow
(condition).
fix-word-overflow
(condition).
fmt
(generic reader).
font
(generic reader).
font
(class).
freeze
(function).
frozen
(generic reader).
get-character
(function).
get-kern
(function).
get-ligature
(function).
height
(generic reader).
index
(generic reader).
interword-shrink
(generic reader).
interword-space
(generic reader).
interword-stretch
(generic reader).
invalid-character-code
(condition).
invalid-character-range
(condition).
invalid-custom-design-size
(condition).
invalid-custom-name
(condition).
invalid-design-size
(condition).
invalid-header-length
(condition).
invalid-ligature-opcode
(condition).
invalid-ofm-level
(condition).
invalid-ofm0-section-lengths
(condition).
invalid-original-design-size
(condition).
invalid-padded-string
(condition).
invalid-padded-string-length
(condition).
invalid-section-lengths
(condition).
invalid-table-index
(condition).
invalid-table-length
(condition).
invalid-table-start
(condition).
italic-correction
(generic reader).
largest
(generic reader).
(setf largest)
(generic writer).
lf
(generic reader).
lh
(generic reader).
ligature
(generic reader).
ligature
(class).
ligature-cycle
(condition).
load-font
(function).
math-extension-font
(class).
math-symbols-font
(class).
max-code
(generic reader).
middle-character
(generic function).
min-code
(generic reader).
name
(generic reader).
nc
(generic reader).
nd
(generic reader).
ne
(generic reader).
next-character
(generic reader).
nh
(generic reader).
ni
(generic reader).
nickname-package
(function).
nk
(generic reader).
nl
(generic reader).
no-boundary-character
(condition).
not-extensible
(condition).
np
(generic reader).
num1
(generic reader).
num2
(generic reader).
num3
(generic reader).
nw
(generic reader).
ofm0-font
(class).
opcode
(generic reader).
original-design-size
(generic reader).
overflow
(generic reader).
pad
(generic reader).
padded-string
(condition).
padded-string-context
(class).
padded-string-overflow
(condition).
parameters
(generic reader).
pass-over
(generic reader).
reference
(generic reader).
remainder
(generic reader).
repeated-character
(generic function).
size
(generic reader).
slant
(generic reader).
slope
(generic reader).
smallest
(generic reader).
(setf smallest)
(generic writer).
spurious-char-info
(condition).
str
(generic reader).
sub1
(generic reader).
sub2
(generic reader).
subdrop
(generic reader).
sup1
(generic reader).
sup2
(generic reader).
sup3
(generic reader).
supdrop
(generic reader).
table-context
(class).
tag
(generic reader).
tfm
(condition).
tfm-compliance
(condition).
tfm-compliance-error
(condition).
tfm-compliance-warning
(condition).
tfm-error
(condition).
tfm-table-error
(condition).
tfm-usage
(condition).
tfm-usage-error
(condition).
tfm-usage-warning
(condition).
tfm-warning
(condition).
top-character
(generic function).
u16-overflow
(condition).
u32-overflow
(condition).
unfreeze
(function).
unsupported-format
(condition).
value
(generic reader).
(setf value)
(generic writer).
weight
(generic reader).
width
(generic reader).
%run-ligature/kerning-program
(function).
*stream*
(special variable).
+character-metrics-dimension-slots+
(constant).
+font-dimension-slots+
(constant).
+math-extension-font-dimension-slots+
(constant).
+math-symbols-font-dimension-slots+
(constant).
apply-ligature
(function).
bot
(reader).
(setf bot)
(writer).
char-info-p
(function).
code-character
(function).
(setf code-character)
(function).
context-format
(function).
copy-char-info
(function).
copy-exten
(function).
copy-lig/kern
(function).
define-condition-report
(macro).
define-constant
(macro).
define-extension-recipe-pseudo-accessor
(macro).
depth-index
(reader).
(setf depth-index)
(writer).
exten
(structure).
exten-index
(reader).
(setf exten-index)
(writer).
exten-p
(function).
extension-recipe
(generic reader).
extension-recipe
(class).
font-extension-recipe
(function).
height-index
(reader).
(setf height-index)
(writer).
italic-index
(reader).
(setf italic-index)
(writer).
kerns
(generic reader).
lig/kern
(structure).
lig/kern-index
(reader).
(setf lig/kern-index)
(writer).
lig/kern-p
(function).
ligatures
(generic reader).
load-stream
(function).
make-char-info
(function).
make-character-metrics
(function).
make-exten
(function).
make-extension-recipe
(function).
make-lig/kern
(function).
make-ligature
(function).
map-character-metrics-dimension-slots
(macro).
map-font-dimension-slots
(macro).
map-math-extension-font-dimension-slots
(macro).
map-math-symbols-font-dimension-slots
(macro).
map-slots
(macro).
mid
(reader).
(setf mid)
(writer).
next
(reader).
(setf next)
(writer).
next-char
(reader).
(setf next-char)
(writer).
op
(reader).
(setf op)
(writer).
parse-character-information
(function).
parse-header
(function).
parse-parameters
(generic function).
read-char-info
(function).
read-exten
(function).
read-fix-word
(function).
read-lig/kern
(function).
read-ofm0-char-info
(function).
read-ofm0-exten
(function).
read-ofm0-lig/kern
(function).
read-padded-string
(function).
read-u16
(function).
read-u32
(function).
read-u8
(function).
remove-keys
(function).
rep
(reader).
(setf rep)
(writer).
rfu&tag
(generic reader).
rmd
(reader).
(setf rmd)
(writer).
run-ligature/kerning-program
(function).
scale
(generic function).
set-kern
(function).
set-ligature
(function).
skip
(reader).
(setf skip)
(writer).
spurious-ofm0-char-info
(condition).
table-aref
(function).
top
(reader).
(setf top)
(writer).
tref
(macro).
width-index
(reader).
(setf width-index)
(writer).
with-condition-context
(macro).
Definitions are sorted by export status, category, package, and then by lexicographic order.
A string denoting the copyright years for the whole project.
The major level of this release.
The minor level of this release.
The name of this release.
The general naming theme for TFM is "Uncial Fonts", from the LaTeX Font
Catalogue (https://www.tug.org/FontCatalogue/uncialfonts.html).
The status of this release.
The status level of this release.
Return KEY’s value in the current TFM configuration.
Set KEY to VALUE in the current TFM configuration.
Return T if CHARACTER has an extension recipe.
Freeze FONT, and return it.
Freezing a font means that all dimensions normally expressed in design size
units are multiplied by it, so as to lead values in TeX point units.
If FONT is already frozen, this function does nothing.
Otherwise, it returns T as a second value.
Return FONT’s CODE character, or NIL.
Return kern for CHARACTER1 and CHARACTER2, or NIL.
If CHARACTER1 and CHARACTER2 don’t belong to the same font, signal a
DIFFERENT-FONTS error.
Return ligature for CHARACTER1 and CHARACTER2, or NIL.
If CHARACTER1 and CHARACTER2 don’t belong to the same font, signal a
DIFFERENT-FONTS error.
Load FILE into a new font, and return it.
- FILE must be a pathname designator.
- If NAME is not NIL, use it as the font’s name instead of FILE’s base name,
in which case it must be a non-empty string. Otherwise, signal an
INVALID-CUSTOM-NAME error. This error is immediately restartable with
USE-FILE-BASE-NAME.
- If DESIGN-SIZE is not NIL, use it as the font’s design size instead of the
original one, in which case it must be a real greater or equal to 1.
Otherwise, signal an INVALID-CUSTOM-DESIGN-SIZE error. This error is
immediately restartable with USE-ORIGINAL-DESIGN-SIZE.
- When FREEZE (NIL by default), freeze the font immediately after loading it.
See the eponymous function for more information.
Both regular TFM and level 0 Omega (OFM) fonts are currently supported. If
level 1 OFM or JFM data is detected, this function signals an
UNSUPPORTED-FORMAT warning and returns NIL.
Any condition signalled while FILE is being loaded is restartable with CANCEL-LOADING, in which case this function simply returns NIL.
Add NICKNAME (:TFM by default) to the :NET.DIDIERVERNA.TFM package.
Unfreeze FONT and return it.
Unfreezing means performing the inverse of what FREEZE does.
If FONT is not frozen, this function does nothing.
Otherwise, it returns T as a second value.
Return the current version of TFM.
TYPE can be one of :number, :short or :long.
A version number is computed as major*10000 + minor*100 + patchlevel, leaving
two digits for each level. Alpha, beta and rc status are ignored in version
numbers.
A short version is something like 1.3{a,b,rc}4, or 1.3.4 for patchlevel.
Alpha, beta or rc levels start at 1. Patchlevels start at 0 but are ignored
in the output, so that 1.3.0 appears as just 1.3.
A long version is something like
1.3 {alpha,beta,release candidate,patchlevel} 4 "Artificial Uncial".
As for the short version, a patchlevel of 0 is ignored in the output.
file-size-mixin
)) ¶math-symbols-font
)) ¶The font’s AXIS-HEIGHT parameter.
It is expressed in design size units, or in TeX point units if the font is
frozen.
invalid-character-range
)) ¶math-extension-font
)) ¶The font’s BIG-OP-SPACING1 parameter.
It is expressed in design size units, or in TeX point units if the font is
frozen.
math-extension-font
)) ¶The font’s BIG-OP-SPACING2 parameter.
It is expressed in design size units, or in TeX point units if the font is
frozen.
math-extension-font
)) ¶The font’s BIG-OP-SPACING3 parameter.
It is expressed in design size units, or in TeX point units if the font is
frozen.
math-extension-font
)) ¶The font’s BIG-OP-SPACING4 parameter.
It is expressed in design size units, or in TeX point units if the font is
frozen.
math-extension-font
)) ¶The font’s BIG-OP-SPACING5 parameter.
It is expressed in design size units, or in TeX point units if the font is
frozen.
character-metrics
)) ¶Return extensible CHARACTER’s BOTTOM-CHARACTER.
If CHARACTER is not extensible, signal a NOT-EXTENSIBLE error.
extension-recipe
)) ¶The recipe’s bottom character, or NIL.
font
)) ¶The font’s boundary character, or NIL.
This character is also accessible by code, like normal ones. However, it is
the only character the code of which may be outside [MIN-CODE,MAX-CODE] (see
TeX: the Program [545]). Finally, this character is not included in the
character count, unless it exists for real in the font (has non-zero
metrics).
spurious-char-info
)) ¶character-list-cycle
)) ¶different-fonts
)) ¶different-fonts
)) ¶ligature-cycle
)) ¶not-extensible
)) ¶chr
.
char-info-table-context
)) ¶The corresponding character code.
invalid-character-code
)) ¶character-metrics
)) ¶The character’s numerical code.
code
.
Return CONTEXT’string.
char-info-table-context
)) ¶Return char info table CONTEXT string.
table-context
)) ¶Return table CONTEXT string.
padded-string-context
)) ¶Return padded string CONTEXT’string.
file-size-mixin
)) ¶math-extension-font
)) ¶The font’s default rule thickness.
It is expressed in design size units, or in TeX point units if the font is
frozen.
math-symbols-font
)) ¶The font’s DELIM1 parameter.
It is expressed in design size units, or in TeX point units if the font is
frozen.
math-symbols-font
)) ¶The font’s DELIM2 parameter.
It is expressed in design size units, or in TeX point units if the font is
frozen.
math-symbols-font
)) ¶The font’s DENOM1 parameter.
It is expressed in design size units, or in TeX point units if the font is
frozen.
math-symbols-font
)) ¶The font’s DENOM2 parameter.
It is expressed in design size units, or in TeX point units if the font is
frozen.
character-metrics
)) ¶The character’s depth.
It is expressed in design size units, or in TeX point units if the font is
frozen.
Check that DESIGN-SIZE is a real greater or equal to 1.
Otherwise, signal and INVALID-CUSTOM-DESIGN-SIZE error. When the font’s
original design size is itself valid, this error is immediately restartable
with USE-ORIGINAL-DESIGN-SIZE.
invalid-character-range
)) ¶unsupported-format
)) ¶unsupported-format
)) ¶character-metrics
)) ¶The character’s font.
font
.
character-metrics
)) ¶The character’s height.
It is expressed in design size units, or in TeX point units if the font is
frozen.
table-context
)) ¶The index in the table.
character-metrics
)) ¶The character’s italic correction.
TeX uses this value for regular characters followed by the command /, and
also in math mode for superscript placement. It is expressed in design size
units, or in TeX point units if the font is frozen.
invalid-table-length
)) ¶invalid-table-length
)) ¶invalid-table-index
)) ¶invalid-section-lengths
)) ¶invalid-section-lengths
)) ¶ligature-cycle
)) ¶character-metrics
)) ¶Return extensible CHARACTER’s MIDDLE-CHARACTER.
If CHARACTER is not extensible, signal a NOT-EXTENSIBLE error.
extension-recipe
)) ¶The recipe’s middle character, or NIL.
invalid-custom-name
)) ¶table-context
)) ¶The table name.
tfm-table-error
)) ¶padded-string-context
)) ¶The string name.
invalid-section-lengths
)) ¶invalid-section-lengths
)) ¶invalid-section-lengths
)) ¶character-metrics
)) ¶The next character in a character list.
This slot is non-null only if the character is part of a chain of characters
of ascending size, and not the last one (see TeX: the Program [544]). It is
mutually exclusive with the EXTENSION-RECIPE slot, and also with the existence
of a ligature or kerning program for this character.
invalid-section-lengths
)) ¶invalid-section-lengths
)) ¶invalid-section-lengths
)) ¶invalid-section-lengths
)) ¶invalid-section-lengths
)) ¶math-symbols-font
)) ¶The font’s NUM1 parameter.
It is expressed in design size units, or in TeX point units if the font is
frozen.
math-symbols-font
)) ¶The font’s NUM2 parameter.
It is expressed in design size units, or in TeX point units if the font is
frozen.
math-symbols-font
)) ¶The font’s NUM2 parameter.
It is expressed in design size units, or in TeX point units if the font is
frozen.
invalid-section-lengths
)) ¶invalid-ligature-opcode
)) ¶padded-string-overflow
)) ¶invalid-padded-string-length
)) ¶tfm-compliance
)) ¶spurious-char-info
)) ¶character-metrics
)) ¶Return extensible CHARACTER’s REPEATED-CHARACTER.
If CHARACTER is not extensible, signal a NOT-EXTENSIBLE error.
extension-recipe
)) ¶The recipe’s repeated character.
table-context
)) ¶The table size.
invalid-table-length
)) ¶invalid-table-length
)) ¶invalid-padded-string
)) ¶math-symbols-font
)) ¶The font’s SUB1 parameter.
It is expressed in design size units, or in TeX point units if the font is
frozen.
math-symbols-font
)) ¶The font’s SUB2 parameter.
It is expressed in design size units, or in TeX point units if the font is
frozen.
math-symbols-font
)) ¶The font’s SUBDROP parameter.
It is expressed in design size units, or in TeX point units if the font is
frozen.
math-symbols-font
)) ¶The font’s SUP1 parameter.
It is expressed in design size units, or in TeX point units if the font is
frozen.
math-symbols-font
)) ¶The font’s SUP2 parameter.
It is expressed in design size units, or in TeX point units if the font is
frozen.
math-symbols-font
)) ¶The font’s SUP2 parameter.
It is expressed in design size units, or in TeX point units if the font is
frozen.
math-symbols-font
)) ¶The font’s SUPDROP parameter.
It is expressed in design size units, or in TeX point units if the font is
frozen.
spurious-char-info
)) ¶tag
.
character-metrics
)) ¶Return extensible CHARACTER’s TOP-CHARACTER.
If CHARACTER is not extensible, signal a NOT-EXTENSIBLE error.
extension-recipe
)) ¶The recipe’s top character, or NIL.
invalid-ofm-level
)) ¶invalid-ofm-level
)) ¶invalid-table-length
)) ¶invalid-table-length
)) ¶u32-overflow
)) ¶u32-overflow
)) ¶invalid-header-length
)) ¶invalid-table-start
)) ¶invalid-table-index
)) ¶invalid-original-design-size
)) ¶invalid-design-size
)) ¶invalid-custom-design-size
)) ¶invalid-padded-string-length
)) ¶fix-word-overflow
)) ¶u16-overflow
)) ¶character-metrics
)) ¶The character’s width.
It is expressed in design size units, or in TeX point units if the font is
frozen.
font
) &key) ¶Handle FONT’s name initialization.
Unless a custom name has been provided already, initialize FONT’s name to the
font file’s base name.
tfm-compliance
) stream) ¶Advertise CONDITION’s documentation reference.
invalid-section-lengths
) stream0) ¶invalid-character-range
) stream0) ¶invalid-table-start
) stream0) ¶invalid-padded-string-length
) stream0) ¶invalid-custom-design-size
) stream0) ¶invalid-character-code
) stream0) ¶unsupported-format
) stream0) ¶invalid-table-length
) stream0) ¶invalid-custom-name
) stream0) ¶u16-overflow
) stream0) ¶fix-word-overflow
) stream0) ¶padded-string-overflow
) stream) ¶Advertise padded string overflow CONDITION’s relevant documentation.
padded-string-overflow
) stream0) ¶invalid-table-index
) stream0) ¶invalid-ofm-level
) stream0) ¶spurious-char-info
) stream0) ¶invalid-header-length
) stream0) ¶character-list-cycle
) stream0) ¶u32-overflow
) stream0) ¶invalid-ligature-opcode
) stream0) ¶invalid-ofm0-section-lengths
) stream0) ¶different-fonts
) stream0) ¶character-metrics
) stream) ¶Print CHARACTER unreadably with its code to STREAM.
file-overflow
) stream0) ¶invalid-design-size
) stream0) ¶invalid-padded-string
) stream0) ¶no-boundary-character
) stream0) ¶not-extensible
) stream0) ¶file-underflow
) stream0) ¶ligature-cycle
) stream0) ¶invalid-original-design-size
) stream0) ¶extension-recipe
) stream) ¶Print EXTENSION-RECIPE unreadably with its repeated character to STREAM.
spurious-ofm0-char-info
) stream0) ¶The Character List Cycle compliance error.
It signals that a cycle was found in a list of ascending character sizes.
The Different Fonts usage error.
It signals an attempt at retrieving a ligature or kern for two characters
from different fonts.
The File Overflow compliance warning.
It signals that the file size is longer than expected.
(quote 8)
The File Size Mixin condition.
It is used in both errors and warnings to report different declared and
actual file sizes.
condition
.
The declared file size, in bytes.
:declared-size
This slot is read-only.
The actual file size, in bytes.
:actual-size
This slot is read-only.
The File Underflow compliance error.
It signals that the file size is shorter than expected.
(quote 8)
The Fix Word Overflow compliance error.
It signals that a fix word is outside ]-16,+16[.
(quote 9)
The Invalid Character Code compliance error.
It signals a reference to a character code which does not exist in the font
being loaded.
The Invalid Character Range compliance error. It signals that BC-1 > EC, or that EC > 255.
bc
.
ec
.
print-object
.
(quote 8)
The Invalid Custom Design Size usage error.
It signals that a custom design size is not a real greater or equal to 1.
The Invalid Custom Name usage error.
It signals that a custom name is not a non-empty string.
The Invalid Design Size compliance error.
It signals that a design size is too small (< 1pt).
(quote 10)
The Invalid Header Length compliance error.
It signals that a header length is too small (< 2 words).
(quote 8)
The Invalid Ligature Opcode compliance error. It signals that a ligature opcode is invalid.
(quote 13)
The Invalid OFM LEVEL compliance error.
It signals that an OFM font advertises a level different from 0 or 1.
The invalid level.
:value
The Invalid Level 0 OFM Section Lengths compliance error.
It signals that
LF != 14 + LH + 2*NC + NW + NH + ND + NI + 2*NL + NK + 2*NE + NP.
(quote (quote (:omega . 7.1)))
The Invalid Original Design Size compliance warning.
It signals that, although overridden explicitly, an original design size was
too small (< 1pt).
(quote 10)
The Invalid Padded String compliance error.
It signals that a padded string is not in BCPL format (it contains parentheses
or non-ASCII characters).
(quote 10)
The Invalid Padded String Length compliance error.
It signals that the declared length of a padded string is greater than its
maximum.
pad
.
print-object
.
value
.
(quote 10)
The Section Lengths compliance error.
It signals that LF != 6 + LH + NC + NW + NH + ND + NI + NL + NK + NE + NP.
(quote 8)
The declared length of the file.
:lf
lf
.
This slot is read-only.
The declared length of the file header.
:lh
lh
.
This slot is read-only.
The declared length of the width table.
:nw
nw
.
This slot is read-only.
The declared length of the height table.
:nh
nh
.
This slot is read-only.
The declared length of the depth table.
:nd
nd
.
This slot is read-only.
The declared length of the italic correction table.
:ni
ni
.
This slot is read-only.
The declared length of the lig/kern table.
:nl
nl
.
This slot is read-only.
The declared length of the kern table.
:nk
nk
.
This slot is read-only.
The Invalid Table Index compliance error.
It signals that a table index is greater than its largest value.
(quote 8)
The Invalid Table Length compliance error.
It signals that a declared TFM table’s length is out of range.
(quote 11)
The invalid table length.
:value
The smallest table length.
:smallest
The largest table length.
:largest
The Invalid Table Start compliance error.
It signals that the first value in a TFM table is not 0.
(quote 11)
The Ligature Cycle compliance error.
It signals that a ligature introduces a cycle for a cons of characters.
(quote 13)
The ligature introducing a cycle.
:ligature
This slot is read-only.
The cons of characters involved in the ligature.
:characters
This slot is read-only.
The No Boundary Character compliance error.
It signals that a boundary character ligature/kerning program was found,
without a boundary character being defined.
(quote 13)
The Not Extensible usage error.
It signals an attempt at accessing the extension recipe of a non extensible
character.
The Padded String condition.
This is a mixin for all conditions related to padded strings.
tfm
.
The Padded String Overflow compliance warning.
It signals that a padded string contains non null characters after its
declared length.
The Spurious Char Info compliance warning.
It signals that a char-info for a non-existent character (that is, with a
width-index of 0) is not completely zero’ed out.
The TFM root condition.
condition
.
The TFM Compliance root condition.
This is the mixin for conditions related to TFM compliance.
tfm
.
The related documentation reference.
Possible values are numbers, referring to a TFtoPL section number,
or a list of the form (:OMEGA . <NUMBER>), referring to an Omega User Manual
section number.
:class
(quote nil)
This slot is read-only.
The TFM compliance errors root condition.
This is the root condition for errors related to TFM compliance.
character-list-cycle
.
file-underflow
.
fix-word-overflow
.
invalid-character-code
.
invalid-character-range
.
invalid-design-size
.
invalid-header-length
.
invalid-ligature-opcode
.
invalid-ofm-level
.
invalid-padded-string
.
invalid-padded-string-length
.
invalid-section-lengths
.
ligature-cycle
.
no-boundary-character
.
tfm-table-error
.
u16-overflow
.
u32-overflow
.
The TFM compliance warnings root condition.
This is the root condition for warnings related to TFM compliance.
The TFM errors root condition.
error
.
tfm
.
The TFM table errors root condition.
This is the root condition for errors related to TFM tables.
name
.
The TFM Usage root condition.
This is the mixin for conditions related to the use of the library.
tfm
.
The TFM usage errors root condition.
This is the root condition for errors related to the use of the library.
The TFM usage warnings root condition.
This is the root condition for warnings related to the use of the library.
The TFM warnings root condition.
tfm
.
warning
.
The U16 Overflow compliance error.
It signals that an unsigned 16 bits integer is greater than 2^15.
(quote 8)
The U32 Overflow compliance error.
It signals that an unsigned 32 bits integer is greater than 2^31.
The Unsupported Format warning.
It signals that a file contains data in a currently unsupported format.
Currently supported font formats are regular TFM and level 0 Omega (OFM).
Level 1 OFM and JFM formats might be supported in the future.
file
.
fmt
.
print-object
.
The Char Info structure.
This structure is used to store decoded information from the char-info table
(see TeX: the Program [543]). Only one of LIG/KERN-INDEX, NEXT-CHAR, and
EXTEN-INDEX may be non-null at a time (see TeX: the Program [544]).
structure-object
.
The Char Info Table Context class.
The Character Metrics class.
This class represents decoded character information. Within the context of
this library, the term "character" denotes an instance of this class.
The character’s numerical code.
:code
code
.
This slot is read-only.
The character’s width.
It is expressed in design size units, or in TeX point units if the font is
frozen.
:width
This slot is read-only.
The character’s height.
It is expressed in design size units, or in TeX point units if the font is
frozen.
:height
This slot is read-only.
The character’s depth.
It is expressed in design size units, or in TeX point units if the font is
frozen.
:depth
This slot is read-only.
The character’s italic correction.
TeX uses this value for regular characters followed by the command /, and
also in math mode for superscript placement. It is expressed in design size
units, or in TeX point units if the font is frozen.
:italic-correction
This slot is read-only.
The next character in a character list.
This slot is non-null only if the character is part of a chain of characters
of ascending size, and not the last one (see TeX: the Program [544]). It is
mutually exclusive with the EXTENSION-RECIPE slot, and also with the existence
of a ligature or kerning program for this character.
This slot is read-only.
The character’s extension recipe, or NIL.
This slot is non-null only if this character is extensible (see TeX: the
Program [544]). It is mutually exclusive with the NEXT-CHARACTER slot, and
also with the existence of a ligature or kerning program for this character.
This slot is read-only.
The CONTEXT class.
This is the base class for classes representing contexts in which
conditions are signalled.
The TeX Font Metric class.
This class represents decoded font information. Within the context of this
library, the term "font" denotes an instance of this class, or of one of its
subclasses.
7bits-safe
.
boundary-character
.
character-count
.
characters
.
checksum
.
(setf design-size)
.
design-size
.
em
.
encoding
.
ex
.
expansion
.
extra-space
.
face-code
.
face-number
.
family
.
file
.
frozen
.
initialize-instance
.
interword-shrink
.
interword-space
.
interword-stretch
.
kerns
.
ligatures
.
max-code
.
min-code
.
name
.
original-design-size
.
parameters
.
print-object
.
slant
.
slope
.
weight
.
The font’s design size, in units of TeX points.
:design-size
The font’s original design size, in units of TeX points.
This slot is read-only.
The font’s character coding scheme (a BCPL string), or NIL.
This slot is read-only.
The font’s family (a BCPL string), or NIL.
This slot is read-only.
Whether the font is 7 bits safe (0 or 1), or NIL.
When 1, it means that no character of code lesser than 128 can lead to a
character of code greater than 128 by ways of ligatures or extensible
recipes.
This slot is read-only.
The font’s face number, or NIL.
This slot is read-only.
The font’s weight (:medium, :bold, :light), or NIL. When available, it is decoded from the font face number.
This slot is read-only.
The font’s slope (:roman, :italic), or NIL.
When available, it is decoded from the font face number.
This slot is read-only.
The font’s expansion (:regular, :condensed, :extended), or NIL. When available, it is decoded from the font face number.
This slot is read-only.
The font’s 3-letters face code, or NIL.
When available, it is the concatenation of the upcased first letters of the
font’s weight, slope, and expansion.
This slot is read-only.
The font’s slant (a scalar ratio).
0
This slot is read-only.
The font’s normal interword space.
It is expressed in design size units, or in TeX point units if the font is
frozen.
0
This slot is read-only.
The font’s interword stretchability.
It is expressed in design size units, or in TeX point units if the font is
frozen.
0
This slot is read-only.
The font’s interword shrinkability.
It is expressed in design size units, or in TeX point units if the font is
frozen.
0
This slot is read-only.
The font’s ex size.
It is expressed in design size units, or in TeX point units if the font is
frozen.
0
ex
.
This slot is read-only.
The font’s em size.
It is expressed in design size units, or in TeX point units if the font is
frozen.
0
em
.
This slot is read-only.
The font’s extra space.
It is expressed in design size units, or in TeX point units if the font is
frozen.
This is the additional space to put at the end of sentences.
0
This slot is read-only.
The font’s additional parameters array, or NIL.
Parameters are expressed in design size units, or in TeX point units if the
font is frozen.
This slot is read-only.
The font’s smallest character code, or NIL if the font is empty.
This slot is read-only.
The font’s largest character code, or NIL if the font is empty.
This slot is read-only.
The font’s characters.
This is a hash table associating character codes with characters.
(make-hash-table :test (function eq))
This slot is read-only.
The font’s number of characters.
The character count does not include the boundary character, unless that
character really exists in the font (has non-zero metrics).
This slot is read-only.
The font’s ligatures.
This is a hash table associating conses of characters with the corresponding
ligature.
(make-hash-table :test (function equal))
This slot is read-only.
The font’s kerns.
This is a hash table associating conses of characters with the corresponding
kern. They are expressed in design size units, or in TeX point units if
the font is frozen.
(make-hash-table :test (function equal))
This slot is read-only.
The font’s boundary character, or NIL.
This character is also accessible by code, like normal ones. However, it is
the only character the code of which may be outside [MIN-CODE,MAX-CODE] (see
TeX: the Program [545]). Finally, this character is not included in the
character count, unless it exists for real in the font (has non-zero
metrics).
This slot is read-only.
The Ligature class.
This class represents a decoded ligature program. Within the context of this
library, the term "ligature" denotes an instance of this class.
The character to insert between the two original ones.
:composite
This slot is read-only.
Whether to delete the character before the ligature.
:delete-before
This slot is read-only.
Whether to delete the character after the ligature.
:delete-after
This slot is read-only.
The Math Extension Font class.
This class represents fonts with the "TeX math extension" character coding
scheme.
font
.
The font’s default rule thickness.
It is expressed in design size units, or in TeX point units if the font is
frozen.
0
This slot is read-only.
The font’s BIG-OP-SPACING1 parameter.
It is expressed in design size units, or in TeX point units if the font is
frozen.
0
This slot is read-only.
The font’s BIG-OP-SPACING2 parameter.
It is expressed in design size units, or in TeX point units if the font is
frozen.
0
This slot is read-only.
The font’s BIG-OP-SPACING3 parameter.
It is expressed in design size units, or in TeX point units if the font is
frozen.
0
This slot is read-only.
The font’s BIG-OP-SPACING4 parameter.
It is expressed in design size units, or in TeX point units if the font is
frozen.
0
This slot is read-only.
The font’s BIG-OP-SPACING5 parameter.
It is expressed in design size units, or in TeX point units if the font is
frozen.
0
This slot is read-only.
The Math Symbols Font class.
This class represents fonts with the "TeX math symbols" character coding
scheme.
font
.
The font’s NUM1 parameter.
It is expressed in design size units, or in TeX point units if the font is
frozen.
0
num1
.
This slot is read-only.
The font’s NUM2 parameter.
It is expressed in design size units, or in TeX point units if the font is
frozen.
0
num2
.
This slot is read-only.
The font’s NUM2 parameter.
It is expressed in design size units, or in TeX point units if the font is
frozen.
0
num3
.
This slot is read-only.
The font’s DENOM1 parameter.
It is expressed in design size units, or in TeX point units if the font is
frozen.
0
This slot is read-only.
The font’s DENOM2 parameter.
It is expressed in design size units, or in TeX point units if the font is
frozen.
0
This slot is read-only.
The font’s SUP1 parameter.
It is expressed in design size units, or in TeX point units if the font is
frozen.
0
sup1
.
This slot is read-only.
The font’s SUP2 parameter.
It is expressed in design size units, or in TeX point units if the font is
frozen.
0
sup2
.
This slot is read-only.
The font’s SUP2 parameter.
It is expressed in design size units, or in TeX point units if the font is
frozen.
0
sup3
.
This slot is read-only.
The font’s SUB1 parameter.
It is expressed in design size units, or in TeX point units if the font is
frozen.
0
sub1
.
This slot is read-only.
The font’s SUB2 parameter.
It is expressed in design size units, or in TeX point units if the font is
frozen.
0
sub2
.
This slot is read-only.
The font’s SUPDROP parameter.
It is expressed in design size units, or in TeX point units if the font is
frozen.
0
This slot is read-only.
The font’s SUBDROP parameter.
It is expressed in design size units, or in TeX point units if the font is
frozen.
0
This slot is read-only.
The font’s DELIM1 parameter.
It is expressed in design size units, or in TeX point units if the font is
frozen.
0
This slot is read-only.
The font’s DELIM2 parameter.
It is expressed in design size units, or in TeX point units if the font is
frozen.
0
This slot is read-only.
The font’s AXIS-HEIGHT parameter.
It is expressed in design size units, or in TeX point units if the font is
frozen.
0
This slot is read-only.
The Level 0 Omega Font Metric class.
The Padded String Context class.
The Table Context class.
context-string
.
index
.
name
.
size
.
The index in the table.
:index
This slot is read-only.
The list of dimension slot names in the CHARACTER-METRICS class.
The list of dimension slot names in the FONT class.
The list of dimension slot names in the MATH-EXTENSION-FONT class.
The list of dimension slot names in the MATH-SYMBOLS-FONT class.
The TFM configuration settings.
This variable contains a property list of configuration options.
Current options are:
- :swank-eval-in-emacs (Boolean)
See Chapter 5 of the user manual for more information.
The stream being read.
Wrapper around ‘clindent’ to avoid quoting SYMBOL and INDENT.
Define a context-aware report function for a CONDITION of TYPE.
The reporting is ultimately done by calling FORMAT on FORMAT-STRING with
ARGUMENTS.
Like DEFCONSTANT, but reuse existing value if any.
Map BODY on CHARACTER metrics dimension slots available as VAR.
Map BODY on FONT dimension slots available as VAR.
Map BODY on math extension FONT dimension slots available as VAR.
Map BODY on FONT dimension slots available as VAR.
Map BODY on OBJECT SLOTS, each in turn available as VAR.
Call TABLE-AREF, computing the table name from TABLE.
Execute BODY within a particular condition signalling context.
While BODY is executing, conditions of type CONDITION-TYPE (not evaluated) are
caught and augmented with an instance of CONTEXT-TYPE (not evaluated)
initialized with INITARGS.
Run a ligature/kerning program for CHARACTER.
The program starts at LIG/KERNS[INDEX] and uses the KERNS array. Running the
program eventually creates ligatures or kerns for CHARACTER and some other
character.
If an invalid index into LIG/KERNS is encountered, signal an
INVALID-TABLE-INDEX error. This error is immediately restartable with
ABORT-LIG/KERN-PROGRAM.
If an invalid ligature opcode is encountered, signal an
INVALID-LIGATURE-OPCODE error. This error is immediately restartable with
DISCARD-LIGATURE.
If an invalid index into KERNS is encountered, signal an INVALID-TABLE-INDEX
error. This error is immediately restartable with DISCARD-KERN.
Finally, if an invalid character code is encountered, signal an INVALID-CHARACTER-CODE error. Depending on the context, this error is immediately restartable with DISCARD-LIGATURE or DISCARD-KERN.
Apply LIGATURE to STATE and return the new state.
STATE is a list of characters, the first two being subject to LIGATURE.
Send SYMBOL’s INDENTation information to Emacs.
Emacs will set the ’common-lisp-indent-function property.
If INDENT is a symbol, use its indentation definition. Otherwise, INDENT is
considered as an indentation definition.
Return FONT’s CODE character.
If ERRORP (the default), check that the character exists, or signal an
INVALID-CHARACTER-CODE error. Note that a fake boundary character may be
retrieved by this function.
Make FONT’s CHARACTER accessible by its code.
Like FORMAT, but *STREAM* and CONTEXT-aware.
- When *STREAM*, report that we’re reading from it to STREAM.
- When CONTEXT, report the context string to STREAM.
- Finally, print FORMAT-STRING with ARGUMENTS to STREAM.
Make an extension recipe based on EXTEN with FONT’s characters.
Construct a call to ‘defindent’ by reading an argument list from STREAM. This dispatch macro character function is installed on #i in the NET.DIDIERVERNA.TFM named readtable.
Parse *STREAM* of declared length LF into FONT, and return it.
If *STREAM* is shorter than expected, signal a FILE-UNDERFLOW error.
If *STREAM* is longer than expected, signal a FILE-OVERFLOW warning.
If the declared header length is less than 2, signal an INVALID-HEADER-LENGTH
error.
If BC and EC don’t make sense, signal an INVALID-CHARACTER-RANGE error.
If the widths, heights, depths, italic corrections, or extens tables lengths
are not within the expected range, signal an INVALID-TABLE-LENGTH error.
Finally, if the declared sections lengths don’t add up to the declared file length, signal an INVALID-[OFM0-]SECTION-LENGTHS error.
Make a new CHARACTER-METRICS instance, and return it.
Initialize the character’s CODE, FONT, WIDTH, HEIGHT, DEPTH, and
ITALIC-CORRECTION appropriately. The two remaining slots (NEXT-CHARACTER and
EXTENSION-RECIPE) will be initialized later if needed, when all character
metrics instances are created.
Make a new EXTENSION-RECIPE with REPEATED-CHARACTER and return it. The recipe may also have a TOP-, MIDDLE-, and BOTTOM-CHARACTER.
Make a new LIGATURE instance, and return it.
Parse the 8 character information tables from *STREAM* into FONT.
NC (EC - BC + 1), NW, NH, ND, NI, NL, NK, and NE are the declared numbers of
entries in the 8 tables, that is, the char infos, widths, heights, depths,
italic corrections, lig/kern instructions, kerns, and extens respectively.
If a char info structure with a width index of 0 is not completely zero’ed
out, signal an SPURIOUS-CHAR-INFO warning.
If the first entry in the widths, heights, depths, or italic corrections table
is not 0, signal an INVALID-TABLE-START error. This error is immediately
restartable with SET-TO-ZERO.
If an index into the widths, heights, depths, or italic corrections tables is
invalid, signal an INVALID-TABLE-INDEX error. This error is immediately
restartable with SET-TO-ZERO.
If a lig/kern program is found for a boundary character, but there is no such
character in the font, signal a NO-BOUNDARY-CHARACTER error. This error is
immediately restartable with ABORT-LIG/KERN-PROGRAM.
If an index into the extens table is invalid, signal an INVALID-TABLE-INDEX error. This error is immediately restartable with DISCARD-EXTENSION-RECIPE.
If a cycle is found in a list of characters of ascending size, signal a
CHARACTER-LIST-CYCLE error. This error is immediately restartable with
DISCARD-NEXT-CHARACTER.
If a ligature is found to be cyclic, signal a LIGATURE-CYCLE error. This error
is immediately restartable with DISCARD-LIGATURE.
Finally, if an invalid character code is encountered, signal an INVALID-CHARACTER-CODE error. Depending on the context, this error is immediately restartable with DISCARD-NEXT-CHARACTER, or DISCARD-EXTENSION-RECIPE.
Parse a header of LENGTH words from *STREAM* into FONT.
If FONT’s design size is less than 1pt, signal an INVALID-DESIGN-SIZE error.
This error is immediately restartable with SET-TO-TEN.
However, if FONT’s design size was explicitly overridden, only signal an
INVALID-ORIGINAL-DESIGN-SIZE warning.
Read one char-info from *STREAM* into a new CHAR-INFO instance.
If the char-info denotes a non-existent character (that is, it is has a width
index of 0) but is not completely blank, signal a SPURIOUS-CHAR-INFO warning.
Read one exten from *STREAM* into a new EXTEN instance.
Read a fix word from *STREAM* and return it.
If LIMIT (the default), check that the number lies within ]-16,+16[, or
signal a FIX-WORD-OVERFLOW error. This error is immediately restartable with
SET-TO-ZERO.
Read one lig/kern from *stream* into a new LIG/KERN instance.
Read one char-info from *STREAM* into a new CHAR-INFO instance.
If the char-info denotes a non-existent character (that is, it is has a width
index of 0) but is not completely blank, signal a SPURIOUS-CHAR-INFO warning.
Read one exten from *STREAM* into a new EXTEN instance.
Read one lig/kern from *stream* into a new LIG/KERN instance.
Read a padded string out of PAD bytes from *STREAM*.
The first byte in *STREAM* indicates the actual length of the string.
If the declared string’s length is too large, signal an
INVALID-PADDED-STRING-LENGTH error. This error is immediately restartable with
READ-MAXIMUM-LENGTH or DISCARD-STRING.
If the string is not in BCPL format (it contains parentheses or non-ASCII
characters, signal an INVALID-PADDED-STRING error. This error is immediately
restartable with KEEP-STRING, FIX-STRING (replacing parentheses with slashes,
and non-ASCII characters with question marks), or DISCARD-STRING.
If the string is not padded with zeros, signal a PADDED-STRING-OVERFLOW warning.
Read an unsigned 16 bits Big Endian integer from *STREAM* and return it. If LIMIT (the default), check that the number is less than 2^15, or signal a U16-OVERFLOW error.
Read an unsigned 32 bits Big Endian integer from *STREAM* and return it. If LIMIT (the default), check that the number is less than 2^31, or signal a U32-OVERFLOW error.
Read an unsigned 8 bits integer from *STREAM*.
Return a new property list from KEYS without REMOVED ones.
Find the real start of a ligature/kerning program and run it.
See %run-ligature/kerning-program for more information.
If INDEX is invalid, signal an INVALID-TABLE-INDEX error. This error is immediately restartable with ABORT-LIG/KERN-PROGRAM.
Set KERN for CHARACTER1 and CHARACTER2.
Set LIGATURE for CHARACTER1 and CHARACTER2.
Access NAMEd TABLE at INDEX.
If INDEX is out of bounds, signal an INVALID-TABLE-INDEX error.
Read a series of ~"string" to be concatenated together.
character-metrics
)) ¶The character’s extension recipe, or NIL.
This slot is non-null only if this character is extensible (see TeX: the
Program [544]). It is mutually exclusive with the NEXT-CHARACTER slot, and
also with the existence of a ligature or kerning program for this character.
Parse a parameters section of LENGTH words from *STREAM* into FONT. Return remaining LENGTH.
Parse the 7 regular FONT parameters. Return remaining LENGTH.
math-symbols-font
)) ¶Parse the 15 additional TeX math symbols FONT parameters.
math-extension-font
)) ¶Parse the 6 additional TeX math extension FONT parameters.
Read remaining parameters into a parameters array.
spurious-ofm0-char-info
)) ¶tag
.
Scale all FONT dimensions by FACTOR.
math-extension-font
) factor) ¶Scaling method for MATH-EXTENSION-FONTs.
math-symbols-font
) factor) ¶Scaling method for MATH-SYMBOL-FONTs.
Scaling method for regular FONTs.
The Spurious Level 0 Omega Char Info compliance warning.
It signals that a char-info for a non-existent character (that is, with a
width-index of 0) is not completely zero’ed out.
(quote (quote (:omega . 7.1)))
The Exten structure.
This structure is used to store decoded information from the exten table
(see TeX: the Program [546]).
The Lig/Kern structure.
This structure is used to store decoded information from the lig/kern table
(see TeX: the Program [545]).
The Extension Recipe class.
This class represents decoded information for extensible characters. Within
the context of this library, the expression "extension recipe" denotes an
instance of this class.
The recipe’s top character, or NIL.
:top-character
This slot is read-only.
The recipe’s middle character, or NIL.
:middle-character
This slot is read-only.
The recipe’s bottom character, or NIL.
:bottom-character
This slot is read-only.
The recipe’s repeated character.
:repeated-character
This slot is read-only.
Jump to: | %
(
7
~
A B C D E F G H I K L M N O P R S T U V W |
---|
Jump to: | %
(
7
~
A B C D E F G H I K L M N O P R S T U V W |
---|
Jump to: | *
+
7
A B C D E F H I K L M N O P R S T V W |
---|
Jump to: | *
+
7
A B C D E F H I K L M N O P R S T V W |
---|
Jump to: | C D E F I L M N O P R S T U V |
---|
Jump to: | C D E F I L M N O P R S T U V |
---|