我正在使用我的合著者提供的 TeX 宏,但她也不知道如何调整脚注之间的间距。
这是我的 macro.tex
% make the pageheight a bit smaller
\vsize=8.7in
\voffset=.01in
% do this to get 1.5 inch lefthand margin
\hsize=6.5in
\hoffset=0.01in
% set some definitions
\def\singleo{\normalbaselineskip=11pt \normalbaselines}
\def\single{\normalbaselineskip=15pt \normalbaselines}
\def\singlet{\normalbaselineskip=18pt \normalbaselines}
\def\double{\normalbaselineskip=24pt \normalbaselines}
% twelve point
\font\twlrm = cmr12 % roman
\font\twlmi = cmmi12 % math italic
\skewchar\twlmi ='177 % for placement of accents
\font\twlsy = cmsy10 scaled \magstep1 % math symbols
\skewchar\twlsy ='60 % for placement of math accents
\font\twlit = cmti12 % text italic
\font\twlsl = cmsl12 % slanted
\font\twlbf = cmbx12 % extended bold
\font\twltt = cmtt12 % typewriter
\hyphenchar\twltt = -1 % suppress hyphenation in \tt font
\font\twlsf = cmss10 % sans serif
\font\bigbf = cmbx12 scaled \magstep2 % large font for titles
\font\egtrm = cmr8
\font\egtmi = cmmi8
\skewchar\egtmi ='177 % for placement of accents
\font\egtsy = cmsy8
\skewchar\egtsy ='60 % for placement of math accents
\font\egtbf = cmbx8
\font\sixrm = cmr6
\font\sixmi = cmmi6
\skewchar\sixmi ='177 % for placement of accents
\font\sixsy = cmsy6
\skewchar\sixsy ='60 % for placement of math accents
\font\sixbf = cmbx6
\textfont0=\twlrm
\scriptfont0=\egtrm \scriptscriptfont0=\sixrm
\def\rm{\fam0\twlrm}
\textfont1=\twlmi \scriptfont1=\egtmi \scriptscriptfont1=\sixmi
\def\mit{\fam1 } \def\oldstyle{\fam1 \twlmi}
\textfont2=\twlsy \scriptfont2=\egtsy \scriptscriptfont2=\sixsy
\def\cal{\fam2 }
\textfont3=\tenex \scriptfont3=\tenex \scriptscriptfont3=\tenex
\textfont\itfam=\twlit \def\it{\fam\itfam\twlit}
\textfont\slfam=\twlsl \def\sl{\fam\slfam\twlsl}
\textfont\bffam=\twlbf \scriptfont\bffam=\egtbf
\scriptscriptfont\bffam=\sixbf \def\bf{\fam\bffam\twlbf}
\textfont\ttfam=\twltt \def\tt{\fam\ttfam\twltt}
%\normalbaselineskip=24pt % define a new baseline for 12pt
\normalbaselines \rm % set things in motion
%
% presumably all this stuff is needed to correctly do footnotes
%
\catcode`\@=11
\def\vfootnote#1{\insert\footins\bgroup
\interlinepenalty\interfootnotelinepenalty
\splittopskip\ht\strutbox % top baseline for broken footnotes
\baselineskip=24pt % necessary for single space
% footnotes with double space
% text
\splitmaxdepth\dp\strutbox \floatingpenalty\@MM
\leftskip\z@skip \rightskip\z@skip \spaceskip\z@skip \xspaceskip\z@skip
\textindent{#1}\footstrut\futurelet\next\fo@t}% Change \textindent for
% different footnote styles
\def\pagenumbers{\footline={\hss\tenrm[\folio]\hss}} % turn pagenumbers back on
% roman numeral page numbers
\def\romanpagenumbers{\footline={\hss[\romannumeral\folio]\hss}}
\def\undertext#1{$\underline{\smash{\vphantom{y}\hbox{#1}}}$} % underlines text
\def\sumin{\sum_{i=1}^N} %summation from 1 to n
\def\sumit{\sum_{i=1}^T} %summation from 1 to t
\def\inv{^{-1}} %inverse
%for two beginsections in a row, use this.
\outer\def\beginsectionsection#1\par#2\par{\vskip0pt plus.3\vsize\penalty-250
\vskip0pt plus-.3\vsize\bigskip\vskip\parskip
\message{#1}\leftline{\bf #1}\nobreak\smallskip
\message{#2}\leftline{\bf #2}\nobreak\smallskip\noindent}
%Note that it is important to have the blank line between the two entries, and a
%blank line after the final entry (similar to the \beginsection macro).
% Date definition for inserting current month, day, and year into document
\def\date{
\ifcase\month\or
January\or
February\or
March\or
April\or
May\or
June\or
July\or
August\or
September\or
October\or
November\or
December\fi
\space\number\day, \number\year
}
% This set of macros enables automatic chapter numbering, subsection
% numbering, equation numbering, and footnote numbering. These were
% written by J. Racine (May 29, 1989)
% Automatic chapter numbering
% Example: \beginchapter{Blah Blah Blah}
% Note that the title will be preceeded by the chapter number
\newcount\eqnnum
\newcount\secnum
\newcount\chapnum
\newcount\footnum
\footnum=0 % initializes the footnote numbers and chapter numbers
\chapnum=0 % for the start of the paper
\def\beginchapter#1\par{
\global
\eqnnum=0
\secnum=0
\advance\chapnum by 1
\vskip 0pt plus.3
\vsize
\penalty-250
\vskip 0pt plus-.3
\vsize
\bigskip
\vskip
\parskip
\message{\number\chapnum. #1} % shows chapter title on screen
\leftline{\bf Chapter \uppercase\expandafter{\romannumeral\chapnum}.\ #1}
\nobreak
\smallskip
\noindent
}
% Automatic subsection numbering
% Example: \subsection{Blah Blah Blah}
% Note that the title will be preceeded by the subsection number
\outer\def\subsection#1\par{
\global
\eqnnum=0
\advance\secnum by 1
\vskip 0pt plus.3
\vsize
\penalty-250
\vskip 0pt plus-.3
\vsize
\bigskip
\vskip
\parskip
\message{\number\chapnum.\number\secnum #1} % shows chapter title on screen
\leftline{\bf \number\chapnum.\number\secnum\ #1}
\nobreak
\smallskip
\noindent
}
% Automatic equation numbering
% Example: $$Blah Blah Blah...\eqnm$$
\def\eqnm{\global
\advance\eqnnum by 1
\eqno(\number\chapnum.\number\secnum.\number\eqnnum)
}
% Automatic footnote numbering
\def\ftnote{
\global
\advance\footnum by 1
\footnote{$^{\number\footnum}$}
}
\def\ft{
\global
\footnote{$^{\dag}$}
}
\def\ftt{
\global
\footnote{$^{\ddag}$}
}
\newcount\bnum
\bnum=0
% Automatic bibliography numbers
\def\bib{
\advance
\bnum by 1
\item{$[\number\bnum]$}
}
答案1
看来您的问题在于也保留脚注中的“双倍行距”,而您原来的宏文件特别注意用“单倍行距”排版脚注,与正文中的设置无关:我猜对了吗?
如果我猜得没错,你可能从一个文件开始,macros.tex
其中\vfootnote
宏的重新定义包含类似于以下内容的三行
\baselineskip=12pt % necessary for single space
% footnotes with double space
% text
然而,为了在脚注中获得双倍行距,仅仅在第一行更改12pt
为是不够的24pt
,因为TeXbook在第 15 章(第 125 页)的最后一段中解释道,插入内容被贡献给它们关联的框,而它们之间没有任何行间粘连;这意味着,在我们的例子中,尽管行间粘连是插入(当然)在各个脚注的行之间,但脚注和下一个脚注之间却不如此。
因此,我建议对 的定义进行以下替代修补\vfootnote
:
\def\vfootnote#1{\insert\footins\bgroup
\interlinepenalty\interfootnotelinepenalty
% It seems that you do **not** want single space footnotes with double space
% text: I assume, on the contrary, that you want your setting of
% \normalbaselines to remain in force in footnotes too.
%
% For consistency, I reset \splittopskip as well, choosing a value that will
% fit well with the standard definition of \footstrut.
\splittopskip \@ne\normalbaselineskip % kill stretch and shrink components
\advance \splittopskip -\dp\strutbox
% In your original macro file, there was probably written
% \baselineskip=12pt
% (;-) but, as said above, this is not actually necessary
% \baselineskip=24pt % necessary for single space
% % footnotes with double space
% % text
\splitmaxdepth\dp\strutbox \floatingpenalty\@MM
\leftskip\z@skip \rightskip\z@skip \spaceskip\z@skip \xspaceskip\z@skip
\textindent{#1}\footstrut\futurelet\next\fo@t}% Change \textindent for
% different footnote styles
它有两个优点;
- 该补丁会自动符合主文本中的设置,无论是
\double
、\single
还是\singlet
(但是,它与 配合得不太好\singleo
)。 - 如果脚注被拆分到各个页面,输出看起来将一致。
以下是用于测试宏的示例文件:
\input macros
% Uncomment one of the following lines to see the effect of the patch:
% \double
% \singlet
% \single
This is a main text.\ftnote{This is footnote 1. This is footnote 1. This is
footnote 1. This is footnote 1. This is footnote 1. This is footnote 1. This
is footnote 1.} Another footnote, that will be forcibly split between pages.\ftnote{If
it has to be split,\vadjust{\vskip\maxdimen} % this will force splitting
this footnote has to be at least two lines long! Some more text in the
footnote. Some more text in the footnote. Some more text in the footnote.
Some more text in the footnote. Some more text in the footnote.}
Let us allow a page break before the next footnote.
\vfill\eject
I am making an example.\ftnote{This is footnote 2.}
\bye
如果取消注释声明,则会产生以下输出\double
: