Aquí hay un MWE:
\documentclass[12pt]{scrartcl}
%%Footnote Mods%%
\deffootnote[1.8em]{0pt}{1.6em}{\textsuperscript{\thefootnotemark}}
%%%%%%
\begin{document}
Sample text%
%
\footnote{Footnote text}
%
\end{document}
¿Cómo alineo la parte superior de la marca de la nota al pie con la parte superior del texto de la nota al pie (en MWE, quiero que la parte superior del "1" quede al mismo nivel que la "F")?
Nuevo error: al implementar la (excelente) solución de Werner, encontré un error al intentar agregar algo con un "\" en el texto de la nota al pie.
Observar:
\documentclass[12pt]{scrartcl}% http://ctan.org/pkg/koma-script
\usepackage{xstring}% http://ctan.org/pkg/xstring
\usepackage{etoolbox}% http://ctan.org/pkg/etoolbox
\makeatletter
% Patch \scr@saved@footnotetext to extract first character of footnote and store in \fnfirstchar
\patchcmd{\scr@saved@footnotetext}% <cmd>
{\@makefntext}% <search>
{\StrLeft{#1}{1}[\fnfirstchar]\@makefntext}% <replace>
{}{}% <success><failure>
\begin{document}
\makeatletter
\deffootnote[1.8em]{0pt}{1.6em}{%
\settoheight{\@tempdima}{\fnfirstchar}% Height of first character in footnote
\settoheight{\@tempdimb}{$\scriptstyle\thefootnotemark$}% Height of footnote mark
\raisebox{\dimexpr\@tempdima-\@tempdimb}{$\scriptstyle\thefootnotemark$}}
\makeatother
Sample text\footnote{Footnote text: \S modified}.
\end{document}
Respuesta1
La respuesta breve a esto es que no siempre es posible una "ubicación exacta". ¿Por qué? Es importante tener en cuenta que TeX funciona con cuadros y no con caracteres. Cada carácter tiene un cuadro delimitador que define su tamaño/estructura horizontal y vertical. Por lo tanto, la alineación de elementos sólo se puede realizar hasta la precisión de estas cajas. En ese sentido, lo mejor que puedes hacer probablemente sea:
\makeatletter
\deffootnote[1.8em]{0pt}{1.6em}{%
\settoheight{\@tempdima}{F}% Height of F
\settoheight{\@tempdimb}{$\scriptstyle\thefootnotemark$}% Height of footnote mark
\raisebox{\dimexpr\@tempdima-\@tempdimb}{$\scriptstyle\thefootnotemark$}}
\makeatother
Esto almacena la altura F
y una \scriptstyle
marca de nota al pie en \@tempdima
y \@tempdimb
, respectivamente (estos son registros reutilizables). Luego eleva la marca de la nota al pie (dada por \thefootnotemark
) a la altura correcta. El resultado no es el esperado, debido a las "restricciones del boxeo". Aquí hay un ejemplo mínimo que muestra las diferentes salidas, solo como ejemplo. También se actualiza para capturar el primer carácter de la nota al pie (en lugar de fijarlo en el carácter F
):
\documentclass[12pt]{scrartcl}% http://ctan.org/pkg/koma-script
\usepackage{xstring}% http://ctan.org/pkg/xstring
\usepackage{etoolbox}% http://ctan.org/pkg/etoolbox
\makeatletter
% Patch \scr@saved@footnotetext to extract first character of footnote and store in \fnfirstchar
\patchcmd{\scr@saved@footnotetext}% <cmd>
{\@makefntext}% <search>
{\StrLeft{#1}{1}[\fnfirstchar]\@makefntext}% <replace>
{}{}% <success><failure>
\begin{document}
% Original footnote modification
\deffootnote[1.8em]{0pt}{1.6em}{\textsuperscript{\thefootnotemark}}
Sample text\footnote{Footnote text: original}.
\addtocounter{footnote}{-1}% Restore counter value
\makeatletter
\deffootnote[1.8em]{0pt}{1.6em}{%
\settoheight{\@tempdima}{\fnfirstchar}% Height of first character in footnote
\settoheight{\@tempdimb}{$\scriptstyle\thefootnotemark$}% Height of footnote mark
\raisebox{\dimexpr\@tempdima-\@tempdimb}{$\scriptstyle\thefootnotemark$}}
\makeatother
Sample text\footnote{Footnote text: modified}.
\end{document}
xstring
captura el primer carácter de la nota al pie (a través de \StrLeft
) y lo almacena en \fnfirstchar
, mientrasetoolbox
parchea el comando apropiado insertando la extracción en el lugar correcto (despuésEl texto de la nota a pie de página ha sido leído, peroantesestá siendo tipografiado).
A modo de ilustración, encuadrar la marca de la nota al pie y F
el carácter muestra que están colocados a la misma altura (como lo ve TeX):
Respuesta2
Una forma menos técnica pero más tipográfica podría ser utilizar el paquetesuperiors
. Citando del manual:
El comportamiento predeterminado de los marcadores de notas al pie y al final en LaTeX es imprimir el número como si fuera un superíndice matemático. En la mayoría de los casos, esto significa que el tamaño es aproximadamente el 70% de la figura normal del forro y la parte superior está algo por encima de la parte superior de las letras mayúsculas. En muchos casos, la cifra en superíndice simplemente se reduce en todas las dimensiones en aproximadamente un 70%, lo que las hace parecer más bien delgadas, aunque demasiado altas. [...]
Como alternativa, se pueden usar figuras superiores: figuras pequeñas, generalmente del 50 % al 60 % de la altura de las figuras alineadas, como 1234567890. Comúnmente, están diseñadas para que la parte superior de los números esté alineada con la parte superior de las letras mayúsculas. en la fuente, aunque a veces un poco más arriba, correspondiente a la altura del ascendente.
\documentclass[12pt]{scrartcl}
%%Footnote Mods%%
\deffootnote[1.8em]{0pt}{1.6em}{\textsu{\thefootnotemark}\,}
%%%%%%
\usepackage{newtxtext}
\usepackage[supstfm=ntxsups,supspaced=.06em]{superiors}
\begin{document}
Sample text%
%
\footnote{Footnote text}
%
\end{document}
Además, la opción del paquete raised=<dim>
permitiría ajustar la posición vertical de los números en superíndice. Por supuesto, la posición vertical no dependería de los siguientes personajes. (Pero ¿qué pasa si el siguiente token es una a
secuencia pequeña o de control de todos modos?)
Respuesta3
No vi la necesidad de cargar ningún paquete en la solución de Werner. Amboscaja de herramientasycadena xSon paquetes relativamente grandes.
\documentclass[12pt]{scrartcl}
\makeatletter
\begingroup
\let\@tempa\scr@saved@footnotetext
\edef\@tempa{\endgroup
\def\noexpand\scr@saved@footnotetext##1{%
\unexpanded\expandafter{\@tempa{#1}}%
\unexpanded{\fngetfirstchar\fnfirstchar{#1}}%
}%
}
\@tempa
\def\fngetfirstchar#1#2{%
\begingroup
\def\@tempa##1##2\fn@nil{\endgroup\gdef#1{##1}}%
\expandafter\@tempa#2\fn@nil
}
\def\usenewfootnotestyle{%
\deffootnote[1.8em]{0pt}{1.6em}{%
\begingroup
\let\s\ensuremath
\settoheight{\@tempdima}{\fnfirstchar}%
\settoheight{\@tempdimb}{\s{\scriptstyle\thefootnotemark}}%
\raisebox{\dimexpr\@tempdima-\@tempdimb}{\s{\scriptstyle\thefootnotemark}}%
\endgroup
}%
}
\makeatother
\begin{document}
% Original footnote style:
\deffootnote[1.8em]{0pt}{1.6em}{\textsuperscript{\thefootnotemark}}
Sample text\footnote{Footnote text: original}.
\par
\addtocounter{footnote}{-1}
% Change footnote style:
\usenewfootnotestyle
Sample text\footnote{Footnote text: modified}.
\end{document}