- 主题:CJK 文档中长代码在lstlisting内的分页
都是已知的老问题,有一些凑合绕过的办法,但都不太好用。最好是不用CJK。代码里不包含汉字的话,可以临时关掉CJK。
【 在 easior 的大作中提到: 】
: 问题涉及到古老的技术,有些老文档编译出了问题,想修好它们
: 版面上可能有些相关的帖子,未必一样,
: 不过看不了了,只能再问,先问第一个:
: ...................
--
FROM 124.64.22.*
临时关闭cjk就是\end{CJK},需要时再\begin{CJK}就行。
不过就这种简单的文档(没有几百行排版设置),统一改用ctexbook,删去其他有关中文的代码,用xelatex编译就好了。没觉得需要复杂修的。
【 在 easior 的大作中提到: 】
: 看看怎么临时关闭 CJK,或许试试 CJK utf-8,看能不能修?
: 如果要动宏包本身,那只能放弃了
: 【 在 milksea 的大作中提到: 】
: ...................
--
FROM 114.246.236.*
我没试,就不清楚具体的,有时页眉之类也会出问题。所以这种过时技术最好是不用。
【 在 snoopyzhao 的大作中提到: 】
: 这个文档临时关CJK也不行
: 不知道哪里的问题
:
: ...................
--
FROM 114.246.236.*
原理上,老TeX引擎是把多字节编码的汉字当做多个字符处理,CJK包把汉字第一个字节重定义为active字符,作为一个宏,后面的字节是这个宏的参数,宏展开为相应的汉字字体符号指令。而listings包是把每个字符定义为active字符,作为宏,自己做词法分析,高亮。
想想就知道这两个包混起来用会多难兼容…
XeTeX引擎里Unicode字符都是普通字符,一下子就清爽了。
【 在 easior 的大作中提到: 】
: 附件里的是能够出现目前这个问题的最小示例代码
:
: 实际,碰到的问题比这个要严重的多
: ...................
--
FROM 114.249.239.*
我现在多年工作平时也不用TeX,手机灌水而已,就不会仔细给你改代码。
正确的路子就是中文文档抛弃pdftex,抛弃CJK宏包。用最新的TeX发行版(TeX live 或者MikTeX),用ctex宏包,用xelatex编译。
这个版面的置顶还能看到吗?十年前该说的就都说过了。上面的建议大约从15年前就是这样了。
【 在 easior 的大作中提到: 】
: 附件里的是能够出现目前这个问题的最小示例代码
:
: 实际,碰到的问题比这个要严重的多
: ...................
--
FROM 114.249.239.*
并不是。CJK、listings原理上就费劲。宏展开乱起来本来就难以调试,我都习惯了。
【 在 snoopyzhao 的大作中提到: 】
: 我估计是那些包在更新的时候,并没有考虑以往的兼容性,或者放弃了一些兼容性……
:
: 【 在 easior 的大作中提到: 】
: ...................
--
FROM 114.249.239.*
嗯,置顶确实看不到了。中文论坛死光了,ctex论坛好几年前也完蛋了,中文互联网就是这个鬼样子了…
\documentclass{ctexbook}
\begin{document}
汉字
\end{document}
你就从这个开始填内容。保存为UTF-8编码(用现代的代码编辑器比如vscode),用xelatex命令生成pdf。
就这样,遇到其他问题再说。
【 在 milksea 的大作中提到: 】
: 我现在多年工作平时也不用TeX,手机灌水而已,就不会仔细给你改代码。
: 正确的路子就是中文文档抛弃pdftex,抛弃CJK宏包。用最新的TeX发行版(TeX live 或者MikTeX),用ctex宏包,用xelatex编译。
: 这个版面的置顶还能看到吗?十年前该说的就都说过了。上面的建议大约从15年前就是这样了。
: ...................
--
FROM 114.249.239.*
并不是修复,只是一开始原理上有限制,效果就没那么好
【 在 easior 的大作中提到: 】
: 不知道修复有限的几个宏包的工作量有多大?
:
: 【 在 milksea 的大作中提到: 】
: ...................
--
FROM 114.254.2.*
离开学术环境而已
【 在 easior 的大作中提到: 】
: 看来到了享受生活的年纪了
: 【 在 milksea 的大作中提到: 】
: : 我现在多年工作平时也不用TeX,手机灌水而已,就不会仔细给你改代码。
: ...................
--
FROM 114.254.2.*