\textttのカーニングを変更する

\textttのカーニングを変更する

等幅フォントにクーリエ以外のフォントを使用しようとしましたが、このリストのどれにもありませんでした(http://www.ctan.org/topic/font-mono) は私のシステムで利用可能ですが、分散システムで作業しているため、カスタムのローカル追加はオプションではありません。(ビルド サーバー、標準など)

それで質問は

  1. 通常利用できる、より凝縮された、つまり水平方向のスペースをあまり必要としない等幅フォントはありますか?
  2. \texttt 内のすべての文字またはフォント全体の一般的なカーニングを減らすにはどうすればよいですか?

答え1

ここに 2 つの方法があります: 1)microtype\textlsマクロを使用する方法、もう 1 つは、パッケージを使用しない方法です。これらのマクロをおよび呼び出しフォーム\spaceoutにラップしました。\textttA\textttB

マクロ\textlsはオプションの引数を使用して圧縮または拡張を指定し、 との\spaceout値を使用してデフォルトの間隔を変更します。\theLetterSpace\extraWordSpace

どちらのアプローチも行の折り返しをサポートしています。

以下のコメントをまとめると、\textlsアプローチはハイフネーションをサポートするのに対し、\spaceoutアプローチはサポートしないことに注意してください。また、 の引数には、\spaceoutそれ自体が引数を取るマクロを含めることはできません。

\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}

ここに画像の説明を入力してください

ここに画像の説明を入力してください

関連情報