Участник:KiRiK/TeXnice
Материал из MachineLearning.
Содержание |
Пожелания к оформлению документов LaTeX
- Пробелы (или символы им аналогичные), идущие подряд, заменяются одним.
- Идущие подряд пустые строки (или им аналогичные \par) заменяются одной пустой строкой.
- Содержимое окружений и выключенных формул содержит отступ в начале строк.
- Команда, начинающая группу, оформляется на новой строке.
- Если строка превышает 80 символов, на последнего пробела из первых 80 символов вставляется перенос строки.
- Команды и окружения, начинающие новый абзац (например, главы и разделы), начинаются с новой строки. Если на корректность не повлияет, то отделяются пустой строкой. В противном случае, закомментированной пустой строкой.
- Включенные формулы вставляются так же, как обычный текст.
- Если команда ничего не выводит в текущем месте, она оформляется на отдельной строке.
- Параметры команд и окружений располагаются так же, как в файле с описанием команд.
Оформление списков
- Каждый элемент списка (например, начинающийся с \item) начинается с новой строки.
Оформление таблиц
- Каждая строка таблицы оформляется на отдельной строке в тексте.
Описание команд LaTeX
% пустые строки и строки, начинающиеся с %, игнорируются парсером % Формат описания команды. % \<описания команды с аргументами в формате \def>{ % #1: <тип параметра (length, path и т.п.), если особенный> % ... % <макет команды; например, par bf+ #1 group+ bf* #2 group-> или особый тип команды (symbol, length) % } % Типы команд. % length - длина (измерение) % symbol - символ % Типы параметров. % path - путь до файла % label - метка % raw - набор какой-то фигни, которую парсить не хочется % Обозначения для состояний. % <свойство>+ состояние включается % <свойство>- состояние выключается % <свойство>* состояние переключается % Состояния. % bf - жирность % it - наклон % math - математический режим % group - группа % Дополнительные ключевые слова. % par - начало абзаца % line - начало строки % item - элемент списка % ref - ссылка % image - картинка \abstract#1{} \alpha{symbol} \arccos{symbol} \arcsin{symbol} \author#1{} \BibAuthor#1 {group+ it+ #1: group-} \bibitem#1 {#1: label ref} \BibTitle#1 {group+ #1 group-} \caption#1{} \cdots{symbol} \centering{} \cite#1{ #1: label ref } \columnwidth{length} \cos{symbol} \ddot#1{group+ #1 group-} \Delta{symbol} \delta{symbol} \dot#1{group+ #1 group-} \dots{symbol} \email#1{} \emph#1{group+ it* #1 group-} \eqref#1{ #1: label ref } \frac#1#2{group+ #1 group- group+ #2 group-} \Gamma{symbol} \geq{symbol} \geqslant{symbol} \gg{symbol} \hline{} \in{symbol} \includegraphics[#1]#2{ #1: raw #2: path image } \includegraphics#1{ #1: path image } \infty{symbol} \int{symbol} \it{it+} \item{item} \label#1{#1: label} \lambda{symbol} \ldots{symbol} \left#1{symbol} \leq{symbol} \leqslant{symbol} \limits{% todo } \linebreak{line} \ll{symbol} \ln{symbol} \maketitle {} \mid{symbol} \mu{symbol} \No{symbol} \notag{% todo } \nu{symbol} \omega{symbol} \organization#1{} \paragraph#1{} \pi{symbol} \pm{symbol} \ref#1{ #1: label ref } \right#1{symbol} \section#1{par group+ #1: group- par} \sigma{symbol} \sim{symbol} \sin{symbol} \sqrt#1{#1} \sum{symbol} \tanh{symbol} \tau{symbol} \textbf#1{group+ bf+ #1 group-} \thanks#1{} \theta{symbol} \thickapprox{symbol} \thicksim{symbol} \tilde#1{group+ #1 group-} \title#1[#2]{} \title#1{} \varphi{symbol} \varsigma{symbol} \vartheta{symbol} \xi{symbol}
Формализованные правила замены
% пустые строки и строки, начинающиеся с %, игнорируются парсером % Формат записи макросов. % <где искать>: <что заменить> -> <на что заменить> % <где искать> может быть пустым (в этом случае ищется везде) командой с номером аргумента, например, \author1, или состоянием, например, math % <что заменить> и <на что заменить> представляют собой, вообще говоря, регулярные выражения. в качестве аргументов которых могут выступать конструкции вида % #1<ключевое слово><номер> % а весь текст, который воспринимается "как есть", заключен в двойные кавычки % Ключевые слова (чувствительны к регистру): % number - число % space - промежуток - пробел или его аналог % letter - буква - английская или русская буква % char - один символ (буква, символ препинания, арифметики или команда, определенная как символ; НЕ ПРОБЕЛ!) % word - слово - последовательность букв % plainText - набор слов с пробелами и знаками препинания (.,!?:) % можно определять свои ключевые слова - наборы слов в одну строку #предлог = ["для", "на", "под", "из-за", "с", "до", "от", "в", "из", "при", "о", "по"] #отступ = ["\,", "\:", "\;", "~"] %<англоподобная буква кирилицы> = а, А, В, е, Е, к, К, М, н, Н, о, О, р, Р, с, С, Т, у, У, х, Х, ь, Ь % использование ключевых слов: % "\""#word1"\"" -> "<<"#word1">>" % убираем лишние пробелы #space1"~" -> "~" "~"#space1 -> "~" % т.д., т.к. и т.п. #параДляТ = ["е" , "д", "к", "п"] "т."#параДляТ1"." -> "т.\,"#параДляТ1"." "Т."#параДляТ1"." -> "Т.\,"#параДляТ1"." "Т.\,е." -> "То есть" "Т.\,д." -> "Так далее" "Т.\,к." -> "Так как" %"Т.\,п." -> "Т.\,п." "\""#word1"\"" -> "<<"#word1">>" "\textit{"#plainText1"}" -> "\emph{"#plainText1"}" "{\it"#plainText1"}" -> "\emph{"#plainText1"}" \author1: "."#letter1 -> ".\,"#letter1 \author1: "."#отступ1#letter1 -> ".\,"#letter1 \author1: #word1#отступ1#letter1 -> #word1"~"#letter1 \BibAuthor1: "."#letter1 -> ".\,"#letter1 \BibAuthor1: "."#отступ1#letter1 -> ".\,"#letter1 \BibAuthor1: #word1#отступ1#letter1 -> #word1"~"#letter1 #space1"$"#char1"$" -> "~$"#char1"$" #предлог1#space1 -> #предлог1"~" #space1"\cite" -> "~\cite" % Это то, что тоже нужно бы оформить. Конечно, есть еще множество правок для формализации, но пока хватает разборок с тем, что есть. %\cite{#1},<промежуток или отступ>\cite{#2} -> \cite{#1, #2} % %\caption должно заканчиваться точкой % %русские буквы непосредственно в формулах: если подряд только похожие на английские, то заменить английскими, иначе включить в тэг \text % %вне формулы: <число>-<число> -> <число>--<число> % %<формула>-<формула> -> <формула>--<формула> % %<промежуток или отступ>-<промежуток или отступ> -> <промежуток>"---<промежуток> % %<промежуток или отступ>--<промежуток или отступ> -> <промежуток>"---<промежуток> % %<промежуток или отступ>---<промежуток или отступ> -> <промежуток>"---<промежуток>