In addition to the question Can one (more or less) automatically suppress ligatures for certain words? (and the associated answers) that you already mention in your posting, you may also want to check out the content of the follow-up questions: Any suggestions/requests for features for a new package that allows disabling ligatures for (pre)selected words? and How to suppress the operation of a luatex-defined macro on a string if the string is part of macro or a label. Shameless self-citation alert!
In the latter question in particular, I provided the rudiments of lua code to suppress the use of certain (or all) ligatures for certain words. This code could easily be made language-specific by linking it, say, to the use of a language option set in babel
.
Unfortunately, my initial plans to create a stand-alone package that implements this approach have gotten stymied after I discovered that the code is too powerful: the ligature substitution (suppression, if you will) algorithm cannot be instructed not to operate on TeX macros; e.g., should there be a macro named \auflaufen
, one apparently cannot instruct luatex not to replace the string "auflaufen" with "auf{\hspace{0pt}}laufen}, leading to unpredictably chaotic consequences. Similarly, the ligature suppression algorithm can't be instructed not to operate on the arguments of certain macros such as \label
and \ref
(and, by extension, \vref
, \cref
etc.). For these reasons I've given up for now on making this a standalone package, as its applicability would always be "experimental" at best. Hopefully, more lua programming tools and hooks will be made available so that it'll become possible to set up the needed exceptions (e.g., don't operate on the names of TeX macros, and don't operate on the arguments of \label
, \ref
, etc) to make the approach I've developed usable for a general public.
@tohecz: Thomas's Q is closely related to the questions I referred to, but it seems he's suffering from a problem that's not addressed in these.
I tried to use the selnolig package to selective disable the s_t ligature (\nolig{st}{s|t})
but that also stops the longst ligature from being used.
If I understand correctly, you're expecting selnolig
to differentiate between an s
and ſ
. You're not providing an MWE, but I'm assuming that in your case selnolig
just can't differentiate between the two because you don't -- I guess your text only has s
and s
, so there's nothing selnolig
could do for you.
Educated guess: entering your s
s correctly is going to produce decent results.
![enter image description here](https://i.stack.imgur.com/40Wi9.png)
selnolig
disabled. Minion Pro, all available ſ_
ligatures as well as c_t
and (inappropriate?) s_t
are present.
![enter image description here](https://i.stack.imgur.com/27CAV.png)
selnolig
enabled. As above, only s_t
is gone.
code:
\documentclass{scrartcl}
\usepackage{fontspec,selnolig}
\setmainfont[Ligatures=Rare]{Minion Pro}
\nolig{st}{s|t}
\begin{document}
The ſide attraction for moſt ſpectators was the mustard
\end{document}
How about the ſ_t
? -- I don't have Hoefler Text, and Minion Pro doesn't have an ſ_t
(technically, it does, it's just indistinguishable from unligated ſ
t
). But, for example, EB Garamond does, and it's not affected by \nolig{st}{s|t}
(q.e.d.).
PS: if you're planning to reproduce early 19th century style, Hoefler Text (as well as Minion) will be a bad choice. It's off by at least two centuries, as is obvious from the two Encyclopædia Britannia pages (from the second one even more drastically so than the first). Have a look at a Hoefler's Didot instead, maybe Old Standard or -- inexpensive and most appropriate -- Miller from Font Bureau.
update
Looking at your own answer and your insisting on the idea that a mere Contextuals=Inner
is going to suffice to produce correct results -- what needs to be stressed is that correct ſ
usage is not as simple as »replace all non-final s
by ſ
«. I suggest you have a look at how the ſ
was handled in the period/the culture whose style you're trying to reproduce. In what contexts was it used? When was a s
used instead? Think compound-word word boundaries. What ſ_
ligatures were available? Think, among others, ſ_s
. In what contexts were which ſ_
ligatures appropriate/inappropriate? Again, think compound-word word boundaries. What was considered a compound word in the first place? etc.
![enter image description here](https://i.stack.imgur.com/uSixM.png)
![enter image description here](https://i.stack.imgur.com/isRQo.png)
Further reading: http://babelstone.blogspot.ca/2006/06/rules-for-long-s.html
Best Answer
You can disable only the "triple" ligatures ffl + ffi by using
\char"1B
in the declaration. But you can't differentiate between fl and fi. If you want to fine tune ligatures you will have to change thetfm
files. Did you contact the authors of fourier(x) regarding your other problem?