12月22, 2019

LaTeX解决listings包对引号使用curly形式而非straight形式的问题

我之前一直用Tex Live 2013编译某个工程,一直都没问题,最近在WSL安装了最新的TeX Live 2019,发现编译出来的东西很多地方跟之前不一样了,最主要的就是这个listings包的引号使用了“”而非""

找了一圈也没有发现好的办法,只找到一个\lstset{upquote=true},也就是设置下listings的选项,但它只解决了单引号的问题。没办法,最终找到了个办法,就是改listings宏包的style文件。

找到sty文件/usr/share/texlive/texmf-dist/tex/latex/listings/listings.sty,修改\lst@CCPutMacro附近的设置,添加:

    \lst@ProcessOther {"22}{\lst@ifupquote \textquotedbl
                                     \else \char34\relax \fi}

问题就解决了。不过listings对Hyphen minus的渲染一直都有问题,会弄成en-dash(或者是em-dash吧),想通过类似方法解决,但没有效果。

    \lst@ProcessOther {"2D}{\lst@ifupquote -
                                     \else \char45\relax \fi}

参考:https://github.com/be5invis/Sarasa-Gothic/issues/55

PS: 如果发现字体缺失的问题,可以把Windows的字体软链过来:

sudo ln -s /mnt/c/Windows/Fonts /usr/share/fonts

本文链接:https://debug.fanzheng.org/post/latex-package-listings-quote.html

-- EOF --

Comments

评论加载中...

注:如果长时间无法加载,请针对 disq.us | disquscdn.com | disqus.com 启用代理。