Jurik-Phys.Net

~ Простота и ясность ~

Инструменты пользователя

Инструменты сайта


Боковая панель

Категории

Контакты

itechnology:latex

LaTeX

Библиография

UTF-8 и библиография (OLD)

Первый способ использовать библиографию в LaTeX в utf-8 состоит в установке специального bibtex-стиля библиографии, gost.

Gost – BibTeX styles to for­mat ac­cord­ing to GOST: BibTeX styles to for­mat bib­li­ogra­phies in English, Rus­sian or Ukrainian ac­cord­ing to GOST 7.0.5-2008 or GOST 7.1-2003. Both 8-bit and Uni­code (UTF-8) ver­sions of each BibTeX style, in each case of­fer­ing a choice of sorted and un­sorted.

Для подключения стиля «gost» в прембуле TeX-файла:

% \bibliographystyle{ugost2008s}   % сортировка по алфавиту
\bibliographystyle{ugost2008}      % по порядку вхождения

На месте списка литературы в основной части TeХ-файла добавить:

\bibliography{./cite/LibraryDB}    % подключение базы библиографии

UTF-8 и библиография (NEW)

В настоящее время (июнь 2014-ого года) для управления библиографией рекомендуется использовать связку biblatex+biber, которая изначально поддерживает utf-8. Более того, в стандартную поставку TeX Live входит набор стилей Biblateх-GOST, реализующих поддержку оформления библиографии по ГОСТ 7.0.5—2008. Пример офрмления библиографии тыц, тыц.

Компиляция документа должна выглядеть так:

$ pdflatex main.tex
$ biber main.bcf
$ pdflatex main.tex

Для подключения biblatex в преамбуле документа необходимо:

% рекомендуется при использвоании biblatex
\usepackage{csquotes}
\usepackage[%
            autolang=other,       
            bibencoding=utf8,
            sorting=nty, % Name,Title,Year или sorting=none.
            maxbibnames=4, % Максимальное число авторов в списке литературы.
            minbibnames=2, % Число авторов, отображаемое при сокращении.
            style=gost-numeric,
            backend=biber]{biblatex}
\addbibresource{./cite/LibraryDB-01.bib}
\addbibresource{./cite/LibraryDB-02.bib}

На месте списка литературы в основной части TeХ-файла «распечатать» библиографию:

% По умолчанию "Список литературы" (article)
%\renewcommand{\refname}{Список литературы} 
 
% По умолчанию "Литература" (book и report)
%\renewcommand{\bibname}{Литература}  
 
\printbibliography

Biblatex и два языка [en, ru]

Динамическое переключение при использовании в библиографии нескольких языков:

  1. подключить biblatex c дополнительной опцией
    \usepackage[...,autolang=other]{biblatex}
  2. в *.bib файле, созданном, например, с помощью JabRef вставить соответствующее поле langid:
    @BOOK{Legendre.Num.Ecology.1998,
    author    = {Legendre, P. and Legendre, L},
    title     = {Numerical Ecology},
    publisher = {Elsevier Science B.V.},
    year      = {1998},
    pages     = {853},
    langid    = {english},
    }

После этого всё работает, как положено:

Legendre P., Legendre L. Numerical Ecology. — Elsevier Science B.V., 1998. — P. 853.

Ошибочный варианты был такой:

Legendre P., Legendre L. Numerical Ecology. — Elsevier Science B.V., 1998. — С. 853.

Обратить внимание на C(траницу) и P(age). Начало решения найдено тут.

Порядок [RU], [EN] источников в списке литературы

Согласно стандарту 2008-ого года, при наличии нескольких языков и необходимости сортировать список литературы, первым должны идти записи на русском языке. Однако, в пакете Biblatex-GOST эта проблема не решена, тыц.

6. Известные проблемы Пакет при сортировке помещает латинские буквы перед кириллическими. Это связано с ограничениями модуля Unicode::Collate языка Perl, на котором написан Biber (не реализовано правило reorder). Поэтому, если вы хотите, чтобы в библиографии кириллические записи предшествовали остальным, то в качестве обходного пути можете отредактировать файл .bbl, создаваемый Biber’ом (переместить записи в начало списка sortlist), и затем запустить LaTeX.

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

xelatex --jobname=xelatex  "main.tex"

or

 pdflatex --jobname=pdflatex "main.tex"

LaTeX to MS Word

Самое адекватное решение - GrindEQ. Триал-версия обладает полной функциональностью, но число обрабатываемых документов ограничено 10-ю. Поэтому либо использовать виртуальную машину, возвращаясь к рабочему снимку, либо искать альтернативную версию, например, здесь, Лицензионная версия, как мне кажется, стоит слишком много (~50 долл. США), чтобы её покупать для частного использования.

