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

Reply via email to