我正在尝试从 Pandoc Markdown README 文档生成 PDF 文档。这是 MWE:
\documentclass[english,]{article}
\usepackage[T1]{fontenc}
\usepackage{ifxetex,ifluatex}
\ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex
\usepackage[utf8]{inputenc}
\else % if luatex or xelatex
\ifxetex
\usepackage{mathspec}
\usepackage{xltxtra,xunicode}
\else
\usepackage{fontspec}
\fi
\fi
\defaultfontfeatures{Ligatures=TeX}
\setmonofont[Scale=MatchLowercase]{DejaVu Sans Mono}
\begin{document}
\texttt{-{}-enable-debugging}
\end{document}
当我使用(beta-0.76.0-2013070111(TeX Live 2013 / Debian)(rev 4627))生成PDF时,lualatex
它会创建一个短划线而不是排版--
:
短破折号是不需要的。XeLaTeX 不会这样做。我想要两个破折号。
更新
最后,我创建了一个补丁,让 Pandoc 使用-\/-
而不是 来-{}-
避免连字。
答案1
错误在于声明
\defaultfontfeatures{Ligatures=TeX}
在加载 mono 字体之前。这会将常见的 TeX 连字添加到常规集合中,特别是会变成--
短破折号。
顺便说一句,您不应该加载xltxtra
或xunicode
;xltxtra
它有一些功能,但您不太可能真的需要它们。fontspec
在 的旧版本中,它曾经被推荐过。现在它完成了 的主要功能xltxtra
,并且还加载了xunicode
。由于只mathspec
加载fontspec
该包就足够了。
也避免fontenc
使用 XeLaTeX 和 LuaLaTeX。将其放在 pdflatex 特定部分。