如果条件是文本宽度

如果条件是文本宽度

我需要根据字幕的长度创建一个“if 子句”。我的代码是:

\documentclass{beamer}

\subtitle{Testing the Subtitles}
\newlength{\sbtw}\settowidth{\sbtw}{\insertsubtitle}

\ifnum \sbtw > 100
 \newlength{\nyl}\settowidth{\nyl}{\hspace*{100 pt}}
\else 
 \newlength{\nyl}\settowidth{\nyl}{\hspace*{0 pt}}
\fi

\begin{document}

\begin{frame}
Length of subtitle=\the\sbtw

The value to be assigned is = 0

But the actual assigned value is=\the\nyl
\end{frame}


\end{document}

但是 if 子句不起作用,我发现字幕长度命令 (\sbtw) 以“pt”为单位打印长度,因此“ifnum”命令不起作用。我尝试使用数字(如下所示)使该子句起作用,但我不能直接使用数字,因为它们是从文本中测量的。

 \ifnum 94.687 > 100
 \newlength{\nyl}\settowidth{\nyl}{\hspace*{100 pt}}
\else 
 \newlength{\nyl}\settowidth{\nyl}{\hspace*{0 pt}}
\fi

我尝试从测量的长度中删除“pt”(使用“strip@pt\length”)并将其放入 if 条件中,但结果出现错误。

任何解决此问题的建议对我来说都非常有用。提前致谢。

相关内容