1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3 <!-- Created by htmlize-1.34 in css mode. -->
4 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
6 <title>05-latex.el</title>
7 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
8 <meta name="author" content="Steve Youngs" />
9 <meta name="owner" content="steve@sxemacs.org" />
10 <style type="text/css">
14 background-color: #000000;
17 /* font-lock-comment-face */
21 /* font-lock-doc-string-face */
25 /* font-lock-function-name-face */
30 /* font-lock-keyword-face */
34 /* font-lock-reference-face */
38 /* font-lock-string-face */
42 /* font-lock-variable-name-face */
48 background-color: inherit;
51 text-decoration: underline;
55 background-color: #FD00FD;
56 text-decoration: underline;
59 background-color: #000000;
60 text-decoration: none;
67 <span class="comment">;; 05-latex.el --- LaTeX Settings
69 <span class="comment">;; Copyright (C) 2007 - 2020 Steve Youngs
71 <span class="comment">;; Author: Steve Youngs <<a href="mailto:steve@sxemacs.org">steve@sxemacs.org</a>>
72 ;; Maintainer: Steve Youngs <<a href="mailto:steve@sxemacs.org">steve@sxemacs.org</a>>
73 ;; Created: <2007-12-02>
74 ;; Time-stamp: <Thursday Apr 9, 2020 06:49:13 steve>
75 ;; Download: <<a href="https://downloads.sxemacs.org/SYinits/">https://downloads.sxemacs.org/SYinits/</a>>
76 ;; HTMLised: <<a href="https://www.sxemacs.org/SYinits/05-latex.html">https://www.sxemacs.org/SYinits/05-latex.html</a>>
77 ;; Git Repo: git clone https://git.sxemacs.org/syinit
78 ;; Keywords: init, compile
80 <span class="comment">;; This file is part of SYinit
82 <span class="comment">;; Redistribution and use in source and binary forms, with or without
83 ;; modification, are permitted provided that the following conditions
86 ;; 1. Redistributions of source code must retain the above copyright
87 ;; notice, this list of conditions and the following disclaimer.
89 ;; 2. Redistributions in binary form must reproduce the above copyright
90 ;; notice, this list of conditions and the following disclaimer in the
91 ;; documentation and/or other materials provided with the distribution.
93 ;; 3. Neither the name of the author nor the names of any contributors
94 ;; may be used to endorse or promote products derived from this
95 ;; software without specific prior written permission.
97 ;; THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR
98 ;; IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
99 ;; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
100 ;; DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
101 ;; FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
102 ;; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
103 ;; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
104 ;; BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
105 ;; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
106 ;; OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
107 ;; IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
109 <span class="comment">;;; Commentary:
111 ;; Do you remember back in the old days when you'd write a letter
112 ;; on a piece of paper, stick it in an envelope, put a stamp on it
113 ;; and have the postal service deliver it for you? Well I still do
114 ;; that and LaTeX is how I get it done. At least the writing,
115 ;; formatting, and printing side of it anyway.
117 <span class="comment">;;; Credits:
119 ;; The HTML version of this file was created with Hrvoje Niksic's
120 ;; htmlize.el which is part of the XEmacs "text-modes" package.
123 <span class="comment">;;; Todo:
127 <span class="comment">;;; Code:
128 ;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
129 ;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Initialise aucTeX
130 </span>(<span class="keyword">require</span> '<span class="reference">tex-site</span>)
131 (<span class="keyword">require</span> '<span class="reference">latex</span>)
132 (<span class="keyword">require</span> '<span class="reference">reftex</span>)
133 (<span class="keyword">require</span> '<span class="reference">reftex-vars</span>)
134 (<span class="keyword">require</span> '<span class="reference">latex-units</span>)
135 (<span class="keyword">require</span> '<span class="reference">font-latex</span>)
136 (<span class="keyword">require</span> '<span class="reference">latex-toolbar</span>)
138 <span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
139 ;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> auto-mode-alist
140 ;; LaTeX or latex ??? It doesn't really matter because LaTeX-mode is
141 ;; an alias to latex-mode, I just prefer the former name and like to
142 ;; keep things less messy.
144 ;; Remove the ones set from tex-mode.el in the texinfo pkg that use
146 </span>(remove-alist 'auto-mode-alist "<span class="doc-string">\\.\\(?:sty\\|cls\\|bbl\\)\\'</span>")
147 (remove-alist 'auto-mode-alist "<span class="doc-string">\\.[tT]e[xX]\\'</span>")
148 (remove-alist 'auto-mode-alist "<span class="doc-string">\\.ltx\\'</span>")
149 <span class="comment">;; Add them back for LaTeX-mode
150 </span>(add-to-list 'auto-mode-alist '("<span class="string">\\.\\(?:sty\\|cls\\|bbl\\)\\'</span>" . LaTeX-mode))
151 (add-to-list 'auto-mode-alist '("<span class="string">\\.[tT]e[xX]\\'</span>" . LaTeX-mode))
152 (add-to-list 'auto-mode-alist '("<span class="string">\\.ltx\\'</span>" . LaTeX-mode))
153 (add-to-list 'auto-mode-alist '("<span class="string">\\.drv\\'</span>" . LaTeX-mode))
154 <span class="comment">;; doctex
155 </span>(add-to-list 'auto-mode-alist '("<span class="string">\\.dtx\\'</span>" . doctex-mode))
157 <span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
158 ;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Shutup the byte-compiler
159 </span>(<span class="keyword">defvar</span> <span class="variable-name">ispell-extra-args</span>)
160 (<span class="keyword">defvar</span> <span class="variable-name">LaTeX-mode-map</span>)
161 (<span class="keyword">defvar</span> <span class="variable-name">TeX-shell</span>)
165 TeX-arg-cite-note-p t
166 TeX-arg-footnote-number-p t
167 TeX-arg-item-label-p nil
168 TeX-auto-parse-length 999999999
170 (file-name-as-directory
171 (expand-file-name "<span class="string">documents/TeXauto</span>" (getenv "<span class="string">HOME</span>")))
173 TeX-debug-bad-boxes nil
175 (file-name-as-directory
176 (expand-file-name "<span class="string">documents/TeX</span>" (getenv "<span class="string">HOME</span>")))
177 TeX-outline-extra nil
179 TeX-printer-default "<span class="doc-string">Single Colour</span>"
181 '(("<span class="string">Duplex Colour</span>" "<span class="string">dvips -f %s|lpr -PDuplex_Colour</span>" "<span class="string">lpq -PDuplex_Colour</span>")
182 ("<span class="string">Single Colour</span>" "<span class="string">dvips -f %s|lpr -PSingle_Colour</span>" "<span class="string">lpq -PSingle_Colour</span>")
183 ("<span class="string">Duplex Grey</span>" "<span class="string">dvips -f %s|lpr -PDuplex_Grey</span>" "<span class="string">lpq -PDuplex_Grey</span>")
184 ("<span class="string">Single Grey</span>" "<span class="string">dvips -f %s|lpr -PSingle_Grey</span>" "<span class="string">lpq -PSingle_Grey</span>")
185 ("<span class="string">Photo</span>" "<span class="string">dvips -f %s|lpr -PPhoto</span>" "<span class="string">lpq -PPhoto</span>")
186 ("<span class="string">DL Envelope</span>" "<span class="string">dvips -f %s|lpr -PDL_Envelope</span>" "<span class="string">lpq -PDL_Envelope</span>")))
188 (setq-default LaTeX-default-options "<span class="doc-string">a4paper,12pt</span>")
189 (setq-default TeX-master t)
191 (setq TeX-view-style '(("<span class="string">^a5$</span>" "<span class="string">xdvi -thorough %d -paper a5</span>")
192 ("<span class="string">^landscape$</span>" "<span class="string">xdvi -thorough %d -paper a4r -s 4</span>")
193 ("<span class="string">.</span>" "<span class="string">xdvi -thorough %d</span>")))
195 <span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
196 ;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Count words in a TeX text
197 </span>(<span class="keyword">defun</span> <span class="function-name">sds-word-count</span> (start end)
198 "<span class="doc-string">Count lines/words/characters from START to END.
199 Replacement for count-lines-region.</span>"
200 (interactive "<span class="string">r</span>")
201 (<span class="keyword">let</span> ((ost (syntax-table))
202 (nst (copy-syntax-table)))
203 (modify-syntax-entry ?_ "<span class="string">w</span>" nst)
204 (modify-syntax-entry ?- "<span class="string">w</span>" nst)
205 (<span class="keyword">save-excursion</span>
206 (<span class="keyword">save-restriction</span>
207 (narrow-to-region start end)
208 (goto-char (min start end))
209 (<span class="keyword">unwind-protect</span>
210 (<span class="keyword">progn</span> (set-syntax-table nst)
212 "<span class="string">Region (%d to %d) has: %d lines; %d words; %d characters.</span>"
213 start end (count-lines start end)
214 (string-to-number (how-many "<span class="string">\\<</span>"))
216 (set-syntax-table ost))))))
218 <span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
219 ;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> RefTeX Minor Mode
221 <span class="comment">;; Turn on RefTeX Minor Mode for all LaTeX files
222 </span>(<span class="keyword">autoload</span> 'reftex-mode "<span class="doc-string">reftex</span>" "<span class="doc-string">RefTeX Minor Mode</span>" t)
223 (<span class="keyword">autoload</span> 'turn-on-reftex "<span class="doc-string">reftex</span>" "<span class="doc-string">RefTeX Minor Mode</span>" nil)
224 (<span class="keyword">autoload</span> 'reftex-citation "<span class="doc-string">reftex-cite</span>" "<span class="doc-string">Make citation</span>" nil)
226 <span class="comment">;: RefTeX is a minor mode with distinct support for \ref, \label and
227 ;: \cite commands in (multi-file) LaTeX documents.
229 reftex-default-label-alist-entries
230 '(Sideways AMSTeX amsmath endnotes fancybox floatfig longtable
231 picinpar rotating sidecap subfigure supertab wrapfig LaTeX)
232 reftex-enable-partial-scans t
233 reftex-extra-bindings t
234 reftex-guess-label-type t
235 reftex-initialize-temporary-buffers t
236 reftex-insert-label-flags '(t t)
237 reftex-keep-temporary-buffers t
239 '((nil ?s nil nil nil ("<span class="string">Capital</span>" "<span class="string">Cap.</span>" "<span class="string">Section</span>" "<span class="string">Part</span>") -3)
240 (nil ?e nil nil nil ("<span class="string">Equation</span>" "<span class="string">Eq.</span>") -3)
241 (nil ?t nil nil nil ("<span class="string">Table</span>") -3)
242 (nil ?f nil nil nil ("<span class="string">Figure</span>" "<span class="string">Illustration</span>" "<span class="string">Ill.</span>") -3)
243 (nil ?n nil nil nil ("<span class="string">Comment</span>") -3)
244 (nil ?i nil nil nil ("<span class="string">Point</span>") -3))
245 reftex-label-menu-flags '(t t t t t t t t)
246 reftex-plug-into-AUCTeX t
247 reftex-save-parse-info t
248 reftex-toc-follow-mode t
249 reftex-toc-include-labels t
250 reftex-use-multiple-selection-buffers t
251 reftex-vref-is-default t)
253 (<span class="keyword">define-key</span> <span class="variable-name">reftex-mode-map</span> [(shift button=)]
254 'reftex-mouse-view-crossref)
256 <span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
257 ;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Index support
258 ;;When writing a document with an index you will probably define
259 ;;additional macros which make entries into the index. Let's look at an
261 ;; \newcommand{\ix}[1]{#1\index{#1}}
262 ;; \newcommand{\nindex}[1]{\textit{#1}\index[name]{#1}}
263 </span>(setq reftex-index-macros '(("<span class="string">\\ix{*}</span>" "<span class="string">idx</span>" ?x "" nil nil)
264 ("<span class="string">\\nindex{*}</span>" "<span class="string">name</span>" ?n "" nil nil)
267 (<span class="keyword">defun</span> <span class="function-name">return-created-string</span> ()
268 "<span class="doc-string">Return a \"Created:\" string.</span>"
269 (<span class="keyword">let</span> ((time (current-time-string)))
270 (concat "<span class="string">Created at: </span>"
271 (substring time 0 20)
272 (nth 1 (current-time-zone))
273 "<span class="string"> </span>"
274 (substring time -4) "<span class="string"> </span>")))
276 <span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
278 </span>(<span class="keyword">defun</span> <span class="function-name">sy-LaTeX-toolbar</span> ()
280 (set-specifier left-toolbar-width (cons (current-buffer) 32))
281 (latex-toolbar-install))
283 (<span class="keyword">defun</span> <span class="function-name">sy-LaTeX-mode-hook</span> ()
285 (setq TeX-shell "<span class="string">/bin/zsh</span>")
286 (make-local-variable 'ispell-extra-args)
287 (push "<span class="string">-t</span>" ispell-extra-args)
289 (add-to-list 'TeX-command-list
290 '("<span class="string">xpdf</span>" "<span class="string">xpdf %s.pdf</span>" TeX-run-silent t nil))
291 (add-to-list 'TeX-command-list
292 '("<span class="string">gv</span>" "<span class="string">gv %s.ps</span>" TeX-run-silent t nil))
293 (add-to-list 'TeX-command-list
294 '("<span class="string">pdflatex</span>" "<span class="string">pdflatex -interaction=nonstopmode %t</span>"
295 TeX-run-command nil t))
296 (<span class="keyword">when</span> (device-on-window-system-p)
297 (outl-mouse-minor-mode 1)
298 <span class="comment">;; I can't get my extra toolbar to display from the hook, I don't
299 </span> <span class="comment">;; yet know why, so instead I bind `</span><span class="comment"><span class="reference">S-H-t</span></span><span class="comment">' locally to load it.
300 </span> (local-set-key [(super hyper t)] #'sy-LaTeX-toolbar)))
302 (add-hook 'LaTeX-mode-hook #'sy-LaTeX-mode-hook 'append)
304 (setq LaTeX-section-hook
305 '(LaTeX-section-heading
308 LaTeX-section-section
309 LaTeX-section-label))
311 <span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
312 ;</span><span class="comment"><span class="reference">:*</span></span><span class="comment"> Texinfo
313 ;; Jumping through hoops to ensure that we DO NOT get the AUCTeX
314 ;; tex-info. The texinfo.el from the "texinfo" (S)XEmacs package is
315 ;; older, but far, far, superior. Honestly, the AUCTeX / GNU people
316 ;; have no idea what they're missing.
317 </span>(<span class="keyword">eval-after-load</span> 'tex-info
318 (<span class="keyword">progn</span>
319 (delq 'texinfo-mode TeX-modes)
320 (defalias 'texinfo-mode #'ignore)
321 (<span class="keyword">require</span> '<span class="reference">texinfo</span>)))
323 (set-face-parent 'texinfo-heading-face 'font-lock-function-name-face)
325 <span class="comment">;; Perdy colours!
326 </span>(setq texinfo-font-lock-keywords
327 `(("<span class="string">@\\([a-zA-Z]+\\|[^ \t\n]\\)</span>" 1 font-lock-keyword-face) <span class="comment">;commands
328 </span> ("<span class="string">^\\*\\([^\n:]*\\)</span>" 1 font-lock-function-name-face t) <span class="comment">;menu items
329 </span> ("<span class="string">@\\(emph\\|i\\|sc\\){\\([^}]+\\)</span>" 2 'italic)
330 ("<span class="string">@\\(strong\\|b\\){\\([^}]+\\)</span>" 2 'bold)
331 ("<span class="string">@\\(kbd\\|key\\|url\\|uref\\){\\([^}]+\\)</span>" 2 font-lock-string-face)
332 ("<span class="string">@\\(file\\|email\\){\\([^}]+\\)</span>" 2 font-lock-string-face keep)
333 ("<span class="string">@\\(samp\\|code\\|var\\|math\\|env\\|command\\|option\\){\\([^}]+\\)</span>"
334 2 font-lock-variable-name-face keep)
335 ("<span class="string">@\\(cite\\|x?ref\\|pxref\\|dfn\\|inforef\\){\\([^}]+\\)</span>"
336 2 font-lock-reference-face) <span class="comment">;; #### XEmacs change
337 </span> ("<span class="string">@\\(anchor\\){\\([^}]+\\)</span>" 2 font-lock-type-face)
338 ("<span class="string">@\\(dmn\\|acronym\\|value\\){\\([^}]+\\)</span>" 2 font-lock-builtin-face)
339 ("<span class="string">@\\(end\\|itemx?\\) +\\(.+\\)</span>" 2 font-lock-keyword-face keep)
340 (,(concat "<span class="string">^@\\(</span>" (regexp-opt (mapcar 'car texinfo-section-list) t)
341 "<span class="string">\\)\\(.*\n\\)</span>") 3 texinfo-heading-face t)
342 ("<span class="string">@c\\(omment\\)? \\(.*$\\)</span>" 2 font-lock-comment-face)
343 ("<span class="string">@node \\(.*$\\)</span>" 1 font-lock-warning-face)
344 ("<span class="string">^@[cfvkpt]index \\(.*$\\)</span>" 1 font-lock-variable-name-face)))
346 (<span class="keyword">defun</span> <span class="function-name">sy-texinfo-menu</span> ()
347 (easy-menu-add texinfo-mode-menu))
349 (add-hook 'texinfo-mode-hook #'sy-texinfo-menu)
350 (add-hook 'texinfo-mode-hook #'font-lock-mode)
351 <span class="comment">;</span><span class="comment"><span class="reference">:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*</span></span><span class="comment">
352 </span>(message "<span class="doc-string">LaTeX initialised</span>")
354 <!-- SXEmacs Logo -->
356 <a href="https://www.sxemacs.org/" target="_parent">
357 <img style="padding:0px 5px 0px 0px;border:0;width:88px;height:31px"
358 src="/Images/cbsx.png"
359 title="This page was created entirely in SXEmacs"
360 alt="Created with SXEmacs" />
362 <!-- End SXEmacs Logo -->
363 <!-- Valid XHTML 1.0 -->
364 <a href="http://validator.w3.org/check?uri=https%3a%2f%2fwww.sxemacs.org%2fSYinits%2f05-latex.html" target="_blank">
365 <img style="padding:0px 5px 0px 10px;border:0;width:88px;height:31px"
366 src="/Images/valid-xhtml10.png"
367 title="Valid XHTML 1.0 Transitional!"
368 alt="Valid XHTML 1.0 Transitional!" />
371 <!-- End Valid XHTML 1.0 -->
373 <h6>Copyright © 2020 Steve Youngs<br />
374 Verbatim copying and distribution is permitted in any medium,
375 providing this notice is preserved.<br />
377 Last modified: Wed Apr 15 18:12:55 AEST 2020