В контексте пакета научного аппаратаednotes
Я хотел бы создать настраиваемую сноску \Bnote
, которая будет вести себя как обычная сноска LaTeX; т. е. я хотел бы ввести в текст что-то вроде
blah blah.\Bnote{a}{This is the footnote text.} Blah blah blah...
И сноска появится под \Anote
слоем и будет выглядеть примерно так:
а Это текст сноски.
В ednotes.sty
файле есть несколько команд, которые можно изменить для настройки \Bnote
, но я не смог увидеть, как получить такое поведение. Почему, спросите вы, я просто не использую стандартную утилиту сносок? Потому что она выходит НАД слоем \Anote
. Просто для ясности, поведение по умолчанию в ednote, которое я пытаюсь переопределить, заключается в использовании номера строки в качестве ссылки на сноску.
Я использую LuaLaTeX и TeXShop.
решение1
Я подозреваю, что возможно создать хак, который помещает "нормальные" сноски под "аппаратными" примечаниями ednotes
. Поскольку я не знаю, как это сделать, вот второе лучшее решение, которое
удаляет номера строк и изменяет формат метки
\Bnote
;определяет новый макрос
\Bfootnote
, который возится соfootnote
счетчиком, чтобы обеспечить (надеюсь) правильную автоматическую нумерацию нот «аппарата B».
\documentclass{article}
\usepackage[Bplain]{ednotes}
\linenumbers
\newcommand{\Bnotefmt}{%
\renewcommand*{\sameline}[1]{\linesfmt{##1}}%
\renewcommand*{\differentlines}[2]{\linesfmt{##1\textendash##2}}%
% \renewcommand*{\linesfmt}[1]{\textbf{##1}\enspace}% DELETED
\renewcommand*{\linesfmt}[1]{}% NEW
\renewcommand*{\pageandline}[2]{##1.##2}% ##1 page, ##2 line.
\renewcommand*{\repeatref}[1]{##1}% E.g., ...
\renewcommand*{\repeatref}[1]{\textnormal{/}}% ... instead.
% \renewcommand{\lemmafmt}[1]{##1\thinspace]\enskip}% DELETED
\renewcommand{\lemmafmt}[1]
{\stepcounter{footnote}\textsuperscript{##1}\addtocounter{footnote}{-1}}% NEW
\renewcommand{\lemmaellipsis}{\textsymmdots}%
\renewcommand{\notefmt}[1]{##1}%
}
\newcommand*{\Bfootnote}[1]{%
\addtocounter{footnote}{-1}%
\Bnote{\footnotemark}{#1}%
}
\begin{document}
\null\vfill% just for the example
Some text \Anote{a}{An apparatus A note.}.
Some text.\Bfootnote{An apparatus B note that behaves like a normal footnote.}
Some text.\Bfootnote{And another one.}
\end{document}
решение2
В то же время я ( ednotes
автор ) сообщил по почте: ednotes
использует manyfoot
как "движок сносок". ednotes
Настройка слоев сносок использует manyfoot
настройку , чтобы создавать слои сносок без знаков сносок. Чтобы вернуть знаки сносок "назад", я думаю, не стоит пытаться изнутри ednotes
, лучше использовать manyfoot
напрямую.
В предыдущем решении я вижу переопределение \linesfmt
. Это очень верно, несколько секунд назад я посмотрел на код и сам это обнаружил. Пол обнаружил это \lemmafmt
раньше. Это решение выше действительно выглядит так, что оно должно работать; но manyfoot
уже предлагает счетчик, который лучше использовать напрямую.
решение3
Продолжая предложение Уве, вот еще один подход, который дает тот же результат, что и метод Lockstep (хотя и без автоматических счетчиков):
\documentclass{article}
\usepackage{ednotes}
\linenumbers
\newfootnote{Z}
\newcommand\footnoteZ[2]{\Footnotemark{#1}\FootnotetextZ{}{#2}}
\begin{document}
\null\vfill% just for the example
Some text \Anote{a}{An apparatus A note.}.
Some text.\footnoteZ{1}{An apparatus B note that behaves like a normal footnote.}
Some text.\footnoteZ{2}{And another one.}
\end{document}
Команда \newfootnote{}
является частью пакета, manyfoot
загружаемого ednote
.