我正在尝试在verbatim
环境中排版包含 CJK 表意文字的文本。因为我想verbatim
稍微缩进我的文本,所以我使用fancyvrb
包。下面是 MWE:
\documentclass{article}
\usepackage{parskip}
\usepackage{fancyvrb}
\DefineVerbatimEnvironment{verbatim}{Verbatim}{xleftmargin=2em}
\usepackage{xeCJK}
\setCJKmonofont{Noto Sans CJK JP}
\begin{document}
Code like this\ldots
\begin{verbatim}
auto x = "林";
\end{verbatim}
\end{document}
但是我发现输出中有一个多余的空格字符,位于开头的双引号和表意文字之间。
它似乎是一个空格字符,而不仅仅是过度的字距调整,因为它从 PDF 中复制并粘贴为空格字符。有人知道如何摆脱它吗?如果相关的话,我使用的是 XeLaTeX 版本 3.14159265-2.6-0.99996。
在 LaTeX 的内置verbatim
环境中不会发生这种情况,但我不知道如何改变它的边距。如果我可以用其他方式 fancyvrb
设置环境的左边距,我不会坚持使用。verbatim
答案1
我遇到了和你一样的问题。这是因为 xeCJK 在英文和 CJK 字符之间插入了粘连(默认情况下是空格)。
解决方案 1:
\xeCJKsetup{xCJKecglue={}}
请注意,这是一个全局设置,它会影响整个文档,而不仅仅是逐字环境。
解决方案 2:
将 verbatim env 包装在里面{\CJKsetecglue{} ...your normal code... }
,因此它仅在本地生效。
{
\CJKsetecglue{}
\begin{verbatim}
auto x = "林";
\end{verbatim}
}