Особенности использования:

  • программа не понимает вставки \input{}, следовательно, latex'овский документ должен быть представлен одним файлом;
  • utf-8 кодировку автоматически не распознаёт, её надо принудительно выставить в настройках GirndEQ;
  • библиография не рассчитана на utf-8. Работает вариант, когда библиография представлена в виде готового окружения \thebibliography;
  • игнорирует директиву \graphicspath{}, поэтому имя графического файла должно содержать в себе путь до источника;

Установка GrindEQ

В чистую виртуальную машину, например, VirtualBox установить гостевую ОС Windows, вместе с MS Office'ом, например, 2010-ого года. Скачать GrindEQ с официального сайта, и также установить. Сразу после установки GrindEQ и до первого запуска офиса сделать снимок состояния системы.

После этого можно осваивать настройки GrindEQ, конвертируюя тестовые документы. Естественно, после окончания 10-ти документов, состояние машины необходимо откатить. Следовательно, не ленимся записывать нужные нам настройки с той, целью, чтобы внести и зафиксировать (в новом снимке) изменения в настройках GridEQ.

Костыли (GrindEQ.RB)

Проблемы со вставками input и библиографией, решил с помощью собственного костыля. Мои lateх документы построены по следующему принципу:

  • main.tex содержит минимум latex-кода, основа + ссылки (\input) на другие файлы: head.tex, title.tex, LibraryDB.bib, body.tex
  • head.tex содержит прембулу документа;
  • title.tex описывает автора, организацию, тему документа;
  • body.tex - основная часть документа;

Костыль читает главный файл main.tex, построчно перегоняет его в grindeq /main-BibTeX.tex, когда в строке встречается директива input, алгоритм определяет имя вставляемого файла и построчно помещает его в grindeq /main-BibTeX.tex. Кроме этого, с помощью шататного bibteх'а генерируется список литературы. GrindEQ не понимает Biblateх, поэтому прежде чем генерировать с помощью bibteх'а *.bbl файл, необходимо сменить способ управления библиографией biblatex→bibtex. GrindEQ некоторых команд из *.bbl-файла не понимает из созданого списка, поэтому список обрабатывается, а затем помещается в конец grindeq /main-BibTeX.tex.

Какие проблемы остались? Совершенно нет титула, вероятно из-за переопределения \maketitle, Reference, Table, Figure вместо литературы, таблицы, рисунка. Таков первый взгляд на проблему перекодировки latex → ms word.

Поскольку при генерации изменяется подход к формированию списка литературы, необходимо уделить особое внимание совпадению результатов сортировки источников.

LatexMK (Targets are up-do-date)

По неизвестным причинам, возможна ситуация, когда latexmk не воспринимает изменения в *.tex файлах и, соответственно, не соглашается пересобирать pdf-файл.

Latexmk: All targets (main.pdf) are up-to-date

Вопрос обсуждался тут, тут и тут.

Решений два:

  • Перед сборкой удалить существующий pdf-файл.
  • Использовать опцию -g при сброке файла: (latexmk -g -pdf main.tex).

Шаблон нового документа

Шаблон нового *.tex документа может быть одновременно собран pdflatex'ом, xelatex'ом и обладает следующей структурой:

  • cite - каталог, содержащий файл библиографии *.bib;
    • работа с библиографией организована через biblatex.
    • документ собранный с помощью xelatex'а имеет читабельные ссылки на электронные ресурсы, содержащие кириллические символы.
  • build - содержит собранные *.pdf документы
    • xelatex.pdf - документ, собранный с помощью xelatex'a
    • pdflatex.pdf - документ, собранный с помощью pdflatex'a
  • fig - содержит изображения, используемые в документе;
  • src - содержит «тело» документа;
    • body_example.tex - пример тела документа.
    • preamble.tex - преамбула документа;
    • title_article.tex - настройка отображения титула первой страницы, а также запись значений полей
      • author - авторы документа;
      • title - заглавие документа;
      • organisation - название организации, которую представляют авторы;
      • conference - название конференции, на которой был сделан доклад по данному документу;
      • udk - универсальный десятичный классификатор (УДК) статьи, доклада;
      • date - дата документа.
        Не заполненные поля игнорируются при сборке документа.
  • Makefile - make-файл для сборки документа;
    • make xelatex - сборка документа с помощью xelate'а;
    • make pdflatex - сборка документа с помщью pdflatex'а;
    • make clean - удалить следы сборки документа из корневой директории;
    • make clean_pdflatex - удалить собранный pdflatex'ом документ.
    • make clean_xelatex - удалить собранный xelatex'ом документ.
    • make clean_all - удалить и следы сборки, и собранные документы.
  • main.tex - корневой tex-файл документа, подключает тело документа, например, body_example.tex

