xecjk可否将英文中的’标点符号保留半角形式
这里是MWE
\documentclass{article}
\usepackage{xeCJK} % 如果注释掉不使用xeCJK,pdf效果是想要的
\title{Children’s Cognitive Ability}
\begin{document}
\maketitle
\end{document}
最终排版效果中’会变成全角符号(不使用xecjk的化,结果还是半角形式)
因为是在英文字母中间,这个全角符号会很突兀,非常难看
西文中应当使用 `、'(U+0060、U+0027)来表示引号,而 ‘、’、“、” (U+2018、U+2019、U+201C、U+201D)等「蝌蚪引号」应当预留给中文,以避免冲突。
众所周知引号的由于 Unicode 的坑所以变得很麻烦,所以在 TeX 里面这算是一种还算能接受的迂回手法。更多讨论参考 https://github.com/CTeX-org/ctex-kit/issues/389。
谢谢指出
但是某些输入法情况下可能不知不觉就输入’
我对package的开发不是很懂
我之前是在想,有没有可能对这些标点符号前后的字符进行一定检测
如果是西文的话,就保留半角
我之前是在想,有没有可能对这些标点符号前后的字符进行一定检测 如果是西文的话,就保留半角
简单的情形总能做,但免不了有特殊情况,比如引用一句话最后一个词恰好是英文;复杂的宏展开放在一起也无法顾及所有的可能性,所以就干脆舍弃这些检测。如果需要,还不如写的时候靠编辑器里面的查找替换来做。
此外,编辑器选好字体,设好语法高亮,这几种引号还是可以分得很清楚的。要不试试 「 和 」?(滑稽
@zwz 也可以使用这个方案:
\newcommand\setchinese{%
\xeCJKResetPunctClass
}
\newcommand\setenglish{%
\xeCJKDeclareCharClass{HalfLeft}{"2018, "201C}%
\xeCJKDeclareCharClass{HalfRight}{%
"00B7, "2019, "201D, "2013, "2014, "2025, "2026, "2E3A%
}%
}
然后就可以在正文中用 \setenglish 和 \setchinese 切换语言了
@stone-zeng 我这边倒都是简单的情况。
比如如果我已经\def\mytitle{Children’s Cognitive Ability}
如何去判断和处理\mytitle呢?
(如果不是很复杂的话,能否给出一点判断的代码示例,我可以学着折腾一下)
@zepinglee 谢谢。不过我想如果有意去切换语言的话,可能也会注意到标点符号了,所以我更期望比较自动处理的方法
@zwz
比如如果我已经
\def\mytitle{Children’s Cognitive Ability}如何去判断和处理\mytitle呢?
例子:
\documentclass{ctexart}
\def\mytitle{Children’s Cognitive Ability}
\begin{document}
\Large
Before: \mytitle
\edef\mytitle{%
\xeCJKDeclareCharClass{Default}{`’}%
\mytitle
\xeCJKResetCharClass
}
After: \mytitle
\end{document}
效果:

PS:这里假设 \mytitle 中所有出现的 ’ 都应归入非 CJK 字符类。
局部的话,里面完全关掉 CJK 功能不就好了
muzimuzhi [email protected] 于 2019年6月1日周六 10:55写道:
比如如果我已经\def\mytitle{Children’s Cognitive Ability} 如何去判断和处理\mytitle呢?
例子:
\documentclass{ctexart} \def\mytitle{Children’s Cognitive Ability}
\begin{document} \Large
Before: \mytitle
\edef\mytitle{%
\xeCJKDeclareCharClass{Default}{`’}%
\mytitle
\xeCJKResetCharClass
}
After: \mytitle \end{document}
效果: [image: image] https://user-images.githubusercontent.com/6376638/58742946-816ff800-845b-11e9-880e-a78b10acba7b.png
PS:这里假设 \mytitle 中所有出现的 ’ 都应归入非 CJK 字符类。
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/CTeX-org/ctex-kit/issues/431?email_source=notifications&email_token=AAELJ4YQAU4XOWGQCF73Q2DPYHQLDA5CNFSM4HNKNYI2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODWWXHUQ#issuecomment-497906642, or mute the thread https://github.com/notifications/unsubscribe-auth/AAELJ4YXKEYP6EN4KU24YF3PYHQLDANCNFSM4HNKNYIQ .