
Aufgrund von Micos Kommentar wurde der Text leicht aktualisiert (bezüglich aller oder nur einiger Ligaturen)
Ich verwende das PaketParacolmit XeLaTeX, nachdem ich zwei Spalten erstellt habe, und ich verwende Ligaturen. Ich möchte die seltenen und historischen Ligaturen für die zweite Spalte deaktivieren und sie für die erste beibehalten (zumindest für den Moment). Die üblichen Ligaturen, wieff,fi, und so weiter, müssen bleiben.
Frage: Was ist der schnellste und einfachste Weg, dies zu erreichen?
Zusätzliches Update: eine weitere spezifische Sache hinzugefügt, die unter die Hauptfrage fällt: Nachdem der erste Sachverhalt geklärt ist (d. h. in der zweiten Spalte sind nur noch die üblichen Ligaturen erlaubt),Wie kann man dann bestimmte Ligaturen in der ersten Spalte deaktivieren?? Ich meine Folgendes: ja, ich möchte historische und seltene Ligaturen für die erste Spalte haben, mit Ausnahme einiger spezieller, wie zum Beispiel die doppelteeinaber vor allem die mit zwei verbundenen Konsonanten (wieGRUndkrund so weiter).
MIT CODE AKTUALISIERT (29.04.17):
\documentclass[12pt, a4paper, titlepage]{book}
\usepackage{paracol}
\usepackage{lipsum}
\usepackage{polyglossia}
\setmainlanguage{english}
\setmainfont[Ligature=Historic,Ligature=Rare]{Junicode}
\title{Title}
\author{Author}
\begin{document}
\frontmatter
\begin{titlepage}
\maketitle
\thispagestyle{empty}
\end{titlepage}
\chapter{Foreword}
\begin{paracol}{2}
%% here starts the first column; while I wish to use the rare and
% historic ligatures in this first column, here I wish to disable e.g.
% „gr” and „kr”
\lipsum
\switchcolumn
%% having switched, here, for the second column, I want to disable the
% rare and historic ligatures, keep the common ones (ff, fi, etc.), and still use the
% same font as in the first, while the first column keeps all ligatures
% as it is
\lipsum
\end{paracol}
\end{document}
Antwort1
Hier ist eine halbautomatische Möglichkeit, dies zu tun. Es ist halbautomatisch, weil Sie in einigen Umgebungen die Schriftart manuell ändern müssen. Das paracol
Paket ist sehr komplex und bietet keine Hooks, um die Schriftart spaltenweise festzulegen.
Dieser Code funktioniert automatisch für die folgenden Umgebungen:
- einfache Umgebung mit
\switchcolumn
{leftcolumm}
und{rightcolumn}
Umgebungen- markierte Versionen dieser Befehle/Umgebungen
Für andere Umgebungen wie Fußnoten, Tabellen und Abbildungen habe ich einen Befehl bereitgestellt, der die Schriftart automatisch für die aktuelle Spaltennummer einstellt:
\setcolfont
Zum Beispiel:
\footnote{\setcolfont Footnote text}
Wenn ich eine Möglichkeit finde, es automatisierter zu machen, werde ich die Antwort aktualisieren.
\documentclass{article}
\usepackage{paracol}
\usepackage{fontspec}
\usepackage{etoolbox}
% Define font families for Col 0 and Col 1
% Add more for more column documents if needed
\expandafter\newfontfamily\csname juni0\endcsname[Ligatures={Historic,Rare}]{Junicode}
\expandafter\newfontfamily\csname juni1\endcsname[]{Junicode}
% The following commands are added for convenience in case each font is needed elsewhere
% They also make the environment patching code more readable
\newfontfamily\junicodeHistoric[Ligatures={Historic,Rare}]{Junicode}
\newfontfamily\junicodeNoLig[]{Junicode}
% Patch the right and left column environments
\AtBeginEnvironment{leftcolumn}{\junicodeHistoric}
\AtBeginEnvironment{leftcolumn*}{\junicodeHistoric}
\AtBeginEnvironment{rightcolumn}{\junicodeNoLig}
\AtBeginEnvironment{rightcolumn*}{\junicodeNoLig}
\makeatletter
% Define a command to set the font to the current column number
\newcommand{\setcolfont}{%
\csname juni\number\pcol@currcol\endcsname%
}
%% Optional code for use with selnolig
%\usepackage{selnolig}
%% Define global noligs
%\nolig{aa}{a|a} % Examples change as needed
%\nolig{al}{a|l}
%\nolig{an}{a|n}
%\nolig{ar}{a|r}
%\nolig{av}{a|v}
%% End optional code for selnolig
% Patch the \switchcolumn command and paracol environments to set the column font
\appto{\pcol@switchcol}{\setcolfont}{}{}
\preto{\paracol}{\setcolfont}{}{}
\makeatother
\usepackage[]{kantlipsum}
\begin{document}
\begin{paracol}{2}
% Test with switchcolumn
Ideal\kant[1]
\switchcolumn
After\kant[1]
% Test with leftcolumn/rightcolumn
\begin{leftcolumn}
\kant[2]%
% Footnotes need to have explicit \setcolfont commands
\footnote{\setcolfont
This is a left column footnote.}
\end{leftcolumn}
\begin{rightcolumn}
\kant[2]%
\footnote{\setcolfont
This is a right column footnote.}
\end{rightcolumn}
\switchcolumn*
\kant[3]
% Tables/figures need to have explicit \setcolfont commands
\begin{table}[tbp]
\setcolfont
This is a left column table. Ideal It is set in the left font.
\end{table}
\switchcolumn
\kant[3]
\end{paracol}
\end{document}
Anpassen an das selnolig
Nutzungspaket
Wenn Sie die Ligaturen im Text genauer steuern möchten, können Sie Micos selnolig
Paket verwenden, um einige Ligaturen selektiv auszuschalten. Dazu muss LuaTeX ausgeführt werden. Es gibt keine Möglichkeit, Ligaturen selektiv pro Spalte auszuschalten, es scheint, als \nolig
wären die Befehle effektiv global. (Siehe Micos Kommentare unten.)
Antwort2
Die folgende Antwort baut auf einer früheren Version der Antwort von @AlanMunn (vorübergehend gelöscht, später wiederhergestellt) auf. D. h. ich behalte die Verwendung von etoolbox
Maschinen bei, um separate Schriftarten für die linke und rechte Spalte zu verwenden. Darüber hinaus wechsle ich von XeLaTeX zu LuaLaTeX, um dieAbonnierenPaket, das eine Methode zum globalen Deaktivieren einiger Ligaturen von Junicode bereitstellt, z. B. der Ligaturen für aa
, al
, an
, ar
und av
. (Vollständige Offenlegung: Ich bin der Hauptautor dieses Pakets.)
Ich bin sicher, dass die Umstellung von XeLaTeX auf LuaLaTeX für Sie kein allzu großer Aufwand sein wird.
\documentclass{article}
\usepackage{polyglossia}
\setmainlanguage{english}
\usepackage{paracol,fontspec}
\newfontfamily\junicodeHistoric[Ligatures={Historic,Rare}]{Junicode}
\newfontfamily\junicodeNoLig[]{Junicode}
\usepackage{etoolbox}
\AtBeginEnvironment{leftcolumn}{\junicodeHistoric}
\AtBeginEnvironment{rightcolumn}{\junicodeNoLig}
\usepackage{kantlipsum}
\usepackage{selnolig} % must be used with LuaLaTeX
\debugon % optional -- leave an activity trail in log file
% Globally suppress the following ligatures:
\nolig{aa}{a|a}
\nolig{al}{a|l}
\nolig{an}{a|n}
\nolig{ar}{a|r}
\nolig{av}{a|v}
% feel free to provide further \nolig directives...
\begin{document}
\begin{paracol}{2}
\begin{leftcolumn}
\kant[1]
\end{leftcolumn}
\begin{rightcolumn}
\kant[1]
\end{rightcolumn}
\end{paracol}
\end{document}