
\documentclass[10pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[a4paper]{geometry}
\geometry{top=10mm, bottom=10mm, left=10mm, right=10mm}
\geometry{showframe}
\usepackage{courier}
\usepackage[T1]{fontenc}
\usepackage{cals}
\makeatletter
\begin{document}
%\renewcommand*\familydefault{\sfdefault}
\renewcommand*\familydefault{\ttdefault}
\normalfont
\begin{calstable}
\colwidths{
{15pt}
{10pt}
{515.60239pt}
}
\cals@paddingL=1pt
\cals@paddingR=1pt
\def\cals@borderT{0.2pt}
\def\cals@borderB{0.2pt}
\def\cals@borderL{0.2pt}
\def\cals@borderR{0.2pt}
\brow
\alignR \cell{\strut E}
\alignC \cell{\strut =}
\alignL \cell{\strut this is the english text, this is the english text, this is the english text, this is the english text, this is the english text, this is the english text, this is the english text}
\erow
\end{calstable}
Why doesn't the text break in the rigth place? In case of using sfdeault, it's good.
\end{document}
Antwort1
Das ist ähnlich wieSo lassen sich lange \texttt-Abschnitte umbrechen. Standardmäßig tt
hat die Schriftart keine dehnbaren Zwischenwortabstände und so gibt es für TeX nicht viel Spielraum bei der Wahl der Zeilenumbrüche. Das Hinzufügen von etwas Dehnbarkeit verbessert den Zeilenumbruch:
\documentclass[10pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[a4paper]{geometry}
\geometry{top=10mm, bottom=10mm, left=10mm, right=10mm}
\geometry{showframe}
\usepackage{courier}
\usepackage[T1]{fontenc}
\usepackage{cals}
\makeatletter
\newcommand*\flextt{%
\ttfamily
\fontdimen2\font=0.4em% interword space
\fontdimen3\font=0.2em% interword stretch
\fontdimen4\font=0.1em% interword shrink
\fontdimen7\font=0.1em% extra space
}
\begin{document}
\flextt
\begin{calstable}
\colwidths{
{15pt}
{10pt}
{515.60239pt}
}
\cals@paddingL=1pt
\cals@paddingR=1pt
\def\cals@borderT{0.2pt}
\def\cals@borderB{0.2pt}
\def\cals@borderL{0.2pt}
\def\cals@borderR{0.2pt}
\brow
\alignR \cell{\strut E}
\alignC \cell{\strut =}
\alignL \cell{\strut this is the english text, this is the english text, this is the english text, this is the english text, this is the english text, this is the english text, this is the english text}
\erow
\end{calstable}
Why doesn't the text break in the rigth place? In case of using sfdeault, it's good.
\end{document}
Antwort2
Der Versuch, Wörter in Schriftarten voneinander zu trennen, ist immer ein großes Problem tt
.
Sie können versuchen, eine sloppypar
Umgebung zu verwenden:
\documentclass[10pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[a4paper]{geometry}
\geometry{top=10mm, bottom=10mm, left=10mm, right=10mm}
\geometry{showframe}
\usepackage{courier}
\usepackage[T1]{fontenc}
\usepackage{cals}
\makeatletter
\begin{document}
%\renewcommand*\familydefault{\sfdefault}
\renewcommand*\familydefault{\ttdefault}
\normalfont
\begin{calstable}
\colwidths{
{15pt}
{10pt}
{515.50239pt}
}
\cals@paddingL=1pt
\cals@paddingR=1pt
\def\cals@borderT{0.2pt}
\def\cals@borderB{0.2pt}
\def\cals@borderL{0.2pt}
\def\cals@borderR{0.2pt}
\brow
\alignR \cell{\strut E}
\alignC \cell{\strut =}
\alignL \cell{\begin{sloppypar}\strut this is the english text, this is the english text,
this is the english text, this is the english text, this is the english text,
this is the english text, this is the english text\end{sloppypar}}
\erow
\end{calstable}
Why doesn't the text break in the rigth place? In case of using sfdeault, it's good.
\end{document}
Ausgabe: