提问于:
浏览数:
1713
## 编译环境
操作系统
* [ ] 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 回答
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 回复
你的回答
请登录后回答
你的回答将会帮助更多人,请务必认真回答问题。