“Fj” Ligature in Computer Modern
A maneira mais simples de colocar isso: eu preciso da ligadura "fj". É absolutamente crucial, especialmente porque estou escrevendo em islandês, simplesmente não pode faltar, apenas se não mais comum como fi.
Aqui está o que eu encontrei:
\usepackage{Alegreya}Essa fonte inclui a ligadura fj, mas eu realmente gosto de Computer Modern. Eu vi uma resposta diferente no TeX.SX e encontrei alguém que era bem parecido, mas tinha que ser invocado com \fj. Acho que seria muito bobo.
Alguma ideia? Um colega útil no IRC descobriu isso: Computer Modern: extralig package mas não fui capaz de fazê-lo funcionar (eu coloquei no path e o LaTeX carregou o pacote muito bem, mas não fez absolutamente nada)
Respostas
Isso realmente precisa ser tratado na fonte, você pode tentar editar latin modern in fontforge ou similar para adicionar a ligadura, mas o mais simples é escolher uma fonte que a tenha.
Isso está usando a fonte de texto Stix 2 com lualatex (ou xelatex também funcionaria)
\documentclass{article}
\usepackage{fontspec}
\setmainfont{STIX2Text-Regular.otf}
\begin{document}
\mbox{f}i\mbox{f}j
fifj
\end{document}
depois de usar o STIX2 que parece bom, mas um pouco pesado / ousado para o meu gosto, tive um sonho ontem à noite. Foi a solução. Usando um hack com kerning manual e criação da fjligadura e \extraligfjcomando e com LuaLaTeXsubstituição de texto instantânea, criei uma solução perfeita.
\ProvidesPackage{extralig}
\usepackage{xcolor}
\usepackage{luacode}
\newcommand{\extraligfj}{fi\llap{\textcolor{white}{\rule[-0.05em]{0.252em}{0.55em}}}\kern-0.01em\llap{\j}\kern-0.05em\relax}
\begin{luacode}
local function vartosrcvar ( line )
return string.gsub(line, "fj" , "\\extraligfj{}")
end
luatexbase.add_to_callback( "process_input_buffer", vartosrcvar, "var_to_srcvar")
\end{luacode}
Salvar este código como extralig.styem seu .texdiretório de arquivos e chamá-lo com \usepackage{extralig}ele funcionará perfeitamente!
Obviamente, por causa do código Lua, você deve compilá-lo com LuaLaTeX
Você não é obrigado a usar isso como um pacote, simplesmente copie tudo em seu documento nos locais correspondentes e funcionará bem também, mas é muito mais limpo tê-lo como um pacote separado.
Como é que isso funciona?
- Eu defino
\extraligfj, um hack onde oiinfié substituído por umj, fazendo umafjligadura perfeita com algum kerning manual. (Graças a esta postagem TeX.SX!) - Com LuaLaTeX, eu uso código que substitui todas as instâncias de
fjcom\extraligfj, que definimos antes. - Tudo isso é colocado ordenadamente dentro
extralig.stye pronto para ser carregado perfeitamente em nosso documento como um pacote.
TL; DR Salve o trecho de código como extralig.stye coloque-o no mesmo diretório de seu .texarquivo e carregue-o com \usepackage{extralig}. use LuaLaTeX . Isso só funciona com o Computer Modern, sem outras fontes (elas precisarão de ajuste manual de kerning). Fazendo isso, fj será ligado automaticamente.
Prós:
- Eu esperava que houvesse algumas falhas realmente estranhas com quebras de linha devido à natureza do glifo hackeado, mas para minha surpresa, funciona perfeitamente mesmo quando quebrado em linhas em
fej - Só precisa compilar uma vez porque LuaTeX o executa dinamicamente, e é por isso que é totalmente perfeito, sem lentidão.