我有一个使用 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}
请注意,您的惩罚设置未分组,因此会影响以下文字。