진행률 표시줄에 진행률을 나타내는 백분율 수치를 표시하고 싶습니다. 내가 바에 대해 얻은 원래 코드는 다음과 같습니다.라텍스 비머 진행률 표시줄. 아래 이미지는 내가 얻고자 하는 것을 보여주지만 여기에서는 85%가 수동으로 배치됩니다.
스스로 해결하려고 노력하고 이전 질문을 살펴본 후 진행률을 계산하는 데 사용되는 명령이 다음과 같다는 것을 알게 되었습니다.
\newcommand{\progressframepercent}{
{\textnormal{\pgfmathparse{\insertframenumber*100/\inserttotalframenumber}%
\pgfmathprintnumber[fixed,precision=2]{\pgfmathresult}\,\%}}
}
그러나 백분율 표시기는 여전히 세로 중앙에 있습니다. 이 문제를 해결하려면 상자의 내용이 수직 중앙에 위치하면서 진행률 표시줄과 동일한 높이를 가져야 합니다.
\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}
답변1
백분율 표시기를 수직으로 중앙에 배치하려면 텍스트를 \raisebox
. 아래에 사용된 값은 0.02cm
단지 빠른 추측일 뿐이며 필요한 경우 추가로 미세 조정할 수 있습니다.
\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}