
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 é
- existe uma fonte monoespaçada usullay disponível, que seja mais condensada, ou seja, precise de menos espaço horizontal?
- 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 microtype
de \textls
e a outra, \spaceout
, sem nenhum pacote. Eu coloquei essas macros em \textttA
formulários \textttB
de invocação.
A \textls
macro usa um argumento opcional para especificar a compactação ou expansão, enquanto \spaceout
usa os valores de \theLetterSpace
e \extraWordSpace
para modificar os espaçamentos padrão.
Ambas as abordagens suportam quebra de linha.
Resumindo os comentários abaixo, vale a pena notar que a \textls
abordagem suporta a hifenização, enquanto a \spaceout
abordagem não. Além disso, o argumento to \spaceout
nã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}