LINUX.ORG.RU

[LaTeX] Кириллица и tikzpicture

 


0

0

Перевожу с английского мануал одной программы. Исходники документа в TeX, для сборки итогового файла используется TeXLive 2009.

В тексте используется выделение названий пунктов меню при помощи конструкций вида

\selectstring{Preview}{Rectangle}
Как я понял, \selectstring это пользовательская команда. Нашел в тексте ее описание (в файле qgis_style.sty), для создания выделенного текста используется \tikzpicture.

Проблема в том, что если переводить текст в первых скобках (в примере это Preview), то pdflatex завершает работу с ошибкой

! Package inputenc Error: Unicode char \u8:�\check@icr not set up for use with LaTeX.
Стоит заменить на английский вариант и все компилируется нормально. Перевод текста во вторых скобках такого эффекта не вызывает.

Кодировка исходных файлов utf-8, поддержка кириллицы включена

%%% encoding, utf8 should work for any localization
\usepackage[utf8]{inputenc} 
\usepackage[T1, T2A]{fontenc} % add Cyrillic support
\usepackage[english, russian]{babel}

С LaTeX столкнулся в первый раз, поэтому не знаю что еще можно подкрутить, чтобы весь текст был на русском. Буду признателен за помощь.

Исходный файл и стили выложил здесь


Попробуй \usepackage[utf8x]{inputenc}
У нее свои заморочки, но символов больше знает.

nnz ★★★★
()
Ответ на: комментарий от nnz

Попробовал. Теперь другая ошибка, но как мне кажется, с тем же смыслом

! Package utf8x Error: MalformedUTF-8sequence.

voltron
() автор топика

Убрал все input, кроме print_composer, заменил Preview на «Превью» — скомпилировалось без ошибок, только первую букуву проглотило (в PDF видно «ревью»).

Может, проблемы с неполной установкой TexLive?

oami ★★
()
Ответ на: комментарий от oami

Судя по всему, первый параметр используется в команде, поэтому перед переводом можно ставить {} (или экранированный пробел).

oami ★★
()
Ответ на: комментарий от oami

TeXLive устанавливал на две машины (дормашняя и рабочая), на обеих эта проблема. На работе OpenSuSe, ставил из репозитория, стоят пакеты: texlive, texlive-bin, texlive-bin-latex, texlive-bin-tools и texlive-fonts-extra.

Дома Slackware 13.0, TeXLive брал отсюда http://slackware.org.uk/people/rlworkman/13.0/i486/

Попробую еще на винду поставить из официального образа.

Судя по всему, первый параметр используется в команде, поэтому перед переводом можно ставить {} (или экранированный пробел).

\item \selectstring{}{Предпросмотр}{Прямоугольник}

дает вот такое сообщение

! Missing number, treated as zero.
<to be read again> 
                   \aftergroup 
l.137 ...\selectstring{}{Предпросмотр}
                                                  {Прямоугольни�...

voltron
() автор топика
Ответ на: комментарий от voltron

Я имел в виду один из таких вариантов (иначе у команды будет неправильное количество аргументов):

[code] \item \selectstring{{}Предпросмотр}{Прямоугольник} \item \selectstring{\ Предпросмотр}{Прямоугольник} [/code]

У меня OpenSUSE 11.3

oami ★★
()
Ответ на: комментарий от oami
\item \selectstring{{}Предпросмотр}{Прямоугольник} 
\item \selectstring{\ Предпросмотр}{Прямоугольник} 

Прошу прощения за неправильное форматирование в предыдущем посте.

oami ★★
()

Очень может быть, что это проблема с utf-8. Есть пакеты в LaTeX, которые написаны в идеологии, что весь мир говорит на английском и семи бит и уж точно восьми достаточно. Выход только один - багрепорт и/или патч авторам или воспроизведение этой функциональности более другими методами.

Evgueni ★★★★★
()
Ответ на: комментарий от Evgueni

Возможно, какая-нибудь функция из этого самого selectstring не защищенная, и считает русскую букву не-символом. Может быть, совет oami или \relax перед первым аргументом спасут дело.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от oami

oami, большое спасибо!

Оба предложенных варианта

\item \selectstring{{}Предпросмотр}{Прямоугольник}  
\item \selectstring{\ Предпросмотр}{Прямоугольник}  
дают нужный результат.

voltron
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.