From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp2.migadu.com ([2001:41d0:403:58f0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms13.migadu.com with LMTPS id IIWIDrR/eGfwQAAAe85BDQ:P1 (envelope-from ) for ; Sat, 04 Jan 2025 00:24:20 +0000 Received: from aspmx1.migadu.com ([2001:41d0:403:58f0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp2.migadu.com with LMTPS id IIWIDrR/eGfwQAAAe85BDQ (envelope-from ) for ; Sat, 04 Jan 2025 01:24:20 +0100 X-Envelope-To: larch@yhetil.org Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=disroot.org header.s=mail header.b=Sl9YXPVA; spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org"; dmarc=pass (policy=reject) header.from=disroot.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1735950260; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post:dkim-signature; bh=YkxkdjNK9Ej80YHJaPiqjsfzxp7tJVWBkN/ylUsj5/8=; b=BJkqrHKVz8Pjx+SLKle2Wqx0PB5qE43vo/iWX+jutVmnJE97WsB4dn5+48CP778fQNjH0g 1RjTz9Kv22IyLfs3nCAcOmV0FE8IzKFZ74V4ilaLitxyKLvnhhIHjN0mgNUaTaKi2pqbgM schMnXv4YglDfAspQJNVtduvZFRVutAgdbIRkB1rfaMq1UWcp/Pf/4x4CZRh51rJkuFt5w +8orsr2hb1VrgagJyIwV9Ml6h+kJ0qt+IPcQloBBjJSOE039KbHTLUGQSpjf+5gpRu5zSL +rOtM2HL2qi+tmks4sZBY2rV98lTJRt3jjD7xKDASqEK1qvi0s0PaN61k4lXNg== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=disroot.org header.s=mail header.b=Sl9YXPVA; spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org"; dmarc=pass (policy=reject) header.from=disroot.org ARC-Seal: i=1; s=key1; d=yhetil.org; t=1735950260; a=rsa-sha256; cv=none; b=S3hqVP9dci4Fs6fejwZLEiJJpJEEJTnRsQX0A+prgGns/a/htbA27rqU5fd2lUcwq04Nus woYtNrK9+v83Xsbwk1U0dRUp/NuIvKuuWbQyPaed2EENgKO4p49ozfzQPWUCLdnOi5oPca RZc3a/HAvaux5i53SchjFZqndp6RCH4dqBxbBX+ClY1wKI2rONS+NFIi9D4IzS+1v82+r2 rRQWtVNDzoHRW4tDrWwjadqybA7SCwSsecIgSyZuFceQkRJs5B7EoC3eebzMFhr8WmAmuS baJtFE+zjelNUoY0V8M9e0gNrPxM2xfE7+t5NLNUcCyvVnGPD7W0RhdxlDGdAw== Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 1E5D684B24 for ; Sat, 04 Jan 2025 01:24:19 +0100 (CET) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tTrwl-00038N-63; Fri, 03 Jan 2025 19:23:19 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tTrwi-000388-E7; Fri, 03 Jan 2025 19:23:17 -0500 Received: from layka.disroot.org ([178.21.23.139]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tTrwg-0006Q7-6y; Fri, 03 Jan 2025 19:23:16 -0500 Received: from mail01.disroot.lan (localhost [127.0.0.1]) by disroot.org (Postfix) with ESMTP id A4A1825B6B; Sat, 4 Jan 2025 01:23:08 +0100 (CET) X-Virus-Scanned: SPAM Filter at disroot.org Received: from layka.disroot.org ([127.0.0.1]) by localhost (disroot.org [127.0.0.1]) (amavis, port 10024) with ESMTP id cGlUna7a7BCa; Sat, 4 Jan 2025 01:23:04 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=disroot.org; s=mail; t=1735950184; bh=IIGik7yx4Rcei89jF1Ot+QtPJPv3MSxk5DqIuuQWutE=; h=Date:From:To:Subject:References:In-Reply-To; b=Sl9YXPVAFqSTYzUA+b4g+h2X2aFvpVv1I9U7WXR1xxcnA7vzhcRj2h7+hGKD9l6lo 36GkMvPaAdHdIii14i91jyq1PF4kznQqiHw+hOEOaOxQRuYxh593bW8s+rdfuZlzB6 GerlnnnBTMmh2phtFWDDOLkXCyplzZUe7FdkK3dnbXm53msfrIDjlXsIR8vDzTYlYB kq7nPFaVfoxlAmicKCpYBnt0zM0vLP5lMyk4xDEdJ5EYU9d2VP8eG5TfNvYySBn8dh SddSfTI0RaIbSrTpRvfvz1Z+6MLTVU3uWGoeBjxK7yHO2NiKmrsMrjGrRL9Fj7yyIQ 5/rIBEs23fkvA== Mime-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=UTF-8 Date: Sat, 04 Jan 2025 01:23:02 +0100 Message-Id: From: "onf" To: "G. Branden Robinson" , , Subject: Re: [BUG] "\fC" macro in ox-man.el [9.6.15 (release_9.6.15 @ /usr/share/emacs/29.2/lisp/org/)] References: <20250103083819.bvz53fcaluaxyubt@illithid> In-Reply-To: <20250103083819.bvz53fcaluaxyubt@illithid> Received-SPF: pass client-ip=178.21.23.139; envelope-from=onf@disroot.org; helo=layka.disroot.org X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-orgmode@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org Sender: emacs-orgmode-bounces+larch=yhetil.org@gnu.org X-Migadu-Flow: FLOW_IN X-Migadu-Country: US X-Migadu-Scanner: mx11.migadu.com X-Migadu-Spam-Score: -3.98 X-Spam-Score: -3.98 X-Migadu-Queue-Id: 1E5D684B24 X-TUID: pJEEqA4c28Ox Hi Branden, On Fri Jan 3, 2025 at 9:38 AM CET, G. Branden Robinson wrote: > At 2025-01-02T15:29:59+0100, onf wrote: > > I don't know why it took me so long, but I think what you're looking > > for is this: > > \fC\f(CRLorem\fR > > Not a bad idea, but while you're there, given Ihor's ambitious > portability objectives, you might as well scoop up the population of > troffs that named the font `CW`.[1] > > So you'd emit `\fC\fCW\fCRLorem\fR`. Fair point. > [...] > At 2025-01-02T22:51:47+0100, onf wrote: > [...] > > But I agree; I would track each style change (bold -> not bold, > > italic -> not italic) and emit an appropriate \f sequence that > > would match the currently active styles after each such change, > > like so: > > code & bold & italic \f[CBI] > > code & bold \fC\f(CB > > code & italic \fC\f(CI > > code \fC\f(CR > > bold & italic \f(BI > > bold \fB > > italic \fI > > none \fR > >=20 > > Note that \f[CBI] will break in old troffs due to the "new" \f[] > > syntax, so a warning should probably be emitted. And I have no > > idea how good support for {bold,italic} Courier is in older troffs > > either. > > Poor, in general. Where Courier bold-italic existed, it was sometimes > called "CX". I meant support for CB and CI, not CBI. > > (That is assuming Org-mode markup allows code to be styled like that.) > >=20 > > Also note that if a change involving italic happens between two > > non-whitespace characters, like so: > > groff(/7/) > >=20 > > ...an italic correction should be emitted to prevent the two glyphs > > colliding into each other: > > groff(\,\fI7\fR\/) > > where: > > \, is left italic correction > > \/ is right italic correction > > So another thing to know here is that these italic correction escape > sequences are, yet again, GNU troff extensions. A legacy formatter is > likely to render them as if the backslash were absent, which is very > much not what you want in your output. Oh. Thanks for pointing that out, I had no idea. > [...] > If org-mode did that, it could ignore the `CW` font whose history I just > went to the trouble to explore, and the problem with `\,` and `\/` > escape sequences as well. With a little more research we might find > that org-mode could disregard `\fC` as well. Speaking of the left italic correction (\,), could you please give me some example(s) where it's actually useful? I have yet to see a single instance where it changes anything... (I don't rule out the possibility that I may be using it incorrectly or that my fonts might be misconfigured, though.) > [...] > [5] I admit I'm a little fuzzy on Plan 9 from User Space's objectives > for its troff. I can say that the pace of its development is not > swift. I don't think Plan 9 advocates pick up the system to use its > typesetter. My understanding is that Plan 9 from User Space is merely providing a port of the Plan 9 program. My impression of Plan 9's troff is that it's a poorly maintained descendant of DWB troff that's used only to format manpages. ~ onf