在 mdframed 中使用 `\renewcommand\footnoterule{}`

在 mdframed 中使用 `\renewcommand\footnoterule{}`

我正在尝试在 mdframed 环境中删除脚注的分隔线。我尝试\renewcommand\footnoterule{}在 mdframed 环境中使用,但这似乎不起作用。

当我不得不改变脚注符号时,我必须使用一些这样的临时值:

\renewcommand{\thempfootnote}{\color{white}{$\dagger$}} 

有没有类似的温度值\footnoterule?如果我可以删除黑线或将其变为白色就好了……


梅威瑟:

\documentclass[a4paper,10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{color}
\usepackage{xcolor}

\usepackage[framemethod=TikZ]{mdframed}
\mdfdefinestyle{vprasanje}{%
    font=\normalsize,
    linecolor=red,
    outerlinewidth=0pt,
    roundcorner=2pt,
    innertopmargin=4pt,
    innerbottommargin=4pt,
    innerrightmargin=10pt,
    innerleftmargin=10pt,
    backgroundcolor=red,
    settings={\definecolor{linkcolor}{RGB}{255,255,255}}}

\usepackage{footmisc}
\def\footnotelayout{\color{white}}

\begin{document}
\begin{mdframed}[style=vprasanje]
\renewcommand\footnoterule{}
\renewcommand{\thempfootnote}{\color{white}{$\dagger$}}
\textcolor{white}{This is a footnote\footnote{You can see that line is still there and color is black...}}
\end{mdframed}
\end{document} 

渲染

在此处输入图片描述

答案1

快速浏览mdframed.sty显示(l. 745ff)该包使用内部宏\mdf@footnoterule而不是“标准” \footnoterule(这是相当明智的)。此内部宏定义为

\newrobustcmd*\mdf@footnoterule{%
    \kern0\p@%
    \hrule \@width 1in \kern 2.6\p@}

(不要问我为什么,\kern0\p@而要简单地\kern\z@。)如果你想一劳永逸地删除该行,一个快速而肮脏的技巧就是简单地放置

\makeatletter
\def\mdf@footnoterule{}
\makeatother

在序言中的某处。我认为这应该是安全的,因为它仅由实际排版脚注的宏使用。

编辑:如果你想做其他事情,比如改变颜色,你可以根据自己的需要调整代码,比如

\makeatletter
\renewrobustcmd*\mdf@footnoterule{%
    {\color{white}\kern0\p@%
    \hrule \@width 1in \kern 2.6\p@}}
\makeatother

请注意 1) 的使用\renewrobustcmd*和 2) 周围的额外分组\color{white}。后者在您的 MWE 中不是绝对必要的,因为无论如何您都是用白色书写文本,但除此之外,这很重要。

相关内容