使一行文本垂直居中

使一行文本垂直居中

我有一段文本(准确地说是章节标题),其前后都有一条规则。代码如下:

\documentclass[a4paper, 12pt]{book}
\usepackage{titlesec}

\begin{document}
    \noindent\rule[\baselineskip]{6cm}{.4pt}\\
    \textbf{SOME HEADER} \\ \\
    \rule[\baselineskip]{6cm}{.4pt}

    \titleformat{\chapter}[block]{}{}{0pt}
    {%
        {\large\MakeUppercase\thechapter\\}
        \hrule
        \vspace{\baselineskip}      
        \hbox{\LARGE\bfseries}
    }   
    [\LARGE\vspace{\baselineskip}\hrule]

    \chapter{Test}

\end{document}

得出

在此处输入图片描述

现在 - 我希望文本上方和下方的空白大小相同,这可以通过将文本垂直居中在为其所在行保留的“空间”中来实现(所以基本上,我想将文本从基线稍微抬起一点)。

我该怎么做?我一直在摆弄盒子(尤其是 \raisebox 看起来很有希望),但我对它们的工作原理感到困惑,并没有设法得到我想要的东西。我正在寻找最简单的解决方案。

编辑:David Carlisle 的解决方案在运行文本中有效,但我实际上想在 \titleformat(来自 titlesec 包)命令中使用它。更新的示例看起来会像这样(我知道我可以在 \titleformat 的“标签”字段中使用 \thechapter,但我没有这样做是有原因的):

\documentclass[a4paper, 12pt]{book}
\usepackage{titlesec}

\begin{document}
    \titleformat{\chapter}[block]{}{}{0pt}
    {%
        {\large\MakeUppercase\thechapter\\}
        \hrule
        \vspace{\baselineskip}      
        \hbox{\LARGE\bfseries}
    }   
    [\LARGE\vspace{\baselineskip}\hrule]

    \chapter{SOME HEADER}

    % The chapter header is not as I want it, but in the running text this works:
    \noindent\rule[\baselineskip]{6cm}{.4pt}\\
    \textbf{SOME HEADER} \\ \\
    \rule[\baselineskip]{6cm}{.4pt}

\end{document}

...但现在我遇到两个新问题:

(1)文本既不是粗体也不是 \LARGE
(2)文本未在行间垂直居中

我想要的可能实现吗?

答案1

在这里使用原语可能更容易

在此处输入图片描述

\documentclass{article}

\begin{document}
\showoutput

\hrule
\hbox{\textbf{SOME HEADER}}
\hrule

\bigskip

\hrule
\vskip5pt
\hbox{\textbf{SOME HEADER}}
\vskip5pt
\hrule



\end{document}

答案2

\vspace应该可以完成这项工作。下面是代码顶部的完整示例,您可以自定义适合您的垂直空间,这里2cm使用:

\documentclass{article}
\begin{document}
\noindent\rule[\baselineskip]{6cm}{.4pt}
\vspace{2cm}

\textbf{SOME HEADER}\\
\vspace{2cm}

\noindent\rule[\baselineskip]{6cm}{.4pt}
\end{document}

请注意,后面的空行\vspace是故意的。

相关内容