在波兰语排版中,应避免在行末放置介词。
例如:- bad - good
Nie wiedziałem, że nie umieszcza się przyimków na
końcu strony.
Nie wiedziałem, że nie umieszcza się przyimków
na końcu strony.
我可以强制 LaTeX 在每个单词后面放置~
介词(例如w
,,,z
等等......)na
吗o
,这样我就不需要手动放置它们了?
答案1
好吧,我知道一些“解决方案”(用引号引起来,因为 - 正如评论中提到的那样 - 这是很难自动完成的事情)。
该
impnattypo
软件包(http://ctan.org/pkg/impnattypo)。需要lualatex
,并且(除其他有趣的事情外)在单字母单词后放置硬空格。(请注意,您的示例是矫枉过正(看http://en.wikipedia.org/wiki/Hypercorrection),从某种意义上说,你实际上可能在波兰语字体中,将“na”放在行尾(而不是“a”、“i”、“o”、“w”和“z”;我不确定“we”和“ze”是否正确)。虽然在某些情况下在“na”等后面加一个连字符(“~”)可能是一个好主意,但我不建议自动执行此操作 - 最好由人来判断每种情况。)Przemysław Scherwentke 编写了一组宏(我认为适用于普通或 LaTeX),在 GUST Bulletin 23(2006 年)第 109-110 页中有描述。据我所知,它们甚至可以与普通的 Knuthian TeX 一起使用,但它们的工作方式是干扰活动字符,这可能有点危险。据我所知,它在网上不可用,但如果您需要,我可以为您扫描并通过电子邮件发送。
最后,编辑器中有许多脚本和插件可以做到这一点。作为一个重度 emacs 爱好者,我只知道 (两个) emacs 解决方案。一个是
sierotki.el
,它有两个作用:首先,它可以使你的空格键“电动”,这样单字母单词后的空格会自动变成一个平局;其次,它有一个函数tex-hard-spaces
,它使用query-replace-regexp
合适的参数执行 。实际上,在 的当前版本中sierotki.el
,tex-hard-spaces
只是后一种解决方案的别名:tildify-buffer
,这是一个更好的解决方案,因为它可以自动检测数学模式或逐字记录之类的东西,而不触及这些。 的一个 (非常小的) 问题tildify-buffer
可能是它的默认配置,它适用于捷克语;但是,将其调整为波兰语只是一个编辑正则表达式的问题。
答案2
这是所提到的风格(遗憾的是,评论是波兰语的):
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Przemyslaw Scherwentke
% [email protected]
%
% Najprostsza moľliwa (?) wersja zbioru do panowania
% nad wiszĄcymi literami.
%
% Rozszerzenie .STY tylko formalne
%
% Nie dzia�a z tworami typu \section.
% StĄd prze�Ączniki \spaceactive, \spacespace
% do uľycia wok˘� nich
% i analogiczna zmiana kategorii ^^M.
%
% Przyj©te sĄ pewne dodatkowe za�oľenia,
% �atwo widoczne z kodu, w szczeg˘lno�ci
% obs�ugiwanie (formalnie) tylko podw˘jnej spacji.
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newcount\war
\war0
\def\spaceactive{\catcode`\ =\active}
\def\spacespace{\catcode`\ =10}
\def\CRactive{\catcode`\^^M=\active}
\def\CRCR{\catcode`\^^M=5}% oczywi�cie nie \crcr
\def~{\penalty10000\ }
\spaceactive% i teraz waľne sĄ procenty
\def #1#2#3{% moľna rozbudowa† wg wzoru
\if\noexpand \noexpand#1\advance\war4\fi%
\if\noexpand \noexpand#2\advance\war2\fi%
\if\noexpand \noexpand#3\advance\war1\fi%
\def\sprawdz##1{% tu sĄ znaki <TAB>
\ifcase##1{ }#1#2#3\relax% 0 --- #1#2#3 %bez tego \relax «le CR/LF
\or{ }#1#2{ }% 1 -- #1#2 spacja, wi©c s�owa dwuliterowe
\or{ }#1~#3% 2 #1 spacja #3
\or{ }#1~% 3 #1 spacja spacja
\or{ }#2#3% 4 spacja #2#3
\or{ }#2~% 5 spacja #2 spacja
\or{ }#3% 6 spacja spacja #3
\or{ }% 7 --- 3 spacje
\else BLAD\fi}%
\sprawdz\war%
\war0\relax}% to \relax zapobiega wch�anianiu liczb
\spacespace%
%%%%%%%
%\catcode`\^^M=\active%
\CRactive%
\newcount\warm%
\warm0%
\long\def^^M#1{%
\if\noexpand^^M\noexpand#1\advance\warm1\fi%
\def\sprawdzM##1{%
\ifcase##1\relax{ }#1% 0
\or{\par}% 1
\else{BLAD}\fi}%
\sprawdzM\warm%
\warm0\relax}%
%\catcode`\^^M=5%
\CRCR%
%%