fbox 中的水平线

fbox 中的水平线

我正在使用一个带有周围环境的对齐环境(使用包empheq\fbox来显示一组公式。现在我试图在“第 1 部分”和“第 2 部分”下绘制一条水平线,该水平线的范围是边界\fbox。我尝试了一个简单的方法\hline,但当然边界是不匹配的。

\documentclass{article}
\usepackage{empheq}
\begin{document}

\begin{empheq}[box=\fbox]{flalign*}
  & \text{Part 1} & \\
  & x=x & \text{(A1)} \\
  & \text{Part 2} & \\
  & y=y & \text{(K)}
\end{empheq}

\end{document}

答案1

根据您在原始问题关于您的方程式框的格式,并假设您不受empheq包的约束,您可以尝试以下操作 - 即使该线没有跨越整个框的长度(但结果看起来相当令人信服)。

输出

\documentclass{article}
\usepackage{titlesec}
  \titleformat{\section}
    {\normalfont\Large\bfseries}{\thesection}{1em}{}[{\titlerule[.8pt]}]
\usepackage[fleqn]{amsmath}
\usepackage{framed}

\begin{document}
\begin{framed}
  \section*{Part 1}
  \begin{equation*}
    x=x \tag{A1}
  \end{equation*}
  \section*{Part 2}
  \begin{equation*}
    y=y \tag{K}
  \end{equation*}
\end{framed}
\end{document}

答案2

我认为您不需要“第 1 部分”和“第 2 部分”下方的规则,而是需要两部分之间的规则。无论如何,我提供了两种解决方案。

\documentclass{article}
\usepackage{array}

\begin{document}

\[
\renewcommand{\arraystretch}{1.2}
\begin{tabular*}{\displaywidth}{
  |@{\extracolsep{\fill}\hspace{\tabcolsep}}
  l >{$\displaystyle}r<{$} @{\extracolsep{0pt}} >{$\displaystyle{}}l<{$}
  @{\extracolsep{\fill}} r|
}
\hline
\textit{Part 1} &&&\\
\hline
(A1) & x&=a & \\
\hline
\textit{Part 2} &&&\\
\hline
(K)  & y&=c+d & \\
\hline
\end{tabular*}
\]

\[
\renewcommand{\arraystretch}{1.2}
\begin{tabular*}{\displaywidth}{
  |@{\extracolsep{\fill}\hspace{\tabcolsep}}
  l >{$\displaystyle}r<{$} @{\extracolsep{0pt}} >{$\displaystyle{}}l<{$}
  @{\extracolsep{\fill}} r|
}
\hline
\textit{Part 1} &&&\\
(A1) & x&=a & \\
\hline
\textit{Part 2} &&&\\
(K)  & y&=c+d & \\
\hline
\end{tabular*}
\]

\end{document}

在此处输入图片描述

如果您想要右侧的标签,请参见这里:

\documentclass{article}
\usepackage{array}

\begin{document}

\[
\renewcommand{\arraystretch}{1.2}
\begin{tabular*}{\displaywidth}{
  |@{\extracolsep{\fill}\hspace{\tabcolsep}}
  l >{$\displaystyle}r<{$} @{\extracolsep{0pt}} >{$\displaystyle{}}l<{$}
  @{\extracolsep{\fill}} r|
}
\hline
\textit{Part 1} &&&\\
\hline
& x&=a & (A1)\\
\hline
\textit{Part 2} &&&\\
\hline
& y&=c+d & (K)\\
\hline
\end{tabular*}
\]

\[
\renewcommand{\arraystretch}{1.2}
\begin{tabular*}{\displaywidth}{
  |@{\extracolsep{\fill}\hspace{\tabcolsep}}
  l >{$\displaystyle}r<{$} @{\extracolsep{0pt}} >{$\displaystyle{}}l<{$}
  @{\extracolsep{\fill}} r|
}
\hline
\textit{Part 1} &&&\\
& x&=a & (A1)\\
\hline
\textit{Part 2} &&&\\
& y&=c+d & (K)\\
\hline
\end{tabular*}
\]

\end{document}

在此处输入图片描述

不同的实现:

\documentclass{article}
\usepackage{empheq}

\begin{document}

\begingroup\setlength{\fboxsep}{0pt}
\begin{empheq}[box=\fbox]{flalign*}
\noalign{\vspace{3pt}}
 \, & \text{Part 1} & \\\
 \, & x=x & \text{(A1)}\, \\\noalign{\vspace{3pt}\hrule\vspace{3pt}}
 \, & \text{Part 2} & \\
 \, & y=y & \text{(K)\strut} \,
\end{empheq}
\endgroup

\end{document}

但说实话,我不会使用这种方法。元素之间的空间太大了。

在此处输入图片描述

答案3

如果我很清楚你想要什么的话,这里有一个解决方案:

\documentclass{article}
\usepackage{empheq}
\newcommand\eqsection[1]{%
\shortintertext{\rlap{#1}\hspace{-\fontdimen2\font}\rule[-1ex]{\dimexpr\linewidth + 2\fontdimen2\font}{0.4pt}}}

\begin{document}

\begin{empheq}[box=\fbox]{flalign*}
  \eqsection{Part 1}
  & x=x & \text{(A1)} \\
  \eqsection{Part 2}
  & y=y & \text{(K)}
\end{empheq}

\end{document}

在此处输入图片描述

答案4

未被覆盖的边距来自于带尺寸\hrule的内边距。\fbox\fboxsep

以下命令\empheqsepline将规则放入 中\hbox。然后,可以更轻松地使规则更长,并让其向左和向右延伸。\nointerlineskip删除 引入的垂直空间\hbox。在规则\kern命令之前和之后添加一些空间。示例使用\fboxsep,但可以根据需要进行更改。

示例文件第一种使用线条来分隔各部分。第二种情况将线条放在部分标题下方,并使用空格来分隔各部分。

\documentclass{article}
\usepackage{empheq}

\newcommand*{\empheqsepline}{%
  \noalign{%
    % Space above the rule
    \kern\fboxsep
    % The rule
    \nointerlineskip
    \hbox to 0pt{%
      \kern-\fboxsep
      \vrule width\dimexpr\displaywidth+2\fboxsep height \fboxrule
      \hss
    }%
    \nointerlineskip
    % Space below the rule
    \kern\fboxsep
  }%
}

\begin{document}
\begin{empheq}[box=\fbox]{flalign*}
  & \text{Part 1} & \\
  & x=x & \text{(A1)} \\
  \empheqsepline
  & \text{Part 2} & \\
  & y=y & \text{(K)}
\end{empheq}

\begin{empheq}[box=\fbox]{flalign*}
  & \text{Part 1} & \\
  \empheqsepline
  & x=x & \text{(A1)} \\[2ex]
  & \text{Part 2} & \\
  \empheqsepline
  & y=y & \text{(K)}
\end{empheq}
\end{document}

结果

相关内容