水木社区手机版
首页
|版面-TeX和LaTeX(TeX)|
新版wap站已上线
返回
1/1
|
转到
主题:CJK 文档中长代码在lstlisting内的分页
楼主
|
easior
|
2024-08-09 09:59:08
|
展开
问题涉及到古老的技术,有些老文档编译出了问题,想修好它们
版面上可能有些相关的帖子,未必一样,
不过看不了了,只能再问,先问第一个:
lstlisting 环境中长代码在正常情况下会自动分页,
但 CJK 中却出现异常,比如 missing $ 等错误!
网上搜了一下,有些是阻止分页的;有些谈到 CJK 中的一些问题,但看不了;
特来此地请教解决方法!
--
修改:easior FROM 120.253.228.*
FROM 120.253.228.*
附件(2.7KB)
test.tex
2楼
|
easior
|
2024-08-10 17:45:09
|
展开
多谢版主!
错误应该源自于编码,在 Emacs 内部编译 TeX 文件时,
还可以看到 missing $ 这种信息,
但实际上并不缺少 $,只是 lstlisting 中的代码跨页了。
另外,目前的 CJK 宏包配合 xCJK2uni 处理书签时还有一些奇怪的问题,
经常出现一大堆 \ifx 没配上!
不知道现阶段的 CJK 宏包在大型文档中怎么工作?
【 在 snoopyzhao 的大作中提到: 】
: 不知道从哪里下手了
: \usepackage[latin1]{inputenc}
: 这一行的意义是啥?把它去掉,好像错误还少一些
: ...................
--
修改:easior FROM 120.253.228.*
FROM 120.253.228.*
5楼
|
easior
|
2024-08-11 07:33:42
|
展开
【 在 snoopyzhao 的大作中提到: 】
: 我不知道 Emacs 中怎么编译 TeX 的,我在命令行下编译,就是我前面提到的那些问题
: 生成的PDF似乎是正确的,只是那些错误有点儿恼人罢了
能生成 PDF,但里面的内容不全(比如代码显示少了几行)!
: 现在新文档基本上不会再使用 CJK 宏包了吧
: 都是 XeLaTeX + xeCJK 来了
当然,新技术肯定解决了很多问题;但有一些老文档,希望简单修修就能用。
看起来 LaTeX+CJK还存在于 CTeX 中,应该还是能用!
但就老文档来说,不知道怎么修好它?
--
FROM 120.253.228.*
6楼
|
easior
|
2024-08-11 07:37:54
|
展开
看看怎么临时关闭 CJK,或许试试 CJK utf-8,看能不能修?
如果要动宏包本身,那只能放弃了
【 在 milksea 的大作中提到: 】
: 都是已知的老问题,有一些凑合绕过的办法,但都不太好用。最好是不用CJK。代码里不包含汉字的话,可以临时关掉CJK。
--
FROM 120.253.228.*
10楼
|
easior
|
2024-08-11 21:11:22
|
展开
附件里的是能够出现目前这个问题的最小示例代码
实际,碰到的问题比这个要严重的多
比如一堆 \ifx、inaccessible 错误
每没有定位到问题代码,也就没有放其他配置
总之,文档一大,CJK 就会和其他宏包出现一大堆的兼容问题
【 在 milksea 的大作中提到: 】
: 临时关闭cjk就是\end{CJK},需要时再\begin{CJK}就行。
: 不过就这种简单的文档(没有几百行排版设置),统一改用ctexbook,删去其他有关中文的代码,用xelatex编译就好了。没觉得需要复杂修的。
--
FROM 120.253.228.*
17楼
|
easior
|
2024-08-12 09:06:25
|
展开
平时常用 XeLaTeX,你说的是属于正常情况
前面的问题只存在于旧的 LaTeX 文档之中
【 在 snoopyzhao 的大作中提到: 】
: 换 xelatex 后,错误都没有了……
--
FROM 120.253.228.*
18楼
|
easior
|
2024-08-12 09:10:22
|
展开
看来到了享受生活的年纪了
【 在 milksea 的大作中提到: 】
: 我现在多年工作平时也不用TeX,手机灌水而已,就不会仔细给你改代码。
: 正确的路子就是中文文档抛弃pdftex,抛弃CJK宏包。用最新的TeX发行版(TeX live 或者MikTeX),用ctex宏包,用xelatex编译。
: 这个版面的置顶还能看到吗?十年前该说的就都说过了。上面的建议大约从15年前就是这样了。
: ...................
--
FROM 120.253.228.*
19楼
|
easior
|
2024-08-12 09:11:06
|
展开
中文论坛的现状就是这样子了,技术论坛也要完了
至于 XeLaTeX+xeCJK 的路子,应该是比较成熟了
看来 LaTeX+CJK 只适合弄点10页左右的 article 文档了
更多宏包和 CJK 的问题都不太好定位
【 在 milksea 的大作中提到: 】
: 嗯,置顶确实看不到了。中文论坛死光了,ctex论坛好几年前也完蛋了,中文互联网就是这个鬼样子了…
: \documentclass{ctexbook}
: \begin{document}
: ...................
--
修改:easior FROM 120.253.228.*
FROM 120.253.228.*
20楼
|
easior
|
2024-08-12 09:16:57
|
展开
不知道修复有限的几个宏包的工作量有多大?
【 在 milksea 的大作中提到: 】
: 原理上,老TeX引擎是把多字节编码的汉字当做多个字符处理,CJK包把汉字第一个字节重定义为active字符,作为一个宏,后面的字节是这个宏的参数,宏展开为相应的汉字字体符号指令。而listings包是把每个字符定义为active字符,作为宏,自己做词法分析,高亮。
: 想想就知道这两个包混起来用会多难兼容…
: XeTeX引擎里Unicode字符都是普通字符,一下子就清爽了。
: ...................
--
FROM 120.253.228.*
1/1
|
转到
选择讨论区
首页
|
分区
|
热推
BYR-Team
©
2010.
KBS Dev-Team
©
2011
登录完整版