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
zhspacing.sty 是否可以不要写死字体,在 Linux 下没有SimSun #331
Comments
基于类似的原因,现在大家都没有维护 |
这个跟 想用 Fandol 的话,你可以给 另外,中易宋体是 SimSun。 |
抱歉, '鸢尾花数据的散点图' 经过编译,pdf 文档显示的效果却是 所以我用 系统 CentOS cat /etc/redhat-release
tex -v
|
'鸢尾花数据的散点图' 你的测试代码使用了英文引号。这种情况不在 中文的引号,应当使用直角引号( \documentclass[UTF8]{ctexart}
\begin{document}
杀人犯「陈世峰」的名字常被误作「陈世『锋』」。
杀人犯“陈世峰”的名字常被误作“陈世‘锋’”。
\end{document} |
Python 2.7.5 (default, Aug 4 2017, 00:39:18)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-16)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> print('鸢尾花数据的散点图')
鸢尾花数据的散点图
>>> print("鸢尾花数据的散点图")
鸢尾花数据的散点图
>>> print(“鸢尾花数据的散点图”)
File "<stdin>", line 1
print(“鸢尾花数据的散点图”)
^
SyntaxError: invalid syntax
>>> Windows 上
R 代码块及其执行结果 # Embedding code
print('鸢尾花数据的散点图') 显示 Python 代码块 print('鸢尾花数据的散点图') |
首先,不要用 其次,讲真,如果你看了 zhspacing 的文档的话,就知道它是可以自己设置字体的,也就是直接在文档中重定义 第三,我再说一遍,不要用 第四,部分 Linux 用户乐于在仔细查看官方文档之前轻信网上过时的资料,并在读源代码的时候一知半解,对此我深表遗憾。在这个基础上写出来的冗余代码,我称之为穷折腾。为了照顾这种情形,我只好把 \documentclass[UTF8]{ctexart}
\begin{document}
中文文档类测试。你需要将所有源文件保存为UTF-8 编码。
你可以使用XeLaTeX、LuaLaTeX 或upLaTeX 编译,也可以使用(pdf)LaTeX 编译。
推荐使用XeLaTeX 或LuaLaTeX 编译。
\end{document} 如果你不愿意读代码里面的汉字我可以再解释一遍:不只是你在 Windows 下用这段代码,在 macOS 下也是用这段代码,在 Ubuntu、Debian、CentOS、SUSE、Fedora 或者别的什么 Linux 发行版下面,还是用这段代码。在急着探究什么 Linux 丰富配置之前,先把基本用法搞明白。 |
所以你的问题不是在正文当中使用标点,而是在代码抄写环境使用英文引号。那这件事情和 你在代码抄写环境发现引号显示于 Windows 和 Linux 不同,原因和 如果你觉得有问题,比如「为什么两个引号都是『往左边拐』?」,或者「为什么引号的间距不对了?」,那我也只能告诉你:「在你当前的字体里,它就是这个样子,这是『正常的』。」 所以,如果你要解决你遇到的问题,你应该做的是:「更换一个在 总之不管怎么说,不要用 |
@leo-liu 可能我对问题的表述有问题
谢谢二位大神的回复 |
我来把这个问题简化一下。最简示例: \documentclass[UTF8]{ctexart}
\begin{document}
"鸢尾花"
\begin{verbatim}
"鸢尾花"
\end{verbatim}
\end{document} xelatex 编译结果: 我知道为什么两个引号左拐。楼主的问题是为什么第一个引号后面空格,以及如何才能去掉这个空格。 如果要追究为什么是 \documentclass[UTF8]{ctexart}
\usepackage{color}
\usepackage{fancyvrb}
\newcommand{\VerbBar}{|}
\newcommand{\VERB}{\Verb[commandchars=\\\{\}]}
\DefineVerbatimEnvironment{Highlighting}{Verbatim}{commandchars=\\\{\}}
\usepackage{framed}
\definecolor{shadecolor}{RGB}{248,248,248}
\newenvironment{Shaded}{\begin{snugshade}}{\end{snugshade}}
\newcommand{\StringTok}[1]{\textcolor[rgb]{0.31,0.60,0.02}{#1}}
\begin{document}
\begin{Shaded}
\begin{Highlighting}[]
\StringTok{"鸢尾花"}
\end{Highlighting}
\end{Shaded}
\end{document} 谢谢! |
这个其实是
解决的办法有:
\begingroup
\xeCJKVerbAddon
\begin{Shaded}
\begin{Highlighting}[]
With \textbackslash{}xeCJKVerbAddon:
"鸢尾花"
'鸢尾花'
\StringTok{"鸢尾花"}
\StringTok{'鸢尾花'}
\end{Highlighting}
\end{Shaded}
\endgroup
\DefineVerbatimEnvironment{Highlighting}{Verbatim}{commandchars=\\\{\},formatcom=\xeCJKVerbAddon} 效果如下(这里按照第一种方法处理): 完整代码: \documentclass[UTF8]{ctexart}
\usepackage{color}
\usepackage{fancyvrb}
\newcommand{\VerbBar}{|}
\newcommand{\VERB}{\Verb[commandchars=\\\{\}]}
\DefineVerbatimEnvironment{Highlighting}{Verbatim}{commandchars=\\\{\}}
\usepackage{framed}
\definecolor{shadecolor}{RGB}{248,248,248}
\newenvironment{Shaded}{\begin{snugshade}}{\end{snugshade}}
\newcommand{\StringTok}[1]{\textcolor[rgb]{0.31,0.60,0.02}{#1}}
\begin{document}
\begin{verbatim}
verbatim 环境:
'鸢尾花'
\end{verbatim}
\begin{Verbatim}
Verbatim 环境:
'鸢尾花'
\end{Verbatim}
\begin{Shaded}
\begin{Highlighting}[]
Without \textbackslash{}xeCJKVerbAddon:
"鸢尾花"
'鸢尾花'
\StringTok{"鸢尾花"}
\StringTok{'鸢尾花'}
\end{Highlighting}
\end{Shaded}
\begingroup
\xeCJKVerbAddon
\begin{Shaded}
\begin{Highlighting}[]
With \textbackslash{}xeCJKVerbAddon:
"鸢尾花"
'鸢尾花'
\StringTok{"鸢尾花"}
\StringTok{'鸢尾花'}
\end{Highlighting}
\end{Shaded}
\endgroup
\end{document} 当然,的确是和 |
@stone-zeng 嗯,这正是我要的答案。多谢这位壮士!要是有微信收款二维码的话,可以留一个,请你喝酒。 最终我用了 fancyvrb 的 |
我针对的就是这个 issue 标题中说的“zhspacing.sty 是否可以不要写死字体”的问题来的。事实上 zhspacing
写不写死字体都无关紧要,改 zhspacing 字体的办法就是重定义 \zhfont。所以这个 issue 不成立。
至于你原来的问题是什么,我在前面几个回复中没看到,即使后面提到语法高亮,也没有贴代码,我当然就没有关注。
其实你直接说你原始的问题,从一开始就说明是 pandoc 生成的代码标点显示有问题,那就好解决多了。我们一眼就能看出问题。这样绕来绕去就很麻烦了……
在 2017年12月22日 下午10:20,黄湘云 <notifications@github.com>写道:
… @leo-liu <https://github.com/leo-liu> 可能我对问题的表述有问题
1. 我一直强调自己处在代码块里,并且中英文混合情形下,英文单引号和后面的中文多出来一个空格,像下图那样
[image: img]
<https://user-images.githubusercontent.com/12031874/33982693-55d02a9e-e0ec-11e7-83f7-7dbe08f5eebd.png>
2. 至于找到 zhspacing 并不是瞎折腾,而是多翻尝试之后, zhspacing 在 Windows 下表现了我以为看起来的正常
3. 如果如 @Liam0205 <https://github.com/liam0205>
所说是字体本身的问题的话,我无话可说,是我功力不足,了解不够。
4. 至于ctex 文档读了没有100遍也有50遍, 不然本校的论文模板也不能从无到有的排出来
5. 来项目发问是因为项目主页还存在 zhspacing
6. 由于源文档的复杂性(涉及R语言、Markdown、Pandoc、甚至Knitr和bookdown等R包)也可能是别的环节。
谢谢二位大神的回复
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#331 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AAi087ukrDCkf8vqrV17B8ZkIpL7H2DSks5tC7qWgaJpZM4RKyzB>
.
|
嗯,你说的这些对我这个码农来说自然是深有体会,我一个人这些年处理的 Github 事项数量应该在两千以上(不包括其它渠道上的报告),所以我非常清楚应该怎样向开发者报告问题,这也是我最后插一脚进来简化问题的原因。原楼主不是码农,像大多数报告者一样,遇事要么说不清楚,要么强行穷折腾到歧途上,放着烟幕弹牵着开发者走一圈,最终彼此都被弄糊涂了。一般用户都没有简化问题的能力,我认为这会是开发者永远摆脱不了的魔咒,反正我自己已经认命了…… |
请问各位大侠,类似的情况在 示例:
|
用
|
很管用,谢谢! 我用 |
@Liam0205 如果正如 @stone-zeng 所说:
那么,我请求这个问题重新打开,以期彻底把这个问题解决。 |
“这个...补丁”应该指的是
所以这个问题还有哪里没解决的? |
能否考虑默认对 |
这真是个陈年老 Issue。 我们首先来归集一下已有的知识。
因此,在我看来应当由第三方工具更新生成 LaTeX 代码的模板,以期同时解决陈旧文档和新增文档的问题。于是也无必要 reopen 了。 |
我也来归纳一下。原帖提出来的问题可能确实是不成立的,后面的问题应该已经漂走、与 zhspacing 无关了。我想问题的关键在于为啥上面我的最简示例里的第一个引号后面会多出来个空格:#331 (comment) 这个问题的一个特例(Verbatim 环境下的引号问题)已经得到了解决方案,也就是自定义 Verbatim 环境: \DefineVerbatimEnvironment{Highlighting}{Verbatim}{commandchars=\\\{\},formatcom=\xeCJKVerbAddon} 现在的问题是:
如果问题 2 的答案也是“否”,那么这个 Github 事项就不用再继续了:用户们前赴后继来抄上面那行代码就完事了。我不清楚这问题的技术背景以及是否有解决的可能性甚至必要性,不管开发者如何决策我个人都可以接受,只是单纯从用户角度来说,这真的是个千年老坑。 |
关于 patch |
ctex-kit/zhspacing/zhspacing.sty
Line 574 in 85a3ed9
是否可以不要写死字体,在 Linux 下没有SumSun,我想使用 Fandol 系列字体,导言区
报错信息如下
The text was updated successfully, but these errors were encountered: