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}

카운터를 하나로 결합하고 싶다면

\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이제 여백에 텍스트를 설정하고 유형 블록에 맞춰 정렬합니다.

관련 정보