Использовать упоминаемый шаблон рекомендуется посредством установки в *nix систему (например, один из дистрибутивов (GNU)Linux) скрипта, newtex, который в качестве параметра принимает имя нового tex-документа,

newtex you_doc_name

скачивает с сайта архив шаблона и распаковывает его. После чего, документ готов к редактированию.

Зависимости

Версии указаны исходя из того, что на данной конфигурации шаблон работоспособен.

  • TeX Live (2014.20140927-1)
  • Biber (1.9-1)
  • TeX Live: XeTeX and packages (2014.20140927-1)
  • CMU Fonts (0.7.0-3)

Оформление слайдов (правила)

Лекция

  • Зачем всё это нужно.
  • Область применения.
  • Краткое содержание доклада.
  • В ходе лекции необходимо возвращаться к вопросу связи теории и практики.
  • 5 мин/на слайд; [18 - 25 слайдов/лекцию].
  • Сухой остаток в конце лекции.

Выделение текста маркером

Большинство методов маркировки текста (например, этот) используют пакет soul или soulutf8.

Однако у данного пакета есть неприятная особенность, поэтому использовать его не очень хочется.
Поэтому выбор пал на метод выделения, тыц, не использующий пакет soul.

Пример использования маркировки текста можно посмотреть: marker-tikz.pdf.
Исходные файлы marker-tikz.tex, text-mark-header.tex.

Собирать командой (выполнить 2 раза)

pdlatex marker-tikz.tex

P.S. выделение целых абзацев тоже может быть интересно, тыц, тыц.

Количество объектов в тексте

Краткий ответ на ЛОРе.

Набор формул

Продвинутые таблицы

Собственный пакет или класс документа

Прежде всего необходимо определиться с выбором: создавать пакет [*.sty] или класс документа [*.cls]?

  • Пакет создаётся, когда его функционал может быть использован совместно с иными классами документов;
    • подключение
      \usepackage{myPackageName}
  • Класс создаётся, когда функционал содержит что-то специфичное, несовместимое с любым произвольным классом.

http://ctan.org/pkg/clsguide

http://tutex.tug.org/pracjourn/2005-4/hefferon/

Times New Roman over XeLaTeX

Генератор LaTeX таблиц

Распознавание символов

Тире, Дефис, Минус

Теория

  • Дефис используется:
    • для присоединения частиц ($\text{кто-либо, где-то}$);
    • для присоединения префиксов ($\text{во-первых, по-русски}$);
    • в качестве знака сокращения ($\text{физ-ра, г-ца}$);
    • в словосочетаниях и сложносоставных словах (ковёр-самолёт, бизнес-ланч, интернет-кафе);
  • Короткое тире используется:
    • для обозначения числовых диапазонов $\text{1941 -- 1945}$.
  • Тире используется:
    • на месте отсутствующего члена предложения (А ты любишь пирог с зелёным луком? Я $\text{---}$ страсть как!);
    • между подлежащим и сказуемым (Дважды два $\text{---}$ четыре);
    • для выделения прямой речи ($\text{---}$ Да. Солнце уже взошло);
    • и т.д.
  • Минус используется только в математических формулах.

«Иностранное» тире имеет бОльшую длину.

PdfLaTeX

При включении пакета «babel» командой

\usepackage[english,russian]{babel}

настройки применяются автоматически и английское тире, задаваемое командой « - - - » становится короче. Однако для более тщательного контроля написания тире в кириллице существуют специальные команды:

"---

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

"--~

используется между собственными именами, например, уравнение Клапейрона $\text{"}\text{-}\text{-}$~Менделеева; между словами для обозначения пределов, например, поезд Москва$\text{"}\text{-}\text{-}$~Новосибирск или отпуска в июле$\text{"}\text{-}\text{-}$~августе.

"--*

используется в прямой речи в начале абзаца.

Дополнительные материалы см. по ссылкам: раз, два, три.

XeLaTeX

В XeLaTeX на конец 016-ого года при использовании кириллицы тире имеет иностранный «длинный» вариант, что не всегда допустимо. Выходом является разрешение использовать команды для работы с кириллическим тире из пакета «babel».

\setdefaultlanguage{russian}
\setkeys{russian}{babelshorthands=true}

Добавить в преамбулу необходимо последнюю строку.

Дополнительные материалы доступны по ссылке.

Тире в библиографии

Изменить длину тире тыц.

itechnology/latex.txt · Последнее изменение: 2017/05/11 21:47 — jurik_phys

Инструменты страницы