Каков наилучший способ кодирования диакритических знаков с помощью кодировки ввода по умолчанию?

Каков наилучший способ кодирования диакритических знаков с помощью кодировки ввода по умолчанию?

Предположим, я хочу написать слово с диакритическими знаками, скажемфибей,и я не могу использовать Unicode или что-то подобное, но вместо этого мне нужно сохранить максимальную совместимость для всех видов ситуаций. Если я не сильно ошибаюсь, мне приходится прибегать к одному из следующих:

  1. f\"ib\k{e}j
  2. f\"{i}b\k{e}j
  3. f{\"i}b{\k{e}}j
  4. f{\"{i}}b{\k{e}}j

Я смутно помню, что читал однажды, что одна из этих альтернатив предпочтительнее, потому что она позволяет получить лучший кернинг или что-то подобное. Однако, проверяя это, я получаю тот же плохой кернинг во всех случаях: выносной элемент фи левая точка ясталкиваются, и то же самое происходит с огонек и нисходящим элементом дж.

Итак, это был намеренно патологический пример, и соответствующие столкновения могут не иметь отношения к какому-либо существующему языку, и, таким образом, могут быть другие случаи, в которых один из вышеперечисленных способов кодирования диакритических знаков действительно дает лучший кернинг. Кроме того, я не тестировал все возможные среды и мог что-то упустить.

Наконец, могут быть и другие причины (кроме эстетики исходного кода), по которым один из вышеперечисленных вариантов предпочтительнее с точки зрения расстановки переносов и других аспектов.

Итак, мой вопрос:Есть ли какие-либо технические причины предпочесть некоторые из вышеперечисленных вариантов другим?

решение1

Используйте 1 или 2. Не добавляйте группы вокруг буквы, если только вы не можете этого избежать (это серьезная проблема с использованием групп в bibtex для управления верхним и нижним регистром). fineобычно использует fiлигатуру в большинстве шрифтов, но f{i}neломает лигатуру (обычно). То же самое касается букв с диакритическими знаками.

Если \"{i}это приводит к использованию примитива \accentдля размещения , \"то не будет никаких кернов или лигатур, указанных в шрифте, поэтому все ваши возможности эквивалентны. (Это происходит с кодировкой OT1 по умолчанию).

Если \"{i}в шрифте используется один глиф с составным символом, то при наличии кернов или лигатур, указанных в шрифте, они будут предотвращены, если {}вокруг конструкции есть группа.

решение2

Максимальная совместимость невозможна, так как \kне предусмотрена в классическом TeX в Computer Modern. Таким образом, \kнеопределенная последовательность управления в простом TeX. Она \kопределяется в зависимости от используемого пакета макросов и используемой кодировки шрифта. LaTeX с кодировкой шрифта по умолчанию не знает \k.

Вторая проблема: \"iдает точечный i и следующую пару точек выше (т.е. три точечных i) в классическом TeX. Использование \"\iнеобходимо. Но синтаксис \"iможет дать желаемый результат в зависимости от используемого пакета макросов и используемой внутренней кодировки шрифта.

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