Modificar (es decir, anular parcialmente) la configuración de protrusión de caracteres del microtipo para caracteres específicos

Modificar (es decir, anular parcialmente) la configuración de protrusión de caracteres del microtipo para caracteres específicos

Me gustaría deshabilitar o modificar la protrusión de caracteres (habilitada por microtype) para caracteres específicos.

Permítanme ilustrar el problema con el tablero, que sobresale demasiado para mi gusto:

sin protuberancia con protuberancia

(izquierda: sin protuberancia; derecha: con protuberancia)

Sin embargo, no puedo desactivar la protrusión con \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}

También recibo la siguiente advertencia:

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

De acuerdo a¿Cómo llamo \SetProtrusion de microtipo en el preámbulo?, incluyendo una línea \LoadMicrotypeFile{ptm}justo antes de \SetProtrusionlas ayudas; Si intento esto, parece solucionar el problema de --( \textendash), pero (1) la molesta advertencia permanece y (2) mi código se desactiva.todoprotrusión (anulando toda la lista de valores de protrusión con mi lista corta). ¿Cuál es la forma correcta de anular parcialmente la configuración predeterminada de protrusión de caracteres? Idealmente, habrá una forma que elimine las advertencias sin deshabilitar microtypefunciones importantes.

Respuesta1

Así es como puede ampliar o modificar la configuración existente:

  1. Asegúrese de que las configuraciones que desea cambiar ya estén cargadas; en el preámbulo, no se garantiza que este sea el caso, por lo que necesita \LoadMicrotypeFile.

  2. Cree nuevas configuraciones que carguen la configuración predeterminada a través de la loadclave.

  3. Si desea establecer la protrusión de cualquier glifo en cero, debe hacerlo explícitamente: declarar valores de protrusión vacíos (por ejemplo, \textendash = {,}) no cambiará nada.

  4. Si la advertencia que recibes te molesta, puedes suprimirla cargando el paquete con verbose=silent; Tenga en cuenta, sin embargo, que esto también suprimirá todas las demás microtypeadvertencias. (Supongo que algo como una overrideclave para la configuración sería útil, pero por ahora así es como está). EDITAR: Desde la versión 2.7, ya no recibirá una advertencia si la lista anulada es la misma que la que se cargó.

Entonces, para convertir esto en 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 la configuración de más de una fuente, debe hacer lo mismo nuevamente (cargar la configuración y crear otras nuevas), es decir, emitir \SetProtrusion(con \LoadMicrotypeFile) varias veces:

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

Otra posibilidad, más simple pero menos detallada, podría ser cargar el paquete con factormenos de 1000; esto escalará los valores de protrusión de todos los glifos de todas las fuentes. Por ejemplo,

\usepackage[factor=500]{microtype}

reduciría a la mitad todos los valores de protrusión.

Respuesta2

Actualmente cargo microtypecon ajustes de protrusión de la siguiente manera. Quizás alguien esté interesado en usar mis valores, especialmente para Times ( ptm), que en mi humilde opinión tiene demasiada protuberancia.Tenga en cuenta que mi selección de ajustes no pretende ser exhaustiva.

\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

información relacionada