填充水平线上方和下方的文本

填充水平线上方和下方的文本

这是用于编写练习表的模板的起始代码。

\documentclass[12pt]{article}
\usepackage{xhfill}   % https://tex.stackexchange.com/a/155960/6880
\usepackage[showframe]{geometry}

\begin{document}

START

\setlength{\fboxrule}{0.2ex}
\framebox{Ex.1}\xrfill[0.4ex]{0.25ex}

\end{document}

我想在填充规则的上方和下方添加材料,如下图所示。我该如何实现?

在此处输入图片描述

答案1

您可以设置一个零宽度框,并将内容升高/降低到位:

在此处输入图片描述

\documentclass{article}

\usepackage{xhfill}
\usepackage[showframe]{geometry}

\begin{document}

START

\setlength{\fboxrule}{0.2ex}%
\framebox{Ex.1}\xrfill[0.4ex]{0.25ex}%
\makebox[0pt][r]{\raisebox{.5\baselineskip}[0pt][0pt]{\scshape above}}%
\makebox[0pt][r]{\raisebox{-.6\baselineskip}[0pt][0pt]{\scshape below}}%

\end{document}

凸起/降低的文本设置了0pt高度/深度,因此不会影响周围内容的行距。

答案2

您可以使用stackengine的顶部和底部搭接宏。这\tllap是左上搭接,\bllap是左下搭接。可选参数提供搭接的基线跳过。at%行尾是必要的,以避免在搭接前或搭接之间出现杂散空格。

\documentclass[12pt]{article}
\usepackage{xhfill}   % https://tex.stackexchange.com/a/155960/6880
\usepackage[showframe]{geometry}
\usepackage{stackengine}
\begin{document}

START

\setlength{\fboxrule}{0.2ex}
\framebox{Ex.1}\xrfill[0.4ex]{0.25ex}%
\tllap[6pt]{Here}%
\bllap[9pt]{and There}

\end{document}

在此处输入图片描述

相关内容