Sie sind hier

babel-french und aktive Doppelpunkte

\listfiles
\documentclass[english,
	french
]{scrartcl}
\usepackage{babel}
\begin{document}
Wombat:
\clearpage
\selectlanguage{english}
%\NoAutoSpacing
%\shorthandoff{:}
\KOMAoptions{paper=100mm:200mm, pagesize=pdftex}
Wombat:
Capybara
\end{document}

liefert

Package frenchb.ldf Warning: OT1 encoding should not be used for French.
(frenchb.ldf)                Add \usepackage[T1]{fontenc} to the preamble
(frenchb.ldf)                of your document, on input line 6.
 
[1{/usr/local/texlive/2016/texmf-var/fonts/map/pdftex/updmap/pdftex.map}]
 
! Package scrbase Error: unknown option `paper=100mm:200mm'.
 
See the scrbase package documentation for explanation.
Type  H <return>  for immediate help.
 ...                                              
 
l.12 ...ptions{paper=100mm:200mm, pagesize=pdftex}
 
?

Dazu noch zwei Kommentare von David Carlisle und egreg:

well not having read the doc I don't know if french should avoid messing up : or if scrbase should make sure that it is robust in the face of active : (or both:-)
und
The babel-french module makes it clear that : is active inside the document; if a package provides a document level interface allowing for : as token separator, it's its duty to be foolproof against Babel shorthands. Well, the same should be said about \cline{1-2} that doesn't work with babel-czech… ;-)

Deshalb das ganze hier.

Eine Möglichkeit das Problem zu umgehen, wäre es, die Einstellungen für das andere Papierformat schon in der Präambel vorzunehmen. Zumindest funktioniert das bei mir.

Unabhängig davon braucht es die Option pagesize=pdftex für das geänderte Papierformat nicht, da pagesize seit Version 3.17 automatisch gesetzt ist. Dafür ist aber eine Option unbedingt nötig, die eine Neuberechnung des Satzspiegels veranlasst, also etwas wie DIV=current.

\AtBeginDocument{%
  \storeareas\standardpaper
  \KOMAoptions{paper=100mm:200mm,DIV=current}%
  \storeareas\specialpaper
  \standardpaper
}
\BeforeRestoreareas{\cleardoubleoddpage}% braucht mind. Version 3.18

Danach kann mit \specialpaper auf das andere Papierformat umgeschaltet werden und mit \standardpaper wieder zurück gewechselt werden. Die letzte Zeile stellt sicher, dass vor der Änderung des Papierformates eine neue rechte Seite begonnen wird.

Beispiel:

\listfiles
\documentclass[
  french
]{scrartcl}
%\usepackage{fontspec}
\usepackage[T1]{fontenc}
\usepackage{babel}
 
\AtBeginDocument{%
  \storeareas\standardpaper
  \KOMAoptions{paper=100mm:200mm,DIV=current}%
  \storeareas\specialpaper
  \standardpaper
}
\BeforeRestoreareas{\cleardoubleoddpage}% braucht mind. Version 3.18
 
\usepackage{blindtext}
\usepackage{microtype}
\begin{document}
\KOMAScriptVersion
\Blindtext
\specialpaper
\Blindtext
\standardpaper
\Blindtext
\end{document}

Das Problem erinnert mich übrigens etwas an TikZ und die deutschen Shortcuts.

Bild von Markus Kohm

Ich muss also für alle Zeichen (denn irgendwer könnte ja auch auf die Idee kommen, ein a oder eine 1 zu einem babel-Shorthand zu machen) prüfen, ob es ein Babel-Shorthand ist und das ggf. rückgängig machen? Und das bei allen Befehlen, bei denen das ein Problem werden könnte? Wie soll das gehen?

french ist übrigens schon in der Vergangenheit dadurch aufgefallen, dass es Probleme bereitet. Ein Dialog war damals so schwer zu führen, dass ich das aufgegeben habe.

Der aktive Doppelpunkt könnte übrigens auch beim Schreiben der PostScript-Specials ein Problem sein. Getestet habe ich das zwar nicht, die beginnen aber mit »ps::« und wenn da etwas zerbricht, dann wird das vom PostScript-Treiber (also dvips) natürlich nicht mehr erkannt. Leerzeichen, Kleinerzeichen und Größerzeichen könnten an der Stelle auch ein Problem sein. Muss ich für all diese eine Sonderbehandlung bauen?

Habt Ihre eine Ahnung, was für ein Aufwand das ist? Mit einem \@onelevel@sanitize ist das an der Stelle nicht getan. Und mal eben \catcode einstreuen muss ja lokal beschränkt werden, was wieder einen Rattenschwanz an Krampf nach sich zieht. Und das für etwas, wo ich in KOMA-Script keinen Fehler sehe? Also ganz ehrlich: Ich finde dafür derzeit nichts, was mich dazu motivieren könnte.

Im Gegenteil: Solche Behauptungen und Ansprüche motivieren mich eher dazu, LaTeX mal wieder ein paar Monate LaTeX sein zu lassen und stattdessen Radfahren zu gehen.

Ich wollte lediglich eine kleine Notiz hinterlassen.
Das Problem lässt sich ja sehr einfach durch ausstellen der Shortcuts umgehen.

Bild von Markus Kohm

Dass Du darauf hingewiesen hast, ist ja OK. Dafür auch noch explizit: Danke. Tut mir leid, dass ich mich nicht gleich bedankt habe. Was da aber in einem der von Dir zitierten Kommentare anklingt, das geht mir schon auf den Senkel – vor allem unter Berücksichtigung der Vorgeschichte mit french und der eindeutigen Unkenntnis der Rollenverteilung bei KOMA-Script.

Und ja, ich habe in der Tat nicht vor, daran in absehbarer Zeit irgend etwas zu ändern.

Comments for "babel-french und aktive Doppelpunkte" abonnieren