![使用 lualatex 时会出现不需要的 en-dash 连字符,但使用 xelatex 时不会出现这种情况](https://linux22.com/image/283935/%E4%BD%BF%E7%94%A8%20lualatex%20%E6%97%B6%E4%BC%9A%E5%87%BA%E7%8E%B0%E4%B8%8D%E9%9C%80%E8%A6%81%E7%9A%84%20en-dash%20%E8%BF%9E%E5%AD%97%E7%AC%A6%EF%BC%8C%E4%BD%86%E4%BD%BF%E7%94%A8%20xelatex%20%E6%97%B6%E4%B8%8D%E4%BC%9A%E5%87%BA%E7%8E%B0%E8%BF%99%E7%A7%8D%E6%83%85%E5%86%B5.png)
我正在尝试从 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 特定部分。