
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
- gibt es eine standardmäßig verfügbare Monospace-Schriftart, die kompakter ist, also weniger horizontalen Platz benötigt?
- 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 microtype
dem \textls
Makro und die andere, \spaceout
ohne Pakete. Ich habe diese Makros in \textttA
und \textttB
Aufrufformulare verpackt.
Das \textls
Makro verwendet ein optionales Argument, um die Komprimierung oder Erweiterung anzugeben, während \spaceout
es die Werte von \theLetterSpace
und 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 \textls
Ansatz die Silbentrennung unterstützt, während der \spaceout
Ansatz dies nicht tut. Darüber hinaus kann das Argument \spaceout
kein 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}