![ulem 与 (r)eledmac 结合使用的舒适解决方案](https://linux22.com/image/352246/ulem%20%E4%B8%8E%20(r)eledmac%20%E7%BB%93%E5%90%88%E4%BD%BF%E7%94%A8%E7%9A%84%E8%88%92%E9%80%82%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88.png)
前言:抱歉,文章太长了。通过写这篇文章,我解决了导致这个问题的一个早期问题。
在使用 ulem 包的下划线可以打破脚注ulem
Ulrike Fischer 和 Heiko Oberdiek 回答了有关包装和组合的问题\footnote
。
我现在面临一个非常相似的问题,但是使用来自包的脚注宏(r)eledmac
。
我该如何解决以下问题:
\documentclass{book}
\usepackage{ulem}
\usepackage[noreledmac]{eledmac} % or reledmac
\begin{document}
This is \uline{a test containing\footnoteA{A simple footnote.} a simple footnote.}
\end{document}
使用链接问题中的方法我可以使用:
This is \uline{a test containing\mbox{\footnoteAmark}}%
\footnoteAtext{A simple footnote.}\uline{ a simple footnote.}
但是这两个宏\footnoteAmark
和\footnoteAtext
是什么样子的呢?我从eledmac
手册开始,取出了定义的相关部分\footnoteA
:
\begingroup%
\prepare@prenotesX{#1}%
\newcommand{\content}{##1}%
\stepcounter{footnote#1}%
\protected@csxdef{@thefnmark#1}{\csuse{thefootnote#1}}%
\csuse{@footnotemark#1}%
\csuse{vfootnote#1}{#1}{\expandonce\content}\m@mmf@prepare%
\endgroup%
现在我将其分为两个新的定义:
\makeatletter
\newcommand{\footnoteAmark}{%
\begingroup%
\prepare@prenotesX{A}%
\stepcounter{footnoteA}%
\protected@csxdef{@thefnmarkA}{\csuse{thefootnoteA}}%
\csuse{@footnotemarkA}%
\endgroup%
}%
%
\newcommand{\footnoteAtext}[1]{%
\begingroup%
\csuse{vfootnoteA}{A}{\expandonce{#1}}\m@mmf@prepare%
\endgroup%
}%
\makeatother
它确实有效。但是,由于我将其用作自动化过程的一部分,有没有办法定义一些\footnoteAVar
一起发挥魔力的东西?
This is \uline{a test containing\footnoteAVar{A simple footnote.} a simple footnote.}
我的方法
\newcommand{\footnoteAVar}[1]{%
\mbox{\footnoteAmark}%
\egroup% to end \uline
\footnoteAtext{#1}%
\uline\bgroup%
}%
导致页面底部缺少脚注文本:
\documentclass{book}
\usepackage{ulem}
\usepackage[noreledmac]{eledmac} % or reledmac
\makeatletter
\newcommand{\footnoteAmark}{%
\begingroup%
\prepare@prenotesX{A}%
\stepcounter{footnoteA}%
\protected@csxdef{@thefnmarkA}{\csuse{thefootnoteA}}%
\csuse{@footnotemarkA}%
\endgroup%
}%
%
\newcommand{\footnoteAtext}[1]{%
\begingroup%
\csuse{vfootnoteA}{A}{\expandonce{#1}}\m@mmf@prepare%
\endgroup%
}%
\newcommand{\footnoteAVar}[1]{%
\mbox{\footnoteAmark}%
\egroup% to end \uline
\footnoteAtext{#1}%
\uline\bgroup%
}%
\makeatother
\begin{document}
This is \uline{a test containing\mbox{\footnoteAmark}}\footnoteAtext{A
simple footnote.}\uline{ a simple footnote.}
This is \uline{a test containing\footnoteAVar{A simple footnote.} a
simple footnote.}
\end{document}
我猜我的分组有问题。有人知道缺失的链接吗?
答案1
感谢 Martin Work,即将在 CTAN 上快速发送的 reledmac 2.19.0 版本提供了两个新命令 :\footnoteAmark
和\footnoteAtext
:
\documentclass{article}
\usepackage[noend, noeledsec]{reledmac}
\usepackage{reledpar}
\usepackage{ulem}
\begin{document}
This is \uline{a test containing\mbox{\footnoteAmark}}\footnoteAtext{A
simple footnote.}\uline{ a simple footnote.}
\end{document}