## 编译环境 操作系统 * [ ] Windows 7/8/10 * [x ] macOS * [ ] Linux `若需勾选,请把[ ]改成[x]` Tex发行版 * [x ] TexLive `年份` * [ ] MikTeX `版本号` * [ ] CTeX `若需勾选,请把[ ]改成[x]` ## 我的问题 考完研了想把之前写的模板改一下,就是对字符串长度进行一个判断,`xstring`里面的 如果某一个字符串过长的话我执行我就执行一种选择,如果不长的话我就执行一个语句,我用了`xstring`里面的`StrLen`求出字符串长度,然后想用`ifthen`里面的宏包进行判断是否大于我规定的界限,即用`\lengthtest`比如说 ```go \documentclass[UTF8]{ctexart} \usepackage{xstring} \usepackage{ifthen} \begin{document} \ifthenelse{\lengthtest{⟨\StrLen{哈哈哈哈哈}}>10} {哈哈哈哈 } { 哈哈哈哈哈哈哈 } \end{document} ```` ![](https://wenda.latexstudio.net/data/attach/201228/cNlovXYv.png) 但是上面这段代码老是报错,请问有什么好的办法或者更好的实现方法吗,核心就是LaTeX如何进行条件语句的执行。谢谢!

1 回答1

0
随便写个例子,自己仿写吧 ```tex \documentclass{article} \usepackage{calc,ifthen} \newlength{\testa} \makeatletter \newcommand{\test}[1]{ \settowidth{\testa}{#1} \ifthenelse{\lengthtest{\testa>2cm}} {% \textbf{#1} }% {% \texttt{#1} }% } \makeatother \begin{document} \test{1} \test{1111111111111111111111111111111} \end{document} ``` ref: 《[在 LaTeX 中自动排版选项](https://sikouhjw.gitee.io/2020/06/24/2020-06-24-Auto-choice/)》
  • 非常感谢! –  2020-12-29 15:02 回复

你的回答

请登录后回答

你的回答将会帮助更多人,请务必认真回答问题。