## 编译环境 操作系统 * [ ] Windows 7/8/10 Tex发行版 * [ ] TexLive `年份` ## 我的问题 \CJKunderline[hidden]{答案},有没有办法能自动的根据(答案的宽度*1.5)来画下划线, 原因是手写体一般比印刷体宽,所以下划线宽度需要预留大一些。

3 回答3

2
简单用latex3实现了一下,可选参数是留白的比例 13行那个`>`是>,网页bug ```tex \documentclass{ctexart} \usepackage{xeCJKfntef} \usepackage{xparse} \usepackage{xstring} \ExplSyntaxOn \int_new:N \l_wd_int \tl_new:N \l_answer_tl \str_new:N \l_answer_str \NewDocumentCommand{\answer}{O{0} m}{ \tl_set:Nx \l_answer_tl {#2} \int_set:Nn \l_wd_int {\fp_eval:n {floor(#1 * \str_count:N \l_answer_tl)}} \str_set:Nx \l_answer_str {#2} \int_while_do:nn {\l_wd_int > 0}{ \str_put_right:Nn \l_answer_str {烫} \int_decr:N \l_wd_int } \CJKunderline[hidden]{\l_answer_str} } \ExplSyntaxOff \def\test{答案答案答案答案答案答案答案答案答案答案答案答案答案答案} \begin{document} 答案:\CJKunderline{\test} 答案:\CJKunderline[hidden]{\test} 答案:\answer{\test} 答案:\answer[0.5]{\test} 答案:\answer[1]{\test} \end{document} ``` ![](https://wenda.latexstudio.net/data/attach/200520/QajLKVWx.png)
0
算出长度来就可以了,参考一下: [https://latexstudio.net/index/details/index/mid/409.html](https://latexstudio.net/index/details/index/mid/409.html "https://latexstudio.net/index/details/index/mid/409.html")
0
*1.5的部分不会,等别人回答吧 ```tex \documentclass{ctexart} \usepackage{calc} \newlength{\daan} \setlength{\daan}{0pt} \def\xiedaan#1{\gdef\xiedaana{#1}} \begin{document} \xiedaan{答案答案} \settowidth{\daan}{\xiedaana} 文字\CJKunderline[hidden]{\hspace*{\the\daan}}文字 文字答案答案文字 \end{document} ```

你的回答

请登录后回答

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