gbranden pushed a commit to branch master
in repository groff.
commit c9b3c99a683733962ef51182ad8b047120b874f0
Author: G. Branden Robinson <[email protected]>
AuthorDate: Wed Aug 28 19:48:37 2024 -0500
tmac/{fallbacks,tty}.tmac: Reorganize.
Move recently added fallbacks for "ascii" device from "fallbacks.tmac"
to "tty.tmac" since they are particular to one output device.
Also annotate reason for recent change to treatment of `\[em]` on "utf8"
device. Thanks to Dave Kemper, Jeff Conrad, Peter Schaffter, and Tadziu
Hoffman for a lively discussion. See
<https://lists.gnu.org/archive/html/groff/2024-08/msg00054.html>.
---
ChangeLog | 6 ++++
tmac/fallbacks.tmac | 76 +---------------------------------------------
tmac/tty.tmac | 86 +++++++++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 93 insertions(+), 75 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 6e0bc9a4d..199992108 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2024-08-28 G. Branden Robinson <[email protected]>
+
+ * tmac/{fallbacks,tty}.tmac: Reorganize. Move recently added
+ fallbacks for "ascii" device from "fallbacks.tmac" to "tty.tmac"
+ since they are particular to one output device.
+
2024-08-25 G. Branden Robinson <[email protected]>
[troff]: Begin fixing Savannah #63074: support construction of
diff --git a/tmac/fallbacks.tmac b/tmac/fallbacks.tmac
index 21a408576..7cedf150e 100644
--- a/tmac/fallbacks.tmac
+++ b/tmac/fallbacks.tmac
@@ -1,4 +1,4 @@
-.\" Define device-independent fallbacks for unavailable glyphs.
+.\" Define fallbacks for unavailable glyphs.
.\"
.\" These are designed such that "troffrc" loads them early, after
.\" composite glyph setup but before any device-specific fallbacks.
@@ -74,80 +74,6 @@
.fchar \[u217E] d
.fchar \[u217F] m
.
-.\" Fallbacks for "ascii" device
-.\"
-.\" If these glyphs are missing on any other output device, that's a
-.\" problem we want to report to the user via diagnostics.
-.if '\?\*[.T]\?'\?ascii\?' \{\
-. fchar \['A] \z\[aa]A
-. fchar \['C] \z\[aa]C
-. fchar \['E] \z\[aa]E
-. fchar \['I] \z\[aa]I
-. fchar \['O] \z\[aa]O
-. fchar \['U] \z\[aa]U
-. fchar \['Y] \z\[aa]Y
-. fchar \['a] \z\[aa]a
-. fchar \['c] \z\[aa]c
-. fchar \['e] \z\[aa]e
-. fchar \['i] \z\[aa]i
-. fchar \['o] \z\[aa]o
-. fchar \['u] \z\[aa]u
-. fchar \['y] \z\[aa]y
-.
-. fchar \[:A] \z\[ad]A
-. fchar \[:E] \z\[ad]E
-. fchar \[:I] \z\[ad]I
-. fchar \[:O] \z\[ad]O
-. fchar \[:U] \z\[ad]U
-. fchar \[:Y] \z\[ad]Y
-. fchar \[:a] \z\[ad]a
-. fchar \[:e] \z\[ad]e
-. fchar \[:i] \z\[ad]i
-. fchar \[:o] \z\[ad]o
-. fchar \[:u] \z\[ad]u
-. fchar \[:y] \z\[ad]y
-.
-. fchar \[^A] \z\[a^]A
-. fchar \[^E] \z\[a^]E
-. fchar \[^I] \z\[a^]I
-. fchar \[^O] \z\[a^]O
-. fchar \[^U] \z\[a^]U
-. fchar \[^a] \z\[a^]a
-. fchar \[^e] \z\[a^]e
-. fchar \[^i] \z\[a^]i
-. fchar \[^o] \z\[a^]o
-. fchar \[^u] \z\[a^]u
-.
-. fchar \[`A] \z\[ag]A
-. fchar \[`E] \z\[ag]E
-. fchar \[`I] \z\[ag]I
-. fchar \[`O] \z\[ag]O
-. fchar \[`U] \z\[ag]U
-. fchar \[`a] \z\[ag]a
-. fchar \[`e] \z\[ag]e
-. fchar \[`i] \z\[ag]i
-. fchar \[`o] \z\[ag]o
-. fchar \[`u] \z\[ag]u
-.
-. fchar \[~A] \z\[a~]A
-. fchar \[~N] \z\[a~]N
-. fchar \[~O] \z\[a~]O
-. fchar \[~a] \z\[a~]a
-. fchar \[~n] \z\[a~]n
-. fchar \[~o] \z\[a~]o
-.
-. fchar \[vS] \z\[ah]S
-. fchar \[vs] \z\[ah]s
-. fchar \[vZ] \z\[ah]Z
-. fchar \[vz] \z\[ah]z
-.
-. fchar \[,C] \z\[ac]C
-. fchar \[,c] \z\[ac]c
-.
-. fchar \[oA] \z\[ao]A
-. fchar \[oa] \z\[ao]a
-.\}
-.
.\" Fonts often lack precomposed glyphs for accented Latin letters that
.\" were not defined in ISO 8859-1 (Latin-1).
.\"
diff --git a/tmac/tty.tmac b/tmac/tty.tmac
index 5a0574fa6..2545a8273 100644
--- a/tmac/tty.tmac
+++ b/tmac/tty.tmac
@@ -8,9 +8,95 @@
.
.po 0
.
+.\" Traditionally, an em dash is rendered on a typewriter with two
+.\" hyphens. On the "utf8" device, because (A) the output driver grotty
+.\" as yet has no interface to mark output glyphs as narrow or wide on
+.\" terminals supporting bi-width fonts, (B) Unicode defines "EM DASH"
+.\" (U+2014) as having "ambiguous" width, and (C) fonts for terminals
+.\" frequently fail to make dash-like characters distinguishable, render
+.\" the em dash as two copies of itself. On a half-width character
+.\" cell grid, this largely restores the em dash's traditional
+.\" appearance as defined, where a (proportional) typeface's size is
+.\" characterized by its "em quad", or roughly the dimensions of a
+.\" capital "M".
.ie '\?\*[.T]\?'\?utf8\?' .char \[em] \[em]\[em]
.el .char \[em] --
.
+.\" Nobody expects much, typographically, of an ASCII terminal; make
+.\" accented Latin letters degrade gracefully there.
+.\"
+.\" If these glyphs are missing on any other output device, that's a
+.\" problem we want to report to the user via diagnostics.
+.if '\?\*[.T]\?'\?ascii\?' \{\
+. fchar \['A] \z\[aa]A
+. fchar \['C] \z\[aa]C
+. fchar \['E] \z\[aa]E
+. fchar \['I] \z\[aa]I
+. fchar \['O] \z\[aa]O
+. fchar \['U] \z\[aa]U
+. fchar \['Y] \z\[aa]Y
+. fchar \['a] \z\[aa]a
+. fchar \['c] \z\[aa]c
+. fchar \['e] \z\[aa]e
+. fchar \['i] \z\[aa]i
+. fchar \['o] \z\[aa]o
+. fchar \['u] \z\[aa]u
+. fchar \['y] \z\[aa]y
+.
+. fchar \[:A] \z\[ad]A
+. fchar \[:E] \z\[ad]E
+. fchar \[:I] \z\[ad]I
+. fchar \[:O] \z\[ad]O
+. fchar \[:U] \z\[ad]U
+. fchar \[:Y] \z\[ad]Y
+. fchar \[:a] \z\[ad]a
+. fchar \[:e] \z\[ad]e
+. fchar \[:i] \z\[ad]i
+. fchar \[:o] \z\[ad]o
+. fchar \[:u] \z\[ad]u
+. fchar \[:y] \z\[ad]y
+.
+. fchar \[^A] \z\[a^]A
+. fchar \[^E] \z\[a^]E
+. fchar \[^I] \z\[a^]I
+. fchar \[^O] \z\[a^]O
+. fchar \[^U] \z\[a^]U
+. fchar \[^a] \z\[a^]a
+. fchar \[^e] \z\[a^]e
+. fchar \[^i] \z\[a^]i
+. fchar \[^o] \z\[a^]o
+. fchar \[^u] \z\[a^]u
+.
+. fchar \[`A] \z\[ag]A
+. fchar \[`E] \z\[ag]E
+. fchar \[`I] \z\[ag]I
+. fchar \[`O] \z\[ag]O
+. fchar \[`U] \z\[ag]U
+. fchar \[`a] \z\[ag]a
+. fchar \[`e] \z\[ag]e
+. fchar \[`i] \z\[ag]i
+. fchar \[`o] \z\[ag]o
+. fchar \[`u] \z\[ag]u
+.
+. fchar \[~A] \z\[a~]A
+. fchar \[~N] \z\[a~]N
+. fchar \[~O] \z\[a~]O
+. fchar \[~a] \z\[a~]a
+. fchar \[~n] \z\[a~]n
+. fchar \[~o] \z\[a~]o
+.
+. fchar \[vS] \z\[ah]S
+. fchar \[vs] \z\[ah]s
+. fchar \[vZ] \z\[ah]Z
+. fchar \[vz] \z\[ah]z
+.
+. fchar \[,C] \z\[ac]C
+. fchar \[,c] \z\[ac]c
+.
+. fchar \[oA] \z\[ao]A
+. fchar \[oa] \z\[ao]a
+.\}
+.
.fchar \[bu] *
.fchar \[14] 1/4
.fchar \[12] 1/2
_______________________________________________
Groff-commit mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/groff-commit