Kerning von \texttt ändern

Kerning von \texttt ändern

Ich habe versucht, eine andere Schriftart als Courier für Monospace-Schriftarten zu verwenden, aber keine dieser Schriftarten (http://www.ctan.org/topic/font-mono) sind auf meinem System verfügbar – und da wir in einem verteilten System arbeiten, sind benutzerdefinierte lokale Ergänzungen keine Option. (Build-Server, Standards usw.)

die Frage ist also

  1. gibt es eine standardmäßig verfügbare Monospace-Schriftart, die kompakter ist, also weniger horizontalen Platz benötigt?
  2. wie kann ich den allgemeinen Zeichenabstand für alle Buchstaben in \texttt oder für die gesamte Schriftart reduzieren?

Antwort1

Hier sind zwei Möglichkeiten: 1) mit microtypedem \textlsMakro und die andere, \spaceoutohne Pakete. Ich habe diese Makros in \textttAund \textttBAufrufformulare verpackt.

Das \textlsMakro verwendet ein optionales Argument, um die Komprimierung oder Erweiterung anzugeben, während \spaceoutes die Werte von \theLetterSpaceund verwendet \extraWordSpace, um die Standardabstände zu ändern.

Beide Ansätze unterstützen Zeilenumbrüche.

Zusammenfassend lässt sich aus den folgenden Kommentaren sagen, dass der \textlsAnsatz die Silbentrennung unterstützt, während der \spaceoutAnsatz dies nicht tut. Darüber hinaus kann das Argument \spaceoutkein Makro enthalten, das selbst ein Argument annimmt.

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

Bildbeschreibung hier eingeben

Bildbeschreibung hier eingeben

verwandte Informationen