
Im Tschechischen schreiben wir Datumsbereiche mit Halbgeviertstrich ohne Leerzeichen, z. B.
1351–1362
Es ist nicht erlaubt, die Linie um den Bindestrich zu unterbrechen. Stattdessen sollte sie, wenn nötig, wie folgt gesetzt werden:
1351 bis 1362
wobei "až" "bis" oder "bis" bedeutet. Der Zeilenumbruch kann dann nach dem Wort "až" erfolgen.
Solche Bereiche kommen in dem Buch, an dem ich arbeite, häufig vor. Daher möchte ich die erweiterten Silbentrennungsregeln von Babel verwenden, um dieses Problem automatisch zu lösen.
Ich habe eine \babelposthyphenation
Regel für ein Zeichen erstellt §
, das in diesen Fällen anstelle des Endash verwendet wird. Es funktioniert wie erwartet, außer,Ich kann nicht herausfinden, wie ich vor dem Wort „až“ ein Leerzeichen einfügen kann. Ich konnte die Antwort nicht finden unterdas Babel-Wikiund ich verstehe den Quellcode nicht gut genug.
Hier ist das Ergebnis (MWE, das mit lualatex
der neuesten Version von Babel kompiliert wird, siehe unten). Die erste Zeile zeigt das gewünschte Ergebnis.
% !TeX encoding = UTF-8
% !TeX program = lualatex
\documentclass[10pt,twoside]{book}
\usepackage[czech]{babel}
\usepackage[papersize={85mm, 100mm},showframe]{geometry}
\babelposthyphenation{czech}{.§.}{
{},
{ no = --, pre = až, post = , data = 1 },
{}
}
\begin{document}
\thispagestyle{empty}
\noindent profesorem 1351--1362 a~v~roce 1353~až 1372
\vspace*{2ex}
\noindent profesorem 1351§1362 a~v~roce 1353§1372
\end{document}
Antwort1
Sie können keine Sprünge in die Texte vor, nach und ohne Zeilenumbruch einfügen. Sie können jedoch einen Unterschnitt verwenden. Dieser wird nicht an der Ausdehnung oder Verkleinerung des Zeilenabstands beteiligt.
Zwei Methoden, ich würde die erste bevorzugen, da sie mehr Semantik vermittelt.
\documentclass[10pt,twoside]{book}
\usepackage[czech]{babel}
\usepackage[papersize={85mm, 100mm},showframe]{geometry}
\usepackage{newunicodechar}
\newcommand{\breakrange}{\discretionary{\kern0.3333em až}{}{--}}
\newcommand{\yrrange}[2]{#1\breakrange#2}
\newunicodechar{§}{\breakrange}
\begin{document}
\thispagestyle{empty}
\noindent profesorem \yrrange{1351}{1362} a~v~roce \yrrange{1353}{1372}
\vspace*{2ex}
\noindent profesorem 1351§1362 a~v~roce 1353§1372
\end{document}