我想做这样的事:
==================== Text ====================
其中 '===' 表示两条水平线相隔 2pt。换句话说,我想将一些文本置于双水平线之间。我找到了一个类似的问题这里并尝试采用egreg提出的以下解决方案:
\newcommand{\textbetweenrules}[2][.4pt]{%
\par\vspace{\topsep}
\noindent\makebox[\textwidth]{%
\sbox0{#2}%
\dimen0=.5\dimexpr\ht0+#1\relax
\dimen2=-.5\dimexpr\ht0-#1\relax
\leaders\hrule height \dimen0 depth \dimen2\hfill
\quad #2\quad
\leaders\hrule height \dimen0 depth \dimen2\hfill
}\par\nopagebreak\vspace{\topsep}
}
并将其与给出的解决方案结合起来这里制定双重规则:
\hrule width \hsize \kern 1mm \hrule width \hsize
但是,无论我怎么尝试,第二个 \hrule 似乎都无法被正确识别,并且我的文档上要么打印出“高度深度”,要么什么都没有。
\documentclass{article}
\usepackage{lipsum}
\newcommand{\textbetweenrules}[2][.4pt]{%
\par\vspace{\topsep}
\noindent\makebox[\textwidth]{%
\sbox0{#2}%
\dimen0=.5\dimexpr\ht0+#1\relax
\dimen2=-.5\dimexpr\ht0-#1\relax
\leaders\hrule height \dimen0 depth \dimen2 \kern2pt \hrule height \dimen0 depth \dimen2\hfill
\quad #2\quad
\leaders\hrule height \dimen0 depth \dimen2 \kern2pt \hrule height \dimen0 depth \dimen2\hfill\hfill
}\par\nopagebreak\vspace{\topsep}
}
\begin{document}
\lipsum[2]
\textbetweenrules{Text}
\lipsum[3]
\end{document}
答案1
您可以使用相同的想法,但是领导者在这里不起作用,因此我在计算其宽度后准备了一个具有双重规则的 vbox。
有点随意的是,规则之间的空间是其厚度的四倍。
\documentclass{article}
\newcommand{\textbetweendoublerules}[2][.4pt]{%
\par\addvspace{\topsep}
\noindent\makebox[\textwidth]{%
\sbox0{\quad#2\quad}%
\dimen0=.5\dimexpr\ht0+#1\relax
\dimen2=-.5\dimexpr\ht0-#1\relax
\dimen4=.5\dimexpr\textwidth-\wd0\relax
\setbox2=\vbox to \ht0{%
\vss
\hrule width \dimen4 height #1
\kern 4\dimexpr#1\relax
\hrule width \dimen4 height #1
\vss
}%
\copy2 \box0 \box2
}\par\nopagebreak\addvspace{\topsep}%
}
\begin{document}
\textbetweendoublerules{abc}
\end{document}
答案2
我会采用不同的方法,将文本放在线条上方的彩色框中。这样你就不必担心居中了。
(以下代码仅供参考,请根据您的需要调整长度)
\documentclass{article}
\usepackage{lipsum}
\usepackage{xcolor}
\newcommand{\textbetweenrules}[1]{%
\begin{center}
\setlength{\fboxsep}{0.4cm}
\rule{\textwidth}{1pt}\\[-0.3cm]
\rule{\textwidth}{1pt}\\[-0.65cm]
\colorbox{white}{#1}
\end{center}
}
\begin{document}
\lipsum[1]
\textbetweenrules{Text}
\lipsum[2]
\textbetweenrules{longer text text text}
\lipsum[3]
\end{document}
答案3
加载 Ti 可能会有点过头钾Z,但是如果你无论如何都要加载它,你可以考虑以下代码:
\documentclass{article}
\usepackage{lipsum}
\usepackage{tikz}
\newcommand{\RuleText}[1]{%
\centerline{\tikz{\draw[double,line width=1pt,double distance between line
centers=3pt] (0,0)--(\linewidth,0) node[midway,fill=white]{#1};}}}
\begin{document}
\lipsum[1]
\RuleText{koala bear}
\lipsum[2]
\RuleText{marmot}
\lipsum[3]
\end{document}
答案4
这是一个相当“老套”的版本,但至少适用于短文本。您必须尝试使用 vskips 才能获得 2pt 距离。
\documentclass{article}
\usepackage{lipsum}
\newcommand\textbetweenlines[1]{%
\par
\vskip-.2\baselineskip
\noindent\hrulefill\phantom{\quad#1\quad}\hrulefill\par
\vskip-.8\baselineskip
\noindent\hrulefill\quad%
\raisebox{-.1\baselineskip}{#1}\quad\hrulefill%
\par
\vskip.1\baselineskip
}
\begin{document}
\lipsum[1]
\textbetweenlines{Test}
\lipsum[1]
\end{document}