\begin{leftbar} 的替代方案不会导致浮动?

\begin{leftbar} 的替代方案不会导致浮动?

我正在尝试创建一个环境,使文本中的段落或段落组在视觉上与其他段落区分开来。我只想清楚地知道哪个是段落,哪个是段落。理想情况下,添加或删除此环境实际上不会移动页面上的任何文本(尽管如果它改变了行宽,我可以接受一些重新换行),并且它绝不能改变文本的顺序。

\begin{leftbar}(来自framed)在视觉上效果很好,但它会弄乱\footnote{...}s。此外,如果我理解正确的话,leftbar结果是浮点数,如果需要将其保持在单个页面上,则可以将其排版到行外的某个地方(我的使用不能容忍)。我如果需要的话,可以将内容拆分到多个页面,就像\paragraph\section环境一样empty

例子

只是为了完整起见;这或多或少准确地复制了第二段的开头内容:

\documentclass{article}

\usepackage{framed}

\begin{document}
\begin{leftbar}
Hello\footnote{to the}

World\footnote{we live in}
\end{leftbar}
\end{document}

出现了脚注标记,但是页面底部没有脚注文本。


如果没有简单的选择,还有其他方法可以突出显示一段不会对布局产生不利影响的文本吗?

我试过了,tcolorbox但是这会将脚注拉到结果框中。colorbox看起来它可能对我有用,但我不知道如何将它应用到我的环境主体中


我尝试过的一些不起作用的方法以及原因:

这些只是答案或评论中提到的。

\footnotemark/ \footnotetext(不含数字)

  • 如果在同一个上下文中放置多个数字,它们就会产生不正确的数字。
  • 如果封闭环境溢出到另一页,他们会将脚注放在错误的页面上。
...
\begin{leftbar}
Hello\footnotemark
World\footnotemark
\end{leftbar}
\footnotetext{to the}
\footnotetext{we live in}
...

\footnotemark/ \footnotetext(带数字)

它们很脆弱,可能会产生不正确的结果,甚至会在不破坏编译的情况下弄乱其他脚注:

...\footnote{First}
\begin{leftbar}
Hello\footnotemark[1]

World\footnotemark[2]
\end{leftbar}
\footnotetext[3]{WTF?!}
\footnotetext[2]{to the}
\footnotetext[1]{we live in}
\footnote{Last}
...

\colorbox{C}{...}

不能(据我所知)缠绕在 的主体上\newenvironment

\begin{mdframed}

环境mdframed将脚注放在结果框内和框末尾,该结果框可以位于页面的中间,也可以位于脚注标记所在的不同页面上。

答案1

与任何框一样,您可以拆分标记和浮动文本,将文本从框中提出来:

在此处输入图片描述

\documentclass{article}

\usepackage{framed}

\begin{document}
\begin{leftbar}
Hello\footnotemark

World
\end{leftbar}\footnotetext{to the}
\end{document}

答案2

成立ctan。我还没有机会深入研究它,但它似乎在tcolorbox

\documentclass{article}

\usepackage{footnote}
\usepackage[most]{tcolorbox}

\usepackage{lipsum}

\newtcolorbox{leftbar}{%
    boxrule=0pt,
    boxsep=0pt,
    left=28pt,
    breakable,
    enhanced,
    borderline west={3pt}{0pt}{black},
    colback=white,
    colframe=white,
}

\makesavenoteenv{leftbar}

\renewcommand{\thempfootnote}{\arabic{mpfootnote}}


\begin{document}
    \begin{leftbar}
        Hello\footnote{to the}
        
        World\footnote{we live in}
    \end{leftbar}

\begin{leftbar}
    Hello\footnote{test}
    
    World\footnote{testing}
    
    \lipsum[1-10]
\end{leftbar}

\meaning\footnote
\end{document}

请注意,它将破坏脚注的超链接

答案3

支持hyperref:D

\documentclass{article}
\usepackage{framed}
%\usepackage{hyperref}
\usepackage{footnotehyper}
\makesavenoteenv{leftbar}

\begin{document}
\begin{leftbar}
Hello\footnote{to the}

World\footnote{we live in}

\begin{leftbar}
Hello\footnote{to the X}

World\footnote{we live in Z}
\end{leftbar}
\end{leftbar}
\end{document}

相关内容