X-VM-v5-Data: ([nil nil nil nil nil nil nil nil nil] ["3130" "Mon" "8" "July" "1996" "22:09:08" "+0200" "Martin Schroeder" "ms@DREAM.HB.NORTH.DE" nil "84" "Re: latex/2192: \\DeclareFont{Family,Shape} behave unexpectedly" "^Date:" nil nil "7" nil nil nil nil] nil) Received: from listserv.gmd.de (listserv.gmd.de [192.88.97.1]) by trudi.zdv.Uni-Mainz.DE (8.7.5/8.7.3) with ESMTP id WAA26611; Mon, 8 Jul 1996 22:24:50 +0200 (MET DST) Received: from listserv.gmd.de by listserv.gmd.de (LSMTP for OpenVMS v1.1a) with SMTP id <10.BCDC0DBA@listserv.gmd.de>; Mon, 8 Jul 1996 22:24:48 +0200 Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 103828 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Mon, 8 Jul 1996 22:18:53 +0200 Received: from ix.urz.uni-heidelberg.de (root@aixterm1.urz.uni-heidelberg.de [129.206.119.41]) by relay.urz.uni-heidelberg.de (8.7.5/8.7.4) with SMTP id WAA09775 for ; Mon, 8 Jul 1996 22:18:52 +0200 (MET DST) Received: from deceased.hb.north.de by ix.urz.uni-heidelberg.de (AIX 3.2/UCB 5.64/4.03aixterm1) id AA59585; Mon, 8 Jul 1996 22:18:49 +0200 Received: from dream.hb.north.de by deceased.hb.north.de with uucp (Smail3.1.93) id m0udMlZ-0016LsC; Mon, 8 Jul 96 22:18:45 +0200 (MET DST) Received: by dream.hb.north.de (1.65/waf) via UUCP; Mon, 08 Jul 96 22:09:08 -2 for latex-bugs@uni-mainz.de References: <199607060957.LAA02857@frank.zdv.uni-mainz.de> <199607081724.TAA00623@frank.zdv.uni-mainz.de> X-Mailer: Helldiver 1.07 (Waffle 1.65) Lines: 84 Message-ID: Reply-To: Mailing list for the LaTeX3 project Organization: The Dreaming Date: Mon, 8 Jul 1996 22:09:08 +0200 From: Martin Schroeder Sender: Mailing list for the LaTeX3 project To: Multiple recipients of list LATEX-L Subject: Re: latex/2192: \DeclareFont{Family,Shape} behave unexpectedly Status: R X-Status: X-Keywords: X-UID: 1759 In <199607081724.TAA00623@frank.zdv.uni-mainz.de> Frank Mittelbach writes: [...] >and: do we need a hook that is called whenever a font shape changes > and if so what interfaces are needed to make such a hook is > generally usable >] [...] > > Maybe it's the wrong way now. But can you offer any other solution? I need > > this feature, and if you introduce some new features I will immediately > > update. Theoretically I could check whether \selectfont has been modified by > > any other package... >you should do that definitely for all internal commands you modify, it >will help you to maintain your stuff and avoids some of the hard to find bugs May I suggest a look at macros/latex/contrib/supported/everysel this contains my package % ==================================================================== % @LaTeX-style-file{ % author = {Martin Schr\"oder}, % version = "1.00", % date = "30 May 1996", % filename = "everysel.sty", % address = {Martin Schr\"oder % Friedrich-Humbert-Stra\ss{}e 124 % D-28759 Bremen}, % telephone = "+49-421-628813", % email = "MS@Dream.HB.North.DE (INTERNET)", % codetable = "ISO/ASCII", % keywords = "LaTeX, NFSS", % supported = "yes", % docstring = "LaTeX package which provides hooks into % \cs{selectfont})." % } % ==================================================================== ... % \section{Introduction} % ^^A % This package provides the hooks \cs{EverySelectfont} and % \cs{AtNextSelectfont} whose arguments are executed just after % \LaTeX{} has loaded a new font using \cs{selectfont} (which means % that it will be executed after \emph{every} font loaded via NFSS). % % An example application would be a package for setting ragged text % which needs to distiguinsh between monospaced and proportional % fonts. % Such a package exists: \package{ragged2e}. % % % ^^A ----------------------------- % % \section{Usage} % ^^A % \DescribeMacro{\EverySelectfont} % \cs{EverySelectfont}\marg{code} declares % \mbox{$\langle$\emph{code}$\rangle$} that is saved internally % and executed just after \emph{each} \cs{selectfont}. % % \emph{Warning:} The \mbox{$\langle$\emph{code}$\rangle$} is saved % globally; there is currently no way to remove it. % % \DescribeMacro{\AtNextSelectfont} % \cs{AtNextSelectfont}\marg{code} declares % \mbox{$\langle$\emph{code}$\rangle$} that is saved internally % and executed just after \emph{and only the next} \cs{selectfont}. % % Repeated use of the commands is permitted: the code in their % argument is stored (and executed) in the order of their % declarations. % % The argument of \cs{AtNextSelectfont} is executed \emph{after} % the argument of \cs{EverySelectfont}. Does this solve some of your problems? :-) Best regards Martin -- Martin Schr"oder, MS@Dream.HB.North.DE Simplicity is the natural result of profound thought. (Anu Garg)