Modificar (isto é, substituir parcialmente) as configurações de protrusão de caracteres do microtipo para caracteres específicos

Modificar (isto é, substituir parcialmente) as configurações de protrusão de caracteres do microtipo para caracteres específicos

Gostaria de desabilitar ou modificar a protuberância de caracteres (habilitada por microtype) para caracteres específicos.

Deixe-me ilustrar o problema com o travessão, que se projeta muito para o meu gosto:

sem saliência com saliência

(esquerda: sem saliência; direita: com saliência)

No entanto, não consigo desativar a protrusão com \SetProtrusion:

\documentclass{memoir}
\usepackage{mathptmx}
\usepackage[T3,T1]{fontenc}
\usepackage{microtype}
%\usepackage[protrusion=false]{microtype}
\SetProtrusion
  { encoding = T1,
    family   = ptm }
  { \textendash = {,0} }


\begin{document}

Word word word word word word word word word word word word word word -- word
word word word word word word word word word word word word word word word
word word word word word word word word word word word word word word word
word word word word word word ...

\end{document}

Também recebo o seguinte aviso:

Package microtype Warning: protrusion codes list `ptm-T1' will override list
(microtype)                `q.tex/9' for font `T1/ptm///' on input line 105.

De acordo comComo chamo o \SetProtrusion do microtipo no preâmbulo?, incluindo uma linha \LoadMicrotypeFile{ptm}antes de \SetProtrusionajudar; se eu tentar isso, isso parece resolver o problema de --(\textendash ), mas (1) o aviso irritante permanece e (2) meu código é desativadotodosprotrusão (substituindo toda a lista de valores de protrusão pela minha pequena lista). Qual é a maneira correta de substituir parcialmente as configurações padrão de protrusão de caracteres? Idealmente, haverá uma maneira de eliminar quaisquer avisos, sem desativar microtypefuncionalidades importantes.

Responder1

É assim que você pode estender ou alterar as configurações existentes:

  1. Certifique-se de que as configurações que deseja alterar já estejam carregadas; no preâmbulo, não é garantido que seja esse o caso, então você precisa de \LoadMicrotypeFile.

  2. Crie novas configurações que carreguem as configurações padrão por meio da loadchave.

  3. Se você deseja definir a protuberância de qualquer glifo como zero, você deve fazer isso explicitamente - declarar valores de protuberância vazios (por exemplo, \textendash = {,}) não mudará nada.

  4. Se o aviso recebido o incomodar, você poderá suprimi-lo carregando o pacote com verbose=silent; observe, entretanto, que isso também suprimirá todos os outros microtypeavisos. (Acho que algo como uma overridechave para configurações seria útil, mas por enquanto é assim.) EDITAR: desde a versão 2.7, você não receberá mais um aviso se a lista substituída for a mesma que foi carregada.

Então, para transformar isso em código:

\usepackage[verbose=silent]{microtype}
\LoadMicrotypeFile{ptm}
\SetProtrusion
    [ name = ptm-adapted, % the name is optional
      load = ptm-T1 ]
    { encoding = T1,
      family   = {ptm,ptmx,ptmj} }
    { 
      \textendash = { ,0},      % left protrusion will remain untouched, 
                                % right protrusion set to zero
     %\textendash = {150,150},  % this would set protrusion on both sides to 150
    }

Para ajustar as configurações para mais de uma fonte, você deve fazer o mesmo novamente (carregando as configurações e criando novas), ou seja, emitir \SetProtrusion(com \LoadMicrotypeFile) várias vezes:

\LoadMicrotypeFile{ppl}
\SetProtrusion
    [ load = ppl-T1 ]
    { encoding = T1,
      family   = {ppl,pplx,pplj} }
    { ... }

Outra possibilidade, mais simples, mas menos refinada, pode ser carregar o pacote com factormenos de 1000; isso dimensionará os valores de saliência para todos os glifos de todas as fontes. Por exemplo,

\usepackage[factor=500]{microtype}

reduziria pela metade todos os valores de saliência.

Responder2

Atualmente carrego microtypeos ajustes de protrusão da seguinte maneira. Talvez alguém esteja interessado em usar meus valores, especialmente para o Times (ptm ), que tem muita saliência.Observe que minha seleção de ajustes não é uma tentativa de ser exaustiva.

\usepackage[verbose=silent]{microtype}
    \LoadMicrotypeFile{ptm}
    \SetProtrusion
      [ name = ptm-adapted,
        load = ptm-T1 ]
      { encoding = T1,
        family   = {ptm,ptmx,ptmj} }
      { f = { ,-200},
        r = { ,-100},
        \textquoteleft     = {300, }, % default uses 500
        \textquoteright    = { ,300}, % default uses 500
        \textquotedblleft  = {75, }, % default uses 300
        \textquotedblright = { ,75}, % default uses 400
        \textendash = {0,0}, % default is 300/300
        \textemdash = {0,0}, % default is 200/200
        /           = { ,-100}, % default uses 200
        (           = {67, }, % default uses 100
        )           = { ,67}, % default uses 200
        {,}         = { ,167}, % default uses 500
        :           = { ,167}, % default uses 500
        ;           = { ,100}, % default uses 300
        .           = { ,233}, % default uses 700
        ?           = { ,33} } % default uses 100
    \SetProtrusion
      [ name = ptm-it-adapted,
        load = ptm-it-T1 ]
      { encoding = T1,
        family   = {ptm,ptmx,ptmj},
        shape    = {it,sl} }
      { f = { ,-300},
        : = { ,0}, % default uses 500
        . = { ,233} } % default uses 700
    \LoadMicrotypeFile{ppl}
    \SetProtrusion
      [ name = ppl-adapted,
        load = ppl-T1 ]
      { encoding = T1,
        family   = {ppl,pplx,pplj} }
      { \textquoteleft     = {150, }, % default uses 500
        \textquoteright    = { ,150}, % default uses 700
        \textquotedblleft  = {75, }, % default uses 300
        \textquotedblright = { ,75}, % default uses 400
        \textendash = {0,0}, % default is 300/300
        \textemdash = {0,0}, % default is 200/200
        /           = { ,100}, % default uses 300
        (           = {50, }, % default uses 100
        )           = { ,150}, % default uses 300
        {,}         = { ,250}, % default uses 500
        :           = { ,250}, % default uses 500
        ;           = { ,250}, % default uses 500
        .           = { ,350}, % default uses 700
        ?           = { ,100} } % default uses 200
    \SetProtrusion
      [ name = txtt ]
      { encoding = T1,
        family   = txtt,
        shape    = {it,sl} }
      { f = { ,-120},
        - = { ,300} } % in order to match ordinary hyphens' protrusion in body text

informação relacionada