括号内的短字符串自动换行

括号内的短字符串自动换行

我有一个使用 pandoc 处理的 markdown 文件。我在 .md 文件中有以下文本:

**Note:** The entire text above would be entered on a single command line
without the backslash (`\`).

Pandoc 生成以下 LaTeX 代码:

\textbf{Note:} The entire text above would be entered on a single
command line without the backslash (\texttt{\textbackslash{}}).

使用 pdflatex 生成的输出导致开括号(位于第一行,其余部分\).位于下一行。

我已重新定义\texttt如下:

\let\OldTexttt\texttt
\renewcommand{\texttt}[1][%
    \hyphenpenalty=10000
    \exhyphenpenalty=10000
    \setlength{\emergencystretch}{6em}
    \sethlcolor{codegray}%
    {\ttfamily\hl{#1}}%
}

所以,我的问题是,如何防止一个字母在一行,而“单词”的其余部分在下一行?基本上,我不想在单个字符后换行。

答案1

您在重新定义的文本前插入了一个空格。使用注释符号隐藏它:

\documentclass[12pt, a4paper]{report}
\let\OldTexttt\texttt
\usepackage{soul}

\renewcommand{\texttt}[1]{%
    \hyphenpenalty=10000
    \exhyphenpenalty=10000
    \setlength{\emergencystretch}{6em}%< hide this space
    \sethlcolor{codegray}%
    {\ttfamily\hl{#1}}%
}

\begin{document}
\textbf{Note:} The entire text above would be entered on a single
command line without the backslash (\texttt{\textbackslash{}}).

\end{document}

请注意,您的惩罚设置未分组,因此会影响以下文字。

相关内容