alterar o kerning de \texttt

alterar o kerning de \texttt

Tentei usar uma fonte diferente de courier para fontes monoespaçadas, mas nenhuma desta lista (http://www.ctan.org/topic/font-mono) estão disponíveis em meu sistema - e como trabalhamos em um sistema distribuído, adições locais personalizadas não são uma opção. (Construir servidor, padrões, etc.)

então a pergunta é

  1. existe uma fonte monoespaçada usullay disponível, que seja mais condensada, ou seja, precise de menos espaço horizontal?
  2. como posso reduzir o kerning geral para todas as letras em \texttt ou para toda a fonte?

Responder1

Aqui estão duas maneiras: 1) com a macro microtypede \textlse a outra, \spaceout, sem nenhum pacote. Eu coloquei essas macros em \textttAformulários \textttBde invocação.

A \textlsmacro usa um argumento opcional para especificar a compactação ou expansão, enquanto \spaceoutusa os valores de \theLetterSpacee \extraWordSpacepara modificar os espaçamentos padrão.

Ambas as abordagens suportam quebra de linha.

Resumindo os comentários abaixo, vale a pena notar que a \textlsabordagem suporta a hifenização, enquanto a \spaceoutabordagem não. Além disso, o argumento to \spaceoutnão pode incluir uma macro que receba um argumento.

\documentclass{article}
\def\theLetterSpace{-0.5pt}
\def\extraWordSpace{-0.5pt}
\newcommand\spaceout[2][\theLetterSpace]{%
  \def\LocalLetterSpace{#1}\expandafter\spaceouthelpA#2 \relax\relax}
\def\spaceouthelpA#1 #2\relax{%
  \spaceouthelpB#1\relax\relax%
  \ifx\relax#2\else\kern\extraWordSpace\ \kern\LocalLetterSpace\spaceouthelpA#2\relax\fi
}
\def\spaceouthelpB#1#2\relax{%
  #1%
  \ifx\relax#2\else
    \kern\LocalLetterSpace\spaceouthelpB#2\relax%
  \fi
}
\parskip 1ex
\usepackage{microtype}
\def\textttA#1{\texttt{\textls*[-70]{#1}}}
\def\textttB#1{\texttt{\spaceout{#1}}}
\begin{document}
\def\mytext{a bit of texttt}
This is \texttt{\mytext}\par
This is \textttA{\mytext}\par
This is \textttB{\mytext}\par
\def\mytext{a bit of texttt. a bit of texttt. a bit of texttt. a bit of texttt. 
a bit of texttt. a bit of texttt. a bit of texttt. a bit of texttt. }
\noindent\hrulefill\sloppy\par
This is \texttt{\mytext}\par
This is \textttA{\mytext}\par
This is \textttB{\mytext}
\end{document}

insira a descrição da imagem aqui

insira a descrição da imagem aqui

informação relacionada