我正在尝试生成以 开头的内联代码片段~
。
根据onehalfspacing
大学要求并lineskip=-1pt
为了主观上更好的可读性,在命令快捷方式内部打包\lstinline
会破坏所有未来部分的间距。
~
为什么会发生这种情况?命令版本的解析方式与命令的快捷方式有何不同?我怀疑这与命令内部的解析方式有关?
删除lineskip
或在前面放置任何字符~
可以解决此问题,但对我来说并不可取。
梅威瑟:
\documentclass{scrreprt}
\usepackage{listings}
\usepackage{blindtext}
\usepackage[onehalfspacing]{setspace}
\lstset{
lineskip=-1pt,
literate={~} {$\sim$}{1}
}
\newcommand{\code}[1]{\lstinline{#1}}
\begin{document}
\section{Inline}
\lstinline{~1}\\
\blindtext
\section{No tilde}
\code{FIX ~1}\\
\blindtext
\section{Tilde breaks everything}
\code{~1}\\
\blindtext
\end{document}
答案1
不完全清楚为什么,但是
\newcommand{\code}{\lstinline}
无需改变文档代码即可修复该问题。
嗯,有一些线索:根据您的定义,~
在传递给之前被标记化\lstinline
,这可能是问题所在。