ragged2e による余白の回想録脚注

ragged2e による余白の回想録脚注

を使用するときに、適切なラベルとともに余白に表示され、できればページを区切るようmemoirに設定したいと思います。\footnote{foo}foo

\footnotesinmarginほぼ必要な機能を提供してくれるオプションがありますが、両端揃えのみです。ragged2e余白の注記が常にメインのテキスト領域に揃えられ、端の側面でハイフネーションができるように、偶数ページ/奇数ページに基づいて配置を変更して使用したいと考えています。

\documentclass[12pt, draft]{memoir}
\footnotesinmargin
\usepackage{polyglossia}
\setmainlanguage{english}
\usepackage{fontspec}
\defaultfontfeatures{Ligatures=TeX}
\setmainfont[Ligatures=TeX,Numbers=OldStyle]{Minion Pro}
\usepackage{kantlipsum}

\begin{document}
\kant[1]\footnote{\kant[1]}
\kant[2]\footnote{\kant[2]}
\kant[3-5]
\end{document}

部分的な回避策の可能性

私はクラシック論文テンプレートに基づいた素晴らしい論文を思い出し、ソースそこには確かに解決策が含まれています:

\usepackage{marginnote}
\usepackage{ragged2e}
\newcommand{\sidemark}[1]{#1.{\:}}

\newcommand{\marginelement}[2][0]{%
  \marginnote{%
    \strictpagechecktrue
    \checkoddpage
    \ifoddpage%
      \RaggedRight\footnotesize%
    \else%
      \RaggedLeft\footnotesize%
    \fi%
    #2%
  }[#1\onelineskip]%
}%

\newcommand{\sidenote}[2][0]{%
  \footnotemark%
  \ignorespaces%
  \marginelement[#1]{%
    \sidemark{\thefootnote}%
    \ignorespaces#2%
  }%
  \unskip%
}%

それでも、私は、主に移植性のために、オプションを使用する場合は脚注を再定義する回想録専用のソリューションを好みます\footnotesinmargin。この回避策はまた、ハイパーリファレンスでは動作しません(ハイパーテキスト接続はありません)ページが途切れない自動的に。

答え1

ようやく理解できましたが、もっと良い方法があると思うので、この答えをまだ受け入れるつもりはありません。

\footnote私は をオプション および と\footnotesinmargin組み合わせて使用​​しています\sidefootnote。前者は、参照マークと垂直に揃った余白メモを作成するために使用でき、ページをまたがらない短いメモを対象としています。一方、後者はページの下部に揃えられ、ページをまたがって分割され、長いメモやスペースが不足している場合を対象としています。

両方とも、次のコードによって、表示されるページが偶数か奇数かに基づいて、\RaggedRightまたはになるようにハッキングされます。\RaggedLeft

の動作を変更します\footnote:

\makeatletter  % All between \makeatletter and \makeatother originally located in memoir.cls
\renewcommand{\@footnotetext}[1]{%
  \ifm@mfnmargin%   use marginpar
    \marginpar{%
    \def\baselinestretch{\m@m@footnote@spacing}%
    \reset@font
    \foottextfont
    \protected@edef\@currentlabel{%
      \csname p@footnote\endcsname\@thefnmark}%
    \color@begingroup
      \@makefntext{\ignorespaces
        \strictpagechecktrue         % <-- Start of change
  \checkoddpage
  \ifoddpage
    \scriptsize\RaggedRight
  \else
    \scriptsize\RaggedLeft
  \fi #1}%                             <-- End of change
    \color@endgroup}%
  \else% regular feet
    \insert\footins{%
    \def\baselinestretch{\m@m@footnote@spacing}%
    \reset@font
    \foottextfont
    \@preamfntext
    \hsize\columnwidth
    \protected@edef\@currentlabel{%
      \csname p@footnote\endcsname\@thefnmark}%
    \color@begingroup
      \@makefntext{%
        \rule\z@\footnotesep\ignorespaces{\foottextfont #1}%
        \@finalstrut\strutbox}%
    \color@endgroup}%
  \fi%
  \m@mmf@prepare}
\makeatother
\footnotesinmargin

の動作を変更します\sidefootnote:

\renewcommand{\sidefoottextfont}{%
  \strictpagechecktrue
  \checkoddpage
  \ifoddpage
    \scriptsize\RaggedRight
  \else
    \scriptsize\RaggedLeft
  \fi
 }%

追加の変更

追加したいもの

\letcountercounter{sidefootnote}{footnote}

それらのカウンターを1つにまとめたい場合、

\setlength{\footmarkwidth}{0em}
\setlength{\footmarksep}{-\footmarkwidth}
\setlength{\footparindent}{1em}

\footnote一致するようにサイドノートの外観を変更します\sidefootnote

最後に、TeX はまさに混沌の定義であると言わざるを得ません。

答え2

を操作したいのです\foottextfont

次のような方法でうまくいくはずです:

\documentclass[12pt, draft]{memoir}
\usepackage{ragged2e}
\footnotesinmargin
\renewcommand{\foottextfont}{%
  \strictpagechecktrue
  \checkoddpage
  \ifoddpage
    \scriptsize\RaggedRight
  \else
    \scriptsize\RaggedLeft
  \fi
 }%
\usepackage{marginfix}
\usepackage{polyglossia}
\setmainlanguage{english}
\usepackage{fontspec}
\defaultfontfeatures{Ligatures=TeX}
\setmainfont[Ligatures=TeX,Numbers=OldStyle]{Minion Pro}
\usepackage{kantlipsum}

\begin{document}
\kant[1]\footnote{\kant[1]}
\kant[2]\footnote{\kant[2]}
\kant[3-5]
\end{document}

ただし、このように余白の素材が厚いと、注釈を正しく配置できる可能性は低いことに注意してください。私は論文で同様の問題に遭遇し、この例のような問題 (脚注 2 が間違ったページに表示される) が発生しないように、余白スペースを増やすことになりました。

答え3

複数のページにまたがって改ページする方法はわかりませんが、位置揃えには非常に簡単な修正方法があります。

背景

このmemoirクラスは\mpjustification、次のいずれかを呼び出すことによって有効になるコマンドを提供します。

  1. \marginparmargin{}

outerデフォルトでは、余白の注釈が前端に設定されます。これにより、以下のコマンドも設定されます。

  1. \setmpjustification{}{}

\raggedleftおよび はデフォルトですが、パッケージから変更すること\raggedrightもできます。\RaggedLeft\RaggedRightragged2e

この\mpjustificationコマンドは、テキストが表示されるページに応じて、後続のテキストを揃えます。

解決

コマンドを操作するだけ\foottextfontでは不十分です。これは脚注内に表示されるコマンドであり、脚注の前に表示されるコマンドではないからです。基本的に、脚注が出力される前に、配置を設定する必要があります。これは非常に簡単で、脚注のスタイル設定コマンドの後に以下を追加するだけです。

\let\oldfootnot\footnote
\renewcommand*{\footnote}[1]{\oldfootnote{\mpjustification#1}}

\footnoteテキストを余白に設定し、タイプ ブロックにぴったり揃えます。

関連情報