CTeX-org / forum

A temporarily alternate forum of `bbs.ctex.org`
https://t.me/chinesetex
Apache License 2.0
210 stars 16 forks source link

采用 listings 宏包排代码,代码里的汉字之间有空格 #323

Closed GoBigorGoHome closed 2 weeks ago

GoBigorGoHome commented 2 weeks ago

检查清单

操作系统

Linux manjaro 6.6.32-1-MANJARO

TeX 发行版

TeX Live 2024

描述问题

采用 listings 宏包排代码,代码中的汉字之间有空格,而英文字母之间则没有空格。这样,代码中的汉字(注释)看起来就比较松散。我不想要这些空格。

下图中绿色的部分就是在 PDF 阅读器中可以被选中的空格。

image

最小工作示例(MWE)

\documentclass{ctexart}
\usepackage{listings}
\lstset{basicstyle=\ttfamily} 
\begin{document}
\begin{lstlisting}
int main() {
  return 0; //这是一行注释
}
\end{lstlisting}
\end{document}

链接

No response

其他信息

No response

附件

No response

GoBigorGoHome commented 2 weeks ago

代码里相邻汉字之间的空格是 listings 宏包的默认设置 columns=fixed 导致的。改成 columns=flexiblecolumns=fullflexiblecolumns=spaceflexible 可以消除汉字间的空格。详见 listings 宏包文档的 2.10 节。

GoBigorGoHome commented 2 weeks ago

Close issue.