-
Notifications
You must be signed in to change notification settings - Fork 124
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
\ref 中出现数字时,与随后紧跟的汉字之间缺少空格 #392
Comments
这不算是个 bug,应该养成中西文之间手动加空格的习惯 |
可以试想引用的东西是汉字,比如第 PS:一般 |
@stone-zeng 前一句同意,手动控制不同意。 比如用 |
可能和 xecjk 宏包代码的的字符类别设定、字符输出规则部分有关,代码具体在宏包文档的 5.5.4 到 5.5.6 节。我做了一些尝试,在每一处 inter char class code 之后,增加了字符类别信息和 从图片中的效果看,
相关代码 \documentclass{ctexart}
\usepackage{array}
\ExplSyntaxOn
\NewDocumentCommand{\showInterClassInfo}{ m }
{
\bgroup
\seq_map_inline:Nn \g__xeCJK_base_class_seq
{
\seq_map_inline:Nn \g__xeCJK_base_class_seq
{
\xeCJK_app_inter_class_toks:nnn {##1} {####1}
{
\setcounter{section}{\lastnodetype}%
\bgroup\XeTeXinterchartokenstate = 0
\linebreak[1]\normalfont(\arabic{section},~##1~to~####1)\newline
\egroup
}
}
}
#1
}
\NewDocumentCommand{\hideInterClassInfo}{ }
{
\egroup
}
\ExplSyntaxOff
\newcommand{\test}[1]{#1}
\begin{document}
\begin{equation}\label{eqn}
a = 10
\end{equation}
\begin{tabular}{l l >{\showInterClassInfo}p{200pt}<{\hideInterClassInfo}}
input & output & \egroup output with illustration \bgroup \\ \hline
\verb|字1字| & 字1字 & 字1字 \\
\verb|字\textbf{1}字| & 字\textbf{1}字 & 字\textbf{1}字 \\
\verb|字\test{1}字| & 字\test{1}字 & 字\test{1}字 \\
\verb|字\ref{eqn}字| & 字\ref{eqn}字 & 字\ref{eqn}字 \\
\verb|字\mbox{1}字| & 字\mbox{1}字 & 字\mbox{1}字
\end{tabular}
\end{document} |
这个问题以前讨论过。 结论大致是:技术上实现一个 case 不难。但是有很多的 edge case,所以很难保证完备性。因此,暂时不去实现;同时在 |
谢谢各位解答。 通常在中西文之间的空格我一般都会手动加上。 1 如\fig{xxx}所示 % 数字后少了空格
2 如 \fig{xxx} 所示 % “图”字前多了空格
3 如\fig{xxx} 所示 |
一个离题的回复, \documentclass{ctexart}
\usepackage{cleveref}
\crefname{figure}{图}{图} % 更好的方式是以语言配置的形式提供,见 cleveref 文档第 10 节
\begin{document}
\begin{figure}
\centering figure content
\caption{fig}\label{fig:1}
\end{figure}
中文\cref{fig:1}中文
\end{document} |
@muzimuzhi 谢谢!确实很棒!但是不确定「以语言配置的形式」提供是指 doc 中提到的类似 |
借个光问一句,有没有什么办法可以在已知某些宏展开一定是英文字符的时候,让这些宏自带空格呢?除了我现在这样刀耕火种的做法: \let\origeqref\eqref
\renewcommand{\eqref}[1]{ \origeqref{#1} }
\let\origref\ref
\renewcommand{\ref}[1]{~\origref{#1} } % \ref 前面一定是“图”或者“表”
\let\origSI\SI
\renewcommand{\SI}[2]{ \origSI{#1}{#2} } 不知道CTeX宏包里面有没有自带这样的辅助宏 🤔 |
|
代码如下,第 5 个中数字
1
和中文之间的间隙没了……如图
CTeX 版本如下:
Document Class: ctexart 2018/05/02 v2.4.14 Chinese adapter for class article (CTEX)
The text was updated successfully, but these errors were encountered: