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 таблиц

itechnology/latex.1466102509.txt.gz · Последнее изменение: 2016/06/16 21:41 — jurik_phys

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