Notas a pie de página de memorias al margen con ragged2e

Notas a pie de página de memorias al margen con ragged2e

Me gustaría configurarlo memoirpara que cuando lo use \footnote{foo}, foose muestre en el margen con la etiqueta adecuada y, preferiblemente, se divida en páginas.

Hay una opción \footnotesinmarginque ofrece casi exactamente lo que necesito, sólo que está justificado. Quiero que use ragged2ey cambie la alineación según la página par/impar para que la nota al margen siempre esté orientada hacia el área de texto principal y permita la separación de palabras en el lado del borde.

\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}

Posible solución parcial

Recordé una bonita tesis basada en la plantilla de tesis clásica y encontré lafuenteque de hecho contiene una posible solución:

\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%
}%

Sin embargo, seguiría prefiriendo una solución específica para las memorias con la redefinición de las notas a pie de página cuando se utiliza con la opción \footnotesinmarginprincipalmente por motivos de portabilidad. Esta solución tambiénno funciona con hiperref(no hay conexión de hipertexto) yno se rompe en las páginasautomáticamente.

Respuesta1

Finalmente lo descubrí, pero no voy a aceptar esta respuesta todavía porque creo que se puede hacer mejor.

Estoy combinando el uso de \footnotecon la opción \footnotesinmarginy \sidefootnote. El primero se puede utilizar para hacer una nota al margen alineada verticalmente con la marca de referencia y está destinado a notas cortas que no se dividen entre páginas, mientras que el segundo está alineado en la parte inferior de una página, se divide entre páginas y está destinado a notas más largas. o si te estás quedando sin espacio.

Ambos son pirateados para convertirse en \RaggedRighto \RaggedLeften función de si la página en la que aparecen es par o impar mediante este código:

Modificar el comportamiento de \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

Modificar el comportamiento de \sidefootnote:

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

Modificaciones adicionales

Es posible que también quieras agregar

\letcountercounter{sidefootnote}{footnote}

si desea combinar sus contadores en uno, y

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

para modificar la apariencia de \footnotelas notas laterales para que coincidan \sidefootnote.

Finalmente, debo decir que TeX es la definición de caos.

Respuesta2

Quieres manipular el \foottextfont.

Algo como esto debería funcionar:

\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}

Sin embargo, tenga en cuenta que con un material de margen tan pesado, las posibilidades de que pueda colocar las notas correctamente son escasas. Me encontré con un problema similar con mi tesis y terminé aumentando el espacio del margen para no tener un problema como el de este ejemplo (donde la nota al pie n.° 2 termina en la página equivocada).

Respuesta3

No estoy seguro de cómo lograr que se divida entre páginas, pero como justificación hay una solución extremadamente simple.

Fondo

La memoirclase proporciona un \mpjustificationcomando, que se habilita llamando a cualquiera de:

  1. \marginparmargin{}

outeres el valor predeterminado, que establece notas al margen en el borde anterior. Esto también configura el siguiente comando.

  1. \setmpjustification{}{}

\raggedlefty \raggedrightson predeterminados, y es posible que desee cambiarlos hacia \RaggedLefty \RaggedRightdesde el ragged2epaquete.

El \mpjustificationcomando justificará el siguiente texto dependiendo de en qué página aparezca el texto.

Solución

Manipular el \foottextfontcomando no es suficiente, ya que es sólo un comando que aparece dentro de una nota al pie, y no antes de ella. Básicamente, debe configurar la justificación antes de que se publique la nota al pie. Es muy simple, simplemente coloque lo siguiente después de cualquier comando de estilo de nota al pie:

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

\footnoteAhora establecerá el texto en el margen, justificado al ras del bloque de texto.

información relacionada