You have to select the language that is used. So add \selectlanguage{ngerman}
in front of German text and \selectlanguage{english}
in front of english text.
The hyphenation is not working because LaTeX has problems to hyphenate Erfassung/Aktualisierung
correctly. Insert (you are using babel
) "-
to mark the places a hyphenation can occur.
Use \begin{enumerate}
to build well typesetted enumerations.
I added these thing in your MWE:
\documentclass[
oneside, openright, titlepage,
dottedtoc, numbers=noenddot,
headinclude, footinclude=true,
cleardoublepage=empty, abstractoff,
BCOR=5mm, paper=a4, fontsize=11pt,
ngerman,
american,
draft
]
{scrreprt}
\PassOptionsToPackage{utf8}{inputenc}
\usepackage{inputenc}
\usepackage[ngerman,english]{babel}
\usepackage[pdfspacing]{classicthesis}
\begin{document}
% Disable paragraph indentation.
\setlength{\parindent}{0pt}
\selectlanguage{ngerman}
\begin{enumerate}
\item Wie lange benötigen die Personen für die Erfassung/Aktuali"-sierung
der Daten vor Ort und bei der Nachbearbeitung im Büro?
\item Verwenden Sie ein kommerzielles Hardware- oder Software-Produkt
für die Verwaltung
\end{enumerate}
\end{document}
Best Answer
The algorithm is not language dependent, but the data used is dependent on the language.
There are two basic components, a list of hyphenation exceptions some of which are specified in the language definition and others can be added at any time in a document, if you go
\hyphenation{one-tw-o-thr-ee}
then that word (and upper/lowercase variants) will be hyphenated as shown, note no other linguistic variants such as plurals are affected by this. if you want "onetwothrees" to be hyphenated in a similar way that would also need to be listed.Hyphenation exceptions are useful for special words and give total control in the document but clearly just listing every word in the language isn't realistic so the main mechanism is patterns
For each language the format inputs a file that executes
\patterns
. The original US english ones being at a location such asand looking like
If you ignore the digits, each of these runs of letters is matched against the words in the paragraph (
.
meaning start or end of a word). For each word any pattern that matches a substring assigns a digit 0-9 between the letters of a word (no digit being the same as 0). If two or more of these patterns match a word, the highest valued digit is assigned to each inter-letter space.So after all patterns have been matched against a word there is a value 0-9 assigned between each letter. If this value is odd then hyphenation is allowed at that point, if it is even no hyphenation is allowed at that point.
There are additional integer parameters that specify how close to the start or end of a word a hyphen may be placed.
TeX also uses some clever optimisations that mean it does not have to pattern match every word, it only needs to find the hyphenation points in the words that could be a feasible break point in a paragraph, but that's an internal optimisation that doesn't affect the basic hyphenation algorithm.
For some languages that have regular spelling and hyphenation rules, the patterns can be hand written to reflect those rules. English defeats description by rules so for cases like this patterns are usually made by taking an existing dictionary of hyphenated words (eg as supplied by a publisher), and using the
patgen
program to compress the dictionary by producing a set of patterns that produces (say) 80% of the hyphens in the original dictionary.