使用自定义论文类使 footnotesep 与行距相同

使用自定义论文类使 footnotesep 与行距相同

我开始使用一种在我所在的大学 (UCL) 中广泛流传的定制 (且非常古老) 论文格式来撰写论文。它似乎最初是由计算机科学系的一位教授编写的,但由于它是唯一的一种,因此它已被不同部门的不同人员改编,产生了我想象中在不同地方的相当令人生畏的各种版本。

无论如何,我的问题在于脚注的间距。

简而言之,问题在于线的间距之内脚注与间距不同之间不同的脚注,导致同一页上的两个脚注(其中至少一个有多行)的行分布不规则。

以下是 MWE:

\documentclass{ucl_thesis}

\begin{document}

Some text.
\footnote{A short footnote on one line.}

Some more text.
\footnote{A longer footnote so that it spans multiple lines.
A longer footnote so that it spans multiple lines.
A longer footnote so that it spans multiple lines.}

\end{document}

在此处输入图片描述

为了编译它,你需要两个文件:ucl_thesis.clsucl_a4.sty

我做了什么

ucl_thesis.cls修改行距的部分在第106行:

\renewcommand \baselinestretch{1.5}

并根据这个答案@jon 表示,“通常不推荐这样做”,因为“LaTeX 提供了\linespread,可能更好用”。但是,将上面引用的行改为

\setlength{\footnotesep}{1.5\baselineskip}%
\linespread{1.5}\selectfont%

按照他的回答并没有解决问题:脚注之间的间距现在是太大

在此处输入图片描述

在我开始手动调整这个直到错误太小而我看不见之前,我想我会在这里问一下。

答案1

(这个答案假设你希望脚注中的间距大于单倍行距,这通常看起来不太好看,但通常是大学“风格”制定者所要求的。)

事情是这样的:你的班级设置(第 106 行)

\renewcommand \baselinestretch{1.5}

现在,如果您使用默认的 10pt,则意味着脚注字体大小为 8pt,基线间距为 9.5pt。我们将其拉伸 1.5。9.5 x 1.5 = 14.25pt。

通过添加来测试

\the\baselineskip 

在脚注中。您应该得到 14.25pt。

现在设置(正如我建议的那样)

\setlength{\footnotesep}{\baselineskip}

使footnotesep相当于baselineskip常规文本的 (即 12pt),但我认为您希望它是 10pt。因此您可以直接设置它:

\setlength{\footnotesep}{10pt}

编辑:

模仿 LaTeX2e 设置的一个解决方案是将其添加到您的序言中(根据我在下面的评论中建议的比例):

\makeatletter
\ifcase \@ptsize
    \setlength{\footnotesep}{0.83125\baselineskip}
\or
    \setlength{\footnotesep}{0.85555\baselineskip}
\or
    \setlength{\footnotesep}{0.84\baselineskip}
\fi
\makeatother

或者,如果您更喜欢更明确的设置(不完全相同):

\makeatletter
\ifcase \@ptsize
    \setlength{\footnotesep}{10pt}
\or
    \setlength{\footnotesep}{11pt}
\or
    \setlength{\footnotesep}{12pt}
\fi
\makeatother 

这将根据您使用的标准字体大小选择 10、11 还是 12pt 进行自动重新计算。

以下是基于上面给出的示例:

\documentclass[10pt]{ucl_thesis}

\makeatletter
\ifcase \@ptsize
    \setlength{\footnotesep}{0.83125\baselineskip}
\or
    \setlength{\footnotesep}{0.85555\baselineskip}
\or
    \setlength{\footnotesep}{0.84\baselineskip}
\fi
\makeatother

\makeatletter
\ifcase \@ptsize
    \setlength{\footnotesep}{10pt}
\or
    \setlength{\footnotesep}{11pt}
\or
    \setlength{\footnotesep}{12pt}
\fi
\makeatother

\usepackage{xcolor}
\usepackage[grid, gridunit=pt,
  gridcolor=red!20,
  subgridcolor=blue!20]{eso-pic}

\usepackage{lipsum}

\begin{document}

\the\baselineskip

Some text.
\footnote{\the\baselineskip. The baselinestretch factor is: \baselinestretch. A short footnote on one line.}

Some more text.
\footnote{%
\the\footnotesep.
A longer footnote so that it spans multiple lines.
A longer footnote so that it spans multiple lines.
A longer footnote so that it spans multiple lines.
A longer footnote so that it spans multiple lines.
A longer footnote so that it spans multiple lines.
A longer footnote so that it spans multiple lines.
A longer footnote so that it spans multiple lines.}
\footnote{A short footnote on one line.}
\footnote{A short footnote on one line.}

\lipsum

\end{document}

答案2

尝试将其添加到您的序言中:

\let\oldfootnote\footnote
\renewcommand{\footnote}[1]{%
  \begingroup%
  \linespread{1}% 
  \oldfootnote{#1}%
  \endgroup%
}

因此你的修改后的 MWE

\documentclass{ucl_thesis}

\let\oldfootnote\footnote
\renewcommand{\footnote}[1]{%
  \begingroup%
  \linespread{1}%
  \oldfootnote{#1}%
  \endgroup%
}

\begin{document}

Some text.
\footnote{A short footnote on one line.}

Some more text.
\footnote{A longer footnote so that it spans multiple lines.
A longer footnote so that it spans multiple lines.
A longer footnote so that it spans multiple lines.}

\end{document} 

在脚注中产生正确的行距,而不改变正常文本中的行距

在此处输入图片描述

相关内容