[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
smart quotes and dumb
From: |
James K. Lowden |
Subject: |
smart quotes and dumb |
Date: |
Tue, 3 Nov 2020 18:47:41 -0500 |
There's been a lot of discussion lately about the interpretation of
quotes and hyphens. I'm finding it hard to follow because there are
many parts: fonts, devices, macro packages, and implementations. Also
years, and recent commits.
I think some have espoused the behavior that the interpretation of the
ASCII characters {` ' " -} should be literal. That is, if one of those
characters appears in the input (as data), it appears in the output.
If the user wants something else -- longer or shorter dashes, curly
quotes -- he has groff_char at his disposal.
I believe it would be best if that principle applied to all devices in
all circumstances, no matter what, for accuracy. Too often, I have
found myself cutting and pasting an example -- experienced programmers
do that, too -- and then have to touch up the quotes or dashes. If I'm
working in an unfamiliar language, it's sometimes unclear what's wrong,
because the message just says the character is invalid, not that it was
munged by the document rendering system.
There seems to be some effort toward inferring what the user intends,
or to guess what might look better in situation X or Y. I think that's
a recipe for error. Determinism, even ugly determinism, is easier to
reason about than magical contexts.
I do not think we should cater to any existing practice, no matter the
history. If there are man pages that use `odd quotes' because they
looked good on the Xerox Star, so be it. If the rule is, "what you
type is what you get", then ugliness can be dealt with over time. In
the meanwhile the meaning is clear, and the user, if perhaps affronted,
is at least not confused.
I can imagine refinements for specific documents. For example, the
characters output the the inputs {` ' " -} could be stored in
registers, and overridden by the user or macro package.
Is there really any counterargument?
--jkl
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- smart quotes and dumb,
James K. Lowden <=