NWPUMetaphysicsOffice/Yet-Another-LaTeX-Template-for-NPU-Thesis

插入算法问题,文本复制问题[BUG]

Closed this issue · 6 comments

我使用macOS 12.0.1,使用TexPad软件,XeLaTeX,碰到两个问题

  1. 使用\usepackage{algorithm}和\usepackage{algpseudocode}两个包后,\State正常,无法使用while/if/for,示例代码:
    \renewcommand{\algorithmicrequire}{\textbf{Input:}}
    \renewcommand{\algorithmicensure}{\textbf{Output:}}
    \begin{algorithm}[h]
    \caption{Operating process}
    \begin{algorithmic}[1]
    \Require $N_p$.
    \Ensure $\mathcal{H}$.
    \State {Definition of the function}
    \While {not terminated}
    \State {$fitness$}
    \For {Each individual}
    \State {$fitness$}
    \EndFor
    \State {execute}
    \EndWhile
    \Return {$\mathcal{H}$}
    \end{algorithmic}
    \end{algorithm}

报错为
./chapters/chapter04.tex:151: Missing number, treated as zero.

\ALG@b@2@EndFor@0
l.151 \EndFor

  1. 不加伪代码,可正常编译为PDF,但复制PDF中的字出来是乱码,例如复制PDF中“基于”二字,复制结果为“ะӄ”。

补充:参考 https://www.zhihu.com/question/32207411/answer/334313251 后,在coverpage插入了一个全角空格,文中宋体可以正常复制了,但楷体和黑体无论是否加粗都仍旧复制出乱码。
有意思的一点是,coverpage中“学校代码”等几个字可以正常复制。求大佬定位问题!

感谢大佬!

补充,伪代码问题使用algorithm2e后可以用了,PDF复制问题还没完全解决。

\usepackage[linesnumbered,ruled,lined]{algorithm2e}

问题一应该对应的是宏包自己的冲突,这个我这边暂时先不修改吧,一切以使用者为准。
问题二这边我无法复现,可能是我使用了adobe字体(我也是macOS的环境),所以个人建议您也使用下adobe字体?如果不方便下载的话,留一个邮箱我给您发一份。

问题一应该对应的是宏包自己的冲突,这个我这边暂时先不修改吧,一切以使用者为准。 问题二这边我无法复现,可能是我使用了adobe字体(我也是macOS的环境),所以个人建议您也使用下adobe字体?如果不方便下载的话,留一个邮箱我给您发一份。

感谢大佬回复!问题一不用解决了,我就发在这里以免后面的人遇到类似问题。问题二我是用的win拷贝来的字体,感觉Adobe字体尤其是宋体不太好看。。。我注意到coverpage的学校代码等几个字都能正常复制,不知道是否方便以此为线索稍微排一下故?win字体的话我可以发给你

突发奇想,注释掉\input{frontmatter/coverpage} 之后所有文字都可以正常复制了。。。。如果大佬没时间解决的话,我就把coverpage和后面分别生成最后拼接就好了,算是个曲线救国的方法。。。再次感谢!

哦哦哦,你是用的是旧版本的哈,这个似乎不是很好复现。不过我试着从上古版本产出的 pdf 上复制了一下,似乎也没出现这个问题。
您确认下所有文件的文件编码,最好统一为 utf-8,因为最早的版本是从 Windows 延续而来,当时对文件编码之类的考虑不足。现在的版本已经将主体从 article 文档类封装为西工大论文类 yanputhesis 了,减少了冗余文件,所以可能这种奇怪的bug会比较少?(猜测)
另外,您使用的 pdf 浏览器是什么?我这边是 Adobe Acrobat,目前没出先过复制文本不一致的问题,除了少数英文连体字母(如 ff,fi 这种字母间有连笔的)会被 tex 输出为连体字母形式。

使用pdf expert、wps和Adobe acrobat都是一样的情况,且只出现在某些字体的中文中,英文没事。原来我用的是老版啊,那我回头换新版试试。鉴于我不生成封面之后问题解决,也算是有解决方案了,这个issue我就关了,再次感谢大佬的回复!