Выравнивание по правому краю одно- и двузначных знаков сносок с помощью KOMA

Выравнивание по правому краю одно- и двузначных знаков сносок с помощью KOMA

На основеэтот ответна мой вопросМаркер сноски в тексте должен быть надстрочным цифровым знаком, но маркер сноски в сноске должен быть полноразмерным цифровым знаком старого стиля., у меня есть следующий код для форматирования внешнего вида сносок:

\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выравнивает левый край двузначных чисел по левому полю:

введите описание изображения здесь

Если необходимо выравнивание по левому краю, то, вероятно, лучше всего использовать код с \phantomand .\llap

Связанный контент