Понеділок, Березень 12, 2012

Поиск некорректных символов при импорте из .ODF или .DOC в LaTeX

При вставке текста (возможно, с формулами) из какого-нибудь документа с форматированием (например, из документа LibreOffice Writer или MS Word) в документ LaTeX часто случается, что не все символы отображаются в генерируемом PDF-файле после обработки системой LaTeX. Оказывается, LaTeX пропускает некоторые “нечитаемые” символы, оставляя вместо них пустые места в результате.

Найти такой некорректный символ может быть достаточно трудно, особенно в большом документе.

Недавно я обнаружил простой способ облегчить процесс поиска таких символов. Для этого воспользуемся следующей маленькой уловкой. В начало документа LaTeX (где подключаются различные дополнительные пакеты) дообавим строку:

usepackage[utf8x]{inputenc}

Шапка документа при этом будет выглядеть примерно так:

documentclass[12pt,a4paper]{article}
usepackage[utf8x]{inputenc}
usepackage{ucs}

После этого при обнаружении некорректного (неотображаемого) символа в документе LaTeX будет громко ругаться примерно таким образом:

! Package ucs Error: Unknown Unicode character 61560 = U+F078,

и укажет номер строки, в которой находится сомнительный символ.

Замечание: Зачастую такими символами при и мпорте из форматированного текста могут стать даже простые заглавные латинские буквы.

После отлова всех негодных символов пакет “inputenc” можно отключить, если он более не нужен.