我想知道是否可以获取某个文本块的宽度,将其作为参数传递\newcommand
并在条件中以数字形式使用它。
例如,定义一个\newcommand
如果文本(作为参数传递)的宽度大于 6 厘米则以红色打印,其他情况下则以蓝色打印。
\documentclass{article}
\usepackage{ifthen}
\usepackage{calc}
\newcommand{\tc}[1]{
\ifthenelse{ \convertto{cm}{ \textwidth{#1} } > 6 }{\textcolor{red}{#1}}{\textcolor{blue}{#1}}
}
\begin{document}
\tc{hello}
\end{document}
但\textwidth
没有返回数值,或者我没有以正确的方式使用它。
答案1
在这里,我将文本设置在临时的 box0 中,并通过\ifdim
将该框的宽度与进行比较6cm
。我根据该测试的结果决定颜色。
\documentclass{article}
\usepackage{xcolor}
\newcommand{\tc}[1]{%
\sbox0{#1}%
\ifdim\wd0>6cm\relax\textcolor{red}{#1}\else\textcolor{blue}{#1}\fi
}
\begin{document}
\tc{hello}
\tc{This is a test of very long text to see if it goes red}
\end{document}