LINUX.ORG.RU

Кириллица в командах latex

 ,


0

2

Тут много спецов, а вопрос, наверно, прост.

В includegraphics нельзя впихнуть путь к картинке с русскими буковками типа:

\includegraphics{мояКартинка.jpg} ?

Это как-то угрюмо.

И много таких «ограниченных» команд? В них ведь каждая буква превращается в команду? М = \CyrM

Как-то можно не методом околонаучного тыка определить, какая команда проглотит русские буквы (напр. \section), а какая нет?

Ответ на: комментарий от mandala

Если Eddy_Em устраивает koi, пусть и пользуется. Хотя для меня это несколько непривычно. На счет теха: у него свои собственные приколы

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

Сам Эдик говорил, что в техе все плохо. Вот и сабж всплыл. А был бы хрюникод везде, ну или хотя бы внедрялся активней, проблем бы меньше было.

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

Он говорил, что у некоторых пакетов теха проблемы с кодировками. Это баг

at ★★
()

Кириллица восьмибитная? В смысле какой кодировкой и каким компилятором пользуешься? Формально изначально допустимыми буквенными символами для команд может являться только латиница.

Собственно говоря, «проблема» с кириллическими командами и метками решалась даже в случае восьмибитной кодировки, правда силами велосипеда от автора ncclatex под названием cp1251-light. Велосипед как-то не прижился, отсюда подозрение, что проблема хоть безусловно имеется, но не особо актуальна.

Evgueni ★★★★★
()
Последнее исправление: Evgueni (всего исправлений: 1)

нельзя впихнуть путь к картинке с русскими буковками

Ты еще пробел бы воткнул в имя файла... Нельзя же именовать файлы кириллицей! А если у кого-то системная локаль, скажем, CP-866?

По поводу преобразования кириллицы читай документацию к babel. Пакет inputenc делает все символы, не относящиеся к первой половине ASCII, активными. В итоге буквы преобразуются в такие команды (\cyra и т.п.), что позволяет работать независимо от кодировки. В этом-то и прикол! Потом пакет fontenc ставит в соответствие определенный глиф каждому символу.

В хрюникоде это не нужно, но до сих пор из латеха не выкинули. Если тебе хочется, пользуйся хетехом или луатехом — там текст идет "как есть", но только хрюникод + дофигища пакетов латеха в хетехе не будет работать!

Если хочешь пользоваться командами с кириллическими аргументами, которые не будут преобразовываться в \cyra и т.п., то нарисуй макрос, который будет возвращать кириллицу в категорию обычных символов, дальше исполняй команду, потом возвращай кириллицу в активные.

Eddy_Em ☆☆☆☆☆
()
12 июня 2015 г.
\documentclass{article}

\usepackage[utf8]{inputenc}
\usepackage{grffile}

\begin{document}
    \includegraphics{мояКартинка.jpg}
\end{document}
user0xff
()

Для кириллицы в именах файлов загружаемых через \input

\documentclass[14pt]{extarticle}

\usepackage[utf8]{inputenc}

\makeatletter
    \let\old@input\input
    \renewcommand\input[1]{%
        \expandafter\old@input{"\detokenize{#1}"}%
    }
\makeatother

\begin{document}
    % Завантажити файл "Зовнішній файл.tex"
    \input{Зовнішній файл.tex}
\end{document}
user0xff
()

И команды TeX с кириллицей в идентификаторах.

Для LaTeX:

\documentclass{article}

\usepackage[T1,T2A]{fontenc}
\usepackage[utf8]{inputenc}

\def\DefCyr #1{\expandafter\def\csname\detokenize{#1}\endcsname}
\def\RunCyr #1{\csname\detokenize{#1}\endcsname}

\DefCyr{Команда}#1#2{Параметр 1=<<#1>>, параметр 2=<<#2>>}

\begin{document}
    \RunCyr{Команда}{а}{б}\par
    \RunCyr{Команда}{Раз}{Два}
\end{document}

Но лучше XeLaTeX:

\documentclass{article}

\usepackage{fontspec}

\setmainfont[
    BoldFont = cmunbx.otf,
    ItalicFont = cmunti.otf,
    BoldItalicFont = cmunbi.otf,
    SlantedFont = cmunsl.otf,
    BoldSlantedFont = cmunbl.otf,
    SmallCapsFont = cmunrm.otf,
    SmallCapsFeatures = {Letters = SmallCaps}
]{cmunrm.otf}

\def\Команда #1#2{Параметр 1=<<#1>>, параметр 2=<<#2>>}

\begin{document}
    \Команда {а}{б}\par
    \Команда {Раз}{Два}
\end{document}
user0xff
()

мояКартинка.jpg

ССЗБ

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