在葡萄牙语中,许多单词都明确带有连字符,例如“anti-inflamatório”。
根据葡萄牙语连字符规则,如果行在连字符处断开,则应添加另一个连字符作为下一行的开头(否则我们会和其他人一样……)。
例 1:“正常”连字的示例:
Necessito de pensar em tomar um anti-infla-
matório e bem depressa.
示例 2:在连字符处连字符的示例(请注意下一行中的额外连字符):
Necessito de pensar em tomar um anti-
-inflamatório e bem depressa.
我怎样才能实现示例 2 的行为?(默认情况下,Babel 不会在下一行添加额外的连字符……)
谢谢。
若昂·洛伦索
答案1
最近的babel
(> = 3.37)luatex
可以为您完成此操作:
\documentclass{article}
\usepackage[portuguese]{babel}
\babelposthyphenation{portuguese}{.=.}{
{},
{ no = -, pre = -, post = -, data = 1 },
{}
}
\begin{document}
Necessito de pensar em tomar um anti-inflamatório e bem depressa.
zzz zzz zzz zzz zzz zzz zzz zzz zzz
Necessito de pensar em tomar um anti-inflamatório e bem depressa.
\end{document}
这里,\babelposthyphenation
定义了一个非标准的连字符规则。目前代码效率不高,但很多情况下很难注意到。有关详细信息,请参阅使用 luatex 进行非标准连字符连接。
编辑。现在babel
为此任务提供了一个预定义的转换,可以使用以下前言启用它:
\documentclass{article}
\usepackage[portuguese]{babel}
\babelprovide[transforms = hyphen.repeat]{portuguese}
答案2
\documentclass{article}
\usepackage[portuguese]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\newcommand\x[1]{\discretionary{#1}{#1}{#1}}
\begin{document}
Necessito de pensar em tomar um anti\x-inflamatório e bem depressa.
zzz zzz zzz zzz zzz zzz zzz zzz zzz
Necessito de pensar em tomar um anti\x-inflamatório e bem depressa.
\end{document}
答案3
对于那些使用hyphenat
包的人,根据以前答案的线索(谢谢!),我想出了以下方法来实现\hyp
命令中的双连字符(针对hyphenat
2009/09/02 v2.3c):
\documentclass{article}
\usepackage[portuguese]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{hyphenat}
%% hacking \hyp command from hyphenat to double hyphen
\makeatletter
\renewcommand{\BreakableHyphen}{\leavevmode%
\prw@zbreak-\discretionary{}{-}{}\prw@zbreak}
\makeatother
\begin{document}
Necessito de pensar em tomar um anti\hyp{}inflamatório e bem depressa.
zzz zzz zzz zzz zzz zzz zzz zzz
Necessito de pensar em tomar um anti\hyp{}inflamatório e bem depressa.
zzz zzz zzz zzz zzz zzz zzz zzz zzz
Necessito de pensar em tomar um anti\hyp{}inflamatório e bem depressa.
\end{document}
答案4
这个\discretionary
解决方案很好用,但我发现每次都要输入 a 有点麻烦\command{}
。所以当我写论文时,我做了一些修改,以便可以使用'-
快捷方式:
\documentclass{article}
\usepackage[utf8]{inputenc}
%\usepackage[brazil]{babel} % works for both
\usepackage[portuguese]{babel} % works for both
\begin{document}
\defineshorthand{"-}{\nobreak\hskip0pt\discretionary{-}{-}{-}\nobreak\hskip0pt}
\chardef\singlequote=`\'
\catcode`\'=\active
\def'#1{\ifmmode\text{\singlequote}\else\ifx#1-"-\else\singlequote#1\fi\fi}
Anti'-inflamatório. Circum'-navegação. xxxxxxx xxxxxx xxxx xxxxxx
Pré'-industrial. nononononon no Anti'-inflamatório. Circum'-navegação.
Pré'-industrial.
\end{document}
我说的“黑客”是指有人向我展示了如何使用"-
作为快捷方式,然后我反复试验,将其改为'-
。我不确定如何它确实有用,但我可以用它完成我的论文。欢迎提出改进建议。
上述代码片段的呈现方式如下: