Wie platziere ich eine Zahl, die den prozentualen Fortschritt darstellt, in einem benutzerdefinierten Fortschrittsbalken?

Wie platziere ich eine Zahl, die den prozentualen Fortschritt darstellt, in einem benutzerdefinierten Fortschrittsbalken?

In einem Fortschrittsbalken möchte ich eine Prozentzahl platzieren, die den Fortschritt darstellt. Der ursprüngliche Code, den ich für den Balken erhalten habe, stammt vonFortschrittsbalken für Latex-Beamer. Das Bild unten zeigt, was ich erreichen möchte, aber die 85 % hier sind manuell eingetragen.

Bildbeschreibung hier eingeben

Nachdem ich versucht hatte, es selbst zu lösen und mir die vorherige Frage angesehen hatte, erfuhr ich, dass der Befehl zur Berechnung des prozentualen Fortschritts lautet

\newcommand{\progressframepercent}{
    {\textnormal{\pgfmathparse{\insertframenumber*100/\inserttotalframenumber}%
            \pgfmathprintnumber[fixed,precision=2]{\pgfmathresult}\,\%}}
                                }

Der Prozentindikator ist jedoch immer noch vertikal zentriert. Um dieses Problem zu lösen, muss das Feld die gleiche Höhe wie der Fortschrittsbalken haben, wobei der Inhalt vertikal zentriert sein muss.

Bildbeschreibung hier eingeben

\documentclass[aspectratio=169, xcolor={x11names}]{beamer}

\usecolortheme{rose}

\setbeamercolor{itemize item}{fg=black}

\useoutertheme{miniframes}

\useinnertheme{inmargin}

\setbeamersize{text margin left=2mm, text margin right=2mm}

\newlength{\sidebarWidth}
\setlength{\sidebarWidth}{0.2\paperwidth}

\setbeamersize{sidebar width left=\sidebarWidth, sidebar width right=0cm}

\usefonttheme{structurebold}

\usepackage{tikz}
\usetikzlibrary{calc}

% Custom progress bar
% BEGIN_FOLD

\setbeamercolor{progress bar progress}{use=progress bar,bg=progress bar.fg}
\newlength{\heightNavigationSymbol}
\setlength{\heightNavigationSymbol}{2.5mm} % around 2.5mm or 7.1pt
\newlength{\widthProgressBarFull}
\setlength{\widthProgressBarFull}{\sidebarWidth}
\newcommand{\totalslideinframe}{0}
\defbeamertemplate{footline}{progress bar}{
    % Calculate bars widths
    \dimen0=\widthProgressBarFull
    \multiply\dimen0 by \insertframenumber
    \divide\dimen0 by \inserttotalframenumber
    \edef\widthProgressBar{\the\dimen0}
    \leavevmode%
    %
    % The bar itself
    \begin{beamercolorbox}[wd=\widthProgressBarFull, ht=\heightNavigationSymbol, dp=1ex]{progress bar}
        \begin{beamercolorbox}[wd=\widthProgressBar, ht=\heightNavigationSymbol, dp=1ex]{progress bar progress}
        \end{beamercolorbox}%
    \end{beamercolorbox}%
    {\hspace{-\widthProgressBarFull}\color{white} \adjustbox{minipage={\sidebarWidth}, frame}{\hspace*{\fill} $\progressframepercent$ \hspace*{\fill}}}%
                                        }
\setbeamertemplate{footline}[progress bar]
\setbeamercolor{progress bar}{fg=DodgerBlue3,bg=PeachPuff3}

% END_FOLD

\usepackage{adjustbox}

\newcommand{\progressframepercent}{
    {\textnormal{\pgfmathparse{\insertframenumber*100/\inserttotalframenumber}%
            \pgfmathprintnumber[fixed,precision=2]{\pgfmathresult}\,\%}}
                                }



\begin{document}

\begin{frame}
Some contents
\end{frame}

\begin{frame}





Some contents
\end{frame}

\begin{frame}
Some contents
\end{frame}

\begin{frame}
Some contents
\end{frame}

\begin{frame}
Some contents
\end{frame}

\end{document}

Antwort1

Um die Prozentanzeige vertikal zu zentrieren, können Sie den Text in ein setzen \raisebox. Der unten verwendete Wert 0.02cmist nur eine schnelle Schätzung. Bei Bedarf können Sie ihn weiter verfeinern.

\documentclass[aspectratio=169, xcolor={x11names}]{beamer}

\usecolortheme{rose}

\setbeamercolor{itemize item}{fg=black}

\useoutertheme{miniframes}

\useinnertheme{inmargin}

\setbeamersize{text margin left=2mm, text margin right=2mm}

\newlength{\sidebarWidth}
\setlength{\sidebarWidth}{0.2\paperwidth}

\setbeamersize{sidebar width left=\sidebarWidth, sidebar width right=0cm}

\usefonttheme{structurebold}

\usepackage{tikz}
\usetikzlibrary{calc}

% Custom progress bar
% BEGIN_FOLD

\setbeamercolor{progress bar progress}{use=progress bar,bg=progress bar.fg}
\newlength{\heightNavigationSymbol}
\setlength{\heightNavigationSymbol}{2.5mm} % around 2.5mm or 7.1pt
\newlength{\widthProgressBarFull}
\setlength{\widthProgressBarFull}{\sidebarWidth}
\newcommand{\totalslideinframe}{0}
\defbeamertemplate{footline}{progress bar}{
    % Calculate bars widths
    \dimen0=\widthProgressBarFull
    \multiply\dimen0 by \insertframenumber
    \divide\dimen0 by \inserttotalframenumber
    \edef\widthProgressBar{\the\dimen0}
    \leavevmode%
    %
    % The bar itself
    \begin{beamercolorbox}[wd=\widthProgressBarFull, ht=\heightNavigationSymbol, dp=1ex]{progress bar}
        \begin{beamercolorbox}[wd=\widthProgressBar, ht=\heightNavigationSymbol, dp=1ex]{progress bar progress}
        \end{beamercolorbox}%
    \end{beamercolorbox}%
    \raisebox{0.02cm}{\hspace{-\widthProgressBarFull}\color{white} \adjustbox{minipage={\sidebarWidth}, frame}{\hspace*{\fill} $\progressframepercent$ \hspace*{\fill}}}%
                                        }
\setbeamertemplate{footline}[progress bar]
\setbeamercolor{progress bar}{fg=DodgerBlue3,bg=PeachPuff3}

% END_FOLD

\usepackage{adjustbox}

\newcommand{\progressframepercent}{
    {\textnormal{\pgfmathparse{\insertframenumber*100/\inserttotalframenumber}%
            \pgfmathprintnumber[fixed,precision=2]{\pgfmathresult}\,\%}}
                                }



\begin{document}

\begin{frame}
Some contents
\end{frame}

\begin{frame}





Some contents
\end{frame}

\begin{frame}
Some contents
\end{frame}

\begin{frame}
Some contents
\end{frame}

\begin{frame}
Some contents
\end{frame}

\end{document}

Bildbeschreibung hier eingeben

verwandte Informationen