
На основеэтот ответна мой вопросМаркер сноски в тексте должен быть надстрочным цифровым знаком, но маркер сноски в сноске должен быть полноразмерным цифровым знаком старого стиля., у меня есть следующий код для форматирования внешнего вида сносок:
\documentclass{article}
\usepackage{fontspec} % Unicode
\setmainfont{Libertinus Serif}
\newfontfamily\footfont{Libertinus Serif}[% for footnote markers in the footnote
Numbers = {Monospaced, OldStyle}]
\usepackage{scrextend} % KOMA script
\newcommand*\footnotemarkspace{1em} % set distance of the footnote text from the margin
\deffootnote{\footnotemarkspace}% use distance from above
{\parindent}% paragraph indent in footnotes (footnotes should never have paragraphs!)
{\makebox[\footnotemarkspace][l]{\footfont\thefootnotemark.}} % footfont with period for footnote marks in footnote
\begin{document}
Foobar\footnote{First footnote}\footnote{Second footnote}\footnote{Third footnote}\footnote{Fourth footnote}\footnote{Fifth footnote}\footnote{Sixth footnote}\footnote{Seventh footnote}\footnote{Eighth footnote}\footnote{Ninth footnote}\footnote{Tenth footnote}\footnote{Eleventh footnote}\footnote{Twelfth footnote}
\end{document}
Проблема возникает, когда я дохожу до десятой сноски в тексте, т.е. когда знак сноски меняется с одной цифры на две. Вывод кода выше следующий:
Проблема в том, что footnotemarkspace
задается расстояние от левого поля до текста сноски, при этом не задан параметр для задания расстояния от правого края знака сноски до текста.
Лучшим решением, как мне кажется, было бы выровнять знаки сносок по правому краю, так чтобы одинарные цифры имели тот же правый край, что и двузначные, что позволило бы обеспечить одинаковое расстояние от правого края знака сноски до текста. В идеале левый край двузначного знака сноски должен совпадать с левым полем текстовой области документа.
Как мне этого добиться?Тот же вопрос уже задавался, но в этом случае ни вопрос, ни предлагаемые ответы не используют скрипт KOMA, который я использую в данном случае.
решение1
Вам нужно увеличить \footnotemarkspace
. Затем вы можете использовать опцию r
для \makebox
команды в последнем аргументе \deffootnote
.
\documentclass{article}
\usepackage{fontspec} % Unicode
\setmainfont{Libertinus Serif}
\newfontfamily\footfont{Libertinus Serif}[% for footnote markers in the footnote
Numbers = {Monospaced, OldStyle}]
\usepackage{scrextend} % KOMA script
\KOMAoptions{footnotes=multiple}% maybe you want to use this option?
\newcommand*\footnotemarkspace{1.5em} % set distance of the footnote text from the margin
\deffootnote{\footnotemarkspace}% use distance from above
{\parindent}% paragraph indent in footnotes (footnotes should never have paragraphs!)
{\makebox[\footnotemarkspace][r]{\thefootnotemark.\ }} % footfont with period for footnote marks in footnote
\begin{document}
Foobar
\footnote{First footnote}\footnote{Second footnote}%
\footnote{Third footnote}\footnote{Fourth footnote}%
\footnote{Fifth footnote}\footnote{Sixth footnote}%
\footnote{Seventh footnote}\footnote{Eighth footnote}%
\footnote{Ninth footnote}\footnote{Tenth footnote}%
\footnote{Eleventh footnote}\footnote{Twelfth footnote}
\end{document}
Или вы можете использовать что-то вроде
\makebox[\footnotemarkspace][l]{\footfont\phantom{99}\llap{\thefootnotemark}.}
Код:
\documentclass{article}
\usepackage{fontspec} % Unicode
\setmainfont{Libertinus Serif}
\newfontfamily\footfont{Libertinus Serif}[% for footnote markers in the footnote
Numbers = {Monospaced, OldStyle}]
\usepackage{scrextend} % KOMA script
\KOMAoptions{footnotes=multiple}% maybe you want to use this option?
\newcommand*\footnotemarkspace{1.5em} % set distance of the footnote text from the margin
\deffootnote{\footnotemarkspace}% use distance from above
{\parindent}% paragraph indent in footnotes (footnotes should never have paragraphs!)
{\makebox[\footnotemarkspace][l]{\footfont\phantom{99}\llap{\thefootnotemark}.}} % footfont with period for footnote marks in footnote
\begin{document}
Foobar
\footnote{First footnote}\footnote{Second footnote}%
\footnote{Third footnote}\footnote{Fourth footnote}%
\footnote{Fifth footnote}\footnote{Sixth footnote}%
\footnote{Seventh footnote}\footnote{Eighth footnote}%
\footnote{Ninth footnote}\footnote{Tenth footnote}%
\footnote{Eleventh footnote}\footnote{Twelfth footnote}
\end{document}
РЕДАКТИРОВАНО Сверре
Я просто хочу продемонстрировать, что в первом примере кода нет способа выровнять первую цифру в двузначном знаке сноски по левому краю текстовой области документа, поэтому это нужно настроить вручную:
В то время как второй пример кода с \phantom
и \llap
выравнивает левый край двузначных чисел по левому полю:
Если необходимо выравнивание по левому краю, то, вероятно, лучше всего использовать код с \phantom
and .\llap