Futzing about trying to see what's wrong with my hooks
[website] / SYinits / 05-latex.html
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">
5   <head>
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">
11     <!--
12       body {
13         color: #ffffff;
14         background-color: #000000;
15       }
16       .comment {
17         /* font-lock-comment-face */
18         color: #87ceeb;
19       }
20       .doc-string {
21         /* font-lock-doc-string-face */
22         color: #32cd32;
23       }
24       .function-name {
25         /* font-lock-function-name-face */
26         color: #ffff00;
27         font-weight: bold;
28       }
29       .keyword {
30         /* font-lock-keyword-face */
31         color: #fa8072;
32       }
33       .reference {
34         /* font-lock-reference-face */
35         color: #40e0d0;
36       }
37       .string {
38         /* font-lock-string-face */
39         color: #00cd00;
40       }
41       .variable-name {
42         /* font-lock-variable-name-face */
43         color: #ffdab9;
44       }
45
46       a {
47         color: #FF0000;
48         background-color: inherit;
49         font: inherit;
50         font-weight: bold;
51         text-decoration: underline;
52       }
53       a:hover {
54         color: #FFFFFF;
55         background-color: #FD00FD;
56         text-decoration: underline;
57       }
58       .img a:hover {
59         background-color: #000000;
60         text-decoration: none;
61       }
62     -->
63     </style>
64   </head>
65   <body>
66     <pre>
67 <span class="comment">;; 05-latex.el --- LaTeX Settings
68 </span>
69 <span class="comment">;; Copyright (C) 2007 - 2020 Steve Youngs
70 </span>
71 <span class="comment">;;     Author: Steve Youngs &lt;<a href="mailto:steve&#64;sxemacs.org">steve&#64;sxemacs.org</a>&gt;
72 ;; Maintainer: Steve Youngs &lt;<a href="mailto:steve&#64;sxemacs.org">steve&#64;sxemacs.org</a>&gt;
73 ;;    Created: &lt;2007-12-02&gt;
74 ;; Time-stamp: &lt;Thursday Apr  9, 2020 06:49:13 steve&gt;
75 ;;   Download: &lt;<a href="https://downloads.sxemacs.org/SYinits/">https://downloads.sxemacs.org/SYinits/</a>&gt;
76 ;;   HTMLised: &lt;<a href="https://www.sxemacs.org/SYinits/05-latex.html">https://www.sxemacs.org/SYinits/05-latex.html</a>&gt;
77 ;;   Git Repo: git clone https://git.sxemacs.org/syinit
78 ;;   Keywords: init, compile
79 </span>
80 <span class="comment">;; This file is part of SYinit
81 </span>
82 <span class="comment">;; Redistribution and use in source and binary forms, with or without
83 ;; modification, are permitted provided that the following conditions
84 ;; are met:
85 ;;
86 ;; 1. Redistributions of source code must retain the above copyright
87 ;;    notice, this list of conditions and the following disclaimer.
88 ;;
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.
92 ;;
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.
96 ;;
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.
108 </span>
109 <span class="comment">;;; Commentary:
110 ;;
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.
116 </span>
117 <span class="comment">;;; Credits:
118 ;;
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.
121 ;;
122 </span>
123 <span class="comment">;;; Todo:
124 ;;
125 ;;     
126 </span>
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>)
137
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.
143 ;;
144 ;; Remove the ones set from tex-mode.el in the texinfo pkg that use
145 ;; latex-mode
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))
156
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>)
162
163 (setq
164  LaTeX-float nil
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
169  TeX-auto-private
170  (file-name-as-directory
171   (expand-file-name "<span class="string">documents/TeXauto</span>" (getenv "<span class="string">HOME</span>")))
172  TeX-auto-save t
173  TeX-debug-bad-boxes nil
174  TeX-macro-private
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
178  TeX-parse-self t
179  TeX-printer-default "<span class="doc-string">Single Colour</span>"
180  TeX-printer-list
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>")))
187
188 (setq-default LaTeX-default-options "<span class="doc-string">a4paper,12pt</span>")
189 (setq-default TeX-master t)
190
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>")))
194
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)
211                    (message 
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">\\&lt;</span>"))
215                              (- end start)))
216           (set-syntax-table ost))))))
217
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 
220 </span>
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)
225
226 <span class="comment">;: RefTeX is a minor mode with distinct support for \ref, \label and
227 ;: \cite commands in (multi-file) LaTeX documents.
228 </span>(setq 
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
238  reftex-label-alist 
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)
252
253 (<span class="keyword">define-key</span> <span class="variable-name">reftex-mode-map</span> [(shift button=)]
254   'reftex-mouse-view-crossref)
255
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
260 ;;example.
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)
265                             index))
266
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>")))
275
276 <span class="comment">;</span><span class="comment"><span class="reference">:*=======================</span></span><span class="comment">
277 ;* Hooks.
278 </span>(<span class="keyword">defun</span> <span class="function-name">sy-LaTeX-toolbar</span> ()
279   (interactive)
280   (set-specifier left-toolbar-width (cons (current-buffer) 32))
281   (latex-toolbar-install))
282
283 (<span class="keyword">defun</span> <span class="function-name">sy-LaTeX-mode-hook</span> ()
284   (turn-on-auto-fill)
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)
288   (turn-on-reftex)
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)))
301
302 (add-hook 'LaTeX-mode-hook #'sy-LaTeX-mode-hook 'append)
303
304 (setq LaTeX-section-hook
305       '(LaTeX-section-heading
306         LaTeX-section-title
307         LaTeX-section-toc
308         LaTeX-section-section
309         LaTeX-section-label))
310
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>)))
322
323 (set-face-parent 'texinfo-heading-face 'font-lock-function-name-face)
324
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)))
345
346 (<span class="keyword">defun</span> <span class="function-name">sy-texinfo-menu</span> ()
347   (easy-menu-add texinfo-mode-menu))
348
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>")
353 </pre>
354   <!--  SXEmacs Logo -->
355     <div class="img">
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" />
361       </a>
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!" />
369       </a>
370     </div>
371 <!--  End Valid XHTML 1.0 -->
372
373     <h6>Copyright &#169; 2020 Steve Youngs<br />
374      Verbatim copying and distribution is permitted in any medium,
375     providing this notice is preserved.<br />
376 <!-- hhmts start -->
377 Last modified: Wed Apr 15 18:12:55 AEST 2020
378 <!-- hhmts end -->
379    </h6>
380
381 </body>
382 </html>