2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Почему только 2 компиляции приводят к нужному результату.
Сообщение09.12.2015, 15:18 
Добрый день коллеги.

У меня такой вопрос:

Внес изменения в файл, добавив строчку в преамбулу:
Используется синтаксис LaTeX
\usepackage[compress]{cite}
но чтобы все работало как надо т.е. в pdf после компиляции появлялись строчки типа [1–5], а не [?,?,?,?,?], надо делать 2 компиляции, так как после 1 компиляции в pdf после компиляции появлялись строчки типа [?,?,?,?,?]. После 1 компиляции в рабочей папке появятся новые файлы, затем надо сделать 2 компиляцию и все будет как надо. Может надо чтобы список литературы шел отдельным файлом. В рабочей папке у меня на данный момент 3 файла:

1. Главный файл с преамбулой и текстом статьи, а также в нем есть список литературы

2. Второй файл def

код: [ скачать ] [ спрятать ]
Используется синтаксис LaTeX
%                       Definitions

%---------------------------------------------------------------------

\def\be#1{\begin{equation}\label{#1}}
\def\ee{\end{equation}}
\def\eq#1{(\ref{#1})}
\def\eqs#1#2{\eq{#1}--\eq{#2}}

%---------------------------------------------------------------------

\newcommand {\Oe}       [1]     {$$}
\def\oe{$$}
\newcommand {\ba}       [2]     {\be{#1} \begin{array}{#2}}
\newcommand {\ea}               {\end{array} \ee}
\newcommand {\Oa}       [2]     {$$ \begin{array}{#2}}
\def\oa{\end{array} $$}

\newcommand {\qq}   {,\qquad}
\newcommand {\qqp}  {;\qquad\quad}

\newcommand {\const}    {\mbox{\rm const}}

\renewcommand {\=}{\stackrel{\mbox{\scriptsize def}}{=}}
\newcommand {\hence}{\quad\Rightarrow\quad}
\newcommand {\eqv}  {\quad\Longleftrightarrow\quad}

\def\sign{\mathop{\rm sign}}

\let\eps=\varepsilon
\let\w=\omega
\let\al=\alpha

\let\TS=\textstyle
\let\DS=\displaystyle

\def\({\left(}
\def\){\right)}

\def\[{\left[}
\def\]{\right]}

%-----------------------------------------------------------------------

\def\tg{{\rm tg\,}}
\def\Arcsin{{\rm Arcsin\,}}
\def\Arccos{{\rm Arccos\,}}
\def\Arctg{{\rm Arctg\,}}

\def\ap{\,\approx\,}

%-----------------------------------------------------------------------

%\def\fig#1{Fig.\,\ref{fig-#1}}
%\def\figs#1#2{Fig.\,\ref{fig-#1}--\ref{fig-#2}}
\def\fig#1{Рис.\,\ref{fig-#1}}
\def\figs#1#2{Рис.\,\ref{fig-#1}--\ref{fig-#2}}

\def\figlabel#1{\label{fig-#1}}

\def\tablabel#1{\label{tab-#1}}
\def\tabref#1{\ref{tab-#1}}

%-----------------------------------------------------------------------

\let\PI = \varPi
\let\Fi = \f
\let\La = \varLambda
\let\G = \varGamma

\let\la = \lambda
\let\de = \delta

\let\pa=\partial

%---------------------------------------------------------------------

\def\vp{\vphantom{\bigl(}}
\def\vpp{\vphantom{\Bigl(}}
\def\vppp{\vphantom{\biggl(}}
\def\vpppp{\vphantom{\Biggl(}}
 


3 файл defRnD

код: [ скачать ] [ спрятать ]
Используется синтаксис LaTeX
%                       Additional Definitions for Rnd documents

%-----------------------------------------------------------------------

\def\aav#1{\langle{#1}\rangle}
\def\av#1{\left\langle{#1}\right\rangle}
\def\ax#1{\left\{{#1}\right\}}
\def\AV#1{\left[{#1}\right]}
\def\dv#1{D\!\left({#1}\right)}

%---------------------------------------------------------------------

\let\o=\overline
\let\t=\tilde
\let\h=\hat
\let\c=\check

%---------------------------------------------------------------------

\def\s{^{(s)}}
\let\rro = \varrho

%---------------------------------------------------------------------

\def\D{\Delta}
\def\S{{\cal S}}
\let\f = \varphi
%\let\b = \breve

%\def\b#1{\stackrel{\mbox{\scriptsize\smile}}{#1}}
%\def\cc#1{\c{\c #1}}
\def\b#1{\stackrel{\smile}{#1}{\!}}
\def\cc#1{\breve #1}

%---------------------------------------------------------------------

\def\Dp{\D\!^+} \def\Dm{\D\!^-}
%\def\Dp{\D_+} \def\Dm{\D_-}
\def\DD{\D\!^2}
\def\M{{\cal Z}}

%---------------------------------------------------------------------

\def\L{{\cal L}}


Преамбула в главном файле выглядит так:

код: [ скачать ] [ спрятать ]
Используется синтаксис LaTeX
\documentclass[a4paper,12pt]{article}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
%\usepackage{pscyr}
\usepackage[russian]{babel}
\usepackage[compress] {cite}  % <-- !!!!!!!!!!!!!!!

\input def
\input defRnd

\textwidth      = 160mm
\textheight     = 248mm
\oddsidemargin  = 25mm
\topmargin      = 25mm

%\pagestyle{empty}

\hoffset = -25mm \voffset = -38mm   % shift the origin to the bottom left corner

\def\dx{\partial_x}
\def\dt{\partial_t}
\def\W{\varOmega}
\def\LL{{\mathfrak L}}
%\def\LL{\varLambda}
\def\kB{k_{\!B}}
\def\R{{\cal R}}
\def\paptit#1{#1}
\def\pt{}


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

 
 
 
 Re: Почему только 2 компиляции приводят к нужному результату.
Сообщение09.12.2015, 19:19 
Компилируйте latexmk.
Или создавайте командный файл где все те же компиляции будут.
У вас там условно идут компиляции такие
*latex document
bibtex document
*latex document
*latex document

В некоторых случаях даже 3 компиляции после bibtex не предел

 
 
 
 Re: Почему только 2 компиляции приводят к нужному результату.
Сообщение09.12.2015, 21:37 
Аватара пользователя
В принципе 2х компиляций м.б. недостаточно.
В http://dxdy.ru/post865150.html#p865150 объясняется для чего нужны aux файлы (и подобные им) и почему надо компилировать 2-3 раза.

Можно использовать latexmk (впрочем, есть артефакты, когда компиляции вообще "не сходятся").

 
 
 
 Re: Почему только 2 компиляции приводят к нужному результату.
Сообщение10.12.2015, 01:24 
Спасибо за ответы

-- 10.12.2015, 01:33 --

У меня стоит miktex+winedt на windows 8.1.

Спасибо за ответы, latexmk я поставил, что делать дальше, какие команды мне прописывать и где, чтобы все заработало?

-- 10.12.2015, 01:50 --

Lenchik в сообщении #1080953 писал(а):
Компилируйте latexmk.
Или создавайте командный файл где все те же компиляции будут.
У вас там условно идут компиляции такие
*latex document
bibtex document
*latex document
*latex document

В некоторых случаях даже 3 компиляции после bibtex не предел

Какие команды мне прописывать?

 
 
 
 Re: Почему только 2 компиляции приводят к нужному результату.
Сообщение10.12.2015, 01:50 
Аватара пользователя
sashatgu в сообщении #1081038 писал(а):
Спасибо за ответы, latexmk я поставил, что делать дальше, какие команды мне прописывать?


для чего? компилируете как latex или как pdflatex?

И вообще, latexmk д.б. в Вашем дистрибутиве

 
 
 
 Re: Почему только 2 компиляции приводят к нужному результату.
Сообщение10.12.2015, 01:52 
Red_Herring в сообщении #1080977 писал(а):
В принципе 2х компиляций м.б. недостаточно.
В http://dxdy.ru/post865150.html#p865150 объясняется для чего нужны aux файлы (и подобные им) и почему надо компилировать 2-3 раза.

Можно использовать latexmk (впрочем, есть артефакты, когда компиляции вообще "не сходятся").


Какие команды мне прописывать?

 
 
 
 Re: Почему только 2 компиляции приводят к нужному результату.
Сообщение10.12.2015, 03:01 
Аватара пользователя
sashatgu в сообщении #1081045 писал(а):
Какие команды мне прописывать?


Red_Herring в сообщении #1081044 писал(а):
для чего? компилируете как latex или как pdflatex?

 
 
 
 Re: Почему только 2 компиляции приводят к нужному результату.
Сообщение10.12.2015, 07:46 

(build3.cmd)

Код:
SET document_name=dissertation
latexmk -pdf -jobname=%document_name%_pdflatex -ps- -dvi- -recorder -silent %document_name%.tex
latexmk -pdf -jobname=%document_name%_pdflatex -ps- -dvi- -recorder -silent -c %document_name%.tex
latexmk -pdf -jobname=%document_name%_xelatex -ps- -dvi- -recorder -silent -r xelatex_pdfx %document_name%.tex
latexmk -xelatex -jobname=%document_name%_xelatex -ps- -dvi- -recorder -silent -c %document_name%.tex
latexmk -lualatex -jobname=%document_name%_lualatex -ps- -dvi- -recorder -silent %document_name%.tex
latexmk -lualatex -jobname=%document_name%_lualatex -ps- -dvi- -recorder -silent -c %document_name%.tex
del %document_name%_pdflatex.run.xml
del %document_name%_pdflatex.bbl
del %document_name%_xelatex.run.xml
del %document_name%_xelatex.bbl
del %document_name%_lualatex.run.xml
del %document_name%_lualatex.bbl


(xelatex_pdfx)

Код:
$pdflatex = 'xelatex -output-driver="xdvipdfmx -V 3 -z 0" %O %S';
$pdf_mode = 1;
$postscript_mode = $dvi_mode = 0;


Ставьте себе TexLive + TeXStudio. В TeXStudio всё уже прописано и с TeXLive всё идёт в комплекте без доустановок.

 
 
 
 Re: Почему только 2 компиляции приводят к нужному результату.
Сообщение10.12.2015, 11:50 
Red_Herring в сообщении #1081044 писал(а):
sashatgu в сообщении #1081038 писал(а):
Спасибо за ответы, latexmk я поставил, что делать дальше, какие команды мне прописывать?


для чего? компилируете как latex или как pdflatex?

И вообще, latexmk д.б. в Вашем дистрибутиве


Я поставил latexmk через miktex package manager.

Какие команды мне прописать, чтобы все компилировалось правильно с первого раза?

-- 10.12.2015, 11:53 --

Lenchik в сообщении #1081065 писал(а):

(build3.cmd)

Код:
SET document_name=dissertation
latexmk -pdf -jobname=%document_name%_pdflatex -ps- -dvi- -recorder -silent %document_name%.tex
latexmk -pdf -jobname=%document_name%_pdflatex -ps- -dvi- -recorder -silent -c %document_name%.tex
latexmk -pdf -jobname=%document_name%_xelatex -ps- -dvi- -recorder -silent -r xelatex_pdfx %document_name%.tex
latexmk -xelatex -jobname=%document_name%_xelatex -ps- -dvi- -recorder -silent -c %document_name%.tex
latexmk -lualatex -jobname=%document_name%_lualatex -ps- -dvi- -recorder -silent %document_name%.tex
latexmk -lualatex -jobname=%document_name%_lualatex -ps- -dvi- -recorder -silent -c %document_name%.tex
del %document_name%_pdflatex.run.xml
del %document_name%_pdflatex.bbl
del %document_name%_xelatex.run.xml
del %document_name%_xelatex.bbl
del %document_name%_lualatex.run.xml
del %document_name%_lualatex.bbl




(xelatex_pdfx)

Код:
$pdflatex = 'xelatex -output-driver="xdvipdfmx -V 3 -z 0" %O %S';
$pdf_mode = 1;
$postscript_mode = $dvi_mode = 0;


Ставьте себе TexLive + TeXStudio. В TeXStudio всё уже прописано и с TeXLive всё идёт в комплекте без доустановок.




Я поставил latexmk через miktex package manager.

Какие команды и куда мне прописать, чтобы все компилировалось правильно с первого раза?

 
 
 
 Re: Почему только 2 компиляции приводят к нужному результату.
Сообщение10.12.2015, 15:00 
Аватара пользователя
sashatgu в сообщении #1081092 писал(а):
Какие команды и куда мне прописать, чтобы все компилировалось правильно с первого раза?



Оно НИКОГДА с первого раза компилироваться не будет. latexmk просто компилирует сколько раз сколько нужно. И пока Вы хотя бы минимально не поняли, как работает latex, лучше компилировать несколько раз вручную, чем пользоваться автоматом. Я Вaм задал несколько вопросов, которые Вы предпочли проигнорировать. В общем, бог Вам в помощь

 
 
 
 Re: Почему только 2 компиляции приводят к нужному результату.
Сообщение10.12.2015, 23:30 
http://tex.stackexchange.com/a/63875/79756
http://tex.stackexchange.com/questions/ ... -citations

 
 
 
 Re: Почему только 2 компиляции приводят к нужному результату.
Сообщение11.12.2015, 13:03 
Lenchik в сообщении #1081259 писал(а):
http://tex.stackexchange.com/a/63875/79756
http://tex.stackexchange.com/questions/ ... -citations


Большое спасибо за ответы :o

 
 
 [ Сообщений: 12 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group