Aqui está um MWE:
\documentclass[12pt]{scrartcl}
%%Footnote Mods%%
\deffootnote[1.8em]{0pt}{1.6em}{\textsuperscript{\thefootnotemark}}
%%%%%%
\begin{document}
Sample text%
%
\footnote{Footnote text}
%
\end{document}
Como alinho a parte superior da marca da nota de rodapé com a parte superior do texto da nota de rodapé (no MWE, quero que a parte superior do “1” fique alinhada com o “F”)?
Novo erro: ao implementar a (ótima) solução de Werner, encontrei um erro ao tentar adicionar qualquer coisa com um "\" no texto da nota de rodapé.
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}
Responder1
A resposta curta para isso é que o “posicionamento exato” nem sempre é possível. Por que? É importante notar que o TeX funciona com caixas e não com caracteres. Cada caractere possui uma caixa delimitadora que define seu tamanho/estrutura horizontal e vertical. Assim, o alinhamento dos elementos só pode ser feito até a precisão dessas caixas. Nesse sentido, o melhor que você pode fazer é provavelmente:
\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
Isso armazena a altura F
e uma \scriptstyle
marca de nota de rodapé em \@tempdima
e \@tempdimb
, respectivamente (estes são registros de rascunho). Em seguida, eleva a marca de rodapé (dada por \thefootnotemark
) para a altura correta. O resultado não é o esperado, devido às “restrições do boxe”. Aqui está um exemplo mínimo mostrando as diferentes saídas, apenas como exemplo. Também é atualizado para capturar o primeiro caractere da nota de rodapé (em vez de fixá-lo no caractere 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 o primeiro caractere da nota de rodapé (via \StrLeft
) e o armazena em \fnfirstchar
, enquantoetoolbox
corrige o comando apropriado inserindo a extração no local certo (depoiso texto da nota de rodapé foi lido, masantesestá sendo digitado).
Como ilustração, colocar a marca da nota de rodapé e F
o caractere mostra que eles estão colocados na mesma altura (como o TeX vê):
Responder2
Uma forma menos técnica, mas mais tipográfica, seria usar o pacotesuperiors
. Citando o manual:
O comportamento padrão dos marcadores de notas de rodapé e notas finais no LaTeX é imprimir o número como se fosse um sobrescrito matemático. Na maioria dos casos, isso significa que o tamanho é cerca de 70% do valor normal do forro e o topo está um pouco acima do topo das letras maiúsculas. Em muitos casos, o valor sobrescrito é simplesmente reduzido em todas as dimensões em cerca de 70%, fazendo-as parecer um tanto pequenas, embora excessivamente altas. [...]
Como alternativa, pode-se usar algarismos superiores - algarismos pequenos, geralmente de 50% a 60% da altura dos algarismos de revestimento, como 1234567890. Geralmente, eles são projetados de forma que o topo dos números fique alinhado com o topo das letras maiúsculas. na fonte, embora às vezes um pouco mais alta, correspondendo à altura do 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}
Além disso, a opção de pacote raised=<dim>
permitiria ajustar a posição vertical dos números sobrescritos. É claro que a posição vertical não dependeria dos caracteres seguintes. (Mas e se o token a seguir for uma a
sequência pequena ou de controle?)
Responder3
Não vi necessidade de carregar nenhum pacote na solução do Werner. Ambosetoolboxecadeia de caracteressão pacotes 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}