5 \foreach的“局限性”?

发布于 2024-05-08 07:27:33

foreach 语句变量的最大允许值是多少?测试必现大于"3999就会报错,看下面代码:

documentclass{article}
usepackage{fontspec}
setmainfont{SimSun}
usepackage{tikz}

%usepackage{xeCJK}
%setmainfont{微软雅黑}

%xeCJKDeclareSubCJKBlock {CJK} {"4DC0 -> "4DFF}
%xeCJKDeclareCharClass*{CJK}{"4DC0 -> "4DFF}
begin{document}
foreach x in{"3800,"3001,...,"3999} {char x quad}
下一行会报错!
foreach y in {"3900,"3901,...,"4000}{char y quad}
end{document}

查看更多

关注者
0
被浏览
640
鱼香肉丝没有鱼先生
脾气不好,别来惹我!!!

首先是你的提问不是很规范,建议熟悉 md 语法,代码使用
```tex
LaTeX
...
```

包裹.

接下来说说问题,在 TeX"<number> 表示 16 进制, 也即是 "3900 转换为 10 进制是 14592

可以更改你的代码为

\foreach \y in {3900,3901,...,4000}{\char "\y \quad}
2 个回答
春风
春风 2024-05-14
这家伙很懒,什么也没写!

谢谢你@u19850 了,也可以使用expl3宏包处理这一问题。

\documentclass{article}
\usepackage{fontspec}
\setmainfont{SimSun}
\usepackage{expl3}
\begin{document}

\ExplSyntaxOn
\int_step_inline:nnn {"3000} {"3FFF} {#1 \char #1 \quad }
\ExplSyntaxOff

\end{document}

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览