footmisc/ednotes 中的 para 选项影响行距

footmisc/ednotes 中的 para 选项影响行距

有一个先前的讨论这里是关于使用 footmisc 包的 para 选项时的行距。在使用 footmisc 或更准确地说,基于它构建的 ednotes 包时,我遇到了一个相关但略有不同的问题。也就是说,我希望我的文本正文(批判版)是双倍行距,但脚注是单倍行距。当我的第二个脚注流不使用 [para] 选项时,它可以正常工作。这是一个 MWE:

\documentclass{article}
\usepackage{setspace}
\usepackage[para]{ednotes}
\usepackage{kantlipsum}

\DeclareNewFootnote{B}

\def\mylinespacing{1}

\newcommand{\NOTE}[1]{%
    \begingroup
    \linespread{\mylinespacing}
    \footnoteB{#1}
    \endgroup
    }%


\begin{document}

\begin{linenumbers} 

\doublespacing

\kant[1]
Some text here\Anote{first foot note} some more text here\NOTE{\kant[1]} and more text here\NOTE{\kant[1]}

\kant[1]
Some text here\Anote{first foot note} some more text here\NOTE{\kant[1]} and more text here\NOTE{\kant[1]}

\end{linenumbers}

\end{document}

但是,我希望两个脚注流都使用 para 选项,这样新的脚注就可以与前一个脚注在同一行上。当我为行 \DeclareNewFootnote{B} 添加 [para] 选项时,例如 \DeclareNewFootnote[para]{B} — 然后我定义的单倍行距在第一页上是看不到的,但奇怪的是,它在第​​二页上却能看到。

如能得到任何帮助我将非常感激。

答案1

实际上只有两行的肮脏伎俩:

\documentclass{article}
\usepackage{setspace}
\usepackage[para]{ednotes}
\DeclareNewFootnote[para]{B}
\usepackage{kantlipsum}

\makeatletter
%% May still be useful if there are many of them:
\newenvironment{editspacing} 
               {\linenumbers\begingroup\doublespacing}
               {\endlinenumbers\restore@spacing}
%% ... \begingroup and \restore@spacing probably needed only 
%% if non-edition text follows on same page.
\makeatother

%% new dirty trick:
\let\Ofootnotesize\footnotesize
\def\footnotesize{\let\baselinestretch\empty\Ofootnotesize}
%% \Ofootnotesize usable for double-spaced footnote size
%% \small and other sizes still affected by \doublespacing

\begin{document}
 \begin{editspacing}

  \kant[1]
  Some text \Anote{here}{first foot note} some more text here\footnoteB{\kant[1]} and more text here.\footnoteB{\kant[1]}

  \kant[1]
  Some text \Anote{here}{first foot note} some more text here\footnoteB{\kant[1]} and more text here.\footnoteB{\kant[1]}
 \end{editspacing}

\end{document}

欢呼——Uwe

答案2

我最近的解决方案受到@corporal 已删除建议的启发。\doublespacing用于\noormalsize可能具有明显有限的范围并且不会影响任何其他字体大小的基线跳过:

\documentclass{article}
\usepackage{setspace}
\usepackage[para]{ednotes}
\DeclareNewFootnote[para]{B}
\usepackage{kantlipsum}

\newcommand*{\noormalsize}{\normalsize\doublespacing\linespread{}}
\makeatletter
\newenvironment{editspacing}
               {\linenumbers\begingroup\noormalsize}
%%%%%%%%%%%%%%%             ^ to match v
               {\endlinenumbers\restore@spacing}
\makeatother

\begin{document}
%\begin{linenumbers}
%\noormalsize
 \begin{editspacing}

  \kant[1]
  Some text \Anote{here}{first foot note} some more text here\footnoteB{\kant[1]} and more text here.\footnoteB{\kant[1]}

  \kant[1]
  Some text \Anote{here}{first foot note} some more text here\footnoteB{\kant[1]} and more text here.\footnoteB{\kant[1]}
%\end{linenumbers}
 \end{editspacing}

\end{document}

再见了 —— Uwe,ednotes 的维护者。

答案3

您使用的软件包的行为方式存在一些问题。可能是一些错误。如果您尝试将值更改为,\def\mylinespacing{1}似乎\def\mylinespacing{2}没有任何效果。要解决您的问题,请尝试以下操作:替换\doublespacing\setlength{\baselineskip}{20.00409pt}。您不需要该setspace软件包。为了解释我如何知道值 20.00409pt,我使用了\showthe\baselineskipafter命令\doublespacing,日志文件中显示了 20.00409pt,因此如果您使用的字体大小不是 10pt,则需要不同的值。

答案4

一个近乎干净的黑客攻击,展示了可以做什么:

\documentclass{article}
\usepackage{setspace}
\usepackage[para]{ednotes}
\DeclareNewFootnote[para]{B}
\usepackage{kantlipsum}

\makeatletter
\newcommand*{\nobaselinestretch}{%
    \let\baselinestretch\@empty} %% or what you prefer
%% 
%% Rather than redefining \@footnotetext and \@xfloat, 
%% setspace could use \reset@font as the hook it at 
%% present cries for, as \reset@font is told to be used 
%% "in situations where typesetting is done in a new 
%% visual context (e.g. in a footnote)" in the LaTeX 
%% source documentation. In footnote macros, \fontsize
%% usually appears directly after \reset@font ... 
\def\reset@font{\nobaselinestretch \normalfont}
%% ... it is only missing in \MFL@processpara.
%% Hacking manyfoot.sty without many code lines:
\let\theMFL@joinnotes\MFL@joinnotes
\def\MFL@joinnotes{\nobaselinestretch \theMFL@joinnotes}
\makeatother

\begin{document}
 \begin{linenumbers}

  \doublespacing

  \kant[1]
  Some text \Anote{here}{first foot note} some more text here\footnoteB{\kant[1]} and more text here.\footnoteB{\kant[1]}

  \kant[1]
  Some text \Anote{here}{first foot note} some more text here\footnoteB{\kant[1]} and more text here.\footnoteB{\kant[1]}
 \end{linenumbers}
\end{document}

欢呼——Uwe

相关内容