[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
30.9.3 TeX Printing Commands
You can invoke TeX as an inferior of Emacs on either the entire contents of the buffer or just a region at a time. Running TeX in this way on just one chapter is a good way to see what your changes look like without taking the time to format the entire file.
- C-c C-r
Invoke TeX on the current region, together with the buffer's header (
tex-region
).- C-c C-b
Invoke TeX on the entire current buffer (
tex-buffer
).- C-c <TAB>
Invoke BibTeX on the current file (
tex-bibtex-file
).- C-c C-f
Invoke TeX on the current file (
tex-file
).- C-c C-l
Recenter the window showing output from the inferior TeX so that the last line can be seen (
tex-recenter-output-buffer
).- C-c C-k
Kill the TeX subprocess (
tex-kill-job
).- C-c C-p
Print the output from the last C-c C-r, C-c C-b, or C-c C-f command (
tex-print
).- C-c C-v
Preview the output from the last C-c C-r, C-c C-b, or C-c C-f command (
tex-view
).- C-c C-q
Show the printer queue (
tex-show-print-queue
).- C-c C-c
Invoke some other compilation command on the entire current buffer (
tex-compile
).
You can pass the current buffer through an inferior TeX by means of
C-c C-b (tex-buffer
). The formatted output appears in a
temporary file; to print it, type C-c C-p (tex-print
).
Afterward, you can use C-c C-q (tex-show-print-queue
) to
view the progress of your output towards being printed. If your terminal
has the ability to display TeX output files, you can preview the
output on the terminal with C-c C-v (tex-view
).
You can specify the directory to use for running TeX by setting the
variable tex-directory
. "."
is the default value. If
your environment variable TEXINPUTS
contains relative directory
names, or if your files contains ‘\input’ commands with relative
file names, then tex-directory
must be "."
or you
will get the wrong results. Otherwise, it is safe to specify some other
directory, such as "/tmp"
.
If you want to specify which shell commands are used in the inferior TeX,
you can do so by setting the values of the variables tex-run-command
,
latex-run-command
, slitex-run-command
,
tex-dvi-print-command
, tex-dvi-view-command
, and
tex-show-queue-command
. The default values may
(or may not) be appropriate for your system.
Normally, the file name given to these commands comes at the end of the command string; for example, ‘latex filename’. In some cases, however, the file name needs to be embedded in the command; an example is when you need to provide the file name as an argument to one command whose output is piped to another. You can specify where to put the file name with ‘*’ in the command string. For example,
(setq tex-dvi-print-command "dvips -f * | lpr") |
The terminal output from TeX, including any error messages, appears in a buffer called ‘*tex-shell*’. If TeX gets an error, you can switch to this buffer and feed it input (this works as in Shell mode; see section Interactive Inferior Shell). Without switching to this buffer you can scroll it so that its last line is visible by typing C-c C-l.
Type C-c C-k (tex-kill-job
) to kill the TeX process if
you see that its output is no longer useful. Using C-c C-b or
C-c C-r also kills any TeX process still running.
You can also pass an arbitrary region through an inferior TeX by typing
C-c C-r (tex-region
). This is tricky, however, because most files
of TeX input contain commands at the beginning to set parameters and
define macros, without which no later part of the file will format
correctly. To solve this problem, C-c C-r allows you to designate a
part of the file as containing essential commands; it is included before
the specified region as part of the input to TeX. The designated part
of the file is called the header.
To indicate the bounds of the header in Plain TeX mode, you insert two special strings in the file. Insert ‘%**start of header’ before the header, and ‘%**end of header’ after it. Each string must appear entirely on one line, but there may be other text on the line before or after. The lines containing the two strings are included in the header. If ‘%**start of header’ does not appear within the first 100 lines of the buffer, C-c C-r assumes that there is no header.
In LaTeX mode, the header begins with ‘\documentclass’ or ‘\documentstyle’ and ends with ‘\begin{document}’. These are commands that LaTeX requires you to use in any case, so nothing special needs to be done to identify the header.
The commands (tex-buffer
) and (tex-region
) do all of their
work in a temporary directory, and do not have available any of the auxiliary
files needed by TeX for cross-references; these commands are generally
not suitable for running the final copy in which all of the cross-references
need to be correct.
When you want the auxiliary files for cross references, use C-c
C-f (tex-file
) which runs TeX on the current buffer's file,
in that file's directory. Before running TeX, it offers to save any
modified buffers. Generally, you need to use (tex-file
) twice to
get the cross-references right.
The value of the variable tex-start-options
specifies
options for the TeX run.
The value of the variable tex-start-commands
specifies TeX
commands for starting TeX. The default value causes TeX to run
in nonstop mode. To run TeX interactively, set the variable to
""
.
Large TeX documents are often split into several files—one main
file, plus subfiles. Running TeX on a subfile typically does not
work; you have to run it on the main file. In order to make
tex-file
useful when you are editing a subfile, you can set the
variable tex-main-file
to the name of the main file. Then
tex-file
runs TeX on that file.
The most convenient way to use tex-main-file
is to specify it
in a local variable list in each of the subfiles. See section Local Variables in Files.
For LaTeX files, you can use BibTeX to process the auxiliary
file for the current buffer's file. BibTeX looks up bibliographic
citations in a data base and prepares the cited references for the
bibliography section. The command C-c <TAB>
(tex-bibtex-file
) runs the shell command
(tex-bibtex-command
) to produce a ‘.bbl’ file for the
current buffer's file. Generally, you need to do C-c C-f
(tex-file
) once to generate the ‘.aux’ file, then do
C-c <TAB> (tex-bibtex-file
), and then repeat C-c C-f
(tex-file
) twice more to get the cross-references correct.
To invoke some other compilation program on the current TeX
buffer, type C-c C-c (tex-compile
). This command knows
how to pass arguments to many common programs, including
‘pdflatex’, ‘yap’, ‘xdvi’, and ‘dvips’. You can
select your desired compilation program using the standard completion
keys (see section Completion).
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |