¿Hay alguna forma de alinear la marca de la nota al pie con la parte superior del texto de la nota al pie?

¿Hay alguna forma de alinear la marca de la nota al pie con la parte superior del texto de la nota al pie?

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 Fy una \scriptstylemarca de nota al pie en \@tempdimay \@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):

ingrese la descripción de la imagen aquí

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

xstringcaptura el primer carácter de la nota al pie (a través de \StrLeft) y lo almacena en \fnfirstchar, mientrasetoolboxparchea 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 Fel carácter muestra que están colocados a la misma altura (como lo ve TeX):

ingrese la descripción de la imagen aquí

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}

ingrese la descripción de la imagen aquí

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

información relacionada