Как при использовании paracol отключить лигатуры для определенного столбца?

Как при использовании paracol отключить лигатуры для определенного столбца?

Немного обновил текст в связи с комментарием Мико (касательно всех или только некоторых лигатур)

Я использую пакетпараколс XeLaTeX, создав два столбца, и я использую лигатуры. Я хочу отключить редкие и исторические лигатуры для второго столбца и сохранить их для первого (по крайней мере, на данный момент). Распространенные лигатуры, такие какфф,фии т. д., должны остаться.

Вопрос: каков самый быстрый и простой способ сделать это?

Дополнительное обновление: добавлено еще одно конкретное замечание, которое подпадает под основной вопрос.: После того, как первый вопрос решен (т.е. во втором столбце разрешены только общие лигатуры),как тогда можно отключить определенные лигатуры в первом столбце?? Я имею в виду следующее: да, я хочу иметь исторические и редкие лигатуры для первой колонки, за исключением нескольких особых, таких как двойнаяаано особенно те, в которых соединены две согласные (например,грикри так далее).

ОБНОВЛЕНО С КОДОМ (29-4-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}

решение1

Вот полуавтоматический способ сделать это. Он полуавтоматический, потому что в некоторых средах вам нужно будет изменить шрифт вручную. Пакет paracolочень сложный и не предоставляет никаких хуков для установки шрифта на основе столбцов.

Этот код работает автоматически для следующих сред:

  • простая среда с использованием\switchcolumn
  • {leftcolumm}и {rightcolumn}окружающая среда
  • отмеченные звездочкой версии этих команд/сред

Для других сред, таких как сноски, таблицы и рисунки, я предоставил команду, которая автоматически устанавливает шрифт для текущего номера столбца:

\setcolfont

Например:

\footnote{\setcolfont Footnote text}

Если я найду способ сделать это более автоматически, я обновлю ответ.

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

вывод кода

Адаптация к использованию selnoligпакета

Если вы хотите иметь более тонкий контроль над лигатурами в тексте, вы можете использовать selnoligпакет Mico для выборочного отключения некоторых лигатур. Для этого требуется запустить LuaTeX. Нет возможности выборочно отключать лигатуры по столбцам, похоже, поскольку \noligкоманды фактически глобальны. (См. комментарии Mico ниже.)

решение2

Следующий ответ основан на ранней версии ответа @AlanMunn (временно удаленной, позже восстановленной). То есть, я поддерживаю использование etoolboxмашинного оборудования для применения отдельных шрифтов для левой и правой колонок. Кроме того, я переключаюсь с XeLaTeX на LuaLaTeX, чтобы иметь возможность использоватьсельнолигпакет, который предоставляет метод для глобального отключения некоторых лигатур Junicode, таких как лигатуры для aa, al, an, arи av. (Полное раскрытие информации: я являюсь основным автором этого пакета.)

Я надеюсь, что переход с XeLaTeX на LuaLaTeX не составит для вас большого труда.

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

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

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