Me gustaría configurarlo memoir
para que cuando lo use \footnote{foo}
, foo
se muestre en el margen con la etiqueta adecuada y, preferiblemente, se divida en páginas.
Hay una opción \footnotesinmargin
que ofrece casi exactamente lo que necesito, sólo que está justificado. Quiero que use ragged2e
y 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 \footnotesinmargin
principalmente 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 \footnote
con la opción \footnotesinmargin
y \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 \RaggedRight
o \RaggedLeft
en 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 \footnote
las 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 memoir
clase proporciona un \mpjustification
comando, que se habilita llamando a cualquiera de:
\marginparmargin{}
outer
es el valor predeterminado, que establece notas al margen en el borde anterior. Esto también configura el siguiente comando.
\setmpjustification{}{}
\raggedleft
y \raggedright
son predeterminados, y es posible que desee cambiarlos hacia \RaggedLeft
y \RaggedRight
desde el ragged2e
paquete.
El \mpjustification
comando justificará el siguiente texto dependiendo de en qué página aparezca el texto.
Solución
Manipular el \foottextfont
comando 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}}
\footnote
Ahora establecerá el texto en el margen, justificado al ras del bloque de texto.