使用换行符和命令中断列表中的波浪号“onehalfspace”

使用换行符和命令中断列表中的波浪号“onehalfspace”

我正在尝试生成以 开头的内联代码片段~

根据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,这可能是问题所在。

相关内容