Article View: comp.text.tex
Article #2168Summary on: greek in footnotes
From: J%org Knappen
Date: Thu, 13 Aug 1992 17:50
Date: Thu, 13 Aug 1992 17:50
74 lines
3733 bytes
3733 bytes
Summary on:
Use of classical greek in footnotes
causes a severe problem. I use a font which acesses the accented greek
characters as ligatures, e.g. <~h| gives an eta with spiritus asper,
circumflex and iota subscript. The syntax of the greek is
\begin{greektext} <~h|\end{greektext}, and inside the greektext environment
the catcode of ~ is changes to letter.
This does not work in footnotes: The catcode of the ~ is fixed at the
moment the footnote is read and cannot be changed any more.
Therefore I tried to redefine the active tilde in the greektext environment
to be the ASCII character tilde. This approach fails, because \footnote
expands the definition of ~ before it is changed. \protect'ing the ~ does
not help either, because it inhibits the ligature building.
Is there a solution of this problem?
Yours, J"org Knappen.
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
There are several approaches to the problem, thanks to all the people answering
the question.
The first is to use ``brute force'' i.e. to set the catcodes of ><`'~ and |
to letter (11) everywhere. There are some side effects one has to be aware of:
\` etc. are control words now instead of control sequnces, therefore one has
to replace \`e by \`{e} and so on.
The ~ in its original meaning is no longer available.
The better one is to redefine the \footnote command such that it allows the
altering of catcodes. I received the following
%From: Joerg-Martin Schwarz <@MVS.GSI.DE:UPH508@DDOHRZ11.BITNET>
\makeatletter
\long\def\@footnotetext{\insert\footins\bgroup\reset@font\footnotesize
%% erased '#1' here^
\interlinepenalty\interfootnotelinepenalty
\splittopskip\footnotesep
\splitmaxdepth \dp\strutbox \floatingpenalty \@MM
\hsize\columnwidth \@parboxrestore
\edef\@currentlabel{\csname p@footnote\endcsname\@thefnmark}\@makefntext
\bgroup\rule{\z@}{\footnotesep}\ignorespaces
%%%% #1\strut\egroup\egroup} replaced by:
\futurelet\next\fo@t}
\def\@foot{% Will be moved after the argument #1 by an \aftergroup!
\strut\egroup\egroup}%% (See below '<='
%The mechanism of parsing the following argument has been
%copied from plain.tex
%\def\vfootnote#1{\insert\footins\bgroup
% \interlinepenalty\interfootnotelinepenalty
% \splittopskip\ht\strutbox % top baseline for broken footnotes
% \splitmaxdepth\dp\strutbox \floatingpenalty\@MM
% \leftskip\z@skip \rightskip\z@skip \spaceskip\z@skip \xspaceskip\z@skip
% \textindent{#1}\footstrut\futurelet\next\fo@t}
%%%%%%% It is these commands^^^^^^^^^^^^^^^^^^^^
%%%%%%% that take care of parsing the following argument
%% check if argument is x or {xxxxxxxx}:
\def\fo@t{\ifcat\bgroup\noexpand\next \let\next\f@@t
\else\let\next\f@t\fi \next}
\def\f@@t{\bgroup\aftergroup\@foot\let\next}%% <==
\def\f@t#1{#1\@foot}
%\def\@foot{\strut\egroup}
\makeatother
%This time it works
It is all easy\footnote{I just changed some lines in the command
definition of |\@footnotetext|}!!!
Another suggestion was to define commands like \asper, \grave etc to produce
the spiritus and accents in footnotes.
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Technical Details
Message-ID:
<01GNJI2RB06O8WVYMA@VzdmzA.ZDV.Uni-Mainz.DE>Path:
arc1-ca.pugleaf.net!sparky!uunet!olivea!sgigate!odin!mips!sdd.hp.com!swrinde!network.ucsd.edu!mvb.saic.com!info-texShow Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!sparky!uunet!olivea!sgigate!odin!mips!sdd.hp.com!swrinde!network.ucsd.edu!mvb.saic.com!info-tex From: KNAPPEN@VKPMZD.KPH.Uni-Mainz.de (J%org Knappen) Newsgroups: comp.text.tex Subject: Summary on: greek in footnotes Message-ID: <01GNJI2RB06O8WVYMA@VzdmzA.ZDV.Uni-Mainz.DE> Date: 13 Aug 92 17:50:06 GMT Organization: Info-Tex<==>Comp.Text.Tex Gateway Lines: 74 X-Gateway-Source-Info: Mailing List