Разбиение абзаца на строки с помощью courier в таблице cals

Разбиение абзаца на строки с помощью courier в таблице cals
\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}

решение1

Это похоже наКак разбить длинные \texttt разделы. По умолчанию ttшрифт не имеет растягиваемых межсловных пробелов, поэтому у TeX нет большого пространства для маневра при выборе переносов строк. Добавление некоторой растягиваемости улучшает перенос строк:

Пример вывода

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

решение2

Всегда сложно разбить слова в ttшрифтах.

Вы можете попробовать использовать sloppyparсреду:

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

Выход:

введите описание изображения здесь

Связанный контент