我想让\url
连字符“-”中断。url 包有hyphens
选项,但如果 url 中有多个连字符,luatex 会将它们转换为连字符,而 latex 则不会。我找不到如何使用普通字体在 url 中抑制“--”、“---”连字符的创建。我尝试\UrlBreaks, \UrlOrds, \verbatim@nolig@list
通过添加/删除进行编辑\do\-
,但随后我得到了其他越野车结果。
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[hyphens]{url}
% \def\UrlBreaks{\do\.\do\@\do\\\do\/\do\!\do\_\do\|\do\;\do\>\do\]%
% \do\)\do\,\do\?\do\&\do\'\do+\do\=\do\#%
% \do\- % tried to add it here
% }
% original macro from url has two `\do\-`. Why?
% \def\UrlOrds{\do\*
% \do\-
% \do\~\do\'\do\"
% \do\-
% }%
% it seems that this should do the trick, but it does'nt?
%\makeatletter
%\def\verbatim@nolig@list{\do\`\do\<\do\>\do\,\do\'\do\-}
%\makeatother
\def\UrlFont{}%\ttfamily}
\fboxsep=0pt
\parindent=0pt
\begin{document}
\par\url{-}
\par\url{--}
\par\url{---}
\fbox{\parbox[t]{3cm}{
\par\url{11111111111111-aaaaaaaa}
\par\url{11111111111111--aaaaaaa}
\par\url{11111111111111---aaaaaa}
}}
\end{document}
乳胶输出:
lualatex 输出:
我使用 TL2019 和乳胶(需要 dvi 模式)
答案1
以下是我想到的解决方案。我创建了-
一个活动角色,它插入数学字符和\penalty\UrlBreakPenalty
。现在 luatex 不会创建 ndash/mdash 并断开 上的链接-
。
\documentclass{article}
\usepackage{etoolbox}
\usepackage[T1]{fontenc}
\usepackage[hyphens]{url}
\AtBeginDocument{%
\appto\UrlSpecials{\do\-{\mathchar 0045\penalty \UrlBreakPenalty}}%
}
\def\UrlFont{}
\begin{document}
\fboxsep=0pt
\parindent=0pt
\par\url{-}
\par\url{--}
\par\url{---}
\fbox{\parbox[t]{3cm}{
\par\url{11111111111111-aaaaaaaa}
\par\url{11111111111111--aaaaaaa}
\par\url{11111111111111---aaaaaa}
}}
\end{document}