我想進行設置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
主要是為了可移植性。此解決方法還不適用於 hyperref(沒有超文本連接)和不會跨頁自動地。
答案1
我終於弄清楚了,但我還不會接受這個答案,因為我認為它可以做得更好。
\footnote
我將與選項\footnotesinmargin
and結合使用\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}
如果你想將他們的計數器合而為一,並且
\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
命令,可以透過呼叫以下任一命令來啟用該命令:
\marginparmargin{}
outer
是預設設置,在前緣設定頁邊距註釋。這也設定了以下命令。
\setmpjustification{}{}
\raggedleft
和\raggedright
是預設值,您可能希望在套件中進行\RaggedLeft
更改。\RaggedRight
ragged2e
該\mpjustification
命令將根據文字顯示的頁面來調整以下文字。
解決方案
操作\foottextfont
命令是不夠的,因為這只是出現在腳註內而不是之前的命令。基本上,您需要在輸出腳註之前設定理由。非常簡單,只需將以下內容放在任何腳註樣式命令之後即可:
\let\oldfootnot\footnote
\renewcommand*{\footnote}[1]{\oldfootnote{\mpjustification#1}}
\footnote
現在將在邊距中設置文本,對齊類型塊。