!["= 和 \hyp{} 有什么区别?](https://linux22.com/image/394724/%22%3D%20%E5%92%8C%20%5Chyp%7B%7D%20%E6%9C%89%E4%BB%80%E4%B9%88%E5%8C%BA%E5%88%AB%EF%BC%9F.png)
有时我会看到一些问题讨论使用"=
,而其他问题只是使用\hyp{}
。它们是同一件事吗?
例如,在这些问题中,你可以找到"=
并\hyp
使用:
我尝试创建这个最小的示例,但是"=
没有作用:
\documentclass[10pt,a5paper,twoside]{article}
\usepackage{hyphenat}
\usepackage[english]{babel}
\begin{document}
\section{Show font}
Tests.
Encoding-encoding-encoding-encoding-encoding-encoding-encoding-encoding-encoding-encoding.
Encoding"=encoding"=encoding"=encoding"=encoding"=encoding"=encoding"=encoding"=encoding"=encoding.
Encoding\hyp{}encoding\hyp{}encoding\hyp{}encoding\hyp{}encoding\hyp{}encoding\hyp{}encoding\hyp{}encoding\hyp{}encoding\hyp{}encoding.
\end{document}
答案1
为了使"=
速记指令在你的文档中发挥作用,你必须替换
\usepackage[english]{babel}
和
\usepackage[ngerman,english]{babel}
\useshorthands{"}
\addto\extrasenglish{\languageshorthands{ngerman}}
看babel:将德语简写添加到英语作为主要文档语言了解有关此主题的更多信息。
一旦进行了调整,看起来\hyp{...}
和的"=
表现非常相似。"=
不过,在实践中, 似乎更容易使用。
下列截图中的垂直框线是由showframe
包放置的。
\documentclass[10pt,a5paper,twoside]{article}
\usepackage{hyphenat} % for "\hyp" macro
%% See https://tex.stackexchange.com/q/27198/5001:
\usepackage[ngerman,english]{babel}
\useshorthands{"}
\addto\extrasenglish{\languageshorthands{ngerman}}
\usepackage{showframe,microtype} % just for this example
\begin{document}
*
Encoding-encoding-encoding-encoding-encoding-encoding-encoding-encoding-encoding-encoding.
Encoding"=encoding"=encoding"=encoding"=encoding"=encoding"=encoding"=encoding"=encoding"=encoding.
Encoding\hyp{}encoding\hyp{}encoding\hyp{}encoding\hyp{}encoding\hyp{}encoding\hyp{}encoding\hyp{}encoding\hyp{}encoding\hyp{}encoding.
\end{document}
答案2
"=
in没有预定义的行为,babel
它依赖于语言(但在大多数情况下它是一个硬连字符)。除了加载之外ngerman
,您还可以通过以下方式直接定义它:
\useshorthands{"}
\defineshorthand{"=}{\babelhyphen{hard}}