"Как оформить диплом в LaTeX?",
которую написал virens,
ведущий блога "Записки дебианщика".
Вёрстка текста
В разных книжках по ТеХу приведена просто прорва всякого хлама: вёрстка стихов, каких-то невообразимых цитат и прочей экзотики. Попробуйте отыскать на этом кладбище такую простую вещь, как межстрочный интервал или текст в верхнем регистре!
Этот материал написал Михаил Конник aka virens и опубликовал на своём блоге Записки дебианщика.
Поэтому в этом разделе я конспективно рассмотрю использование самых нужных и житейских вещей, типа использование начертаний, списков, ссылок. Это потребует от вас запоминания нескольких команд, что не должно стать проблемой, коль скоро вы заканчиваете высшее учебное заведение. За остальным - в книги, которые сеют разумное, доброе и вечное.
Прежде всего помните: LaTeX понимает ваши команды совершенно буквально, он в этом плане прост как рельса - вы можете и правду в квадрат возвести, и ударение поставить над ложью. То есть команды можно комбинировать и использовать там, где они вроде как и не предназначены. Главное, чтобы конструкция была синтаксически верна.
Теперь обещанные житейские приёмы работы в LaTeX. Поставить неразрывный пробел в ЛаТеХе можно тильдой ~. Например, полезно ставить неразрывный пробел при цитировании или ссылках, чтобы ссылки не уезжали на другие строки. Например: это ссылка~\cite{pupkin}.
Пробелы внутри формул. Если выбранные TEX'ом интервалы внутри формул вас не удовлетворяют, можно их изменить с помощью специальных команд. Важнейшими являются \, для очень маленьких пробелов, \; для средних, \quad и \qquad для больших пробелов, а также \! для уменьшения интервала.
Начертания шрифта
Просто писать текст - скучно, и хотя в технической литературе это не приветствуется, можно использовать разные начертания шрифта. Сделать текст полужирным можно командой \textbf{полужирным}, курсивным с помощью команды \textit{курсивным} или подчёркнутым - командой \underline{подчёркнутым}.
В оглавлении мы уже использовали капитель (заглавные буквы), делается это командой ТЕКСТ КАПИТЕЛЬЮ \textsc{текст капителью}. Но увлекаться начертаниями не нужно, так как обычно это излишне в технической литературе.
Специальные символы и особенности LaTeX
Сразу несколько предостережений. В LaTeX кое-что делается иначе, чем в простом редакторе. Так, нельзя ставить кавычки через Shift+2, а ставить их следует либо ``текст в кавычках'', либо так <<текст в кавычках>>. Согласно отечественным полиграфическим традициям в качестве основных кавычек используются кавычки-ёлочки (<< >>), а кавычки-лапки второстепенны (`` ''). (Ссылки по теме: § 104. Кавычки, § 143. Знаки препинания в нестандартных ситуациях, спасибо комментатору Cristobal J. Junta).
Нельзя пользоваться обратным слешем \ потому как с него начинаются команды для самого ЛаТеХа. Вместо этого следует использовать прямой слеш /.
Этот материал написал Михаил Конник aka virens и опубликовал на своём блоге Записки дебианщика.
То же самое относится к набору специальных символов типа процента или номера. Перед ними следует ставить обратный слеш \ , иначе ЛаТеХ посчитает, что вы закомментировали кусок текста за процентом. То есть, процент ставится так: 20\%, получается 20%. Соответственно, номер ставится так: \No1, получается №1.
Редко, однако приходится в некоторых словах ставить ударения, к примеру, во фразе ``...характеризуется большими шумами...''. Ударение в LaTeX можно поставить так: перед нужной буквой ставим обратный слеш и апостроф \' (это символ, который находится рядом с клавишей Enter). И даже так любимую Евгением Балдиным букву Ё можно сделать из обычной е так: \"e.
В физической литературе есть специальные символы, которые употребляются в тексте. Такими символами являются символ диаметра, градуса. Для этого нужно перевести ЛаТеХ в математический режим - тут я немного забегаю вперёд, но тем не менее. Можно вставлять такие символы по-разному, я приведу свои примеры, и пусть они не так изящны, но они работают, а вам не придётся рыскать по куче книг в поиске ответа на свой вопрос.
Обычные символы, вроде букв греческого алфавита, должны быть в вашем визуальном редакторе. Например, вставить символ градуса в LaTeX можно так: $90^{\circ}$, результат: угол поворота составляет 90o. Значок диаметра в ЛаТеХе можно вставить так: \O{4-5} большой диаметр, \o{4-5} - маленький. Чтобы метр квадратный стал действительно квадратным, используем команду верхнего индекса \textsuperscript{2}. В результате метр стал в самом деле квадратным: м2.
Есть ещё несколько символов, которые вроде как математические, а вставляются в тексте. Пример: изображениями размером до 512х512 отсчётов. Букву х писать - дурной тон, поэтому вставляем часть в математическом режиме $512\times 512$, и в результате: 512Х512.
Работа со строками в LaTeX
Чтобы отбить абзац, то есть чтобы следующая строка начиналась с красной строки, достаточно просто оставить пустую строку. Можно сделать обрыв строки принудительно, вставив директиву \\ или \linebreak.
Как в ЛаТеХе сделать полуторный интервал между строк (интерлиньяж)? Просто в преамбуле указать \renewcommand{\baselinestretch}{1.65}. Для двойного интервала 1,65 для полуторного интервала в латехе указать 1.25. Так же можно использовать команду , где задать нужный множитель: для полуторастрочных интервалов \linespread{1.3}.
Более того, иногда требуется сократить межстрочный интервал в LaTeX в библиографии. Делается это так [источник]: включаем пакет setspace и наслаждаемся результатом сокращения лошадиных расстояний в оглавлении:
\begin{spacing}{0.9}и в списке литературы:
\tableofcontents
\end{spacing}
\begin{spacing}{0.9}
\bibliographystyle{plain}
\bibliography{refs}
\end{spacing}
Но и это не всё: для сокращения расстояния между элементами библиографии, используем трюк отцов из Кэмбриджа:
\let\oldthebibliography=\thebibliography
\let\endoldthebibliography=\endthebibliography
\renewenvironment{thebibliography}[1]{%
\begin{oldthebibliography}{#1}% \setlength{\parskip}{0ex}%
\setlength{\itemsep}{0ex}%
}%
{%
\end{oldthebibliography}%
}
Также можно задавать расстояния между строчками во всём тексте:
\singlespacingИли вот так:
\onehalfspacing
\doublespacing
\setstretch{1.1}
\begin{doublespace}Этого должно хватить для начала набора текста диплома в LaTeX.
This paragraph has \\ double \\ line spacing.
\end{doublespace}
\begin{spacing}{2.5}
This paragraph has \\ huge gaps \\ between lines.
\end{spacing}
51 комментариев: |высказаться!| RSS-лента дискуссии.|
>> Нельзя пользоваться прямым слешем \ ... Вместо этого следует использовать обратный слеш /
Вроде бы / - это прямой, а \ - обратный слеши.
worldmind: Начертания шрифта думаю всё-таки не стоит использовать, лучше поределять смысловые команды, например для выделения ключевых слов, а уже в них определять начертание
Согласно отечественным полиграфическим традициям в качестве основных кавычек используются кавычки-елочки (<< >>), а кавычки-лапки второстепенны (`` '').
(Ссылки по теме: § 104. Кавычки, § 143. Знаки препинания в нестандартных ситуациях.)
2 Анонимный комментирует...
Вроде бы / - это прямой, а \ - обратный слеши.
Да, точно, попутал. Поправил :-)
2 Анонимный комментирует...
лучше поределять смысловые команды, например для выделения ключевых слов, а уже в них определять начертание
Что-то я не понял, что имеется в виду. Можно подробнее?
2 Cristobal J. Junta комментирует...
Согласно отечественным полиграфическим традициям в качестве основных кавычек используются кавычки-елочки
Спасибо за замечание и ссылки - и то, и другое вставлены в текст.
Текст немного исправлен и дополнен, так что если найдёте какие очепятки - смело пишите в комментарии.
Что-то у вас странное творится с кавычками в тексте. Левые выглядят как две одинарные кавычки (‘‘), а правые как «программистские»('').
И не могли бы вы вкратце рассказать почему такие вещи лучше делать в LaTeX, а не в, например, OOO?
Я для задания интерлиньяжа использую пакет setspace
%Межстрочный интервал
\usepackage{setspace}
%\onehalfspacing
\doublespacing
это удобно тем, что основной текст получается с нужными интервалами, а сноски печатаются с одинарным.
>Что-то у вас странное творится с кавычками в тексте. Левые выглядят как две одинарные кавычки (‘‘), а правые как «программистские»('').
2 Kane. LaTeX автоматечески заменяет " на ” (английскую закрывающую кавычку), что, в принципе, не верно, так как у нас используются немецкие кавычки-лапки: „цитата“, которые надо набирать как ,, (две запятых подряд) и `` (два обратных апострофа с клавиатуры). (Тут они выглядят слегка не так, как в выводе LaTeXа.)
Вроде бы / - это прямой, а \ - обратный слеши.
Ну, в принципе, если очень надо, то можно набрать как \backslash (я вот не помню, нужен ли математический режим).
>> лучше поределять смысловые команды, например для
>> выделения ключевых слов, а уже в них определять начертание
>> Что-то я не понял, что имеется в виду. Можно подробнее?
Не надо в тексте форматировать, надо в начале определить команду, например если мы хотим выделить ключевые слова подчёркиванием, то надо определить команду, как-то так (коррктность не гарантирую, уже не помню точно):
\newcommand{\mykeyword}{\underline{подчёркнутым}}
и в тексте использовать только \mykeyword
тогда мы не нарушаем принципа разделения содержимого и форматирования, а это несёт много плюсов, например, потребуеться все ключевые слова сделать ещё и жирными - меняем команду компилим и получаем результат
Насчет подчеркнутого текста, как-то потребовалось весь абзац сделать таким, был неприятно удивлен. В ru.latex посоветовали использовать пакет soul который даёт две команды:
\so{разряженный текст}
\ul{подчекнутый текст, хот весь}
добавить пакет:
\usepackage{soul}
пакет есть по дефолту в TeTeX, после его смерти и перехода моего дистрибутива на TeXLive, там тоже нашёлся ;)
А как сделать, чтоб страницы нумеровались сверху, как то требуется для кандидатской диссертации?
Свои мысли по поводу TeX изложил тут, мож кому пригодятся.
http://dobersoft.ru/?q=fmes&n=44
2 Dober.htm
> А как сделать, чтоб страницы нумеровались сверху, как то требуется для кандидатской диссертации?
Я так думаю, надо пошаманить с колонтитулами.
Итак, надо написать вот это в преамбуле:
\makeatletter
\renewcommand{\@evenhead}{\hfil\thepage\hfil}
%если печать идёт на двух разворотах, то для нечётных страниц надо, по-идее, ещё написать \renewcommand{\@oddhead}{\hfil\thepage\hfil}
\renewcommand{\@evenfoot}{} % чтоб в нижних колонтитулах ничего не было
\makeatother
Можно всё, что между \makeatbla-bla-bla затолкать в стилевой файл и применять его.
Если надо куда-то выровнять номера, то надо убрать \hfil с противоположной стороны — если надо выключить номера вправо, то слева; если влево — справа.
У меня, к сожалению, на той машине, с которой пишу, LaTeXа нет, так что проверить догадки не могу, но скорее всего, должно работать.
Как сменить гарнитуру шрифта? Везде написано только про размеры и начертание.
В нашем ВУЗе требуют шрифт Times New Roman 14pt.
Попробовал оформить в LaTex небольшую контрольную работу. Много формул и мало текста. Все замечательно, кроме гарнитуры шрифта. К тому же под разными ОС один и тот же документ компилируется по-разному, шрифты отличаются. Вообще непонятно, какой там шрифт по умолчанию, но точно не Times. Документ создан на основе стиля Report.
Через 2 недели неспешного изучения ТеХ приносит уже больше пользы, чем проблем. Но неоторые вопросы остались.
1. Как поставить точки после цифр при перечислении enimerate? Гост требует.
2. Как управлять размеров шрифта? [14pt] для отчёта (report) игнорируется.
3. как сделать нумерацию страниц повередине сверху?
\renewcommand{\@evenhead}{\hfil\thepage\hfil} - не помогло
4. Как уменьшить отступ между эллментами перечисления itemize&
5. Как вставить формулу без номера?
6. Как убрать надписи "Глава 1" в начале каждой главы?
2 Анонимус
> К тому же под разными ОС один и тот же документ компилируется по-разному, шрифты отличаются. Вообще непонятно, какой там шрифт по умолчанию, но точно не Times. Документ создан на основе стиля Report.
Изначально LaTeX и TeX вообще не ориентировались на кириллицу и т. п., так что русификация может быть разная. То же касается и шрифта. Именно поэтому на разных установленных версиях могут быть разные шрифты. Просто без картинок я не могу сказать, что это за шрифт, но процентов 80 даю, что это Computer Modern.
2 Dober.htm
> Как поставить точки после цифр при перечислении enumerate?
> Как уменьшить отступ между элементами перечисления itemize?
Тут надо чуть пошаманить с настройками списков. А для этого лучше всего вообще переопределить команды для создания списков. Я сейчас дам конкретное решение именно для этих двух проблем (я не буду касаться других настроек), а вообще лучше было бы почитать книги типа «LaTeX: подробное описание» Львовского. И ещё одно: так делаю я, если кто может предложить решение лучше — предлагайте. Для точек после цифр переопределяем команды \theenumi, \theenumii, \thelenumiii, \theenumiv вот так (с учётом того, как они по умолчанию определены):
\renewcommand{\theenumi}{\arabic{enumi}.}
\renewcommand{\theenumii}{\asbuk{enumii})}
\renewcommand{\theenumiii}{\Roman{enumiii}.}
\renewcommand{\theenumiv}{\Asbuk{enumiv}.}
Для отступов надо, скорее всего, сменить командную длину \itemsep:
\itemsep=0pt
> Как вставить формулу без номера?
Можно использовать не окружение equation, а equation* (со звёздочкой). Хотя, можно и заключить формулу между командами \[ и \].
> Как сделать нумерацию страниц посередине сверху?
Если не помогло, то попробуй написать в преамбуле ещё \pagestyle{myheadings}. У меня сейчас та же ситуация — на машине нет LaTeXа и проверить не могу.
> Как убрать надписи «Глава 1» в начале каждой главы?
Если оставить просто номера, то можно поступить быстро:
\renewcommand{\chaptername}{}
А если надо как-то по другому, то лучше взять и почитать книгу того же Львовского, так как я всего не помню, так что не могу написать готового решения. Плюс, там «чёрная магия», так что я могу и ошибиться.
> Как управлять размеров шрифта? [14pt] для отчёта (report) игнорируется.
Вот я помню, что кроме опций 10pt, 11pt и 12pt, никакие другие не поддерживаются, но способ есть. Опять-таки, я его не помню (причём глубоко не помню). Скорее всего, там будут изменения всех размеров, так что это будет какой-то пакет.
Спасибо, буду разбираться дальше!
вот тоже решил побаловаться latex(ом), возник вопрос как сделать что то типа такого:
«___________»«__»
можно конечно сделать пробелами, но внутренний голос подсказывает что это не тру, \hrule замечательно линии рисует вот только оно их рисует через весь лист
>вот тоже решил побаловаться latex(ом), возник вопрос как сделать что то типа такого:
«___________»«__»
Элементарно:
Загружаете пакет "babel" с опцией "russian" (для кавычек-елочек), т. е. в преамбуле, до
\begin{document}
пишете
\usepackage[english,russian]{babel}
и там где нужно пишете
<<\rule[-1pt]{2cm}{0.4pt}>><<\rule[-1pt]{0.7cm}{0.4pt}>>
(длины расставить по вкусу)
Для вставки формул без номера можно использовать окружение displaymath
$$тут выключенная формула без номера$$
Для диаметра можно использовать \varnothing, всё же красивее будет, чем о зачёркнутые (большое и маленькое).
Для использования шрифта 14pt вместо report нужно использовать документ extreport.
так добится times new poman в 14 pt вообще возможно или как?
если нет, то latex для оформление дисера в Беларуси пролетает
14pt возможно, но сложно. Это нестандартный шрифт для Латеха, читайте статьи про "нестандартные размеры", какие файлы вам придется запихнуть в латех - гугл подскажет.
Народ, подскажите как можно выставить определенный межстрочный интервал? Текст 10pt, межстрочное надо сделать 13pt. В данный момент стоит команда \linespread{1.2} и получается примерно 14 pt межстрочный интервал. Обрыла уже все что можно, не понимаю я какой коэффициент надо взять чтобы получить 13pt.
Кстати, и "красивее" и правильнее будет использовать для знака градуса (и других полезных знаков: http://www.ctan.org/tex-archive/info/symbols/comprehensive/symbols-a4.pdf) не такую конструкцию:
$90^{\circ}$
а такую
% спецсимволы
\usepackage{textcomp}
...
90 \textdegree C
Выглядит гораздо лучше как в распечатке так и в коде.
PS: настоятельно советую посмотреть
указанный список спецсимволов, там в начало вынесены наиболее "спрашиваемые". Возможно, там окажутся как раз те, что не были вами найдены и заменены всевозможными "костылями"
PPS: Если что, конструкцию с "градусом" нужно заменить здесь:
http://mydebianblog.blogspot.com/2008/12/latex.html
здесь:
http://mydebianblog.blogspot.com/2009/01/latex-math-in-latex.html
и здесь:
http://mydebianblog.blogspot.com/2009/01/tables-in-latex.html
PPPS: Вот мой пример:
до:
$\text{Вт}/^\circ \text{C}$
после:
Вт / \textdegree C
Заметное упрощение набора, не так ли?
Обнаружил конкретный косяк --- ударение в LaTeX с помощью команды \' ставится только на буквы, написанные латиницей, а кириллическая буква пропадает. Это характерно для кодировки utf8. Что странно, в LyX всё работает нормально.
2 Dober.htm
> А как сделать, чтоб страницы нумеровались сверху, как то требуется для кандидатской диссертации?
Побробуйте так:
надо написать вот это в преамбуле:
\pagestyle{myheadings}
\markright{}
+на каждой странице, где начинается новая глава добавить
\thispagestyle{empty}
При копировании из PDF-файла, сгенерированного pdflatex, пропадают пробелы. Что можно сделать, чтоб пробелы все-таки оставались?
tdnit, для преодоления "косяка с ударением" надо писать уд\'{а}рную гласную в фигурных скобках.
Использую TeXMaker. Если фигурные скобки не стоят, документ компиляцию не проходит.
% Нормализует параметры шрифта-установка 14 кегля
\usepackage[14pt]{extsizes}
% интервал межстрочный: ~1.2
\renewcommand\normalsize{\fontsize{14}{22pt}\selectfont}
% Номера страниц по центру
\usepackage{fancyhdr}
\pagestyle{fancy}
\lhead{}
\chead{}
\rhead{}
\lfoot{}
\cfoot{\normalsize\thepage}
\rfoot{}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}
> А как сделать, чтоб страницы нумеровались сверху, как то требуется для кандидатской диссертации?
Побробуйте так:
надо написать вот это в преамбуле:
\pagestyle{myheadings}
\markright{}
+на каждой странице, где начинается новая глава добавить
\thispagestyle{empty}
Нумерация стравится сверху, как и надо, но на странице, где размещается название главы номер страницы пропадает.
А нет ли в ЛаТеХе аналога HTML-тега <pre>?
Окружение verbatim не подходит, ибо игнорирует табуляцию. Нужно, чтобы вставлять в документ исходный код на C++.
Здравствуйте.
Я только начинаю осваивать ЛаТеХ.
Мне предстоит верстать в ХеЛаТеХ дипломную работу на французском языке. Так же в тексте будут использованы новогреческий, жревнегреческий, русский, польский и английский языки.
Подскажите, пожалуйста, какие пакеты включить в преамбулу документа, чтобы включить переносы во всех языках. И как их переключать (языки).
И еще один вопрос: Как автоматизировать написание фамилий авторов в Библиографии капителью? Чтобы первая буква была чуть больше чем остальные.
Спасибо большое.
>Окружение verbatim не подходит, ибо игнорирует табуляцию. Нужно, чтобы вставлять в документ исходный код на C++.
А пакет listings и окружение lstlisting не подходит?
Вставка номеров страниц сверху, справа:
\usepackage{fancyhdr}
\pagestyle{fancy}
\lhead{} \chead{} \rhead{\normalsize\thepage}
\lfoot{} \cfoot{} \rfoot{}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}
\fancypagestyle{plain}{%
\fancyhf{} % clear all header and footer fields
\fancyhead[RE,RO]{\normalsize \thepage} % Even page, Odd page; Right, Left, Center
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}
}%
\\тоха
rogovsky: комментирует...
> А как сделать, чтоб страницы нумеровались сверху, как > то требуется для кандидатской диссертации?
если используете пакет disser, то надо сделать следующее:
\pagestyle{headcenter}
\chapterpagestyle{headcenter}
ключевые слова headcenter, headleft, headright, footcenter, footleft, footright в документации к пакету.
rogovsky: комментирует...
да, вышесказанное относится к даже пакету disser версии 1.1.1 (более старой версии у меня нет, поэтому не проверял). моя текущая версия disser-1.1.6 и тут все легко настраивается в преамбуле как и указано выше.
Как прописать нижний регистр? подключаемый пакет пишет название в верхнем регистре, а мне нужно пару слов в нижнем зделать
стилевые файлы по требованиям ВАК БЕЛАРУСИ находятся
http://thesisby.at.tut.by/default.html
На
http://terrible-broom.livejournal.com/168063.html
Изложен с виду косой, но эффективный алгоритм перевода из tex в word (из pdf в word через solid converter)
Для этой ідеі может потребоваться
http://welinux.ru/post/3200/
http://sir-drake-ii.livejournal.com/84683.html
Вот моя преамбула (может кому пригодится)
\documentclass{thesisby}
\usepackage[T2A]{fontenc}
\usepackage[utf8]{inputenc}
\emergencystretch=25pt
\usepackage{pscyr}
\usepackage[para]{threeparttable}
\usepackage{cite}
\usepackage{amsmath,amssymb,amsfonts}
\usepackage{longtable,array}
\usepackage{graphicx}
\usepackage{hyperref}
\usepackage[english,russian]{babel}
\renewcommand{\rmdefault}{ftm}
\usepackage[labelsep=period]{caption}
\usepackage{amstext}
\usepackage{textcomp}
Скажите ,пожалуйста, как сделать верхний индекс не справа ,а слева от параметра?
Надеюсь, ещё актуально. Чтобы сделать индекс ("2" в примере ниже) слева от параметра ("а" в примере ниже), можно поступить вот так:
${}^2a$,
т.е. в математическом режиме делаем "пустой" параметр через две фигурные скобки {} (без пробела между ними), далее для этого параметра ставим индекс справа, а после этого печатаем требуемый параметр. Если вы хотите индекс ставить в текстовом режиме, то решение (для примера выше) ещё проще:
\textsuperscript{2}a
Может я что-то пропустила здесь, но нигде не могу найти...
Нужно чтобы формула(или слово) оставались на одной строке без разрыва, подскажите, как это сделать?
Народ, подскажите, как сделать, чтобы список, который находится под формулой и где описываются входящие в нее переменные, сделать так, чтобы он имел отступ от края страницы. Перепробовал команды \list \itemize, безуспешно
\textdegree - для случая, когда имеем в виду угол в градусах, а если градусы по Цельсию, есть \textcelsius (пакет textcomp). Только у меня в Pdf не видно потом знака градуса, если только в этом же документе не использовать какой-нибудь другой символ из того же пакета. В dvi видно.
@Вета Ким комментирует...
\textdegree - для случая, когда имеем в виду угол в градусах, а если градусы по Цельсию
По Цельсию, не по Цельсию - какая разница? Народ, не ищите себе проблемы на ровном месте. Костыль $^\circ$ работает всегда и везде, и без подключения сторонних пакетов (их там и так уже много).
Подскажите, пожалуйста.
Если у меня есть таблица с формулами, а формулы в виду дробей. и они "налезают" друг на друга, как увеличить расстояние между строками?
Спасибо.
Господа, кому нужен Times, наименее костыльный вариант в этом случае — использовать XeLaTeX (правда, там имеется ряд специфичных вещей, как, например, свой пакет polyglossia вместо babel и, как следствие, отсутствие мнемоник для кавычек-«ёлочек», но при использовании Юникода это вроде бы не проблема).
Отправить комментарий