我怎样才能从标题左右绘制水平线

我怎样才能从标题左右绘制水平线

我想要一条从标题左右两侧各一条水平线。线宽应根据标题进行调整。因此,例如,如果标题占用 0.4\textwidth,则标题左侧的水平线应占用 0.3\textwidth,作为标题右侧的线。

到目前为止,我有这样的代码:

\documentclass{beamer}
\usepackage[utf8]{inputenc}
\usepackage[english,russian]{babel}
\usebackgroundtemplate%
{%
    \includegraphics[width=\paperwidth,height=\paperheight]{/some/picture.png}%
}
\beamertemplatenavigationsymbolsempty
\begin{document}
\frame[c]{%
    \centering
    \Huge{\textbf{\rule{0.1\textwidth}{.4pt} Main title \rule{0.1\textwidth}{.4pt}\\
    subtitle}\\
    not bold text}
}
\end{document}

我的问题是:1)线条不是垂直于线的中心,而是在底部。2)我必须手动调整线条的宽度,因此,如果标题发生变化,则必须手动更改线宽。

有人能帮帮我吗?我试过谷歌搜索,但没有找到我需要的东西。

答案1

您可以使用它来以水平模式\leaders\hrule\hfill执行。\hrule

我从示例代码中删除了背景图像,并添加了一个\maintitle执行所需格式的宏。我还在两边添加了一个小空间。我觉得这样看起来更好。 在此处输入图片描述

\documentclass{beamer}
\usepackage[utf8]{inputenc}
\usepackage[english,russian]{babel}

\makeatletter
\newcommand\maintitle[1]{%
    \quitvmode
    \hb@xt@\linewidth{%
        \dimen@=1ex
        \advance\dimen@-2pt
        \leaders\hrule \@height1ex \@depth-\dimen@\hfill
        \enskip
        \textbf{#1}%
        \enskip
        \leaders\hrule \@height1ex \@depth-\dimen@\hfill
    }%
}
\makeatother

\beamertemplatenavigationsymbolsempty
\begin{document}
\frame[c]{%
    \centering
    \Huge
    \maintitle{Main title}\\
    \textbf{subtitle}\\
    not bold text
}
\end{document}

相关内容