
等幅フォントにクーリエ以外のフォントを使用しようとしましたが、このリストのどれにもありませんでした(http://www.ctan.org/topic/font-mono) は私のシステムで利用可能ですが、分散システムで作業しているため、カスタムのローカル追加はオプションではありません。(ビルド サーバー、標準など)
それで質問は
- 通常利用できる、より凝縮された、つまり水平方向のスペースをあまり必要としない等幅フォントはありますか?
- \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}