使用 microtype 和 luaLaTeX 实现悬挂标点

使用 microtype 和 luaLaTeX 实现悬挂标点

我想得到这种风格悬挂标点: 悬挂标点

引号«...» „...“、括号(...) [...] {...}和项目符号都放在左边距之外。

引号、括号、句号和逗号位于右边距之外。连字符(复合词中以及在行末分开的单词的音节之间)不应超出整个边距,而应位于其长度的三分之一或一半处。

我尝试通过使用\SetProtrusion手册中的命令来实现这一点(第 12 页):

% !TeX encoding = UTF-8
% !TeX TS-program = lualatex
\documentclass[a4paper,14pt]{extarticle}
\usepackage[russian]{babel}
\usepackage{fontspec}
\usepackage{xltxtra}
\usepackage{csquotes}
\defaultfontfeatures{Renderer=Basic,Mapping=tex-text,Scale=MatchLowercase}
\setmainfont{Charis SIL}[Mapping=tex-text,Scale=MatchLowercase]
\setromanfont{Charis SIL}[Mapping=tex-text,Scale=MatchLowercase]
\setsansfont{PT Sans}[Mapping=tex-text,Scale=MatchLowercase]
\setmonofont{PT Mono}[Mapping=tex-text,Scale=MatchLowercase]
\usepackage[protrusion=true,expansion=true,final,babel=true,factor=2000]{microtype}
\SetProtrusion 
{encoding = *}
{
    \textquotedblleft = {4000, },
    \textquotedblright = { ,4000},
    . = { , 4000}
    « = {4000, },
    » = { ,4000},
    ( = {4000, },
    ) = { ,4000}
}

\begin{document}
\noindent\enquote{Окончательная машинописная рукопись основана на отредактированном третьем варианте и, после того как она готова, ее \enquote{читают} и правят, и правят заново.
Приблизительно через два) года после начала работы (два рабочих года! Они могут быть. намного длиннее двух календарных лет...) книга отсылается в} издательство.\\
«Окончательная машинописная рукопись  основана на отредактированном третьем варианте и, после того как она готова, ее (читают и правят, и правят заново.
Приблизительно через два) года после начала работы (два рабочих года! Они могут быть. намного длиннее двух календарных лет...) книга отсылается в» издательство....
\end{document}

但它不起作用:

在此处输入图片描述

(如果有关系的话,我在 Windows 7 上使用 MikTeX 的 LuaLaTeX)

答案1

您的设置永远不会被应用,因为在第一个参数中\SetProtrusion您只指定了编码。microtype将始终尝试加载最佳匹配设置,并且由于 Charis SIL 的设置存在,因此将改为应用它们。从这个答案,您可以通过先加载配置文件然后重新定义这些设置来覆盖设置:

\usepackage[protrusion=true,expansion=true,final,babel=true]{microtype} % default factor (1000)
\LoadMicrotypeFile{CharisSIL}
\SetProtrusion
   [ name = Charis-default ]
   { }
   {
    \textquotedblleft = {1000, },
    \textquotedblright = { ,1000},
    \quotedblbase = {1000, }, % = „
    . = { , 1000}, % there was a comma missing here
   {,} = { , 1000}, % this comma needs to be masked 
    « = {1000, },
    » = { ,1000},
    ( = {1000, },
    ) = { ,1000},
    - = { ,500}
   }

对于其他形状,您只需加载以下设置:

\SetProtrusion
   [ name = Charis-it,
     load = Charis-default ]
   {}{}
\SetProtrusion
   [ name = Charis-sc,
     load = Charis-default ]
   {}{}

(我必须说,我发现这些设置很奇怪,因为它们违背了微排版调整应该谨慎、不让读者眼前一亮的理念——正如这里

相关内容