pax_global_header00006660000000000000000000000064131353362570014522gustar00rootroot0000000000000052 comment=97dca3f50fc0a68d10344b5f675bdfe0bf4320c6 auctex-11.91/000077500000000000000000000000001313533625700130265ustar00rootroot00000000000000auctex-11.91/.gitignore000066400000000000000000000012541313533625700150200ustar00rootroot00000000000000#* *.aux *.elc *.log *.synctex.gz *~ CHANGES ChangeLog FAQ INSTALL INSTALL.windows Makefile README TODO auctex.el auto-loads.el autom4te.* config.* configure tex-site.el tex-site.el.out doc/*.info doc/*.info-* doc/dir doc/preview-dtxdoc.texi doc/preview-latex.info doc/tex-ref.pdf doc/version.texi etc/auctex-logo.pdf etc/auto latex/prauctex.cfg latex/prauctex.def latex/prcounters.def latex/preview-mk.ins latex/preview.aux latex/preview.drv latex/preview.dvi latex/preview.pdf latex/preview.sty latex/prfootnotes.def latex/prlyx.def latex/prshowbox.def latex/prshowlabels.def latex/prtightpage.def latex/prtracingall.def preview-latex.el /preview.el PROBLEMS.preview tests/*/auto/* auctex-11.91/COPYING000066400000000000000000001045131313533625700140650ustar00rootroot00000000000000 GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. "This License" refers to version 3 of the GNU General Public License. "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. "The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. A "covered work" means either the unmodified Program or a work based on the Program. To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: Copyright (C) This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see . The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read . auctex-11.91/ChangeLog-preview000066400000000000000000001702271313533625700162700ustar00rootroot000000000000002017-07-24 Mosè Giordano * Version 11.91 released. 2017-01-10 Mosè Giordano * Version 11.90 released. 2015-11-13 Mosè Giordano * Version 11.89 released. 2014-11-28 Stefan Monnier * preview.el.in: Cleanup compiler warnings. Mark unused arguments. (error): Don't declare; we don't use it anyway. (view-exit-action): Declare. (desktop-buffer-preview): Use normal names for the function's args. (preview-parse-messages): Remove unused vars `error', `context-start', and `context' (this last one wasn't even bound). 2014-11-04 Stefan Monnier * prv-install.el: Adjust copyright years. (preview-make-package-xemacs): Use insert-file-contents instead of insert-file. * preview.el.in (error): Declare not only at compile-time. (preview-expandable-string): Use explicit let instead of calling lambda with another lambda. (preview-mouse-open-eps): Use default-value of major-mode instead of default-major-mode. (preview-copy-text): Use with-current-buffer instead of save-excursion with set-buffer. (preview-parse-messages): Don't let-bind context. Use mapc + funcall instead of run-hooks. Use goto-char + forward-line instead of goto-line. 2014-10-29 Mosè Giordano * Version 11.88 released. 2014-10-29 Mosè Giordano * latex/preview.dtx: Manually change the release version. * preview.el.in: Rename from "preview/preview.el". (preview-version): Use @PREVIEWVERSION@ autoconf variable. (preview-release-date): Use @PREVIEWDATE@ autoconf variable. (preview-report-bug): Adapt to new `preview-version' format. 2014-06-24 Tassilo Horn * preview.el (preview-gs-command): Don't run the mgs command if mgs is not installed. 2013-09-05 Tassilo Horn * preview.el (preview-lispdir): New defvar. * auto.el.in (preview-lispdir): Set it to @lisppackagelispdir@. 2013-07-03 Tassilo Horn * preview.el (preview-gs-command): Change test for `mgs' functionality to "gs -q -dNODISPLAY -c quit". 2013-07-02 Tassilo Horn * preview.el (preview-gs-command): Better test if `mgs' is working. 2013-07-01 Tassilo Horn * preview.el (preview-gs-command): Test `mgs' for functionality before using it. 2013-06-29 Tassilo Horn * preview.el (preview-gs-command): Prefer the TeX distro ghostscript wrapper scripts `rungs' and `mgs' over calling `gs' directly which requires it to be in PATH. 2013-06-26 Tassilo Horn * Makefile.in (use-hint): Don't warn about problems with overly obsolete packages. 2013-04-08 Tassilo Horn * latex/preview.dtx: Fix date format which got converted from YYYY/MM/DD to YYYY-MM-DD during conversion to git. 2012-12-04 Tassilo Horn Merge revno 314 (Stefan Monnier) from emacs elpa branch: Shorten copyright year ranges. * preview.el: 2011-01-23 Ralf Angeli * preview.el (preview-auto-reveal): Add `forward-char' and `backward-char' to commands on which to open an overlay. 2010-10-14 Ralf Angeli * preview.el (preview-gs-options): Start gs with -dDELAYSAFER instead of -dSAFER. (preview-prepare-fast-conversion): Add relevant files to PermitFileReading list of paths. 2010-02-14 Ralf Angeli * latex/preview.dtx: Add support for XeTeX. 2009-06-18 Ralf Angeli * preview.el (preview-start-pdf2dsc): Determine the PDF source depending on the previews being generated from the master or the region file. 2008-05-10 Reiner Steib * preview.el (preview-auto-cache-preamble): Fix markup in in doc string. 2008-02-03 Ralf Angeli * Relicense all "GPLv2 or later" files to "GPLv3 or later". * COPYING: Switch to GPLv3. * preview/Makefile.in, preview/configure.ac, preview/preview-latex.spec, preview/latex/Makefile.in: Add copyright and license notices. 2007-04-29 Ralf Angeli * preview.el (preview-parse-messages): Match any closing parenthesis. 2007-03-25 David Kastrup * prv-xemacs.el (preview-dump-threshold): * prv-emacs.el (preview-dump-threshold): Make the dump threshold closely match what mylatex.ltx expects. * latex/preview.dtx: Have the counter output appear before the snippet start/end messages in order to have the counter maintenance work out correctly regardless of the order of `auctex' and `counters' options to preview.el. 2007-02-09 Masayuki Ataka * preview.el (preview-report-bug): Use `AUCTeX-version' instead of `AUC-TeX-version'. Reported by Ikumi Keita . 2007-01-12 Ralf Angeli * configure.ac: Bump version number. 2006-12-01 David Kastrup * prv-emacs.el (preview-move-point): Do not error out if `distance' is nil. * prv-xemacs.el (preview-supports-image-type): Move so that the following comment makes sense. 2006-12-01 Ralf Angeli * prv-xemacs.el (preview-move-point): Do not error out if `distance' is nil. 2006-10-24 David Kastrup * prv-xemacs.el (preview-move-point): rearrange for calling `preview-auto-reveal' with DISTANCE argument. * prv-emacs.el (preview-remove-urgentization): Small optimization. (preview-move-point): Rearrange to be more efficient in the absence of overlays. * preview.el (preview-auto-reveal): Fetch keybindings of [left] and [right] at runtime. Change proposed default accordingly. (preview-at-point): Fix change from 2005-03-15 for cursor restoration. (preview-auto-reveal-p): Implement integer MODE and take DISTANCE argument. (preview-auto-reveal): Allow DISTANCE. 2006-10-19 David Kastrup * prv-xemacs.el (preview-defmacro): Use `fboundp' instead of `functionp'. (add-to-list): compatibility function not needed anymore since 2006-10-11 change. 2006-10-18 David Kastrup * preview.el (eval-when-compile): restore function definitions of compatibility macros. * prv-xemacs.el (preview-defmacro): Also redefine functions that actually exist, but save their definition. * preview.el (preview-parse-messages): Fix bad regexp. 2006-10-16 David Kastrup * preview.el (preview-parse-messages): Rearrange the regexp for matching and renumber the matches and match strings accordingly. 2006-10-11 David Kastrup * preview.el (LaTeX-preview-setup): Move setup of `TeX-error-description-list' and `TeX-expand-list' to AUCTeX proper. 2006-10-10 David Kastrup * preview.el (preview-gs-filter): Fix prompt match expression to allow stack garbage > 10. (preview-gs-open): Assume `.runandhide' is defined (Ghostscript 6.53 and greater). Don't check Ghostscript stack for correctness, just leave garbage. (preview-prepare-fast-conversion): Use `.runandhide' to ignore garbage left by preamble (such as Omega fonts). (preview-LaTeX-command): Use "%'" and "%t" expansion strings in order to allow filenames with spaces in them. (preview-goto-info-page): Use `info' instead of `Info-goto-node'. (preview-parse-messages): Spike up terminal log file name tracing in order to have a reasonable chance of detecting spaces in file names. (preview-parse-messages): Massage match string for partial strings to deal better with TeX-quoted control sequences. (preview-dump-file-name): The format name should not contain spaces. Replace them with underlines. (preview-dump-replacements, preview-undump-replacements): Use a different replacement in order to work with the new `preview-LaTeX-command'. (preview-cache-preamble): shell-quote `preview-format-name'. Keep `mylatex.ltx' from ignoring spaces in file names. (TeX-inline-preview-internal): shell-quote `preview-format-name'. 2006-09-29 David Kastrup * preview.el (preview-gs-command): Make default depend on `system-type', using "GSWIN32C.EXE" on `windows-nt'. * configure.ac: If no GhostScript or the standard setting for the operating system is found, don't override the default. 2006-09-21 David Kastrup * preview.el (preview-TeX-style-cooked): Fix bugs. (preview-set-texinputs): Use `preview-TeX-style-cooked'. (preview-TeX-style-dir): Change doc string to reflect new behavior of `preview-set-texinputs'. (preview-install-styles): Try to deal with `preview-TeX-style-dir' properly. Bomb out if no styles found to install. (preview-report-bug): Add `preview-TeX-style-dir' to reported variables. * configure.ac: Remove `--with-kpathseasep' option. 2006-09-01 David Kastrup * prv-xemacs.el (preview-import-image): Allow strings as image properties. * prv-emacs.el (preview-remove-urgentization) (preview-import-image): Allow strings as image properties. * preview.el (preview-clearout, preview-kill-buffer-cleanup) (preview-place-preview): Use `timestamp' field universally for dealing with when to overwrite and when to retain images, don't rely on filename internals. (desktop-buffer-preview-misc-data): Use `preview-image' to judge the availability of savable data. (preview-reinstate-preview): Allow saving images without associated filenames. (preview-format-mml): Deal with string type images. 2006-08-25 David Kastrup * latex/preview.dtx: Use eTeX's `\protected' on redefinitions when available. 2006-08-15 David Kastrup * latex/preview.dtx: Change from 2006-07-12 could lose the `AtBeginDvi' material. Fix that. Disable preview within output routine. And actually hijack `\output' instead of doing it half way. 2006-07-28 Reiner Steib * latex/Makefile.in (install-texmf): Only update the relevant ls-R file. 2006-07-25 David Kastrup * latex/preview.dtx: Allow two optional parameters as in memoir.cls for sections. Also preview chapter headings. 2006-07-23 Ralf Angeli * configure.ac: Fix spelling of MiKTeX. 2006-07-12 David Kastrup * latex/preview.dtx: Add a font-lock helping comment, remove preview's hook into the output routine, deactivate `\shipout' in a cleaner manner. 2006-07-11 David Kastrup * latex/preview.dtx: Fix XymTeX catcodes again. 2006-07-10 Ralf Angeli * Makefile.in, latex/Makefile.in (datarootdir): New variable used by autoconf 2.59e. 2006-06-12 Ralf Angeli * latex/README: Streamline. Add sections. Clean up. 2006-06-08 David Kastrup * latex/README: Adapt to new realities. 2006-05-25 David Kastrup * latex/preview.dtx: Add another fix for XyMTeX (which got the catcode for @ wrong). 2006-05-25 Ralf Angeli * configure.ac: Bump version number. Update address of FSF in GPL notices. 2006-04-20 David Kastrup * preview.el (preview-parse-messages): Adapt parser to `-file-line-error-style' messages. Try to make the detection of the current file more robust. Utilize file-line-error messages for that purpose if they are present. 2006-03-22 Ralf Angeli * Makefile.in (.PHONY, install): Remove `install-metadata'. (install-metadata): Remove. 2006-03-22 David Kastrup * prv-install.el (preview-make-package-xemacs): Accept list of files to be appended. 2006-03-14 Ralf Angeli * configure.ac: Use `AC_PROG_MAKE_SET' instead of deprecated `AC_SET_MAKE'. 2006-02-21 Ikumi Keita * preview.el (preview-error-quote, TeX-inline-preview-internal): Fix the problem that preview-latex put the preview-image in wrong place if user compiles iso-2022-jp file on Windows or UNIX, by using TeX-japanese-process-output-coding-system for preview-coding-system instead of buffer-file-coding-system if tex-jp.el is loaded. 2006-01-29 Ralf Angeli * Makefile.in (install-metadata): Let `for' loop return an exit status of 0. 2006-01-20 Reiner Steib * preview.el (preview-TeX-style-cooked): Fix cond expression. 2006-01-17 David Kastrup * preview.el (preview-TeX-style-cooked): New function, to be used later. Just checked in so that nobody else feels compelled writing it. 2006-01-14 David Kastrup * configure.ac: Remove infodir and INSTALL_INFO checks. Don't check for TEXHASH if it is already set. 2006-01-13 David Kastrup * preview.el (preview-parse-messages): Some ugly fix for `' style error messages. 2005-12-31 David Kastrup * Makefile.in (ELCC, AUCTEX): Put "." in front of load-path to avoid picking up outdated `prv-*.el*' files from the installation directory. 2005-12-17 Ralf Angeli * configure.ac: Bump version number. 2005-10-24 Ralf Angeli * configure.ac: Import `TEX' in unquoted form. 2005-10-13 Ralf Angeli * configure.ac: Change wrongly used `previewdatadir' to `previewlispdir'. Change version number in `AC_INIT'. 2005-10-03 Ralf Angeli * prv-xemacs.el (preview-check-changes): Delete detached extents. 2005-09-27 Ralf Angeli * configure.ac: Document option for specifying AUCTeX startfile as --with-previewstartfile, not --with-preview-startfile which does not work. Use matching package names for determining the kpathsea path separator both internally and in the option name which now is --with-kpathseasep. Fix the quadrigraph for the closing bracket in the kpathsesep-related error message. 2005-09-25 Ralf Angeli * latex/preview.dtx: Add space for nicer formatting in version output. Adapt checksum. 2005-09-25 David Kastrup * latex/preview.dtx: Try fixing the release parsing/grouping. 2005-09-25 Ralf Angeli * latex/README (CTAN): Bump version number. * latex/preview.dtx: Fix case in release tag parsing. 2005-09-24 David Kastrup * latex/preview.dtx: Try parsing version correctly by treating underlines in the release tag properly. 2005-09-24 Ralf Angeli * preview.el (preview-version): Extract version number from release tag. 2005-08-18 Ralf Angeli * configure.ac: Import unquoted variables from top-level configure script. 2005-07-15 David Kastrup * latex/preview.dtx: Don't talk nonsense about the footnote macro, and don't define it nonsensical for AUCTeX. Reproduce `\@startsection' command to keep numbering correct in default configuration for AUCTeX. 2005-07-14 David Kastrup * configure.ac: protect against packagedir starting with `-' 2005-07-11 David Kastrup * preview.el (preview-at-point): Join adjacent touched previews for regeneration. * prv-emacs.el (preview-mode-setup): * prv-xemacs.el (preview-mode-setup): Use correct string for resetting watch on preamble. 2005-07-05 David Kastrup * preview.el (preview-string-expand): Allow substrings to be controlled by booleans. (preview-expandable-string): Adapt type to that. (preview-required-option-list): Make dependent on `preview-preserve-counters'. (preview-preserve-counters): New boolean. 2005-06-30 jalar * latex/preview.dtx: : added comments 2005-06-28 Jan-Ake Larsson * latex/preview.dtx: Add version number in a \special, in dvips mode. Fix mismatched parantheses. 2005-06-27 David Kastrup * latex/preview.dtx: Put version into `\pr@version'. 2005-06-27 Jan-Ake Larsson * latex/preview.dtx: Add backwards-compatibility for dvipng <= 1.5 * latex/preview.dtx: Add preview@tightpage 2005-06-24 David Kastrup * prv-install.el (preview-make-package-xemacs): Add author-version. * preview.el (preview-TeX-style-dir): Change docs. * latex/Makefile.in (preview.dvi): Depend on preview.sty (preview.pdf): Same here. * configure.ac: Remove checks for PERL and info-related stuff. Add . into search path first. * Makefile.in (texmf): Depend on latex/Makefile (latex/Makefile, auto.el, configure, Makefile, config.status): targets to make sure that Makefile and stuff are up to date. (install-metadata): pass author version into prv-install.el 2005-06-21 Ralf Angeli * configure.ac: Make message at end of configuration clearer. Remove redundant build hint. * .cvsignore: Remove irrelevant entries. 2005-06-21 David Kastrup * configure.ac: correct comparison. 2005-06-20 David Kastrup * RELEASE: Remove (folded into ../RELEASE). 2005-06-18 David Kastrup * preview.el (preview-gs-dvips-process-setup) (preview-dvipng-process-setup): Improve error message. (preview-parse-messages): Don't throw error on nil parsestate if we are in error unwinding mode already. 2005-06-14 David Kastrup * README.CVS: Remove. Top file should be sufficient. * autogen.sh: Remove. We have its functionality in the top directory. 2005-06-08 Ralf Angeli * Makefile.in (docs, install-docs): Remove. (all): Do not depend on `docs' anymore. (.PHONY): Do not depend on `docs' and `install-docs' anymore. (clean, maintainer-clean): Do not descend into doc directory anymore. * autogen.sh: Do not generate documentation anymore. * configure.ac: Remove doc/Makefile from AC_OUTPUT. * doc/todo.texi: Move to AUCTeX's main doc/ directory as preview-todo.texi. * doc/readme.texi: Move to AUCTeX's main doc/ directory as preview-readme.texi. * doc/problems.texi: Move to AUCTeX's main doc/ directory as preview-problems.texi. * doc/preview-dtxdoc.pl, doc/preview-latex.texi: Move to AUCTeX's main doc/ directory. * doc/faq.texi: Move to AUCTeX's main doc/ directory as preview-faq.texi. * doc/copying.texi: Move to AUCTeX's main doc/ directory. * doc/Makefile.in: Remove. * doc/.cvsignore: Remove. 2005-06-06 David Kastrup * configure.ac: Remove call to MAKEINFO_CHECK_MACROS: we expect a recent enough makeinfo version for bootstrapping, anyway. * doc/Makefile.in (MAKEINFO_MACROS): remove (TEXINFOINCLUDES): Remove unused TEXIPWD hack. Troublesome. 2005-06-04 David Kastrup * doc/Makefile.in (TEXIFILES): Oops, depends on ../../doc/macros.texi * latex/Makefile.in (MKINSTALLDIRS): * doc/Makefile.in (MKINSTALLDIRS): * Makefile.in (MKINSTALLDIRS): Use mkinstalldirs from AUCTeX. * mkinstalldirs: remove in favor of ../mkinstalldirs * doc/Makefile.in (TEXI2HTML): Use TEXI* tools and TEXINFOINCLUDES. (../README): et al. Depend on ../../doc/macros.texi * configure.ac: Check and test for TEXI* as well. Quotify if necessary. * autogen.sh: Look in .. for macros. * doc/Makefile.in (preview-latex.dvi): Use texi2dvi. (preview-latex.pdf): Use texi2pdf. (preview-latex.ps): Use -Ppdf option. (preview-latex.info, ../README, ../FAQ, ../PROBLEMS, ../TODO): deal with ../../doc/macros.texi 2005-05-25 David Kastrup * circ.tex (section{Die gerade Linie}): Make the intentional errors more conspicuous. 2005-05-24 David Kastrup * aclocal.m4: Use elif for prettiness. * prv-xemacs.el (preview-mode-setup): Change watch condition. (preview-watch-preamble): Accept command. (preview-unwatch-preamble): Change unwatch method. (preview-preamble-check-change): Change check. * prv-emacs.el (preview-preamble-changed-function): First unwatch preamble, then kill format. (preview-watch-preamble): Accept command to watch for. (preview-unwatch-preamble): Adapt to new `format-cons' format. (preview-mode-setup): Change watch condition. * preview.el (preview-dumped-alist): Change definition. (preview-parse-messages): Use `string-to-number' instead of obsoleted `string-to-int'. (preview-cache-preamble): Add format-cons arg. Only cache preamble if there is no cache with the same command yet. Precalculate command and check whether it matches previous one. If so, omit dumping. (preview-region, preview-document): Expand command here. (preview-generate-preview): Accept expanded command. Always tentatively dump command (unless disabled) and set sentinel only if this succeeded. (TeX-inline-preview-internal): Set command buffer at start. Use `commandbuff' argument rather than `TeX-command-buffer'. Raise error at different point. 2005-05-22 David Kastrup * aclocal.m4: Allow --with-emacs=sth and --without-xemacs and similar combinations as long as they are more or less consistent. 2005-05-21 Ralf Angeli * prv-install.el (preview-make-package-xemacs): Cater for XEmacs 21.5 which uses a different interface for generating autoloads at present. 2005-05-21 David Kastrup * doc/wininstall.texi: Editing changes. Last checkin before removal. * doc/install.texi: Editing changes. Last checkin before removal. * doc/faq.texi (Customization): Don't use @var inappropriately. * autogen.sh: Remove generation of auto.texi. * doc/preview-latex.texi (Installation): Refer to AUCTeX manual. (Keys and lisp): Some formatting changes. * doc/Makefile.in (TEXIFILES): Remove wininstall.texi and install.texi. (DISTTEXTS): Remove ../INSTALL and ../INSTALL.windows (../INSTALL, ../INSTALL.windows): Remove. * doc/problems.texi (Known problems): Remove old AUCTeX advice. Remove explicit node names. (Emacs problems): Rewrite. Mention precompiled CVS Emacsen. Refer to AUCTeX manual. (AUCTeX prior to 11.0): Remove. (Too small bounding boxes): Reword. (x-symbol interoperation): Explain 8-bit cleanliness somewhat more. 2005-05-20 Ralf Angeli * preview.el (preview-specs-type): Use an extra :value keyword to avoid a bug in `widget-convert' of XEmacs 21.4 and Emacs 21. 2005-05-18 David Kastrup * doc/preview-dtxdoc.pl: Don't use \n in character ranges since it is not actually a character in Windows. 2005-05-17 David Kastrup * Makefile.in (lisp): Rewrite condition to make `make -n' work, also non-Posix shells. (install-metadata): Rewrite stuff for non-Posix shells. (preview-latex.el): Same here. (install-metadata): ignore return state of mkinstalldirs. 2005-05-02 David Kastrup * doc/wininstall.texi: * doc/install.texi: Overhaul, use auto.texi. * doc/Makefile.in (../INSTALL, ../INSTALL.windows): add auto.texi dependence. (maintainer-clean): remove auto.texi. * autogen.sh: Generate auto.texi * README.CVS: Some modifications. * aclocal.m4 (EMACS_PATH_LISPDIR): better help. 2005-05-01 David Kastrup * doc/install.texi (Configure): Synch with auctex. 2005-04-30 David Kastrup * configure.ac: Use existing variables packagedatadir, packagelispdir. If configuring a package and infodir is defaulted, disable install-info. Disable TEXHASH when installing --without-texmfdir. Move TEXHASH test. * aclocal.m4: Use existing lispdir variable. * prv-install.el (preview): don't require (preview-make-package-xemacs): several changes to command line options. * Makefile.in (lisp): rename from elisp for harmony with AUCTeX. (install-images): rename from install-icons. (install-metadata): new options for prv-install.el 2005-04-29 David Kastrup * aclocal.m4: echo date correctly. 2005-04-28 David Kastrup * aclocal.m4 (AUCTEX_AUTO_DIR): simplify. (AC_LISPIFY_DIR): add third argument. Simplify a few common expressions. 2005-04-27 David Kastrup * aclocal.m4: sed paranoia. 2005-04-27 Ralf Angeli * aclocal.m4 (AC_DATE_VERSION_FROM_CHANGELOG): Escape `+'. Add regexp group. Close function. 2005-04-27 David Kastrup * preview.el (TeX-inline-preview-internal): Don't try interpreting coding-system if it is nil. * aclocal.m4 (AC_DATE_VERSION_FROM_CHANGELOG): actually look into the ChangeLog file. Uh. * latex/README (Note): Add bug reporting address. 2005-04-19 David Kastrup * preview.el (preview-install-styles): Add autoload cookie. 2005-04-18 David Kastrup * preview.el (preview-dump-state): New function to get run buffer info. (preview-report-bug): Use it. * Makefile.in (install-metadata): include directories in `MANIFEST'. 2005-04-16 David Kastrup * latex/preview.dtx: Work around another ntheorem bug affecting showlabels. 2005-04-12 David Kastrup * configure.ac: Don't bother about pre-2.5 autoconf versions. * doc/faq.texi (Customization): Remove lamentation that PDF foreground is fixed to black. * preview.el (preview-pdf-color-string): New function. (preview-pdf2dsc-sentinel): Use it. * configure.ac: renamed from configure.in 2005-04-11 jalar * configure.in: Minimal changes to printouts 2005-04-11 Ralf Angeli * preview.el (preview-set-texinputs): Fix grouping. 2005-04-11 David Kastrup * prv-install.el (preview-make-package-xemacs): Don't generate manifest and take package name from command line. * configure.in: Don't expose `lispdir'. Explain `TEXHASH', `PERL', `MAKEINFO', `INSTALL_INFO'. * latex/Makefile.in (texmfdir): Don't import. * Makefile.in (lispdir): Don't import. * preview.el (preview-counter-find): Fix bug with `(marker)'. * latex/Makefile.in (exec_prefix, libdir): Export. * doc/install.texi (Configure): Explain `--without-texmf-dir'. (Advice for package providers): Don't trash talk AUCTeX preactivation. (Advice for package providers): Mention `--without-texmf-dir'. * doc/Makefile.in (exec_prefix, libdir): export. * preview.el (preview-datadir): Use instead of `preview-icondir'. (preview-filter-specs): Use it. (preview-TeX-style-dir): New variable for uninstalled styles (preview-set-texinputs): Add or remove it from TEXINPUTS environment. (preview-TeX-style-dir): proper customization. (preview-install-styles): New function to install styles permanently. * configure.in: use `packagedatadir' instead of `icondir'. Add check for `kpathseaseparator'. Shell-quote and export `exec_prefix' and `libdir'. * auto.el.in (preview-datadir): replace preview-icondir, and add `lisppackagetexstyles' invocation. * aclocal.m4 (TEX_PATH_TEXMFDIR): Allow --without-texmf-dir, stop quoting a bunch of stuff, fix reference to load-file-name. * Makefile.in (exec_prefix, libdir, packagedatadir): export since the XEmacs tree might call them. (.PHONY, install): add install-nosearch target. (install-nosearch): Install .nosearch file. (install-icons): Use `$(packagedatadir)/images' instead of `$(icondir)' 2005-04-10 David Kastrup * configure.in: Use new backquote syntax. * doc/install.texi (Configure): Clarify. 2005-04-10 Ralf Angeli * latex/preview.dtx: Dvipng --> dvipng. * RELEASE, circ.tex, configure.in, preview.el, doc/faq.texi, doc/install.texi, doc/preview-latex.texi, doc/problems.texi, doc/readme.texi, doc/wininstall.texi, latex/README, latex/preview.dtx: GhostScript --> Ghostscript. 2005-04-08 David Kastrup * Makefile.in (previewstartfile): import. (install-startup): split lines with `$(MAKE)' and `$(INSTALL_DATA)' so that `make -n' will properly recurse. * aclocal.m4 (AC_LISPIFY_DIR): resolve relative paths below ${lispdir} hierarchy. AC_SUBST both lisp variant of directory as well as original. * configure.in: Add `--with-preview-startfile', use new semantics of `AC_LISPIFY_DIR', drop `AC_MAKE_FILENAME_ABSOLUTE' stuff. * doc/install.texi (Configure): explain new semantics of `--with-lispdir' and new `--with-preview-startfile'. * doc/wininstall.texi: Document changes semantics for `--with-lispdir' and new `with-preview-startfile'. 2005-04-07 David Kastrup * aclocal.m4 (EMACS_LISP): properly echo result to log file. (EMACS_EXAMINE_INSTALLATION_DIR): check that the result of file-relative-name is not absolute, which can happen for unrelated drives on Windows. (AC_FULL_EXPAND): also check, set and restore exec_prefix if not set. 2005-04-05 Ralf Angeli * configure.in: Cosmetics for ./configure --help. * preview.el (desktop-buffer-preview): Return buffer even if no information about previews is found. 2005-04-04 David Kastrup * preview-latex.spec (URL, Source0): Fix addresses to point to AUCTeX. Oops. 2005-04-03 David Kastrup * Release 0.9.1 * latex/preview.dtx: Don't let negative dimensions into tightpage comment. * doc/macros.texi: Make @previewlatex swallow argument in links. Don't scrap sf declaration. Make it correct in links. * doc/readme.texi (What use is it?): * doc/problems.texi: * doc/install.texi (Top): Work around raisesection bug. * doc/Makefile.in (../INSTALL, ../INSTALL.windows, ../README) (../FAQ, ../TODO): Remove --no-validate option. (../PROBLEMS): remove --no-validate option, and number sections. * doc/faq.texi: Make validatable top entry. Don't raise sections until after the first chapter. This is insane, but otherwise everything will be unnumbered. * configure.in: Expand `packagelispdir' and `lispdir' before checking for conflicts. 2005-04-02 David Kastrup * autogen.sh: Remove autom4te.cache * doc/Makefile.in (.PHONY): Add a few targets. * doc/readme.texi (Basic modes of operation): Correct dvipng information. * autogen.sh: make preview-latex.info generation work by passing in PERL default. * README.CVS: Mention that `perl' is needed for autogen.sh, and that `makeinfo' might need to be up to date. * latex/README: Renamed from latex/README-preview. Overhaul availability. * doc/macros.texi: Synchronize to AUCTeX. * Makefile.in (tarball-ready): Remove this target for now: it can't be used consistently really. It is probably better to do just run autogen.sh on a freshly exported archive. * doc/Makefile.in (DISTTEXTS): Targets in parent dir. (../INSTALL, ../INSTALL.windows, ../README, ../FAQ, ../PROBLEMS) (../TODO): New targets instead of targets in current dir. (clean): Don't remove targets in this dir. (maintainer-clean): Remove DISTTEXTS targets. * autogen.sh: Use make for generating distribution texts and also pregenerate the info file. * Makefile.in (emacsprefix): Remove. (.PHONY): Collect phony targets here. (DISTTEXTS): Move to doc/Makefile.in (tarball-ready): Adapt * preview-latex.spec: Change version number. Change directory choice to "xemacs-packages" on fedora. * doc/wininstall.texi: Mention that Perl is not needed if working with the default tarball. * doc/preview-latex.texi: Bump versions numbers, fix copyrights. * doc/readme.texi (Activating preview-latex): Don't talk about half a dozen non-sensical things. (Availability): Change information to match move into AUCTeX. * configure.in: Add check for load-path shadowing. * aclocal.m4 (TEX_PATH_TEXMFDIR): We want "${texprefix}/share" in most cases. 2005-04-01 David Kastrup * doc/faq.texi: Some changes. This thing really is an outdated unmaintained abomination. We need to do something about it at one time. 2005-04-01 Ralf Angeli * aclocal.m4 (EMACS_EXAMINE_INSTALLATION_DIR): Repair quoting. 2005-04-01 David Kastrup * RELEASE: rearrange. Mention AUCTeX 11.80 as target. * aclocal.m4(EMACS_EXAMINE_INSTALLATION_DIR): avoid trailing `/.'. (TEX_PATH_TEXMFDIR): search order changed. * latex/Makefile.in (prefix, datadir, texmfdir, previewtexmfdir) (previewdocdir): Use (null) to mask Windows backslashes. * configure.in: Adjust version info. * aclocal.m4 (EMACS_PATH_PREFIX): just generate a single output. (EMACS_PROG_EMACS): Check for `emacsprefix'. (EMACS_EXAMINE_INSTALLATION_DIR): accept list of prefix variables as second argument. Decompose and compare directory names starting from the back. (EMACS_PATH_PACKAGEDIR): search in several prefixes. (EMACS_PATH_LISPDIR): same. (TEX_PATH_TEXMFDIR): set `texprefix' from kpsepath. Use new `EMACS_EXAMINE_INSTALLATION_DIR' for getting TeX directories. 2005-03-31 David Kastrup * configure.in: Don't set prefix if it is not set. * aclocal.m4 (EMACS_PATH_PREFIX): new function. (AC_FULL_EXPAND): set `prefix' from `ac_default_prefix' before expansion if it is unset. 2005-03-31 jalar * Makefile.in: * aclocal.m4: Add $emacsprefix 2005-03-31 David Kastrup * RELEASE: Update release info. 2005-03-30 Ralf Angeli * Makefile.in (use-hint): Fix spelling. * preview.el (preview-report-bug): Use "preview-" prefix in version information. 2005-03-29 David Kastrup * configure.in (auctexdir): Use `AC_ARG_VAR' on `GS' and `TEXHASH' (should probably also be used on a few other environment variables). Use `AC_SHELL_QUOTIFY' on `GS'. 2005-03-28 David Kastrup * preview.el (preview): Change home page address to AUCTeX. (preview-report-bug): Change bug reporting address. * doc/readme.texi (Contacts): Change mailing list info. * doc/problems.texi: Change mailing list info. * doc/faq.texi (Introduction to FAQ): Change mailing list address. * preview.el (if): Use (featurep 'xemacs) instead of `(string-match "XEmacs" (emacs-version))'. (preview-at-point): Don't check for XEmacs, just use `TeX-active-mark' instead. 2005-03-24 Ralf Angeli * Makefile.in (distclean, maintainer-clean, tarball-ready): Delete autom4te.cache in maintainer-clean and tarball-ready targets. 2005-03-24 Jan-Ake Larsson * doc/Makefile.in: Add *.pdf to clean target and preview-dtxdoc.texi to maintainer-clean 2005-03-23 jalar * doc/Makefile.in: * Makefile.in: add maintainer-clean target * Makefile.in: add tarball-ready target * configure.in: Add check for perl * doc/Makefile.in: Use the configure-provided $PERL 2005-03-22 David Kastrup * preview.el (preview-counter-find): Coerce `begin' to integer to work around an Emacs 21.x bug. * Makefile.in (install): Install startup file before docs. * doc/Makefile.in (preview-latex/index.html): Don't ignore exit status of makeinfo (this target is on-demand only, anyway). * doc/preview-dtxdoc.pl: Accept two arguments so that output file will not get clobbered if Perl is not operative. 2005-03-19 David Kastrup * prv-xemacs.el (preview-buffer-recoding-alist): Madness variable. (preview-buffer-recode-system): Use it. (tex-site, tex, latex): Require them. * prv-emacs.el (tex-site, tex, latex): require them to silence byte compiler. (preview-buffer-recode-system): Compatibility function. Probably not necessary for Emacs. * preview.el (TeX-overlay-prioritize): don't redefine, test for its presence at runtime. Less invasive, less offensive to the byte compiler. (preview-coding-system): New buffer-local variable to indicate the coding system used for processes. (preview-place-preview, preview-reinstate-preview): Use `TeX-overlay-prioritize' only if it exists. (mailcap-extension-to-mime): Use an autoload form instead of `require' at runtime. (preview-format-mml): Use `mailcap-extension-to-mime' directly (preview-error-quote): take coding system of LaTeX process as second argument. (preview-parse-messages): initialize `run-coding-system' from `preview-coding-system'. Use it for calling `preview-error-quote'. (TeX-inline-preview-internal): Initialize `preview-coding-system' and make process use it. 2005-03-18 David Kastrup * preview.el (TeX-region-create): Try shutting up the byte compiler at load time. * doc/install.texi: Mention that "the usual procedure" is for site-wide installation. (Advice for package providers): Mention site-start.el. (Advice for non-privileged users): Adapt to new conventions. Some other small changes. * preview.el (TeX-overlay-prioritize): correct stupid typo. (preview-log-error): Pop up run buffer in case of error. 2005-03-17 David Kastrup * preview.el (tex-site): Require loads of stuff at the beginning: preview.el is supposed to be autoloaded, so we can just load everything that needs to get loaded, anyway. (TeX-overlay-prioritize): alias to "ignore" if not defined elsewhere. This will not set priorities. (eval-when-compile): move out most requires. (preview-place-preview): Use TeX-overlay-prioritize instead of TeX-fold-prioritize. (preview-counter-find): Pass begin in to reduce one compilation error message. (TeX-region-create): Don't preactivate `preview-counter' advice. (preview-reinstate-preview): Rename priority function to `TeX-overlay-prioritize'. (LaTeX-preview-setup): Remove requires. (TeX-region-create): Explicitly activate `preview-preamble' advice even though it is preactivated. 2005-03-16 David Kastrup * prv-emacs.el: Use the four-argument version of `face-attribute' if it exists. 2005-03-15 David Kastrup * doc/install.texi (Configure): Be somewhat more verbose. Be explicit about Emacs-only options. * doc/wininstall.texi: Warn against Winzip. Reorganize docs somewhat and clarify about Emacs-only procedures. * doc/preview-latex.texi (Keys and lisp): Document preview-at-point allowing active region. * preview.el (preview-at-point): Remove nonsensical arguments. Instead, allow for an active region. * configure.in: Add `packagelispdir' to quoted Makefile variables. 2005-03-14 David Kastrup * latex/preview.dtx: Reformat the kaboodle to look nicer. Move \nofiles to auctex option. * latex/README-preview (Note): Mention \nofiles problem. * preview.el (preview-LaTeX-command): Add \nofiles to startup. 2005-03-14 Masayuki Ataka * preview.el (TeX-fold-prioritize): autoload. (preview-place-preview, preview-reinstate-preview): Use it. 2005-03-07 David Kastrup * preview.el (preview-gs-open): Make better error message for junk left over on PostScript stack, so that we may better pass the buck. 2005-03-05 David Kastrup * latex/preview.dtx: Fix psfixbb option that must have become illegal at some time accidentally. * doc/install.texi (Loading the package): Explain that preview-latex.el should already be installed in-place. 2005-03-04 David Kastrup * Organizational: preview-latex development has been moved from into the AUCTeX CVS Archive on . 2005-03-03 David Kastrup * Release 0.9 * prv-install.el (preview-make-package-xemacs): Add directory information from autoe.el to autoloads. * Makefile.in (elisp): generate preview-latex.el only when no package system. (install-el): Depend on auto.el (install-startup): Make and install preview-latex.el only when no package system. * prv-emacs.el (preview-create-icon-1): Use adaptive heuristic mask for transparency. * preview-latex.spec: Make preview.dvi. But preview-latex.pdf * latex/Makefile.in (all): Generate both dvi and pdf. (install-texmf-doc): Install DVI (faster, compact). * latex/Makefile.in (install-texmf-doc): Install PDF instead of DVI file. * doc/wininstall.texi: Simplify, rearrange, adapt to new installation scheme. Add links to CVS precompiled versions. * doc/install.texi (Prerequisites): Revamp. (Configure): Add explanations. * preview-latex.spec: Change rpm name to include "fedora". Adapt to new configure stuff. Use pdf doc instead of DVI. * configure.in: icondir is absolute, reorder some stuff to maintain directory locality. * aclocal.m4: Change a lot of $x to ${x}. Simplify some stuff. * RELEASE: Add information for release. * configure.in: Correct prefix check. Add Emacs version check. * aclocal.m4: Move several functions around, completely overhaul the stuff to just detect material in prefix-related directories. Remove docstrip config detection, add version checking of major and minor version. Rely on prefix being set by configure.in. 2005-03-02 David Kastrup * Makefile.in (install-el): no means no for packagedir. * configure.in: Set prefix. * aclocal.m4: Use "no" for no packagedir in XEmacs. Don't save prefix and stuff. Expand stuff at some points. * doc/wininstall.texi: Use executable name directly to save confusion. * prv-xemacs.el (preview-filter-specs): Rework specs. * prv-emacs.el (preview-filter-specs): Translate :type fields. * preview.el (preview-min-spec): Move. (preview-filter-specs): Move from prv-emacs.el and prv-xemacs.el. (preview-filter-specs-1): simplify. (preview-icondir): Create icondir preset variable. (preview-filter-specs): expand file specs against it here instead of prv-emacs.el and prv-xemacs.el. * configure.in: Adapt to new variables. Remove check for image-supporting Emacs: it is probably not reliable on consoles. Add packagelispdir and icondir options. (GS): Don't try GSWIN32.EXE. Create lispGS in auto.el * autogen.sh: Use --output option for makeinfo to get tableofcontents in FAQ. * doc/Makefile.in (.PHONY): Add install here. * Makefile.in (install-el): Adapt targets to packagelispdir. (.PHONY): Add install target for case insensitive filesystems. * aclocal.m4: Rewrite EMACS_EXAMINE_PACKAGEDIR. EMACS_LISP now gets one argument less. EMACS_TEST_LISP_DIR makes just one pass. EMACS_PATH_LISPDIR expands less. AC_LISPIFY_DIR is a new function. AC_MAKE_FILENAME_ABSOLUTE AC_LISP_RELATIVE new functions. 2005-02-26 David Kastrup * doc/readme.texi (Basic modes of operation): Adapt PDFLaTeX explanation to newer AUCTeX versions. * preview.el (preview-error-icon-specs): Choose somewhat oversized errors. Adapt to set. (preview-gs-restart, preview-gs-transact): Change image file name prefix to `pr'. (preview-clean-subdir): When cleaning out subdirectories, match `pr' instead of `pre'. * Makefile.in (ICON_SOURCES): Adapt to existing set. 2005-02-25 David Kastrup * preview.el (preview-gs-options): Remove "-dDELAYSAFER" from option list. (preview-gs-sequence): New variable. (preview-gs-sentinel): Don't repeat startup echo if GhostScript fails before prompting the first time. (preview-gs-sentinel): When restarting, remove expected file names from `preview-gs-outstanding'. (preview-gs-restart): generate a unique output file name pattern from `preview-gs-sequence' (preview-gs-restart): list start command quoted. (preview-gs-open): initialize `preview-gs-sequence'. (preview-gs-open): if historic "DELAYSAFER" is still configured, start safe mode manually. Remove all settings of OutputFile, and all runandhide stuff. (preview-gs-place): Don't generate a filename that might not be needed. (preview-gs-flag-error): Generate a synthetic OutputFile option. Use it in error messages. (preview-gs-transact): generate output file name in outstanding queue. Don't fiddle with OutputFile settings. Advance `preview-gs-sequence'. (preview-dvipng-place-all): Generate file name. * prv-xemacs.el (null-device): Remove compatibility definition. 2005-02-18 David Kastrup * preview.el (preview-specs-setter): New function. (preview-nonready-icon-specs): Choose slightly smaller icons. (preview-nonready-icon-specs, preview-error-icon-specs) (preview-icon-specs): Use `preview-specs-setter'. * doc/wininstall.texi: Mention case problems. * doc/install.texi (Prerequisites): Update AUCTeX version info. * doc/problems.texi (Middle-clicks paste instead of toggling): Remove reference to patches directory. Should no longer be necessary. (Problems with GhostScript): Mention use of gswin32.exe instead of gswin32c.exe as a problem source. * preview.el (preview-nonready-icon-specs): Add size 14. * images/prvwrk24.xpm: New icon, dimmer, better shape. * images/prvwrk20.xpm: New icon * images/prvwrk16.xpm: New icon * images/prvwrk14.xpm: New icon * images/prvwrk12.xpm: New icon 2005-02-15 David Kastrup * preview.el (preview-error-quote): Encode to raw-text to get unibyte string. 2005-02-13 David Kastrup * doc/preview-latex.texi (The Emacs interface): Adapt to new `preview-use-balloon-help' default. * doc/faq.texi (Customization): Adapt to new `preview-use-balloon-help' default. * prv-xemacs.el (preview-use-balloon-help): Default to nil. * preview.el (preview-gs-flag-error): For consistency, make error icons have a context menu on right mouse button. 2005-02-11 David Kastrup * doc/preview-latex.texi (Keys and lisp): Change descriptions to cater only for interactive use. (Keys and lisp): Explain mouse-3 better. (Keys and lisp): Move preview-copy-region-as-mml explanation up. Explain about the new border avoidance behavior. (The Emacs interface): Explain about how to adapt the various icon-specs. * preview.el (preview-specs-type): Type for specs defcustom. (preview-nonready-icon-specs, preview-error-icon-specs) (preview-icon-specs): move lower and make defcustom from it. 2005-02-10 David Kastrup * prv-emacs.el (preview-mode-setup): Only define a preview toolbar entry when the icon is valid. * RELEASE: Mention the new icons. * prv-xemacs.el (preview-tb-icon): Use this instead of (preview-icon-toolbar-button): in order to match `preview-tb-icon-specs', as in prv-emacs.el (preview-mode-setup): Don't install a toolbar item when no icon image can be generated properly. 2005-02-09 David Kastrup * prv-xemacs.el (add-to-list): only provide definition for three-argument version if XEmacs doesn't. May be removed at some time completely. (null-device): Only defvar if unbound in order not to munge the doc string. (preview-transparent-border): Silence the byte-compiler. (preview-supports-image-type): Move earlier. (preview-filter-specs): Correct a few typos. (preview-filter-specs): Don't forget to call `make-glyph'. (preview-mode-setup): Correct toolbar icon setup. * preview.el (preview-error-quote): Remove unused variable `char'. * doc/faq.texi (Requirements): Stop talking about ancient XEmacs versions. (Requirements): Mention Emacs 22 instead of 21.4 * doc/install.texi (Prerequisites): same * doc/problems.texi (Emacs problems): same * preview-latex.spec (Conflicts): xemacs = 21.4.16 * RELEASE: Add some dvipng information, more detailed recommendations. * preview.el (preview-region, preview-buffer, TeX-region-create) (preview-document, preview-environment, preview-section): Move down to avoid byte compiler warnings. * images/*: lots of renaming/moving stuff around. * configure.in: remove ICONFORM stuff. * Makefile.in (ICONFORM): removed. (ICON_SOURCES): Change to different list. * prv-xemacs.el (preview-nonready-icon, preview-error-icon) (preview-icon, preview-tb-icon): Removed in this form. (preview-ascent-spec): New symbol for storing minimal data when parsing specs. (preview-filter-specs): New function. (preview-icon-copy): Replaces `preview-nonready-copy'. (preview-mode-setup): Create toolbar button. * prv-emacs.el (preview-nonready-icon, preview-error-icon) (preview-icon): removed. (preview-filter-specs): New function. (preview-tb-icon-specs, preview-tb-icon): New variables for the toolbar icon. (preview-icon-copy): replaces `preview-nonready-copy' (preview-mode-setup): Initialize `preview-tb-icon' * preview.el (preview-nonready-icon-specs) (preview-nonready-icon, preview-error-icon-specs) (preview-error-icon, preview-icon-specs, preview-icon) (preview-min-spec): New variables. (preview-gs-place): Use `preview-icon-copy' instead of `preview-nonready-copy' (preview-make-image): New function. (preview-filter-specs-1): New function. (preview-buffer-restore-internal): Call `preview-get-geometry' for having size information. This may be incorrect at restore time. (preview-get-geometry): Also constitute `preview-icon', `preview-error-icon' and `preview-nonready-icon'. 2005-02-06 David Kastrup * doc/wininstall.texi: Add note about `gswin32c.exe'. 2005-01-29 David Kastrup * preview-latex.spec (Release): Bump version to prerelease, make some changes that look like they'd fit into AUCTeX's scheme. * RELEASE: Some changes and mentions. * doc/preview-dtxdoc.pl: Convert AUC\TeX reference as well. Convert `\#' to `#'. * latex/preview.dtx: Add `#' and `:' letters and documentation. Make all commands pass on `#' on cleanly. Don't eliminate last `{}' last in argument lists. * latex/Makefile.in (preview.pdf): New target. Since PDFs are used for external documentation usually, generate only the description (for internal docs, dvi is fine and adding the code, too). * configure.in: Bump version number. check for PDFLaTeX. 2005-01-26 David Kastrup * preview.el (preview-copy-mml, preview-copy-region-as-mml) (preview-format-mml): Ask whether user really wants to use bordered graphics. (preview-error-quote): Fix typo. Make the condition to call decode-coding-string depend on (featurep 'mule) to match choice for using raw process output. (preview-get-geometry): Return the geometry instead of manipulating a buffer. (preview-set-geometry): New function to set the geometry into buffer-local variables. (preview-generate-preview): Start by getting geometry. (TeX-inline-preview-internal): Additional geometry argument. Don't switch into buffer where we are already. 2005-01-25 David Kastrup * prv-emacs.el: Don't use transparent borders when Emacs is new enough to have tolerable blinking. * preview.el (preview-dvipng-color-string): Pass the border into dvipng. (preview-dvipng-place-all): Record the border in the image data structure. 2005-01-24 David Kastrup * RELEASE: Ask for dvipng 1.4, mention utf-8 capability. * preview.el (preview-error-quote): Don't regexp codes out of the ASCII range, and convert the resulting string using the buffer encoding. This makes for utf-8. (preview-parse-messages): Change match mechanism. (TeX-inline-preview-internal): Set process encoding to raw-text since TeX may deliver mixtures of encoded and clean bytes. 2005-01-19 Jan-Ake Larsson * aclocal.m4: sync with AUCTeX 2005-01-17 jalar * ChangeLog.1: Move dvipng changes to its Changelog 2004-11-05 David Kastrup * doc/readme.texi (What use is it?): New section. * doc/preview-latex.texi (The Emacs interface) (The preview images): Add a bit of information concerning PDF/dvipng operation. * preview.el (preview-default-preamble): Require specific date of preview package. * latex/preview.dtx: Let bop-hook and eop-hook work only on outer level, so that previews can contain dvips -E generated files. 2004-10-23 David Kastrup * preview.el (preview): Change group to 'AUCTeX. 2004-10-21 David Kastrup * prv-xemacs.el (preview-mode-setup): Add `desktop-save-buffer' setup. * prv-emacs.el (preview-mode-setup): Add `desktop-save-buffer' setup. * preview.el (desktop-buffer-preview-misc-data): Let arguments be ignored for desktop 2.06. Add to `desktop-buffer-misc-functions' only after desktop has been loaded. (desktop-buffer-preview): take arguments for desktop 206. 2004-10-18 David Kastrup * prv-xemacs.el (glyph-image-type): Removed. (preview-create-icon-1, preview-create-icon): like in prv-emacs.el. (preview-replace-active-icon): Use defsubst. (preview-ps-image): Removed. (preview-move-point): Reorganized. (preview-export-image): Removed. (preview-import-image): Changed to new preview-image semantics. * prv-emacs.el (preview-create-icon): replace macro with defsubst, add border argument. (preview-replace-active-icon): defsubst, and cater for new preview-image structure. (preview-int-bb, preview-ps-image): Removed, only needed for postscript device. (preview-move-point): Reorganized. (preview-export-image): Removed. * preview.el (preview-image-creators): Remove postscript device, it did not work, anyway. (preview-dvipng-color-string): Add resolution to args in order to properly convert border thickness. (preview-gs-dvips-sentinel): Delete unused `gsfile' variable. (preview-eps-open, preview-eps-dvips-process-setup, preview-eps-place): Removed. (preview-gs-place, preview-gs-transact, preview-dissect) (preview-dvipng-place-all, preview-active-string) (preview-reinstate-preview): add construction info to `preview-image' property. (preview-start-dvipng): Calculate resolution info correctly. (preview-at-point): Fix an awful typo. 2004-10-14 David Kastrup * latex/preview.dtx: Make the end of snarfed environments behave normally if the environment is not being snarfed. 2004-10-14 Jan-Åke Larsson * doc/wininstall.texi: Adjust text to conform with the AUCTeX aclocal. * configure.in: Add VALID_BUILD_DIR 2004-10-13 Jan-Åke Larsson * configure.in: Adjust for the aclocal.m4 sync with AUCTeX * aclocal.m4: Sync with AUCTeX. Well, almost. Don't use the version test. 2004-10-09 David Kastrup * preview.el (preview-dvipng-command): Use -picky option. (preview-error-quote): Convert character to buffer encoding if mule allows it. (preview-parse-messages): Strip incomplete 8bit character transliterations from the error context. 2004-08-21 Reiner Steib * doc/install.texi: Markup fixes, see "(texinfo)command". * doc/wininstall.texi: Ditto. 2004-08-09 David Kastrup * doc/preview-latex.texi: Bump version number. (top): Change preview-latex typesetting convention. (Keys and lisp): AUCTeX menus are not changed. (Simple customization): Don't talk about `.dvi'. (For advanced users): Menu `The preview images' instead of `On EPS previews'. (The Emacs interface): Take PDF into account. (The preview images): Describe `preview-gs-image-type-alist', `preview-dvipng-image-type'. * doc/faq.texi (Introduction to FAQ): Change submission address to preview-latex-devel since this appears to better reflect reality. * latex/preview.dtx (showlabels): work around ntheorem/amsmath bug. * preview.el (preview-gs-image-type-alist): Add fallback for 'postscript image type (not yet used). (preview-dvipng-command): Add documentation about `preview-dvipng-image-type'. Change options to `-picky -noghostscript' to work with dvipng 1.2. (preview-dvipng-image-type): New variable. (preview-gs-open): Don't barf until we know what device will actually be used. (preview-gs-dvips-process-setup): Complain about unavailable devices here. (preview-dvipng-process-setup): And here. (preview-dvipng-process-setup, preview-dvipng-place-all): Use `preview-dvipng-image-type'. (preview-TeX-inline-sentinel): Change "abnormally with code 1" and "finished" exit status message. (preview-dump-replacements, preview-undump-replacements): Don't match command name as specifically. (preview-report-bug): Report more variables. 2004-08-07 David Kastrup * doc/macros.texi: New @ConTeXt{} macro, change appearance of @previewlatex{}. * doc/faq.texi (Customization): Presentation classes should work mostly. (Customization): Remove troubleshooting for `xy.sty'. (Requirements): Add AUCTeX 11.50 for PDFLaTeX. (Requirements): Mention dvipng. (Customization): PDFLaTeX is supported now. (Customization): ConTeXt is supported by AUCTeX, PDFLaTeX too. `Only' style support is missing now. * latex/preview.dtx: workaround for `xy.sty' in `textmath' code. 2004-08-04 David Kastrup * aclocal.m4: Merge a few AUCTeX changes. 2004-08-03 David Kastrup * preview.el (preview-walk-document): Current buffer and its master are always considered part of the document. (preview-dvipng-command): Use -noghostscript option. (preview-dvipng): Remove the almost unused customization group 'preview-dvipng. 2004-08-02 David Kastrup * preview.el (preview-extract-bb): remove old outcommented version. (preview-dvipng-command): Use -no-image-on-warn option. (preview-pdf2dsc-process-setup): Oops, just use `preview-gs-image-type' here. (preview-dvipng-sentinel): Don't delete dvi file since it might be needed in `dvipng-place-all'. (preview-dvipng-place-all): Start dvips/GhostScript if some image files are missing. Delete dvi file if none are missing. 2004-07-28 David Kastrup * doc/problems.texi (Too small bounding boxes): Fix node crosslinks. * latex/preview.dtx: Tiny change to placate font-latex. * latex/README-preview: Explain that PDF may be produced. * doc/wininstall.texi: Remove advice about failing byte-compiles: we should have this covered by now. * doc/problems.texi (LaTeX international characters): remove node. * doc/preview-latex.texi (Misplaced previews): Refer to x-symbol node instead of 8bit testing. * doc/install.texi (Configure): Remove --disable-8bit-test description. * preview.el (preview-parse-messages): Simplify line match. * preview-latex.spec: Several changes of %{buildroot} uses and of infodir. Doubtful whether this will work with Fedora. * configure.in: Remove all 8bit-cleanness testing. * aclocal.m4 (EMACS_LISP): just write out a string expression without change or echo. Document the macro. * doc/Makefile.in (prefix) (packagedir) (datadir) (infodir): preserve trailing backslashes. * Makefile.in (INSTALL) (INSTALL_DATA): Don't munge them for trailing backslashes. 2004-07-27 David Kastrup * preview.el (preview-dvipng): New customization group. (preview-image-creators): Remove ghostscript options here. (preview-gs-image-type-alist): New variable for lookup of Ghostscript options. (preview-gs-open): Remove imagetype and gs-optionlist arguments. Instead, look them up in preview-gs-image-type-alist. (preview-gs-dvips-process-setup): Setup GhostScript command line at different place. (preview-gs-dvips-process-setup): Use preview-gs-image-type, not preview-image-type for extension. (preview-dvipng-open): Removed. (preview-dvipng-process-setup): Setup GhostScript fallback. (preview-pdf2dsc-process-setup): Don't setup GhostScript here. (preview-error-quote): Fix bugs, only convert last ^^ sequence when a long string of ^^ exists. 2004-07-16 David Kastrup * Makefile.in (INSTALL_DATA): Use `$(null)' at end of variables at end of lines instead of `#' 2004-07-15 David Kastrup * preview.el (preview-format-mml): Somewhat different code. (preview-error-quote): New function for generating a matching regexp to deal with ^^ type error messages. In short: forget about 8-bit-cleanliness. (preview-parse-messages): Use it. 2004-05-08 David Kastrup * preview.el (preview-format-mml): Determine MIME format from file name properly. And don't return anything for bad overlays. * Split ChangeLog.1 off, create dvipng/ChangeLog. * preview.el (preview-gs-sentinel): Add info about GhostScript finishing to run buffer. (preview-gs-restart): Same for start. (preview-gs-color-string): Cater for border without mask color (didn't we do that already?) 2004-04-23 David Kastrup * preview.el (preview-gs-color-string) (preview-dvipng-color-string): Try to do something reasonably sane when a non-nil border thickness is specified, but no color. 2004-04-20 Reiner Steib * .cvsignore: Added "autom4te.cache". 2004-04-19 Reiner Steib * doc/preview-latex.texi (Simple customization): Don't "unlispify" variable names. 2004-04-12 David Kastrup * Release 0.8.1 * preview.el (preview-dump-replacements): Use regexp not triggering bugs in older Emacsen. (preview-dump-replacements): Same here. * RELEASE, configure.in, doc/preview-latex.texi: Adapt to 0.8.1 * preview-latex.spec: xemacspkgdir has changed in recent XEmacs releases for Redhat. * prv-xemacs.el (preview-mode-setup): Remove non-existent menu. * prv-emacs.el (preview-mode-setup): Remove non-existent menu "copied" from TeX-command-list to Command menu. * Release 0.8 * RELEASE: prepare for 0.8 * preview-latex.spec: prepare for 0.8, bump XEmacs to 21.4.9. ;; Local Variables: ;; coding: utf-8 ;; End: auctex-11.91/ChangeLog-preview.1000066400000000000000000003743051313533625700164320ustar00rootroot000000000000002004-04-12 David Kastrup * Release 0.8.1 * preview.el (preview-dump-replacements): Use regexp not triggering bugs in older Emacsen. (preview-dump-replacements): Same here. * RELEASE, configure.in, doc/preview-latex.texi: Adapt to 0.8.1 * preview-latex.spec: xemacspkgdir has changed in recent XEmacs releases for Redhat. * prv-xemacs.el (preview-mode-setup): Remove non-existent menu. * prv-emacs.el (preview-mode-setup): Remove non-existent menu "copied" from TeX-command-list to Command menu. * Release 0.8 * RELEASE: prepare for 0.8 * preview-latex.spec: prepare for 0.8, bump XEmacs to 21.4.9. 2004-04-11 David Kastrup * preview.el (preview-dvipng-color-string): Try to deliver border thickness. (preview-gs-transact): Don't set page size to 1,1 if that has already been done. (preview-start-dvipng): Use new -D convention for resolution. (preview-pdf2dsc-process-setup): Add resolution to GhostScript call for PDF. Doh. * circ.tex: Format with AUCTeX. * preview.el (preview-gs-open): Bypass page initialization if page is 1bp times 1bp (that is: not yet set). * latex/preview.dtx: Remove tightpdf option again. Better explanation for tightpage. * preview.el (preview-parsed-tightpage): New variable. (preview-TeX-bb): Use tightpage borders if found in file. (preview-gs-flag-error): Display correct file on error. (preview-gs-transact): Don't pass page dimensions if tightpage is active. (preview-required-option-list): Replace dvips option with tightpdf option. (preview-parse-tightpage): New function. (preview-parse-variables): Add preview-parse-tightpage, add function quoting. (preview-gs-open): Move color setup to BeginPage hook. Rename preview-latex-* PostScript Variables to just preview-*. (preview-gs-transact): Set minimal pagesize if tightpage detected to speed up unimportant setpagedevice operations. (preview-required-option-list): Use tightpage option always. (preview-parse-variables): Remove function quoting: it lead to double quotes and tears. (preview-LaTeX-disable-pdfoutput): Move into separate constant for easy access as it is no longer the standard. (preview-LaTeX-command-replacements): Default to nil to enable PDFTeX operation. Better customization type. * latex/preview.dtx: Some reformatting, add new parse items - and >, add new option pdftex, adjust tightpage for it, add new option tightpdf. * doc/preview-dtxdoc.pl: Eat spaces after %. 2004-04-09 David Kastrup * images/preverr.xbm: * images/preverr.xpm: invert upside-down icons. 2004-03-15 David Kastrup * preview.el (preview-gs-color-string): Add missing space in color setup (GhostScript syntax error). (preview-gs-color-string): And another color setup bug. 2004-03-11 David Kastrup * doc/readme.texi (Activating preview-latex): Make a few changes with regard to keybindings and stuff. (Contacts): Add Paypal info for myself. * doc/preview-latex.texi (Keys and lisp): Remove the C-c C-c g pseudobinding from the description. (Keys and lisp): Document mouse actions. (Keys and lisp): Move Kill Job description. 2004-03-10 David Kastrup * preview.el (preview-gs-colors): replaced with preview-colors. (preview-pdf2dsc-command): replaces preview-pdftodsc-command (preview-gs-open, preview-gs-color-value) (preview-gs-color-string, preview-dvipng-color-string) (preview-dvipng-open, preview-dvipng-process-setup) (preview-pdf2dsc-process-setup, preview-pdf2dsc-sentinel) (preview-gs-close, preview-dvipng-close) (preview-prepare-fast-conversion, preview-attach-filename): lots of small changed to accommodate pdf2dsc. (preview-parse-messages): Change pattern to accommodate pdfTeX. (preview-LaTeX-command-replacements): Changed to not rely on latex being different from elatex. And for allowing pdflatex in DVI mode. (preview-dump-replacements, preview-undump-replacements): Same. (preview-cache-preamble): transfer setting of \pdfoutput to dumped format. * prv-emacs.el (preview-gs-color-value): Moved to preview.el. (preview-get-colors): Substitute for previous preview-gs-get-colors. (preview-dvipng-get-colors): Removed. * prv-xemacs.el (preview-gs-color-value): Moved to preview.el. (preview-get-colors): Substitute for previous preview-gs-get-colors. (preview-dvipng-get-colors): Removed. 2004-03-02 Jan-Åke Larsson * preview.el: Fix xemacs' defalias problem 2004-03-02 David Kastrup * preview.el (preview-image-creators): dvipng now uses different place and close routines. (preview-dvipng-command): Fix file name default. (preview-pdf2dsc-command): for PDFLaTeX support (preview-gs-dvips-process-setup): Pass image type. (preview-dvipng-open), (preview-dvipng-process-setup), (preview-dvipng-abort), (preview-dvipng-sentinel), (preview-dvipng-close): New functions (preview-gs-place): get imagetype as argument. (preview-gs-place): don't create temporary file names for dvipng. (preview-dvipng-place): deleted. (preview-dvipng-place-all): New function. (preview-attach-filename): New function for PDF support. (preview-delete-file): Support attached files. (preview-format-mml): Slight formatting changes. 2004-01-14 David Kastrup * preview.el (preview-parsed-pdfoutput): Add detection for PDF output from preview.sty. (mail-header-encode-parameter): Encode the header ourselves: it seems that versions of the library are not good at that. (preview-parse-variables): Add `preview-parsed-pdfoutput'. (preview-map): Add keybinding for `preview-copy-region-as-mml'. (preview-copy-mml): factor out `preview-format-mml'. (preview-copy-region-as-mml): New function. (preview-format-mml): New function. 2004-01-11 David Kastrup * latex/preview.dtx (subsection{Preview attaching commands}): Tell preview-latex when the output format is PDF. 2004-01-06 David Kastrup * preview.el (preview-region): Use "" for file name if buffer not associated with a file. (preview-parse-messages): recognize "" to mean TeX-command-buffer. (preview-region): Use `preview-generate-preview' instead of `TeX-command'. (preview-document): Same. (preview-at-point): Add arguments to allow mouse use at later time. (LaTeX-preview-setup): Don't touch TeX-command-list. (preview-cache-preamble): Use `preview-generate-preview' instead of `TeX-command'. (TeX-inline-preview): Deprecate. (preview-generate-preview): New function. (TeX-inline-preview-internal): Remove `name' argument. 2004-01-04 David Kastrup * preview.el (preview-equality-transforms) (preview-relaxed-string=, preview-walk-document) (preview-required-option-list): Doc changes. (preview-disabled-string, preview-inactive-string) (preview-active-string, preview-place-preview) (preview-reinstate-preview): Use new context menus and give help strings for them. (preview-copy-text, preview-copy-mml, preview-active-contents) (preview-context-menu): Implement context menu and functionality. (mail-header-encode-parameter): Add an autoload cookie for this function taken from `mail-parse.el'. 2003-11-11 Jan-Ake Larsson * Makefile.in, doc/Makefile.in, latex/Makefile.in: Add DESTDIR variable 2003-11-10 Jan-Åke Larsson * preview.el: Add 'dvipng preview-scale functionality 2003-11-08 Stephen Reindl (tiny change) * preview-latex.spec (%install): rm texinfo 'dir' file because this file is not needed for distribution (rpm 4.1+ complains about this 'missing' file). 2003-11-07 Jan-Åke Larsson * preview.el: Fix dvipng resolution 2003-11-06 Jan-Åke Larsson * prv-xemacs.el: * prv-emacs.el: * preview.el: Add color handling for dvipng 2003-11-05 Jan-Ake Larsson * preview.el: Primitive dvipng support. Lacking ascent and colors. 2003-11-04 David Kastrup * doc/todo.texi: Add quite a few more wishes. Actually, it would be nice to strike off a few instead. 2003-11-02 David Kastrup * latex/preview.dtx (subsection{Selection options}): Fix the carnage broken document classes like elsart.cls and IEEEtran.cls do to \endfigure and \endtable, and complain about it in appropriate warning messages. 2003-10-15 David Kastrup * latex/preview.dtx (subsection{Selection options}): Let the textmath option also preview the `math' environment. 2003-07-10 David Kastrup * doc/wininstall.texi: fix web page of AUCTeX. * doc/install.texi (Prerequisites): fix web page of AUCTeX. * preview.el (LaTeX-preview-setup, preview-parse-messages) (TeX-inline-preview): Fix references to AUCTeX. * aclocal.m4 (library): Fix references to AUCTeX. * RELEASE: Fix references to AUCTeX. 2003-06-19 David Kastrup * latex/preview.dtx: Make \long what needs to be \long in order to deal with argument lists and macros that might contain \par. 2003-05-13 David Kastrup * configure.in: Really bail if 8bit test fails. * circ.tex (section{Die gerade Linie}): Add comments for intentional bugs. 2003-04-28 David Kastrup * configure.in: Fix check for images. * aclocal.m4 (library): Try setting the EMACS_cv_SYS_* variable that we are actually checking. Is that correct? 2003-04-17 Jan-Åke Larsson * doc/wininstall.texi: Corrected --with-lispdir and --with-packagedir 2003-04-09 Jan-Åke Larsson * aclocal.m4: More sane emacs-macro path-searching. 2003-03-31 Jan-Åke Larsson * aclocal.m4 (EMACS_PROG_EMACS): Make the test fail gracefully when no binary executable is found. More generally, make the emacs-macro path-searching tests run. 2003-03-30 David Kastrup * doc/install.texi (Configure), doc/wininstall.texi: explain --with-emacs and stuff even less ambiguously. 2003-03-28 David Kastrup * doc/faq.texi (Installation Trouble): Update Windows info. 2003-02-15 David Kastrup * configure.in: quote MAKEINFO. * README.CVS: Fix instructions because autoconf now does not need patching anymore. * doc/preview-latex.texi: juggle the dircategory, hopefully right now. 2003-02-13 David Kastrup * doc/preview-latex.texi: Somewhat changed info dir entries. (Simple customization): add hint for RefTeX. * doc/problems.texi, doc/macros.texi: anticipate name change of AUC TeX to AUCTeX. * aclocal.m4, configure.in: resynch with AUCTeX aclocal.m4. Lots of name changes. * configure.in: Remove redundant checks/substs. * aclocal.m4 (AC_EXAMINE_PACKAGEDIR): lots of fixes with regard to quoting, bad code and other stuff. (AC_CHECK_AUCTEX): remove trailing slash. 2003-02-10 Alan Shutko * aclocal.m4: Changed all references of AUCTEXDIR to auctexdir. * Makefile.in (auctexdir): Changed all references of AUCTEXDIR to auctexdir. 2003-02-05 David Kastrup * latex/preview.dtx (section{Package options}): Correct doc of \PreviewBbAdjust. 2003-02-05 Alan Shutko * doc/problems.texi: Add documentencoding. (Emacs problems): Move @end itemize after XEmacs. 2003-02-03 David Kastrup * latex/preview.dtx (subsection{The \texttt{auctex} option}): Make \item actually produce an \item. 2003-01-27 David Kastrup * doc/problems.texi (Emacs problems): CVS Emacs supports PNG now. * doc/wininstall.texi: CVS Emacs supports PNG images now. * prv-xemacs.el (null-device): Add defvar for older XEmacsen. 2003-01-24 David Kastrup * preview.el (preview-gs-sentinel): Delete PostScript file when GhostScript has finished. (preview-gs-dvips-sentinel): Don't mark PostScript file for deletion when GhostScript will be run: otherwise preview.el will delete the PostScript file automatically when the last preview has been generated but before GhostScript exits. And since GhostScript has the file still open, some "operating systems" will refuse to delete the PostScript file at that moment. 2003-01-20 David Kastrup * Release 0.7.8 * aclocal.m4: Correct environment spellings for Makefiles. * latex/preview.dtx (subsection{The internals}): comment out color setup. That means that one might not be able to use color.sty for setting up fore/background color, but it will also mean that loading color.sty does not interfere with the initial colors set up inside of GhostScript. In the long run, we will have to solve this differently. 2003-01-19 David Kastrup * latex/preview.dtx (section{Package options}) (subsection{The \texttt{showlabels} option}), doc/todo.texi: spell RefTeX correctly. * preview.el (preview-gs-open): Get really paranoid about closing our output file in a way which should get rid of races. (preview-ps-quote-filename): Get an optional argument for avoiding making file names relative (like null-device). (preview-equality-transforms, preview-relaxed-string=, preview-canonical-spaces): Add functionality for relaxed check of region changes (should allow outline-minor-mode in XEmacs, too, and paragraph reformatting). * prv-emacs.el (preview-check-changes): use `preview-relaxed-string=' for detecting relevant changes. * prv-xemacs.el (preview-create-icon): Use defsubst instead of defmacro in order to avoid double evaluation of `file'. (preview-check-changes): use `preview-relaxed-string=' for detecting relevant changes. * latex/preview.dtx (section{Introduction}) (section{Package options}, subsection{Supporting conversions}): Mention that `tightpage' requires `dvips', too. 2003-01-18 David Kastrup * Makefile.in (install-el, install-icons): Fix overquoting. 2003-01-17 Jan-Ake Larsson * Makefile.in (install): Unquote $x so that the install prints what is installed. 2003-01-17 David Kastrup * aclocal.m4 (AC_SHELL_QUOTIFY): c\:\\bin is correct, but ugly. Don't quote : specifically, it is not likely to be a special shell character. * doc/Makefile.in (infodir): Add a few missing environment variables. * latex/Makefile.in, Makefile.in, aclocal.m4, configure.in: try to deal as perfectly as possible with spaces in file names, quotes, backslashes and desperate things in general. 2003-01-15 Jan-Ake Larsson * configure.in: Use AC_PROG_EMACS and more portable AC_PATH_LISPDIR/PACKAGEDIR * aclocal.m4 (AC_PROG_EMACS): New. Sanitize AC_PATH_LISPDIR. Make AC_PATH_PACKAGEDIR portable. 2003-01-10 Jan-Ake Larsson * Makefile.in: Make Solaris make grok the remaining long lines 2003-01-10 David Kastrup * preview.el (LaTeX-preview-setup): Change menu name for generating customize menu to "Extend this menu". * configure.in (TEXMFGEN): Make this possibly more portable (at the very least, we had some potential quoting problems). * autogen.sh, configure.in: Ok, darn them all. We now have a configure.in that does no longer need to get patched up after autoconf, regardless of which autoconf version gets used between 2.13 and 2.57 or hopefully later. 2003-01-07 David Kastrup * Makefile.in (AUCTEXLISP): quoting levels still unsufficient. * configure.in: Error message contained a single backquote, and this made autoconf-213 barf. * Makefile.in (AUCTEXLISP): quote sed command correctly. * README.CVS: Update info about what autogen.sh generates. * doc/wininstall.texi: Well, forget a few details. Also added. * autogen.sh: Make much more simple, so that this will work with more sed versions. * doc/wininstall.texi: Major overhaul, taking also GNU Emacs CVS into account. * Makefile.in: Lots of quote fixes to make this hopefully compile better when paths may contain spaces and backslashes (the horror, the horror). * latex/Makefile.in: Lots of quote fixes to make this hopefully compile better when paths may contain spaces and backslashes (the horror, the horror). * doc/preview-latex.texi (Keys and lisp): Rearrange section, cater for renamed menus, some better explanations. * doc/faq.texi (Installation Trouble): Some rearrangements and additional explanations. * latex/preview.dtx (section{Provided Commands}): Add description of \PreviewOpen and \PreviewClose. (subsection{Selection options}): Typo in displaymath hook on \[ fixed. (subsection{Preview attaching commands}): Fix code of \PreviewOpen and \PreviewClose which need to have their own groups open and close always. 2003-01-06 David Kastrup * latex/preview.dtx (section{Provided Commands}): Add a lot of additional possibilities for previewing commands and document them. * doc/preview-dtxdoc.pl: convert @ to @@, add braces around \marg argument, allow spaces in \oarg argument. * doc/Makefile.in (install): rename INSTALLINFO to INSTALL_INFO for consistency. * autogen.sh: Allow use of AUTOCONF, use sed. * configure.in: Rework the language stuff autoconf sickness. Require autogen.sh for editing work. 2002-12-29 David Kastrup * preview.el (preview-clearout-section): New function. (preview-map): Add keybinding to it. (LaTeX-preview-setup): Reorganize Preview menu for better user friendliness. 2002-12-22 David Kastrup * latex/Makefile.in (install-texmf): don't call TEXHASH with argument: some of the substitutes might not like it. Better safe than sorry. * configure.in: A few more texhash-related fixes. 2002-12-20 David Kastrup * Makefile.in (LISP_SOURCES): Use = instead of := for non-GNU make versions. Also in other variables. 2002-12-19 David Kastrup * latex/preview.dtx (section{Package options}): Document `footnotes' option. (section{Provided Commands}): Document new second optional argument to \PreviewMacro*. (subsection{Parsing commands}): Obliterate \pr@seq and make \pr@callafter have different semantics. (subsection{Preview attaching commands}): New macroo \pr@endmacro needed for new \pr@callafter semantics. (subsection{Preview attaching commands}): Implement the new second argument to \PreviewMacro* and \PreviewEnvironment*. (subsection{Preview attaching commands}): Make \pr@startsnarf adapt to new \pr@callafter semandtics. (subsection{The \texttt{auctex} option}): Use the new semantics in a number of cases. * doc/install.texi (Loading the package): Make this more fool-proof by leaving out alternatives and reordering. 2002-12-18 Jan-Ake Larsson * preview.dtx: Add \caption to auccfg 2002-12-17 David Kastrup * Release 0.7.7 * prv-emacs.el (preview-unwatch-preamble): Fix a lethal typo. * Release 0.7.6 * preview-latex.spec (Requires): Bump to 0.7.6 * doc/faq.texi (Requirements): Change version requirements for AUC TeX. * doc/readme.texi (Activating preview-latex): Explain about what to do if preview-latex.el did not get installed properly. * doc/preview-latex.texi (Keys and lisp): Explain about new commands and options. (Simple customization): Explain how to keep counters accurate. (The Emacs interface): document new options. * doc/install.texi (Prerequisites): Explain about AUCTeX and XEmacs versions. (Loading the package): Recommend using preview-latex.el as standard measure. * Makefile.in (GS): Inherit GhostScript executable name. (preview-latex.el): If GhostScript is not named "gs", change preview-gs-command setting appropriately. Add the Lisp installation directory to the load-path. * configure.in: use : instead of /bin/true Check typical GhostScript executable names on Windows. Check for initexmf -u (MikTeX specific). * RELEASE: Some more changes for 0.7.6 2002-12-16 David Kastrup * preview.el (preview-string-expand): Get optional separator argument. (preview-expandable-string): Change type somewhat. (preview-clearout-document): doc change. (preview-default-preamble, preview-LaTeX-command): Simplify to changed definition of preview-expandable-string. * prv-xemacs.el (preview-mode-setup, preview-watch-preamble) (preview-unwatch-preamble): Differentiate between unwanted formats and formats without loaded master file. * prv-emacs.el (preview-watch-preamble, preview-unwatch-preamble, preview-mode-setup): Differentiate between unwanted formats and formats without loaded master file. 2002-12-15 David Kastrup * Makefile.in (preview-latex.el): Avoid putting the output of pwd inside of "...", because something like "C:\notagain" is not quite the Lisp string we'd want. * preview.el (preview-walk-document): New function walking through buffers of current document. (preview-clearout-document): New function for completeness. (preview-map): Add keybinding for it. (LaTeX-preview-setup): Add menu entry for it. * configure.in: Preparations for 0.7.6 * RELEASE: Preparations for 0.7.6 2002-12-14 David Kastrup * aclocal.m4: Don't lie about name of option --with-texmf-dir 2002-12-13 David Kastrup * latex/preview.dtx (subsection{The \texttt{footnotes} option}): new option. * preview.el (preview-default-option-list): Switch on previews for footnotes by default. 2002-12-12 Jan-Ake Larsson * autogen.sh: Nitpicking * aclocal.m4, configure.in, doc/Makefile.in, doc/macros.texi: Sanitize makeinfo macro tests * configure.in: Make LANG and LC_CTYPE saving work across recursive call of ./configure (2.52) 2002-12-12 David Kastrup * latex/preview.dtx (subsection{The internals}): Kill insertions off that annoy our space strippers. That makes \PreviewMacro[*[]{}]{\footnote} feasible. 2002-12-11 Jan-Ake Larsson * images/preview-cap-up.xpm: Fix bg and fg color issues 2002-12-10 Jan-Ake Larsson * autogen.sh: Make LANG and LC_CTYPE saving work across recursive call of ./configure (2.13) * doc/macros.texi: Typo fixed 2002-12-10 David Kastrup * preview.el (preview-counter-find): Take counters by searching forward if searching backwards does not avail us. (preview-reinstate-preview): Optimize queue/tempdir handling for the most common case. 2002-12-09 David Kastrup * preview.el (preview-counter-find): Factor out stuff from advice since it will otherwise miss out on compatibility macros for XEmacs. (TeX-region-create): Factor out advice. (preview-reinstate-preview): Oops, wrong data if nothing changed. Switched around. * latex/preview.dtx (subsection{Preview attaching commands}): Don't \unskip in vertical modes in preview/nopreview environments. * preview.el (preview-parsed-counters): New variable. (preview-dissect): export counter info. (preview-place-preview): get counter info. (preview-reinstate-preview): resinstate counters also. (preview-default-option-list): add counters option. (preview-string-expand): New function. (preview-expandable-string): New type. (TeX-region-create): Advice for counter restoration. (preview-last-counter): for restoring. (preview-extract-counters): New function. (desktop-buffer-preview-misc-data): Sort stuff when writing and deal with counters. (preview-dissect, preview-buffer-restore-internal) (preview-place-preview): Deal with counters. (preview-buffer-has-counters): New variable during parsing. (preview-place-preview): Deal with counters. (preview-required-option-list): New option. (preview-make-options, preview-make-preamble): deleted (preview-default-preamble, preview-LaTeX-command): redefine using expandable strings. (LaTeX-preview-setup): Replace entry in TeX-command-list with dummy. (LaTeX-preview-setup): Delete "%D" and "%P" fudges. (preview-parse-counters): New function for parsing counters. (preview-parse-variables): Add preview-parsed-counters to parse list. (preview-parse-messages): deal with counters. (preview-dump-replacements): Add preview-LaTeX-command-replacements (preview-cache-preamble): Don't generate string for TeX-inline-preview, it does so itself. (TeX-inline-preview): Generate command from preview-LaTeX-command (preview-report-bug): Report more variables. 2002-12-07 David Kastrup * preview.el (LaTeX-preview-setup): simplify "%m" entry in TeX-expand-list. (preview-create-subdirectory): return a quoted relative file name. (preview-cache-preamble): various directory name related changes so that everything will work master-relative. (preview-cache-preamble-off): Same here. (TeX-inline-preview-internal): Same here. (preview-report-bug): Add autoload cookie. (preview-create-subdirectory): Make dvips directory relative. (preview-report-bug): also report LaTeX-command-style. 2002-12-06 David Kastrup * preview.el (preview-gs-open): Another GhostScript security work around, this time leaving off something that confuses 7.x releases of AFPL GhostScript. 2002-12-03 Jan-Ake Larsson * Makefile.in: * prv-xemacs.el: handle the new toolbar image * images/preview-cap-up.xpm: toolbar image 2002-11-29 Jan-Ake Larsson * doc/readme.texi: * doc/preview-latex.texi: * doc/macros.texi: * doc/Makefile.in: * configure.in: * aclocal.m4 (AC_TEST_MAKEINFO_ACRONYM): Attempt to make docs build with old texinfo 2002-11-28 David Kastrup * Release 0.7.5 * latex/preview.dtx (subsection{Debugging options}): Typos. * Makefile.in (use-hint): Add XEmacs version hint. * prv-xemacs.el (preview-defmacro): define compatibility macros only at compile time. (preview-mode-setup): correct check for icon in toolbar. * preview.el (require): use load-library on prv-xemacs.el in order to get the compatibility macros at compilation time. 2002-11-22 David Kastrup * Release 0.7.4 * preview-latex.spec (Requires): New RPM brain damage means we have to disable the 8bit test. * doc/faq.texi: Various updates. * doc/install.texi: Some cosmetic changes and version info updates. * doc/preview-latex.texi (Keys and lisp): Adjust docs for changed menu structure (Preview having a top-level entry). (On EPS previews): phase out info about historical `postscript' settings. * preview.el (preview-image-type): Don't offer `postscript' when customizing. * configure.in: bump version. * doc/preview-latex.texi: bump version. (Keys and lisp): reorder so that indexes refer to the start of items. * preview.el (preview-gs-transact): add a bit of paranoia into page shifts in case the coordinate origin is not upper left. Similar to change in tightpage option of preview.dtx. (preview-LaTeX-command-replacements): comment fix. * latex/preview.dtx (subsection{The \texttt{counters} option}): new option and documentation: add counter checkpoints in diagnostics. 2002-11-21 David Kastrup * prv-xemacs.el (preview-mode-setup): And here we have the toolbar icon for XEmacs users. Does not look too pretty, but might inspire volunteers for improvements. 2002-11-07 Jan-Ake Larsson * aclocal.m4: Cosmetic change to the AUC TeX path printout 2002-11-20 David Kastrup * RELEASE: some changes for 0.7.4 * preview.el (preview-dump-command, preview-undump-command): deleted. (preview-do-replacements): New function for performing replacements in strings. (preview-LaTeX-command-replacements, preview-format-name) (preview-dump-replacements, preview-undump-replacements): new variables. (preview-cache-preamble): adapt to new variables. (TeX-inline-preview, TeX-inline-preview-internal): same. 2002-11-18 David Kastrup * prv-emacs.el (preview-mode-setup): Add preview-at-point to the toolbar, for those people that have not seen fit to disable it. Volunteers for the XEmacs equivalent? 2002-11-10 David Kastrup * preview.el (preview-ps-quote-filename): New function replacing preview-ps-quote, generating a relative file name. (preview-prepare-fast-conversion): Use it. (preview-gs-transact): Use it. (LaTeX-preview-setup): Make tmp directory name relative. Problem is that Cygwin absolute paths are not suitable for passing into MikTeX. Sigh. But perhaps relative file names are nicer, anyway. (preview-parse-messages): Fix regexps for the sake of people incompetent to make the run buffer not contain ^M everywhere. Another Windows-related "fix". 2002-11-05 David Kastrup * preview.el (preview-gs-open): Place color setup after setpagedevice. * latex/preview.dtx (subsection{Supporting conversions}): Make the tightpage option generate proper /PageOffset values also for devices with bottom-up coordinate systems. * doc/problems.texi: Remove preview-gs-broken-security docs. See below. * preview.el (require): Don't abort compilation if desktop or reporter packages are not installed. (preview-gs-broken-security): Removed: (preview-gs-open): Workaround for braindead security. 2002-11-04 David Kastrup * Changes in order to preserve point in previews as follows: * preview.el (preview-at-point): Pass selected window into preview-toggle. (preview-place-preview): Pass event into preview-toggle. (preview-reinstate-preview): Same here. * prv-emacs.el (preview-toggle): take additional argument (event or window). (preview-last-location): New variable, buffer-local. (preview-mark-point): Remember point before moving out. (preview-restore-position): New function. * prv-xemacs.el (preview-toggle): take additional argument (event or window). (preview-last-location): New variable, buffer-local. (preview-mark-point): Remember point before moving out. (preview-restore-position): New function. 2002-10-21 Jan-Ake Larsson * configure.in: Fix texhash check 2002-09-16 David Kastrup * latex/preview.dtx (section{Introduction}): Mention tightpage option for image conversion already here. (\pr@endbox): set \reserved@a to something harmless for skipping (if it was set to a conditional, we got into trouble). (subsection{Selection options}): Redo the textmath option because the exscale package (for example) does dirty things within \frozen@everymath. 2002-09-06 David Kastrup * doc/faq.texi: Explain about 'Preview-LaTeX exited abnormally with code 1' message 2002-09-02 David Kastrup * prv-xemacs.el (preview-mode-setup): Make behaved startup in buffers without associated file (M-x calendar RET tfw produces things like that). Generating previews will not work before you save the buffer, but at least the stuff doesn't bomb out right away. * prv-emacs.el (preview-mode-setup): Make behaved startup in buffers without associated file (M-x calendar RET tfw produces things like that). Generating previews will not work before you save the buffer, but at least the stuff doesn't bomb out right away. * circ.tex: Load and save once to make it X-Symbol-compatible (changes are negligible, and it makes demoing mixtures of the two tools nicer). * preview.el (LaTeX-preview-setup): Fix menu position of generated customize menu. (preview-format-kill, preview-dump-file-name) (preview-cache-preamble, TeX-inline-preview-internal): Use prefix `prv_' for dumped formats to avoid name collisions (for example, with WhizzyTeX). 2002-08-14 David Kastrup * Release 0.7.3 * preview.el (preview-auto-cache-preamble): Renamed from preview-dump-default. Make the default 'ask: that way people will be hard put to overlook this feature, but are not stuck on it in case it causes trouble. Perhaps will make them read the manual, too, in order to set this to T. (preview-map): Use preview-cache-* (preview-cache-preamble, preview-cache-preamble-off): renamed from preview-dump-*. * doc/preview-latex.texi (Keys and lisp): Rename preview-dump-format and its ilk to preview-cache-preamble. (Simple customization): Mention automatic preamble caching. 2002-08-13 David Kastrup * preview.el (TeX-inline-preview): Use set-process-coding-system only when Mule is active. (preview-document): Save document if necessary. (TeX-inline-preview): Some overhaul. (TeX-inline-preview-internal): Separated out so that region/format dumps don't interfere. * prv-xemacs.el (preview-mode-setup): See below. (preview-dump-threshold): See below. (preview-preamble-format-cons): File local variable for watching. (preview-preamble-check-change, preview-watch-preamble) (preview-unwatch-preamble): See below. (preview-handle-before-change): Call preview-preamble-check-change. * prv-emacs.el (preview-dump-threshold): Regexp ending dump. (preview-preamble-changed-function): New function. (preview-watch-preamble): New function. (preview-unwatch-preamble): New function. (preview-mode-setup): Check whether we open a watched file. * preview.el (preview-buffer): Move region exclusion into advice for TeX-region-create. (preview-dump-default): New variable, tells us whether we should dump formats automatically. (preview-dumped-alist): Semantics change. (preview-dump-format): Use watch functions from prv-*.el (preview-clear-format): new optional argument, save last wanted state. (TeX-inline-preview): Use preview-dump-default. 2002-08-07 Jan-Ake Larsson * autogen.sh: Fixed autoconf-fix message 2002-08-07 David Kastrup * preview-latex.spec (Release): Set to 9 (prerelease) (Requires): Add FAQ to docs. * doc/faq.texi: FAQ added. 2002-08-06 David Kastrup * prv-xemacs.el (preview-use-balloon-help): New boolean customization variable. (preview-mode-setup): Use it. * doc/preview-latex.texi (The Emacs interface): Document it. 2002-08-05 David Kastrup * latex/preview.dtx (subsection{Supporting conversions}): change default of \PreviewBbAdjust from 0.5bp to 0.50001bp. 2002-08-04 David Kastrup * preview.el (preview-back-command): New optional argument NOCOMPLEX. (preview-parse-messages): Use it for not skipping backwards over braced expressions when start and end of triggered errors match. 2002-08-03 David Kastrup * RELEASE: update RedHat distro info. * doc/preview-latex.texi: Remove documentlanguage setting: English is the default anyway, and declaring it breaks the broken TeXlive 7 texinfo distribution. * doc/todo.texi: Updates. * RELEASE: New leading commercial. 2002-08-01 Jan-Ake Larsson * doc/preview-latex.texi: Typo corrected 2002-07-31 David Kastrup * doc/Makefile.in (preview-latex/index.html, clean): clean out preview-latex directory for html-docs. * doc/problems.texi (Problems with GhostScript): document preview-gs-broken-security. * doc/preview-latex.texi: Bump version to 0.7.3. (The Emacs interface): Document changes in options. * doc/install.texi (Prerequisites): GhostScript problem info. * doc/Makefile.in (TEXIFILES): New macro. (preview-latex/index.html, preview-latex.dvi, preview-latex.info): Make dependency on TEXIFILES. (clean): remove INSTALL.windows * preview.el (preview-parsed-font-size) (preview-parsed-magnification): documented. (preview-hook-enquiry): Use value of symbol only if bound. (preview-document-pt-list): Correct customization type. 2002-07-30 David Kastrup * latex/preview.dtx (section{Package options}): document `lyx' option. * doc/wininstall.texi: New file documenting XEmacs/Windows, courtesy of Anthony Williams. 2002-07-29 David Kastrup * preview.el (preview-parsed-font-size) (preview-parsed-magnification): new variables set from preview.sty (preview-get-magnification): consults preview-parsed-magnification. (preview-gs-resolution): consult preview-get-magnification. (preview-gs-open): Delay setup of preview-gs-command-line (preview-gs-dvips-process-setup): complete it. (preview-hook-enquiry): New function. (preview-document-pt-list): Sources of document-pt. (preview-auctex-font-size): Previously preview-document-pt (preview-document-pt): Uses preview-document-pt-list (preview-scale-from-face): defer part of calculation. (preview-parse-variables): Variable list set from preview.sty (preview-parse-messages): Clear them at start of parse. (preview-parse-messages): New pattern for variable list. (preview-parse-messages): magnification for PS bounding box. (preview-parse-messages): Parse variables from preview.sty (preview-get-geometry): Use preview-hook-enquiry for call of preview-scale-function. 2002-07-28 David Kastrup * latex/preview.dtx (subsection{Preview attaching commands}): Fix \PreviewEnvironment* (subsection{Preview attaching commands}): Type out font size and magnification info at start of document. (subsection{Supporting conversions}): Take DVI magnification into account in `tightpage' option. 2002-07-26 David Kastrup * circ.tex: Demonstrate showlabels (and fix a math oversight). * latex/preview.dtx (subsection{The \texttt{showlabels} option}): Changes, different look, more robust. 2002-07-25 Jan-Ake Larsson * doc/problems.texi: Info on windows-xemacs 2002-07-25 David Kastrup * preview.el (LaTeX-preview-setup): Fix form of preview-entry in order not to confuse customize. 2002-07-24 David Kastrup * preview.el (TeX-inline-preview): Export buffer coding system to TeX process output encoding (for our Polish friends and others). Hope this does not break non-Mule XEmacsen if such are around. 2002-07-23 David Kastrup * preview.el (preview-image-creators): Change tiff device to use tiff12nc, which has a chance of working with the current settings, at the cost of large file sizes. 2002-07-23 Jan-Ake Larsson * doc/install.texi: Minor changes * doc/problems.texi: Documented GNU gs 7.05 security bug info 2002-07-22 David Kastrup * latex/preview.dtx (subsection{The \texttt{showlabels} option}): Make sanitization of labels more consistent and switch to typewriter font. 2002-07-19 David Kastrup * prv-xemacs.el (preview-mode-setup): Add preview menu. * prv-emacs.el (preview-mode-setup): Add preview menu. Why is it before the LaTeX menus? * preview.el (preview-map): Prefix-keymap. (LaTeX-preview-setup): Use it. 2002-07-18 David Kastrup * prv-xemacs.el (face-attribute): shift stuff to compile time. (preview-with-LaTeX-menus, preview-mode-setup): cosmetic changes. * preview.el (preview-LaTeX-command): Use Windows-friendly quoting. (preview-dump-command, preview-undump-command): Same here. 2002-07-16 David Kastrup * preview.el (preview-ps-quote): New function. (preview-prepare-fast-conversion): Use it. (preview-gs-transact): Use it. * latex/preview.dtx (subsection{The \texttt{auctex} option}): Output font size. (subsection{The \texttt{lyx} option}): New option. (subsection{Supporting conversions}): Write out tightpage dimensions before each change. (section{Various driver files}): generate prlyx.def. 2002-07-11 David Kastrup * preview.el (preview-gs-broken-security): New option specifying when to disable security. (preview-gs-open): Use it. Also abort more predictably if setpagedevice fails, usually due to broken security. 2002-05-28 David Kastrup * preview.el (LaTeX-preview-setup, preview-parse-messages): cater to abbreviated locator error message. (preview-clearout-at-point): New function. (LaTeX-preview-setup): add to menus and cleanup unnecessary flags. * latex/preview.dtx: replace "Package Preview Error" with "Preview": too many people got confused. * doc/preview-latex.texi (Simple customization): Document new auto-reveal default. (Simple customization): Document a better way for default options. * preview.el (preview-gs-open): bind preview-latex-do PostScript operator. (preview-auto-reveal): Change default to auto-open on move left/right. 2002-05-08 David Kastrup * doc/todo.texi: add request for other TeX formats. * preview.el (preview-parse-messages): There is little point in being more picky about ( than we are about ), since all that this buys us is bad nesting. * prv-emacs.el (preview-gs-get-colors): Warp outline borders to integral pixels in order to avoid antialiasing artifacts. 2002-05-06 * preview.el (preview-back-command): Changed semantics in order not to backstep over punctuation. (preview-get-geometry): Bad error message format. 2002-04-30 Jan-Ake Larsson * preview.el (preview-dump-format): Now checks if format has changed; if it hasn't, no new dump is made. * preview.el (preview-buffer): Changed to mirror the behaviour of TeX-region-create. This is probably the best we can do. 2002-04-29 Jan-Ake Larsson * preview.el (preview-buffer): allow it to work with format caching + added comment 2002-04-28 Jan-Ake Larsson * doc/preview-latex.texi: Document preview-clear-format and its keybindings * preview.el (preview-clear-format): new, also changed keybinding for it 2002-04-26 Jan-Ake Larsson * doc/preview-latex.texi: Documented preview-dump-format * preview.el: Cosmetic change in menu 2002-04-26 David Kastrup * preview.el (LaTeX-preview-setup): Menu entries and keybindings for preview-dump-format. (preview-dumped-list): New variable: dumped formats. (preview-dump-format): New command for pregenerating format files. (TeX-inline-preview): Use dumped format if present. (preview-dumped-list): Move. (preview-cleanout-tempfiles): Also kill format files. (preview-format-extensions): New variable for cleanup purposes. (TeX-inline-preview): preview-dumped-list contains expanded file names. 2002-04-24 Jan-Ake Larsson * problems.texi: Slight index change * preview-latex.texi (Keys and lisp): Added the menu entries 2002-04-23 Jan-Ake Larsson * autogen.sh: Test for unique file 'preview.el' in autoconf 2.13 2002-04-23 Alan Shutko * aclocal.m4 (AC_PATH_PROGS_REQUIRED): New. * configure.in: Lock in whole path of Emacs executable. 2002-04-23 David Kastrup * Release 0.7.2b * Makefile.in (preview-latex.el): Quickfix * Release 0.7.2 * preview.el (preview-buffer-restore-internal): Remove expired previews. (preview-reinstate-preview): set timestamp. 2002-04-22 Nix * doc/install.texi (Advice for non-privileged users): Add XEmacs-specific instructions. * aclocal.m4 (AC_EXAMINE_PACKAGEDIR): Locate an existing preview-latex package and install over it if found. (AC_PATH_PACKAGEDIR): Support ~/ in package directory names. 2002-04-22 David Kastrup * doc/install.texi (Advice for non-privileged users): new section. * configure.in: Quote TEXMFGEN. * doc/readme.texi (Getting started): mention the mouse buttons. 2002-04-21 Nix * prv-emacs.el: Remove comment regarding XEmacs's lack of local change hooks; it has them and we use them. * doc/problems.texi (XEmacs): Mention the process-liveness patch. Fix some grammar. Call the support `quite new' rather than `very new'. * configure.in (infodir): Define for XEmacs; point to the info location in the package tree. 2002-04-21 David Kastrup * preview.el (preview-parse-messages): Try a few changes making bad buffer-local interac shorten export format. Backward compatible. * prv-xemacs.el (preview-export-image, preview-import-image): shorten export format. Backward compatible. 2002-04-14 Nix * prv-xemacs.el (glyph-image-type): New, determine the image type of a glyph. (preview-export-image): Use it. * doc/problems.texi (XEmacs): Say that preview reinstating works with a new enough desktop.el. 2002-04-14 David Kastrup * prv-emacs.el (preview-export-image): New macro. (preview-import-image): New macro. * preview.el (preview-reinstate-preview): use preview-import-image. (preview-dissect): Use preview-export-image. * prv-xemacs.el (preview-export-image, preview-import-image): New functions for desktop.el. * doc/Makefile.in (preview-latex.info): In the interest of release sanity, add --no-split option so that we have to cater for just a single info file. Needs to be reverted later. * doc/readme.texi (Getting started): mention circ.tex here instead of installation.texi. * preview.el (preview-gs-filter): Don't remove from "Compilation" tag if just in filter routine. * patches/flyspell.patch, patches/mouse-drag.patch: update inflicted Emacs version number. * doc/problems.texi (Middle-clicks paste instead of toggling): Alas, those bugs persist into 21.2 although the CVS has had it fixed for half a year almost. "Stable release" policies. Ha. 2002-04-14 Nix * preview.el (preview-parse-messages): Typo and grammar fixes in comments. No longer wonder if XEmacs will like line-number regexps. * doc/problems.texi (XEmacs): Say that it works modulo core bugs and new desktop.el package. Point to the latest version of the core patch. Suggest trying under MS Windows. (GNU Emacs under Windows): Point out that preview-latex's not been tested under Windows with XEmacs, either. * doc/install.texi (Prerequisites): No longer describe XEmacs support as preliminary. Mention the Known Problems link. (Configure): Elaborate --with-packagedir. (Loading the package): Mention that most of these instructions are unnecessary for XEmacs, except if you used --with-packagedir. (Maybe should split into Emacs/XEmacs subsections?) 2002-04-14 Jan-Ake Larsson * install.texi: Added --with-xemacs * preview-latex.spec: Only require xemacs >= 21.1 2002-04-14 David Kastrup * doc/install.texi Added section for package providers, updated the links. * preview.el (preview-error-condition): New variable for last error condition. (preview-log-error): Error reporting routine. Logs to run buffer. (preview-reraise-error): At the end of routines, raise a true error with beep and whatever else is necessary to get attention. (preview-gs-sentinel, preview-gs-filter) (preview-gs-dvips-sentinel, preview-gs-transact): use it. (preview-gs-transact): Don't send to dead process. (preview-parse-messages): Use error logger. (preview-TeX-inline-sentinel): Same here. (TeX-inline-preview): Catch initialization errors and abort. Good for people without graphic display. 2002-04-13 Jan-Ake Larsson * preview-latex.spec: Repair RedHat XEmacs braindamage * preview-latex.texi: Document new keybindings 2002-04-13 Nix * prv-xemacs.el (preview-compatibility-macros): Bind the final list of compiled macros into the bytecode at the end of compilation. 2002-04-13 David Kastrup * prv-xemacs.el (preview-make-clickable): Revert changes. (preview-auto-reveal): revert default: reveal.el might be loaded after preview.el, and we still want the default to follow reveal-mode in that case. 2002-04-13 Nix * prv-xemacs.el (preview-nonready-icon): Give a reasonable error if the icon doesn't exist. (preview-error-icon): Likewise. (preview-icon): Likewise. (preview-make-clickable): Set `isearch-open-invisible' on new clickable regions. (preview-toggle): Likewise. (preview-auto-reveal): Only track reveal-mode if reveal-mode is defined. If reveal-mode' is not defined, the default should be nil. (isearch-highlight): Make a protected, disabled advisement by default. (replace-highlight): Never exists; don't bother to advise. (preview-query-replace-reveal): Turn on the isearch-highlight advisement. * doc/todo.texi: Update XEmacs status: most things are now done. 2002-04-13 David Kastrup * preview.el (preview-next-border): Fix a weird error where regions beyond the file were demanded. (preview-at-point): Include previews immediately before point for toggling. * prv-xemacs.el (preview-toggle): Make isearch open the invisible stuff, and make isearch-invisible track invisible so that isearch will not "restore" things improperly. (preview-move-point): isearch is manipulated by advising isearch-highlight. No need to check here for isearch-mode. (defadvice): only advise replace-highlight if defined. * latex/preview.dtx (subsection{The \texttt{showlabels} option}): hotfix for strange label names. * preview.el (preview-disable): Go via toggle for disabling strings. * prv-xemacs.el (preview-mode-setup, preview-marker) (preview-temporary-opened, preview-mark-point) (preview-auto-reveal, preview-move-point, preview-open-overlays) (replace-highlight, preview-query-replace-reveal) (preview-change-list, preview-register-change) (preview-check-changes, preview-handle-before-change) (preview-handle-after-change): Do the whole fake-intangibility and change detection shmeer. isearch does not work yet. 2002-04-12 David Kastrup * preview.el (LaTeX-preview-setup): call preview-mode-setup and/or put it in LaTeX-mode-hook. (preview-buffer, preview-document, LaTeX-preview-setup): New commands, keybindings, menu entries. Things are now more orthogonal and you do no longer need C-c C-c and their ilk (though still supported): we have the commands all accessible via C-c C-p now. (preview-dsc-parse): Make DSC parsing more robust. * prv-xemacs.el (preview-mode-setup): New function. Enable balloon help. * prv-emacs.el (preview-toggle): Move hook setup to preview-mode-setup. (preview-mode-setup): New function. (preview-mark-active): make macro. * Makefile.in: New icons. * images/preverr.xbm, images/preverr.xpm: New icons. * prv-emacs.el (preview-error-icon): New icon. * preview.el (preview-mouse-open-error): Use other call conventions in order not to confuse XEmacs. (preview-gs-flag-error): switch to using error icon. (preview-error-face): deleted. * prv-xemacs.el (preview-error-icon): New icon. (preview-make-clickable): new properties preview-balloon-help and preview-keymap. (preview-click-reroute): changed to use preview-keymap. (preview-reroute-map): new function. (preview-balloon-reroute): new function. (preview-toggle): change the juggling. * doc/preview-latex.texi (Simple customization): expound on the center example. 2002-04-11 Jan-Ake Larsson * preview-latex.spec: Adjustments for xemacs * doc/preview-latex.texi: Reinstate (reverse) textmath hint 2002-04-11 David Kastrup * preview.el (preview-environment, preview-parse-messages): byte compiler warnings. (preview-buffer-restore-internal): basically the previous preview-buffer-restore. (preview-buffer-restore): delay resinstating previews vie desktop-delay-hook. * prv-xemacs.el (face-attribute): Try getting calculation of :height more correct. (preview-inherited-face-attribute): Make a macro. * prv-install.el (preview-make-package): Avoid Emacs unnecessarily loading all command line arguments as files. * prv-xemacs.el (preview-click-reroute): New routine to discriminate between clicks on glyphs or else. (preview-make-reroute): Generate a reroute map from original glyph clickable keymap. (preview-toggle): use the rerouter. 2002-04-10 Jan-Ake Larsson * doc/preview-latex.texi: Added hint on getting custom environments previewed due to John Jones, remove the textmath hint * latex/.cvsignore: New * .cvsignore: Changed due to the 'latex' subdir * patches/x-symbol.patch: Removed * preview-latex.spec: Simplifications from using a 'latex' subdir * doc/Makefile.in: Use mkinstalldirs 2002-04-10 David Kastrup * preview.el (preview-default-option-list): set textmath per default. * latex/README-preview: update to reflect added file footprint from preview.dtx 2002-04-10 Jan-Ake Larsson * Makefile.in: Move the texmf part to latex/Makefile.in, fix the 'clean' target * configure.in: preview.dtx has moved, generate latex/Makefile * doc/Makefile.in: preview.dtx has moved * latex/README-preview, README-preview: Renamed README-preview to latex/README-preview * latex/bootstrap.ins, bootstrap.ins: Renamed bootstrap.ins to latex/bootstrap.ins * latex/preview.dtx, preview.dtx: Renamed preview.dtx to latex/preview.dtx * latex/Makefile.in: Move latex style to subdir, Typo corrected 2002-04-10 David Kastrup * prv-xemacs.el (face-attribute): GNU Emacs calculates face heights differently. (preview-replace-active-icon): For now do the full inefficient stuff. Working this out later should be easy. XEmacs now displays previews, but that's about all. (preview-button-1, preview-button-2): define as XEmacs buttons (preview-make-clickable): make balloon-help something that balloon-help-mode understands. 2002-04-09 Nix * prv-xemacs.el: Remove crufty destructive-copy stuff. (map-plist, destructive-replace-glyph, copy-glyph): Removed. (preview-replace-active-icon): Just set the new image property rather than destructively copying it. 2002-04-09 Nix * prv-xemacs.el (preview-nonready-icon): Fix baseline. (preview-icon): Likewise. Bug fixes: (destructive-replace-glyph): Don't confuse `new-glyph' and `glyph'. Sync with prv-emacs changes: (propertize): Create zero-length extents if possible. (preview-image-from-icon): Removed. (preview-string-from-image): Removed. (preview-replace-icon): Removed. (preview-nonready-copy): New, simple as anything. (preview-replace-active-icon): New, albeit apparently broken. (preview-make-clickable): Handle glyphs as well as strings. (preview-toggle): Clickable glyphs are now always on the `end-glyph'. 2002-04-09 David Kastrup * prv-emacs.el (preview-nonready-copy): replaces preview-image-from-icon (preview-replace-active-icon): replaces preview-replace-icon (preview-make-clickable): make preview-string-from-image unnecessary. * preview.el (preview-gs-place): Don't return image, just enter it. (preview-gs-transact): Call preview-replace-active-icon specialized routine instead of the more general hack used before. (preview-disabled-string): kill preview-string-from-image (preview-inactive-string): same here. (preview-eps-place): change in place semantics as above. (preview-active-string): Don't receive image argument. (preview-place-preview): New place semantics. * doc/problems.texi (x-symbol interoperation): Bump recommended version to 4.2.2. (Middle-clicks paste instead of toggling): Mention fixes present in Emacs-21.2. (Middle-clicks paste instead of toggling): Mention isearch. 2002-04-09 Jan-Ake Larsson * preview-latex.spec: Install icons * doc/preview-latex.texi: Put Nick in authors, slight other changes * doc/problems.texi: Added entry on fast conversion and bounding boxes * doc/todo.texi: Added manual stuff 2002-04-08 David Kastrup * doc/todo.texi: New suggestion for manual. * doc/readme.texi (Getting started): Adapt text to new icons. * doc/preview-latex.texi (The Emacs interface): Add documentation about the scaling variables/issues from preview-latex. 2002-04-07 David Kastrup * preview.el (preview-parse-messages): Error message cosmetics and a judicious save-excursion for fast hooks. * prv-emacs.el (preview-nonready-icon): Use new icons. (preview-icon): Same here. 2002-04-07 Nix * prv-install.el (preview-make-package-xemacs): Revert last change; package version numbers must be integral. Ensure that we get a valid integer even if `preview-version' contains multiple periods. 2002-04-07 David Kastrup * images: Icons, several revisions. 2002-04-06 Nix * prv-install.el (preview-make-package-xemacs): Prepend "0." to XEmacs package version numbers for CVS versions of preview.el. * prv-xemacs.el (preview-icon,preview-nonready-icon): Use new icon images. * Makefile.in (ICONFORM,ICON_XPM_SOURCES): New variables, for icon installation. (ICON_XBM_SOURCES,ICON_SOURCES,icondir): Likewise. (ELCC): Include the ICONFORM. (install-icons): New, install the icons. (MKINSTALLDIRS): New (for later, when objdir!=srcdir support is added). (install): Use it. (install-el): Likewise. (install-texmf): Likewise. (install-texmf-doc): Likewise. * configure.in (icondir): Set for GNU Emacs too (but blank), and substitute it. (ICONFORM): New variable, comamnd-line switch to pass to (X)Emacs to find the images at build time (if needed). Substitute it. * mkinstalldirs: New file, from automake-1.6. 2002-04-06 Nix * doc/todo.texi: Update XEmacs status. * configure.in: Substitute the packagedir. * Makefile.in (packagedir): New variable, used by... (install-el): ... this new package-installation handling. * prv-install.el: New file, containing... (preview-make-package): New function. (preview-make-package-xemacs): New function, derived from emacs-w3m. * aclocal.m4 (AC_EXAMINE_PACKAGEDIR): Lowercasify PACKAGEDIR. (AC_PATH_PACKAGEDIR): Likewise. 2002-04-06 Alan Shutko * configure.in: Start adding XEmacs-specific hooks. Right now, lispdir should be correctly set up, I think. icondir is sitting there for when we add icons. * aclocal.m4 (AC_PATH_PACKAGEDIR,AC_EXAMINE_PACKAGEDIR): New functions for XEmacs installation, borrowed from from emacs-w3m, credit to Katsumi Yamaoka . 2002-04-06 Jan-Ake Larsson * autogen.sh, doc/Makefile.in, doc/preview-latex.texi: Include todo.texi * doc/todo.texi: Moved from TODO * TODO: Moved to todo.texi 2002-04-05 David Kastrup * preview.el (preview-parse-messages): Another addition to the fast location hook semantics. (preview-parse-messages): one last change for Christoph. * prv-emacs.el (preview-add-urgentization): Cosmetic change. * Additional frobbing of urgentization. 2002-04-05 Nix * prv-xemacs.el (preview-add-urgentization): Use `set-extent-initial-redisplay-function' to force immediate redisplay if already on-screen. (preview-remove-urgentization): Likewise. 2002-04-05 David Kastrup * prv-xemacs.el (preview-remove-urgentization): proper return value. (preview-add-urgentization): Make entry in initial-redisplay-function easier to reextract for preview-remove-urgentization. * TODO: small changes. 2002-04-04 Nix * preview.el (preview-parse-messages): Cater for XEmacs shy grouping bug (shy grouping very nearly doesn't work in XEmacs-21.4...) * prv-xemacs.el (match-string-no-properties): New, same as `match-string'. (set-buffer-multibyte): Degenerate implementation. (face-attribute): Throw an error of the right error class. (make-temp-file): Likewise. (preview-add-urgentization): Revise signature, as in prv-emacs. (preview-with-LaTeX-menus): Do not copy useless menus around. (preview-string-from-image): Make obvious that this generates any kind of glyph, not just begin-glyphs. (preview-ps-image): Revise signature (but implementation is still stubbed). (preview-toggle): Revise signature slightly. Flip between begin and end-glyphs to partially cater for XEmacs redisplay bug. 2002-04-04 David Kastrup * preview.el (preview-gs-dvips-process-setup): Correct deletion of dvi file. (preview-dvips-abort): don't unnecessarily clean subdirs. (preview-gs-dvips-sentinel): get the delete semantics right. (preview-gs-close): same here. (preview-delete): after deleting files, set files in overlay to nil since in connection with urgentization we can get multiple deletions. (preview-parse-messages): initialize lfile to "", so that line number caching does not fail when the filename is "nil". (preview-parse-messages): AAAAAARGGG!!!. Fix the typo that caused O(n^2) parsing time. 2002-04-03 David Kastrup * preview.el (preview-gs-close): move. (preview-gs-dvips-process-setup): New function for setting up process just at the time of use. (preview-dvips-abort): New function. (preview-gs-dvips-sentinel): Overhaul. (preview-gs-close): Overhaul in order to do the right thing regardless of whether Dvips has finished or not. (preview-eps-open): Some initial changes. 'postscript image device likely to be broken by us (but it is broken in Emacs, anyway). (preview-parse-messages): Take `open-closure' as argument. (preview-parse-messages): different hook semantics for fast hooks. We are still in negotiations over this... (preview-parse-messages): change parsestate to list of vectors. 2002-04-03 Jan-Ake Larsson * doc/preview-latex.texi: documented showlabels * doc/install.texi, doc/readme.texi: Slight edits * doc/problems.texi: Document x-symbol.patch, slight other edits * patches/x-symbol.patch: Initial version * preview-latex.spec: Use texmfdir, slight other edits 2002-04-03 Jan-Ake Larsson * preview-latex.spec: Use texmfdir, slight other edits 2002-04-02 Jan-Ake Larsson * aclocal.m4: escaped usage of $texmfdir 2002-04-01 Jan-Ake Larsson * Makefile.in: added texmf and elisp targets, also targets for $TEXMFGEN * preview-latex.spec: Initial stab at triple-rpm spec * doc/Makefile.in: *.dvi and *.info cleaned again * preview-latex.spec: Typo corrected 2002-04-01 David Kastrup * preview.el (LaTeX-preview-setup): Remove our own TeX-translation-hook that did not really work (supposed to remove Preview error messages from preview runs, but for document problems you'd rather use the real run, anyhow). (preview-parse-messages): remember directory when switching buffers. Implement fast translation hooks. A pity nobody uses them yet. (TeX-inline-preview): Use TeX-run-command instead of TeX-run-format: we miss out on the progress info in the mode line, but it slowed down the filter routine. * preview.dtx (subsection{The \texttt{auctex} option}): Make the error messages shorter to cut down on I/O time. 2002-03-31 David Kastrup * preview.el (preview): add cross links. * Makefile.in: Rerun LaTeX to get references right. * preview.dtx (subsection{The \texttt{auctex} option}): Disable \thanks and \and. * preview.el (preview-default-option-list): Update possibilities and docs. (preview-parse-messages): Don't do files not known to be human-generated. (preview-gs-queue-empty): New cleanout function. We use this instead of just clearing preview-gs-queue in order to avoid losing pointers to deletable temporary files. (preview-gs-sentinel): Use it. (preview-gs-close): Same here. (preview-gs-open): And here. Use unwind-protect in order to ascertain we process the queue. (preview-prepare-fast-conversion): Accept non-dereferenced big ps file. (preview-gs-dvips-sentinel): better behavior when processes get started and finished in unexpected orders. 2002-03-31 Jan-Ake Larsson * preview-latex.spec: Changed to include everything in /texmf/tex/latex/preview, fix for %config files 2002-03-30 David Kastrup * doc/preview-dtxdoc.pl, preview.dtx (section{Various driver files}): Add \previewlatex macro for consistent translation. * doc/preview-dtxdoc.pl: add \% and ~ translations. * preview.dtx (section{Package options}): document new option files. * doc/problems.texi (x-symbol interoperation): Mention speed problem. * preview.dtx: loads of smaller and larger changes, new options files. * preview.el (preview-back-command): typo. * autogen.sh (makeinfo): move into doc directory for autogenerating files so that include files are found. 2002-03-30 Jan-Ake Larsson * doc/Makefile.in: New dependency on macros.texi * doc/install.texi, doc/readme.texi, doc/copying.texi: Macros in separate file * doc/problems.texi: Typo corrected, macros in separate file * doc/preview-dtxdoc.pl: Changed slightly wrt \cmd translation * doc/macros.texi: Macros for the texinfo generation * doc/preview-latex.texi: Typos corrected, macros in separate file. 2002-03-30 Alan Shutko * Makefile.in (TEXMFGEN): Use new variable. * configure.in (TEXMFGEN): New variable with the tex stuff generated which should be installed. 2002-03-29 David Kastrup * preview.el (preview-back-command): Change call semantics to something easier to understand and try out. (preview-parse-messages): Remove unused variable `next-point'. (preview-parse-messages): Correct thinko and use new preview-back-command semantics. 2002-03-28 David Kastrup * preview.dtx: move \pr@ship@start * preview-latex.spec (%configure): Use --with-texmf-dir. 2002-03-27 Alan Shutko * doc/install.texi (Configure): Reflect changes in configure options. * configure.in (--with-texmf): Changed to --with-texmf-dir per bug 480837. (--with-preview-dir): Changed to --with-tex-dir per bug 480837. (--with-doc-dir): New. 2002-03-28 David Kastrup * circ.tex: Correct labels. 2002-03-27 David Kastrup * preview.dtx: be careful in unboxing so as not to remove possibly shifted hboxes (bug reported by Jan-Åke) protected by an otherwise inexplicable penalty. * preview.el: Complete overhaul of parsing to avoid (costly) buffer switches. (preview-gs-close): Transfer queue to preview-gs-queue. (preview-gs-open): Pass arglist to preview-parse-messages for place functions. (preview-eps-open): Same. (preview-gs-place): Completely different args in order to avoid buffer switching. Different return value. (preview-inactive-string): Different semantics (were valid before by accident, so no change in callers necessary). (preview-eps-place): Rearranged to avoid buffer switching. (preview-make-filename): require tempdir. (preview-delete-file): changed API to avoid buffer switching. (preview-place-preview): Same. (preview-parse-messages): New args passed into place routines. Completely rearranged and merged preview-analyze-error into it. (preview-start-dvips): Pass tempdir to preview-make-filename * prv-emacs.el (preview-add-urgentization): Changed API, but it turns out this gets called just like it did before. 2002-03-27 Jan-Ake Larsson * doc/.cvsignore: Ignore preview-dtxdoc.texi * doc/Makefile.in: Autogeneration of ../preview.dtx -> preview-dtxdoc.texi * doc/preview-dtxdoc.pl: Initial version * doc/preview-latex.texi: Moved menu to problems.texi, documented preview-auto-reveal and preview-inner-environments, include autogenerated preview-dtxdoc.texi * doc/problems.texi: Moved menu here from preview-latex.texi * doc/readme.texi: Removed out-commented parts 2002-03-26 Jan-Ake Larsson * preview.dtx: Minimal change to simplify autogen of texinfo manuals 2002-03-26 Alan Shutko * doc/.cvsignore: Add preview-latex.tmp. * .cvsignore: Add latex.out. * autogen.sh: Modify ed script to account for difference between AC_INIT in 2.13 and 2.52 * doc/Makefile.in (INSTALLINFO): Make it use configure value. * configure.in: Check for path of install-info. Check whether Emacs supports images. 2002-03-26 David Kastrup * TODO (Integrate into RefTeX): bemoan another shortcoming, or rather feature wish. 2002-03-25 David Kastrup * preview.el (preview-gs-dvips-sentinel): Treat absence of previews in buffer more graciously. (preview-parse-messages): require space before !name and !offset tags from AUC TeX. * prv-emacs.el (preview-auto-reveal, replace-highlight) (preview-query-replace-reveal): moved. * preview.dtx (subsection{The internals}): Remove spurious space via \vsplit. (subsection{The internals}): Set \deadcycles to avoid TeX interfering with our \output fake. (subsection{Selection options}): Implement hooking into equations differently. Somewhat ugly hack to circumvent amslatex/3425 bug. (subsection{Preview attaching commands}): keep \showboxbreadth and \showboxdepth operative, though set to minimal values. (\cmd{\everypar}): Cater for ugly LaTeX commands that hide things like the startup code of \paragraph in \everypar. * doc/problems.texi (x-symbol interoperation): Update Web address. * doc/readme.texi (Contacts): Remove personal Email address from README. 2002-03-24 Jan-Ake Larsson * doc/install.texi: Incorporated "Prerequisites" from readme.texi * doc/preview-latex.texi: Moved "Getting started" to readme.texi, also index changes * doc/readme.texi: Moved "Getting started" from preview-latex.texi, moved "Prerequisites" to install.texi, Placed appropriate pointers and crossreferences in README and other manuals 2002-03-24 David Kastrup * RELEASE: Info about RedHat 7.3 beta. * preview.dtx (subsection{The internals}): Spacing improvements. * prv-emacs.el (replace-highlight): advise so that query-replace works as reasonable. (preview-query-replace-reveal): Option to make this customizable. 2002-03-23 David Kastrup * prv-emacs.el (preview-toggle): get rid of isearch-open-invisible hooks and stuff; using the invisible property was confusing to the display engine, anyhow, and was about to be broken by changes in Emacs. The current behavior for isearch is nicer than the default was before, so what. (preview-auto-reveal): New customizable option. * doc/problems.texi (Emacs problems): Windows availability for CVS Emacs. * doc/readme.texi: Windows availability for CVS Emacs. * preview.el (preview-parse-messages): Comment used regexps. * preview.dtx (subsection{The internals}): Removed an \everypar that caused bad spacing. No idea why. Redundant anyway. (subsection{Selection options}): changed displaymath option to put in the \everydisplay tokens at a theoretically more correct place. Explicitly hooked equation and equation*: AMSLaTeX calls them too late to have them behave well. (subsection{Preview attaching commands}): Corrected \PreviewEnvironment which must have led to error messages for months. Seems nobody cares. (subsection{Selection options}): Still more displaymath cosmetics. 2002-03-22 David Kastrup * preview.dtx (section{The Implementation}): fix typo in dvips option. Ugh. * preview.el (preview-bb-filesize): move to preview-gs group. (LaTeX-preview-setup): add bug reporter. (preview-report-bug): update reported options. 2002-03-22 Jan-Ake Larsson * doc/preview-latex.texi (preview-environment): doc rewrite. Slight other layout changes 2002-03-22 David Kastrup * doc/problems.texi: Edits. * doc/install.texi: Lots of editing * doc/readme.texi: same here * doc/preview-latex.texi: same here * RELEASE: Changes for 0.7. * TODO: Throw out stuff already implemented. * preview.el (preview-prefer-TeX-bb): Doc cosmetic. (preview-fast-conversion): Now defaults to on. (preview-fast-dvips-command): remove -tletter option, we do this better now. (preview-LaTeX-command): Pass new dvips option to preview. * preview.dtx (section{Package options}) (section{The Implementation}): Add dvips option for overriding page dimensions/landscape and such stuff. * preview.el (preview-TeX-bb): comment sanitized. (preview-gs-init-string, preview-ps-file, preview-gs-dsc): new variables. (preview-fast-conversion): Set this customizable variable for an impressive speedup, particularly of the DviPS pass. (preview-dvips-command): moved. (preview-fast-dvips-command): New command for fast conversion. (preview-gs-restart): send initialization string to gs (preview-gs-open): initialize preview-gs-init-string (preview-gs-open): pass preview-fast-conversion into preview-start-dvips (preview-dsc-parse, preview-gs-dsc-cvx) (preview-prepare-fast-conversion): New functions for using DSC comments. (preview-gs-dvips-sentinel): read DSC in. (preview-gs-place): remember snippet in 'queued property. (preview-mouse-open-eps): allow opening at position. (preview-gs-flag-error): take preview-gs-init-string into account, generate other message for fast PS conversion. (preview-gs-transact): allow non-empty stack in prompt, use preview-latex-do command in GhostScript. (preview-place-preview): comment correction, no eps file if ps generated. (preview-analyze-error): doc change. (preview-start-dvips): allow for fast version. * prv-emacs.el (preview-ps-image): Allow optional bounding box from TeX. 2002-03-21 David Kastrup * preview.dtx (subsection{Preview attaching commands}): Backward compatible message with TeX bounding box. * preview.el (preview-parse-messages): Backward compatible message parsing. * preview.dtx (subsection{The internals}, subsection{Preview attaching commands}): provide additional bounding box info. (subsection{The internals}): move location of \pr@shipend to before shipping out \pr@box so that we may measure/change it. (subsection{Selection options}): slightly changed call of old \everydisplay hook. (subsection{Preview attaching commands}): disable more warnings in order to decrease possible parse errors of preview.el. * preview.el (preview-prefer-TeX-bb): New option to fish bounding box from TeX output. Not enabled by default until we get to fix a particular problem occuring with split environment nested in equation. (preview-TeX-bb-border): Additional slop around bounding box. (preview-TeX-bb): New function to calculate PostScript bb from TeX box dimensions in sp. (preview-gs-place, preview-eps-place, preview-place-preview): accept additional box argument. (preview-gs-transact): consider more box sources. (preview-delete-file, preview-make-filename): new semantics for reference-counting files. (preview-parse-messages, preview-analyze-error): Parse additional bounding box information from AUC TeX run. 2002-03-20 Nix * prv-xemacs.el (preview-with-LaTeX-menus): Handle the case where the current menubar is not the AuCTeX one. Remove dead code. 2002-03-19 Nix * preview.dtx: Doc fix. * preview.el: Require `reporter'. * preview.el (preview-image-creators): Doc extension. * preview.el (preview-eps-place): Doc fix. * preview.el (preview-analyze-error): Likewise. * preview.el (preview-gs): Grammar fix. * preview.el (preview-face): Likewise. * preview.el (preview-temp-dirs): Layout fix. * preview.el (preview-environment): Grammar and layout fix. * preview.el (preview-mouse-open-eps): Cater for XEmacs's more limited PostScript mode. * preview.el (LaTeX-preview-setup): Use `preview-mark-active' to cater for Emacs/XEmacs active-region detection differences. * prv-emacs.el (preview-nonready-icon): Doc fix. * prv-emacs.el (preview-image-from-icon): Likewise. * prv-emacs.el (preview-mark-active): New. * prv-xemacs.el (preview-gs-color-value): New, from prv-emacs.el. 2002-03-19 Nix * prv-xemacs.el: Require overlay always, not just at compile time. (preview-compatibility-macros): Define only when compiling. (preview-defmacro): Likewise. Teach Emacs to indent this form properly. Code to compensate for features missing in XEmacs: (face-attribute): Teach how to fake :foreground and :background. (find-image): Remove. (defimage): Likewise. There's no need for this call here; even if there were, the image-type analysis should take place at instantiation time, not definition time. (easy-menu-create-menu): New, after the Emacs function. (next-single-char-property-change): Likewise. (previous-single-char-property-change): Likewise. (with-temp-message): Likewise. (add-to-list): Likewise, redefining the two-argument XEmacs version. (copy-glyph): New, uses... (destructive-replace-glyph): ... this. New (and ugly). Uses... (map-plist): ... this. New, `map' for property lists. Code derived from prv-emacs.el: (preview-mark-active): New, handle the special XEmacs `mark-is-nil' case. (preview-create-icon): New. (preview-icon): XEmacsize from commented-out code; reindent. (preview-nonready-icon): Likewise. (preview-add-urgentization): Add docstring. (preview-add-urgentization): Likewise. (preview-image-from-icon): New. (preview-string-from-image): Likewise. (preview-make-clickable): Likewise. (preview-ps-image): Likewise. (preview-toggle): Likewise. (preview-inherited-face-attribute): Likewise. (preview-with-LaTeX-menus): Likewise. (preview-gs-get-colors): Likewise. (provide): Add. 2002-03-16 David Kastrup * doc/install.texi: Work in progress. * doc/readme.texi: Work in progress. * TODO: update wish list. This is getting longer by the minute. * doc/Makefile.in (INSTALL, README, PROBLEMS): add -D rawfile option for raw text files. * doc/readme.texi: documentation restructuring for making README good on preinstalled systems. * autogen.sh (makeinfo): add -D rawfile option for raw text files 2002-03-15 David Kastrup * preview.dtx (subsection{Preview attaching commands}): disable \showmaxdepth and \showmaxbreadth. * preview.el (preview-place-preview): (widen) paranoia. (preview-back-command): same here. (LaTeX-preview-setup): better safe than sorry (users might call this wrong), so rerequire 'latex (preview-parse-messages): New regexp parser. Nick, if the shy groups \(?: ...\) worry XEmacs, make them non-shy and adjust the match-... thingies appropriately. (preview-analyze-error): and another save-restriction... 2002-03-14 David Kastrup * preview.el (preview-parse-messages): Obliterate preview-snippet and preview-snippet-start for general parsestate. (preview-analyze-error): Use parsestate and cache line number info from last call. This plugs a *big* performance hog (goto-line). Made buffer parsing here about 8 times faster. 2002-03-13 David Kastrup * preview.dtx (subsection{The internals}): Use \@arrayparboxrestore for better reset of spacing. * preview.el (require): avoid compiler warning. (preview-goto-info-page): new function (LaTeX-preview-setup): add preview-goto-info-page binding (info): add preview prefix for C-h F lookup (LaTeX-preview-setup): add documentation and customization menu. 2002-03-11 David Kastrup * Release 0.6.1 2002-03-10 David Kastrup * Makefile.in: Add preview.ins target. * doc/install.texi: Brown paper bag. * autogen.sh: don't prebuild doc. We offer a separate download archive for people without texinfo. * preview-latex.spec (BuildRequires): changes for 0.6.1. * doc/install.texi: Some changes for 0.6.1. * RELEASE: Some adjustments for 0.6.1. 2002-03-09 David Kastrup * preview.el (LaTeX-preview-setup): Use preview-with-LaTeX-menus. * prv-emacs.el (preview-with-LaTeX-menus): New function temporarily making menus active. This is quite different for XEmacs. 2002-03-09 Nix * doc/preview-latex.texi: Minor typo fixes. * doc/problems.texi: Likewise. 2002-03-09 David Kastrup * preview.el (LaTeX-preview-setup): Deal with the easy-menu sickness so that XEmacs might work. (LaTeX-preview-setup): (require 'latex) unnecessary, we get called only if the feature has been loaded already. 2002-03-08 Alan Shutko * configure.in: When checking for texhash, use /bin/true if we can't find it. 2002-03-08 David Kastrup * doc/problems.texi (Emacs problems), doc/readme.texi: some brighter outlook with regard to XEmacs port. * preview.el (preview-gs-transact): Throw in the towel. We don't use .runandhide (and .setsafe) unless we are dealing with gs with a version of at least 7.00. gs-6.53 seems to provide .runandhide, while making it useless because save .setsafe restore does not return to unsafer mode. 2002-03-05 David Kastrup * RELEASE: Few changes and explanations for 0.6.1. * doc/problems.texi (Font problems with Dvips): Changed pounds sign. Not much of an improvement (we get the wrong character), but 7bit safe. If Jan-Åke finds this as desirable as to have his own name mangled, we should follow at least make it pay off. * doc/preview-latex.texi (On EPS previews): png16m is default instead of png256. * doc/install.texi: Document 8bit problems. * README.CVS: updated. * configure.in: update to autoconf 2.52. * autogen.sh: Wheedle MY_LANG and MY_LC_CTYPE in if autoconf failed to do so. * preview.el: copyright extended. Basically overhaul of persistent data, leads to: (preview-disable): clear timestamp. (preview-delete): Don't fiddle with ovr after it is already deleted. (preview-clearout): additional argument timestamp (preview-kill-buffer-cleanup): New function for killing buffers: properly time-stamped previews will not get their files deleted. (kill-buffer-hook): use it (before-revert-hook): use it (desktop-buffer-preview-misc-data): changed dissect call, work only if buffer unmodified. (preview-dissect): work with timestamp, don't destroy preview. (preview-buffer-restore): new function, works from saved data. (desktop-buffer-preview): use it. (preview-cleanout-tempfiles): Do things differently. (LaTeX-preview-setup): Call preview-buffer-restore if we accidently got here before setting up the desktop hooks. 2002-03-04 David Kastrup * doc/preview-latex.texi (Package options): doc changes, psfixbb documented. * doc/problems.texi: doc changes. * doc/readme.texi: doc changes (@AUCTeX). * doc/install.texi: doc changes. * doc/preview-latex.texi: some documentation amendments. * preview.el (preview-dissect): improve false desktop cleanups. (desktop-buffer-preview): handle file load oneself. (preview-place-preview): subtle bug leading to empty previews accumulating in secondary buffers. (preview-reinstate-preview): don't reinstate previews where the files have been deleted. (preview-TeX-inline-sentinel): Make sure "Compilation" flag gets cleared even on errors. (preview-environment): Doc change. (desktop-buffer-preview-misc-data, preview-dissect) (desktop-buffer-preview, preview-cleanout-tempfiles) (preview-active-string, preview-reinstate-preview) (preview-default-preamble): Doc corrections/additions. 2002-03-02 David Kastrup * preview.el (preview-gs-transact): Don't use .setsafe unless .runandhide is defined. There might be no way back to unsafer mode otherwise. (preview-create-subdirectory): Be more forgiving about users messing up the directory organization of preview-latex, by manually deleting stuff under its control. 2002-03-01 David Kastrup * preview.el (preview-default-option-list): add new options. * preview.dtx: add new package option psfixbb for getting better bounding boxes in the presence of PStricks and the like. 2002-02-28 David Kastrup * preview.el (preview-inner-environments): New variable for avoiding ugly environments. (preview-environment): Accept a count, and avoid bad environments. (preview-section): Doc string fixed. 2002-02-26 David Kastrup * preview.el (require): suppress desktop warnings (preview-clearout): restrict to narrowed area. (desktop-buffer-preview-misc-data): widen. (preview-dissect): don't use subseq from cl-extra, rather butlast from subr. (preview-cleanout-tempfiles): new routine used in kill-emacs-hook (preview-reinstate-preview): setup kill-emacs-hook late so that preview-cleanout gets called after desktop saving (preview-create-subdirectory): same here 2002-02-25 David Kastrup * preview.el (TeX-active-tempdir): Changed the type. (preview-gs-dvips-sentinel): adjusted for that. (preview-gs-place): queued is now missing image (preview-gs-transact): that is in overlay property preview-image instead. (preview-gs-transact): adapt to new queued (desktop-buffer-preview-misc-data): save overlays when leaving desktop. (preview-dissect): gets details from overlay. (desktop-buffer-preview): restore overlays on reentry (kill-emacs-hook): must be run after desktop hook. (preview-active-string): gets passed image instead of snippet. (preview-make-filename): New TeX-active-tempdir type (preview-delete-file): same here (preview-place-preview): adapt to new preview-active-string (preview-reinstate-preview): new function for restoring a preview (preview-create-subdirectory): new TeX-active-tempdir type 2002-02-24 Jan-Ake Larsson * doc/preview-latex.texi: Incorporated docs from preview.dtx, minor other changes 2002-02-20 Jan-Ake Larsson * doc/preview-latex.texi: Removed isolatin1 style include and chars 2002-02-20 Alan Shutko * configure.in: Patch from Stephen Gildea correcting the disable-8bit-test code. 2002-02-19 Jan-Ake Larsson * Created 0.6b, which includes .info and .dvi manuals * doc/Makefile.in: Removed .info and .dvi from 'clean' target 2002-02-19 David Kastrup * Release 0.6 2002-02-19 Jan-Ake Larsson * Makefile.in: Changed target 'doc' to 'docs'. 'doc' matched the (unchanged) directory 'doc'. * preview-latex.el: Startup file for site-start.d * preview-latex.spec: Added site-start.d support and prauctex.cfg config file 2002-02-19 David Kastrup * preview.dtx: Oops, prauctex.cfg inadvertantly overrode a possible "sections" option. (subsection{The internals}): The fake \shipout had a syntax error. Why don't people report bugs? 2002-02-18 Alan Shutko * Makefile.in (all): Split out docs target so install-hint is still last. Ditto install. 2002-02-18 David Kastrup * TODO: Add a few suggestions and throw out what has already been accomplished. * README-preview: Slight edits. * README.CVS: mention PROBLEMS as autogenerated file, add warning about autoconf earlier than 2.13. * RELEASE: explain about configuration files. * doc/preview-latex.texi: dircategory Emacs * doc/Makefile.in (install): correct install target for install-info. * doc/preview-latex.texi (Misplaced previews): explain about prauctex.cfg. * doc/install.texi: Write @LaTeX instead of La@TeX * preview.el (preview-default-preamble): Shorten stuff out that sits now in prauctex.cfg. * Makefile.in (all): cater for prauctex.cfg. Same for other targets. * preview.dtx (section{Introduction}): Replaced TeX by \TeX and similar cosmetics. (section{Package options}): Added noconfig option, explained prdefault.cfg (not yet there) and prauctex.cfg. (subsection{Preview attaching commands}): Predefine prauctex.cfg. (section{Various drivers}): make installer extract it. 2002-02-18 Jan-Ake Larsson * problems.texi: Simple layout fix * preview-latex.spec: For 0.6 proper * RELEASE: Mention AUC TeX RPM on project site * Makefile.in: Fixed 'make clean' in doc subdir, install info files too * doc/Makefile.in: Typo corrected, fixed INSTALL_DATA 2002-02-17 Alan Shutko * doc/Makefile.in: New file, replacing the former ad-hoc build. * doc/install.texi: Mention --disable-8bit-test. * doc/problems.texi (LaTeX international characters): Mention --disable-8bit-test. * aclocal.m4 (AC_CHECK_AUCTEX): Correct --with-auctex to --with-tex-site. * configure.in: 8bit test enhancements. Allow disabling test with --disable-8bit-test. Check for makeinfo. Generate doc/Makefile. 2002-02-17 David Kastrup * doc/install.texi: Mention problems with 8-bit-uncleanliness. We need an override still. * doc/problems.texi (LaTeX international characters): Mention that configure might barf. 2002-02-15 Jan-Ake Larsson * RELEASE: RPM info added, "for RH 7.x" 2002-02-14 Jan-Ake Larsson * preview-latex.spec: For 0.6. Included code to build from CVS and temporary fix to allow build before autoconf includes docs, included patches subdir in %doc * doc/Makefile: Typo corrected 2002-02-11 Jan-Ake Larsson * doc/readme.texi, doc/install.texi, doc/problems.texi, doc/copying.texi: Include @macro defs for text-file generation * doc/problems.texi: Minor changes * doc/readme.texi: Shortened * doc/Makefile: Added --no-validate on README * doc/install.texi: Layout changes, xref to PROBLEMS shortened * doc/problems.texi: Layout changes, added text on bug reports and GS EPS handling * doc/preview-latex.texi: Layout changes, install-info fix, index additions, fixed direntries for preview-latex 2002-02-11 David Kastrup * doc/Makefile (install): install the renamed info files. * doc/preview-latex.texi: change output file name to preview-latex.info in order to keep preview-latex as a directory name for HTML output. * doc/Makefile (preview-latex/index.html): generate HTML with makeinfo as texi2html does not grok @preview-latex. * doc/preview-latex.texi: Write Å instead of @AA (x-symbol sneaked that in). And revert again: does not print. * doc/install.texi: Use @previewlatex. * doc/problems.texi: Use @previewlatex and @uref. * doc/readme.texi: Use @previewlatex. * doc/copying.texi: Use @previewlatex. * doc/preview-latex.texi (top): Introduce @previewlatex macro and use it throughout. Some more changes. 2002-02-09 David Kastrup * INSTALL README PROBLEMS: removed because autogenerated * README.CVS and autogen.sh added. * doc/problems.texi: Initial rendition of PROBLEMS file in texindex form. * doc/copying.texi: Change Preview La@TeX{} to preview-latex * preview.el (preview-image-creators): Change png default device to png16m due to popular request. * doc/readme.texi: overhaul for 0.6. * doc/preview-latex.texi: fat overhaul. * preview.dtx (section{The Implementation}): Simplify \pr@advise, it broke the delayed option. (subsection{Preview attaching commands}): Same. 2002-02-08 David Kastrup * preview.el (preview-gs-transact): Sigh. Some refinements to the SAFER stuff: restart gs on errors that seem to stop in SAFER mode. (preview-gs-transact): And another few changes, there are gs versions that have .setsafer but not .runandhide. Rats. 2002-02-07 David Kastrup * preview.dtx (subsection{Preview attaching commands}): Use \nofiles instead of \@fileswfalse in order to suppress erroneous log file output. * preview.el (preview-gs-options): Remove -DSAFER option that causes OutputFile selection of GhostScript to fail (starting with 7.04). This cannot be the final fix. (preview-gs-options): Ok, so it isn't. Restored -dSAFER and added -dDELAYSAFER (which should be ignored by earlier GhostScript versions). Also: (preview-gs-transact): call .setsafe procedure if defined in systemdict, so we don't get unsafer in GhostScript 7.04. 2002-02-06 Jan-Ake Larsson * readme.texi: Index and layout changes 2002-02-05 Jan-Ake Larsson * copying.texi: Less zealous index * readme.texi: Typo corrected * preview-latex.texi: Document preview-default-preamble, bumped release number, typos corrected. * doc/Makefile: Simpler index generation 2002-02-04 Jan-Ake Larsson * preview-latex.texi: Simplify to only one section for keys and lisp function sections. Also only one Index. 2002-02-01 David Kastrup * PROBLEMS: Tell about x-symbol 4.0h/beta working successfully with preview-latex. 2002-02-01 Alan Shutko * configure.in: Corrected error message for 8-bit test. 2002-01-30 Alan Shutko * configure.in: Added diversion at the beginning to allow us to save LANG and LC_CTYPE for the 8-bit test. Also added test to see if LaTeX is 8-bt clean. 2002-01-24 Jan-Ake Larsson * preview-latex.spec: Initial version. On the 0.5.8.2 release. 2002-01-22 David Kastrup * preview.el (LaTeX-preview-setup): quote created directory name in %m fields. 2002-01-18 David Kastrup * preview.dtx (subsection{The internals}): Try catering for output routine changes. 2002-01-18 Jan-Ake Larsson * preview.el (preview-make-preamble): Simplified the code by sorting TeX-expand-list better. 2002-01-18 David Kastrup * RELEASE: Document a few changes. * doc/preview-latex.texi: document preview-at-point * preview.el (preview-next-border): Doc change. (preview-at-point): renamed from preview-dwim. (LaTeX-preview-setup): use preview-at-point. (LaTeX-preview-setup): menu change. (preview-document-pt): Use TeX-style-list instead of TeX-active-styles so that AucTeX may parse if not yet done. (before-revert-hook): clearout previews on revert. 2002-01-17 Jan-Ake Larsson * preview.el (preview-default-preamble): Added default preamble for use when a document not configured for preview-latex is previewed in AUC TeX. * preview-latex.texi (section Misplaced previews): Info on \emph and \PreviewMacro*. 2001-12-05 Jan-Ake Larsson * preview-latex.texi: Added new section: User-level lisp functions * install.texi: Layout improvements * doc/Makefile: Typo and dependencies corrected 2001-12-04 Jan-Ake Larsson * doc/Makefile: Added index generation for DVI docs 2001-12-03 Jan-Ake Larsson * preview-latex.texi: Keymap documentation and general text on emacs interface added * readme.texi, install.texi: Layout changes 2001-12-03 David Kastrup * preview.el (preview-clearout): add optional argument keep-dir. (preview-place-preview): Don't clearout previews from current run. This makes preview-latex keep multiple previews in command arguments instead of just keeping the last such one. 2001-11-30 David Kastrup * preview.dtx (section{Provided Commands}): Add descriptions of new commands \PreviewMacro* and \PreviewEnvironment*. (subsection{The internals}): New internal \pr@protect. (subsection{Preview attaching commands}): Implement the new `*'-forms. (subsection{Preview attaching commands}): Also treat \end{env} in \PreviewEnvironment*. 2001-11-30 Jan-Ake Larsson * preview-latex.texi, install.texi: Autoload the package rather than require it. 2001-11-30 David Kastrup * prv-emacs.el (preview-register-change): widen before getting substring in order to avoid error when narrowed. (preview-check-changes): Same here. (preview-handle-insert-in-front): Changed DOC string. (preview-handle-insert-behind): same. (preview-handle-modification): same. 2001-11-29 Jan-Åke Larsson * doc/preview-latex.texi: Created first draft * doc/readme.texi: Created first draft * doc/readme.texi: Created first draft * doc/copying.texi: Created * doc/Makefile: Created layout. Now for autoconf, Alan? 2001-11-28 Alan Shutko * INSTALL (--with-tex-site): Rename --with-auctex. * aclocal.m4 (AC_CHECK_AUCTEX): Try to fix things so that it looks for tex-site, only tex-site, and adds the location of tex-site into the load-path. (AC_CHECK_REQUIRE): New. (AC_CHECK_AUCTEX): Change name of --with-auctex to --with-tex-site. 2001-11-12 Alan Shutko * Makefile.in (lispdir): Remove /preview because @lispdir@ now includes it. * aclocal.m4 (AC_PATH_LISPDIR): Modify it so it prints out that lisp files are going in $lispdir/preview. 2001-11-20 David Kastrup * README-preview: adjust instructions because preview.ins will be available on CTAN already. * prv-emacs.el (preview-make-clickable): consult `preview-button-1' and `preview-button-2' at run-time. (preview-overlay): Need insert-behind-hooks too in case someone uses `insert-before-markers' at end of previews. (preview-change-list): New variable. (preview-register-change): New function. (preview-check-changes): New function. All of this stuff is to make sure we open/disable overlays only if permanent changes occur inside. (preview-handle-insert-in-front): some changes for new behaviour. (preview-handle-insert-behind): New function. (preview-move-point): Call `preview-check-changes' after commands. (preview-gs-color-value): checkdoc-compatible comment. * preview.el: Change installation comments 2001-11-15 David Kastrup * preview.dtx (section{Provided Commands}): Correct documentation names for \PreviewEnvironment and \PreviewSnarfEnvironment * prv-emacs.el (preview-inherited-face-attribute): Add document string, simplify some tests. * preview.el: Add autoload magic comments. (preview-compatibility-macros): avoid byte compiler warning. 2001-11-13 David Kastrup * PROBLEMS: Add patch for mouse-drag.el * INSTALL: add autoload instructions for fastest Emacs startup. 2001-11-12 David Kastrup * preview.el (preview-gs-restart): Use push. (preview-clearout-buffer): New function. Use in kill-buffer-hook. (kill-emacs-hook): add cleanout of temp directories when leaving Emacs. (preview-make-options): cosmetics (LaTeX-preview-setup): add keybindings for clearing buffer (preview-clean-subdir): cosmetic changes. (preview-clean-topdir): new function. (preview-create-subdirectory): use it. (preview-report-bug): report preview-dvips-command. 2001-11-11 David Kastrup * Release 0.5.8.2 2001-11-11 Alan Shutko * aclocal.m4 (AC_EMACS_CHECK_LIB_WITH_LIB): varient of AC_EMACS_CHECK_LIB which first requires a prereq lib. (AC_CHECK_AUCTEX): Use AC_EMACS_CHECK_LIB_WITH_LIB to prereq tex-site. * Makefile.in (use-hint): Get line wrapping right. * configure.in (--with-texmf): Applied patch from Hans Fredrik Nordhaug making --with-texmf obey TDS. 2001-11-11 David Kastrup * prv-emacs.el (preview-transparent-border): Change definition to numeric/nil, set default to 3pt. (preview-create-icon): adapt heuristic-mask accordingly (preview-ps-image): same here (preview-gs-get-colors): use new definition of preview-transparent-border, use PostScript code not subject to anti-aliasing effects. (preview-transparent-border): Change default to take into account that we previously got only half of requested width. (preview-gs-get-colors): generate only necessary tokens. Disable stroke adjustment in order to get more even borders. 2001-11-10 David Kastrup * preview.dtx (subsection{The internals}): Make reassignment of \@tempboxa that lead to missing section headers local. Interesting bug. 2001-11-09 David Kastrup * RELEASE: initial stab at release notes. * preview.el (preview-back-command): Make token backer somewhat more robust. (preview-analyze-error): Don't bomb out if no token matches. * README-preview: first draft. * prv-emacs.el (preview-int-bb): moved from preview.el * preview.el (preview-preserve-indentation): New option, on per default. Switch off for old behaviour. (preview-extract-bb): heed preview-preserve-indentation by faking the bounding box left. (preview-int-bb): move to prv-emacs.el * preview.dtx (subsection{The internals}): Try killing off indents in order to get good horizontal positioning of preview. * preview.el (preview-start-dvips): fix bug WRT free variable `buffer'. * prv-emacs.el (preview-transparent-color): change default for a new default transparency scheme. (preview-get-heuristic-mask): bug fix for specified color (preview-create-icon): adjust for new policy (preview-ps-image): same here (preview-transparent-border): new option (preview-gs-get-colors): heed this 2001-11-08 David Kastrup * PROBLEMS: Recommend customizing new variable preview-dvips-command for DviPS problems. Add sections about Windows and XEmacs. Add section about LaTeX/language environment problem. Add section about flyspell.el including patch. 2001-11-07 David Kastrup * preview.el (preview-gs): and other groups: set :prefix in defgroup (preview-get-geometry): Oops, make it work if preview-scale-function is a constant instead of a function. 2001-11-06 Alan Shutko * aclocal.m4 (AC_CHECK_AUCTEX): Revert the previous change, since it was horribly broken, and fix --with-auctex, so that it doesn't do the check if --with-auctex was specified. 2001-11-06 Alan Shutko * aclocal.m4 (AC_CHECK_AUCTEX): Try looking for tex-site instead of tex-buf... this may help since we're sure it's in load-path, but I'm afraid that the contents of tex-site may not be standard enough across installations. 2001-11-06 David Kastrup * preview.el (preview-image-creators): Add preview-eps-open function for calling dvips conversion. (preview-eps-open): Resume half-hearted support of postscript image type. Does anybody use this, after all? If so, let him run DviPS in background if he so desires... * preview.dtx (subsection{The internals}): add \leavevmode to make things like \paragraph flush their \everypar tokens. Perhaps not the right thing to do, let's wait for error reports about that one. * preview.el: require 'tex-site when compiling (preview-gs-file): new local variable (preview-gs-sentinel): cater for "Compilation" flag in mode-line (preview-gs-restart): changes in process setup (preview-gs-close): Same here (preview-gs-open): Same here (preview-gs-dvips-sentinel): New function (preview-gs-place): postpone Bounding Box extraction. (preview-gs-flag-error): cosmetic changes (preview-gs-transact): extract bounding box (preview-LaTeX-command): Remove dvips call from command (preview-dvips-command): New option for dvips call (preview-parse-messages): add message while parsing (preview-parse-messages): remove call to open, this calls parsing instead. (preview-start-dvips): New function. (preview-TeX-inline-sentinel): Changed to new process model Note: this breaks 'postscript image support. To be fixed. 2001-11-03 Alan Shutko * aclocal.m4 (AC_CHECK_PROG_REQUIRED,AC_CHECK_PROGS_REQUIRED,AC_PATH_PROG_REQUIRED): New functions to check programs, and abort with a message if not found. (AC_EMACS_CHECK_LIB): Function stolen from Gnus to check whether an elisp library exists. (AC_CHECK_AUCTEX): Check if AUC-TeX is in a normal emacs load path, and allow --with-auctex switch to specify it. SF Bug #477262, #477260. * Makefile.in (use-hint, install-hint): New hints. SF Bug #477282. (all, install): Use the above hints. * configure.in: Changed all AC_CHECK_PROG(S)/AC_PATH_PROG(S) to new AC_*_REQUIRED, which abort and print a message if something isn't found. Added AC_CHECK_AUCTEX. Add note at end of configure to run "make". SF Bug #469741 (partial). Removed --with-auctex since that's now done in AC_CHECK_AUCTEX. 2001-10-30 David Kastrup * prv-emacs.el (preview-make-clickable): Use 'keymap instead of 'local-map, obliterating the need to inherit from LaTeX-mode-map. (preview-toggle): Same here, and cater for null-length overlays. (preview-mark-point): Jury's still out on that one. * preview.el (preview-gs-sentinel): Don't hickup if buffer got killed. (preview-gs-restart): Don't mind exiting Emacs if GhostScript still running. (preview-snippet): Buffer-locality not needed because parsing occurs fully blocking. (preview-snippet-start): Same (preview-analyze-error): Somewhat saner behaviour if the error message parsing fails due to macro arguments or other. This cannot be the final verdict. * TODO: add a few items. * prv-emacs.el (preview-transparent-color): Make transparency customizable. Note that due to a bug everything except "None" is treated the same as "Autodetect" in 21.1. Fixed in CVS. (preview-get-heuristic-mask): Function for calculating mask to use from above. (preview-create-icon): use preview-get-heuristic-mask (preview-ps-image): same. (preview-mark-point): move point out of previews before starting next command for consistent implementation of intangibility. Not sure whether this is actually a good idea, though. (preview-inherited-face-attribute): New function (preview-gs-get-colors): New function, replaces preview-get-colors * preview.el (preview-gs): New customization group hierarchy (preview-appearance): same (preview-latex): same (preview-gs-colors): change string to single tokens. (preview-gs-transact): construct string from same (preview-scale-from-face): consult preview-reference-face instead of default. Use new function preview-inherited-face-attribute for this. (preview-face): add different colours for dark backgrounds. change default background to beige, probably less likely to match users default background. (preview-error-face): change preview-error-face for non-color terms. (preview-reference-face): used for size and color determination of previews. (preview-TeX-inline-sentinel): tell user while we are parsing 2001-10-27 David Kastrup * PROBLEMS: revert AucTeX patch to that before we tried our luck with intangibility. Some changes in formatting. Add comment about -Pwww font problems. 2001-10-26 David Kastrup * Release 0.5.8.1 * preview.el (preview-mouse-open-eps): fix a typo in help message. (preview-analyze-error): Remove traces of inhibit-point-motion madness. If search for (concat string after-string) fails, try again just with string in order to support uses of Auc-TeX's original interface. * prv-emacs.el (preview-toggle): Don't reactivate disabled overlays (could happen in isearches ended by an editing operation). (preview-move-point): While we are simulating point-adjustment, heed disable-point-adjustment in order to make isearch (and probably other utilities) Do The Right Thing (TM). Works beatifully. * preview.el (preview-LaTeX-command): new customization variable. (LaTeX-preview-setup): use it. 2001-10-25 David Kastrup * We now cater for people with non-black-on-white setup. * prv-emacs.el (preview-get-colors): gets colors from default font. * preview.el (preview-gs-colors): new variable for GhostScript color setup string. (preview-gs-transact): pass color setup. (preview-get-geometry): pass color setup * prv-emacs.el (preview-ps-image): Don't expect white background in heuristic-mask. * preview.el (preview-next-border): Can't get everything right first try now, can I? * prv-emacs.el: replace preview-intangible by preview-state. (preview-handle-insert-in-front): Same here. (preview-toggle): Same here. (preview-toggle): Let preview-toggle handle setting of category. That way category is not set/used outside of prv-emacs.el. (preview-move-point): replace preview-intangible by preview-state. * preview.el (preview-dwim): replaces preview-again. Excruciatingly useful function bound to C-c C-p C-p. Will do just what you want whenever you call it. (preview-next-border): Helper-function for that (preview-disable): set property 'preview-state (preview-clearout): use 'preview-state instead of 'category (preview-place-preview): same here. (LaTeX-preview-setup): use preview-dwim in keyboard bindings 2001-10-23 David Kastrup * Release 0.5.8 * PROBLEMS (AucTeX): remove patch for intangibility problem. * preview.el (preview-regenerate): use preview-region (preview-region): New user function. (preview-environment): New user function. (preview-section): New user function. (preview-again): New user function. (LaTeX-preview-setup): Add menus and keyboard shortcuts for new user functions. (preview-version): Don't recalculate version in compiled form. * prv-emacs.el: inherit from LaTeX-mode-map in order to have normal commands work when cursor is on preview. (preview-make-clickable): same. (preview-overlay): don't make intangible, but preview-intangible. In short, we now fake intangibility until Emacs will keep the cursor out of overlay images like it does out of text property images. (preview-handle-insert-in-front): Same here. (preview-toggle): Same here. Load pre-command-hook and post-command-hook for fake intangibility. (preview-marker): Added for fake intangibility. (preview-mark-point): pre-command-hook function for fake intangibility. (preview-move-point): post-command-hook function for fakr intangibility. 2001-10-22 David Kastrup * README: Change info for Emacs release 21.1 * PROBLEMS: Change info for Emacs release 21.1 * INSTALL: Change info for Emacs release 21.1 2001-10-19 David Kastrup * preview.dtx (subsection{The internals}): Heed \AtBeginDvi sequences. Small doc/formatting changes. 2001-10-17 David Kastrup * preview.dtx: Get the version headers right (hopefully). 2001-10-16 David Kastrup * preview.dtx: Make a stab at an automated version header (subsection{Preview attaching commands}): Move the badness stuff to the auctex option. 2001-10-15 David Kastrup * prv-emacs.el: insert-in-front back. Discovered all-saving undo-in-progress. (preview-handle-insert-in-front): pseudo-advance if not in undo while iconized. (preview-handle-modification): fitting behaviour for that. commit suicide on changes that leave the range empty, disable else. * preview.el (preview-place-preview): overlays get auto-advancing front. (preview-analyze-error): intangible. inhibit-point-motion-hooks. what a mess. Made parsing saner in the presence of such stuff. (preview-place-preview): overlays get non-auto-advancing front back again, since we rather pseudo-advance in preview-handle-insert-in-front. * prv-emacs.el: don't handle insert-in-front: impossible to do consistently. Instead make beginning ofg overlays auto-advance always. (preview-handle-insert-in-front): removed (preview-handle-modification): removed insert-in-front-hooks 2001-10-13 David Kastrup * prv-xemacs.el: This is completely and utterly broken and incomplete. The recent changes from Simon have not yet been incorporated, some of the stuff still has old semantics and so forth and so on. One needs to go through prv-emacs.el and make sure that everything in there has an equivalent here. * prv-emacs.el: See preview.el. * preview.el: This is the big one. Changes too numerous to mention. Lots of modularization for making XEmacs support possible. Changed semantics, the works. See PROBLEMS file for new AucTeX compatibility annoyances. * PROBLEMS (AucTeX versions from 11.01 up to version 11.05): Patch added. Patch for earlier versions revised. 2001-10-12 David Kastrup * preview.dtx (subsection{Preview attaching commands}): set \hbadness and \vbadness to infinity in order to avoid parse-unfriendly error messages. Would one want to see overfull hbox rules in preview output? 2001-10-12 Alan Shutko * Makefile.in (LISP_OBJS): New var. ($(LISP_OBJS)): Got rid of elc target and used dependencies, so we don't recompile every make. 2001-10-12 David Kastrup * configure.in: Try fixing the emacs flavor detection. And revert back to Alan's version. 2001-10-12 Alan Shutko * configure.in: Change AC_PATH_PROG of emacs to AC_CHECK_PROG, as it was breaking --with-xemacs. 2001-10-12 David Kastrup * Makefile.in: Switch order of LISP_SOURCES in order to avoid compiling preview.el with older versions of prv-emacs.elc or prv-xemacs.elc 2001-10-11 Alan Shutko * Makefile.in (ELCC): Bug 469742: Include . in load path. * configure.in: Added --with-xemacs option. Added AC_XEMACS_P to determine if we're using xemacs. Added PLAT_LISP substitution with the flavor-specific lisp file. * Makefile.in (LISP_SOURCES): New variable, listing files needing byte-compilation. (all): Depend on "elc" target to capture all the emacs files. (install-el): Install more lisp files. (elc): New target, compile all relevant files. 2001-10-11 David Kastrup * preview.dtx (subsection{The internals}): Introduce count \pr@snippet so as not to get confused by \include. (subsection{Preview attaching commands}): Make auctex option use this counter. 2001-10-10 David Kastrup * circ.tex: Demonstrate new `sections' option. * preview.el (preview-default-option-list): Cater for new `sections' option to preview.sty. * preview.dtx (section{Provided Commands}): New argument syntax as in \PreviewMacro[{*[][]{}}]{\includegraphics}. (subsection{Parsing commands}): introduce \pr@endparse and support new syntax. (subsection{Preview attaching commands}): same here. (section{Package options}): explain new `sections' option. (subsection{Selection options}): implement `sections' option. 2001-10-09 David Kastrup * preview.el (preview-mouse-open-error): Don't have multiple "*Preview-GhostScript-Error*" buffers gather, reuse single one. (LaTeX-preview-setup): Enter us into "Command" menu. 2001-10-08 David Kastrup * preview.dtx (subsection{Preview attaching commands}): Change output routine to flush out floats. Correct \CheckSum. * preview.el: Use `error' identifier only where really needed. (preview-gs-behead-outstanding): see above. (preview-gs-sentinel): see above. (preview-gs-flag-error): see above. Still require (defvar error) because of Auc-TeX (TeX-active-tempdir): Move definition. (preview-gs-place, preview-eps-place) (preview-active-string, preview-make-filename) (preview-place-preview, preview-parse-messages) (preview-analyze-error): remove `tempdir' argument (preview-get-geometry): some change in semantics (preview-TeX-inline-sentinel): call `preview-parse-messages' with process buffer active instead of source. (TeX-inline-preview): adapt to changed `preview-get-geometry' 2001-10-07 David Kastrup * preview.el (preview-get-geometry): comment clarification to satisfy checkdoc. (preview-version): added. (preview-report-bug): use `preview-version' instead of current ugliness. * .cvsignore (Module): Add a few more entries. * preview.el: Don't defvar AucTeX internal TeX-auto-file, make auto-size detection of previews from parsed styles work. (preview-document-pt): Use `TeX-active-styles' instead of bad AucTeX internal `TeX-auto-file'. (preview-get-geometry): Different arguments and semantics. Make it work. (TeX-inline-preview): Call changed `preview-get-geometry'. * prv-xemacs.el: add macros line-beginning-position and line-end-position. * preview.el: Change manner of loading prv-xemacs (preview-analyze-error): Use line-end-position again. 2001-10-05 David Kastrup * preview.dtx: Include \ProvidesPackage and \CheckSum (subsection{Preview attaching commands}): put \unskip in \end{preview} where it will make a difference. (section{Various drivers}): \askforoverwritefalse only generated for make-intended installer. * prv-xemacs.el: require overlay preview-compatibility-macros added (find-image): some changes of compilation (defimage): define using preview-defmacro (make-temp-file): ignore temporary-filename: not needed in here. 2001-10-04 David Kastrup * preview.el: first stab at XEmacs compatibility. * prv-xemacs.el: first stab at XEmacs compatibility. * circ.tex (section{Die gerade Linie}): built in two deliberate bugs for testing. * preview.el (preview-gs-behead-outstanding): use `preview-gs-flag-error'. (preview-mouse-open-error, preview-mouse-open-eps): factored out stuff from `preview-gs-flag-error'. (preview-gs-flag-error): replaces `preview-gs-error-string' (preview-gs-transact): Use `preview-gs-flag-error'. * PROBLEMS: be more specific about GhostScript errors 2001-10-03 David Kastrup * preview.el (preview-delete-file): remove dont-register (preview-make-filename): remove dont-register (preview-regenerate): switch to clicked buffer if not there. (preview-gs-error-string): try to avoid strange behaviour from having `let' restore potential buffer-local-variables to the wrong buffer. Make some functions (interactive "@"). 2001-10-02 David Kastrup * release 0.5 * PROBLEMS: Completed summary of patches and made an outline-mode file. * INSTALL: Gearing up for a release. Last modifications and clarifications. * preview.el: Lots of cleanups for getting to release quality. Made good error reporting with things masquerading as actual GhostScript sessions, including command line, prompt, messages, the works. Removed preview-gs-urgent which actually has never been anything but the front of preview-gs-queue. * TODO: Some more wishes. * preview.el: Make active error display. * preview.el: Changed the process line appearance somewhat, added a bit of robustness when error line parsing fails, beautified appearance of opened previews (icon gets its own line only when previewed area starts on a line). 2001-10-01 David Kastrup * TODO: Added a few items. * README: Added CVS instructions and a few other odds and ends. * bootstrap.ins: Remove docstrip configuration related messages. * INSTALL: Some more massaging. * PROBLEMS: Initial checkin, preparation for first tarball release. * ChangeLog: Initial entry of ChangeLog. 2001-10-01 alanshutko * aclocal.m4: Instead of /dev/null, throw stuff to FD 5, where it might do some good. 2001-09-30 David Kastrup * README: Mentioned M-x preview-report-bug. * README: Removed redundancies with INSTALL, cleared some stuff up. * preview.el: Obliterated transaction queues. They did not help that much, and are not implemented in earlier versions of XEmacs. More trouble than they were worth, anyway. * preview.el: Define a few more image types. 2001-09-29 David Kastrup * INSTALL: Some general information and stuff. * Makefile.in: Use latex '\nonstopmode \input ...' instead of -interaction nonstopmode Fixed string comparison in Emacs. * aclocal.m4: Remove trailing slashes after path discovery, do some more things with sed instead of various other utilities. One change in calling LaTeX to make it work with older or non-web2c binaries. * preview.dtx: Support those misguided people using $$ in their LaTeX documents. I am not sure this is a good idea, but it will probably save us bug reports. * TODO: Removed a few done points. * preview.el: Made parsing good. Now the entire TeX error context gets used. In most cases, regenerating previews should work now, as well as region previewing. 2001-09-28 alanshutko * INSTALL: New file 2001-09-27 alanshutko * Makefile.in (preview.elc): Patch from Simon Josefsson to fix build with non-standard AUCTeX location. 2001-09-27 David Kastrup * preview.el: Made error and abort messages appear in the faulty images. Reworked file handling somewhat so that in the case of errors all involved files can stay until the image overlay gets deleted. * preview.el: Added bug reporting instructions and helper function for reports to preview-latex-bugs@lists.sourceforge.net. 2001-09-26 alanshutko * Makefile.in: (install-texmf) Install the dvi file * Makefile.in, aclocal.m4, configure.in: * aclocal.m4: Removed some dross stolen from Gnus, since it is unused. Fixed up AC_PATH_TEXMFDIR to try to find a dir to install the docs and to export texmfdir. * configure.in: --with-auctex=DIR, new option * Makefile.in: Changed rules for byte-compilation to allow setting AUCTEXDIR. (install-texmf) Only texhash the directory we installed into 2001-09-26 David Kastrup * preview.el: Oodles of documentation and a much faster bounding box extractor not relying on grep. Some small internal changes. * preview.el: Background rendering now working without errors, even with crummy default tq.el as currently shipped with Emacs (and XEmacs?). 2001-09-25 David Kastrup * preview.el: Some initial stab at trying to make do without tq.el. Figured out a way to make do with tq's ugly semantics, however. Just keep this somewhere. Only half done. 2001-09-24 alanshutko * Makefile.in: Makefile.in: clean and distclean targets from Simon Josefsson 2001-09-24 David Kastrup * preview.el: Sanitized temporary file handling by introducing a reference count scheme. Temporary directories should now get deleted as they become empty. We still do a general cleanup (in case a previous EMacs session crashed) on first accessing any preview subdirectory, which means bad luck when you are starting multiple instances of Emacs for previewing purposes. 2001-09-24 alanshutko * Makefile.in, configure.in: Run texhash after tex installation. Also set full pathnames for programs, since the path of the installing user may not match the compiling user. * Makefile.in, aclocal.m4: First cut at previewdocdir 2001-09-24 David Kastrup * preview.el: PNG rendering now basically works and is the default. Errors during transaction queue processing insert their messages into the TeX background buffer; so do unexpected GhostScript messages. Good for debugging. 2001-09-22 David Kastrup * preview.el: Forgot entering into queue and a condition. Still does not work with png. * preview.dtx: Fixed \begin{table} bug. * preview.el: Several changes from several people. The big one: support of other image formats. PNG. Unfortunately, not yet functional. Checked in nevertheless since the old postscript rendering is on by default and seems to work still. * preview.dtx: Forgotten macrocode, empty line. 2001-09-21 alanshutko * Makefile.in, aclocal.m4, configure.in: 2001-09-21 Alan Shutko * aclocal.m4: Correct handling of docstrip configuration for non-TDS setup. Also, quote the $ in awk. * Makefile.in (TEX): New variable. (all): preview-mk.ins instead of preview.ins (preview-mk.ins, preview.sty prauctex.def preview.drv): Use $TEX. * configure.in: Added --with-preview-dir option. Check for tex executable. * configure.in: Clarified --with-texmf help. * README: Updated build directions for autoconf build. * .cvsignore, Makefile, Makefile.in, aclocal.m4, configure.in, install-sh: Makefile.in, aclocal.m4, configure.in: Create autoconf versions of Makefile. Much of aclocal.m4 was stolen from Gnus, though the AC_PATH_TEXMF is new. Added install-sh for use by the makefile if a compatible install binary is not found. 2001-09-20 David Kastrup * Makefile: First sketch at installation via make instead of docstrip. * bootstrap.ins: No error if no docstrip.cfg. * bootstrap.ins: First sketch at bootstrap install file for extracting main installer and giving directory info. * preview.dtx: Added missing macrocode environment (David Love). Leave directory off installer when installing via make. 2001-09-19 David Kastrup * README: Checked in antialiasing suggestions from Alan Shutko. 2001-09-16 David Kastrup * preview.el: Still learning about customize-variable... 2001-09-15 David Kastrup * preview.el: Parse HiRes Bounding Boxes, remove accidental paste of definition of shell-command-to-string, add support for graphical preview of files not prepared for it. * preview.dtx: Another spurious space. * preview.dtx: AucTeX option delays \nonstopmode. Spurious space in \pr@endbox removed. * README: Add instructions for anti-aliasing. * preview.dtx, README: Corrected Email address. 2001-09-14 David Kastrup * README: Added some more descriptive stuff and my Email address. * preview.el: Added intelligent determination of EPS scale. Changed Bounding Box determination to use a HiResBoundingBox if present, and work without a shell. Added some customization. 2001-09-13 David Kastrup * .cvsignore: Ignore generated files. * preview.dtx: Deleted no longer applicable comment. Fixed bug in connection with \item. * COPYING: Copy of GPL version 2 included. * README: Typo. * README: Clarified comment about how to improve EPS support in Emacs. * README: Removed link to pretest Emacs on request from Gerd Möllmann. 2001-09-12 David Kastrup * circ.tex: New file. * circ.tex: This is the initial checkin of preview-latex. Enjoy. * Makefile, README, TODO, preview.dtx: New file. * Makefile, README, TODO, preview.dtx: This is the initial checkin of preview-latex. Enjoy. * preview.el: New file. * preview.el: This is the initial checkin of preview-latex. Enjoy. auctex-11.91/ChangeLog.1000066400000000000000000026104151313533625700147500ustar00rootroot000000000000002017-07-24 Mosè Giordano * Version 11.91 released. 2017-07-24 Mosè Giordano Prepare for upcoming release 2017-07-22 Arash Esbati Update key=val options to minted package v2.5 * style/minted.el (LaTeX-minted-key-val-options): Update options to package version v2.5 from 2017/07/19. 2017-07-21 Ikumi Keita Conform to elisp coding conventions. * latex.el (LaTeX-section-heading, LaTeX-environment) (TeX-arg-document, LaTeX-arg-usepackage-read-packages-with-options) (TeX-arg-bibstyle, TeX-arg-bibliography, TeX-arg-verb) (LaTeX-fill-region): Taylor minibuffer prompt string. Add or taylor "done" messages. * tex-buf.el (TeX-command-query, TeX-printer-query): Ditto. * tex.el (TeX-master-file-ask, TeX-master-file, TeX-update-style) (TeX-auto-list-information, TeX-auto-generate): Ditto. 2017-07-21 Ikumi Keita * doc/changes.texi: Mention changes related to Japanese TeX. 2017-07-03 Arash Esbati * doc/auctex.texi (European): Add babel languages which load english.el. 2017-07-03 Arash Esbati Check and set `TeX-quote-language' if necessary * style/english.el ("english"): Reset `TeX-quote-language' to nil if changed by other babel language options. 2017-07-03 Arash Esbati Add new style/australian.el and style/newzealand.el * Makefile.in (STYLESRC): Add new styles. * style/australian.el: * style/newzealand.el: New files. 2017-07-02 Arash Esbati Add new style/canadian.el * Makefile.in (STYLESRC): Add new style. * style/canadian.el: New file. 2017-07-01 Arash Esbati Add new style/moodle.el * Makefile.in (STYLESRC): Add new style. * style/moodle.el: New file. 2017-07-01 Arash Esbati * latex.el (LaTeX-babel-hyphen-language-alist): Fix typo in docstring. 2017-06-17 Antoine Levitt Add support for xreader viewer * tex.el (TeX-evince-dbus-p): (TeX-evince-sync-view-1): (TeX-view-program-select-evince): (TeX-raise-frame-function): (TeX-source-correlate-mode): Adapt functions and docstrings to xreader. (TeX-xreader-sync-view): New function. (TeX-view-program-list-builtin): Add xreader. 2017-06-14 Arash Esbati Update key=value options to graphicx package version 1.1a * style/graphicx.el (LaTeX-graphicx-key-val-options): Add new key=value options. (LaTeX-arg-graphicx-includegraphics-key-val): Support "pagebox" key with pdfTeX or LuaTeX. 2017-06-13 Arash Esbati * style/beamer.el ("beamer"): Query for optional argument after \pause. 2017-06-13 Mosè Giordano Suggest to rerun LaTeX if xsim properties changed * tex-buf.el (TeX-LaTeX-sentinel): Catch xsim warning suggesting to rerun LaTeX and set LaTeX and next default command. 2017-06-13 Mosè Giordano Catch expl3 warnings * tex-buf.el (LaTeX-warnings-regexp): Adapt regexp to the style of expl3 warnings. * tests/tex/error-parsing.el (TeX-error-parsing-expl3-warnings): New test for expl3 warnings. 2017-06-02 Ikumi Keita Correct actions on region file in included file not placed in master dir * tex-buf.el (TeX-command-region): Call `TeX-region-file' with nil `nondirectory' argument. Fix a typo in doc string. (TeX-command-default): Use `(TeX-region-file)' instead of `TeX-region' for comparison with the given argument. 2017-05-30 Ikumi Keita Imporve fix for Bug#26694 * tex-buf.el (TeX-command): Update point in region file if the command is "View". (TeX-view): (TeX-region-create): Pass the above job to `TeX-command'. (TeX-region-update-point): Move point according to the column in the original buffer. Do nothing when `TeX-source-correlate-mode' is disabled. Use `TeX-current-offset' instead of `TeX-line-number-at-pos' in case narrowing is in effect in the original buffer. * preview.el.in (preview-at-point): Revert previous commit in accord with the changes above. * tex.el (TeX-evince-sync-view-1): Use `TeX-current-offset' instead of `TeX-line-number-at-pos' in case narrowing is in effect in the original buffer. Add FIXME comment about using `current-column'. (TeX-synctex-output-page-1): Ditto. Arrange regexp to pick up page number more correctly. (TeX-view-program-list-builtin): Remove spurious quotation around %b in SumatraPDF entry. 2017-05-29 Mosè Giordano * tests/tex/compilation-log.txt: * tests/tex/error-parsing.el: Add test for error starting with exclamation mark. 2017-05-26 Ikumi Keita Resolve preview-latex incompatibility with Japanese TeX (Bug#25322) * preview.el.in (preview-error-quote): Work consistently with decoded text. The idea of "encoding entire string beforehand and decoding it at the last stage" was used previously, but that failed with `japanese-shift-jis' coding system containing bytes which happen to coincide with regexp meta characters. (preview--decode-^^ab): (preview--convert-^^ab): New functions. (TeX-inline-preview-internal): Record the process coding system for decode assigned already so that `preview-error-quote' can decode the given text correctly afterward. To achive that, change the role of `preview-coding-system' together with the changes to `preview-error-quote'. Give back the command options provided in `(TeX-engine-alist)' to latex command when preamble caching is enabled. (preview-coding-system): Modify doc string according to the changes above to `preview-error-quote' and `TeX-inline-preview-internal'. * tex-buf.el (TeX-adjust-process-coding-system): New function. Adjust the process coding system for asynchronous process launched within AUCTeX. (TeX-after-start-process-function): Change default value to `TeX-adjust-process-coding-system'. * tex-jp.el (japanese-TeX-set-process-coding-system): Specify end of line format on the coding systems assigned to process. (): Don't set `japanese-TeX-set-process-coding-system' to `TeX-after-start-process-function'. It is now called within `TeX-adjust-process-coding-system'. * prv-xemacs.el (preview-buffer-recoding-alist): Fix docstring. (coding-system-change-eol-conversion): Add advice because XEmacs 21.4 mule-ucs fails to define `utf-8' coding system to respond properly to this function. (preview-ps-quote-filename): Add advice so that this function is not confused by backslashes as path separator in the return value of XEmacs function. * tests/japanese/preview-latex.el: * tests/japanese/preview-error-test.tex: * tests/japanese/preview-error-test2.tex: * tests/japanese/prv-dif-code.tex: New files for regression test. 2017-05-21 Mosè Giordano Fix indentation in ConTeXt mode after indented optional argument * context.el (ConTeXt-find-indent): Fix indentation. Requested by Henri Menke. * tests/context/context-test.el: * tests/context/context-indentation-in.tex: * tests/context/context-indentation-out.tex: New test files. 2017-05-17 Ikumi Keita Don't discard process output with `TeX-run-silent' * tex-buf.el (TeX-run-silent): Associate the process to the buffer "*TeX silent*". 2017-05-15 Ikumi Keita * tex.el (TeX-command-list): Fix typo in help string (mendex -> upmendex) 2017-05-12 Arash Esbati * latex.el (LaTeX-env-label-as-keyval): Use `buffer-substring-no-properties'. 2017-05-11 Arash Esbati * doc/changes.texi: Document recent changes. 2017-05-10 Arash Esbati * tests/latex/fontification-general.tex: New file. 2017-05-10 Arash Esbati Exclude arguments to math environments from fontification * font-latex.el (font-latex-match-math-envII) (font-latex-extend-region-backwards-math-envII): Match and exclude optional and mandatory argument(s) to math environments from fontification. 2017-05-08 Arash Esbati Improve further the exclusion of reserved characters * font-latex.el (font-latex-match-simple-exclude-list): New variable. (font-latex-match-simple-command): Use `font-latex-match-simple-exclude-list'. Add check for docTeX mode in order to remove "_" from the list. 2017-05-06 Mosè Giordano Work around bug#26694 * preview.el.in (preview-at-point): Let-bind `TeX-source-correlate-mode' to nil. * tex-buf.el (TeX-region-create): Move point only when `TeX-source-correlate-mode' is non-nil. 2017-05-06 Arash Esbati * latex/preview.dtx: Adjust contact email address. 2017-05-04 Arash Esbati * tex-ispell.el: Move entries from style/empheq.el to this file. * latex/preview.dtx: Adjust modification date for CTAN. 2017-05-03 Arash Esbati Query for expl3 package options * style/expl3.el (LaTeX-expl3-package-options): New function to read package options from user. Add missing file footer. 2017-05-03 Arash Esbati Add new style/floatrow.el * Makefile.in (STYLESRC): Add new style. * style/floatrow.el: New file. 2017-05-02 Arash Esbati Use `ispell-tex-arg-end' on parsed elements * style/mdframed.el (LaTeX-mdframed-auto-cleanup, "mdframed"): Use correct function `ispell-tex-arg-end'. 2017-04-27 Arash Esbati Improve exclusion of reserved characters from command matches * font-latex.el (font-latex-match-simple-command): Skip matches starting with reserved characters. 2017-04-27 Arash Esbati Add support for plus sign in macro syntax specification list * font-latex.el (font-latex-match-command-with-arguments): Support plus sign besides asterisk in specification of macro syntax. 2017-04-27 Arash Esbati Update style/fontspec.el to package version 2.6a * style/fontspec.el (LaTeX-fontspec-font-features): Update variable to package version 2.6a. (LaTeX-fontspec-auto-cleanup): New function for parsing support for \newfontfamily and \newfontface macros. ("fontspec"): Add missing macros and environment. (LaTeX-fontspec-package-options): Update with new options. 2017-04-27 Arash Esbati Consider the return value of `assq-delete-all' * style/breqn.el (LaTeX-breqn-update-color-keys): * style/fvextra.el (LaTeX-fvextra-update-key-val): * style/mdframed.el (LaTeX-mdframed-update-style-key): * style/minted.el (LaTeX-minted-update-key-vals): * style/tcolorbox.el (LaTeX-tcolorbox-update-style-key): Use the return value of `assq-delete-all' rather than looking at the saved value of the temporary variable. 2017-04-27 Arash Esbati * latex.el (LaTeX-common-initialization): Add eminnershape macro. 2017-04-26 Arash Esbati * tex-ispell.el (TeX-ispell-skip-cmds-list): Add \addlinespace. 2017-04-25 Tassilo Horn Correctly exclude hypenation and thin spaces from command matches * font-latex.el (font-latex-match-simple-command): Skip matches starting with \- or \,. 2017-04-25 Arash Esbati Add LaTeX core command \oldstylenums * font-latex.el (font-latex-built-in-keyword-classes): Add \oldstylenums to "type-command" keyword class. * latex.el (LaTeX-common-initialization): Add \oldstylenums to LaTeX core commands. * style/textcomp.el ("textcomp"): Remove \oldstylenums from textcomp.el which is provided by LaTeX core. 2017-04-24 Arash Esbati Make preview.sty compatible with recent luatex * latex/preview.dtx: Check if file luatex85.sty is loadable and require the package (bug#25601). 2017-04-24 Arash Esbati Do not highlight control spaces with "\ " * font-latex.el (font-latex-match-simple-command): Add space to the list of characters to be ignored. 2017-04-23 Arash Esbati Adjust macros acc. to change in `LaTeX-paragraph-commands-regexp-make' * style/bicaption.el ("bicaption"): Add \bicaption, \bicaptionbox, \bisubcaption and \bisubcaptionbox to paragraph commands. * style/caption.el ("caption"): Add \captionbox and \captionof to paragraph commands. * style/subcaption.el ("subcaption"): Add \subcaption and \subcaptionbox to paragraph commands. 2017-04-23 Arash Esbati * style/exam.el ("exam"): Remove duplicate entries and backslash. 2017-04-23 Uwe Brauer Add the select environment and related macros to exam style. * style/exam.el ("exam"): Add the select environment and related macros. 2017-04-23 Tassilo Horn Fix comment environment highlighting * style/comment.el ("comment"): Don't set comment starter/ender but generic comment delimiters. 2017-04-21 Ikumi Keita Add test for my last commit * tests/japanese/error-parsing.el: New file. 2017-04-21 Mosè Giordano Do not highlight thin spaces with \, * font-latex.el (font-latex-match-simple-command): Add comma to the list of characters to be ignored. 2017-04-19 Mosè Giordano Fix parsing of LaTeX2e date formats * tex-buf.el (TeX-LaTeX-sentinel): Support ISO date format, now used by LaTeX2e. Reported by Uwe Siart. * tests/tex/error-parsing.el (TeX-LaTeX2e-date): Add a test for LaTeX2e date formats. 2017-04-19 Ikumi Keita Improve error handling for Japanese users * tex-buf.el (TeX-help-error): Use number based condition to detect whether the search over `TeX-error-description-list' comes to its last element. Comparison with a literal string breaks when tex-jp.el installs Japanese help messages into `TeX-error-description-list'. 2017-04-18 Ikumi Keita Deal with strange file name * tex-jp.el (): Increase `pos' in case the master file name happens to contain special %-sequence. 2017-04-17 Ikumi Keita Support upmendex * tex-jp.el (): Make "%(makeindex)" to expand to upmendex when upmendex is available and `TeX-engine' is supported by it. Add "%(dic)" expander for the dictionary option of (up)mendex. * tex.el (TeX-command-list): Add "upMendex" entry. Set 4th element to t so that user will get a chance to supply dictionary option to the command line string. 2017-04-17 Tassilo Horn Improve command highlighting to not be triggered by hyphenation Reported by François Patte. 2017-04-17 Tassilo Horn Add proper copyright header to some styles Add the required headers so that the ELPA build works again. 2017-04-15 Arash Esbati * doc/changes.texi: Update with recent changes. 2017-04-10 Arash Esbati * doc/auctex.texi (Selecting a Command): Document `TeX-ispell-verb-delimiters'. 2017-04-04 Ikumi Keita Fix `paragraph-start' and `paragraph-separate' * plain-tex.el (plain-TeX-common-initialization): Remove "^" from `paragraph-start' according to the doc string. Remove LaTeX display math delimiters "\[" and "\]" from `paragraph-start'. Add "item" and "itemitem" to `paragraph-start'. Change the regexp grouping to shy group in `paragraph-start' and `paragraph-separate'. * tex-info.el (TeX-texinfo-mode): Remove "^" from `paragraph-start' and `paragraph-separate'. 2017-04-03 Arash Esbati Update package options in style/amsmath.el * style/amsmath.el (LaTeX-amsmath-package-options): Update package options to v2.16a. 2017-04-01 Arash Esbati Append \b to regexp built from TeX control words * latex.el (LaTeX-paragraph-commands-regexp-make): Append \b to regexp built from TeX control words. Fix this report http://lists.gnu.org/archive/html/auctex/2017-03/msg00009.html * tests/latex/latex-filling-in.tex: * tests/latex/latex-filling-out.tex: * tests/latex/latex-test.el (LaTeX-filling): Extend test for addition in `LaTeX-paragraph-commands-regexp-make' in latex.el. 2017-03-31 Mosè Giordano Fix detection of bibliography files with dots in path * latex.el (LaTeX-auto-regexp-list): Remove dot from the list of excluded characters in addbibresource's regexp. * tests/latex/latex-test.el (LaTeX-addbibresource): New test for addbibresource. 2017-03-29 Ikumi Keita Don't alter standard value or saved value themselves of customize option * tex-jp.el (): Stop using `setcar' on the elements of `TeX-command-list'. This used to alter the standard value or saved value themselves of the customize option since `setcar' operates descructively on lists as Lisp objects. Instead create new list by `mapcar' and `append'. (): Deal with the case that `TeX-view-program-list-builtin' doesn't have an entry of "xdvi". Change the expected executable name to "%(xdvi)" as well. 2017-03-28 Arash Esbati Fix last improvement for skipping of inline verbatim macros * tex.el (TeX-ispell-tex-arg-verb-end): New function. * tex-ispell.el (TeX-ispell-verb-delimiters): Replace `TeX-ispell-verb-opening-delimiters' and `TeX-ispell-verb-closing-delimiters' with new customizable option `TeX-ispell-verb-delimiters'. (TeX-ispell-skip-setcar): Use new function `TeX-ispell-tex-arg-verb-end' with verbatim macros. 2017-03-27 Arash Esbati Improve skipping of inline verbatim macros * tex-ispell.el (TeX-ispell-verb-opening-delimiters) (TeX-ispell-verb-closing-delimiters): New customizable options. (TeX-ispell-skip-setcar): Skip inline verbatim macros from listings and fancyvrb package. Use new variables for minted package. 2017-03-27 Arash Esbati * tests/latex/fontification-verb-macros.tex: New file. 2017-03-27 Arash Esbati Improve fontification of verbatim macros in style/minted.el * style/minted.el (LaTeX-minted-auto-cleanup): Add key=val query and fontification support for parsed elements. (LaTeX-minted-add-syntactic-keywords-extra): New function. ("minted"): Use `LaTeX-minted-add-syntactic-keywords-extra' to add fontification support for \mint and \mintinline macros. Add \mint and \mintinline to textual keywords class and apply the fontification only for optional and first mandatory argument. 2017-03-27 Arash Esbati Adapt fontification for \lstinline * style/listings.el ("listings"): Fontify only the optional argument of \lstinline. 2017-03-27 Arash Esbati Recognize optional argument in verb macros with delimiters/braces * font-latex.el (font-latex-built-in-keyword-classes): Add \verb to textual keyword class. (font-latex-set-syntactic-keywords): Extend regexp to ignore an optional argument for verbatim macros with delimiters and/or braces. 2017-03-26 Ikumi Keita Add support for Japanese font command * tex-jp.el (): Append entries for mincho and gothic font commands to `LaTeX-font-list'. (japanese-latex-mode-initialization): Add font lock support to \textgt, \mathgt and \gtfamily commands for displaying with bold font in Emacs buffer. * doc/auctex.texi (Japanese): Mention new font commands and add indexes for them. 2017-03-23 Ikumi Keita Enhance Japanese class files support * style/tarticle.el: * style/tbooks.el: * style/treport.el: * style/jsreport.el: Add new style files. * Makefile.in (STYLESRC): Add them and tweak order not to break the format of file name alignment. * style/j-book.el ("j-book"): Correct the largest section level to "part" following book.el. * style/jarticle.el: * style/jbook.el: * style/jreport.el: * style/jsarticle.el: * style/jsbook.el: Add defvar for class options, counters and pagestyles following {article,book,report}.el. Correct the largest section level in jbook.el, too. Deal with "report" option in jsbook.el. 2017-03-24 Arash Esbati * texmathp.el (texmathp-tex-commands-default): Add entries for empheq.sty. 2017-03-23 Arash Esbati * style/minted.el ("minted"): Add key=val query for \mint and \mintinline. 2017-03-19 Ikumi Keita Use `TeX-line-number-at-pos' further for older emacsen * tex-buf.el (TeX-region-create): (TeX-region-update-point): * tex-info.el (Texinfo-make-node-list): Replace `line-number-at-pos' with `TeX-line-number-at-pos'. 2017-03-19 Ikumi Keita Use compatibility function `TeX-line-number-at-pos' for older emacsen * tex.el (TeX-evince-sync-view-1): (TeX-synctex-output-page-1): Replace `line-number-at-pos' with `TeX-line-number-at-pos'. 2017-03-18 Arash Esbati Use the variable `LaTeX-listing-label' * style/minted.el ("minted"): * style/newfloat.el (LaTeX-newfloat-auto-cleanup): Use `LaTeX-listing-label' instead of hard-coded "lst:" string. 2017-03-18 Arash Esbati Use compat function `TeX-replace-regexp-in-string' in core files * tex.el (TeX-source-correlate-sync-source): * latex.el (LaTeX-split-bibs): Use compat function `TeX-replace-regexp-in-string'. 2017-03-18 Arash Esbati Use `TeX-replace-regexp-in-string' in style files * style/empheq.el (LaTeX-empheq-item-equation): * style/tcolorbox.el (LaTeX-tcolorbox-load-used-libraries): * style/xcolor.el (LaTeX-xcolor-auto-cleanup): Use compat function `TeX-replace-regexp-in-string'. 2017-03-18 Arash Esbati Add new compat function `TeX-replace-regexp-in-string' * tex.el (TeX-replace-regexp-in-string): New compat function. With XEmacs, pass arguments to `replace-in-string', with Emacs to `replace-regexp-in-string'. This function supports only mandatory arguments of the original functions just mentioned. 2017-03-17 Ikumi Keita Avoid altering user option as much as possible * tex-jp.el (): Alter `TeX-view-predicate-list-builtin' and `TeX-view-program-list-builtin' instead of their customize option cousins. Append to `TeX-view-program-selection' only on w32 system. 2017-03-16 Arash Esbati Add LaTeX inline math delimiters to Ispell skip list * tex-ispell.el: Add LaTeX inline math delimiters \( \) to Ispell skip list. (bug#26125) Remove unnecessary part from regexp for \cmidrule. 2017-03-15 Arash Esbati Fix addition of key=val's * style/fvextra.el (LaTeX-fvextra-update-key-val): Fix addition of key=val's to `LaTeX-fancyvrb-key-val-options-local'. 2017-03-15 Ikumi Keita Modify `TeX-expand-list-builtin' instead of `TeX-expand-list' * tex-jp.el (): `TeX-expand-list' is user option since 2015. Add extra entries for Japanese TeX engines to `TeX-expand-list-builtin' instead. 2017-03-13 Arash Esbati Add new style/fvextra.el * Makefile.in (STYLESRC): Add new style. * style/fvextra.el: New file. 2017-03-13 Arash Esbati Improve parsing capabilities of style/fancyvrb.el * style/fancyvrb.el (LaTeX-fancyvrb-key-val-options): Add undocumented keys, update some values. (LaTeX-fancyvrb-key-val-options-local) (LaTeX-fancyvrb-base-macros, LaTeX-fancyvrb-base-environments) (LaTeX-fancyvrb-key-val-skip-regexp): New variables. (LaTeX-fancyvrb-macro-regexp, LaTeX-fancyvrb-environment-regexp): Update for new parsing mechanism. (LaTeX-fancyvrb-arg-define-macro) (LaTeX-fancyvrb-arg-define-environment) (LaTeX-fancyvrb-arg-file-relative): New functions. ("fancyvrb"): Use new variables and functions in the hook. Update fontification. 2017-03-10 Arash Esbati Improve fallback for indentation when & is omitted * latex.el (LaTeX-hanging-ampersand-position): Improve handling of fallback which now respects also intended tabular environments. Thanks to Ikumi Keita for testing and providing code. (bug#26032) * tests/latex/tabular-in.tex: * tests/latex/tabular-out.tex: Add additional test for indented tabular. 2017-03-09 Ikumi Keita Remove spurious entries of view settings. * tex-jp.el (TeX-view-program-list): (TeX-view-program-selection): Remove spurious entries, most of which are related with other TeX IDEs. cf. http://lists.gnu.org/archive/html/auctex-devel/2016-04/msg00036.html 2017-03-09 Arash Esbati Add fallback for indentation when & is omitted * latex.el (LaTeX-hanging-ampersand-position): Add fallback for indentation if the row searched does not contain a column separator &. * tests/latex/tabular-in.tex: * tests/latex/tabular-out.tex: Add filling test for missing & in row. 2017-02-06 Ikumi Keita Fix auto selection of japanese TeX engine * tex-jp.el (japanese-latex-mode-initialization): Use `LaTeX-match-class-option' to detect uplatex option given to jsarticle, jsreport and jsbook class. (The root of this problem is the same as Bug#25563) (): Quit appending to `LaTeX-command-style' because this made the user's intentional selection of `TeX-engine' ineffective with regard to the selection of the executable names. Fix copyright year. * doc/auctex.texi (Japanese): Add description of Japanese TeX engine: How to use, change and set the value of the engine. Add description of the customize options related to the encoding of Japanese TeX documents. 2017-03-08 Arash Esbati Detect \& in tabular cells when filling * latex.el (LaTeX-indent-tabular): Search backward for any ampersands not escaped with a backslash, i.e. control symbol \&, and return the adjusted value. Thanks to Ikumi Keita for his perceptive comments on the implementation. (bug#26010) * tests/latex/tabular-in.tex: * tests/latex/tabular-out.tex: Add test for table filling with \& in cells. 2017-03-06 Arash Esbati * tex-ispell.el (TeX-ispell-skip-cmds-list): Add hyperref macros. 2017-03-05 Arash Esbati * tex-ispell.el (TeX-ispell-skip-setcdr): Add entry for filecontents package. 2017-03-04 Ikumi Keita Fix documents and add trivial improvements. * font-latex.el (font-latex-deactivated-keyword-classes): Add keyword class biblatexnoarg, biblatex and slide-title to doc string. Use `buffer-string'. (font-latex-keyword-matcher): Mention that face attributes is accepted as FACE argument in doc string. (font-latex-make-built-in-keywords): Arrange doc string for generated defvar of `font-latex-match-*-keywords-local' depending on the keyword type. Remove spurious type declaration from generated defcustom of `font-latex-match-*-keywords'. Replace meaningless argument with nil and add doc string for generated defvar of `font-latex-match-*'. Replace redundant call to intern with literal quote of symbol. (font-latex-user-keyword-classes): Fix doc string. The accepted face argument is face attribute rather than font specification. Add doc string for generated defvar of `font-latex-match-*'. (font-latex-make-user-keywords): Replace backquote with quote where backquote is not necessary. (font-latex-add-keywords): Add keyword class biblatexnoarg to doc string. * doc/auctex.texi (): Update copyright year. (Deactivating defaults of built-in keyword classes): Add keyword class biblatexnoarg, biblatex and slide-title. Fix sample lisp code. (User-defined keyword classes): The accepted face argument is face attribute rather than font specification. 2017-03-04 Ikumi Keita Make customization to face specification to appear in customization buffer. * font-latex.el (font-latex-user-keyword-classes): Exchange the order of `face' and `custom-face-edit'. Tweak doc string. 2017-03-04 Ikumi Keita Unify treatment of face argument over the relevant functions. * font-latex.el (font-latex-keyword-matcher): Conform the face argument correctly to the format `font-lock-keywords' requires. (font-latex-make-user-keywords) : Call `font-latex-make-match-defun' directly without `eval'. (font-latex-deactivated-keyword-classes) : Accept a face symbol, as well as a form returning a face symbol, for the third element for each item of `font-latex-built-in-keyword-classes'. (font-latex-built-in-keyword-classes) : Remove quoting from the face names. Contrary to the sentence of the doc string "The third element is the symbol of a face to be used or a Lisp form returning a face symbol.", symbol of a face was invalid due to the above bugs. 2017-03-04 Ikumi Keita Fix font-latex-make-match-defun to generate intended code. * font-latex.el (font-latex-make-match-defun): Arrange the order of evaluation not to generate meaningless clause. Byte compile warning on xemacs went away. 2017-03-04 Mosè Giordano Partially revert previous commit, will look better later * tex-buf.el (TeX-command-expand): Do not error if `string' is nil. This made "View" command unusable. 2017-03-04 Mosè Giordano Prevent infinite loop in TeX-command-expand * tex-buf.el (TeX-command-expand): Throw an error if `string' is not a string. This prevents an infinite loop. * tex.el (TeX-engine-in-engine-alist): New function to pick up an engine from `TeX-engine-alist' and throw an error if the engine is not there. (TeX-expand-list-builtin): Use `TeX-engine-in-engine-alist'. * context.el (ConTeXt-expand-options): Use `TeX-engine-in-engine-alist'. * tests/tex/command-expansion.el (TeX-command-expansion-errors): Add tests for error handling of `TeX-command-expand'. 2017-02-24 Ikumi Keita Tweak locale treatment on xemacs. * tex-jp.el (japanese-TeX-set-process-coding-system): Use the locale related environment variables for fallback value. 2017-02-21 Arash Esbati Add new style/sourcecodepro.el * Makefile.in (STYLESRC): Add new style. * style/sourcecodepro.el: New file. 2017-02-21 Arash Esbati * style/subfiles.el (LaTeX-subfiles-class-options): New function. 2017-02-04 Ikumi Keita Make papersize predicate in tex-jp.el to work again. Problem parallel to bug#25563. * tex-jp.el (): Use `LaTeX-match-class-option' to examine paper size option of document class. 2017-02-14 Ikumi Keita Fix setting of coding system for Japanese TeX * tex-jp.el (japanese-TeX-set-process-coding-system): Cater for the case that kanji option is requested by user but cannot be determined. XEmacs doesn't have `locale-coding-system'. Use `get-coding-system-from-locale' and `current-locale' instead. Cleanup indentation. (japanese-TeX-coding-ejsu): Add entry for xemacs coding system of cp932. 2017-02-20 Mosè Giordano Improve regexp for looking for documentclass macro * latex.el (LaTeX-env-document): Allow any non line-breaking character in regexp used to look for `documentclass' macro. Previous regexp did not catch class options containing dots or slash, that may occur when using `subfiles' class. 2017-02-20 Mosè Giordano Improve determination of master file with subfiles class * style/subfiles.el ("subfiles"): Do not strip dirname from master file. 2017-02-19 Arash Esbati Add new keys for package version 4.00 * style/tcolorbox.el (LaTeX-tcolorbox-keyval-options): Add new keys for v4.00 of the package. 2017-02-16 Arash Esbati * latex.el (LaTeX-label): Eliminate premature returning of label. 2017-02-16 Arash Esbati Append "lstlisting" to `LaTeX-label-alist' * style/listings.el ("listings"): Append "lstlisting" to `LaTeX-label-alist'. (LaTeX-listings-auto-cleanup): Use `LaTeX-listing-label' as a symbol during clean up. 2017-02-10 Arash Esbati Add new style/preview.el * Makefile.in (STYLESRC): Add new style. * style/preview.el: New file. 2017-02-10 Arash Esbati * .gitignore: Ignore only preview.el in top directory. 2017-02-10 Arash Esbati Improve parsing process in style/xcolor.el * style/xcolor.el (LaTeX-xcolor-definecolor-regexp): Use `regexp-opt' to build a regexp to match all color defining macros. (LaTeX-xcolor-colorlet-regexp): Remove variable. (LaTeX-xcolor-auto-cleanup): Romove unnecessary *. 2017-02-09 Arash Esbati Improve parsing process in style/color.el * style/color.el (LaTeX-color-definecolor-regexp): Remove unnecessary 2nd and 3rd arguments from regexp. (LaTeX-color-auto-cleanup): Delete unnecessary function and remove it from `TeX-auto-cleanup-hook'. 2017-02-09 Arash Esbati Fix parsing bug in style/xcolor.el * style/xcolor.el (LaTeX-xcolor-definecolor-regexp): Move parsing of \colorlet macro into `LaTeX-xcolor-colorlet-regexp'. (LaTeX-xcolor-colorlet-regexp): New variable. ("xcolor"): Activate `LaTeX-xcolor-colorlet-regexp' in style hook. 2017-02-06 Arash Esbati * latex/preview.dtx: Fix example for \PreviewMacro* macro. Add missing backslash. 2017-02-04 Ikumi Keita Fix minor problems * tex.el (TeX-view-predicate-list-builtin): Enclose whole alternatives in regexp with shy group in order that the effect of "\`" and "\'" covers all the alternatives. * latex.el (LaTeX-auto-cleanup): Regard "Class", in addition to "class", as an indicator of LaTeX2e document. 2017-02-02 Arash Esbati Simplify addition of entirely skipped environments * tex-ispell.el (TeX-ispell-skip-envs-list): New variable for environments which should be skipped entirely. (TeX-ispell-skip-envs-regexp): New variable keeping the regexp generated from `TeX-ispell-skip-envs-list'. 2017-02-02 Tassilo Horn Fix TeX-view-predicate-list-builtin predicates wrt class opts * latex.el (LaTeX-match-class-option): New function. * tex.el (TeX-view-predicate-list-builtin): Use above function to check paper sizes orientation from documentclass options (bug#25563). 2017-02-01 Mosè Giordano Fix number of arguments of local-variable-p in XEmacs * font-latex.el (font-latex-after-hacking-local-variables): Second argument of `local-variable-p' is mandatory in XEmacs. 2017-02-01 Tassilo Horn Fix font-latex-after-hacking-local-variables on XEmacs * font-latex.el (font-latex-after-hacking-local-variables): Cater for the fact that file-local-variables-alist isn't there in XEmacs and older Emacs versions (bug#25564). 2017-02-01 Arash Esbati * tex-ispell.el: Add support for enviroments from breqn.sty. 2017-02-01 Tassilo Horn Fix plain-TeX-auto-regexp-list docstring * tex.el: Fix docstring of plain-TeX-auto-regexp-list (bug#25574). 2017-01-29 Arash Esbati Add new style/breqn.el * Makefile.in (STYLESRC): Add new style. * style/breqn.el: New file. 2017-01-29 Arash Esbati Update style/listings.el to use `LaTeX-env-label-as-keyval' * style/listings.el (LaTeX-listings-key-val-options): Comment the "label" key. (LaTeX-listings-key-val-label-extract): (LaTeX-listings-key-val-label-regexp): New variable. (LaTeX-listings-auto-cleanup): Use `LaTeX-add-environments' instead of adding new enviroments to `LaTeX-auto-environment'. Use the function `LaTeX-env-label-as-keyval' to insert labels. Add parsed enviroments to AUCTeX parser with `TeX-auto-add-regexp'. ("listings"): Add `LaTeX-listings-key-val-label-regexp' to the parser. Use `LaTeX-env-label-as-keyval' for "lstlisting". 2017-01-29 Arash Esbati Add function to put labels in opt. argument of environments * doc/changes.texi: Document new feature. * latex.el (LaTeX-listing-label): New custom prefix for labels in code typesetting environments. (LaTeX-env-label-as-keyval): New function. (LaTeX-narrow-to-environment): Fix typo in docstring. 2017-01-27 Arash Esbati Add `NO-INSERT' argument to `LaTeX-label' * doc/changes.texi: Document changes to `LaTeX-label' and `LaTeX-label-function'. * latex.el (LaTeX-label): Add second optional argument NO-INSERT. This argument is passed to function bound to `LaTeX-label-function' (usually `reftex-label' with RefTeX enabled). If `LaTeX-label-function' is nil and NO-INSERT is non-nil, label is read and returned as a string. Remove some unnecessary checks. (LaTeX-label-function): Mention in docstring that the function is expected to take an optional argument NO-INSERT. This is an incompatible change. 2017-01-27 Arash Esbati Check if label is defined before adding it to known labels * latex.el (TeX-read-label): Check if label is already defined and ask for user confirmation before adding it list of known labels. Do not add label if empty string or the value of `TeX-read-label-prefix'. 2017-01-26 Arash Esbati Add \citetitle to `reftex-cite-format' in style/biblatex * style/biblatex.el ("biblatex"): Add \citetitle[*] to `reftex-cite-format' and bind them to keys i/I per user request http://lists.gnu.org/archive/html/auctex/2017-01/msg00049.html. 2017-01-25 Mosè Giordano Guard setcar with appropriate test * tex-jp.el (assoc): Replace second element of "BibTeX" and "Index" entries of `TeX-command-list' only if they are already there. This variable is customizable and users may have removed them. Reported by jfbu. 2017-01-20 Mosè Giordano * latex.el (LaTeX-newline): Make interactive. See bug#24412. 2017-01-20 Mosè Giordano Add makeglossaries to the list of commands * tex.el (TeX-command-list): Add makeglossaries. Fixes bug#24952. * latex.el (LaTeX-clean-intermediate-suffixes): Add extensions of files created by makeglossaries. 2017-01-15 Mosè Giordano Show summary of tests at the end of make check * tests/Makefile (check): Depend on `check-doit' and `mostlyclean' phony targets. (check-doit): New rule for showing summary of tests. (mostlyclean): Delete log files. 2017-01-13 Davide G. M. Salvetti Fix ConTeXt-outline-regexp Add a separator between different elements; see Debian bug #850444. 2017-01-13 Mosè Giordano Remove also a gitignore * Makefile.in (EXCLUDEDFILES): Add latex/.gitignore to excluded files. 2017-01-13 Mosè Giordano Remove file from distributed tar ball * Makefile.in (EXCLUDEDFILES): Add doc/tex-ref.log. 2017-01-12 Mosè Giordano Add AUCTeX Logo * etc/auctex-logo.tex: Logo of AUCTeX. It was realized with comments from Vincent Belaïche, Marcin Borkowski, Marta Dell’Atti, Tamas Papp and others. * .gitignore: Ignore some files automatically created during compilation. 2017-01-11 Mosè Giordano Make gitlog-to-changelog ignore release-commit * Makefile.in (release-commit): Prefix the commit message with "; ", so that the commit will be ignored when automatically updating the ChangeLog. 2017-01-10 Mosè Giordano * Version 11.90 released. 2017-01-10 Mosè Giordano Refresh RELEASE file * RELEASE: Update "Availability" and "Future development and additional information" sections. 2017-01-10 Mosè Giordano * Makefile.in (release-commit): Use UTF-8 coding for ChangeLog entry. * ChangeLog-preview: Change encoding to UTF-8. * Makefile.in (release-commit): Fix name of preview ChangeLog. 2017-01-10 Arash Esbati Use RefTeX for multiple references in cleveref * style/cleveref.el (TeX-arg-cleveref-multiple-labels): Check if RefTeX is enabled and use it for multiple referencing macros. ("cleveref"): Use `TeX-arg-ref' instead of `TeX-arg-label'. ("cleveref"): Remove call of (font-latex-set-syntactic-keywords). 2017-01-10 Arash Esbati Skip macros and environments from tcolorbox and raster library * tex-ispell.el (TeX-ispell-sort-skip-cmds-list): Extract macros with optional argument from `TeX-ispell-skip-cmds-list'. (TeX-ispell-skip-cmds-opt-arg-regexp): New variable containing macros where only the optional argument is skipped while spell checking. Add macros and environments from tcolorbox.el and tcolorboxlib-raster.el. 2017-01-10 Arash Esbati Advertise AUCTeX installation from ELPA * doc/quickstart.texi (Quick Start): Emphasize the necessity to drop (load "auctex.el" nil t t) when installed from ELPA. * doc/install.texi (Installation): Advertise installation from ELPA. 2017-01-09 Mosè Giordano Prepare for upcoming release * RELEASE: Update AUCTeX version, the new features section, and the list of contributors. * configure.ac: Update AUCTeX version. * doc/changes.texi: Reorder changes for 11.90 version section. * doc/tex-ref.tex: Update AUCTeX version and copyright years across the file. * latex/preview.dtx: Manually update release version. 2017-01-07 Mosè Giordano Adapt Makefile to new ChangeLog file name * Makefile.in (release-commit): Use `CHANGELOG_N' in place of `ChangeLog'. 2017-01-06 Tassilo Horn Don't use cl function copy-list * font-latex.el (font-latex--get-script-props): Use copy-sequence instead of copy-list, the latter being a cl function. 2017-01-05 Tassilo Horn Fix bug where font-latex-sub/superscript-face was not applied to ^_ * font-latex.el (font-latex-make-user-keywords): prepend font-latex-script-char-face, don't replace existing specs. 2017-01-05 Tassilo Horn Fontify script characters with a new face * doc/auctex.texi (Fontification of math): Document it. * doc/changes.texi: Mention that. * font-latex.el (font-latex-make-user-keywords): Adapt. (font-latex-script-char-face): New face. (font-latex-match-script-chars): Improve it so that double ^_ aren't matched because such errors were hard to see with font-latex-fontify-script set to invisible. (font-latex-script-char): New function. 2017-01-05 Arash Esbati Support biblatex cite format in all Emacsen * style/biblatex.el ("biblatex"): Check if biblatex is available in `reftex-cite-format-builtin' and use it. If not, add entries for older Emacsen manually. 2017-01-05 Arash Esbati Check new custom option before activating RefTeX cite format * doc/changes.texi: Document new variable. * style/biblatex.el ("biblatex"): * style/harvard.el ("harvard"): * style/jurabib.el ("jurabib"): * style/natbib.el ("natbib"): Set cite format provided by RefTeX when `LaTeX-reftex-cite-format-auto-activate' is non-nil. * tex-style.el (LaTeX-reftex-cite-format-auto-activate): New customizable variable. 2017-01-04 Tassilo Horn Fix script unfontification bug * font-latex.el (font-latex-unfontify-region): Remove script-level property and raise display property even though it's value is different from what's specified in font-latex-script-display. 2017-01-04 Tassilo Horn Improve completion docs * doc/auctex.texi (Completion): Improved docs. * doc/changes.texi: Mention math completion, add link to Completion node in the manual. * tex.el (TeX-complete-list): Improve docstring. 2017-01-04 Tassilo Horn Refactor normal completion and completion at point a bit * tex.el (TeX--complete-find-entry): New function. (TeX-complete-symbol,TeX--completion-at-point): Use it. 2017-01-04 Tassilo Horn Completion for math macros * latex.el (LaTeX--after-math-macro-prefix-p): New function. (LaTeX-common-initialization): Use it for new TeX-complete-list entry. * tex.el (TeX-complete-list): Also allow match-data setting predicates in entries. (TeX-complete-symbol,TeX--completion-at-point): Adapt to new possibility. 2017-01-03 Tassilo Horn Add completion-at-point support * doc/auctex.texi (Completion): Document completion-at-point support. * doc/changes.texi: Mention completion-at-point support. * tex.el (TeX--completion-at-point): New function. (VirTeX-common-initialization): Add TeX--completion-at-point to completion-at-point-functions in TeX buffers if that's bound. 2017-01-03 Mosè Giordano Use RefTeX for multiple citations in biblatex * style/biblatex.el (LaTeX-arg-biblatex-cites): Use RefTeX when available. Suggested by Arash Esbati. 2017-01-03 Tassilo Horn Simple docfix * font-latex.el (font-latex-fontify-script-max-level): Correct escaping of \(...\) in the docstring. 2017-01-03 Tassilo Horn Improve multi-level script fontification * doc/auctex.texi (Fontification of math): Update docs. * doc/changes.texi: Add an item for the new script fontification features. * font-latex.el (font-latex-fontify-script): Update docstring. (font-latex-fontify-script-max-level): New custom variable. (font-latex--get-script-props): Apply script face only for levels up to font-latex-fontify-script-max-level. (font-latex-script): Adapt call to font-latex--get-script-props. 2017-01-03 Arash Esbati Add a newline only if \label is inserted * style/caption.el (LaTeX-arg-caption-captionof): * style/bicaption.el (LaTeX-arg-bicaption-bicaption): Save the position before asking for a label. Add a newline only if a label is inserted. 2017-01-03 Tassilo Horn Bring back multi-level script font-locking * doc/auctex.texi (Fontification of math): Add documentation. * font-latex.el (font-latex-script-display): Increase default raise level to 0.5. (font-latex-superscript-face,font-latex-subscript-face): Let scripts be a bit larger (:height 0.85 instead of 0.8). (font-latex--get-script-props): New function for incrementing/decrementing raise display property values. (font-latex-script): Use it. 2017-01-03 Tassilo Horn Revert "Remove multi-level/invisible feature of font-latex-fontify-script" This reverts commit ccec8501960a448dd8faccaae54dfd9839a37c30. 2017-01-02 Tassilo Horn Remove multi-level/invisible feature of font-latex-fontify-script * font-latex.el (font-latex-make-user-keywords,font-latex-script-display) (font-latex-script): Remove multi-level/invisible feature of font-latex-fontify-script. (font-latex-doctex-preprocessor-face): Remove function. * doc/auctex.texi (Fontification of math): Remove documentation for font-latex-fontify-script's multi-level and invisible values. 2016-12-31 Arash Esbati Set `reftex-set-cite-format' to biblatex or natbib * style/biblatex.el ("biblatex"): Set `reftex-set-cite-format' to biblatex or natbib depending on package option. 2016-12-30 Uwe Brauer Add new style/exam.sty * Makefile.in (STYLESRC): add exam.el * style/exam.el: Add style file * tex-style.el: Move defcustom from exam.el to tex-style.el 2016-12-30 Arash Esbati Fix the names also in expert macros * style/cleveref.el ("cleveref"): Fix the names also in expert macros. 2016-12-30 Arash Esbati Fix name of macros \lcnamecref and \lcnamecrefs * style/cleveref.el ("cleveref"): Fix name of macros \lcnamecref and \lcnamecrefs. 2016-12-30 Arash Esbati Add fontification for varioref's referencing macros * font-latex.el (font-latex-built-in-keyword-classes): Add starred version to \vref macro. * style/varioref.el ("varioref"): Add fontification support for referencing macros. 2016-12-30 Arash Esbati Add starred version of \citeauthor and \Citeauthor * font-latex.el (font-latex-built-in-keyword-classes): * style/biblatex.el ("biblatex"): Add starred version of \citeauthor and \Citeauthor macros. 2016-12-30 Arash Esbati Fix fontification for natbib compat macros * style/biblatex.el ("biblatex"): Fix fontification for natbib compat macros which take 2 optional arguments. 2016-12-29 Arash Esbati Add \switchcolumn to paragraph commands * style/paracol.el ("paracol"): Add \switchcolumn to paragraph commands. 2016-12-29 Arash Esbati Add new style/titletoc.el * style/titletoc.el: New file. * Makefile.in (STYLESRC): Add new style. 2016-12-29 Arash Esbati Add new style/titlesec.el * Makefile.in (STYLESRC): Add new style. * style/titlesec.el: New file. 2016-12-29 Arash Esbati Add new style/titleps.el * Makefile.in (STYLESRC): Add new style. * style/titleps.el: New file. 2016-12-29 Arash Esbati Add new style/mdframed.el * Makefile.in (STYLESRC): Add new style. * style/mdframed.el: New file. 2016-12-29 Arash Esbati Add new tcolorbox library style/tcolorboxlib-raster.el * Makefile.in (STYLESRC): Add new style. * style/tcolorboxlib-raster.el: New file. 2016-12-29 Arash Esbati Update style/tcolorbox.el to package v3.96 * style/tcolorbox.el: Update style to package v3.96. 2016-12-29 Arash Esbati Query for optional float position * style/newfloat.el (LaTeX-newfloat-auto-cleanup): Query for optional float position. 2016-12-29 Arash Esbati Improve inserting arguments of \captionof macro * style/caption.el (LaTeX-arg-caption-captionof): New function improving query and insert of caption and label acc. to float type. ("caption"): Use it. 2016-12-29 Mosè Giordano Fix documentation of TeX-arg-file * doc/auctex.texi (Adding Macros): `TeX-arg-file' does not strip extension. Reported by Tyler Smith. Fixes bug#24444. 2016-12-26 Uwe Brauer Make AUCTeX and RefTeX aware of file loading macro \subfile * style/subfiles.el ("subfiles"): Make subfile macro be recognized as a paragraph command. For AUCTeX, add argument of subfile to `TeX-auto-file'. For RefTeX, append subfile to `reftex-include-file-commands' and run `reftex-compile-variables' only once. Code rearrangement. 2016-12-24 Mosè Giordano Print only first line of the message in error overview * tex-buf.el (TeX-error-overview-make-entries): Use `push' in place of `add-to-list'. Print only the first line of the message. 2016-12-23 Arash Esbati Mention improvements to `LaTeX-array-count-columns' in news * doc/changes.texi: Mention improvements to `LaTeX-array-count-columns' in news since 11.89. 2016-12-23 Arash Esbati Extend test for new column counting code with style files loaded * tests/latex/tabular-count-ampersands-out.tex: * tests/latex/tabular-count-ampersands-in.tex: Add tests for tabularx, tabulary, longtable, dcolumn, siunitx constructs. * tests/latex/latex-test.el (LaTeX-count-ampersands-inserted-in-tabular): Set `TeX-parse-self' to t in order to load style files in the test. Thanks to Mosè Giordano for enabling this feature. 2016-12-22 Arash Esbati Update style/minted.el to package version 2.4.1. * style/minted.el (LaTeX-minted-key-val-options): Add new key=vals from package version 2.4.1. (LaTeX-minted-key-val-options-local): New variable. (LaTeX-minted-language-list): Set the variable `LaTeX-minted-language-list' after the first call of function. (LaTeX-minted-style-list): New variable. (LaTeX-minted-style-list): New function analogous to `LaTeX-minted-language-list' returning styles provided by pymentize program. (LaTeX-arg-minted-style): New function to insert styles provided by pymentize program into buffer. (LaTeX-minted-update-key-vals): New function to update key=vals in `LaTeX-minted-key-val-options-local'. (LaTeX-minted-auto-cleanup): Call `LaTeX-minted-update-key-vals'. ("minted"): Use `LaTeX-minted-key-val-options-local' for all key=val queries. Update macros incl. fontification. Run style hook for `newfloat' when package option is given. 2016-12-22 Tassilo Horn Uniform font-lock updates/don't break prettify (bug#25245) * font-latex.el (font-latex-update-font-lock): New function. (font-latex-add-keywords): Use it. (font-latex-after-hacking-local-variables): Use it. * style/alltt.el: Use font-latex-update-font-lock. * style/beamer.el: Ditto. * style/comment.el: Ditto. * style/expl3.el: Ditto. * style/fancyhdr.el: Ditto. * style/fancyvrb.el: Ditto. * style/listings.el: Ditto. * style/minted.el: Ditto. * style/url.el: Ditto. 2016-12-22 Mosè Giordano Fix to TeX-add-local-master * tex.el (TeX-add-local-master): Parse local variables again after calling the mode function, which killed local variables. 2016-12-21 Mosè Giordano Add style/ directory to TeX-style-path for tests * tests/latex/latex-test.el: Add our "style/" directory `TeX-style-path' to make it possible to load style files inside tests. 2016-12-20 Mosè Giordano * tex.el (TeX-add-local-master): Inherit major mode from master file. 2016-12-19 Arash Esbati Mention that arguments to *-operator must be in braces * doc/auctex.texi (Tabular-like): Mention that the new code for counting columns in *{num}{cols} expects num and cols to be enclosed in braces. 2016-12-19 Arash Esbati Add test for new column counting code * tests/latex/tabular-count-ampersands-out.tex: * tests/latex/tabular-count-ampersands-in.tex: New files. * tests/latex/latex-test.el (LaTeX-count-ampersands-inserted-in-tabular): Test new column counting code in `LaTeX-array-count-columns'. 2016-12-19 Arash Esbati Count *-operator in column specification * latex.el (LaTeX-array-count-columns): Detect *-operator in column specification and count the arguments for final calculation of columns. Thanks to Ikumi Keita for pointing out this deficiency and code to fix it. 2016-12-19 Arash Esbati Add new style/dcolumn.el * Makefile.in (STYLESRC): Add new style. * style/dcolumn.el: New file. 2016-12-19 Arash Esbati Accept non-letter characters as column specifier * style/array.el (LaTeX-array-newcolumntype-regexp): Accept non-letter characters as column specifier. 2016-12-17 Arash Esbati Use `LaTeX-item-longtable' while inserting longtable's * style/longtable.el (LaTeX-longtable-skipping-regexp): New variable. (LaTeX-item-longtable): New function. This function is a variation of `LaTeX-item-array' which uses `LaTeX-longtable-skipping-regexp' when inserting ampersands. ("longtable"): Append longtable to `LaTeX-item-list'. 2016-12-17 Arash Esbati Add "s" and "S" to `LaTeX-array-column-letters' * style/siunitx.el ("siunitx"): Add column specification letters "s" and "S" to `LaTeX-array-column-letters'. 2016-12-17 Arash Esbati Append tabular[xy] to `LaTeX-item-list' * style/tabulary.el ("tabulary"): * style/tabularx.el ("tabularx"): Append tabularx and tabulary to `LaTeX-item-list'. 2016-12-06 Arash Esbati Support RefTeX with `reftex-add-index-macros' in style/splitidx.el * style/splitidx.el ("splitidx"): Support RefTeX with `reftex-add-index-macros' and not by appending macros to `reftex-index-macros'. 2016-12-06 Arash Esbati Support RefTeX with `reftex-add-label-environments' in style/mathtools.el * style/mathtools.el (LaTeX-mathtools-auto-cleanup, "mathtools"): Support RefTeX with `reftex-add-label-environments' and not by appending environments to `reftex-label-alist'. ("mathtools"): Add fontification support for referencing macros. 2016-12-06 Arash Esbati Support RefTeX with `reftex-add-label-environments' in style/empheq.el * style/empheq.el ("empheq"): Support RefTeX with `reftex-add-label-environments' and not by appending environments to `reftex-label-alist'. 2016-12-05 Arash Esbati Fix query for defined colors in style/textpos.el * style/textpos.el ("textpos"): Use `cond' to check which color defining package is loaded and use the respective function for `completing-read'. 2016-12-05 Arash Esbati Fix query for defined colors in style/ntheorem.el * style/ntheorem.el ("ntheorem"): Use `cond' to check which color defining package is loaded and use the respective function for `completing-read'. 2016-11-30 Arash Esbati Add support for LaTeX core command \textsubscript * font-latex.el (font-latex-built-in-keyword-classes): * latex.el (LaTeX-common-initialization): Add entry for "textsubscript" which is in LaTeX core since 2015/01/01. 2016-11-28 Arash Esbati Do not spell-check arguments of \LTXtable * tex-ispell.el (TeX-ispell-skip-cmds-list): Add entry for \LTXtable. 2016-11-28 Arash Esbati Add \LTXtable to list of file-loading commands * style/ltxtable.el (LaTeX-ltxtable-file-regexp): New variable. ("ltxtable"): Make AUCTeX and RefTeX aware of \LTXtable as file loading command. Add fontification support. 2016-11-25 Arash Esbati Support new floats defined with newfloat package * style/caption.el (LaTeX-caption-update-key-val-options): Append new floating environments defined with "newfloat.sty" as values to "type*?" keys in `LaTeX-caption-key-val-options-local'. 2016-11-25 Arash Esbati Append entry to `LaTeX-label-alist' for new "verbatim" floats * style/newfloat.el (LaTeX-newfloat-auto-cleanup): Append an entry for parsed environments of "verbatim" type to `LaTeX-label-alist'. 2016-11-24 Arash Esbati Insert \label inside the mandatory argument of \caption * style/longtable.el ("longtable"): Append \label at the end of caption text inside the mandatory argument. (LaTeX-longtable-package-options): New variable to suppress the query for package options. 2016-11-24 Uwe Brauer Add style file for subfiles package. * Makefile.in (STYLESRC): add subfiles.el entry * style/subfiles.el ("subfiles"): add new style. 2016-11-23 Mosè Giordano Min fix to kpfonts package * style/kpfonts.el ("kpfonts"): Move setting of `TeX-font-list' inside the hook. 2016-11-23 Mosè Giordano Add style file for amsfonts package * style/amsfonts.el: New file. * Makefile.in (STYLESRC): Install it. * style/amssymb.el ("amssymb"): Run `amsfonts' hook. 2016-11-21 Arash Esbati Add new style/bicaption.el * Makefile.in (STYLESRC): Add new style. * style/bicaption.el: New file. 2016-11-21 Arash Esbati Add support for style/bicaption.el to style/caption.el * style/caption.el (LaTeX-caption-supported-float-types): Add supported caption types available with bicaption.el. ("caption"): Append key=vals from bicaption.el to `LaTeX-caption-key-val-options-local'. ("caption"): Query for a second optional argument with \captionsetup*? if bicaption.el is loaded. Same for fontification. 2016-11-21 Arash Esbati Do not insert a new line if \label is omitted * style/subcaption.el (LaTeX-arg-subcaption-subcaption): Insert a new line only if \label is given. 2016-11-18 Arash Esbati Improve caption and label insertion in style/caption.el * style/caption.el (LaTeX-caption-key-val-options): Add key slc which is an abbrev for singlelinecheck. (LaTeX-arg-caption-captionbox): Delete unused prompt argument. Ask for short caption acc. to the value of `LaTeX-short-caption-prompt-length'. Use `LaTeX-label' instead of `TeX-insert-macro' to insert a label. Use `TeX-argument-insert' instead of conditional insert. ("caption"): Do not fontify the last argument of \captionbox. Fontification happens within \begin...\end{tabular} or \includegraphics. 2016-11-18 Arash Esbati Improve caption and label insertion in style/subcaption.el * style/subcaption.el (LaTeX-arg-subcaption-subcaption): Delete unused prompt argument. Ask for short caption acc. to the value of `LaTeX-short-caption-prompt-length'. Fill the inserted sub-caption before using `LaTeX-label' to insert the label. (LaTeX-arg-subcaption-subcaptionbox): Delete unused prompt argument. Ask for short caption acc. to the value of `LaTeX-short-caption-prompt-length'. Use `LaTeX-label' to insert the label. Use `TeX-argument-insert' instead of conditional insert. ("subcaption"): Append package environments to `LaTeX-label-alist'. ("subcaption"): Do not fontify the last argument of \subcaptionbox. Fontification happens within \begin...\end{tabular} or \includegraphics. 2016-11-16 Arash Esbati Add new style/FiraSans.el * Makefile.in (STYLESRC): Add new style. * style/FiraSans.el: New file. 2016-11-16 Arash Esbati Add new style/FiraMono.el * Makefile.in (STYLESRC): Add new style. * style/FiraMono.el: New file. 2016-11-14 Mosè Giordano Suggest to display warnings when there are no errors in error overview * tex-buf.el (TeX-error-overview): When there are no errors, suggest to display warnings and bad boxes, if present. Fixes bug #24877. 2016-11-04 Tassilo Horn Refresh font-latex fontification if vars are modified Refresh font-latex fontification if variables such as LaTeX-verbatim-*-local are set in a file-local variables block or as directory-local variables (bug#24868). * font-latex.el (font-latex-after-hacking-local-variables): New function. (font-latex-setup): Add it do hack-local-variables-hook. * tex.el (TeX--list-of-string-p): New function. * latex.el (LaTeX-verbatim-environments-local): (LaTeX-verbatim-macros-with-braces-local): (LaTeX-verbatim-macros-with-delims-local): Use it for safe-local-variable property. 2016-11-02 Arash Esbati Update style/natbib.el to package version 8.31b * style/natbib.el ("natbib"): Add missing macros to catch up with package version 8.31b. Rearrange code. (LaTeX-arg-natbib-notes): Remove redundant check if `TeX-arg-cite-note-p' is non-nil. 2016-10-17 Tassilo Horn Make Copyright headers conforming to convention 2016-10-17 Arash Esbati Do not insert unnecessary brackets for citation macros * style/natbib.el (LaTeX-arg-natbib-notes): Rename function name from `natbib-note-args'. Improve the insertion of arguments in order not to have an empty pair of brackets when both pre- and post-note are omitted. ("natbib"): Replace occurrence of `natbib-note-args' with `LaTeX-arg-natbib-notes'. 2016-10-17 Arash Esbati Use `TeX-argument-insert' instead of conditional `insert' * style/biblatex.el (LaTeX-arg-biblatex-natbib-notes): Use `TeX-argument-insert' instead of `insert' for arguments insertion. 2016-10-16 Arash Esbati Add support for natbib macros to style/biblatex * style/biblatex.el (LaTeX-arg-biblatex-natbib-notes): New function. ("biblatex"): Add completion and fontification support for natbib compatibility macros. 2016-10-14 Tassilo Horn Manually merge changes that were only on the elpa branch 2016-10-13 Tassilo Horn Fix TeX--if-macro-fboundp edebug spec * tex.el (TeX--if-macro-fboundp): Fix broken edebug spec. 2016-09-27 Mosè Giordano Fix to my previous commit * tex-buf.el (TeX-BibTeX-sentinel): Fix misplaced `setq', it was inside the `cond' form while it should have been outside. 2016-09-19 Tassilo Horn Improve docs added/changed in last commit * doc/auctex.texi (Display): Rewrite WYSIWYG paragraph and add references. (Fontification of math): Switch order in which multi-level and invisible are introduced. Fix misplaced @xref. 2016-09-19 Uwe Brauer Add information about prettify and semi WYSIWYG features. * doc/auctex.texi (Display): Add a sentence about prettify-symbols-unprettify-at-point. (Fontification of math): add `invisible' to `font-latex-fontify-script'. 2016-09-18 Tassilo Horn Don't require \end{env} is on a separate line * font-latex.el (font-latex-make-user-keywords): (font-latex-set-syntactic-keywords): Don't require that \end{env} is on a line of its own. Also allow empty mandatory argument in verbatim environments. 2016-09-18 Mosè Giordano Fix default command after running BibTeX with warnings * tex-buf.el (TeX-BibTeX-sentinel): Always set `TeX-command-next' to `TeX-command-default'. As it was before, if BibTeX issued warnings (or errors) the default next command would have been "View", which is in no case what the user would expect. This is the same logic used in Biber sentinel (which has, in addition, a fatal error after which Biber is run again). 2016-09-18 Tassilo Horn Improve font-locking of verbatim environments * font-latex.el (font-latex-set-syntactic-keywords): Handle case where verbatim content immediately follows \begin{verb-env}. 2016-09-17 Uwe Improve style/bidi and add make file entry. * Makefile.in (STYLESRC): add bidi.el * style/bidi.el ("bidi"): New file. 2016-09-17 Arash Esbati Improve style/graphicx.el * doc/changes.texi: Document the changes about graphicx.el. * tex-style.el (LaTeX-includegraphics-options-alist): Remove the now no-op variable. * style/graphics.el ("graphics"): Set `LaTeX-graphics-package-options' after running hooks for graphicx.el. * style/graphicx.el (LaTeX-graphicx-key-val-options) (LaTeX-includegraphics-dvips-extensions) (LaTeX-includegraphics-pdftex-extensions) (LaTeX-includegraphics-xetex-extensions) (LaTeX-graphicx-package-options): New variables. (LaTeX-arg-graphicx-includegraphics-key-val): New function. (LaTeX-includegraphics-extensions): Return extensions for input files depending on the used engine. (LaTeX-arg-includegraphics): Only query for the image file to include. The query for the optional key-val argument is now done by `LaTeX-arg-graphicx-includegraphics-key-val'. ("graphicx"): Extend the query for commands \resizebox[*]. Commands shared with graphics.el are guarded respectively. Add missing commands \graphicspath, \DeclareGraphicsExtensions and \DeclareGraphicsRule. 2016-09-14 Stefan Monnier Cherry-pick 9c24759a96f41e288841ec2e815d62d58dc01e7a from elpa branch * tex-ispell.el (TeX-ispell-sort-skip-cmds-list): Drop symbol-value * tex-site.el.in (TeX-modes): Use #'. 2016-09-04 Mosè Giordano Do not use a function from cl * tex-buf.el (TeX-parse-TeX): Do not use the `signum' function, provided by `cl' library. 2016-09-02 Mosè Giordano Fix type of ConTeXt-Mark-version option * context.el (ConTeXt-Mark-version): Fix the type, it was wrongly set with a string in place of a symbol. Reported by Tobias Berndt. 2016-09-01 Arash Esbati Add new style/menukeys.el * Makefile.in (STYLESRC): Add new style. * style/menukeys.el: New file. 2016-09-01 Arash Esbati Add new style/paracol.el * Makefile.in (STYLESRC): Add new style. * style/paracol.el: New file. 2016-09-01 Arash Esbati Add new style/framed.el * Makefile.in (STYLESRC): Add new style. * style/framed.el: New file. 2016-08-31 Arash Esbati Use `TeX-ispell-skip-setcar' on user defined index macros * style/splitidx.el (LaTeX-splitidx-newindex-regex): Replace wrong `^}' with `^]'. (LaTeX-splitidx-auto-cleanup, "splitidx"): Use `TeX-ispell-skip-setcar' on user defined index macros. 2016-08-31 Arash Esbati Use `TeX-ispell-skip-setcdr' on user defined listing environments * style/listings.el (LaTeX-listings-auto-cleanup): Use `TeX-ispell-skip-setcdr' on user defined lists. 2016-08-31 Arash Esbati Use `TeX-ispell-skip-setcdr' on user defined list environments * style/enumitem.el (LaTeX-enumitem-auto-cleanup): Use `TeX-ispell-skip-setcdr' on user defined lists. ("enumitem"): Use `TeX-ispell-skip-setcdr' on user defined lists. Use `TeX-argument-insert' instead of `insert'. 2016-08-25 Ikumi Keita Revise document for Japanese TeX Revise document for Japanese TeX * doc/auctex.texi (Language Support): Fix old statements. Mention about (semi-)obsolete variables japanese-(La)TeX-command-default, japanese-TeX-command-list and recommend to use japanese-TeX-engine-default instead. 2016-08-25 Ikumi Keita Add a Japanese error message translation * tex-jp.el (TeX-error-description-list): Add a Japanese error message translation. 2016-08-25 Ikumi Keita Set the right coding systems for Japanese TeX process Set the right coding systems for Japanese TeX process * tex-jp.el: (LaTeX-command-style): Remove kanji option from uplatex and jlatex, which was there by mistake. (TeX-japanese-process-input-coding-system, TeX-japanese-process-output-coding-system, japanese-TeX-set-process-coding-system): The coding systems for interacting with Japanese TeX vary with the OS and other circumstances. So choose the suitable coding system at run time rather than using the fixed values. (japanese-TeX-use-kanji-opt-flag): Declare before the first use. In addition, change default value and tailor doc string as per the above change. (japanese-TeX-coding-ejsu): Add coding system compatible for emacs 21 and xemacs. 2016-08-24 Mosè Giordano Make TeX-previous-error go backward * tex-buf.el (TeX-parse-TeX): Decrease `TeX-error-last-visited' when `arg' is negative. This fixes the behavior of `TeX-previous-error'. 2016-08-23 Arash Esbati Update style/mathtools.el to v1.18 of mathtools.sty * style/mathtools.el (LaTeX-mathtools-package-options): Add "nonrobust" option. (LaTeX-mathtools-key-val-options): Add missing key=vals. Insert a period in doc string. (LaTeX-mathtools-arg-mathstyle-completion) (LaTeX-mathtools-arg-mathsize-completion) (LaTeX-mathtools-arg-declarepaireddelimiter) (LaTeX-mathtools-env-cases) (LaTeX-mathtools-item-cases): New functions. (LaTeX-mathtools-env-multlined): Add an empty pair of square brackets if only the second optional argument is given. ("mathtools"): Update commands and environments in style hook. (LaTeX-mathtools-env-matrix-starred) (LaTeX-mathtools-env-spreadlines): Delete functions. Use ["string"] when adding environments in `LaTeX-add-environments'. 2016-08-21 Mosè Giordano Fold environments with * in name * tex-fold.el (TeX-fold-item): Add asterisk to the regexp matching LaTeX environment names. Fixes bug#24263. 2016-08-21 Mosè Giordano Remove obsolete TeX-function-p function * tex.el (TeX-function-p): Remove this function. It was introduced here in AUCTeX in 1994, but is present in Emacs since 1997 as well, under the name `functionp'. Fixes bug#24245. * tex-buf.el (TeX-command-expand): Replace `TeX-function-p' with `functionp'. 2016-08-14 Arash Esbati Add new style/empheq.el * Makefile.in (STYLESRC): Add new style. * style/empheq.el: New file. 2016-08-10 Arash Esbati Add new style/commath.el * Makefile.in (STYLESRC): Add new style. * style/commath.el: New file. 2016-08-02 Arash Esbati Add new style/pdflscape.el * Makefile.in (STYLESRC): Add new style. * style/pdflscape.el: New file. 2016-07-22 Arash Esbati Document interaction with Ispell * doc/auctex.texi (Selecting a Command): Document interaction with Ispell. 2016-07-18 Arash Esbati Add new spell checking dictionary tex-ispell.el * doc/todo.texi (Wishlist): Remove spell checking of macros from wish list. * doc/changes.texi: Mention new file tex-ispell.el in news since 11.89. Fix typo. * Makefile.in (AUCSRC): Add tex-ispell.el. * latex.el (tex-ispell): Require tex-ispell.el. * tex.el (TeX-ispell-extend-skip-list): New customizable variable. (TeX-ispell-skip-setcar, TeX-ispell-skip-setcdr): New functions. (TeX-ispell-tex-arg-end): New function. * tex-ispell.el: Add new file. 2016-07-08 Arash Esbati Reset `LaTeX-auto-xcolor-definecolorset' before parsing * style/xcolor.el (LaTeX-xcolor-auto-prepare): Reset `LaTeX-auto-xcolor-definecolorset' before parsing. Improve comments. 2016-07-08 Arash Esbati Fix doc string for curve quoting style in Emacs 25 * style/theorem.el (LaTeX-theorem-env-label): * style/ntheorem.el (LaTeX-ntheorem-env-label): * style/amsthm.el (LaTeX-amsthm-env-label): Fix doc string for new text quoting style in Emacs 25. 2016-06-29 Arash Esbati Catch up with deletion of \commondummies in texinfo.tex * doc/macros.texi: Catch up with deletion of \commondummies in texinfo.tex which is replaced with \definedummies. Check which command is defined and add AUCTeX definitions respectively. 2016-06-28 Masayuki Ataka (tiny change) Fix to doc/auctex.texi * doc/auctex.texi (Prettifying): Insert missing '{}'. 2016-06-27 Mosè Giordano Change test for PDF Tools availability * tex.el (TeX-pdf-tools-sync-view): Change test for PDF Tools availability, in order to make it possible to postpone loading of the package, for example when using "use-package". Fixes bug#23803. 2016-06-11 Tassilo Horn More about TeX-raise-frame-function * doc/auctex.texi (I/O Correlation): Improve TeX-raise-frame-function docs. * doc/changes.texi: Mention TeX-raise-frame-function. * tex.el (TeX-raise-frame-function): Use raise-frame as default value. 2016-06-11 Tassilo Horn Document TeX-raise-frame-function * doc/auctex.texi (I/O Correlation): Document TeX-raise-frame-function. 2016-06-10 Tassilo Horn New defcustom TeX-raise-frame-function * tex.el (TeX-raise-frame-function): New defcustom. (TeX-source-correlate-sync-source): Use it. 2016-06-04 Uwe Brauer Document how to disable filling for specific environments * latex.el (LaTeX-indent-environment-list): Mention in docstring that environments listed here are not filled. (LaTeX-fill-region-as-paragraph): Add information to the docstring concerning excluding enviroments from that function by using `LaTeX-indent-environment-list'. Suggested by Uwe Brauer. 2016-05-31 Mosè Giordano Fix compatibility with GNU Emacs < 24 * tex.el (TeX-source-correlate-sync-source): Call `x-focus-frame' only when it is available. 2016-05-29 Tassilo Horn Grab focus on Evince inverse search * tex.el (TeX-source-correlate-sync-source): Call `x-focus-frame'. 2016-05-29 Tassilo Horn Don't use non-existing custom-buffer-done-function * tex-wizard.el (TeX-wizard): Use `kill-buffer-hook' and `custom-buffer-done-kill' instead of `custom-buffer-done-function' which has been removed from Emacs a long time ago. 2016-05-27 Tassilo Horn Docs for prettification with Emacs 25+ * doc/auctex.texi (Prettifying): Document prettification. 2016-05-27 Stefan Monnier Fix byte-compiler warnings. * context.el: Fix some byte-compiler warnings. * tex-buf.el: Ditto. * tex-jp.el: Ditto. * tex-mik.el: Ditto. * toolbar-x.el: Ditto. 2016-05-24 Tassilo Horn Fix copyright header of tex-jp.el * tex-jp.el: Fix Copyright and Author headers. 2016-05-22 Tassilo Horn Convert ChangeLog.1 to UTF-8 * ChangeLog.1: Convert to UTF-8 and adjust encoding cookie. 2016-05-22 Tassilo Horn Make ChangeLog UTF-8 * ChangeLog-preview.1: Convert to UTF-8. * build-aux/gitlog-to-auctexlog: Remove iconv call for converting ChangeLog to ISO-8859-1. 2016-05-21 Mosè Giordano Append environment indentation rules to LaTeX-indent-environment-list * style/alltt.el ("alltt"): Append indentation rule to `LaTeX-indent-environment-list' in order not to override custom settings. Reported by François Patte. * style/beamer.el ("beamer"): Ditto. * style/doc.el ("doc"): Ditto. * style/fancyvrb.el ("fancyvrb"): Ditto. * style/filecontents.el ("filecontents"): Ditto. * style/hyperref.el ("hyperref"): Ditto. * style/listings.el (LaTeX-listings-auto-cleanup, "listings"): Ditto. * style/longtable.el ("longtable"): Ditto. * style/minted.el (LaTeX-minted-auto-cleanup, "minted"): Ditto. * style/tabularx.el ("tabularx"): Ditto. * style/tabulary.el ("tabulary"): Ditto. 2016-05-18 Arash Esbati Respect both "xcolor" and "color" for command queries * style/textpos.el ("textpos"): Remove "color" from `TeX-run-style-hooks'. ("textpos"): Respect both "xcolor" and "color" for query to "textblockcolour" and "textblockrulecolour" commands. 2016-05-18 Arash Esbati Respect both "xcolor" and "color" for query to "shadecolor" * style/ntheorem.el ("ntheorem"): Respect both "xcolor" and "color" for query to "shadecolor" command. 2016-05-18 Arash Esbati Adjust query commands for loading by xcolor.el * style/colortbl.el ("colortbl"): Run style hook for "color" only if "xcolor" is not an active style. ("colortbl"): Check if "xcolor" is an active style and run (TeX-arg-xcolor) or (TeX-arg-color) respectively to query for the arguments. 2016-05-18 Arash Esbati Run `TeX-add-symbols' if "xcolor" is not an active style * style/color.el ("color"): Check if "xcolor" is an active style and then run `TeX-add-symbols' on commands defined by "color.sty" and add fontification support. 2016-05-18 Arash Esbati Add new style/xcolor.el * Makefile.in (STYLESRC): Add new style xcolor.el. * style/xcolor.el: Add new file. 2016-05-15 Tassilo Horn Make TeX-view work better with regions * tex-buf.el (TeX-region-update-point): New function which sets point in the region buffer so that it matches the location of point in the current buffer. (TeX-view): Use it. 2016-05-14 Arash Esbati Improve the insertation of "macro" environment * style/doc.el (LaTeX-env-no-comment): Check if argument `environment' is "macro" and query/insert a name prefixed with `TeX-esc'. (LaTeX-doc-after-insert-macrocode): Add "macro" environment. ("doc"): Run `LaTeX-env-no-comment' when "macro" environment is inserted. 2016-05-14 Mosè Giordano Use commit date for package date also in configure * aclocal.m4 (AC_DATE_VERSION_FROM_CHANGELOG): Use commit date rather than author date. 2016-05-14 Ikumi Keita Tweak mode name only when file local variable is enabled. * tex-jp.el (japanese-plain-tex-mode-initialization) (japanese-latex-mode-initialization): Tweak mode name only when `enable-local-variables' is non-nil. 2016-05-12 Ikumi Keita Adapt for upLaTeX * tex-buf.el (TeX-LaTeX-sentinel): Accept banner line of upLaTeX. * tex-jp.el (japanese-LaTeX-style-list): Add class file for upLaTeX. * tex.el (TeX-format-list): Make upLaTeX class file names lead to `japanese-latex-mode'. 2016-05-09 Mosè Giordano Do not check TeX engine with ifluatex package * style/ifluatex.el ("ifluatex"): Set `TeX-check-engine-list' to nil so that the engine is not checked when this package is loaded. 2016-05-09 Mosè Giordano Check TeX engine only once * tex-buf.el (TeX-check-engine): If user does not want to change engine, do not ask again. Suggested by Joost Kremers. 2016-05-09 Mosè Giordano Use commit date to determine package date * autogen.sh (AUCTEXDATE): Use commit date, rather than author date, to determine package date. 2016-05-09 Arash Esbati Insert braces after some macros and \relax after \ProcessOptions * style/ltx-base.el ("ltx-base"): Insert a pair of braces after "DeclareOption*", "AtEndOfPackage", "AtEndOfClass", "AtBeginDocument" and "AtEndDocument". Insert a "\relax" after "ProcessOptions". 2016-05-09 Arash Esbati Improve style/doc.el * style/doc.el ("doc"): Do not indent the content inside the "macro" environment. Insert a pair of braces after "DoNotIndex", "StopEventually", "MacroFont", "AltMacroFont". Prefix the string read with TeX-esc when inserting "DescribeMacro", "cmd". Ask for an argument ("parg", "oarg", "marg", "meta"). Add missing macro "cs". Delete dups ("MacroFont", "AltMacroFont", "theCodelineNo"). Ask for .fdd and .dtx files to input or include ("DocInput", "DocInclude"). Add lengths "MacrocodeTopsep", "MacroTopsep", "MacroIndent". 2016-05-06 Mosè Giordano Allow for negative offsets in region backward search * tex.el (TeX-source-correlate-handle-TeX-region): Use the same regexp used in `preview-parse-messages', that is also XEmacs compatible and allows for negative offsets. This makes backward search work also when using `TeX-command-buffer' and `LaTeX-command-section'. Reported by Qiang Yin. 2016-04-28 Ikumi Keita Enable directory local variables in japanese-{latex, plain-tex}-mode * tex-jp.el (japanese-latex-mode-initialization): Set `major-mode' to `japanese-latex-mode' and reset it to `latex-mode' after `hack-local-variables' is done. (japanese-plain-tex-mode-initialization): Similar changes for `japanese-plain-tex-mode'. (japanese-TeX-reset-mode-name): New function. (top-level) Make `latex-mode' is regarded as parent of `japanese-latex-mode' in directory local variables. Similar addition for `japanese-plain-tex-mode', too. 2016-04-23 Ikumi Keita Make unloading of tex-site work on Emacs 24 * tex-site.el.in (tex-site-unload-hook): Run `TeX-modes-set' when `advice-add' is defined. 2016-04-20 Mosè Giordano Fix TeX-error-overview-make-entries * tex-buf.el (TeX-error-overview-make-entries): Add `active-buffer' optional argument. If `TeX-error-overview-open-after-TeX-run' is non-nil and there is an error, TeX sentinels run this function but `TeX-error-overview-active-buffer' hadn’t been initialized yet. Fixes bug#23318. 2016-04-19 Mosè Giordano Call TeX-newline-function interactively * tex.el (TeX-newline): Replace `funcall' with `call-interactively'. This makes `electric-indent-mode' work out-of-the-box. Suggested by alex (http://comments.gmane.org/gmane.emacs.auctex.devel/4631). 2016-04-19 Ikumi Keita Temporarily bind `TeX-insert-macro-default-style' to 'show-optional-args' * latex.el (LaTeX-item-argument): Temporarily bind `TeX-insert-macro-default-style' to 'show-optional-args'. This is necessary in description environment if the user customize the option to `mandatory-args-only'. 2016-04-17 Mosè Giordano Reword documentation of TeX-PDF-from-DVI * doc/auctex.texi (Processor Options): Make information about Japanese documents more accurate. Suggested by Ikumi Keita. 2016-04-16 Mosè Giordano Replace TeX-PDF-via-dvips-ps2pdf with TeX-PDF-from-DVI * tex.el (TeX-command-list): Add Dvipdfmx. (TeX-expand-list-builtin): Use `TeX-PDF-from-DVI' in place of `TeX-PDF-via-dvips-ps2pdf'. (TeX-PDF-from-DVI): New safe buffer-local and customizable variable. (TeX-PDF-via-dvips-ps2pdf): Mark as obsolete. (TeX-toggle-PDF-via-dvips-ps2pdf): Remove function. (TeX-PDF-from-DVI): New function. (TeX-mode-specific-command-menu-entries): Update menu to convert DVI to PDF. * tex-buf.el (TeX-command-default, TeX-run-set-command, TeX-TeX-sentinel, TeX-TeX-sentinel-check, TeX-LaTeX-sentinel, TeX-dvips-sentinel, TeX-ps2pdf-sentinel): Use `TeX-PDF-from-DVI' in place of `TeX-PDF-via-dvips-ps2pdf'. (TeX-run-dvipdfmx, TeX-dvipdfmx-sentinel): New function. (): * doc/auctex.texi (Processor Options): Document `TeX-PDF-from-DVI' and remove mentions to `TeX-PDF-via-dvips-ps2pdf' * doc/changes.texi: Mention `TeX-PDF-from-DVI'. 2016-04-16 Ikumi Keita Use customize option `TeX-region' instead of "_region_" * tex-buf.el (TeX-output-revert-buffer): Use customize option `TeX-region' instead of string literal "_region_". 2016-04-16 Ikumi Keita Use `deactivate-input-method' if defined * tex.el (TeX-math-input-method-off): Use `deactivate-input-method' instead of obsolete function `inactivate-input-method' when possible. 2016-04-16 Ikumi Keita Use `match-string-no-properties' * texmathp.el (texmathp, texmathp-match-environment): For better consistency with other parts of the file, change `match-string' to `no-properties' variant. 2016-04-16 Ikumi Keita Fix small errors in doc string and comment * tex.el (TeX-auto-add-type): Change the word `function' to `macro' and add an `s' to the verb `create'. * tex-buf.el (TeX-run-format): Correct a typo `debuger' to `debugger'. 2016-04-14 Mosè Giordano Fix in TeX sentinels * tex-buf.el (TeX-TeX-sentinel, TeX-LaTeX-sentinel): Use `TeX-error-overview-make-entries' to test presence of errors or warnings. This is the same test carried in `TeX-master-directory' and prevents from getting an error when `TeX-error-overview-open-after-TeX-run' is non-nil but `TeX-debug-warnings' and/or `TeX-debug-bad-boxes' are nil. 2016-04-13 Matthew Leach Auto save `TeX-command-extra-options'. * tex.el (TeX-auto-store): Save the value of `TeX-command-extra-options' so it is set project-wide. 2016-04-13 Matthew Leach TikZ: Don't allow relative points with \coordinate. * style/tikz.el (TeX-TikZ-point-function-map): Revert back to simple point alist. (TeX-TikZ-relative-point-function-map): New. (TeX-TikZ-draw-arg-function-map): Use `TeX-TikZ-relative-point-function-map'. 2016-04-13 Matthew Leach TikZ: Add the grid command. * style/tikz.el (TeX-TikZ-arg-grid): New. (TeX-TikZ-draw-arg-function-map): Map the 'Grid' command to `TeX-TikZ-arg-grid'. 2016-04-13 Matthew Leach Fix a documentation type. * doc/auctex.texi (Automatic Local): Fix a documentation typo. 2016-04-13 Mosè Giordano Prevent infinite loop in TeX-command-expand * tex.el (TeX-view-command-raw): This function should always return a string. Throw an error if fails to do so. This prevents an infinite loop in `TeX-command-expand' in the case in which `command' is nil because of a malformed viewer specification. * tests/tex/command-expansion.el (TeX-view-command-raw-errors): Add tests to trigger errors in `TeX-view-command-raw'. 2016-04-10 Ikumi Keita Integrate viewer support between tex.el and tex-jp.el * tex.el (TeX-view-program-list-builtin): Integrate viewer support between tex.el and tex-jp.el. * tex-jp.el : Ditto. 2016-04-09 Mosè Giordano Do not use add-to-list for let-bound variable * style/tikz.el (TeX-TikZ-find-named-points): Replace add-to-list with `push'. 2016-04-09 Mosè Giordano Compatibility for XEmacs * style/tikz.el (TeX-TikZ-single-macro-arg): Pass `function-alist' to `TeX-TikZ-get-arg-type` because XEmacs requires an alist as argument to `completing-read'. 2016-04-08 Matthew Leach TikZ: Remove unneeded function. * style/tikz.el (TeX-TikZ-arg-rect-point): Delete. 2016-04-08 Matthew Leach TikZ: Add the 'sin' and 'cos' connectors. * style/tikz.el (TeX-TikZ-path-connector-function-map): Add 'sin' and 'cos' mapping to `identity'. 2016-04-08 Matthew Leach TikZ: Make '+' and '++' prefixes apply to TikZ points * style/tikz.el (TeX-TikZ-get-prefix-string): New. (TeX-TikZ-arg-rect-point): Add optional argument `prefix'. (TeX-TikZ-arg-polar-point): Likewise. (TeX-TikZ-arg-named-point): Likewise. (TeX-TikZ-single-macro-arg): Allow a variable number of arguments to the argument name function map. (TeX-TikZ-point-function-map): Prefix all point types with '+' and '++'. (TeX-TikZ-path-connector-function-map): Remove the '+' and '++' suffixes. 2016-04-04 Matthew Leach TikZ: Add parabola command. * style/tikz.el (TeX-TikZ-arg-bend): New. (TeX-TikZ-arg-parabola): New. (TeX-TikZ-draw-arg-function-map): Add mapping from "Parabola" to `TeX-TikZ-arg-parabola'. 2016-04-04 Matthew Leach TikZ: Add optional parameter to `TeX-TikZ-single-macro-arg'. * style/tikz.el (TeX-TikZ-single-macro-arg): New argument OPTIONAL. (TeX-TikZ-macro-arg): Use OPTIONAL argument when calling `TeX-TikZ-single-macro-arg'. 2016-04-04 Matthew Leach TikZ: make `TeX-TikZ-single-macro-arg' prompt required. * style/tikz.el (TeX-TikZ-get-arg-type): Make prompt non-optional. (TeX-TikZ-single-macro-arg): Likewise. (TeX-TikZ-macro-arg): Make prompt explicit. 2016-04-04 Matthew Leach TikZ: Add the arc command. * style/tikz.el (TeX-TikZ-arg-arc): New. (TeX-TikZ-draw-arg-function-map): Map the 'Arc' command to `Tex-TikZ-arg-arc'. 2016-04-04 Matthew Leach TikZ: Add circle command. * style/tikz.el (TeX-TikZ-arg-circle): New. (TeX-TikZ-draw-arg-function-map): Add mapping from 'Circle' to `TeX-TikZ-arg-circle'. 2016-04-04 Stefan Monnier * tex-buf.el: Address some compiler warnings Require `latex' since we refer to some of its variables. Use #' to quote a function. Use _ prefix for unused vars. (TeX-current-process-region-p, TeX-save-query, TeX-parse-function) (TeX-sentinel-function, TeX-sentinel-default-function) (compilation-in-progress, TeX-current-page) (TeX-error-overview-open-after-TeX-run, TeX-error-list) (TeX-parse-all-errors, TeX-command-buffer, TeX-region): Declare before the first use. (TeX-command-text, TeX-command-pos): Declare as dyn-bound (TeX-command-expand): Strength reduce `eval' to `symbol-name'. (TeX-run-TeX): Use let*. (TeX-sentinel-function, TeX-sentinel-default-function): Put something in the function's body. (TeX-TeX-sentinel-check): Check ConTeXt-Mark-version exists before using it. We could have (require 'context) instead. (TeX-Biber-sentinel): Remove redundant `concat'. (TeX-error-description-list): Move before first use. (TeX-error-overview-mode-map): Remove unused var `menu-map'. (TeX-output-revert-buffer): Remove unused var `command'. 2016-04-02 Mosè Giordano Fix compatibility with older Emacs versions * tex.el: Dynamic determination of `delete-selection' behavior has been introduced in Emacs 24.3. For previous versions leave `TeX-insert-dollar' without that property. 2016-04-01 Mosè Giordano Dinamically put delete-selection prop to TeX-insert-dollar * tex.el (TeX-insert-dollar): Put `delete-selection' property only when `TeX-electric-math' is nil. Suggested by Roger Lipsett. Fixes bug#23177. 2016-03-30 Mosè Giordano Restore compatibility with XEmacs * tex-buf.el (TeX-format-filter): Use `memq' in place of `memql'. This one is not available in XEmacs. 2016-03-29 Mosè Giordano Fix previous commit 2016-03-29 Mosè Giordano New function TeX-error-report-has-errors-p * tex-buf.el (TeX-error-report-has-errors-p): New function. (TeX-error-report-switches): Update docstring. (TeX-LaTeX-sentinel, TeX-command-sequence-sentinel): Use `TeX-error-report-has-errors-p'. * tex-bar.el (TeX-bar-TeX-button-alist, TeX-bar-LaTeX-button-alist): Ditto. 2016-03-29 Matthew Leach TikZ: Add more path connector types. * style/tikz.el (TeX-TikZ-path-connector-function-map): New. (TeX-TikZ-draw-arg-function-map): Use `TeX-TikZ-path-connector-function-map'. 2016-03-29 Matthew Leach TikZ: Rename 'text' to 'label' to be consistent with TikZ terminology. * style/tikz.el (TeX-TikZ-arg-label): Rename from `TeX-TikZ-arg-text' and prompt for a 'Label' rather than 'Text'. (TeX-TikZ-arg-node): Use new function name. (TeX-TikZ-node-arg): Likewise. 2016-03-29 Matthew Leach TikZ: Ignore case when prompting for argument types. * style/tikz.el (TeX-TikZ-get-arg-type): Let-bind `completion-ignore-case' to t when prompting the user. 2016-03-29 Matthew Leach TikZ: Apply suggestions from checkdoc. * style/tikz.el (TeX-TikZ-point-function-map): Make documentation consistent with checkdoc. (TeX-TikZ-draw-arg-function-map): Likewise. (TeX-TikZ-draw-arg): Likewise and rename parameter to '_ignored'. (TeX-TikZ-coordinate-arg): Likewise. (TeX-TikZ-node-arg): Likewise. 2016-03-29 Mosè Giordano Fill environment content onley when auto-fill-mode is active * latex.el (LaTeX-insert-environment): Fill only when `auto-fill-function' is non-nil, that means auto-fill-mode is active. Reported by Florian Lindner. 2016-03-29 Matthew Leach TikZ: Add 'Named Point' point type with completion. * style/tikz.el (TeX-TikZ-point-name-regexp): New. (TeX-TikZ-find-named-points): New. (TeX-TikZ-arg-named-point): New. (TeX-TikZ-point-function-map): Add 'Named Point' element that maps to `TeX-TikZ-arg-named-point'. 2016-03-29 Matthew Leach TikZ: Add prompting for TikZ's \node macro. * style/tikz.el (TeX-TikZ-node-arg): New. 2016-03-29 Matthew Leach TikZ: Add prompting for \coordinate macro. * style/tikz.el (TeX-TikZ-point-function-map): New. (TeX-TikZ-draw-arg-function-map): Use `TeX-TikZ-point-function-map'. (TeX-TikZ-coordinate-arg): New. 2016-03-29 Matthew Leach TikZ: Extract the prompting of the next arg from TeX-TikZ-macro-arg. * style/tikz.el (TeX-TikZ-single-macro-arg): New. (TeX-TikZ-macro-arg): Use `TeX-TikZ-single-macro-arg' for prompting the user and calling the appropriate function. 2016-03-29 Matthew Leach TikZ: allow arg type prompt to be specified. * style/tikz.el (TeX-TikZ-get-arg-type): Add a new optional argument, prompt, and show that to the user when non-nil, instead of the default. 2016-03-29 Matthew Leach TikZ: split out the prompts to TeX-TikZ-arg-node & TeX-TikZ-macro-arg. * style/tikz.el (TeX-TikZ-arg-options): New. (TeX-TikZ-arg-name): New. (TeX-TikZ-arg-text): New. (TeX-TikZ-arg-node): Use new TikZ arg functions for prompting the user. (TeX-TikZ-macro-arg): Use `TeX-TikZ-arg-options' when prompting for the options. 2016-03-29 Arash Esbati Add fontification support * style/environ.el ("environ"): Add fontification support. 2016-03-29 Arash Esbati Fix a misplaced closing parenthesis * style/splitidx.el (LaTeX-splitidx-auto-cleanup): Fix a misplaced closing parenthesis. 2016-03-29 Arash Esbati Fix the name of argument in function body * style/currvita.el (LaTeX-currvita-env-with-label): Fix the name of argument in the body of function. 2016-03-29 Arash Esbati Delete redundant code * style/enumitem.el (LaTeX-arg-SetLabelAlign) (LaTeX-arg-SetEnumitemKey, LaTeX-arg-SetEnumitemValue): Delete redundant code which is part of the function `LaTeX-enumitem-update-key-val-options'. (LaTeX-enumitem-env-with-opts): Fix the name of argument in the body of function. 2016-03-28 Mosè Giordano Better control for presence of errors * tex-buf.el (TeX-LaTeX-sentinel): Use `TeX-error-report-switches' instead of `TeX-error-list'. 2016-03-27 Tassilo Horn Call TeX-after-compilation-finished-functions on warnings * tex-buf.el (TeX-LaTeX-sentinel): Skip calling TeX-after-compilation-finished-functions only if there are real errors. 2016-03-27 Matthew Leach Add the beginnings of TikZ support. * style/tikz.el: New * doc/changes.texi: Document TikZ style. * Makefile.in: Add TikZ style to the build. 2016-03-26 Tassilo Horn Fix forward sync bug with multi-file documents * tex.el (TeX-pdf-tools-sync-view): Use the current file for the sync-view call, not always the master file (bug#23083). 2016-03-19 Mosè Giordano Temporarily bind gc-cons-threshold in time-consuming task * tex.el (TeX-search-files-by-type): Bind `gc-cons-threshold' to 10000000 during the search, to reduce number of garbage collections during the task. 2016-03-17 Matthew Leach Prompt for optional short caption parameter. * latex.el (LaTeX-compose-caption-macro): New. (LaTeX-short-caption-prompt-length): New. (LaTeX-env-figure): Prompt for optional short caption parameter, when the caption length is >= `LaTeX-short-caption-prompt-length', and pass to `LaTeX-compose-caption-macro'. * style/longtable.el ("longtable"): Likewise. * style/psfig.el (LaTeX-env-psfigure): Likewise. * doc/auctex.texi (Floats): Document short-caption prompting and `LaTeX-short-caption-prompt-length'. * doc/changes.texi: Likewise. 2016-03-16 Matthew Leach Improve prompts when defining LaTeX macros. * latex.el (TeX-arg-default-argument-value): New. (TeX-arg-define-macro-arguments): New. (LaTeX-common-initialization): Use new LaTeX macro argument functions. 2016-03-12 Matthew Leach Ensure LaTeX-indent-environment-list environments aren't filled * tests/latex/latex-filling-in.tex: Add a tabular environment to ensure the body of the environment isn't filled as it is listed in LaTeX-indent-environment-list. * tests/latex/latex-filling-out.tex: Likewise. 2016-03-08 Matthew Leach Remove "table" and "table*" from LaTeX-indent-environment-list * latex.el (LaTeX-indent-environment-list): Remove the "table" and "table*" elements. 2016-03-04 Mosè Giordano Use TeX-quote-after-quote in all language style files * style/icelandic.el ("icelandic"): * style/polish.el ("polish"): * style/polski.el ("polski"): Use value of `TeX-quote-after-quote' instead of hard-coding t. 2016-02-28 Mosè Giordano Improve word-string regexp in TeX-warning * tex-buf.el (TeX-warning): Match letters, numbers, colons, and hyphens, not just word constituents. They may be preceeded by both grave accent and apostrophe, not only grave accent. * tests/tex/compilation-log.txt: Add test case. * tests/tex/error-parsing.el: Update result. 2016-02-27 Mosè Giordano Another fix for vertical bad box warnings * tex-buf.el (TeX-parse-error): Use different regexps for horizontal and vertical bad boxes, they cannot be handled together. (TeX-warning): Do not move point when a vertical bad box has been found. * tests/tex/compilation-log.txt: Add a test where the parser used to fail to find the file for warnings after a vertical bad box warning. * tests/tex/error-parsing.el: Update result accordingly. 2016-02-26 Mosè Giordano Fix parsing of vertical bad boxes context * tex-buf.el (TeX-warning): Use as context for vertical bad boxes the warning itself and don't move point. * tests/tex/compilation-log.txt: Add a test for vertical bad boxes, and horizontal bad boxes ending with "at line NN". The two warnings are in two consecutive lines, make sure the second one is correctly reported. * tests/tex/error-parsing.el: Update result of the test accordingly. 2016-02-26 Mosè Giordano Catch more bad box warnings * tex-buf.el (TeX-error-list): More information for some elements of the list. (TeX-parse-error): Change regexp to catch bad vertical boxes as well and provide new argument to `TeX-warning'. (TeX-warning): Require an additional mandatory argument, `bad-box'. Improve regexp for detecting ending line of horizontal bad boxes in order to cater for the case "...at line NN". * tests/tex/error-parsing.el: Update result of the test. 2016-02-23 Mosè Giordano Avoid checking duplicate directories in TeX-check-files * tex-buf.el (TeX-check-files): Delete duplicate directories in paths list before performing the check. 2016-02-21 Mosè Giordano Fix detection of line number in TeX-warning * tex-buf.el (TeX-warning): Require as additional mandatory argument the position where the warning starts. Use it to limit `re-search-backward' when looking for the line number. (TeX-parse-error): Provide additional argument to `TeX-warning'. * tests/tex/compilation-log.txt: Add another case where the line number of the warning was mistaken. * tests/tex/error-parsing.el: Update expected result of the test accordingly. 2016-02-21 Mosè Giordano Improve LaTeX-warnings-regexp * tex-buf.el (LaTeX-warnings-regexp): Catch also "LaTeX Font" warnings. 2016-02-21 Mosè Giordano Another fix for TeX-parse-errro * tex-buf.el (TeX-parse-error): Improve regexp for polishing file name. * tests/tex/compilation-log.txt: Add example to test file. * tests/tex/error-parsing.el: Update the expected result of the test accordingly. 2016-02-21 Mosè Giordano Allow ignoring certain warnings * tex.el (TeX-ignore-warnings, TeX-suppress-ignored-warnings): New customizable options. (TeX-toggle-suppress-ignored-warnings): New function. (TeX-mode-map): Add key-binding for `TeX-toggle-suppress-ignored-warnings'. * tex-buf.el (TeX-error-list-skip-warning-p): Add new argument and use it. (TeX-parse-TeX): Provide additional argument to `TeX-error-list-skip-warning-p'. (TeX-error-list): Document new information. (TeX-find-display-help): Add new (ignored) argument. (TeX-error): Add new element to `TeX-error-list' entry. (TeX-warning): Set the "ignore" flag for `TeX-error-list' (TeX-error-overview-make-entries): Provide additional argument to `TeX-error-list-skip-warning-p'. (TeX-error-overview-toggle-debug-bad-boxes): (TeX-error-overview-toggle-debug-warnings): Determine `TeX-master-directory' in `TeX-command-buffer'. (TeX-error-overview-toggle-suppress-ignored-warnings): New function. (TeX-error-overview-mode-map): Add key-binding for `TeX-error-overview-toggle-suppress-ignored-warnings'. (TeX-error-overview-menu): Add entry for `TeX-error-overview-toggle-suppress-ignored-warnings'. 2016-02-21 Mosè Giordano Show and hide warnings and bad boxes in error overview * tex-buf.el (TeX-error-list-skip-warning-p): New function. (TeX-parse-TeX): Skip warnings or bad boxes if they are to be ignored. (TeX-error-list): Describe information present in the list. (TeX-parse-error): When storing warnings and bad boxes, add them to `TeX-error-list' even if `TeX-debug-bad-boxes' and `TeX-debug-warnings' are nil. (TeX-error-overview-make-entries): Skip warnings or bad boxes if they are to be ignored. (TeX-error-overview-toggle-debug-bad-boxes): (TeX-error-overview-toggle-debug-warnings): New functions. (TeX-error-overview-mode-map, TeX-error-overview-menu): Add `TeX-error-overview-toggle-debug-bad-boxes' and `TeX-error-overview-toggle-debug-warnings'. (TeX-error-overview): Make the list of entries for the overview before creating the buffer and use this list to decide whether there is something to show. 2016-02-14 Mosè Giordano Fix TeX-check-files * tex-buf.el (TeX-check-files): Run the test in `TeX-master-directory' as well. 2016-02-14 Arash Esbati Add new style/splitidx.el * Makefile.in (STYLESRC): Add new style. * tex-style.el (LaTeX-splitidx-sindex-reftex-quick-id-key): Add customizable variable. * style/splitidx.el: New file. 2016-02-14 Arash Esbati Fix wrong usage of `TeX-auto-prepare-hook' * style/theorem.el (TeX-auto-cleanup-hook): * style/ntheorem.el (TeX-auto-cleanup-hook): * style/newfloat.el (TeX-auto-cleanup-hook): * style/amsthm.el (TeX-auto-cleanup-hook): Use `TeX-auto-cleanup-hook' instead of mistakenly used `TeX-auto-prepare-hook'. 2016-02-14 Arash Esbati Add support for missing macro \SetLabelAlign * style/enumitem.el ("enumitem-SetLabelAlign"): Plug \SetLabelAlign into AUCTeX parser. (LaTeX-enumitem-SetLabelAlign-regexp): New variable. (LaTeX-enumitem-auto-prepare): Reset `LaTeX-auto-enumitem-SetLabelAlign'. (LaTeX-arg-SetLabelAlign): New function to query the arguments of \SetLabelAlign. ("enumitem"): Add \SetLabelAlign to style hook incl. fontification. (LaTeX-arg-SetEnumitemValue): Use `completing-read' instead of `TeX-read-key-val'. 2016-02-13 Mosè Giordano Add support for Atril viewer Suggested by Antoine Levitt. * tex.el (TeX-evince-dbus-p): Take new arguments to specify desktop environment and application names. (TeX-evince-sync-view-1): Rename from `TeX-evince-sync-view'. Take new arguments to specify desktop environment and application names. (TeX-atril-sync-view, TeX-evince-sync-view): (TeX-view-program-select-evince): New functions. (TeX-view-program-list-builtin): Add Atril entry and use `TeX-view-program-select-evince' for Atril and Evince. (TeX-source-correlate-mode): Register for Atril DBUS signal. * doc/changes.texi: Mention Atril support. 2016-02-09 Arash Esbati Add support for dviout viewer * doc/changes.texi: Mention support for dviout on Windows. * tex.el (TeX-view-program-list-builtin): Add support for dviout on Windows. This setup works for `TeX-source-correlate-method' set to (dvi . source-specials). Reorder " %o" in entry for SumatraPDF. 2016-02-09 Arash Esbati Add support for SumatraPDF viewer * doc/changes.texi: Mention support for SumatraPDF on Windows. Fix typos. * tex.el (TeX-view-program-list-builtin): Add support for SumatraPDF on Windows. 2016-02-08 Mosè Giordano Add support for Zathura viewer * tex.el (TeX-view-program-list-builtin): Add Zathura. * doc/changes.texi: Mention Zathura support and reworked error parsing. 2016-02-07 Mosè Giordano Minor fix in TeX-documentation-texdoc * tex.el (TeX-documentation-texdoc): Make it possible to run the function in read-only buffers. 2016-02-07 Mosè Giordano Improve parsing of certain warnings * tex-buf.el (TeX-warning): Get full context and line numbers for warnings matching `LaTeX-warnings-regexp'. * tests/tex/compilation-log.txt: Add example warnings for this case. * tests/tex/error-parsing.el: Update result of test accordingly. 2016-02-07 Mosè Giordano Catch LaTeX class warnings * tex-buf.el (LaTeX-warnings-regexp): New variable. This is the same regexp used before by `TeX-LaTeX-sentinel-has-warnings' and `TeX-parse-error', but now catches class warnings as well. (TeX-LaTeX-sentinel-has-warnings, TeX-parse-error): Use `LaTeX-warnings-regexp'. 2016-02-07 Mosè Giordano Fix TeX-parse-error * tex-buf.el (TeX-parse-error): Remove from the file string pages of the output file. * tests/tex/compilation-log.txt: Add a warning containing such faulty file name. * tests/tex/error-parsing.el (TeX-error-parsing): Update result of the test accordingly. 2016-02-07 Mosè Giordano Add ERT test for error parsing * tests/tex/compilation-log.txt: Add minimal example of compilation log that failed to be parsed correctly with the old parsing function. * tests/tex/error-parsing.el: New ERT test. 2016-02-07 Mosè Giordano Add script to update the ChangeLog * ChangeLog.1: Add copyright notice and information about included commits. * Makefile.in: Add ChangeLog-related variables and rules. * build-aux/gitlog-to-auctexlog: New script, adapted from GNU Emacs. 2016-02-03 Arash Esbati Another fix for file name regexp in TeX-documentation-texdoc * tex.el (TeX-documentation-texdoc): Add `space' and `()' to file name regexp for Windows paths. 2016-02-02 Arash Esbati Fix file name regexp in TeX-documentation-texdoc * tex.el (TeX-documentation-texdoc): Add backslash separator for Windows paths. 2016-02-02 Mosè Giordano Capture warnings from packages with hyphens in name * tex-buf.el (TeX-LaTeX-sentinel-has-warnings): Add hyphen to regexps. (TeX-parse-error): Ditto. 2016-02-02 Mosè Giordano New function for reading documentation with texdoc * tex.el (TeX-documentation-texdoc): New function. (TeX-common-menu-entries): Replace `TeX-doc' with `TeX-documentation-texdoc'. (TeX-mode-map): Ditto. * doc/auctex.texi (Documentation): Document `TeX-documentation-texdoc' in place of `TeX-doc'. * doc/changes.texi: Mention `TeX-documentation-texdoc'. 2016-01-31 Tassilo Horn Capture message of LaTeX warnings * tex-buf.el (TeX-parse-error): Capture message of LaTeX warnings. 2016-01-30 Mosè Giordano Use default argument of completing-read in ConTeXt-environment * context.el (ConTeXt-environment): Properly use default argument of `completing-read'. Do not set `ConTeXt-default-environment' to `environment' if the latter is equal to the current default environment, like in `LaTeX-environment'. 2016-01-30 Mosè Giordano Add completion for environments in ConTeXt * context.el (ConTeXt-language-variable-list): Document variable. Add `ConTeXt-environment-list' so that now completion for environments names in `ConTeXt-environment' function works. Suggested by Andrea De Michele. 2016-01-27 Mosè Giordano Change coding back to iso-8859-1, XEmacs doesn't support utf-8 * font-latex.el: Restore coding to iso-8859-1. * style/alphanum.el: Ditto. * style/dk-bib.el: Ditto. * style/doc.el: Ditto. * style/inputenc.el: Ditto. * style/jura.el: Ditto. * style/ltx-base.el: Ditto. * style/ltxdoc.el: Ditto. * tex-font.el: Ditto. * tex.el: Ditto. 2016-01-25 Mosè Giordano Code cleaning * latex.el (TeX-arg-document): Remove useless (mapcar 'identity ...). Suggested by Marcin Borkowski. * style/biblatex.el (LaTeX-biblatex-package-options): Ditto. 2016-01-24 Arash Esbati Improve style/enumitem * style/enumitem.el (LaTeX-enumitem-newlist-list) (LaTeX-enumitem-newlist-list-item-arg) (LaTeX-auto-enumitem-newlist): Remove variables. (LaTeX-enumitem-newlist-list-local): Fix docstring. (LaTeX-enumitem-auto-cleanup): Plug \newlist into AUCTeX parser. ("enumitem"): Offer only enumerated environments as completion for \restartlist. 2016-01-24 Arash Esbati Improve font related queries * style/theorem.el (LaTeX-theorem-fontdecl): Do not prefix the elements with `TeX-esc'. (LaTeX-arg-theorem-fontdecl): New function. ("theorem"): Use `LaTeX-arg-theorem-fontdecl' for font related queries. 2016-01-24 Arash Esbati Improve font related queries * style/ntheorem.el (LaTeX-ntheorem-fontdecl): Do not prefix the elements with `TeX-esc'. (LaTeX-arg-ntheorem-fontdecl): New function. ("ntheorem"): Use `LaTeX-arg-ntheorem-fontdecl' for font related queries. 2016-01-24 Arash Esbati Improve font related queries * style/amsthm.el (LaTeX-amsthm-fontdecl): Do not prefix the elements with `TeX-esc'. (LaTeX-arg-amsthm-fontdecl): New function. ("amsthm"): Use `LaTeX-arg-amsthm-fontdecl' for font related queries. 2016-01-23 Mosè Giordano Write TeX-style-hook-dialect to parsed file * latex.el (BibTeX-auto-store): Run `TeX-bibtex-set-BibTeX-dialect'. * tex.el (TeX-auto-store): Store `TeX-style-hook-dialect' from buffer and write it to parsed file when present. 2016-01-23 Mosè Giordano Add new dialects * context.el: Update copyright years. (ConTeXt-dialect): New constant. (ConTeXt-mode-common-initialization): Set `TeX-style-hook-dialect' to `ConTeXt-dialect'. * plain-tex.el: Update copyright years. (plain-TeX-dialect): New constant. (plain-TeX-common-initialization): Set `TeX-style-hook-dialect' to `plain-TeX-dialect'. * tex.el (TeX-style-hook-dialect): Document new dialects. (TeX-style-hook-dialect-weight-alist): Add plain-tex and context dialects. 2016-01-23 Mosè Giordano Convert tex-font.el to UTF-8 coding * tex-font.el: set coding to utf-8. 2016-01-23 Mosè Giordano Move \iff macro to Arrows section of LaTeX-math-default * latex.el (LaTeX-math-default): \iff symbol is defined in base LaTeX, move it to the "Arrows" section. 2016-01-20 Mosè Giordano Fix bug in subfigure style file * style/subfigure.el ("subfigure"): Move `TeX-complete-list' inside append argument. Fixes bug#22417. 2016-01-17 Mosè Giordano Add some AMS arrows to LaTeX-math-default * latex.el (LaTeX-math-default): Add `impliedby', `implies', and `iff' arrows. Suggested by Aiko Kyle. 2016-01-10 Mosè Giordano url macro accepts only braces in hyperref * style/hyperref.el: Update copyright years. ("hyperref"): Remove "url" from `LaTeX-verbatim-macros-with-delims-local', it was added by url.el, but in hyperref "\url" has a different syntax. 2015-12-18 Ivan Andrus Fix bug in `preview-LaTeX-disable-pdfoutput' * preview.el.in (preview-LaTeX-disable-pdfoutput): Allow one or more spaces between command line arguments. 2015-12-04 Tassilo Horn Delete .cvsignore I'm pretty confident we won't switch back. ;-) 2015-11-30 Arash Esbati Fix query prompt * style/ntheorem.el ("ntheorem"): * style/theorem.el ("theorem"): Fix wrong query prompt. 2015-11-30 Mosè Giordano Fix regex in texmathp * texmathp.el: Replace \t with \r. Reported by Marcin Borkowski. 2015-11-24 Tassilo Horn Rename TeX-after-compilation-finished-hook to -functions * tex-buf.el (TeX-after-compilation-finished-functions): Rename from -hook to -functions. (TeX-LaTeX-sentinel): Adapt. * context.el (TeX-ConTeXt-sentinel): Adapt. 2015-11-23 Arash Esbati Add new style/ntheorem.el * Makefile.in (STYLESRC): Add new style. * style/ntheorem.el: New file. 2015-11-23 Arash Esbati Add new style/theorem.el * Makefile.in (STYLESRC): Add new style. * style/theorem.el: New file. 2015-11-23 Arash Esbati Improve style/amsthm.el * style/amsthm.el (LaTeX-amsthm-fontdecl): Cover all font changing declarations. ("amsthm"): Overrule the defintion for \newtheorem in `latex.el'. ("amsthm"): Use `TeX-completing-read-multiple' for font related queries. 2015-11-23 Tassilo Horn Rename TeX-after-TeX-LaTeX-command-finished-hook * tex-buf.el (TeX-after-compilation-finished-hook): Rename from TeX-after-TeX-LaTeX-command-finished-hook. * context.el (TeX-ConTeXt-sentinel): Run TeX-after-compilation-finished-hook when the compilation was successful. * doc/auctex.texi (Modes and Hooks): Adapt docs. 2015-11-21 Mosè Giordano Convert Elisp source files to UTF-8 * font-latex.el: Change coding to UTF-8 * style/alphanum.el: Ditto. * style/dk-bib.el: Ditto. * style/doc.el: Ditto. * style/inputenc.el: Ditto. * style/jura.el: Ditto. * style/ltx-base.el: Ditto. * style/ltxdoc.el: Ditto. * tex.el: Ditto. 2015-11-19 Mosè Giordano Fix bug in TeX-command-sequence * tex-buf.el (TeX-command-sequence): Ask for TeX-master if unknown, otherwise running this function on a file without a known `TeX-master' will result in `TeX-master' being automatically set to "" at some point. (TeX-region-file): Add a third compatibility argument and update docstring accordingly. 2015-11-19 Mosè Giordano Remove support to "Master:" line * tex.el (TeX-convert-master): Remove now unused variable. (TeX-master-file): Remove support to "Master:" line and update documentation accordingly. 2015-11-15 Mosè Giordano Activate RefTeX reference styles * tex-style.el (LaTeX-reftex-ref-style-auto-activate): New customizable variable. * style/cleveref.el ("cleveref"): Activate RefTeX reference style. * style/fancyref.el ("fancyref"): Ditto. * style/varioref.el ("varioref"): Ditto. * style/hyperref.el ("hyperref"): Use `LaTeX-reftex-ref-style-auto-activate'. 2015-11-15 Mosè Giordano Determine AUCTEXDATE and AUCTEXVERSION from git * aclocal.m4 (AC_DATE_VERSION_FROM_CHANGELOG): if this is git repository, use it to determine the variables. * autogen.sh: Ditto. 2015-11-14 Mosè Giordano Fix error in autogen.sh, configure, and Makefile * Makefile.in (doc/Makefile): Replace ChangeLog with ChangeLog.1. * autogen.sh: Ditto. * configure.ac: Ditto. * doc/Makefile.in (version.texi): Ditto. 2015-11-13 Mosè Giordano Drop ChangeLog * .gitignore: Add ChangeLog and auto dirs in tests. * ChangeLog.1: Rename from ChangeLog. * Makefile.in (EXCLUDEDFILES): Exclude build-aux directory. * build-aux/gitlog-to-changelog: Copy script from gnulib. 2014-05-02 Tassilo Horn Improve new-file regex. * tex-buf.el (TeX-parse-error): Improve new-file regex. 2014-04-29 Tassilo Horn Fix Wrong type argument: characterp, nil error. * tex-buf.el (TeX-format-filter): Fix error caused by trying to get char syntax from char after EOF. 2014-04-27 Tassilo Horn Don't use TRIM arg of split-string. * tex-buf.el (TeX-parse-error): Don't use TRIM arg of `split-string' which is new in emacs 24.4. 2014-04-25 Tassilo Horn Improve line wrap removal heuristics. * tex-buf.el (TeX-format-filter): Remove linebreaks at columns 79 and also column 80. Also remove linebreaks preceded by a period that are followed by a word character to remove linebreaks in file names that are wrapped just after the period starting the file name extension. 2014-04-24 Tassilo Horn Improve TeX error parsing. * tex-buf.el (TeX-error): Error if file containing the TeX error doesn't exist instead of finding a new file. (TeX-parse-error): Greatly simplify the new file and end of file regexps. 2015-11-13 Mosè Giordano * Version 11.89 released. 2015-11-12 Mosè Giordano * RELEASE: Update AUCTeX version, the new features section, and the list of contributors. * configure.ac: Update AUCTeX version. * doc/changes.texi: Mention PDF Tools and generic features for 11.89 release. * doc/tex-ref.tex: Update AUCTeX version and copyright years across the file. * latex.el: Update copyright year. * latex/preview.dtx: Manually update release version. * Makefile.in (WEMACSPACKAGE): Update for Emacs 24.5 (www-doc): Download gendocs.sh patch from AUCTeX repository. * tex.el (TeX-view-predicate-list-bultin): For `has-no-display-manager' predicate, use the current test only for old Emacsen, otherwise employ `display-graphic-p'. Suggested by Santiago Saavedra. 2015-11-11 Mosè Giordano * tests/latex/latex-test.el (LaTeX-math-indent) (LaTeX-change-environment-with-esc): New tests. * tests/latex/math-indent-in.tex: New test file. * tests/latex/math-indent-out.tex: Ditto. 2015-11-10 Mosè Giordano * latex.el (LaTeX-fill-break-at-separators): Change default value to opening only inline and display math switches. * tests/latex/latex-filling-in.tex: New test file. * tests/latex/latex-filling-out.tex: Ditto. * tests/latex/latex-test.el (LaTeX-indent-tabular-test/in) (LaTeX-indent-tabular-test/out): Remove variables defined with `defvar'. (AUCTeX-set-ert-path): New function for setting the path of the ERT test files. (LaTeX-filling): New ERT test. 2015-11-10 Tassilo Horn * tex-buf.el (TeX-revert-document-buffer): New function. (TeX-after-TeX-LaTeX-command-finished-hook): Mention it in docstring. * doc/auctex.texi (Modes and Hooks): Mention it in manual. 2015-11-10 Santiago Saavedra (tiny change) * tex.el (TeX-command-list, TeX-view-program-list-builtin) (TeX-view-program-selection): Add dvi2tty as a first-class command, removing it from a load-time quasiquotation so that the strategy for selecting it or evince goes down to the frame performing the View command. Fixes bug#21873. 2015-11-09 Mosè Giordano * tex-info.el: Update copyright years. (Texinfo-nodename-de-escape, Texinfo-nodename-escape): Use `TeX-assoc-string' in place of `assoc-string'. 2015-11-08 Mosè Giordano * tex-info.el (TeX-texinfo-mode): Set `TeX-output-extension'. Remove compatibility code with old Emacsen. 2015-11-06 Mosè Giordano * tex-buf.el (TeX-check-TeX, TeX-check-TeX-command-not-found): New customizable options. (TeX-command): Do a better check for the presence of a TeX distribution. Run `call-process' instead of `executable-find', like `TeX-run-command' actually does. The point is that `call-process' and `start-process' use `PATH' environment variable, `executable-find' uses `exec-path' variable and they do not need to match, but we should check what `TeX-run-command' will really do. * doc/auctex.texi (Processor Options): Document `TeX-check-TeX'. * doc/changes.texi: Mention `TeX-check-TeX'. 2015-11-03 Mosè Giordano * doc/auctex.texi (Processor Options): Document `ConTeXt-Mark-version'. (Multifile): Mention `dwim' value for `TeX-master'. * doc/changes.texi: Mention `ConTeXt-Mark-version'. 2015-11-02 Mosè Giordano * latex.el (TeX-arg-document): When `TeX-arg-input-file-search' is nil, use `LaTeX-style-list' to complete document classes. Fixes bug#21814. 2015-10-31 Arash Esbati * Makefile.in (STYLESRC): Add new style. * style/hologo.el: New file. 2015-10-28 Tassilo Horn * latex.el (LaTeX-fill-break-at-separators): Default to nil because many users don't like that special filling. * tex-info.el (Texinfo-make-node-list): Warn about duplicate nodes. Return nodes in order instead of reversed. 2015-10-25 Vincent Belaïche * tex-info.el (Texinfo-nodename-de-escape): New defun. (Texinfo-nodename-escape): New defun. (Texinfo-make-node-list): New defun, code taken from Texinfo-insert-node into this function for the sake of code factorization. In addition, (1) allow node name not to be followed by a comma --- i.e. next node etc. unspecified --- (2) trim trailing blanks after node name, and (3) de-escape @comma{} before insertion of node name into the list. (Texinfo-insert-node): (1) Use new function `Texinfo-make-node-list', and (2) escape node names for commas. (Texinfo-arg-nodename): New defun. (TeX-texinfo-mode): (1) Remove `group' from list of commands, `group' is an environment, not a command. (2) Add `guillemetleft', `guillemetright', `guilsinglleft', `guilsinglright', `quotedblbase' and `quotesinglbase' to the list of commands. (3) For commands `pxref', `ref' and `xref', use new function `Texinfo-arg-nodename' to read node name with completion. 2015-10-24 Arash Esbati * style/enumitem.el (LaTeX-enumitem-auto-cleanup): Move some operations from style hook into this function. (LaTeX-enumitem-newlist-list-item-arg-local): Delete now unused variable. * style/amsthm.el (LaTeX-amsthm-theoremstyle-list): New variable replacing the deleted function `LaTeX-amsthm-complete-theoremstyle'. (LaTeX-amsthm-env-label): New function to insert user defined environments. ("amsthm"): Improve handling of "newtheorem*" and "newtheoremstyle". * style/AlegreyaSans.el ("AlegreyaSans"): Remove SmallCaps font declaration command. * style/Alegreya.el ("Alegreya"): Remove SmallCaps font declaration command. * style/caption.el (LaTeX-arg-caption-captionbox): Fix doctring. * style/subcaption.el (LaTeX-arg-subcaption-subcaption): Fix doctring. (LaTeX-arg-subcaption-subcaptionbox): ditto. 2015-10-19 Mosè Giordano * tex-buf.el (TeX-command): Check that AUCTeX can find a working TeX distribution before running some *TeX commands. 2015-10-18 Mosè Giordano * tex.el (fboundp): Define a `TeX-completing-read-multiple' version for GNU Emacs >= 24.4. Fixes bug#19504. 2015-10-13 Mosè Giordano * style/pstricks.el ("pstricks"): Do not disable PDF mode if XeTeX engine is used. Suggested by Mandar Mitra. 2015-10-09 Tassilo Horn * latex.el (LaTeX-fill-move-to-break-point): Fill $...$ like \(...\) (bug#21645) 2015-10-08 Mosè Giordano * tex.el (TeX-expand-list-builtin): New variable. (TeX-expand-list): Move all entries to `TeX-expand-list-builtin' and update docstring. (TeX-expand-list): New function. * tex-buf.el (TeX-command-expand): Use `TeX-expand-list' function. * doc/auctex.texi (Starting Viewers): Mention `TeX-expand-list-builtin'. * doc/changes.texi: Mention change to `TeX-expand-list'. 2015-10-08 Arash Esbati * style/longtable.el ("longtable"): Use `LaTeX-add-counters' on "LTchunksize" and not `TeX-add-symbols'. * style/enumitem.el (LaTeX-arg-SetEnumitemKey): Remove unused `prompt' from arguments list. (LaTeX-arg-SetEnumitemValue): ditto. * style/listings.el (LaTeX-listings-key-val-options-local): New variable used for all key-val queries. ("listings-lstdefinestyle"): Add parsing support for "\lstdefinestyle". (LaTeX-listings-lstnewenvironment-regexp): Add missing "s" to "listing". (LaTeX-listings-update-style-key): New function adding newly defined values to "style" key in `LaTeX-listings-key-val-options-local'. ("listings"): Extend "lstdefinestyle". * style/wrapfig.el ("wrapfig"): Check for new floating environments definded through "newfloat.el" and offer them as completion to "wrapfloat" environment. 2015-10-05 Mosè Giordano * context.el (TeX-ConTeXt-sentinel): Parse ConTeXt Mark IV output. * tex-buf.el (TeX-TeX-sentinel-check): Ditto. 2015-10-05 Arash Esbati * style/newfloat.el (LaTeX-newfloat-auto-cleanup): Check if `LaTeX-caption-supported-float-types' from caption.el is bound and update it accordingly. Fix docstring. ("newfloat"): Fix wrong check with (LaTeX-largest-level). ("newfloat"): Use `LaTeX-newfloat-key-val-options-local' and delete redundant code. 2015-10-04 Mosè Giordano * context.el (ConTeXt-Mark-version): New customizable and safe-local variable. (ConTeXt-expand-command): New function. (ConTeXt-expand-options): Use `ConTeXt-Mark-version'. * tex.el (TeX-command-list): Use %(cntxcom) expander in all ConTeXt programs. Remove MkIV entry. (TeX-expand-list): Add %(cntxcom). 2015-10-04 Tassilo Horn * font-latex.el (font-latex-math-environments): Add math environment. 2015-10-04 Mosè Giordano * tex.el (TeX-command-list): Add MkIV to `TeX-command-list'. 2015-09-29 Mosè Giordano * style/newfloat.el (LaTeX-newfloat-auto-cleanup): Replace another `pushnew' with `add-to-list', previously overlooked. 2015-09-28 Mosè Giordano * style/newfloat.el: Do not require cl at loading time. (LaTeX-newfloat-auto-cleanup): Append elements to `LaTeX-label-alist' in order not to override possible custom values. 2015-09-27 Arash Esbati * Makefile.in (STYLESRC): Add new style. * style/newfloat.el: New file. * style/longtable.el ("longtable"): Make package lengths available through `LaTeX-add-lengths' and not `TeX-add-symbol'. 2015-09-26 Mosè Giordano * tex.el (TeX-search-files-kpathsea): Remove duplicates directories. 2015-09-26 Tassilo Horn * tex.el (TeX--prettify-symbols-compose-p): New function. (VirTeX-common-initialization): Use it. 2015-09-25 Arash Esbati * Makefile.in (STYLESRC): Add new style. * style/subcaption.el: New file. * style/caption.el (LaTeX-caption-key-val-options): Fix values of hypcap-key. (LaTeX-caption-update-key-val-options): Add support for subcaption.el if loaded. (LaTeX-arg-caption-captionbox): Do not query for the third optional arg. if the second one is empty. ("caption"): Add support for all lowercase \continuedfloat*?. ("caption"): Fix fontification for \captionof. * style/hyperref.el ("hyperref"): Make `LaTeX-indent-environment-list' local before adding new env's. * style/filecontents.el ("filecontents"): Make `LaTeX-indent-environment-list' local before adding new env's. * style/fontenc.el: Fix mail address in Maintainer-header. 2015-09-25 Mosè Giordano * latex.el (LaTeX-common-initialization): Remove "abstract" environment, it is not defined in latex.ltx. * style/amsart.el ("amsart"): Add "abstract" environment. * style/amsbook.el ("amsbook"): Ditto. * style/article.el ("article"): Ditto. * style/memoir.el ("memoir"): Ditto. * style/report.el ("report"): Ditto. * style/scrartcl.el ("scrartcl"): Ditto. * style/scrreprt.el ("scrreprt"): Ditto. 2015-09-24 Mosè Giordano * tex.el (TeX-doc): Use default argument of `completing-read'. 2015-09-22 Tassilo Horn * latex.el (LaTeX-find-matching-end): Find correct end when point is already on the name in \end{name}. 2015-09-20 Mosè Giordano * .gitignore: Do not ignore auto.el. * Makefile.in (install-metadata): auto.el is not there anymore, we do not need to test if preview is enabled here. 2015-09-19 Tassilo Horn * tex-buf.el (TeX-error-overview): Fix typo in error message. (TeX-TeX-sentinel): Fix error parsing. 2015-09-13 Arash Esbati * style/eso-pic.el (LaTeX-eso-pic-package-options-list): Rename from `LaTeX-eso-pic-package-options'. (LaTeX-eso-pic-package-options): Use renamed variable. * style/AlegreyaSans.el: New file. * Makefile.in (STYLESRC): Add new style. * style/Alegreya.el: New file. * Makefile.in (STYLESRC): Add new style. * style/fontenc.el: New file. 2015-09-10 Mosè Giordano * style/gloss-italian.el ("gloss-italian"): Fix "textitalian" macro and "italian" environment arguments. * style/polyglossia.el (LaTeX-polyglossia-prepare): Clear `LaTeX-polyglossia-lang-list'. (LaTeX-polyglossia-cleanup): Remove clearing of `LaTeX-polyglossia-lang-list'. (TeX-update-style-hook): Append `LaTeX-polyglossia-load-languages'. ("polyglossia"): Remove `LaTeX-polyglossia-load-languages' from here. 2015-09-09 Mosè Giordano * style/polyglossia.el: Remove `LaTeX-polyglossia-italian-options-list', moved to gloss-italian.el. (LaTeX-polyglossia-setkeys-regexp): Fix regexp. (LaTeX-polyglossia-cleanup): Remove useless let-bound variables and set `LaTeX-polyglossia-lang-list'. (LaTeX-polyglossia-active-languages) (LaTeX-polyglossia-lang-option-member): Use `LaTeX-polyglossia-lang-list' variable instead of function. (LaTeX-polyglossia-load-languages): New function. ("polyglossia"): Use it. * style/gloss-italian.el: New style file. * Makefile.in (STYLESRC): Activate it. * style/polyglossia.el: New style file. * Makefile.in (STYLESRC): Activate it. 2015-09-08 Arash Esbati * style/hyperref.el ("hyperref"): Add completion for starred version of `\autoref' incl. fontification. ("hyperref"): Add fontification support for `\hypersetup'. 2015-09-08 Tassilo Horn * tex-buf.el (TeX-command-default): Fix bug where wrong command was guessed for region files. 2015-09-07 Mosè Giordano * tex-buf.el (LaTeX-idx-md5-alist, LaTeX-idx-changed-alist): New variables. (TeX-command-sequence): Call file function without optional arguments. (TeX-command-default): Suggest "Index" when appropriate. (TeX-run-TeX): Store value of `LaTeX-idx-md5-alist'. (TeX-run-index): New function. (TeX-LaTeX-sentinel): Set `LaTeX-idx-changed-alist'. (TeX-index-sentinel): New function. * tex.el (TeX-command-list): Mention "makeindex" in "Index" help. Suggested by Arash Esbati. * doc/changes.texi: Mention ability to suggest makeindex when needed. * doc/todo.texi (Wishlist): Remove reference to makeindex. * doc/tex-ref.tex: Update copyright years. Mention C-c C-a key binding. 2015-09-05 Tassilo Horn * font-latex.el (font-latex-unfontify-region): Also remove the `invisible' text properties. 2015-09-04 Mosè Giordano * doc/auctex.texi (Starting a Command): Update references to `TeX-command-run-all' and C-c C-a key binding. * doc/changes.texi: Ditto. * doc/quickstart.texi (Processing Facilities): Ditto. * tex-buf.el (TeX-command-run-all): Use `universal-argument' to reference C-u. 2015-09-04 Tassilo Horn * tex-buf.el (TeX-command-sequence-file-function): New variable. (TeX-command-sequence): Use it. (LaTeX-command-section-boundaries): Recognize end of document as ultimate boundary. (LaTeX-command-section): Signal an error if not in a LaTeX buffer. (LaTeX-command-run-all-section): Ditto. * tex.el: Add autoloads for the new commands. * tex-buf.el (TeX-region-update): New function. (TeX-command-region): Use it. (LaTeX-command-section-boundaries): New function. (LaTeX-command-section): Use it. (TeX-command-run-all-region): New command. (LaTeX-command-run-all-section): New command. (TeX-command-run-all): Move it here from tex.el. * tex.el (TeX-command-run-all): Rename from TeX-update. (TeX-mode-map): Bind TeX-command-run-all to C-c C-a. 2015-09-03 Tassilo Horn * font-latex.el (font-latex-fontify-script): Add possible value `multi-level' to allow raising/lowering scripts of scripts, and another value `invisible' which in addition hides the ^ and _ characters in scripts. (font-latex-match-script): Use it. (font-latex-make-user-keywords): Add font-lock entry for script signs. (font-latex-match-script-chars): New function. * tex.el (TeX-tex-mode): Don't ignore case when matching the TeX-format-list regexes. (TeX-expand-list): Add expansion of %(PDFout) to -output-format option for AmS-TeX. (TeX-command-list): Use it instead of calling the non-existing pdfamstex command. 2015-09-02 Tassilo Horn * font-latex.el: Remove code which set up font-latex for use with stock latex-mode on load. 2015-09-01 Tassilo Horn * tex-buf.el (TeX-command-sequence): Add argument for processing the region file instead of the master file. * tex.el (TeX--if-macro-fboundp): New portability macro. (VirTeX-common-initialization): Use it. 2015-08-31 Mosè Giordano * tex-buf.el (TeX-previous-error): Delete point in error message. (TeX-command-default) (TeX-run-set-command): Take care of `TeX-PDF-via-dvips-ps2pdf'. (TeX-run-dvips, TeX-run-ps2pdf): New functions. (TeX-TeX-sentinel, TeX-TeX-sentinel-check, TeX-LaTeX-sentinel): Take care of `TeX-PDF-via-dvips-ps2pdf'. (TeX-dvips-sentinel, TeX-ps2pdf-sentinel): New functions. (TeX-parse-command, TeX-output-revert-buffer): Delete point in error message. * tex.el (TeX-command-list): Add "Dvips" and "Ps2pdf" entries. (TeX-expand-list): Take care of `TeX-PDF-via-dvips-ps2pdf'. (TeX-PDF-via-dvips-ps2pdf): New customizable and safe-local variable. (TeX-toggle-PDF-via-dvips-ps2pdf): New function. (TeX-mode-specific-command-menu-entries): Add "PDF via dvips + ps2pdf" entry. * doc/auctex.texi (Processor Options): Document `TeX-PDF-via-dvips-ps2pdf' and fix a typo. * doc/changes.texi: Mention `TeX-PDF-via-dvips-ps2pdf'. * doc/quickstart.texi (Processing Facilities): Mention `TeX-PDF-via-dvips-ps2pdf'. * tex-buf.el: Update copyright year. (TeX-command-sequence-max-runs-same-command) (TeX-command-sequence-max-runs): New customizable variables. (TeX-command-sequence-count-same-command) (TeX-command-sequence-count, TeX-command-sequence-last-command) (TeX-command-sequence-sentinel, TeX-command-sequence-command): New variables. (TeX-command-sequence): New function. (TeX-command-default): New function, stripped off from `TeX-command-query'. (TeX-command-query): Use `TeX-command-default'. (TeX-command-sequence-sentinel): New function. * tex.el (TeX-update): New function. (TeX-mode-map): Add key binding for `TeX-update'. (TeX-mode-specific-command-menu-entries): Add entry for `TeX-update'. * doc/auctex.texi: Update copyright year. (Starting a Command): Document `TeX-update'. * doc/changes.texi: Update copyright year. Mention `TeX-update'. * doc/quickstart.texi (Processing Facilities): Mention `TeX-update' and `TeX-error-overview'. * doc/todo.texi: Update copyright year. (Wishlist): Remove entry for `TeX-update'. 2015-08-30 Arash Esbati * style/caption.el ("caption"): Add support for undocumented macros `\captionbox[*]'. (LaTeX-arg-caption-captionbox): New function. * Makefile.in (STYLESRC): Add new style. * style/transparent.el: New file. * style/filecontents.el ("filecontents"): Do not indent the content of `filecontents[*]' environment. * style/hyperref.el ("hyperref"): Do not indent the content of `Form' environment. * style/array.el ("array"): Add fontification for `\newcolumntype'. 2015-08-28 Tassilo Horn * tex.el (TeX-mode-syntax-table): Use punctuation syntax for character | (bug#21366). 2015-08-24 Tassilo Horn * tex.el (VirTeX-common-initialization): Add support for `prettify-symbols-mode'. 2015-08-21 Mosè Giordano * tex-buf.el (TeX-check-engine): New customizable variable. (TeX-check-engine-list): New variable. (TeX-check-engine-add-engines): New function. (TeX-check-engine): New function. (TeX-command): Use `TeX-check-engine' and update docstring accordingly. * style/fontspec.el ("fontspec"): Add engine restrictions. * doc/auctex.texi (Processor Options): Document `TeX-check-engine'. * doc/changes.texi: Mention `TeX-check-engine'. 2015-08-20 Mosè Giordano * tex-buf.el (TeX-error-overview-jump-to-source) (TeX-error-overview-goto-log): New functions. (TeX-error-overview-mode-map): Add `TeX-error-overview-jump-to-source' and `TeX-error-overview-goto-log'. (TeX-error-overview-menu): Define menu for TeX error overview. (TeX-error-overview-mode): Add menu. * doc/auctex.texi (top) (Debugging): Add section for error overview. (Error overview): Document new functions and keys. 2015-08-19 Mosè Giordano * latex.el (LaTeX-label): Mention in the docstring the returned value. Let-bind `TeX-read-label-prefix' and use `TeX-read-label' to read the label. (TeX-read-label-prefix): New variable. (TeX-read-label): New function. (TeX-arg-label): Use `TeX-read-label' and mention `TeX-read-label-prefix' in docstring. (TeX-arg-define-label): Mention `TeX-read-label-prefix' in docstring. 2015-08-14 Arash Esbati * latex.el (LaTeX-common-initialization): Fix the subgroup number in the regex for `\\(this\\)?pagestyle' 2015-08-10 Tassilo Horn * latex.el (TeX-latex-mode): Call LaTeX-preview-setup only if its bound. * preview.el.in (LaTeX-preview-setup): Setup menu and keymap only once. 2015-08-09 Arash Esbati * style/enumitem.el ("enumitem"): Cater for the starred version of `\AddEnumerateCounter'. * style/ragged2e.el ("ragged2e"): Make package lengths available through `LaTeX-add-lengths' and not `TeX-add-symbol'. 2015-08-07 Tassilo Horn * latex.el (TeX-latex-mode): Call `LaTeX-preview-setup' unconditionally instead of calling it from `LaTeX-mode-hook' which breaks things if that hook is customized (bug#21188). * preview.el.in: Don't add `LaTeX-preview-setup' to `LaTeX-mode-hook'. 2015-07-21 Arash Esbati * style/nameref.el ("nameref"): Add missing commands `\nameref*' and `\Nameref'. * style/textpos.el ("textpos"): Fix the name of the provided env's which is `textblock' and not `textpos'. 2015-07-18 Arash Esbati * latex.el (LaTeX-common-initialization): Query for the default value of first arg when (re-)defining new environments. * Makefile.in (STYLESRC): Add new style. * style/vwcol.el: New file. * Makefile.in (STYLESRC): Add new style. * style/textpos.el: New file. * Makefile.in (STYLESRC): Add new style. * style/environ.el: New file. * style/tabulary.el ("tabulary"): Add `LCRJ' to `LaTeX-array-column-letters'. * style/tabularx.el ("tabularx"): Add `X' to `LaTeX-array-column-letters'. * style/array.el: Parse user-defined new column types and add them to `LaTeX-array-column-letters'. 2015-07-09 Mosè Giordano * latex/README: restore file deleted by mistake when preview/ directory has been moved to top level. * Makefile.in: Use everywhere $(MAKE) in place of make. 2015-06-21 Mosè Giordano * tex-buf.el (TeX-LaTeX-sentinel): Add support for hf-tikz messages. * style/mnras.el: New style file. * Makefile.in (STYLESRC): Activate it. 2015-06-14 Arash Esbati * style/pdfpages.el ("pdfpages"): Restrict suggested files to *.pdf files. File name should be relative to master file directory. 2015-06-13 Mosè Giordano * tex-buf.el (TeX-LaTeX-sentinel-has-warnings, TeX-parse-error): Cater for packages with digits in their names (e.g., fixltx2e, which emits a warning from TeX Live 2015). 2015-06-09 Tassilo Horn * tex.el (TeX-evince-dbus-p): Explicitly bind dbus-debug to nil in order to really ignore dbus errors with dbus-ignore-errors. 2015-06-05 Arash Esbati * Makefile.in (STYLESRC): Add new style. * style/pdfpages.el: New file. * style/listings.el (LaTeX-listings-auto-cleanup): Add support for the optional argument of env's defined with `\lstnewenvironment'. (LaTeX-listing-lstnewenvironment-regexp): Ditto. 2015-06-05 Ikumi Keita * tex.el (featurep): Restore compatibility with emacs versions which don't have `activate-mark' (Emacs <= 22). 2015-06-02 Arash Esbati * latex.el (LaTeX-auto-cleanup): Prepare so that an optional environment arg is also queried. 2015-06-01 Tassilo Horn * latex.el (LaTeX-auto-env-args-with-opt): New variable for collecting environments with an optional argument. (LaTeX-auto-regexp-list): Use it. (LaTeX-auto-cleanup): Initialize \newenvironment{foo}[n][d]{}{} with the n-1 remaining mandatory arguments. 2015-05-29 Nicolas Richard * latex.el (LaTeX-backward-paragraph): Make it work in narrowed buffers. Fixes bug#20685. 2015-05-18 Orlando Iovino (tiny change) * style/beamer.el ("beamer"): Add `subtitle' to the `slide-title' class. 2015-05-16 Arash Esbati * Makefile.in (STYLESRC): Add new styles. * style/newpxmath.el: New file. * style/newpxtext.el: New file. * font-latex.el (font-latex-set-syntactic-keywords): Allow for multiple mandatory argument for a verbatim environment. * style/listings.el ("listings"): Add support for parsing new env's defined with `\lstnewenvironment' command. 2015-05-08 Tassilo Horn * tex.el (TeX-mode-syntax-table): Use paired delimiter syntax for character |. (TeX-tree-expand): Fix docstring. 2015-05-07 Mosè Giordano * tex.el: Update copyright years. (TeX-view-program-list): Fix type. (Bug#20513) 2015-05-05 Mosè Giordano * style/italian.el: Evaluate `TeX-quote-after-quote'. 2015-05-01 Tassilo Horn * tex.el (TeX-tree-expand): Expand all given vars in just one single call of kpsewhich. Users reported that on some windows and mac systems, kpsewhich is extremely slow leading to auctex startup times of several seconds. 2015-04-29 Tassilo Horn * tex.el (TeX-string-divide-number-unit): Fix docstring. * style/mathtools.el ("mathtools"): Fix typos. 2015-04-25 Tassilo Horn * tex.el (TeX-parse-macro): Improve docstring. 2015-04-19 Tassilo Horn * tex.el (TeX-clean): Also regexp-quote TeX-region-file. 2015-04-17 Tassilo Horn * preview.el.in (preview-datadir, preview-lispdir): Delete these two variables. (preview-filter-specs): Use TeX-data-directory in place of preview-datadir. * configure.ac: Remove auto.el from AC_OUTPUT. * Makefile.in (auto.el): Delete target. 2015-04-11 Tassilo Horn * style/mathtools.el (LaTeX-mathtools-env-multlined): Don't call newline-and-indent after inserting environment. 2015-04-11 Arash Esbati * Makefile.in (STYLESRC): Add new style. * style/attachfile.el: New file. * style/fbb.el: Update style to LaTeX package v1.07 from 2015/04/06. * style/erewhon.el ("erewhon"): Update style to LaTeX package v1.04 from 2015/04/07. * style/baskervaldx.el ("baskervaldx"): Update style to LaTeX package v1.07 from 2015/04/06. * style/newtxtext.el ("newtxtext"): Update style to LaTeX package v1.434 from 2015/04/07. * style/enumitem.el ("enumitem"): Fix typos. * style/everysel.el ("everysel"): Fix typo (AtNextSelect_f_ont). * style/color.el: Replace `read-string' with `TeX-read-string'. * style/currvita.el: Replace `read-string' with `TeX-read-string'. * style/wrapfig.el: Replace `read-string' with `TeX-read-string'. * style/MyriadPro.el ("MyriadPro"): Add missing lenghts `MdSlantfracSpacingBeforeSlash' and `MdSlantfracSpacingAfterSlash'. * style/caption.el (LaTeX-caption-key-val-options): Delete wrong values for `margin'-key. (LaTeX-arg-caption-command): Use `TeX-argument-insert' and do not rely on `TeX-arg-eval' anymore. (LaTeX-arg-caption-DeclareCaption): Ditto. 2015-04-02 Mosè Giordano * doc/auctex.texi (Indenting): Document indentation of "\[...\]". * doc/changes.texi: Mention it. 2015-03-30 Mosè Giordano * latex.el (LaTeX-begin-regexp): Add "\[". (LaTeX-indent-calculate): Remove indentation of "\[...\]" from here, it is automatically done in `LaTeX-indent-level-count' now that `LaTeX-begin-regexp' has "\[". (Bug#20227) 2015-03-28 Mosè Giordano * style/acro.el: * style/acronym.el: * style/caption.el: * style/color.el: * style/enumitem.el: * style/geometry.el: * style/minted.el: * style/pst-plot.el: * style/pstricks.el: * style/siunitx.el: Update copyright years and add `TeX-auto-parse' to `TeX-update-style-hook'. 2015-03-28 Arash Esbati * Makefile.in (STYLESRC): Add new style. * style/colortbl.el: New file. * style/ltxtable.el ("ltxtable"): Ask for a `Width' and not for a `Length' in minibuffer. * latex.el (LaTeX-common-initialization): Add standard LaTeX lengths `arraycolsep', `arrayrulewidth' and `doublerulesep'. 2015-03-23 Tassilo Horn * tex.el (TeX-run-style-hooks): Apply style hooks in reverse order. With that, a local style can modify a private or a global style, and a private style can modify a global one. 2015-03-17 Mosè Giordano * doc/wininstall.texi: Fix a broken link. * style/mn2e.el: New style file. * Makefile.in (STYLESRC): Activate new style. 2015-03-15 Arash Esbati * Makefile.in (STYLESRC): Add new style. * style/ltxtable.el: New file. 2015-03-15 Arash Esbati * Makefile.in (STYLESRC): Add new style. * style/ltablex.el: New file. 2015-03-15 Arash Esbati * style/enumitem.el (LaTeX-enumitem-SetEnumitemKey-regexp): Delete match for the second argument. (LaTeX-enumitem-SetEnumitemValue-regexp): Delete match for the third argument. (LaTeX-arg-SetEnumitemValue): Replace the randomly generated number with something human-readable. * style/caption.el (LaTeX-caption-DeclareCaption-regexp): Delete match for the second argument. (LaTeX-arg-caption-DeclareCaption): Replace the randomly generated number with something human-readable. 2015-03-10 Tassilo Horn * tex.el (TeX-style-path): Replace `pushnew' with equivalent code since defcustom init-forms don't seem to get compiled. * doc/auctex.texi (Modes and Hooks): Document TeX-after-TeX-LaTeX-command-finished-hook. * tex-buf.el (TeX-after-TeX-LaTeX-command-finished-hook): New hook. (TeX-LaTeX-sentinel): Call it. 2015-03-09 Mosè Giordano * tex-buf.el (TeX-find-display-help): Display the help also when the file cannot be determined. * latex.el (LaTeX-end-regexp): Add "\]". (LaTeX-indent-calculate): Indent "\[...\]" display math as a regular environment. 2015-03-08 Arash Esbati * Makefile.in (STYLESRC): Add new style. * style/geometry.el: New file. 2015-03-08 Arash Esbati * Makefile.in (STYLESRC): Add new style. * style/caption.el: New file. 2015-03-08 Arash Esbati * Makefile.in (STYLESRC): Add new style. * style/enumitem.el: New file. 2015-03-08 Tassilo Horn * tex.el (TeX-style-path): Replace add-to-list on local with pushnew. * style/bidibeamer.el: New style. * Makefile.in (STYLESRC): Activate new bidibeamer style. 2015-03-07 Mosè Giordano * doc/install.texi: Mention uninstallation in menus. (Build/install and uninstall): Add "Uninstallation" index entry. Document uninstallation process. * Makefile.in: Update copyright years. (.PHONY): Add uninstall rule. (uninstall): New rule. * doc/Makefile.in: Update copyright years. (.PHONY): Add uninstall rule. (uninstall): New rule. * latex/Makefile.in: Update copyright years. (.PHONY): Declare phony targets. (install-texmf-doc): Do not ignore errors in this rule. (uninstall): New rule. 2015-03-03 Tassilo Horn * doc/auctex.texi (Filling): Document LaTeX-fill-excluded-macros. * latex.el (LaTeX-fill-excluded-macros): New defcustom for excluding macro arguments from filling. (LaTeX-fill-region-as-paragraph): Use it. 2015-03-02 Tassilo Horn * font-latex.el (font-latex-match-command-with-arguments): Fix error introduced in the last change. 2015-02-24 Tassilo Horn * style/expl3.el: New style for the wrapper package for experimental LaTeX 3. * Makefile.in (STYLESRC): Activate new style. * font-latex.el (font-latex-match-simple-command) (font-latex-match-command-with-arguments): Use \s_ and \sw regexp classes instead of hard-coding [A-Za-z@] as LaTeX macro chars. 2015-02-17 Tassilo Horn * latex.el (LaTeX-after-insert-env-hook): Rename from `LaTeX-after-insert-env-hooks' which is now an obsolete variable alias. (LaTeX-after-modify-env-hook): New hook. (LaTeX-modify-environment): Run `LaTeX-after-modify-env-hook'. 2015-02-13 Tassilo Horn * tex.el (TeX-pdf-tools-sync-view, TeX-PDF-mode): Move addition of `TeX-source-correlate-handle-TeX-region' to `pdf-sync-backward-redirect-functions' from `TeX-PDF-mode' to `TeX-pdf-tools-sync-view'. 2015-02-09 Tassilo Horn * tex.el (TeX-pdf-tools-sync-view): Make it work with `TeX-command-region'. 2015-02-09 Tassilo Horn * tex.el (TeX-pdf-tools-sync-view): Simplify function. 2015-02-09 Arash Esbati * Makefile.in (STYLESRC): Add new style. * style/color.el: New style. 2015-02-08 Tassilo Horn * tex.el (TeX-source-correlate-handle-TeX-region): Fix void-variable error. 2015-02-07 Tassilo Horn * tex.el (TeX-pdf-tools-sync-view) (TeX-source-correlate-handle-TeX-region) (TeX-source-correlate-sync-source, TeX-PDF-mode): Adapt PDF Tools forward/backward search to latest PDF Tools changes. 2015-02-06 Mosè Giordano * tex.el (TeX-source-correlate-handle-TeX-region): Replace `file-name-base', introduced in GNU Emacs 24, with `file-name-sans-extension'+`file-name-nondirectory'. 2015-02-06 Tassilo Horn * tex.el (TeX-source-correlate-handle-TeX-region): New function. (TeX-source-correlate-sync-source): Use it. (TeX-PDF-mode): Set `pdf-sync-correlate-tex-refine-function' to `TeX-source-correlate-sync-source'. 2015-02-05 Tassilo Horn * tex.el (TeX-pdf-tools-sync-view): New function to use PDF Tools `pdf-view-mode' as a viewer. (TeX-view-program-list-builtin): Add PDF Tools entry calling `TeX-pdf-tools-sync-view'. 2015-02-04 Tassilo Horn * Makefile.in (STYLESRC): Add new style. * style/tcolorbox.el: New style. 2015-01-31 Arash Esbati * Makefile.in (STYLESRC): Add new style. * style/currvita.el: New file. 2015-01-27 Tassilo Horn * tex.el (TeX-view-program-list-builtin): Remove "start" as executable entry because it's no executable but a Windows system command. (TeX-view-program-list-builtin): Also remove "start" as executable from the "dvips and start" entry. 2015-01-25 Tassilo Horn * latex.el (LaTeX-section-heading): Use default parameter of completing-read. Fixes bug#19675. 2015-01-19 Tassilo Horn * tex.el (TeX-auto-store): Fix indentation in auto files. 2015-01-16 Arash Esbati * style/minted.el: Update copyright year. (LaTeX-minted-auto-cleanup): Fix the name of the new langcode environment. 2014-12-30 Arash Esbati * style/multirow.el ("multirow"): Fix a typo in the name of a variable. * Makefile.in (STYLESRC): Add new styles. * style/relsize.el: New file. * style/wrapfig.el: New file. * style/hyperref.el ("hyperref"): Add `Form' environment needed for PDF and HTML forms. (LaTeX-hyperref-forms-options): New variable for key-val options used in form related macros (`TextField', `CheckBox', `ChoiceMenu', `PushButton', `Submit', `Reset'). 2014-12-22 Tassilo Horn * doc/changes.texi: Document addition of LaTeX-command-section and forward/backward search enhancements with Evince. * latex.el (auto-mode-alist): Add latex-mode association for HeVeA files. 2014-12-21 Tassilo Horn * tex.el (TeX-parse-macro): Enclose arg in LaTeX-default-verb-delimiter if macro is in LaTeX-verbatim-macros-with-delims and there's only one argument. (TeX-auto-store): Check if LaTeX-verbatim-environments, LaTeX-verbatim-macros-with-delims, and LaTeX-verbatim-macros-with-braces are bound before using them. * style/minted.el (LaTeX-minted-newminted-regexp) (LaTeX-minted-newmint-regexp, LaTeX-minted-newmintinline-regexp) (LaTeX-minted-newmintedfile-regexp, LaTeX-minted-auto-cleanup): Extend to recognize optional env/macro name. ("minted"): Add \newminted, \newmint, \newmintinline, and \newmintedfile macros. 2014-12-20 Tassilo Horn * tex.el (TeX-auto-store): Write LaTeX-verbatim-*-local variables to auto file to make them document-local. * style/minted.el (LaTeX-minted-auto-cleanup): Recognize macros generated by \newmint, \newmintinline, and \newmintedfile, too. * tex.el (TeX-evince-sync-view): Encode URI with `url-encode-url'. 2014-12-19 Tassilo Horn * style/minted.el: New style. * Makefile.in (STYLESRC): Add style/minted.el. * latex.el (LaTeX-env-args): Bind exit-mark if its not bound already. (LaTeX-verbatim-regexp): Make variable obsolete. (LaTeX-verbatim-regexp): New function which computes a regexp of verbatim environments from LaTeX-verbatim-environments. (LaTeX-indent-calculate, LaTeX-indent-calculate-last): Use the function LaTeX-verbatim-regexp instead of the variable. * style/listings.el ("listings"): Don't modify the now obsolete LaTeX-verbatim-regexp. * style/fancyvrb.el ("fancyvrb"): Don't modify the now obsolete LaTeX-verbatim-regexp. * style/beamer.el ("beamer"): Don't modify the now obsolete LaTeX-verbatim-regexp. * style/alltt.el ("alltt"): Don't modify the now obsolete LaTeX-verbatim-regexp. 2014-12-18 Tassilo Horn * tex.el (TeX-evince-sync-view): Don't URL-encode commas in the file name (bug#19398). 2014-12-12 Mosè Giordano * latex.el (LaTeX-environment-name-regexp): New function. (LaTeX-modify-environment): Use it. (LaTeX-find-matching-end): Use `TeX-grop' instead of the hard-coded "{". Search for the closing of the environment with `re-search-forward' instead of `search-forward' and use `LaTeX-environment-name-regexp': this allows to consider environments with macros in their names. (Bug#19281) (LaTeX-find-matching-begin): Use `TeX-grop' instead of the hard-coded "{". 2014-12-09 Mosè Giordano * style/babel.el (LaTeX-babel-active-languages): Move `nreverse' call inside `let'. 2014-12-08 Stefan Monnier * tex.el (TeX-mode-specific-command-menu): Remove Emacs 20 compatibility code. * style/shortvrb.el ("shortvrb"): Use mapcar instead of dolist/add-to-list. * style/pstricks.el (LaTeX-pst-point-in-parens) (LaTeX-pst-macro-psarc, LaTeX-pst-macro-pscircle) (LaTeX-pst-macro-rput, LaTeX-pst-macro-uput) (LaTeX-pst-macro-multirputps, LaTeX-pst-macro-psline) (LaTeX-pst-macro-psdots, LaTeX-pst-macro-parabola) (LaTeX-pst-macro-pnt-twolen, LaTeX-pst-macro-psbezier) (LaTeX-pst-macro-pspolygon, LaTeX-pst-macro-psframe) (LaTeX-pst-macro-psgrid, LaTeX-pst-macro-newpsobject): Rename unused arg to silence the byte-compiler. (LaTeX-pst-parameters-add): Remove unused var beg. * style/pst-plot.el (LaTeX-pst-macro-psaxes): Rename unused arg to silence the byte-compiler and fix indentation. ("pst-plot"): Use mapc instead of mapcar for side-effects only. * style/pst-node.el (LaTeX-pstnode-macro-nput) (LaTeX-pstnode-macro-cnodeput, LaTeX-pstnode-macro-nc) (LaTeX-pstnode-macro-pc, LaTeX-pstnode-macro-tnabcput): Rename unused arg to silence the byte-compiler. * style/psfig.el (TeX-arg-psfig, LaTeX-env-psfigure): Rename unused arg to silence the byte-compiler. * style/prosper.el: Fix comment style. (LaTeX-prosper-insert-title, LaTeX-prosper-arg-pdftransition) (LaTeX-prosper-insert-options, LaTeX-prosper-insert-slide): Rename unused arg to silence the byte-compiler. * style/pdfsync.el (LaTeX-pdfsync-output-page): Remove unused sync-line variable. * style/natbib.el (natbib-note-args): Rename unused arg to silence the byte-compiler. * style/inputenc.el (LaTeX-arg-inputenc-inputenc): Rename unused arg to silence the byte-compiler. * style/harvard.el (LaTeX-env-harvardbib): Rename unused arg to silence the byte-compiler. * style/graphicx.el (LaTeX-arg-includegraphics): Rename unused arg to silence the byte-compiler. * style/fancyref.el (TeX-arg-fancyref-format): Rename unused arg to silence the byte-compiler. * style/epsf.el (TeX-arg-epsfsize): Rename unused arg to silence the byte-compiler. * style/emp.el (LaTeX-env-empfile): Rename unused arg to silence the byte-compiler. * style/dinbrief.el (LaTeX-dinbrief-sender): Add a FIXME. * style/bigstrut.el (TeX-arg-bigstrut): Rename unused arg to silence the byte-compiler. * style/beamer.el (LaTeX-beamer-after-insert-env, TeX-arg-beamer-overlay-spec) (TeX-arg-beamer-frametitle, TeX-arg-beamer-note) (LaTeX-arg-beamer-theme, LaTeX-arg-beamer-inner-theme) (LaTeX-arg-beamer-outer-theme, LaTeX-arg-beamer-color-theme) (LaTeX-arg-beamer-font-theme): Rename unused arg to silence the byte-compiler. * style/babel.el (require): Require cl at compile-time. (LaTeX-babel-active-languages): Use pushnew/nreverse instead of add-to-list. * bib-cite.el (bib-cite--kind): New function. (bib-display, bib-find): Use it. (featurep): Use with-current-buffer instead of set-buffer. (bib-cite--fontify-help): New function. (bib-cite-fontify-help-as-bibtex, bib-cite-fontify-help-as-latex): Use it. (bib-highlight-mouse, bib-label-help): Make comment conform to the commenting conventions. (bib-label-prompt-map): Derive from minibuffer-local-completion-map instead of copying that. (bib-display-this-environment): Fix comment. (bib-document-TeX-files): Don't doubly-declare the-file. 2014-12-08 Mosè Giordano * style/mathtools.el ("mathtools"): Fix closing bracket placement. (Bug#19301) 2014-12-08 Arash Esbati * Makefile.in (STYLESRC): Add new styles. * style/newtxttt.el: New file. * style/newtxtext.el: New file. * style/newtxsf.el: New file. * style/newtxmath.el: New file. * style/fbb.el: New file. * style/erewhon.el: New file. * style/baskervaldx.el: New file. 2014-12-04 Mosè Giordano * tex.el (TeX-Omega-command): Add aleph and omega choices. (LaTeX-Omega-command): Add lamed and lambda choices. (Bug#19260) 2014-12-03 Mosè Giordano * README.GIT: Describe branches of the repository. 2014-12-02 Vladimir Lomov (tiny change) * latex/Makefile.in (MKINSTALLDIRS): Fix MKINSTALLDIRS path. 2014-11-29 Mosè Giordano * tests/latex/latex-test.el (latex): Require latex.el. (LaTeX-indent-tabular-test/in): Expand file name in load directory, for automated tests. (LaTeX-indent-tabular-test/out): Ditto. * tests/Makefile: New Makefile. * Makefile.in (.PHONY): Add new check target. (check): New rule. Suggest in comments to run it before a new release. 2014-11-28 Stefan Monnier * tex.el (TeX-view-program-list-builtin): Fix up paren typo. 2014-11-28 Mosè Giordano * tex.el (TeX-view-program-list-builtin): Add the new third element to each item. (TeX-view-program-list): Document new third element of items in doc string. Adapt the type. (TeX-view-command-raw): Check whether the viewer executable exists. (Bug#19121) * doc/auctex.texi (Starting Viewers): Document change to `TeX-view-program-list'. * doc/changes.texi: Mention it. 2014-11-28 Stefan Monnier * style/siunitx.el (tex): Require tex because its indispensable when compiling the call to TeX-auto-add-type. * style/acronym.el (tex): Ditto. * style/acro.el (tex): Ditto. 2014-11-27 Mosè Giordano * latex.el (LaTeX-label-alist): Expand doc string. (LaTeX-label): Make second argument optional to restore backward compatibility and update doc string accordingly. (Bug#19178) 2014-11-27 Matthew Leach * configure.ac: Merge from preview/configure.ac. * .gitignore: Merge from preview/.gitignore. * autogen.sh: Don't run autoconf in the preview direcotry. * Makefile.in (subdirs): Remove. (DESCEND): Remove. (EXCLUDEDFILES): Remove 'preview/' prefix. (preview-ball): Likewise and decrement stip-components in tar. (previewstartfile): Adapt from preview/Makefile.in. (PREVIEW_AUTOLOAD): Likewise. (texmf): Likewise. (preview-latex.el): Likewise. (latex/Makefile): Likewise. (auto.el): Likewise. (install-startup): Likewise. (install-texmf): Likewise. (release-commit): Likewise. (DISTCLEANFILES): Likewise. (CLEANFILES): Add preview files. (install-el): Likewise. (install-lisp): Likewise. (all): Add texmf dependency and remove DESCEND. (clean): Remove DESCEND action. (distclean): Likewise. (maintainer-clean): Likewise. * doc/Makefile.in (preview-dtxdoc.texi): Update path of preview.dtx. * preview/ChangeLog: Move to ChangeLog-preview * preview/ChangeLog.1: Move to ChangeLog.1-preview * preview/auto.el.in: Move to top-level. * preview/circ.tex: Move to top-level. * preview/preview.el.in: Move to top-level. * preview/*.el: Move to top-level. * preview/images/: Move to images/. * preview/latex/: Move to latex/. * preview/Makefile.in: Remove. * preview/configure.ac: Remove. * preview/.gitignore: Remove. * preview/COPYING: Remove. 2014-11-21 Tassilo Horn * doc/auctex.texi (Starting a Command): Document LaTeX-command-section and friends. * style/book.el ("book"): Set LaTeX-largest-level to part instead of chapter. * tex-buf.el (LaTeX-command-section-level): New variable. (LaTeX-command-section-level): New function. (LaTeX-command-section-change-level, LaTeX-command-section): New commands. * latex.el (LaTeX-mode-map): Bind C-c C-z to LaTeX-command-section and C-c M-z to LaTeX-command-section-change-level. * tex.el (TeX-evince-sync-view): Use line/col information from the TeX-region buffer if the View command is made on a region. * tex-buf.el (TeX-region-create): Position point in the same line/col as in the original buffer to make forward search work. 2014-11-20 Mosè Giordano * latex.el (LaTeX-env-figure): Fix indentation when there is the \centering macro and no caption is inserted. * style/fontspec.el ("fontspec"): Fix fontification of "newfontfamily" and "newfontface". 2014-11-19 Tassilo Horn * tex.el (TeX-source-correlate-sync-source): Make backward/inverse search form PDF to tex work also for TeX-regions. * tex-buf.el (TeX-region-orig-buffer): New variable. (TeX-region-create): Set TeX-region-orig-buffer. * tex.el (TeX-submit-bug-report): Adapt bug report intro text to mention debbugs url. 2014-11-18 Arash Esbati * style/zlmtt.el (font-latex-add-keywords): Use more consistent fontification. * style/textcomp.el (font-latex-add-keywords): Ditto. * style/fontaxes.el (font-latex-add-keywords): Ditto. * style/XCharter.el (font-latex-add-keywords): Ditto. 2014-11-18 Tassilo Horn * tex-buf.el (TeX-region-create): Disable finding of appropriate major-mode for region file. Also disable file-local vars, and don't run find-file-hook functions. Also, make the region file read-only to prevent accidental editing where actually the real file should have been edited (happens easily with source correlation mode). 2014-11-16 Mosè Giordano * Makefile.in (WEMACSDATAROOTDIR, WEMACSSITELISP): New variables. (WPACKAGEFILES): Update accordingly. (windows-package): Fix structure of the package for Emacs 24.4. Reported by Uwe Siart. Remove the zip package before creating it, otherwise it would be updated instead of recreated. Mention that bash shell is required for windows-package and release-upload recipes due to some bashisms in them. Reported by José Carlos Santos. 2014-11-15 Mosè Giordano * Makefile.in (WEMACSPACKAGE, WEMACSEXTRACTDIR): New variables. (windows-package): Adapt rule to new Emacs 24.4 package for Windows. Use `WEMACSPACKAGE' and `WEMACSEXTRACTDIR'. 2014-11-15 Davide G. M. Salvetti * Makefile.in (STYLESRC): Add `ifluatex.el', `luatextra.el'. * style/luatextra.el: New style. * style/ifluatex.el: New style. * doc/faq.texi: Update the `Why does 'TeX-next-error' ('C-c `') fail?' entry, taking into account the `TeX-file-line-error' option. Update copyright range. * doc/auctex.texi (Selecting a Command): Fix typo. (Automatic Local): Update description of `TeX-style-path', `TeX-style-global', `TeX-style-local', and `TeX-auto-local' variables: there is no need to end directories and directories lists items with a slash. * doc/quickstart.texi (Editing Facilities): Fix documentation: to change font attributes of existing text, it has to be marked as an _active_ region. 2014-11-10 Davide G. M. Salvetti * context.el: Replace `read-string' with `TeX-read-string'. * latex.el: Replace `read-string' with `TeX-read-string'. * style/CJK.el: Replace `read-string' with `TeX-read-string'. * style/amsmath.el: Replace `read-string' with `TeX-read-string'. * style/amsthm.el: Replace `read-string' with `TeX-read-string'. * style/beamer.el: Replace `read-string' with `TeX-read-string'. * style/csquotes.el: Replace `read-string' with `TeX-read-string'. * style/dinbrief.el: Replace `read-string' with `TeX-read-string'. * style/dk-bib.el: Replace `read-string' with `TeX-read-string'. * style/emp.el: Replace `read-string' with `TeX-read-string'. * style/epsf.el: Replace `read-string' with `TeX-read-string'. * style/filecontents.el: Replace `read-string' with `TeX-read-string'. * style/foils.el: Replace `read-string' with `TeX-read-string'; add copyright notice. * style/graphicx.el: Replace `read-string' with `TeX-read-string'. * style/inputenc.el: Replace `read-string' with `TeX-read-string'. * style/letter.el: Replace `read-string' with `TeX-read-string'. * style/longtable.el: Replace `read-string' with `TeX-read-string'. * style/mathtools.el: Replace `read-string' with `TeX-read-string'. * style/natbib.el: Replace `read-string' with `TeX-read-string'. * style/paralist.el: Replace `read-string' with `TeX-read-string'. * style/plext.el: Replace `read-string' with `TeX-read-string'. * style/prosper.el: Replace `read-string' with `TeX-read-string'. * style/psfig.el: Replace `read-string' with `TeX-read-string'. * style/pstricks.el: Replace `read-string' with `TeX-read-string'. * style/scrbase.el: Replace `read-string' with `TeX-read-string'. * style/scrlttr2.el: Replace `read-string' with `TeX-read-string'. * tex-info.el: Replace `read-string' with `TeX-read-string'. * tex.el: Replace `read-string' with `TeX-read-string'. 2014-11-04 Tassilo Horn * tex.el (VirTeX-common-initialization): Define a variable alias for find-file-hook on XEmacs. 2014-11-04 Stefan Monnier * toolbar-x.el: Adjust copyright years. (require): Require cl at compile-time. (toolbarx-good-option-list-p): Use pushnew instead of add-to-list. * tex.el (url-unreserved-chars): Declare to silence byte-compiler. (TeX-tree-expand): Use pushnew instead of add-to-list. Iterate path-list in reversed order. (TeX-style-path): Use mapc instead of mapcar for side-effects. (TeX-file-extensions, BibTeX-file-extensions) (TeX-Biber-file-extensions): Declare to silence byte-compiler. (TeX-tree-roots): Use pushnew instead of add-to-list. (TeX-search-files-by-type): Use setq/pushnew instead of dolist/add-to-list. (TeX-doc): Use pushnew instead of add-to-list. * tex-info.el (require): Require cl at compile-time. (Texinfo-insert-node): Use pushnew instead of add-to-list. (reftex-section-levels-all, reftex-level-indent) (reftex-label-menu-flags, reftex-tables-dirty): Always forward-declare (not only at compile-time). (when): declare-function only at compile-time. * tex-fold.el: Adjust copyright years. (require): Require cl at compile-time. (TeX-fold-region-macro-or-env, TeX-fold-update-at-point): Use pushnew instead of add-to-list. (TeX-fold-hide-item): Use setq instead of add-to-list. * tex-buf.el (font-lock-mode-enable-list) (font-lock-auto-fontify, font-lock-defaults-alist): Declare vars to silence byte-compiler. * multi-prompt.el: Adjust copyright years. (multi-prompt): Don't let-bind unused var done. (multi-prompt-next-must-match): Use minibuffer-completion-table instead of dynamically bound table. * latex.el (require): Require cl at compile-time. (title, name, level, done-mark, toc): Declare dynamic vars. (LaTeX-env-document, TeX-arg-index-tag, TeX-arg-document) (LaTeX-arg-usepackage, TeX-arg-verb, ): Rename unused arg. (LaTeX-listify-package-options): Use setq instead of add-to-list to add to local var. (reftex-ref-macro-prompt, TeX-arg-item-label-p) (TeX-arg-right-insert-p): Declare to silence byte-compiler. (LaTeX-indent-line): Use pushnew instead of add-to-list. (LaTeX-fill-move-to-break-point): Don't let-bind unused math-sep. (LaTeX-section-enable-symbol): Downcase arg. (LaTeX-indent-tabular): Use mapc instead of mapcar for side-effects. * context.el (done-mark, reference, title, name, level): Declare dynamic vars without global nil value. (ConTeXt-section): let-bind reference. Remove binding of unused var toc. (ConTeXt-numbered-section-hook, ConTeXt-unnumbered-section-hook): Improve docstring. (ConTeXt-find-matching-stop): Don't let-bind pos. (ConTeXt-optional-argument-insert) (ConTeXt-required-argument-insert, ConTeXt-indent-line): Rename unused arg. (ConTeXt-mode-common-initialization): Use fboundp to check if make-local-hook is defined. * bib-cite.el: Expand copyright years. (bib-cite-is-XEmacs): Remove. (bib-cite-minor-mode, bib-cite-setup-highlight-mouse-keymap) (bib-etags, bib-highlight-mouse, bib-toggle-highlight) (bib-etags-find-noselect): Check for XEmacs with featurep. (bib-cite-setup-mouse-function): Rename unused arg. (bib-apropos): Use mapc instead of mapcar for side effects. (bib-cite-fontify-help-xemacs): Define only on XEmacs. (bib-cite-fontify-help-as-bibtex, bib-cite-fontify-help-as-latex): Check for XEmacs with featurep. Fix fontification code. (bib-display-this-ref): Use point-min instead of 1. (TeX-auto-save, TeX-auto-update, TeX-auto-regexp-list): Declare to silence the byte-compiler. 2014-11-03 Arash Esbati * style/zlmtt.el: New file. * style/XCharter.el: New file. * style/textcomp.el: New file. * style/MyriadPro.el: New file. * style/mdsymbol.el: New file. * style/fontaxes.el: New file. * style/eso-pic.el: New file. * style/AnonymousPro.el: New file. 2014-11-02 Arash Esbati * style/MinionPro.el (TeX-add-symbols): Remove `figureversion', `textsw', `textssc', `sscshape' and `swshape'. (TeX-run-style-hooks): Added "fontaxes". * style/MinionPro.el (LaTeX-MinionPro-package-options): Added additional options from v2.3 of `MinionPro.sty', available from 2014-11-01 Davide G. M. Salvetti * tex.el (TeX-file-line-error): New customizable option. (TeX-expand-list): New expander "$(file-line-error)". (TeX-command-list): Use it. (LaTeX-command-style): Use it. * doc/auctex.texi (Processor Options): Document `TeX-file-line-error'. * doc/changes.texi: Mention `TeX-file-line-error'. 2014-10-31 Mosè Giordano * Makefile.in (CTANDIR): New variable. (preview-ball): Create a top level directory "preview/" in the preview tarball, as required by CTAN. Save the tarball to $(CTANDIR) instead of $(FTPDIR). 2014-10-29 Mosè Giordano * Version 11.88 released. 2014-10-29 Matthew Leach * latex.el (LaTeX-indent-environment-list): Remove setter lambda. (LaTeX--tabular-like-end): Remove variable. (LaTeX-indent-tabular): Move setter function from LaTeX-indent-environment-list to generate tabular-end regex when called. 2014-10-29 Mosè Giordano * latex.el (LaTeX-largest-level-set): Set `outline-heading-alist' only if it is bound. * .gitignore: Ignore preview/preview.el. * Makefile.in (DISTCLEANFILES): Add preview/preview.el. (release-commit): Write new version announcement also into preview/ChangeLog. * aclocal.m4: Add a third argument to `AC_DATE_VERSION_FROM_CHANGELOG' specifying the ChangeLog file. * configure.ac: Use new third argument of `AC_DATE_VERSION_FROM_CHANGELOG'. Retrieve preview date and version from its ChangeLog. Add preview/preview.el to output files. 2014-10-22 Mosè Giordano * RELEASE: Update AUCTeX version, the new features section, and the list of contributors. * configure.ac: Update AUCTeX version. * doc/changes.texi: Mention generic bug fixes for 11.88 release. * doc/tex-ref.tex: Update AUCTeX version and copyright years across the file. Add now working `TeX-previous-error' key-binding. * tex.el: Update copyright year. * doc/Makefile.in: Make it possible to build the HTML doc with `makeinfo' if `texi2html' is not available. Add new `TEXI2HTML_TOC' variable. (extradist): Use `TEXI2HTML_TOC'. (html/$(TEXI2HTML_TOC)): Use `TEXI2HTML_TOC'. Fix splitting option to HTML engine. Suggested by Norbert Preining. * latex.el (LaTeX-newline): Fix for when `comment-auto-fill-only-comments' is non-nil. Suggested by Piet van Oostrum. 2014-10-13 Matthew Leach * style/cleveref.el: New file. 2014-10-02 Ikumi Keita * tex.el (featurep): Activate mark in the GNU Emacs version of TeX-activate-mark instead of being a no-op. (TeX-insert-dollar): Use set-mark instead of push-mark in order to avoid duplicate marks. 2014-10-02 Ikumi Keita * texmathp.el (texmathp-tex-commands-default): Move equation* environment to AMS-LaTeX section. (texmathp-why): Fix docstring. 2014-10-02 Ikumi Keita * style/amstext.el (LaTeX-amstext-package-options): Rename from `LaTeX-amstext-package-option'. 2014-10-02 Ikumi Keita * tex-info.el (Texinfo-mark-environment, Texinfo-mark-section) (Texinfo-mark-node): Use `push-mark' instead of `set-mark'. * latex.el (LaTeX-mark-environment): Ditto. * context.el (ConTeXt-mark-environment): Ditto. 2014-09-25 Tassilo Horn * latex.el (LaTeX-insert-environment): Pass correct \end buffer position to hooks in LaTeX-after-insert-env-hooks. 2014-09-13 Vincent Belaïche * latex.el (LaTeX-dialect): Correct doctstring for consistency with definition of function TeX-add-style-hook. * doc/auctex.texi (Simple Style): modify example with 'TeX-add-style-hook', so that 3rd argument is added. Modify @defun of 'TeX-add-style-hook' also to document addition of 3rd argument. 2014-09-11 Vincent Belaïche * doc/changes.texi: Add information about style hook labelling by dialect. * doc/todo.texi (Bugs): Update Bug #1 about style hook clash. * style/xspace.el ("xspace"): Add LaTeX-dialect to TeX-add-style-hook call. * style/xparse.el ("xparse"): Add LaTeX-dialect to TeX-add-style-hook call. * style/virtex.el ("virtex"): Add LaTeX-dialect to TeX-add-style-hook call. * style/verbatim.el ("verbatim"): Add LaTeX-dialect to TeX-add-style-hook call. * style/varioref.el ("varioref"): Add LaTeX-dialect to TeX-add-style-hook call. * style/url.el ("url"): Add LaTeX-dialect to TeX-add-style-hook call. * style/units.el ("units"): Add LaTeX-dialect to TeX-add-style-hook call. * style/unicode-math.el ("unicode-math"): Add LaTeX-dialect to TeX-add-style-hook call. * style/ulem.el ("ulem"): Add LaTeX-dialect to TeX-add-style-hook call. * style/tabulary.el ("tabulary"): Add LaTeX-dialect to TeX-add-style-hook call. * style/tabularx.el ("tabularx"): Add LaTeX-dialect to TeX-add-style-hook call. * style/swedish.el ("swedish"): Add LaTeX-dialect to TeX-add-style-hook call. * style/subfigure.el ("subfigure"): Add LaTeX-dialect to TeX-add-style-hook call. * style/slovak.el ("slovak"): Add LaTeX-dialect to TeX-add-style-hook call. * style/slides.el ("slides"): Add LaTeX-dialect to TeX-add-style-hook call. * style/siunitx.el ("siunitx"): Add LaTeX-dialect to TeX-add-style-hook call. * style/shortvrb.el ("shortvrb"): Add LaTeX-dialect to TeX-add-style-hook call. * style/setspace.el ("setspace"): Add LaTeX-dialect to TeX-add-style-hook call. * style/scrreprt.el ("scrreprt"): Add LaTeX-dialect to TeX-add-style-hook call. * style/scrpage2.el ("scrpage2"): Add LaTeX-dialect to TeX-add-style-hook call. * style/scrlttr2.el ("scrlttr2"): Add LaTeX-dialect to TeX-add-style-hook call. * style/scrbook.el ("scrbook"): Add LaTeX-dialect to TeX-add-style-hook call. * style/scrbase.el ("scrbase"): Add LaTeX-dialect to TeX-add-style-hook call. * style/scrartcl.el ("scrartcl"): Add LaTeX-dialect to TeX-add-style-hook call. * style/ruby.el ("ruby"): Add LaTeX-dialect to TeX-add-style-hook call. * style/report.el ("report"): Add LaTeX-dialect to TeX-add-style-hook call. * style/ragged2e.el ("ragged2e"): Add LaTeX-dialect to TeX-add-style-hook call. * style/pstricks.el ("pstricks"): Add LaTeX-dialect to TeX-add-style-hook call. * style/pst-slpe.el ("pst-slpe"): Add LaTeX-dialect to TeX-add-style-hook call. * style/pst-plot.el ("pst-plot"): Add LaTeX-dialect to TeX-add-style-hook call. * style/pst-node.el ("pst-node"): Add LaTeX-dialect to TeX-add-style-hook call. * style/pst-grad.el ("pst-grad"): Add LaTeX-dialect to TeX-add-style-hook call. * style/psfig.el ("psfig"): Add LaTeX-dialect to TeX-add-style-hook call. * style/prosper.el ("prosper"): Add LaTeX-dialect to TeX-add-style-hook call. * style/polski.el ("polski"): Add LaTeX-dialect to TeX-add-style-hook call. * style/polish.el ("polish"): Add LaTeX-dialect to TeX-add-style-hook call. * style/plhb.el ("plhb"): Add LaTeX-dialect to TeX-add-style-hook call. * style/plfonts.el ("plfonts"): Add LaTeX-dialect to TeX-add-style-hook call. * style/plext.el ("plext"): Add LaTeX-dialect to TeX-add-style-hook call. * style/placeins.el ("placeins"): Add LaTeX-dialect to TeX-add-style-hook call. * style/pdfsync.el ("pdfsync"): Add LaTeX-dialect to TeX-add-style-hook call. * style/paralist.el ("paralist"): Add LaTeX-dialect to TeX-add-style-hook call. * style/nomencl.el ("nomencl"): Add LaTeX-dialect to TeX-add-style-hook call. * style/nicefrac.el ("nicefrac"): Add LaTeX-dialect to TeX-add-style-hook call. * style/ngerman.el ("ngerman"): Add LaTeX-dialect to TeX-add-style-hook call. * style/naustrian.el ("naustrian"): Add LaTeX-dialect to TeX-add-style-hook call. * style/natbib.el ("natbib"): Add LaTeX-dialect to TeX-add-style-hook call. * style/nameref.el ("nameref"): Add LaTeX-dialect to TeX-add-style-hook call. * style/multirow.el ("multirow"): Add LaTeX-dialect to TeX-add-style-hook call. * style/multind.el ("multind"): Add LaTeX-dialect to TeX-add-style-hook call. * style/multido.el ("multido"): Add LaTeX-dialect to TeX-add-style-hook call. * style/multicol.el ("multicol"): Add LaTeX-dialect to TeX-add-style-hook call. * style/mflogo.el ("mflogo"): Add LaTeX-dialect to TeX-add-style-hook call. * style/metalogo.el ("metalogo"): Add LaTeX-dialect to TeX-add-style-hook call. * style/memoir.el ("memoir"): Add LaTeX-dialect to TeX-add-style-hook call. * style/mdwlist.el ("mdwlist"): Add LaTeX-dialect to TeX-add-style-hook call. * style/mathtools.el ("mathtools"): Add LaTeX-dialect to TeX-add-style-hook call. * style/makeidx.el ("makeidx"): Add LaTeX-dialect to TeX-add-style-hook call. * style/luacode.el ("luacode"): Add LaTeX-dialect to TeX-add-style-hook call. * style/ltxdoc.el ("ltxdoc"): Add LaTeX-dialect to TeX-add-style-hook call. * style/ltx-base.el ("ltx-base"): Add LaTeX-dialect to TeX-add-style-hook call. * style/lscape.el ("lscape"): Add LaTeX-dialect to TeX-add-style-hook call. * style/longtable.el ("longtable"): Add LaTeX-dialect to TeX-add-style-hook call. * style/listings.el ("listings"): Add LaTeX-dialect to TeX-add-style-hook call. * style/lipsum.el ("lipsum"): Add LaTeX-dialect to TeX-add-style-hook call. * style/lettrine.el ("lettrine"): Add LaTeX-dialect to TeX-add-style-hook call. * style/letter.el ("letter"): Add LaTeX-dialect to TeX-add-style-hook call. * style/latexinfo.el ("latexinfo"): Add LaTeX-dialect to TeX-add-style-hook call. * style/kpfonts.el ("kpfonts"): Add LaTeX-dialect to TeX-add-style-hook call. * style/kantlipsum.el ("kantlipsum"): Add LaTeX-dialect to TeX-add-style-hook call. * style/jurabib.el ("jurabib"): Add LaTeX-dialect to TeX-add-style-hook call. * style/jura.el ("jura"): Add LaTeX-dialect to TeX-add-style-hook call. * style/jsbook.el ("jsbook"): Add LaTeX-dialect to TeX-add-style-hook call. * style/jsarticle.el ("jsarticle"): Add LaTeX-dialect to TeX-add-style-hook call. * style/jreport.el ("jreport"): Add LaTeX-dialect to TeX-add-style-hook call. * style/jbook.el ("jbook"): Add LaTeX-dialect to TeX-add-style-hook call. * style/jarticle.el ("jarticle"): Add LaTeX-dialect to TeX-add-style-hook call. * style/j-report.el ("j-report"): Add LaTeX-dialect to TeX-add-style-hook call. * style/j-book.el ("j-book"): Add LaTeX-dialect to TeX-add-style-hook call. * style/j-article.el ("j-article"): Add LaTeX-dialect to TeX-add-style-hook call. * style/italian.el ("italian"): Add LaTeX-dialect to TeX-add-style-hook call. * style/inputenc.el ("inputenc"): Add LaTeX-dialect to TeX-add-style-hook call. * style/index.el ("index"): Add LaTeX-dialect to TeX-add-style-hook call. * style/imakeidx.el ("imakeidx"): Add LaTeX-dialect to TeX-add-style-hook call. * style/icelandic.el ("icelandic"): Add LaTeX-dialect to TeX-add-style-hook call. * style/hyperref.el ("hyperref"): Add LaTeX-dialect to TeX-add-style-hook call. * style/harvard.el ("harvard"): Add LaTeX-dialect to TeX-add-style-hook call. * style/graphicx.el ("graphicx"): Add LaTeX-dialect to TeX-add-style-hook call. * style/graphics.el ("graphics"): Add LaTeX-dialect to TeX-add-style-hook call. * style/german.el ("german"): Add LaTeX-dialect to TeX-add-style-hook call. * style/frenchb.el ("frenchb"): Add LaTeX-dialect to TeX-add-style-hook call. * style/french.el ("french"): Add LaTeX-dialect to TeX-add-style-hook call. * style/francais.el ("francais"): Add LaTeX-dialect to TeX-add-style-hook call. * style/footmisc.el ("footmisc"): Add LaTeX-dialect to TeX-add-style-hook call. * style/fontspec.el ("fontspec"): Add LaTeX-dialect to TeX-add-style-hook call. * style/foils.el ("foils"): Add LaTeX-dialect to TeX-add-style-hook call. * style/flashcards.el ("flashcards"): Add LaTeX-dialect to TeX-add-style-hook call. * style/filecontents.el ("filecontents"): Add LaTeX-dialect to TeX-add-style-hook call. * style/fancyvrb.el ("fancyvrb"): Add LaTeX-dialect to TeX-add-style-hook call. * style/fancyref.el ("fancyref"): Add LaTeX-dialect to TeX-add-style-hook call. * style/fancynum.el ("fancynum"): Add LaTeX-dialect to TeX-add-style-hook call. * style/fancyhdr.el ("fancyhdr"): Add LaTeX-dialect to TeX-add-style-hook call. * style/exercise.el ("exercise"): Add LaTeX-dialect to TeX-add-style-hook call. * style/everysel.el ("everysel"): Add LaTeX-dialect to TeX-add-style-hook call. * style/epsf.el ("epsf"): Add LaTeX-dialect to TeX-add-style-hook call. * style/epigraph.el ("epigraph"): Add LaTeX-dialect to TeX-add-style-hook call. * style/english.el ("english"): Add LaTeX-dialect to TeX-add-style-hook call. * style/emp.el ("emp"): Add LaTeX-dialect to TeX-add-style-hook call. * style/dutch.el ("dutch"): Add LaTeX-dialect to TeX-add-style-hook call. * style/doc.el ("doc"): Add LaTeX-dialect to TeX-add-style-hook call. * style/dk.el ("dk"): Add LaTeX-dialect to TeX-add-style-hook call. * style/dinbrief.el ("dinbrief"): Add LaTeX-dialect to TeX-add-style-hook call. * style/danish.el ("danish"): Add LaTeX-dialect to TeX-add-style-hook call. * style/czech.el ("czech"): Add LaTeX-dialect to TeX-add-style-hook call. * style/csquotes.el ("csquotes"): Add LaTeX-dialect to TeX-add-style-hook call. * style/comment.el ("comment"): Add LaTeX-dialect to TeX-add-style-hook call. * style/captcont.el ("captcont"): Add LaTeX-dialect to TeX-add-style-hook call. * style/bulgarian.el ("bulgarian"): Add LaTeX-dialect to TeX-add-style-hook call. * style/booktabs.el ("booktabs"): Add LaTeX-dialect to TeX-add-style-hook call. * style/book.el ("book"): Add LaTeX-dialect to TeX-add-style-hook call. * style/bm.el ("bm"): Add LaTeX-dialect to TeX-add-style-hook call. * style/bigstrut.el ("bigstrut"): Add LaTeX-dialect to TeX-add-style-hook call. * style/bigdelim.el ("bigdelim"): Add LaTeX-dialect to TeX-add-style-hook call. * style/biblatex.el ("biblatex"): Add LaTeX-dialect to TeX-add-style-hook call. * style/beamer.el ("beamer"): Add LaTeX-dialect to TeX-add-style-hook call. * style/babel.el ("babel"): Add LaTeX-dialect to TeX-add-style-hook call. * style/austrian.el ("austrian"): Add LaTeX-dialect to TeX-add-style-hook call. * style/article.el ("article"): Add LaTeX-dialect to TeX-add-style-hook call. * style/array.el ("array"): Add LaTeX-dialect to TeX-add-style-hook call. * style/amsthm.el ("amsthm"): Add LaTeX-dialect to TeX-add-style-hook call. * style/amstext.el ("amstext"): Add LaTeX-dialect to TeX-add-style-hook call. * style/amstex.el ("amstex"): Add LaTeX-dialect to TeX-add-style-hook call. * style/amssymb.el ("amssymb"): Add LaTeX-dialect to TeX-add-style-hook call. * style/amsopn.el ("amsopn"): Add LaTeX-dialect to TeX-add-style-hook call. Update header with correct filename. * style/amsmath.el ("amsmath"): Add LaTeX-dialect to TeX-add-style-hook call. * style/amsbsy.el ("amsbsy"): Add LaTeX-dialect to TeX-add-style-hook call. * style/amsbook.el ("amsbook"): Add LaTeX-dialect to TeX-add-style-hook call. * style/amsart.el ("amsart"): Add LaTeX-dialect to TeX-add-style-hook call. * style/alphanum.el ("alphanum"): Add LaTeX-dialect to TeX-add-style-hook call. * style/alltt.el ("alltt"): Add LaTeX-dialect to TeX-add-style-hook call. * style/afterpage.el ("afterpage"): Add LaTeX-dialect to TeX-add-style-hook call. * style/acronym.el ("acronym"): Add LaTeX-dialect to TeX-add-style-hook call. * style/acro.el ("acro"): Add LaTeX-dialect to TeX-add-style-hook call. * style/MinionPro.el ("MinionPro"): Add LaTeX-dialect to TeX-add-style-hook call. * style/CJKutf8.el ("CJKutf8"): Add LaTeX-dialect to TeX-add-style-hook call. * style/CJK.el ("CJK"): Add LaTeX-dialect to TeX-add-style-hook call. * bib-cite.el (eval-after-load "bibtex"): Add hook TeX-bibtex-set-BibTeX-dialect to BibTex mode, this will set 'TeX-style-hook-dialect' to :bibtex for BibTeX files so that Mosè's problem should be solved. * latex.el (LaTeX-common-initialization): set 'TeX-style-hook-dialect' to :latex for LaTeX files, and those in LaTeX derived modes. Add LaTeX-dialect as DIALECT argument to all calls of TeX-add-style-hook. * tex.el (TeX-style-hook-list): Update docstring to make clear that style hooks can also be in the form '[TeX-style-hook HOOK-FUN DIALECT-SET]'. (TeX-bibtex-set-BibTeX-dialect): New defun. (TeX-style-hook-dialect-weight-alist): New defconst. (TeX-shdex-eval): New defun. (TeX-shdex-or TeX-shdex-and TeX-shdex-nor TeX-shdex-not) (TeX-shdex-in-p TeX-shdex-listify): New defsubst. (TeX-style-hook-dialect): New defvar, used to have style hooks called only in corresponding context. (TeX-add-style-hook): Add optional argument context for marking hooks that must run only in non default (aka nil) dialect. (TeX-keep-hooks-in-dialect): New defun, used for unloading only those hooks in a dialect list. (TeX-unload-style): Add optional argument context-list for unloading only those hooks marked for contexts in that context-list. (TeX-run-style-hooks): Run style hook only when current style hook context matches context for which hook is marked. * tex-info.el (Texinfo-environment-list): Add 'html' and 'float' environments. (TeX-texinfo-mode): set 'TeX-style-hook-dialect' to :texinfo for Texinfo files. Add macro '@caption'. 2014-09-08 Tassilo Horn * tex.el (TeX-assoc-string): Remove docstring from defalias since that's not supported with XEmacs. 2014-08-25 Florent Rougon (tiny change) * tex-buf.el (TeX-command-expand): Fix possible endless loop in file name expansion. 2014-08-24 Mosè Giordano * tests/tex/command-expansion.el: New test file. 2014-08-24 Florent Rougon (tiny change) * tex.el (TeX-expand-list): Add the previous position to the lenght of the expanded string to get the current position in the %' expander. 2014-08-18 Vincent Belaïche * font-latex.el (font-latex-add-quotes): Code optimization: use '(add-to-list (make-local-variable (quote foo)) some-value)' instead of '(make-local-variable (quote foo)) (add-to-list 'foo some-value)' wherever possible. * bib-cite.el (bib-cite-minor-mode) (bib-cite-setup-highlight-mouse-keymap): Code optimization: use '(set (make-local-variable (quote foo)) some-value)' instead of '(make-local-variable (quote foo)) (setq foo some-value)' wherever possible. * latex.el (BibTeX-auto-store) (LaTeX-common-initialization): Ditto. * tex-info.el (TeX-texinfo-mode): Code optimization: use '(set (make-local-variable (quote foo)) some-value)' instead of '(make-local-variable (quote foo)) (setq foo some-value)' wherever possible. Add in style Texinfo standard macros '@acronym' and '@tie'. * tex.el (TeX-assoc-string) new defalias to work-around missing assoc-string in XEmacs. (TeX-unload-style): Code optimization: use 'TeX-assoc-string' instead of 'assoc' to search style in 'TeX-style-hook-list', and use delq on returned value of assoc-string for removing the style --- on the one hand delq will go through the whole list rather than stop after the first match like in original code, but on the other hand comparison are faster because eq instead of equal is used and we are working on assoc cell rather than on key, so less indirection, furthermore delq is C code. Anyway that make the code much smaller and easier to understand. (TeX-file-extensions): Add txi amongst extension of texinfo files, for consistency with info node '(texinfo) Minimum' (TeX-run-style-hooks): Code optimization: use 'TeX-assoc-string' instead of 'assoc' to search style in 'TeX-style-hook-list'. (VirTeX-common-initialization): Code optimization: use '(set (make-local-variable (quote foo)) some-value)' instead of '(make-local-variable (quote foo)) (setq foo some-value)' wherever possible. 2014-08-18 Tassilo Horn * font-latex.el (font-latex-set-syntactic-keywords): Allow for a mandatory argument for a verbatim environment. 2014-08-15 Vladimir Lomov * style/mathtools.el ("mathtools"): Don't use the removed `LaTeX-amsmath-env-aligned' function. 2014-08-14 Mosè Giordano * latex.el (LaTeX-insert-label): Remove. (LaTeX-label): Add a new mandatory argument. Do not use `LaTeX-insert-label'. Determine the prefix at the beginning of the function and insert the label only if the prefix is non nil. (LaTeX-section-label, LaTeX-env-figure, LaTeX-env-label): Use the second mandatory argument of `LaTeX-label'. * style/amsmath.el: Update copyright years. ("amsmath"): Append the environments to `LaTeX-label-alist' instead of prepeding them. Use the second mandatory argument of the `LaTeX-label' function. * style/longtable.el: Update copyright years. ("longtable"): Move addition of "longtable" environment to `LaTeX-label-alist' inside the style hook. Append the environment to the alist instead of prepending it. Use the second mandatory argument of the `LaTeX-label' function. * doc/auctex.texi (Sectioning, Environments): Remove references to `LaTeX-insert-label'. (Environments): Document `LaTeX-label-alist'. * doc/changes.texi: Remove references to `LaTeX-insert-label'. 2014-08-12 Mosè Giordano * latex.el (LaTeX-insert-label): Rename from `LaTeX-auto-insert-label' and mention sections in the doc-string. (LaTeX-label): Update accordingly. * doc/auctex.texi (Sectioning): Mention `LaTeX-insert-label'. (Environments): Update `LaTeX-insert-label' name and document use for sectioning commands. (Environments, Completion): Prettify `TeX-complete-expert-commands' documentation by using a table environment. * doc/changes.texi: Rename `LaTeX-auto-insert-label' to `LaTeX-insert-label' and mention sections too. 2014-08-11 Mosè Giordano * tex-buf.el (TeX-command): Keep the frame and the buffer associate to the error overview if the command to be run is View. * latex.el (LaTeX-auto-insert-label): New customizable variable. (LaTeX-label): Use it. * doc/auctex.texi (Environments): Document `LaTeX-auto-insert-label'. * doc/changes.texi: Mention `LaTeX-auto-insert-label'. Fix a couple of bad-boxes in the PDF output of the manual. 2014-07-25 Tassilo Horn * latex.el (LaTeX-largest-level-set): Adapt `outline-heading-alist' according to largest level in order to make `outline-promote' (and others) work correctly. 2014-07-25 Mosè Giordano * doc/auctex.texi (Adding Macros): Document `TeX-date-format'. * doc/changes.texi: Mention `TeX-date-format'. * latex.el (TeX-date-format): New customizable option. Suggested by Uwe Brauer. (TeX-arg-date): Use it. 2014-07-17 Mosè Giordano * Makefile.in: Update copyright years. (EXCLUDEDFILES): Rename from GITFILES. Remove also .cvsignore and tests from the release tarball. (release-commit): More precise suggestion to push tag and release commit. (tar-ball): Use EXCLUDEDFILES in place of GITFILES. 2014-07-15 Ikumi Keita * latex.el: Enhance array and tabular(*) environments support. (LaTeX-env-array): Add call to `LaTeX-item-array'. (LaTeX-env-tabular*): Add call to `LaTeX-item-tabular*'. (LaTeX-array-skipping-regexp): New variable. (LaTeX-tabular*-skipping-regexp): Ditto. (LaTeX-item-array): New function. Put line break macro on the last line and insert suitable number of ampersands. (LaTeX-item-tabular*): Ditto. (LaTeX-insert-ampersands): New function. Insert suitable number of ampersands. (LaTeX-array-column-letters): New variable. Column letters for array-like environments. (LaTeX-array-count-columns): New function. Count number of ampersands to be inserted. (LaTeX-common-initialization): Add entries to LaTeX-item-list to use `LaTeX-item-array' and `LaTeX-item-tabular*'. * style/amsmath.el: Enhance alignat-like environments support as well as some cleanups. (LaTeX-item-equation-alignat): New function. Insert contents to terminate a line in multi-line equations environment. (LaTeX-amsmath-env-alignat): Use it. Add doc string. (LaTeX-amsmath-env-alignedat): Ditto. (LaTeX-amsmath-env-aligned): Removed. Just specifying a prompt string for an optional argument is enough. (LaTeX-item-equation): Take over the job of `LaTeX-item-equations'. Add an optional `suppress' argument: when it is non-nil skip putting line break macro. Add doc string. (LaTeX-item-equations): Removed. Its task is now covered by `LaTeX-item-equation'. (LaTeX-item-equation-alignat): New function. Insert ampersands according to the columns number, as well as calling `LaTeX-item-equation'. (LaTeX-amsmath-alignat-number-of-ampersands): New function. ("amsmath"): Arrange setups of variables to adopt the above changes. * style/array.el ("array"): Change `LaTeX-array-column-letters' locally to include addtional letters extended in array.sty. * style/plext.el: New style file. Add support for extended format for array-like environments. * Makefile.in (STYLESRC): Include style/plext.el. * doc/auctex.texi: Add documentation for the above enhancements. * doc/changes.texi: Ditto. 2014-07-14 Mosè Giordano * tex-buf.el (TeX-next-error): Do not pass `reparse' argument to `next-error' in XEmacs as it is not supported. (TeX-error-overview-frame, TeX-error-overview-buffer-name): Move before their first use in order to prevent a runtime error in XEmacs and GNU Emacs 21. Reported by Ikumi Keita. (TeX-parse-TeX): Manually set `item' to nil when `TeX-error-last-visited' is negative. (TeX-error-description-error, TeX-error-description-warning) (TeX-error-description-tex-said): Set to nil in XEmacs and GNU Emacs 21. Reported by Ikumi Keita. 2014-07-13 Mosè Giordano * latex.el (TeX-latex-mode): Add second argument to `local-variable-p', mandatory in XEmacs. Suggested by Ikumi Keita. * preview/preview.el (preview-dump-state): Ditto. * style/biblatex.el ("biblatex"): Ditto. * tex.el (TeX-how-many): Make the function return a number also in XEmacs and Emacs 21. Suggested by Ikumi Keita. 2014-07-12 Mosè Giordano * tex-buf.el (TeX-error-description-error): Do not use the `default' display, not supported by GNU Emacs 21 and XEmacs 21.4. (TeX-error-description-warning): Ditto. 2014-07-11 Mosè Giordano * tex-buf.el (TeX-error-description-error): Make face definition XEmacs compatible. (TeX-error-description-tex-said): Ditto. (TeX-error-description-help): Ditto. * tex.el (nil): Handle the case of a non-available crm.el with a `condition-case', instead of using the third argument of `require', not recognized by XEmacs 21.4. (and): Check whether dbus support is available before requiring dbus.el. 2014-07-02 Mosè Giordano * tex.el (TeX-expand-list): Set `TeX-source-correlate-output-page-function' when necessary, in the "%(outpage)" expander. (TeX-source-correlate-method): Add an alist as a possible value and change the default. (TeX-source-correlate-method-active): Convert to a function. (TeX-source-correlate-expand-options): Use the `TeX-source-correlate-method-active' function. (TeX-source-correlate-mode): Remove setting of the `TeX-source-correlate-output-page-function' variable and of the now deleted `TeX-source-correlate-method-active' variable. (TeX-source-specials-view-expand-options): Use the `TeX-source-correlate-method-active' function. (TeX-mode-specific-command-menu-entries): Hide "Previous Error" and "Error Overview" entries when not available. * context.el: Update copyright years. (ConTeXt-expand-options): Use the `TeX-source-correlate-method-active' function. * doc/auctex.texi (I/O Correlation): Update documentation of `TeX-source-correlate-method'. * doc/changes.texi: Mention change to the default value of `TeX-source-correlate-method'. 2014-06-29 Mosè Giordano * doc/todo.texi (Mid-term Goals): Remove "More flexible option and command handling" item: we now have `TeX-command-extra-options'. (Wishlist): Remove "Poor man's Source Specials": AUCTeX supports source specials and SyncTeX. (Wishlist): Remove "multiple completion for \bibliography" item: "\bibliography" does complete multiple arguments. 2014-06-28 Mosè Giordano * tex-buf.el (TeX-command): Kill the frame and buffer associated to the error overview before running commands. (TeX-TeX-sentinel): Open error overview if `TeX-error-overview-open-after-TeX-run' is non-nil and there are errors or warnings to show. (TeX-LaTeX-sentinel): Ditto. (TeX-find-display-help): Set `runbuf' to `TeX-active-buffer' since this function may be called also from the error overview buffer. (TeX-error-description-faces): Change group to more appropriate `TeX-output'. (TeX-error-overview-active-buffer): New variable. (TeX-error-overview-orig-frame): Ditto. (TeX-error-overview-orig-window): Ditto. (TeX-error-overview-frame): Ditto. (TeX-error-overview-setup): New customizable variable. (TeX-error-overview-setup): New function. (TeX-error-overview-goto-source): Ditto. (TeX-error-overview-make-entries): Ditto. (TeX-error-overview-next-error): Ditto. (TeX-error-overview-previous-error): Ditto. (TeX-error-overview-quit): Ditto. (TeX-error-overview-mode-map): New variable. (TeX-error-overview-list-entries): Ditto. (TeX-error-overview-mode): New major mode. (TeX-error-overview-buffer-name): New constant. (TeX-error-overview-frame-parameters): New customizable variable. (TeX-error-overview-open-after-TeX-run): Ditto. (TeX-error-overview): New function. (TeX-find-display-help): Expand the name of the file to be visited starting from the directory of the master file. (TeX-error-overview-make-entries): Add optional `master-dir' argument, to shorten file names when they are relative. (TeX-error-overview): Pass `TeX-master-directory' as argument to `TeX-error-overview-make-entries'. * tex.el (TeX-error-overview): Autoload `TeX-error-overview'. (TeX-mode-specific-command-menu-entries): Add an entry for the error overview. * doc/auctex.texi (Debugging): Document error overview. * doc/changes.texi: Mention error overview. Add local variables to the end of the file. * doc/todo.texi: Add local variables to the end of the file. (Wishlist): Update entry about error reporting. 2014-06-21 Mosè Giordano * tex-buf.el (TeX-parse-TeX): Use `TeX-find-display-help' in place of `TeX-error-list-find-display-help'. (TeX-error-list-find-display-help): Removed, replaced by more general `TeX-find-display-help'. (TeX-find-display-help): New function. (TeX-error): Append nils to the `TeX-error-list' entry to make each entry of the same lenght for both errors and warnings. Append also `TeX-error-point'. This fixes a bug occurring when `TeX-display-help' is set to `expert'. Use `TeX-find-display-help' to display the help. (TeX-warning): Append `TeX-error-point' to the `TeX-error-list' entry to fix the above mentioned bug. Use `TeX-find-display-help' to display the help. 2014-06-04 Mosè Giordano * tex-buf.el (TeX-parse-TeX): Use `TeX-error-list-find-display-help'. (TeX-error-list-find-display-help): New function. (TeX-warning): Use `bad-box' when there is a bad box. (TeX-warning--find-display-help): Cater for bad boxes. (TeX-help-error): Ditto. 2014-06-02 Mosè Giordano * tex-buf.el (TeX-error--find-display-help): Use new fourth argument of `TeX-help-error'. (TeX-warning): Rename mandatory argument to `warning'. Do not add leading "** " to warning string. (TeX-warning--find-display-help): Use new fourth argument of `TeX-help-error'. (TeX-error-description-faces): New group. (TeX-error-description-error): New face. (TeX-error-description-warning): Ditto. (TeX-error-description-tex-said): Ditto. (TeX-error-description-help): Ditto. (TeX-help-error): Add new `type' argument. Color help messages using the new faces. (TeX-warning): Preserve point when searching backward. In some cases this prevents infinite loops in `TeX-parse-all-errors' and fixes wrong detection of context string. 2014-05-27 Mosè Giordano * tex.el (TeX-mode-specific-command-menu-entries): Add `TeX-previous-error'. * tex-buf.el (TeX-error-list): Fix typo. (TeX-parse-all-errors): Ditto. 2014-05-23 Stefan Monnier Backport from ELPA repository. * tex-site.el (TeX-modes-set): Use advice-add if available. * font-latex.el (font-latex-make-sectioning-faces): Don't rely on dynamic scoping for `num'. (font-latex-make-built-in-keywords): Don't use `eval' needlessly. (font-latex-doctex-syntactic-keywords): Declare before first use. (font-latex-match-command-with-arguments): Stay away from `add-to-list' on let-bound variables. (font-latex-match-command-in-braces): Remove unused var `end'. 2014-05-20 Mosè Giordano * tex-buf.el: Update copyright years. (TeX-error-last-visited): New buffer-local variable. (TeX-get-parse-function): New function. (TeX-next-error): Add `apt' argument and make all arguments optional. Use `TeX-get-parse-function'. (TeX-previous-error): Use `TeX-get-parse-function'. Use `TeX-parse-TeX' to move between errors when possible. (TeX-TeX-sentinel): Parse the output log when `TeX-parse-all-errors' is non-nil. (TeX-LaTeX-sentinel): Ditto. (TeX-parse-reset): Add an optional `reparse' argument and reparse the output log when it is non-nil. Reset also `TeX-error-list' and `TeX-error-last-visited'. (TeX-parse-command): Add `arg' argument. (TeX-parse-TeX): Add `arg' argument. When `TeX-parse-all-errors' is non-nil, use `TeX-error-list' to move to the error point. (TeX-error-list): New buffer-local variable. (TeX-parse-all-errors): New customizable variable. (TeX-parse-all-errors): New function. (TeX-parse-error): Add an optional `store' argument. Make the function return non-nil when an error or a warning is found. (TeX-error): Add an optional `store' argument: when it is non-nil store the relevant information about the error in `TeX-error-list'. Use `TeX-error--find-display-help'. (TeX-error--find-display-help): New function. (TeX-warning): Add an optional `store' argument: when it is non-nil store the relevant information about the warning in `TeX-error-list'. Use `TeX-warning--find-display-help'. (TeX-warning--find-display-help): New function. (TeX-output-mode-map): Bind `p' to the now working `TeX-previous-error'. * doc/auctex.texi (Debugging): Document `TeX-previous-error' and `TeX-parse-all-errors'. Update `TeX-next-error'. * doc/changes.texi: Update copyright years. Mention `TeX-next-error' and `TeX-previous-error' changes and the new `TeX-parse-all-errors'. * doc/todo.texi: Update copyright years. (Wishlist): Update a couple of items related to error parsing. 2014-05-17 Mosè Giordano * font-latex.el: Update copyright years. (font-latex-update-sectioning-faces): Make sure `height-scale' is a floating point number. (font-latex-make-sectioning-faces): Ditto. 2014-05-10 Mosè Giordano * style/siunitx.el: Update copyright years and specify last `siunitx' version supported. Hard wrap lines longer than 80 columns. (LaTeX-siunitx-regexp): Move the escape character out of the group matching the unit name. (LaTeX-arg-siunitx-unit): Add `prefix' argument. Replace the space with `TeX-esc' as the completion separator. (LaTeX-arg-define-siunitx-unit): Define a default prompt; set `initial-input' to nil; use `TeX-esc' as prefix to the given input. ("siunitx"): Remove the escape character from the unit names. 2014-05-02 Jobst Hoffmann (tiny change) * style/listings.el ("listings"): Fix typo. 2014-05-01 Mosè Giordano * font-latex.el (font-latex-set-syntactic-keywords): Fix fontification of the optional argument to a verbatim-like environment. 2014-04-16 Tassilo Horn * tex-buf.el (TeX-parse-error): Add another exception. 2014-04-06 Tassilo Horn * tex-info.el (TeX-texinfo-mode): Use `texinfo-current-defun-name' in `C-x 4 a'. 2014-04-04 Mosè Giordano * latex.el (LaTeX-add-environments): Move advising of `LaTeX-add-environments' after definition of `LaTeX-environment-menu' and `LaTeX-environment-modify-menu' variables to fix assignment to free variable warnings. * tex-style.el: Update coyright years. (LaTeX-biblatex-use-Biber): New variable. Mark as safe-local-variable. * latex.el (TeX-latex-mode): Add setting of `LaTeX-using-Biber' to `TeX-update-style-hook'. * style/biblatex.el ("biblatex"): Use `LaTeX-biblatex-use-Biber' value to set `LaTeX-using-Biber' when it is set locally. * tex-bar.el: Update copyright years. (LaTeX-install-toolbar): Append toolbar refresh to `TeX-update-style-hook' instead of prepending it. * doc/auctex.texi: Update copyright years. (Selecting a Command): Document `LaTeX-biblatex-use-Biber'. * doc/changes.texi: Mention `LaTeX-biblatex-use-Biber' change. 2014-04-02 Mosè Giordano * style/biblatex.el: Update copyright years and specify last `biblatex' version supported. (LaTeX-biblatex-executebibliographyoptions-options): Update. (LaTeX-biblatex-language-list): Ditto. (LaTeX-arg-biblatex-cites): Fix condition on `items' variable to adapt to the `TeX-completing-read-multiple' return value change. 2014-03-17 Nicolas Richard * style/exercise.el: New file. 2014-03-18 Tassilo Horn * doc/auctex.texi: Mention that `TeX-PDF-mode' is enabled by default. * tex.el (TeX-PDF-mode): Enable TeX PDF mode by default. * tex-buf.el (TeX-command-master): Ask for TeX-master if it cannot be determined otherwise. 2014-03-15 Mosè Giordano * tex.el (TeX-view-command-raw): Throw an error when `spec' is nil, otherwise when the function returns nil `TeX-command-expand' enters an infinite loop. * style/paralist.el: Update copyright years. ("paralist"): Use `LaTeX-provided-package-options-member' to conditionally define environments. 2014-03-12 Tassilo Horn * multi-prompt.el (multi-prompt): Return nil on empty input. * tex.el (TeX-completing-read-multiple): Define it so that empty input results in nil across different emacs versions (<= 24.3 vs. later versions). * style/biblatex.el ("biblatex"): Use `TeX-completing-read-multiple' instead of `completing-read-multiple'. (LaTeX-arg-biblatex-cites): Use `TeX-completing-read-multiple' and adapt handling of return value. * style/pstricks.el (LaTeX-package-parameters): Adapt to `TeX-completing-read-multiple' change. 2014-03-11 Tassilo Horn * latex.el (LaTeX-arg-usepackage-read-packages-with-options): Fix bug that caused AUCTeX to query for packages infinitely. * context.el (ConTeXt-add-environments): Advice instead of renaming and redefining generated function. * latex.el (LaTeX-close-environment): Remove non-interactive `next-line' usage compile warning. (LaTeX-add-bibliographies): Advice instead of renaming and redefining generated function. (LaTeX-add-environments): Ditto. 2014-03-10 Tassilo Horn * latex.el (LaTeX-fill-break-at-separators): Default to opening and closing math switches. 2014-03-06 Mosè Giordano * doc/auctex.texi (Processor Options): Add missing pair of braces. 2014-02-22 Mosè Giordano * latex.el (LaTeX-environment): Do not set `LaTeX-default-environment' to `environment' if the latter is equal to the current default environment. 2014-02-21 Mosè Giordano * latex.el (LaTeX-arg-usepackage-read-packages-with-options): New function. Now options are requested only if at least one package has been provided. (LaTeX-arg-usepackage-insert): New function. (LaTeX-arg-usepackage): Use `LaTeX-arg-usepackage-read-packages-with-options' and `LaTeX-arg-usepackage-insert'. (LaTeX-insert-usepackages): New function. (LaTeX-env-document): Use it. * doc/auctex.texi (Environments): Document new behavior of `LaTeX-env-document'. * doc/changes.texi: Mention it. 2014-02-20 Mosè Giordano * tex.el (TeX-command-extra-options): New customizable variable. (TeX-expand-list): New `%(extraopts)' expander. (TeX-command-list): Use `%(extraopts)'. * doc/auctex.texi (Processor Options): Document `TeX-command-extra-options'. * doc/changes.texi: Document it. 2014-02-10 Tassilo Horn * style/english.el: New style for english documents so that `TeX-language-en-hook' gets run. * Makefile.in (STYLESRC): Activate it. * doc/auctex.texi (languages): Document it. 2014-02-04 Tassilo Horn * tex.el (TeX-auto-add-type): Convert to macro. * lpath.el: Don't silence byte-compiler. * latex.el (LaTeX-auto-style, LaTeX-auto-arguments) (LaTeX-auto-optional, LaTeX-auto-env-args): Defvar explicitly before use. 2014-01-29 Tassilo Horn * tex-buf.el (TeX-command-query): Use default parameter of `completing-read'. * tex.el (TeX-insert-macro): Use default parameter of `completing-read'. * latex.el (LaTeX-environment, TeX-arg-document): Use default parameter of `completing-read'. 2014-01-22 Tassilo Horn * style/shortvrb.el (LaTeX-shortvrb-chars): Move from tex-style.el. Set default value to nil because just loading shortvrb does not make | a shortvrb char. One needs to define it using \MakeShortVrb{\|}. Extend the docstring so that it tells that one should usually set this variable only buffer-locally. (LaTeX-shortvrb-chars): Declare it as safe local variable. * font-latex.el (font-latex-add-to-syntax-alist): Call `font-latex-setup' to make syntactic font-lock changes effective. 2014-01-21 Berend de Boer * context.el: distinguish between numbered and unnumbered sections. 2014-01-15 Mosè Giordano * style/babel.el: Update copyright years and specify last `babel' version supported. (LaTeX-babel-language-list): Expand language list to all languages mentioned in the last version of the manual. (LaTeX-babel-active-languages): Update in order to parse the `main' option and ignore the modifiers. (LaTeX-babel-package-options): Turn the variable into a function because now requires `TeX-read-key-val'. 2014-01-11 Mosè Giordano * latex.el (LaTeX-current-environment): Make search for `\begin' and `\end' case sensitive. (docTeX-in-macrocode-p): Ditto. (LaTeX-indent-calculate): Ditto. (LaTeX-find-matching-end): Ditto. (LaTeX-find-matching-begin): Ditto. 2014-01-06 Vincent Belaïche * tex-info.el (Texinfo-reftex-hook): Replace use of reftex-tables-dirty by that of reftex-default-label-alist-entries to trigger call to reftex-compile-variables in a standard way. The problem was that generating a TOC for a Texinfo file and then for a LaTeX file was not working for the LaTeX file because the Texinfo file was using LaTeX label style and as such reftex-ensure-compiled-variables was not calling reftex-compile-variables, which caused wrong reftex-everything-regexp for sections. 2014-01-06 Mosè Giordano * latex.el (LaTeX-math-insert): Use `TeX-electric-math' for consistency with `TeX-insert-dollar'. (LaTeX-math-cal): Ditto. 2013-12-24 Mosè Giordano * tex-style.el (LaTeX-fontspec-arg-font-search): New customizable variable. (LaTeX-fontspec-font-list-default): Ditto. * style/fontspec.el (LaTeX-fontspec-arg-font): New function. ("fontspec"): Use it. * doc/changes.texi: Mention `LaTeX-fontspec-arg-font-search' and `LaTeX-fontspec-font-list-default'. 2013-12-20 Mosè Giordano * style/imakeidx.el ("imakeidx"): Move addition of options to `LaTeX-imakeidx-indexsetup-options' inside the hook. * Makefile.in (STYLESRC): Activate new styles. * style/fontspec.el: New style. * style/luacode.el: Ditto. * style/metalogo.el: Ditto. * style/unicode-math.el: Ditto. 2013-12-18 Tassilo Horn * tex-buf.el (TeX-parse-error): Don't confuse ) in package messages with EOF. 2013-12-01 Tassilo Horn * latex.el (LaTeX-common-initialization): Move disabling of `electric-pair-mode' from `VirTeX-common-initialization'. Disable it only if `LaTeX-electric-left-right-brace' is non-nil. * tex.el (VirTeX-common-initialization): See above. 2013-11-29 Tassilo Horn * tex.el (VirTeX-common-initialization): Disable `electric-pair-mode' (a global minor mode) in auctex buffers because it interferes with auctex's pairing feature. 2013-11-23 Mosè Giordano * latex.el (LaTeX-common-initialization): * tex.el (VirTeX-common-initialization): Move `LaTeX-narrow-to-environment' and `TeX-narrow-to-group' bindings to the AUCTeX maps because `narrow-map' is not defined in GNU Emacs < 22.2 and XEmacs. Reported by Giacomo Boffi. 2013-11-13 Mosè Giordano * style/biblatex.el ("biblatex"): Declare expert macros and environments. 2013-11-11 Tassilo Horn * tex-buf.el (TeX-next-error, TeX-previous-error): Call `next-error' also if last TeX command was a compile command (e.g., Check, ChkTeX). (TeX-run-compile): Save compilation buffer in `TeX-command-buffer'. 2013-11-10 Ralf Angeli * bib-cite.el (bib-highlight-mouse): Change regexp to cope with multiple optional arguments of a macro. 2013-11-09 Tassilo Horn * tex.el (TeX-complete-make-expert-command-functions): Change signature of declare-expert functions. * doc/auctex.texi: Document it. 2013-11-08 Tassilo Horn * tex.el (TeX-complete-expert-commands): New defcustom. (TeX-complete-make-expert-command-functions): New macro. (TeX-insert-macro): Restrict completion depending on `TeX-complete-expert-commands'. (VirTeX-common-initialization): Ditto. * latex.el (LaTeX-environment, LaTeX-common-initialization): Restrict completion depending on `TeX-complete-expert-commands'. * tex-info.el (TeX-texinfo-mode): Restrict completion depending on `TeX-complete-expert-commands'. * doc/auctex.texi: Document normal vs. expert commands for users and style file authors. * doc/changes.texi: Mention normal vs. expert commands. * latex.el (LaTeX-common-initialization): Fix void-function LaTeX-symbol-list error. 2013-11-05 Mosè Giordano * doc/auctex.texi (Folding): Document `TeX-fold-auto' and `TeX-fold-unfold-around-mark'. * latex.el (TeX-arg-bibliography): Run style files associated to the bibliography database files. * style/biblatex.el ("biblatex"): Do not quote at all `TeX-arg-key-val' arguments. (LaTeX-arg-addbibresource): Run style file associated to the bibliography database file. 2013-11-03 Mosè Giordano * style/biblatex.el ("biblatex"): Quote `TeX-arg-key-val' arguments with `quote' special form istead of apostrophe. 2013-11-02 Mosè Giordano * latex.el (LaTeX-narrow-to-environment): New function, disabled by default. (LaTeX-common-initialization): Add key binding for `LaTeX-narrow-to-environment'. * tex.el (VirTeX-common-initialization): Add key binding for `TeX-narrow-to-group'. (TeX-narrow-to-group): New function, disabled by default. * doc/auctex.texi (Narrowing): Document narrowing commands. * doc/changes.texi: Mention narrowing commands. 2013-10-19 Mosè Giordano * latex.el (TeX-arg-file-name): New function. (TeX-arg-file-name-sans-extension): Ditto. (TeX-arg-version): Ditto. (LaTeX-common-initialization): Add completion for `ProvidesPackage', `ProvidesClass', and `ProvidesFile'. * doc/auctex.texi (Adding Macros): Document `TeX-arg-version', `TeX-arg-file-name', and `TeX-arg-file-name-sans-extension'. 2013-10-14 Tassilo Horn * doc/changes.texi: Mention the enhanced tabular indentation. * style/longtable.el ("longtable"): Use `LaTeX-indent-tabular' also for longtable environment. * style/tabularx.el ("tabularx"): Use `LaTeX-indent-tabular' also for tabularx environment. * style/tabulary.el ("tabulary"): Use `LaTeX-indent-tabular' also for tabulary environment. * latex.el (LaTeX-indent-environment-list): Use `LaTeX-indent-tabular' also for array and eqnarray environments. 2013-10-14 Oleh Krehel * latex.el: `LaTeX-indent-tabular' now indents tabular-like environments. (LaTeX--tabular-like-end): new variable. (LaTeX-indent-environment-list): added `LaTeX-indent-tabular' as indenter for "tabular" and "align", added a setter that recomputes `LaTeX--tabular-like-end' (LaTeX-env-beginning-pos-col): new function. (LaTeX-hanging-ampersand-position): new function. (LaTeX-indent-tabular): new function. * tests/latex/latex-test.el : added an ERT test for `LaTeX-indent-tabular' (LaTeX-indent-tabular-test/in): input filename variable (LaTeX-indent-tabular-test/out): output filename variable * tests/latex/tabular-in.tex: input to latex-test.el * tests/latex/tabular-out.tex: input to latex-test.el * tex.el (TeX-how-many): added for compatibility with XEmacs. 2013-10-11 Mosè Giordano * doc/auctex.texi (Quotes): Fix typo. * doc/changes.texi: Ditto. 2013-10-10 Ikumi Keita * doc/changes.texi: Document enhanced paired braces feature. * doc/auctex.texi: Ditto. 2013-10-06 Mosè Giordano * tex.el (TeX-insert-macro-default-style): Add new possible value `show-all-optional-args' and update doc-string accordingly. (TeX-parse-arguments): Use it. * doc/auctex.texi (Completion): Document `show-all-optional-args'. * doc/changes.texi: Mention `show-all-optional-args'. * tex.el (TeX-insert-braces-alist): New customizable variable. (TeX-insert-braces): Mention it in doc-string. (TeX-parse-macro): Use `TeX-insert-braces-alist'. * style/booktabs.el: Update copyright years. (LaTeX-booktabs-arg-paren): Let-bind `TeX-arg-opening-brace' and `TeX-arg-closing-brace' instead of `<' and `>'. ("booktabs"): Add `toprule', `midrule', and `bottomrule' macros to `TeX-insert-braces-alist'. ("booktabs"): Add a dummy `ignore' in `cmidrule' macro in order to reset `last-optional-rejected' to nil. * doc/auctex.texi (Completion): Document `TeX-insert-braces-alist'. * doc/changes.texi: Mention `TeX-insert-braces-alist'. 2013-09-27 Mosè Giordano * latex.el (TeX-arg-insert-braces): : Move `indent-according-to-mode' after `save-excursion' because `LaTeX-newline' (used in `save-excursion') deletes trailing whitespaces. * tex-buf.el (TeX-LaTeX-sentinel): Add support for hyperref "Rerun to get outlines right" messages. 2013-09-26 Ikumi Keita * latex.el: Enhance brace pairing feature. (TeX-arg-insert-braces): Extend to be used with \bigl and its friends. (TeX-arg-insert-right-brace-maybe): New function. (LaTeX-insert-left-brace): New function. (LaTeX-insert-corresponding-right-macro-and-brace): New function. (LaTeX-find-preceeding-left-macro-name): New function. (LaTeX-electric-left-right-brace): New customization option. (LaTeX-left-right-macros-association): New variable. * style/amsmath.el ("amsmath"): Make use of the above change. \lvert and \lVert are paired with \rvert and \rVert, respectively. 2013-09-19 Mosè Giordano * style/siunitx.el ("siunitx"): Fix `radian' unit name. 2013-09-17 Fabrice Ben Hamouda (tiny change) * tex-buf.el (TeX-next-error, TeX-active-buffer): Fix a problem with `TeX-next-error' in multi-file documents. 2013-09-16 Tassilo Horn * tex-info.el (TeX-texinfo-mode): Set `TeX-sentinel-default-function' to `TeX-TeX-sentinel'. 2013-09-09 Tassilo Horn * tex-buf.el (TeX-check-files): Handle buffers that haven't been saved yet. 2013-09-02 Tassilo Horn * tex.el (TeX-electric-math): Fix defcustom choices. * bib-cite.el (bib-cite-minor-mode): Call `make-local-hook' only on XEmacs. 2013-08-03 Mosè Giordano * latex.el (TeX-arg-ref): New function. * doc/auctex.texi: Replace occurrences of `TeX-arg-label' with `TeX-arg-ref'. (Adding Macros): Document `TeX-arg-ref'. * style/fancyref.el ("fancyref"): Use `TeX-arg-ref' instead of `TeX-arg-label'. * style/latexinfo.el ("latexinfo"): Ditto. * style/nameref.el ("nameref"): Ditto. * style/varioref.el ("varioref"): Ditto. * style/subfigure.el ("subfigure"): Use `TeX-arg-ref' instead of `TeX-arg-label' and fix parentheses. 2013-07-31 Tassilo Horn * latex.el (LaTeX-math-initialize): Refactor top-level code into function. (LaTeX-math-list): Call `LaTeX-math-initialize' when setting the value in order to update the key bindings. Also shuffle around several definitions in order to get a declaration-before-use order. 2013-07-29 Mosè Giordano * doc/changes.texi: Add other changes. * doc/auctex.texi (Environments): Fix typo. 2013-07-27 Mosè Giordano * latex.el (BibTeX-auto-regexp-list): Remove `TeX-token-char' from the regexp since cite keys can start with non-letter characters, e.g., bibcodes start with year of publication. 2013-07-24 Tassilo Horn * latex.el (LaTeX-math-menu-unicode): Enable also on windows systems as it seems to work there, too. 2013-07-23 Mosè Giordano * tex.el (TeX-clean-default-intermediate-suffixes): Add `.fls', files created by TeX processors with `-recorder' option, and `-blx.bib', files created by `bibtex' when using the `biblatex' package. * doc/changes.texi: Document some changes for next release. 2013-07-22 Mosè Giordano * Makefile.in: Update copyright years. (GITFILES): Rename from `CVSFILES', adapt to Git. (COMMITTER): Get user name and email from Git configuration; escape `<', `>' and spaces. (install-el): Update reference to Git in comment. (release-commit): Adapt to Git; make sure committer name and email are encoded with ISO-8859-1 using the `iconv' program. (tar-ball): Adapt to Git. (preview-ball): Ditto. * auctex.spec (Provides): Update reference to Git in comment. * bib-cite.el: Update AUCTeX repository link in comment. * font-latex.el (font-latex-built-in-keyword-classes): Fix fontification of some biblatex macros. Reported by Christian Knüpfer. (font-latex-built-in-keyword-classes): Revert changes made with commit 7531cca, they were useless. 2013-07-15 Mads Jensen * style/tabulary.el: New style. * Makefile.in (STYLESRC): Activate new style tabulary. 2013-07-12 Mosè Giordano * doc/auctex.texi (Processor Options): Move `TeX-source-correlate-method' to `I/O Correlation' section. 2013-07-11 Mosè Giordano * doc/auctex.texi (Processor Options): Document `TeX-source-correlate-method'. 2013-07-09 Tassilo Horn * latex.el (LaTeX-default-tabular-environment): New variable. (LaTeX-env-figure): Use it instead of hard-coding "tabular". * style/tabularx.el ("tabularx"): Set `LaTeX-default-tabular-environment' to "tabularx". 2013-06-29 Mosè Giordano * bib-cite.el: Replace `save-excursion'+`set-buffer' with `with-current-buffer'. * tex-bar.el: Ditto. * tex-buf.el: Ditto. * tex.el: Replace `save-excursion'+`set-buffer' with `with-current-buffer'. Delete trailing whitespaces. * tex-buf.el (TeX-error-file): Fix spelling error. (TeX-error): Ditto. * doc/install.texi (Configure): Update for Git. * doc/preview-readme.texi (Availability): Ditto. * doc/wininstall.texi: Ditto. 2013-06-26 Tassilo Horn * doc/preview-problems.texi: Rename "Known problems" section to "Known problems with preview-latex" in rawfile export. Delete sections "Problems with Ghostscript" and "Emacs problems" because those are basically ruled out when using the prerequisites documented in the manual. * doc/install.texi: Don't link to ghostscript specific preview-latex problems section because that has been removed. * doc/Makefile.in (DISTTEXTS, ../PROBLEMS.preview): Rename PROBLEMS to PROBLEMS.preview since it only deals with preview-latex problems. * Makefile.in (DISTTEXTS): Use PROBLEMS.preview instead of PROBLEMS. 2013-06-24 Tassilo Horn * doc/Makefile.in (DISTTEXTS): Add ../PROBLEMS. * Makefile.in (DISTTEXTS): Add PROBLEMS. * tex.el (TeX-evince-dbus-p): Require dbus at compile-time. 2013-06-21 Tassilo Horn * tex.el (TeX-evince-dbus-p): Improved DBUS availability check. 2013-06-21 Rüdiger Sonderfeld * tex.el (TeX-doc-backend-alist): Remove unnecessary `info' check. 2013-06-14 Tassilo Horn * tex-jp.el: Change to `coding: iso-2022-jp-unix'. 2013-06-12 Tassilo Horn * tex-jp.el: Add `coding: iso-2022-7bit-unix' file local variable. 2013-06-11 Tassilo Horn * tex-buf.el (TeX-help-error): Let-bind `inhibit-read-only' when updating the *TeX Help* buffer. 2013-06-11 Mosè Giordano * latex.el (TeX-after-document-hook): New hook. (TeX-arg-document): Use it. (LaTeX-after-usepackage-hook): New hook. (LaTeX-arg-usepackage): Use it, remove babel specific code. * style/babel.el: Update copyright years. (LaTeX-env-babel-lang): New function. ("babel"): Add `LaTeX-env-babel-lang' to `LaTeX-after-usepackage-hook'. 2013-06-08 Mosè Giordano * tex.el (TeX-math-close-double-dollar): Remove. (TeX-math-close-single-dollar): Ditto. (TeX-electric-dollar): Ditto. (TeX-electric-math): New customizable variable, supersedes variables above. (TeX-insert-dollar): Adapt to `TeX-electric-math'. See http://thread.gmane.org/gmane.emacs.auctex.devel/3070 * doc/auctex.texi (Quotes): Document `TeX-electric-math'. (Environments): Document `LaTeX-find-matching-begin' and `LaTeX-find-matching-end'. 2013-06-02 Mosè Giordano * tex-buf.el: Shorten copyright year ranges and update with missing years. Delete trailing whitespaces. (TeX-run-compile): Let-bind `default-directory' to `TeX-master-directory'. 2013-05-31 Tassilo Horn * autogen.sh: Set LC_ALL=C when looking into ChangeLog for AUCTEXDATE. 2013-05-31 Mosè Giordano * latex.el (LaTeX-env-figure): Simplify using `save-excursion' instead of regexp searches. Fill the caption when `auto-fill-mode' is on. 2013-05-30 Mosè Giordano * tex.el (TeX-expand-list): Add new expander "%a", it returns the quoted absolute path of the file visiting current buffer. (TeX-view-program-list-builtin): Use "%a" expander for forward PDF search. 2013-05-28 Tassilo Horn * tex.el (TeX-source-correlate-sync-source): Fix docstring. 2013-05-23 Mosè Giordano * font-latex.el: Update copyright years, there have been non-trivial changes in 2010, and 2011. (font-latex-built-in-keyword-classes): Fontify Biblatex multicites macros up to three mandatory arguments. * style/biblatex.el (LaTeX-biblatex-entrytype): New variable. (LaTeX-biblatex-executebibliographyoptions-options): New variable. (LaTeX-biblatex-language-list): New variable. (LaTeX-arg-biblatex-cites): New function. ("biblatex"): Always set `LaTeX-using-Biber'. Add citation macros. (LaTeX-biblatex-package-options-list): Move preamble options to `LaTeX-biblatex-executebibliographyoptions-options'. 2013-05-22 Mosè Giordano * latex.el: Replace `delete-backward-char' with `delete-char'. * tex.el: Ditto. * tex-buf.el: Replace `goto-line' with `goto-char' and `forward-line'. 2013-05-19 Mosè Giordano * doc/.gitignore: Rename from .cvsignore. * preview/.gitignore: Ditto. * preview/latex/.gitignore: Ditto. 2013-05-18 Mosè Giordano * latex.el: Update copyright years, there have been non-trivial changes in 1998, 2001, 2002. (TeX-arg-index-tag): Use `TeX-argument-prompt'. (TeX-arg-cite): Ditto. * tex.el: Update copyright years, there have been non-trivial changes in 1995, 1998. (TeX-parse-arguments): Move skipping of optional arguments inside loop over all arguments, because optional arguments may not be the first ones. Remove unused let-bound variable `skip-opt'. (TeX-arg-literal): Remove FIXME comment, `optional' is the first argument passed to all functions by `TeX-parse-argument'. 2013-05-13 Mosè Giordano * style/fancyvrb.el: New style. * style/xparse.el: Ditto. * Makefile.in (STYLESRC): Add style/fancyvrb.el and style/xparse.el. 2013-05-12 Mosè Giordano * tex.el (TeX-insert-dollar): Insert just a single dollar when the point is in a verbatim-like construct. * font-latex.el (font-latex-jit-lock-force-redisplay): Don't rely on existing `jit-lock-force-redisplay' because recent bzr Emacs broke compatibility changing the number of arguments. Reported by Robert Goldman. 2013-05-08 Mosè Giordano * doc/auctex.texi (Environments): Document `LaTeX-default-document-environment'. 2013-05-07 Mosè Giordano * tex.el (TeX-electric-dollar): New variable. (TeX-insert-dollar): Use it. * doc/auctex.texi (Quotes): Document `TeX-electric-dollar'. 2013-04-28 Mosè Giordano * tex-bar.el: Update copyright range. (TeX-bar-LaTeX-button-alist): Change BibTeX button to Biber when `LaTeX-using-biber' is non-nil. (LaTeX-install-toolbar): Refresh toolbar after styles update. 2013-04-25 Mosè Giordano * latex.el (LaTeX-default-document-environment): New buffer-local variable. (LaTeX-default-environment): Mention `LaTeX-default-document-environment' in doc-string. (LaTeX-environment): Use `LaTeX-default-document-environment'. * style/beamer.el ("beamer"): Use `LaTeX-default-document-environment' instead of `LaTeX-default-environment'. * style/letter.el ("letter"): Ditto. * style/slides.el ("slides"): Ditto. 2013-04-24 Mosè Giordano * style/acro.el (LaTeX-acro-acronym-history): New variable. (LaTeX-arg-acro-acronym): Use it. * style/acronym.el (LaTeX-acronym-acronym-history): New variable. (LaTeX-arg-acronym-acronym): Use it. * style/beamer.el (LaTeX-beamer-frametitle-history): New variable. ("beamer"): Use it. (TeX-arg-beamer-frametitle): Ditto. * style/siunitx.el (LaTeX-siunitx-unit-history): New variable. (LaTeX-arg-siunitx-unit): Use it. 2013-04-21 Mosè Giordano * style/beamer.el ("beamer"): Set `frame' as default environment. Set `section' as largest sectioning level. Add fontification for `title', `author', and `date'. * style/letter.el ("letter"): Set `letter' as default environment. Add some macros and fontification. * style/slides.el ("slides"): Set `slide' as default environment. * latex.el (TeX-arg-insert-braces): Move `indent-according-to-mode' after `save-excursion' because `LaTeX-newline' (used in `save-excursion') deletes trailing whitespaces. 2013-04-19 Mosè Giordano * style/amsthm.el (LaTeX-amsthm-package-options): New variable. ("amsthm"): Remove `newtheorem' macro, already defined in `latex.el'. Use `TeX-arg-define-environment' in `newtheorem*' macro. Add `qedhere', `swapnumbers', and `newtheoremstyle' macros. Add `newtheorem*' regexp to match new environments. Add fontification. * style/article.el ("article"): Add counters and pagestyles. * style/beamer.el ("beamer"): Ditto. * style/book.el ("book"): Ditto. * style/letter.el (LaTeX-letter-class-options): New variable. ("letter"): Add pagestyles. * style/report.el ("report"): Add counters and pagestyles. * style/slides.el (LaTeX-slides-class-options): New variable. ("slides"): Add counters and pagestyles. 2013-04-18 Mosè Giordano * style/beamer.el: Update copyright years and remove trailing whitespaces. ("beamer"): Run style hooks for loaded packages. (LaTeX-beamer-class-options): New function. * style/hyperref.el (LaTeX-hyperref-package-options-list): Rename from `LaTeX-hyperref-package-options' to avoid clash with the function with the same name. ("hyperref"): Use it. (LaTeX-hyperref-package-options): Ditto. 2013-04-17 Mosè Giordano * plain-tex.el (plain-TeX-common-initialization): Fix typo in abbrev table name. 2013-04-16 Mosè Giordano * latex.el (LaTeX-default-author): New customizable variable. (LaTeX-arg-author): New function. (LaTeX-common-initialization): Use `LaTeX-arg-author' for the \author macro. (LaTeX-default-author): Change default to 'user-full-name (quoted) and add a new possible value. (LaTeX-arg-author): Change accordingly. * doc/auctex.texi (Itemize-like): Document `TeX-arg-item-label-p' option. (Tabular-like): Document `LaTeX-default-width' option. (Modes and Hooks): Add modes and hooks to indices. (Adding Macros): Document `TeX-arg-index-tag', `TeX-arg-index', `TeX-arg-document', `LaTeX-arg-usepackage', `TeX-arg-bibstyle', `TeX-arg-bibliography', `LaTeX-arg-author', `TeX-read-key-val', and `TeX-arg-key-val' functions. Mention `TeX-arg-cite-note-p' and `LaTeX-default-author' options. (Adding Environments): Use in example code actually present in `listings.el' file. 2013-04-16 Tassilo Horn * tex.el (TeX-source-correlate-sync-source): Use `raise-frame' instead of the external wmctrl command to raise the emacs frame. 2013-04-15 Mosè Giordano * latex.el (TeX-read-key-val): Add `prompt' optional argument. (TeX-arg-key-val): Ditto. * tex.el (fboundp): Use `crm-separator' as separator in XEmacs `TeX-completing-read-multiple' implementation. * style/acro.el (LaTeX-arg-acro-key-val): Let-bind keymap with SPC key binding removed, instead of defining a new key binding for SPC. Use `TeX-arg-key-val' instead of `multi-prompt-key-value' and `TeX-argument-insert'. * style/pst-node.el (LaTeX-pstnode-env-psmatrix): Replace `completing-read-multiple' with `TeX-completing-read-multiple'. * style/pstricks.el (LaTeX-package-parameters): Ditto. * style/siunitx.el (LaTeX-arg-siunitx-unit): Let-bind keymap with SPC key binding removed, instead of defining a new key binding for SPC. Replace `completing-read-multiple' with `TeX-completing-read-multiple'. 2013-04-15 Tassilo Horn * tex.el (TeX-source-correlate-sync-source): Raise frame when placing point on the source location. 2013-04-12 Mosè Giordano * Makefile.in (STYLESRC): Add style/acro.el and style/acronym.el. * style/acro.el: New style. * style/acronym.el: Ditto. 2013-04-10 Tassilo Horn * tex.el (TeX-evince-sync-view): URL-escape pdf file path when calling evince via DBUS. (TeX-evince-sync-view): Use 0 as timestamp. (TeX-source-correlate-sync-source): URL-decode tex file name. 2013-04-10 Nicolas Richard (tiny change) * style/mathtools.el (LaTeX-mathtools-key-val-options): Fix defvar syntax. 2013-04-10 Jobst Hoffmann (tiny change) * style/lscape.el ("lscape"): Fix typo and parentheses. 2013-04-09 Tassilo Horn * README.GIT: Rename from README.CVS; update contents to Git. 2013-04-09 Leo Liu * latex.el (LaTeX-outline-level): Make it work for customized `outline-regexp'. See bug report http://permalink.gmane.org/gmane.emacs.auctex.bugs/1648. * tex.el (TeX-view-program-list-builtin) (TeX-view-program-selection): Enable commented code to support darwin system. * tex.el (TeX-math-input-method-off-regexp): Improve and fix typo. See bug http://permalink.gmane.org/gmane.emacs.auctex.devel/2468. * font-latex.el (font-latex-add-to-syntax-alist): Fix a bug in `font-latex-add-to-syntax-alist' where it modified both the buffer local and global value of `font-latex-syntax-alist'. 2013-04-08 Tassilo Horn * latex.el (LaTeX-style-list): Correct docstring. 2013-04-06 Mosè Giordano * latex.el (LaTeX-provided-class-options-member): Fix typo. (LaTeX-arg-usepackage): Provide completion for more than one package in mandatory argument. 2013-04-05 Mosè Giordano * latex.el (LaTeX-global-class-files): New variable. (TeX-arg-document): Provide completion for class options, based on `LaTeX-arg-usepackage'. Use `LaTeX-global-class-files'. (LaTeX-style-list): Mention that if `TeX-arg-input-file-search' is set to `t' this variable will be ignored. * tex.el (TeX-normal-mode): Reset `LaTeX-global-class-files' when ARG is non-nil. * style/article.el (LaTeX-article-class-options): New variable. * style/book.el (LaTeX-book-class-options): New variable. * style/report.el (LaTeX-report-class-options): New variable. 2013-04-03 Mosè Giordano * latex.el (LaTeX-provided-class-options): New buffer-local variable. (LaTeX-provided-class-options-member): New function. (LaTeX-provided-package-options): New buffer-local variable. (LaTeX-provided-package-options-member): New function (LaTeX-auto-cleanup): Rewrite to support `LaTeX-provided-{class,package}-options' variables. (LaTeX-arg-usepackage): Ditto. * tex.el (TeX-auto-store): Write to parsed file values of `LaTeX-provided-{class,package}-options' variables. (TeX-auto-insert): Fix indentation of inserted lines. (TeX-search-files-by-type): Fix typo in doc-string. (TeX-add-to-alist): New function. (TeX-quote-language-alist): Fix typo in doc-string. * style/babel.el (LaTeX-babel-package-options): Add missing languages. (LaTeX-babel-package-options): Add options other than languages. (LaTeX-babel-active-languages): Use `LaTeX-provided-{class,package}-options'. Loop over actually used options instead of all babel languages. ("babel"): Run styles of active languages. * style/biblatex.el ("biblatex"): Use `LaTeX-provided-package-options-member'. (LaTeX-biblatex-package-options): Consider the `ask' value for 'TeX-arg-input-file-search'. * style/kpfonts.el ("kpfonts"): Use `LaTeX-provided-package-options-member'. * style/siunitx.el: Rename `TeX-siunitx-*' functions to `LaTeX-siunitx-*' for consistency. ("siunitx"): Use `LaTeX-provided-package-options-member'. 2013-03-29 Mosè Giordano * latex.el (TeX-arg-document): Search for LaTeX classes. 2013-03-28 Mosè Giordano * style/biblatex.el (LaTeX-biblatex-package-options): Correct name of `TeX-read-key-val' argument. * latex.el (LaTeX-common-initialization): Remove `addbibresource' macro. * style/biblatex.el (LaTeX-biblatex-addbibresource-options): New variable. (LaTeX-arg-addbibresource): New function, based on current `TeX-arg-bibliography'. ("biblatex"): Add `addbibresource' macro. (LaTeX-biblatex-package-options): Use `TeX-read-key-val'. * latex.el (TeX-arg-bibliography): Remove `addbibresource' support. 2013-03-27 Mosè Giordano * tex.el (TeX-add-local-master): Remove trailing spaces from inserted lines. 2013-03-07 Tassilo Horn * latex.el (TeX-read-key-val): New function. (TeX-arg-key-val): Use `TeX-read-key-val'. * style/hyperref.el (LaTeX-hyperref-package-options): Use `TeX-read-key-val' instead of `TeX-arg-key-val' which caused args to be inserted twice. * style/siunitx.el (LaTeX-siunitx-package-options): Ditto. 2013-03-06 Mads Jensen * style/amsopn.el: Add GPL copyright notice. ("amsopn"): Add regex for \DeclareMathOperator to `LaTeX-auto-regexp-list'. Use `TeX-arg-define-macro' for \DeclareMathOperator. 2013-03-06 Mads Jensen * tex.el (TeX-command-list): Add support for xindy. 2013-03-06 Mads Jensen * latex.el (LaTeX-common-initialization): Add regular expression for thispagestyle and pagestyle to `TeX-complete-list'. 2013-03-04 Tassilo Horn * latex.el (TeX-arg-date): New function. (LaTeX-common-initialization): Use `TeX-arg-date' for \date macro. * doc/auctex.texi: Document `TeX-arg-date'. * style/doc.el ("doc"): Use `TeX-arg-date' for the \changes macro. 2013-02-26 Tassilo Horn * tex.el (TeX-run-style-hooks): Guard running style hooks in a `condition-case' in order not to error in cases the auto file contains calls to functions that are defined by a style that has been deactivated in the meantime. 2013-02-25 Werner Fink * style/dinbrief.el ("dinbrief"): Update dinbrief style. (LaTeX-dinbrief-insert): New macro. (LaTeX-dinbrief-style): New function. (LaTeX-dinbrief-env-recipient): Rename from `LaTeX-recipient-hook'. (LaTeX-dinbrief-sender): New function. (LaTeX-dinbrief-recipient): New function. (LaTeX-dinbrief-today): Rename from `LaTeX-today'. 2013-02-25 Tassilo Horn * tex.el (TeX-parse-macro): Add TeX group characters also in math environments if there is an active region that should probably used as argument. * latex.el (LaTeX-paragraph-commands-internal): Add \clearpage and \newpage. * style/scrbase.el ("scrbase"): Add \minisec macro to `LaTeX-paragraph-commands' locally. 2013-02-23 Mosè Giordano * style/kpfonts.el: New style file. * Makefile.in (STYLESRC): Add style/kpfonts.el. 2013-02-20 Mosè Giordano * latex.el (LaTeX-math-default): Move `digamma' and `varkappa' to `AMS > Greek Lowercase' menu. 2013-02-18 Mads Jensen * Makefile.in (STYLESRC): Activate new style array.el. * style/array.el: New style. * style/tabularx.el: Expand copyright range. ("tabularx"): The package relies on the array package, so run its style hook. 2013-02-18 Tassilo Horn * tex.el (require): Require crm. * multi-prompt.el (multi-prompt-key-value): Don't require crm here because it has already been required in tex.el. 2013-02-16 Mosè Giordano * style/biblatex.el ("biblatex"): Add hooks for loaded packages. (LaTeX-biblatex-package-options): New function. (LaTeX-biblatex-package-options-list): Renamed from `LaTeX-biblatex-package-options' to avoid clash with the function with the same name. * latex.el (LaTeX-search-files-type-alist): Add `bbxinputs'. (BibLaTeX-global-style-files): New variable. * tex.el (BibLaTeX-style-extensions): New variable. (TeX-normal-mode): Make ARG argument optional. (TeX-normal-mode): Reset `BibLaTeX-global-style-files' when ARG is non-nil. 2013-02-14 Mosè Giordano * style/siunitx.el (LaTeX-siunitx-package-options): New function. * style/hyperref.el (LaTeX-hyperref-package-options): New function. 2013-02-13 Mads Jensen * style/subfigure.el: Expanded copyright range. ("subfigure"): Collapsed the two regular expressions for completion. Added lengths, and commands for fonts. 2013-02-14 Tassilo Horn * style/fancyhdr.el (TeX-arg-fancyhdr-position): Document the OPTIONAL argument. 2013-02-14 Mads Jensen * Makefile.in (STYLESRC): Activate new style fancyhdr.el. * style/fancyhdr.el: New style. 2013-02-13 Mosè Giordano * doc/auctex.texi (Quotes): Document `TeX-math-close-single-dollar'. (Selecting a Command): Remove reference to `LaTeX-biblatex-use-Biber'. (Parsing Files): Document `LaTeX-auto-index-regexp-list', `LaTeX-auto-class-regexp-list', `LaTeX-auto-pagestyle-regexp-list', `LaTeX-auto-counter-regexp-list', `LaTeX-auto-length-regexp-list', `LaTeX-auto-savebox-regexp-list'. * tex.el (TeX-math-close-single-dollar): New variable. (TeX-insert-dollar): Use it. 2013-02-13 Tassilo Horn * Makefile.in (STYLESRC): Activate new style filecontents.el. 2013-01-23 Mads Jensen * style/filecontents.el: New style. 2013-02-13 Tassilo Horn * Makefile.in (STYLESRC): Activate new style fancynum.el. 2013-02-08 Mads Jensen * style/fancynum.el: New style. 2013-02-13 Tassilo Horn * Makefile.in (STYLESRC): Activate new style nameref.el. 2013-02-13 Mads Jensen * doc/auctex.texi (Adding Macros): Mention that `TeX-arg-savebox' now supports completion. * style/nameref.el: New style. * style/hyperref.el ("hyperref"): Run nameref style hook because hyperref activates nameref. 2013-02-10 Mosè Giordano * style/siunitx.el ("siunitx-unit"): New type for the parser. (LaTeX-siunitx-regexp): New variable. (LaTeX-auto-siunitx-unit): New variable. (LaTeX-siunitx-prepare): New function. (LaTeX-siunitx-cleanup): New function. (TeX-auto-prepare-hook): Add `LaTeX-siunitx-prepare' function. (TeX-auto-cleanup-hook): Add `LaTeX-siunitx-cleanup' function. (TeX-arg-siunitx-unit): New function. (TeX-arg-define-siunitx-unit): New function. ("siunitx"): Add `LaTeX-siunitx-regexp' to list of regexps used for parsing. ("siunitx"): Use `TeX-arg-siunitx-unit' and `TeX-arg-define-siunitx-unit' functions. ("siunitx"): Use `LaTeX-add-siunitx-units' for adding siunitx unit macros to the list of known units. 2013-02-08 Mosè Giordano * style/biblatex.el: Update copyright range. ("biblatex"): Check `backend' option value in `TeX-active-styles'. * tex-style.el: Update copyright years. (LaTeX-biblatex-use-Biber) Remove unused variable. * tex.el: Update copyright range. (TeX-auto-add-type): Append new type to `TeX-auto-parser' instead of prepending it. (TeX-auto-store): Fix indentation of first lines of parsed file. * latex.el (LaTeX-auto-cleanup): Append options and styles to `TeX-auto-file' instead of prepending them. 2013-01-28 Mads Jensen * doc/todo.texi (Wishlist): Remove "Completion for sboxes". 2013-01-27 Mads Jensen * latex.el (LaTeX-env-contents): Replaced regular expression with `LaTeX-header-end', i.e., filecontents environments must go somewhere in the preamble but not necessarily before the \documentclass. 2013-01-26 Mads Jensen * latex.el (LaTeX-auto-savebox-regexp-list): New variable. (LaTeX-auto-regexp-list): Use `LaTeX-auto-savebox-regexp-list'. ("savebox"): New type for the parser. (TeX-arg-savebox): Use `LaTeX-savebox-list' for completion and `definition' argument. (LaTeX-common-initialization): Added makeatletter, makeatother, and jobname macros. (LaTeX-default-options): Changed documentstyle to documentclass in docstring. 2013-01-25 Mosè Giordano * style/siunitx.el ("siunitx"): Add `\gram' and `\SendSettingsToPgf'. 2013-01-25 Tassilo Horn * tex-buf.el (TeX-output-mode): Make revert-buffer-function buffer local before setting it to TeX-output-revert-buffer. 2013-01-24 Ivan Andrus * auctex.texi: Updated documetation about ChkTeX and lacheck. Fixed typos. 2013-01-24 Ivan Andrus * tex-buf.el (TeX-output-revert-buffer): New function. (TeX-special-mode, TeX-output-mode): New major modes. (TeX-special-mode-map, TeX-output-mode-map): New variables. 2013-01-21 Tassilo Horn * Makefile.in (STYLESRC): Activate new style placeins.el. 2013-01-21 Ivan Andrus * texmathp.el (texmathp-tex-commands-default): Add \shortintertext. 2013-01-19 Mads Jensen * style/placeins.el: New style. 2013-01-17 Tassilo Horn * doc/todo.texi: Remove the todo concerning completion for counters that was implemented by Mosè Giordano on 2013-01-15. * doc/auctex.texi: Document `TeX-arg-length' and `TeX-arg-define-length'. 2013-01-16 Mosè Giordano * latex.el (LaTeX-auto-length-regexp-list): New variable. (LaTeX-auto-regexp-list): Use `LaTeX-auto-length-regexp-list'. ("length"): New type for the parser. (TeX-arg-length): New function. (TeX-arg-define-length): New function. (LaTeX-common-initialization): Initialize some standard LaTeX lengths and use `TeX-arg-length' and `TeX-arg-define-length' for completion of some macros. 2013-01-15 Tassilo Horn * doc/auctex.texi: Document that `TeX-arg-counter' does completion now. 2013-01-15 Mosè Giordano * latex.el (LaTeX-auto-pagestyle-regexp-list): Fix typo. (LaTeX-auto-counter-regexp-list): New variable. (LaTeX-auto-regexp-list): Use `LaTeX-auto-counter-regexp-list'. ("counter"): New type for the parser. (TeX-arg-counter): Use `LaTeX-counter-list' function for completion and `definition' argument. (TeX-arg-pagestyle): Use `definition' argument. (LaTeX-common-initialization): Initialize counters. 2013-01-14 Tassilo Horn * style/ulem.el (LaTeX-arg-fontdecl, LaTeX-arg-fontcmd): Fix declarations. 2013-01-13 Mads Jensen * style/pstricks.el (LaTeX-pstricks-package-options): New variable. * style/varioref.el: Update copyright range. ("varioref"): Add more definitions. (LaTeX-varioref-package-options): Reformat. * style/listings.el: Update copyright range. (LaTeX-listings-key-val-options, "listings") (LaTeX-listings-package-options): Update to recent listings version. 2013-01-14 Tassilo Horn * Makefile.in (STYLESRC): Enable memoir.el style. 2013-01-14 Mads Jensen * style/memoir.el: New style. 2013-01-14 Mosè Giordano * latex.el (TeX-arg-environment): Fix typo. 2013-01-10 Mosè Giordano * latex.el: Update copyright range. (LaTeX-auto-pagestyle-regexp-list): New variable. (LaTeX-auto-regexp-list): Use `LaTeX-auto-pagestyle-regexp-list'. ("pagestyle"): New type for the parser. (LaTeX-pagestyle-list): Remove. (TeX-arg-pagestyle): Use `LaTeX-pagestyle-list' function for completing. (LaTeX-common-initialization): Initialize pagestyles. * style/imakeidx.el: Use `LaTeX-pagestyle-list' function to set `firstpagestyle' option values. 2013-01-11 Ivan Andrus * tex.el (TeX-command-list): Add command to run ChkTeX. 2013-01-11 Tassilo Horn * Makefile.in (STYLESRC): Add new style files kantlipsum.el, lipsum.el, and longtable.el. 2013-01-10 Mosè Giordano * style/kantlipsum.el: New style. * style/lipsum.el: Ditto. * style/longtable.el: Ditto 2013-01-10 Mads Jensen * latex.el (LaTeX-env-document): Only insert \documentclass in case the document does not already contain one. 2013-01-09 Ralf Angeli * style/epigraph.el ("epigraph"): Do not quote list entries for `font-latex-add-keywords'. 2013-01-07 Ralf Angeli * style/mathtools.el ("mathtools"): Prevent amsmath options from being added multiple times. * style/footmisc.el ("footmisc"): Remove fontification settings for length macros. 2013-01-06 Ralf Angeli * style/mathtools.el ("mathtools"): Append amsmath options to mathtools option after the amsmath style file has been loaded. Remove `function' wrapper. 2013-01-05 Ralf Angeli * Makefile.in (STYLESRC): Activate new style files. * ChangeLog: Move name of style file contributors to head of ChangLog entries. 2013-01-02 Tassilo Horn * style/everysel.el: Fix typos. 2013-01-02 Mads Jensen * style/afterpage.el: New style. 2012-12-30 Mosè Giordano * latex.el (LaTeX-pagestyle-list): New variable. (TeX-arg-pagestyle): Use it. * style/imakeidx.el: New style. 2012-12-29 Ikumi Keita * doc/tex-ref.tex: Fix apparent errors and add keybind entries for C-c ? and `:' (in math mode). 2012-12-28 Mads Jensen * style/multirow.el: New style. 2012-12-27 Mosè Giordano * style/siunitx.el (LaTeX-siunitx-package-options): New variable. ("siunitx"): Use it. * style/hyperref.el (LaTeX-hyperref-href-options): New variable. (LaTeX-hyperref-package-options, "hyperref"): Use it. 2012-12-27 Mads Jensen * style/mflogo.el: New style. * style/epigraph.el: Ditto. 2012-12-27 Ikumi Keita * amsmath.el ("amsmath"): Add support for the alignedat and subarray environments. Also, add support for the shoveright and shoveleft macros. * font-latex.el (font-latex-math-environments): Add "xxalignat" and "flalign". 2012-12-26 Mads Jensen * style/lscape.el: New style. * style/amssymb.el: Ditto. * style/ragged2e.el: Ditto. * style/mathtools.el: Ditto. * style/everysel.el: Ditto. * style/bigstrut.el: Ditto. * style/bigdelim.el: Ditto. 2012-12-25 Mads Jensen * style/ulem.el: New style. 2012-12-25 Ikumi Keita * latex.el (LaTeX-math-default): Added unicode character position to some entries and "mathring" entry. (LaTeX-common-initialization): Added support for accent macros \hat, \dot etc and \textasteriskcentered. 2012-12-24 Mads Jensen * style/footmisc.el: New style. 2012-12-21 Mosè Giordano * style/bm.el: New style. * style/siunitx.el: Ditto. 2012-12-20 Tassilo Horn * tex-bar.el (TeX-bar-LaTeX-buttons, TeX-bar-LaTeX-button-alist): Also add spell button. * images/spell.xpm: New image, copied from Emacs. * tex-bar.el (TeX-bar-TeX-button-alist): Use it for the spell button. 2012-12-20 Tassilo Horn * tex-bar.el (TeX-bar-TeX-button-alist, TeX-bar-TeX-buttons): Add `spell' button to run spell-checker. 2012-12-04 Tassilo Horn Merge revno 314 (Stefan Monnier) from emacs elpa branch: Shorten copyright year ranges. * context.el: * doc/auctex.texi: * doc/changes.texi: * doc/install.texi: * font-latex.el: * latex.el: * style/letter.el: * tex-fold.el: * tex-jp.el: * tex.el: 2012-11-30 Ralf Angeli * Version 11.87 released. 2012-11-30 Ralf Angeli * tex.el (TeX-evince-dbus-p): Make last change a little more conventional. 2012-11-30 Tassilo Horn * tex.el (TeX-evince-dbus-p): Check for feature emacs in order not to signal an error on XEmacs. 2012-11-29 Ralf Angeli * RELEASE, configure.ac, doc/auctex.texi, doc/changes.texi, doc/install.texi, doc/tex-ref.tex: Update for upcoming release. 2012-11-26 Ralf Angeli * latex.el (LaTeX-split-bibs): Add doc string and use variable for Biber file extensions. (LaTeX-search-files-type-alist): Add entry for Biber. (BibTeX-Biber-global-files): Remove. (BibTeX-global-files): Reintroduce. (TeX-Biber-global-files): New variable. (TeX-arg-bibliography): Check if Biber or BibTeX is used and react accordingly. * tex-buf.el (TeX-check-files): Do not check duplicate extensions. (TeX-command-query, TeX-LaTeX-sentinel): Use separate variables for BibTeX and Biber file extensions. (TeX-synchronous-sentinel): Use `let' instead of `let*'. * tex.el (TeX-clean-default-intermediate-suffixes): Add suffixes for biblatex. (TeX-auto-generate, TeX-auto-generate-global): Use separate variables for BibTeX and Biber file extensions. (TeX-Biber-file-extensions): New variable. (BibTeX-Biber-file-extensions): Remove. (BibTeX-file-extensions): Reintroduce. (TeX-search-files-type-alist): Use `BibTeX-file-extensions'. (TeX-normal-mode): Use separate variables for BibTeX and Biber global files. 2012-07-17 Vincent Belaïche * tex-info.el (Texinfo-reftex-hook): Added function. (TeX-texinfo-mode): Added RefTeX plugging. 2012-11-23 Tassilo Horn * doc/quickstart.texi (Quick Start): Document that one mustn't load auctex.el if AUCTeX is installed from ELPA. * doc/install.texi (Installation): Mention installation from ELPA. 2012-11-20 Davide G. M. Salvetti * doc/tex-ref.tex (column{preview-latex}): Fix typo. Reported by Sébastien Villemot. Update copyright information. 2012-11-14 Ralf Angeli * latex.el (LaTeX-auto-regexp-list): Remove entries for Biber. (LaTeX-biber): Remove. (LaTeX-listify-package-options): Rewrite so that the function can deal with key=value pairs. (LaTeX-always-use-Biber): Remove. (LaTeX-using-Biber): Add doc string and make buffer-local. * tex-style.el (LaTeX-biblatex-use-Biber): New variable. * doc/auctex.texi (top): Remove reference to `LaTeX-always-use-Biber'. (Selecting a Command): Mention Biber and `LaTeX-biblatex-use-Biber'. * Makefile.in (STYLESRC): Add style/biblatex.el. * style/biblatex.el: New file. 2012-11-05 Tassilo Horn * tex.el (TeX-doc-extensions): Fix typo. This variable was formerly named TeX-doc-extenstions. 2012-10-04 Masayuki Ataka * tex-jp.el: Repair coding from iso-2022-7bit to iso-2022-jp. 2012-10-03 Ralf Angeli * tex-jp.el: Repair coding. 2012-10-02 Ikumi Keita * tex-jp.el (japanese-TeX-engine-default) (TeX-engine-alist-builtin, japanese-TeX-use-kanji-opt-flag): New defcustoms. (japanese-TeX-coding-ejsu, japanese-TeX-get-encoding-string): New functions. (japanese-TeX-command-list): Support %(kanjiopt). (TeX-expand-list): Support new option kanjiopt, bibtex, makeindex, mendexkopt, xdvi. (TeX-view-predicate-list-builtin): Judge paper. (TeX-view-program-list): Support dviout paper size, and other DVI previewers in Mac and others. (TeX-view-program-selection): Add Dviout, TeXworks and Preview. (LaTeX-command-style): Support uplatex. (japanese-plain-tex-mode-initialization): Use TeX-engine-set. (japanese-latex-mode-initialization): Ditto. * tex-jp.el: Comment fix. (TeX-error-description-list): Doc fix. 2012-09-27 Joost Kremers (tiny change) * tex-buf.el (TeX-check-files): Use mapcar instead of cl's map. 2012-09-16 Philip Kime (tiny change) * tex-buf.el (TeX-LaTeX-sentinel): Detect generic rerun message from biblatex 2012-09-14 Ken Brown (tiny change) * doc/auctex.texi (top): Mention LaTeX-always-use-Biber. * doc/tex-ref.tex: Add Biber. 2012-09-13 Tassilo Horn Merge Biber support developed by Philip Kime . * doc/changes.texi: Mention Biber support. * tex.el (TeX-command-list, TeX-auto-generate) (TeX-auto-generate-global, TeX-search-files-type-alist) (TeX-normal-mode): Adapt. (TeX-command-Biber): New defcustom. (BibTeX-Biber-file-extensions): Renamed from BibTeX-file-extensions. * tex-buf.el (TeX-save-document, TeX-check-files) (TeX-command-query, TeX-LaTeX-sentinel): Adapt. (TeX-Biber-sentinel, TeX-run-Biber): New functions. * latex.el (LaTeX-auto-regexp-list, LaTeX-auto-cleanup) (TeX-arg-bibliography, LaTeX-common-initialization): Adapt. (LaTeX-biber, LaTeX-split-bibs, LaTeX-using-Biber) (LaTeX-always-use-Biber): New functions and vars. (BibTeX-Biber-global-files): Renamed from BibTeX-global-files. * font-latex.el (font-latex-built-in-keyword-classes) (font-latex-add-keywords): Adapt. 2012-06-21 Patrice Dumas (tiny change) * doc/preview-latex.texi (The preview images): Place index command `@pindex dvipng' on a line of its own. * doc/macros.texi: Replace user macro `@sans' by user macro `@sansserif' and make definition conditional against flag no-sansserif as `@sansserif' is a Texinfo macro and does not need to be redefined. * doc/macros.texi: Suppress user macro `@LaTeX' as this macro is already defined in Texinfo. * doc/quickstart.texi (Editing Facilities): Use texinfo `@sansserif' macro rather than user macro `@sans'. * doc/auctex.texi (Font Specifiers): Use texinfo `@sansserif' macro rather than user macro `@sans'. 2012-08-14 Ralf Angeli * tex.el (TeX-source-correlate-determine-method): Match --synctex as well as -synctex. 2012-07-04 Tassilo Horn * doc/changes.texi: Mention Evince forward/backward search changes. 2012-07-03 Tassilo Horn * font-latex.el (byte-code-function-p): Reference the generated functions with font-latex-match prefix. See Emacs bug 11837. 2012-06-22 Tassilo Horn * tex.el (TeX-evince-dbus-p): Add check for `dbus-register-signal', which might be unavailable if emacs was configured with --without-dbus. 2012-04-26 Tassilo Horn * tex.el (TeX-engine-set): Fix docstring leading to a misplaced interactive spec warning. 2012-04-25 Tassilo Horn * tex.el (TeX-evince-dbus-p): Improve check for emacs's dbus support. 2012-04-11 Tassilo Horn * tex.el (TeX-evince-sync-view): Work around emacs integer limits. Also provide the current column to Evince. (TeX-evince-dbus-p): Also check the signature of Evince's FindDocument DBUS method, which is only stable since evince 3.0. 2012-04-10 Tassilo Horn * tex.el (TeX-evince-sync-view): Fix arithmetic range error. (TeX-evince-dbus-p): Add parameter to extend the check depending on wanted features (e.g., forward search). (TeX-view-program-list-builtin): Use it. 2012-04-08 Tassilo Horn * tex.el (TeX-evince-dbus-p): New function. (TeX-evince-sync-view): New function. (TeX-view-program-list-builtin): Use Evince's DBUS interface for forward search if available. (TeX-source-correlate-mode): Use TeX-evince-dbus-p. 2012-01-11 Ralf Angeli * style/setspace.el ("setspace"): Correct quoting. 2011-09-18 Ralf Angeli * doc/auctex.texi (Marking): Make a few corrections throughout the section. (Adding Macros): Document special values for numbers used together with `TeX-add-symbols'. 2011-09-18 Vincent Belaïche * doc/auctex.texi: Add documentation for functions LaTeX-mark-section, LaTeX-mark-environment, Texinfo-mark-section, Texinfo-mark-environment and Texinfo-mark-node. 2011-08-24 Tassilo Horn * tex.el (TeX-synctex-output-page): TeXLive 2011's synctex wants absolute file names with dot indicating the master, like /foo/bar/./baz/chap1.tex. So add this as another variant. (TeX-view-program-list-builtin): Use evince's -i,--page-index switch instead of -p,--page-label if that evince version supports it (>=3.0.x). 2011-08-07 Ralf Angeli * latex.el (LaTeX-fill-move-to-break-point): Take characters after closing dollar sign into account when deciding to break before inline math. 2011-07-12 Ralf Angeli * tex.el (TeX-search-files-kpathsea): Check if directories are accessible. 2011-07-11 Vincent Belaïche * tex-info.el (Texinfo-mark-environment, Texinfo-mark-section) (Texinfo-mark-node): New defun. (Texinfo-mode-map): added key bindings for Texinfo-mark-environment, Texinfo-mark-section, and Texinfo-mark-node. 2011-06-19 Ralf Angeli * tex.el (TeX-engine-alist-builtin): Add --jobname to luatex and lualatex calls. (TeX-engine-alist-builtin): Remove --jobname again for luatex but not for lualatex. 2011-06-05 Tassilo Horn * tex.el (TeX-source-correlate-sync-source): Restore Emacs 21 compatibility. 2011-05-26 Tassilo Horn * tex.el (TeX-source-correlate-sync-source): Adapt to handle file:// URLs. 2011-05-15 Ralf Angeli * Makefile.in (STYLESRC): Add style/setspace.el. * tex.el (TeX-expand-list): Add a safeguard to the %(outpage) expander for when an output page function returns nil. 2011-05-09 Tassilo Horn * tex.el (TeX-synctex-output-page-1): New function for calling synctex. (TeX-synctex-output-page): Use it, and try relative file names with and without leading ./ when calling synctex before falling back to page 1. (TeX-source-correlate-sync-source): Add &rest parameter, because Evince 3 sends an additional (ignored) parameter via dbus. 2011-05-01 Ralf Angeli * tex.el (TeX-tree-expand): Use a different test to check for an absolute path on Windows. * font-latex.el (font-latex-built-in-keyword-classes): Add definition for \rule and remove the one for \sbox. 2011-04-25 Ralf Angeli * style/setspace.el: Add support for changing \displayskipstretch. 2011-04-25 Mads Jensen * style/setspace.el: New file. 2011-04-25 Ralf Angeli * latex.el (LaTeX-style-list): Add memoir. 2011-04-20 Ralf Angeli * tex-fold.el (TeX-fold-expand-spec): Make sure the expansion of a placeholder is not processed again. 2011-04-15 Ralf Angeli * font-latex.el (font-latex-built-in-keyword-classes): Make a few additions and corrections. * latex.el (LaTeX-common-initialization): Prompt for file extension instead of name when inserting \addcontentsline or \addtocontents. 2011-04-10 Ralf Angeli * tex.el (TeX-source-correlate-mode): Check for D-Bus session. 2011-04-10 Antoine Levitt (tiny change) * tex.el (TeX-source-correlate-sync-source): Do not use `goto-line'. 2011-04-03 Ralf Angeli * Makefile.in (STYLESRC): Add style/xspace.el. * style/xspace.el: Add copyright notice and license blurb. Correct a few things. 2011-04-03 Mads Jensen * style/xspace.el: New file. 2011-03-27 Tassilo Horn * tex.el (TeX-source-correlate-mode): Add support for I/O correlation mode inverse search for the Evince document viewer. 2011-03-23 Ralf Angeli * style/bulgarian.el, style/czech.el, style/danish.el, style/frenchb.el, style/icelandic.el, style/polish.el, style/polski.el, style/slovak.el, style/swedish.el: Do not set `TeX-quote-language' if `override' is in effect. 2011-03-20 Ralf Angeli * tex-buf.el (TeX-synchronous-sentinel): Strip directory part of master file because we are already in the master directory. 2011-03-13 Ralf Angeli * Makefile.in (STYLESRC): Add style/lettrine.el and style/multicol.el. * style/lettrine.el: Add copyright notice and license blurb. Correct a few things. * style/multicol.el: Add copyright notice and license blurb. Simplify environment definitions. Provide completion for lengths the package defines. Get rid of indentation and filling barrier. Remove fontification definitions. 2011-03-13 Mads Jensen * style/lettrine.el: New file. * style/multicol.el: New file. 2011-02-27 Ralf Angeli * latex.el (LaTeX-common-initialization): Add support for \ProvidesPackage. 2011-02-06 Ralf Angeli * style/letter.el (LaTeX-env-recipient): Use \renewcommand instead of \def to set date. 2011-01-30 Ralf Angeli * tex.el (TeX-parse-macro): Do not insert braces if the argument is 0 or less. (TeX-parse-argument): Put both the macro and the marked region in a TeX group if the argument is less than 0. * latex.el (LaTeX-common-initialization): Give macros that change font size a -1 argument so that braces are added around them if if there is an active region. * doc/auctex.texi (Adding Macros): Document special options 0 and -1 for number-type specs. 2011-01-29 Ralf Angeli * tex.el (TeX-complete-symbol): Get rid of the window with the completions when possible. 2011-01-23 Ralf Angeli * tex-fold.el (TeX-fold-post-command): Add `forward-char' and `backward-char' to commands on which to open an overlay. * doc/auctex.texi (Adding Macros): Mention `TeX-arg-input-file-search'. 2011-01-22 Ralf Angeli * tex.el (TeX-tree-expand): Make `subdirs' parameter optional. Do not try to call kpsewhich with --expand-braces anymore and adapt code for handling of results accordingly. (TeX-doc-extenstions): New variable. (TeX-tree-roots): New function. (TeX-tree-roots): New user option. (TeX-kpathsea-format-alist): Remove. (TeX-search-files-kpathsea): Add and use `extensions' and `scope' parameters. (TeX-search-files): Do not call `TeX-search-files-kpathsea' anymore. (TeX-search-files-type-alist): New variable. (TeX-search-files-by-type): New function. * latex.el (LaTeX-arg-usepackage): Let-bind `TeX-input-file-search'. (LaTeX-search-files-type-alist): New user option. (TeX-arg-input-file-search): Doc fix. (TeX-arg-input-file, TeX-arg-bibstyle, TeX-arg-bibliography): Use `TeX-search-files-by-type' instead of `TeX-search-files'. (LaTeX-common-initialization): Set `TeX-search-files-type-alist'. 2011-01-09 Ralf Angeli * latex.el (LaTeX-common-initialization): Add support for \settoheight and \settodepth. 2010-12-26 Ralf Angeli * doc/auctex.texi (Simple Style): Add a note about the naming of the style file and the style hook. 2010-12-12 Ralf Angeli * latex.el (LaTeX-env-args): Add the optional argument at the right position when wrapping the environment around existing text. 2010-12-05 Ralf Angeli * context.el: Set up abbrev table. (ConTeXt-mode-common-initialization): Set `local-abbrev-table'. * latex.el: Set up abbrev table for LaTeX and docTeX mode. (docTeX-mode): Set abbrev table. (LaTeX-common-initialization): Set `local-abbrev-table'. * plain-tex.el: Set up abbrev table. (plain-TeX-common-initialization): Set `local-abbrev-table'. * tex.el (TeX-mode-prefix): Add mode parameter. (VirTeX-common-initialization): Do not set `local-abbrev-table' anymore. (TeX-abbrev-mode-setup): New function. * doc/changes.texi: Mention change of abbrev handling. 2010-12-04 Ralf Angeli * latex.el (LaTeX-verbatim-macro-boundaries): Support verbatim macros with braces. 2010-12-04 Augusto Ritter Stoffel (tiny change) * latex.el (LaTeX-math-keymap): Define a key for the math prefix only if it has not been used as a prefix after the prefix. 2010-11-16 Ralf Angeli * tex.el (TeX-view-program-list-builtin): Add Okular. 2010-10-17 Ralf Angeli * latex.el (TeX-arg-input-file-search): New user option. (TeX-arg-input-file): Use it. 2010-10-11 Ralf Angeli * tex.el (TeX-synctex-output-page): Return "1" if no page number can be found to prevent an infinite loop in command expansion. 2010-10-02 Ralf Angeli * style/beamer.el ("beamer"): Prompt for block title. 2010-09-28 Ralf Angeli * context.el (ConTeXt-extra-paragraph-commands): Remove. (ConTeXt-language-variable-list): Add `ConTeXt-extra-paragraph-commands'. * context-en.el (ConTeXt-extra-paragraph-commands-en): New variable. * context-nl.el (ConTeXt-extra-paragraph-commands-nl): New variable. 2010-09-18 Ralf Angeli * context.el (ConTeXt-expand-options): Eval value from engine alist. 2010-09-12 Ralf Angeli * tex-fptex.el: Remove. * Makefile.in (AUCSRC): Reflect removal of tex-fptex.el. * doc/wininstall.texi: Reflect removal of tex-fptex.el. * style/virtex.el: Mention author. Do not unnecessarily protect `lambda' with `function'. * font-latex.el (font-latex-keyword-matcher): Refine last change to work properly with lists of face symbols. 2010-09-11 Ralf Angeli * style/natbib.el: Update copyright information. * style/letter.el: Update copyright information. * style/harvard.el: Update copyright information. * style/doc.el: Do not unnecessarily protect `lambda' with `function'. 2010-09-06 Arne Jørgensen * style/danish.el: Changed font-latex-add-quotes from french to german. 2010-08-30 Ralf Angeli * style/ngerman.el: Prevent "| from leading to color bleed. * style/german.el: Prevent "| from leading to color bleed. 2010-08-29 Ralf Angeli * doc/preview-dtxdoc.pl: Use explicit variable with split instead of implicit split to @_ which does not work anymore in Perl 5.12. 2010-07-11 Ralf Angeli * tex-info.el: Delete trailing whitespace. 2010-07-04 Ralf Angeli * doc/faq.texi: Update infos about Emacs versions. Add FAQ entry for file:line:error messages in case `TeX-next-error' fails due to unbalanced parens. * tex.el (TeX-print-command, TeX-queue-command) (TeX-printer-list): Switch back to Berkeley-style commands. 2010-06-24 Ralf Angeli * doc/auctex.texi (Texinfo mode): Make a few corrections. 2010-06-19 Berend de Boer * context.el: proper indent of all macros that can appear inside an itemize list such as \sym. 2010-06-12 Ralf Angeli * tex-info.el (Texinfo-find-env-end, Texinfo-find-env-start): Enable the commands to be used repeatedly without getting stuck at an environment start or end respectively. 2010-05-27 Ralf Angeli * autogen.sh: Set LANG=C when looking into ChangeLog for AUCTEXDATE. 2010-05-24 Vincent Belaïche * doc/auctex.texi (Texinfo mode): New section. 2010-05-17 Ralf Angeli * tex.el (TeX-math-input-method-off-regexp): Fix regexp. 2010-04-25 Ralf Angeli * tex.el (TeX-print-command): Support printing of Postscript and PDF files. Doc fix. (TeX-queue-command): Use lpstat instead of lpq. Doc fix. (TeX-printer-list): Support printing of Postscript and PDF files. Make use of System V style commands (lp, lpstat) instead of Berkeley style (lpr, lpq). (TeX-printer-default): Doc fix. 2010-04-17 Ralf Angeli * tex-buf.el (TeX-warning): Throw an error with a sensible message if the file for the warning could not be determined. 2010-04-13 Ralf Angeli * tex-buf.el (TeX-format-filter): Calculate the current column as difference between line start and end instead of using `current-column' in order to do the right thing when octal codes are present. 2010-04-11 Ralf Angeli * font-latex.el (font-latex-keyword-matcher): Quote a list of face properties but do not to quote a face symbol. 2010-04-05 Ralf Angeli * tex-buf.el (TeX-parse-error): Allow `TeX-error-file' to become empty. 2010-03-28 Ralf Angeli * plain-tex.el: New file. * tex.el: Move code related to plain TeX to plain-tex.el. * Makefile.in (AUCSRC): Add plain-tex.el. * context.el: Require `plain-tex'. 2010-03-27 Ralf Angeli * tex.el (TeX-view-program-selection): Doc fix. (TeX-clean): Regexp-quote the master file name. 2010-03-20 Ralf Angeli * style/french.el: New file. * Makefile.in (STYLESRC): Add style/french.el. 2010-03-07 Ralf Angeli * latex.el (TeX-arg-key-val): Hint at key=value format in prompt. (LaTeX-fill-region-as-para-do): Match whitespace without comment starter at beginning of line when dealing with code comments. 2010-03-06 Ralf Angeli * Makefile.in (DIST_PREFIX): Use the working directory for the folder with distribution files. (FTPDIR, WWWDIR): Make them subdirectories of `DIST_PREFIX'. (COMMITTER_NAME, COMMITTER_EMAIL): Remove. (COMMITTER): New variable. (.PHONY): Update. (tar-ball-clean): Use `check-tag'. (check-tag): New name for `check-dist'. (dist): Do not call `release-commit' anymore. (snapshot): Now an alias for `dist'. (release-commit): Use `COMMITTER'. (release-sign): New name for `full-release' target. Generate version 1.1 directive files. (xemacs-package): Depend on `check-tag'. (WPACKAGEFILES): Include info files with a numerical supplement to the .info extension. Depend on `check-tag'. Check for presence of `WEMACSVER' variable. Try to find a local AUCTeX tar ball before downloading one. Use `TAG' instead of `WAUCVER'. Put ZIP archive into `FTPDIR'. (WAUCVER, WEMACSVER): Remove. (release-upload): New target. (www-doc): Depend on `check-tag'. Update URLs for Emacs manuals. 2010-02-21 Ralf Angeli * Version 11.86 released. 2010-02-21 Ralf Angeli * RELEASE: Update for upcoming release. * doc/install.texi (Prerequisites): Update information about Emacs distributions. * doc/tex-ref.tex: Bump version number. Update section on TeXing options. * configure.ac: Bump version number. * auctex.spec (Version): Bump version number. * doc/fdl.texi: Switch to GFDL 1.3. * doc/auctex.texi: Switch to GFDL 1.3. * doc/preview-latex.texi: Switch to GFDL 1.3. * doc/changes.texi: Update for next release. 2010-02-20 Ralf Angeli * tex.el (TeX-doc): Add a fallback in case nothing is found via the backend list, e.g. when using MiKTeX 2.8. * doc/auctex.texi (Documentation): Document change in `TeX-doc'. 2010-02-14 Ralf Angeli * doc/changes.texi: Mention preview.sty supporting XeTeX. 2010-02-13 Ralf Angeli * tex.el (TeX-XeTeX-command, LaTeX-XeTeX-command): Remove. (ConTeXt-engine): Doc fix. (ConTeXt-Omega-engine): Doc fix. Make obsolote. (TeX-expand-list): Add support for LuaTeX. Adapt to new engine handling. (AUC-TeX-version, AUC-TeX-date): Remove. (TeX-engine-alist-builtin): New variable. (TeX-engine-alist): Adapt to new engine handling and make it a defcustom. (TeX-engine-alist): New function. (TeX-engine): Adapt to new engine handling and make it buffer-local. (LaTeX-engine-alist): Remove. (TeX-engine-set): Adapt to new engine handling and take care of TeX PDF mode. (TeX-clean-default-output-suffixes): Add .xdv. (TeX-mode-specific-command-menu-entries): Construct list of engines from `TeX-engine-alist'. * context.el (ConTeXt-expand-options): Adapt to new engine handling. * doc/auctex.texi (Processor Options): Document options and functions of new engine handling. 2009-12-30 Ralf Angeli * tex.el (TeX-view-command-raw): Abort if no matching viewer is found. * doc/preview-faq.texi (Troubleshooting): Add some hints about preview-latex overwriting output files. 2009-12-28 Ralf Angeli * style/austrian.el: New file. * style/naustrian.el: New file. * Makefile.in (STYLESRC): Add style/austrian.el and style/naustrian.el. 2009-12-26 Ralf Angeli * doc/auctex.texi (Known problems): New subsection on dealing with font locking problems. * font-latex.el (font-latex-syntax-alist): New variable. (font-latex-add-to-syntax-alist): New function. (font-latex-setup): Use `font-latex-syntax-alist'. * style/shortvrb.el: New file. * Makefile.in (STYLESRC): Add style/shortvrb.el. * tex-style.el (LaTeX-shortvrb-chars): New variable. * doc/changes.texi: Document changes after 11.85. * context.el (ConTeXt-expand-options): Check for XeTeX engine, not for mode which does not exist anymore. * tex.el (plain-TeX-common-initialization): Let commented lines be matched by `paragraph-separate' in order for commented and non-commented paragraphs to be filled separately. 2009-12-12 Ralf Angeli * tex-buf.el (TeX-parse-error): Also find quoted file names with newlines. Remove the newlines from the matched string if necessary. 2009-12-07 Ralf Angeli * tex-buf.el (TeX-parse-error): Add an alternative in the parser regexp for quoted file names. Strip the quotation marks if a file name was found with the alternative. 2009-12-06 Ralf Angeli * tex-fold.el (TeX-fold-command-prefix): New variable. (TeX-fold-mode): Use it. (TeX-fold-keymap): Remove prefix strings. * tex.el (TeX-fold-menu): Remove hard-coded key binding labels. * doc/auctex.texi (Folding): Mention `TeX-fold-command-prefix'. 2009-11-22 Ralf Angeli * doc/wininstall.texi: Do not refer to Emacs 22 anymore. Improve the paragraphs about PNG support. 2009-11-01 Ralf Angeli * style/pstricks.el: Disable key bindings for macro parameter addition and change. (LaTeX-pst-color-list, LaTeX-pst-boolean-list) (LaTeX-pst-fillstyle-list): Remove information for completion mechanism. (LaTeX-pst-trimode-list, LaTeX-pst-linestyle-list): Remove. Handled directly in `LaTeX-pst-basic-parameters-list'. (LaTeX-pst-basic-parameters-list): New variable. (LaTeX-pst-parameters): Call `TeX-arg-key-val' instead of `LaTeX-package-parameters' and thereby use a different completion mechanism. (LaTeX-pst-macro-psdots): Do not add a dotstyle parameter. (LaTeX-pst-env-pspicture): Handle optional parameter via `multi-prompt-key-value'. ("pstricks"): Handle arguments of \psdot and \psdots correctly. 2009-10-31 Ralf Angeli * tex.el (TeX-verbatim-p-function): New variable. (TeX-verbatim-p): New function. (TeX-in-comment): Use it. (TeX-brace-count-line): Use `TeX-in-comment' instead of just checking for a comment character. * latex.el (LaTeX-common-initialization): Set `TeX-verbatim-p-function'. 2009-10-25 Ralf Angeli * doc/auctex.texi (Starting Viewers): Describe new viewer selection options. (Folding): Add some hints on how to do automatic folding. * tex.el (TeX-view-predicate-list-builtin) (TeX-view-predicate-list, TeX-view-program-list): Doc fix. (TeX-view-program-list-builtin, TeX-view-program-selection): Conditionalize default value based on system type. Doc fix. (TeX-synctex-output-page): Do not return random stuff if there was no match. (TeX-clean-default-intermediate-suffixes): Remove SyncTeX files as well. 2009-10-21 Ralf Angeli * tex.el (TeX-synctex-output-page): Handle files in subdirectories correctly. 2009-10-18 Ralf Angeli * tex-buf.el (TeX-run-discard): Doc fix. (TeX-run-discard-or-function): New function. * tex.el (TeX-command-list): Use `TeX-run-discard-or-function' as hook for View command and provide it as a customization option. (TeX-view-program-list): Add the possibility to use a function to call the viewer. (TeX-view-command-raw): Support the use of a function to call the viewer. 2009-10-11 Ralf Angeli * tex.el (TeX-view-predicate-list-builtin): Remove combined predicates for paper properties and add new predicates testing only one property. (TeX-view-program-list-builtin): Use new predicates. (TeX-view-program-list): Provide the possibility to use a list of predicates. 2009-10-10 Ralf Angeli * tex.el (TeX-view-program-list): Shave off extra closing paren. 2009-10-04 Ralf Angeli * tex.el (LaTeX-command-style, TeX-print-style, TeX-view-style): Doc fix. (TeX-view-predicate-list-builtin, TeX-view-program-list-builtin): New variables. (TeX-view-predicate-list, TeX-view-program-list) (TeX-view-program-selection): New user options. (TeX-match-style, TeX-view-match-predicate) (TeX-view-command-raw): New functions. (TeX-expand-list): Use `TeX-view-command-raw' for %V expander. 2009-09-13 Ralf Angeli * tex-buf.el (TeX-error): Cater for case of file:line:error messages without context. (TeX-parse-error): Add support for quoted file names with backslashes as path separators. Those might be emitted by MiKTeX 2.8. 2009-06-14 Ralf Angeli * doc/auctex.texi (Indenting): Mention `LaTeX-item-regexp'. (Fontification of math): New section replacing and extending `Subscript and superscript'. 2009-04-26 Ralf Angeli * tex.el (TeX-source-correlate-mode): Clean `custom-requests' property. (VirTeX-common-initialization): Call `TeX-source-correlate-mode' minor mode function when initializing the mode instead of when loading the file. 2009-04-13 Ralf Angeli * latex.el (TeX-arg-key-val): Eval `key-val-alist' argument if it is a symbol. * style/listings.el ("listings"): Do not eval arguments of `TeX-arg-key-val'. * multi-prompt.el (multi-prompt-expand-completion-table): New function. (multi-prompt-key-value): Use it. * style/pstricks.el: Correct header info. (LaTeX-pst-input-int, LaTeX-pst-point, LaTeX-pst-angle) (LaTeX-pst-extdir, LaTeX-pst-arrows, LaTeX-pst-dotstyle-list) (LaTeX-pst-refpoint-list, LaTeX-pst-refpoint) (LaTeX-pst-macro-multirputps, LaTeX-pst-env-pspicture): Improve or correct prompt. ("pstricks"): Move to the bottom of the file. Do not use `function' to quote `lambda'. Turn off TeX PDF mode. Use `mapc' instead of `mapcar'. 2009-04-05 Ralf Angeli * tex-buf.el (TeX-help-error): Make search for help text in log file more robust. 2009-04-04 Ralf Angeli * style/listings.el ("listings"): Remove redundant list when calling `TeX-arg-key-val'. Use `LaTeX-env-args' for lstlisting environment. * latex.el (LaTeX-env-args): New function. (TeX-arg-conditional, TeX-arg-eval, TeX-arg-label) (TeX-arg-index-tag, TeX-arg-index, TeX-arg-macro) (TeX-arg-environment, TeX-arg-cite, TeX-arg-counter) (TeX-arg-savebox, TeX-arg-file, TeX-arg-define-label) (TeX-arg-define-macro, TeX-arg-define-environment) (TeX-arg-define-cite, TeX-arg-define-counter) (TeX-arg-define-savebox, TeX-arg-document, LaTeX-arg-usepackage) (TeX-arg-input-file, TeX-arg-bibstyle, TeX-arg-bibliography) (TeX-arg-corner, TeX-arg-lr, TeX-arg-tb, TeX-arg-pagestyle) (TeX-arg-verb, TeX-arg-pair, TeX-arg-size, TeX-arg-coordinate) (TeX-arg-insert-braces): Doc fix. * multi-prompt.el (multi-prompt-separator): Remove. (multi-prompt-key-value-collection-fn): Do not search for `multi-prompt-separator'. (crm-local-must-match-map, crm-local-completion-map): Silence the byte compiler. (multi-prompt-key-value): Require crm.el here and not at top-level. * tex-info.el (TeX-texinfo-mode): Add @lowersections and @raisesections. * doc/auctex.texi (Adding Environments): Document hooks for `LaTeX-add-environments'. 2009-03-29 Ralf Angeli * style/listings.el (LaTeX-listings-key-val-options): New variable. ("listings"): Use it. Check for font-latex function, not feature. * latex.el (TeX-arg-key-val): New function. * multi-prompt.el: Require crm.el. (multi-prompt-separator, multi-prompt-key-value-sep) (multi-prompt-completion-table): New variables. (multi-prompt-key-value-collection-fn, multi-prompt-key-value): New functions. 2009-03-22 Ralf Angeli * tex-site.el.in: Revitalize support for completion in \cite macros via `BibTeX-auto-store'. 2009-03-02 Holger Sparr * Makefile.in (STYLESRC): Add style/multido.el; style/pst-{grad|node|plot|slpe}.el 2009-03-01 Ralf Angeli * latex.el (LaTeX-verbatim-macro-boundaries): Do step backwards at beginning of buffer. (LaTeX-search-forward-comment-start): Treat find of comment at limit correctly. * tex-fold.el (TeX-fold-comment-do): Abort backward search for comment start at beginning of buffer. Do not fold empty comment. 2009-02-24 Holger Sparr * style/multido.el: New file. * style/pst-grad.el: New file. * style/pst-node.el: New file. * style/pst-plot.el: New file. * style/pst-slpe.el: New file. 2009-02-23 Holger Sparr * style/pstricks.el: Actually implement support for writing PSTricks code. 2009-02-22 Ralf Angeli * doc/auctex.texi (Multi-line fontification): Remove. * doc/todo.texi (Wishlist): Fix typo. Remove entry which is already supported. * style/tabularx.el: New file. * Makefile.in (STYLESRC): Add style/tabularx.el 2009-02-15 Ralf Angeli * style/natbib.el ("natbib"): Check for font-latex function rather than feature. Add fontification spec for \cite. * doc/auctex.texi (Simple Style): Bring example in line with reality. 2009-01-24 Ralf Angeli * tex.el (TeX-source-correlate-method): Doc fix. (TeX-source-correlate-mode): Call minor mode function after file is loaded. 2009-01-14 Ralf Angeli * latex.el (LaTeX-babel-insert-hyphen): Put `delete-selection' property on function symbol. 2009-01-04 Ralf Angeli * style/CJK.el: New file. * style/ruby.el: New file. Correct argument numbers of \rubysize and \rubysep. * style/CJKutf8.el: New file. * Makefile.in (STYLESRC): Add style/CJK.el and style/ruby.el. Add style/CJKutf8.el. 2009-01-03 Ralf Angeli * style/flashcards.el ("flashcards"): Test for font-latex function instead of feature. Reflect that \cardbackstyle has an optional argument. 2008-12-29 Ralf Angeli * style/hyperref.el ("hyperref"): Test for font-latex function instead of feature. Activate hyperref referencing style if possible. 2008-12-28 Ralf Angeli * tex-buf.el (TeX-current-pages): Get rid of trailing periods. (TeX-LaTeX-sentinel): Add support for longtable warning. Use only one search per condition. Call `message' like `format'. 2008-12-22 Ralf Angeli * tex.el (TeX-doc-backend-alist): Call `TeX-tree-expand' instead of `TeX-macro-global-internal'. * tex-jp.el (TeX-macro-global): Call `TeX-tree-expand' instead of `TeX-macro-global-internal'. * latex.el (LaTeX-env-item): Deactivate the mark before inserting \item. (LaTeX-insert-item): Swap point and mark when mark if necessary. Insert newline only when not at beginning of line. * tex.el (TeX-deactivate-mark): New function. (TeX-parse-argument): Use it. 2008-12-21 Ralf Angeli * tex.el (TeX-auto-private, TeX-style-private): Per default propose a place in the user's Emacs directory, not in the TeX tree. (TeX-style-path): Add values to the end of the list. Doc fix. * doc/auctex.texi (Automatic Private): Adjust descriptions of `TeX-macro-private', `TeX-auto-private', and `TeX-style-private'. 2008-12-16 Ralf Angeli * tex.el (TeX-tree-expand): New name for `TeX-macro-global-internal'. Adapt parameter list to make it more flexible. Update doc string. Do not return removed default argument. (TeX-macro-global): Change to accomodate new interface of `TeX-tree-expand'. (TeX-macro-private): New function. (TeX-macro-private): Use it to determine variable value. 2008-12-13 Ralf Angeli * tex.el (plain-TeX-clean-intermediate-suffixes) (plain-TeX-clean-output-suffixes): New variables. 2008-12-01 Ralf Angeli * tex.el (VirTeX-common-initialization): Revert last change. 2008-11-30 Ralf Angeli * tex.el (VirTeX-common-initialization): Do not add call to `TeX-update-style' to `find-file-hooks' but call it directly. 2008-11-23 Ralf Angeli * tex.el (TeX-source-correlate-determine-method): Use configured LaTeX command and find -synctex switch even if there are spaces in front of it, as e.g. with MiKTeX. (TeX-format-list): Use \subsection and \subsubsection as well to identify a LaTeX file. 2008-11-02 Ralf Angeli * font-latex.el (font-latex-match-math-env) (font-latex-extend-region-backwards-math-env): Do not match \\[...]. * tex-fold.el (TeX-fold-expand-spec): Do not treat `\' special in replacement text. 2008-10-26 Ralf Angeli * tex.el (plain-TeX-common-initialization): Respect double dollar, i.e. "$$", as a paragraph separator. 2008-10-14 Ralf Angeli * latex.el (LaTeX-current-environment): Fix handling of commented parts. * tex.el (TeX-comment-prefix): Save match data. 2008-10-13 Ralf Angeli * doc/changes.texi, doc/install.texi, doc/intro.texi, doc/preview-readme.texi, doc/quickstart.texi: Make some corrections and updates. 2008-10-12 Ralf Angeli * tex-buf.el (TeX-warning): Fix regexp for detecting bad boxes. 2008-10-11 Ralf Angeli * tex.el (TeX-set-mode-name): Indicate TeX PDF mode as a trailing flag. (TeX-engine): Doc fix. * doc/auctex.texi: Restructure some parts. Update and extend it a bit to reflect the recent changes of functionality. 2008-10-07 Ralf Angeli * tex.el (TeX-interactive-mode): Add to `minor-mode-alist'. ("desktop"): Remove `TeX-interactive-mode' from `desktop-locals-to-save'. 2008-10-06 Ralf Angeli * latex.el (LaTeX-paragraph-commands-regexp-make): Make it work for the case that `LaTeX-paragraph-commands' is set. 2008-10-05 Ralf Angeli * tex.el (TeX-engine): New variable. (TeX-expand-list): Use it instead of XeTeX and Omega mode variables. (hack-one-local-variable): Remove references to XeTeX and Omega mode variables. (TeX-set-mode-name): Remove lighters for XeTeX and Omega mode. (TeX-engine-alist, LaTeX-engine-alist): New variables. (TeX-engine-set): New function. (TeX-Omega-mode): Mark as obsolete. Remove defcustom. (TeX-PDF-mode): Use `TeX-engine' instead of mode variables. (TeX-XeTeX-mode): Remove. (TeX-mode-map): Remove key bindings for toggling XeTeX and Omega mode. (TeX-mode-specific-command-menu-entries): Use new facilities for switching TeX engines. ("desktop"): Remove reference to TeX Omega mode. * context.el (ConTeXt-expand-options): Use `TeX-engine' instead of XeTeX and Omega mode variables. 2008-09-07 Ralf Angeli * tex.el (TeX-PDF-mode): Add to `minor-mode-alist'. Use "" as lighter. ("desktop"): Remove `TeX-PDF-mode' from `desktop-locals-to-save'. * latex.el (LaTeX-mark-environment): Swap beg and end. 2008-08-02 Ralf Angeli * tex-bar.el (TeX-bar-TeX-buttons, TeX-bar-LaTeX-buttons): Mimic the default tool bars more closely. 2008-08-02 Reiner Steib * toolbar-x.el (toolbarx-default-toolbar-meaning-alist): Provide different defaults for different Emacs and XEmacs versions. Conditionally add a `new-file' entry. 2008-07-28 Ralf Angeli * toolbar-x.el (toolbarx-image-path): Protect against load-path items being nil. * style/foils.el (LaTeX-style-foils): Silence the byte compiler. * style/epsf.el (TeX-arg-epsfsize): Silence the byte compiler. * tex.el (TeX-source-specials-view-start-server): Alias only if `defvaralias' is available. (TeX-master, TeX-convert-master): Move upwards to prevent some compiler warnings. 2008-07-27 Ralf Angeli * tex.el (TeX-synctex-tex-flags): New variable. (TeX-source-correlate-expand-options): Use it. (TeX-source-specials-tex-flags): Remove possibility to create lists. * context.el (ConTeXt-expand-options): Support TeX XeTeX mode and TeX Source Correlate mode. 2008-07-24 Ralf Angeli * tex.el (TeX-source-specials-mode): Fix last change. 2008-07-23 Ralf Angeli * tex.el (TeX-expand-list): Prevent "%(PDF)" expander from returning "pdf" if `TeX-XeTeX-mode' is active. Make "%(tex)" and "%(latex)" expanders aware of the XeTeX commands. (hack-one-local-variable): Cater for `TeX-XeTeX-mode'. (TeX-set-mode-name): Cater for `TeX-XeTeX-mode'. (TeX-source-specials-mode): Mark as obsolete. (TeX-PDF-mode): Disable TeX XeTeX mode if TeX PDF mode is disabled. (TeX-Omega-mode): Disable TeX XeTeX mode if TeX Omega mode is to be enabled. (TeX-XeTeX-command, LaTeX-XeTeX-command): New variables. (TeX-XeTeX-mode): New minor mode. (TeX-mode-map): Define key for TeX XeTeX mode. (TeX-mode-specific-command-menu-entries): Add entry for TeX XeTeX mode. Make the engine-related options exclusive by using radio buttons. Refine the wording for some options. 2008-07-19 Ralf Angeli * tex.el (TeX-source-correlate-determine-method): Do not error out if calling the engine fails. * latex.el (LaTeX-mark-environment): Keep point upon unsuccessful search. 2008-07-19 Vincent Belaïche (tiny change) * latex.el (LaTeX-mark-environment): Support marking of multiple nested environments. 2008-07-17 Ralf Angeli * latex.el (LaTeX-paragraph-commands-regexp-make): Take `LaTeX-paragraph-commands' into account. (LaTeX-paragraph-commands-regexp): Move behind `LaTeX-paragraph-commands' definition. 2008-07-14 Ralf Angeli * style/pdfsync.el ("pdfsync"): Use `TeX-source-correlate-output-page-function' rather than `TeX-sync-output-page-function'. * tex.el (TeX-command-list): Remove SyncTeX expanders. (TeX-expand-list): Adapt function calls. Remove SyncTeX expander. (hack-one-local-variable, TeX-set-mode-name): Remove `TeX-synctex-mode' and `TeX-source-specials-mode'. Add `TeX-source-correlate-mode'. (TeX-source-correlate-method): New variable. (TeX-source-correlate-method-active): New variable. (TeX-source-correlate-output-page-function): Renamed from `TeX-sync-output-page-function'. (TeX-source-correlate-start-server): Renamed from `TeX-view-start-server'. (TeX-source-correlate-start-server-asked): Renamed from `TeX-view-start-server-asked'. (TeX-source-correlate-start-server-flag): Renamed from `TeX-view-start-server-flag'. (TeX-source-correlate-gnuserv-p): Renamed from `TeX-view-gnuser-p'. (TeX-source-correlate-server-enabled-p): Renamed from `TeX-view-server-enabled-p'. (TeX-source-correlate-start-server-maybe): Renamed from `TeX-view-start-server-maybe'. (TeX-source-specials): Remove custom group. (TeX-source-correlate-determine-method): New function. (TeX-source-correlate-expand-options): Renamed from `TeX-source-specials-expand-options'. Support SyncTeX as well. (TeX-source-correlate-map): Renamed from `TeX-source-specials-map'. (TeX-source-correlate-mode): Renamed from `TeX-source-specials-mode'. Support SyncTeX as well. (TeX-source-specials-mode): Now an alias for `TeX-source-specials-mode'. (TeX-source-specials-tex-flags, TeX-source-specials-places) (TeX-source-specials-view-position-flags) (TeX-source-specials-view-editor-flags) (TeX-source-specials-view-gnuclient-flags) (TeX-source-specials-view-emacsclient-flags): Put into `TeX-view' rather than `TeX-command' group. (TeX-source-specials-view-expand-options): Adapt for new function names and distinction between source specials and SyncTeX. (TeX-synctex-mode): Remove. (TeX-mode-map): Remove binding for TeX SyncTeX mode. (TeX-mode-specific-command-menu-entries): Remove menu entry for TeX SyncTeX mode. Use Source Correlate moniker instead of Source Specials. 2008-07-07 Ralf Angeli * doc/auctex.texi (Folding): Fix last change. 2008-07-06 Ralf Angeli * doc/auctex.texi (Folding): Document folding of math constructs and the possibilities of providing expanders and alternatives in replacement specifiers. * tex.el (TeX-command-list): Add expanders for SyncTeX. (TeX-expand-list): Start server if necessary when viewing. Define expander for SyncTeX. (hack-one-local-variable): Cater for TeX SyncTeX mode. (TeX-set-mode-name): Add lighter for TeX SyncTeX mode. (TeX-view): New customization group. (TeX-view-start-server): Renamed from `TeX-source-specials-view-start-server'. (TeX-source-specials-view-start-server): Rename to `TeX-view-start-server' and define alias. (TeX-view-start-server-asked): Renamed from `TeX-source-specials-view-start-server-asked'. (TeX-source-specials-view-start-server-asked): Rename to `TeX-view-start-server-asked'. (TeX-view-start-server-flag): New variable. (TeX-view-gnuserv-p): Renamed from `TeX-source-specials-view-gnuserv-p'. (TeX-source-specials-view-gnuserv-p): Rename to `TeX-view-gnuserv-p'. (TeX-view-server-enabled-p): New function. (TeX-view-start-server-maybe): New function. (TeX-source-specials-mode): Set `TeX-view-start-server-flag'. (TeX-source-specials-view-expand-client): Adapt call to new function name. (TeX-source-specials-view-expand-options): Do not try to start the server here anymore. (TeX-synctex-mode): New minor mode. (TeX-synctex-output-page): New function. (TeX-mode-map): Add key for toggling TeX SyncTeX mode. (TeX-mode-specific-command-menu-entries): Add menu entry for TeX SyncTeX mode. (TeX-math-input-method-off-regexp): New variable. (TeX-toggle-off-input-method): Remove. (TeX-math-input-method-off): Do without `TeX-toggle-off-input-method'. 2008-07-04 Berend de Boer * context.el, context-en.el: added a few more entries to the menu to select ConTeXt macro's from. 2008-06-29 Ralf Angeli * style/bulgarian.el ("bulgarian"): Use value of `TeX-quote-after-quote' for default quote insertion behavior. 2008-06-28 Ralf Angeli * font-latex.el (font-latex-find-matching-close): Simplify. There is no need for a general mechanism if the supported chars are limited at another place. * tex.el (TeX-search-syntax-table): Support (...) and <...>. * tex-fold.el (TeX-fold-macro-spec-list): New spec for \item. Adapt doc string to reflect new functionality. (TeX-fold-macro-nth-arg): New `delims' parameter which can be used to find other macro args than those enclosed by braces. (TeX-fold-expand-spec): New function. (TeX-fold-hide-item): Use it. * doc/auctex.texi (European): Document `bulgarian' language option. * Makefile.in (STYLESRC): Add style/bulgarian.el. * style/bulgarian.el: New file. 2008-06-21 Ralf Angeli * style/hyperref.el: New file. * Makefile.in (STYLESRC): Add style/hyperref.el. 2008-06-07 Ralf Angeli * font-latex.el (font-latex-make-built-in-keywords): Distinguish command-type keyword classes from others when creating the respective variables. * doc/auctex.texi (Font Locking): Structure with nodes. (Fontification of macros): Describe format specifiers for macros with arguments. 2008-05-30 Ralf Angeli * tex-fold.el (TeX-fold-macro-spec-list): Add some documentation. (TeX-fold-hide-item): Support replacement of argument specifiers like "{1}" by the respective argument value in the display string. 2008-05-30 Joost Kremers (tiny change) * tex-fold.el (TeX-fold-macro-spec-list): Add function choice. (TeX-fold-hide-item): If specifier is a function, call it with all mandatory arguments of macro. 2008-05-25 Ralf Angeli * latex.el (docTeX-mode): Add regexp group to value of `TeX-comment-start-regexp'. * style/doc.el (LaTeX-doc-after-insert-macrocode): New function. ("doc"): Add it to `LaTeX-after-insert-env-hooks'. * latex.el: Get rid of some compiler warnings. (LaTeX-after-insert-env-hooks): New variable. (LaTeX-insert-environment): Remove docTeX-specific code. Run `LaTeX-after-insert-env-hooks' * style/beamer.el (LaTeX-beamer-after-insert-env): New function. ("beamer"): Add it to `LaTeX-after-insert-env-hooks'. Get rid of some compiler warnings. Support the semiverbatim environment. * style/dinbrief.el: Get rid of some compiler warnings. * style/dk-bib.el: Get rid of some compiler warnings. * style/emp.el: Get rid of some compiler warnings. * style/epsf.el: Get rid of some compiler warnings. * style/foils.el: Get rid of some compiler warnings. * style/graphicx.el: Get rid of some compiler warnings. * style/letter.el: Get rid of some compiler warnings. * style/prosper.el: Get rid of some compiler warnings. * style/psfig.el: Get rid of some compiler warnings. * texmathp.el: Get rid of some compiler warnings. * tex.el: Get rid of some compiler warnings. * tex-jp.el: Get rid of some compiler warnings. * tex-buf.el: Get rid of some compiler warnings. * font-latex.el: Get rid of some compiler warnings. * context.el: Get rid of some compiler warnings. * context-en.el: Get rid of some compiler warnings. * context-nl.el: Get rid of some compiler warnings. 2008-05-22 Ralf Angeli * tex-buf.el (TeX-command-sentinel): Use `TeX-master-file' instead of `TeX-active-master' for `TeX-transient-master'. 2008-05-17 Ralf Angeli * doc/auctex.texi (Font Specifiers): Correct argument list of `TeX-font'. 2008-05-13 Ralf Angeli * doc/auctex.texi (Font Specifiers): Document `LaTeX-font-list'. 2008-05-10 Reiner Steib * tex-bar.el (TeX-bar-TeX-buttons, TeX-bar-LaTeX-buttons): Add standard Emacs buttons to custom set. (TeX-bar-TeX-buttons): Use `tex' instead of `latex' in custom set. 2008-05-04 Ralf Angeli * tex-site.el.in (AUCTeX): Move customization group here from tex.el and load the main files defining customization options. * tex.el (AUCTeX): Move customization group to tex-site.el.in. (TeX-expand-list): Make %(outpage) default to "1". 2008-05-01 Ralf Angeli * toolbar-x.el (toolbarx-xemacs-refresh): Only activate the tool bar if it is already visible. Remove redundant if clause. * tex-buf.el (TeX-format-filter): Do not remove linebreak if the following line starts with an opening parenthesis. 2008-04-28 Ralf Angeli * doc/Makefile.in (install-auctex): Do not use `-' to suppress errors within command. 2008-04-28 David Kastrup * tex-buf.el (TeX-run-command): disable undo in run buffer 2008-03-12 Ralf Angeli * style/pdfsync.el (LaTeX-pdfsync-output-page): Kill buffer with pdfsync file if it was loaded by us. 2008-03-02 Ralf Angeli * tex-info.el (texinfo-environment-regexp): Terminate. 2008-03-01 Matan Ninio (tiny change) * style/pdfsync.el (LaTeX-pdfsync-output-page): Include subdirectories relative to master file in file names. Searching for the file entry in the .pdfsync file allows for an optional `.tex' extension in the filename. Find further p lines if the current context does not contain any more. 2008-02-24 Ralf Angeli * Makefile.in: Add windows-package target and related variables. 2008-02-23 Ralf Angeli * tex.el (TeX-common-menu-entries): Add exception for docTeX mode when extending the customization menu. 2008-02-17 Ralf Angeli * doc/auctex.texi: Repeat direntry after each category as per recommendation of Karl Berry. * doc/preview-latex.texi: Repeat direntry after each category as per recommendation of Karl Berry. 2008-02-11 Ralf Angeli * font-latex.el (font-latex-make-match-defun) (font-latex-keyword-matcher): Recognize old-style type specs which could be lists. Prevents "void-function nil" error during font locking. 2008-02-10 Ralf Angeli * Makefile.in (maintainer-clean): Do not depend on distclean. How did this ever work? (www-doc): Use release files. Update URLs. Make gendocs.sh use texi2html. * doc/Makefile.in (extradist): Re-add tex-ref.pdf dependency. (install-auctex): Do not install reference card when producing an XEmacs package. 2008-02-10 Ralf Angeli * Version 11.85 released. 2008-02-10 Ralf Angeli * RELEASE: Update for upcoming release. * auctex.spec (Version): Bump version number. * configure.ac: Bump version number. * doc/todo.texi: Add copyright notice. (Bugs): Remove entry about XEmacs bug since AUCTeX now helps XEmacs in doing multi-line font locking. * doc/tex-ref.tex: Bump version number. Updated references to toggles for bad boxes and warning. Mention `Clean' and `Clean All' commands. * doc/install.texi: Add copyright notice. (Prerequisites): Update information about Emacs 22. * doc/wininstall.texi: Update information about requirements, esp. availability of Emacs 22. 2008-02-09 Ralf Angeli * tex-buf.el (TeX-error, TeX-warning): Handle `expert' option of `TeX-display-help'. (TeX-warning): Find error file in same window. * tex.el (TeX-display-help): Add `expert' option. * doc/auctex.texi (Commands): Add some explanatory text for TeXing options. Document `TeX-show-compilation'. (Debugging): Reflect new option of `TeX-display-help'. * doc/changes.texi: Add changes for 11.85. Add copyright notice. 2008-02-08 Reiner Steib * tex-bar.el (LaTeX-symbols-toolbar-visible-flag): Improve doc string. * toolbar-x.el (toolbarx-image-path): Improve doc string. 2008-02-07 Ralf Angeli * tex-buf.el (TeX-parse-TeX): Do not pop to output buffer. (TeX-warning): Since we do not pop to the output buffer, find the source file in the original window. 2008-02-05 Ralf Angeli * font-latex.el (font-latex-built-in-keyword-classes): Add syntax alternatives for some commands. (font-latex-setup): Give ?@ word syntax for font locking. (font-latex-syntax-error-modes): New variable. (font-latex-match-command-with-arguments): Use it. 2008-02-04 Ralf Angeli * font-latex.el (font-latex-set-syntactic-keywords): Revert change from 2007-04-09 because the unbalanced treatment of \begin and \end may lead to color bleeding. 2008-02-03 Ralf Angeli * Relicense all "GPLv2 or later" files to "GPLv3 or later". * COPYING: Switch to GPLv3. * doc/Makefile.in, doc/preview-dtxdoc.pl: Add coypright and license notices. * style/beamer.el, style/scrbook.el: Add license notices. 2008-02-03 Ikumi Keita * tex-info.el (Texinfo-insert-node): Correct name of let-bound variable. 2008-02-03 Ralf Angeli * tex-info.el: Make sure the Texinfo mode of AUCTeX is still used after loading texinfo.el. 2008-02-02 Ralf Angeli * Makefile.in, auctex.spec, autogen.sh, configure.ac: Add copyright and license notices. * texmathp.el, style/amsmath.el, style/amsthm.el, style/fancyref.el, style/index.el, style/makeidx.el, style/multind.el, style/varioref.el: Reflect copyright assignment of Carsten Dominik to FSF in coypright notices and adapt licence notice accordingly. 2007-12-28 Ralf Angeli * tex-buf.el (TeX-command-expand): Do not evaluate `file' as a function. 2007-12-25 Ralf Angeli * latex.el (LaTeX-fill-move-to-break-point): Ignore whitespace when checking if verbatim macro starts at beginning of line. 2007-12-08 David Kastrup * texmathp.el (defgroup, defcustom): Remove compatibility cruft. 2007-11-20 Reiner Steib * doc/install.texi (Prerequisites): Add openSUSE. 2007-11-20 David Kastrup * doc/install.texi (Prerequisites): Update to reflect current realities. 2007-11-03 Reiner Steib * tex-buf.el (TeX-record-buffer): New variable, only in Emacs. (TeX-pop-to-buffer): New function. (TeX-recenter-output-buffer, TeX-background-filter) (TeX-parse-TeX, TeX-parse-error, TeX-help-error): Use `TeX-pop-to-buffer'. 2007-10-30 Reiner Steib * toolbar-x.el (toolbarx-find-image): Rename argument. Improve doc string. 2007-10-11 Ralf Angeli * latex.el (TeX-arg-verb): Honor active region. 2007-10-10 Ralf Angeli * style/MinionPro.el ("MinionPro"): Run style hook for amsmath which is loaded via MnSymbol. 2007-10-09 Ralf Angeli * style/nomencl.el: New file. * Makefile.in (STYLESRC): Add style/nomencl.el. 2007-10-03 Ralf Angeli * font-latex.el (font-latex-user-keyword-classes): Doc fix. 2007-08-26 Ralf Angeli * font-latex.el (font-latex-command-with-args-default-spec): Default to nil. 2007-08-24 Ralf Angeli * font-latex.el (font-latex-match-command-with-arguments): Show error indicator only in LaTeX mode. 2007-08-23 Ralf Angeli * style/nicefrac.el ("nicefrac"): Fix last change. 2007-08-22 Ralf Angeli * style/jurabib.el ("jurabib"): Use `font-latex-add-keywords'. Add syntax information. 2007-08-21 Ralf Angeli * style/scrreprt.el: Add licence text. ("scrreprt"): Use `font-latex-add-keywords'. Add syntax information. * style/scrpage2.el: Add licence text. ("scrpage2"): Use `font-latex-add-keywords'. Add syntax information. * style/scrlttr2.el: Add licence text. ("scrlttr2"): Use `font-latex-add-keywords'. Add syntax information. * style/scrbook.el ("scrbook"): Use `font-latex-add-keywords'. Add syntax information. * style/scrbase.el ("scrbase"): Use `font-latex-add-keywords'. Add syntax information. 2007-08-20 Ralf Angeli * style/url.el ("url"): Use `font-latex-add-keywords'. Add syntax information. * style/subfigure.el ("subfigure"): Use `font-latex-add-keywords'. Add syntax information. * style/csquotes.el ("csquotes"): Update for version 3.7. Use `font-latex-add-keywords'. Add syntax information. * style/MinionPro.el ("MinionPro"): Use `font-latex-add-keywords'. Add syntax information. * font-latex.el (font-latex-built-in-keyword-classes): Correct syntax spec for \subsubparagraph. 2007-08-19 Ralf Angeli * style/units.el ("units"): Use `font-latex-add-keywords'. Add syntax information. * style/nicefrac.el ("nicefrac"): Use `font-latex-add-keywords'. Add syntax information. * style/listings.el ("listings"): Use `font-latex-add-keywords'. Add syntax information. * style/flashcards.el ("flashcards"): Use `font-latex-add-keywords'. Add syntax information. * style/comment.el ("comment"): Use `font-latex-add-keywords'. Add syntax information. * style/booktabs.el ("booktabs"): Use `font-latex-add-keywords'. Add syntax information. * style/babel.el ("babel"): Use `font-latex-add-keywords'. Add syntax information. * style/paralist.el ("paralist"): Use `font-latex-add-keywords'. Add syntax information. * style/natbib.el ("natbib"): Use `font-latex-add-keywords'. Add syntax information. * style/mdwlist.el ("mdwlist"): Use `font-latex-add-keywords'. Add syntax information. * style/graphicx.el ("graphicx"): Use `font-latex-add-keywords'. Add syntax information. * style/fancyref.el ("fancyref"): Use `font-latex-add-keywords'. Add syntax information. * style/captcont.el ("captcont"): Use `font-latex-add-keywords'. Add syntax information. * style/beamer.el ("beamer"): Use `font-latex-add-keywords'. * font-latex.el (font-latex-add-keywords): New function. (font-latex-command-with-args-opt-arg-delims): Add parentheses. 2007-08-14 David Kastrup * tex.el (TeX-insert-backslash): put delete-selection property on. 2007-08-13 David Kastrup * Makefile.in (all): make new target "docs" as well. Descend for docs, info and dvi. Before regenerating extradist documentation, copy version info from checked-out version (can we do that saner?). On various targets, replace set -x with a somewhat more elaborate version that echoes more for make -n. 2007-08-10 Ralf Angeli * tex.el (TeX-doc-backend-alist): Delete buffers used for checking availability of info files. 2007-08-08 Ralf Angeli * tex-buf.el (TeX-TeX-sentinel-check): Shave off quotation marks from file name if present. 2007-08-04 Ralf Angeli * tex.el (TeX-run-style-hooks): Set `default-directory' to the directory of the master file. 2007-07-11 Ralf Angeli * style/pstricks.el ("pstricks"): Do not disable TeX PDF mode if pst-pdf is used. 2007-07-10 Ralf Angeli * tex-buf.el (TeX-format-filter): Remove line breaks at column 79. 2007-07-09 Ralf Angeli * tex.el (TeX-comment-forward): Call `comment-normalize-vars' if available. 2007-07-01 Ralf Angeli * style/verbatim.el: Add copyright notice and licence info. * style/paralist.el: Add copyright notice and licence info. * style/booktabs.el: Add copyright notice and licence info. * style/scrbase.el: Change copyright notice of Mark Trettin to FSF to reflect the assignment. Add licence info to header. * style/subfigure.el: Change copyright notice of Reiner Steib to FSF to reflect the assignment. Add licence info to header. * style/captcont.el: Change copyright notice of Reiner Steib to FSF to reflect the assignment. Add licence info to header. * latex.el (LaTeX-auto-minimal-regexp-list): Match optional arguments of document style or class macro even if they contain periods, e.g. in case of "BCOR8.25mm" in KOMA Script classes. Get rid of superfluous escapes in complemented character alternatives. * tex.el (TeX-insert-dollar): Show matching start only if `blink-matching-paren' is non-nil. 2007-06-20 Ralf Angeli * latex.el (LaTeX-common-initialization): Turn TeX PDF mode on when pst-pdf.sty is used. 2007-06-10 Ralf Angeli * latex.el (LaTeX-common-initialization): Do not add pstricks to style hooks. * style/pstricks.el: New file. * Makefile.in (STYLESRC): Add style/pstricks.el. 2007-05-25 Ralf Angeli * font-latex.el (font-latex-match-command-with-arguments): Check if `match-beg' is set. 2007-05-20 Ralf Angeli * style/beamer.el ("beamer"): Use new syntax in format specifier for frametitle macro. * font-latex.el (font-latex-built-in-keyword-classes): Use new syntax for format specifiers. (font-latex-user-keyword-classes): Describe new syntax for format specifiers. (font-latex-command-with-args-default-spec): Use new syntax for format specifiers. (font-latex-command-with-args-opt-arg-delims): New variable. (font-latex-match-command-with-arguments): Use it. Change format specifier parsing to support new syntax. (font-latex-match-mandatory-arg): Remove. 2007-05-05 Ralf Angeli * doc/faq.texi: Add entry about programs not being found by ./configure when PATH is not set correctly. 2007-04-29 Ralf Angeli * tex-buf.el (TeX-parse-error): Match any closing parenthesis. 2007-04-28 Ralf Angeli * font-latex.el (font-latex-fontify-region): Force redisplay instead of setting `jit-lock-context-unfontify-pos'. (font-latex-command-with-args-default-spec): New variable. (font-latex-match-command-with-arguments): Use it. (font-latex-built-in-keyword-classes): Correct some syntax specifiers. (font-latex-jit-lock-force-redisplay): New function. (font-latex-fontify-region): Use it. (font-latex-doctex-preprocessor-face): Make DocStrip guards stand out on Emacs 21. 2007-04-23 Ralf Angeli * latex.el (LaTeX-environment-menu): Support optional arguments specified by vectors. * style/flashcards.el: New file. * Makefile.in (STYLESRC): Add style/flashcards.el. * doc/auctex.texi (Adding Environments): Document possibility to specify optional arguments in `LaTeX-add-environments'. 2007-04-22 Reiner Steib * doc/changes.texi: Add index entries for auctex.el and tex-site.el. Add references to INSTALL or manual. * doc/install.texi (Loading the package): Add index entries for auctex.el and tex-site.el. * doc/wininstall.texi: Add index entries for tex-mik.el and tex-fptex.el. Clarify loading. 2007-04-22 Ralf Angeli * font-latex.el (font-latex-fontify-region): Force context-related unfontification only if the region has to be extended. (font-latex-find-matching-close): Do not look up syntax-table properties. (font-latex-extend-region-backwards-command-with-args) (font-latex-extend-region-backwards-command-in-braces) (font-latex-extend-region-backwards-math-env) (font-latex-extend-region-backwards-math-envII) (font-latex-extend-region-backwards-quotation): Doc fix. Return nil if no content requiring region extension was found. 2007-04-16 Ikumi Keita * latex.el (LaTeX-math-default): Add various Greek uppercase macros provided by amsmath.sty. 2007-04-15 Ralf Angeli * font-latex.el (font-latex-match-math-envII): Regexp-quote the string used to look for the environment end in order for starred environments to be found. 2007-04-13 Mark Trettin * style/scrbase.el ("scrbase"): Fix typo in prompt. (TeX-arg-KOMA-fontelements): Add \dictum, \pagination, \disposition, and \minisec macros. 2007-04-13 Ralf Angeli * style/beamer.el ("beamer"): Specify syntax of \frametitle macro for font locking. 2007-04-12 Ralf Angeli * style/amsmath.el ("amsmath"): Call `reftex-add-to-label-alist' only if function is bound. 2007-04-09 Ralf Angeli * tex.el (TeX-doc-backend-alist): Add --view parameter to texdoc call since texdoc in MiKTeX fires up a web page not useful for our purposes otherwise. * tex-mik.el: Set `TeX-kpathsea-path-delimiter' to nil since kpsewhich in MiKTeX (aka findtexmf) does not emit any useful information if fed with kpathsea-related variables anyway. This change makes `TeX-doc' work again on MiKTeX. * font-latex.el (font-latex-set-syntactic-keywords): Match the \begin macro of verbatim environments in case it is preceded by other content than whitespace. 2007-04-04 Ralf Angeli * latex.el (LaTeX-backward-paragraph): Fix grouping in order to return the right value when no paragraph command is found. 2007-04-01 Ralf Angeli * tex-buf.el (TeX-help-error): Correct regexp for matching line indicator. 2007-03-31 Ralf Angeli * latex.el (LaTeX-verbatim-environments): Fix typo. (LaTeX-backward-paragraph): Special-case verbatim environments in order to prevent leading brackets or braces from being interpreted as part of the \begin macro. Clean up a bit. 2007-03-24 David Kastrup * context.el (ConTeXt-find-indent): Use `condition-case' rather than `ignore-errors', and don't barf if at the end of file (like with an empty file). 2007-03-23 David Kastrup * context.el (TeX-ConTeXt-sentinel): Fix end-of-run detection. 2007-03-19 Ralf Angeli * style/comment.el: New file. * Makefile.in (STYLESRC): Add style/comment.el. * font-latex.el (font-latex-syntactic-keywords-extra): New variable. (font-latex-set-syntactic-keywords): Use it. * tex-style.el (LaTeX-comment-env-list): New variable. 2007-03-18 Ralf Angeli * doc/auctex.texi (Commands): Remove dependency on software du jour from description of `TeX-DVI-via-PDFTeX'. 2007-03-12 Ralf Angeli * font-latex.el (font-latex-quotes): Add nil option. (font-latex-match-quotation) (font-latex-extend-region-backwards-quotation): Do nothing if `font-latex-quotes' is nil. * doc/auctex.texi (Font Locking): Document nil option of `font-latex-quotes'. 2007-03-11 Ralf Angeli * latex.el (LaTeX-fold-math-spec-list): `decode-char' is not autoloaded in XEmacs. Only use it when it is defined. * doc/auctex.texi (European): Document `icelandic' language option. * Makefile.in (STYLESRC): Add style/icelandic.el. * style/icelandic.el: New file. 2007-03-11 David Kastrup * RELEASE (Footnotes): Update Emacs CVS locations. 2007-03-10 Ralf Angeli * tex-fold.el (TeX-fold-auto): Default to nil. 2007-03-09 Ralf Angeli * tex.el (TeX-clean): Catch error on Emacs 21 when only one file is to be deleted. 2007-03-06 Ralf Angeli * tex.el (TeX-search-syntax-table): Set syntax of ?\( and ?\) explicitely to whitespace for Emacs 21. (TeX-search-syntax-table): Clean the syntax table more thoroughly. 2007-03-04 Ralf Angeli * tex.el (TeX-find-macro-boundaries): Make it possible to restrict the search with new argument `lower-bound'. (TeX-find-macro-start): Make it possible to restrict the search with new argument `limit'. * font-latex.el: Merge from multiline-font-lock branch. (font-latex-do-multi-line, font-latex-use-cache): Remove. (font-latex-multiline-boundary): New variable. (font-latex-built-in-keyword-classes): Add information about syntax of macros. Quote face names. (font-latex-deactivated-keyword-classes): Adapt type to new form of `font-latex-built-in-keyword-classes'. (font-latex-make-match-defun): Accept `face' argument. (font-latex-keyword-matcher): Support up to 8 slots for faces. (font-latex-make-built-in-keywords): Support new form of keywords classes. (font-latex-user-keyword-classes): Provide possibility to specify macro syntax. (font-latex-make-user-keywords): Add warning face in relevant matchers. (font-latex-extend-region-functions): New variable. (font-latex-setup): Use it. Clean up. (font-latex-fontify-region): New function. (font-latex-unfontify-region): Cater for XEmacs. (font-lock-after-change-function): Advise function for challenged editors. (font-latex-find-matching-close): Use `TeX-search-syntax-table'. (font-latex-not-on-same-line-as): New function. (font-latex-set-cache, font-latex-get-cache) (font-latex-check-cache): Remove. (font-latex-put-multiline-property-maybe): New function. (font-latex-match-command-cache): Remove. (font-latex-matched-faces): New variable. (font-latex-matched-face): New function. (font-latex-match-command-with-arguments): Use them. Set warning face when syntax not correct. (font-latex-match-in-braces-cache): Remove. (font-latex-match-mandatory-arg): New function. (font-latex-extend-region-backwards-command-with-args): New function. (font-latex-match-command-in-braces): Set multiline property if necessary. (font-latex-extend-region-backwards-command-in-braces): New function. (font-latex-match-math-env): Set multiline property if necessary. (font-latex-extend-region-backwards-math-env): New function. (font-latex-math-environments): New variable. (font-latex-match-math-envII): Use it. Set multiline property if necessary. (font-latex-extend-region-backwards-math-envII): New function. (font-latex-update-quote-list): New function. (font-latex-match-quotation): Use it. Set multiline property if necessary. (font-latex-extend-region-backwards-quotation): New function. 2007-02-25 David Kastrup * tex.el (TeX-read-string): Add new function that will inherit the input method if feasible. TODO: replace calls of `read-string' with this wherever it may be appropriate. 2007-02-20 Ikumi Keita * tex-buf.el (TeX-region-file): Doc fix. 2007-02-15 Masayuki Ataka * tex.el (TeX-after-insert-macro-hook): New hook. (TeX-insert-macro): Use it. * tex-fold.el (TeX-fold-auto): New variable. (TeX-fold-mode): Append auto fold stuff to the end of `TeX-after-insert-macro-hook'. 2007-02-13 Ralf Angeli * tex.el (TeX-clean): Fix last change. 2007-02-10 Ralf Angeli * tex-fold.el (TeX-fold-macro-spec-list-internal) (TeX-fold-env-spec-list-internal) (TeX-fold-math-spec-list-internal): New variables. (TeX-fold-region-macro-or-env, TeX-fold-item): Use them. (TeX-fold-comment-do): Doc fix. (TeX-fold-mode): Set TeX-fold-*-spec-list-internal variables. Use -fold-*-spec-list variables if bound. * latex.el (LaTeX-fold-macro-spec-list) (LaTeX-fold-env-spec-list, LaTeX-fold-math-spec-list): New variables. * tex.el (TeX-mode-prefix): New function. (TeX-clean): Use it. 2007-02-10 Masayuki Ataka * tex-jp.el (TeX-japanese-process-input-coding-system) (TeX-japanese-process-output-coding-system): Use system-type instead of window-system. Suggested by Ikumi Keita . 2007-02-09 Masayuki Ataka * tex-jp.el (TeX-japanese-process-input-coding-system) (TeX-japanese-process-output-coding-system): Do not use default-coding-system to set process-coding-system, anymore. The value is set to shift_jis or euc-jp depending on window-system. * tex-bar.el: Fix typo. Reported by Ikumi Keita . 2007-02-09 Ikumi Keita * tex-jp.el (japanese-TeX-command-list): Add `TeX-run-discard-foreground' and `TeX-run-function' for function-item. (japanese-TeX-set-process-coding-system): New function. (TeX-after-start-process-function): Use it. Cater for the accidental case that no-Japanese loads tex-jp.el and his coding-system is set to unexpected one. 2007-02-05 Ralf Angeli * tex.el (TeX-submit-bug-report): Remove unnecessary code. Include a plea for upgrading into introductory blurb. 2007-02-01 Ikumi Keita * latex.el: Move (provide 'latex) to the end of buffer. (TeX-global-input-files, BibTeX-global-style-files) (BibTeX-global-files): checkdoc cleaning. (LaTeX-fill-paragraph, LaTeX-fill-code-comment): Use function TeX-match-buffer instead of buffer-substring-*. (LaTeX-209-to-2e): Likewise. * tex-buf.el (TeX-command-region, TeX-command-buffer) (TeX-next-error, TeX-check-files, TeX-command-next) (TeX-output-extension, TeX-run-set-command, TeX-run-interactive) (TeX-sentinel-default-function, TeX-region-create, TeX-region) (TeX-error-file, TeX-error-offset, TeX-parse-TeX) (TeX-error-description-list): checkdoc cleaning. (TeX-run-command, TeX-TeX-sentinel-check, TeX-BibTeX-sentinel): Use substitute-command-keys to message key binding. (TeX-current-pages): Add doc string. * tex.el (TeX-print-command, TeX-queue-command) (TeX-command-list, TeX-printer-list, TeX-set-mode-name) (TeX-regexp-group-count): checkdoc cleaning. (plain-TeX-mode-hook): Declare user option explicitly using defcustom. (TeX-search-files-kpathsea): Use TeX-kpathsea-path-delimiter instead of kpathsea-path-delimiter. 2007-01-23 Ralf Angeli * doc/auctex.texi (Quotes): Document `TeX-math-close-double-dollar'. Add subheadings. 2007-01-22 Ralf Angeli * autogen.sh: Define PDFTEX if empty and pass it to `make dist' in `doc' directory for documentation generation. * doc/Makefile.in (docdir, PACKAGE_TARNAME): New variables. (dist): Add tex-ref.pdf target. (extradist): Remove tex-ref.pdf target. (install-auctex): Add tex-ref.pdf target. Install tex-ref.pdf into $(docdir). 2007-01-21 Ralf Angeli * tex-fptex.el: Make calls of start.exe work with quoted file names. * tex-mik.el: Make calls of start.exe work with quoted file names. 2007-01-21 Masayuki Ataka * tex-fold.el (TeX-fold-type-list): New new type 'math. (TeX-fold-math-spec-list): New variable. (TeX-fold-dwim, TeX-fold-region, TeX-fold-region-macro-or-env) (TeX-fold-item): Try to fold math macros as well. (TeX-fold-buffer, TeX-fold-paragraph, TeX-fold-make-overlay) (TeX-fold-item-end): Mention new type 'math. (TeX-fold-math): New function. 2007-01-20 David Kastrup * auctex.spec: Remove unused `%{extraconfig}' argument. 2007-01-20 Masayuki Ataka * tex-fold.el (TeX-fold-macro-spec-list): Fold marginpar, eqref, glossary, copyright, textregistered and texttrademark macros as well. 2007-01-18 Masayuki Ataka * tex-jp.el: Update maintainer email address. * style/verbatim.el: Update author email address. 2007-01-17 Reiner Steib * tex.el (TeX-clean-default-intermediate-suffixes): Add beamer suffixes. 2007-01-16 Masayuki Ataka * tex-jp.el (japanese-TeX-command-list): Use "%`" and "%'" magic to allow file names with spaces. See also change log for TeX-command-list in tex.el on 2006-10-10. Reported by Ikumi Keita . 2007-01-14 Ralf Angeli * doc/wininstall.texi: Add copyright notice and licence reference. Mention --infodir. Some clean-ups. 2007-01-13 Ralf Angeli * Makefile.in (www-doc): Generate AUCTeX and preview-latex manuals in single directory. Patch gendocs.sh to use texi2html instead of makeinfo (patch not included). 2007-01-12 Ralf Angeli * Version 11.84 released. 2007-01-12 Ralf Angeli * RELEASE: Update for release. * doc/changes.texi: Update for release. * auctex.spec (Version): Bump version number. * configure.ac: Bump version number. * doc/tex-ref.tex: Bump version number. 2007-01-11 Ralf Angeli * Makefile.in (STYLESRC): Add style/polski.el. * RELEASE: Mention support for `polski' LaTeX package. * style/polski.el: New file. * doc/auctex.texi (European): Mention `polski' language option. 2007-01-08 Ralf Angeli * RELEASE: Document some new features. * style/polish.el: New file. * Makefile.in (STYLESRC): Add style/polish.el. * doc/auctex.texi (European): Remove references to `plfonts' and `plhb' styles for typesetting Polish text because they seem to be out of use. Refer to the `polish' option for the babel LaTeX package instead. * tex.el (TeX-quote-language-alist): Replace references to `plfonts' and `plhb' by `polish'. 2007-01-07 Ralf Angeli * doc/wininstall.texi: Refer to up-to-date versions of CVS Emacs. * doc/install.texi (Prerequisites): Refer to up-to-date versions of CVS Emacs. 2007-01-05 Reiner Steib * doc/auctex.texi (European): Improve TeX-quote-language-alist. * tex.el (TeX-command-default): Mark as safe-local-variable. (TeX-quote-language-alist): Improve custom type. Add links to the manual. Improve doc string. 2006-12-30 Ralf Angeli * doc/auctex.texi (Folding): Document user-visible changes in the folding functionality. 2006-12-29 Ralf Angeli * tex-info.el (TeX-texinfo-mode): Set `comment-use-syntax'. * tex-fold.el: Update author email address. (TeX-fold-type-list): New variable. (TeX-fold-keymap): Add key binding for `TeX-fold-comment'. (TeX-fold-dwim): Try to fold comment as well. (TeX-fold-region): Move implementation of region folding for macros and environments out into the new function `TeX-fold-region-macro-or-env' and cater for comments as well. (TeX-fold-region-macro-or-env, TeX-fold-region-comment) (TeX-fold-comment, TeX-fold-comment-do): New functions. * latex.el (LaTeX-common-initialization): Set `TeX-search-forward-comment-start-function'. (LaTeX-fill-region-as-para-do, LaTeX-fill-paragraph) (LaTeX-fill-code-comment): Call `TeX-search-forward-comment-start' instead of `LaTeX-search-forward-comment-start'. * tex.el (VirTeX-common-initialization): Set `comment-end-skip' and `comment-use-syntax'. (TeX-fold-menu): Add entry for folding comments. (TeX-comment-forward): New compatibility function. (TeX-comment-or-uncomment-region): Use it. (TeX-search-forward-comment-start-function): New variable. (TeX-search-forward-comment-start): New function. 2006-12-10 David Kastrup * latex.el (LaTeX-section-hook): Place into `LaTeX-macro' group. (LaTeX-verbatim-macros-with-delims) (LaTeX-verbatim-macros-with-braces): Same here. (LaTeX-verbatim-environments): Place into `LaTeX-environment' group. 2006-12-07 Ralf Angeli * tex-bar.el (TeX-install-toolbar, LaTeX-install-toolbar): Add `toolbarx-refresh' to `TeX-PDF-mode-hook' in the current buffer only. 2006-12-06 Ralf Angeli * context-nl.el (ConTeXt-nl-mode-initialization): Use correct syntax for prompting for an optional argument in case of \items macro. * context-en.el (ConTeXt-en-mode-initialization): Use correct syntax for prompting for an optional argument in case of \items macro. * context.el (ConTeXt-arg-setup): Capitalize prompt. 2006-12-04 Miguel Frasson * toolbar-x.el (toolbarx-emacs-add-button): Insert buttons in KEYMAP (new arg). Unnecessary &optional removed. Removed broken code for fake-button `:new-line'. (toolbarx-emacs-refresh-process-button-or-insert-list): New arg KEYMAP inserted. Unnecessary &optional removed. (toolbarx-emacs-refresh): Fixed bug with `tool-bar-map' let-bound and made local variable. (toolbarx-xemacs-refresh-process-button-or-insert-list): Docstring improved.. (toolbarx-xemacs-refresh): Using `nreverse' directly inside `let'. `nreverse' is applied to lists generated from actual data-structures, leaving such data-structures alone. 2006-11-26 Ralf Angeli * context.el (ConTeXt-texexec-option-nonstop): New variable. (ConTeXt-expand-options): Use it. 2006-11-24 Ralf Angeli * tex.el (plain-TeX-enable-toolbar): Rename from `TeX-enable-toolbar'. (plain-TeX-maybe-install-toolbar): Rename from `TeX-maybe-install-toolbar'. (TeX-plain-tex-mode): Use new names. * doc/auctex.texi (Running TeX and friends): Explicitely mention `plain-TeX-enable-toolbar' and `LaTeX-enable-toolbar'. 2006-11-16 Ralf Angeli * latex.el (LaTeX-fill-region-as-para-do): Do not break before code comments if at a commented beginning of a line. 2006-10-21 Reiner Steib * doc/preview-latex.texi: Fix @node commands. 2006-10-20 David Kastrup * doc/auctex.texi (top): Mention reference card. * doc/Makefile.in (PREVIEWTEXIFILES): Add `version.texi'. * doc/auctex.texi: Add formatting emergencystretch. Move macros input. (top): Rearrange somewhat. Avoid duplicate contents (?). * doc/preview-latex.texi: Restructure and relicense taking auctex.texi as an example. * doc/auctex.texi (top): In the user-visible part of the info file, move the copying info completely to the "Copying this manual" section in order to reduce clutter. 2006-10-19 David Kastrup * RELEASE: Mention previous XEmacs package problems. 2006-10-16 David Kastrup * tex-buf.el (TeX-parse-error, TeX-error, TeX-warning): Replace the error parser basically by what we have in preview-latex. However, this does not yet do the fine-grained hackery around possible TeX quote characters that preview-latex employs in order to get the correct character position in a line even under adverse conditions. 2006-10-11 David Kastrup * tex-buf.el (TeX-error-description-list): Add preview-latex error pattern here. * tex.el (TeX-expand-list): Add "%m" pattern from preview. (TeX-add-local-master): Make a local variable wrapper more suitable for docstrip. 2006-10-10 David Kastrup * RELEASE: Mention space in file names, PostScript stack tolerance. * tex-buf.el (TeX-command-expand): Make `file' self-quoting in expansion, and trick around with `TeX-command-pos' and other junk in order to make the quoting stuff of "%`" and "%'" work. (TeX-view-output-file): Became pretty pointless. Remove. * tex.el (TeX-command-list): Use "%`" and "%'" magic to allow file names with spaces. (TeX-output-view-style): Don't quote "%s", that's the job of `TeX-command-expand'. (TeX-expand-list): Use the `-interaction' option. Define "%`", " \"\\", "\"" and "%'" patterns. Somebody should probably rather turn this into external functions in `tex-buf.el': the stuff really has no business here and does not get byte-compiled. Use `file' for "%o". 2006-10-07 Ralf Angeli * latex.el (LaTeX-fill-region-as-paragraph): Match "foo\ %" as well. 2006-10-04 Ralf Angeli * tex.el (TeX-find-macro-boundaries): Prevent `up-list' and friends from finding parens in comments if point is not in a comment and vice versa. 2006-10-02 David Kastrup * doc/auctex.texi: Change the licensing terms to require no front and back cover texts, and explicitly exclude the GFDL from being licensed under the GFDL. (top): Give a synopsis for the license section in the top menu. Remove redundant version mentions, remove the explicit exclusion of the GFDL from GFDL licensing: RMS says it is unnecessary. 2006-09-29 David Kastrup * autogen.sh: Use `=' instead of `==' in tests. * doc/Makefile.in (version.texi): Let version.texi depend rather on ChangeLog in order not to disturb pregenerated documentation. * autogen.sh: Prepare `AUCTEXDATE' and `AUCTEXVERSION' for `make dist'. * Makefile.in (tar-ball): Pass version and date into autogen.sh * doc/Makefile.in (AUCTEXDATE, AUCTEXVERSION): get from configure. (AUCTEXTEXIFILES): Add fdl.texi and version.texi (version.texi): create depending on Makefile. (maintainer-clean): Remove version.texi. Should this be in the distclean target instead? * doc/fdl.texi: Add it. * Makefile.in (DOCFILES): Remove, unused. (doc/Makefile): Add target. (info, dvi, install-man, install-docs, clean, distclean) (tar-ball): depend on doc/Makefile * doc/.cvsignore: Add version.texi, remove unused auto.texi. * doc/auctex.texi: Rearrange header material, put under GFDL, add license, take version numbers from version.texi. 2006-09-21 David Kastrup * RELEASE: Adapt to upcoming release. * doc/install.texi (Configure): Remove reference to `--with-kpathseasep' option. * tex-mik.el (TeX-kpathsea-path-delimiter): initialize to ";". * tex-fptex.el (TeX-kpathsea-path-delimiter): initialize to ";". 2006-09-20 David Kastrup * tex-buf.el: Let `TeX-active-buffer' return nil if there is no command buffer. Change copyright notice from Kresten Krab Thorup to reflect assignment to FSF. * latex.el: Change copyright notice. * tex.el: Change copyright notice. * doc/tex-ref.tex: Change copyright notice. * doc/auctex.texi: Change copyright notice. 2006-09-17 Reiner Steib * doc/faq.texi: Fix syntax error. 2006-09-16 Ralf Angeli * doc/faq.texi: Explain the abbreviation AUC. 2006-09-13 Reiner Steib * toolbar-x.el (toolbarx-emacs-refresh): Don't modify global value of `tool-bar-map'. 2006-09-11 Reiner Steib * latex.el (LaTeX-math-default): Remove X2ABB for \Pr. Suggested by Adam Johnson . 2006-09-08 Reiner Steib * latex.el: Use read-kbd-macro instead of kbd for LaTeX-math-mode. (LaTeX-math-default): Add bindings for \var... symbols. (LaTeX-math-default): Change binding for \vartheta. 2006-09-08 David Kastrup * latex.el: Allow strings for keys in LaTeX-math-mode. (LaTeX-math-list): Allow string for key. 2006-09-06 Ralf Angeli * doc/auctex.texi (Mathematics): Align description of `LaTeX-math-list' with reality. 2006-08-25 David Kastrup * doc/preview-faq.texi (Requirements, Installation Trouble) (Customization): Update and remove stuff, mostly because preview-latex is integrated with AUCTeX now. 2006-08-30 Ralf Angeli * latex.el (TeX-latex-mode): Check if `tool-bar-mode' is bound. * tex.el (TeX-plain-tex-mode): Check if `tool-bar-mode' is bound. 2006-08-26 Ralf Angeli * doc/auctex.texi (European): Make replacement of language-specific hyphen strings more obvious. 2006-08-25 Ralf Angeli * style/csquotes.el: Bring up to par with version 3.5. 2006-08-17 David Kastrup * doc/auctex.texi (Viewing): Type fix. 2006-08-05 Berend de Boer * context-en.el: quite a few more English ConTeXt macros made available in menu. * context-nl.el: few more Dutch ConTeXt macros made available in menu. * context.el: more ConTeXt macros made available in menu. 2006-08-02 Reiner Steib * tex-bar.el (TeX-bar-TeX-button-alist, TeX-bar-LaTeX-button-alist): Make `file' invisible in TeX-PDF-mode. Add clean. (TeX-bar-TeX-buttons, TeX-bar-LaTeX-buttons): Improve custom type. 2006-07-27 Reiner Steib * tex-bar.el (TeX-bar-TeX-buttons, TeX-bar-LaTeX-buttons): Improve wording. * doc/changes.texi: Add bug fixes. Add TeX tool bar. * doc/auctex.texi (Running TeX and friends): Add TeX-enable-toolbar. * tex-bar.el: Copy of tool bar stuff from LaTeX-*. (TeX-bar-TeX-buttons, TeX-bar-TeX-all-button-alists) (TeX-bar-TeX-button-alist): New variables. (TeX-bar-TeX-buttons, TeX-install-toolbar): New funtions. (TeX-tool-bar-button-definitions): New custom group * tex.el (TeX-enable-toolbar): New variable. (TeX-maybe-install-toolbar): New function. (TeX-plain-tex-mode): Add `TeX-maybe-install-toolbar'. 2006-07-27 David Kastrup * doc/wininstall.texi: Add explanation of how to augment `PATH'. * doc/todo.texi (Mid-term Goals): Typo. 2006-07-25 David Kastrup * style/doc.el ("doc"): Add macrocode and macrocode* to indentation-neutral environment list. * latex.el (LaTeX-insert-environment): Leave mark at start of content when inserting around active region. 2006-07-11 David Kastrup * latex.el (LaTeX-font-list): Add `\mathbb' on C-c C-f C-s. 2006-07-25 Ralf Angeli * font-latex.el (font-latex-match-script): Don't match groups spanning more than one line in order to avoid visually wrong indentation in subsequent lines. (font-latex-match-quotation): Do not match escaped quotation marks. 2006-07-23 Ralf Angeli * bib-cite.el, tex-mik.el, doc/changes.texi, doc/history.texi, doc/wininstall.texi: Fix spelling of MiKTeX. 2006-07-21 Ralf Angeli * font-latex.el (font-latex-match-script): Fix last check-in. 2006-07-18 Ralf Angeli * font-latex.el (font-latex-match-script): Apply subscript and superscript highlighting only once in order to prevent the font size becoming too small. 2006-07-15 Ralf Angeli * latex.el (LaTeX-maybe-install-toolbar): Enable tool bar in LaTeX mode only. (LaTeX-maybe-install-toolbar): Revert last change. (TeX-latex-mode): Set `tool-bar-mode-on-hook' buffer-locally instead. 2006-07-12 Ralf Angeli * latex.el (LaTeX-fill-move-to-break-point): Fix regexp for matching whitespace and comment characters at the start of a line. Simplify forward search. 2006-07-11 Ralf Angeli * tex.el (TeX-find-macro-boundaries, TeX-find-macro-start): Remove unused argument. (TeX-find-macro-end-helper): Handle macros at the end of the buffer correctly. 2006-07-10 Ralf Angeli * tex.el (TeX-math-close-double-dollar): New variable. (TeX-insert-dollar): Use it. * Makefile.in, doc/Makefile.in (datarootdir): New variable used by autoconf 2.59e. 2006-07-09 Ralf Angeli * aclocal.m4 (EMACS_CHECK_MULE): Check for EMACS_UNIBYTE environment variable and do not set MULESRC if it is present. 2006-07-07 Ralf Angeli * tex.el (TeX-normal-mode): Force update of style list. 2006-07-02 Ralf Angeli * tex.el (TeX-doc-backend-alist): Explicitely supply doc directory for non-kpathsea-based TeX systems. 2006-06-29 Ralf Angeli * latex.el (LaTeX-fill-region-as-paragraph): Fix treatment of code comments in case of something like "\%}%". 2006-06-24 Ralf Angeli * tex.el (TeX-clean): Delete files in directory of master file. 2006-06-23 Joshua Buhl * doc/tex-ref.tex (title{Outlining TeX Documents}): new section. 2006-06-19 Ralf Angeli * style/amsmath.el ("amsmath"): Prompt for alignment option with subarray environments. 2006-06-18 Ralf Angeli * tex.el (TeX-doc-backend-alist): Preserve window configuration when checking for info backends. 2006-06-17 Ikumi Keita * tex.el (TeX-parse-arguments): Makes to work with proper value of TeX-insert-macro-default-style. (TeX-insert-braces): Place braces with right direction with active region, (related to the case when the region is being marked backwards). 2006-06-17 Masayuki Ataka * tex.el (TeX-clean): Delete generated files associated with `TeX-region-file'. Suggested by Ikumi Keita . 2006-06-12 Ralf Angeli * tex.el (Info-find-file): Do not autoload. (TeX-doc-backend-alist): Use a method for checking the presence of an info file which works in Emacs 21 as well. 2006-06-11 Ralf Angeli * tex.el (TeX-doc-backend-alist): Don't error out if `Info-find-file' is not available. (TeX-doc): Use `interactive-p' instead of `called-interactively-p' which is not available in Emacs 21. 2006-06-11 Ikumi Keita * style/amsmath.el ("amsmath"): Docfix for 'uproot'. (LaTeX-amsmath-env-alignat): Fix typo. 2006-06-08 David Kastrup * Makefile.in (PREVIEW_BUILD_DIR): New variable for building the preview standalone bundle. (preview-ball): New target for creating the preview standalone bundle for CTAN. 2006-06-08 Reiner Steib * auctex.spec (%post, %postun): Use mktexlsr instead of texhash. Only update the relevant ls-R file. (%install): Add comment about preview.cfg. (%install, %files): prauctex.cfg is the config file, not preview.cfg. 2006-06-07 Ralf Angeli * latex.el (LaTeX-set-paragraph-start): New function. (LaTeX-paragraph-commands-add-locally) (LaTeX-common-initialization): Use it. 2006-06-07 Reiner Steib * Version 11.83 released. 2006-06-07 Reiner Steib * Makefile.in (full-release): Remove duplicate pass phrase prompt. (release-commit): Only commit ChangeLog. * Makefile.in (rpm-packages): Rename from rpm-builds. * RELEASE: Fix typo. * Makefile.in (rpm-builds): Add preview-tetex. * auctex.spec: Add "-n" for preview-tetex. (%install): Create preview.cfg. 2006-06-07 David Kastrup * RELEASE: Add info about preview RPM. * doc/install.texi (Advice for package providers): Adapt package advice to what we actually do for RPM files. * auctex.spec: attempt to add preview-tetex package. 2006-06-07 Reiner Steib * Makefile.in (XEMACS_BUILD_DIR): New variable. (xemacs-package): Use it. (tar-ball-clean): Add XEMACS_BUILD_DIR. (CP): New variable. (tar-ball, www-doc): Use it. * RELEASE: Update RPM stuff. * tex.el (TeX-line-number-at-pos): New compatibility function. * style/pdfsync.el (LaTeX-pdfsync-output-page): Use it. * auctex.spec (Obsoletes): Remove preview-latex-common. 2006-06-06 Ralf Angeli * style/pdfsync.el (LaTeX-pdfsync-output-page): Initialize `sync-record' with a non-nil value. * doc/auctex.texi (Viewing): Fix reference to Commands node looking ugly in info output. Slightly rearrange forward/inverse search section. Document pdfsync support a bit more in detail. 2006-06-06 Reiner Steib * RELEASE: Use "SUSE" instead of "SuSE". * auctex.spec (Release): Bump to 1. (%changelog): Add 11.83. * doc/changes.texi: Add @xref for pdfsync. * doc/auctex.texi (Viewing): Mention pdfsync. * doc/todo.texi (Wishlist): Add newline. Mention pdfsync. 2006-06-06 David Kastrup * RELEASE: Add details about downloadable packages. Beg harder. 2006-06-05 Reiner Steib * RELEASE: Mention LaTeX tool bar. 2006-06-05 Ralf Angeli * font-latex.el (font-latex-quote-regexp-beg) (font-latex-quotes-control): Make buffer-local. (font-latex-add-quotes): Revert last change and do not make `font-latex-quotes-control' buffer-local which it now already is. 2006-06-04 Ralf Angeli * font-latex.el (font-latex-add-quotes): Make `font-latex-quote-regexp-beg' buffer-local. 2006-06-04 Reiner Steib * Makefile.in (rpm-builds): New target. (full-release): Use gpg-agent if available. (RPM_SIGN): New variable. (rpm-builds): Use it. * doc/install.texi (Advice for non-privileged users): Reword to avoid underfull hbox. 2006-06-03 Ralf Angeli * doc/auctex.texi (top): Update master menu. (Running TeX and friends): Update menu. (Miscellaneous Commands): Remove. (Cleaning, Documentation): New nodes. * doc/changes.texi: Update references to documentation about cleaning and documentation access. 2006-06-02 Reiner Steib * doc/auctex.texi (Miscellaneous Commands): New node. * doc/changes.texi: Add @xref-s. 2006-06-02 David Kastrup * doc/changes.texi: Change one ref to xref. 2006-05-31 Reiner Steib * doc/changes.texi: Conditionalize reference. * doc/Makefile.in (MAKEINFO_PLAIN): Remove --no-validate. * auctex.spec (%files emacs): Remove %exclude. 2006-05-30 Reiner Steib * doc/Makefile.in (MAKEINFO_PLAIN): New. Add --no-validate. * doc/changes.texi: Add tool bar. * doc/auctex.texi (top): Remove tool bar. (Running TeX and friends): Add tool bar here. Adjust. 2006-05-25 David Kastrup * RELEASE: Mention file-line-error style messages. Mention XyMTeX fix. * doc/changes.texi: The same. 2006-05-25 Ralf Angeli * tex.el (TeX-update-style-hook): New variable. (TeX-update-style): Use it. (TeX-remove-style): Fix typo. * font-latex.el (font-latex-quotes-internal): New variable. (font-latex-quotes-set-internal): New function. (font-latex-match-quotation): Use it. Use `font-latex-quotes-internal' instead of `font-latex-quotes'. (font-latex-setup): Remove code for figuring out type of language-specific quotation mark matching which is now in `font-latex-quotes-set-internal'. * RELEASE: Update for 11.83. * auctex.spec, configure.ac, doc/auctex.texi, doc/changes.texi, doc/preview-latex.texi, doc/tex-ref.tex: Bump version number. Update address of FSF in GPL notices. 2006-05-22 Ralf Angeli * font-latex.el (font-latex-quotes-fallback) (font-latex-quote-style-list-french) (font-latex-quote-style-list-german): New variables. (font-latex-quotes): Add `auto' option. (font-latex-setup): Try to derive type of quotation mark matching from document properties. * tex.el (TeX-elt-of-list-member): New function. * doc/auctex.texi (Font Locking): Document `auto' option of `font-latex-quotes'. 2006-05-21 Ralf Angeli * tex.el (TeX-source-specials-mode): Mark as safe. (TeX-PDF-mode): Use `TeX-booleanp'. (TeX-booleanp): New function. * font-latex.el (font-latex-quotes): Mark as safe. (font-latex-fontify-script): Use `TeX-booleanp'. 2006-05-17 Ralf Angeli * latex.el (LaTeX-forward-paragraph): Make regexp more efficient. 2006-05-15 Reiner Steib * tex.el (TeX-PDF-mode): Rewrite safe-local-variable property for Emacs 21 compatibility. * font-latex.el (font-latex-fontify-script): Ditto. 2006-05-10 Reiner Steib * tex.el (TeX-master): Quote safe-local-variable lambda expression to avoid byte compilation. 2006-05-08 Reiner Steib * font-latex.el (font-latex-fontify-script): Mark as safe-local-variable. 2006-05-07 Reiner Steib * tex.el (TeX-PDF-mode): Mark as safe-local-variable. (TeX-master): Don't use t in safe-local-variable declaration. (TeX-doc): Clarify. 2006-05-07 Ralf Angeli * font-latex.el (font-latex-match-quotation): Do not match quotation marks in math constructs. 2006-05-05 Berend de Boer * context.el (ConTeXt-mode-common-initialization): Previous fix still wrong. Problem is that all local variables were killed, so added a save/restore around the common initialisation. 2006-05-04 Berend de Boer * context-nl.el (context-nl-mode) and context-en.el (context-en-mode): can now assume that ConTeXt-current-interface is buffer local. * context.el (ConTeXt-current-interface): this variable should always be buffer local. With this and above two changes having buffers with two interfaces at the same time works correctly (again?). 2006-04-26 Ralf Angeli * tex-buf.el (TeX-TeX-sentinel-check, TeX-parse-error): Support file-line-error error indicators. 2006-04-22 Ralf Angeli * tex.el (TeX-format-list): Extend regexp for ConTeXt mode. 2006-04-21 Ralf Angeli * latex.el (docTeX-mode): Make filling and indentation aware of DocStrip guards. 2006-04-20 David Kastrup * tex-buf.el (TeX-warning): Don't balk if `string' is nil. 2006-04-17 Ralf Angeli * font-latex.el (font-latex-match-script): Fix matching of nested braces. 2006-04-12 Ralf Angeli * latex.el (LaTeX-babel-insert-hyphen): Do not error out at beginning of buffer. 2006-03-28 Ralf Angeli * Makefile.in (install-metadata): Do not use an inline test for checking if preview is enabled. Just to be on the safe side. 2006-03-27 David Kastrup * doc/intro.texi (Introduction): refer to `below' instead of probably non-existing `preview/README'. * tex.el: tiny typo. * latex.el (LaTeX-close-environment): Allow prefix argument to reopen the environment. 2006-03-22 Ralf Angeli * Makefile.in (install-metadata): Append preview/auto.el to start file if configured with preview-latex. 2006-03-20 Ralf Angeli * latex.el (LaTeX-insert-environment): Do not polute the kill ring. 2006-03-15 Ralf Angeli * latex.el (TeX-latex-mode): Set up tool bar correctly for XEmacs and activate it for every buffer in Emacs. Run mode hooks as late as possible. 2006-03-14 Ralf Angeli * configure.ac: Check for `make' and abort if not present. Use `AC_PROG_MAKE_SET' instead of deprecated `AC_SET_MAKE'. * latex.el (LaTeX-common-initialization): Add \dots to supported TeX symbols. 2006-03-13 Ralf Angeli * tex.el (TeX-mode-map): Change `C-c ?' binding from `describe-mode' to `TeX-doc'. (TeX-common-menu-entries): Add `Find Documentation...' entry for `TeX-doc'. (plain-TeX-menu-entries): Remove space before ellipsis. (TeX-doc-backend-alist): Make texdoc backend available in all modes. * latex.el (LaTeX-mode-menu): Remove space before ellipsis. * doc/changes.texi: Advertise cleaning and documentation finding functionality. 2006-03-07 Ralf Angeli * tex-buf.el (TeX-next-error, TeX-active-buffer): Get master from the command buffer. (TeX-error, TeX-warning): Do not set `TeX-master' but set `TeX-command-buffer' to the right value instead. 2006-02-17 Masayuki Ataka * tex-buf.el (TeX-error-description-list): Fix error messages. Changed from `documentstyle' to `documentclass'. The duplicated entries `counter too large' are combined. Add the name of referenced book and the section number to the entry `Missing \\$ inserted'. * tex-jp.el (TeX-error-description-list): Likewise. 2006-02-16 Ralf Angeli * tex.el (TeX-master): Mark as safe. 2006-02-09 Ralf Angeli * doc/wininstall.texi: Intersperse some information about PATH. 2006-02-08 Reiner Steib * tex.el (TeX-clean-default-intermediate-suffixes): Add .brf and .out for hyperref. 2006-02-08 Ralf Angeli * tex.el (TeX-kpathsea-format-alist): Add search specs for documentation. (Info-find-file, info-lookup->completions): Autoload. (TeX-doc-backend-alist): New variable. (TeX-doc): New function. * doc/todo.texi (Wishlist): Add a few words about documentation lookup for macros. 2006-02-07 Ralf Angeli * tex-buf.el (TeX-run-ispell-on-document): Reintroduce for compatibility reasons. * tex.el (TeX-command-list): Use `TeX-run-function' instead of `TeX-run-ispell-on-document' for "Spell" option. Remove `TeX-run-ispell-on-document' as option for the third element of an item. (TeX-ispell-document): Move here from tex-buf.el. * tex-buf.el (TeX-run-ispell-on-document): Remove. (TeX-ispell-document): Move to tex.el. 2006-02-07 Ralf Angeli * tex.el (TeX-command-list): Remove "ConTeXt Clean". Add general "Clean" and "Clean All" options. Add `TeX-run-function' as an option for the third element of an item and document it. (TeX-clean-default-intermediate-suffixes) (TeX-clean-default-output-suffixes, TeX-clean-confirm): New variables. (dired-mark-pop-up): Autoload. (TeX-clean): New function. * tex-buf.el (TeX-run-function): New function. * tex-info.el (Texinfo-clean-intermediate-suffixes) (Texinfo-clean-output-suffixes): New variables. * latex.el (docTeX-clean-intermediate-suffixes) (docTeX-clean-output-suffixes) (LaTeX-clean-intermediate-suffixes, LaTeX-clean-output-suffixes): New variables. * context.el (ConTeXt-clean-intermediate-suffixes) (ConTeXt-clean-output-suffixes): New variables. 2006-02-04 Ralf Angeli * font-latex.el (font-latex-make-sectioning-faces): Set the face size for XEmacs again after `set-face-parent' was called which erroneously overwrites the original size. Without this fix sectioning faces may be unscaled after starting XEmacs. 2006-02-03 Ralf Angeli * doc/auctex.texi (top): Add detailed menu for better accessibility. Fix formatting/usage of references to RefTeX and preview-latex manuals. 2006-02-03 Reiner Steib * latex.el (LaTeX-enable-toolbar): New variable. (LaTeX-maybe-install-toolbar): New function. (TeX-latex-mode): Add LaTeX-maybe-install-toolbar to tool-bar-mode-on-hook. 2006-01-31 Ralf Angeli * aclocal.m4: Check for {late,last,early}-package-hiearchies if `late-packages' is not bound (which indicates we are dealing with XEmacs 21.5). 2006-01-28 Masayuki Ataka * tex-jp.el (TeX-command-list): Use function ignore insted of nil for the third element of `separator for command menu' because defcustom of TeX-command-list requires the third element function. Reported by Ikumi Keita . 2006-01-28 Ikumi Keita * tex-buf.el (TeX-run-discard-foreground): Renamed from TeX-run-dviout. (TeX-run-dviout): alias to TeX-run-discard-foreground. * tex.el (TeX-command-list): Use TeX-run-discard-foreground instead of TeX-run-dviout. 2006-01-25 Ralf Angeli * style/csquotes.el (LaTeX-csquotes-insert-environment): Set prompt for mandatory arguments. ("csquotes"): Bring up to par with csquotes 3.2. * style/url.el ("url"): Support the \path macro. 2006-01-25 Masayuki Ataka * tex-buf.el (TeX-run-dviout): Undo previous change. * tex.el (TeX-command-list): Ditto. 2006-01-24 Ralf Angeli * latex.el (LaTeX-verbatim-macros-with-delims) (LaTeX-verbatim-macros-with-delims-local) (LaTeX-verbatim-macros-with-braces) (LaTeX-verbatim-macros-with-braces-local): Doc fix. (LaTeX-verbatim-environments, LaTeX-verbatim-environments-local): Doc fix. Make the correct variable buffer-local. (LaTeX-verbatim-macros-with-delims) (LaTeX-verbatim-macros-with-braces, LaTeX-verbatim-environments): New functions. (LaTeX-verbatim-macro-boundaries): Find macro in case point is just in front of it. (LaTeX-verbatim-p): Doc fix. Correct macro lookup. (LaTeX-fill-move-to-break-point): Do not break verbatim macros with braces across lines (in addition to macros with delimiters). For example in case of \lstinline{...} this would result in an error and in case of \url{...} spaces would be messed up (in conjunction with the `obeyspaces' package option). * font-latex.el (font-latex-set-syntactic-keywords): Instead of appending lists of verbatim macros and environments manually use new LaTeX-verbatim-* functions. 2006-01-24 Ikumi Keita * latex.el (LaTeX-fill-move-to-break-point): Fix previous change. 2006-01-23 Reiner Steib * Makefile.in: Add CP_A. Add coment on maintainer-only targets. (xemacs-package): Use CP_A. 2006-01-22 Ikumi Keita * latex.el (LaTeX-fill-move-to-break-point): Use TeX-espaced-p to check TeX escape char. * tex.el (TeX-command-list): Removed TeX-run-dviout because dviout here is only work with Emacs on MS-DOS. * tex-buf.el (TeX-run-dviout): Removed. * tex-jp.el (japanese-TeX-command-list): Remove TeX-run-dviout. Commented out easy-menu-define (plain-TeX|LaTeX)-mode-command-nemu. (japanese-TeX-mode, japanese-plain-tex-mode) (japanese-latex-mode): Doc fix. (japanese-TeX-self-insert-command): Renamed from tex-jp-self-insert-command. (TeX-insert-punctuation): Follow the change. (TeX-error-description-list): Doc fix. 2006-01-22 Ralf Angeli * tex-fold.el (TeX-fold-macro-spec-list): Fold pageref macro as well. 2006-01-16 David Kastrup * Makefile.in (xemacs-package): Don't clean up after building so that we have a chance for debugging. 2006-01-14 David Kastrup * configure.ac: Don't check for INSTALL_INFO if already set. 2006-01-14 Ralf Angeli * doc/changes.texi: Advertize pdfsync support. * latex.el (LaTeX-header-end, LaTeX-trailer-start): Do not pick up commented header end or trailer start respectively. 2006-01-13 David Kastrup * Makefile.in (xemacs-package): Don't run `install-info' and `texhash' 2006-01-11 Reiner Steib * Makefile.in (tar-ball): Fix use of TAG_EXPORT. 2006-01-04 Reiner Steib * tex-fold.el (TeX-fold-mode): Autoload as an interactive function. 2005-12-28 Ralf Angeli * style/pdfsync.el: New file. * Makefile.in (STYLESRC): Add style/pdfsync.el. * tex.el (TeX-output-view-style): Add %(outpage) expander to xpdf call. Start xpdf in server mode. (TeX-expand-list): New %(outpage) expander. (TeX-sync-output-page-function): New variable. 2005-12-28 Reiner Steib * Makefile.in (tar-ball): Use TAG_EXPORT for snapshots. * auctex.spec (description): Add preview-latex. (install, files): Don't create preview directory. 2005-12-21 Ikumi Keita * latex.el (LaTeX-mark-section): Remove read-only mark `*' from interactive. (LaTeX-fill-move-to-break-point): Use `*' instead of `+' for looking back Japanese Macro in order to prevent breaking line just after TeX-esc, in other words, not to break TeX command `\JJJ' into `\' and `JJJ'. Use variable linebeg instead of function line-beginning-position. 2005-12-17 Reiner Steib * auctex.spec (Provides): Make emacs/site-lisp/preview. (Release): Bump to 1. 2005-12-17 Ralf Angeli * Version 11.82 released. 2005-12-17 Ralf Angeli * Makefile.in (COMMITTER_NAME, COMMITTER_EMAIL): New variables. (release-commit): Use them. * auctex.spec, configure.ac, doc/auctex.texi, doc/preview-latex.texi, doc/tex-ref.tex: Bump version number. * doc/changes.texi: Minor rewordings for 11.82. 2005-12-08 Reiner Steib * tex.el (TeX-completing-read-multiple): Mention the availability of crm.el in recent XEmacs packages. 2005-12-07 Ralf Angeli * tex.el (TeX-macro-history): New variable. (TeX-insert-macro): Use it. 2005-12-05 Ralf Angeli * tex-info.el (TeX-texinfo-mode): Do not add braces around arguments of commands which do not expect them. * latex.el (TeX-arg-free): Move to tex.el. * tex.el (TeX-arg-free): Move here from latex.el. (TeX-insert-dollar): Do not abort with an error with an error if a dollar is inserted in a math construct not started with a dollar. Issue a message about the mismatch instead and insert the dollar. * font-latex.el (font-latex-quote-list): Add default quotes. (font-latex-add-quotes): New function. (font-latex-match-quotation): Remove hard-coded quotation mark lists and adapt `font-latex-quote-list' to the active quote style instead. Babel-specific quotation mark strings are now added to `font-latex-quote-list' by style files. * style/slovak.el, style/ngerman.el, style/italian.el, style/german.el, style/danish.el: Add fontification support for quotation mark strings provided by babel. 2005-11-30 Ralf Angeli * texmathp.el: Revert last change because it makes math switch/toggle matching tricks harder to use. * latex.el (LaTeX-listify-package-options): New function. (LaTeX-auto-cleanup): Use it. (LaTeX-arg-usepackage): Add \usepackage options to style list. * tex.el (TeX-insert-quote): Turn opening/closing quotation mark into "" if <"> is typed with point behind it and insert " with any following <"> key type. 2005-11-29 Ralf Angeli * texmathp.el (texmathp-in-commented-line, texmathp-in-comment): New functions. (texmathp-match-environment): Use them. (texmathp-match-switch): Make aware of comments. 2005-11-27 Ralf Angeli * style/MinionPro.el: New file. Contributed by Mark Trettin. * Makefile.in (STYLESRC): Add style/MinionPro.el. * doc/changes.texi: Advertise support for MinionPro.sty. * RELEASE (IMPORTANT): Add Mark. 2005-11-25 David Kastrup * doc/todo.texi (Wishlist): Add suggestion about longlines.el. 2005-11-24 Ralf Angeli * tex.el (TeX-toggle-debug-warnings): Use correct variable for state indication. (TeX-kpathsea-format-alist): Add entry for "sty". Prevents kpathsea-based search from failing e.g. in case of \usepackage insertion. * doc/changes.texi: Document removal of `font-latex-title-fontify' alias. * font-latex.el: Remove alias for `font-latex-title-fontify'. (font-latex-make-user-keywords): Use hack from tex-mode.el to fontify the backslash in "\end{verbatim}" and similar correctly. (font-latex-set-syntactic-keywords): Use the backslash of "\end{verbatim}" and similar for the syntax property, not the newline character which led to fontification going wild when text at the end of the environment was inserted. 2005-11-22 Ralf Angeli * doc/changes.texi: Mention completion support for LaTeX packages. * RELEASE: Update for 11.82. 2005-11-19 Ralf Angeli * tex-site.el.in (tex-site-unload-hook): Don't let it fail on Emacs 21. 2005-11-18 Ralf Angeli * doc/changes.texi: Fix key binding for `TeX-toggle-debug-bad-boxes'. * doc/auctex.texi (Quotes): Document change of `TeX-insert-braces'. (Filling): `M-g' for `LaTeX-fill-region' has been deactivated for a long time. Reflect that in the documentation. * tex.el (TeX-token-char): Doc fix. (TeX-insert-braces): Do something more sensible if region is activated. 2005-11-17 Ralf Angeli * tex-buf.el (TeX-parse-error): Do not match empty strings. 2005-11-12 Ralf Angeli * tex-buf.el (TeX-toggle-debug-boxes): Move to tex.el. (TeX-LaTeX-sentinel-has-warnings) (TeX-LaTeX-sentinel-has-bad-boxes): New functions. (TeX-LaTeX-sentinel): Check for warnings and bad boxes and inform the user is the respective options are non-nil. (TeX-parse-error): Conditionalize checking for warnings and bad boxes. Find warnings without line numbers as well. (TeX-warning): Doc fix (no need to return nil anymore). Support warnings without line numbers. * tex.el (TeX-toggle-debug-boxes): Do not autoload. (TeX-debug-bad-boxes): Doc fix. (TeX-debug-warnings): New variable. (TeX-toggle-debug-bad-boxes): Moved here from tex-buf.el. (TeX-toggle-debug-warnings): New function. (TeX-mode-map): Define new key bindings for `TeX-toggle-debug-bad-boxes' and `TeX-toggle-debug-warnings'. (TeX-mode-specific-command-menu-entries): Add or change menu entries for `TeX-toggle-debug-bad-boxes' and `TeX-toggle-debug-warnings'. * doc/auctex.texi (Debugging): Document debugging support for warnings and changes of debugging bad boxes. * doc/changes.texi: Advertise debugging support for warnings and changes of debugging bad boxes. * font-latex.el (font-latex-set-syntactic-keywords): Doc fix. Check if LaTeX-specific variables are bound which may be unbound if font-latex is being used in ConTeXt mode. 2005-11-07 Ralf Angeli * tex.el (TeX-insert-backslash): Use regular function call instead of `funcall'. 2005-11-05 Ralf Angeli * tex.el (TeX-electric-sub-and-superscript): New variable. (TeX-insert-sub-or-superscript): New function. (TeX-mode-map): Use `TeX-insert-sub-or-superscript' for `_' and `^' keys. (TeX-insert-backslash): New function. (TeX-mode-map): Use `TeX-insert-backslash' for `\'. (TeX-electric-escape): Adapt doc string. * doc/auctex.texi (Mathematics): Document `TeX-electric-sub-and-superscript'. * doc/changes.texi: Advertise `TeX-electric-sub-and-superscript'. 2005-10-31 Masayuki Ataka * latex.el (LaTeX-fill-move-to-break-point): Do not break lines in the Japanese Macros. Suggested by Ikumi Keita . 2005-10-30 Ralf Angeli * doc/install.texi (Prerequisites): Update information about development version of Emacs for Debian. Update information about development version of Emacs for Mac OS X and Windows. 2005-10-29 Ralf Angeli * style/frenchb.el, style/francais.el: Clean up. 2005-10-28 Ralf Angeli * tex.el (TeX-quote-language-alist, TeX-insert-quote): Support functions as opening and closing quotation marks. * style/frenchb.el: New file. * style/francais.el: New file. * doc/auctex.texi (European): Document support of French. * doc/changes.texi: Advertise support of French. * Makefile.in (STYLESRC): Add style/frenchb.el and style/francais.el. 2005-10-24 Ralf Angeli * doc/install.texi (Configure): Document --with-kpathseasep. * doc/auctex.texi (Commands): Add index entry for PDF mode. * configure.ac (preview_enabled): Export `TEX' in unquoted form. 2005-10-23 David Kastrup * style/babel.el (LaTeX-babel-package-options): Only use 2 argument form of defvaralias in order not to make XEmacs barf. 2005-10-23 Arne Jørgensen * style/amstext.el (LaTeX-amstext-package-option): New variable. * style/amstex.el (LaTeX-amstex-package-options): New variable. * style/amsopn.el (LaTeX-amsopn-package-options): New variable. * style/amsmath.el (LaTeX-amsmath-package-options): New variable. * style/amsbsy.el (LaTeX-amsbsy-package-options): New variable. * style/fancyref.el (LaTeX-fancyref-package-options): New variable. * style/harvard.el: Updated GPL to version 2. Fixed FSF address. (LaTeX-harvard-package-options): New variable. * style/index.el (LaTeX-index-package-options): New variable. * style/listings.el (LaTeX-listings-package-options): New variable. * style/makeidx.el (LaTeX-makeidx-package-options): New variable. * style/mdwlist.el (LaTeX-mdwlist-package-options): New variable. * style/multind.el (LaTeX-multind-package-options): New variable. * style/natbib.el (LaTeX-natbib-package-options): New variable. * style/nicefrac.el (LaTeX-nicefrac-package-options): New variable. * style/paralist.el (LaTeX-paralist-package-options): New variable. * style/units.el (LaTeX-units-package-options): New variable. * style/scrpage2.el (LaTeX-scrpage2-package-options): New variable. 2005-10-21 Reiner Steib * toolbar-x.el (toolbarx-find-image): Fix previous commit. 2005-10-21 Ralf Angeli * tex-mik.el (tex-site): Require 'tex-site no more. * doc/changes.texi: Document removal of 'tex-site requirement from `tex-mik.el'. * configure.ac (packagedir): Quote value of `infodir'. 2005-10-20 David Kastrup * toolbar-x.el: Revert mostly to 2005-05-02 state, but add a fallback to find-image. 2005-10-20 Reiner Steib * toolbar-x.el (toolbarx-find-image): Use image-search-load-path and image-load-path when available. (toolbarx-find-image): Revert previous fix. Instead, rely on find-image whenever possible and don't abuse locate-library. 2005-10-20 Ralf Angeli * font-latex.el (font-latex-make-user-keywords): Append string face in order to make string fontification of ``foo $bar$ baz'' constructs work. 2005-10-19 Arne Jørgensen * latex.el (LaTeX-arg-usepackage): If `LaTeX--package-options' is bound and nil don't ask for package options. * style/verbatim.el (LaTeX-verbatim-package-options): New variable. * style/varioref.el (LaTeX-varioref-package-options): New variable. * style/url.el (LaTeX-url-package-options): New variable. * style/subfigure.el (LaTeX-subfigure-package-options): New variable. * style/inputenc.el (LaTeX-arg-inputenc-inputenc): Doc fix. (LaTeX-inputenc-package-options): Doc fix. * style/dk-bib.el (LaTeX-dk-bib-package-options): Doc fix. * style/captcont.el (LaTeX-captcont-package-options): New variable. * style/booktabs.el (LaTeX-booktabs-package-options): New variable. * style/babel.el: Add doc string to `LaTeX-babel-package-options' and use `defvar' instead of `setq'. * style/alltt.el (LaTeX-alltt-package-options): New variable. 2005-10-13 Reiner Steib * style/dk-bib.el, style/inputenc.el: Add coding cookie. Delete trailing whitespace. Reindent. 2005-10-13 Ralf Angeli * style/dk-bib.el (LaTeX-dk-bib-package-options): Define only once. 2005-10-13 Jan-Ake Larsson * tex-buf.el: Change defcustom group from TeX-commands to TeX-command 2005-10-12 Arne Jørgensen * tex.el: Provide a `TeX-completing-read-multiple' either by defalias'ing `completing-read-multiple' or defining a wrapper around `multi-prompt'. * latex.el (LaTeX-arg-usepackage): New function. Asks about what package to use, loads the AUCTeX style file, and asks about package options (possibly based on definitions in the AUCTeX style file). (LaTeX-common-initialization): Use it. * style/babel.el: Define `LaTeX-babel-package-options' to be a list of languages/options for the babel package. * style/inputenc.el: New file. * style/dk-bib.el: New file. * Makefile.in (STYLESRC): Added style/inputenc.el and style/dk-bib.el. 2005-10-10 Arne Jørgensen * latex.el (LaTeX-auto-regexp-list): Removed spurious characters in variable definition. 2005-10-10 Reiner Steib * doc/auctex.texi (top): Index "tool bar" and "toolbar". Use "tool bar" in the text. * doc/changes.texi: Use "tool bar". * auctex.spec: Install auctex.el and preview-latex.el for SuSE too. Don't use extraconfig. 2005-10-07 Reiner Steib * Makefile.in (tar-ball): Re-add fixed spec file. 2005-10-07 Masayuki Ataka * tex.el (TeX-token-char): New variable. (plain-TeX-auto-regexp-list): Use it. Suggested by Ikumi Keita . * latex.el (LaTeX-auto-regexp-list, BibTeX-auto-regexp-list): Use it. * tex-jp.el (LaTeX-auto-regexp-list, plain-TeX-auto-regexp-list) (BibTeX-auto-regexp-list): Removed. 2005-10-06 Reiner Steib * auctex.spec: Fixes for Fedora. Create site-start.d and add files. 2005-10-02 Ralf Angeli * tex-buf.el (TeX-BibTeX-sentinel): Shorten message in case of errors. * Makefile.in (install-lisp): Use MULESRC instead of MULEELC because a `c' is already being appended by the installation code. * tex-jp.el (japanese-TeX-command-list): Remove obsolete `TeX-run-LaTeX' option. * tex.el (TeX-current-macro): New function. * latex.el (LaTeX-verbatim-macros-with-delims) (LaTeX-verbatim-macros-with-delims-local) (LaTeX-verbatim-macros-with-braces) (LaTeX-verbatim-macros-with-braces-local) (LaTeX-verbatim-environments, LaTeX-verbatim-environments-local): New variables. (LaTeX-verbatim-macro-boundaries, LaTeX-current-verbatim-macro) (LaTeX-verbatim-p, LaTeX-search-forward-comment-start): New functions. (LaTeX-verbatim-macros): Remove. (LaTeX-fill-region-as-para-do): Simplify. (LaTeX-fill-move-to-break-point): Use `LaTeX-verbatim-macros-with-delims'. (LaTeX-fill-paragraph, LaTeX-fill-code-comment): Handle comment starters in verbatim constructs correctly. * font-latex.el (font-latex-verbatim-environments) (font-latex-verbatim-environments-local) (font-latex-verb-like-commands) (font-latex-verb-like-commands-local) (font-latex-verbatim-macros, font-latex-verbatim-macros-local): Remove. (font-latex-set-syntactic-keywords): Use new `LaTeX-verbatim-*' instead of `font-latex-verb*' variables. * doc/auctex.texi (Font Locking): Document change of verbatim-related variables. * doc/changes.texi: Document change of verbatim-related variables. * style/alltt.el ("alltt"): Use new variables for verbatim constructs. * style/listings.el ("listings"): Use new variables for verbatim constructs. * style/url.el ("url"): Use new variables for verbatim constructs. * latex.el (LaTeX-insert-environment): Mostly rewritten. Improve handling of macrocode environments. 2005-10-02 Christian Schlauer * tex-buf.el (TeX-BibTeX-sentinel): Check whether BibTeX reports any warnings or errors. * doc/changes.texi: Mention it. 2005-10-02 Ralf Angeli * texmathp.el (texmathp-match-environment): Make aware of comments. 2005-09-29 Masayuki Ataka * doc/install.texi (Customizing): Removed "Contributed files" section. Suggested by Ikumi Keita . 2005-09-29 Ikumi Keita * texmathp.el (texmathp-tex-commands-default): Remove "xxalignat*" and add "boxed". 2005-09-27 Reiner Steib * auctex.spec: Add files in %{_datadir}/emacs/site-lisp. Suggested by Jan-Ake Larsson. Added startfiles. Exclude %{_infodir}/dir. 2005-09-27 Ralf Angeli * configure.ac: Document option for specifying AUCTeX startfile as --with-auctexstartfile, not --with-auctex-startfile which does not work. Note that changing the internal name from `auctexstartfile' to `auctex-startfile' is not an option because of the `-' in the name which gives the shell headaches. * auctex.spec: Adapt to --with-auctexstartfile and --with-preview-startfile. * doc/install.texi (Configure): Document change from --with-auctex-startfile to --with-auctex-startfile and --with-preview-startfile to --with-previewstartfile. 2005-09-26 Reiner Steib * auctex.spec: Bump version number. Remove install-contrib, use install-docs. Don't install preview/* because these are not generated. 2005-09-25 Ralf Angeli * Makefile.in (tar-ball): Don't create WWW directory and don't copy HTML files. (www-doc): New target. 2005-09-25 David Kastrup * Version 11.81 released. 2005-09-25 Ralf Angeli * RELEASE, configure.ac, font-latex.el, doc/auctex.texi, doc/changes.texi, doc/preview-latex.texi, doc preview-readme.texi, doc/tex-ref.texi, doc/todo.texi: Bump version number. * Makefile.in (DISTCLEANFILES): Add tex-site.el.out. 2005-09-24 Ralf Angeli * Makefile.in (tar-ball): Remove dysfunctional spec file from distribution. (full-release): Disable RPM creation. * doc/auctex.texi: Bump version number. * configure.ac: Bump version number. 2005-09-24 David Kastrup * doc/install.texi (Advice for package providers): Suggest "anytex" instead of "notex" for without-texmf compilations. 2005-09-23 Reiner Steib * tex-site.el.in (TeX-modes-set): Add custom group. 2005-09-19 Ralf Angeli * tex.el (TeX-auto-parse-length, TeX-auto-x-parse-length) (TeX-auto-x-regexp-list): Doc fix. 2005-09-17 Ralf Angeli * texmathp.el (texmathp-tex-commands-default): Add "minipage" as `env-off' and "\framebox" as `arg-off'. 2005-09-13 Ralf Angeli * RELEASE: Update for upcoming release. * doc/changes.texi: Mention `font-latex-slide-title-face' and `font-latex-match-slide-title-keywords'. * doc/auctex.texi (Font Locking): Document `font-latex-slide-title-face' and `font-latex-match-slide-title-keywords'. 2005-09-10 Ralf Angeli * font-latex.el (font-latex-make-match-defun): Fontify only if `font-latex-match-*-keywords' and `font-latex-match-*-keywords-local' are non-empty. (font-latex-make-match-defun): Revert. (font-latex-make-built-in-keywords): Do not set `font-latex-match-*' if there are no keywords. (Nicer solution than the original change in `font-latex-make-match-defun'.) 2005-09-08 Ralf Angeli * font-latex.el (font-latex-built-in-keyword-classes): New `slide-title' class. (font-latex-slide-title-face): New face. Specify :size for XEmacs. * style/beamer.el ("beamer"): Fontify \frametitle with `font-latex-slide-title-face'. 2005-09-05 Ralf Angeli * tex-buf.el (TeX-command): Doc fix. 2005-09-02 Ralf Angeli * texmathp.el (texmathp-tex-commands-default): Add "\textrm" as `arg-off'. 2005-08-30 Ralf Angeli * tex.el (TeX-font-replace-macro): Compute syntax table. 2005-08-26 Ralf Angeli * latex.el (LaTeX-common-initialization): Remove redundant call to `make-local-variable' for `outline-heading-alist'. Set `outline-heading-alist' only if it is already defined. 2005-08-26 Matthieu Moy (tiny change) * latex.el (LaTeX-common-initialization): Set `outline-heading-alist'. 2005-08-24 Ralf Angeli * latex.el (LaTeX-mark-section): Now marks subsections as well. Former behavior is available via prefix argument. * doc/changes.texi: Mention change of `LaTeX-mark-section'. 2005-08-23 Ralf Angeli * font-latex.el (font-latex-script): Return face symbols, not names of non-existent variables. * tex.el (TeX-font-replace-macro): Do not use `TeX-find-macro-end' for it may look too far in cases like "\emph{foo}{}". Use `forward-sexp' with a stripped syntax table instead. 2005-08-19 Ralf Angeli * doc/wininstall.texi: New "In a Nutshell" section. 2005-08-18 Ralf Angeli * configure.ac: Quotify `packagelispdir' and `packagedatadir'. (preview_enabled): Export unquoted variables. Declare/initialize and export variables separately. * Makefile.in (DESCEND): Quote $$OLDPWD. 2005-08-17 Ralf Angeli * doc/auctex.texi (Adding Macros): Remove superfluous entry for `TeX-arg-file' and correct entry for `TeX-arg-input-file'. * latex.el (TeX-arg-input-file): Doc fix. * tex.el (TeX-command-list): Remove `TeX-run-LaTeX'. Add `TeX-run-ispell-on-document' in order to prevent mismatch in customization buffer. 2005-08-05 David Kastrup * font-latex.el (font-latex-doctex-preprocessor-face): Remove `list' from already quoted list. 2005-08-02 Ralf Angeli * tex-fold.el (TeX-fold-region): In case of single-char non-letter macros there does not have to be checked for a partial match. This allows for folding of stuff like \,. 2005-08-01 Berend de Boer * context-en.el (ConTeXt-setup-list-en): typo fixed. 2005-07-21 Ralf Angeli * font-latex.el (font-latex-set-syntactic-keywords): Set and update `font-latex-doctex-syntactic-keywords' here. (font-latex-doctex-syntactic-keywords): Default to nil. * doc/auctex.texi (Japanese): Remove references to contrib make targets. Minor clean-ups. * aclocal.m4 (library): Replace COMPILE_MULE and CONTRIB_MULEELC with MULESRC and MULEELC. * Makefile.in (CONTRIB, CONTRIBELC, CONTRIB_MULE, COMPILE_MULE) (CONTRIB_MULEELC): Remove. (MULESRC, MULEELC): New variables. (AUCSRC): Add bib-cite.el and tex-fptex.el. (CLEANFILES): Remove CONTRIBELC and CONTRIB_MULEELC. Use MULEELC instead. (.PHONY): Remove contrib, install-contrib and install-contrib-el targets. (lisp): Depend on STYLESRC and MULESRC. Compile MULESRC as well. (auto-loads.el): Use MULESRC. (contrib, install-contrib-el, install-contrib): Remove. (install-el): Install MULESRC. (install-lisp): Install MULEELC. * style/csquotes.el: Bring up to par with csquotes 3.0. (LaTeX-csquotes-insert-environment): New function. 2005-07-15 David Kastrup * doc/preview-todo.texi: Mention that preview.dtx is not a showpiece for AUCTeX. 2005-07-15 Ralf Angeli * tex.el (TeX-run-style-hooks): Adjust `default-directory' to match the directory of the style. 2005-07-14 David Kastrup * doc/install.texi (Configure): explain about --without-packagedir. (Advice for package providers): Same here. * aclocal.m4 (EMACS_PATH_LISPDIR): Allow packagedir=no with XEmacs. * configure.ac: protect against packagedir starting with `-' 2005-07-12 Ralf Angeli * font-latex.el (font-latex-match-math-envII): Match environment begin and end with whitespace between macro and argument as well. * doc/install.texi (Configure): Add `file' macro. * texmathp.el (texmathp-match-environment): Match environment begin and end with whitespace between macro and argument as well. 2005-07-12 David Kastrup * doc/wininstall.texi: * doc/install.texi (Configure): Explain prefix a bit more. * doc/Makefile.in (install-man): include tex-ref.tex. 2005-07-08 Ralf Angeli * tex.el (TeX-insert-quote): Do not inhibit special quote insertion in docTeX documentation parts. * font-latex.el (font-latex-match-command-with-arguments) (font-latex-match-command-in-braces): Remove call to `font-latex-commented-outp'. (font-latex-match-quotation): Do not consider matches in comments or verbatim-like constructs. Fix typo. 2005-07-07 Ralf Angeli * latex.el (LaTeX-fill-move-to-break-point): Make non-MULE XEmacsen happy. (LaTeX-fill-paragraph): Don't treat trailing comment starters as code comments. * font-latex.el (font-latex-match-quotation): Always use multibyte strings for comparison. * doc/auctex.texi (top): Make the summary notes appear as "Executive Summary" in printed output. * doc/intro.texi: Main heading in rawtext case should not be numbered. Main heading in printed output has to be chapter, not section, in order to fit into the rest of the sectioning hierarchy. (Introduction): Add two intermediate headings in order to make the structure clearer. * doc/.cvsignore: Add auto directory. 2005-07-06 David Kastrup * doc/tex-ref.tex: Rearrange and add information for preview-latex. 2005-07-05 David Kastrup * doc/preview-latex.texi (Simple customization): Document new option `preview-preserve-counters'. * doc/auctex.texi (top): Mention RefTeX, `LaTeX-install-toolbar' and preview-latex. 2005-07-01 Ralf Angeli * tex.el (TeX-submit-bug-report): Mention FAQ section. * doc/changes.texi: Advertise inclusion of preview-latex and overhaul of installation procedures. * doc/install.texi (Advice for package providers): Refer to preview-latex.el file. * doc/quickstart.texi (Quick Start): Use (load "auctex.el" nil t t) instead of (require 'tex-site). * doc/faq.texi: Use (load "auctex.el" nil t t) instead of (require 'tex-site). * doc/intro.texi (Introduction): Use (load "auctex.el" nil t t) instead of (require 'tex-site). 2005-06-30 Ralf Angeli * doc/auctex.texi (Folding): Do not quote `lambda' function. 2005-06-29 Ralf Angeli * font-latex.el (font-latex-quotes): Get rid of :set function and move most of its content to `font-latex-match-quotation'. (font-latex-quotes-control): New variable. Initialize with nil. (font-latex-match-quotation): Use it. The whole changeset lets quote matching recognize automatically when the value of `font-latex-quotes' changed while making sure that the regexp only has to be rebuilt when a change actually occured. * doc/todo.texi (Mid-term Goals): Update text about integration of preview-latex. * doc/auctex.texi (Floats): Clarify use of `LaTeX-top-caption-list'. (Display, Internationalization): Make node and heading clearer. (European): Describe insertion of multiple consecutive hyphens. 2005-06-24 David Kastrup * RELEASE: Minor change. * configure.ac: Move checks and export for PERL here (needed for doc of preview-latex). (preview_enabled): Don't export Info-related variables, as they are not needed in preview. * Makefile.in (AUCTEXVERSION): import. (info, dvi): No subshell needed. (auctex.el): Depend on config.status (install-metadata): pass upstream version into prv-install.el 2005-06-21 Ralf Angeli * tex-info.el (TeX-texinfo-mode): Use `TeX-run-mode-hooks'. * latex.el (TeX-latex-mode): Use `TeX-run-mode-hooks'. * context.el (ConTeXt-mode-common-initialization): Use `TeX-run-mode-hooks'. * configure.ac: Make info about configuration clearer (in connection with the message for preview-latex). * tex.el (TeX-master-file): `TeX-default-extension' is a variable, not a function. (TeX-run-mode-hooks): New function. (TeX-plain-tex-mode, ams-tex-mode): Use it. 2005-06-21 David Kastrup * Makefile.in (xemacs-package): reorder args. * configure.ac: disable INSTALL_INFO for XEmacs package. * doc/Makefile.in (install-man): Use $$i instead of $i. 2005-06-20 David Kastrup * doc/install.texi (Advice for package providers): Propose package structure. * doc/Makefile.in (install-man): Install sources for texinfo files. (.PHONY): Add install-man. * Makefile.in (.PHONY): Add install-man and xemacs-package (install-man): Just descend into doc directory. (xemacs-package): Try building some XEmacs package. * autogen.sh: Don't run distclean, that seems unexpected. * RELEASE: Further fold in stuff from preview/RELEASE which is now deleted. 2005-06-20 Ralf Angeli * font-latex.el (font-latex-superscript-face) (font-latex-subscript-face): Add to correct customization group. (font-latex-match-command-with-arguments) (font-latex-match-command-in-braces, font-latex-match-math-env): Don't set a dummy match. Remove unnecessary throw..catch clauses. 2005-06-18 David Kastrup * RELEASE: Well, the merge with preview-latex is no longer "planned". 2005-06-16 Ralf Angeli * doc/preview-faq.texi (Requirements): Denastify. * tex.el (TeX-master-file): Don't override existing master with `TeX-transient-master'. * tex-style.el (LaTeX-includegraphics-read-file): Doc fix. 2005-06-15 Ralf Angeli * doc/install.texi (Prerequisites): Denastify. * doc/auctex.texi (Font Locking): Fix typo. * configure.ac: Use correct variable for --disable-preview switch. 2005-06-15 Masayuki Ataka * Makefile.in (auto-loads.el): Auto-load COMPILE_MULE, too. 2005-06-14 Ralf Angeli * RELEASE: Update stuff about fixed bugs and new features. 2005-06-14 David Kastrup * doc/wininstall.texi: Spell out file names more explicitly. Remove any hint of a version that might lead Windows users to assume this documentation is for some reason more outdated than year-old stuff they find via Google. * Makefile.in (install-docs): Make exit status of test bad-shell safe. 2005-06-14 Ralf Angeli * Makefile.in (all): Do not depend on `docs' target. (.PHONY): Remove `docs'. Add `info' and `dvi'. (docs): Remove. (info, dvi): New targets. (tar-ball): Make sure `dist' stuff is up-to-date. Revert, as it is superfluous. * doc/Makefile.in (dist): Correct file name for preview-latex.info. (info, dvi): New targets. (.PHONY): Add them and remove `auctex' and `preview'. (auctex, preview): Remove. 2005-06-14 David Kastrup * RELEASE: Adapt RELEASE notes to include preview-latex info. * README.CVS: Adapt to reality. * doc/Makefile.in (all): Same as dist. (dist): Just create DISTTEXTS and info files. (extradist): Additional stuff for ftp site. (disttexts): Remove target. (clean): Don't remove info files. (maintainer-clean): Remove info files. * autogen.sh: Add error messages, run autoconf in preview subdirectory. Heed MAKE variable if set. * Makefile.in (CVSFILES): Define files not to use in tarball. (tar-ball): Remove them. (tar-ball): Make extradist for additional doc files on ftp. 2005-06-12 Ralf Angeli * tex-buf.el (TeX-ispell-document): Cater for the case where the master file is located in a different directory. (TeX-run-ispell-on-document, TeX-ispell-document): Doc fix. 2005-06-11 Ralf Angeli * tex.el (TeX-master-file): Check `TeX-transient-master' not only in the shared case. * tex-buf.el (TeX-region-create): Let-bind `TeX-transient-master'. 2005-06-10 Ralf Angeli * doc/auctex.texi (Parsing Files): Fix display of reference. Get rid of references to \documentstyle. (Simple Style, Adding Macros, Adding Environments) (Hacking the Parser): Clean up code examples. * tex.el (TeX-master-file-ask): Get rid of "" string as default for `read-file-name'. Fixes unresponsiveness of Emacs on Windows and fallback to minibuffer if file is opened via menu and prevents file history from being cluttered. Use relative file name for master file. (TeX-master-file): Get rid of "this file" string as default for `read-file-name'. 2005-06-09 Ralf Angeli * tex-fold.el (TeX-fold-ellipsis): New variable. (TeX-fold-hide-item): Use it. * Makefile.in (DESCEND): Make MSYS happy if $(subdirs) is null, e.g. when --disable-preview is used. Make the change more safe with regard to the exit code. 2005-06-09 David Kastrup * doc/wininstall.texi: Change line endings blurb. Write drive: everywhere in the example strings. * doc/preview-readme.texi (Introduction): Some cosmetic changes to account for the merge. * mkinstalldirs: * install-sh: Replace `#/bin/sh' with `:' as this should be more portable when called from a Bourne shell (which is what the Makefiles do). 2005-06-08 David Kastrup * doc/preview-dtxdoc.pl: Replicate possible CR line endings faithfully, and don't use multiline strings. 2005-06-08 Ralf Angeli * doc/.cvsignore: Ignore all *.info, *.info-*, and *.pgs files. * Makefile.in (preview_enabled): New variable. (all): Depend on `docs' target. (.PHONY): Add `docs' target. (docs): New target. (install): Depend on `install-docs' instead of `install-info'. (install-info): Remove. (install-docs): New target. * autogen.sh: Generate preview-latex docs as well. * configure.ac: Substitute preview_enabled variable in output files. * doc/.cvsignore: Add relevant preview-latex files. * doc/Makefile.in (TEXIFILES): Rename to AUCTEXTEXIFILES. (PERL, PREVIEWTEXIFILES): New variables. (all): Now depends on `auctex' and `preview' targets. Move AUCTeX-specific targets from original to `auctex'. (install): Now depends on `install-auctex' and `install-preview' targets. Move AUCTeX-specific targets and content from original to `install-auctex'. (.PHONY): Add `auctex', `preview', `install-auctex', and `install-preview'. (auctex, install-auctex, preview, install-preview): New targets. (auctex.dvi, auctex.pdf, auctex.info): Depend on $(AUCTEXTEXIFILES) instead of $(TEXIFILES). (preview-latex/index.html, html-docs, preview-dtxdoc.texi) (preview-latex.dvi, preview-latex.ps, preview-latex.pdf) (preview-latex.info, ../PROBLEMS): New targets (from preview/doc/Makefile.in). (../README, ../TODO, ../FAQ): Create output combined from respective AUCTeX and preview-latex files. (clean, maintainer-clean): Cater for preview-latex files. * doc/todo.texi (Development): More specific heading for plain text output. * doc/preview-todo.texi: Move here from preview/doc/todo.texi. * doc/preview-readme.texi: Move here from preview/doc/readme.texi. * doc/preview-problems.texi: Move here from preview/doc/problems.texi. * doc/preview-faq.texi: Moved here from preview/doc/faq.texi. * doc/copying.texi, doc/preview-dtxdoc.pl, doc/preview-latex.texi: Moved here from preview/doc/. 2005-06-07 David Kastrup * tex.el (TeX-regexp-group-count): New function. (TeX-auto-parse-region): Rewrite to use hashes and to save overuse of `looking-at'. We really should keep the relevant information complete in hashes instead of moving them forward and back between hashes and lists, but at least this change removes most of the really evil quadratic behavior while keeping the original API. Yet. 2005-06-07 Ralf Angeli * font-latex.el (font-latex-fontify-sectioning): Doc fix. * doc/auctex.texi (Font Locking): Document the nature of the `color' option for `font-latex-fontify-sectioning'. 2005-06-06 David Kastrup * configure.ac: Remove call of MAKEINFO_CHECK_MACROS: we expect a recent enough makeinfo version if you want to bootstrap, anyway. 2005-06-06 Ralf Angeli * tex-bar.el (TeX-bar-LaTeX-button-alist) (menu-strings-buttons-alist): help-echo functions are called with arguments. 2005-06-06 David Kastrup * doc/Makefile.in (TEXINFOINCLUDES): Remove. (MAKEINFO_MACROS): Remove. * tex-buf.el (TeX-format-filter): Don't let match-data generate markers. This is a terrible performance hog! (TeX-format-filter): Actually, we don't need to save any match-data inside of a filter function with current versions of Emacs and XEmacs. 2005-06-05 Ralf Angeli * style/scrbase.el, style/scrbook.el, style/scrreprt.el: Use `sectioning' instead of `title' for sectioning fontification. * doc/changes.texi: Mention change of `title' to `sectioning' for keyword variables. * font-latex.el (font-latex-fontify-sectioning) (font-latex-built-in-keyword-classes) (font-latex-keyword-matcher): Use `sectioning' instead of `title'. (font-latex-deactivated-keyword-classes): New variable. Don't do extra quoting. (font-latex-make-built-in-keywords): Remove unnecessary `let'. Check `font-latex-deactivated-keyword-classes' in generated `font-latex-match-*-make' functions. * tex.el (TeX-quote-language-alist): Do not use `alist' widget because XEmacs 21.4 does not provide it. Do not use a cons cell for opening and closing quotation marks in order to simplify structure. (TeX-quote-language): Describe structure as in `TeX-quote-language-alist'. (TeX-insert-quote): Adapt to new structure of `TeX-quote-language' and `TeX-quote-language-alist'. * doc/auctex.texi (European): Describe new structure of `TeX-quote-language-alist'. (Font Locking): Use `sectioning' instead of `title'. Describe deactivation of built-in keyword classes. * style/csquotes.el, style/czech.el, style/danish.el, style/german.el, style/italian.el, style/ngerman.el, style/slovak.el, style/swedish.el: Reflect new structure of `TeX-quote-language'. 2005-06-04 David Kastrup * doc/Makefile.in (TEXINFOINCLUDES): macros.texi has moved here from ../preview/doc (../INSTALL, ../INSTALL.windows, ../README, ../CHANGES, ../TODO) (../FAQ): Change dependencies accordingly. * configure.ac: Rearrange checks for MAKEINFO. Export more stuff into preview's configure. Maybe this is better done with use of caches? * autogen.sh: Don't look in preview subdirectory. * Makefile.in (configure): Depend on local aclocal.m4 2005-06-03 David Kastrup * doc/Makefile.in (TEXINFOINCLUDES, TEXIFILES, ../INSTALL) (../INSTALL.windows, ../README, ../CHANGES, ../TODO, ../FAQ): Move ../preview/doc/macros.texi to here again. 2005-06-02 Ralf Angeli * tex.el (VirTeX-common-initialization): Explicitely make `find-file-hooks' buffer-local in XEmacs 21.4 which fails to do this via `add-hook'. 2005-06-01 Ralf Angeli * latex.el (LaTeX-backward-paragraph): Use catch..throw instead of an indicator variable. Don't refer to a saved match data. Check for `TeX-esc', not specific char. * style/babel.el ("babel"): Disable font locking of macros not handled correctly. 2005-05-30 Ralf Angeli * style/babel.el: New file. * Makefile.in: Add style/babel.el. * doc/changes.texi: Mention babel support. 2005-05-28 Ralf Angeli * tex-buf.el (TeX-next-error): Call `next-error' as fallback. (TeX-previous-error): New function. * tex.el (TeX-mode-map): Remap bindings of `next-error' and `previous-error' to `TeX-next-error' and `TeX-previous-error' respectively. 2005-05-24 Ralf Angeli * tex.el (TeX-command-list): Remove chktex comment. * doc/auctex.texi (Checking): A user should not (have to) edit tex.el to switch from lacheck to chktex. * font-latex.el (font-latex-make-match-defun) (font-latex-make-built-in-keywords): Do not byte-compile generated functions here but at the end of font-latex.el. Prevents byte-compiler warnings due to possibly undefined functions. 2005-05-24 David Kastrup * configure.ac: Recurse into preview _before_ starting any AC_SHELL_QUOTIFY business to avoid double quoting. * doc/tex-ref.tex (\title{RefTeX (long)}) (\title{RefTeX (short)}): New columns. One will have to go. 2005-05-22 David Kastrup * tex.el (TeX-PDF-mode): Use the standard minor mode function instead of redefining it. (TeX-PDF-mode-parsed): New function replacing the previous extra functionality in `TeX-PDF-mode'. (TeX-PDF-mode-on, TeX-PDF-mode-off): Warn in docstring. Use `TeX-PDF-mode-parsed'. 2005-05-21 Ralf Angeli * doc/install.texi, doc/wininstall.texi: Small corrections. * tex-bar.el (TeX-bar-LaTeX-button-alist): Reenable mode-specific images for View button. (LaTeX-install-toolbar): Add `toolbarx-refresh' to `TeX-PDF-mode-hook'. * tex.el (TeX-PDF-mode): Run `TeX-PDF-mode-hook'. 2005-05-21 David Kastrup * autogen.sh: Remove argument to preview/autogen.sh * doc/install.texi: Integrate the installation instructions for preview-latex. 2005-05-20 David Kastrup * doc/tex-ref.tex (section{Greek Letters}): Add \Xi. 2005-05-18 Ikumi Keita * style/amsmath.el (LaTeX-label-alist): Add "multline" environment. * Makefile.in: * configure.ac: * preview/Makefile.in: Change "==" to "=" in the argument of "test" for Bourne shell compatibility. 2005-05-19 David Kastrup * doc/wininstall.texi: Rearrange to make suitable for standalone installation including preview-latex. Adapt to a few changes (like tex-fptex and tex-mik not being in load-path by default). 2005-05-19 Ralf Angeli * tex-site.el.in (tex-site-unload-hook, TeX-modes): Do not use `dolist'. Prevents console pop-ups with XEmacsen on Windows. * latex.el (LaTeX-fill-move-to-break-point): Check for `charset-after' to make non-MULE XEmacsen happy. Some reformatting. 2005-05-18 David Kastrup * latex.el (LaTeX-math-default): Add Xi (reported by Uli Fahrenberg). 2005-05-17 David Kastrup * Makefile.in (EXTRAFILES): remove. No longer needed. (auto-loads.el): Undo previous change. Properly group statements. (install-el): Rewrite condition for some non-Posix shells. (install-metadata): Rewrite condition for non-Posix. (tar-ball): Change owner and group to root. This is not portable, but will be needed only by the maintainers, anyway. (auto-loads.el): ignore errors also for braindead make. (install-metadata): Same here. (clean): Burp if cd doc fails. (distclean): Same here. (tar-ball): rewrite for braindead shells. (tar-ball): make sure doc exists. Why do I bother, actually, the tarball target is not for public consumption, anyway. 2005-05-17 Ralf Angeli * Makefile.in (auto-loads.el): Don't stop on non-zero exit code. 2005-05-16 Ralf Angeli * tex.el (TeX-transient-master): New variable. (TeX-master-file): Use it. * tex-buf.el (TeX-command-sentinel): Bind `TeX-transient-master'. 2005-05-14 Ralf Angeli * latex.el (LaTeX-babel-hyphen): Doc fix. (LaTeX-common-initialization): Call `easy-menu-add' as late as possible. 2005-05-15 Ikumi Keita * Makefile.in (CLEANFILES): Add $(CONTRIBELC) and $(CONTRIB_MULEELC). (DISTCLEANFILES): Add auctex.el and auto-loads.el. (auto-loads.el): Add $(COMPILE_MULE) 2005-05-14 Ikumi Keita * style/amsopn.el: * style/amsmath.el: Move "mode"-like entries from amsopn.el to amsmath.el. * style/amsmath.el: Edit entries in TeX-add-symbols. Remove duplicate entry "raisetag". Add some new entries. Make arrow macros like "overleftarrows" to take argument. Remove accents macros like "Hat" because they are obsolate in amsmath v2. (LaTeX-item-list): Add "multline*", "matrix", "pmatrix", "bmatrix", "Bmatrix", "vmatrix" and "Vmatrix" environment. (LaTeX-label-alist): Remove "aligned" environment. * tex-style.el (LaTeX-amsmath-label): Fix doc. * latex.el: (LaTeX-math-default): Remove duplicate entry "nabla". Remove AMS Accents like "Hat" because they are obsolate in amsmath v2. (LaTeX-babel-hyphen): Fix doc. (LaTeX-common-initialization): Edit some entries in TeX-add-symbols. 2005-05-13 Ralf Angeli * doc/changes.texi: Small corrections. 2005-05-12 Ralf Angeli * tex-fold.el (TeX-fold-make-overlay): Calculate priority before the overlay is instantiated. * font-latex.el (font-latex-match-command-with-arguments): Make XEmacs happy. * latex.el (LaTeX-fill-newline-hook): New hook. (LaTeX-fill-newline): Use it. * tex-fold.el (TeX-fold-keymap): Remove deprecated key bindings. (TeX-fold-region, TeX-fold-item): Use `TeX-fold-item-end'. Do not compute display string (now done in `TeX-fold-hide-item'). (TeX-fold-make-overlay): Do not mess with display string anymore. Thereby remove it from list of function arguments. (TeX-fold-item-end, TeX-fold-overfull-p) (TeX-fold-update-at-point): New functions. (TeX-fold-buffer-substring): Get 'display property instead of 'TeX-fold-display-string which is not used anymore. (TeX-fold-hide-item): Computation of display string and faces as well as provisions for overfull lines are done only in this function now. The 'display property is now set for XEmacs as well. (TeX-fold-mode): Add and remove `TeX-fold-update-at-point' to `LaTeX-fill-newline-hook' respectively. * tex.el (TeX-overlay-prioritize): Fix oversight in XEmacs version of the function. 2005-05-11 Reiner Steib * Makefile.in (tar-ball): Allow YYYYMMDD-a TAG for snapshots. 2005-05-11 Ralf Angeli * font-latex.el (font-latex-set-syntactic-keywords): Don't freak out if there is whitespace in front of the \begin/\end pair of verbatim and verbatim-like environments. * latex.el (LaTeX-auto-cleanup): Discard only options which actually include a "=". * Makefile.in: Whitespace cleanup. * tex.el (TeX-overlay-prioritize): Fix calculation of priority for in-between overlay. (TeX-insert-quote): Insert TeX quote if point is just before math, comment, or verbatim content. 2005-05-11 David Kastrup * doc/Makefile.in (TEXINFOINCLUDES): Add directory modifier TEXIPWD. This is ugly. (html/auctex_toc.html): Use it. * Makefile.in (tar-ball): Make tar-ball from exporting, and allow for TAG being a date specification. (full-release): Omit release tag check. 2005-05-10 Ralf Angeli * font-latex.el (font-latex-forward-comment): New function. Prevent infinite loops and repair regexp. Simplify. Code mainly by David Kastrup. (font-latex-match-command-with-arguments): Use it. Set fontification start of optional argument to opening bracket. Apply restriction of region more globally. Fix handling of multiple optional arguments. Break if the end of the first mandatory argument could not be found. 2005-05-09 Ralf Angeli * tex.el (TeX-normal-mode): Ask for master file in 'shared case. * font-latex.el (font-latex-built-in-keyword-classes): Doc fix (typo). (font-latex-match-command-with-arguments): Set macro end before any comments. Do not move forward over comments if point is over the limit. 2005-05-09 David Kastrup * doc/Makefile.in (dist): Use DISTTEXTS instead of explicit list in this directory. 2005-05-07 Ralf Angeli * tex.el (VirTeX-common-initialization): Remove Emacs 20 compatibility code. Call `TeX-master-file' during load of shared files as well. 2005-05-06 Reiner Steib * Makefile.in (DOCFILES): Remove macros.texi to make "tar-ball" work again. 2005-05-06 David Kastrup * tex.el (TeX-load-style): Fix typo `expand-filename'. 2005-05-06 Ralf Angeli * tex.el (TeX-local-master-p): Limit search. * doc/Makefile.in (TEXINFOINCLUDES): New variable used for file inclusion with makeinfo, texi2dvi and texi2pdf. (MAKEINFOINC): Remove. * doc/intro.texi (Introduction): Make package activation clearer. 2005-05-05 Ralf Angeli * doc/intro.texi (Introduction): Be consistent with the display of commands in the rest of the manual. * tex-fold.el (TeX-fold-mode): Improve doc string and add its first line to the autoload form. 2005-05-04 David Kastrup * tex-fold.el (TeX-fold-mode): Change autoload cookie because of XEmacs. 2005-05-03 David Kastrup * auctex.spec: First attempt 2005-05-02 David Kastrup * doc/install.texi: * doc/intro.texi: * doc/wininstall.texi: overhaul. * autogen.sh: adapt to auto.texi scheme. * toolbar-x.el (toolbarx-install-toolbar): Remove overlong doc string from autoload. * tex-site.el.in (tex-site-unload-hook): Define to remove the after-load hooks and load-path entry. (TeX-modes-set): Use defalias instead of fset to allow unloading. * README.CVS: Change instructions. 2005-05-02 David Kastrup * bib-cite.el: Revert 2005-04-19 change: autoloads are not extracted from CONTRIB packages. 2005-05-02 David Kastrup * Makefile.in (tex-site.el.out, auctex.el, configure) (Makefile, config.status): Add targets to get reconfiguration if necessary. * style/url.el: * style/ltx-base.el: * style/units.el: * style/alltt.el: * style/alphanum.el: * style/jura.el: * style/emp.el: * style/doc.el: * style/slides.el: * style/csquotes.el: * style/listings.el: * style/nicefrac.el: * style/ltxdoc.el: * style/jurabib.el: * style/mdwlist.el: * style/amstex.el: Change maintainer address. * doc/intro.texi (Introduction): Changes, cleanup, corrections. 2005-05-01 David Kastrup * doc/install.texi (Prerequisites): Shorten. (Prerequisites): Mention that one can survive without texinfo. (Configure): Add prefix information. (Configure): Sync with preview-latex docs. Mention the disable-preview option and preview-specific options. * configure.ac: Don't use have-preview macro. Conflicts with the idea of pregenerated docs. 2005-05-01 Ralf Angeli * font-latex.el (font-latex-make-match-defun) (font-latex-make-built-in-keywords): Byte-compile generated functions. * Makefile.in (clean, distclean): Descend. 2005-05-01 David Kastrup * tex.el (TeX-load-style): Properly expand file names, and fix a terrible order-of-arguments bug. * configure.ac: fix syntax error with MAKEINFO_MACROS * tex-site.el.in (TeX-mode-alist): Use correct file name for texinfo-mode. * Makefile.in (AUCSRC): Move tex-style.el before latex.el * configure.ac: Add have-preview to macros if we have preview enabled. * doc/Makefile.in (MAKEINFOINC): Use macros.texi in preview/doc directory. (auctex.dvi, auctex.pdf, auctex.info, ../INSTALL) (../INSTALL.windows, ../README, ../CHANGES, ../TODO, ../FAQ): Use MAKEINFOINC * doc/macros.texi: Remove in lieu of version in preview/doc. * doc/intro.texi (Introduction): Reorganize, use more of rawfile. Mention preview-latex. * tex-buf.el: * tex-fold.el: * tex-font.el: * tex-fptex.el: * tex-info.el: * tex-mik.el: Change maintainer to auctex-devel@gnu.org 2005-04-30 David Kastrup * Makefile.in (install-metadata): Correct version number. (DESCEND): different quoting. (install): Same here. (install-metadata): Don't depend on some exit values. * configure.ac: substitute auctexstartfile. Export auctexdir as `..'. If installing info into XEmacs package, disable install-info. If makeinfo is disabled, don't check for macros. * Makefile.in (auctexstartfile): autoconf variable. (subdirs): autoconf variable. (PACKAGE, PACKAGE_INFO): macros. (DESCEND): For rebuilding stuff and installing. (all): descend. (tex-site.el): don't include autoloads when XEmacs. (install): descend. (install-startup): new target (install-el): don't install tex-site on XEmacs. (install-el): don't fail on .nosearch not installed. (install-metadata): new target for XEmacs. 2005-04-29 Ralf Angeli * tex.el: Remove `TeX-doc' for `ams-tex-mode'. 2005-04-29 David Kastrup * auctex.el.in: * context.el: * latex.el: * tex-jp.el: * tex-site.el.in: * tex.el: * tex-info.el: Remove TeX-doc. * tex-info.el (Texinfo-mode): Fix type in alias. * tex-site.el.in (tex-site): Provides are added by Makefile. Remove them here. * configure.ac: Generate tex-site.el.out instead of tex-site.el. * Makefile.in (AUTOLOAD): New form for autoloads from rest of line. (all): Make depend on tex-site.el (lisp): Depend on tex-site.el (tex-site.el, auto-loads.el): New targets. 2005-04-28 Reiner Steib * tex-site.el.in (TeX-mode-alist): Exchange value and doc string. (TeX-modes-set): Check if mode is fbound. * doc/changes.texi: Mention changes in sectioning fontification. * doc/auctex.texi (Font Locking): Adjust to new sectioning fontification. * font-latex.el: Rename most *-title* stuff to *-sectioning*. Old names: font-latex-title-%s-face, font-latex-title-fontify, font-latex-update-title-faces, font-latex-make-title-faces font-latex-title-max. New names: font-latex-sectioning-%s-face, font-latex-fontify-sectioning, font-latex-update-sectioning-faces, font-latex-make-sectioning-faces, font-latex-sectioning-max. (font-latex-fontify-sectioning): Fix typos in doc string. 2005-04-28 Ralf Angeli * doc/auctex.texi (Development): New name replacing "ToDo". * doc/faq.texi, doc/todo.texi: Fix for raw output. 2005-04-28 David Kastrup * tex-site.el.in (TeX-doc): Use AUCTeX-version. * configure.ac: fiddle with relative paths. * Makefile.in: several changes to buld structure. * auctex.el.in (TeX-doc): Startup file source. * doc/wininstall.texi: * doc/intro.texi: * doc/install.texi: * doc/faq.texi: * doc/changes.texi: Make the stuff compile cleanly. * doc/Makefile.in (DISTTEXTS): list plain text files in parent dir. (.PHONY): everything needed here. (auctex.info): don't ignore errors. (../INSTALL, ../INSTALL.windows, ../README, ../CHANGES) (../TODO, ../FAQ, disttexts): New targets. (INSTALL, INSTALL.windows, README, CHANGES, HISTORY, TODO, FAQ): Remove. (clean): Don't remove files in this directory. (maintainer-clean): New target, removes files in parent, too. * autogen.sh: Create info files and distribution texts like preview-latex does, and recurse into preview directory to do the same. 2005-04-27 David Kastrup * tex.el (TeX-lisp-directory, TeX-auto-global): Don't `file-name-as-directory'fy. (TeX-style-global, TeX-auto-local, TeX-style-local) (TeX-macro-global, TeX-macro-private): Same here. (TeX-auto-private): Use expand-file-name. (TeX-style-private): Same here. (TeX-check-path): Same. (TeX-load-style): Adapt. * tex-buf.el (TeX-check-files): Be robust against non-slashed directory names. (TeX-ispell-document): Same here. * tex.el (AUC-TeX-version, AUC-TeX-date): Protect `make-obsolete-variable' against obsolete Emacsen. 2005-04-28 Masayuki Ataka * doc/changes.texi: Mention the fix of Japanese fill problems. 2005-04-27 David Kastrup * configure.ac: Correct bug reporting address and move stuff over from preview. * aclocal.m4: remove, we want the one in preview instead. * tex-site.el.in (AUCTeX-version, AUCTeX-date): get via configure. * tex.el (info): Add "docTeX" to info prefixes. (AUCTeX-version, AUCTeX-date): removed to tex-site.el. (AUC-TeX-version, AUC-TeX-date): Use `make-obsolete-variable'. Is version 11.50 correct? * tex-bar.el (LaTeX-install-toolbar): Adjust toolbarx-image-path. * autogen.sh: Use aclocal.m4 from preview subdirectory. * tex.el (TeX-submit-bug-report): Add `TeX-command-list' to bug reports. 2005-04-23 David Kastrup * tex-buf.el (TeX-command): Let it accept `TeX-active-master' as well, by not touching `TeX-current-process-region-p' unless `TeX-region-file' or `TeX-master-file' have been identified explicitly. (TeX-view): Simplify. (TeX-active-process, TeX-active-buffer): Simplify. 2005-04-22 David Kastrup * tex-buf.el (TeX-help-error): Create the correct log file name corresponding to the current run. (TeX-error, TeX-warning): Pass runbuffer info into the routines to get the correct log file name in all circumstances. 2005-04-20 David Kastrup * configure.ac: don't bother about pre-2.50 autoconf. Check version more fine-grainedly. 2005-04-19 David Kastrup * texmathp.el (texmathp-match-switch): Add autoload cookie. * tex.el (no-doc): Remove: not needed because autoloads are documented by the cookie extraction process. (bibtex-mode-hook): Remove. This will be done by an autoload cookie from latex.el instead. (BibTeX-auto-store, LaTeX-math-mode, japanese-plain-tex-mode) (japanese-latex-mode, texinfo-mode, latex-mode, multi-prompt) (texmathp, texmathp-match-switch): Remove autoloads since this is done by cookies extracted into auctex.el. (TeX-region-create, TeX-save-document, TeX-home-buffer) (TeX-pin-region, TeX-command-region, TeX-command-buffer) (TeX-command-master, TeX-command, TeX-kill-job) (TeX-recenter-output-buffer, TeX-next-error) (TeX-toggle-debug-boxes, TeX-region-file, TeX-current-offset) (TeX-process-set-variable, TeX-view): Make comment nil instead of no-doc. (font-latex-setup, tex-font-setup): Remove autoloads. Should be done by cookies instead. (TeX-tex-mode): rename from tex-mode. (TeX-plain-tex-mode): rename from plain-tex-mode. (ams-tex-mode): Change autoload cookie. * tex-jp.el (japanese-plain-tex-mode, japanese-latex-mode): Change autoload cookies. * tex-font.el (tex-font-setup): Add autoload cookie. * tex-fold.el (TeX-fold-mode, tex-fold-mode): Add autoload cookies. * multi-prompt.el (multi-prompt): Add autoload cookie. * latex.el (auto-mode-alist): Add .drv to latex-mode. (TeX-latex-mode): Changed name from latex-mode. (TeX-doctex-mode): Same here for doctex-mode. Explicitly set major-mode to doctex-mode: we don't want different modes. * tex-info.el (texinfo): Alias texinfo-mode to Texinfo-mode for symmetry. (Texinfo-mode): Autoload. * context.el (ConTeXt-mode, context-mode): Add definitions and aliases and autoload cookies. * bib-cite.el: Remove autoload from instructions. * toolbar-x.el (toolbarx-image-path): New variable. (toolbarx-make-string-from-symbol) (toolbarx-make-symbol-from-string, toolbarx-good-option-list-p) (toolbarx-separate-options, toolbarx-merge-props) (toolbarx-make-command, toolbarx-emacs-mount-popup-menu) (toolbarx-xemacs-mount-popup-menu, toolbarx-mount-popup-menu) (toolbarx-option-value, toolbarx-eval-function-or-symbol) (toolbarx-test-image-type, toolbarx-test-button-type) (toolbarx-test-any-type, toolbarx-test-string-or-nil) (toolbarx-test-toolbar-type, toolbarx-test-dropdown-type) (toolbarx-test-symbol, toolbarx-test-dropdown-default) (toolbarx-test-dropdown-save) (toolbarx-process-group-without-insert, toolbarx-process-group) (toolbarx-process-symbol, toolbarx-process-dropdown-group) (toolbarx-find-image, toolbarx-emacs-add-button) (toolbarx-emacs-refresh-process-button-or-insert-list) (toolbarx-emacs-refresh, toolbarx-xemacs-image-properties) (toolbarx-xemacs-button-properties, toolbarx-xemacs-refresh): Remove autoload cookies. (toolbarx-find-image): Use `toolbarx-image-path'. 2005-04-26 Reiner Steib * font-latex.el (font-latex-update-title-faces): Remove unused variable. Don't call when loading the file. (font-latex-title-fontify): Document that faces set outside of customize might be modified. (font-latex-make-title-faces): Set height or size so that customize won't complain. 2005-04-24 Ralf Angeli * tex-buf.el (TeX-interactive-goto-prompt): New function. (TeX-run-interactive): Use it instead of setting `comint-scroll-to-bottom-on-output'. Use `add-hook'. 2005-04-23 Ralf Angeli * font-latex.el (font-latex-update-title-faces): Do not touch customized faces. (font-latex-title-fontify): Use `custom-initialize-default'. (font-latex-make-title-faces): Check for value of `saved-face' property for determining face customization. * tex.el (TeX-find-macro-boundaries): Reimplement. Now handles \foo{\bar}{ba-!-z} case correctly. (TeX-find-macro-start-helper): Remove. 2005-04-22 Reiner Steib * font-latex.el (font-latex-make-title-faces): Define the face, don't set size. Set parent/inherit conditionally. (font-latex-update-title-faces): New function. (font-latex-title-fontify): Add :initialize and :set. Using `font-latex-update-title-faces' allows changing the height within an Emacs session. (font-latex-title-5-face): Renamed from title-4-face. (font-latex-built-in-keyword-classes): Use title-0 and title-5 faces. 2005-04-22 Ralf Angeli * tex-buf.el (TeX-run-interactive): Make output buffer scroll. 2005-04-18 Ralf Angeli * tex-fold.el (TeX-fold-region): Get rid of \_> for matching macros. It prevents macros immediately followed by numbers from being found. 2005-04-17 Masayuki Ataka * style/amsmath.el (LaTeX-item-equation): just-one-space before `\\' at the end of line. 2005-04-15 Ralf Angeli * style/harvard.el ("harvard"): Activate harvard citation format in RefTeX. 2005-04-14 Ralf Angeli * tex-fold.el (TeX-fold-force-fontify): New variable. (TeX-fold-buffer): Use it. Make sure the buffer is fontified before folding is done. * doc/auctex.texi (Folding): Mention `TeX-fold-force-fontify'. * doc/changes.texi: Mention `TeX-fold-force-fontify'. 2005-04-14 Ikumi Keita * style/amsmath.el: Fix comment. ("amsmath"): Removed duplicate settings of "alignat*" and "xalignat*" from LaTeX-add-environments. Add "xalignat", "xalignat*", and "xxalignat" to LaTeX-item-list. (LaTeX-amsmath-env-alignat): Do not ask label if the tail of ENV is "*". 2005-04-14 Masayuki Ataka * latex.el (LaTeX-fill-move-to-break-point): Refactoring. Set third argument of re-search-backward to 'move instead of using skip-chars-backward. 2005-04-13 Ralf Angeli * latex.el (LaTeX-math-abbrev-prefix): Offer only string type for customization. Add proper :initialize and :set functions to allow the value to be changed without having to restart Emacs. * doc/auctex.texi (Mathematics): Document only the string-nature of `LaTeX-math-abbrev-prefix'. 2005-04-12 Ralf Angeli * latex.el (LaTeX-math-abbrev-prefix): Can now be a string to be used with `kbd'. (LaTeX-math-abbrev-prefix): New function. (LaTeX-math-keymap, LaTeX-math-mode): Use it. * doc/auctex.texi (Mathematics): Explain `LaTeX-math-abbrev-prefix' more verbosely. 2005-04-12 Reiner Steib * tex-site.el.in (TeX-lisp-directory): Avoid open-parenthesis at beginning of a line. * tex-style.el (LaTeX-beamer-inner-themes) (LaTeX-beamer-outer-themes, LaTeX-beamer-color-themes) (LaTeX-beamer-font-themes): New variables for style/beamer.el. * style/beamer.el (LaTeX-arg-beamer-inner-theme) (LaTeX-arg-beamer-outer-theme, LaTeX-arg-beamer-color-theme) (LaTeX-arg-beamer-font-theme): New functions. 2005-04-10 Ralf Angeli * tex.el (TeX-parse-argument): Another stab at fixing this function. The last change from 2005-03-23 broke the insertion of macros like \footnote with a marked region. This is pure guesswork. *sigh* * latex.el (LaTeX-section-heading): Shorten prompt. (LaTeX-section-title): Simplify. Shorten prompt. (LaTeX-auto-minimal-regexp-list): "\" and "." are not special in a complemented character alternative. (LaTeX-math-keymap): Define key for prefix insertion inside defvar. (math): Use `LaTeX-math-keymap' only. (LaTeX-math-mode-menu): Use `LaTeX-math-mode-map' (defined by `define-minor-mode'). (LaTeX-math-mode): Assign `LaTeX-math-keymap' to `LaTeX-math-abbrev-prefix'. Use `LaTeX-math-mode-menu' with `LaTeX-math-mode-map'. (LaTeX-math-insert-prefix): Remove. 2005-04-08 Ralf Angeli * font-latex.el (font-latex-match-command-with-arguments): Skip over comments as well as whitespace. * tex.el (TeX-output-extension): Default to nil. 2005-04-07 Ralf Angeli * tex.el (TeX-output-extension): Set correct default depending on the value of `TeX-PDF-mode'. (TeX-output-extension): Revert. (VirTeX-common-initialization): Set `TeX-output-extension' here. 2005-04-05 Christian Schlauer * tex.el (TeX-submit-bug-report): Fix typo in doc string, fill doc string. * latex.el: Change maintainer address. (LaTeX-section): Fix typo in doc string. Remove code that almost always inserts a new line. (LaTeX-section-section): Fix doc string. Add code that conditionally inserts a new line (which also bundles the modification of the buffer in this function). (LaTeX-section-hook): Fix typo in doc string. (LaTeX-default-position): Use `do not' instead of `don't' in doc string and customize value menu (as in `LaTeX-float). (LaTeX-item-list): Fix typo in doc string. 2005-04-05 Ralf Angeli * tex.el (TeX-PDF-mode, TeX-interactive-mode, TeX-Omega-mode): Set customization group. * latex.el (LaTeX-math-default): New entry and key for \colon. New "Punctuation" category. Get rid of some entries in "delimiters" category already defined in "Arrows". Get rid of "delimiters" category and merge entries defined there into "Delimiters.". (LaTeX-math-menu): Remove "delimiters" and add "Punctuation". 2005-04-04 Ralf Angeli * font-latex.el (font-latex-make-user-keywords): Make XEmacs happy. * doc/changes.texi: Fix @xref. * doc/auctex.texi (Quotes): Fix @xref. (European): Be more verbose. * tex-info.el (texinfo-mode): Get rid of hyphens in prompts. Add @xref command. * latex.el (LaTeX-babel-hyphen, LaTeX-babel-hyphen-after-hyphen): Doc fix. (LaTeX-babel-hyphen-language-alist): Use t as default value for insertion behavior. * tex.el (TeX-quote-language-alist): Use t as default value for insertion behavior. * doc/auctex.texi: New tag line. (Quotes): Replace description about (n)german.sty-specific quote insertion by a generalized one and refer to section about European languages. (European): Add subsections. Add information about new functionality and customization options for language-specific quote and hyphen insertion. (Folding): Add information about help echo. (Viewing): Add subsection heading. A single one does not really make sense. * doc/changes.texi: Add some news. 2005-04-03 Ralf Angeli * tex-fold.el (TeX-fold-help-echo-max-length): New variable. Add :type and :group specs. (TeX-fold-make-help-echo): New function. No space before ellipsis. Okay, color does not look too bad. (TeX-fold-make-overlay): Use it. Remove call to `TeX-fold-make-help-echo' again as we have to recompute the string anyway. (TeX-fold-hide-item): Set help-echo property. Recompute help echo string. (TeX-fold-show-item): Invalidate help-echo property. 2005-04-02 Ralf Angeli * doc/faq.texi (Frequently Asked Questions About AUCTeX): Minor enhancements in wording. * tex.el (TeX-open-quote, TeX-close-quote) (TeX-quote-after-quote): Doc fix. (TeX-quote-language-alist, TeX-quote-language): New variables. (TeX-insert-quote): Use them. (TeX-submit-bug-report): Doc fix. * latex.el (LaTeX-mode-map): Map "-" to `LaTeX-babel-insert-hyphen'. (LaTeX-babel-hyphen, LaTeX-babel-hyphen-after-hyphen) (LaTeX-babel-hyphen-language-alist, LaTeX-babel-hyphen-language): New variables. (Moved from tex-style.el and style/german.el respectively and generalized.) (LaTeX-babel-insert-hyphen): New function. (Moved from syle/german.el). * tex-style.el (LaTeX-csquotes-open-quote) (LaTeX-csquotes-close-quote): Doc fix. (LaTeX-german-quote-after-quote, LaTeX-german-open-quote) (LaTeX-german-close-quote, LaTeX-german-hyphen) (LaTeX-german-hyphen-after-hyphen): Remove. * style/csquotes.el ("csquotes"): Use `TeX-quote-language'. * style/italian.el (LaTeX-italian-open-quote) (LaTeX-italian-close-quote): Remove. ("italian"): Use `TeX-quote-language'. * style/ngerman.el (LaTeX-german-quote-after-quote) (LaTeX-german-open-quote, LaTeX-german-close-quote): Remove. ("ngerman"): Use `TeX-quote-language' and `LaTeX-babel-hyphen-language'. * style/german.el: Move definition of "-" key to latex.el. (LaTeX-german-hyphen-internal): Move to latex.el as `LaTeX-babel-hyphen-language'. (LaTeX-german-insert-hyphen): Move to latex.el as `LaTeX-babel-insert-hyphen'. ("german"): Use `TeX-quote-language' and `LaTeX-babel-hyphen-language'. * style/czech.el, style/danish.el, style/slovak.el, style/swedish.el: Use `TeX-quote-language' and `LaTeX-babel-hyphen-language' where appropriate. 2005-03-31 Ralf Angeli * doc/faq.texi (Frequently Asked Questions About AUCTeX): Add general information about how to deal with bugs. Adapt version numbers for Emacs. 2005-03-31 Masayuki Ataka * latex.el (LaTeX-fill-move-to-break-point): Skip non-space chars backward if re-search-backward does not find white spaces or LaTeX-nospace-between-char-regexp. Add mule check before line break between 2-byte and 1-byte chars. Reported by Ikumi Keita . Do not move point if re-search-backward didn't find proper line break point. 2005-03-30 Ralf Angeli * tex.el (TeX-submit-bug-report): Insert AUCTeX version into mail subject. 2005-03-30 Ikumi Keita * latex.el (LaTeX-env-label): Remove `TeX-toggle-off-input-method' because `TeX-math-input-method-off' is already called in `LaTeX-insert-environment'. 2005-03-29 Ralf Angeli * tex-style.el (LaTeX-german-hyphen): Doc fix. Fix :type. * style/german.el (LaTeX-german-insert-hyphen): Do not add "= repeatedly but stick to - after the first swapping. 2005-03-28 Ralf Angeli * style/german.el (LaTeX-mode-map): Bind `-' to `LaTeX-german-insert-hyphen'. (LaTeX-german-quote-after-quote, LaTeX-german-open-quote) (LaTeX-german-close-quote): Move to tex-style.el. (LaTeX-german-hyphen-internal): New variable. (LaTeX-german-insert-hyphen): New function. ("german"): Set `LaTeX-german-hyphen-internal'. * tex-style.el (LaTeX-german-quote-after-quote) (LaTeX-german-open-quote, LaTeX-german-close-quote): Move here from style/german.el. (LaTeX-german-hyphen, LaTeX-german-hyphen-after-hyphen): New variables. * doc/auctex.texi (Font Locking): References are now fontified with `font-lock-constant-face' because `font-lock-reference-face' is deprecated. * font-latex.el: Change maintainer address. (font-latex-quotes, font-latex-make-built-in-keywords) (font-latex-user-keyword-classes): Doc fix. (Mention that setting the variable directly does not take effect.) (font-latex-make-match-defun, font-latex-make-built-in-keywords) (font-latex-make-user-keywords): Doc strings of generated variables and functions now refer to the creating functions. (font-latex-warning-face, font-latex-sedate-face) (font-latex-italic-face, font-latex-bold-face) (font-latex-math-face, font-latex-string-face) (font-latex-verbatim-face, font-latex-superscript-face) (font-latex-subscript-face, font-latex-title-1-face) (font-latex-title-2-face, font-latex-title-3-face) (font-latex-title-4-face): Remove these face variables. (font-latex-title-fontify): Remove :set function. (font-latex-built-in-keyword-classes): Use `font-lock-constant-face' instead of `font-lock-reference-face' because the latter is deprecated in Emacs (and only an alias for the former which will not work if the quoted face name is used). Use new `title' specifier as type of keyword for the titling keywords and mention it in the doc string. (font-latex-keyword-matcher): Quote face specifiers in any case. (font-latex-make-user-keywords) (font-latex-syntactic-face-function): Quote face specifiers. (font-latex-setup): Remove obsolete method for fontifying strings or math respectively. 2005-03-28 David Kastrup * tex.el: Change maintainer address. (TeX-submit-bug-report): Change bug reporting address. * doc/wininstall.texi: Change contact info. * doc/intro.texi (Introduction): Change contact info. * doc/auctex.texi (top): Change contact info. 2005-03-27 Ralf Angeli * font-latex.el (font-latex-match-simple-command): New function. (font-latex-make-user-keywords): Use it instead of specifying the regexp directly. Prevents stuff like "\foo\foo\foo\foo" from being fontified like a zebra. (font-latex-match-command-with-arguments): Check for limit when looking at optional and mandatory arguments. Prevents an infinite loop in XEmacs when typing the "n" of \begin in "\begi\n[foo]". (font-latex-user-keyword-classes): Specify a default value for the list. 2005-03-24 Ralf Angeli * Makefile.in (AUCELC): Derive from AUCSRC. (STYLEELC, CLEANFILES, DISTCLEANFILES, DISTTEXTS): New variables. (some): Use STYLEELC. (clean): Use CLEANFILES. (distclean): Use CLEANFILES and DISTCLEANFILES. Call distclean target in doc directory. (maintainer-clean, extraclean): New targets. 2005-03-23 Ralf Angeli * tex.el (TeX-parse-argument): Deactivate mark after insertion of first mandatory argument. Fixes insertion of braces at wrong places for multi-argument macros like \parbox and \multicolumn. See also change from 2004-12-01 which obviously did not suffice. 2005-03-22 Masayuki Ataka * latex.el (LaTeX-fill-move-to-break-point): Prevent line break between 2-byte char an 1 byte-char. * latex.el (LaTeX-fill-move-to-break-point): Do not skip LaTeX-nospace-between-char-regexp. Reported by Ikumi Keita . 2005-03-19 Ralf Angeli * tex-fold.el (TeX-fold-buffer-substring): Better safe than sorry. 2005-03-18 Ralf Angeli * font-latex.el (font-latex-make-title-faces): According to upstream `font-size' is likely to vanish. So back to `face-height' but scale it down a bit to better match actual font size. 2005-03-17 David Kastrup * tex.el (TeX-overlay-priority-step): New variable, previously in tex-fold.el under different name. (TeX-overlay-prioritize): new function in Emacs and XEmacs variants. * tex-fold.el (TeX-fold-make-overlay): Use `TeX-overlay-prioritize'. (TeX-fold-priority-step, TeX-fold-prioritize): Renamed and moved to tex.el. * tex-buf.el (TeX-region-create): Transfer `buffer-file-coding-system' from master buffer to region. 2005-03-17 Ralf Angeli * latex.el (LaTeX-section-list-add-locally) (LaTeX-largest-level-set): New functions. (LaTeX-add-environments): Invalidate menu variables instead of setting `LaTeX-menu-changed'. (LaTeX-section-menu-entry): Do not enable symbol. (LaTeX-section-menu-create, LaTeX-menu-changed) (LaTeX-menu-update): Remove. (LaTeX-section-menu, LaTeX-environment-menu) (LaTeX-environment-modify-menu): New variables. (LaTeX-section-menu-filter, LaTeX-environment-menu-filter): New functions. (LaTeX-mode-menu): Use them. (LaTeX-common-initialization): Move setting of `LaTeX-largest-level' upwards because it is needed when the menu is being generated. Do not use `activate-menubar-hook' and `activate-popup-menu-hook' anymore. * tex.el (VirTeX-common-initialization): Force update of style information. * style/scrreprt.el, style/scrbook.el, style/scrbase.el, style/scrartcl.el, style/report.el, style/jsbook.el, style/jsarticle.el, style/jreport.el, style/jbook.el, style/jarticle.el, style/j-report.el, style/j-book.el, style/j-article.el, style/book.el, style/article.el, style/alphanum.el: Use new functions for setting `LaTeX-largest-level' or `LaTeX-section-list' respectively. 2005-03-16 Ikumi Keita * latex.el (LaTeX-fill-move-to-break-point): Limit the max number of characters to look backward for `TeX-looking-at-backward'. 2005-03-16 Masayuki Ataka * latex.el (LaTeX-nospace-between-char-regexp): Changed from defcustom to defvar. 2005-03-15 Ralf Angeli * font-latex.el (font-latex-make-title-faces): Deal with the case that `font-size' returns a number. Or nil. * tex.el (TeX-view-style): Remove support for "a4" and "a5". 2005-03-14 David Kastrup * latex.el (docTeX-indent-inner-fixed) (LaTeX-indent-calculate-last): Add support for macrocode*, macro*, environment and environment* environment. 2005-03-14 Ralf Angeli * context.el (ConTeXt-indent-item-re): Do not treat \setup... commands like \item. 2005-03-14 Masayuki Ataka * tex-fold.el (TeX-fold-prioritize): Cater for preview-latex. 2005-03-11 Ralf Angeli * latex.el (LaTeX-paragraph-commands-regexp-make): New function. (LaTeX-paragraph-commands-regexp, LaTeX-paragraph-commands): Use it. (LaTeX-paragraph-commands-add-locally): New function. * style/beamer.el ("beamer"): Use it. Newline not needed anymore because \frametitle is now a paragraph command and will not be filled together with the other content. * context.el (ConTeXt-find-indent): Correct indentation of environments. * latex.el (LaTeX-fill-region-as-para-do): Use `remove-text-properties' instead of `remove-list-of-text-properties' because the latter is not available in Emacs 21. 2005-03-10 Ralf Angeli * style/beamer.el ("beamer"): Find the correct start of environment in case a frame environment is inserted with point on a non-empty line. Insert an additional newline to set off title and content. * font-latex.el (font-latex-make-title-faces): Use `font-size' instead of `face-height' to determine the font size because the latter (as the sum of the face's ascent and descent) returns inappropriate values. Suggested by Steven E. Harris . 2005-03-09 Ralf Angeli * tex.el (TeX-comment-prefix): New function. * latex.el (LaTeX-current-environment, LaTeX-find-matching-end) (LaTeX-find-matching-begin): Rather than using the start or end of a commented region as a boundary, look further for other commented regions with the same prefix possibly containing an environment start or end respectively. (LaTeX-mode-menu): An empty help string is useless and may lead to an empty tooltip. 2005-03-09 Masayuki Ataka * style/amsmath.el ("amsmath"): Fixed typo: "dotssc" -> "dotsc". Added symbol "dots" and "dotsi". * latex.el (LaTeX-insert-environment): Call `TeX-math-input-method-off'. * style/amsmath.el (LaTeX-amsmath-env-alignat) (LaTeX-amsmath-env-aligned): Do not call `TeX-math-input-method-off' from here. Reported by Ikumi Keita . 2005-03-08 Ralf Angeli * latex.el (LaTeX-current-environment): Doc fix. * font-latex.el (font-latex-make-built-in-keywords): Make doc string of `font-latex-match-*-keywords' more clear. 2005-03-08 Masayuki Ataka * tex.el (TeX-toggle-off-input-method): Turn off input method iff `current-input-method' starts one of "chinese", "japanese", and "korean". Use `inactivate-input-method' instead of `toggle-input-method'. Doc fix. Suggested by Ikumi Keita . 2005-03-07 Reiner Steib * tex-style.el: New file. defcustoms for style/*.el should go here. * latex.el (LaTeX-includegraphics-extensions) (LaTeX-includegraphics-options-alist) (LaTeX-includegraphics-strip-extension-flag) (LaTeX-includegraphics-read-file, LaTeX-beamer-themes): Moved to tex-style.el. (tex-style): Require. * style/amsmath.el (LaTeX-amsmath-label): Moved to tex-style.el. * style/beamer.el: Remove install instructions. Won't work properly outside current AUCTeX anymore. Removed CVS Id. (LaTeX-beamer-section-labels-flag) (LaTeX-beamer-item-overlay-flag): Moved to tex-style.el. * style/csquotes.el (LaTeX-csquotes-quote-after-quote) (LaTeX-csquotes-open-quote, LaTeX-csquotes-close-quote): Moved to tex-style.el. * style/emp.el (LaTeX-write18-enabled-p): Moved to tex-style.el. * Makefile.in (AUCSRC): Added tex-style.el. 2005-03-07 Masayuki Ataka * tex-jp.el (japanese-TeX-command-list) (japanese-TeX-error-messages): Change from defvar to defcustom. 2005-03-06 Masayuki Ataka * doc/auctex.texi (I18n): Comment fix. * latex.el: Set fill-space nonsticky. (LaTeX-fill-delete-newlines): Check text property 'fill-space. 2005-03-04 David Kastrup * Organizational: preview-latex development has been moved from into the AUCTeX CVS Archive on in subdirectory auctex/preview. 2005-03-04 Reiner Steib * doc/auctex.texi (I18n): Try to make text more clear. * style/beamer.el (LaTeX-beamer-search-themes) (LaTeX-arg-beamer-theme): New functions adding completion for \usetheme. * latex.el (LaTeX-beamer-themes): New variable. 2005-03-05 Ikumi Keita (tiny change) * tex-jp.el (japanese-TeX-command-list): Doc fix. 2005-03-03 Ikumi Keita * tex.el (TeX-macro-global-internal): New function. (TeX-macro-global): Use it. (TeX-kpathsea-format-alist): Removed duplicate line. * tex-jp.el: Use `TeX-macro-global-internal' and append path for Japanese TeX into TeX-macro-global. Do not override `TeX-expand-list', no more. (japanese-TeX-command-list): Add :help string. Change `TeX-run-LaTeX' to `TeX-run-TeX'. (japanese-TeX-command-default, japanese-LaTeX-command-default): Quote symbol TeX-command in doc string. 2005-03-03 Thomas Baumann * style/beamer.el (LaTeX-beamer-item-overlay-flag): New variable. Used for controling the insertion of overlays in `LaTeX-item-beamer'. (LaTeX-item-beamer): Use it. 2005-03-02 Reiner Steib * doc/auctex.texi (I18n): Fix some markup errors. 2005-03-02 Ralf Angeli * font-latex.el (font-latex-make-title-faces) (font-latex-title-4-face): Use yellow on terminals with dark background and blue4 on terminals with light background. 2005-03-02 Masayuki Ataka * doc/auctex.texi (Floats): Document `LaTeX-top-caption-list'. 2005-03-01 Masayuki Ataka * doc/auctex.texi (I18n): Revised. 2005-02-28 Masayuki Ataka * tex-jp.el (TeX-japanese-process-input-coding-system) (TeX-japanese-process-output-coding-system): Fix comment. 2005-02-27 Masayuki Ataka * latex.el (LaTeX-fill-move-to-break-point): Cater for kinsoku, especially for Japanese. 2005-02-24 Ralf Angeli * latex.el (LaTeX-common-initialization): Update LaTeX menu when a popup menu in XEmacs is opened. 2005-02-23 Ralf Angeli * bib-cite.el: Some doc fixes in the commentary section. 2005-02-23 Ikumi Keita (tiny change) * doc/auctex.texi (I18n): Removed FIXME comment. 2005-02-22 Ikumi Keita (tiny change) * latex.el (LaTeX-fill-delete-newlines): Call search-forward, which is copied from `fill-delete-newlines', with BOUND TO. 2005-02-21 Reiner Steib * doc/auctex.texi (Japanese): Fix bogus macro. 2005-02-21 Masayuki Ataka * doc/auctex.texi (Japanese): Doc fix. Suggested by Ikumi Keita . 2005-02-20 Ralf Angeli * tex-fold.el (TeX-fold-macro-nth-arg): Doc fix. Do not skip more than one closing brace backwards. Use `TeX-fold-buffer-substring'. (TeX-fold-prioritize): Doc fix. (TeX-fold-buffer-substring): New function. Do not use `dolist' which uses an unwanted local binding of the list variable. 2005-02-19 Ralf Angeli * latex.el (LaTeX-current-environment): New variable. (LaTeX-indent-calculate, LaTeX-fill-region-as-para-do): Use it. Improves filling performace by caching current environment. 2005-02-19 Masayuki Ataka * tex-jp.el (TeX-japanese-process-input-coding-system): Remove garbage code. Reported by Ikumi Keita . * latex.el (LaTeX-nospace-between-char-regexp): New variable. (LaTeX-fill-delete-newlines): Use it. (LaTeX-fill-move-to-break-point): Ditto. Fix comment. 2005-02-18 Masayuki Ataka * latex.el (LaTeX-fill-delete-newlines): New function. (LaTeX-fill-region-as-para-do): Use it. 2005-02-16 Ralf Angeli * font-latex.el (font-latex-set-syntactic-keywords): Give an escape char at the end of a verbatim construct punctuation syntax. Prevents wrong fontification of stuff like "\verb|foo\|". 2005-02-16 Masayuki Ataka * tex-jp.el (TeX-after-start-process-function): Removed code for XEmacs. `set-process-coding-system' is available in XEmacs 21.1. (TeX-japanese-process-input-coding-system) (TeX-japanese-process-output-coding-system): Change from defvar to defcustom. Use `default-process-coding-system'; Old XEmacs doesn't have the variable? Suggested by Ikumi Keita . 2005-02-15 Masayuki Ataka * latex.el (LaTeX-fill-move-to-break-point): Simplify. (LaTeX-fill-region-as-para-do): Cater for the situation where there is a line ending with Japanese characters and the following line starts with a non-Japanese character. 2005-02-14 David Kastrup * aclocal.m4 (AC_LISPIFY_DIR): new function. (AUCTEX_AUTO_DIR): Use it. * tex-site.el.in (TeX-lisp-directory, TeX-auto-global): put autoconfed expression on a line of its own. 2005-02-14 Masayuki Ataka * latex.el (LaTeX-fill-region-as-para-do): Get rid of a space at eol if the last character of the line is Japanese (e.g. short Japanese lines). (LaTeX-fill-move-to-break-point): Do not skip characters if the text is written in Japanese (e.g. long Japanese line). Reported by Ikumi Keita . 2005-02-14 Ikumi Keita (tiny change) * tex-jp.el (LaTeX-auto-regexp-list): Use `LaTeX-auto-class-regexp-list'. 2005-02-13 Ralf Angeli * tex-info.el (Texinfo-environment, Texinfo-modify-environment): New functions. (Texinfo-insert-environment): Not interactive anymore as it is now called by `Texinfo-environment'. (Texinfo-mode-map): `C-c C-e' now calls `Texinfo-environment'. 2005-02-12 Masayuki Ataka * tex.el (TeX-add-local-master): Insert "japanese-" before mode name if buffer local variable `japanese-TeX-mode' is non-nil. Suggested by Ikumi Keita . (japanese-slitex-mode): Removed obsolete autoload of slitex. * doc/auctex.texi (Japanese): Doc fix to follow the latest tex-jp.el. 2005-02-12 Ralf Angeli * tex.el (TeX-find-macro-boundaries): Return an alist instead of a list. (TeX-find-macro-end): With `TeX-find-macro-boundaries' returning an alist `cdr' is now sufficient. (TeX-find-macro-end-helper): Save match data. (TeX-font-replace-macro): Use `TeX-find-macro-end' instead of `forward-sexp'. Fixes errors e.g. when trying to remove the font spec of a string like "\textbf{(}". 2005-02-11 Ralf Angeli * latex.el (LaTeX-env-figure): Make function aware of active selections. There are still some indentation issues left. * style/epsf.el ("epsf"): Do not add epsffig environment. Fixes error if latex.el(c) is not loaded. (LaTeX-env-epsffigure): Remove. 2005-02-11 David Kastrup * tex-site.el.in (TeX-lisp-directory): Use `@lispauctexdir' instead of `"@auctexdir@"' and `@lispautodir' instead of `"@auctexdir_expanded"'. * configure.ac (lispauctexdir): create version of `$(auctexdir)' that is Lisp-quoted, not shell-quoted. (lispautodir): Similarly. * doc/Makefile.in (prefix): Append $(null) to some assignments to save quoted backslashes at line ends. * Makefile.in (prefix): Append $(null) to some variable assignments to let quoted backslashes at their end remain quoted. (auctexdir): Get from configure. 2005-02-10 Masayuki Ataka * tex-jp.el: Fix bug that once japanese-plain-tex-mode entered, plain-tex-mode do as japanese-plain-tex-mode. Reported by Ikumi Keita . (japanese-TeX-mode): Doc fix. Make variable buffer local and permanent-local. (japanese-plain-tex-mode-initialization) (japanese-latex-mode-initialization): Do not initialize japanese-TeX-mode. Use `when' instead of `if'. 2005-02-09 Peter S Galbraith * bib-cite.el (bib-master-file): Apply patch from Peter Heslin. TeX-master can now have symbol values (other than t or nil). 2005-02-09 Masayuki Ataka * tex-jp.el (LaTeX-auto-regexp-list): Removed `usepackage' because it is defined in `LaTeX-auto-minimal-regexp-list'. (plain-TeX-auto-regexp-list): Fix regexp; Use `\\|' instead of `|'. Fill lines in the same way in tex.el. (TeX-japanese-process-input-coding-system) (TeX-japanese-process-output-coding-system): Use if-statement in defvar instead of outside of defvar. Change default value of FSF Emacs to 'euc-jp. (TeX-after-start-process-function): Add code for FSF Emacs. 2005-02-08 Masayuki Ataka * style/alphanum.el: Added `Local Variables'. Suggested by Ikumi Keita . * font-latex.el: Fix typo in `Local Variables'. Reported by Ikumi Keita . 2005-02-07 Reiner Steib * doc/faq.texi (Frequently Asked Questions About AUCTeX): Fix typo in previous commit. 2005-02-07 Masayuki Ataka * style/jarticle.el ("jarticle"): Use `LaTeX-section-level'. 2005-02-07 Ralf Angeli * latex.el (LaTeX-fill-code-comment): Compute the end of the region to be filled _after_ indentation happened. 2005-02-07 David Kastrup * doc/faq.texi (Frequently Asked Questions About AUCTeX): Be quite more verbose about Emacs/XEmacs and versions. 2005-02-04 David Kastrup * Version 11.55 released. * Makefile.in (tar-ball): * doc/Makefile.in (clean, html/auctex_toc.html, dist): Move HTML stuff into html directory. 2005-02-04 David Kastrup * RELEASE: Some more Emacspeak blurb. 2005-02-04 Ralf Angeli * RELEASE: Make description of changes clearer. 2005-02-04 David Kastrup * RELEASE (Warning): warn about XEmacs 21.4.16. 2005-02-01 Ralf Angeli * tex.el (TeX-search-syntax-table): Give ?\" character punctuation syntax. Prevents parenthetical characters from being hidden from `TeX-find-opening-brace' if they happen to be enclosed between two quotation marks. Better use whitespace syntax for ?\" as this is the equivalent of a nil entry in the syntax table. (TeX-search-syntax-table): Remove superfluous possibility to specify comment and escape characters as arguments. 2005-02-01 Masayuki Ataka * doc/changes.texi: Mention support for the jsarticle and jsbook classes. * tex-jp.el (japanese-LaTeX-style-list): Added jsclasses (jsarticle and jsbook). 2005-01-31 Ralf Angeli * configure.ac: Bump version info to 11.55. * auctex.spec (Version): Bump to 11.55. (Release): Reset to 1. * doc/tex-ref.tex: Bump version info to 11.55. (Source Display): Adapt information about key bindings to current implementation. * doc/auctex.texi: Bump version info to 11.55. * doc/changes.texi: Add information about changes in AUCTeX 11.55. * RELEASE: Add information about fixed bugs in AUCTeX 11.55. * latex.el (LaTeX-fill-region-as-para-do): Limit the search for sentence ends. Fixes erroneous addition of spaces at places following a paragraph to be filled. 2005-01-31 Masayuki Ataka * style/jsarticle.el: New file. * style/jsbook.el: New file. * Makefile.in (STYLESRC): Add them. 2005-01-29 Masayuki Ataka * tex-jp.el (LaTeX-fill-region-as-para-do): Removed. 2005-01-28 Reiner Steib * tex.el (AUCTeX-date): Use ISO 8601 format. (TeX-submit-bug-report): Include AUCTeX-date when using a non-released version. 2005-01-26 Ralf Angeli * tex.el: Do not use whitespace syntax for ?~. Prevents these characters from being deleted during filling. 2005-01-25 Ralf Angeli * tex-buf.el: Update header. (TeX-view-output-file): Let `TeX-active-master' return file name without directory. Fixes viewer not finding output file when being called in a subdirectory. (TeX-active-master): Add new parameter `nondirectory'. Doc fix. 2005-01-21 David Kastrup * auctex.spec (Conflicts): Mention the outdated emacspeak from FC3. 2005-01-20 Ralf Angeli * font-latex.el (font-latex-set-syntactic-keywords): Do not call `regexp-opt' on empty lists. Prevents `regexp-opt-group' from entering a loop on installations with an outdated regexp-opt.el. * tex-buf.el (TeX-command-region): Pass name of region file without directory to `TeX-command-query' because a test in the latter expects it like that. (TeX-command-query): Doc fix. 2005-01-19 Jan-Ake Larsson * aclocal.m4, configure.ac: A few small changes to allow sync with preview-latex' aclocal.m4 2005-01-19 Ralf Angeli * tex.el (hack-one-local-variable): Make sure the byte compiler does not barf on `minor-mode-list' by eliminating the reference to this variable. 2005-01-15 Ralf Angeli * doc/auctex.texi (top): Restrict to one content listing in HTML output. * doc/todo.texi (Wishlist): Remove bug regarding parsing of LaTeX class files. * tex.el (TeX-macro-global): New function. (TeX-macro-global): (the variable) Moved here from tex-site.el.in. Use new `TeX-macro-global' function. * aclocal.m4 (library): Remove TEX_INPUT_DIRS function. * configure.ac (auctexdir): Remove call to TEX_INPUT_DIRS. * lpath.el: Setting `TeX-macro-global' is not necessary anymore as it now is in tex.el. * tex-site.el.in (TeX-macro-global): Move defcustom to tex.el. * doc/install.texi (Configure): Remove documentation of --with-tex-input-dirs. * doc/wininstall.texi: Remove documentation of --with-tex-input-dirs. * latex.el (LaTeX-insert-environment): Insert a simple newline character instead of using `newline'. Fixes insertion of environment end at wrong place in XEmacs. (LaTeX-fill-region): Remove superfluous `save-restriction'. (LaTeX-auto-class-regexp-list): Add patterns for commands described in "LaTeX2e font selection" (fntguide). 2005-01-14 Reiner Steib * doc/auctex.texi (European): Document all TeX-language-*-hook variables. Don't document obsolete `dk.sty'. 2005-01-14 David Kastrup * auctex.spec: Add and remove auctex.info instead of auctex in info dir. Bump release to 2 to match upload. 2005-01-13 David Kastrup * font-latex.el (font-latex-set-title-face) (font-latex-title-fontify): font-latex-title-fontify, not fontity. fontify, fontify, fontify. * doc/changes.texi: Ditto. * doc/auctex.texi (Font Locking): Ditto. 2005-01-12 David Kastrup * Version 11.54 released. 2005-01-12 Ralf Angeli * style/beamer.el: Update copyright information. General clean-up. ("beamer"): Support frame environment. The overprint has an optional "area width" argument, not a mandatory "overlay" argument. 2005-01-09 Reiner Steib * RELEASE: Addition to contributors section. * tex-bar.el (TeX-bar-LaTeX-button-alist): Use generic "view" image instead of mode specific. 2005-01-09 Ralf Angeli * RELEASE: Added information about fixed bugs and added features in AUCTeX 11.54. * auctex.spec (Version): Bump to 11.54. * configure.ac: Bump version info to 11.54. * doc/auctex.texi: Bump version info to 11.54. * doc/tex-ref.tex: Bump version info to 11.54. 2005-01-07 Ralf Angeli * latex.el (LaTeX-forward-paragraph): Allow finding paragraph commands even if they are preceded by whitespace and comment starters. 2005-01-06 Ralf Angeli * tex.el (TeX-forward-comment-skip): Differentiate prefixes with whitespace between comment starters. * latex.el: Update copyright information. (LaTeX-indent-calculate-last, LaTeX-fill-region-as-para-do): Do not widen. (LaTeX-fill-region-as-paragraph, LaTeX-fill-region-as-para-do): Use a marker instead of narrowing the region. (LaTeX-indent-line, LaTeX-indent-inner-do) (LaTeX-current-indentation, LaTeX-back-to-indentation): Handle prefixes with whitespace between comment starters correctly. 2005-01-05 Reiner Steib * style/graphicx.el: Added completion of boxing macros. Fontify some macros. * font-latex.el (font-latex-built-in-keyword-classes): Fixed typo in doc string. 2005-01-02 Reiner Steib * toolbar-x.el (toolbarx-default-toolbar-meaning-alist): Some checkdoc related fixes. Still not checkdoc clean. * tex-bar.el (Commentary): Don't mention stuff done by configure/make in the instructions. (TeX-bar-help-from-command-list): Quote symbols in doc string. File is checkdoc clean now. * doc/auctex.texi: Update copyright. (Mathematics): Explain how to enable LaTeX-math-mode by default. Suggested by Chris Wallace . (Filling, Outline): Markup fixes: Use @lisp instead of @example where appropriate. 2004-12-30 Ralf Angeli * tex-fold.el (ConTeXt-find-matching-start): Require 'tex and add autoloads to make the compiler happy. * doc/changes.texi: Add and tweak some stuff for 11.54. 2004-12-28 Ralf Angeli * tex.el (TeX-auto-parse-region): Do not add element to `symbol' if it is already contained. 2004-12-23 Ralf Angeli * latex.el (LaTeX-indent-outer-do): Remove redundant code. 2004-12-20 Ralf Angeli * font-latex.el: Add coding cookie. (font-latex-quote-end-list): Remove. (font-latex-quote-list): New variable. (font-latex-quotes, font-latex-match-quotation): Use it for generalization. (font-latex-keyword-matcher): Revert last change. (font-latex-make-built-in-keywords): Match the empty string only at the end of multi-char macros. (font-latex-make-user-keywords): Make sure sedate face is not used for words right after a "\\". (font-latex-set-syntactic-keywords): Do not match linebreaks as delimiters of `verb-like-commands'. 2004-12-19 Ralf Angeli * font-latex.el (font-latex-keyword-matcher): Highlight only first matched group. (font-latex-make-built-in-keywords): Set up grouping for warning keywords and mark its end with "[^A-Za-z@*]". 2004-12-17 Ralf Angeli * latex.el (LaTeX-fill-paragraph): Do not narrow region when code comments are filled. Fixes wrong indentation if a line with a code comment following an indented line is filled. Mark end of current line, not beginning of next. Jump to start of code comment line after regular filling. 2004-12-16 Ralf Angeli * font-latex.el (font-latex-built-in-keyword-classes): Move warning keywords up in order to save them from being covered by less important faces. Include "include" in warning keywords. * aclocal.m4 (TEX_INPUT_DIRS): Change `IFS' temporarily for tokenizing the string instead of inserting newlines. The latter did not work anyway because there was one backslash too much in "\\n". Strip trailing slashes of determined directories before concatenation. * doc/install.texi (Configure): Quote value for --with-tex-input-dirs. * doc/wininstall.texi: Quote value for --with-tex-input-dirs. * tex.el (TeX-arg-opening-brace, TeX-arg-closing-brace): New variables. (TeX-parse-arguments, TeX-parse-argument, TeX-argument-insert): Use them. * latex.el (TeX-arg-free): Temporarily bind `TeX-arg-opening-brace' and `TeX-arg-closing-brace'. 2004-12-15 Ralf Angeli * tex.el (TeX-source-specials-view-position-flags): Fix syntax for xdvi. 2004-12-14 Ralf Angeli * doc/auctex.texi (top): Duplicate top node and wrap it in @ifinfo and @ifhtml environments respectively. 2004-12-13 Ralf Angeli * context.el (ConTeXt-paragraph-commands-regexp): Match any command starting with "\start" or "\stop" and the respective language variants. 2004-12-11 Ralf Angeli * tex-fold.el (TeX-fold-keymap): Change key bindings for clearout commands. (TeX-fold-item, TeX-fold-remove-overlays): Doc fix. * tex.el (TeX-fold-menu): Change display of key bindings for clearout commands. * doc/auctex.texi (Folding): Document new key bindings for clearout commands. 2004-12-10 Ralf Angeli * tex-fold.el (TeX-fold-keymap): Add key binding for `TeX-fold-dwim'. (TeX-fold-dwim): New function. Add support for folding regions. (TeX-fold-macro, TeX-fold-env): Call `message' here instead of in `TeX-fold-item' to get the right return value for the latter. (TeX-fold-item): Move `message' out to get the right return value. (TeX-fold-remove-overlays): Signal if an overlay was deleted with the return value. * tex.el (TeX-fold-menu): Add menu entry for `Tex-fold-dwim'. * doc/auctex.texi (Folding): Document `TeX-fold-dwim'. Mention support for folding regions with `TeX-fold-dwim'. * doc/changes.texi: Advertise folding and unfolding of regions as well as DWIM functionality. * tex-fold.el (TeX-fold-keymap): Add key bindings for `TeX-fold-region and `TeX-fold-clearout-region'. (TeX-fold-region): Make interactive. * tex.el (TeX-fold-menu): Add menu entries for folding and unfolding of regions. * doc/auctex.texi (Folding): Document folding and unfolding of regions. Document `TeX-fold-dwim'. * latex.el (LaTeX-fill-code-comment): Do not hardcode tab width. 2004-12-09 Ralf Angeli * tex-fold.el (TeX-fold-keymap): Add key bindings for `TeX-fold-paragraph' and `TeX-fold-clearout-paragraph'. (TeX-fold-buffer): Now calls new `*-region' functions. (TeX-fold-paragraph): New function. (TeX-fold-buffer-type): Remove. (TeX-fold-region): New function. Basically encloses contents of `TeX-fold-buffer-type' but type parameter is not mandatory anymore. (TeX-fold-clearout-buffer): Now calls `TeX-fold-clearout-region'. (TeX-fold-clearout-paragraph, TeX-fold-clearout-region): New functions. * tex.el (TeX-fold-menu): Add menu entries for folding and unfolding of paragraphs. * doc/auctex.texi (Folding): Document folding and unfolding of paragraphs. * doc/changes.texi: Advertise folding and unfolding of paragraphs. * tex.el (TeX-comment-start-regexp): New variable. (TeX-comment-or-uncomment-region, TeX-uncomment) (TeX-forward-comment-skip, TeX-find-macro-end-helper): Use it. * latex.el (LaTeX-newline, LaTeX-insert-environment) (LaTeX-env-item, LaTeX-indent-line, LaTeX-current-indentation) (LaTeX-fill-region-as-paragraph, LaTeX-fill-region-as-para-do) (LaTeX-fill-move-to-break-point, LaTeX-fill-paragraph) (LaTeX-fill-code-comment, LaTeX-fill-region) (LaTeX-forward-paragraph, LaTeX-backward-paragraph): Use `TeX-comment-start-regexp' instead of `comment-start'. (LaTeX-backward-paragraph, LaTeX-indent-line): Simplify. * style/mdwlist.el ("mdwlist"): Use `TeX-comment-start-regexp' instead of `comment-start'. * style/doc.el (LaTeX-env-no-comment): Use `TeX-comment-start-regexp' instead of `comment-start'. 2004-12-07 Ralf Angeli * tex-fold.el (TeX-fold-buffer-type): Do not ignore case during search. * context.el (ConTeXt-paragraph-commands-regexp): New name for `ConTeXt-paragraph-commands'. Doc fix. Match escape character at front as well. (ConTeXt-mode-common-initialization): Use it. Set `LaTeX-paragraph-commands-regexp' instead of `LaTeX-paragraph-commands'. Adapt definition of `paragraph-start'. 2004-12-05 Ralf Angeli * tex.el (hack-one-local-variable): Advise it in order to call minor mode functions for AUCTeX minor modes activated by file-local minor mode variables. * latex.el (LaTeX-math-mode): Define using `define-minor-mode'. Make it compatible with older Emacsen. 2004-12-02 Ralf Angeli * style/csquotes.el (LaTeX-csquotes-quote-after-quote): Avoid interference with (n)german.el. 2004-12-01 Ralf Angeli * Makefile.in (distclean): Remove generated `configure' file. And revert again as it does not comply with the definition of standard targets in the GNU make manual. * style/jurabib.el ("jurabib"): Add further macros. * tex.el: Add coding cookie. Use punctuation syntax for "«" and "»" characters. (TeX-parse-argument): Deactivate mark after insertion of first pair of braces. Fixes problems with the insertion of macros with more than one brace and an active selection. * style/csquotes.el (LaTeX-csquotes-open-quote) (LaTeX-csquotes-close-quote): Doc fix. ("csquotes"): Repair quoting. Use completing-read where possible. Use a stricter test for usage of quotes. * doc/auctex.texi (Quotes): Document csquotes.el. 2004-11-29 Ralf Angeli * style/csquotes.el: New file. * Makefile.in (STYLESRC): Add style/csquotes.el. * doc/changes.texi: Advertise support for csquotes.sty. 2004-11-29 Reiner Steib * tex.el (TeX-auto-insert): Added SKIP argument. (TeX-auto-store): Use it to avoid circular dependencies. * style/graphicx.el (LaTeX-arg-includegraphics): Add "page". * latex.el (LaTeX-includegraphics-options-alist): Ditto. 2004-11-29 Ralf Angeli * doc/auctex.texi: Use "auctex.info" instead of "auctex" as info file name. * doc/Makefile.in: Adapt to suit change in info file name from "auctex" to "auctex.info". * doc/.cvsignore: Adapt to suit change in info file name from "auctex" to "auctex.info". * doc/changes.texi: Advertise use of "auctex.info" info file name. 2004-11-29 Jan-Ake Larsson * configure.ac: Add @command macro test * configure.in: Moved to configure.ac * configure.ac: Moved from configure.in * doc/macros.texi: Add @command macro * doc/auctex.texi: Change order of @top and @ifnottex, error message otherwise. * doc/Makefile.in: Add MAKEINFO environment variable for texi2... usage. Remove old (confusing) messages. 2004-11-28 Ralf Angeli * doc/intro.texi (Introduction): @/ unfortunately is only available since Texinfo 4.6. Remove it for now. * doc/auctex.texi: Correct some references. 2004-11-27 Ralf Angeli * doc/auctex.texi: Remove RCS keyword. Correct subtitle. Various corrections of filling and capitalization. Move up installation instructions. (Display): New node and chapter holding display-related content. (Font Locking): New node and section. (Folding): Now a section. Remove the silly first paragraph. (Outline): Now a section. * doc/macros.texi: Add `@fontlatex' macro. * doc/install.texi: Specify node unconditionally in the file. * doc/intro.texi (Introduction): Use `@email' instead of `@url' for email addresses. * doc/quickstart.texi (Processing): Better heading. * font-latex.el: Clean up comments. (font-latex-built-in-keyword-classes): Add explanation of the variable structure. (font-latex-match-command-with-arguments): Change "asterix" to "asterisk". 2004-11-25 Ralf Angeli * latex.el (LaTeX-backward-paragraph): Jump to macro start. D'oh. * texmathp.el: Rearrange variable and function definitions in order to get as few compiler warnings as possible due to the reintroduction of the :set function in `texmathp-tex-commands'. Add a dummy `defvar' for `texmathp-tex-commands' to silence the compiler. (texmathp-tex-commands): Reintroduce a :set function as advertised in `texmathp-compile'. (texmathp): Remove the conditional call to `texmathp-compile' as this is handled by the :set function in `texmathp-tex-commands' on load of the file. * tex.el: Autoload `texmathp-match-switch'. 2004-11-24 Ralf Angeli * font-latex.el (font-latex-bold-face, font-latex-italic-face) (font-latex-math-face, font-latex-string-face) (font-latex-warning-face, font-latex-verbatim-face): Inherit from suitable base faces if possible. Doc fix. (font-latex-sedate-face): Doc fix. * latex.el (LaTeX-paragraph-commands): Doc fix. (LaTeX-backward-paragraph): Do not unnecessarily jump to a (wrong) position after the macro start. * tex.el: Move (nearly all) autoloads to a single place. Remove redundant autoload for `TeX-region-file'. Add autoload for `TeX-view'. (TeX-parse-macro): Doc fix. Do not add braces for macros defined as `("foo" 0)'. (TeX-parse-arguments): Do not bind `<' and `>'. (TeX-parse-argument, TeX-argument-insert): Do not use `<' and `>' formerly bound by `TeX-parse-arguments'. Fixes some compiler warnings. (TeX-auto-list-information): Use `message' correctly. * tex-info.el (texinfo-mode): Add `@email' macro. 2004-11-22 Berend de Boer * context.el (ConTeXt-mode-common-initialization): ConTeXt does not need italics correction. 2004-11-20 Christian Schlauer * doc/auctex.texi (Floats): Update. * doc/changes.texi: Mention change of `LaTeX-float'. * latex.el (LaTeX-float, LaTeX-env-figure): Implement "do not prompt" option. `LaTeX-float' has the same customize value menu like `LaTeX-default-position' now. This implies that the old meaning nil corresponds to `""' now, while nil means "do not prompt". (LaTeX-env-figure): Ask for `Float position' instead of `Float to'. (LaTeX-float): New default value "" instead of "htbp" (after a discussion on the mailing list). (LaTeX-default-format, LaTeX-default-width) (LaTeX-default-position): Omit `Specifies the' in doc-string. 2004-11-19 Miguel Frasson * tex-buf.el (TeX-run-TeX): Improve comments. 2004-11-18 Ralf Angeli * tex-buf.el (TeX-TeX-sentinel-check): Use only the letters after the last dot of a file name for the file extension. 2004-11-16 Ralf Angeli * latex.el (LaTeX-fill-move-to-break-point): Search backward for \verb|...| constructs rather than forward. Fixes cases with more than one constructs per line. Reported by Christan Schlauer. 2004-11-16 David Kastrup * doc/wininstall.texi: Clarify --with-xemacs. 2004-11-15 Ralf Angeli * latex.el (LaTeX-paragraph-commands): Now is a customizable list instead of a regular expression. (LaTeX-paragraph-commands-internal) (LaTeX-paragraph-commands-regexp): New variables. (LaTeX-forward-paragraph, LaTeX-backward-paragraph) (LaTeX-common-initialization): Use `LaTeX-paragraph-commands-regexp' instead of `LaTeX-paragraph-commands'. 2004-11-12 Ralf Angeli * latex.el (LaTeX-close-environment): Insert a newline at the end of the environment if an uncommented line follows a commented one. 2004-11-11 Ralf Angeli * latex.el (docTeX-in-macrocode-p): Search backward for an environment beginning rather than forward for its end. 2004-11-08 David Kastrup * latex.el (doctex-mode): Set the mode name. 2004-11-04 Ralf Angeli * tex-info.el (texinfo-mode): Add `@command' macro. * doc/auctex.texi (Commands): Correct key binding for `TeX-Omega-mode'. Add index entry. Use `@command' instead of `@code' where appropriate. * font-latex.el (font-latex-built-in-keyword-classes): Use correct face for `font-latex-match-title-3'. 2004-11-04 Miguel Frasson * images/amstex.xpm: Added. Contains symbolic color 'backgroundToolBarColor', required by (GNU/Linux) XEmacs. 2004-11-03 Christian Schlauer * latex.el (LaTeX-env-figure, LaTeX-env-minipage) (LaTeX-env-tabular*): Do always accept the user's input as the new buffer-local values for `LaTeX-float' and `LaTeX-default-width', even if the user entered the empty string. (LaTeX-env-minipage): Do not ask for the (optional) position if `LaTeX-default-position' is set to `nil'. Behaviour agrees with LaTeX-env-array and LaTeX-env-tabular* now. (LaTeX-env-array, LaTeX-env-tabular*): Changed `setq'-assignment of `LaTeX-default-position' so that it works not only the first time in buffers with `LaTeX-default-position' set to `nil'. (LaTeX-env-array, LaTeX-env-minipage, LaTeX-env-tabular*): Use `LaTeX-optop', `TeX-grop', etc. instead of `{', `['. (LaTeX-env-picture): Don't delete whitespace after inserting the environment. Cursor position corresponds to proper indentation now. 2004-11-03 Ralf Angeli * tex.el (TeX-delete-dups-by-car): New name for `TeX-delete-dups'. (TeX-delete-duplicate-strings, TeX-sort-strings): New functions. Contributed by Reiner Steib and David Kastrup. * font-latex.el: Require 'tex. (font-latex-user-keyword-classes): Enhance :set function to tell user which entry is duplicated. * latex.el (TeX-arg-input-file): Use new name `TeX-delete-dups-by-car' instead of `TeX-delete-dups'. * style/graphicx.el (LaTeX-includegraphics-read-file-TeX): Use new name `TeX-delete-dups-by-car' instead of `TeX-delete-dups'. 2004-11-02 Ralf Angeli * font-latex.el (font-latex-make-user-keywords): Add the "fixed" matchers here rather than in `font-latex-make-built-in-keywords'. * latex.el (LaTeX-math-default, LaTeX-math-menu): Use "Greek Uppercase" instead of "Greek" and "Greek Lowercase" instead of "greek". 2004-11-02 David Kastrup * latex.el (LaTeX-paragraph-commands): Make `\maketitle' a paragraph starter. 2004-11-01 Ralf Angeli * font-latex.el (font-latex-make-built-in-keywords) (font-latex-make-user-keywords): Append rather than prepend matchers. 2004-11-01 Miguel Frasson * toolbar-x.el (toolbarx-make-command): Code clean up. 2004-11-01 Ralf Angeli * font-latex.el: Change maintainer information. (font-latex-keywords): New customization group. (font-latex-built-in-keyword-classes): New variable. (font-latex-make-match-defun, font-latex-keyword-matcher): New functions. (font-latex-make-built-in-keywords): New name for `font-latex-make-keywords'. Move default keyword definitions from `font-latex-match-*-keywords' to `font-latex-match-*-keywords-local'. Integrate `font-latex-match-*-keywords-set' function into `font-latex-match-*-keywords' defcustom. (font-latex-keywords-1, font-latex-keywords-2): Default to nil. All matchers are now added in `font-latex-make-built-in-keywords' and `font-latex-make-user-keywords'. (font-latex-user-keyword-classes): New variable. (font-latex-make-user-keywords): New function. * doc/changes.texi: Remove duplicate word. Mention possibility to add new keyword classes. * doc/quickstart.texi: Some rewordings, corrections and enhancements. 2004-10-29 Ralf Angeli * tex.el (TeX-auto-symbol-check): Use `add-to-list' instead of `cons' in order to avoid duplicates. * latex.el (LaTeX-auto-minimal-regexp-list): Use non-greedy operators for getting the end of a TeX group. (LaTeX-auto-cleanup): Use `add-to-list' instead of `cons' in order to avoid duplicates. 2004-10-29 Miguel Frasson * tex-buf.el: Add simple error report system. (TeX-error-report-switches): New variable (plist). (TeX-run-TeX), (TeX-TeX-sentinel-check): Use it, updating error state, where property is (intern (TeX-master-file)). * tex-bar.el: Remove defadvice's to TeX-run-TeX and TeX-TeX-sentinel-check. (TeX-bar-error-handling-switches): Removed. (TeX-bar-LaTeX-button-alist): next-error updated. 2004-10-28 Reiner Steib * tex-bar.el (TeX-bar-LaTeX-button-alist): Add `TeX-save-document'. * doc/changes.texi: Renamed function `LaTeX-install-toolbar'. * tex-site.el.in: Ditto. 2004-10-28 Miguel Frasson * tex-bar.el: Now requires tex-buf.el, for error handling. Renamed symbols: (LaTeX-install-toolbar): New name for `latex-install-toolbar'. (tex-bar-latex-buttons): New name for `tex-bar-latex-buttons'. (tex-bar-img-filename): New name for `tex-bar-img-filename'. (TeX-tool-bar): New name for `tex-tool-bar' group. (TeX-bar-LaTeX-buttons): New name for `tex-bar-latex-buttons'. (TeX-bar-LaTeX-all-button-alists): New name for `tex-bar-latex-all-button-alists'. (TeX-tool-bar-button-definitions): New name for `tex-tool-bar-button-definitions'. (LaTeX-symbols-toolbar-switch-contents): New name for `latex-symbols-toolbar-switch-contents'. (LaTeX-symbols-toolbar-contents): New name for `latex-symbols-toolbar-contents' (LaTeX-install-toolbar): New name for `latex-install-toolbar'. Use separator only in Emacs, while buildin separator is not implemented for XEmacs. (TeX-bar-help-from-command-list): New function, that returns the :help string for ITEM from TeX-command-list. (TeX-bar-error-handling-switches): New variable. (TeX-run-TeX [tex-buf.el]): before-adviced to reset error internals. (TeX-TeX-sentinel-check [tex-buf.el]): after-adviced to set error internals when error happens. (TeX-bar-LaTeX-button-alist): New button next-error, which is resp. visible/active when error detected on Emacs/XEmacs. All buttons received :help from TeX-command-list. (TeX-bar-LaTeX-buttons): next-error is default, and file is no longer default. 2004-10-27 Ralf Angeli * latex.el (LaTeX-auto-class-regexp-list): New variable. Match "\DeclareRobustCommand\foo" besides "\DeclareRobustCommand{\foo}" as well. (LaTeX-auto-regexp-list): Use it. (LaTeX-auto-cleanup): Do not consider key=value options. Check for "Package" in addition to "package". 2004-10-26 Reiner Steib * tex.el (TeX-auto-generate-global): Only parse cls and sty files. 2004-10-26 Ralf Angeli * font-latex.el (font-latex-match-command-in-braces): Remove references to non-existent variables. 2004-10-26 Reiner Steib * latex.el (LaTeX-math-list): Improve doc string and custom type. (LaTeX-math-default): Added doc string. 2004-10-26 Frank Küster * doc/quickstart.texi: Don't use so many nodes. Several fixes. 2004-10-26 Reiner Steib * Makefile.in (tar-ball): Don't include CVS stuff. * doc/changes.texi: Mention experimental tool bar support. * Makefile.in (tar-ball): Include tex-bar images. 2004-10-25 David Kastrup Toolbar patches by Reiner Steib * Makefile.in (aucteximagedir): Define. (AUCSRC, AUCELC): Add toolbar files. (install-images): new target. * tex-site.el.in (TeX-image-directory): Define. * tex-bar.el (toolbar-x): require toolbar and latex at runtime. 2004-10-24 Reiner Steib * Makefile.in (DOCFILES): Added doc/quickstart.texi. 2004-10-23 Miguel Frasson * toolbar-x.el: (toolbarx-emacs-mount-popup-menu): Nil cannot be a menu key anymore (fixed). (toolbarx-test-image-type): Improve comments. Add support for variables defined with `defimage', which are considered a simple value for the :image property. (toolbarx-emacs-refresh): Nil cannot be a toolbar (menu) key anymore (fixed). (toolbarx-install-toolbar): Improved documentation for the :image property. 2004-10-22 Miguel Frasson * tex-bar.el: Improve comments. Symbol-toolbar code moved to the bottom of the file. (tex-bar-latex-buttons): Improve comments. Add custom :type. (tex-bar-latex-buttons): New command -- display a list of defined buttons. (tex-bar-available-meaning-alists): Removed (renamed). (tex-bar-latex-all-button-alists): New name of `tex-bar-available-meaning-alists'. Add custom :type. (tex-bar-meaning-alist): Removed (renamed). (tex-bar-latex-button-alist): New name of `tex-bar-meaning-alist'. Add custom :type. Renamed `latex-symbols' button to `latex-symbols-experimental'. * toolbar-x.el: Improve comments. (toolbarx-process-group-without-insert): Become autoloaded. (toolbarx-process-group): Code cleanup. (toolbarx-process-symbol): Code cleanup. (toolbarx-default-toolbar-meaning-alist): Separator button label renamed from `:sep' to `separator'. 2004-10-22 Reiner Steib * doc/auctex.texi (European): Adjust to change of `LaTeX-italian-open-quote'. 2004-10-20 Ralf Angeli * aclocal.m4 (TEX_INPUT_DIRS): Do not use -e command line option for grep. 2004-10-18 Reiner Steib * doc/quickstart.texi: Fix markup. 2004-10-18 Frank Küster * doc/quickstart.texi: New chapter. * doc/changes.texi: Mention `Quick Start'. * doc/auctex.texi (Font Specifiers): Add \textrm and \textsf (Commands): Add TeX-Omega-mode (top): Print contents near at the beginning. * doc/macros.texi: New macro @sans. * doc/intro.texi (Introduction): Removed sections obsoleted by `Quick Start' (Indentation and filling, Completion, Editing your document, Outlines). 2004-10-18 Reiner Steib * doc/todo.texi, doc/install.texi, doc/history.texi, doc/changes.texi, doc/auctex.texi: Remove optional arguments of all @node commands. * doc/Makefile.in (TEXIFILES): Added quickstart.texi. 2004-10-18 Frank Küster * doc/Makefile.in (TEXIFILES): Add macros.texi. (auctex.dvi, auctex.pdf): Depend on TEXIFILES. 2004-10-18 Christian Schlauer * latex.el (LaTeX-env-figure, LaTeX-env-minipage): Point out to the user that the placement (figure) and position (minipage) specifiers are optional arguments. (LaTeX-env-figure): Simplified. Do not insert the (optional) placement specifier `LaTeX-float' into the buffer if the user entered the empty string when asked for `float'. 2004-10-18 Ralf Angeli * font-latex.el (font-latex-make-keywords): Correctly evaluate keywords when making `font-latex-match-*-keywords' defcustom. 2004-10-17 Ralf Angeli * doc/todo.texi (Bugs): Document some bugs related to font locking and folding. * latex.el (LaTeX-insert-environment): Partial rewrite. Stay in comments. Do not comment uncommented following lines. Get rid of redundant comment prefix. (LaTeX-indent-calculate): Check for beginning of buffer. (LaTeX-indent-calculate-last): Do not check for beginning of buffer. Fixes wrong indentation of environments at the top of the buffer. 2004-10-16 Ralf Angeli * tex-fold.el (TeX-fold-macro-nth-arg): Use `TeX-find-closing-brace' instead of `forward-sexp'. Fixes problems with comment characters in \url macros. * latex.el (LaTeX-paragraph-commands): Use `regexp-opt' to generate the regexp. (LaTeX-common-initialization): Add support for "$$" to `paragraph-start'. * context.el (ConTeXt-mode-common-initialization): Add support for "$$" to `paragraph-start'. * font-latex.el: Remove change log. (font-latex-make-keywords): New function. (font-latex-match-variable-keywords-local) (font-latex-match-variable-make) (font-latex-match-variable-keywords-set) (font-latex-match-variable-keywords, font-latex-match-variable) (font-latex-match-reference-keywords-local) (font-latex-match-reference-make) (font-latex-match-reference-keywords-set) (font-latex-match-reference-keywords) (font-latex-match-reference) (font-latex-match-function-keywords-local) (font-latex-match-function-make) (font-latex-match-function-keywords-set) (font-latex-match-function-keywords, font-latex-match-function) (font-latex-match-title-1-keywords-local) (font-latex-match-title-1-make) (font-latex-match-title-1-keywords-set) (font-latex-match-title-1-keywords, font-latex-match-title-1) (font-latex-match-title-2-keywords-local) (font-latex-match-title-2-make) (font-latex-match-title-2-keywords-set) (font-latex-match-title-2-keywords, font-latex-match-title-2) (font-latex-match-title-3-keywords-local) (font-latex-match-title-3-make) (font-latex-match-title-3-keywords-set) (font-latex-match-title-3-keywords, font-latex-match-title-2) (font-latex-match-title-4-keywords-local) (font-latex-match-title-4-make) (font-latex-match-title-4-keywords-set) (font-latex-match-title-4-keywords, font-latex-match-title-2) (font-latex-match-textual-keywords-local) (font-latex-match-textual-make) (font-latex-match-textual-keywords-set) (font-latex-match-textual-keywords, font-latex-match-textual) (font-latex-match-warning-keywords-local) (font-latex-match-warning-make) (font-latex-match-warning-keywords-set) (font-latex-match-warning-keywords, font-latex-match-warning) (font-latex-match-warning-function): Now generated by `font-latex-make-keywords'. (font-latex-match-bold-command-keywords-local) (font-latex-match-bold-command-keywords) (font-latex-match-bold-command) (font-latex-match-italic-command-keywords-local) (font-latex-match-italic-command-keywords) (font-latex-match-italic-command) (font-latex-match-math-command-keywords-local) (font-latex-match-math-command-keywords) (font-latex-match-math-command) (font-latex-match-type-command-keywords-local) (font-latex-match-type-command-keywords) (font-latex-match-type-command) (font-latex-match-bold-declaration-keywords-local) (font-latex-match-bold-declaration-keywords) (font-latex-match-bold-declaration) (font-latex-match-italic-declaration-keywords-local) (font-latex-match-italic-declaration-keywords) (font-latex-match-italic-declaration) (font-latex-match-type-declaration-keywords-local) (font-latex-match-type-declaration-keywords) (font-latex-match-type-declaration): New variables generated by `font-latex-make-keywords'. (font-latex-match-bold-command) (font-latex-match-bold-command-make) (font-latex-match-bold-command-keywords-set) (font-latex-match-italic-command) (font-latex-match-italic-command-make) (font-latex-match-italic-command-keywords-set) (font-latex-match-math-command) (font-latex-match-math-command-make) (font-latex-match-math-command-keywords-set) (font-latex-match-type-command) (font-latex-match-type-command-make) (font-latex-match-type-command-keywords-set) (font-latex-match-bold-declaration) (font-latex-match-bold-declaration-make) (font-latex-match-bold-declaration-keywords-set) (font-latex-match-italic-declaration) (font-latex-match-italic-declaration-make) (font-latex-match-italic-declaration-keywords-set) (font-latex-match-type-declaration) (font-latex-match-type-declaration-make) (font-latex-match-type-declaration-keywords-set): New functions generated by `font-latex-make-keywords'. (font-latex-keywords-1): Use new functions. (font-latex-bold-command-keywords) (font-latex-italic-command-keywords) (font-latex-math-command-keywords) (font-latex-type-command-keywords) (font-latex-bold-declaration-keywords) (font-latex-italic-declaration-keywords) (font-latex-type-declaration-keywords): Remove. (font-latex-match-command-with-arguments): New name for `font-latex-match-command-outside-arguments'. Third argument now is an integer instead of a binary. It specifies the number of mandatory arguments of a LaTeX macro. Simplify the function. (font-latex-match-font-cache) (font-latex-match-font-outside-braces): Remove. (font-latex-match-in-brace-cache): New name for `font-latex-match-infont-cache'. (font-latex-match-command-in-braces): New name for `font-latex-match-font-inside-braces'. Generalize, so that it can be used for any command and does not return a special, complex match. (font-latex-set-syntactic-keywords): Try to minimize false fontifications of macros which may look like \foo{bar} and \foo{bar{. (font-latex-commented-outp): Do not consider comment characters in verbatim content. 2004-10-15 Reiner Steib * latex.el (LaTeX-default-format, LaTeX-default-width) (LaTeX-default-position): Fix doc strings. 2004-10-14 Reiner Steib * latex.el (LaTeX-default-width): Make it buffer local. (LaTeX-env-minipage): Pick up new value of LaTeX-default-width. 2004-10-14 Ralf Angeli * tex-fold.el (TeX-fold-macro-spec-list): Add starred sectioning commands. * latex.el (LaTeX-fill-region-as-paragraph): Do not add linebreaks after "$$ " at the end of paragraph filling. (LaTeX-fill-move-to-break-point): Simplify. Add support for $$...$$ type display math. * style/jurabib.el: New file. * Makefile.in (STYLESRC): Add jurabib.el. * doc/changes.texi: Mention support for the jurabib package. 2004-10-14 Miguel Frasson * auctb.el: Removed (renamed to tex-bar.el) * tex-bar.el: Added; (new name of auctb.el). Added support for buttons and customization. (install-auctex-toolbar): removed. (tex-tool-bar): New custom group, inside AUCTeX group. (tex-tool-bar-button-definitions): New custom group, inside tex-tool-bar group. (tex-bar-latex-buttons): New custom variable: buttons in LaTeX mode. (tex-bar-meaning-alist): New custom variable. (tex-bar-available-meaning-alists): New custom variable: collection of variables for meaning-alists. (latex-install-toolbar): New function: install the toolbar for LaTeX mode. (latex-symbols-toolbar-contents): added separator between symbol switches and symbols. * toolbarx.el: Removed (renamed to toolbar-x.el) * toolbar-x.el: Added; (new name of toolbarx.el). (toolbarx-default-toolbar-meaning-alist) Added `:sep' button. (toolbarx-emacs-add-button): clean up. 2004-10-13 Reiner Steib * latex.el (LaTeX-default-width): New variable. (LaTeX-env-minipage, LaTeX-env-tabular*): Use it. (LaTeX-environment): Mention it in the doc string. (LaTeX-env-label): Reindent. * tex.el (TeX-delete-dups): Use our own (faster) version. * latex.el (LaTeX-env-array, LaTeX-env-minipage) (LaTeX-env-tabular*): Don't delete whitespace after inserting the environment. Cursor position corresponds to proper indentation now. From Christian Schlauer with some modifications. 2004-10-12 Reiner Steib * doc/auctex.texi (Completion): Mention `C-c RET' for `TeX-insert-macro'. Fixed typo. (Parsing Files): Fixed typo. (European): Improved. From Frank Küster , slightly modified. * latex.el (LaTeX-common-initialization): Use `LaTeX-env-tabular*' for "tabular*". 2004-10-12 Ralf Angeli * tex-info.el (Texinfo-insert-node): Emacs 21.3 and earlier expect a list of lists. * tex.el: Cater for `delete-selection-mode'. `eval-after-load' (used for support of desktop.el) in Emacs 21.3 and earlier expects a string, not a symbol. (TeX-point-is-escaped): Remove. Implementation of `TeX-escaped-p', which does the same, is slightly nicer. (TeX-insert-dollar): Use `TeX-escaped-p'. 2004-10-11 Ralf Angeli * font-latex.el: Small clean-ups and rearrangements. (font-latex-match-variable-keywords) (font-latex-match-reference-keywords) (font-latex-match-function-keywords) (font-latex-match-title-1-keywords) (font-latex-match-title-2-keywords) (font-latex-match-title-3-keywords) (font-latex-match-title-4-keywords) (font-latex-match-textual-keywords) (font-latex-match-warning-keywords): Remove redundant defvars. (font-latex-match-variable, font-latex-match-reference) (font-latex-match-function, font-latex-match-title-1) (font-latex-match-title-2, font-latex-match-title-3) (font-latex-match-title-4, font-latex-match-textual) (font-latex-match-warning): Set default values and make buffer-local. (font-latex-match-reference): Add doc string. (font-latex-set-syntactic-keywords): Do not set comment syntax. 2004-10-10 Ralf Angeli * style/booktabs.el, style/captcont.el, style/fancyref.el, style/mdwlist.el, style/natbib.el, style/nicefrac.el, style/paralist.el, style/scrbase.el, style/scrbook.el, style/scrlttr2.el, style/scrpage2.el, style/scrreprt.el, style/subfigure.el, style/units.el (TeX-add-style-hook): Do not set up font-latex variables if font-latex is not loaded and enabled. * style/alltt.el, style/listings.el, style/url.el (TeX-add-style-hook): Do not set up font-latex variables if font-latex is not loaded and enabled. Reinitialize font-lock defaults. * font-latex.el: Do not autoload `texmathp'. (font-latex-fontify-script): Doc fix. (font-latex-script): Do without `texmathp'. (font-latex-syntactic-keywords): Default to nil. Make buffer-local. (font-latex-setup): Set syntactic keywords. 2004-10-08 Reiner Steib * tex.el (TeX-update-style, TeX-parse-arguments) (TeX-parse-argument, VirTeX-common-initialization) (TeX-auto-parse-region): Simplify code by using `unless'. 2004-10-08 Ralf Angeli * tex.el (TeX-search-forward-unescaped) (TeX-search-backward-unescaped, TeX-re-search-forward-unescaped) (TeX-search-unescaped, TeX-escaped-p): New functions. (TeX-find-macro-boundaries): Use `TeX-escaped-p'. * latex.el (LaTeX-newline, LaTeX-current-indentation) (LaTeX-fill-region-as-para-do, LaTeX-fill-move-to-break-point): Use new search functions from tex.el. * tex-fold.el (TeX-fold-make-overlay, TeX-fold-hide-item) (TeX-fold-show-item): Respect `font-lock-mode'. * style/amstex.el: Add copyright and license information. ("amstex"): Do not load amsmath.el in `plain-tex-mode' or `ams-tex-mode'. 2004-10-06 Ralf Angeli * texmathp.el (texmathp): Limit environment search with result of macro search if possible. * font-latex.el (font-latex-verb-like-commands): New variable. (font-latex-set-syntactic-keywords): Use it. (font-latex-match-command-outside-arguments) (font-latex-match-font-outside-braces) (font-latex-match-font-inside-braces): Check face at the beginning of the match to make keyword fontification possible even if a macro's argument was already fontified due to syntactic keyword fontification. * style/listings.el (TeX-add-style-hook): Suppress indentation in lstlisting environments. Fontify both \lstinline|...| and \lstinline{...}. Add lstlisting environment to `LaTeX-verbatim-regexp'. * style/url.el (TeX-add-style-hook): Treat arguments \url|...| and \url{...} as verbatim. * style/alltt.el (TeX-add-style-hook): Use buffer-local variable `font-latex-verbatim-environments-local'. 2004-10-05 Miguel Frasson * toolbarx.el (toolbarx-default-toolbar-meaning-alist): New constant, providing a MEANING-ALIST for the insertion of the default buttons and some extra ones in Emacs and XEmacs. 2004-10-05 Ralf Angeli * tex.el (TeX-output-view-style): Move more special items upwards. Remove "a4" and "a5" styles. 2004-10-04 Miguel Frasson * toolbarx.el: (toolbarx-emacs-add-button) (toolbarx-test-image-type): Add Emacs `image descriptor' as valid image specification (Emacs only). (toolbarx-emacs-add-button): "transp-strip" is new `tranparent strip' image file. * images/bibtex.xpm, images/dvipdf.xpm, images/dvips.xpm, * images/error.xpm, images/exec.xpm, images/execbibtex.xpm, * images/execdvips.xpm, images/execerror.xpm, * images/execpdftex.xpm, images/exectex.xpm, * images/execviewdvi.xpm, images/execviewpdf.xpm, * images/execviewps.xpm, images/gv.xpm, images/jumpdvi.xpm, * images/pdftex.xpm, images/pspdf.xpm, images/sep.xpm, * images/tex.xpm, images/view.xpm, images/viewdvi.xpm, * images/viewpdf.xpm, images/viewps.xpm: Add symbolic color 'backgroundToolBarColor' to make pics work in (GNU/Linux) XEmacs 2004-10-02 Ralf Angeli * font-latex.el: Some clean-ups, rearrangements and performance improvements. (font-latex-verbatim-face): XEmacs does not like :inherit. (font-latex-setup): Activate `font-latex-syntactic-face-function'. (font-latex-faces-present-p): New function. (font-latex-match-command-outside-arguments): Use it. (font-latex-bold-command-keywords) (font-latex-italic-command-keywords) (font-latex-math-command-keywords) (font-latex-type-command-keywords): New variables. (font-latex-match-font-outside-braces): Use them. Check for comment and verbatim faces. (font-latex-bold-declaration-keywords) (font-latex-italic-declaration-keywords) (font-latex-type-declaration-keywords): New variables. (font-latex-match-font-inside-braces): Use them. Check for comment and verbatim faces. (font-latex-script): Use `font-latex-faces-present-p'. * doc/changes.texi: Add some new features and fixed bugs. 2004-09-29 Miguel Frasson * images/bibtex.xpm, images/dvipdf.xpm, images/dvips.xpm, * images/error.xpm, images/exec.xpm, images/execbibtex.xpm, * images/execdvips.xpm, images/execerror.xpm, * images/execpdftex.xpm, images/exectex.xpm, * images/execviewdvi.xpm, images/execviewpdf.xpm, * images/execviewps.xpm, images/gv.xpm, images/jumpdvi.xpm, * images/pdftex.xpm, images/pspdf.xpm, images/sep.xpm, * images/tex.xpm, images/view.xpm, images/viewdvi.xpm, * images/viewpdf.xpm, images/viewps.xpm: Add designed images for toolbar buttons. 2004-09-29 Ralf Angeli * font-latex.el (font-latex-do-multi-line): Add new option and use it as default value. (font-latex-use-cache): New variable. (font-latex-match-command-outside-arguments) (font-latex-match-font-outside-braces) (font-latex-match-font-inside-braces): Use it. (font-latex-check-cache): Do not check if cache is to be used. (font-latex-setup): Set up multi-line font locking. 2004-09-28 Miguel Frasson * toolbarx.el: Support for grouping `:insert' clauses in the 3 engines (performance improvement.) Better comments and docstrings. (toolbarx-process-symbol): Fix `nreverse'-missing bug. * auctb.el: Fix Copyright notice (to FSF). Remove "AMS Special" from ppup menu. Simplify. Remove garbage comments from end. (auctb-img-filename): Remove "symb-pics/" from return. Add "symb-pics/" explicitly where it is needed in the defconst's. * images, images/dropdown.xpm, images/ltx-symb-turn-off.xpm, * images/ltx-symb-turn-on.xpm: Add designed images for symbol toolbar. 2004-09-28 Ralf Angeli * font-latex.el: Add change log entries and bump version. (font-latex-find-matching-close): Fix typo in last commit. (font-latex-match-font-inside-braces): Set actual numbers in the match, not nil. Fixes errors with `font-lock-multiline' enabled. 2004-09-27 David Kastrup * font-latex.el (font-latex-find-matching-close): Simplify. * latex.el (LaTeX-math-default): Use `W in math mode for the Omega letter. * tex.el (TeX-find-macro-start-helper): Simplify. (TeX-find-macro-end-helper): Simplify. (TeX-find-macro-end-helper): Stop if `forward-sexp' fails. * doc/todo.texi (Wishlist): Macro spell checking mentioned. 2004-09-26 Miguel Frasson * toolbarx.el: Add to cvs (first version). * auctb.el: Add to cvs (first version); features only a symbol toolbar. 2004-09-24 Davide G. M. Salvetti * configure.in: Add `--(en|dis)able-build-dir-test' switch to allow disabling `VALID_BUILD_DIR'. 2004-09-22 Ralf Angeli * tex.el (VirTeX-common-initialization): Revert last change. * font-latex.el (font-latex-keywords-2): Use function `font-latex-match-script' instead of regexp directly. (font-latex-fontify-script): Doc fix. (font-latex-match-script): Reintroduce. 2004-09-19 Ralf Angeli * latex.el (LaTeX-verbatim-macros): New variable. (LaTeX-fill-move-to-break-point): Do not break inside of macros defined in `LaTeX-verbatim-macros'. (LaTeX-fill-newline): Do not trigger auto-fill. * style/listings.el (TeX-add-style-hook): Add "lstinline" to `LaTeX-verbatim-macros'. * font-latex.el (font-latex-set-syntactic-keywords): "*" is not allowed as a \verb delimiter. * doc/todo.texi (Bugs): Another bug gone the way of the poodle. 2004-09-18 Ralf Angeli * latex.el (LaTeX-indent-line): Use XEmacs' functions to deal with extents/overlays. Avoids dependence on overlay.el. (LaTeX-fill-region-as-paragraph): Inhibit filling of "Local Variables" section, if to be filled as a paragraph. * style/url.el: Add some (low-level) symbols for completion and fontification. (TeX-arg-urlstyle): New function. * doc/todo.texi (Bugs): Remove some obsolete bug descriptions. 2004-09-17 Ralf Angeli * font-latex.el (font-latex-verbatim-environments): Change from defvar to defcustom. (font-latex-verbatim-environments-local) (font-latex-verbatim-macros) (font-latex-verbatim-macros-local): New variables. (font-latex-set-syntactic-keywords): Use them. * style/listings.el: New file. * Makefile.in (STYLESRC): Add it. * doc/changes.texi: Mention support for listings.sty. 2004-09-16 Reiner Steib * doc/changes.texi: Mention built fixes. 2004-09-16 Ralf Angeli * font-latex.el (font-latex-commented-outp): Reimplement for better performance. * doc/changes.texi: Streamline documentation of performance changes. * tex.el (TeX-search-syntax-table): Make XEmacs happy. (VirTeX-common-initialization): Append our stuff to the end of `find-file-hooks'. Fixes problems with `auto-insert-mode'. 2004-09-15 Jan-Åke Larsson * aclocal.m4 (EMACS_LISP): quote ${emacs}, Windows.... 2004-09-13 Ralf Angeli * doc/changes.texi: Add changes from 11.51 up to now. * style/url.el: New file. * Makefile.in (STYLESRC): Add style/url.el. 2004-09-12 Ralf Angeli * font-latex.el (font-latex-keywords-1): Add highlighter for math macros. (font-latex-keywords-2): Use regexp for matching instead of `font-latex-match-script'. (font-latex-match-font-outside-braces): Add support for math, esp. "\ensuremath". (font-latex-match-script): Remove. (font-latex-script): Fix check for present faces. Add `texmathp' check in case there is no math face present. 2004-09-09 Reiner Steib * aclocal.m4 (texinputdirs): Strip leading "!!". 2004-09-08 Reiner Steib * latex.el (TeX-arg-input-file): Remove duplicates from the completion list. Simplify code by using `unless'. 2004-09-08 Ralf Angeli * tex-info.el (Texinfo-insert-node): New function. (Texinfo-mode-map): Use it. 2004-09-07 Davide G. M. Salvetti * aclocal.m4 (EMACS_LISP): Sync echo output with real emacs invocation. 2004-09-07 Ralf Angeli * tex-info.el (Texinfo-insert-environment): Add a space between inserted "@end" and environment name in case of active region. 2004-09-05 Ralf Angeli * tex.el (TeX-search-syntax-table): New function and variable. (TeX-find-balanced-brace): New function. (TeX-find-closing-brace): Use `TeX-find-balanced-brace'. (TeX-find-opening-brace): Ditto. (TeX-find-macro-boundaries): Add `lower-bound' argument. (TeX-find-macro-start-helper): Add `limit' argument. (TeX-find-macro-start): Ditto. 2004-08-31 Reiner Steib * doc/changes.texi: Add `LaTeX-includegraphics-read-file'. Mention use of `start' for MikTeX and fpTeX. * latex.el (LaTeX-includegraphics-read-file): New variable. * tex.el (TeX-delete-dups): New defun or defalias. * style/graphicx.el (LaTeX-includegraphics-read-file-TeX): Renamed from `LaTeX-includegraphics-read-file'. Remove duplicates using `TeX-delete-dups'. (LaTeX-includegraphics-read-file-relative): Insert relative filename. From Dan Nicolaescu . (LaTeX-arg-includegraphics): Use funcall for image-file. 2004-08-28 David Kastrup * Version 11.53 released. 2004-08-28 David Kastrup * doc/tex-ref.tex: Bump version. * configure.in: Bump version number. * auctex.spec (Version): bump to 11.53. * doc/auctex.texi: Bump version to 11.53. 2004-08-28 Ralf Angeli * Makefile.in (install-el): Fix typos. 2004-08-27 Reiner Steib * tex.el (TeX-kpathsea-format-alist): Added LaTeX-includegraphics-extensions. (TeX-search-files): Fix non-kpathsea case. * style/graphicx.el (LaTeX-includegraphics-read-file): Use completion based on TeX-search-files. 2004-08-27 Ralf Angeli * tex-fold.el (TeX-fold-preserve-comments): New variable. (TeX-fold-buffer-type): Use it. * font-latex.el (font-latex): Add to AUCTeX's customization group. (font-latex-find-matching-close): Correctly recognize multiple escape characters. Add missing paren. 2004-08-26 Masayuki Ataka * tex-site.el.in (japanese-slitex-mode): Removed obsolete autoload of slitex. * tex-jp.el (japanese-plain-tex-mode, japanese-latex-mode): Use `TeX-defun' for getting version info into mode doc. 2004-08-26 Ralf Angeli * tex-mik.el: Use `start' instead of the respective executable for PostScript, PDF and HTML files. * tex-fptex.el: Ditto. 2004-08-25 Ralf Angeli * tex.el (TeX-find-macro-boundaries): Detect the start of any macro, not just those consisting of [A-Za-z@]. Remove some superfluous `goto-char' calls. (TeX-find-macro-start-helper): Reimplement once again. Original patch by David Kastrup; slightly modified. Doc fix. (TeX-find-macro-end-helper): Doc fix. Handle macros not consisting of [A-Za-z@] correctly. (TeX-find-opening-brace): Improve performance. 2004-08-25 Reiner Steib * tex.el: Autoload `TeX-process-set-variable' and `TeX-region-file'. 2004-08-25 Jan-Åke Larsson * aclocal.m4: EMACS_PATH_LISPDIR: Expand lispdir if relative to binary. Quote lispdir, and deal with exec_prefix, add missing bracket. * aclocal.m4: Fix xemacs<->emacs mistake, restore path searching when --without-packagedir is given * configure.in: enable --without-packagedir * aclocal.m4: Barf if packagedir not found, don't bother with load-path on xemacs' lispdir 2004-08-25 David Kastrup * tex-buf.el (TeX-command): Call `TeX-process-set-variable' with correct options, so that the viewer command is next unless overridden. * tex.el (TeX-set-mode-name): Set `TeX-command-next' in the buffers where they actually count. 2004-08-24 David Kastrup * latex.el (LaTeX-math-default): Correctly code "jmath" and "Bbbk". 2004-08-24 Reiner Steib * doc/auctex.texi (Mathematics): Add `LaTeX-math-menu-unicode'. (Changes): Refer to `history.texi' _after_ the newer changes. * doc/changes.texi: Added versions 11.51-11.53. 2004-08-24 Ralf Angeli * tex.el (VirTeX-common-initialization): Use "%" instead of `comment-start' for `comment-start-skip'. (TeX-find-opening-brace): Do not use an inverse matcher but negate the whole expression. (TeX-find-macro-start-helper): Reimplement. Should be much faster now. * latex.el (LaTeX-current-environment): Use `buffer-substring-no-properties'. (LaTeX-indent-line): Revert last change. Only multi-line overlays at the start of a line are affected by the XEmacs bug. * tex-info.el (Texinfo-environment-list): Add "command" macro. 2004-08-24 Reiner Steib * doc/install.texi (Prerequisites): Add `easy-mmode.el' update for XEmacs. 2004-08-23 David Kastrup * latex.el (LaTeX-indent-line): Get all overlays, not just one. (LaTeX-math-default): Add iota. (LaTeX-math-default): Use different symbol for triangle. (LaTeX-math-default): Don't use `?\S-e' for `?E'. * tex.el (TeX-match-buffer): Use `buffer-substring-no-properties' (TeX-in-commented-line): Use `skip-chars-forward' and `forward-line'. (TeX-in-line-comment): Use `forward-line'. (TeX-brace-count-line): Use `skip-chars-forward'. * RELEASE: Some updates. * latex.el (LaTeX-section): Use an active region as title if available. (LaTeX-section-title): Prompt with title if present. Should we ask at all? (LaTeX-math-list): Add Unicode code point. (LaTeX-math-menu-unicode): New customization variable for unicode in math menu. Only set in GTK Emacs for now. Does not work on XEmacs. Use it for initializing the menus. Also prefix menu points with backslash. * Makefile.in (.PHONY): Declare a bunch of phony targets to protect against users making files/directories with that name (in particular "lisp"). 2004-08-22 David Kastrup * style/italian.el ("italian"): Don't overwrite existing local variable settings. * style/ngerman.el ("ngerman"): Don't overwrite existing local variable settings. * style/german.el ("german"): Don't overwrite existing local variable settings. * tex.el (TeX-set-mode-name, TeX-PDF-mode): XEmacs needs two arguments for `local-variable-p'. 2004-08-20 David Kastrup * tex.el (desktop): Save TeX-Omega-mode, too. * Makefile.in (full-release): Source rpm is auctex, not auctex-emacs. * auctex.spec (Provides): Provide auctex as well to satisfy preview-latex. create package emacs nevertheless. * Version 11.52 released. 2004-08-20 David Kastrup * tex.el (AUCTeX-version): move to front and also eval when compiling. Other version info moved, too. (TeX-defun): Macro for putting version info into definition. (plain-tex-mode): Use `TeX-defun'. (ams-tex-mode): Use `TeX-defun'. * tex-info.el (texinfo-mode): Use `TeX-defun' for getting version info into mode doc. * latex.el (latex-mode): Use `TeX-defun' for getting version info into mode doc. * context.el (context-mode): Use `TeX-defun' for getting version info into mode doc. * auctex.spec (BuildRoot): New naming scheme. * RELEASE: Add `DESTDIR' blurb. 2004-08-19 David Kastrup * auctex.spec: Change `tex-site.el' to overwriting config file mode. * tex.el (plain-tex-mode): Move menu initializiation here instead of `plain-TeX-common-initialization'. We don't want "TeX" menus in `ConTeXt-mode' or `AmSTeX-mode'. (plain-TeX-common-initialization): remove `easy-menu-add' here. (TeX-common-menu-entries): Change "Customize" strategy again. (plain-TeX-menu-entries): Move from `plain-TeX-menu'. (plain-TeX-mode-menu): Use `plain-TeX-menu-entries'. (AmSTeX-mode-map): Derive from `TeX-mode-map' not `plain-TeX-mode-map'. (AmSTeX-mode-menu): Define menu for `AmSTeX-mode'. (ams-tex-mode): Add menus in proper order. * tex-info.el (texinfo-mode): Swap order of `easy-menu-add'. * latex.el (LaTeX-common-initialization): Swap order of `easy-menu-add'. * context.el (ConTeXt-mode-common-initialization): Swap order of `easy-menu-add', move `major-mode' init to front. * latex.el (LaTeX-common-initialization): Exchange order of `easy-menu-add' to get better menu layout in XEmacs. 2004-08-19 Reiner Steib * auctex.spec (description): Overhauled. * doc/install.texi: Markup fixes, see "(texinfo)command". * doc/wininstall.texi: Ditto. 2004-08-19 David Kastrup * latex.el (LaTeX-mode-menu): Use `TeX-common-menu-entries'. * tex-info.el (Texinfo-mode-menu): Use `TeX-common-menu-entries'. * tex.el (ams-tex-mode): Add `plain-TeX-mode-menu' here. Doh. * context.el (ConTeXt-mode-menu): Use `TeX-menu-with-help' instead of `TeX-maybe-remove-help'. (ConTeXt-mode-menu): Use `TeX-common-menu-entries'. * tex.el (TeX-customization-menu): Save the customization menu here when generated, so that we have it available in all modes. (TeX-common-menu-entries): The common menu entries for TeX modes. (plain-TeX-mode-menu): Use `TeX-common-menu-entries'. * configure.in: export `localstatedir'. * Makefile.in (localstatedir): import `localstatedir'. 2004-08-19 Ralf Angeli * doc/install.texi (Customizing): tex-site.el should be edited no more. Customize should be used instead. Relevant variables are determined during configuration now. Mention build/installation commands for contributed files. 2004-08-19 Reiner Steib * auctex.spec: Fixes for SuSE. 2004-08-19 David Kastrup * aclocal.m4: `putative-existing-lisp-dir' is not a package directory if `lisp' is not a path component. Normalize whitespace. Remove trailing slash from packagedir. * tex-site.el.in (TeX-macro-global): Don't quote texinputdirs additionally. * aclocal.m4: Really remove trailing slashes/backslashes. Don't expand `lispdir'. (library): Surround `texinputdirs' with quotes. Output it enclosed in parens. (library): Let `autodir' refer unexpanded to `localstatedir'. Add some quoting in patterns. * doc/Makefile.in (DESTDIR): introduce `DESTDIR' into installation targets. * Makefile.in (DESTDIR): introduce `DESTDIR' into installation targets. 2004-08-18 David Kastrup * tex-fold.el (TeX-fold-buffer-type): Don't use `end-of-buffer' as it plays around with the current window point. * Makefile.in (auctexdir, styledir): Use `${...}' for symmetry with aclocal.m4 * aclocal.m4: Use `${...}' instead of `$(...)' everywhere. 2004-08-18 Jan-Åke Larsson * aclocal.m4 (EMACS_LISPDIR): Output expanded lispdir 2004-08-18 David Kastrup * configure.in: Shell-quote autodir. * RELEASE: Some minor changes. 2004-08-18 Ralf Angeli * RELEASE: Change version to 11.52. Replace old feature/bug information. * font-latex.el (font-latex-script): Disable raising of characters for older Emacsen. Original patch by Reiner Steib. Bump version and add change log entry. * tex-fold.el (TeX-fold-unfolded-face): Make it look more blueish on displays with 24bit color depth. (TeX-fold-buffer-type): Use either a complemented character alternative to be on the safe side or "\\_>" on Emacsen which support it. 2004-08-17 Reiner Steib * texmathp.el (texmathp-tex-commands-default): Added \label. Various checkdoc-related fixes. 2004-08-17 Ralf Angeli * tex-fold.el (TeX-fold-buffer-type): Use alternative way to determine end of search pattern. Fixes problem with starred macros. Fix compile errors and add further match alternatives. (TeX-fold-item): Recognize starred macros as well. XEmacs does not know `match-string-no-properties'. (TeX-fold-make-overlay): Do not alter `display-string' before `face' is set. (TeX-fold-hide-item): Get only the string part of `display-string'. * tex.el (TeX-fold-menu): Wrap value in `TeX-menu-with-help'. Fixes XEmacs start-up error. * tex-mik.el: Fix typo in comment. * auctex.spec (Version): Change to 11.52. * configure.in: Change AUCTeX version to 11.52. * doc/tex-ref.tex: Change AUCTeX version to 11.52. * doc/auctex.texi: Change AUCTeX version to 11.52. 2004-08-17 David Kastrup * Makefile.in (full-release): Fix a few things. * Version 11.51 released. 2004-08-17 David Kastrup * aclocal.m4: Quote when expanding and remove trailing backslash, too. (library): Don't check for $PWD but for default-directory. 2004-08-16 David Kastrup * doc/wininstall.texi: move --prefix description up, since it might be the only needed option. * doc/tex-ref.tex (section{Font Selection}): Add italic corrections and small-caps entry. * tex.el (info): Add more prefixes to `Info-file-list-for-emacs'. * tex-jp.el (japanese-TeX-command-list): Comment addition. * RELEASE: Add availability and update release notes. * Makefile.in (RPMROOT): New variable. (tar-ball): Clean up `$(FTPDIR)' and `$(WWWDIR/doc)' before installation. (full-release): New target that does RPM building, signing and other stuff for upload. (patch): gzip the patch. * auctex.spec: Add definition stuff for SuSE. (BuildRoot): Don't specify infodir when it is not used. * bib-cite.el: Fix refTeX link. 2004-08-16 Jan-Åke Larsson * aclocal.m4 (EMACS_PROG_EMACS): Add "${prefix}/bin" for Windows users * aclocal.m4 (EMACS_LISPDIR): Remove trailing slash from lispdir_expanded elisp string 2004-08-16 Ralf Angeli * aclocal.m4 (VALID_BUILD_DIR): New function. * configure.in: Use it. Change AUCTeX version to 11.51. * doc/tex-ref.tex: Change AUCTeX version to 11.51. * doc/auctex.texi: Change AUCTeX version to 11.51. * auctex.spec (Version): Change to 11.51. * Makefile.in (distclean): Get rid of autom4te.cache. 2004-08-15 David Kastrup * tex-info.el: Change Copyright notice to FSF * tex-mik.el: Change Copyright notice to FSF * tex.el: Change Copyright notice to FSF * font-latex.el: Change Copyright notice to FSF * multi-prompt.el: Change Copyright notice to FSF * tex-buf.el: Change Copyright notice to FSF * tex-site.el.in: Change Copyright notice to FSF * style/scrartcl.el: Change Copyright notice to FSF * style/scrbook.el: Change Copyright notice to FSF * style/scrlttr2.el: Change Copyright notice to FSF * style/scrreprt.el: Change Copyright notice to FSF * latex.el: Change Copyright notice to FSF * tex-info.el: Change Copyright notice to FSF * tex-mik.el: Change Copyright notice to FSF * tex.el: Change Copyright notice to FSF * bib-cite.el: Change Copyright notice and URLs. 2004-08-15 Dan Nicolaescu * latex.el (LaTeX-common-initialization): Don't set `selective-display'. 2004-08-15 David Kastrup * doc/tex-ref.tex: Add Omega entry, rearrange. * tex.el (TeX-print-command): Use `%(o?)'. (TeX-command, TeX-Omega-command, LaTeX-command) (LaTeX-Omega-command, ConTeXt-engine, ConTeXt-Omega-engine): New customization strings to implement various expanders. (TeX-command-list): Use them. (LaTeX-command-style): Same here. (TeX-printer-list, TeX-view-style, TeX-output-view-style): Use `%(o?)'. (TeX-expand-list): New entries. (TeX-PDF-mode): Don't switch on in Omega mode. (TeX-Omega-mode): New minor mode. (tex-omega-mode): alias for it. (TeX-mode-map): Keybinding for it. (TeX-mode-specific-command-menu-entries): Add quick viewer entry. (TeX-mode-specific-command-menu-entries): Add Omega toggle and inactivate PDF when Omega is on. * context.el (ConTeXt-expand-options): New function for generating `texexec' options. 2004-08-15 Ralf Angeli * tex.el (TeX-fold-menu): New variable. (plain-TeX-mode-menu): Use it. * context.el (ConTeXt-mode-menu): Use `TeX-fold-menu'. * latex.el (LaTeX-mode-menu): Use `TeX-fold-menu'. * tex-info.el: Change every occurence of "TeXinfo" to "Texinfo". (Texinfo-environment-list): Add some missing environments. (Texinfo-find-env-end, Texinfo-find-env-start): New functions. (Texinfo-mode-menu): Use `TeX-fold-menu'. * tex-fold.el (TeX-fold-buffer-type): Support folding of environments in texinfo-mode. (TeX-fold-item): Ditto. (TeX-fold-hide-item): Display an error string if the macro argument cannot be found. 2004-08-14 David Kastrup * tex.el (TeX-command-list): rename `%(execmode)' to `%(execopts)' since it has gotten quite fatter. (TeX-expand-list): Implement `TeX-PDF-mode', `TeX-interactive-mode', `TeX-source-specials-mode' for ConTeXt and pass on `ConTeXt-current-interface'. 2004-08-14 Ralf Angeli * tex-mik.el: Change `TeX-source-specials-viewer-flags' to `TeX-source-specials-view-position-flags' as the latter is now used in tex.el. Set `TeX-source-specials-view-editor-flags'. * tex-fptex.el: Ditto. 2004-08-13 Ralf Angeli * doc/auctex.texi (top): We want the introduction to appear in HTML output as well. 2004-08-13 David Kastrup * Version 11.50 released. 2004-08-13 Jan-Åke Larsson * aclocal.m4: Add another alternative for lispdir 2004-08-13 David Kastrup * auctex.spec (Source0): Change source URL. * Makefile.in (EXTRAFILES): Add RELEASE and auctex.spec. (tar-ball): Don't create CHANGES-$(TAG), just CHANGES (as it is always a longer history). But create RELEASE-$(TAG) instead: that's release-specific. 2004-08-13 David Kastrup * doc/wininstall.texi: Changes to --prefix and --with-auto-dir, partly by Christian Schlauer. Add a few words of my own after suggestions. * doc/changes.texi, style/units.el, style/nicefrac.el, Makefile.in: Add contributed styles for units.sty and nicefrac.sty from Christian Schlauer. 2004-08-13 Ralf Angeli * tex-fold.el (TeX-fold-unspec-use-name): New variable. (TeX-fold-item): Use it. * RELEASE: Add warning about `TeX-command-list'. * doc/auctex.texi (Commands): Add "be". (Folding): Document `TeX-fold-unspec-use-name'. 2004-08-13 David Kastrup * Makefile.in (tar-ball): copy only one auctex, add pdf manual and reference card. * doc/Makefile.in (dist): Add tex-ref, and both pdf and ps (tex-ref.ps, auctex.ps): Use -Ppdf option for better quality. * auctex.spec (BuildRoot): Add CHANGES. * Makefile.in (release-commit): There are no Version: strings anymore, don't replace them. * tex-fptex.el: customize Queue and Print commands appropriately. * tex-mik.el: customize Queue and Print commands appropriately. * tex.el (TeX-expand-list): Call TeX-printer-query differently. (TeX-command-menu-print, TeX-command-menu-printer-entry) (TeX-command-menu-entry): Implement stuff differently, add "Other" menu entry. * tex-buf.el (TeX-printer-query): Change arguments here. Reorganize, too. * doc/auctex.texi (Commands): Fix a warning. * tex-info.el (TeXinfo-mode-menu): Other quoting. (texinfo-mode): Set `TeX-mode-p', `TeX-base-mode-name', call `TeX-set-mode-name'. * context.el (ConTeXt-mode-menu): Add the environments back to folding. * doc/auctex.texi, doc/faq.texi, doc/install.texi, doc/intro.texi, doc/todo.texi: various changes and smaller typos corrected. * doc/macros.texi fix problems with PDF links and indexing. * configure.in: Check for pdftex, dvips, texi2html, texi2dvi, texi2pdf. * doc/Makefile.in (TEXI2HTML, TEXI2DVI, TEXI2PDF): new variables entered by configure. (auctex.dvi): Use texi2dvi. (auctex.pdf): New target. (clean): Remove PDF files. 2004-08-12 David Kastrup * tex-jp.el (japanese-TeX-command-list): Fixed this to new style. (LaTeX-command-style): Same here. Hey, this should even make preview-latex work mostly with Japanese files and PDFTeX. 2004-08-12 Ralf Angeli * tex-buf.el (TeX-view-extension): Remove. (TeX-view-output-file): Use the function `TeX-output-extension' instead of `TeX-view-extension'. (TeX-run-set-command): Setting `TeX-view-extension' not necessary anymore. * tex.el (TeX-view-extension): Remove. 2004-08-11 David Kastrup * doc/wininstall.texi: explain about tex-mik.el and tex-fptex.el * tex-fptex.el: require tex-site. Only set `TeX-lisp-directory' if it has not been customized. Construct `TeX-command-list' from its default value. * tex-mik.el: same here. * tex.el (TeX-mode-specific-command-menu): Tiny optimization. (TeX-mode-specific-command-menu-entries): Make it legal for `TeX-command-mode-menu-entry' to return nil for indicating no menu entry at all (so that entries like "Print" or "Queue" may be dynamically removed). 2004-08-11 Reiner Steib * doc/auctex.texi (Commands): Adjust references. (Viewing): Make source specials a subsection. Adjust references. * tex.el (TeX-source-specials-mode): Remove bogus :link. Refer to viewing node of the manual. * doc/changes.texi: Added references. * doc/todo.texi (Wishlist): Markup fix. 2004-08-11 Ralf Angeli * doc/auctex.texi (Viewing): Add some information about forward and inverse search. * tex-mik.el: Synchronize `TeX-command-list' with tex.el. Use gsview32 in `TeX-output-view-style'. * tex-fptex.el: Synchronize `TeX-command-list' with tex.el. 2004-08-11 David Kastrup * doc/tex-ref.tex: Move papersize stuff to the front. Fiddle somewhat with the sizes, too. * auctex.spec (Version): Change version, web sites, some build stuff (this is not yet finished). * auc-old.el: remove. * doc/Makefile.in (TEXIFILES): refer to auctex.texi instead of auc-tex.texi. Change all dependent stuff, too. * Makefile.in (DOCFILES): refer to doc/auctex.texi instead of doc/auc-tex.texi * doc/auc-tex.texi: renamed into doc/auctex.texi. * doc/auc-tex.texi (Commands): Some rewording. * doc/todo.texi (Wishlist): Some rearrangements and additions. 2004-08-10 David Kastrup * latex.el (LaTeX-math-default): Reorder and complete Greek letters, use Babel transcription conventions for them. * doc/tex-ref.tex: Add \sl definition. (section{Miscellaneous}): Use \string~ for tilde. (section{Greek Letters}): Reorder and complete Greek letters. * tex.el (TeX-PDF-mode): Set `TeX-output-extension' too. (ams-tex-mode): Move `TeX-set-mode-name' after running hooks. * tex-ref.tex: merge math-ref.tex, update a few things, format stuff. * math-ref.tex: removed. * doc/Makefile.in (all): Remove math-ref.tex * Makefile.in (DOCFILES): Remove math-ref.tex 2004-08-10 Reiner Steib * RELEASE: Add `volunteers welcome'. * doc/auc-tex.texi (Completion): TeX-insert-macro-default-style. * tex.el (TeX-source-specials-mode): Add manual link. * doc/auc-tex.texi (Commands): Say how to enable TeX-source-specials-mode permanently. (Viewing): Describe TeX-view. 2004-08-10 David Kastrup * tex.el (TeX-maybe-remove-help): convert Emacs' :visible into XEmacs' :included. * latex.el (LaTeX-mode-menu): Change bug submit menu entry. * context.el (ConTeXt-mode-menu): Same. * tex.el (plain-TeX-mode-menu): Same. * tex-info.el (TeXinfo-mode-menu): Same. * latex.el (LaTeX-mode-menu): A few changed help strings and other small fry. * context.el (ConTeXt-mode-menu): Rework menu, reorganize it, add help strings. 2004-08-10 Ralf Angeli * tex-info.el (TeXinfo-mode-menu): Capitalize menu entries. * context.el (ConTeXt-project-structure-menu-name) (ConTeXt-section-block-menu-name, ConTeXt-mode-menu): Capitalize menu entries. * tex-info.el (TeXinfo-mode-menu): Add help strings. * tex.el (TeX-command-list): Set a default value which will not lead to an inactive menu entry. (plain-TeX-mode-menu): Add some help strings. Capitalize menu entries. (tex-source-specials-mode): New alias for `TeX-source-specials-mode'. * latex.el (LaTeX-mode-menu): Rearrange and insert help strings. Capitalize menu entries. * tex-fold.el (tex-fold-mode): New alias for `TeX-fold-mode' used in tex.el. (TeX-fold-buffer-type): Support folding of environments in ConTeXt mode as well. (TeX-fold-item): Ditto. * doc/auc-tex.texi (Commands): Change `TeX-source-specials' to `TeX-source-specials-mode' where appropriate. * RELEASE: Include contributors. (Hopefully I got everybody.) 2004-08-10 David Kastrup * tex.el (TeX-set-mode-name, TeX-source-specials-map) (TeX-source-specials-mode, TeX-source-specials-expand-options) (TeX-source-specials-view-expand-options): Rename `TeX-source-specials' to `TeX-source-specials-mode'. (TeX-PDF-mode): Make first arg optional (actually, not sure this is a good idea). (tex-pdf-mode): alias for `TeX-PDF-mode'. (tex-interactive-mode): alias for `TeX-interactive-mode' (tex-fold-mode): add autoload. (TeX-mode-map, TeX-mode-specific-command-menu-entries): rename `TeX-source-specials' to `TeX-source-specials-mode'. (TeX-command-list): Add help strings. (TeX-command-menu-entry): Splice help into command entries. (TeX-mode-specific-command-menu-entries): Remove help in XEmacs. (TeX-mode-specific-command-list): Save unnecessary copies and conses. 2004-08-09 David Kastrup * tex.el (TeX-set-mode-name): Add LOCAL argument. (TeX-source-specials, TeX-mode-set, TeX-global-PDF-mode) (TeX-PDF-mode, TeX-interactive-mode): Use it. (plain-tex-mode): Move `TeX-set-mode-name' to after running the hooks. * latex.el (latex-mode): Move setting the mode name to after running the hooks. * tex.el (TeX-maybe-remove-help): new function (noop on Emacs). (TeX-menu-with-help): new macro (noop on Emacs). (TeX-mode-specific-command-menu-entries): Add a lot of help strings. (plain-TeX-mode-menu): Same here. * latex.el (LaTeX-mode-menu): `:visible' is not known in XEmacs, and I don't want to clutter the menu with "Convert 209 to 2e" when not necessary. * RELEASE (Requirements): some additions. Incorporate some suggestions from Ralf. * tex.el (TeX-set-mode-name): Actually use `reset' (patch by Ralf Angeli). * latex.el (LaTeX-common-initialization): There is no "LaTeX2e" command anymore, so don't set it. Don't do anything on "DVIoutput". doc fixes. * doc/auc-tex.texi (Commands): Explain `TeX-command-buffer', `TeX-pin-region', `TeX-PDF-mode', `TeX-interactive-mode', `TeX-source-specials'. 2004-08-09 Berend de Boer * context.el (ConTeXt-current-environment): now properly skips nested environments instead of always returning the last environment just above the cursor. 2004-08-08 David Kastrup * tex-buf.el (TeX-run-set-command): Initialize `TeX-output-extension' based on `TeX-PDF-mode'. * tex.el (TeX-command-output-list): Don't look at pdf* commands. Don't have default mode "dvi". (VirTeX-common-initialization): Don't add to desktop-locals-to-save locally: that's broken. (desktop): Add stuff into appropriate variables for proper desktop save/restore. (TeX-mode-specific-command-menu-entries, plain-TeX-mode-menu): Reorganize menus. Add font commands into plain TeX menu. * tex-info.el (TeXinfo-mode-menu): Reorganize menu. * latex.el (LaTeX-mode-menu): Reorganize menu. * context.el (ConTeXt-mode-menu): Reorganize menu. 2004-08-07 David Kastrup * tex.el (TeX-base-mode-name): Make buffer-local (Doh). (TeX-set-mode-name): Doc fix. * doc/todo.texi (Mid-term Goals): Use @previewlatex macro. (Mid-term Goals): New entries. Should some of them be moved to wishlist? Remove a few fixed bugs. * doc/macros.texi: move @ConTeXt macro out of info-only section. Typeset @previewlatex differently. 2004-08-06 Reiner Steib * font-latex.el: Use "gnu.org" instead of "nongnu.org". * bib-cite.el: Ditto. Use "AUCTeX", not "auc-tex". * lpath.el: Use "AUCTeX". 2004-08-05 Reiner Steib * doc/macros.texi: New @ConTeXt macro. * doc/auc-tex.texi, doc/changes.texi, doc/history.texi, doc/todo.texi, doc/wininstall.texi: Use macros @AUCTeX, @ConTeXt, @LaTeX everywhere. * doc/auc-tex.texi (European): Mention Emacs 21. Fixed typo. * doc/todo.texi: Help for documentation wanted. * doc/changes.texi: Some additions: captcont and subfigure, `LaTeX-includegraphics-options-alist', `LaTeX-default-position', kpathsea based completion, `TeX-insert-macro-default-style'. Refer to installation nodes (autoconf installation). * tex.el (TeX-submit-bug-report): Added more explanations. * latex.el (LaTeX-style-list): Improve doc-string. * font-latex.el (font-latex-script-display): New variable. Make raise of sub-/superscripts customizable. (font-latex-unfontify-region, font-latex-script): Use it. 2004-08-05 Ralf Angeli * RELEASE: Improve sectioning and add some more information. 2004-08-05 David Kastrup * tex-site.el.in: don't require 'tex-mik on Windows, let the user load it instead of tex-site if he wants to. * tex.el (TeX-command-list): Add `%(PDFout)', `%(mode)' and `%(execmode)'. Remove `TeX Interactive', `LaTeX Interactive' and `ConTeXt Interactive'. (LaTeX-command-style): Don't provide a default for a `LaTeX-version' of "2": people can customize this if necessary themselves, we would not know a sane default, anyway. (TeX-expand-list): Support `TeX-DVI-via-PDFTeX', `%(PDFout)', `%(mode)' and `%(execmode)'. (TeX-set-mode-name): Add `reset' flag to indicate that the next step should again be TeXing. Add "I" flag. (TeX-source-specials): Call `TeX-set-mode-name' with `reset' flag. (TeX-mode-set): Variable setter for TeX modes. (TeX-PDF-mode): Make the default value a global mode. (TeX-global-PDF-mode): Toggle function to change default `TeX-PDF-mode'. (TeX-PDF-mode): Remove local binding of `TeX-PDF-mode' in case of conflicts. Call `TeX-set-mode-name' with `reset' flag. (TeX-DVI-via-PDFTeX): New customizable variable. (TeX-interactive-mode): New mode. (TeX-mode-map): Add binding for `TeX-interactive-mode'. (TeX-mode-specific-command-menu-entries): Add menu entry for it. * tex-buf.el (TeX-command-expand): Document `%%'. (TeX-run-TeX): If `TeX-interactive-mode' is set, run `TeX-run-interactive' instead. 2004-08-04 Reiner Steib * font-latex.el (font-latex-fontify-script): Default to nil in XEmacs. 2004-08-04 David Kastrup * tex.el (TeX-base-mode-name, TeX-set-mode-name): Move to front, add catering for global mode switches. (TeX-source-specials, global-TeX-PDF-mode): Use this. * latex.el (LaTeX-common-initialization): Add style hook for "ifpdf". 2004-08-04 Ralf Angeli * font-latex.el (font-latex-unfontify-region): New function. (font-latex-setup): Use it. 2004-08-04 David Kastrup * tex-fptex.el (TeX-command-list): Remove PDFTeX calls. * tex-mik.el (TeX-command-list): Remove PDFTeX calls. * tex.el (TeX-command-list): Use %(PDF) where necessary, drop PDFTeX entries. (LaTeX-command-style): Add %(PDF) here. (TeX-expand-list): Expand %(PDF). (TeX-mode-p): Moved. (TeX-PDF-mode, global-TeX-PDF-mode): New minor modes. (TeX-PDF-mode-on, TeX-PDF-mode-off): Shortcuts for calling. (TeX-PDF-mode-parsed): New variable. (TeX-set-mode-name): Simplify. (TeX-mode-map): Add C-c C-t C-p for TeX-PDF-mode. (TeX-mode-specific-command-menu-entries): Add menu entry for it. * latex.el (LaTeX-math-mode): Refresh modeline after generating it, not before. (LaTeX-common-initialization): Add style-hooks fo pdftex, dvips and others. * tex.el (TeX-view-style, TeX-output-view-style): Place dvi file name last. 2004-08-03 Ralf Angeli * tex.el (TeX-source-specials): New customization group. (TeX-source-specials, TeX-source-specials-tex-flags) (TeX-source-specials-places) (TeX-source-specials-view-start-server): Use it (TeX-source-specials-view-position-flags) (TeX-source-specials-view-gnuclient-flags) (TeX-source-specials-view-emacsclient-flags): Change defvar to defcustom. (TeX-source-specials-view-editor-flags): New customize option. (TeX-source-specials-view-expand-client): Return not only client but options as well. (TeX-source-specials-view-expand-options): Use `TeX-source-specials-view-editor-flags'. 2004-08-03 Reiner Steib * tex.el (TeX-source-specials-places): Change comment. 2004-08-03 David Kastrup * latex.el (LaTeX-mode-menu): Add "Close Environment" * tex.el (TeX-source-specials-view-gnuserv-p): replaces `TeX-source-specials-view-guess-server'. (TeX-source-specials-view-expand-client) (TeX-source-specials-view-expand-options): Use this. 2004-08-03 Reiner Steib * style/alphanum.el, style/doc.el, style/jura.el, style/ltx-base.el, style/ltxdoc.el: Added coding cookies. 2004-08-03 David Kastrup * RELEASE: Change Source Special description and a few other things. 2004-08-03 Ralf Angeli * tex.el (TeX-expand-list): New %cS expander for `TeX-source-specials-view-expand-client'. (TeX-source-specials-view-start-server): New customize option. (TeX-source-specials-view-start-server-asked): New variable. (TeX-source-specials-view-position-flags): New name. Formerly known as `TeX-source-specials-viewer-flags'. (TeX-source-specials-view-gnuclient-flags): New variable. (TeX-source-specials-view-emacsclient-flags): New variable. (TeX-source-specials-view-expand-client): New function. (TeX-source-specials-view-expand-options): Expand options for inverse search as well. Correct return value. Use `TeX-source-specials-view-guess-server'. (TeX-forward-comment-skip): Only consider consecutive comment characters when comparing the comment prefix. (TeX-source-specials-view-guess-server): New function. * doc/changes.texi: Avoid email addresses. * doc/tex-ref.tex: Update to 11.50. 2004-08-02 Ralf Angeli * doc/changes.texi: Advertise support for toggling source specials. Mention macro completion in docTeX mode and fix for filling in XEmacs with preview-latex and activated previews. 2004-08-01 David Kastrup * doc/wininstall.texi: Remove info about manual installation. Explain about preferred path syntax. * doc/install.texi: Move info dor INSTALL.Windows. 2004-08-01 Ralf Angeli * tex-fptex.el: Do not overwrite customized variables. * tex-mik.el: Ditto. * Makefile.in (STYLESRC): Add new style files. * aclocal.m4: Synchronize with preview-latex. * tex-fold.el (TeX-fold-macro-spec-list): Add references to default. (TeX-fold-buffer-type): Additionally pass display string specification and type to `TeX-fold-make-overlay' (TeX-fold-item): Ditto. (TeX-fold-make-overlay): Accept display string specification and type as arguments and set them accordingly in the overlay. Do not signal overfullness if the dispay string contains a linebreak. (TeX-fold-macro-nth-arg): Make `macro-start' mandatory so that macro boundaries may be determined even if point is not inside of a macro. (TeX-fold-hide-item): Recompute display string on closure if display string specification is an integer. * style/alphanum.el: Add header and reformat. * style/jura.el: Add header. * style/doc.el: New file. Contributed by Frank Küster . (TeX-add-style-hook): Remove bogus `LaTeX-add-index-entries' call. * style/ltx-base.el: New file. Contributed by Frank Küster . * style/ltxdoc.el: Ditto. 2004-07-31 Ralf Angeli * font-latex.el: Autoload `texmathp'. (font-latex-keywords-2): Add `font-latex-match-script'. (font-latex-script-keywords): Remove. (font-latex-fontify-script): Remove :set function. (font-latex-match-script): New function. * tex-mik.el (TeX-view-style): Remove unconditional source specials option for yap. (TeX-output-view-style): Set it. (TeX-source-specials-viewer-flags): Ditto. * tex-fptex.el (TeX-view-style): Adapt options to WinDVI documentation. (TeX-output-view-style): Set it. (TeX-source-specials-viewer-flags): Ditto. 2004-07-30 Ralf Angeli * Makefile.in (tar-ball): Remove warning which often confuses users. * aclocal.m4 (EMACS_MAJOR_VERSION): New test and variable. * configure.in: Fix AUCTeX version. * tex-site.el.in: At least (X)Emacs 21 is required. * tex.el: Ditto. * doc/Makefile.in (install): Remove warning which often confuses users. * doc/auc-tex.texi: Fix version numbers. (Changes): New name. Formerly known as "History". (ToDo): New heading. * doc/changes.texi: Add heading for `rawfile'. Change `section' to `heading'. * doc/faq.texi (Frequently Asked Questions About AUCTeX): At least (X)Emacs 21 is needed. * doc/install.texi (Prerequisites): Ditto. 2004-07-29 Ralf Angeli * tex-fold.el (TeX-fold-macro-spec-list): Extend default. Add specification for argument number. (TeX-fold-env-spec-list): Ditto. (TeX-fold-folded-face): Renamed from `TeX-fold-display-string-face'. (TeX-fold-unfolded-face): New face and variable. (TeX-fold-buffer-type): Move through buffer from bottom to top in a single run in order to allow easier prioritization of nested overlays. (TeX-fold-item): Compute display string via `TeX-fold-macr-nth-arg'. (TeX-fold-make-overlay): Consider the length of the display string as well when judging if a line is overfull. Let priority be computed by `TeX-fold-macr-nth-arg'. Do not call `TeX-fold-hide-item'. (TeX-fold-macro-nth-arg): New function. (TeX-fold-priority-step): New variable. (TeX-fold-prioritize): New function. (TeX-fold-hide-item): Set mouse-face. (TeX-fold-show-item): Ditto. Do not set face twice. (TeX-fold-post-command): Recognize mouse clicks as well. * tex.el (TeX-find-macro-boundaries): New function. (TeX-find-macro-end-helper): Find macro arguments with a preceding linebreak as well. * doc/auc-tex.texi (Folding): Document new functionality. * latex.el (LaTeX-fill-region): Improve performance by avoiding unnecessary calls to `LaTeX-forward-paragraph'. * font-latex.el (font-latex-fontify-script): Doc fix. 2004-07-23 Ralf Angeli * tex-fold.el (TeX-fold-make-overlay): New function. Remove superfluous `let'. (TeX-fold-buffer-type, TeX-fold-item): Use it. (TeX-fold-mode): Call `TeX-fold-clearout-buffer' after clearing `post-command-hook'. 2004-07-22 Ralf Angeli * latex.el (LaTeX-indent-line): Temporarily make invisible overlays visible in XEmacs. * tex.el (TeX-comment-region): Use a real function instead of an `fset' and temporarily change `comment-start' for certain XEmacs releases. (TeX-comment-or-uncomment-region): Use it. (TeX-comment-or-uncomment-paragraph): Ditto. * doc/changes.texi: Remove warning about TeX-fold not working correctly on XEmacs. 2004-07-21 Ralf Angeli * tex-fold.el (TeX-fold-display-string-face): Remove `min-colors' spec as XEmacs does not like them. (TeX-fold-hide-item): Set face on the glyph and not on the overlay/extent in XEmacs. (TeX-fold-post-command): Do not check detached extents in XEmacs. * context.el (ConTeXt-mode-menu): Check if variable is defined. Necessary for XEmacs compatibility. (ConTeXt-menu-update): Fix creation of environment menus. * latex.el (LaTeX-mode-menu): Check if variable is defined. Necessary for XEmacs compatibility. * tex-info.el (TeXinfo-mode-menu): Ditto. 2004-07-20 Reiner Steib * font-latex.el (font-latex-set-title-face): New function. (font-latex-title-fontity): Use it to make customization work during a session. (font-latex-title-*-face): Use it to simplify the initialization. 2004-07-20 Ralf Angeli * tex-fold.el (TeX-fold-macro-spec-list): New name for `TeX-fold-spec-list'. More unobtrusive default. (TeX-fold-env-spec-list) (TeX-fold-unspec-macro-display-string) (TeX-fold-unspec-env-display-string): New variables. (TeX-fold-keymap): New key bindings which are more mnemonic and orient at preview-latex's bindings instead of outline.el. (TeX-fold-buffer): Transfer contents to `TeX-fold-buffer-type' which can be used for both macros and environments. (TeX-fold-buffer-type): New function. (TeX-fold-macro): Transfer contents to `TeX-fold-item' which can be used for both macros and environments. (TeX-fold-env): New function. (TeX-fold-item): New function. Prioritize overlays. (TeX-fold-clearout-item): New name for `TeX-fold-clearout-macro'. (TeX-fold-hide-item, TeX-fold-show-item): Adapt doc string. * latex.el (LaTeX-hide-environment): Remove. Functionality is now provided by TeX-fold. (LaTeX-show-environment): Ditto. (LaTeX-mode-map): Remove key bindings for `LaTeX-hide-environment' and `LaTeX-show-environment'. (LaTeX-mode-menu): Adapt key bindings for folding. Remove menu entries for `LaTeX-hide-environment' and `LaTeX-show-environment'. * context.el (ConTeXt-mode-menu): Adapt key bindings for folding. * tex-info.el (TeXinfo-mode-menu): Ditto. * doc/auc-tex.texi (Folding): Document new and changed functions and variables related to folding environments (new) and macros. * doc/changes.texi: Advertise support for folding environments. 2004-07-18 Ralf Angeli * tex.el (TeX-source-specials): Do not set a lighter in `minor-mode-alist' but use `TeX-set-mode-name' instead. (TeX-base-mode-name): New variable. (TeX-set-mode-name): New function. (plain-tex-mode): Set `TeX-base-mode-name' instead of `mode-name' and use `TeX-set-mode-name'. (ams-tex-mode): Ditto. * context-en.el (context-en-mode): Ditto. * context-nl.el (context-nl-mode): Ditto. * latex.el: Do not add a lighter for `LaTeX-math-mode' in `minor-mode-alist'. (LaTeX-math-mode): Use `TeX-set-mode-name'. (latex-mode): Set `TeX-base-mode-name' instead of `mode-name' and use `TeX-set-mode-name'. * tex-fold.el (TeX-fold-mode): Do not set a lighter in `minor-mode-alist' but use `TeX-set-mode-name' instead. 2004-07-17 Ralf Angeli * tex.el (TeX-find-macro-start): Fix handling of nested macros. (TeX-find-macro-start-helper): New function. (TeX-find-macro-end-helper): New function. * tex-info.el (TeXinfo-mode-menu): Fix extension of customize menu. * latex.el (LaTeX-env-figure): Prevent superfluous blank lines and give RefTeX a chance to generate a label in environments with a bottom caption. Patch by Christian Schlauer . (LaTeX-style-list): Add entry for beamer class. * context.el (ConTeXt-mode-menu): Add "Show/Hide" submenu. * doc/auc-tex.texi (Folding): Document key binding for `TeX-fold-mode'. 2004-07-14 Ralf Angeli * tex-info.el (TeXinfo-mode-map): Inherit from `TeX-mode-map'. (texinfo-mode): Enable TeX-master functionality. * tex.el (TeX-one-master): Include .texi files. (TeX-add-local-master): Use "@c " as comment prefix in Texinfo mode. * tex-fold.el (TeX-fold): Move customization group from `LaTeX' to `AUCTeX'. * doc/changes.texi: Advertise folding functionality. 2004-07-12 Ralf Angeli * tex-fold.el (TeX-fold-display-string-face): Cater for display devices with few colors. (TeX-fold-keymap): Add key bindings for showing and hiding individual macros. (TeX-fold-macro): New function. (TeX-fold-clearout-buffer): New name for `TeX-fold-remove-all-overlays'. (TeX-fold-clearout-macro): New function. (TeX-fold-remove-overlays): New function. * latex.el (LaTeX-mode-menu): Add entries for showing and hiding individual macros. * tex-info.el (TeXinfo-mode-menu): Update and rearrange. Add entries for "Show/Hide" functionality. * doc/auc-tex.texi (Show/Hide): New section. (Folding): New subsection. (Outline): Moved under "Show/Hide". 2004-07-10 Ralf Angeli * tex.el: Do not require tex-fold.el. Autoload `TeX-fold-mode'. (TeX-mode-map): Add keybinding for `TeX-fold-mode'. * tex-fold.el: Do not add keybinding for `TeX-fold-mode' with `TeX-mode-hook'. (TeX-fold-post-command): Do not hijack other overlays. 2004-07-09 Ralf Angeli * tex-fold.el: New file. * Makefile.in (AUCSRC): Add tex-fold.el. (AUCELC): Add tex-fold.elc. * latex.el (LaTeX-find-macro-start): Move to tex.el and rename to `TeX-find-macro-start'. (LaTeX-find-macro-end): Analogous. (LaTeX-forward-paragraph): Change call to `LaTeX-find-macro-*' to `TeX-find-macro-*'. (LaTeX-backward-paragraph): Ditto. (LaTeX-mode-menu): Add submenu "Show/Hide". Add entries for relevant functions in tex-fold.el and add the show/hide environment entries which were in "Formatting and Marking" before. * tex.el: Require tex-fold.el. (TeX-find-macro-start): New function. Formerly known as `LaTeX-find-macro-start' in latex.el. (TeX-find-macro-end): New function. Formerly known as `LaTeX-find-macro-end' in latex.el. 2004-07-08 Ralf Angeli * texmathp.el (texmathp-match-environment): Let environments be added more than once. * font-latex.el (font-latex-superscript-face) (font-latex-subscript-face): New faces. (font-latex-script-keywords): New constant. (font-latex-fontify-script): New customize option. (font-latex-script): New function. 2004-07-02 Ralf Angeli * tex-buf.el (TeX-view): Inform the user if the output file is not present. * tex.el (TeX-forward-comment-skip): Fix `count' functionality. Stop as well at places where the prefix of commented lines changes. Simplify and improve efficiency by saving current prefix before while-loop starts. Adapt documentation string. (TeX-backward-comment-skip): Adapt documentation string. 2004-06-24 Ralf Angeli * context.el (ConTeXt-environment-menu-name): Make name distinct from `LaTeX-environment-menu-name'. (ConTeXt-environment-modify-menu-name): Analogous. 2004-06-17 Reiner Steib * Makefile.in (tar-ball): Change permissions of auctex-$(TAG). * tex.el (TeX-source-specials-expand-view-options): New function. (TeX-expand-list): Added new specifier (%dS) for `TeX-source-specials-expand-view-options'. (TeX-view-style, TeX-output-view-style): Add %dS for source specials in all xdvi calls. (TeX-expand-list): Remove useless lambda. * tex-buf.el (TeX-output-style-check): Remove addition of source specials. 2004-06-17 Ralf Angeli * tex.el (TeX-one-master): Add "dtx" extension. (TeX-add-local-master): Insert \iffalse...\fi in docTeX mode. (TeX-file-extensions): Add "dtx" extension. (docTeX-default-extension): New variable. * latex.el (LaTeX-find-macro-start): Use next whitespace if the end of an opened macro cannot be determined. (doctex-mode): Set `TeX-default-extension' to `docTeX-default-extension'. * doc/changes.texi: Add information about `TeX-newline-function'. 2004-06-16 Ralf Angeli * style/mdwlist.el (TeX-add-style-hook): Change variables only locally. * latex.el (LaTeX-default-verb-delimiter): New variable. (TeX-arg-verb): Use it. 2004-06-15 Ralf Angeli * style/mdwlist.el: New header. (TeX-add-style-hook): Add support for \makecompactlist, \suspend, and \resume. 2004-06-14 David Kastrup * tex-buf.el (TeX-pin-region): Don't balk at unpinning if there is no pinned region. * tex.el (TeX-mode-specific-command-menu-entries): Be more meticulous about when the pin-region menu entry can be used. 2004-06-13 David Kastrup * tex.el (TeX-pin-region): Add autoload form. (TeX-mode-map): Add keybinding for TeX-pin-region. (TeX-mode-specific-command-menu-entries): Add menu entry for it. * tex-buf.el (TeX-command-master, TeX-command-region) (TeX-command-buffer): Add `override-confirm' prefix argument. (TeX-pin-region): New function to replace previous interactive prefix for TeX-command-region. Change TeX-region semantics accordingly. 2004-06-13 Ralf Angeli * doc/faq.texi: New file. * doc/auc-tex.texi (Filling): Add information about activating `auto-fill-mode'. (FAQ): Add node. * doc/todo.texi (Bugs): Add bug when fontifying unmatched math toggles in verbatim-like environments. * doc/.cvsignore: Add `FAQ'. * doc/Makefile.in (TEXIFILES): Add `faq.texi'. (FAQ): New target. (dist): Add `FAQ'. (clean): Ditto. * .cvsignore: Add `FAQ'. * Makefile.in (DOCFILES): Add `doc/faq.texi'. (EXTRAFILES): Remove `PROBLEMS'. (tar-ball): Add `FAQ'. * autogen.sh: Activate creation of `FAQ' from `doc/faq.texi'. 2004-06-11 Ralf Angeli * tex-fptex.el (TeX-command-list): Use correct expander for "View PDF". * latex.el (LaTeX-fill-region-as-para-do): Fix removal of trailing whitespace. (LaTeX-fill-move-to-break-point): Prevent infinite loop in commented regions. (LaTeX-fill-newline): Fix compatibility with XEmacs, i.e. use code related to text properties only for Emacs and reintroduce insertion of a potential fill prefix for XEmacs. 2004-06-10 Ralf Angeli * doc/changes.texi: Add some news regarding upcoming release. Try to match former news with actual releases. 2004-06-07 Ralf Angeli * tex.el (TeX-comment-padding-string): New function. * latex.el (LaTeX-newline): Do something sensible if point is at the start of a commented line or inside of one and right at the start of another one in the same line. (LaTeX-insert-environment): Fix insertion of environments if point is inside or right before a commented line. (LaTeX-indent-line): Use `TeX-comment-padding-string'. 2004-06-05 Ralf Angeli * font-latex.el (font-latex-make-title-faces): New function. (font-latex-title-1-face, font-latex-title-2-face) (font-latex-title-3-face): Now generated by `font-latex-make-title-faces' and compatible with XEmacs. (font-latex-title-4-face): Add face specification for XEmacs. 2004-06-04 David Kastrup * tex-buf.el (TeX-view-mouse): New function. * tex.el (TeX-source-specials-map): Outcomment madcap mouse bindings. (minor-mode-map-alist): Remove TeX-source-specials manually, as I can't figure out how to not get it placed there by define-minor-mode. (TeX-split-string): Correct docs. Simplify. (TeX-parse-path): Fix pattern. 2004-06-03 Ralf Angeli * tex.el (TeX-newline): New function. (TeX-mode-map): Use it. * latex.el: Various checkdoc-related fixes. (LaTeX-forward-paragraph): Check for and cope with multi-line paragraph commands not only those with a single line. Check for LaTeX macro at the end of a paragraph command. (LaTeX-backward-paragraph): Check for and cope with multi-line paragraph commands not only those with a single line. (LaTeX-paragraph-command-p): Remove. (LaTeX-find-macro-start): Find macro start even if point is already at the start. * doc/auc-tex.texi (Marking and formatting): Split into `Indenting' and `Filling'. (Indenting): New section. (Filling): New section. * doc/intro.texi: Fix key representations and reference to `fill-paragraph'. 2004-06-02 David Kastrup * tex-buf.el (TeX-format-filter): Don't use split-string which appears to trigger an XEmacs bug. 2004-06-02 Reiner Steib * tex.el (TeX-insert-macro-default-style): Fixed typo in doc-string. 2004-06-01 Reiner Steib * tex.el (TeX-no-braces-modes): Removed. Revert unintened addition from 2004-04-19 commit. (TeX-insert-macro-default-style): New variable. (TeX-parse-arguments): Use it. (TeX-insert-macro): Document dependence on `TeX-insert-macro-default-style' and prefix. Fix typo in comment. 2004-05-29 Ralf Angeli * tex.el (TeX-source-specials-map): Fix key binding for XEmacs. 2004-05-27 Ralf Angeli * aclocal.m4 (TEX_INPUT_DIRS): Quote regexps with square brackets. * tex.el (TeX-newline-function): Rename. Formerly known as `TeX-newline'. (TeX-mode-map): Use new name. * doc/auc-tex.texi (Marking and formatting): Rename `TeX-newline' to `TeX-newline-function'. 2004-05-26 Reiner Steib * style/graphicx.el (LaTeX-arg-includegraphics): Rewrite. Optional macro arguments can be controlled by `LaTeX-includegraphics-options-alist' now. (LaTeX-includegraphics-extensions) (LaTeX-includegraphics-read-file): New functions. (TeX-include-graphics-simple): Removed; use `LaTeX-includegraphics-options-alist' instead. (TeX-string-divide-number-unit, TeX-default-unit-for-image): Moved to `tex.el'. * latex.el (LaTeX-includegraphics-extensions) (LaTeX-includegraphics-options-alist) (LaTeX-includegraphics-strip-extension-flag): New options for `style/graphicx.el'. * tex.el (TeX-kpathsea-path-delimiter): Fix doc-string. (TeX-insert-macro, TeX-parse-arguments): Skip optional macro arguments when called with a prefix. (TeX-string-divide-number-unit, TeX-default-unit-for-image): From `style/graphicx.el'. (TeX-arg-maybe): New function. * latex.el (LaTeX-common-initialization): Added additional arguments for \parbox. 2004-05-26 Ralf Angeli * tex.el (TeX-newline): New name for `TeX-indent-on-newline'. It now holds function definitions and not mere symbols anymore. (TeX-mode-map): Use it. * doc/auc-tex.texi (Marking and formatting): Remove documentation for `TeX-indent-on-newline' and document `TeX-newline'. 2004-05-26 Ralf Angeli * tex.el (TeX-indent-on-newline): New option. (TeX-mode-map): Use it. * doc/auc-tex.texi (Marking and formatting): Document `TeX-indent-on-newline' plus small corrections. 2004-05-25 David Kastrup * tex-buf.el (TeX-command): Add `override-confirm' argument. (TeX-view): New function, without confirmation. * context.el (ConTeXt-mode-map): Inherit keymap instead of copying. * latex.el (LaTeX-mode-map): Inherit keymap instead of copying. * tex.el (TeX-source-specials-map): New variable. (TeX-source-specials): Make a minor mode. Replaces `TeX-toggle-source-specials' and `TeX-source-specials-active-flag'. (TeX-source-specials-expand-options): Adapt to that. (TeX-electric-macro-map): inherit from `minibuffer-local-completion-map' instead of copying. (plain-tex-mode): Help string uses `plain-TeX-mode-map'. (TeX-mode-p): New variable, set in TeX modes. (VirTeX-common-initialization): Set it. (TeX-mode-map): Proper defvar. Add keybindings for `TeX-source-specials' and `TeX-view'. (plain-TeX-mode-map): Inherit instead of copy. (AmSTeX-mode-map): Same here. * doc/auc-tex.texi: Change info dir formatting, adapt copyrights according to the assignment process. 2004-05-25 Ralf Angeli * doc/install.texi (Configure): Remove unused option `--with-texmf-dir'. Document new option `--with-tex-input-dirs'. * doc/wininstall.texi: Ditto. Add information about new option `--with-auto-dir'. * latex.el (LaTeX-backward-paragraph): Revert check-in of 2004-05-24. 2004-05-24 Ralf Angeli * latex.el (LaTeX-backward-paragraph): Recognize if point is at the end of a line when the test for a macro following a paragraph command is carried out. 2004-05-23 Ralf Angeli * font-latex.el (font-latex-doctex-^^A): Add mistakenly deleted space again. 2004-05-21 Reiner Steib * style/graphicx.el (TeX-string-divide-number-unit): Renamed from misspelled `TeX-string-divide-nuber-unit'. Reformat file. Fix some doc-strings and comments. 2004-05-20 Ralf Angeli * aclocal.m4 (TEX_INPUT_DIRS): New help string. Better error handling. 2004-05-19 David Kastrup * aclocal.m4: Comment EMACS_LISP. (EMACS_TEST_LISPDIR): remove both trailing backslash and slash. 2004-05-19 Ralf Angeli * latex.el (LaTeX-fill-move-to-break-point): Prevent infinite loop in lines starting with whitespace. (LaTeX-forward-paragraph): Don't consider paragraph commands followed directly by a TeX macro as part of an adjacent paragraph. (LaTeX-backward-paragraph): Ditto. 2004-05-18 Davide G. M. Salvetti * aclocal.m4 (AUCTEX_AUTO_DIR): Change `autodir' default to `${localstatedir}/auctex' to conform to the GNU Coding Standards. Add `autodir_expanded' as the properly expanded version of `autodir'. Inform the user about the check in progress. * tex-site.el.in (TeX-lisp-directory): Use `@autodir_expanded@'. 2004-05-17 Reiner Steib * aclocal.m4 (AUCTEX_AUTO_DIR): Avoid AS_HELP_STRING for compatibility with autoconf < 2.58. 2004-05-17 Ralf Angeli * aclocal.m4 (TEX_INPUT_DIRS): Use `--expand-braces' instead of `--show-path' in the kpsewhich calls. Use `--expand-path' as a fallback e.g. for MikTeX. Assume that we are dealing with a TDS-compliant TeX system and add "/tex/" and "/bibtex/bst/" subdirectories to the output of the kpsewhich calls accordingly. * latex.el (LaTeX-fill-newline): Don't use code specific to GNU Emacs for XEmacs. Call `newline-and-indent' instead. 2004-05-15 Davide G. M. Salvetti * aclocal.m4 (AUTO_DIR): Code cleaned; renamed to `AUCTEX_AUTO_DIR'. * configure.in: Change `AUTO_DIR' to `AUCTEX_AUTO_DIR'. 2004-05-14 Davide G. M. Salvetti * style/italian.el (LaTeX-italian-open-quote) (LaTeX-italian-close-quote): Use standard babel syntax rather than latin1 characters. Patch by David Kastrup . 2004-05-14 Ralf Angeli * latex.el (LaTeX-indent-calculate-last): Ignore commented lines when called in a non-comment line. * style/scrbase.el (TeX-add-style-hook): Fontify \minisec like a sectioning command. 2004-05-14 Reiner Steib * tex.el (TeX-auto-generate): Bind `enable-local-eval'. 2004-05-13 Davide G. M. Salvetti * doc/auc-tex.texi (European): Sort languages list alphabetically. * doc/install.texi (Configure): Document `--with-auto-dir'. * Makefile.in (DOCFILES): Added `doc/macros.texi'. * doc/Makefile.in (distclean): New. 2004-05-13 Ralf Angeli * latex.el (LaTeX-env-item): Don't eat non-empty lines when called on a marked region unless they only consist of whitespace and comment characters. Fill the paragraph of a potentially outdented line after insertion of \item. * aclocal.m4 (TEX_INPUT_DIRS): Repair quoting. * tex.el (TeX-kpathsea-format-alist): Rename. Formerly known as `TeX-kpathsea-directory-alist'. Add information to every format about the file extensions to be found. (TeX-search-files-kpathsea): Adapt to new information in `TeX-kpathsea-format-alist'. (TeX-mode-specific-command-menu-entries): Move source specials toggle up to first level of command menu. 2004-05-12 Davide G. M. Salvetti * aclocal.m4 (AUTO_DIR): New function. * configure.in: Use `AUTO_DIR' to expand `@autodir@' in `tex-site.el.in'. * Makefile.in (autodir): Use `@autodir@'. * tex-site.el.in (TeX-auto-global): Definition moved from `tex.el'. Use `@autodir@'. * tex.el (TeX-auto-global): Definition moved to `tex-site.el.in'. * lpath.el: Bind `TeX-auto-global'. * style/italian.el: New file. * doc/auc-tex.texi (Font Specifiers): Removed two sentences referring to the old behavior of the short-cuts for easy insertions of fonts changing macros. (At that time they added things like `{\it --!--}', now they add things like `\textit{--!--}'.) (Marking and formatting): Reflect renaming of `LaTeX-format-comment-syntax-aware' to `LaTeX-syntactic-comments'. (European): Document `italian.el'. * Makefile.in (STYLESRC): Added `italian.el'. * lpath.el: Bind `TeX-macro-global'. * tex.el: No need to `(require 'tex-site)' at compilation time, see `lpath.el'. 2004-05-12 David Kastrup * tex.el (TeX-source-specials-active-flag) (TeX-source-specials-check-function, TeX-source-specials-xdvi-p) (TeX-source-specials-check-xdvi) (TeX-mode-specific-command-menu-entries) (TeX-maybe-set-source-specials, TeX-toggle-source-specials): Remove all checks for validity of the Source Special options. Just assume that the user knows what he is asking for. 2004-05-12 Ralf Angeli * aclocal.m4 (TEX_INPUT_DIRS): Don't use `findtexmf' but a universal call of `kpsewhich' and unify paths separated by `;' or `:'. * context.el (ConTeXt-mode-menu): Show `TeX-comment-or-uncomment-*' functions in the menu instead of the comment and uncomment functions which don't have a key binding. * tex.el (plain-TeX-mode-menu): Ditto. (TeX-mode-map): Move definitions of `C-c ;' and `C-c %' downwards so that they become visible in the menu. * latex.el (LaTeX-fill-region-as-para-do): Remove extra spaces between words. (LaTeX-mode-menu): Show `TeX-comment-or-uncomment-*' functions in the menu instead of the comment and uncomment functions which don't have a key binding. 2004-05-11 David Kastrup * style/beamer.el: Updates from Thomas Baumann checked in. 2004-05-10 Ralf Angeli * font-latex.el (font-latex-doctex-^^A): Add compatibility code for Emacs 20 and XEmacs to fix compile error. (font-latex-verbatim-face): Add parentheses to fix error with Emacs 20. (font-latex-doctex-preprocessor-face): Ditto. (font-latex-doctex-documentation-face): Ditto. * style/prosper.el (LaTeX-prosper-insert-slide): Don't stay in comment upon inserting a slide in an overlay. 2004-05-09 Reiner Steib * tex.el (TeX-source-specials-check-function): Added "Always on" choice. 2004-05-09 Ralf Angeli * font-latex.el (font-latex-doctex-syntactic-keywords): Moved to the right place and corrected quoting. * context.el (ConTeXt-indent-syntax-table): Create with `make-syntax-table' instead of `easy-mode-defsyntax' to allow compilation with Emacs 20. * aclocal.m4 (TEX_INPUT_DIRS): New function. * configure.in: Use `TEX_INPUT_DIRS' for the expansion of `@texinputdirs@' in `tex-site.el.in'. * tex-site.el.in: Updated header. (TeX-macro-global): Moved here from `tex.el'. Use `@texinputdirs@'. * tex.el: Require `tex-site' at compile time. (TeX-macro-global): Moved to `tex-site.el.in'. 2004-05-09 Reiner Steib * tex.el (TeX-toggle-source-specials): Added missing call to `TeX-maybe-set-source-specials' in last commit. 2004-05-08 Ralf Angeli * font-latex.el (font-latex-verbatim-face) (font-latex-doctex-preprocessor-face) (font-latex-doctex-documentation-face): New variables and faces. (font-latex-verbatim-environments, font-latex-syntactic-keywords) (font-latex-doctex-syntactic-keywords) (font-latex-doctex-keywords): New variables. (font-latex-set-syntactic-keywords) (font-latex-syntactic-face-function, font-latex-doctex-^^A) (font-latex-doctex-syntactic-face-function): New functions. (font-latex-setup): Set special `font-lock-defaults' for docTeX mode. (font-latex-commented-outp): Don't classify line comments in docTeX mode as "real" comments. * latex.el (doctex-mode): Call `TeX-install-font-lock' to activate special fontification in docTeX mode. * style/alltt.el (TeX-add-style-hook): Added "alltt" to `font-latex-verbatim-environments'. * context.el: Updated header. * context-nl.el: Updated header. * context-en.el: Updated header. (context-en-mode): Set `ConTeXt-current-interface' to "en". 2004-05-06 Reiner Steib * tex.el (TeX-toggle-source-specials): Simplify the code. 2004-05-06 Ralf Angeli * Makefile.in (DOCFILES): Added `todo.texi'. 2004-05-05 Reiner Steib * tex.el (TeX-command-list, TeX-source-specials-expand-options) (plain-tex-mode, TeX-view-extension, ams-tex-mode): Doc fixes. * tex.el (TeX-mode-hook, AmS-TeX-mode-hook): Have always been run, but were not declared with defcustom (or defvar). * latex.el (LaTeX-mode-hook): Ditto. * Makefile.in (tar-ball-clean): New. * autogen.sh: Create README and TODO. * .cvsignore, doc/.cvsignore: Add TODO. 2004-05-04 Ralf Angeli * tex.el (TeX-expand-list): Inserted new expander `%S' for source specials command line option. (TeX-command-list): Inserted `%S' for source specials support where appropriate. (LaTeX-command-style): Ditto. (TeX-source-specials-expand-options): New function. * tex-buf.el: Updated header. (TeX-style-check): Remove code specific to source specials and thereby revert to state before 2004-04-27. * tex-jp.el: Updated header. (japanese-TeX-command-list): Inserted `%S' for source specials support where appropriate. * tex-fptex.el: Updated header. (TeX-command-list): Inserted `%S' for source specials support where appropriate. (LaTeX-command-style): Setting removed. * tex-mik.el: Updated header. (TeX-command-list): Inserted `%S' for source specials support where appropriate. (LaTeX-command-style): Setting removed. * doc/auc-tex.texi (Checking): Updated URL's for lacheck and chktex. 2004-05-02 Ralf Angeli * tex.el: Header updated. (TeX-master-file): Removed bogus test for `TeX-header-end'. * doc/auc-tex.texi (ToDo): New name for node/section formerly known as `Projects' or `Wishlist' respectively. Removed items not relevant anymore and moved the rest to the new file `doc/todo.texi'. Removed `Credits' section. * doc/Makefile.in (TEXIFILES): New constant. (auctex): Use it. (dist): Added `TODO'. (TODO): New target. (clean): Added `TODO'. Some formattig changes. * doc/todo.texi: New file. * Makefile.in (tar-ball): Added `TODO'. * doc/changes.texi: Advertise support for `beamer.cls'. 2004-04-30 David Kastrup * tex-buf.el (TeX-command-expand): Add "%%" expansion, make order of TeX-expand-list irrelevant, make the whole junk work efficiently. 2004-04-30 Ralf Angeli * latex.el: New header. (LaTeX-indent-environment-list): Remove `alltt' and add support for it in `alltt.el' instead. * Makefile.in (STYLESRC): Added `alltt.el'. * style/alltt.el: New file. * doc/changes.texi: Describe changes in quote insertion if `german.sty' or `ngerman.sty' is used. Advertise new style files. 2004-04-29 Reiner Steib * tex-buf.el (TeX-style-check): New optional argument. This fixes an error in the last commit. * tex.el (TeX-expand-list): Use it. 2004-04-27 Reiner Steib * tex-buf.el (TeX-style-check, TeX-output-style-check): Check for source special stuff here instead of `TeX-expand-list'. Honor `TeX-source-specials-places'. * tex.el (AUCTeX): Fix URL. (TeX-default-mode, TeX-force-default-mode, TeX-install-font-lock) (TeX-source-specials-active-flag): Changed custom group. (TeX-expand-list): Move source special stuff to `TeX-style-check' and `TeX-output-style-check'. (TeX-source-specials-tex-flags): Make it customizable. (TeX-source-specials-places): New variable. (TeX-source-specials-viewer-flags): No IFS needed anymore. 2004-04-26 Reiner Steib * context.el (context-guess-current-interface): Simplify code. 2004-04-25 Ralf Angeli * tex-info.el (texinfo-mode): Make last change in `font-lock-defaults' compatible with Emacs 20. * latex.el (LaTeX-fill-region-as-paragraph): Indent lines ending with `\\' upon filling a region. (LaTeX-fill-region): Prevent infinite loop at end of buffer. 2004-04-24 David Kastrup * style/natbib.el ("natbib"): Add fontification for regexps. Patch by Thomas Baumann. 2004-04-24 Ralf Angeli * tex-info.el (texinfo-mode): Set `font-lock-defaults' as in `texinfo.el'. This way we get e.g. syntax-highlighting of comments in Texinfo mode. 2004-04-24 Reiner Steib * tex.el (TeX-toggle-source-specials) (TeX-maybe-set-source-specials, TeX-source-specials-check-xdvi): New (renamed) functions. (TeX-source-specials-active-flag, TeX-source-specials-tex-flags) (TeX-source-specials-viewer-flags) (TeX-source-specials-check-function, TeX-source-specials-xdvi-p): New (renamed) variables. Tried to clarify doc-strings and variable names. 2004-04-23 David Kastrup Source special support by Dan Nicolaescu : * tex.el (TeX-command-list): start viewer with TeX-run-discard (TeX-expand-list): Add source special flags to viewer call. (TeX-expand-list): Add source special flags to LaTeX call. Various new functions. (TeX-current-file-name-master-relative): New function replacing TeX-current-file-name-nondirectory (which is not really needed, I guess). This change sole fault of dak. (TeX-mode-specific-command-menu-entries): Source Special entry. 2004-04-23 Ralf Angeli * latex.el (LaTeX-fill-region-as-paragraph): Fix call to `indent-region' for "older" Emacsen. (LaTeX-mode-menu): Fix menu extension for customization. * context.el (ConTeXt-mode-menu): Fix menu extension for customization. * tex-info.el (TeXinfo-insert-environment): Support enclosure of a selected region by the environment to be inserted. Don't eat newline at the end of the environment. (TeXinfo-mode-map): Bind `C-c C-e' to `TeXinfo-insert-environment' analogous to LaTeX mode. 2004-04-21 Ralf Angeli * style/slides.el: Remove obsolete SliTeX-related code and replace it by minimal support for slides.cls. * latex.el: Change spaces to tabs in indentation. (LaTeX-fill-region-as-paragraph): Filling is disabled for environments listed in `LaTeX-indent-environment-list'. To be consistent with filling of other environments where indentation occurs, at least indent those environments. * tex.el: Change spaces to tabs in indentation. 2004-04-20 Reiner Steib * tex.el (TeX-output-view-style): Move "dvips && gv" element to the top of the list (not shadowed by a4paper anymore). Added "pst-" in this element. 2004-04-20 Ralf Angeli * latex.el (LaTeX-current-environment): Respect value of `LaTeX-syntactic-comments' and mode by narrowing the region if necessary and checking necessary conditions. Use `TeX-forward-comment-skip' and `TeX-backward-comment-skip' for narrowing. (LaTeX-find-matching-end): Ditto. (LaTeX-find-matching-begin): Ditto. (docTeX-in-macrocode-p): New function. * tex.el: More checkdoc-related fixes. 2004-04-20 David Kastrup * style/natbib.el: Patch from Thomas Baumann for \bibpunct. * Makefile.in (STYLESRC): Add style/beamer.el. * style/beamer.el: Support file contributed by Thomas Baumann. 2004-04-19 Reiner Steib * tex.el, latex.el: Make almost checkdoc clean. See "FIXME" for remaining issues. * context.el, context-en.el, context-nl.el: Reindent. Coding conventions fixes (but files are still far from being checkdoc clean). 2004-04-19 Berend de Boer * context-en.el (ConTeXt-default-environment-en): added default environment for en interface. * context-nl.el (ConTeXt-default-environment-nl): added default environment for nl interface. * context.el (ConTeXt-default-environment): now depends on language. 2004-04-16 Ralf Angeli * tex.el (TeX-view-style): Enhance documentation string. (TeX-output-view-style): Ditto. 2004-04-16 Reiner Steib * tex-info.el (TeXinfo-command-menu): Use `TeX-mode-specific-command-menu'. * tex-jp.el (plain-TeX-mode-command-menu) (LaTeX-mode-command-menu): Ditto. 2004-04-16 David Kastrup * Makefile.in (STYLESRC): Add jura.el and alphanum.el style/jura.el, style/alphanum.el: contributed by Frank Küster. 2004-04-16 Berend de Boer * context.el (context-guess-current-interface): support for recognizing interface=XX in comment to determine language to use. * tex.el (TeX-format-list): recognize ConTeXt dutch interface. * Makefile.in: AUCSRC includes the new context-en.el and context-nl.el. Ditto fo AUCELC. * context.el: English interface macro's moved to context-en.el. All defmacro's are now replaced by defvars which are set to the proper language dependent interface as a local buffer variable. Some changes to make the context mode actually multi-lingual. (ConTeXt-mode-common-initialization): new routine with initialization common to all ConTeXt modes. (context-mode): guesses current interface for en and nl interfaces. (context-guess-current-interface): new routine that determines what ConTeXt language interface is in use. * context-nl.el: new file containing Dutch interfaces macro's previously in context.el. Use context-nl-mode to activate. * context-en.el: new file containing English interfaces macro's previously in context.el. Use context-en-mode to activate. 2004-04-15 Ralf Angeli * tex.el (TeX-mode-specific-command-menu): Now holds the logic for returning a Command menu definition suitable for different Emacs versions. Its original content is now in the function `TeX-mode-specific-command-menu-entries'. (TeX-mode-specific-command-menu-entries): New function. (plain-TeX-mode-command-menu): Simply use `TeX-mode-specific-command-menu' instead of the logic which now is part of it. (AmSTeX-mode-command-menu): Ditto. * latex.el (LaTeX-mode-command-menu): Ditto. * context.el (ConTeXt-mode-command-menu): Ditto. 2004-04-14 Reiner Steib * doc/Makefile.in (clean): Remove *.tmp (created with auc-tex.ps). * doc/.cvsignore: Added *.tmp. * .cvsignore: Revert 2004-04-12 change. Added README. * Makefile.in (tar-ball): .nosearch is not useful here. 2004-04-13 David Kastrup * aclocal.m4: Try something in AC_FULL_EXPAND that does not require bash. Replace ' with quote in EMACS_LISP Correct a few instances of misspelled AUCTeX. 2004-04-13 Reiner Steib * Makefile.in (DOCFILES, EXTRAFILES): Added files needed for the configure based installation. 2004-04-12 Reiner Steib * Makefile.in (dist): Split into `check-dist', `release-commit' and `tar-ball'. (snapshot): New. Use `check-dist' and `tar-ball'. (release-commit): Fix mail address. (REMOVE, MINMAPSRC, min-map): Removed. (DIST_PREFIX): Derive FTPDIR and WWWDIR from this. * doc/Makefile.in (dist): Use INSTALL and INSTALL.windows instead of INSTALLATION. * doc/.cvsignore: Added INSTALL, INSTALL.windows, auc-tex.ps * .cvsignore: Removed INSTALL, INSTALL.windows. 2004-04-12 Ralf Angeli * latex.el (LaTeX-syntactic-comments): New name. Formerly known as `LaTeX-format-comment-syntax-aware'. This should better reflect the meaning the variable will receive eventually. (LaTeX-indent-line): Use new name. (LaTeX-current-indentation): Ditto. (LaTeX-back-to-indentation): Ditto. (LaTeX-fill-paragraph): Ditto. (doctex-mode): Ditto. * context.el (context-mode): Use `LaTeX-syntactic-comments' instead of `LaTeX-format-comment-syntax-aware'. 2004-04-10 Ralf Angeli * doc/auc-tex.texi (Japanese): Refer to `INSTALL' instead of `INSTALLATION'. * doc/intro.texi: Refer to `INSTALL' and `INSTALL.windows' instead of `INSTALLATION'. * IRIX: Removed. * Makefile.in (EXTRAFILES): Removed IRIX. * COPYING: Updated to current incarnation. 2004-04-09 Reiner Steib * Makefile.in (install-el, dist): Add .nosearch in style/ and auto/. 2004-04-09 Ralf Angeli * context.el (ConTeXt-current-interface): eval-and-compile instead of eval-when-compile seems to solve the undefined error message. 2004-04-08 Peter S Galbraith * font-latex.el (font-latex-setup): Bug Fix; was overriding font-latex-string-face. Thanks to Reuben Thomas for finding the bug. 2004-04-08 Jan-Åke Larsson * configure.in: Remove sole reference to texmfdir * aclocal.m4: Fix --with-lispdir 2004-04-08 Ralf Angeli * latex.el (LaTeX-fill-paragraph): Fix check for code comment. (LaTeX-fill-code-comment): Ditto. * tex.el (TeX-in-commented-line): Don't alter match data. Fixes problems with `LaTeX-find-matching-end'. (TeX-in-line-comment): Ditto. (Prophylactic.) 2004-04-08 Berend de Boer * latex.el (LaTeX-outline-name): could reach past end of buffer when an imenu was created and LaTeX-outline-regexp contained a macro that either didn't take a argument between braces or a macro was found in the document and the user forgot to specify the argument. And that macro was after the last 20 characters of the buffer. * context.el (ConTeXt-current-interface): eval-when-compile this variable fixed another reported compiliation error. 2004-04-07 Reiner Steib * latex.el (LaTeX-default-position, LaTeX-env-array) (LaTeX-env-tabular*): Implement "don't prompt" option. * doc/auc-tex.texi (Tabular-like): Added `LaTeX-default-format' and `LaTeX-default-position'. 2004-04-07 Ralf Angeli * latex.el (LaTeX-fill-break-at-separators): New name. Formerly known as `LaTeX-fill-distinct-contents'. Changed 'braced and 'math options to various symbols for opening and closing separators (braces, brackets, math switches) which can be activated independently. (LaTeX-fill-move-to-break-point): Use it. * doc/auc-tex.texi (Marking and formatting): Reflect change of `LaTeX-fill-distinct-contents' to `LaTeX-fill-break-at-separators'. Describe `LaTeX-fill-break-before-code-comments'. 2004-04-07 David Kastrup * tex-buf.el (TeX-run-command): Turn off line number mode in the run-buffer effectively by setting line-number-display-limit locally to 0. (TeX-format-filter): Use a more sophisticated procedure for fishing out page numbers in order to have fast matches. 2004-04-07 Berend de Boer * Lots of enhancements to context.el. There is now a ConTeXt specific menu which lists ConTeXt specific macro's for inserting start/stop pairs, project structure and setup of things. Menu also let's you jump to the etexshow definition if you have that installed. Querying for macro parameters is non-existent or flaky. outline and imenu support added. You can close an XML tag if you're editing XML in ConTeXt with C-c /. List of environments is now complete. Paragraph formatting works in certain cases, but is really slow or doesn't work in certain cases. Indenting the same: works sometimes, but still flaky. Bugs fix: start/stop insertion works now. * documentation now mentions ConTeXt sometimes. * context.el (ConTeXt-current-interface): make now doesn't complain anymore when byte compiling ConTeXt. * tex.el now recognizes ConTeXt dutch interface. 2004-04-05 Ralf Angeli * latex.el (LaTeX-fill-code-comment): Respect `indent-tabs-mode'. Fix partially taken from GNU Emacs' fill.el. * tex.el (TeX-mode-specific-command-list): New function. (TeX-mode-specific-command-menu): Use it. * tex-buf.el (TeX-command-query): Use `TeX-mode-specific-command-list' to get a command list specific to the current mode for command completion. 2004-04-04 Ralf Angeli * latex.el (docTeX-indent-inner-fixed): New var. (LaTeX-indent-calculate): Use it. (LaTeX-indent-calculate-last): Reset indentation to zero after macrocode environments. * style/booktabs.el (TeX-add-style-hook): Add fontification support. 2004-04-04 David Kastrup * latex.el (LaTeX-find-matching-end, LaTeX-find-matching-end): Try to keep track of in-comment-ness 2004-04-03 David Kastrup * Makefile.in (STYLESRC): Add emp.el. * style/emp.el: New file contributed from Yvon Hevel. 2004-04-02 Ralf Angeli * latex.el (LaTeX-back-to-indentation): Use `beginning-of-line' instead of `move-to-left-margin' as it is faster and we don't use the margin anyway. (LaTeX-fill-region-as-para-do): Use `point-max' for correctly determining the end of the filling loop in case of a code comment. Narrow to region in any case to simplify this determination in case there is no code comment. (LaTeX-fill-move-to-break-point): Fix compatibility code for getting the initial break point. In case there is no valid break point on the way towards the beginning of the line, look down the line. 2004-03-28 Ralf Angeli * tex.el (TeX-output-view-style): Remove option for landscape in case of PDF output. 2004-03-26 David Kastrup * latex.el (LaTeX-fill-region): Correct percentage display. * tex-buf.el (TeX-format-filter): Strictly restrict backward searches for page number patterns. 2004-03-26 Davide G. M. Salvetti * bib-cite.el, latex.el, tex-buf.el, tex-jp.el, tex.el: Map (function (lambda ...)) to (lambda ...) for better readability. * doc/.cvsignore: Added CHANGES, HISTORY, README, auc-tex*.html. * doc/intro.texi: Minor fix. 2004-03-26 Ralf Angeli * latex.el (LaTeX-indent-line): Use `looking-at' instead of `re-search-forward'. Pass indent amount to `LaTeX-indent-{inner,outer}-do' functions. (LaTeX-indent-inner-do, LaTeX-indent-outer-do): Let them be called with an explicit parameter for the indent amount. (LaTeX-indent-calculate-last): Distinguish a commented and an uncommented line when skipping backwards to the preceding line. Move tests for comment skips into the `cond' statement for better readability. (LaTeX-fill-break-before-code-comments): New customize option. (LaTeX-fill-region-as-paragraph): Change the regular expression which is used for searching for special line ends so that it is not such a performance hog. Code for determining the region to fill was adapted accordingly. (LaTeX-fill-region-as-para-do): Remove trailing whitespace after newlines were changed to spaces. Reported by Reiner Steib . Use `narrow-to-region' for keeping track of potential code comment starts. Break a line at the last non-comment word before a code comment. This can be configured with `LaTeX-fill-break-before-code-comments'. (LaTeX-fill-move-to-break-point): Use `LaTeX-back-to-indentation' for going to the right start of a line. (LaTeX-fill-paragraph): `LaTeX-backward-paragraph' does not skip forward over empty lines itself anymore, so do it here. (LaTeX-fill-region): Use `LaTeX-forward-paragraph' and `LaTeX-backward-paragraph' instead of the old code which determined paragraph boundaries manually. (LaTeX-forward-paragraph, LaTeX-backward-paragraph): Improve handling of paragraph commands. (LaTeX-paragraph-command-p): Get rid of the test for the opening brace because there doesn't have to be one. (LaTeX-find-macro-start): New function. (LaTeX-find-macro-end): New function. * .cvsignore: Added `tex-site.el'. 2004-03-23 David Kastrup * tex.el (VirTeX-common-initialization): Back out last change about sentence-end-double-space. 2004-03-22 Jan-Åke Larsson * aclocal.m4, configure.in: Fix bug for the case $prefix=NONE * Makefile.in: distclean target removes tex-site.el 2004-03-22 David Kastrup * latex.el (LaTeX-fill-distinct-contents): Simplify customization type: nil is a complete list. 2004-03-21 David Kastrup * tex.el (VirTeX-common-initialization): Set sentence-end-double-space and sentence-end to more appropriate values for TeX. 2004-03-21 Ralf Angeli * latex.el (LaTeX-fill-region-as-paragraph): Fix separation of lines with code comments looking like " {%". (LaTeX-fill-move-to-break-point): Fix determination of break point for an opening brace where there is no break point immediately after the respective closing brace. (LaTeX-fill-region-as-para-do): Fix determination of code comment begin in filling loop. 2004-03-20 Ralf Angeli * latex.el (LaTeX-fill-region-as-para-do): Fix compatibility code for older Emacsen. 2004-03-19 David Kastrup * tex-site.el.in (texinfo-mode): Autoload tex-info again. I suppose we will get to know why it was disabled when someone complains. 2004-03-19 Davide G. M. Salvetti * doc/Makefile.in (clean): Add HISTORY. * tex.el (TeX-lisp-directory): Removed, it's already defined in tex-site.el.in. 2004-03-19 Ralf Angeli * latex.el (LaTeX-current-environment): Use correct regexp for determination of a comment. (LaTeX-format-comment-syntax-aware): Renamed from `LaTeX-fill-comment-syntax-aware' because it affects both filling and indentation. (LaTeX-indent-line): Add support for doing outer and inner indentation. (LaTeX-current-indentation): Ditto. (LaTeX-back-to-indentation): Ditto. (LaTeX-indent-calculate): Ditto. (LaTeX-indent-calculate-last): Ditto. Fix indentation for environments mentioned in `LaTeX-document-regexp' which use an unclosed brace in the first line. (LaTeX-indent-inner-do): New function. (LaTeX-indent-outer-do): New function. (LaTeX-fill-region-as-paragraph): Include lines with code comments in regions to be filled. Recognize lines ending with `\par' as boundaries for filling. (LaTeX-fill-region-as-para-do): Better handling of code comments. (LaTeX-fill-paragraph): Make function more readable by selecting different filling methods by a `cond' statement and putting code for the determination of the region to fill in case of syntax-aware filling into the separate functions `LaTeX-forward-paragraph' and `LaTeX-backward-paragraph'. Better handling of code comments. (LaTeX-fill-code-comment): New function. (LaTeX-forward-paragraph): New function. (LaTeX-backward-paragraph): New function. (LaTeX-paragraph-command-p): New function. (LaTeX-common-initialization): Let `paragraph-start' handle comments preceded by whitespace as well. (LaTeX-fill-move-to-break-point): Support `\[' and `\]' as well if `LaTeX-fill-distinct-contents' is activated. * tex.el (tex-mode): `comment-start-skip' shouldn't match line beginnings. (VirTeX-common-initialization): Ditto. (TeX-in-line-comment): New function. (TeX-forward-comment-skip): Use correct regexp for determination of a comment. Fix case where `count' is less than zero, i.e. if a backward search is performed. (TeX-backward-comment-skip): New function. * doc/auc-tex.texi: Reflect name change of `LaTeX-fill-comment-syntax-aware' to `LaTeX-format-comment-syntax-aware'. 2004-03-18 Jan-Åke Larsson * Makefile.in, configure.in, tex-site.el, tex-site.el.in: Move tex-site.el to tex-site.el.in, generate tex-site.el at configure time rather than at install time 2004-03-18 Ralf Angeli * tex.el (TeX-output-view-style): Use `%f' instead of `%s.ps' for PostScript files. (TeX-mode-map): Change key binding of `TeX-master-file-ask' to `C-c_' because `C-c-' is already taken by RefTeX. * doc/auc-tex.texi: Change "Formatting" node to "Running TeX and friends" and use a respective heading. Adapt key binding for `TeX-master-file-ask'. * doc/intro.texi: Correct URLs. 2004-03-14 David Kastrup * tex.el (TeX-command-list): Change interactive calls to use \input, so that pdflatex \pdfoutput=0 becomes a legal way to call LaTeX. (VirTeX-common-initialization): Save TeX-master if desktop package is used. 2004-03-14 Ralf Angeli * tex.el (TeX-output-view-style): Fix it after it was accidently and incorrectly changed with the last check-in. Patch by David Kastrup . (TeX-view-style): Ditto. 2004-03-11 Ralf Angeli * tex.el (TeX-find-opening-brace): Don't match the char before the brace. This returns the correct position and fixes the handling of the limit parameter. * latex.el (LaTeX-fill-move-to-break-point): Don't match the char before the char to find in case of backward searches. (LaTeX-fill-region-as-paragraph): Make the regular expression, which serves searching for lines with code comments, match the whole line. 2004-03-10 Ralf Angeli * latex.el (LaTeX-fill-move-to-break-point): Use `TeX-esc' in other, similar places not covered by the last check-in as well. * doc/auc-tex.texi: Document `LaTeX-indent-environment-list', `LaTeX-fill-comment-syntax-aware' and `LaTeX-fill-distinct-contents' as well as slightly improve some other parts in the section about `Marking and formatting'. 2004-03-10 David Kastrup * latex.el (LaTeX-fill-move-to-break-point): Use TeX-esc in regexps to accommodate Texinfo better. (LaTeX-fill-move-to-break-point): no regexp-quote within braces. (LaTeX-common-initialization): Correct \multicolumn prompt 2004-03-09 Ralf Angeli * latex.el (LaTeX-fill-move-to-break-point): Cope with unmatched closing braces when `LaTeX-fill-distinct-content' is enabled for braced content. 2004-03-09 Jan-Åke Larsson * Makefile.in: Add separate target for .el files to cater for debian 2004-03-07 Ralf Angeli * style/booktabs.el: New file. * Makefile.in (STYLESRC): Add `booktabs.el'. * doc/changes.texi: Advertise support for `booktabs.sty'. 2004-03-06 Ralf Angeli * doc/auc-tex.texi: Small corrections in `Viewing' section. 2004-03-02 Jan-Åke Larsson * doc/Makefile.in: Add packagedir 2004-03-02 Ralf Angeli * latex.el (LaTeX-insert-environment): Fix insertion of newlines for the case where `LaTeX-insert-into-comments' is activated but point is not inside a comment. 2004-02-28 David Kastrup * Makefile.in (install-lisp): Overwrite old tex-site.el if it has the "Don't edit" comment in it. Rename it otherwise. Use $(auctexdir) instead of $(lispdir) for replacing @AUCTEX. * tex-buf.el (TeX-command-query): Allow doctex-mode for .bbl file checking. * tex-site.el: Discourage customization in-file. * latex.el (LaTeX-outline-regexp, LaTeX-environment) (LaTeX-document-style-hook): Change docs to refer to document classes instead of document style. (LaTeX-env-document): Don't insert anything but document class. (LaTeX-menu-update): Check for doctex-mode. (doctex-mode): Make it a major mode derived from latex-mode. 2004-02-28 Ralf Angeli Merge with new-fill branch. 2004-02-27 Jan-Åke Larsson * configure.in: Respect --infodir even if using xemacs. * aclocal.m4: Add yes/no answer for the MULE check. * Makefile.in: Correct xemacs-install. * Makefile.in, aclocal.m4, configure.in: If there is a wrongly installed tex-site.el, use the proper install directory anyway (i.e., don't be side-tracked), and remove the wrongly installed tex-site.el. These things are only needed for CVS users who have used the erroneous xemacs-installation. 2004-02-27 Ralf Angeli * latex.el (LaTeX-mode-menu): Insert customize option and rearrange. (LaTeX-fill-move-to-break-point): Bandaid for not breaking inside square brackets where the content fits into one line. * tex.el (plain-TeX-mode-menu): Insert customize option. * doc/auc-tex.texi: Document options for inserting quotes in files where `(n)german.sty' is used and the invocation of external viewers. 2004-02-26 Ralf Angeli * latex.el (LaTeX-fill-break-before-macro) (LaTeX-fill-break-after-macro): Unused, so removed. (LaTeX-fill-distinct-contents): New name for defcustom `LaTeX-fill-break-before-and-after'. (LaTeX-fill-move-to-break-point): Fix filling of nested braces and math. (TeX-find-closing-brace, TeX-find-opening-brace) (TeX-forward-comment-skip): Moved to `tex.el'. * tex.el (TeX-find-closing-brace, TeX-find-opening-brace) (TeX-forward-comment-skip): Moved from `latex.el'. 2004-02-26 David Kastrup * latex.el (doctex-mode): Make a minor mode. * tex-site.el (doctex-mode): Add autoloads and file extensions. * tex.el (TeX-master-file): Don't overwrite TeX-master when not asking the question. 2004-02-22 David Kastrup * latex.el (LaTeX-newline): New function. Spread it throughout the code in order to stay in comments for completion and insertion commands. (doctex-mode): New function. 2004-02-19 David Kastrup * latex.el (LaTeX-fill-paragraph): Back out changes from 2003-12-29. Create separate new-fill branch for Ralf's code. 2004-02-17 Reiner Steib * font-latex.el (font-latex-title-4-face): Added missing :weight and :inherit for color displays. 2004-02-15 Peter S Galbraith * bib-cite.el (bib-cite-fontify-help-as-bibtex) (bib-cite-fontify-help-as-latex): Check existence of font-lock-unset-defaults; no longer defined in CVS Emacs. Thanks to Adrian Lanz for reporting the problem. 2004-02-15 Reiner Steib * font-latex.el (font-latex-title-4-face): Use different colors depending on background. 2004-02-03 Ralf Angeli * tex.el (TeX-comment-region): Map to `comment-region' instead of `TeX-comment-or-uncomment-region'. (TeX-uncomment-region): New name for `TeX-un-comment-region'. Not mapped to `TeX-comment-or-uncomment-region' anymore. (TeX-uncomment): New name for `TeX-un-comment'. Use `TeX-uncomment-region' instead of `uncomment-region' which is not available in Emacs 20. (TeX-comment-or-uncomment-paragraph): New name for `TeX-comment-paragraph' which explains its function better. Use new name `TeX-uncomment'. (TeX-mode-map): Bind key chains to `TeX-comment-or-uncomment-*' functions. (plain-TeX-mode-menu): Adapt function calls in menu entries. * tex-info.el (TeXinfo-mode-map): Bind key chains to `TeX-comment-or-uncomment-*' functions. (TeXinfo-mode-menu): Adapt function calls in menu entries. * latex.el (LaTeX-mode-menu): Adapt function calls in menu entries. Small enhancements. * doc/auc-tex.texi (Commenting): Adapt documentation to reflect changes in commenting interface. 2004-01-31 Ralf Angeli * tex.el (TeX-comment-or-uncomment-region): New function or alias respectively introduced to obtain compatibility with GNU Emacsen before 21.4. (TeX-uncomment-region): New function or alias respectively introduced to obtain compatibility with GNU Emacsen before 21(.1?). (TeX-comment-region): Bound to `TeX-comment-or-uncomment-region'. (TeX-un-comment-region): Bound to `TeX-comment-or-uncomment-region'. 2004-01-27 Masayuki Ataka * tex-jp.el (TeX-command-list): Fixed previous change. 2004-01-25 Masayuki Ataka * tex-jp.el (japanese-TeX-command-list): Remove dummy code for command menu. 2004-01-23 Masayuki Ataka * tex-jp.el (japanese-TeX-command-list): Change single quotes to double. We get reasonable results under both Windows and Unix. See also log of TeX-command-list in tex.el on 2002-12-19. * tex.el (TeX-toggle-off-input-method): Removed some Japanese input methods (Canna, Wnn, SKK) because their code is copied from YaTeX, which is not GPL program. Toggle off CJK (Chinese, Japanese, Korean) input methods in LEIM. (TeX-math-toggle-off-input-method): Doc fix. 2004-01-13 Ralf Angeli * latex.el (LaTeX-mode-menu): Removed menu filters in the submenus for inserting and modifying environments which call `LaTeX-menu-update'. (LaTeX-common-initialization): Add `LaTeX-menu-update' to `activate-menubar-hook' instead. 2004-01-12 Ralf Angeli * tex.el (TeX-view-style, TeX-output-view-style): Use a regexp which matches `a5', `a5comb' and `a5paper' instead of the old which matches only `a5'. 2004-01-12 Ralf Angeli * tex.el (TeX-command-menu-name): New constant. (TeX-mode-specific-command-menu): Reimplemented the loop which builds the menu. (TeX-mode-command-menu): Use new constant and call `TeX-mode-specific-command-menu' via `:filter'. (AmSTeX-mode-command-menu): Ditto. * context.el (ConTeXt-mode-command-menu): Use new constant `TeX-command-menu-name' and call `TeX-mode-specific-command-menu' via `:filter'. * latex.el (LaTeX-mode-command-menu): Ditto. * tex-info.el (TeXinfo-mode-command-menu): Ditto. * tex-jp.el (plain-TeX-mode-command-menu) (LaTeX-mode-command-menu): Ditto. 2004-01-10 Ralf Angeli * doc/changes.texi: Added further news. 2004-01-09 Ralf Angeli * doc/auc-tex.texi: AUC TeX to AUCTeX. Use `%%%' instead of a single `%' character in examples for Local Variables. Add information about new behavior in respect to the query for the master file. Explain new function `TeX-master-file-ask'. * doc/changes.texi: Advertise new master file behavior. Remove news about new commenting behavior which is not true anymore. * doc/intro.tex.: AUC TeX to AUCTeX. * tex.el (TeX-local-master-p): Removed one `%' character in regexp to let it find "% TeX-master:" as well. 2004-01-07 Ralf Angeli * tex.el (TeX-command-list): Changed defcustom definition to one which allows the specification of several modes for one command and adapted the defaults to it. Thanks to David Kastrup for most of the code. (plain-TeX-command-menu): Adapted the call to `TeX-mode-specific-command-menu'. (AmSTeX-mode-command-menu): Ditto. * latex.el (LaTeX-mode-command-menu): Adapted the call to `TeX-mode-specific-command-menu'. * context.el (ConTeXt-mode-command-menu): Ditto. * tex-info.el (TeXinfo-mode-command-menu): Ditto. * tex-jp.el (japanese-TeX-command-list): Adapted list entries according to defcustom changes in `tex.el'. (plain-TeX-mode-command-menu): Adapted the call to `TeX-mode-specific-command-menu'. (LaTeX-mode-command-menu): Ditto. * tex-mik.el (TeX-command-list): Adapted list entries according to defcustom changes in `tex.el'. * tex-fptex.el (TeX-command-list): Ditto. 2004-01-06 Ralf Angeli * tex.el (TeX-command-list): Get rid of the superfluous sixth element in the defcustom and menu/command definitions. * tex-jp.el (japanese-TeX-command-list): Ditto. * tex-mik.el (TeX-command-list): Ditto. * tex-fptex.el (TeX-command-list): Ditto. 2004-01-05 David Kastrup * latex.el (LaTeX-common-initialization): Add \item to the paragraph starters. 2004-01-05 Ralf Angeli * tex.el (TeX-mode-specific-command-menu): New function to be used for generating a mode-specific command menu. (plain-TeX-mode-map): New map to be used by plain-tex-mode. (plain-TeX-mode-command-menu): New menu used instead of `TeX-mode-menu' which utilizes `TeX-mode-specific-command-menu'. (TeX-mode-menu): Removed in favor of `plain-TeX-mode-command-menu'. (AmSTeX-mode-map): New map to be used by ams-tex-mode. (AmSTeX-mode-command-menu): New menu. (ams-tex-mode): Moved and grouped with other AmSTeX-related code. Added code to use new menu. (TeX-command-list): Added new choice for the selection of the mode for the respective command. Adapted doc string. Added respective symbols to command definitions. Rearranged command definitions. Changed `LaTeX PDF' to `PDFLaTeX'. * latex.el (LaTeX-mode-command-menu): New menu used instead of `TeX-mode-menu'. (LaTeX-common-initialization): Activate it. * context.el (ConTeXt-mode-command-menu): New menu used instead of `TeX-mode-menu'. (context-mode): Activate it. * tex-info.el (TeXinfo-command-menu): Adapted for using `TeX-mode-specific-command-menu'. * tex-jp.el (japanese-TeX-command-list): Added symbols to command definitions needed for assigning them to the respective mode. (TeX-mode-menu): Removed. (plain-TeX-mode-command-menu): New menu utilizing `TeX-mode-specific-command-menu'. (LaTeX-mode-command-menu): New menu utilizing `TeX-mode-specific-command-menu'. (LaTeX-mode-map): Removed key definition for `TeX-mode-menu'. * tex-fptex.el (TeX-command-list): Added symbols to command definitions needed for assigning them to the respective mode. Changed `LaTeX PDF' to `PDFLaTeX'. * tex-mik.el (TeX-command-list): Ditto. * doc/changes.texi: Mention the change to a mode-specific command menu and the need for the deletion of any former customization of `TeX-command-list'. 2004-01-03 Ralf Angeli * tex.el (TeX-mode-map): Use `C-c -' as a key binding for `TeX-master-file-ask' as `C-c !' is already used in `context.el'. 2004-01-02 David Kastrup * latex.el (LaTeX-left-comment-regexp) (LaTeX-right-comment-regexp, LaTeX-ignore-comment-regexp): revert an inadvertant change two checkins ago. I was just experimenting with something that did not yet work (as if the original did) and did not intend checking it in. 2003-12-30 Ralf Angeli * tex.el (TeX-master-file): Added new parameter `ask' which is to be used if the user shall be asked when the function is called. Took out the code which provides the functionality for asking the respective question and added it to the newly created function `TeX-master-file-ask'. (TeX-master-file-ask): New function. (TeX-local-master-p): New function. (tex-mode): Removed the call of `TeX-master-file' via the hook `hack-local-variables-hook'. (VirTeX-common-initialization): Added the call to `TeX-master-file' via the hook `find-file-hooks'. Additionally `TeX-update-style' will be called to activate the respective style files. (TeX-mode-map): Added key binding for calling `TeX-master-file-ask'. This is a temporary solution. (TeX-mode-menu): Took out redundant entry for `TeX-home-buffer'. Added entry "Set Master File" for `TeX-master-file-ask'. Grouped menu entries relevant for multifile handling. * latex.el (LaTeX-mode-menu): Changed analogously to `TeX-mode-menu'. 2003-12-29 David Kastrup * latex.el: Fix AUCTeX URL. (LaTeX-fill-paragraph): Skip from inline comments to either line comments or something that is not merely an inline comment. I am not even sure that this skipping makes good sense, in particular since it is followed by `forward-paragraph'. (LaTeX-common-initialization): Change the definitions of `paragraph-start' and `paragraph-separate' to something that makes things like `forward-paragraph' and its ilk behave more sensibly when in comments. The previous behavior is just awful, and caused a lot of inadvertant damage when using things like `fill-paragraph' within comments. (LaTeX-common-initialization): Remove syntax error, sorry. 2003-12-29 David Kastrup * latex.el: Fix AUCTeX URL. (LaTeX-fill-paragraph): Skip from inline comments to either line comments or something that is not merely an inline comment. I am not even sure that this skipping makes good sense, in particular since it is followed by `forward-paragraph'. (LaTeX-common-initialization): Change the definitions of `paragraph-start' and `paragraph-separate' to something that makes things like `forward-paragraph' and its ilk behave more sensibly when in comments. The previous behavior is just awful, and caused a lot of inadvertant damage when using things like `fill-paragraph' within comments. 2003-12-26 Ralf Angeli * style/scrbase.el (TeX-add-symbols): Remove redundant entries. * style/scrlttr2.el (TeX-add-symbols): Remove redundant entry. * style/scrpage2.el: Remove unnecessary coding cookie and text in introductory comment. 2003-08-02 Mike Sperber * latex.el (latex-mode): Really turn off filladapt. It just doesn't work with `LaTeX-fill-paragraph'. 2003-12-02 Ralf Angeli * tex.el (tex-mode): Let `TeX-master-file' be called upon opening a file. This shall restore the behaviour before the last change regarding the question for `TeX-master'. Thanks to Peter Galbraith for setting the patch right. 2003-11-28 David Kastrup * tex.el (LaTeX-update): Advice removed because of the following: * latex.el (LaTeX-menu-update): Now called via :filter predicate of menus. 2003-11-27 Ralf Angeli * style/paralist.el: Removed coding cookie in first line. Removed obsolete comment regarding placement of file. (LaTeX-paralist-env-item-opt-label): Renamed from `pl-LaTeX-env-item-opt-label' and changed references accordingly. Added docstring. Let `itemize' and `enumerate' environments use this function. Thanks to Reiner Steib for these suggestions. 2003-11-26 Reiner Steib * latex.el (LaTeX-section-label): Added "part" and "subsubsection". Sync "chapter" with fancyref.sty. * style/fancyref.el ("fancyref"): Added font-lock keywords. 2003-11-25 Reiner Steib * latex.el (LaTeX-math-default): Added greek \var... symbols. (LaTeX-common-initialization): Removed "SLiTeX", added spacing commands and "appendix". * font-latex.el (font-latex-match-function-keywords): Added spacing commands, "nonumber", "centering", "TeX", and "LaTeX". (font-latex-match-textual-keywords): Added textsuperscript. 2003-11-17 Ralf Angeli * Makefile.in (STYLESRC): Added scrpage2.el. 2003-11-17 Peter S Galbraith * font-latex.el (font-latex-keywords-2): Had forgotten to set LAXMATCH on all title matches. Thanks to Ralf Angeli for reporting the bug. * bib-cite.el (bib-cite-file-directory-p): New functions. I had introduced a call to code from ff-paths.el by mistake. 2003-11-17 Ralf Angeli * style/scrbase.el (TeX-add-style-hook): Added further symbols to `TeX-add-symbols' and rearranged them alphabetically. Added macros with parameters to `font-latex-match--keywords-local'. Added `addsec' and `addpart' to `font-latex-match-title--keywords-local'. * style/scrbook.el (TeX-add-style-hook): Analogous. * style/scrlttr2.el (TeX-add-style-hook): Analogous. * style/scrreprt.el (TeX-add-style-hook): Analogous. * style/scrpage2.el: New file. 2003-11-16 Ralf Angeli * tex.el (VirTeX-common-initialization): Disabled lines which set `comment-add' to 1 to restore commenting with a single `%'. (TeX-un-comment-region): Function code removed and function name mapped to `comment-dwim'. (TeX-un-comment): Allow searching for commented lines with potential white space at the beginning. (TeX-comment-paragraph): Partially rewritten to allow it to be used for both commenting and uncommenting. (TeX-in-commented-line): New function used in `TeX-comment-paragraph'. * doc/auc-tex.texi (Commenting): Reflect changes in `tex.el'. 2003-11-13 Ralf Angeli * style/paralist.el: New file. * Makefile.in (STYLESRC): Added paralist.el. 2003-10-18 Peter S Galbraith * font-latex.el: checkdoc cleaning (almost clean now). 2003-09-18 Peter S Galbraith * font-latex.el (font-latex-quotes): New defcustom to fontify either french or german quotes. (font-latex-quote-regexp-beg): New variable. Holds the regexp to match the beginning of a quote. (font-latex-quote-end-list): New variable. Holds the list of strings to end a matched quote. (font-latex-match-quotation): Fixed to use above variables. 2003-09-18 Peter S Galbraith * bib-cite.el: bib-cite-aux-inputs: new defcustom. Minor code cleanup for `match-string'. 2003-09-15 Reiner Steib * tex.el (TeX-master-file): Fix 'shared case. Tiny patch from Shiro Takeda . 2003-09-08 Peter S Galbraith * bib-cite.el: Ripping out off-topic imenu code. 2003-09-07 Peter S Galbraith * font-latex.el: Bug fix when font-lock-multiline is set to t. 2003-08-21 Reiner Steib * Changelog: Added coding cookie. * doc/Makefile.in (install): Check if auctex-* exists. Needed because default split size changed in texinfo 4.6. 2003-07-25 Peter S Galbraith * font-latex.el: Make & highlighted in font-latex-warning-face. Better document font-latex-match-*-keywords-local variables. 2003-07-20 Masayuki Ataka * configure.in: Use mule support check. * Makefile.in (CONTRIB_MULE, COMPILE_MULE, CONTRIB_MULEELC): New macros. (contrib): Compile CONTRIB and COMPILE_MULE. (install-contrib): Install CONTRIB_MULE and CONTRIB_MULEELC, too. * aclocal.m4 (EMACS_CHECK_MULE): Check (X)Emacs mule supported. * Makefile.in (clean): Remove Emacs auto-save files. Remove elc files in the current and style directory. 2003-06-21 Masayuki Ataka * Makefile.in: Delete trailing whitespaces. * tex.el (TeX-near-bobp): Undo last change. * tex-jp.el: Fix some document. (AUCTeX-jp): New custom group. (japanese-TeX-command-default, japanese-LaTeX-command-default) (japanese-LaTeX-default-style, japanese-LaTeX-style-list): Support for defcustoms. 2003-06-14 David Kastrup (tiny patch from Stephen Gildea) * tex.el (TeX-auto-untabify): Change default to nil. * doc/auc-tex.texi (Parsing Files): document this. 2003-06-07 David Kastrup * tex.el (TeX-lisp-directory, TeX-auto-global, TeX-style-global) (TeX-auto-local, TeX-style-local, TeX-macro-private) (TeX-load-style, TeX-parse-path, TeX-run-style-hooks) (TeX-auto-write, TeX-auto-generate, TeX-auto-generate-global) (TeX-ignore-file, TeX-search-files): try catering with Windows file names. (TeX-directory-absolute-p): removed, since file-name-absolute-p serves the same purpose. 2003-06-06 Jan-Åke Larsson * Makefile.in: Added datadir 2003-06-05 Masayuki Ataka * latex.el (LaTeX-env-label): Toggle off input method when entering math mode. * style/amsmath.el (LaTeX-amsmath-env-alignat) (LaTeX-amsmath-env-aligned): Ditto. * tex.el (TeX-toggle-off-input-method): Removed interactive. (TeX-math-input-method-off): New function. (TeX-insert-dollar): Use it. Do not call function TeX-toggle-off-input-method directly. 2003-06-03 Masayuki Ataka * tex.el (TeX-macro): Set group 'AUCTeX. 2003-06-03 David Kastrup * latex.el (LaTeX-mode-menu): Replace "Change Font" with "Replace Font" * tex-info.el (TeXinfo-mode-menu): Same here. * doc/tex-ref.tex (section{Font Selection}): Same here. 2003-06-03 Masayuki Ataka * tex.el (TeX-math-toggle-off-input-method): New user option. (TeX-toggle-off-input-method): New function. (TeX-insert-dollar): Use it. 2003-06-02 Masayuki Ataka * tex.el (TeX-near-bobp): Fixed typo in doc-string. 2003-05-27 Piet van Oostrum * latex.el (LaTeX-auto-minimal-regexp-list): Changed regexp to allow \documentclass[]{someclass}. 2003-05-02 Patrick Gundlach * context.el: ConTeXt-environment can now modify the current environment. Added preliminary functionality for calling a function on an environment. ConTeXt-mark-environment, ConTeXt-find-matching-stop and ConTeXt-find-matching-start (similar to the ones in latex.el) added. 2003-04-15 Reiner Steib * doc/wininstall.texi: Fixed typos in configure options. 2003-04-15 Patrick Gundlach * tex.el (TeX-command-list): Changed %v to %V in View. Now TeX-output-view-style is used for setting viewer preferences. See changes from 2003-02-06 below. 2003-04-15 Reiner Steib * .cvsignore: Added INSTALL and INSTALL.windows * Makefile.in (STYLESRC): Added captcont.el and subfigure.el 2003-04-15 Jan-Åke Larsson * doc/wininstall.texi: Corrected download info for GNU Emacs 2003-04-14 Peter S Galbraith * font-latex.el (font-latex-match-*-keywords): New user customizable variables to add fontification keywords. See `M-x customize-group [RET] font-latex'. (font-latex-match-*-keywords-local): New buffer-local variables to be used by elisp style file writers. (font-latex-match-*-keywords-set): Support for defcustoms. (font-latex-match-*-make): Build the actual font-lock variables from the `font-latex-match-*-keywords' defcustoms. 2003-04-14 David Kastrup * doc/install.texi (Customizing): hilit-LaTeX.el deleted. 2003-04-14 Jan-Åke Larsson * autogen.sh: Generate INSTALL and INSTALL.windows * doc/Makefile.in: Use the configure compatibility test results * doc/macros.texi: Compatibility macros, initial version * configure.in: Do the makeinfo tests, for compatibility with texinfo 3.12, test for tex * doc/install.texi: Changed to document the autoconf stuff * doc/wininstall.texi: Added 2003-04-10 David Kastrup * tex.el (AUCTeX): Fix URLs. * context.el: Fix AUCTeX URL. Make modification date RCS tag. 2003-04-09 Patrick Gundlach * tex.el (TeX-command-list): Changed ConTeXt Clean from purge to purgeall; I guess this behaves as users would expect. * context.el: minor cleanups, switched to the name "AUCTeX" where not done yet. Made ConTeXt-add-environments able to byte-compile. Added new copyright statement. * Makefile.in: Added context.el(c) 2003-04-09 Jan-Åke Larsson * aclocal.m4: More sane emacs-macro path-searching. 2003-04-07 David Kastrup * tex.el (TeX-kpathsea-directory-alist): Fix bad kpathsea searchpath name for LaTeX files. 2003-04-03 Jan-Åke Larsson * aclocal.m4: Make the emacs-macro path-searching tests run, and make EMACS_PROG_EMACS fail gracefully when no binary executable is found. 2003-03-29 David Kastrup * tex-buf.el (TeX-run-discard): Use `call-process' instead of `start-process' in order to completely detach a process. (TeX-region-extra): Make empty by default since code was not working with plain or ConTeXt. 2003-03-24 Masayuki Ataka * Makefile.in (CONTRIB): Remove hilit-LaTeX.el because it is obsolete. (contrib): Remove compile code for hilit-LaTeX.el. 2003-03-13 David Kastrup * style/german.el (LaTeX-german-quote-after-quote) (LaTeX-german-open-quote, LaTeX-german-close-quote): New variables to initialize quote stuff from. If you set these in file local variables, they will propagate accordingly to `TeX-quote-after-quote' et al. * style/ngerman.el (LaTeX-german-quote-after-quote) (LaTeX-german-open-quote, LaTeX-german-close-quote): the same. 2003-02-25 David Kastrup * Makefile.in (dist): Version info in tex.el gets automatically calculated from CVS tags. * tex.el: Some changes for dir slashiness. (TeX-master-directory): return a proper directory name, not a file name. * tex-buf.el (TeX-quote-filename): Return the changed file! Yikes! How could this ever have worked? 2003-02-24 David Kastrup * tex.el (AUCTeX-version): Generate automatically from CVS variables. (TeX-master-directory): somewhat more defensive version (final goal is to be able to make a TeX minor mode). 2003-02-22 David Kastrup * tex-wizard.el: A first sketch of the idea. 2003-02-17 Piet van Oostrum * tex.el (TeX-arg-literal): Remove illegal and superfluous &optional. * latex.el (TeX-arg-free): Remove illegal and superfluous &optional. 2003-02-17 David Kastrup * font-latex.el (font-latex-find-matching-close): Remove a very complicated way of doing nothing since the byte compiler warns about it. 2003-02-15 David Kastrup * tex.el (LaTeX): Change :prefix field to LaTeX. (TeX-auto-add-type): Make more readable and place doc string indicating the origin into generated functions. * font-latex.el (font-latex-setup): Try to behave better when the interesting newlines in verbatim environments get moved. Probably not the ultimate solution. * tex-site.el: AUC TeX to AUCTeX, new header. * Makefile.in: AUC TeX to AUCTeX. * latex.el: AUC TeX to AUCTeX, new header. * tex-buf.el (TeX-quote-filename): New function. (TeX-region-create): Use it so that Windows can talk about its master files properly. (TeX-help-error): Try not to have "log file has changed" messages. AUC TeX to AUCTeX, new header. * tex.el: AUC TeX to AUCTeX, new header. * auc-old.el: AUC TeX to AUCTeX, new header. * README.CVS: Check in a first version. Ok, it currently contains a few lies, but the basics are not wrong, and hopefully we will have soon what it takes to make it true. * doc/auc-tex.texi: Name change of AUC TeX to AUCTeX. A few other cleanups. * configure.in, Makefile.in, doc/Makefile.in: everything moves to autoconf, fix a few things. * Makefile, doc/Makefile: deleted. 2003-02-14 Patrick Gundlach * context.el: Added basic environment support (insert-envrionment and close-environment). Added basic interface support. * tex.el, latex.el : moved TeX-arg-literal and TeX-near-bopb from latex.el to tex.el. More will follow. 2003-02-13 David Kastrup * Makefile.in (clean): Remove .elc files. (distclean): new target. * aclocal.m4 (EMACS_EXAMINE_PACKAGEDIR): make this work properly more or less. (EMACS_CHECK_AUCTEX): use auctexdir instead of AUCTEXDIR (synch with preview-latex aclocal.m4) and strip trailing slash. 2003-02-11 Peter S Galbraith * hilit-LaTeX.el: Removed. It's obsolete. Use font-latex.el instead. 2003-02-11 Patrick Gundlach * tex.el (TeX-command-list): Changed TeX-run-LaTeX to TeX-run-TeX. * tex-buf.el (TeX-run-TeX): TeX-run-TeX gets the TeX-sentinel-function from the major mode, so TeX-run-LaTeX and alike won't be needed if they don't need to do something fancy. Defaliased TeX-run-LaTeX to TeX-run-TeX. (TeX-run-interactive): Uses TeX-sentinel-default-function instead of TeX-sentinel-function. * latex.el (latex-mode): Sets TeX-sentinel-default-function instead of TeX-sentinel-function. * tex-mik.el (TeX-command-list): Changed TeX-run-LaTeX to TeX-run-TeX. * tex-fptex.el (TeX-command-list): Changed TeX-run-LaTeX to TeX-run-TeX. 2003-02-08 Patrick Gundlach * tex-site.el: Added simple ConTeXt support. * latex.el (latex-mode): Added explicit set of TeX-sentinel-function to be used in TeX-run-interactive. * tex-buf.el: Added TeX-run-ConTeXt. Removed explicit call to TeX-LaTeX-sentinel in TeX-run-interactive. The sentinel-function is now inherited from the buffer calling TeX-run-interactive. Hopefully this won't break anything. * tex.el: Adapted TeX-command-list for ConTeXt support. Interfaces for texexec and texutil added. Nonstopmode (texexec) and purge (texutil) won't work right with current ConTeXt versions. This will be fixed in ConTeXt versions later than Feb 2003. * context.el: basic support for ConTeXt added. New sentinel-functiont that is different from the LaTeX one. 2003-02-08 pvoostrum * tex.el: Added missing semicolon in TeX-command-output-list. * tex.el: Changed defcustom to defvar. 2003-02-08 Piet van Oostrum * tex.el (TeX-output-extension, TeX-view-extension): Changed defcustom into defvar, as these are intermediate variables. 2003-02-07 Piet van Oostrum * tex.el (TeX-command-output-list): Corrected customization widget. 2003-02-06 Piet van Oostrum * tex-buf.el (TeX-save-document, TeX-command-query) (TeX-output-style-check, TeX-run-format, TeX-TeX-sentinel-check): Added support for pdftex (and others) (TeX-run-set-command, TeX-output-extension) (TeX-view-extension, TeX-view-output-file): new functions. * tex.el (TeX-output-extension, TeX-view-extension) (TeX-output-view-style, TeX-command-output-list): new variables (TeX-expand-list): adapted for pdf output. 2003-01-31 Jan-Åke Larsson * configure.in: Use new lispdir check. * aclocal.m4: Some cleaning of macro names. Windows quoting by David Kastrup . Also, lispdir now checks (x)emacs load-path instead of physical disk content. * Makefile.in: Fix infodir 2003-01-30 Piet van Oostrum * tex-buf.el (TeX-parse-error): Exclude { and } from filenames to improve parsing of error messages from pdftex. 2003-01-24 Reiner Steib * tex.el (TeX-kpathsea-path-delimiter, TeX-search-files-kpathsea): Fixed braces. 2003-01-22 David Kastrup * tex.el (TeX-search-files): Check in first version of kpathsea support. This implementation does not yet cooperate properly with TeX-auto-generate-* 2003-01-18 David Kastrup * configure.in: Announce AUC TeX, not preview. 2003-01-16 Reiner Steib * style/varioref.el ("varioref"): Fixed typo. * Makefile.in (ELCC): `-no-init-file' is the same as `-q' 2003-01-15 Jan-Ake Larsson * configure.in, aclocal.m4: Compatibility fix * aclocal.m4 (AC_PROG_EMACS): New. File is now identical to that of preview-latex. * configure.in: Use it 2003-01-08 Jan-Ake Larsson * Makefile.in: From Makefile * configure.in, aclocal.m4, autogen.sh: Initial version * mkinstalldirs, install-sh: Prepare for autoconf 2002-12-29 David Kastrup * tex.el: Add support for Info-goto-emacs-command-node and similar. 2002-12-19 David Kastrup * tex-buf.el (TeX-home-buffer): Don't home to deleted buffers. * tex.el (TeX-command-list): Change single quotes to double. That way, we will get reasonable results under both Windows and Unix. File names with double quotes in them will break stuff, just like file names with single quotes in them did so previously. Tough. 2002-12-18 David Kastrup * tex-buf.el (TeX-run-shell): Start shell from TeX process buffer in order to inherit environment from there (like cwd). (TeX-run-discard): Same here. (TeX-run-shell, TeX-run-discard): Rather let default-directory temporarily: we may not have a TeX process buffer! 2002-12-17 Masayuki Ataka * all.el: Removed. unrelated to TeX mode. OBSOLETE files (all.el, auc-menu.el, maniac.el, and outln-18.el) are available at: 2002-12-15 David Kastrup * Makefile (dist): Correct zip file name. 2002-12-15 Masayuki Ataka * Makefile (MINMAPSRC): Remove auc-menu.el, maniac.el, and outln-18.el. 2002-12-15 David Kastrup * auctex.spec (Release): Well, change version number. retag. * Version 11.14 released. 2002-12-15 Masayuki Ataka * auc-menu.el: Removed. Taken into Emacs and unused. * maniac.el: Ditto. * outln-18.el: Ditto. 2002-12-15 David Kastrup * Makefile: some changes for my setup. 2002-12-14 David Kastrup * graphicsx.el: removed. superseded by graphicx.el and unused. 2002-12-13 Reiner Steib * latex.el (LaTeX-label): Added completing for labels. Avoid inserting an empty label. 2002-12-12 Reiner Steib * style/amsopn.el ("amsopn"): Added \operatorname. 2002-12-12 David Kastrup * doc/auc-tex.texi (top): Change "version 12" to "almost 12". This is beta, after all. 2002-12-12 Masayuki Ataka * tex-jp.el (japanese-LaTeX-style-list): Remove styles overlapped with LaTeX-style-list. Append values to LaTeX-style-list instead of overwriting. (japanese-latex-mode-initialization): Do not overwrite LaTeX-style-list. 2002-12-11 Reiner Steib * bib-cite.el: Updated URLs. * doc/intro.texi: Ditto. * font-latex.el: Ditto. * latex.el: Ditto. * tex.el: Ditto. * style/amsmath.el (LaTeX-amsmath-label): Improved doc-string. * doc/auc-tex.texi (Equations): New @subsection documenting LaTeX-equation-label, LaTeX-eqnarray-label and LaTeX-amsmath-label. 2002-12-11 Masayuki Ataka * tex-jp.el (japanese-LaTeX-default-style) (japanese-LaTeX-style-list): remove buffer-local declarations where they don't make sense. 2002-12-10 David Kastrup * doc/changes.texi: Some more news. * doc/auc-tex.texi: Start talking about version 12 (which will be the next stable release). (European): Talk a bit about LaTeX2e stuff, and don't talk about too ancient XEmacsen. Also mention X-Symbol. * doc/Makefile (install): Create infodir if not existent. 2002-12-10 Reiner Steib * font-latex.el (font-latex-match-textual): Fixed typo in doc-string. * latex.el (LaTeX-section-label): Fixed typos in doc-string. 2002-12-10 David Kastrup * latex.el (LaTeX-label): Fix a thinko/type where label would be non-nil in cases where a label should not be asked for. 2002-12-10 Reiner Steib * style/amsmath.el (LaTeX-amsmath-label): New variable. ("amsmath"): Add environments to LaTeX-label-alist. 2002-12-10 Masayuki Ataka * tex-jp.el: Remove if statement for Emacs 19. Fix lots of white spaces. 2002-12-09 David Kastrup * latex.el (LaTeX-optop, LaTeX-optcl, LaTeX-default-options, LaTeX-figure-label, LaTeX-table-label, LaTeX-equation-label, LaTeX-eqnarray-label, LaTeX-style-list): remove buffer-local declarations where they don't make sense. 2002-12-09 Reiner Steib * latex.el (LaTeX-style-list): Added some supported classes. Fixed a typo. * style/amsmath.el ("amsmath"): environment "xxalignat*" doesn't exist. (LaTeX-amsmath-env-alignat): environment "xxalignat" should not get a \label. * Makefile (BATCH): Added `-no-site-file' to batch options. 2002-12-07 David Kastrup * font-latex.el (font-latex-setup): Better stab at verbatim handling. * tex-buf.el (TeX-region-create): Make file name in !name messages relative to master file directory. 2002-12-06 David Kastrup * latex.el: Lots of doc fixes/white space. Did the mistake of running checkdoc. Not clean yet, but different. (LaTeX-label-alist): New buffer-local variable for label prefixes lookup. (LaTeX-label): Use it. 2002-11-25 David Kastrup * latex.el (TeX-arg-define-index): correct typo. 2002-11-25 Per Abrahamsen * Version 11.13 released. 2002-11-25 Per Abrahamsen * tex.el: Fixed CVS merge error. * Version 11.12 released. 2002-10-28 David Kastrup * Makefile (prefix): Revert accidental change to /usr/local/emacs-21 (sorry folks). 2002-10-26 David Kastrup * Makefile (STYLESRC): Add style/scrlttr2.el 2002-10-26 Mark Trettin * style/scrbase.el: Added optional Argument "Pagenumber" to \maketitle. Changed \textsubscript from `t' to "Text". * style/scrlttr2.el: Initial version. * style/scrbase.el: Added additional clearpage commands: \cleardoublestandardpage \cleardoubleplainpage and \cleardoubleemptypage 2002-10-24 Masayuki Ataka * latex.el (LaTeX-env-contents): New function. (LaTeX-common-initialization): Added 26 LaTeX commands, 2 LaTeX2e environments, and 41 LaTeX2e commands. 2002-10-08 David Kastrup * style/scrreprt.el, style/scrbase.el, style/scrartcl.el, style/scrbook.el: header comments refer to COPYING. 2002-10-02 David Kastrup * Makefile (STYLESRC): Add compilation targets for Komascript support. * Check in Komascript support by Mark Trettin. See below. 2002-09-28 Mark Trettin * scrbase.el: First attempt on implementing the `captionbeside'-Environment. I'm not really satisfied by now. 2002-09-27 Mark Trettin * scrreprt.el, scrbook.el: Reformatted code. * scrbase.el: Fixed Typos in comments and escape characters in function docstrings. Thanks to Reiner Steib. Reformatted code. * scrbase.el: Changed `uppertitleback', `lowertitleback' from asking to just `t' * scrbase.el: Changed `addpart', `addsec' and `minisec' from Macro to sectioning command. * scrreprt.el, scrbook.el: Changed `addchap' from Macro to sectioning command. 2002-09-26 Mark Trettin * scrartcl.el: LaTeX-section-list removed. * scrartcl.el: Initial version. Testing LaTeX-section-list. * scrbase.el: Initial version of the base file. * scrreprt.el, scrbook.el: Initial version. * scrbook.el, scrbase.el, scrreprt.el, scrartcl.el: 2002-09-22 David Kastrup * tex.el: Apply spelling fixes from "Davide G. M. Salvetti" to tex.el. 2002-03-24 David Kastrup * tex-buf.el (TeX-parse-TeX): Make subordinate files without major mode default to that of the calling file when doing error processing. 2002-03-21 Per Abrahamsen * tex-site.el (eamcs-major-version): Changed if to when. Suggested by Martin Thornquist . 2002-03-15 David Kastrup * tex.el (TeX-master-file): Don't make C-c ` bomb out in files like xxx.gls. Probably a more elaborate way would be to export the TeX-master variable into files visited by error parsing. Could be incorrect, however, if more than one file included them. 2002-02-15 Per Abrahamsen * tex.el (TeX-auto-generate): Expand file name. Suggested by "Dr. Mark A. Friedman" . * latex.el (LaTeX-common-initialization): Set `fill-paragraph-function'. (LaTeX-mode-map): Don't bind M-q. Suggested by Nils Klarlund . * tex.el (TeX-printer-list): Fixed spelling. Reported by Nils Klarlund . 2002-02-14 Per Abrahamsen * tex.el: Fixed some spelling errors. Patch by "Davide G. M. Salvetti" . 2002-01-24 Per Abrahamsen * Version 11.11 released. 2002-01-24 Masayuki Ataka * tex.el (TeX-format-list): Support t(article|report|book) class file. Reported by Atsuhito Kohda * tex-jp.el (japanese-TeX-command-list): Undo last change. (LaTeX-command-style): Support t(article|report|book) class file. (japanese-LaTeX-style-list): Ditto. Reported by Atsuhito Kohda 2002-01-21 Peter S Galbraith * font-latex.el: Updated to V0.800. Added font-lock-syntactic-keywords to font-lock-defaults to handle verbatim environment, as suggested by Stefan Monnier 5 years ago (!) * bib-cite.el: Updated to V3.17. XEmacs has imenu after all. 2002-01-21 Masayuki Ataka * tex.el (TeX-format-list): Fix problem that AUC TeX switch to JLATEX mode if the class file starts with the letter `j'. Reported by Joe Reinhardt . * tex-jp.el (LaTeX-command-style): Support js(article|book). 2002-01-21 Atsuhito Kohda (tiny change) * tex-jp.el (japanese-TeX-command-list): Use `%l' instead of [pj]latex command. 2002-01-18 Per Abrahamsen * tex.el (LaTeX-command-style): Fix comment. Reported by Atsuhito Kohda via. Debian. * latex.el (LaTeX-outline-name): Allow longer names. Reported by "Michael Soulier" via. Debian. 2001-12-22 Per Abrahamsen * latex.el (LaTeX-imenu-create-index-function): Strip text properties. Reported by Venkatesh Prasad Ranganath . 2001-12-13 Per Abrahamsen * style/prosper.el: New file. Contributed by Phillip Lord . * Makefile (STYLESRC): Added it. 2001-11-27 Per Abrahamsen * Version 11.10 released. 2001-11-26 Per Abrahamsen * Version 11.09 released. 2001-11-26 Per Abrahamsen * auc-old.el (insert-mode-line): Use `insert' instead of `insert-string'. 2001-10-27 Per Abrahamsen * latex.el (LaTeX-ignore-comment-regexp): Doc fix. Reported by Reuben Thomas . 2001-11-16 David Kastrup * tex-buf.el (TeX-process-check): We didn't catch the case where during the question a different process got started in the buffer. In that case, we just ask again. 2001-11-06 David Kastrup * tex-buf.el (TeX-command-sentinel): insert post-mortem info before any markers in order to keep markers/point at end of file. 2001-11-02 Masayuki Ataka * style/graphicx.el (TeX-arg-includegraphics): Accept prefix argument and find all files. dvipdfm image file support. 2001-10-19 Masayuki Ataka * tex-jp.el (japanese-TeX-command-list): Fixed for mendex. * doc/auc-tex.texi (Japanese): Doc fix. 2001-10-17 Per Abrahamsen * Version 11.08 released. 2001-10-17 Per Abrahamsen * doc/intro.texi, doc/install.texi: Updated contact info. Reported by Henrik Holm . 2001-10-16 Per Abrahamsen * Version 11.07 released. 2001-10-16 Per Abrahamsen * tex.el (VirTeX-common-initialization): Set `comment-add' in order to get "%%" by default by comment region like Lisp mode. Suggested by "Davide G. M. Salvetti" . Change `comment-indent-hook' to `comment-indent-function'. 2001-10-15 Peter S Galbraith * font-latex.el: Remove self-installation to LaTeX-mode-hook now that TeX-install-font-lock does it. 2001-10-15 Per Abrahamsen * Version 11.06 released. 2001-10-15 Per Abrahamsen * tex.el: Removed font lock support. (TeX-install-font-lock): New option. (VirTeX-common-initialization): Call it. * tex-font.el: New file. 2001-10-13 David Kastrup * tex-buf.el (TeX-current-offset): The number of things that can go wrong for a simple task like determining the current line number is simply amazing. count-lines skips over newlines in intangible text-properties or overlays. Fixed for GNU Emacs, don't know whether XEmacs has problems with it. 2001-10-13 Per Abrahamsen * Version 11.05 released. 2001-10-12 David Kastrup * tex-buf.el (TeX-run-command): Let the TeX-process-buffer acquire a buffer-local value of TeX-command-buffer so that its sentinel will still refer to the right buffer even if another compilation has been started. (TeX-run-interactive): Same here. (TeX-process-check): Don't bomb out when user does not want to kill a process that has died on its own in the meantime. 2001-10-11 Per Abrahamsen * tex.el (TeX-auto-local, TeX-style-local): Doc fix: Mention that these should be relative. Suggested by . 2001-10-09 Per Abrahamsen * Version 11.04 released. 2001-10-09 Per Abrahamsen * tex.el (TeX-view-style): New option. (TeX-expand-list): Use it. (TeX-command-list): Use it. 2001-10-05 Per Abrahamsen * Version 11.03 released. 2001-10-05 Per Abrahamsen * style/amsmath.el ("amsmath"): More items. Patch by Masayuki Ataka . 2001-10-04 Per Abrahamsen * tex-buf.el (TeX-LaTeX-sentinel): Use `with-current-buffer'. * tex-buf.el (TeX-LaTeX-sentinel): Use the value of `TeX-command-BibTeX' in `TeX-command-buffer'. Patch by Katsuaki KAWACHI . * tex-fptex.el: New file. Contributed by Fabrice Popineau . * Makefile (CONTRIB): Added it. 2001-10-04 Peter S Galbraith * multi-prompt.el (multi-prompt-next): fixed for emacs-21. Use minibuffer-contents-no-properties to get minibuffer contents if it exists. 2001-10-03 Per Abrahamsen * Version 11.02 released. 2001-10-03 Per Abrahamsen * latex.el (LaTeX-top-caption-list): New option. (LaTeX-env-figure): Use it. Patch by ataka@milk.freemail.ne.jp (Masayuki Ataka). * style/graphicx.el (TeX-string-numberp): New function. (TeX-arg-includegraphics): Call it. Patch by ataka@milk.freemail.ne.jp (Masayuki Ataka). * style/verbatim.sty: New file. Contributed by ataka@milk.freemail.ne.jp (Masayuki Ataka). * tex-info.el (texinfo-mode): Comment out cindex. Reported by Kai.Grossjohann@CS.Uni-Dortmund.DE (Kai Großjohann) * style/amsmath.el (LaTeX-item-equation, LaTeX-item-equations): New functions. ("amsmath"): Add new item types. Patch by ataka@milk.freemail.ne.jp (Masayuki Ataka). 2001-10-02 Per Abrahamsen * Version 11.01 released. 2001-10-01 Per Abrahamsen * latex.el (LaTeX-submenu-name-format): Fixed spelling error. Reported by Martin.Quinson@ens-lyon.fr. 2001-10-01 David Kastrup * tex-buf.el (TeX-region-create): Oops, broke more than I fixed. Offset calculation must be for the line following the offset message. This worked before since we always were in the middle of a line (only the offset calculation for the C-c C-r command itself was definitely sometimes wrong). Corrected that. * style/graphicx.el (TeX-arg-includegraphics): Fixed an obvious typo complained about by the byte-compiler. checkdoc removed a few spaces. * auc-old.el (TeX-region): Correct offset calculation. * tex.el (TeX-current-line): Correct line number calculation when at beginning of line for %n flag. Autoload TeX-current-offset for that if necessary. * tex-buf.el (TeX-current-offset, TeX-command-region, TeX-region-create): Correct offset calculations when not at start of line. New function TeX-current-offset for that. 2001-04-11 Per Abrahamsen * Version 10.0g released. 2001-04-11 Per Abrahamsen * tex-site.el: Don't enable tex-info.el by default. * latex.el (LaTeX-hide-environment): Disabled by default. Suggested by Christopher Allen . 2001-03-27 Per Abrahamsen * Version 10.0f released. 2001-03-27 Per Abrahamsen * tex.el (unless): Don't enable Emacs 21 font-lock for Emacs 20. (VirTeX-common-initialization): Ditto. 2001-03-26 Per Abrahamsen * Version 10.0e released. 2001-03-26 Per Abrahamsen * tex.el (TeX-expand-list): Changed default to lazy evaluation of `TeX-view-style' and `LaTeX-command-style'. Suggested by Peter Neergaard . * latex.el (LaTeX-indent-calculate, LaTeX-indent-calculate-last): Backindent when brace is at the start of a line. Patch by Masashi Shimbo . * doc/auc-tex.texi: Fixed dir entry. Reported by David Masterson . * tex-info.el (TeXinfo-mode-map): "\e\r" bound to `map', not `TeXinfo-mode-map'. Patch by Dan Nicolaescu . 2001-03-01 Hidenobu Nabetani * tex-jp.el: Don't work correctly in current AucTeX. Patch by Masayuki Ataka and Yuzo Furukawa . Removed support for NEmacs and Mule1,2 which are based on Emacs 18 and 19. Created new variable japanese-TeX-command-list and added support for mendex. Updated LaTeX-auto-regexp-list variable. 2001-01-09 Per Abrahamsen * all: Changed `sunsite.auc.dk' to `sunsite.dk'. 2001-01-02 Per Abrahamsen * Version 10.0d released. 2001-01-02 Per Abrahamsen * tex-mik.el (TeX-command-list): Don't prompt for view. 2000-12-04 Per Abrahamsen * Version 10.0c released. 2000-12-04 Per Abrahamsen * tex.el: Avoid :inherit font property with Emacs 20. Reported by Damien WYART . 2000-12-01 Per Abrahamsen * Version 10.0b released. 2000-11-30 Per Abrahamsen * Version 10.0a released. 2000-11-30 Per Abrahamsen * tex.el: Copied Emacs 21 font-lock defs here. (VirTeX-common-initialization): Activate them. 2000-10-25 Per Abrahamsen * PROBLEMS: Updated. * WIN-NT: Removed. * MSDOS: Removed. * VMS: Removed. * OS2: Removed. * Makefile (EXTRAFILES): Removed above files. 2000-10-20 Per Abrahamsen * style/graphicx.el: Updated by author. Ryuichi Arafune 2000-10-19 Per Abrahamsen * style/graphics.el: New file. * Makefile (STYLESRC): Added it. * style/graphicx.el: Renamed from `style/graphicx.el'. * Makefile (STYLESRC): Updated. Reported by "Dr. Thomas Baumann" . 2000-10-09 Per Abrahamsen * Version 9.10t released. 2000-10-09 Per Abrahamsen * latex.el (LaTeX-outline-name): Don't escape `{' or `}' in regexps. Patch by "Stefan Monnier" . * tex-mik.el (TeX-command-list): Use `TeX-run-discard' for "View" command. Suggested by "Claus Dethlefsen" . * latex.el (LaTeX-common-initialization): `\bibitem' starts paragraphs, just like `\item'. Reported by Werner LEMBERG . 2000-10-06 Per Abrahamsen * tex.el (TeX-current-line): Return a string, not a number. Reported by Julia Habel . Patch by Dirk.Ullrich@DaimlerChrysler.com. 2000-06-15 Per Abrahamsen * tex-site.el: Require tex-mik after changing load-path. Reported by "I. Jossang" . 2000-06-13 Per Abrahamsen * IRIX: New file. * Makefile (EXTRAFILES): Added it. 2000-05-10 Per Abrahamsen * Version 9.10s released. 2000-05-03 Per Abrahamsen * Version 9.10r released. 2000-05-02 Per Abrahamsen * tex.el (TeX-mode-map): Don't bind `.' and `,' by default. 2000-05-03 Peter Galbraith * font-latex.el: file was broken. Updated to 0.701 (30 Mar 2000). * bib-cite.el: file was broken. Updated to 3.16 (20 Dec 99). 2000-04-14 Per Abrahamsen * Version 9.10q released. 2000-03-30 Per Abrahamsen * style/graphicsx.el: New file. * Makefile (STYLESRC): Added it. Donated by Ryuichi Arafune . 2000-04-14 Per Abrahamsen * Version 9.10q released. 2000-03-23 Per Abrahamsen * latex.el (LaTeX-math-keymap): Accept vector for `LaTeX-math-abbrev-prefix'. (LaTeX-math-insert-prefix): Better error message if `LaTeX-math-abbrev-prefix' is not bound. Reported by Jan Vroonhof . 2000-02-23 Per Abrahamsen * tex-info.el (TeXinfo-environment-list): Added more missing environments. Patch by Akim Demaille . 2000-02-22 Per Abrahamsen * tex-info.el (TeXinfo-environment-list): Add `group'. Patch by Akim Demaille . 2000-01-28 Per Abrahamsen * tex.el (TeX-command-list): Add `makeinfo --html' support. Suggested by Akim Demaille . 2000-01-20 Per Abrahamsen * tex-info.el (TeXinfo-mode-map): Added "\e\r" binding for `texinfo-insert-@item'. Reported by Akim Demaille . (TeXinfo-mode-menu, texinfo-mode): Changed menu name and mode name to `Texinfo'. Suggested by Akim Demaille . 1999-12-21 Per Abrahamsen * bib-cite.el: Updated to 3.16 (20 Dec 99). * font-latex.el: Updated to 0.700 (20 December 1999). 2000-03-30 Peter Galbraith * font-latex.el: Updated to 0.701 (30 Mar 2000). 2000-01-14 Peter Galbraith * bib-cite.el: Updated to 3.16 (20 Dec 99). * font-latex.el: Updated to 0.700 (20 Dec 99). * hilit-LaTeX.el: Changed author email address. 1999-12-20 Per Abrahamsen * Version 9.10p released. 1999-12-20 Per Abrahamsen * bib-cite.el: Updated to 3.15 (20 Dec 99). * tex-mik.el (TeX-command-list): Fixed default PDF LaTeX command. Reported by "Christian Schlauer" . * Version 9.10o released. 1999-12-20 Per Abrahamsen * bib-cite.el: Updated to 3.13 (20 Dec 99). 1999-12-11 Per Abrahamsen * style/danish.el ("danish"): Support Danish quotes. Suggested by arne@daimi.au.dk (Arne Jørgensen). 1999-12-03 Per Abrahamsen * tex-info.el (texinfo-mode): Added `kill-all-local-variables'. Reported by Stefan Monnier . * Version 9.10n released. 1999-12-03 Per Abrahamsen * tex-mik.el: Fixed typo. Reported by Bernt Guldbrandtsen 1999-12-01 Per Abrahamsen * Version 9.10m released. 1999-12-01 Per Abrahamsen * Makefile (AUCSRC, AUCELC): Added `tex-mik.el'. 1999-11-26 Per Abrahamsen * Version 9.10l released. 1999-11-26 Per Abrahamsen * latex.el (LaTeX-env-figure): Use `\centering' instead of `center' environment. Patch by Stefan Monnier . 1999-11-25 Per Abrahamsen * tex-mik.el (tex-mik): Add provide. * tex-site.el: Automatically require `tex-mik.el' under NT. 1999-11-12 Per Abrahamsen * tex.el (TeX-current-file-name-nondirectory): New function. (TeX-expand-list): Use it. 1999-11-10 Per Abrahamsen * doc/auc-tex.texi: Fixed references. Patch by Stefan Monnier . * tex.el (TeX-lisp-directory): Use `locate-library' to find default under Emacs. Patch by Stefan Monnier . (TeX-dwim-master): New function. (TeX-master-file): Use it. (TeX-master): Document it. Patch by Stefan Monnier . 1999-11-06 Per Abrahamsen * Version 9.10k released. 1999-11-06 Per Abrahamsen * latex.el: Use `indent-according-to-mode' instead of `LaTeX-indent-line'. (LaTeX-mode-map): Don't remap `TAB'. Patch by "Stefan Monnier ". 1999-11-03 Per Abrahamsen * tex.el (TeX-command-list): Added `LaTeX PDF' command. 1999-10-28 Per Abrahamsen * Version 9.10j released. 1999-10-27 Per Abrahamsen * Makefile (dist): Create a .nosearch in the style directory. (install-lisp): Ditto. Suggested by Markus Rost . 1999-10-26 Per Abrahamsen * Version 9.10i released. 1999-10-26 Per Abrahamsen * tex.el (TeX-master-directory): Call `substitute-in-file-name'. Patch by Alexander Holt . * style/ngerman.el: New style. Suggested by Torsten Schuetze . * Makefile (STYLESRC): Added it. * tex-buf.el (TeX-command-query): Added history argument. Suggested by Werner LEMBERG . * latex.el (LaTeX-environment): Added history argument. * tex.el (TeX-add-style-hook): Don't add the same hook twice. Suggested by Jarl Friis . * tex.el: Removed portability code for old Emacsen. 1999-10-25 Per Abrahamsen * Version 9.10h released. 1999-09-27 Per Abrahamsen * latex.el (LaTeX-auto-cleanup): Allow multiple packages for `usepackage'. Reported by Torsten Schuetze . (LaTeX-auto-cleanup): Also add "unmangled" documentstyle. Reported by Cyril Humbert . 1999-09-09 Per Abrahamsen * style/mdwlist.el: New file. Patch by Stephen Heilbronner . * Makefile (STYLESRC): Added it. 1999-08-20 Per Abrahamsen * Version 9.10g released. 1999-08-20 Hidenobu Nabetani * tex.el (TeX-format-list): Add "JLATEX" and "JTEX" which is needed to load tex-jp.el automatically. * tex-jp.el (TeX-format-list): Remove "JLATEX" and "JTEX". 1999-08-19 Per Abrahamsen * latex.el (LaTeX-hide-environment, LaTeX-show-environment): make them work with new outline mode. Reported by Thomas Schick . * tex.el (match-string): New compatibility function. Reported by Andrew Edward Santosa . 1999-08-18 Hidenobu Nabetani * tex-jp.el (TeX-command-list): Add "jLaTeX" and "pLaTeX". (TeX-mode-menu): Fix the problem that menu "TeX" is unchanged. (TeX-japanese-process-input-coding-system): Update for Emacs 20. (TeX-japanese-process-output-coding-system): Update for Emacs 20. (TeX-command-default): Change from "j-article" to "jarticle". (LaTeX-fill-region-as-para-do): Fix the problem that fill mode don't work in Emacs 20. 1999-07-16 Per Abrahamsen * Version 9.10f released. 1999-07-16 Per Abrahamsen * latex.el (LaTeX-auto-minimal-regexp-list): Recognize usepackage options. (LaTeX-auto-cleanup): Ditto. 1999-07-15 Per Abrahamsen * tex.el (TeX-ignore-file): Ignore babel, it loads everything. Reported by Mate Wierdl . * style/foils.el: Removed require 'latex. * style/natbib.el: Ditto. * style/harvard.el: Ditto. * style/slides.el: Ditto. * style/latexinfo.el: Ditto. Reported by Mate Wierdl . * Makefile (infodir, lispdir, aucdir, EMACS): Use `standard' values. Reported by Mate Wierdl . * tex-info.el (texinfo-mode): Fix doc string. Reported by Bob Weiner . 1999-05-17 Jerry James * tex.el: Fix two typos in comments. (set-text-properties): Protect against possible XEmacs version 21.13, 22.13, etc. 1999-05-14 Per Abrahamsen * latex.el (LaTeX-indent-environment-list): Customized. * Version 9.10e released. 1999-05-14 Per Abrahamsen * tex.el: (TeX-auto-generate): Reimplemented support for numeric `TeX-file-recurse'. (TeX-search-files): Ditto. 1999-05-03 Rune Kleveland * style/amsart.el ("amsart"): Load `amsthm.el'. * style/amsbook.el ("amsbook"): Ditto. 1999-03-29 Per Abrahamsen * Version 9.10d released. 1999-03-29 Per Abrahamsen * doc/changes.texi: Added extra `@'. * Version 9.10c released. 1999-03-19 Carsten Dominik * tex.el (TeX-insert-dollar): Better error message when trying to insert a dollar in math-mode. * texmathp.el (texmathp-tex-commands-default): Added more default macros. 1999-03-12 Carsten Dominik * latex.el (TeX-arg-index-tag): New function, to be used by the index.el and multind.el style files. (LaTeX-auto-index-regexp-list): Now matches both \index and \glossary. (TeX-arg-index): Renamed from TeX-arg-define-index. (TeX-arg-define-index): Now an alias for `TeX-arg-index'. (LaTeX-common-initialization): Added a regexp for index and glossary to `TeX-complete-list'. Added entry for glossary with `Tex-add-symbols'. * style/index.el: New file. * style/makeidx.el: New file. * style/multind.el: New file. * style/varioref.el: New file. * style/fancyref.el: New file. * Makefile (STYLESRC): Added `style/index.el', `style=makeidx.el', `style/multind.el', `style/varioref.el', `style/fancyref.el'. 1999-02-23 Per Abrahamsen * tex.el (TeX-search-files): `nconc' the result. Reported by Berwin Turlach . 1999-02-11 Per Abrahamsen * Version 9.10b released. 1999-02-11 Per Abrahamsen * doc/changes.texi: Typo: @ldots -> @dots. * Version 9.10a released. * doc/auc-tex.texi: Changed version to 9.10. * doc/history.texi: Ditto. * doc/changes.texi: Ditto. 1999-02-11 Per Abrahamsen * Version 9.9p released. 1999-02-08 Per Abrahamsen * tex-jp.el (TeX-format-list): Fix JLATEX format. Patch by Tsutomu OKUMURA . * style/foils.el (LaTeX-style-foils): Removed spurious `\n'. Reported by Bernt Guldbrandtsen . 1999-02-05 Per Abrahamsen * Makefile (install-contrib): Added `$(CONTRIBELC)' dependency. Suggested by Nils Ackermann . 1999-01-29 Per Abrahamsen * tex.el (TeX-search-files): `mapcar' instead of `mapcan'. 1999-01-12 Per Abrahamsen * tex.el (TeX-font-replace-macro): Renamed from `LaTeX2e-font-replace'. Use `TeX-esc'. * latex.el (LaTeX-common-initialization): Use it. * tex-info.el (texinfo-mode): Ditto. (TeXinfo-font-list): Add `delete'. Suggested by Christoph Wedler . 1999-01-11 Per Abrahamsen * Version 9.9o released. 1999-01-11 Per Abrahamsen * tex.el (TeX-insert-braces, TeX-command-list): Fixed custom types. Patch by Markus Rost . 1999-01-09 Christoph Wedler * latex.el (LaTeX2e-font-replace): Don't use hard-coded regexp for font commands, use local `TeX-font-list', i.e., `LaTeX-font-list'. 1999-01-05 Christoph Wedler * tex.el (TeX-load-style-file): Do not prevent .elc style files to be loaded if `TeX-byte-compile' is nil, just prevent compilation. (TeX-lisp-directory): Only use `locate-data-directory' if this function is defined and AucTeX is installed as an XEmacs package. 1998-12-12 Christoph Wedler * tex.el (load-path): Don't add `TeX-lisp-directory'. (TeX-lisp-directory): Use `locate-data-directory' if present. 1998-12-12 Per Abrahamsen * Version 9.9n released. 1998-12-12 Per Abrahamsen * tex.el (TeX-file-recurse): Added right parenthesis. Reported by Bernt Guldbrandtsen . 1998-12-11 Per Abrahamsen * Version 9.9m released. 1998-12-11 Per Abrahamsen * font-latex.el: Updated. * bib-cite.el: Ditto. * Version 9.9l released. 1998-12-01 Alastair Burt * doc/auc-tex.texi (Automatic): * lisp/tex.el: Extended the semantics of TeX-file-recurse -- now accepts a positive integer as a bound on the recursion. Functions TeX-search-files and TeX-auto-generate have been amended appropriately. 1998-11-23 Carsten Dominik * texmathp.el (texmathp): Added autoload cookie. 1998-11-20 Per Abrahamsen * Version 9.9k released. 1998-11-20 Per Abrahamsen * tex.el (TeX-load-style-file): Protect `byte-compile-file'. Reported by Kurt Swanson . * latex.el (LaTeX-outline-name): New function. (LaTeX-imenu-create-index-function): New function. (LaTeX-common-initialization): Use it. * tex-buf.el (TeX-run-interactive): Make sure buffer is writable (needed in Emacs 20.3). Reported by many. 1998-10-15 Per Abrahamsen * doc/auc-tex.texi (European): Removed references to obsolete packages. 1998-07-29 Per Abrahamsen * Version 9.9j released. 1998-07-29 Per Abrahamsen * tex-buf.el (TeX-run-ispell-on-document, TeX-ispell-document): New functions. * tex.el (TeX-command-list): Use them. Patch by Jason Stewart . * Version 9.9i released. 1998-07-29 Per Abrahamsen * tex.el (TeX-parse-macro, TeX-arg-string, TeX-parse-argument): If region is active, put it inside empty brackets. Patch by Peter Thiemann . 1998-07-16 Per Abrahamsen * tex.el (plain-TeX-auto-regexp-list): Add missing \\'es. Reported by Markus Rost t4287 . 1998-07-14 Per Abrahamsen * Version 9.9h released. 1998-07-14 Per Abrahamsen * tex.el (TeX-insert-dollar): Use `string-equal' to compare strings. Patch by Carsten Dominik . 1998-06-25 Per Abrahamsen * Version 9.9g released. 1998-06-25 Per Abrahamsen * latex.el (LaTeX-auto-index-regexp-list): Remove extra quote. Patch by Carsten Dominik . 1998-06-24 Per Abrahamsen * Version 9.9f released. 1998-06-24 Per Abrahamsen * latex.el (LaTeX-auto-index-regexp-list): Fix parentheses. * texmathp.el (texmathp): Use `if (not' instead of `unless'. Patch by Carsten Dominik . 1998-06-15 Per Abrahamsen * Version 9.9e released. 1998-06-15 Per Abrahamsen * doc/Makefile (auc-tex.ps): Use `-o' to specify output file. Suggested by Paul McJones . 1998-06-12 Carsten Dominik * latex.el (LaTeX-font-list): Default value now contains special math font commands. (LaTeX2e-font-replace): Added support for math fonts. * tex.el (TeX-font-list): Docstring changed. Extra prefix and suffix for math fonts allowed. (TeX-describe-font-entry): Adapted to extended `TeX-font-list'. (TeX-font): Detects math mode (using `texmathp') and inserts special math font commands when available. 1998-06-11 Carsten Dominik * tex.el: (TeX-insert-dollar): Rewritten with `texmathp'. (TeX-dollar-verify, TeX-locate-delimiter, TeX-bouncing-point): Obsolete functions removed. 1998-06-11 Carsten Dominik * latex.el: Made index entries available for global completion like labels and citation keys. (TeX-arg-index, TeX-arg-define-index): New functions. 1998-06-10 Carsten Dominik * natbib.el ("natbib"): Rewritten to allow for more flexible control of optional note arguments. New macros in NatBib 6 supported. Added support for RefTeX. 1998-06-10 Per Abrahamsen * Version 9.9d released. 1998-06-10 Per Abrahamsen * texmathp.el: New version from Dominik. * Version 9.9c released. 1998-06-10 Per Abrahamsen * tex.el (texmathp): Added autoload. (TeX-math-mode-p): Deleted. (TeX-parse-macro): Use `texmathp' instead of `TeX-math-mode-p'. * texmathp.el: New file by Carsten Dominik . * Makefile (AUCSRC): Added. (AUCELC): Added. 1998-06-05 Per Abrahamsen * tex.el (TeX-expand-list): Add `%n' escape. (TeX-current-line): New function. Suggested by "Lee, Sang-Min" . * doc/auc-tex.texi: Doc fixes by Gustavo Chaves . * doc/intro.texi: Ditto. * doc/install.texi: Ditto. 1998-05-16 Per Abrahamsen * latex.el: Checkdoc'ed. 1998-04-29 Per Abrahamsen * doc/README: Update iesd->sunsite in addresses. 1998-04-03 Per Abrahamsen * doc/Makefile (auc-tex.ps): Cut of the first two lines. 1998-03-29 Carsten Dominik * latex.el (LaTeX-section-section): When RefTeX is available, notify it about the new section. 1998-03-04 Per Abrahamsen * doc/math-ref.tex (section{Symbols}): Wrong keybindings. Reported by "Ron Smith" . 1998-02-27 Soren Dayton * tex.el (TeX-load-style): Also look in master directory. 1998-02-27 Per Abrahamsen * tex.el (TeX-insert-punctuation): Only expand abbrevs when abbrev mode is on. Suggested by Alastair Burt . 1998-02-25 SL Baur * doc/auc-tex.texi: Add direntry section for automatic installation. 1998-02-25 Per Abrahamsen * Version 9.9b released. 1998-01-02 John Griffith * latex.el (LaTeX-auto-regexp-list): Recognize empty optional arguments and macros in optional arguments. * tex.el (TeX-parse-argument): minor spelling correction. (TeX-argument-insert): ditto 1998-02-25 Per Abrahamsen * tex.el (TeX-match-extension): Fold case when matching extensions. 1998-02-20 Per Abrahamsen * Version 9.9a released. 1998-02-20 Per Abrahamsen * Version 9.8l released. 1998-02-20 Per Abrahamsen * Version 9.8k released. 1998-02-12 Per Abrahamsen * latex.el (LaTeX-math-list): Make tags match doc string. 1998-01-28 Per Abrahamsen * Version 9.8j released. 1998-01-28 Per Abrahamsen * tex-jp.el: Added credit. Patch by KOBAYASHI Shinji . 1997-12-10 Per Abrahamsen * tex-site.el: Added `defcustom' kludge to tex-site.el. Suggested by "Ralph J. Hangleiter" . 1997-10-27 Per Abrahamsen * latex.el (TeX-arg-input-file): Add trailing slash. (TeX-arg-bibstyle): Ditto. (TeX-arg-bibliography): Ditto. Patch by Ching-Mo Chang . 1997-10-20 Per Abrahamsen * Version 9.8i released. 1997-10-20 Per Abrahamsen * Version 9.8h released. 1997-10-20 Per Abrahamsen * Version 9.8g released. 1997-10-20 Peter S Galbraith * font-latex.el: Updated to V0.504 (Oct 20 97) * bib-cite.el: Updated to 3.04 (Aug 25 97) * hilit-LaTeX.el: Updated to V1.17 (Sep 06 95) 1997-10-01 kifer@CS.SunySB.EDU (Michael Kifer) * tex.el (TeX-insert-punctuation): Expand abbrevs in the beginning. 1997-09-11 Per Abrahamsen * tex-buf.el (TeX-run-silent): New function. * tex.el (TeX-command-list): Changed default for view from `TeX-run-background' to `TeX-run-silent'. 1997-09-10 "Dr. Werner Fink" * style/dinbrief.el: Updated. 1997-09-08 karlheg@inetarena.com (Karl M. Hegbloom) * tex-info.el (texinfo-mode): Regexp fix. 1997-08-29 David J. Rowe * latex.el (LaTeX-auto-regexp-list): Added support so newcommand*, renewcommand*, providecommand*, newenvironment* and renewenvironment* are recognized by TeX-auto-generate and TeX-auto-generate-global. (LaTeX-common-initialization): Added all of above "starred" commands to symbol list and added providecommand to symbol list. 1997-08-29 Per Abrahamsen * Version 9.8f released. 1997-08-29 Carsten Dominik * amsmath.el ("amsmath"): Added environments xalignat and xxalignat, and starred forms 1997-08-22 Christoph Wedler * tex-buf.el (TeX-region-create): Also bind `orig-buffer' which might be useful in `TeX-region-hook'. 1997-07-14 Per Abrahamsen * Version 9.8e released. 1997-07-14 Per Abrahamsen * Makefile (STYLESRC): Added `style/natbib.el'. 1997-07-13 Berwin Turlach * Added style support for natbib.sty 1997-07-11 Per Abrahamsen * Version 9.8d released. 1997-07-11 Jan Vroonhof * latex.el (LaTeX-auto-regexp-list): More LaTeX2e support. 1997-07-05 Berwin Turlach * latex.el (BibTeX-auto-store): make TeX-master a local variable and set it to true. 1997-07-03 Per Abrahamsen * Version 9.8c released. 1997-07-03 Carsten Dominik * style/amsmath.el ("amsmath"): Use `TeX-arg-ref' for eqref. 1997-06-29 Berwin Turlach * harvard.el: Updated the support for harvard.el 1997-06-30 Per Abrahamsen * Version 9.8b released. 1997-06-28 Per Abrahamsen * tex-buf.el (TeX-LaTeX-sentinel): `natbib' support. Patch by Berwin Turlach . 1997-06-27 Per Abrahamsen * Version 9.8a released. 1997-06-24 Christoph Wedler * tex.el (TeX-update-style): `TeX-auto-update' could be unbound. (TeX-auto-x-parse-length): New variable. Allows to use maximimum = slow parsing for the beginning of a file and minimum = fast parsing, e.g., just for labels, for the rest of the file. (TeX-auto-x-regexp-list): Ditto. (TeX-auto-parse-region): New function. (TeX-auto-parse): Use them. * tex-buf.el (TeX-region-extra): New variable with a value which redefines \cite for the region file in order get less warnings. With value "", this variable has no effect. (TeX-region-hook): New variable. (TeX-region-create): Use them. * latex.el (LaTeX-indent-line): TeX commands are case sensitive. (LaTeX-find-matching-end): Would not work correctly with more than one \end in a line. (LaTeX-find-matching-begin): Would not work correctly with more than one \begin in a line. (LaTeX-menu-max-items): New variable with value 25. Split menu if number of entries in a menu is larger than this value. If nil, never split menu into submenus, which is the behaviour before the introduction of this variable. (LaTeX-submenu-name-format): New variable. (LaTeX-split-long-menu): New function using the two new variables. (LaTeX-menu-update): Use it. (LaTeX-document-regexp): New variable. Texts in environments other than "document", e.g., "letter", could be without initial indentation. (LaTeX-verbatim-regexp): New variable. \begin and \end of environments other than "verbatim\\*?", e.g., "program", could start at column 0. (LaTeX-begin-regexp): New variable similar to `LaTeX-item-regexp'. Commands other than "begin", e.g, "if", could increase the indentation. (LaTeX-end-regexp): New variable similar to `LaTeX-item-regexp'. Commands other than "end", e.g, "fi", could decrease the indentation. (LaTeX-indent-comment-start-regexp): New variable. Would allow you to correct the automatic indentation with commands in special comments. (LaTeX-indent-calculate): Use them. (LaTeX-indent-level-count): Use them. (LaTeX-indent-calculate-last): Use them. (LaTeX-math-insert-function): New variable. (LaTeX-math-insert): Use it. 1997-06-11 Per Abrahamsen * latex.el (TeX-arg-ref): New alias. (LaTeX-common-initialization): Use it. Patch by Soren Dayton . 1997-06-05 Per Abrahamsen * latex.el (LaTeX-auto-minimal-regexp-list): Added `usepackage'. (LaTeX-auto-minimal-regexp-list): Ditto. Patch by Carsten Dominik . * style/amsmath.el: New file. * style/amstext.el: New file. * style/amsbsy.el: New file. * style/amsopn.el : New file. * style/amsthm.el: New file. * Makefile (STYLESRC): Added them. Files provided by Carsten Dominik . 1997-06-03 Per Abrahamsen * style/slovak.el: New file. * style/czech.el: New file. * Makefile (STYLESRC): Add them. Files provided by Milan Zamazal . 1997-04-17 Per Abrahamsen * Version 9.7p released. 1997-04-12 Per Abrahamsen * tex.el: Added customize information. * tex-buf.el: Ditto. * latex.el: Ditto. 1997-04-06 Per Abrahamsen * Version 9.7o released. 1997-04-06 Per Abrahamsen * latex.el (LaTeX-equation-label): New variable. (LaTeX-eqnarray-label): New variable. (LaTeX-label): Support `figure*', `label*', `equation', and `eqnarray'. (LaTeX-env-figure): Support `table*'. Patch by Joes Staal . 1997-03-28 Per Abrahamsen * latex.el (LaTeX-down-section): Doc fix. (LaTeX-section-heading): Ditto. (LaTeX-section-title): Ditto. (LaTeX-env-array): Ditto. (TeX-braces-user-association): Ditto. (LaTeX-fill-region-as-paragraph): Ditto. (LaTeX-math-abbrev-prefix): Ditto. (LaTeX-math-mode): Ditto. (TeX-arg-right-insert-p): Ditto. (latex-mode): Ditto. 1997-03-26 Per Abrahamsen * Version 9.7n released. 1997-03-26 Per Abrahamsen * latex.el (LaTeX-math-default): Fixed hebrew delimiters. Patch by John Griffith . 1997-03-26 Per Abrahamsen * latex.el (LaTeX-209-to-2e): Use `buffer-substring-no-properties'. Reported by Graham Gough . 1997-03-17 Per Abrahamsen * Version 9.7m released. 1997-03-17 Per Abrahamsen * tex.el (TeX-auto-generate): Only generate when needed. (TeX-auto-generate-global): Ditto. Patch by Helmut Geyer . * Makefile (install-contrib): Don't move elc files twice. Patch by Helmut Geyer . 1997-03-13 Per Abrahamsen * style/danish.el: Copied from `style/dk.el'. * Makefile (STYLESRC): Added `style/danish.el'. Suggested by Lars Frellesen . 1997-03-04 Per Abrahamsen * Version 9.7l released. 1997-03-04 Per Abrahamsen * Makefile (some): Don't use `style/*.elc'. 1997-02-27 Per Abrahamsen * tex.el (TeX-electric-macro): Default to space after dot. 1997-02-26 Per Abrahamsen * Version 9.7k released. 1997-02-26 Per Abrahamsen * tex.el (TeX-submit-bug-report): Fix address (sunsite, not iesd!). 1997-02-25 Per Abrahamsen * Version 9.7j released. 1997-02-21 Per Abrahamsen * Makefile (some): New target. Suggested by Steven L Baur . 1997-02-20 Per Abrahamsen * Version 9.7i released. 1997-02-20 Per Abrahamsen * tex.el: Removed autoloads that conflicts with `tex-mode.el'. (TeX-lisp-directory): Default to data-directory. 1997-02-15 Per Abrahamsen * Version 9.7h released. 1997-02-15 Per Abrahamsen * tex-buf.el (TeX-lisp-directory): Removed. 1997-02-07 Per Abrahamsen * Version 9.7g released. 1997-02-06 Karl Eichwalder * Makefile (install-lisp): Don't install $(aucdir)/lpath.el and $(aucdir)/tex-site.el. (contrib, install-contrib): New targets. 1997-01-30 Per Abrahamsen * latex.el (LaTeX-math-default): uparow -> uparrow. Reported by Kyeong Soo Kim . 1997-01-29 Per Abrahamsen * Makefile (AUCSRC): Removed `ltx-help.el'. 1997-01-27 Per Abrahamsen * Version 9.7f released. 1997-01-27 Per Abrahamsen * latex.el (LaTeX-label-function): New variable. (LaTeX-label): New function. (LaTeX-section-label): Use it. (LaTeX-env-figure): Ditto. (LaTeX-env-label): Ditto. Patch supplied by Carsten Dominik for better RevTeX.el support. * latex.el (LaTeX-env-figure): Don't insert \leavevmode, at the request of David Carlisle . 1997-01-20 Per Abrahamsen * Version 9.7e released. 1997-01-20 Per Abrahamsen * tex-buf.el (TeX-parse-error): Support LaTeX warnings. Patch by Frederic Devernay . (TeX-warning): Ditto. 1997-01-17 Per Abrahamsen * Version 9.7d released. 1997-01-17 Per Abrahamsen * tex-jp.el: XEmacs 20 support by Soren Dayton . 1997-01-13 Per Abrahamsen * Makefile (CP): Use `cp -p'. Suggested by Graham Gough . * Version 9.7c released. 1997-01-08 Per Abrahamsen * doc/intro.texi: Spelling fixes by Franklin Chen . * tex-buf.el (TeX-shell-command-option): Insitialize from shell-command-switch. Suggested by Fabio@Colorado.EDU (Fabio Somenzi). * latex.el (LaTeX-mode-menu): Added sans serif. Patch by Ralf Fassel . 1997-01-03 Per Abrahamsen * Makefile (install-lisp): Also install `.el' files. Requested by several people. 1996-12-11 Per Abrahamsen * Makefile (tex.elc): New entry. (install-lisp): Use it. Trevor Jim reported that `make install' wouldn't make the elc files. 1996-12-10 Per Abrahamsen * Version 9.7b released. 1996-12-10 Per Abrahamsen * tex-buf.el (TeX-run-format): Bind `buffer' before `process' to avoid side effect. Suggested by Frederic Devernay . * Version 9.7a released. 1996-12-10 Per Abrahamsen * latex.el (LaTeX-fill-region-as-para-do): Minimal support for `sentence-end-double-space'. 1996-12-09 Per Abrahamsen * Version 9.6m released. 1996-12-01 Per Abrahamsen * Version 9.6l released. 1996-12-01 Per Abrahamsen * tex-jp.el: Patch from IKEMOTO Masahiro . 1996-11-29 Per Abrahamsen * Version 9.6k released. 1996-11-22 Per Abrahamsen * latex.el (LaTeX-mode-menu): Made `LaTeX-math-mode' a toggle. 1996-11-16 Per Abrahamsen * Version 9.6j released. 1996-11-14 Per Abrahamsen * latex.el (LaTeX-common-initialization): Added eqref to LaTeX-label-list. Suggested by Martin Hagstrom . 1996-11-13 Per Abrahamsen * tex-buf.el (TeX-region-create): Disable font lock. Suggested by several, patch by Christoph Wedler . 1996-11-05 Per Abrahamsen * tex.el (TeX-file-extensions): Added "texinfo". 1996-09-30 Per Abrahamsen * latex.el (LaTeX-mode-map): Do not overwrite standard binding of `M-g'. * tex.el (popup-mode-menu): Run `LaTeX-menu-update' if present. Workaround for bug reported by Hendrik Visage and othors. * latex.el (LaTeX-float): Allow nil. (LaTeX-env-figure): Don't insert float if nil. Feature suggested by Andre Eickler . 1996-09-16 Per Abrahamsen * Version 9.6i released. 1996-09-16 Per Abrahamsen * tex.el (TeX-mode-syntax-table): Made `$' have the syntax class `$' at the suggestion of Mats Bengtsson . 1996-08-31 Per Abrahamsen * latex.el (TeX-arg-cite): Use `multi-prompt' when asking for entries. (TeX-arg-bibliography): Ditto. 1996-08-29 Per Abrahamsen * Makefile: Simplified installation (I hope). 1996-08-28 Per Abrahamsen * Makefile: Removed lacheck. 1996-08-23 Per Abrahamsen * tex-buf.el (TeX-run-command): Change to master directory before executing command. (TeX-region-file): Allow dummy second argument. (TeX-run-background): Run in master directory. (TeX-run-interactive): Run in master directory. * tex.el (TeX-master-file): Allow second argument `NONDIRECTOPRY'. (TeX-expand-list): Set second argument `NONDIRECTORY' to file entries. (TeX-master-directory): New function. * tex.el (TeX-auto-write): Write in master directory. 1996-08-22 Per Abrahamsen * latex.el (LaTeX-current-environment): Ignore comments. Reported by Stephen Eglen . * tex.el (TeX-directory-absolute-p): Added `windows-nt'. * tex-buf.el (TeX-shell): Added `windows-nt'. (TeX-shell-command-option): Added `emx' and `windows-nt'. Reported by Ulrich Poetter . 1996-08-21 Per Abrahamsen * tex.el (VirTeX-common-initialization): Removed duplicate initialization of `words-include-escapes'. Reperted by Mark Hovey . 1996-08-14 Per Abrahamsen * Makefile (CONTRIB): Added `font-latex.el'. 1996-07-30 Per Abrahamsen * Makefile (aucdir): Changed `lib' to `share' per new emacs conventions. Reported by "Edward J. Huff" . 1996-07-16 Per Abrahamsen * latex.el (LaTeX-fill-region-as-para-do): Make sure `.}' gets two spaces at end of sentence when filling. 1996-07-15 Per Abrahamsen * tex.el (TeX-parse-path): Ignore tralining //. Suggested by Göran Uddeborg . 1996-05-05 Per Abrahamsen * all: Use version number instead of CVS id. * tex.el (TeX-mode-map): Don't bind `del'. We aren't supposed to have any tabs in the first place. 1996-05-02 Per Abrahamsen * tex.el (TeX-mark-active, TeX-active-mark) [XEmacs]: The definition of these two were swapped. Bug reported by Vladimir Alexiev . 1996-04-25 Per Abrahamsen * tex.el (TeX-update-style): Don't run parent style hooks for files that doesn't match `TeX-one-master'. Suggested by many people. 1996-04-24 Per Abrahamsen * latex.el (LaTeX-close-environment): Bind `next-line-add-newlines' to t. Patch by Fritz Knabe . 1996-04-01 Per Abrahamsen * latex.el (LaTeX-fill-region-as-para-do): Fill `.}' as a sentence end. Patch by Fritz Knabe . 1996-03-11 Per Abrahamsen * latex.el (LaTeX-math-cal): Use `\mathcal{}' under LaTeX2e. Reported by Mate Wierdl . 1996-03-05 Per Abrahamsen * tex-info.el (texinfo-mode): Rely on texinfo.el to provide the outline regexp. 1996-02-20 Per Abrahamsen * tex.el (TeX-command-menu-queue, TeX-command-menu-queue-entry): New functions supporting printer queue queries from the menu. By Ulrik Dickow (TeX-command-menu-entry): Use them. 1996-02-13 Per Abrahamsen * style/swedish.el: Support for Swedish quotation style by "G\vran Uddeborg" . 1995-12-21 Per Abrahamsen * latex.el (LaTeX-math-default): Added more definitions by Mehmet Balcilar . 1995-12-18 Per Abrahamsen * latex.el (LaTeX-fill-region-as-paragraph): Removed old version. (LaTeX-math-menu): Redefined the math mode menu. 1995-12-14 Per Abrahamsen * latex.el (LaTeX-math-menu): New variable. (LaTeX-mode-menu): Use it. Suggested by Peter S Galbraith . 1995-11-13 Per Abrahamsen * tex.el (VirTeX-common-initialization): Set `comment-multi-line' to nil. 1995-10-13 Per Abrahamsen * PROBLEMS: Some easymenu explanations. * tex.el: Require easymenu.el instead of auc-menu.el. * Makefile (AUCSRC): Removed easymenu.el and auc-menu.el. (MINMAPSRC): Removed easymenu.el, column.el and cpp.el. * easymenu.el: File deleted. * column.el: File deleted. * cpp.el: File deleted. * latex.el (LaTeX-math-insert): Don't check if `TeX-insert-macro' is defined. (LaTeX-close-environment): Work better when called on an empty line. Fixed by David Aspinall . 1995-10-12 Per Abrahamsen * tex.el ('LaTeX-math-mode): Autoload from latex.el instead of ltx-math.el. Reported by Richard Brankin . 1995-02-14 Per Abrahamsen * latex.el (LaTeX-fill-region-as-paragraph): Should now format \\ correctly. Patch by michal@ellpspace.math.ualberta.ca (Michal Jaegermann). (LaTeX-fill-region-as-para-do): New function. (LaTeX-fill-region-as-paragraph): Do not fill paragraphs inside special environments. 1995-02-12 Per Abrahamsen * tex.el (TeX-byte-compile): Make it default to nil. Suggested by michal@ellpspace.math.ualberta.ca (Michal Jaegermann). * tex-buf.el (TeX-command-query): Also offer to save files when started from a menu. Reported by wscoas@win.tue.nl (Anton A. Stoorvogel). (TeX-LaTeX-sentinel): Don't suggest BibTeX if there is no bibliographies. Suggested by Piet van Oostrum . 1995-02-11 Per Abrahamsen * tex-buf.el (TeX-run-format): Protect against being run from a different buffer. Patch by Michael Kifer . * latex.el (LaTeX-math-default): Moved `Phi' from V to F in LaTeX-math-mode. Suggested by dak@ind.rwth-aachen.de (David Kastrup). * doc/math-ref.tex: Documented it. 1995-02-02 Per Abrahamsen * tex-buf.el (TeX-home-buffer): Added interactive, reported by edavid@lami.univ-evry.fr. 1995-02-01 Per Abrahamsen * hilit-LaTeX.el: Upgraded to 1.06. * Makefile (CONTRIB, EXTRAFILES): Moved tex-jp.el to CONTRIB. 1995-01-27 Per Abrahamsen * latex.el (LaTeX-paragraph-commands): Incorrectly placed parenthesis. Reported by mic@cs.ucsd.edu (Michelangelo Grigni). 1995-01-26 Per Abrahamsen * latex.el (LaTeX-fill-region): Use marker to mark end of region instead of integer, as the formatting may change the size of the region. (LaTeX-common-initialization): Fixed bug in paragraph definitions. Reported by Steve Anderson . * tex.el (save-match-data): Added by koba@flab.fujitsu.co.jp (Kobayashi Shinji). (bibtex-mode-hook): Don't use add-hook yet. Reported by koba@flab.fujitsu.co.jp (Kobayashi Shinji). 1995-01-25 Per Abrahamsen * tex.el (change-major-mode-hook): Also clear `LaTeX-environment-list'. * Makefile (AUCSRC): Add `auc-menu.el'. * tex.el: Use auc-menu instead of easymenu. * tex.el: Inserted comment to mark end of site customization. Suggested by john@minster.york.ac.uk (John A. Murdie). * tex.el (change-major-mode-hook): Forgot a set of parentheses. Reported by Frederic Devernay . * tex-buf.el (TeX-current-pages): Removed extra parentheses. Reported by mic@cs.ucsd.edu (Michelangelo Grigni). 1995-01-24 Per Abrahamsen (abraham@iesd.auc.dk) * tex.el (change-major-mode-hook): Added workaround for error in XEmacs 19.11's `kill-all-local-variables'. 1995-01-23 Per Abrahamsen * latex.el (LaTeX-common-initialization): Removed unnecessary regexp quotes of `TeX-esc'. * style/amsart.el: Move `eqref' definition to `style/amstex.el' and load that style hook. * style/amstex.el: New file. * Makefile (STYLESRC): Added it. Suggested by vb1890@PLAY.CS.NYU.EDU (Victor Boyko). 1995-01-22 Per Abrahamsen * latex.el, ltx-math.el, Makefile: Integrated `ltx-math.el' in `latex.el'. * tex-site.el: Removed autoload for `LaTeX-math-mode'. 1995-01-19 Per Abrahamsen * latex.el (latex-mode): Epoch fix by Martin Sjolin . 1995-01-17 Per Abrahamsen * bib-cite.el: New file contributed by Peter S. Galbraith . * hilit-LaTeX.el: New file contributed by Peter S. Galbraith . * Makefile (CONTRIB): New macro for user contributed emacs lisp packages, initialized with `bib-cite.el' and `hilit-LaTeX.el'. (EXTRAFILES): Added $(CONTRIB) to the list. * tex.el (TeX-directory-absolute-p): Moved definition before `TeX-macro-private'. Reported by Frederic Devernay . * latex.el (LaTeX-common-initialization): Remove extra and wrong "\\\\par" from `paragraph-separate'. Bug reported by nijhof@th.rug.nl (Jeroen Nijhof). 1995-01-11 Per Abrahamsen * tex-buf.el (TeX-command-region): Comment fix. Patch by wlang@rs6000.mri.akh-wien.ac.at (Willi Langenberger). (TeX-region-create): More outline-mode safe. Patch by wlang@rs6000.mri.akh-wien.ac.at (Willi Langenberger). * Makefile (dist): Put version number in WWW page. Suggested by several people. * latex.el (LaTeX-auto-regexp-list): Ignore first optional argument to newenvironment if there is a second. Problem reported by schiotz@ltf.dth.dk (Jakob Schiotz). * style/amsbook.el: New file. Problem reported by Denby Wong <3dw16@qlink.queensu.ca>. 1995-01-04 Per Abrahamsen * tex-buf.el (TeX-TeX-sentinel-check): New function. Updates `TeX-current-page' with regexp by dodd@roebling.poly.edu (Lawrence R. Dodd) (TeX-current-pages): New function. (TeX-LaTeX-sentinel, TeX-TeX-sentinel): Use it. (TeX-format-filter): Removed unnecessary check before assignment. 1995-01-03 Per Abrahamsen * tex-buf.el (TeX-LaTeX-sentinel): Write number of pages even when labels or citations are missing. Patch by dodd@roebling.poly.edu (Lawrence R. Dodd). 1994-12-07 Per Abrahamsen * tex.el (TeX-directory-absolute-p): New function. Should work on both Unix and MS DOS. Problem reported by schiotz@ltf.dth.dk (Jakob Schiotz). (TeX-parse-path): Use it. (TeX-auto-generate): Use it. 1994-12-05 Per Abrahamsen * latex.el (BibTeX-auto-store): Set TeX-auto-parse-length to 999999 locally. Problem reported by Christoph Wedler . 1994-12-02 Per Abrahamsen * tex-buf.el (TeX-LaTeX-sentinel): Check whether the ".bbl" file need to be udpated before setting TeX-command-next to "BibTeX". (TeX-command-query): Remove previous change. 1994-11-28 Per Abrahamsen * latex.el (LaTeX-209-to-2e): New function by Graham Gough . * latex.el (LaTeX-mode-menu): Move many commands to new "Miscellaneous" submenu. * tex-buf.el (TeX-home-buffer): Don't take arg. * latex.el (LaTeX-left-right-indent-level): New variable controling indentation for \left \right blocks. (LaTeX-indent-level-count): New function. Previously only LaTeX macros at the beginning of the line would affect indentation. This problem was reported by many people. (LaTeX-indent-calculate-last): Call `LaTeX-indent-level-count'. Take into account that \end and \right at the beginning of the line has immediate effect. 1994-11-27 Per Abrahamsen * latex.el (TeX-global-input-files): New variable. Idea and sample code by Christophe Mignot . (TeX-arg-input-file): Use it. (BibTeX-global-style-files): Mention how it is reset in `TeX-normal-mode'. (BibTeX-global-files): Ditto. * tex.el (TeX-normal-mode): Reset `BibTeX-global-style-files', `BibTeX-global-files', and `TeX-global-input-files' if invoked with an argument. * tex-site.el: Ignore trailing `/' when adding TeX-lisp-directory to load-path. Patch by Michael Ernst . * tex-buf.el (TeX-LaTeX-sentinel): Don't rerun LaTeX on missing references, unless they have changed. Patch by schiotz@ltf.dth.dk (Jakob Schiotz). * latex.el (LaTeX2e-font-replace): New function. (LaTeX-common-initialization): Set TeX-font-replace-function to LaTeX2e-font-replace when using latex2e. * tex.el (TeX-font-replace-function): New variable. (TeX-font): Use it. TeX-font-replace-function and LaTeX2e-font-replace were contributed by Peter Thiemann . 1994-11-22 Per Abrahamsen * MSDOS: Added. Contributed by schiotz@ltf.dth.dk (Jakob Schiotz). * OEMACS: Removed. * tex.el (VirTeX-common-initialization): Make `words-include-escapes' a local variable before setting it. Reported by Bo Nygaard Bai . 1994-11-15 Per Abrahamsen * tex.el (TeX-auto-store): Change to functions that prevent the auto file buffer from entering emacs-lisp-mode. (TeX-auto-insert): Don't rely on emacs-lisp-mode for indentation. Suggested by Stefan Schöf (schoef@informatik.uni-oldenburg.de). 1994-11-11 Per Abrahamsen * tex.el (TeX-macro-global): Change to `standard' path. 1994-11-09 Per Abrahamsen * tex-buf.el (TeX-command-query): Suggest TeX-command-default again if bbl file is newer than dvi file. 1994-11-07 Per Abrahamsen * tex.el (TeX-submit-bug-report): Indicate LaTeX-version. Suggested by schiotz@ltf.dth.dk (Jakob Schiotz). 1994-10-26 Per Abrahamsen * Makefile (dist): Automatically update AUC-TeX-version and AUC-TeX-date in tex.el * tex.el (AUC-TeX-version): Added AUC-TeX-version and AUC-TeX-date from auc-ver.el. * auc-ver.el: File removed. * tex.el: Added version specific code from seperate files. * tex-19.el, tex-18.el, tex-lcd.el: Files removed. 1994-10-25 Per Abrahamsen * doc/auc-tex.texi (Projects): Removed an implemented item. * tex.el (TeX-command-current): New variable. (TeX-command-select-master): New function. (TeX-command-select-buffer): New function. (TeX-command-select-region): New function. (TeX-command-menu): Use TeX-command-current instead of explicit file argument. (TeX-command-menu-print): Remove file argument. (TeX-command-menu-printer-entry): Don't pass file argument. (TeX-command-create-menu): Removed. (TeX-mode-menu): New menu. (plain-TeX-mode-menu): Removed entries now in TeX-mode-menu. (plain-TeX-mode-menu): Use `toggle' for bad boxes. (plain-TeX-common-initialization): Enable TeX-mode-menu. * latex.el (LaTeX-mode-menu): Removed entries now in TeX-mode-menu. (LaTeX-mode-menu): Use `toggle' for bad boxes. (LaTeX-common-initialization): Enable TeX-mode-menu. * tex-info.el (TeXinfo-command-menu): New menu. (TeXinfo-mode-menu): Move commands to new menu. (TeXinfo-mode-menu): Use `toggle' for bad boxes. (texinfo-mode): Enable TeXinfo-command-menu. 1994-10-24 Per Abrahamsen * Makefile (AUCSRC): Removed auc-menu.el from AUC TeX distribution. (MINMAPSRC): Added easymenu.el temporarily to min-map distribution. * auc-menu.el: Just load easymenu.el when using GNU Emacs. * easymenu.el Try to use RMS's easymenu instead of auc-menu. (easy-menu-define): Call `easy-menu-do-define' to do the real work. Document XEmacs keyword arguments. (easy-menu-do-define): New function. (easy-menu-create-keymaps): Support XEmacs keyword arguments in menu definition. (easy-menu-remove): Make is a function instead of a macro. (easy-menu-add): Ditto. 1994-10-21 Per Abrahamsen * doc/auc-tex.texi (Completion): Less confusing BibTeX advice, I hope. * tex-jp.el: Added patch from koba@flab.fujitsu.co.jp (Kobayashi Shinji). * latex.el (TeX-arg-insert-braces): Have \left and \right on different lines. Patch by thiemann@informatik.uni-tuebingen.de (Peter Thiemann). * Makefile (dist): Add CHANGES and ChangeLog files to the ftp directory. Suggested by Frederic Devernay . * latex.el (LaTeX-indent-calculate): Allow nil second element in `LaTeX-indent-environment-list'. (LaTeX-indent-environment-list): Added special environments suggested by thiemann@informatik.uni-tuebingen.de (Peter Thiemann). 1994-10-20 Per Abrahamsen * tex.el (TeX-auto-list-information): Spelling error. 1994-10-18 Per Abrahamsen * latex.el (LaTeX-common-initialization): Make "LaTeX2e" the default command if you have set `LaTeX-version' to "2" and is using "\documentclass". 1994-10-06 Per Abrahamsen * latex.el (LaTeX-paragraph-commands): End each word with a "\\b" to avoid accidentally matching longer macros. * tex.el (TeX-add-local-master): Use three %'s when adding buffer local variables. Suggested by Raymond Toy . * tex.el (TeX-format-list): Added entry for AmSTeX by Ulf Juergens . * tex.el (ams-tex-mode): Run AmS-TeX-mode-hook, not plain-TeX-mode-hook. Reported by Ulf Juergens . * tex-buf.el (TeX-format-filter): Add `save-match-data'. Patch by David Aspinall . 1994-09-14 Per Abrahamsen * cpp.el: Use RMS's version. 1994-09-13 Per Abrahamsen * doc/history.texi, doc/auc-tex.texi: Fixes from Chris Fearnley <@vm.uni-c.dk:FEARNLCJ@DUVM>. 1994-09-09 Per Abrahamsen * latex.el (LaTeX-insert-environment): Don't fill environments listed in `LaTeX-indent-environment-list'. Suggestion by Graham Gough . * tex.el (LaTeX-command-style): Made latex2e first in the list. Suggested by Frederic Devernay . 1994-09-05 Per Abrahamsen * tex.el (TeX-file-extensions): Added LaTeX2 `cls' extension after query by jmv@di.uminho.pt (Jose Manuel Valenca). 1994-08-30 Per Abrahamsen * tex-jp.el: New version from koba@flab.fujitsu.co.jp (Kobayashi Shinji). * tex.el (TeX-command-list): Fifth element is now ignored. * tex-buf.el (TeX-command-query): Check if region file is newer than dvi file. (TeX-command-region): Only query for command _after_ region file is created. (TeX-region-create): Only save file if the new content is different than the original content. 1994-08-29 Per Abrahamsen (abraham@research.att.com) * tex-buf.el (TeX-warning): Use offset for line end. Fixed by ddw2@sunbim.be (Dominique de Waleffe). 1994-08-26 Per Abrahamsen (abraham@iesd.auc.dk) * doc/auc-tex.texi (Projects): Removed preceding item from wishlist. * latex.el (LaTeX-common-initialization): Fix to comments separating paragraphs by koba@flab.fujitsu.co.jp (Kobayashi Shinji). * tex-jp.el (LaTeX-fill-region-as-paragraph): New version for MULE 2.0 by Tomotake FURUHATA . * tex.el (TeX-function-p): Spelling error in doc. 1994-08-23 Per Abrahamsen (abraham@iesd.auc.dk) * doc/intro.texi (Contacts): Some reformulations. 1994-08-21 Per Abrahamsen (abraham@iesd.auc.dk) * tex-jp.el (TeX-insert-punctuation): Japanese version from koba@flab.fujitsu.co.jp (Kobayashi Shinji). 1994-08-19 Per Abrahamsen (abraham@iesd.auc.dk) * doc/install.texi: The `site-lisp' directory is also available in Lucide Emacs 19.10. Reported by Tim Geisler . 1994-08-18 Per Abrahamsen (abraham@iesd.auc.dk) * latex.el (TeX-arg-cite): Prompt for multiple keys. Suggested by Masahiro Kitagawa . 1994-08-17 Per Abrahamsen (abraham@iesd.auc.dk) * style/german.el ("german"): Use `TeX-quote-after-quote'. Suggested by te@informatik.uni-hannover.de (Thomas Esser). * latex.el (LaTeX-common-initialization): Error in regexp for multiple arguments to `\cite', reported by Masahiro Kitagawa . 1994-08-17 Per Abrahamsen (abraham@iesd.auc.dk) * latex.el (LaTeX-env-figure): Put caption inside center environment. Suggested by Martin Wunderli . * tex.el (TeX-strip-extension): If NODIR is set to `path', remove the directory part iff it is equal to the current directory, or is a member of either `TeX-macro-global' or `TeX-macro-private'. (TeX-master-file): Use `path' for NODIR when querying the user for a file name. Reported finger@brachio.Informatik.Uni-Dortmund.DE (Bernd Finger). 1994-08-16 Per Abrahamsen (abraham@iesd.auc.dk) * latex.el (LaTeX-common-initialization): `eqnarray*' should not have a label. Reported by dodd@roebling.poly.edu (Lawrence R. Dodd). 1994-08-11 Per Abrahamsen (abraham@iesd.auc.dk) * tex-buf.el (TeX-background-filter): Always show background output. 1994-08-10 Per Abrahamsen (abraham@iesd.auc.dk) * Makefile (MINMAPSRC): Added `all.el'. * all.el: New file. * tex-buf.el (TeX-LaTeX-sentinel): Write "some" if TeX-current-page is nil. Reported by Michail Rozman . 1994-08-09 Per Abrahamsen (abraham@iesd.auc.dk) * auc-menu.el (easy-menu-add): Undid previous change. (top level `cond'): Use Emacs 18 code if `window-system' is nil. Patch by Patrice Belleville . 1994-08-08 Per Abrahamsen (abraham@iesd.auc.dk) * tex.el (TeX-electric-macro): No electricity after `.' or `\'. 1994-08-06 Per Abrahamsen (abraham@iesd.auc.dk) * latex.el (LaTeX-paragraph-commands): New variable. (LaTeX-common-initialization): Use it. Suggested by liyuan@allwise.research.att.com (Yuan P. Li). * auc-menu.el (easy-menu-add): Check that `x-popup-menu' is bound and that we are running under X before calling it. Reported by Adrian F. Clark 1994-08-04 Per Abrahamsen (abraham@iesd.auc.dk) * tex-jp.el (LaTeX-fill-region-as-paragraph): Patch for Emacs 19 regexps by koba@flab.fujitsu.co.jp (Kobayashi Shinji) reported by Uenami Ken'ichi . * doc/auc-tex.texi (European): Mention `iso-cvt.el' as suggested by mike@vlsivie.tuwien.ac.at (Michael Gschwind). 1994-08-03 Per Abrahamsen (abraham@iesd.auc.dk) * doc/history.texi: New file. * doc/Makefile (HISTORY): Added rule. * Makefile (EXTRAFILES): Added `ChangeLog'. (DOCFILES): Added `history.texi'. * doc/auc-tex.texi (History): Made ready for 9.2. Move history to `history.texi'. * doc/changes.texi: Made ready for 9.2. Introduce ChangeLog. * Makefile (LispInstall): Use "/bin/pwd" instead of "pwd". reported by mic@cs.ucsd.edu (Michelangelo Grigni). * ChangeLog: New file. * Version 9.1 released. This file records repository revisions from commit c865982cacab289f4480f9145b3438ec06824232 (exclusive) to commit 17118fb3aabba5a158c8ff8b4f5ec4f215547d2b (inclusive). ;; Local Variables: ;; coding: utf-8 ;; End: Copyright (C) 1994-2016 Free Software Foundation, Inc. This file is part of GNU AUCTeX. GNU AUCTeX is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. GNU AUCTeX is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU AUCTeX. If not, see . auctex-11.91/Makefile.in000066400000000000000000000661351313533625700151060ustar00rootroot00000000000000# Makefile for AUCTeX # Maintainer: auctex-devel@gnu.org # Copyright (C) 2003-2008, 2010, 2013-2015 Free Software # Foundation, Inc. # This file is part of AUCTeX. # AUCTeX is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # AUCTeX is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # You should have received a copy of the GNU General Public License # along with AUCTeX; see the file COPYING. If not, write to the Free # Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, # MA 02110-1301, USA. @SET_MAKE@ prefix = @prefix@$(null) exec_prefix = @exec_prefix@$(null) libdir = @libdir@$(null) packagedatadir = @packagedatadir@$(null) datarootdir = @datarootdir@$(null) datadir = @datadir@$(null) localstatedir = @localstatedir@$(null) infodir = @infodir@$(null) lispdir = @lispdir@$(null) auctexstartfile=@auctexstartfile@ previewstartfile = @previewstartfile@ packagelispdir = @packagelispdir@$(null) packagedatadir = @packagedatadir@$(null) packagedir = @packagedir@$(null) autodir = @autodir@$(null) preview_enabled=@preview_enabled@ styledir = $(packagedatadir)/style AUCTEXDATE = @AUCTEXDATE@ AUCTEXVERSION = @AUCTEXVERSION@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ MKINSTALLDIRS = ./mkinstalldirs DESTDIR= PACKAGE=auctex PACKAGE_INFO=auctex preview-latex EMACS=@EMACS@ ELCC=$(EMACS) -batch -q -no-site-file -no-init-file -l lpath.el AUTOLOAD=--eval '(let ((generated-autoload-file (expand-file-name "$@"))) \ (mapcar (function update-file-autoloads) command-line-args-left) \ (save-buffers-kill-emacs t))' PREVIEW_AUTOLOAD=--eval '(let ((generated-autoload-file (expand-file-name "$@"))) \ (update-file-autoloads "preview.el")(save-buffers-kill-emacs t))' # Files and directories excluded from distributed tar ball. EXCLUDEDFILES=autogen.sh .gitignore doc/.gitignore doc/tex-ref.log \ latex/.gitignore README.GIT tests build-aux .SUFFIXES: .el .elc .texi SHELL = /bin/sh CP = cp -p CP_A = $(CP) -R DIST_PREFIX=$(PWD)/auctex-dist FTPDIR = $(DIST_PREFIX)/ftp WWWDIR = $(DIST_PREFIX)/www CTANDIR = $(DIST_PREFIX)/ctan XEMACS_BUILD_DIR = xemacs-build PREVIEW_BUILD_DIR = preview-build COMMITTER="`git config --get user.name`\ \ \<`git config --get user.email`\>" RPMROOT = /usr/src/redhat RPM_SIGN = --sign MULESRC = @MULESRC@ MULEELC = @MULEELC@ AUCSRC = tex.el tex-buf.el tex-style.el plain-tex.el latex.el tex-info.el \ texmathp.el multi-prompt.el tex-mik.el font-latex.el tex-font.el \ context.el context-en.el context-nl.el tex-fold.el \ toolbar-x.el tex-bar.el bib-cite.el tex-ispell.el AUCELC = $(AUCSRC:.el=.elc) STYLESRC = style/prosper.el \ style/slides.el style/foils.el style/amstex.el \ style/article.el style/book.el style/letter.el \ style/report.el style/amsart.el style/amsbook.el \ style/epsf.el style/psfig.el style/latexinfo.el \ style/dutch.el style/german.el style/dk.el \ style/j-article.el style/j-book.el style/j-report.el \ style/jarticle.el style/jbook.el style/jreport.el \ style/tarticle.el style/tbook.el style/treport.el \ style/jsarticle.el style/jsbook.el style/jsreport.el \ style/dinbrief.el style/virtex.el style/plfonts.el \ style/plhb.el style/harvard.el style/swedish.el \ style/danish.el style/slovak.el style/czech.el \ style/amsmath.el style/amstext.el style/amsbsy.el \ style/amsopn.el style/amsthm.el style/natbib.el \ style/index.el style/makeidx.el style/multind.el \ style/varioref.el style/fancyref.el style/mdwlist.el \ style/ngerman.el style/graphicx.el style/graphics.el \ style/verbatim.el style/scrbase.el style/scrartcl.el \ style/scrbook.el style/scrreprt.el style/scrlttr2.el \ style/scrpage2.el style/captcont.el style/subfigure.el \ style/paralist.el style/booktabs.el style/emp.el \ style/jura.el style/alphanum.el style/beamer.el \ style/alltt.el style/italian.el style/doc.el \ style/ltxdoc.el style/ltx-base.el style/units.el \ style/nicefrac.el style/url.el style/listings.el \ style/inputenc.el style/frenchb.el style/francais.el \ style/MinionPro.el style/pdfsync.el style/polish.el \ style/polski.el style/icelandic.el style/comment.el \ style/flashcards.el style/pstricks.el style/nomencl.el \ style/hyperref.el style/bulgarian.el style/CJK.el \ style/ruby.el style/CJKutf8.el style/tabularx.el \ style/multido.el style/pst-grad.el style/pst-node.el \ style/pst-plot.el style/pst-slpe.el style/shortvrb.el \ style/austrian.el style/naustrian.el style/french.el \ style/lettrine.el style/multicol.el style/xspace.el \ style/setspace.el style/biblatex.el style/siunitx.el \ style/bm.el style/footmisc.el style/ulem.el \ style/bigdelim.el style/bigstrut.el style/everysel.el \ style/mathtools.el style/ragged2e.el style/amssymb.el \ style/lscape.el style/epigraph.el style/mflogo.el \ style/multirow.el style/imakeidx.el style/afterpage.el \ style/longtable.el style/lipsum.el style/kantlipsum.el \ style/memoir.el style/placeins.el style/nameref.el \ style/fancynum.el style/fancyhdr.el style/filecontents.el \ style/array.el style/kpfonts.el style/acro.el \ style/acronym.el style/xparse.el style/fancyvrb.el \ style/tabulary.el style/fontspec.el style/unicode-math.el \ style/luacode.el style/metalogo.el style/english.el \ style/exercise.el style/plext.el style/cleveref.el \ style/eso-pic.el style/fontaxes.el style/AnonymousPro.el \ style/mdsymbol.el style/MyriadPro.el style/textcomp.el \ style/XCharter.el style/zlmtt.el style/ifluatex.el \ style/luatextra.el style/erewhon.el style/baskervaldx.el \ style/fbb.el style/newtxmath.el style/newtxsf.el \ style/newtxtext.el style/newtxttt.el style/minted.el \ style/wrapfig.el style/relsize.el style/currvita.el \ style/tcolorbox.el style/color.el style/expl3.el \ style/bidibeamer.el style/enumitem.el style/caption.el \ style/geometry.el style/ltablex.el style/ltxtable.el \ style/mn2e.el style/colortbl.el style/attachfile.el \ style/newpxtext.el style/newpxmath.el style/pdfpages.el \ style/mnras.el style/environ.el style/polyglossia.el \ style/vwcol.el style/textpos.el style/transparent.el \ style/fontenc.el style/Alegreya.el style/gloss-italian.el \ style/newfloat.el style/subcaption.el style/AlegreyaSans.el \ style/hologo.el style/theorem.el style/ntheorem.el \ style/splitidx.el style/tikz.el style/xcolor.el \ style/pdflscape.el style/commath.el style/empheq.el \ style/framed.el style/paracol.el style/menukeys.el \ style/bidi.el style/FiraMono.el style/FiraSans.el \ style/bicaption.el style/amsfonts.el style/subfiles.el \ style/dcolumn.el style/mdframed.el style/tcolorboxlib-raster.el \ style/titleps.el style/titlesec.el style/titletoc.el \ style/exam.el style/breqn.el style/sourcecodepro.el \ style/preview.el style/fvextra.el style/jurabib.el \ style/csquotes.el style/babel.el style/dk-bib.el \ style/floatrow.el style/moodle.el style/canadian.el \ style/australian.el style/newzealand.el STYLEELC = $(STYLESRC:.el=.elc) ifeq (@preview_enabled@,yes) PREVIEWSRC = @PLAT_LISP@ preview.el PREVIEWELC = $(PREVIEWSRC:.el=.elc) PREVIEWLATEX = test "x$(packagedir)" != xno || $(MAKE) preview-latex.el TEXMF = (cd latex ; $(MAKE) all) # Install actions INS_TEXMF = (cd latex ; $(MAKE) DESTDIR=$(DESTDIR) install) PREVIEW_INS_STARTUP = test $(packagedir) != no || \ $(INSTALL_DATA) preview-latex.el $(DESTDIR)$(previewstartfile) else # Don't do anything with preview if the user doesn't want the # preview component. PREVIEWSRC = PREVIEWELC = PREVIEWLATEX = TEXMF = INS_TEXMF = PREVIEW_INS_STARTUP = endif CLEANFILES = $(AUCELC) $(STYLEELC) $(MULEELC) $(PREVIEWELC) preview-latex.el DISTCLEANFILES = Makefile tex-site.el tex-site.el.out auctex.el \ auto-loads.el config.* preview.el DISTTEXTS = FAQ INSTALL INSTALL.windows README TODO PROBLEMS.preview NOSEARCH = style/.nosearch all: texmf lisp docs .PHONY: all lisp info dvi some install install-el install-lisp docs \ install-docs install-auto install-metadata install-startup \ install-man clean distclean maintainer-clean extraclean \ tar-ball-clean check-tag check release-commit dist snapshot \ patch tar-ball rpm-packages wc xemacs-package windows-package \ release-sign release-upload preview-ball uninstall texmf: latex/Makefile $(TEXMF) lisp: tex-site.el $(AUCSRC) $(STYLESRC) $(MULESRC) $(PREVIEWSRC) $(ELCC) -f batch-byte-compile $(AUCSRC) $(STYLESRC) $(MULESRC) $(PREVIEWSRC) $(PREVIEWLATEX) preview-latex.el: preview.el rm -f preview-latex.el -$(EMACS) -batch -no-site-file -no-init-file $(PREVIEW_AUTOLOAD) ; \ test -r $@ || { \ echo ";; Auto-generated preview-latex.el" > $@ ; \ echo " " >> $@ ; \ $(EMACS) -batch -no-site-file -no-init-file $(PREVIEW_AUTOLOAD) ; \ } docs: cd doc ; $(MAKE) all info: cd doc ; $(MAKE) info dvi: cd doc ; $(MAKE) dvi tex-site.el: tex-site.el.out auto-loads.el Makefile cat tex-site.el.out >$@ test X$(packagedir) != Xno || cat auto-loads.el >>$@ echo "(provide 'tex-site)" >>$@ ; \ test X$(packagedir) != Xno || echo ";;; tex-site.el ends here" >>$@ tex-site.el.out: tex-site.el.in Makefile config.status ./config.status auctex.el: auctex.el.in config.status ./config.status latex/Makefile: latex/Makefile.in Makefile config.status ./config.status configure: configure.ac aclocal.m4 autoconf Makefile: Makefile.in config.status ./config.status doc/Makefile: doc/Makefile.in config.status ChangeLog.1 ./config.status config.status: configure ./config.status --recheck auto-loads.el: $(AUCSRC) $(MULESRC) Makefile test X$(packagedir) != Xno || { \ rm -f $@ ; \ $(ELCC) $(AUTOLOAD) $(AUCSRC) $(MULESRC) || : ; \ test -r $@ || { \ echo ";; Auto-generated part of tex-site.el" > $@ ; \ echo " " >> $@ ; \ $(ELCC) $(AUTOLOAD) $(AUCSRC) $(MULESRC) ; \ } ; \ } some: $(AUCELC) $(STYLEELC) install: install-texmf install-lisp install-docs install-images \ install-startup $(MAKE) 'DESTDIR=$(DESTDIR)' install-metadata install-man: doc/Makefile cd doc && $(MAKE) 'DESTDIR=$(DESTDIR)' install-man $(INSTALL_DATA) RELEASE $(DESTDIR)$(packagedir)/man/auctex install-startup: $(PREVIEWLATEX) $(PREVIEW_INS_STARTUP) test $(packagedir) != no || \ $(INSTALL_DATA) auctex.el $(DESTDIR)$(auctexstartfile) install-texmf: $(INS_TEXMF) install-el: -$(MKINSTALLDIRS) $(DESTDIR)$(lispdir) rm -f $(DESTDIR)$(packagelispdir)/tex-site.el # Remove old (Git-version) mistakes test ! -f $(DESTDIR)$(lispdir)/tex-site.el || { \ if grep -q "tex-site.*Don't edit." $(DESTDIR)$(lispdir)/tex-site.el; then \ echo "Overwriting old tex-site.el" ; \ else \ echo "Renaming old tex-site.el to tex-site.el.save" ; \ mv $(DESTDIR)$(lispdir)/tex-site.el $(DESTDIR)$(lispdir)/tex-site.el.save ; \ fi; \ } if test X$(packagedir) = Xno; \ then $(INSTALL_DATA) tex-site.el $(DESTDIR)$(lispdir) ; \ else rm -f $(DESTDIR)$(lispdir)/tex-site.el ; \ fi -$(MKINSTALLDIRS) $(DESTDIR)$(packagelispdir) @: $(MAKE) ; for x in $(AUCSRC) $(MULESRC) $(PREVIEWSRC); do \ echo '$(INSTALL_DATA)' $$x '$(DESTDIR)$(packagelispdir)' ; \ done @for x in $(AUCSRC) $(MULESRC) $(PREVIEWSRC); do \ $(INSTALL_DATA) $$x $(DESTDIR)$(packagelispdir) ; \ done; -$(MKINSTALLDIRS) $(DESTDIR)$(styledir) $(INSTALL_DATA) $(NOSEARCH) $(DESTDIR)$(styledir) @: $(MAKE) ; for x in $(STYLESRC) ; do \ echo '$(INSTALL_DATA)' $$x '$(DESTDIR)$(styledir)' ; \ done; @for x in $(STYLESRC) ; do \ $(INSTALL_DATA) $$x $(DESTDIR)$(styledir) ; \ done; -$(MKINSTALLDIRS) $(DESTDIR)$(autodir) -$(INSTALL_DATA) $(NOSEARCH) $(DESTDIR)$(autodir) install-lisp: some install-el @: $(MAKE) ; for x in $(AUCSRC) $(MULESRC) $(PREVIEWSRC); do \ echo '$(INSTALL_DATA)' $${x}c '$(DESTDIR)$(packagelispdir)' ; \ done @for x in $(AUCSRC) $(MULESRC) $(PREVIEWSRC); do \ $(INSTALL_DATA) $${x}c $(DESTDIR)$(packagelispdir) ; \ done @: $(MAKE) ; for x in $(STYLESRC) ; do \ echo '$(INSTALL_DATA)' $${x}c '$(DESTDIR)$(styledir)' ; \ done @for x in $(STYLESRC) ; do \ $(INSTALL_DATA) $${x}c $(DESTDIR)$(styledir) ; \ done install-images: -$(MKINSTALLDIRS) $(DESTDIR)$(packagedatadir)/images @: $(MAKE) ; for x in images/*.xpm ; do \ echo '$(INSTALL_DATA)' $${x} '$(DESTDIR)$(packagedatadir)/images' ; \ done @for x in images/*.xpm ; do \ $(INSTALL_DATA) $${x} $(DESTDIR)$(packagedatadir)/images ; \ done install-docs: doc/Makefile cd doc ; $(MAKE) DESTDIR=$(DESTDIR) install-auctex test "x$(preview_enabled)" != xyes || { \ cd doc ; $(MAKE) DESTDIR=$(DESTDIR) install-preview; } install-auto: @echo "Use \"M-x TeX-auto-generate-global RET\" instead." install-metadata: test "x$(packagedir)" = xno || { \ $(MKINSTALLDIRS) $(DESTDIR)$(packagedir)/pkginfo || : ; \ $(ELCC) -l prv-install -f preview-make-package $(DESTDIR)$(packagedir) "$(PACKAGE)" \"`echo $(AUCTEXDATE)|sed 's/\(.*\)-\(.*\)-\(.*\)/\1.\2\3/'`\" \"$(AUCTEXVERSION)\" tex-site.el && \ cd $(DESTDIR)$(packagedir) && \ find "etc/$(PACKAGE)" "lisp/$(PACKAGE)" -print >"pkginfo/MANIFEST.$(PACKAGE)" && \ for i in $(PACKAGE_INFO); do \ test -r "info/$$i.info" && echo "info/$$i.info" >> "pkginfo/MANIFEST.$(PACKAGE)" ; \ done && \ echo "pkginfo/MANIFEST.$(PACKAGE)" >> "pkginfo/MANIFEST.$(PACKAGE)" ; \ } uninstall: rm -rf $(DESTDIR)$(packagelispdir) $(DESTDIR)$(packagedatadir) \ $(DESTDIR)$(autodir) if test X$(packagedir) = Xno ; then \ rm -f $(DESTDIR)$(lispdir)/tex-site.el \ $(DESTDIR)$(auctexstartfile) ; \ else \ rm -f $(DESTDIR)$(packagedir)/man/auctex/RELEASE \ $(DESTDIR)$(packagedir)/pkginfo/MANIFEST.$(PACKAGE); \ fi cd doc ; $(MAKE) DESTDIR=$(DESTDIR) uninstall rm -f $(DESTDIR)$(previewstartfile) rm -rf $(DESTDIR)$(packagelispdir) (cd latex ; $(MAKE) DESTDIR=$(DESTDIR) uninstall) .el.elc: $(ELCC) -f batch-byte-compile $< clean: doc/Makefile rm -f $(CLEANFILES) cd doc && $(MAKE) clean distclean: doc/Makefile rm -f $(CLEANFILES) $(DISTCLEANFILES) cd doc && $(MAKE) distclean maintainer-clean: doc/Makefile rm -f $(DISTTEXTS) rm -rf autom4te.cache rm -f $(CLEANFILES) $(DISTCLEANFILES) cd doc && $(MAKE) maintainer-clean extraclean: maintainer-clean rm -f *~ \#*\# tar-ball-clean: check-tag rm -rf auctex-$(TAG)/ rm -rf $(XEMACS_BUILD_DIR)/ wc: wc $(AUCSRC) $(STYLESRC) # ---------------------------------------------------------------------- # The targets below update the ChangeLog from git log # and are intended to be used only by the maintainers. # These rules are adapted from GNU Emacs Makefile. .PHONY: ChangeLog change-history change-history-commit change-history-nocommit .PHONY: preferred-branch-is-current unchanged-history-files CHANGELOG = ChangeLog auctexlog = build-aux/gitlog-to-auctexlog # The ChangeLog history files are called ChangeLog.1, ChangeLog.2, ..., # ChangeLog.$(CHANGELOG_HISTORY_INDEX_MAX). $(CHANGELOG_N) stands for # the newest (highest-numbered) ChangeLog history file. CHANGELOG_HISTORY_INDEX_MAX = 1 CHANGELOG_N = ChangeLog.$(CHANGELOG_HISTORY_INDEX_MAX) # Check that we are in a good state for changing history. PREFERRED_BRANCH = master preferred-branch-is-current: git branch | grep -q '^\* $(PREFERRED_BRANCH)$$' unchanged-history-files: x=$$(git diff-files --name-only $(CHANGELOG_N) $(auctexlog)) && \ test -z "$$x" # Convert git commit log to ChangeLog file. make-dist uses this. # I guess this is PHONY so it always updates? ChangeLog: ./$(auctexlog) -o $(CHANGELOG) -n $(CHANGELOG_HISTORY_INDEX_MAX) # Regular expression that matches the newest commit covered by a ChangeLog. new_commit_regexp = ^commit [0123456789abcdef]* (inclusive) # Copy newer commit messages to the start of the ChangeLog history file, # and consider them to be older. change-history-nocommit: #preferred-branch-is-current unchanged-history-files -rm -f ChangeLog.tmp $(MAKE) ChangeLog CHANGELOG=ChangeLog.tmp sed '/^This file records repository revisions/,$$d' \ ChangeLog.tmp > $(CHANGELOG_N).tmp new_commit_line=`grep --text '$(new_commit_regexp)' ChangeLog.tmp` && \ sed 's/$(new_commit_regexp).*/'"$$new_commit_line/" \ $(CHANGELOG_N) >>$(CHANGELOG_N).tmp rm ChangeLog.tmp mv $(CHANGELOG_N).tmp $(CHANGELOG_N) change-history: change-history-nocommit $(MAKE) $@-commit # If 'make change-history' fails because the newest ChangeLog history # file contains invalid text, fix the file by hand and then run # 'make change-history-commit'. change-history-commit: git commit -m'; make $@' $(CHANGELOG_N) $(auctexlog) # ---------------------------------------------------------------------- # The targets below are concerned with the release process and # intended to be used only by the maintainers. # Steps for making a release: # # 0) check # Run tests using ERT tool. Not necessary but strongly suggested before a # release. # # 1) change-history # Update the ChangeLog file. # # 2) release-commit TAG= COMMITTER= # Tag the release. # Pass `COMMITTER=' argument only if it is different from # your git name and email. `' should be in the form # "John Doe " # # 3) dist TAG= # Create the tar ball and other release files and put them into $FTPDIR. # # 4) xemacs-package TAG= # Create the precompiled XEmacs package. # # 5) windows-package WEMACSVER= TAG= # Create the precompiled AUCTeX package for Windows. # This requires a compiled Emacs of the same version at location $WEMACS. # NOTA BENE: you may need to use bash shell for this recipe to work. # # 6) release-sign TAG= # Sign the tar ball and create directive files for upload. NOTA BENE: you # may need to use bash shell for this recipe to work. # # 7) release-upload # Upload files to GNU FTP server. # # 8) www-doc TAG= # Create documentation for AUCTeX home page. # # 9) preview-ball TAG= # Create preview package. (Not for GNU FTP server but for CTAN.) dist: check-tag tar-ball snapshot: dist check-tag: @if [ "X$(TAG)" = "X" ]; then echo "*** Error: No TAG ***"; exit 1; fi check: cd tests && $(MAKE) check release-commit: check-tag @echo "Tagging release $(TAG) in Git ..." sleep 5 mv $(CHANGELOG_N) ChangeLog.old mv ChangeLog-preview ChangeLog-preview.old # Make sure the release ChangeLog entry is encoded with UTF-8. # This requires the `iconv' program. echo `date "+%Y-%m-%d "`" ${COMMITTER}" | iconv -t UTF-8 - > $(CHANGELOG_N) echo >> $(CHANGELOG_N) echo " * Version" $(TAG) released. >> $(CHANGELOG_N) echo >> $(CHANGELOG_N) cp $(CHANGELOG_N) ChangeLog-preview cat ChangeLog.old >> $(CHANGELOG_N) cat ChangeLog-preview.old >> ChangeLog-preview git commit -m '; Release_$(TAG)' -- $(CHANGELOG_N) ChangeLog-preview git tag release_`echo $(TAG) | sed -e 's/[.]/_/g'` @echo @echo "Congratulations! Release $(TAG) of AUCTeX is ready." @echo "Please, remember to run" @echo " git push --tags origin master" @echo "to propagate release commit and tag to the remote repository." tar-ball: doc/Makefile test ! -d auctex-$(TAG) || rm -r auctex-$(TAG) mkdir auctex-$(TAG) # Use TAG_EXPORT if set (for snapshots) git archive $${TAG_EXPORT:=`echo release_$(TAG) | sed 's/[.]/_/g'`} | tar -xC auctex-$(TAG) cd auctex-$(TAG) && AUCTEXVERSION=$(TAG) AUCTEXDATE=$(AUCTEXDATE) ./autogen.sh && rm -rf $(EXCLUDEDFILES) chmod -R go-w+rX auctex-$(TAG) rm -rf $(FTPDIR) mkdir -p $(FTPDIR) tar -cf - --owner=root --group=root auctex-$(TAG) | gzip --best > $(FTPDIR)/auctex-$(TAG).tar.gz -zip -r $(FTPDIR)/auctex-$(TAG).zip auctex-$(TAG) $(CP) auctex-$(TAG)/CHANGES $(FTPDIR)/CHANGES $(CP) auctex-$(TAG)/RELEASE $(FTPDIR)/RELEASE-$(TAG) # The following files aren't produced in auctex-$(TAG) since they # are not in the tarball and should not become part of the patch target. $(CP) auctex-$(TAG)/doc/version.texi doc/version.texi cd doc && $(MAKE) extradist rm -f doc/version.texi $(CP) doc/auctex.ps doc/auctex.pdf doc/tex-ref.ps doc/tex-ref.pdf $(FTPDIR) $(CP) $(CHANGELOG_N) $(FTPDIR) rpm-packages: rpmbuild -ta $(RPM_SIGN) $(FTPDIR)/auctex-$(TAG).tar.gz $(CP) $(RPMROOT)/{RPMS/noarch/{auctex-emacs,preview-tetex},SRPMS/auctex}-$(TAG)[.-]* $(FTPDIR) @echo "If you need to prepare RPM on some other system, you need to add" @echo "them in $(FTPDIR) before 'make release-sign'." sleep 2 patch: diff -u auctex-$(OLD) auctex-$(TAG) | gzip --best \ >$(FTPDIR)/auctex-$(OLD)-to-$(TAG).patch.gz xemacs-package: check-tag rm -rf $(XEMACS_BUILD_DIR) $(CP_A) auctex-$(TAG) $(XEMACS_BUILD_DIR) cd $(XEMACS_BUILD_DIR) \ && ./configure INSTALL_INFO=: TEXHASH=: --with-xemacs --with-packagedir=`pwd`/xemacs-package --without-texmf-dir --with-auto-dir=etc/auctex/auto \ && $(MAKE) all install-man install && cd xemacs-package && tar -cf - --owner=root --group=root . | gzip --best > $(FTPDIR)/auctex-$(TAG)-pkg.tar.gz # Pre-compiled AUCTeX package for Emacs on Windows WBUILDDIR=$(PWD)/windows-package WEMACS=/usr/src/emacs-$(WEMACSVER)/src/emacs WPACKAGE=auctex-$(TAG)-e$(WEMACSVER)-msw.zip # Starting from Emacs 24.4, the name of the Windows package and the tree # structure of the package have been changed. The following variables cater for # these differences. ifeq ($(shell echo "$(WEMACSVER)" | grep '\(2[2-3].[1-4]\|24.[1-3]\)' -),$(WEMACSVER)) WEMACSDATAROOTDIR="" WEMACSEXTRACTDIR="" WEMACSPACKAGE="emacs-$(WEMACSVER)-bin-i386.zip" WEMACSSITELISP="site-lisp" else WEMACSDATAROOTDIR="share/" WEMACSEXTRACTDIR="emacs-$(WEMACSVER)" # And just to add more complexity, the package name changed again with Emacs # 24.5. Actually, we don't really need to keep track of all these changes as we # should support only the latest Emacs version, but unless something else # changes again again in the near future we can keep them (and it's useful to # reproduce old AUCTeX packages!). ifeq (24.4,$(WEMACSVER)) WEMACSPACKAGE="emacs-$(WEMACSVER)-bin-i686-pc-mingw32.zip" else WEMACSPACKAGE="emacs-$(WEMACSVER)-bin-i686-mingw32.zip" endif WEMACSSITELISP="$(WEMACSDATAROOTDIR)/emacs/site-lisp" endif WPACKAGEFILES=$(WEMACSSITELISP)/auctex $(WEMACSSITELISP)/site-start.d \ $(WEMACSSITELISP)/site-start.el $(WEMACSSITELISP)/tex-site.el \ var/auctex $(WEMACSDOC) $(WEMACSDATAROOTDIR)doc $(WEMACSDATAROOTDIR)info/dir \ $(WEMACSDATAROOTDIR)info/auctex.info* $(WEMACSDATAROOTDIR)info/preview-latex.info* windows-package: check-tag @if [ "X$(WEMACSVER)" = "X" ]; then \ echo "*** Error: No Emacs version (WEMACSVER) ***"; \ exit 1; \ fi # Make sure the prerequisites are available test -d $(WBUILDDIR) || mkdir $(WBUILDDIR) test -f $(WBUILDDIR)/$(WEMACSPACKAGE) \ || { cd $(WBUILDDIR) \ && wget http://ftp.gnu.org/gnu/emacs/windows/$(WEMACSPACKAGE); } test -f $(WBUILDDIR)/auctex-$(TAG).zip \ || { test -f $(FTPDIR)/auctex-$(TAG).zip \ && $(CP) $(FTPDIR)/auctex-$(TAG).zip $(WBUILDDIR); } \ || { cd $(WBUILDDIR) \ && wget http://ftp.gnu.org/gnu/auctex/auctex-$(TAG).zip; } # Reset to clean state cd $(WBUILDDIR) \ && rm -rf emacs-$(WEMACSVER) \ && rm -rf auctex-$(TAG) \ && unzip -d "$(WEMACSEXTRACTDIR)" $(WEMACSPACKAGE) \ && unzip auctex-$(TAG).zip rm -f $(WPACKAGE) # Create site-start.el and site-start.d cd $(WBUILDDIR)/emacs-$(WEMACSVER)/$(WEMACSSITELISP) \ && echo -e ";; Load files in \`site-start.d' directory.\ \n(dolist (file (directory-files\ \n (concat (file-name-directory load-file-name) \"site-start.d\")\ \n t \"\\\\\\\\.el\\\\\\\\'\"))\ \n (load file nil t t))" > site-start.el \ && mkdir site-start.d # Build and install AUCTeX cd $(WBUILDDIR)/auctex-$(TAG) \ && ./configure --prefix=$(WBUILDDIR)/emacs-$(WEMACSVER) \ --without-texmf-dir --with-emacs=$(WEMACS) \ --with-lispdir=$(WBUILDDIR)/emacs-$(WEMACSVER)/$(WEMACSSITELISP) \ --datarootdir=$(WBUILDDIR)/emacs-$(WEMACSVER)/$(WEMACSDATAROOTDIR) \ && $(MAKE) \ && sed -i -e 's/"\/[^\n]\+/(expand-file-name "..\/var\/auctex" (file-name-directory load-file-name))/' tex-site.el \ && $(MAKE) install # Create the package test -d $(FTPDIR) || mkdir -p $(FTPDIR) rm -f $(FTPDIR)/$(WPACKAGE) cd $(WBUILDDIR)/emacs-$(WEMACSVER) \ && zip -r $(FTPDIR)/$(WPACKAGE) $(WPACKAGEFILES) release-sign: check-tag rm -f $(FTPDIR)/*.{directive,asc,sig} if [ "x$$GPG_AGENT_INFO" = "x" ]; then \ read -sp "Enter pass phrase: " phrase ; \ gpg_opt="--passphrase-fd 0"; \ else \ gpg_opt=""; phrase=""; \ fi; \ for i in $(FTPDIR)/*; do \ echo "$$phrase" | gpg --detach-sign $$gpg_opt $$i ; \ echo "version: 1.1" >$$i.directive; \ case $$i in *-$(TAG)*) echo "directory: auctex" >>$$i.directive;; \ *) echo "directory: auctex/$(TAG)-extra" >>$$i.directive ;; \ esac ; \ echo "filename: "`basename $$i` >>$$i.directive ; \ echo "$$phrase" | gpg $$gpg_opt --clearsign $$i.directive ; \ done rm $(FTPDIR)/*.directive release-upload: @echo "Uploading everything in FTPDIR to GNU FTP server ..." @sleep 5 ncftpput ftp-upload.gnu.org /incoming/ftp $(FTPDIR)/* # AUCTeX and preview-latex manuals for the home page www-doc: check-tag rm -rf $(WWWDIR) mkdir -p $(WWWDIR)/manual $(CP) auctex-$(TAG)/doc/*.texi $(WWWDIR)/manual cd $(WWWDIR)/manual \ && wget -O gendocs.sh 'http://cvs.savannah.gnu.org/viewvc/%2acheckout%2a/texinfo/texinfo/util/gendocs.sh' \ && wget -O gendocs.sh.patch 'http://git.savannah.gnu.org/gitweb/?p=auctex.git;a=blob_plain;f=gendocs.sh.patch;hb=gendocspatch' \ && patch .texinfo/htmlxref.cnf \ && ./gendocs.sh --email bug-auctex@gnu.org --texi2html \ --html --use-nodes auctex "AUCTeX Manual" \ && ./gendocs.sh --email bug-auctex@gnu.org --texi2html \ --html --use-nodes preview-latex "preview-latex Manual" preview-ball: check-tag test ! -d $(PREVIEW_BUILD_DIR) || rm -r $(PREVIEW_BUILD_DIR) mkdir $(PREVIEW_BUILD_DIR) # Use TAG_EXPORT if set (for snapshots) git archive $${TAG_EXPORT:=`echo release_$(TAG) | sed 's/[.]/_/g'`} \ latex/ | tar -xC $(PREVIEW_BUILD_DIR) --strip-components=1 cd $(PREVIEW_BUILD_DIR) && $(MAKE) -f ../latex/Makefile preview.ins preview.pdf chmod -R go-w+rX $(PREVIEW_BUILD_DIR) test -d $(CTANDIR) || mkdir -p $(CTANDIR) # CTAN requires a top level directory "preview/" for the archive. cd $(PREVIEW_BUILD_DIR) && mkdir -p preview && \ cp README preview.dtx preview.ins preview.pdf preview/ && \ tar -cf - --owner=root --group=root preview/ | gzip --best > $(CTANDIR)/preview-$(TAG).tar.gz auctex-11.91/README.GIT000066400000000000000000000023451313533625700143340ustar00rootroot00000000000000Organization of the repository ****************************** This repository has currently three branches: * 'master': the main branch of development of AUCTeX; * 'simplify-TeX-parse-error': a feature branch for improving parsing of TeX logs; * 'gendocspatch': keeps a patch to build on-line manuals and is intended to be used only by AUCTeX maintainers. Unless you are one of them and know how to handle it, you really do not want to pull this branch as it will be rebased frequently. Installation information ************************ If you retrieved AUCTeX via Git instead of as a regular release, there are some files that need to be generated from their respective source files before you can continue reasonably with the instructions detailed in the README and INSTALL files (which will not be present otherwise). Run the shell script ./autogen.sh in order to do that. This will also generate the respective files for the preview subsystem. You will need to have a working and rather current copy of `makeinfo', `autoconf' and of `perl'. Running ./autogen.sh on a fresh clone of the Git repository will give you the state of the distribution tarball, except that Git-specific files are not removed. auctex-11.91/RELEASE000066400000000000000000000212551313533625700140360ustar00rootroot00000000000000Release notes for AUCTeX 11.91 with preview-latex ================================================= AUCTeX provides by far the most wide-spread and sophisticated environment for editing LaTeX, TeX, ConTeXt and Texinfo documents with Emacs or XEmacs. Combined with packages like RefTeX, flyspell and others it is pretty much without peer as a comprehensive authoring solution for a large variety of operating system platforms and TeX distributions. It supports document-dependent completion and syntax highlighting, easily accessible menus, jumping to error locations in the source file, a number of editing shortcuts, intelligent indentation and filling of text during entry, and WYSIWYG previews of graphical elements like math formulas right in the Emacs source buffer, by virtue of its preview-latex component. One part of the preview-latex subsystem is the central `preview.sty' file that is independently useful for a number of applications and is available in unbundled form from CTAN.[1] AUCTeX needs volunteers in particular for non-programming tasks: documentation writing, tutorials, translations, reference material, sleuth work, testing. New features and fixed bugs in this release ------------------------------------------- Now AUCTeX has a logo. The LaTeX code to create it is available in the 'etc/' directory of the package. Add support for 'upmendex', an extension of 'makeindex' capable of sorting indexes by unicode based ICU. Fix preview-latex to interact correctly with Japanese LaTeX. The parsing routine was made robust not to be confused by the 7-bit encoding of Japanese text and the necessary option to LaTeX command is kept even when preamble caching is enabled. The new "Glossaries" entry in 'TeX-command-list' runs the command 'makeglossaries'. Fontification of control symbols has been improved. Characters defined in 'font-latex-match-simple-exclude-list' do not receive any fontification. In DocTeX mode, the character '_' is removed from 'font-latex-match-simple-exclude-list' in order to fontify macros like '\__module_foo:nnn' correctly. Fontification of math environments has been improved. Optional and/or mandatory argument(s) to environments are not fontified. 'preview.sty' loads 'luatex85.sty' if possible and should be compatible with newer luaTeX versions. AUCTeX has a new customize option 'TeX-ispell-verb-delimiters'. This string contains usual characters used as delimiters for in-line verbatim macros like '\verb'. Text between delimiters after an in-line verbatim macro will be skipped during spell checking. Fontification of in-line verbatim macros has been improved. 'font-latex.el' recognizes an optional or a mandatory argument for macros like '\Verb' from 'fancyvrb.sty', '\mint' and '\mintinline' from 'minted.sty' and fontifies verbatim content correctly. AUCTeX can put and parse labels in optional argument of environments. Inserting labels is done by new function 'LaTeX-env-label-as-keyval'. A new customize option 'LaTeX-listing-label' is available as prefix to labels in code typesetting environments, e.g. 'lstlisting' environment provided by 'listings' package. 'LaTeX-listing-label' defaults to 'lst:'. Parsing of labels for later referencing relies on two requirements: 1. Label should come as last key-value argument, and 2. label must be enclosed in braces, e.g. \begin{lstlisting}[caption=Some Caption,label={lst:foo}] ... \end{lstlisting} The function 'LaTeX-label' now takes a second optional argument 'NO-INSERT'. When non-'nil', 'LaTeX-label' reads a label and returns it as a string. This argument is also passed to any function bound to 'LaTeX-label-function' (see next item). *Incompatible change:* The signature for the function passed with the customize option 'LaTeX-label-function' has changed. The function bound to this variable is now expected to take an optional second argument 'NO-INSERT'. When this argument is non-'nil', the function should read and only return a label as a string; insertion is done by another function. Directory local variables were ineffective for 'japanese-latex-mode' and 'japanese-plain-tex-mode'. This bug was fixed. (This was actually done in AUCTeX 11.90, but not advertised) The output of Japanese text from Japanese TeX engines is decoded correctly for most cases, according to the encoding of the TeX documents and the locale. The difference between MS Windows, macOS and unix-like OS is taken into account. (This was actually done in AUCTeX 11.90, but not advertised) Quite a few new LaTeX packages are supported. As usual, many bugs were fixed. Requirements ------------ It is required that you use at least GNU Emacs 21 or XEmacs 21.4. XEmacs requires at least version 1.84 of the xemacs-base package (released on 01/27/2004) or a sumo tarball dated 02/02/2004 or newer for compiling AUCTeX: please use the XEmacs package system for upgrading if necessary. The preview-latex subsystem requires image support. This is available with GNU Emacs 21.3 under the X window system. For Windows[2], Mac OS X (Carbon, Cocoa)[3] or native GTK+ toolkit support, at least version 22.1 of GNU Emacs is required. Emacs 22 and later is the recommended platform for AUCTeX in general. If you prefer XEmacs, it will work in version 21.4.10 or later. You'll also need a working LaTeX installation and Ghostscript. dvipng[4] (version 1.4 or later), a very fast DVI converter, can be used to speed up the conversion. Availability ------------ The easiest way for getting AUCTeX, for users running Emacs 24.1 or higher, is installing it with GNU ELPA, see for more information. Other download options are available at . At release time, we provide the source tarball, and a platform-independent XEmacs package file (which you have to install yourself using XEmacs' own package system, after using it for removing the previous version of AUCTeX). You can also use versions of Emacs that already include AUCTeX or a software package management system for your operating system which provides you with the latest release. The XEmacs package file can be discerned by `pkg' in its name. It is usually more recent than what gets distributed from XEmacs servers and as part of the Sumo tarball. A separate directory for each release contains some stuff from the tarball, such as ChangeLog, printable manuals, and a reference sheet. The download area is mirrored to the directory support/auctex on CTAN. AUCTeX is licensed under the GNU General Public License version 3. You'll find more information at the web site of AUCTeX , including its mailing list addresses. Future development and additional information --------------------------------------------- AUCTeX is proceeding as a GNU project with the long-term intent of merging it into Emacs. For that reason, all new contributors need to assign copyright to their contributions to the FSF (the usual procedure for Emacs contributors). The same holds for past contributors. The principal authors and maintainers have already done so, but it would require a diligent and diplomatic volunteer to find and ask the rest. Current AUCTeX managers are Arash Esbati, Mos Giordano, and Tassilo Horn. Everybody is welcome to contribute to the project by reporting bugs and suggesting improvements, but the most effective way of helping AUCTeX development remains volunteering for tasks. The following people contributed to this release series (in alphabetical order): Ivan Andrus, Ralf Angeli, Masayuki Ataka, Fabrice Ben Hamouda, Thomas Baumann, Vincent Belache, Berend de Boer, Uwe Brauer, Ken Brown, Joshua Buhl, Patrice Dumas, Arash Esbati, Werner Fink, Miguel Frasson, Peter S. Galbraith, Mos Giordano, Patrick Gundlach, Jobst Hoffmann, Tassilo Horn, Yvon Hevel, Orlando Iovino, Mads Jensen, Arne Jrgensen, David Kastrup, Ikumi Keita, Philip Kime, Oleh Krehel, Joost Kremers, Frank Kster, Jan-ke Larsson, Matthew Leach, Antoine Levitt, Leo Liu, Vladimir Lomov, Stefan Monnier, Dan Nicolaescu, Piet van Oostrum, Nicolas Richard, Augusto Ritter Stoffel, Florent Rougon, Santiago Saavedra, Davide G. M. Salvetti, Rdiger Sonderfeld, Holger Sparr, Mike Sperber, Reiner Steib, Christian Schlauer, Shiro Takeda, Mark Trettin (Please accept our apologies if we forgot somebody.) Footnotes: [1] [2] You can get a precompiled version of Emacs for Windows at . [3] See e.g. for a list of precompiled versions of Emacs for Mac OS X. [4] dvipng is available via its project page and from CTAN. auctex-11.91/aclocal.m4000066400000000000000000000517061313533625700146770ustar00rootroot00000000000000# serial 1 dnl this was once done by Katsumi Yamaoka , but dnl pretty much no original code remains. dnl EMACS_LISP takes 5 arguments. $1 is the name of the shell dnl variable to assign a value, $2 is a Lisp expression placed into dnl shell double quotes (which has consequences for quoting and dnl variable expansion). $3 is a list of Emacs options evaluated before dnl the expression itself, $4 is a list of Elisp variables that is dnl assigned from the command line arguments from $5. AC_DEFUN(EMACS_LISP, [ elisp="$2" OUTPUT=./conftest-$$ echo "${EMACS}" -batch $3 -eval "(let* (patsubst([$4], [\w+], [(\&(pop command-line-args-left))])(x ${elisp})) (write-region (if (stringp x) x (prin1-to-string x)) nil \"${OUTPUT}\"))" $5 >& AC_FD_CC 2>&1 "${EMACS}" -batch $3 -eval "(let* (patsubst([$4], [\w+], [(\&(pop command-line-args-left))])(x ${elisp})) (write-region (if (stringp x) x (prin1-to-string x)) nil \"${OUTPUT}\"))" $5 >& AC_FD_CC 2>&1 $1="`cat ${OUTPUT}`" echo "=> [$]{$1}" >& AC_FD_CC 2>&1 rm -f ${OUTPUT} ]) # This generates a prefix variables $1 from the executable in $2. # The executable is searched in PATH, and a potential bin/ or # bin/architecture/ component is stripped from it. AC_DEFUN(EMACS_PATH_PREFIX,[ EMACS_LISP([$1],[[(condition-case nil (let* ((prefix (directory-file-name (file-name-directory (executable-find cmd)))) (parent (directory-file-name (file-name-directory prefix)))) (if (string= (file-name-nondirectory prefix) \"bin\") (setq prefix parent) (if (string= (file-name-nondirectory parent) \"bin\") (setq prefix (directory-file-name (file-name-directory parent))))) prefix) (error "NONE"))]],[[-no-site-file]],[[cmd]],[$2])]) AC_DEFUN(EMACS_PROG_EMACS, [ # Check for (X)Emacs, report its path, flavor and prefix # Apparently, if you run a shell window in Emacs, it sets the EMACS # environment variable to 't'. Let's undo the damage. if test "${EMACS}" = "t"; then EMACS="" fi AC_ARG_WITH(emacs, [ --with-emacs@<:@=PATH@:>@ Use Emacs to build (on PATH if given)], [if test "${withval}" = "yes"; then EMACS=emacs elif test "${withval}" = "no"; then EMACS=xemacs else EMACS="${withval}"; fi]) AC_ARG_WITH(xemacs, [ --with-xemacs@<:@=PATH@:>@ Use XEmacs to build (on PATH if given)], [if test "x${withval}" != xno then if test "x${with_emacs}" != xno -a "x${with_emacs}" != x then AC_MSG_ERROR([[cannot use both Emacs and XEmacs]]) fi if test "x${withval}" = "xyes" then EMACS=xemacs else EMACS="${withval}" fi elif test "x${with_emacs}" = xno then AC_MSG_ERROR([[need to use either Emacs or XEmacs]]) fi]) # "${prefix}/bin" is for Windows users AC_PATH_PROGS(EMACS, ${EMACS} emacs xemacs, "", ${PATH} "${prefix}/bin" ) if test -z "${EMACS}"; then AC_MSG_ERROR([(X)Emacs not found! Aborting!]) fi AC_MSG_CHECKING([if ${EMACS} is XEmacs]) EMACS_LISP(XEMACS, [[(if (featurep (quote xemacs)) \"yes\" \"no\")]],[[-no-site-file]]) if test "${XEMACS}" = "yes"; then EMACS_FLAVOR=xemacs EMACS_NAME="XEmacs" elif test "${XEMACS}" = "no"; then EMACS_FLAVOR=emacs EMACS_NAME="Emacs" else AC_MSG_ERROR([Unable to run ${EMACS}! Aborting!]) fi AC_MSG_RESULT(${XEMACS}) AC_SUBST(XEMACS) AC_SUBST(EMACS_FLAVOR) AC_MSG_CHECKING([for ${EMACS_NAME} prefix]) EMACS_PATH_PREFIX([[emacsprefix]],[["${EMACS}"]]) AC_MSG_RESULT([["${emacsprefix}"]]) ]) AC_DEFUN(AC_DATE_VERSION_FROM_CHANGELOG, [ AC_MSG_CHECKING([for date with git]) $1=[`git log -1 --date=short --format=%cd 2> /dev/null`] if test "X${$1}" = X then AC_MSG_RESULT([git not found, checking for date in ChangeLog:]) $1=[`sed -n '1s/^\([-0-9][-0-9]*\).*/\1/p' "$3"`] if test "X${$1}" = X then AC_MSG_ERROR([[not found]]) fi fi AC_MSG_RESULT(${$1}) AC_MSG_CHECKING([for release with git]) if git describe --tags > /dev/null 2> /dev/null then if test "X`git describe --tags | sed 's/release_.._..//'`" = X then $2=[`git describe --tags`] else $2=${$1} AC_MSG_RESULT([not found, using ${$2} instead]) fi else AC_MSG_RESULT([git not found, checking for release in ChangeLog:]) $2=[`sed -n '2,/^[0-9]/s/.*Version \(.*\) released\..*/\1/p' "$3"`] if test "X${$2}" = X then $2=${$1} AC_MSG_RESULT([not found, using ${$2} instead]) else AC_MSG_RESULT([${$2}]) fi fi ]) AC_DEFUN(EMACS_CHECK_VERSION, [ AC_MSG_CHECKING([if ${EMACS_NAME} is recent enough]) EMACS_LISP(result,[(cond ((< emacs-major-version $1) \"no\") ((> emacs-major-version $1) \"yes\") ((< emacs-minor-version 0$2) \"no\") (t \"yes\"))],[[-no-site-file]]) AC_MSG_RESULT([${result}]) if test "${result}" != "yes" then AC_MSG_ERROR([This package requires at least ${EMACS_NAME} version $1.$2 Aborting!]) fi ]) dnl Look for an installation directory under given prefixes. dnl $1 is the variable name we are looking for. dnl $2 is a list of prefixes to try as a list of shell words dnl $3 is a Lisp expression giving a list of directory names dnl those should be be either nil or a relative path like "tex/latex". dnl Those names are tried in turn, and every one of them is matched dnl against the tail of each location in $4. nil matches everything, dnl it is a wildcard. dnl $4 is Lisp expression giving a list of locations where to find names. dnl A location is only considered if it is nonnil, an existing dnl absolute directory, dnl and is a subdirectory of one of the given prefixes. dnl $5,$6,$7 are additional arguments for the elisp call AC_DEFUN(EMACS_EXAMINE_INSTALLATION_DIR, [ for currentprefix in $2 do expprefix="${currentprefix}" AC_FULL_EXPAND(expprefix) EMACS_LISP([$1], [(catch 22 (let (reldir (dirs $4)) (dolist (name $3 \"NONE\") (dolist (dir dirs) (when (and dir (setq dir (directory-file-name dir)) (file-name-absolute-p dir) (file-directory-p dir) (not (string-match \"\\\\\`\\\\.\\\\.\" (setq reldir (file-relative-name dir expanded)))) (not (file-name-absolute-p reldir)) (let ((name name) (dir dir)) (while (and dir name (string= (file-name-nondirectory dir) (file-name-nondirectory name)) (setq dir (file-name-directory dir) name (file-name-directory name)) (if (and dir name) (setq dir (directory-file-name dir) name (directory-file-name name))))) (null name)) (throw 22 (if (string= reldir \".\") (directory-file-name prefix) (concat (file-name-as-directory prefix) reldir)))))))))],[$5], [prefix expanded $6],["${currentprefix}" "${expprefix}" $7]) if test "[$]$1" != NONE; then break; fi; done]) AC_DEFUN(EMACS_PATH_PACKAGEDIR, [AC_ARG_WITH(packagedir, [ --with-packagedir=DIR package DIR for XEmacs], [packagedir="`echo ${withval} | sed 's/^~\//${HOME}\//;s/[[\/\\]]$//'`"], [if test ${EMACS_FLAVOR} = xemacs; then AC_MSG_CHECKING([for XEmacs package directory]) EMACS_EXAMINE_INSTALLATION_DIR(packagedir, [['${datadir}/xemacs/xemacs-packages' \ '${libdir}/xemacs/xemacs-packages' \ '${datadir}' '${libdir}' "${emacsprefix}"]], [[(list \"xemacs/site-packages\" \"xemacs/xemacs-packages\" \"site-packages\" \"xemacs-packages\")]], [[(if (boundp 'late-packages) (append late-packages last-packages early-packages) (append late-package-hierarchies last-package-hierarchies early-package-hierarchies))]]) if test "x${packagedir}" = xNONE -o -z "${packagedir}"; then AC_MSG_ERROR([not found, exiting!]) fi AC_MSG_RESULT(${packagedir}) else packagedir=no fi]) AC_SUBST(packagedir)]) AC_DEFUN(EMACS_PATH_LISPDIR, [ AC_MSG_CHECKING([where lisp files go]) AC_ARG_WITH(lispdir, [ --with-lispdir=DIR A place in load-path for Lisp files; most files will be place in a subdirectory.], [[lispdir="${withval}"]]) if test "X${lispdir}" = X; then if test "X${packagedir}" = Xno; then # Test paths relative to prefixes EMACS_EXAMINE_INSTALLATION_DIR(lispdir, [['${datadir}/'${EMACS_FLAVOR} '${libdir}/'${EMACS_FLAVOR} \ "${emacsprefix}/share/${EMACS_FLAVOR}" \ '${datadir}' '${libdir}' "${emacsprefix}"]], [[(list \"${EMACS_FLAVOR}/site-lisp\" \"${EMACS_FLAVOR}/site-packages\" \"site-lisp\" \"site-packages\")]], load-path) if test "${lispdir}" = "NONE"; then # No? notify user. AC_MSG_ERROR([Cannot locate lisp directory, use --with-lispdir, --datadir, or possibly --prefix to rectify this]) fi else # XEmacs lispdir="${packagedir}/lisp" fi fi AC_MSG_RESULT([[${lispdir}]]) AC_SUBST(lispdir) ]) AC_DEFUN(TEX_PATH_TEXMFDIR, [ AC_ARG_WITH(texmf-dir, [ --with-texmf-dir=DIR TEXMF tree to install into, or --without-texmf-dir for runtime config], [ texmfdir="${withval}" ; if test "x${texmfdir}" = xno then previewtexmfdir="${packagedatadir}/latex" previewdocdir="${packagedatadir}/doc" else AC_FULL_EXPAND(withval) if test ! -d "${withval}" ; then AC_MSG_ERROR([--with-texmf-dir="${texmfdir}": Directory does not exist]) fi previewtexmfdir="${texmfdir}/tex/latex/preview" previewdocdir="${texmfdir}/doc/latex/styles" fi ]) AC_ARG_WITH(tex-dir, [ --with-tex-dir=DIR Location to install preview TeX sources], [ previewtexmfdir="${withval}" ; AC_FULL_EXPAND(withval) if test ! -d "${withval}" ; then AC_MSG_ERROR([--with-tex-dir="${previewtexmfdir}": Directory does not exist]) fi ]) AC_ARG_WITH(doc-dir, [ --with-doc-dir=DIR Location to install preview.dvi], [ previewdocdir="${withval}" ; AC_FULL_EXPAND(withval) if test ! -d "${withval}" ; then AC_MSG_ERROR([--with-doc-dir="${previewdocdir}": Directory does not exist]) fi ]) # First check for docstrip.cfg information -- removed. Too high # likelihood to pick up a user preference instead of a system setting. # Next # kpsepath -n latex tex # and then go for the following in its output: # a) first path component in datadir/prefix ending in tex/latex// (strip trailing # // and leading !!): "Searching for TDS-compliant directory." Install # in preview subdirectory. # b) first absolute path component ending in // "Searching for directory # hierarchy" Install in preview subdirectory. # c) anything absolute. Install both files directly there. if test "x${texmfdir}" != xno ; then if test "x${previewtexmfdir}" = x ; then AC_MSG_CHECKING([for prefix from kpsepath]) EMACS_PATH_PREFIX(texprefix,kpsepath) if test "x${texprefix}" != "xNONE" then AC_MSG_RESULT([["${texprefix}"]]) AC_MSG_CHECKING([for TDS-compliant directory]) pathoutput="`kpsepath -n latex tex`" EMACS_EXAMINE_INSTALLATION_DIR(texmfdir, [['${datadir}/texmf' "${texprefix}/share/texmf-local" "${texprefix}/share/texmf" "${texprefix}/texmf-local" "${texprefix}/texmf"]], [[(list nil)]], [[(mapcar (lambda(x) (and (string-match \"\\\\\`!*\\\\(.*\\\\)/tex/latex//+\\\\'\" x) (match-string 1 x))) (append (split-string pathoutput \";\") (split-string pathoutput \":\")))]], [[-no-site-file]], [[pathoutput]],[["${pathoutput}"]]) if test -n "${texmfdir}" -a "${texmfdir}" != "NONE" ; then previewdocdir="${texmfdir}/doc/latex/styles" previewtexmfdir="${texmfdir}/tex/latex/preview" fi if test -z "${previewtexmfdir}" -o "${previewtexmfdir}" = no ; then AC_MSG_RESULT([no]) AC_MSG_CHECKING([for TeX directory hierarchy]) EMACS_EXAMINE_INSTALLATION_DIR(texmfdir, [['${datadir}/texmf' "${texprefix}/share/texmf-local" "${texprefix}/share/texmf" "${texprefix}/texmf-local" "${texprefix}/texmf" '${datadir}' "${texprefix}/share" "${texprefix}"]], [[(list nil)]], [[(mapcar (lambda(x) (and (string-match \"\\\\\`!*\\\\(.*[^/]\\\\)//+\\\\'\" x) (match-string 1 x))) (append (split-string pathoutput \";\") (split-string pathoutput \":\")))]], [[-no-site-file]], [[pathoutput]],[["${pathoutput}"]]) if test -n "${texmfdir}" -a "${texmfdir}" != "NONE" ; then previewtexmfdir="${texmfdir}/preview" previewdocdir="${texmfdir}/preview" fi fi if test -z "${previewtexmfdir}" -o "${previewtexmfdir}" = no ; then AC_MSG_RESULT([no]) AC_MSG_CHECKING([for TeX input directory]) EMACS_EXAMINE_INSTALLATION_DIR(texmfdir, [['${datadir}' "${texprefix}/share" "${texprefix}"]], [[(list nil)]], [[(mapcar (lambda(x) (and (string-match \"\\\\\`!*\\\\(.*[^/]\\\\)/?\\\\'\" x) (match-string 1 x))) (append (split-string pathoutput \";\") (split-string pathoutput \":\")))]], [[-no-site-file]], [[pathoutput]],[["${pathoutput}"]]) if test -n "${texmfdir}" -a "${texmfdir}" != "NONE" ; then previewtexmfdir="${texmfdir}" previewdocdir="${texmfdir}" fi fi fi if test -z "${previewtexmfdir}" -o "${previewtexmfdir}" = no ; then AC_MSG_RESULT([no]) AC_MSG_ERROR([Cannot find the texmf directory! Please use --with-texmf-dir=dir to specify where the preview tex files go]) fi AC_MSG_RESULT(${texmfdir}) fi fi echo Preview will be placed in ${previewtexmfdir} echo Preview docs will be placed in ${previewdocdir} AC_SUBST(texmfdir) AC_SUBST(previewtexmfdir) AC_SUBST(previewdocdir)]) AC_DEFUN(AC_FULL_EXPAND, [ __ac_tmp_oldprefix__="${prefix}" __ac_tmp_oldexec_prefix__="$exec_prefix" test "x${prefix}" = xNONE && prefix="${ac_default_prefix}" test "x${exec_prefix}" = xNONE && exec_prefix='${prefix}' while :;do case "[$]$1" in *\[$]*) __ac_tmp__='s/[[\`"-"]]/\\&/g' eval "$1=`sed ${__ac_tmp__} < conftest.texi echo @$1{test} >> conftest.texi if ${MAKEINFO} conftest.texi > /dev/null 2> /dev/null; then AC_MSG_RESULT(yes) ifelse([$2], , :, [$2]) else AC_MSG_RESULT(no) ifelse([$3], , :, [$3]) fi rm -f conftest.texi conftest.info fi ]) dnl dnl MAKEINFO_CHECK_MACROS( MACRO ... [, ACTION-IF-FOUND dnl [, ACTION-IF-NOT-FOUND]]) dnl AC_DEFUN(MAKEINFO_CHECK_MACROS, [for ac_macro in $1; do MAKEINFO_CHECK_MACRO(${ac_macro}, $2, [MAKEINFO_MACROS="-D no-${ac_macro} ${MAKEINFO_MACROS}" $3])dnl done AC_SUBST(MAKEINFO_MACROS) ]) AC_DEFUN(AC_SHELL_QUOTIFY, [$1=["`sed 's/[^-0-9a-zA-Z_./:$]/\\\\&/g;s/[$]\\\\[{(]\\([^)}]*\\)\\\\[})]/${\\1}/g' <= 21 Obsoletes: ge_auc emacs-auctex auctex preview-latex-emacs Conflicts: emacspeak < 18 Provides: auctex %description emacs AUCTeX is an extensible package that supports writing and formatting TeX files for most variants of Emacs. AUCTeX supports many different TeX macro packages, including AMS-TeX, LaTeX, Texinfo and basic support for ConTeXt. Documentation can be found under /usr/share/doc, e.g. the reference card (tex-ref.pdf) and the FAQ. The AUCTeX manual is available in Emacs info (C-h i d m AUCTeX RET). On the AUCTeX home page, we provide manuals in various formats. This package is for GNU Emacs. XEmacs users should use the package system for installation. The package enables AUCTeX modes system-wide. The README file contains information how users may override this choice. %package -n preview-tetex Summary: LaTeX files for preview.sty Group: %{texgroup} Requires: tetex Obsoletes: preview-latex-common Provides: preview-tetex preview-latex-common %description -n preview-tetex The LaTeX package preview.sty can be used for extracting selected parts of LaTeX documents into graphics of their own. Various TeX and editing applications use this as a subsystem. AUCTeX by now comes with its own integrated version of preview-latex and the style files and does not require this package, and newer versions of teTeX might already contain preview.sty (in which case the resulting conflict is probably best solved by not installing this package). %prep %setup %build # The below will make the package build from a tar straight from Git # NOT RECOMMENDED, but useful for testing! test -f ./configure || ./autogen.sh %configure --with-emacs INSTALL_INFO=: --without-texmf-dir make pushd doc make tex-ref.pdf popd %install rm -rf %{buildroot} mkdir -p %{buildroot}{%{_datadir}/emacs/site-lisp,%{_infodir}} %if %{FOR_SUSE} cat < %{buildroot}%{_datadir}/emacs/site-lisp/suse-start-auctex.el ;; suse-start-auctex.el ;; This file enables AUCTeX globally: (load "auctex.el" nil t t) ;; See (info "(auctex)Introduction") on how to disable AUCTeX. EOFA cat < %{buildroot}%{_datadir}/emacs/site-lisp/suse-start-preview-latex.el ;; suse-start-preview-latex.el ;; This file enables preview-latex globally: (load "preview-latex.el" nil t t) EOFP %else mkdir -p %{buildroot}%{_datadir}/emacs/site-lisp/site-start.d %endif %makeinstall install-docs mkdir -p %{buildroot}%{_datadir}/texmf/tex/latex/preview cp -p preview/latex/*.{sty,def,cfg} %{buildroot}%{_datadir}/texmf/tex/latex/preview mkdir -p %{buildroot}%{_datadir}/texmf/doc/latex/styles cp -p preview/latex/preview.dvi %{buildroot}%{_datadir}/texmf/doc/latex/styles %post emacs /sbin/install-info --info-dir=%{_infodir} %{_infodir}/auctex.info /sbin/install-info --info-dir=%{_infodir} %{_infodir}/preview-latex.info %preun emacs # $1 is the number of versions of this package installed # after this uninstallation if [ $1 -eq 0 ]; then /sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/auctex.info /sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/preview-latex.info fi %clean rm -rf %{buildroot} %post -n preview-tetex /usr/bin/mktexlsr %{_datadir}/texmf %postun -n preview-tetex /usr/bin/mktexlsr %{_datadir}/texmf %files -n preview-tetex %defattr(-,root,root) %{_datadir}/texmf/tex/latex/preview %config %{_datadir}/texmf/tex/latex/preview/prauctex.cfg %{_datadir}/texmf/doc/latex/styles/preview.dvi %files emacs %defattr(-,root,root) %doc RELEASE COPYING INSTALL README TODO FAQ CHANGES %doc doc/tex-ref.pdf # %doc --parents preview/RELEASE preview/README preview/INSTALL preview/TODO preview/FAQ %doc %{_infodir}/* # %exclude %{_infodir}/dir %{_datadir}/emacs/site-lisp/%{name} %{_localstatedir}/%{name} %config %{_datadir}/emacs/site-lisp/tex-site.el %if %{FOR_SUSE} %{_datadir}/emacs/site-lisp/auctex.el %{_datadir}/emacs/site-lisp/preview-latex.el %{_datadir}/emacs/site-lisp/suse-start-auctex.el %{_datadir}/emacs/site-lisp/suse-start-preview-latex.el %else %{_datadir}/emacs/site-lisp/site-start.d/auctex.el %{_datadir}/emacs/site-lisp/site-start.d/preview-latex.el %endif %changelog # Shouldn't changelog include changes in the package instead of changes in the # spec file? * Tue Jun 6 2006 Reiner Steib - Update to AUCTeX 11.83 * Wed Dec 28 2005 Reiner Steib - Remove bogus preview directory. Add preview-latex in description. * Sat Dec 17 2005 Reiner Steib - Update for AUCTeX 11.82. * Tue May 3 2005 David Kastrup - include preview-latex, so outdate other stuff. * Fri Jan 21 2005 David Kastrup - Conflict with outdated Emacspeak versions * Fri Jan 14 2005 David Kastrup - Install and remove auctex.info, not auctex * Thu Aug 19 2004 David Kastrup - Change tex-site.el to overwriting config file mode. New naming scheme. * Mon Aug 16 2004 David Kastrup - Attempt a bit of SuSEism. Might work if we are lucky. * Sat Dec 7 2002 David Kastrup - Change addresses to fit move to Savannah. * Mon Apr 15 2002 Jan-Ake Larsson - Adjusted TeX-macro-global and put autoactivation in preinstall script so that it can be chosen at install time. * Tue Feb 19 2002 Jan-Ake Larsson - Added site-start.el support * Sat Feb 16 2002 Jan-Ake Larsson - Prerelease 11.11 auctex-11.91/autogen.sh000077500000000000000000000042251313533625700150320ustar00rootroot00000000000000#!/bin/sh # Bootstrap script for AUCTeX # Maintainer: auctex-devel@gnu.org # Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This file is part of AUCTeX. # AUCTeX is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # AUCTeX is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # You should have received a copy of the GNU General Public License # along with AUCTeX; see the file COPYING. If not, write to the Free # Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, # MA 02110-1301, USA. test "x${AUTOCONF}" != x || AUTOCONF=autoconf test "x${MAKEINFO}" != x || MAKEINFO=makeinfo test "x${PDFTEX}" != x || PDFTEX=pdftex test "x${PERL}" != x || PERL=perl test "x${MAKE}" != x || MAKE=make ${AUTOCONF} || { echo "Error running ${AUTOCONF} in ." >&2 ; exit 1; } rm -rf autom4te.cache if test "x${AUCTEXDATE}" = x then AUCTEXDATE=`git log -1 --date=short --format=%cd 2> /dev/null` if test "X${AUCTEXDATE}" = X then echo "Can't find date with git, trying with ChangeLog.1..." >&2 AUCTEXDATE=`LC_ALL=C sed -n '1s/^\([-0-9][-0-9]*\).*/\1/p' ChangeLog.1` test "X${AUCTEXDATE}" != X || { echo "Can't find date in ChangeLog.1" >&2 ; exit 1; } fi fi if test "x${AUCTEXVERSION}" = x then if git describe --tags >/dev/null 2> /dev/null then if test "X`git describe --tags | sed 's/release_.._..//'`" = X then AUCTEXVERSION=`git describe --tags` else AUCTEXVERSION=${AUCTEXDATE} fi else AUCTEXVERSION=`sed -n '2,/^[0-9]/s/.*Version \(.*\) released\..*/\1/p' ChangeLog.1` test "X${AUCTEXVERSION}" != X || AUCTEXVERSION=${AUCTEXDATE} fi fi cd doc rm -f version.texi ${MAKE} -f Makefile.in MAKEINFO="${MAKEINFO}" PDFTEX="${PDFTEX}" PERL="$PERL" AUCTEXDATE="$AUCTEXDATE" AUCTEXVERSION="$AUCTEXVERSION" dist || { echo "Error running ${MAKE} in doc" >&2 ; exit 1; } cd .. auctex-11.91/bib-cite.el000066400000000000000000003216341313533625700150370ustar00rootroot00000000000000;;; bib-cite.el --- test ;; bib-cite.el - Display \cite, \ref or \label / Extract refs from BiBTeX file. ;; Copyright (C) 1994-1999, 2001, 2003-2005, 2014 ;; Free Software Foundation, Inc. ;; Author: Peter S. Galbraith ;; Created: 06 July 1994 ;; Version: 3.28 (Feb 23 2005) ;; Keywords: bibtex, cite, auctex, emacs, xemacs ;;; This file is not part of GNU Emacs. ;; This package is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; This package is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to the ;; Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;; LCD Archive Entry: ;; bib-cite|Peter Galbraith|GalbraithP@dfo-mpo.gc.ca| ;; Display \cite, \ref or \label / Extract refs from BiBTeX file.| ;; 21-May-1997|3.01|~/misc/bib-cite.el.gz| ;; ---------------------------------------------------------------------------- ;;; Commentary: ;; This minor-mode is used in various TeX modes to display or edit references ;; associated with \cite commands, or matching \ref and \label commands. ;; New versions of this package (if they exist) may be found at: ;; http://people.debian.org/~psg/elisp/bib-cite.el ;; and in AUCTeX's Git archive at ;; http://git.savannah.gnu.org/cgit/auctex.git ;; Operating Systems: ;; Works in unix, DOS and OS/2. Developped under Linux. ;; AUCTeX users: ;; AUCTeX is a super-charged LaTeX mode for emacs. Get it at: ;; ;; ftp://ftp.gnu.org/pub/gnu/auctex/ ;; ;; WWW users may want to check out the AUCTeX page at ;; http://www.gnu.org/software/auctex/ ;; ;; bib-cite.el is included in the AUCTeX distribution. Therefore, if ;; you use AUCTeX and didn't obtained bib-cite.el separately, make sure ;; that you are actually using the more recent version. ;; RefTeX users: ;; RefTeX is a package with similar functions to bib-cite. ;; http://www.astro.uva.nl/~dominik/Tools/reftex/ ;; RefTeX is bundled and preinstalled with Emacs since version 20.2. ;; It was also bundled with XEmacs 19.16--20.x. ;; ;; I suggest that you use RefTeX to help you type-in text as it's functions ;; are better suited to this task than bib-cite, and use bib-cite's features ;; when you proof-read the text. ;; If you wish bib-cite to use RefTeX's reftex-view-crossref command to ;; display and find \label's and \cite bibliography entries, set the variable ;; bib-cite-use-reftex-view-crossref to t. ;; MS-DOS users: ;; Multifile documents are supported by bib-cite by using etags (TAGS files) ;; which contains a bug for MSDOS (at least for emacs 19.27 it does). ;; Get the file ;; http://people.debian.org/~psg/elisp/bib-cite.etags-bug-report ;; to see what patches to make to etags.c to fix it. ;; Description: ;; ~~~~~~~~~~~ ;; This package is used in various TeX modes to display or edit references ;; associated with \cite commands, or matching \eqref, \ref and \label ;; commands (so I actually overstep BiBTeX bounds here...). ;; ;; These are the functions: ;; ;; bib-display bib-display-mouse ;; - Display citation, \ref or \label under point ;; bib-find bib-find-mouse ;; - Edit citation, \ref or \label under point ;; bib-find-next - Find next occurrence of a \ref or \eqref ;; bib-make-bibliography - Make BiBTeX file containing only cite keys used. ;; bib-apropos - Search BiBTeX source files for keywords. ;; bib-etags - Refreshes (or builds) the TAGS files for ;; multi-file documents. ;; bib-create-auto-file - Used in bibtex-mode to create cite key ;; completion .el file for AUCTeX. ;; bib-highlight-mouse - Highlight \cite, \ref and \label commands in ;; green when the mouse is over them. ;; About Cite Commands and related functions: ;; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ;; Various flavors of \cite commands are allowed (as long as they contain ;; the word `cite') and they may optionally have bracketed [] options. ;; Bibtex Cross-references are displayed, and @string abbreviations are ;; substituted or included. ;; ;; The \cite text is found (by emacs) in the bibtex source files listed in the ;; \bibliography command. The BiBTeX files can be located in a search path ;; defined by an environment variable (typically BIBINPUTS, but you can change ;; this). ;; ;; All citations used in a buffer can also be listed in a new bibtex buffer by ;; using bib-make-bibliography. This is useful to make a bibtex file for a ;; document from a large bibtex database. In this case, cross-references are ;; included, as well as the @string commands used. The @string abbreviations ;; are not substituted. ;; ;; The bibtex files can also be searched for entries matching a regular ;; expression using bib-apropos. ;; Usage instructions: ;; ~~~~~~~~~~~~~~~~~~ ;; bib-display Bound to Mouse-3 when specially highlighted. ;; In Hyperbole, bound to the Assist key. ;; Bound to `\C-c b d' ;; ;; bib-display will show the bibtex entry or the corresponding label or ;; ref commands from anywhere within a document. ;; With cursor on the \cite command itslef ;; -> display all citations of the cite command from the BiBTeX source. ;; With cursor on a particular cite key within the brackets ;; -> display that citation's text from the BiBTeX source file(s). ;; ;; Example: ;; ;; \cite{Wadhams81,Bourke.et.al87,SchneiderBudeus94} ;; ^Cursor -> Display-all-citations ^Cursor -> Display-this-citation ;; ;; With cursor on a \label command ;; -> Display first matching \ref command in the document ;; With cursor on a \ref command ;; -> Display environment associated with the matching \label command. ;; ;; Finding a ref or label within a multi-file document requires a TAGS file, ;; which is automatically generated for you. This enables you to then use ;; any tags related emacs features. ;; ;; bib-find Bound to Mouse-2 when specially highlighted. ;; In Hyperbole, bound to the Action key. ;; Bound to `\C-c b f' ;; ;; bib-find will select the buffer and move point to the BiBTeX source file ;; at the proper citation for a cite command, or move point to anywhere ;; within a document for a label or ref command. The ref chosen is the ;; first occurrance within a document (using a TAGS file). If point is ;; moved within the same buffer, mark is set before the move and a message ;; stating so is given. If point is moved to another file, this is done in ;; a new window using tag functions. ;; ;; The next occurrence of a \ref or \eqref command may be found by invoking ;; bib-find-next, usually bound to `C-c b n'. ;; ;; For multi-file documents, you must be using AUCTeX (so that bib-cite can ;; find the master file) and all \input and \include commands must be first ;; on a line (not preceeded by any non-white text). ;; ;; bib-make-bibliography: Bound to `\C-c b m' ;; ;; Extract citations used in the current document from the \bibliography{} ;; file(s). Put them into a new suitably-named buffer. In a AUCTeX ;; multi-file document, the .aux files are used to find the cite keys (for ;; speed). You will be warned if these are out of date. ;; ;; This buffer is not saved to a file. It is your job to save it to whatever ;; name you wish. Note that AUCTeX has a unique name space for LaTeX and ;; BiBTeX files, so you should *not* name the bib file associated with ;; example.tex as example.bib! Rather, name it something like ;; example-bib.bib. ;; ;; bib-apropos: Bound to `\C-c b a' ;; ;; Searches the \bibliography{} file(s) for entries containing a keyword and ;; display them in the *help* buffer. You can trim down your search by using ;; bib-apropos in the *Help* buffer after the first invocation. the current ;; buffer is also searched for keyword matches if it is in bibtex-mode. ;; ;; It doesn't display cross-references nor does it substitute or display ;; @string commands used. It could easily be added, but it's faster this ;; way. Drop me a line if this would be a useful addition. ;; ;; If you find yourself entering a cite command and have forgotten which key ;; you want, but have entered a few initial characters as in `\cite{Gal', ;; then invoke bib-apropos. It will take that string (in this case `Gal') as ;; an initial response to the apropos prompt. You are free to edit it, or ;; simply press carriage return. ;; ;; bib-etags: Bound to `\C-c b e' ;; ;; Creates a TAGS file for AUCTeX's multi-file document (or refreshes it). ;; This is used by bib-find when editing multi-file documents. The TAGS file ;; is created automatically, but it isn't refreshed automatically. So if ;; bib-find can't find something, try running bib-etags again. ;; ;; bib-create-auto-file: ;; ;; Use this when editing a BiBTeX buffer to generate the AUCTeX .el file ;; which tell emacs about all its cite keys. I've added this command to ;; bibtex-mode pull-down menu. ;; ;; bib-highlight-mouse: Bound to `\C-c b h' ;; ;; Highlights \cite, \ref and \label commands in green when the mouse is over ;; them. By default, a call to this function is added to LaTeX-mode-hook ;; (via bib-cite-initialize) if you set bib-highlight-mouse-t to true. But ;; you may want to run this command to refresh the highlighting for newly ;; edited text. ;; Installation instructions: ;; ~~~~~~~~~~~~~~~~~~~~~~~~~ ;; bib-cite is a minor-mode, so you could invoke it in a LaTeX-mode hook. ;; e.g. If you are using AUCTeX (http://www.gnu.org/software/auctex/), you ;; could use: ;; ;; (autoload 'turn-on-bib-cite "bib-cite") ;; (add-hook 'LaTeX-mode-hook 'turn-on-bib-cite) ;; ;; If you are using Emacs' regular LaTeX-mode, use instead: ;; ;; (autoload 'turn-on-bib-cite "bib-cite") ;; (add-hook 'latex-mode-hook 'turn-on-bib-cite) ;; ;; bib-cite can be used with AUCTeX, or stand-alone. If used with AUCTeX on a ;; multi-file document (and AUCTeX's parsing is used), then all \bibliography ;; commands in the document will be found and used. ;; --- ;; The following variable can be unset (like shown) to tell bib-cite to ;; not give advice messages about which commands to use to find the next ;; occurrence of a search: ;; ;; (setq bib-novice nil) ;; --- ;; If you wish bib-cite to use RefTeX's reftex-view-crossref command to ;; display and find \label's and \cite bibliography entries, set the variable ;; bib-cite-use-reftex-view-crossref to t: ;; ;; (setq bib-cite-use-reftex-view-crossref t) ;; --- ;; The following variable determines whether we will attempt to highlight ;; citation, ref and label commands in green when they are under the ;; mouse. When highlighted, the mouse keys work to call bib-display ;; (bound to [mouse-3]) and bib-find (bound to [mouse-2]). If you use a ;; mode other than LaTeX-mode, you'll want to call bib-highlight-mouse with ;; a hook (See how we do this at the end of this file with the add-hook ;; command). ;; ;; (setq bib-highlight-mouse-t nil) ;; --- ;; The variable bib-switch-to-buffer-function sets the function used to ;; select buffers (if they differ from the original) in bib-cite commands ;; bib-make-bibliography, bib-display, bib-find ;; You may use `switch-to-buffer' `switch-to-buffer-other-window' or ;; `switch-to-buffer-other-frame'. ;; --- ;; If you use DOS or OS/2, you may have to set the following variable: ;; ;; (setq bib-dos-or-os2-variable t) ;; ;; if bib-cite.el fails to determine that you are using DOS or OS/2. ;; Try `C-h v bib-dos-or-os2-variable' to see if it needs to be set manually. ;; --- ;; bib-cite needs to call the etags program with its output file option ;; and also with the append option (usually -a). ;; I figured that DOS and OS/2 would use "etags /o=" instead of the unix ;; variant "etags -o ", but users have reported differently. So while the ;; unix notation is used here, you can reset it if you need to like so: ;; ;; (setq bib-etags-command "etags /r='/.*\\\(eq\|page\|[fvF]\)ref.*/' /o=") ;; (setq bib-etags-append-command ;; "etags /r='/.*\\\(eq\|page\|[fvF]\)ref.*/' /a /o=") ;; --- ;; For multi-file documents, a TAGS file is generated by etags. ;; By default, its name is TAGS. You can change this like so: ;; ;; (setq bib-etags-filename "TAGSLaTeX") ;; --- ;; If your environment variable to find BiBTeX files is not BIBINPUTS, then ;; reset it with the following variable (here, assuming it's TEXBIB instead): ;; ;; (setq bib-bibtex-env-variable "TEXBIB") ;; ;; Note that any directory ending in a double slash will cause bib-cite to ;; search recursively through subdirectories for your .bib files. This can ;; be slow, so use this judiciously. ;; e.g. setenv BIBINPUTS .:/home/psg/LaTeX/bibinputs// ;; -> all directories below /home/psg/LaTeX/bibinputs/ will be ;; searched. ;; ;; If your bibtex setup works but Emacs can't see the environment variable ;; correctly (Check `C-h v process-environment'), then customize the ;; variable `bib-cite-inputs' (e.g. `M-x customize-variable bib-cite-imputs') ;; ;; --- ;; If you do not wish bib-display to substitute @string abbreviations, ;; then set the following variable like so: ;; ;; (setq bib-substitute-string-in-display nil) ;; --- ;; Warnings are given when @string abbreviations are not defined in your bib ;; files. The exception is for months, usually defined in style files. If you ;; use other definitions in styles file (e.g. journals), then you may add them ;; to the `bib-substitute-string-in-display' list variable. ;; If you find circumstances in which this package fails, please let me know. ;; Things for me to do in later versions: ;; - treat @Strings correctly, not just in isolation. ;; - use `kpsewhich -expand-path='$BIBINPUTS'` instead of BIBINPUTS. ;; - jmv@di.uminho.pt (Jose Manuel Valenca) wants: ;; - prompt for \cite as well as \label and \ref ;; (and use AUCTeX's completion list) ;; - implement string concatenation, with #[ \t\n]*STRING_NAME ;; - Create new command to substitute @string text in any bibtex buffer. ;; ---------------------------------------------------------------------------- ;;; Change log: ;; V3.28 Feb 23 2005 - Ralf Angeli ;; - Some doc fixes in the commentary section. ;; V3.27 Feb 09 2005 - PSG ;; - Patch from Peter Heslin. TeX-master can now have symbol values. ;; V3.26 Aug 06 2004 - Reiner Steib ;; - Changed URL of AUCTeX. Use "AUCTeX", not "auc-tex" (skipped Change log). ;; V3.25 Feb 15 2004 - PSG ;; - Check existence of font-lock-unset-defaults; no longer defined in CVS ;; Emacs. Thanks to Adrian Lanz for reporting the problem. ;; V3.24 Oct 28 2003 - PSG ;; - bib-cite-file-directory-p: new function to replace ff-paths code. ;; V3.23 Oct 09 2003 - PSG ;; - some checkdoc cleanup; not yet complete. ;; V3.22 Sep 17 2003 - PSG ;; - bib-cite-aux-inputs: new defcustom. ;; - minor cleanup for `match-string'. ;; V3.21 Sep 08 2003 - PSG ;; - Ripping out off-topic imenu code. ;; V3.20 Aug 14 2003 - PSG ;; - psg-checkfor-file-list: Allow for relative directoties as entries in ;; BIBINPUTS. ;; - bib-cite-inputs: new defcustom equivalent to BIBINPUTS. ;; - bib-label-help-echo-format: fixed defcustom. ;; - psg-list-env: code cleanup. ;; - trailing whitespace cleanup. ;; V3.19 Apr 06 2003 - PSG ;; Remove code that ran when defcustom not present. ;; Remove hilit19 obsolete code. ;; V3.18 Mar 27 2003 - Bruce Ravel ;; Play well with the varioref and fancyref latex styles (vref, fref, Fref). ;; V3.17 May 01 2001 - (RCS V1.38) ;; - XEmacs has imenu after all. ;; V3.16 Dec 20 99 - (RCS V1.37) ;; - Added customize support. ;; V3.15 Dec 20 99 - (RCS V1.36) ;; - Removed stupid debugging code that I had left in. ;; V3.14 Dec 20 99 - ;; - New variable bib-ref-regexp for \ref regexp to match \label constructs ;; and added \pageref. (RCS V1.34) ;; - Edited bib-etags-command snd bib-etags-append-command to match. ;; V3.13 Dec 20 99 - (RCS V1.32) ;; - License changed to GPL. ;; - Kai Engelhardt bib-master-file takes .ltx extension ;; - imenu--create-LaTeX-index-for-document and bib-document-TeX-files ;; edited to accept .ltx extension. ;; - Michael Steiner added journals to @string ;; abbrevs and contributed `member-cis' to complaces @strings in a ;; case-insensitive manner. ;; V3.12 Dec 10 98 - Bruce Ravel (RCS V1.30) ;; Fixed bib-label-help. ;; V3.11 Oct 06 98 - PSG (RCS V1.29) ;; Quote \ character fot replace-match; ;; Applies to: @String{JGR = "J. Geophys.\ Res."} ;; V3.10 Sep 21 98 - Matt Hodges (RCS V1.28) ;; Removed instance of expand-file-name due to new behaviour in Emacs-20.3. ;; V3.09 Sep 09 98 - PSG (RCS V1.27) ;; Added support for \eqref; Added bib-find-next. ;; V3.08 Aug 20 98 - PSG (RCS V1.26) ;; Fixed imenu bug (prev-pos (point-max)) ;; V3.07 Nov 20 97 - Christoph Wedler (RCS V1.24) ;; bib-ext-list variable made permanent-local, otherwise VC registration ;; would use two extents for each reference etc. This was not a visible bug. ;; V3.06 Nov 12 97 - PSG (RCS V1.23) ;; Support use of reftex's reftex-view-crossref command. ;; V3.05 Nov 12 97 - Vladimir Alexiev (RCS V1.22) ;; regexp-quote the bibliography keys so a key like galbraith+kelley97 works ;; V3.04 Aug 25 97 - Christoph Wedler (RCS V1.20) ;; (bib-highlight-mouse): Would bug out on detached extents, ;; e.g. when killing a whole citation. ;; V3.03 Jul 16 97 - Christoph Wedler (RCS V1.18) ;; turn-on-bib-cite back to non-interactive. ;; V3.02 Jul 11 97 - Christoph Wedler (RCS V1.17) ;; * auctex/bib-cite.el (turn-on-bib-cite): Make interactive. ;; Argument to `bib-cite-minor-mode' is 1. ;; (bib-label-help-echo-format): New variable. ;; (bib-label-help-echo): New function. ;; (bib-label-help): Addition argument format. ;; (bib-highlight-mouse): Set extent property `help-echo' for XEmacs. ;; V3.01 May 22 97 - Diego Calvanese (RCS V1.16) ;; bib-make-bibliography handles commas separated citations in aux files. ;; V3.00 May 16 97 - Peter Galbraith (RCS V1.15) ;; bib-cite is now a minor mode. ;; V2.32 Apr 30 97 - Anders Stenman (RCS V1.14) ;; - Support for balloon-help. ;; V2.31 Mar 20 97 - Christoph Wedler (RCS V1.12) ;; - Better fontification of help buffer as bibtex or latex for XEmacs. ;; V2.30 Feb 10 97 - Peter Galbraith (RCS V1.11) ;; - Better fontification of help buffer as bibtex or latex. ;; V2.29 Jan 29 97 - Peter Galbraith (RCS V1.10) ;; - imenu looks for `\label{stuff}' instead of `\label' ;; V2.28 Jan 22 97 - Peter Galbraith (RCS V1.9) ;; - Bug in bib-create-auto-file. ;; V2.27 Dec 31 96 - Peter Galbraith (RCS V1.8) ;; - allow spaces between cite keys. ;; - Vladimir Alexiev ;; Allow () delimiters as well as {}. ;; Better check on bibtex-menu ;; Erase *bibtex-bibliography* buffer. ;; V2.26 Sep 24 96 - Peter Galbraith (RCS V1.7) ;; imenu bug fix. ;; V2.25 Sep 23 96 - Anders Stenman (RCS V1.6) ;; XEmacs bib-cite-fontify-help-as-latex bug fix. ;; V2.24 Aug 19 96 - Peter Galbraith (RCS V1.3) ;; XEmacs bug fix, minor defvars - Vladimir Alexiev ;; V2.23 Aug 13 96 - Peter Galbraith (RCS V1.2) ;; XEmacs - Add bib-cite entries to bibtex-mode popup menu. ;; V2.22 July 22 96 - Peter Galbraith (RCS V1.1) ;; local-map has `m' for bib-make-bibliography instead of `b' ;; set-buffer-menubar in XEmacs so that menu disappears after use. ;; V2.21 July 12 96 - Peter Galbraith ;; Define `\C-c b' keymap for both plain tex and auctex, in XEmacs and emacs. ;; Separate menu-bar menu in gnu emacs. ;; font-lock support for bib-display'ed citations (bibtex fontification) ;; and for matching \ref{} and \labels (latex fontification). ;; buffer-substring-no-properties in bib-apropos ;; (bug in completing-read with mouse faces) ;; imenu-sort-function made local and nil. ;; imenu--LaTeX-name-and-position fixed for section name containing "\" ;; Various other things... (whitespace within label strings, etc...) ;; V2.20 June 25 96 - Peter Galbraith ;; imenu fixed for emacs-19.31. ;; V2.19 May 13 96 ;; PSG: ;; - @string substitution fixed; bib-edit-citation fixed when buffer exists; ;; Christoph Wedler : ;; - Added bib-switch-to-buffer-function ;; - (setq tags-always-exact nil) for xemacs ;; - removed eval-after-load foe xemacs ;; V2.18 May 06 96 - PSG ;; New eval-after-load from Fred Devernay ;; V2.17 May 03 96 - PSG ;; Fixed bug introduced in V2.16, reported by Dennis Dams ;; V2.16 May 02 96 - Vladimir Alexiev ;; - somewhat compatible with Hyperbole by binding bib-find and bib-display to ;; the Action and Assist keys inside the bib-highlight-mouse-keymap. ;; - makes more liberal provisions for users with a tty. ;; V2.15 Apr 09 96 - ;; - fix "Buffer read-only" error caused by mouse-face text properties ;; patch by Piet van Oostrum ;; - Use tmm non-X menu, patch by Vladimir Alexiev ;; - input{file.txt} would not work. ;; bug report: David Kastrup ;; V2.14 Feb 26 96 - PSG - define eval-after-load for xemacs ;; Frederic Devernay's suggestion. ;; V2.13 Feb 08 96 - Peter Galbraith - Fixed recursive use of bib-apropos. ;; V2.12 Jan 19 96 - Peter Galbraith ;; emacs-19.30's [down-mouse-1] is defined (rather than [mouse-1]), so ;; bib-highlight-mouse-keymap now has [down-mouse-1] defined to override it. ;; V2.11 Nov 21 95 - Peter Galbraith ;; - Fixed bib-create-auto-file when bib file loaded before LaTeX file. ;; - Michal Mnuk's better imenu labels menu ;; - [mouse-1] and [mouse-2] key defs for highlighted regions. ;; - Improve X menus. ;; - Skip over style files in bib-document-TeX-files. ;; - Add menus and mouse highlighting for xemacs ;; Anders Stenman Dima Barsky ;; - Check bib-use-imenu before calling LaTeX-hook-setq-imenu. ;; From: Kurt Hornik ;; - Remove mouse face properties before inserting new ones. ;; From: Peter Whaite ;; V2.10 Aug 17 95 - Peter Galbraith - fatal bugs in bib-make-bibliography. ;; V2.09 Jul 19 95 - Peter Galbraith ;; - Had introduced bug in search-directory-tree. synced with ff-paths.el. ;; V2.08 Jul 13 95 - Peter Galbraith ;; Fred Douglis says etags should be required ;; V2.07 Jul 04 95 - Peter Galbraith ;; - Minor changes with filename manipulations (careful with DOS...) ;; - Problem if auc-tex not already loaded -> LaTeX-mode-map ;; V2.06 Jul 03 95 - Peter Galbraith - Added recursion through BIBINPUTS path. ;; V2.05 Jun 22 95 - Peter Galbraith Bug: Hanno Wirth ;; bib-get-citations would truncate @String{KEY ="J. {\"u} Res."} ;; V2.04 Jun 19 95 - Peter Galbraith - ;; - use bibtex-mode syntax table in bib buffer, else bib-apropos truncates ;; an article if it contains an unbalanced closing parenthesis. ;; - bib-highlight-mouse would mark a buffer modified ;; V2.03 May 16 95 - Peter Galbraith - ;; auc-tec menu compatible with old "AUC TeX" pull-down name ;; V2.02 May 10 95 - Peter Galbraith - ;; bug report by Bodo Huckestein (getenv env) under DOS ;; V2.01 Mar 27 95 - Peter Galbraith - No imenu on xemacs; check BIBINPUT also ;; V2.00 Mar 27 95 - Peter Galbraith ;; - bib-find and bib-display replace bib-edit-citation and ;; bib-display-citation ;; - bib-apropos now take initial guess from start of cite argument at point. ;; - Multi-file support for bib-make-bibliography using .aux files. ;; - \label and \ref functionality for bib-find and bib-display: ;; - \label may appear within an \begin\end or to label a (sub-)section. ;; - Cursor on \label, goto first \ref, set next i-search to pattern. ;; - Cursor on \ref, goto \label or display it's environment or section. ;; - Works on hidden code! ;; V1.08 Jan 16 95 - Peter Galbraith ;; bib-apropos can be used within *Help* buffer to trim a search. ;; V1.07 Dec 13 94 - Peter Galbraith ;; - Fixed: multi-line @string commands in non-inserted display. ;; - Fixed: quoted \ character in @string commands. ;; - BiBTeX comments should not affect bib-cite ;; - Fixed bib-apropos (from Christoph Wedler ) ;; Faster now, and avoids infinite loops. ;; - Added bib-edit-citation to edit a bibtex files about current citation. ;; - Allow space and newlines between citations: \cite{ entry1, entry2} ;; - Added bib-substitute-string-in-display, bib-string-ignored-warning ;; and bib-string-regexp. ;; - bib-display-citation (from Markus Stricker ) ;; Could not find entry with trailing spaces ;; V1.06 Nov 20 94 - Peter Galbraith ;; - Fixed bib-apropos for: ;; hilighting without invoking bibtex mode. ;; display message when no matches found. ;; would search only last bib file listed (forgot to `goto-char 1') ;; - Fixed bib-make-bibliography that would only see first citation in a ;; multi-key \cite command (found by Michail Rozman ;; - bib-make-bibliography didn't see \cite[A-Z]* commands. ;; Found by Richard Stanton ;; ************************************************** ;; - * Completely rewritten code to support crossrefs * ;; ************************************************** ;; - autodetection of OS/2 and DOS for bib-dos-or-os2-variable ;; - Created bib-display-citation-mouse ;; - bib-apropos works in bibtex-mode on the current buffer ;; - bibtex entry may have comma on next line (!) ;; @ARTICLE{Kiryati-91 ;; , YEAR = {1991 } ;; ... ;; V1.05 Nov 02 94 - Peter Galbraith ;; - bug fix by rossmann@TI.Uni-Trier.DE (Jan Rossmann) ;; for (boundp 'TeX-check-path) instead of fboundp. Thanks! ;; - Translate environment variable set by bib-bibtex-env-variable. ;; (suggested by Richard Stanton ) ;; - add bib-dos-or-os2-variable to set environment variable path separator ;; - Add key-defs for any tex-mode and auc-tex menu-bar entries. ;; [in auc-tec TeX-mode-map is common to both TeX and LaTeX at startup ;; (but TeX-mode-map is only copied to LaTeX-mode-map at initilisation) ;; in plain emacs, use tex-mode-map for both TeX and LaTeX.] ;; - Add key def for bibtex-mode to create auc-tex's parsing file. ;; - Fix bugs found by ;; - fix bib-get-citation for options ;; - fix bib-get-citation for commas preceeded citation command ;; - better regexp for citations and their keys. ;; - Added @string support for any entry (not just journal entries). ;; (I had to disallow numbers in @string keys because of years. ;; Is that ok?) ;; - added bib-apropos ;; V1.04 Oct 24 94 - Peter Galbraith ;; - Don't require dired-aux, rather define the function we need from it. ;; - Regexp-quote the re-search for keys. ;; - Name the bib-make-bibliography buffer diffently than LaTeX buffer ;; because auc-tex's parsing gets confused if same name base is used. ;; V1.03 Oct 24 94 - Peter Galbraith - require dired-aux for dired-split ;; V1.02 Oct 19 94 - Peter Galbraith ;; - If using auc-tex with parsing activated, use auc-tex's functions ;; to find all \bibliography files in a multi-file document. ;; - Find bib files in pwd, BIBINPUTS environment variable path and ;; TeX-check-path elisp variable path. ;; - Have the parser ignore \bibliography that is on a commented `%' line. ;; (patched by Karl Eichwalder ) ;; - Allow for spaces between entry type and key in bib files: ;; (e.g @Article{ key} ) ;; (suggested by Nathan E. Doss ) ;; - Allows options in \cite command (e.g. agu++ package \cite[e.g.][]{key}) ;; - Includes @String{} abbreviations for `journal' entries ;; V1.01 July 07 94 - Peter Galbraith - \bibliography command may have list of ;; BibTeX files. All must be readable. ;; V1.00 July 06 94 - Peter Galbraith - Created ;; ---------------------------------------------------------------------------- ;;; Code: (eval-when-compile (require 'cl)) (defgroup bib-cite nil "bib-cite, LaTeX minor-mode to display \\cite, \\ref and \\label commands." :group 'tex) (defcustom bib-cite-use-reftex-view-crossref nil "*Non-nil means, RefTeX will be used to find cross references. When this variable is non-nil, both `bib-find' and `bib-display' will call a function in RefTeX to find or display the cross reference of a \\ref or \\cite macro at point." :group 'bib-cite :type 'boolean) (defcustom bib-novice t "*Give advice to novice users about what commands to use next." :group 'bib-cite :type 'boolean) (defcustom bib-switch-to-buffer-function 'switch-to-buffer "*Function used to select buffers if they differ from the original. You may use `switch-to-buffer' `switch-to-buffer-other-window' or `switch-to-buffer-other-frame'." :group 'bib-cite :type '(choice (function-item switch-to-buffer) (function-item switch-to-buffer-other-window) (function-item switch-to-buffer-other-frame))) (defcustom bib-highlight-mouse-t t "*Call bib-highlight-mouse from `LaTeX-mode-hook' to add green highlight." :group 'bib-cite :type 'boolean) (defcustom bib-label-help-echo-format "button2 finds %s, button3 displays %s" "*Format string for info if the mouse is over LaTeX commands. If nil, do not display info." :group 'bib-cite :type '(radio (const :tag "Don't display info" nil) string)) (defcustom bib-bibtex-env-variable "BIBINPUTS" "*Environment variable setting the path where BiBTeX input files are found. BiBTeX 0.99b manual says this should be TEXBIB. Another version says it should BSTINPUTS. I don't know anymore! The colon character (:) is the default path separator in unix, but you may use semi-colon (;) for DOS or OS/2 if you set bib-dos-or-os2-variable to t." :group 'bib-cite :type 'string) (defcustom bib-cite-inputs nil "*List of directories to search for .bib files. This is in addition to those listed in the environment variable specified by `bib-bibtex-env-variable'." :group 'bib-cite :type '(repeat (file :format "%v"))) (defcustom bib-cite-aux-inputs nil "*List of directories to search for .aux files. MiKTeX has the LaTeX option -aux-directory to store .aux files in an alternate directory. You may set this variable to let bib-cite find these .aux files." :group 'bib-cite :type '(repeat (file :format "%v"))) (defcustom bib-dos-or-os2-variable (or (equal 'emx system-type) (equal 'ms-dos system-type)) ;; Under OS/2 system-type equals emx ;; Under DOS system-type equals ms-dos "*Whether you use DOS or OS/2 for bib-make-bibliography/bib-display. It tells bib-make-bibliography and bib-display to translate the BIBINPUTS environment variable using the \";\" character as a path separator and to translate DOS' backslash to slash. e.g. Use a path like \"c:\\emtex\\bibinput;c:\\latex\\bibinput\" \(You can change the environment variable which is searched by setting the elisp variable bib-bibtex-env-variable)" :group 'bib-cite :type 'boolean) (defcustom bib-etags-command "etags -r '/.*\\\\\\(eq\\|page\\|[fvF]\\)ref.*/' -o " "*Variable for the etags command and its output option. In unix, this is usually \"etags -r '/.*\\\(eq\|page\|[fvF]\)ref.*/' -o \" \(we use the -r option to tell etags to list AMS-LaTeX's \\eqref command.) In DOS and OS/2, this *may* be different, e.g. using slashes like \"etags /o=\" If so, set it this variable." :group 'bib-cite :type 'string) (defcustom bib-etags-append-command "etags -r '/.*\\\\\\(eq\\|page\\|[fvF]\\)ref.*/' -a -o " "*Variable for the etags command and its append and output option. In unix, this is usually \"etags -r '/.*\\\(eq\|page\|[fvF]\)ref.*/' -a -o \" In DOS and OS/2, this *may* be \"etags /a /o=\" If so, set it this variable." :group 'bib-cite :type 'string) (defcustom bib-etags-filename "TAGS" "*Variable for the filename generated by etags, by defaults this TAGS. but you may want to change this to something like TAGSLaTeX such that it can coexist with some other tags file in your master file directory." :group 'bib-cite :type 'string) (defcustom bib-ref-regexp "\\\\\\(eq\\|page\\|[fvF]\\)?ref" "*Regular expression for \\ref LaTeX commands that have a matching \\label. without the curly bracket. If you change this variable and you use multi-file documents, make sure you also edit the variables bib-etags-command and bib-etags-append-command." :group 'bib-cite :type 'regexp) (defcustom bib-substitute-string-in-display t "*Determines if bib-display will substitute @string definitions. If t, then the @string text is substituted. If nil, the text is not substituted but the @string entry is included." :group 'bib-cite :type 'boolean) (defcustom bib-string-ignored-warning '("jan" "feb" "mar" "apr" "may" "jun" "jul" "aug" "sep" "sept" "oct" "nov" "dec" "acmcs" "acta" "cacm" "ibmjrd" "ibmjs" "ieeese" "ieeetcad" "ieeetc" "ipl" "jacm" "jcss" "scp" "sicomp" "tcs" "tocs" "tods" "tog" "toms" "toois" "toplas" ) "*@string abbreviations for which a warning is not given if not defined. These are usually month abbreviations (or journals) defined in a style file." :group 'bib-cite :type '(repeat (string :tag "Entry"))) ;;<<<<< (prefix-numeric-value arg) 0) (not bib-cite-minor-mode))) (cond (bib-cite-minor-mode ;Setup the minor-mode ;; Christoph Wedler's suggestion for xemacs ;; Added for version 2.19 (if (boundp 'tags-always-exact) (progn (set (make-local-variable 'tags-always-exact) nil))) ;; mouse overlay (if bib-highlight-mouse-t (progn (bib-cite-setup-highlight-mouse-keymap) (bib-highlight-mouse) (when (featurep 'xemacs) (make-local-hook 'after-change-functions)) (add-hook 'after-change-functions 'bib-cite-setup-mouse-function nil t))) (if (featurep 'xemacs) (progn (or (local-variable-p 'current-menubar (current-buffer)) (set-buffer-menubar current-menubar)) (add-submenu nil bib-cite-minor-mode-menu)))) (t ;;;Undo the minor-mode ;; mouse overlay (cond ((featurep 'xemacs) (while bib-ext-list (delete-extent (car bib-ext-list)) (setq bib-ext-list (cdr bib-ext-list)))) (t (remove-hook 'after-change-functions 'bib-cite-setup-mouse-function t) (let ((before-change-functions) (after-change-functions)) ;; FIXME This detroys all mouse-faces and local-maps! ;; FIXME Hope no other package is using them in this buffer! (remove-text-properties (point-min) (point-max) '(mouse-face t local-map t))))) (if (featurep 'xemacs) (delete-menu-item '("BCite")))))) ;;This must be eval'ed when the LaTeX mode is in use. ;; bib-highlight-mouse-keymap is a local variable so each buffer can have it's ;; own. (defun bib-cite-setup-highlight-mouse-keymap () "Set up the bib-cite text in the current buffer to be clickable." (set (make-local-variable 'bib-highlight-mouse-keymap) ;;; First, copy the local keymap so we don't have `disappearing' menus ;;; when the mouse is moved over a \ref, \label or \cite command. ;;; FIXME: Check out (mouse-major-mode-menu) to see how it grabs the local ;;; menus to display. Maybe on `highlighted' commands we could only ;;; display the bib-cite stuff (or a subset of it). (let ((m (copy-keymap (current-local-map)))) (cond ((featurep 'xemacs) (set-keymap-name m 'bib-highlight-mouse-keymap) (cond ;;action-key stuff from Vladimir Alexiev ((commandp 'action-key) ;; for hyperbole. The Right Way is to define implicit buttons ;; (defib) bib-cite and label-ref instead of overriding ;; action-key and assist key, so that eg smart key help can ;; be obtained, but I'm lazy. (substitute-key-definition 'action-key 'bib-find m global-map) (substitute-key-definition 'assist-key 'bib-display m global-map) (substitute-key-definition 'action-key-depress 'bib-find-mouse m global-map) (substitute-key-definition 'assist-key-depress 'bib-display-mouse m global-map) (substitute-key-definition 'action-mouse-key nil m global-map) (substitute-key-definition 'assist-mouse-key nil m global-map)) (t ; xemacs, not hyperbole (define-key m "\e\r" 'bib-find-mouse) ; bug Fixed in V2.17 (define-key m "\e\n" 'bib-display-mouse) ;bug Fixed in V2.17 ;;(define-key m [(shift button1)] 'bib-display-mouse) (define-key m [button3] 'bib-display-mouse) (define-key m [button2] 'bib-find-mouse)))) (t ; emacs 19 (cond ((commandp 'action-key) (substitute-key-definition 'action-key 'bib-find m global-map) (substitute-key-definition 'assist-key 'bib-display m global-map) (substitute-key-definition 'action-mouse-key-emacs19 'bib-find-mouse m global-map) (substitute-key-definition 'assist-mouse-key-emacs19 'bib-display-mouse m global-map) (substitute-key-definition 'action-key-depress-emacs19 nil m global-map) (substitute-key-definition 'assist-key-depress-emacs19 nil m global-map)) (t ; emacs 19, not hyperbole (define-key m [down-mouse-3] 'bib-display-mouse) (define-key m [mouse-2] 'bib-find-mouse))))) m))) ;;;###autoload (defun turn-on-bib-cite () "Unconditionally turn on Bib Cite mode." (bib-cite-minor-mode 1)) (defun bib-cite-setup-mouse-function (beg end _old-len) (save-excursion (save-match-data (save-restriction (narrow-to-region (progn (goto-char beg) (beginning-of-line) (point)) (progn (goto-char end) (forward-line 1) (point))) (bib-highlight-mouse))))) (defvar bib-cite-minor-mode-map (let ((map (make-sparse-keymap))) (define-key map "\C-cba" 'bib-apropos) (define-key map "\C-cbb" 'bib-make-bibliography) (define-key map "\C-cbd" 'bib-display) (define-key map "\C-cbe" 'bib-etags) (define-key map "\C-cbf" 'bib-find) (define-key map "\C-cbn" 'bib-find-next) (define-key map "\C-cbh" 'bib-highlight-mouse) map) "Bib-cite minor-mode keymap.") (easy-menu-define bib-cite-minor-mode-menu bib-cite-minor-mode-map "Menu keymap for bib-cite." '("BCite" ["Make BibTeX bibliography buffer" bib-make-bibliography t] ["Display citation or matching \\ref or \\label" bib-display t] ["Find BibTeX citation or matching \\ref or \\label" bib-find t] ["Search apropos BibTeX files" bib-apropos t] ["Build TAGS file for multi-file document" bib-etags (bib-master-file)] ["Refresh \\cite, \\ref and \\label mouse highlight" bib-highlight-mouse t])) ;; Install ourselves: (or (assq 'bib-cite-minor-mode minor-mode-alist) (setq minor-mode-alist (cons '(bib-cite-minor-mode " BCite") minor-mode-alist))) (or (assq 'bib-cite-minor-mode minor-mode-map-alist) (setq minor-mode-map-alist (cons (cons 'bib-cite-minor-mode bib-cite-minor-mode-map) minor-mode-map-alist))) ;;; Add a menu entry to bibtex.el (Perhaps I should not do this). (cond ((and (featurep 'xemacs) (or window-system (fboundp 'smart-menu))) ;text menus by Bob Weiner ;; ;; xemacs under X with AUCTeX ;; ;; Add to bibtex.el's popup menu (defvar bib-cite-xemacs-bibtex-mode-menu '("---" "Bib-Cite" "---" ["Search apropos BibTeX files" bib-apropos t] ["Create AUCTeX auto parsing file" bib-create-auto-file t]) "Submenu of bibtex-mode menu, used by bib-cite.") (if (boundp 'bibtex-menu) ;; Add menu now (setq bibtex-menu (append bibtex-menu bib-cite-xemacs-bibtex-mode-menu)) ;; Setup to add menu later (defun bib-cite-bibtex-mode-hook () (if (boundp 'bibtex-menu) (progn (setq bibtex-menu (append bibtex-menu bib-cite-xemacs-bibtex-mode-menu)) (remove-hook 'bibtex-mode-hook 'bib-cite-bibtex-mode-hook)))) (add-hook 'bibtex-mode-hook 'bib-cite-bibtex-mode-hook)) ) ((and (not (featurep 'xemacs)) (string-equal "19" (substring emacs-version 0 2)) (or window-system (fboundp 'tmm-menubar))) ; 19.30 - Will autoload if necessary ;; ;; emacs-19 under X-windows (or non-X with tmm) ;; ;; This *almost* makes me want to switch over to XEmacs... ;; to AUCTeX auto file for a bibtex buffer (eval-after-load "bibtex" '(progn (add-hook 'bibtex-mode-hook 'TeX-bibtex-set-BibTeX-dialect) (cond ((lookup-key bibtex-mode-map [menu-bar move/edit]) (define-key-after (lookup-key bibtex-mode-map [menu-bar move/edit]) [bib-nil] '("---" . nil) '"--") (define-key-after (lookup-key bibtex-mode-map [menu-bar move/edit]) [bib-apropos] '("Search Apropos" . bib-apropos) 'bib-nil) (define-key-after (lookup-key bibtex-mode-map [menu-bar move/edit]) [auc-tex-parse] '("Create AUCTeX auto parsing file" . bib-create-auto-file) 'bib-apropos)) ((lookup-key bibtex-mode-map [menu-bar bibtex-edit]) (define-key-after (lookup-key bibtex-mode-map [menu-bar bibtex-edit]) [bib-nil] '("---" . nil) '"--") (define-key-after (lookup-key bibtex-mode-map [menu-bar bibtex-edit]) [bib-apropos] '("Search Apropos" . bib-apropos) 'bib-nil) (define-key-after (lookup-key bibtex-mode-map [menu-bar bibtex-edit]) [auc-tex-parse] '("Create AUCTeX auto parsing file" . bib-create-auto-file) 'bib-apropos))))))) ;; Following from bibtex.el (defvar bib-cite-bibtex-font-lock-keywords '(("^\\( \\|\t\\)*\\(@[A-Za-z]+\\)[ \t]*[({]\\([][A-Za-z0-9.:;?!`'()/*@_+=|<>-]+\\)?" (2 font-lock-function-name-face) (3 font-lock-reference-face nil t)) ;; reference type and reference label ("^[ \t]*\\(OPT[^\"#%'(),={} \t\n0-9][^\"#%'(),={} \t\n]*\\)[ \t]*=" 1 font-lock-comment-face) ;; optional field names (treated as comments) ("^[ \t]*\\([^\"#%'(),={} \t\n0-9][^\"#%'(),={} \t\n]*\\)[ \t]*=" 1 font-lock-variable-name-face) ;; field names "Default expressions to fontify in BibTeX mode.")) (defvar bib-cite-bibtex-mode-syntax-table (let ((st (make-syntax-table))) ;; [alarson:19920214.1004CST] make double quote a string quote (modify-syntax-entry ?\" "\"" st) (modify-syntax-entry ?$ "$$ " st) (modify-syntax-entry ?% "< " st) (modify-syntax-entry ?' "w " st) (modify-syntax-entry ?@ "w " st) (modify-syntax-entry ?\\ "\\" st) (modify-syntax-entry ?\f "> " st) (modify-syntax-entry ?\n "> " st) (modify-syntax-entry ?~ " " st) st)) ;; Code from bibtex.el ends ;; @string starts with a letter and does not contain any of ""#%'(),={} ;; Here we do not check that the field contains only one string field and ;; nothing else. (defvar bib-string-regexp "^[, \t]*[a-zA-Z]+[ \t]*=[ \t]*\\([a-zA-Z][^#%'(),={}\" \t\n]*\\)" "Regular expression for field containing a @string.") (defun bib-cite--kind () (save-excursion (if (not (looking-at "\\\\")) (search-backward "\\" nil t)) (if (looking-at bib-ref-regexpc) 'ref (if (looking-at "\\\\label{") 'label 'cite)))) (defun bib-display () "Display BibTeX citation or matching \\ref or \\label command under point. If text under cursor is a \\cite command, then display its BibTeX info from \\bibliography input file. Example with cursor located over cite command or arguments: \cite{Wadhams81,Bourke.et.al87,SchneiderBudeus94} ^Display-all-citations ^Display-this-citation If text under cursor is a \\ref command, then display environment associated with its matching \\label command. If text under cursor is a \\label command, then display the text around the first matching \\ref command. The user is prompted for a \\label or \\ref is nothing suitable is found under the cursor. The first prompt is for a label. If you answer with an empty string, a second prompt for a ref will be given. A TAGS file is created and used for multi-file documents under auctex." (interactive) (let ((kind (bib-cite--kind))) (cond ;; reftex doesn't handle label->ref ((and bib-cite-use-reftex-view-crossref (memq kind '(ref cite))) ;;;FIXME: reftex doesn't want point on \ref or \cite part, but on keyword (require 'reftex) (reftex-view-crossref nil)) ((eq kind 'cite) (bib-display-citation)) (t (bib-display-label))))) (defun bib-find () "Edit BibTeX citation or find matching \\ref or \\label command under point. For multi-entry cite commands, the cursor should be on the actual cite key desired (otherwise a random entry will be selected). e.g.: \cite{Wadhams81,Bourke.et.al87,SchneiderBudeus94} ^Display-this-citation If text under cursor is a \\ref command, then point is moved to its matching \\label command. If text under cursor is a \\label command, then point is moved to the first matching \\ref command. The user is prompted for a \\label or \\ref is nothing suitable is found under the cursor. The first prompt is for a label. If you answer with an empty string, a second prompt for a ref will be given. A TAGS file is created and used for multi-file documents under auctex." (interactive) (let ((kind (bib-cite--kind))) (cond ;; reftex doesn't handle label->ref ((and bib-cite-use-reftex-view-crossref (memq kind '(ref cite))) (require 'reftex) (reftex-view-crossref t)) ((eq kind 'cite) (bib-edit-citation)) (t (bib-find-label))))) (defvar bib-cite-search-ring nil "Bib-cite intenal variable to hold last \\ref or \\eqref find.") (defun bib-find-next (&optional prev-p) "Find next occurrence of a \ref or \eqref. This is made necessary because we now use a regexp to find tags in multi-file documents, and the Emacs command `find-tag' doesn't allow to interactively find the next occurrence of a regexp." (interactive "P") (if (bib-master-file) ;Multi-file document (if prev-p (find-tag t '- t) (find-tag t t t)) (if bib-cite-search-ring ;;FIXME: Should first make sure I move off initial \ref{}. (let ((regexp (concat bib-ref-regexpc bib-cite-search-ring "}"))) (if prev-p (if (not (re-search-backward regexp nil t)) (message "No previous occurrence of reference %s" bib-cite-search-ring)) (if (not (re-search-forward regexp nil t)) (message "No next occurrence of reference %s" bib-cite-search-ring)))) (message "Sorry, no previous reference to find. Use bib-find?")))) (defun bib-display-mouse (EVENT) "Display BibTeX citation or matching \\ref or \\label under mouse EVENT. See bib-display." (interactive "e") (mouse-set-point EVENT) (bib-display)) (defun bib-find-mouse (EVENT) "Edit BibTeX citation or find matching \\ref or \\label under mouse EVENT. See bib-find." (interactive "e") (mouse-set-point EVENT) (bib-find)) (defun bib-apropos () "Display BibTeX entries containing a keyword from bibliography file. The files specified in the \\bibliography command are searched unless the current buffer is in `bibtex-mode' or is the Help buffer. In those cases, *it* is searched. This allows you to trim down a search further by using bib-apropos sequentially." ;;(interactive "sBibTeX apropos: ") (interactive) (let* ((keylist (and (boundp 'TeX-auto-update) ;Avoid error in FRAMEPOP (fboundp 'LaTeX-bibitem-list) ;Use this if using auctex (LaTeX-bibitem-list))) (keyword (bib-apropos-keyword-at-point)) (keyword (completing-read "BiBTeX apropos: " keylist nil nil keyword)) (the-text)(key-point)(start-point) (new-buffer-f (and (not (string-match "^bib" mode-name)) (not (string-equal "*Help*" (buffer-name))))) (bib-buffer (or (and new-buffer-f (bib-get-bibliography nil)) (current-buffer)))) (with-current-buffer bib-buffer (goto-char (point-min)) (while (and (re-search-forward "^[ \t]*@" nil t) (re-search-forward keyword nil t)) (setq key-point (point)) ;To make sure this is within entry (re-search-backward "^[ \t]*@" nil t) (setq start-point (point)) (forward-list 1) (if (< (point) key-point) ;And this is that test... (goto-char key-point) ;Not within entry, skip it. (setq the-text (cons (concat (buffer-substring start-point (point)) "\n") the-text)))) (if (not the-text) (message "Sorry, no matches found.") (with-output-to-temp-buffer "*Help*" (mapc #'princ (nreverse the-text))) (bib-cite-fontify-help-as-bibtex) (if bib-novice (message (substitute-command-keys (concat "Use \\[bib-apropos] again in the *help* buffer" " to trim the search"))))) (if new-buffer-f (kill-buffer bib-buffer))))) (defvar bib-document-citekeys-obarray-warnings nil "Bib-cite internal variable.") (defun bib-make-bibliography () "Extract citations used in the current document from \bibliography{} file(s). Put them into a buffer named after the current buffer, with extension .bib. In an AUCTeX multi-file document, parsing must be on and the citation keys are extracted from the .aux files. In a plain LaTeX buffer (not multi-file), the cite keys are extracted from the text itself. Therefore the text need not have been previously processed by LaTeX. This function is useful when you want to share a LaTeX file, and therefore want to create a bibtex file containing only the references used in the document." (interactive) (let* ((the-keys-obarray (or (bib-document-citekeys-obarray) (bib-buffer-citekeys-obarray))) ;1st in case of error (new-buffer (create-file-buffer (concat (substring (buffer-name) 0 (or (string-match "\\." (buffer-name)) (length (buffer-name)))) "-bib.bib"))) (bib-buffer (bib-get-bibliography nil)) (the-warnings (bib-get-citations the-keys-obarray bib-buffer new-buffer nil))) (kill-buffer bib-buffer) ;;; (switch-to-buffer new-buffer) (funcall bib-switch-to-buffer-function new-buffer) (bibtex-mode) (if (or bib-document-citekeys-obarray-warnings the-warnings) (progn (cond ((and bib-document-citekeys-obarray-warnings the-warnings) (with-output-to-temp-buffer "*Help*" (princ bib-document-citekeys-obarray-warnings the-warnings))) (bib-document-citekeys-obarray-warnings (with-output-to-temp-buffer "*Help*" (princ bib-document-citekeys-obarray-warnings))) (the-warnings (with-output-to-temp-buffer "*Help*" (princ the-warnings)))) (setq bib-document-citekeys-obarray-warnings nil) ;Reset (bib-cite-fontify-red))) (if bib-novice (message (substitute-command-keys "Use \\[save-buffer] to save this buffer to a file."))))) (defun bib-cite-fontify-red (&optional limit) "Fontify *Help* buffer in red-bold up to optional LIMIT." (if (and window-system ;Not exactly correct for XEmacs (not (facep 'red-bold))) (progn (copy-face 'bold 'red-bold) (set-face-foreground 'red-bold "red"))) (with-current-buffer "*Help*" (let ((before-change-functions) (after-change-functions)) (put-text-property (point-min)(or limit (point-max)) 'face 'red-bold)))) (when (featurep 'xemacs) (defun bib-cite-fontify-help-xemacs (defaults) (if (fboundp 'font-lock-set-defaults-1) ; >= XEmacs 19.14 (with-current-buffer "*Help*" (setq font-lock-defaults-computed nil font-lock-keywords nil) (font-lock-set-defaults-1 (and defaults (font-lock-find-font-lock-defaults defaults))) (font-lock-fontify-buffer) (setq font-lock-defaults-computed nil font-lock-keywords nil) (font-lock-set-defaults-1))))) (defun bib-cite--fontify-help () ;; FIXME: This looks ugly and incorrect. (if font-lock-mode (font-lock-mode -1) (if (fboundp 'font-lock-unset-defaults) (font-lock-unset-defaults)) (font-lock-unfontify-buffer)) (if (fboundp 'font-lock-ensure) (font-lock-ensure) (with-no-warnings (font-lock-fontify-buffer)))) (defun bib-cite-fontify-help-as-bibtex () (cond ((not (featurep 'font-lock)) nil) ;No font-lock! Stop here. ;; font-lock under Emacs and XEmacs ((featurep 'xemacs) ;; XEmacs (bib-cite-fontify-help-xemacs 'bibtex-mode)) (t ;; Emacs (with-current-buffer "*Help*" (let ((font-lock-defaults '(bib-cite-bibtex-font-lock-keywords nil t ((?$ . "\"")(?\" . "."))))) (bib-cite--fontify-help)))))) (defun bib-cite-fontify-help-as-latex () (cond ((not (featurep 'font-lock)) nil) ;No font-lock! Stop here. ;; font-lock under Emacs and XEmacs ((featurep 'xemacs) ;; XEmacs, not necessary to do s.th. special for font-latex, we do *not* ;; want the buffer-local faces! (bib-cite-fontify-help-xemacs 'latex-mode)) (t ;; Emacs (with-current-buffer "*Help*" ;; Actually, don't want to `permanently' affect *Help* buffer... ;;(if (featurep 'font-latex) ;; (font-latex-setup) ;; Rather I should deal with this in the `let' form: ;; (make-local-variable 'font-lock-string-face) ;; (setq font-lock-string-face font-latex-math-face ;; font-latex-string-face (default-value 'font-lock-string-face)) (let ((font-lock-defaults (if (featurep 'font-latex) '((font-latex-keywords font-latex-keywords-1 font-latex-keywords-2) nil nil ((?\( . ".") (?\) . ".") (?$ . "\"")) nil (font-lock-comment-start-regexp . "%") (font-lock-mark-block-function . mark-paragraph)) '(tex-font-lock-keywords nil nil ((?$ . "\"")))))) (bib-cite--fontify-help)))))) (defvar bib-document-TeX-files-warnings nil "Bib-cite internal variable.") (defun bib-etags (&optional masterdir) "Invoke etags on all tex files of the document in directory MASTERDIR. Store the TAGS file in the master-directory. Expect errors if you use this outside of auctex or within a plain single-file document. Also makes sure that the TAGS buffer is updated. See variables bib-etags-command and bib-etags-filename" (interactive) (require 'etags) (let* ((the-file-list (bib-document-TeX-files)) (the-file (car the-file-list)) (dir (or masterdir (bib-master-directory))) (the-tags-file (expand-file-name bib-etags-filename dir)) (the-tags-buffer (get-file-buffer the-tags-file))) ;; Create TAGS file with first TeX file (master file) (shell-command (concat bib-etags-command the-tags-file " " the-file)) (setq the-file-list (cdr the-file-list)) ;; Append to TAGS file for all other TeX files. (while the-file-list (setq the-file (car the-file-list)) (shell-command (concat bib-etags-append-command the-tags-file " " the-file)) (setq the-file-list (cdr the-file-list))) (if the-tags-buffer ;buffer existed; we must refresh it. (with-current-buffer the-tags-buffer (revert-buffer t t))) ;; Check value of tags-file-name against the-tags-file (or (equal the-tags-file tags-file-name) ;make sure it's current (visit-tags-table the-tags-file)) ;(set (make-local-variable 'tags-file-name) the-tags-file)) ;; above should not be needed ;; Weird Bug: ;; (visit-tags-table-buffer) seems to get called twice when called by ;; find-tag on an undefined tag. The second time, it's in the TAGS ;; buffer and returns an error because TAGS buffer does have ;; tags-file-name set. ;; To get around this. I'm setting this variable in the TAGS buffer. ;; Skip this in XEmacs (Changed by Anders Stenman) (if (and (not (featurep 'xemacs)) (get-file-buffer the-tags-file)) (with-current-buffer (get-file-buffer the-tags-file) (set (make-local-variable 'tags-file-name) the-tags-file)))) (if bib-document-TeX-files-warnings ;free variable loose in emacs! (progn (with-output-to-temp-buffer "*Help*" (princ bib-document-TeX-files-warnings)) (setq bib-document-TeX-files-warnings nil) ;Reset (bib-cite-fontify-red)))) (defun bib-Is-hidden () "Return true is current point is hidden." (if (not selective-display) nil ;Not hidden if not using this... (save-excursion (if (not (re-search-backward "[\n\^M]" nil t)) nil ;Play safe (if (string-equal (match-string 0) "\n") nil t))))) (defun bib-highlight-mouse () "Make that nice green highlight when the mouse is over LaTeX commands." (interactive) ;;Comment this out. User should be able to use bib-highlight-mouse ;;to try it out regardless of bib-highlight-mouse-t. ;;Check bib-highlight-mouse-t only in automated cases. ;; ;; (if (and bib-highlight-mouse-t ;; ;;window-system) ;Do nothing unless under X ;; ) ;; *all of code was here* ;; ) (save-excursion (let ((s)(e)(extent)(local-extent-list bib-ext-list) (inhibit-read-only t) (modified (buffer-modified-p))) ;put-text-property changing this? ;; * peta Wed Nov 8 16:27:29 1995 -- better remove the mouse face ;; properties first. (setq bib-ext-list nil) ;Reconstructed below... (if (featurep 'xemacs) (while local-extent-list (setq extent (car local-extent-list)) (if (or (extent-detached-p extent) (and (<= (point-min)(extent-start-position extent)) (>= (point-max)(extent-end-position extent)))) (delete-extent extent) (setq bib-ext-list (cons extent bib-ext-list))) (setq local-extent-list (cdr local-extent-list))) ;; Remove properties for regular emacs ;; FIXME This detroys all mouse-faces and local-maps! ;; FIXME Hope no other package is using them in this buffer! (let ((before-change-functions) (after-change-functions)) (remove-text-properties (point-min) (point-max) '(mouse-face t local-map t)))) (goto-char (point-min)) (while (re-search-forward (concat "\\\\\\(" (substring bib-ref-regexp 2) "\\|label\\|[A-Za-z]*cite[A-Za-z]*\\(\\[[^]]*\\]\\)*\\){[^}]*}") nil t) (setq s (match-beginning 0)) (setq e (match-end 0)) (cond ((featurep 'xemacs) (setq extent (make-extent s e)) (setq bib-ext-list (cons extent bib-ext-list)) (set-extent-property extent 'highlight t) (set-extent-property extent 'start-open t) (set-extent-property extent 'balloon-help 'bib-label-help) (set-extent-property extent 'help-echo 'bib-label-help-echo) (set-extent-property extent 'keymap bib-highlight-mouse-keymap)) (t (let ((before-change-functions) (after-change-functions) ;;(this-overlay (make-overlay s e)) ) ;;; Even using overlays doesn't help here. If bib-highlight-mouse-keymap ;;; does not include the AucTeX menus, then these disappear when we click ;;; onto a \cite command. Perhaps using bib-cite as a minor mode will fix ;;; this? For now, bib-cite must be loaded after these menus are built. ;;; It must therefore be loaded in a mode-hook. (put-text-property s e 'local-map bib-highlight-mouse-keymap) (put-text-property s e 'mouse-face 'highlight) ;;(overlay-put this-overlay 'local-map bib-highlight-mouse-keymap) ;;(overlay-put this-overlay 'mouse-face 'highlight) )))) (set-buffer-modified-p modified)))) (defun bib-toggle-highlight () "Toggle the enabling of bib-cite entries as clickable things." ;; FIXME: do something about after-change stuff? (interactive) (if (setq bib-highlight-mouse-t (not bib-highlight-mouse-t)) (bib-highlight-mouse) (let ((modified (buffer-modified-p)) (inhibit-read-only t)) (cond ((featurep 'xemacs) (while bib-ext-list (delete-extent (car bib-ext-list)) (setq bib-ext-list (cdr bib-ext-list)))) (t (let ((before-change-functions) (after-change-functions)) (remove-text-properties (point-min) (point-max) '(mouse-face local-map))))) (set-buffer-modified-p modified)))) (defun bib-label-help-echo (object) (if bib-label-help-echo-format (bib-label-help object bib-label-help-echo-format))) ;; Balloon-help callback. Anders Stenman ;; Patched by Bruce Ravel (defun bib-label-help (object &optional format) (or format (setq format "Use mouse button 2 to find the %s. Use mouse button 3 to display the %s.")) (save-match-data (let* ((string (extent-string object)) (type (cond ((string-match "^\\\\[A-Za-z]*cite[A-Za-z]*" string) "citation") ((string-match (concat "^" bib-ref-regexp) string) "\\label{}") ((string-match "^\\\\label" string) "\\ref{}") (t "this (unknown) reference")))) (format format type type)))) ;;---------------------------------------------------------------------------- ;; Routines to display or edit a citation's bibliography (defun bib-display-citation () "Do the displaying of cite info. Return t if found cite key, nil otherwise. Example with cursor located over cite command or arguments: \cite{Wadhams81,Bourke.et.al87,SchneiderBudeus94} ^Display-all-citations ^Display-this-citation" (save-excursion (let* ((the-keys-obarray (bib-get-citekeys-obarray)) ;1st in case of error (work-buffer (get-buffer-create "*bibtex-work*")) (bib-buffer (bib-get-bibliography nil)) (the-warnings (bib-get-citations the-keys-obarray bib-buffer work-buffer bib-substitute-string-in-display)) (the-warn-point)) (if the-warnings (progn (set-buffer work-buffer) (goto-char 1) (insert the-warnings) (setq the-warn-point (point)))) (with-output-to-temp-buffer "*Help*" (set-buffer work-buffer) (princ (buffer-substring 1 (point-max)))) (bib-cite-fontify-help-as-bibtex) (if the-warn-point (bib-cite-fontify-red the-warn-point)) (kill-buffer bib-buffer) (kill-buffer work-buffer)))) (defun bib-edit-citation () "Do the edit of cite info. Return t if found cite key, nil otherwise. Find and and put edit point in bib file associated with a BibTeX citation under cursor from \bibliography input file. In a multi-entry cite command, the cursor should be on the actual cite key desired (otherwise a random entry will be selected). e.g.: \cite{Wadhams81,Bourke.et.al87,SchneiderBudeus94} ^Display-this-citation" (let ((the-keys-obarray (bib-get-citekeys-obarray)) ;1st in case of error (bib-buffer (bib-get-bibliography t)) (the-key)(the-file)) (save-excursion (mapatoms ;Do this for each cite-key found... (lambda (cite-key) (setq the-key (symbol-name cite-key))) the-keys-obarray) (set-buffer bib-buffer) (goto-char (point-min)) (if (not (re-search-forward (concat "@[^{(]+[{(][\t ]*" (regexp-quote the-key) "[ ,\n]") nil t)) (progn (kill-buffer bib-buffer) (error "Sorry, could not find bib entry for %s" the-key)) (re-search-backward "%%%Filename: \\([^\n]*\\)" nil t) (setq the-file (match-string 1)) (kill-buffer bib-buffer))) ;;; (find-file the-file) (funcall bib-switch-to-buffer-function (find-file-noselect the-file)) (goto-char (point-min)) ;V2.19 fix (re-search-forward (concat "@[^{(]+[{(][\t ]*" (regexp-quote the-key) "[ ,\n]") nil t))) ;;-------------------------------------------------------------------------- ;; Function for bib-apropos (defun bib-apropos-keyword-at-point () "Return the keyword under point for initial input to bib-apropos prompt." (save-excursion (let ((here (point))) (cond ((and (re-search-backward "[\n{, ]" nil t) (string-equal "{" (buffer-substring (match-beginning 0) (match-end 0)))) (if (fboundp 'buffer-substring-no-properties) (buffer-substring-no-properties (1+ (point)) here) (buffer-substring (1+ (point)) here))))))) ;;-------------------------------------------------------------------------- ;; Functions for Displaying or moving to matching \ref or \label command (defun bib-display-label () "Display environment or first ref associated with a label. The label or ref name is extracted from the text under the cursor, or the user is prompted is nothing suitable is found. The first prompt is for a label. If you answer with an empty string, a second prompt for a ref will be given." (let ((the-regexp (bib-guess-or-prompt-for-label))) (if (not the-regexp) (message "No name given") (bib-display-or-find-label the-regexp t)))) (defun bib-find-label () "Move to a label, or the first occurance of a ref. The label or ref name is extracted from the text under the cursor. If nothing suitable is found, the user is prompted. The first prompt is for a label. If you answer with an empty string, a second prompt for a ref will be given. If within a single file document: You can move back with C-xC-x as the mark is set before moving. You can search for next occurrances of a ref command with C-sC-s. If within a multi-file document (in auctex only) You can move back with C-xC-x if within the same buffer. If not, just select your previous buffer. You can search for next occurrances of a ref command with tag commands: C-u M-. Find next alternate definition of last tag specified. C-u - M-. Go back to previous tag found." (let ((the-regexp (bib-guess-or-prompt-for-label))) (if (not the-regexp) (message "No name given") (bib-display-or-find-label the-regexp nil)))) ;;-------------------------------------------------------------------------- ;; Functions for Displaying or moving to matching \ref or \label command (defun bib-display-or-find-label (the-regexp displayf) ;; work horse for bib-find-label and bib-display-label (let* ((masterfile (bib-master-file)) (masterdir (and masterfile (file-name-directory masterfile))) (new-point)(new-buffer)) (save-excursion ;; Now we are either in a simple file, or with a multi-file document (cond (masterfile ;Multi-file document (cond (displayf ;Display only (set-buffer (bib-etags-find-noselect the-regexp masterdir)) (re-search-forward the-regexp nil t) ;; ...because tags puts point on beginning of line (if (string-match "^\\\\\\\\label" the-regexp) (bib-display-this-environment) ;display the label's environment (bib-display-this-ref))) ; display the ref's context (t ;Move to it (setq new-buffer (bib-etags-find-noselect the-regexp masterdir)) (if bib-novice (message (substitute-command-keys (concat "Use \\[bib-find-next] to find the next occurrence " "and C-u \\[bib-find-next] to find previous.")))) (if (equal new-buffer (current-buffer)) (setq new-point (point)))))) ;Moving with the same buffer (t ;Single-file document (goto-char (point-min)) (cond ((re-search-forward the-regexp nil t) (if displayf (if (string-match "^\\\\label" the-regexp) (bib-display-this-environment) ;Display the environment (bib-display-this-ref)) ; display the ref's context (setq new-point (match-beginning 0)) ;or move there (if (string-match "{\\(.*\\)}" the-regexp) (setq bib-cite-search-ring (match-string 1 the-regexp))) (if bib-novice (message (substitute-command-keys (concat "Use \\[bib-find-next] to find the next occurrence " "and C-u \\[bib-find-next] to find previous.")))))) (t (message "Sorry, cannot find it (%s)" the-regexp)))))) (if new-point (progn (push-mark (point) t nil) ;We've moving there... push mark (goto-char new-point)) (if new-buffer ;We've changing buffer ;;(switch-to-buffer new-buffer) (funcall bib-switch-to-buffer-function new-buffer))) (if (bib-Is-hidden) (save-excursion (beginning-of-line) (show-entry))))) (defvar bib-label-prompt-map (let ((map (make-sparse-keymap))) (set-keymap-parent map minibuffer-local-completion-map) (define-key map " " 'self-insert-command) map)) (defun bib-guess-or-prompt-for-label () "Guess from context, or prompt the user for a label command." (save-excursion (if (not (looking-at "\\\\")) ;If not on beginning of a command (re-search-backward "[\\]" (save-excursion (beginning-of-line)(point)) t)) (cond ((looking-at bib-ref-regexpc) ;On \ref, looking for matching \label (let ((b (progn (search-forward "{" nil t)(forward-char -1)(point))) (e (progn (forward-sexp 1)(point)))) (concat "\\\\label" (regexp-quote (buffer-substring b e))))) ((looking-at "\\\\label{") ;On \label, looking for matching \ref (let ((b (progn (search-forward "{" nil t)(forward-char -1)(point))) (e (progn (forward-sexp 1)(point)))) (concat bib-ref-regexp (regexp-quote (buffer-substring b e))))) (t ;Prompt the user (let* ((minibuffer-local-completion-map bib-label-prompt-map) (the-alist (create-alist-from-list (cdr (reverse LaTeX-label-list)))) ;;; LaTeX-label-list example: ;;; '(("label3" "label4")("label1" "label2") nil) ;; so let's get rid of that nil part in embedded list. (the-name (if (string-equal "18" (substring emacs-version 0 2)) (completing-read "Label: " the-alist nil nil nil) (completing-read "Label: " the-alist nil nil nil 'LaTeX-find-label-hist-alist)))) (if (not (equal the-name "")) (concat "\\\\label{" (regexp-quote the-name) "}") ;; else try to get a \ref (if (string-equal "18" (substring emacs-version 0 2)) (setq the-name (completing-read "Ref: " the-alist nil nil nil)) (setq the-name (completing-read "Ref: " the-alist nil nil nil 'LaTeX-find-label-hist-alist))) (if (not (equal the-name "")) (concat bib-ref-regexpc (regexp-quote the-name) "}") nil))))))) (defun bib-display-this-ref () "Display a few lines around current point." (cond ((bib-Is-hidden) (with-output-to-temp-buffer "*BiBTemp*" (princ (buffer-substring (save-excursion (let ((i 3)) (while (and (> i 0) (re-search-backward "[\n\^M]" nil t) (setq i (1- i))))) (point)) (save-excursion (let ((i 3)) (while (and (> i 0) (re-search-forward "[\n\^M]" nil t) (setq i (1- i))))) (point))))) (set-buffer "*BiBTemp*") (while (search-forward "\^M" nil t) (replace-match "\n" nil t)) (goto-char 1) (if (looking-at "\n") ;Remove first empty line... (delete-char 1)) (with-output-to-temp-buffer "*Help*" (princ (buffer-substring (point-min) (point-max)))) (bib-cite-fontify-help-as-latex) (kill-buffer "*BiBTemp*")) (t (with-output-to-temp-buffer ; display the ref's context "*Help*" (princ (buffer-substring (save-excursion (forward-line -2)(point)) (save-excursion (forward-line 3)(point))))) (bib-cite-fontify-help-as-latex)))) (defun bib-display-this-environment () "Display the environment associated with a label, or its section name. Assumes point is already on the label. Does not save excursion." ;; Bugs: The method used here to detect the environment is *not* foolproof. ;; It will get confused, for example, between two figure environments, ;; picking out both instead of the section label above them. But since ;; users typically puts their labels next to the section declaration, ;; I'm satisfied with this... for now. ;; I could have used the following AUCTeX functions: ;; LaTeX-current-environment ;; Function: Return the name (a string) of the enclosing LaTeX environment. ;; LaTeX-current-section ;; Function: Return the level of the section that contain point. ;; but then this code would only work as part of AUCTeX... (let ((the-point (point)) (end-point (point)) (the-environment)(foundf)) (while (and (not foundf) (goto-char end-point) ;Past end of last search (re-search-forward "\\(^\\|\^M\\)[ \t]*\\\\end{\\([^}]*\\)}" nil t)) (setq end-point (point)) (setq the-environment (match-string 2)) (and (not (string-match "document" the-environment)) (re-search-backward (concat "\\(^\\|\^M\\)[ \t]*\\\\begin{" (regexp-quote the-environment) "}")) (<= (point) the-point) (setq foundf t))) (if foundf ;A good environment (progn (cond ((bib-Is-hidden) ;Better way is: replace-within-string (with-output-to-temp-buffer "*BiBTemp*" (princ (buffer-substring (point) end-point))) (set-buffer "*BiBTemp*") (while (search-forward "\^M" nil t) (replace-match "\n" nil t)) (goto-char 1) (if (looking-at "\n") ;Remove first empty line... (delete-char 1)) (with-output-to-temp-buffer "*Help*" (princ (buffer-substring 1 (point-max)))) (kill-buffer "*BiBTemp*")) (t (with-output-to-temp-buffer "*Help*" (princ (buffer-substring (point) end-point))))) (bib-cite-fontify-help-as-latex)) ;; Just find the section declaration (goto-char the-point) (if (re-search-backward ;;; "\\(^\\|\^M\\)[ \t]*\\\\\\(sub\\)*section{\\([^}]*\\)}" nil t) ;;; Michael Steiner patch "\\(^\\|\^M\\)[ \t]*\\\\\\(\\(sub\\)*section\\|chapter\\|part\\)\\*?\ {\\([^}]*\\)}" nil t) (message (match-string 0)) (error "Sorry, could not find an environment or section declaration"))))) (defvar LaTeX-find-label-hist-alist nil "History list for LaTeX-find-label.") (defvar LaTeX-label-list nil "Used by AUCTeX to store label names.") (defun create-alist-from-list (the-list) "Return a single list from a THE-LIST that may contain either items or lists. e.g. turns '((\"label3\" \"label4\")(\"label1\" \"label2\") \"label\") into '((\"label3\") (\"label4\") (\"label1\") (\"label2\") (\"label\"))" (mapcar 'list (bib-cite-mh-list-to-string the-list))) ;; ;; Following two functions from mh-utils.el (part of GNU emacs) ;; I have changed the names in case these functions change what they do. ;; (defun bib-cite-mh-list-to-string (l) "Flattens the list L and make every element of the new list into a string." (nreverse (bib-cite-mh-list-to-string-1 l))) (defun bib-cite-mh-list-to-string-1 (l) (let ((new-list nil)) (while l (cond ((null (car l))) ((symbolp (car l)) (setq new-list (cons (symbol-name (car l)) new-list))) ((numberp (car l)) (setq new-list (cons (int-to-string (car l)) new-list))) ((equal (car l) "")) ((stringp (car l)) (setq new-list (cons (car l) new-list))) ((listp (car l)) (setq new-list (nconc (bib-cite-mh-list-to-string-1 (car l)) new-list))) (t (error "Bad element in mh-list-to-string: %s" (car l)))) (setq l (cdr l))) new-list)) ;; ------------------------------------------------------------------------- ;; Routines to extract cite keys from text ;; ... is truly remarkable, as shown in \citeN{Thomson77,Test56}. Every ;; \cite[{\it e.g.}]{Thomson77,Test56} (defun bib-get-citations (keys-obarray bib-buffer new-buffer substitute) "Put citations of KEYS-OBARRAY from BIB-BUFFER into NEW-BUFFER. Substitute strings if SUBSTITUTE is t Return the-warnings as text." (let ((the-warnings) ;The only variable to remember... (case-fold-search t)) ;All other results go into new-buffer ;; bibtex is not case-sensitive for keys. (save-excursion (let ((the-text)) (set-buffer bib-buffer) (mapatoms ;Do this for each cite-key found... (lambda (cite-key) (goto-char (point-min)) (if (re-search-forward (concat "@[^{(]+[{(][\t ]*" (regexp-quote (symbol-name cite-key)) "\\([, ]\\\|$\\)") ;; ^^ ^ comma, space or end-of-line nil t) (setq the-text (concat the-text (buffer-substring (progn (beginning-of-line)(point)) (progn (forward-sexp 2)(point))) "\n\n")) (setq the-warnings (concat the-warnings "Cannot find entry for: " (symbol-name cite-key) "\n")))) keys-obarray) (if (not the-text) (error "Sorry, could not find any of the references")) ;; Insert the citations in the new buffer (set-buffer new-buffer) (insert the-text) (goto-char 1)) ;; We are at beginning of new-buffer. ;; Now handle crossrefs (let ((crossref-obarray (make-vector 201 0))) (while (re-search-forward "[, \t]*crossref[ \t]*=[ \t]*\\(\"\\|\{\\)" nil t) ;;handle {text} or "text" cases (if (string-equal "{" (match-string 1)) (re-search-forward "[^\}]+" nil t) (re-search-forward "[^\"]+" nil t)) (intern (match-string 0) crossref-obarray)) ;; Now find the corresponding keys, ;; but add them only if not already in `keys-obarray' (set-buffer bib-buffer) (goto-char 1) (let ((the-text)) (mapatoms ;Do this for each crossref key found... (lambda (crossref-key) (if (not (intern-soft (symbol-name crossref-key) keys-obarray)) (progn ;; Not in keys-obarray, so not yet displayed. (goto-char (point-min)) (if (re-search-forward (concat "@[^{(]+[{(][\t ]*" (regexp-quote (symbol-name crossref-key)) "\\(,\\|$\\)") nil t) (setq the-text (concat the-text (buffer-substring (progn (beginning-of-line)(point)) (progn (forward-sexp 2)(point))) "\n\n")) (setq the-warnings (concat the-warnings "Cannot find crossref entry for: " (symbol-name crossref-key) "\n")))))) crossref-obarray) ;; Insert the citations in the new buffer (set-buffer new-buffer) (goto-char (point-max)) (if the-text (insert the-text))) (goto-char 1)) ;; Now we have all citations in new-buffer, collect all used @String keys ;; Ex: journal = JPO, (let ((strings-obarray (make-vector 201 0))) (while (re-search-forward bib-string-regexp nil t) (intern (match-string 1) strings-obarray)) ;; Now find the corresponding @String commands ;; Collect either the @string commands, or the string to substitute (set-buffer bib-buffer) (goto-char 1) (let ((string-alist) (the-text)) (mapatoms ;Do this for each string-key found... (lambda (string-key) (goto-char (point-min)) ;; search for @string{ key = {text}} or @string{ key = "text"} (if (re-search-forward (concat "^[ \t]*@string[{(]" (regexp-quote (symbol-name string-key)) "[\t ]*=[\t ]*\\(\"\\|\{\\)") nil t) (let ((the-string-start (1- (match-end 1))) ;catch bracket ;;handle {text} or "text" cases (the-string-end (cond ((string-equal "\"" (match-string 1)) (re-search-forward "[^\\]\"" nil t) (point)) (t (forward-char -1) (forward-list 1) (point))))) (if substitute ;Collect substitutions (setq string-alist (append string-alist (list (cons (symbol-name string-key) ;(regexp-quote (buffer-substring the-string-start the-string-end)))));) ;;Collect the strings command themseves (setq the-text (concat the-text (buffer-substring (progn (forward-char 1)(point)) (re-search-backward "^[ \t]*@string[{(]" nil t)) "\n")))) ;; @string entry not found (if (not (member-cis (symbol-name string-key) bib-string-ignored-warning)) (setq the-warnings (concat the-warnings "Cannot find @String entry for: " (symbol-name string-key) "\n"))))) strings-obarray) ;; Now we have `the-text' of @string commands, ;; or the `string-alist' to substitute. (set-buffer new-buffer) (if substitute (while string-alist (goto-char 1) (let* ((the-key (car (car string-alist))) (the-string (cdr (car string-alist))) (slashed-string ; "J. of Geo.\" -> "J. of Geo.\\\\" (dired-replace-in-string "\\\\" "\\\\" the-string))) (while (re-search-forward (concat "\\(^[, \t]*[a-zA-Z]+[ \t]*=[ \t]*\\)" (regexp-quote the-key) "\\([, \t\n]\\)") nil t) (replace-match (concat "\\1" slashed-string "\\2") t nil))) (setq string-alist (cdr string-alist))) ;; substitute is nil; Simply insert text of @string commands (goto-char 1) (if the-text (insert the-text "\n"))) (goto-char 1)))) ;; We are done! ;; Return the warnings... the-warnings)) ;; Following contributed by Michael Steiner The ;; @string abbreviation are not case-sensitive, so we replaced the `member' ;; test above with `member-cis' defined here: (defun member-cis (ELT LIST) "Return non-nil if ELT is an element of LIST. All elements should be strings. Comparison is case-insensitive." ;; If list is exhausted, (if (null LIST) nil ;; if null then we haven't found the element ... ;; else split list and ... (let((listelt (car LIST))(listrest (cdr LIST))) ;; see if car is equal to ELT (if (string-equal (downcase ELT) (downcase listelt)) t ;; if so return true ;; else recurse for rest of list (member-cis ELT listrest))))) (defun bib-get-citekeys-obarray () "Return obarray of citation key (within curly brackets) under cursor." (save-excursion ;; First find *only* a key *within a cite command (let ((the-point (point)) (keys-obarray (make-vector 201 0))) ;; First try to match a cite command (if (and (skip-chars-backward "a-zA-Z") ;Stops on \ or { (looking-at "[a-zA-Z]*cite[a-zA-Z]*")) (progn ;;skip over any optional arguments to \cite[][]{key} command (skip-chars-forward "a-zA-Z") (while (looking-at "\\[") (forward-list 1)) (re-search-forward "{[ \n]*\\([^,} \n]+\\)" nil t) (intern (match-string 1) keys-obarray) (while (and (skip-chars-forward " \n") ;no effect on while (looking-at ",")) (forward-char 1) ;;The following re-search skips over leading spaces (re-search-forward "\\([^,} \n]+\\)" nil t) (intern (match-string 1) keys-obarray))) ;; Assume we are on the keyword (goto-char the-point) (let ((the-start (re-search-backward "[\n{, ]" nil t)) (the-end (progn (goto-char the-point) (re-search-forward "[\n}, ]" nil t)))) (if (and the-start the-end) (intern (buffer-substring (1+ the-start) (1- the-end)) keys-obarray) ;; Neither... (error "Sorry, can't find a reference here")))) keys-obarray))) (defun bib-buffer-citekeys-obarray () "Extract citations keys used in the current buffer." (let ((keys-obarray (make-vector 201 0))) (save-excursion (goto-char (point-min)) ;; Following must allow for \cite[e.g.][]{key} !!! ;; regexp for \cite{key1,key2} was "\\\\[a-Z]*cite[a-Z]*{\\([^,}]+\\)" (while (re-search-forward "\\\\[a-zA-Z]*cite[a-zA-Z]*\\(\\[\\|{\\)" nil t) (backward-char 1) (while (looking-at "\\[") ; ...so skip all bracketted options (forward-sexp 1)) ;; then lookup first key (if (looking-at "{[ \n]*\\([^,} \n]+\\)") (progn (intern (match-string 1) keys-obarray) (goto-char (match-end 1)) (while (and (skip-chars-forward " \n") (looking-at ",")) (forward-char 1) (re-search-forward "\\([^,} \n]+\\)" nil t) (intern (match-string 1) keys-obarray))))) (if keys-obarray keys-obarray (error "Sorry, could not find any citation keys in this buffer"))))) ;;--------------------------------------------------------------------------- ;; Multi-file document programming requirements: ;; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ;; bib-make-bibliography ;; bib-document-citekeys-obarray needs the master .aux file to extract ;; citation keys. ;; Included .aux files (corresponding to \include'd LaTeX files) are ;; then specified relative to the master-file-directory. ;; ;; bib-get-bibliography (used by interactive commands to extract bib sources) ;; ;; bibtex source filenames are returned from (LaTeX-bibliography-list) ;; unformatted. Since only a single \bibliogragrphy command is allowed ;; by BiBTeX in a document, it is safe to assume that their path is ;; relative to the master file's directory (since the path is relative ;; to where the BiBTeX program is actually ran). ;; ;; (See TeX-check-files, used in TeX-save-document. All documents related ;; files are returned by (TeX-style-list) and stored in TeX-active-styles. ;; Original idea was to search TeX-check-path for files listed in ;; TeX-active-styles (with possible relative or full paths) that end in .tex.) (defun bib-master-directory () "Return the directory associated with the master file. If no master file, then return current default." (let ((masterfile (bib-master-file))) (if masterfile (file-name-directory (expand-file-name (TeX-master-file))) default-directory))) (defun bib-master-file () "Return master file full path, or nil if not a multi-file document." ;; I wish there were a better way to tell about non multi-file documents... (let ((master (cond ((not (boundp 'TeX-master)) ;; This buffer doesn't know what a master file is, so return now. nil) ((and TeX-master ;Set, but not to t (not (symbolp TeX-master))) ; then we have an actual name (expand-file-name TeX-master)) ((and (eq TeX-master 't) ;Test if master file itself (progn ;But also require at least one \include (save-excursion (goto-char 1) ;Too bad I have to do this search... ;; Require that user uses \input{file} ;; rather than \input file (re-search-forward "^[ \t]*\\\\\\(include\\|input\\){" nil t)))) (buffer-file-name)) (t nil)))) (cond ((not master) nil) ((string-match ".\\(tex\\|ltx\\)$" master) master) ((file-readable-p (concat master ".ltx")) (concat master ".ltx")) (t (concat master ".tex"))))) ;; I don't use this one because files are not returned in order... ;; (defun bib-document-TeX-files () ;; ;; Return all tex input files associated with a known multi-file document. ;; (let ((master-directory (bib-master-directory)) ;; (the-list (cons (file-name-nondirectory (TeX-master-file)) ;; (TeX-style-list))) ;; ;; TeX-style-list returns "../master" for the main file if TeX-master ;; ;; was set like that. "../master" would not be found relative ;; ;; to the master-directory! So let's add it to the list w/o directory. ;; (the-result) ;; (the-file)) ;; (while the-list ;; (setq the-file (expand-file-name (car the-list) master-directory)) ;; (setq the-list (cdr the-list)) ;; (and (not (string-match ".tex$" the-file)) ;; (setq the-file (concat the-file ".tex"))) ;; (and (file-readable-p the-file) ;; (not (member the-file the-result)) ;listed already? ;; (setq the-result (cons the-file the-result)))) ;; the-result)) (defun bib-document-TeX-files () "Return all tex input files associated with a *known* multi-file document. For a multi-file document in auctex only. No checking is done that this is a real multi-file document. Sets global variable bib-document-TeX-files-warnings." (setq bib-document-TeX-files-warnings nil) (let* ((masterfile (bib-master-file)) (dir (and masterfile (file-name-directory masterfile))) (tex-buffer (get-buffer-create "*tex-document*")) (the-list (list masterfile))) (if (not masterfile) (progn (kill-buffer tex-buffer) (error "Sorry, but this is not a multi-file document (Try C-u C-c C-n if using auctex)"))) (with-current-buffer tex-buffer ;; set its directory so relative includes work without expanding (setq default-directory dir) (insert-file-contents masterfile) (goto-char (point-min)) (while (re-search-forward "^[ \t]*\\\\\\(input\\|include\\){\\(.*\\)}" nil t) (let ((the-file (match-string 2))) (if (string-match ".sty$" the-file) ;Skip over style files! nil (if (and (not (file-readable-p (expand-file-name the-file dir))) (not (string-match ".ltx$" the-file)) (file-readable-p (expand-file-name (concat the-file ".ltx") dir))) (setq the-file (concat the-file ".ltx"))) (if (and (not (file-readable-p (expand-file-name the-file dir))) (not (string-match ".tex$" the-file))) (setq the-file (concat the-file ".tex"))) (setq the-file (expand-file-name the-file dir)) (if (not (file-readable-p the-file)) (setq bib-document-TeX-files-warnings (concat bib-document-TeX-files-warnings (format "Warning: File not found: %s" the-file))) (setq the-list (cons (expand-file-name the-file dir) the-list)) (end-of-line)(insert "\n") (insert-file-contents the-file)))))) (kill-buffer tex-buffer) (nreverse the-list))) (defun bib-document-citekeys-obarray () "Return cite keys obarray for multi-file document. Return nil if not a multi-file document. This is a AUCTeX supported feature only. Also, see bib-buffer-citekeys-obarray. Sets global variable bib-document-citekeys-obarray-warnings." (setq bib-document-citekeys-obarray-warnings nil) (let ((master-tex (bib-master-file)) (master-aux)) (if (not master-tex) nil ;Not a multifile document. No need... (setq master-aux (bib-return-aux-file-from-tex master-tex "aux")) (or (file-readable-p master-aux) (error "Sorry, cannot read file %s" master-aux)) (and (file-newer-than-file-p master-tex master-aux) (setq bib-document-citekeys-obarray-warnings (format "Warning: %s is out of date relative to %s.\n" master-aux master-tex))) (let ((work-buffer (get-buffer-create "*bib-cite-work*")) (keys-obarray (make-vector 201 0))) (with-current-buffer work-buffer (insert-file-contents master-aux) ;; Because we will be looking for \input statements, we need to set ;; the default directory to that of the master file. (setq default-directory (file-name-directory master-tex)) ;; bib-make-bibliography will need this also to find .bib files ;; look for \@input{chap1/part1.aux} (while (re-search-forward "^\\\\@input{\\(.*\\)}$" nil t) (let* ((auxfile (match-string 1)) (texfile (bib-return-aux-file-from-tex auxfile "tex"))) (if (not (file-readable-p auxfile)) (setq bib-document-citekeys-obarray-warnings (concat bib-document-citekeys-obarray-warnings (format "Warning: %s is not found or readable.\n" auxfile))) (if (file-newer-than-file-p texfile auxfile) (setq bib-document-citekeys-obarray-warnings (concat bib-document-citekeys-obarray-warnings (format "Warning: %s is out of date relative to %s.\n" auxfile texfile)))) (end-of-line)(insert "\n") (insert-file-contents auxfile)))) (goto-char 1) ;;; Patched by calvanes@dis.uniroma1.it (Diego Calvanese) ;;; ;; look for \citation{gertsenshtein59} ;;; (while (re-search-forward "^\\\\citation{\\(.*\\)}$" nil t) ;;; (intern (buffer-substring (match-beginning 1)(match-end 1)) ;;; keys-obarray)) ;; look for \citation{gertsenshtein59,vardi88,...,ullmann90} ;; comma-separation generated by certain LaTeX styles. (while (re-search-forward "^\\\\citation{\\(.*\\)}$" nil t) (let ((string (match-string 1)) (start 0)) (while (string-match "\\([^,\n]+\\)" string start) (intern (substring string (match-beginning 1) (match-end 1)) keys-obarray) (setq start (match-end 0)))))) (kill-buffer work-buffer) keys-obarray)))) (defun bib-return-aux-file-from-tex (texname ext) "Given name.name.XXX in TEXNAME return name.name.EXT." ;; FIXME: Check if in ./, else search (let* ((filename (if (string-match "\\(.*\\)\\.[^\\.]+" texname) (concat (match-string 1 texname) "." ext) (concat texname "." ext))) (sansdir (file-name-nondirectory filename))) (if (file-exists-p filename) filename ;; Search bib-cite-aux-inputs path (let ((filename (psg-checkfor-file-list sansdir bib-cite-aux-inputs))) (if (and filename (file-exists-p filename)) filename (error "Could not find file %s" sansdir)))))) (defun bib-etags-find-noselect (tag &optional masterdir) "Returns a buffer with point on TAG. Buffer is not selected. Makes sure TAGS file exists, etc." (require 'etags) (let* ((master (or masterdir (bib-master-directory))) (the-buffer (current-buffer)) (new-buffer) (the-tags-file-name (expand-file-name bib-etags-filename master))) (or (file-exists-p the-tags-file-name) ;make sure TAGS exists (bib-etags master)) (or (equal the-tags-file-name tags-file-name) ;make sure it's current (visit-tags-table the-tags-file-name)) ;; find-tag-noselect should set the TAGS file for the new buffer ;; that's what C-h f visit-tags-table says... (cond ((featurep 'xemacs) (find-tag tag) (setq new-buffer (current-buffer)) (set-buffer the-buffer)) (t (setq new-buffer (find-tag-noselect tag nil t)) ; -> Seems to set buffer to TAGS (set-buffer the-buffer))) new-buffer)) ;; -------------------------------------------------------------------------- ;; The following routines make a temporary bibliography buffer ;; holding all bibtex files found. (defun bib-get-bibliography (include-filenames-f) "Returns a new bibliography buffer holding all bibtex files in the document. If using AUCTeX, and either TeX-parse-self is set or C-c C-n is used to parse the document, then the entire multifile document will be searched for \bibliography commands. If this fails, the current buffer is searched for the first \bibliography command. If include-filenames-f is true, include as a special header the filename of each bib file. Puts the buffer in text-mode such that forward-sexp works with german \" accents embeded in bibtex entries." (let ((bib-list (or (and (fboundp 'LaTeX-bibliography-list) (boundp 'TeX-auto-update) (LaTeX-bibliography-list)) ;; LaTeX-bibliography-list (if bound) returns an unformatted list of ;; bib files used in the document, but only if parsing is turned on ;; or C-c C-n was used. (bib-bibliography-list))) (bib-buffer (get-buffer-create "*bibtex-bibliography*")) ;; Path is relative to the master directory (default-directory (bib-master-directory)) (the-name)(the-warnings)(the-file)) (with-current-buffer bib-buffer ;; such that forward-sexp works with embeeded \" in german, ;; and unbalanced () (erase-buffer) (set-syntax-table text-mode-syntax-table) ;; (if (boundp 'bibtex-mode-syntax-table) ;; (set-syntax-table bibtex-mode-syntax-table) ;; (text-mode)) ) ;;We have a list of bib files ;;Search for them, include them, list those not readable (while bib-list (setq the-name (car (car bib-list))) ;Extract the string only (setq bib-list (cdr bib-list)) (setq the-name (substring the-name (string-match "[^ ]+" the-name) ;remove leading spaces (string-match "[ ]+$" the-name))) ;remove trailing space (if (not (string-match "\\.bib$" the-name)) (setq the-name (concat the-name ".bib"))) (setq the-file (or (and (file-readable-p the-name) the-name) (psg-checkfor-file-list the-name (psg-list-env bib-bibtex-env-variable)) ;; Check for BIBINPUT env variable as well (by popular demand!) (psg-checkfor-file-list the-name (psg-list-env "BIBINPUT")) (and bib-cite-inputs (psg-checkfor-file-list the-name bib-cite-inputs)) (and (boundp 'TeX-check-path) (psg-checkfor-file-list the-name TeX-check-path)))) (if the-file (with-current-buffer bib-buffer (goto-char (point-max)) (if include-filenames-f (insert "%%%Filename: " the-file "\n")) (insert-file-contents the-file nil) (goto-char 1)) (setq the-warnings (concat the-warnings "Could not read file: " the-name "\n")))) (if the-warnings (progn (with-output-to-temp-buffer "*Help*" (princ the-warnings)) (kill-buffer bib-buffer) (error "Sorry, can't find all bibtex files in \\bibliography command")) bib-buffer))) (defun bib-bibliography-list () "Return list of bib files listed in first \\bibliography command in buffer. Similar output to AUCTeX's LaTeX-bibliography-list The first element may contain trailing whitespace (if there was any in input) although BiBTeX doesn't allow it!" (save-excursion (goto-char 1) (if (not (re-search-forward "^[ \t]*\\\\bibliography{[ \t]*\\([^},]+\\)" nil t)) (error "Sorry, can't find \\bibliography command anywhere") (let ((the-list (list (match-string 1))) (doNext t)) (while doNext (if (looking-at ",") (setq the-list (append the-list (list (buffer-substring (progn (skip-chars-forward ", ")(point)) (progn (re-search-forward "[,}]" nil t) (backward-char 1) (skip-chars-backward ", ") (point)))))) (setq doNext nil))) (mapcar 'list the-list))))) (defvar TeX-auto-save) (defvar TeX-auto-update) (defvar TeX-auto-regexp-list) ;; BibTeX-mode key def to create AUCTeX's parsing file. (defun bib-create-auto-file () "Force the creation of the AUCTeX auto file for a bibtex buffer." (interactive) (if (not (require 'latex)) (error "Sorry, This is only useful if you have AUCTeX")) (let ((TeX-auto-save t) (TeX-auto-update t) (TeX-auto-regexp-list BibTeX-auto-regexp-list)) ;; TeX-auto-write ;; -> calls TeX-auto-store ;; -> calls TeX-auto-parse ;; clears LaTeX-auto-bibtem (temporary holding space for bibitems) ;; searches buffer using regexp in TeX-auto-regexp-list ;; -> if LaTeX-auto-bibtem (the temporary holding space for bibitems) ;; holds stuffs like ;; ("Zimmermann:1991" "Anger_et_al:1993") ;; as determined by ;; (member nil (mapcar 'TeX-auto-entry-clear-p TeX-auto-parser)) ;; then it creates the auto file. ;; TeX-auto-write may call TeX-master-file which may fail if ;; TeX-header-end is unset (by LaTeX-common-initialization in latex-mode) (if (not TeX-header-end) (setq TeX-header-end LaTeX-header-end)) (TeX-auto-write))) ;; -------------------------------------------------------------------------- ;; The following routines are also defined in other packages... (defun psg-checkfor-file-list (filename list) "Check for presence of FILENAME in directory LIST. Return 1st found path." ;;USAGE: (psg-checkfor-file-list "gri" (psg-list-env "PATH")) ;;USAGE: (psg-checkfor-file-list "gri-mode.el" load-path) ;;USAGE: (psg-checkfor-file-list "gri.cmd" (psg-translate-ff-list "gri.tmp")) (let ((the-list list) (filespec)) (while the-list (if (not (car the-list)) ; it is nil (setq filespec (expand-file-name filename)) (setq filespec (concat (expand-file-name (file-name-as-directory (car the-list))) filename))) (if (file-exists-p filespec) (setq the-list nil) (setq filespec nil) (setq the-list (cdr the-list)))) (if filespec filespec ;; If I have not found a file yet, then check if some directories ;; ended in // and recurse through them. (let ((the-list list)) (while the-list (if (not (string-match "//$" (car the-list))) nil (setq filespec (car (search-directory-tree (substring (car the-list) 0 (match-beginning 0)) (concat "^" filename "$") t t))) (if filespec ;Success! (setq the-list nil))) (setq the-list (cdr the-list))) filespec)))) (defun search-directory-tree (directories extension-regexp recurse first-file) "Return a list of all reachable files in DIRECTORIES ending with EXTENSION. DIRECTORIES is a list or a single-directory string EXTENSION-REGEXP is actually (any) regexp, usually \\\\.bib$ If RECURSE is t, then we will recurse into the directory tree, nil, we will only search the list given. If FIRST-FILE is t, stop after first file is found." (or (listp directories) (setq directories (list directories))) (let (match) (while directories (let* ((directory (file-name-as-directory (car directories))) (content (and directory (file-readable-p directory) (file-directory-p directory) (directory-files directory)))) (setq directories (cdr directories)) (while content (let ((file (expand-file-name (car content) directory))) (cond ((string-match "[.]+$" (car content))) ;This or parent dir ((not (file-readable-p file))) ((and recurse (file-directory-p file)) (setq directories (cons (file-name-as-directory file) directories))) ((string-match extension-regexp (file-name-nondirectory file)) (and first-file (setq content nil directories nil)) (setq match (cons file match))))) (setq content (cdr content))))) match)) ;; (defun psg-checkfor-file-list (filename list) ;; (let ((the-list list) ;; (filespec)) ;; (while the-list ;; (if (not (car the-list)) ; it is nil ;; (setq filespec (concat "~/" filename)) ;; (setq filespec ;; (concat (file-name-as-directory (car the-list)) filename))) ;; (if (file-exists-p filespec) ;; (setq the-list nil) ;; (setq filespec nil) ;; (setq the-list (cdr the-list)))) ;; filespec)) (or (fboundp 'dired-replace-in-string) ;; This code is part of GNU emacs (defun dired-replace-in-string (regexp newtext string) ;; Replace REGEXP with NEWTEXT everywhere in STRING and return result. ;; NEWTEXT is taken literally---no \\DIGIT escapes will be recognized. (let ((result "") (start 0) mb me) (while (string-match regexp string start) (setq mb (match-beginning 0) me (match-end 0) result (concat result (substring string start mb) newtext) start me)) (concat result (substring string start))))) ;; Could use fset here to equal TeX-split-string to dired-split if only ;; dired-split is defined. That would eliminate a check in psg-list-env. (and (not (fboundp 'TeX-split-string)) (not (fboundp 'dired-split)) ;; This code is part of AUCTeX (defun TeX-split-string (char string) "Returns a list of strings. given REGEXP the STRING is split into sections which in string was seperated by REGEXP. Examples: (TeX-split-string \"\:\" \"abc:def:ghi\") -> (\"abc\" \"def\" \"ghi\") (TeX-split-string \" *\" \"dvips -Plw -p3 -c4 testfile.dvi\") -> (\"dvips\" \"-Plw\" \"-p3\" \"-c4\" \"testfile.dvi\") If CHAR is nil, or \"\", an error will occur." (let ((regexp char) (start 0) (result '())) (while (string-match regexp string start) (let ((match (string-match regexp string start))) (setq result (cons (substring string start match) result)) (setq start (match-end 0)))) (setq result (cons (substring string start nil) result)) (nreverse result)))) (defun bib-cite-file-directory-p (file) "Like default `file-directory-p' but allow FILE to end in // for ms-windows." (save-match-data (if (string-match "\\(.*\\)//$" file) (file-directory-p (match-string 1 file)) (file-directory-p file)))) (defun psg-list-env (env) "Return a list of directory elements in ENV variable (w/o leading $) argument may consist of environment variable plus a trailing directory, e.g. HOME or HOME/bin (trailing directory not supported in dos or OS/2). bib-dos-or-os2-variable affects: path separator used (: or ;) whether backslashes are converted to slashes" (if (not (getenv env)) nil ;Because dired-replace-in-string fails (let* ((value (if bib-dos-or-os2-variable (dired-replace-in-string "\\\\" "/" (getenv env)) (getenv env))) (sep-char (or (and bib-dos-or-os2-variable ";") ":")) (entries (and value (or (and (fboundp 'TeX-split-string) (TeX-split-string sep-char value)) (dired-split sep-char value))))) (loop for x in entries if (bib-cite-file-directory-p x) collect x)))) (provide 'bib-cite) ;;; bib-cite.el ends here auctex-11.91/build-aux/000077500000000000000000000000001313533625700147205ustar00rootroot00000000000000auctex-11.91/build-aux/gitlog-to-auctexlog000077500000000000000000000074751313533625700205610ustar00rootroot00000000000000#!/bin/sh # Convert git log output to ChangeLog format for GNU AUCTeX. # Adapted from build-auc/gitlog-to-emacslog script, part of GNU Emacs. # Copyright (C) 2014-2016 Free Software Foundation, Inc. # Original Author: Paul Eggert # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . LC_ALL=C export LC_ALL # The newest revision that should not appear in the generated ChangeLog. gen_origin= force= output=ChangeLog nmax=1 while [ $# -gt 0 ]; do case "$1" in -g|--gen-origin) gen_origin="$2" ; shift ;; -f|--force) force=1 ;; -n|--nmax) nmax="$2"; shift ;; -o|--output) output="$2" ; shift ;; *) printf '%s\n' "Unrecognized argument: $1" >&2; exit 1 ;; esac shift done if [ ! -f ChangeLog.$nmax ]; then printf '%s\n' "Can't find ChangeLog.$nmax" >&2 printf '%s\n' "Must be run from the top source directory" >&2 exit 1 fi # If not specified in the command line, get gen_origin from the existing # ChangeLog file. [ "$gen_origin" ] || { gen_origin_line=` grep --text -E '^commit [0-9a-f]+ [(]inclusive[)]' ChangeLog.$nmax ` || { printf '%s\n' "ChangeLog.$nmax lacks a 'commit ... (inclusive)' line" >&2 exit 1 } set $gen_origin_line gen_origin=$2 } # Get the new value for gen_origin from the latest version in the repository. new_origin=`git log --pretty=format:%H 'HEAD^!'` || exit if [ -f "$output" ]; then [ ! "$force" ] && printf '%s\n' "$output exists" >&2 && exit 1 rm -f "$output" || exit 1 fi # If this is not a Git repository, just generate an empty ChangeLog. test -d .git || { >"$output" exit } # Use Gnulib's packaged ChangeLog generator. # Maybe we should skip all "Merge branch 'master'" messages. ./build-aux/gitlog-to-changelog \ --ignore-matching="^; |^Merge branch .*$|^Merge from master\.$|^Merge master branch\.$" \ --ignore-line='^; ' --format='%B' \ "$gen_origin..$new_origin" >"ChangeLog.tmp" || exit if test -s "ChangeLog.tmp"; then # Fix up bug references. # This would be better as eg a --transform option to gitlog-to-changelog, # but... effort. FIXME does not handle rare cases like: # Fixes: debbugs:19434 debbugs:19519 sed 's/ Fixes: \(debbugs:\|bug#\)\([0-9][0-9]*\)/ (Bug#\2)/' \ "ChangeLog.tmp" > "ChangeLog.tmp2" mv "ChangeLog.tmp2" "ChangeLog.tmp" # Find the years covered by the generated ChangeLog, so that # a proper copyright notice can be output. years=` sed -n 's/^\([0-9][0-9]*\).*/\1/p' "ChangeLog.tmp" | sort -nu ` start_year= end_year= for year in $years; do : ${start_year:=$year} end_year=$year done if test "$start_year" = "$end_year"; then year_range=$start_year else year_range=$start_year-$end_year fi # Update gen_origin and append a proper copyright notice. sed -n ' 1i\ /^This file records repository revisions/p s/^commit [0-9a-f]* (exclusive)/commit '"$gen_origin"' (exclusive)/p s/^commit [0-9a-f]* (inclusive)/commit '"$new_origin"' (inclusive)/p /^See ChangeLog.[0-9]* for earlier/,${ s/ChangeLog\.[0-9]*/ChangeLog.'$nmax'/ s/\(Copyright[ (C)]*\)[0-9]*-[0-9]*/\1'"$year_range"'/ p } ' >"ChangeLog.tmp" || exit fi # Install the generated ChangeLog. test "$output" = "ChangeLog.tmp" || mv "ChangeLog.tmp" "$output" auctex-11.91/build-aux/gitlog-to-changelog000077500000000000000000000363361313533625700205130ustar00rootroot00000000000000eval '(exit $?0)' && eval 'exec perl -wS "$0" ${1+"$@"}' & eval 'exec perl -wS "$0" $argv:q' if 0; # Convert git log output to ChangeLog format. my $VERSION = '2015-06-11 01:03'; # UTC # The definition above must lie within the first 8 lines in order # for the Emacs time-stamp write hook (at end) to update it. # If you change this file with Emacs, please let the write hook # do its job. Otherwise, update this string manually. # Copyright (C) 2008-2015 Free Software Foundation, Inc. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # Written by Jim Meyering use strict; use warnings; use Getopt::Long; use POSIX qw(strftime); (my $ME = $0) =~ s|.*/||; # use File::Coda; # http://meyering.net/code/Coda/ END { defined fileno STDOUT or return; close STDOUT and return; warn "$ME: failed to close standard output: $!\n"; $? ||= 1; } sub usage ($) { my ($exit_code) = @_; my $STREAM = ($exit_code == 0 ? *STDOUT : *STDERR); if ($exit_code != 0) { print $STREAM "Try '$ME --help' for more information.\n"; } else { print $STREAM < ChangeLog $ME -- -n 5 foo > last-5-commits-to-branch-foo SPECIAL SYNTAX: The following types of strings are interpreted specially when they appear at the beginning of a log message line. They are not copied to the output. Copyright-paperwork-exempt: Yes Append the "(tiny change)" notation to the usual "date name email" ChangeLog header to mark a change that does not require a copyright assignment. Co-authored-by: Joe User List the specified name and email address on a second ChangeLog header, denoting a co-author. Signed-off-by: Joe User These lines are simply elided. In a FILE specified via --amend, comment lines (starting with "#") are ignored. FILE must consist of pairs where SHA is a 40-byte SHA1 (alone on a line) referring to a commit in the current project, and CODE refers to one or more consecutive lines of Perl code. Pairs must be separated by one or more blank line. Here is sample input for use with --amend=FILE, from coreutils: 3a169f4c5d9159283548178668d2fae6fced3030 # fix typo in title: s/all tile types/all file types/ 1379ed974f1fa39b12e2ffab18b3f7a607082202 # Due to a bug in vc-dwim, I mis-attributed a patch by Paul to myself. # Change the author to be Paul. Note the escaped "@": s,Jim .*>,Paul Eggert , EOF } exit $exit_code; } # If the string $S is a well-behaved file name, simply return it. # If it contains white space, quotes, etc., quote it, and return the new string. sub shell_quote($) { my ($s) = @_; if ($s =~ m![^\w+/.,-]!) { # Convert each single quote to '\'' $s =~ s/\'/\'\\\'\'/g; # Then single quote the string. $s = "'$s'"; } return $s; } sub quoted_cmd(@) { return join (' ', map {shell_quote $_} @_); } # Parse file F. # Comment lines (starting with "#") are ignored. # F must consist of pairs where SHA is a 40-byte SHA1 # (alone on a line) referring to a commit in the current project, and # CODE refers to one or more consecutive lines of Perl code. # Pairs must be separated by one or more blank line. sub parse_amend_file($) { my ($f) = @_; open F, '<', $f or die "$ME: $f: failed to open for reading: $!\n"; my $fail; my $h = {}; my $in_code = 0; my $sha; while (defined (my $line = )) { $line =~ /^\#/ and next; chomp $line; $line eq '' and $in_code = 0, next; if (!$in_code) { $line =~ /^([0-9a-fA-F]{40})$/ or (warn "$ME: $f:$.: invalid line; expected an SHA1\n"), $fail = 1, next; $sha = lc $1; $in_code = 1; exists $h->{$sha} and (warn "$ME: $f:$.: duplicate SHA1\n"), $fail = 1, next; } else { $h->{$sha} ||= ''; $h->{$sha} .= "$line\n"; } } close F; $fail and exit 1; return $h; } # git_dir_option $SRCDIR # # From $SRCDIR, the --git-dir option to pass to git (none if $SRCDIR # is undef). Return as a list (0 or 1 element). sub git_dir_option($) { my ($srcdir) = @_; my @res = (); if (defined $srcdir) { my $qdir = shell_quote $srcdir; my $cmd = "cd $qdir && git rev-parse --show-toplevel"; my $qcmd = shell_quote $cmd; my $git_dir = qx($cmd); defined $git_dir or die "$ME: cannot run $qcmd: $!\n"; $? == 0 or die "$ME: $qcmd had unexpected exit code or signal ($?)\n"; chomp $git_dir; push @res, "--git-dir=$git_dir/.git"; } @res; } { my $since_date; my $until_date; my $format_string = '%s%n%b%n'; my $amend_file; my $append_dot = 0; my $cluster = 1; my $ignore_matching; my $ignore_line; my $strip_tab = 0; my $strip_cherry_pick = 0; my $srcdir; GetOptions ( help => sub { usage 0 }, version => sub { print "$ME version $VERSION\n"; exit }, 'since=s' => \$since_date, 'until=s' => \$until_date, 'format=s' => \$format_string, 'amend=s' => \$amend_file, 'append-dot' => \$append_dot, 'cluster!' => \$cluster, 'ignore-matching=s' => \$ignore_matching, 'ignore-line=s' => \$ignore_line, 'strip-tab' => \$strip_tab, 'strip-cherry-pick' => \$strip_cherry_pick, 'srcdir=s' => \$srcdir, ) or usage 1; defined $since_date and unshift @ARGV, "--since=$since_date"; defined $until_date and unshift @ARGV, "--until=$until_date"; # This is a hash that maps an SHA1 to perl code (i.e., s/old/new/) # that makes a correction in the log or attribution of that commit. my $amend_code = defined $amend_file ? parse_amend_file $amend_file : {}; my @cmd = ('git', git_dir_option $srcdir, qw(log --log-size), '--pretty=format:%H:%ct %an <%ae>%n%n'.$format_string, @ARGV); open PIPE, '-|', @cmd or die ("$ME: failed to run '". quoted_cmd (@cmd) ."': $!\n" . "(Is your Git too old? Version 1.5.1 or later is required.)\n"); my $prev_multi_paragraph; my $prev_date_line = ''; my @prev_coauthors = (); my @skipshas = (); while (1) { defined (my $in = ) or last; $in =~ /^log size (\d+)$/ or die "$ME:$.: Invalid line (expected log size):\n$in"; my $log_nbytes = $1; my $log; my $n_read = read PIPE, $log, $log_nbytes; $n_read == $log_nbytes or die "$ME:$.: unexpected EOF\n"; # Extract leading hash. my ($sha, $rest) = split ':', $log, 2; defined $sha or die "$ME:$.: malformed log entry\n"; $sha =~ /^[0-9a-fA-F]{40}$/ or die "$ME:$.: invalid SHA1: $sha\n"; my $skipflag = 0; if (@skipshas) { foreach(@skipshas) { if ($sha =~ /^$_/) { $skipflag = 1; ## Perhaps only warn if a pattern matches more than once? warn "$ME: warning: skipping $sha due to $_\n"; last; } } } # If this commit's log requires any transformation, do it now. my $code = $amend_code->{$sha}; if (defined $code) { eval 'use Safe'; my $s = new Safe; # Put the unpreprocessed entry into "$_". $_ = $rest; # Let $code operate on it, safely. my $r = $s->reval("$code") or die "$ME:$.:$sha: failed to eval \"$code\":\n$@\n"; # Note that we've used this entry. delete $amend_code->{$sha}; # Update $rest upon success. $rest = $_; } # Remove lines inserted by "git cherry-pick". if ($strip_cherry_pick) { $rest =~ s/^\s*Conflicts:\n.*//sm; $rest =~ s/^\s*\(cherry picked from commit [\da-f]+\)\n//m; } my @line = split /[ \t]*\n/, $rest; my $author_line = shift @line; defined $author_line or die "$ME:$.: unexpected EOF\n"; $author_line =~ /^(\d+) (.*>)$/ or die "$ME:$.: Invalid line " . "(expected date/author/email):\n$author_line\n"; # Format 'Copyright-paperwork-exempt: Yes' as a standard ChangeLog # `(tiny change)' annotation. my $tiny = (grep (/^(?:Copyright-paperwork-exempt|Tiny-change):\s+[Yy]es$/, @line) ? ' (tiny change)' : ''); my $date_line = sprintf "%s %s$tiny\n", strftime ("%Y-%m-%d", localtime ($1)), $2; my @coauthors = grep /^Co-authored-by:.*$/, @line; # Omit meta-data lines we've already interpreted. @line = grep !/^(?:Signed-off-by:[ ].*>$ |Co-authored-by:[ ] |Copyright-paperwork-exempt:[ ] |Tiny-change:[ ] )/x, @line; # Remove leading and trailing blank lines. if (@line) { while ($line[0] =~ /^\s*$/) { shift @line; } while ($line[$#line] =~ /^\s*$/) { pop @line; } } # Handle Emacs gitmerge.el "skipped" commits. # Yes, this should be controlled by an option. So sue me. if ( grep /^(; )?Merge from /, @line ) { my $found = 0; foreach (@line) { if (grep /^The following commit.*skipped:$/, $_) { $found = 1; ## Reset at each merge to reduce chance of false matches. @skipshas = (); next; } if ($found && $_ =~ /^([0-9a-fA-F]{7,}) [^ ]/) { push ( @skipshas, $1 ); } } } # Ignore commits that match the --ignore-matching pattern, if specified. if (! ($skipflag || (defined $ignore_matching && @line && $line[0] =~ /$ignore_matching/))) { if (defined $ignore_line && @line) { @line = grep ! /$ignore_line/, @line; while ($line[$#line] =~ /^\s*$/) { pop @line; } } # Record whether there are two or more paragraphs. my $multi_paragraph = grep /^\s*$/, @line; # Format 'Co-authored-by: A U Thor ' lines in # standard multi-author ChangeLog format. for (@coauthors) { s/^Co-authored-by:\s*/\t /; s/\s*/ or warn "$ME: warning: missing email address for " . substr ($_, 5) . "\n"; } # If clustering of commit messages has been disabled, if this header # would be different from the previous date/name/etc. header, # or if this or the previous entry consists of two or more paragraphs, # then print the header. if ( ! $cluster || $date_line ne $prev_date_line || "@coauthors" ne "@prev_coauthors" || $multi_paragraph || $prev_multi_paragraph) { $prev_date_line eq '' or print "\n"; print $date_line; @coauthors and print join ("\n", @coauthors), "\n"; } $prev_date_line = $date_line; @prev_coauthors = @coauthors; $prev_multi_paragraph = $multi_paragraph; # If there were any lines if (@line == 0) { warn "$ME: warning: empty commit message:\n $date_line\n"; } else { if ($append_dot) { # If the first line of the message has enough room, then if (length $line[0] < 72) { # append a dot if there is no other punctuation or blank # at the end. $line[0] =~ /[[:punct:]\s]$/ or $line[0] .= '.'; } } # Remove one additional leading TAB from each line. $strip_tab and map { s/^\t// } @line; # Prefix each non-empty line with a TAB. @line = map { length $_ ? "\t$_" : '' } @line; print "\n", join ("\n", @line), "\n"; } } defined ($in = ) or last; $in ne "\n" and die "$ME:$.: unexpected line:\n$in"; } close PIPE or die "$ME: error closing pipe from " . quoted_cmd (@cmd) . "\n"; # FIXME-someday: include $PROCESS_STATUS in the diagnostic # Complain about any unused entry in the --amend=F specified file. my $fail = 0; foreach my $sha (keys %$amend_code) { warn "$ME:$amend_file: unused entry: $sha\n"; $fail = 1; } exit $fail; } # Local Variables: # mode: perl # indent-tabs-mode: nil # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "my $VERSION = '" # time-stamp-format: "%:y-%02m-%02d %02H:%02M" # time-stamp-time-zone: "UTC" # time-stamp-end: "'; # UTC" # End: auctex-11.91/circ.tex000066400000000000000000000311361313533625700144740ustar00rootroot00000000000000\documentclass[a4paper,twocolumn]{article} \usepackage[german]{babel} \usepackage[T1]{fontenc} \usepackage[latin1]{inputenc} \usepackage[showlabels,sections,floats,textmath,displaymath]{preview} \newbox\chaos \newdimen\tdim \def\fframe{% \tdim=\columnwidth \advance\tdim by -2\fboxsep \advance\tdim by -2\fboxrule \setbox\chaos=\hbox\bgroup\begin{minipage}{\tdim}} \def\endfframe{\end{minipage}\egroup\fbox{\box\chaos}} \unitlength 1mm \newcount\fives \fives 14 \newcount\ones \ones\fives \multiply \ones by 5 \newsavebox{\raster} \savebox{\raster}(\ones,\ones) {\thicklines \put(0,0){\line(0,1){\ones}} \put(0,0){\line(1,0){\ones}} \multiput(0,0)(5,0){\fives} {\begin{picture}(0,0) \put(5,0){\line(0,1){\ones}} \thinlines\multiput(1,0)(1,0){4}{\line(0,1){\ones}} \end{picture}} \multiput(0,0)(0,5){\fives} {\begin{picture}(0,0) \put(0,5){\line(1,0){\ones}} \thinlines\multiput(0,1)(0,1){4}{\line(1,0){\ones}} \end{picture}} } \begin{document} \title{Einfache Kurven auf Rastergrafiken} \author{David Kastrup} \maketitle \begin{abstract} Es sollen hier einfache Methoden vorgestellt werden, um auf einer Rastereinheit verschiedene Kurven darzustellen. Vorgestellt werden Zeichenalgorithmen fr Linien, Kreise und Hyperbeln. Die hier hergeleiteten Gleichungen sind auch unter dem Namen {\tt DDA}s bekannt. \end{abstract} \section{Einfhrung} Bei den hier vorgestellten Algorithmen werden zunchst nur Kurvenstcke betrachtet, die die folgenden Eigenschaften besitzen: \begin{enumerate} \item Sie lassen sich als Funktion $y = f(x)$ darstellen. \item $y$ ist im betrachteten Bereich monoton, das heit, entweder durchgehend steigend oder durchgehend fallend. \item Wenn $x$ sich um $1$ ndert, so ndert sich $y$ betragsmig hchstens um $1$ ($\left|\frac{\partial y}{\partial x}\right| \leq 1$). \end{enumerate} \section{Die gerade Linie} Wir betrachten hier zunchst nur die gerade Linie im ersten Oktanten, die durch den Punkt $0 \choose 0$ geht. Alle anderen Linien lassen sich durch Vertauschen von $x$ und~$y$ sowie Vorzeichenwechsel erzeugen. Im ersten Oktanten gilt $x \geq y \geq 0$. Zum Zeichnen einer Linie gengt es also, $x$ durchlaufen zu lassen und fr $y$ die dazugehrigen Werte zu berechnen und zu runden. Die Gleichung einer Geraden durch $\Delta x \choose \Delta y$ lautet: \begin{equation} \label{lgi} y = \frac{\Delta y}{\Delta x}x \end{equation} % Nun stellen wir $y$ als Summe eines ganzzahligen Wertes $e$ und eines gebrochenen Wertes $f$ dar, fr den gilt: $-0.5 \leq f < 0.5$. Somit stellt dann $e$ den gewnschten, auf die nchste ganze Zahl gerundeten $y$-Wert dar. Jetzt formen wir (\ref{lgi}) um: \begin{eqnarray} e + f &=& x \frac{\Delta y}{\Delta x}\nonumber\\ e \Delta x + f \Delta x &=& x \Delta y\nonumber\\ f \Delta x - \left\lceil\frac{\Delta x}2\right\rceil &=& x \Delta y - e \Delta x - \left\lceil\frac{\Delta x}2\right\rceil \label{lgii} \end{eqnarray} % Den linken Ausdruck in (\ref{lgii}) bezeichnen wir jetzt mit $d$. Fr positive gerade Werte von $\Delta x$ ist offensichtlich $d < 0$ eine zu~$f < 0.5$ equivalente Bedingung. Fr ungerade Werte von~$\Delta x$ ist $f < 0.5$ equivalent zu $d + 0.5 < 0$. Da $d$ stets eine ganze Zahl ist, ist dies wieder zu $d < 0$ equivalent. % INTENTIONAL ERRORS! INTENTIONAL ERRORS! INTENTIONAL ERRORS! % % The following line should flag a PostScript error when previewing, % but processing of other previews should continue. % Wird nun $\ifPreview\special{ps: junk}\fi f \geq 0.5$, wie sich durch den Vergleich $d \stackrel{?}{<} 0$ feststellen lt, so mu man korrigieren, indem man $f$ um~1 erniedrigt und $e$ um~$1$ erhht. % % The following line will make Ghostscript abort unexpectedly when % previewing, but processing of other previews should continue. % $\ifPreview\special{ps: quit}\fi d$ mu dann auch entsprechend angepat werden. Mit den angegebenen Formeln ergibt sich jetzt bei Bercksichtigung der Einflsse von $x$ und $e$ auf $d$ der in Tabelle~\ref{linalg} angegebene Algorithmus. Eine optimierte C-function, die die Oktantenaufteilung bercksichtigt, ist in Tabelle~\ref{linc} zu finden. Einige hiermit gezeichnete Linien sind in Abbildung~\ref{linpict} zu sehen. \begin{table} \caption{Linienzugalgorithmus} \label{linalg} \begin{fframe} \begin{enumerate} \item Setze $x \gets 0$, $y \gets 0$, $d \gets -\left\lceil\frac{\Delta x}2\right\rceil$ \item Wiederhole bis $x = \Delta x$ \begin{enumerate} \item Zeichne Punkt an $x \choose y$ \item Setze $x \gets x + 1$, $d \gets d + \Delta y$ \item Falls $d \geq 0$ \begin{enumerate} \item Setze $d \gets d - \Delta x$ \item Setze $y \gets y + 1$ \end{enumerate} \end{enumerate} \end{enumerate} \end{fframe} \end{table} \begin{table} \caption{Linienziehen in C} \label{linc} \begin{fframe} \small \begin{verbatim} extern int x,y; /* (x,y) ist Koordinate des nicht * gezeichneten Startpunktes, zeigt * nachher auf gezeichneten Endpunkt */ #define doline(dx,dy,advx,advy) { \ d = -(((i = dx) + 1) >> 1); \ while (i--) { \ advx; \ if ((d += dy) >= 0) { \ d -= dx; advy; \ } \ dot(x,y); \ } \ return; \ } /* Grundalgorithmus 1. Oktant */ /* dx ist Distanz in unabh. Richtung, * * dy in abh. Richtung, advx geht * * in unabh. Richtung, advy in abh. */ #define docond(cond,advx,advy) { \ if (cond) doline(dx,dy,advx,advy) \ doline(dy,dx,advy,advx) \ } /* Grundalgorithmus 1./2. Oktant */ /* cond ist true falls |dx| > |dy| */ void linedraw(int dx, int dy) /* Von (x,y) nach (x+dx, y+dx). */ { int i; if (dx >= 0) { if (dy >= 0) docond(dx > dy, ++x, ++y) docond(dx > (dy = -dy), ++x, --y) } if (dy >= 0) docond((dx = -dx) > dy,--x,++y) docond((dx = -dx) > (dy = -dy), --x, --y ) } \end{verbatim} \end{fframe} \end{table} \begin{figure} \begin{picture}(\ones,\ones) \put(0,0){\usebox{\raster}} \newcount\x \newcount\y \newcount\d \newcount\dx \newcount\dy \x 0 \y 0 \dx \ones \dy \ones \loop %{ \d -\dx \divide \d by 2 %} \ifnum \dy > 0 %{ {\loop %{ \put(\x,\y){\circle*{1}}%} \ifnum \x < \ones %{ \advance \x by 1 \advance \d by \dy %} \ifnum \d > -1 %{ \advance \y by 1 \advance \d by -\dx %} \fi %}} \repeat} \advance \x by 5 \advance \dx by -5 \advance \dy by -15 %} \repeat \end{picture} \caption{Einige Linien}\label{linpict} \end{figure} \section{Der Kreis} Wir betrachten hier nur den Achtelkreis im zweiten Oktanten ($y \geq x \geq 0$). Hier gelten die oben angegebenen Beziehungen. Alle anderen Achtelkreise lassen sich durch elementare Spiegelungen erzeugen. Die Gleichung eines Kreises ist hier \begin{equation} y = \sqrt{r^2 - x^2} \end{equation} Der Wert $y$ lt sich darstellen als Summe einer ganzen Zahl $e$ und einem Wert $f$ mit $-0.5 \leq f < 0.5$. Der Wertebereich von $f$ ist so gewhlt worden, damit $e$ einen auf ganze Zahlen gerundeten Wert fr $y$ darstellt. Nun gilt: \begin{eqnarray} e + f&=&\sqrt{r^2 - x^2}\nonumber\\ \label{ggg}e^2 + 2ef + f^2&=&r^2 - x^2 \end{eqnarray} % Die Gleichung (\ref{ggg}) hat fr $x+1$ folgende Form: \begin{eqnarray} \label{hhh}e'^2 + 2e'f' + f'^2&=&r^2 - x^2 - 2x -1 \end{eqnarray} % Zieht man die Gleichung (\ref{ggg}) von (\ref{hhh}) ab, so ergibt sich nach Umsortieren: \begin{eqnarray*} e' = e:\\ 2e'f' + f'^2&=&2ef+f^2-2x-1\\ e' = e-1:\\ 2e'f' + f'^2&=&2ef+f^2+2e-2x-2 \end{eqnarray*} % Jetzt wird $2ef + f^2$ mit $m$ getauft. Also: \begin{eqnarray*} e' = e:\\ m'&=&m -2x-1\\ e' = e-1:\\ m'&=&m +2e-1 -2x-1 \end{eqnarray*} Wie gro ist jetzt $m$? Fr $x=0$ ist es sicher $0$. Solange $e$ konstant bleibt, schrumpft $f$ stetig. Fllt $f$ unter $-0.5$, so fllt $m$ (unter Vernachlssigung von $f^2$) unter $-e$. Dies wird jetzt als Kriterium fr einen Unterlauf von $f$ verwendet. Tritt dieser auf, so mu $f$ um $1$ erhht und $e$ um $1$ erniedrigt werden. Um die Abfragebedingung zu vereinfachen, setzt man jetzt $q$ = $m+e$. Der resultierende Algorithmus ist in Tabelle \ref{alg}, ein optimiertes C-Programm ist in Tabelle \ref{prog} zu finden. \begin{table} \caption{Kreiszeichenalgorithmus}\label{alg} \begin{fframe} \begin{enumerate} \item Setze $x\gets 0$, $y\gets r$, $q\gets r$ \item Wiederhole bis $x>y$: \begin{enumerate} \item Setze einen Punkt an $x \choose y$. \item Setze $q\gets q-2x-1$ \item Falls $q<0$ \begin{enumerate} \item Setze $q\gets q + 2y-2$ \item Setze $y\gets y-1$ \end{enumerate} \item Setze $x\gets x+1$ \end{enumerate} \end{enumerate} \end{fframe} \end{table} \begin{table} \caption{Kreiszeichenprogramm}\label{prog} \begin{fframe} \small \begin{verbatim} void fourfold(int x0, int y0, int x, int y) /* Zeichne in Oktant 1,3,5,7 */ /* Wird benutzt, um Anfangs- und End- * * Punkte nicht zweimal zu zeichnen */ { dot(x0+x,y0+y); dot(x0-y,y0+x); dot(x0-x,y0-y); dot(x0+y,y0-x); } void eightfold(int x0, int y0, int x, int y) /* Zeichne in allen Quadranten */ { fourfold(x0,y0,x,y); /* 1357 */ fourfold(x0,y0,x,-y); /* 8642 */ } void circle(int x0, int y0, int r) { fourfold(x0,y0,0,r); /* Die ersten vier Punkte */ for (x=0, y=q=r;; ) { if ((q -= 2* x++ + 1) < 0) q += 2* --y; if (x >= y) break; eightfold(x0,y0,x,y); } if (x==y) fourfold(x0,y0,x,y); /* Eventuell die letzten vier */ } \end{verbatim} \end{fframe} \end{table} \begin{figure} \begin{picture}(\ones,\ones) \put(0,0){\usebox{\raster}} \newcount\x \newcount\y \newcount\q \loop {\x 0 \y \ones \q \ones \loop \put(\x,\y){\circle*{1}} \put(\y,\x){\circle*{1}} \advance \q by -\x \advance \x by 1 \advance \q by -\x \ifnum \x < \y \ifnum \q < 0 \advance \y by -1 \advance \q by \y \advance \q by \y \fi \repeat} \advance \ones by -10 \ifnum \ones > 0 \repeat \end{picture} \caption{Viertelkreise}\label{zeich} \end{figure} \section{Einfache Hyperbeln} Als letztes Beispiel betrachten wir hier Hyperbeln, die der Formel $y = r^2\!/x$ gengen, und zwar im Bereich~$x \geq r$. Mit dem Ansatz $y = e + f$ ergibt sich: \begin{eqnarray} e+f &=& r^2\!/x\nonumber\\ ex + fx &=& r^2\nonumber\\ fx &=& r^2 - ex\label{phyp} \end{eqnarray} \pagebreak[2] Fr $x' = x+1$ hat nun (\ref{phyp}) die Form \begin{eqnarray*} e' = e:\\ f'x' &=& r^2 - ex - e\\ e' = e - 1:\\ f'x' &=& r^2 - ex - e + x + 1 \end{eqnarray*} Setzt man jetzt $d = (2f + 1)x$, so ist $f < -0.5$ mit~$d < 0$ equivalent. Erreicht man diesen Fall unter Verwendung der Annahme $e' = e$, dann mu in bekannter Weise $f$ um~$1$ erhht und $e$ um~$1$ vermindert werden. \pagebreak Fr $d'$ ergeben sich dann die folgenden Werte: \begin{eqnarray*} e' = e:\\ d' &=& d - 2e + 1\\ e' = e - 1:\\ d' &=& d - 2e + 2x + 2 + 1 \end{eqnarray*} Daraus ergibt sich der in Tabelle~\ref{halg} angegebene Hyperbelalgorithmus fr den ersten Oktanten. \begin{table} \caption{Hyperbelalgorithmus}\label{halg} \begin{fframe} \begin{enumerate} \item Setze $d \gets r$, $x \gets r$, $y \gets r$ \item Wiederhole bis zufrieden \begin{enumerate} \item Setze Punkt an $x \choose y$ \item Setze $x \gets x + 1$ \item Setze $d \gets d - 2y + 1$ \item Falls $d < 0$ \begin{enumerate} \item Setze $d \gets d + 2x$ \item Setze $y \gets y - 1$ \end{enumerate} \end{enumerate} \end{enumerate} \end{fframe} \end{table} \begin{table} \caption{Hyperbeln in C} \begin{fframe} \small \begin{verbatim} void four(int x0, int y0, int x, int y) /* Hyperbeln sind nur in 4 Oktanten */ { dot(x0+x,y0+y); dot(x0+y,y0+x); dot(x0-x,y0-y); dot(x0-y,y0-x); } void hyperb(int x0, int y0, int r, int dx) { int d, x, y; for (x = y = d = r; dx--;) { four(x0,y0,x,y); ++x; if ((d -= 2*y + 1) < 0) { d += 2*x; --y; } } } \end{verbatim} \end{fframe} \end{table} \begin{figure} \begin{picture}(\ones,\ones) \put(0,0){\usebox{\raster}} \newcount\x \newcount\y \newcount\q \newcount\r \r\ones \loop \advance \r by -10 \ifnum \r > 0 {\x \r \y \r \q \r \loop \put(\x,\y){\circle*{1}} \put(\y,\x){\circle*{1}} \ifnum \x < \ones \advance \x by 1 \advance \q by -\y \advance \q by -\y \advance \q by 1 \ifnum \q < 0 \advance \q by \x \advance \q by \x \advance \y by -1 \fi \repeat} \repeat \end{picture} \caption{Hyperbeln}\label{hzeich} \end{figure} \end{document} auctex-11.91/configure.ac000066400000000000000000000233531313533625700153220ustar00rootroot00000000000000dnl Autoconf script for AUCTeX dnl Maintainer: auctex-devel@gnu.org dnl Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. dnl This file is part of AUCTeX. dnl AUCTeX is free software; you can redistribute it and/or modify it dnl under the terms of the GNU General Public License as published by dnl the Free Software Foundation; either version 3, or (at your option) dnl any later version. dnl AUCTeX is distributed in the hope that it will be useful, but dnl WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU dnl General Public License for more details. dnl You should have received a copy of the GNU General Public License dnl along with AUCTeX; see the file COPYING. If not, write to the Free dnl Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, dnl MA 02110-1301, USA. AC_INIT(auctex,11.91,bug-auctex@gnu.org) AC_CHECK_PROGS_REQUIRED(MAKECMD, make, [make not found, aborting!]) AC_PROG_MAKE_SET AC_PROG_INSTALL AC_DATE_VERSION_FROM_CHANGELOG(AUCTEXDATE,AUCTEXVERSION,ChangeLog.1) AC_SUBST(AUCTEXDATE) AC_SUBST(AUCTEXVERSION) AC_DATE_VERSION_FROM_CHANGELOG(PREVIEWDATE,PREVIEWVERSION,ChangeLog-preview) AC_SUBST(PREVIEWDATE) AC_SUBST(PREVIEWVERSION) EMACS_PROG_EMACS if test ${EMACS_FLAVOR} = xemacs then EMACS_CHECK_VERSION(21,4) else EMACS_CHECK_VERSION(21,1) fi EMACS_CHECK_MULE # The Debian package uses `--disable-build-dir-test'; normal users should # never need to modify the default behavior. AC_ARG_ENABLE([build-dir-test], [ --enable-build-dir-test test for build directory inside `load-path' (on by default)], [if ! [[ "X-${enableval}" = "X-no" ]] then VALID_BUILD_DIR fi], [VALID_BUILD_DIR]) AC_ARG_ENABLE(preview, [ --disable-preview disable inclusion of preview-latex], [preview_enabled="$enableval"], [preview_enabled="yes"]) AC_SUBST(preview_enabled) if test ${EMACS_FLAVOR} = "xemacs" ; then EMACS_PATH_PACKAGEDIR PLAT_LISP=prv-xemacs.el else packagedir=no PLAT_LISP=prv-emacs.el fi if test "X${packagedir}" = Xno then EMACS_PATH_LISPDIR AC_MSG_CHECKING(what file to use for auctex startup) AC_ARG_WITH(auctexstartfile, [[ --with-auctexstartfile=FILE What file to use for auctex startup.]], [[ auctexstartfile="${withval}" ]], [ _tmpdir_="${lispdir}" AC_FULL_EXPAND(_tmpdir_) if test -d "${_tmpdir_}/site-start.d" then auctexstartfile="${lispdir}/site-start.d/auctex.el" else auctexstartfile="${lispdir}/auctex.el" fi]) AC_MSG_RESULT([[${auctexstartfile}]]) AC_MSG_CHECKING(what file to use for preview startup) AC_ARG_WITH(previewstartfile, [[ --with-previewstartfile=FILE What file to use for preview startup.]], [[ previewstartfile="${withval}" ]], [ _tmpdir_="${lispdir}" AC_FULL_EXPAND(_tmpdir_) if test -d "${_tmpdir_}/site-start.d" then previewstartfile="${lispdir}/site-start.d/preview-latex.el" else previewstartfile="${lispdir}/preview-latex.el" fi]) AC_MSG_RESULT([[${previewstartfile}]]) packagelispdir="${lispdir}/auctex" packagedatadir="${packagelispdir}" texsitedir="${lispdir}" else #lispdir is only used for determining relative files. lispdir="${packagedir}" packagelispdir="${packagedir}/lisp/auctex" texsitedir="$packagelispdir" auctexstartfile="${packagelispdir}"/auto-autoloads.el previewstartfile="${packagelispdir}"/auto-autoloads.el packagedatadir="${packagedir}/etc/auctex" infodir="${packagedir}/info" INSTALL_INFO=: fi AC_SUBST(auctexstartfile) AC_SUBST(previewstartfile) AC_SUBST(PLAT_LISP) AC_MSG_CHECKING([where the package lisp files go]) AC_ARG_WITH(packagelispdir, [[ --with-packagelispdir=DIR Directory for the package lisp files.]], [packagelispdir=["${withval}"]]) AC_LISPIFY_DIR(packagelispdir,[["${texsitedir}/tex-site.el"]]) AC_MSG_RESULT([[${packagelispdir}]]) AC_MSG_CHECKING([where the data files go]) AC_ARG_WITH(packagedatadir, [[ --with-packagedatadir=DIR Where the data files go.]], [packagedatadir=["${withval}"]]) AC_LISPIFY_DIR(packagedatadir,[["${texsitedir}/tex-site.el"]]) AC_MSG_RESULT([[${packagedatadir}]]) AC_LISPIFY_DIR(texsite,[["${auctexstartfile}"]],tex-site.el) AC_MSG_CHECKING(where the info files go) AC_MSG_RESULT([[${infodir}]]) AC_SUBST(packagedir) if test $EMACS_FLAVOR = "xemacs" -a "$infodir" = '${prefix}/info'; then if test $packagedir != 'no'; then infodir='${packagedir}/info' fi fi AUCTEX_AUTO_DIR AC_LISPIFY_DIR(autodir,"${texsitedir}/tex-site.el") AC_PATH_PROG(TEX, tex, :) AC_PATH_PROG(PDFTEX, pdftex, :) AC_PATH_PROG(DVIPS, dvips, :) dnl Preview related options. if test "X${preview_enabled}" = Xyes then AC_ARG_VAR(GS,[Ghostscript executable for batch operation]) AC_CHECK_PROGS(GS, gs GSWIN32C.EXE, NONE) EMACS_LISP([[lispGS]],[[(if (member dir (list \"NONE\" (if (eq system-type 'windows-nt) \"GSWIN32C.EXE\" \"gs\"))) \"\" \`(defvar preview-gs-command ,dir))]],-no-site-file,[[dir]],[["${GS}"]]) AC_SUBST(lispGS) dnl check to see if GS supports -dTextAlphaBits and -dGraphicsAlphaBits dnl Check to see if specific drivers are built in. dnl Need table of mappings, with priority AC_PATH_PROG_REQUIRED(LATEX, latex, [LaTeX not found, aborting! You must install LaTeX for preview to work.]) AC_PATH_PROG(PDFLATEX, pdflatex) # Determine which latex-style components to install # To match .sty, .def, .cfg, but _not_ .drv TEXMFGEN=[`sed -n 's/^%.*file[{]\\([^}.]*\\.[sdc][tef][yfg]\\)[}].*/\\1/p' latex/preview.dtx`] # Replace newlines with spaces. TEXMFGEN="`echo ${TEXMFGEN}`" AC_SUBST(TEXMFGEN) AC_PATH_PROG_REQUIRED(TEX, tex, NONE) TEX_PATH_TEXMFDIR if test "x${texmfdir}" = "xno" then packagetexstyles="${packagedatadir}/latex" AC_LISPIFY_DIR(packagetexstyles,"${previewstartfile}") lisppackagetexstyles="(defvar preview-TeX-style-dir ${lisppackagetexstyles})" test "X${TEXHASH}" = X && TEXHASH=: else lisppackagetexstyles= fi AC_SUBST(lisppackagetexstyles) # Be very careful about assuming things about the available hash programs # MiKTeX comes with a braindead link to mktexlsr, apparently, so first # try the regular utility from them. AC_ARG_VAR(TEXHASH,[command to update the TeX filename database. Set to : to skip updating the database on installation. This is the default for --without-texmf-dir]) if test "X${TEXHASH}" = "X" then AC_PATH_PROG(TEXHASH, texhash) AC_CHECK_PROG(TEXHASH, initexmf, initexmf -u) if test "X${TEXHASH}" = X then AC_PATH_PROGS(TEXHASH, mktexlsr MakeTeXls-R, :) fi fi AC_MSG_CHECKING([[for glaring installation conflicts]]) exppackagelispdir="$packagelispdir" AC_FULL_EXPAND(exppackagelispdir) exppreviewstartfile="$previewstartfile" AC_FULL_EXPAND(exppreviewstartfile) EMACS_LISP(shadows,[[ (concat (and (setq tmp (locate-library \"preview.elc\")) (not (string= (file-truename tmp) (file-truename (expand-file-name \"preview.elc\" packagelispdir)))) (format \"Conflicting previous installation in \`%s' found!\n\" (file-name-directory tmp))) (and (setq tmp (locate-library \"preview-latex.el\")) (not (string= (file-truename tmp) (file-truename previewstartfile))) (format \"Conflicting previous startup file \`%s' found!\n\" tmp)))]],, [[packagelispdir previewstartfile]],[["${exppackagelispdir}" "${exppreviewstartfile}"]]) if test "NONE${shadows}" != NONE then conflictsmsg="Conflicts with previous installations have been detected. Please fix them before continuing. " AC_MSG_RESULT([[ouch! ]]) AC_MSG_WARN([[${shadows} ]]) else conflictsmsg= AC_MSG_RESULT([[probably none]]) fi AC_SHELL_QUOTIFY(texmfdir) AC_SHELL_QUOTIFY(exec_prefix) AC_SHELL_QUOTIFY(libdir) AC_SHELL_QUOTIFY(previewtexmfdir) AC_SHELL_QUOTIFY(previewdocdir) AC_SHELL_QUOTIFY(previewstartfile) AC_SHELL_QUOTIFY(auctexdir) AC_SHELL_QUOTIFY(datadir) AC_SHELL_QUOTIFY(GS) AC_SHELL_QUOTIFY(TEXHASH) AC_SHELL_QUOTIFY(LATEX) AC_SHELL_QUOTIFY(PDFLATEX) fi AC_ARG_VAR(PERL,[Perl executable. If set to :, some documentation cannot be regenerated, but installation of an unmodified tarball will succeed.]) if test "x$PERL" = x then AC_PATH_PROG(PERL, perl, :) fi AC_ARG_VAR(MAKEINFO,[Makeinfo executable. If set to :, some documentation cannot be regenerated, but installation of an unmodified tarball will succeed.]) AC_PATH_PROG(MAKEINFO, makeinfo, :) AC_PATH_PROG(TEXI2HTML, texi2html, :) AC_PATH_PROG(TEXI2DVI, texi2dvi, :) AC_PATH_PROG(TEXI2PDF, texi2pdf, :) AC_ARG_VAR(INSTALL_INFO, [install-info executable. Set to : to skip making a dir file. This is the default when installing into an XEmacs package.]) if test "X${INSTALL_INFO}" = X then AC_PATH_PROG(INSTALL_INFO, install-info, :, ${PATH} /usr/sbin /sbin) fi AC_SHELL_QUOTIFY(prefix) AC_SHELL_QUOTIFY(localstatedir) AC_SHELL_QUOTIFY(packagedir) AC_SHELL_QUOTIFY(packagelispdir) AC_SHELL_QUOTIFY(packagedatadir) AC_SHELL_QUOTIFY(lispdir) AC_SHELL_QUOTIFY(infodir) AC_SHELL_QUOTIFY(datadir) AC_SHELL_QUOTIFY(autodir) AC_SHELL_QUOTIFY(auctexstartfile) AC_SHELL_QUOTIFY(EMACS) AC_SHELL_QUOTIFY(INSTALL_INFO) AC_SHELL_QUOTIFY(PERL) AC_SHELL_QUOTIFY(MAKEINFO) AC_SHELL_QUOTIFY(TEX) AC_SHELL_QUOTIFY(PDFTEX) AC_SHELL_QUOTIFY(DVIPS) AC_SHELL_QUOTIFY(TEXI2HTML) AC_SHELL_QUOTIFY(TEXI2DVI) AC_SHELL_QUOTIFY(TEXI2PDF) AC_OUTPUT(Makefile tex-site.el.out:tex-site.el.in doc/Makefile auctex.el preview.el latex/Makefile) cat >&2 < ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file is loaded by context.el when required. ;;; Code: ;; Build upon ConTeXt (require 'context) ;;; ConText macro names ;;; Code: (defvar ConTeXt-environment-list-en '("alignment" "appendices" "background" "backmatter" "bodymatter" "bodypart" "buffer" "code" "color" "columns" "combination" "encoding" "extroductions" "fact" "formula" "framedcode" "framedtext" "frontmatter" "helptext" "hiding" "itemize" "legend" "line" "linecorrection" "linenumbering" "lines" "localenvironment" "localfootnotes" "makeup" "mapping" "marginblock" "marginedge" "marginrule" "mode" "narrower" "notmode" "opposite" "packed" "pagecomment" "pagefigure" "positioning" "postponing" "quotation" "raster" "register" "standardmakeup" "table" "tabulate" "TEXpage" "text" "textbackground" "typing" "unpacked" ;; project structure "component" "environment" "product" "project" ;; flowcharts, if you have loaded this module "FLOWcell" "FLOWchart" ;; typesetting computer languages "EIFFEL" "JAVA" "JAVASCRIPT" "MP" "PASCAL" "PERL" "SQL" "TEX" "XML" ;; some metapost environments "MPpositiongraphic" "useMPgraphic" "MPcode" "reusableMPgraphic" "uniqueMPgraphic") "List of the ConTeXt en interface start/stop pairs.") (defvar ConTeXt-define-list-en '("accent" "background" "blank" "block" "blocks" "bodyfont" "bodyfontenvironment" "buffer" "casemap" "character" "color" "colorgroup" "combinedlist" "command" "description" "enumeration" "float" "font" "fontsynonym" "framedtext" "head" "indenting" "label" "logo" "overlay" "palet" "program" "startstop" "type" "typing") "List of the names of ConTeXt en interface macro's that define things.") (defvar ConTeXt-setup-list-en '("align" "arranging" "background" "backgrounds" "blackrules" "blank" "block" "bodyfont" "bodyfontenvironment" "bottom" "bottomtexts" "buffer" "capitals" "caption" "captions" "color" "colors" "columns" "combinations" "combinedlist" "descriptions" "enumerations" "externalfigures" "fillinlines" "fillinrules" "float" "floats" "footer" "footertexts" "footnodedefinition" "footnotes" "framed" "framedtexts" "head" "header" "headertexts" "headnumber" "heads" "headtext" "hyphenmark" "indentations" "indenting" "inmargin" "interlinespace" "itemize" "items" "labeltext" "language" "layout" "linenumbering" "lines" "list" "makeup" "marginblocks" "marginrules" "marking" "narrower" "oppositeplacing" "pagecomment" "pagenumber" "pagenumbering" "palet" "papersize" "paragraphs" "quote" "referencing" "register" "screens" "section" "sectionblock" "sorting" "spacing" "subpagenumber" "synonyms" "text" "textrules" "texttexts" "thinrules" "tolerance" "top" "toptexts" "type" "typing" "underbar" "whitespace") "List of the names of ConTeXt en interface macro's that setup things.") ;; referencing in ConTeXt (defvar ConTeXt-referencing-list-en '("in" "at" "about" "pagereference" "textreference" "reference") "List of ConTeXt en macro's that are used for referencing." ) ;; lists some place macro's as well, should perhaps be under separate menu (defvar ConTeXt-other-macro-list-en '("abbreviation" "adaptlayout" "at" "combinepages" "copypages" "externalfigure" "framed" "from" "input" "insertpages" "filterpages" "getbuffer" "goto" "hideblocks" "keepblocks" "leftaligned" "midaligned" "obeyspaces" "page" "placecontent" "placeexternalfigure" "placefigure" "placelogos" "placetable" "processblocks" "protect" "raggedcenter" "rightaligned" "rotate" "scale" "selectblocks" "showexternalfigures" "slicepages" "useexternalfigure" "unprotect" "url" "useblocks" "usemodule" "useURL" "version") "List of ConTeXt en interface macro's that are not an environment nor a setup.") (defun ConTeXt-define-command-en (what) "The ConTeXt en interface way of creating a define command." (concat "define" what)) (defun ConTeXt-setup-command-en (what) "The ConTeXt en interface way of creating a setup command." (concat "setup" what)) (defvar ConTeXt-project-structure-list-en '("project" "environment" "product" "component") "List of the names of ConTeXt project structure elements for its en interface. List should be in logical order.") (defvar ConTeXt-section-block-list-en '("frontmatter" "bodymatter" "appendices" "backmatter") "List of the names of ConTeXt section blocks for its en interface. List should be in logical order.") ;; TODO: ;; ConTeXt has alternative sections like title and subject. Currently ;; the level is used to find the section name, so the alternative ;; names are never found. Have to start using the section name instead ;; of the number. (defvar ConTeXt-numbered-section-list-en '(("part" 0) ("chapter" 1) ("section" 2) ("subsection" 3) ("subsubsection" 4)) "List of the names of ConTeXt numbered sections for its en interface.") (defvar ConTeXt-unnumbered-section-list-en '(("title" 1) ("subject" 2) ("subsubject" 3) ("subsubsubject" 4)) "List of the names of ConTeXt unnumbered sections for its en interface.") (defvar ConTeXt-section-list-en (append ConTeXt-numbered-section-list-en ConTeXt-unnumbered-section-list-en) ) (defvar ConTeXt-text-en "text" "The ConTeXt en interface body text group.") (defvar ConTeXt-item-list-en '("item" "its" "mar" "ran" "sub" "sym") "The ConTeXt macro's that are variants of item.") (defcustom ConTeXt-default-environment-en "itemize" "*The default environment when creating new ones with `ConTeXt-environment'." :group 'ConTeXt-en-environment :type 'string) (defvar ConTeXt-extra-paragraph-commands-en '("crlf" "par" "place[A-Za-z]+") "List of ConTeXt macros that should have their own line. That is, besides the section(-block) commands.") ;; Emacs en menu names and labels should go here ;; to be done ;;; Mode (defun ConTeXt-en-mode-initialization () "ConTeXt english interface specific initialization." (mapc 'ConTeXt-add-environments (reverse ConTeXt-environment-list-en)) (TeX-add-symbols '("but" ConTeXt-arg-define-ref (TeX-arg-literal " ")) '("item" ConTeXt-arg-define-ref (TeX-arg-literal " ")) '("items" [ConTeXt-arg-setup] (TeX-arg-string "Comma separated list")) '("its" ConTeXt-arg-define-ref (TeX-arg-literal " ")) '("nop" (TeX-arg-literal " ")) '("ran" TeX-arg-string (TeX-arg-literal " ")) '("sub" ConTeXt-arg-define-ref (TeX-arg-literal " ")) '("sym" (TeX-arg-string "Symbol") (TeX-arg-literal " ")))) ;;;###autoload (defun context-en-mode () "Major mode for editing files for ConTeXt using its english interface. Special commands: \\{ConTeXt-mode-map} Entering `context-mode' calls the value of `text-mode-hook', then the value of TeX-mode-hook, and then the value of context-mode-hook." (interactive) ;; set the ConTeXt interface (setq ConTeXt-current-interface "en") ;; initialization (ConTeXt-mode-common-initialization) (ConTeXt-en-mode-initialization) ;; set mode line (setq TeX-base-mode-name "ConTeXt-en") (TeX-set-mode-name)) (provide 'context-en) ;;; context-en.el ends here auctex-11.91/context-nl.el000066400000000000000000000170111313533625700154430ustar00rootroot00000000000000;;; context-nl.el --- Support for the ConTeXt dutch interface. ;; Copyright (C) 2003, 2004 Free Software Foundation, Inc. ;; Maintainer: Berend de Boer ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file is loaded by context.el when required. ;;; Code: ;; Build upon ConTeXt (require 'context) ;;; ConText macro names (defvar ConTeXt-environment-list-nl '("achtergrond" "alinea" "bloktekst" "buffer" "citaat" "combinatie" "commentaar" "deelomgeving" "document" "doordefinitie" "doornummering" "figuur" "formule" "gegeven" "interactiemenu" "kadertekst" "kantlijn" "kleur" "kolommen" "legenda" "lokaal" "lokalevoetnoten" "margeblok" "naamopmaak" "naast" "opelkaar" "opmaak" "opsomming" "overlay" "overzicht" "paginafiguur" "positioneren" "profiel" "regel" "regelcorrectie" "regelnummeren" "regels" "smaller" "symboolset" "synchronisatie" "tabel" "tabellen" "tabulatie" "tekstlijn" "typen" "uitlijnen" "uitstellen" "vanelkaar" "verbergen" "versie" ;; project structure "omgeving" "onderdeel" "produkt" "project" ;; flowcharts, if you have loaded this module "FLOWcell" "FLOWchart" ;; typesetting computer languages "EIFFEL" "JAVA" "JAVASCRIPT" "MP" "PASCAL" "PERL" "SQL" "TEX" "XML" ;; some metapost environments "MPpositiongraphic" "useMPgraphic" "MPcode" "reusableMPgraphic" "uniqueMPgraphic") "List of the ConTeXt nl interface start/stop pairs.") (defvar ConTeXt-define-list-nl '("achtergrond" "startstop" "typen") "List of ConTeXt nl interface macro's that define things.") (defvar ConTeXt-setup-list-nl '("achtergronden" "achtergrond" "alineas" "arrangeren" "blanko" "blok" "blokjes" "blokkopje" "blokkopjes" "boven" "boventeksten" "brieven" "buffer" "buttons" "citeren" "clip" "combinaties" "commentaar" "doordefinieren" "doornummeren" "doorspringen" "dunnelijnen" "externefiguren" "formules" "formulieren" "hoofd" "hoofdteksten" "inmarge" "inspringen" "interactiebalk" "interactie" "interactiemenu" "interactiescherm" "interlinie" "invullijnen" "invulregels" "items" "kaderteksten" "kantlijn" "kapitalen" "kleuren" "kleur" "kolommen" "kop" "kopnummer" "koppelteken" "koppen" "koptekst" "korps" "korpsomgeving" "labeltekst" "layout" "legenda" "lijndikte" "lijn" "lijst" "margeblokken" "markering" "naastplaatsen" "nummeren" "omlijnd" "onder" "onderstrepen" "onderteksten" "opmaak" "opsomming" "paginanummer" "paginanummering" "paginaovergangen" "palet" "papierformaat" "papier" "paragraafnummeren" "plaatsblok" "plaatsblokken" "plaatsblokkensplitsen" "positioneren" "profielen" "programmas" "publicaties" "rasters" "referentielijst" "refereren" "regelnummeren" "regels" "register" "roteren" "samengesteldelijst" "sectieblok" "sectie" "sheets" "smaller" "sorteren" "spatiering" "stickers" "strut" "strut" "subpaginanummer" "symboolset" "synchronisatiebalk" "synchronisatie" "synoniemen" "systeem" "taal" "tabellen" "tab" "tabulatie" "tekst" "tekstlijnen" "tekstpositie" "tekstteksten" "tekstvariabele" "tolerantie" "type" "typen" "uitlijnen" "uitvoer" "url" "velden" "veld" "versies" "voet" "voetnootdefinitie" "voetnoten" "voetteksten" "witruimte") "List of the names of ConTeXt nl interface macro's that setup things.") ;; referencing in ConTeXt (defvar ConTeXt-referencing-list-nl '("in" "op" "over" "paginareferentie" "tekstreferentie" "referentie") "List of ConTeXt en macro's that are used for referencing." ) (defvar ConTeXt-other-macro-list-nl '("regellinks" "regelmidden" "regelrechts" "toonexternefiguren") "List of ConTeXt nl interface macro's that are not an environment nor a setup.") (defun ConTeXt-define-command-nl (what) "The ConTeXt nl interface way of creating a define command." (concat "definieer" what)) (defun ConTeXt-setup-command-nl (what) "The ConTeXt nl interface way of creating a setup command." (concat "stel" what "in")) (defvar ConTeXt-project-structure-list-nl '("project" "omgeving" "produkt" "onderdeel") "List of the names of ConTeXt project structure elements for its nl interface. List should be in logical order.") (defvar ConTeXt-section-block-list-nl '("inleidingen" "hoofdteksten" "bijlagen" "uitleidingen") "List of the names of ConTeXt section blocks for its nl interface. List should be in logical order.") ;; TODO: ;; ConTeXt has alternative sections like title and subject. Currently ;; the level is used to find the section name, so the alternative ;; names are never found. Have to start using the section name instead ;; of the number. (defvar ConTeXt-numbered-section-list-nl '(("deel" 0) ("hoofdstuk" 1) ("paragraaf" 2) ("subparagraaf" 3) ("subsubparagraaf" 4)) "List of the names of ConTeXt numbered sections for its nl interface.") (defvar ConTeXt-unnumbered-section-list-nl '(("titel" 1) ("onderwerp" 2) ("subonderwerp" 3) ("subsubsubsubject" 4)) "List of the names of ConTeXt unnumbered sections for its nl interface.") (defvar ConTeXt-text-nl "tekst" "The ConTeXt nl interface body text group.") (defvar ConTeXt-item-list-nl '("som" "its" "mar" "ran" "sub" "sym") "The ConTeXt macro's that are variants of item.") (defcustom ConTeXt-default-environment-nl "opsomming" "*The default environment when creating new ones with `ConTeXt-environment'." :group 'ConTeXt-nl-environment :type 'string) (defvar ConTeXt-extra-paragraph-commands-nl '("crlf" "par" "plaats[A-Za-z]+") "List of ConTeXt macros that should have their own line. That is, besides the section(-block) commands.") ;; Emacs en menu names and labels should go here ;; to be done ;;; Mode (defun ConTeXt-nl-mode-initialization () "ConTeXt dutch interface specific initialization." (mapc 'ConTeXt-add-environments (reverse ConTeXt-environment-list-nl)) (TeX-add-symbols '("but" ConTeXt-arg-define-ref (TeX-arg-literal " ")) '("som" ConTeXt-arg-define-ref (TeX-arg-literal " ")) '("items" [ConTeXt-arg-setup] (TeX-arg-string "Comma separated list")) '("its" ConTeXt-arg-define-ref (TeX-arg-literal " ")) '("nop" (TeX-arg-literal " ")) '("ran" TeX-arg-string (TeX-arg-literal " ")) '("sub" ConTeXt-arg-define-ref (TeX-arg-literal " ")) '("sym" (TeX-arg-string "Symbol") (TeX-arg-literal " ")))) ;;;###autoload (defun context-nl-mode () "Major mode for editing files for ConTeXt using its dutch interface. Special commands: \\{ConTeXt-mode-map} Entering `context-mode' calls the value of `text-mode-hook', then the value of TeX-mode-hook, and then the value of context-mode-hook." (interactive) ;; set the ConTeXt interface (setq ConTeXt-current-interface "nl") ;; initialization (ConTeXt-mode-common-initialization) (ConTeXt-nl-mode-initialization) ;; set mode line (setq TeX-base-mode-name "ConTeXt-nl") (TeX-set-mode-name)) (provide 'context-nl) ;;; context-nl.el ends here auctex-11.91/context.el000066400000000000000000001730611313533625700150440ustar00rootroot00000000000000;;; context.el --- Support for ConTeXt documents. ;; Copyright (C) 2003-2006, 2008, 2010, 2012, 2014-2017 ;; Free Software Foundation, Inc. ;; Maintainer: Berend de Boer ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This is in progress ConTeXt support for AUCTeX. Please report ;; anomalies or things you believe should be added. ;; AUCTeX is closely interwoven with LaTeX. We have to split up ;; things without breaking 'em. ;; some parts are stolen from latex.el and adapted to ConTeXt. ;; TODO ;; 1. indentation still bad. ;; 2. paragraph refilling doesn't work 100%, and is very slow. ;; 4. Remove dependency on LaTeX by moving LaTeX commands to TeX. ;; 5. Most ConTeXt macro's don't currently have lisp code to query for ;; arguments. As ConTeXt arguments are quite complex, the LaTeX way ;; of querying for arguments just doesn't cut it. ;; 6. Check auto-parsing: does it detect % interface=nl for example? ;; 7. Complete adding ConTeXt macro's. Perhaps parse cont-en.xml and ;; generate the interfaces? ;; 8. Add to menu: make TeX hash (mktexlsr), context format and metapost format. ;; TODO Documentation ;; 1. multifile done differently with ConTeXt ;;; Code: (require 'tex-buf) (require 'tex) (require 'latex) ; for functions like `TeX-look-at' and `LaTeX-split-long-menu' (require 'plain-tex) ; for `plain-TeX-common-initialization' (defgroup ConTeXt-macro nil "Special support for ConTeXt macros in AUCTeX." :prefix "TeX-" :group 'ConTeXt :group 'TeX-macro) ;;; variables ;; Dynamically scoped vars used in certain macro's. ;; BEWARE: We used to give them a global nil value, but this can mess up poor ;; unrelated packages using those same vars but expecting them to be ;; lexically scoped. ;; So don't give them a global value, which makes sure the effect of `defvar' ;; localized to this file! (defvar done-mark) ;Position of point afterwards, default nil (meaning end) (defvar reference);Used by `ConTeXt-section-ref' and `ConTeXt-section-section'. (defvar title); Used by `ConTeXt-section-title' and `ConTeXt-section-section'. (defvar name) (defvar level) ;; others (defvar ConTeXt-known-interfaces '("cz" "de" "en" "it" "nl" "ro" "uk")) (defcustom ConTeXt-default-interface "en" "Default interface to be used when running ConTeXt." :group 'ConTeXt :type 'string) (defvar ConTeXt-current-interface "en" "Interface to be used for inserting macros and ConTeXt run.") (make-variable-buffer-local 'ConTeXt-current-interface) (defvar ConTeXt-menu-changed nil) ;; Need to update ConTeXt menu. (make-variable-buffer-local 'ConTeXt-menu-changed) (defvar ConTeXt-largest-level nil "Largest sectioning level within current document.") (make-variable-buffer-local 'ConTeXt-largest-level) (defun ConTeXt-largest-level () (TeX-update-style) ConTeXt-largest-level) ;;; Syntax (defvar ConTeXt-optop "[" "The ConTeXt optional argument opening character.") (defvar ConTeXt-optcl "]" "The ConTeXt optional argument closing character.") ;; Define a ConTeXt macro (defvar ConTeXt-define-list () "Calls ConTeXt-XX-define-list where XX is the current interface.") (defun ConTeXt-define-command (what) "The ConTeXt macro to define WHAT." (funcall (intern (concat "ConTeXt-define-command-" ConTeXt-current-interface)) what)) (defun ConTeXt-insert-define (define) "Insert the ConTeXt define macro DEFINE." (insert TeX-esc (ConTeXt-define-command define)) (newline) (indent-according-to-mode) (ConTeXt-arg-setup nil)) ;; Setup a ConTeXt macro (defvar ConTeXt-setup-list () "Calls ConTeXt-XX-setup-list where XX is the current interface.") (defun ConTeXt-setup-command (what) "The ConTeXt macro to setup WHAT." (funcall (intern (concat "ConTeXt-setup-command-" ConTeXt-current-interface)) what)) (defun ConTeXt-insert-setup (setup) "Insert the ConTeXt setup macro SETUP." (insert TeX-esc (ConTeXt-setup-command setup)) (newline) (indent-according-to-mode) (ConTeXt-arg-setup nil)) ;; Referencing ConTeXt macro's (defvar ConTeXt-referencing-list () "Calls ConTeXt-XX-other-macro-list where XX is the current interface.") (defun ConTeXt-referencing-command (what) "The ConTeXt macro to call WHAT is itself, no interface specific calls." what) (defun ConTeXt-insert-referencing (what) "Insert the ConTeXt referencing SETUP." (insert TeX-esc (ConTeXt-referencing-command what)) (newline) (indent-according-to-mode) (ConTeXt-arg-setup nil)) ;; Other ConTeXt macro's (defvar ConTeXt-other-macro-list () "Calls ConTeXt-XX-other-macro-list where XX is the current interface.") (defun ConTeXt-other-macro-command (what) "The ConTeXt macro to call WHAT is itself, no interface specific calls." what) (defun ConTeXt-insert-other-macro (other-macro) "Insert the ConTeXt other macro's macro SETUP." (insert TeX-esc (ConTeXt-other-macro-command other-macro)) (newline) (indent-according-to-mode) (ConTeXt-arg-setup nil)) ;;; Project structure (defvar ConTeXt-project-structure-list () "Calls ConTeXt-XX-project-structure where XX is the current interface.") (defun ConTeXt-project-structure (N) "Insert a ConTeXt project structure where N is in index into `ConTeXt-project-structure-list'." (funcall (intern(concat "ConTeXt-project-" (nth N ConTeXt-project-structure-list) "-insert")))) (defun ConTeXt-project-project-insert () "Insert a basic template for a new ConTeXt project." (save-excursion (insert "% The following names are examples only\n") (insert TeX-esc (ConTeXt-environment-start-name) (nth 0 ConTeXt-project-structure-list) " myproject") (newline 2) (insert TeX-esc (nth 1 ConTeXt-project-structure-list) " myenvironment") (newline 2) (insert TeX-esc (nth 2 ConTeXt-project-structure-list) " myproduct1") (newline 2) (insert TeX-esc (nth 2 ConTeXt-project-structure-list) " myproduct2") (newline 2) (insert TeX-esc (ConTeXt-environment-stop-name) (nth 0 ConTeXt-project-structure-list)))) (defun ConTeXt-project-environment-insert () "Insert a basic template for the environment of a ConTeXt project." (save-excursion (insert "% The name 'myenvironment' is an example only.\n" "% It must match the name in your project file.\n") (insert TeX-esc (ConTeXt-environment-start-name) (nth 1 ConTeXt-project-structure-list) " myenvironment\n\n") (insert "% Put environment charateristics that must be defined at the " "highest level here\n\n") (insert TeX-esc (ConTeXt-environment-stop-name) (nth 1 ConTeXt-project-structure-list)))) (defun ConTeXt-project-product-insert () "Insert a basic template for a product of a ConTeXt project." (save-excursion (insert "% The following names are examples only\n") (insert TeX-esc (ConTeXt-environment-start-name) (nth 2 ConTeXt-project-structure-list) " myproduct1") (newline 2) (insert TeX-esc (nth 0 ConTeXt-project-structure-list) " myproject") (newline 2) (insert "% Components are optional. " "You can also just start your document here.\n") (insert TeX-esc (nth 3 ConTeXt-project-structure-list) " mycomponent1") (newline 2) (insert TeX-esc (nth 3 ConTeXt-project-structure-list) " mycomponent2") (newline 2) (insert TeX-esc (ConTeXt-environment-stop-name) (nth 2 ConTeXt-project-structure-list)))) (defun ConTeXt-project-component-insert () "Insert a basic template for a component of a ConTeXt project." (save-excursion (insert "% The following names are examples only\n") (insert TeX-esc (ConTeXt-environment-start-name) (nth 3 ConTeXt-project-structure-list) " mycomponent1") (newline 2) (insert TeX-esc (nth 0 ConTeXt-project-structure-list) " myproject\n") (insert TeX-esc (nth 2 ConTeXt-project-structure-list) " myproduct1") (newline 2) (insert "% ... text here ...") (newline 2) (insert TeX-esc (ConTeXt-environment-stop-name) (nth 3 ConTeXt-project-structure-list)))) ;;; Section blocks (defvar ConTeXt-section-block-list () "Calls ConTeXt-XX-section-list where XX is the current interface.") (defun ConTeXt-section-block (section-block) "Insert the ConTeXt section block SECTION-BLOCK." (ConTeXt-environment-menu section-block)) ;;; Sections (defun ConTeXt-section (arg) "Insert a template for a ConTeXt section. Determinate the type of section to be inserted, by the argument ARG. If ARG is nil or missing, use the current level. If ARG is a list (selected by \\[universal-argument]), go downward one level. If ARG is negative, go up that many levels. If ARG is positive or zero, use absolute level: 0 : part 1 : chapter 2 : section 3 : subsection 4 : subsubsection 5 : subsubsubsection Or: 0 : title 1 : subject 2 : subsubject 3 : subsubsubject The following variables can be set to customize: `ConTeXt-section-hook' Hooks to run when inserting a section. `ConTeXt-section-ref' Prefix to all section references." (interactive "*P") (let* ((val (prefix-numeric-value arg)) (level (cond ((null arg) (ConTeXt-current-section)) ((listp arg) (ConTeXt-down-section)) ((< val 0) (ConTeXt-up-section (- val))) (t val))) (name (ConTeXt-numbered-section-name level)) (title "") (reference nil) (done-mark (make-marker))) (newline) (run-hooks 'ConTeXt-numbered-section-hook) (newline) (if (marker-position done-mark) (goto-char (marker-position done-mark))) (set-marker done-mark nil))) ;; LaTeX has a max function here, which makes no sense. ;; I think you want to insert a section that is max ConTeXt-largest-level (defun ConTeXt-current-section () "Return the level of the section that contain point. See also `ConTeXt-section' for description of levels." (save-excursion (min (ConTeXt-largest-level) (if (re-search-backward outline-regexp nil t) (+ 1 (- (ConTeXt-outline-level) (ConTeXt-outline-offset))) (ConTeXt-largest-level))))) (defun ConTeXt-down-section () "Return the value of a section one level under the current. Tries to find what kind of section that have been used earlier in the text, if this fail, it will just return one less than the current section." (save-excursion (let ((current (ConTeXt-current-section)) (next nil) (regexp outline-regexp)) (if (not (re-search-backward regexp nil t)) (1+ current) (while (not next) (cond ((eq (ConTeXt-current-section) current) (if (re-search-forward regexp nil t) (if (<= (setq next (ConTeXt-current-section)) current) ;Wow! (setq next (1+ current))) (setq next (1+ current)))) ((not (re-search-backward regexp nil t)) (setq next (1+ current))))) next)))) (defun ConTeXt-up-section (arg) "Return the value of the section ARG levels above this one." (save-excursion (if (zerop arg) (ConTeXt-current-section) (let ((current (ConTeXt-current-section))) (while (and (>= (ConTeXt-current-section) current) (re-search-backward outline-regexp nil t))) (ConTeXt-up-section (1- arg)))))) (defvar ConTeXt-numbered-section-list () "ConTeXt-XX-section-list where XX is the current interface.") (defvar ConTeXt-unnumbered-section-list () "ConTeXt-XX-section-list where XX is the current interface.") (defvar ConTeXt-section-list (append ConTeXt-numbered-section-list ConTeXt-unnumbered-section-list) ) (defun ConTeXt-numbered-section-name (level) "Return the name of the section corresponding to LEVEL." (let ((entry (TeX-member level ConTeXt-numbered-section-list (function (lambda (a b) (equal a (nth 1 b))))))) (if entry (nth 0 entry) nil))) (defun ConTeXt-unnumbered-section-name (level) "Return the name of the section corresponding to LEVEL." (let ((entry (TeX-member level ConTeXt-unnumbered-section-list (function (lambda (a b) (equal a (nth 1 b))))))) (if entry (nth 0 entry) nil))) (defun ConTeXt-numbered-section-level (name) "Return the level of the section NAME." (let ((entry (TeX-member name ConTeXt-numbered-section-list (function (lambda (a b) (equal a (nth 0 b))))))) (if entry (nth 1 entry) nil))) (defun ConTeXt-unnumbered-section-level (name) "Return the level of the section NAME." (let ((entry (TeX-member name ConTeXt-numbered-section-list (function (lambda (a b) (equal a (nth 0 b))))))) (if entry (nth 1 entry) nil))) ;;; Section Hooks. (defcustom ConTeXt-numbered-section-hook '(ConTeXt-numbered-section-heading ConTeXt-section-title ConTeXt-section-ref ConTeXt-section-section) "List of hooks to run when a new section is inserted. The following variables are set before the hooks are run `level' - numeric section level, see the documentation of `ConTeXt-section'. `name' - name of the sectioning command, derived from `level'. `title' - The title of the section, default to an empty string. `done-mark' - Position of point afterwards, default nil (meaning end). The following standard hook exist - ConTeXt-section-heading: Query the user about the name of the sectioning command. Modifies `level' and `name'. ConTeXt-section-title: Query the user about the title of the section. Modifies `title'. ConTeXt-section-section: Insert ConTeXt section command according to `name', `title', and `reference'. If `title' is an empty string, `done-mark' will be placed at the point they should be inserted. ConTeXt-section-ref: Insert a reference for this section command. To get a full featured `ConTeXt-section' command, insert (setq ConTeXt-numbered-section-hook '(ConTeXt-numbered-section-heading ConTeXt-section-title ConTeXt-section-section ConTeXt-section-ref)) in your .emacs file." :group 'ConTeXt-macro :type 'hook :options '(ConTeXt-numbered-section-heading ConTeXt-section-title ConTeXt-section-ref ConTeXt-section-section)) (defcustom ConTeXt-unnumbered-section-hook '(ConTeXt-unnumbered-section-heading ConTeXt-section-title ConTeXt-section-ref ConTeXt-section-section) ;; FIXME: I can't see where this variable is used! "List of hooks to run when a new section is inserted. The following variables are set before the hooks are run `level' - numeric section level, see the documentation of `ConTeXt-section'. `name' - name of the sectioning command, derived from `level'. `title' - The title of the section, default to an empty string. `done-mark' - Position of point afterwards, default nil (meaning end). The following standard hook exist - ConTeXt-section-heading: Query the user about the name of the sectioning command. Modifies `level' and `name'. ConTeXt-section-title: Query the user about the title of the section. Modifies `title'. ConTeXt-section-section: Insert ConTeXt section command according to `name', `title', and `reference'. If `title' is an empty string, `done-mark' will be placed at the point they should be inserted. ConTeXt-section-ref: Insert a reference for this section command. To get a full featured `ConTeXt-section' command, insert (setq ConTeXt-unnumbered-section-hook '(ConTeXt-unnumbered-section-heading ConTeXt-section-title ConTeXt-section-section ConTeXt-section-ref)) in your .emacs file." :group 'ConTeXt-macro :type 'hook :options '(ConTeXt-unnumbered-section-heading ConTeXt-section-title ConTeXt-section-ref ConTeXt-section-section)) ;; Define before first use. (defcustom ConTeXt-Mark-version "II" "ConTeXt Mark version used for running ConTeXt." :type 'string :group 'TeX-command) (make-variable-buffer-local 'ConTeXt-Mark-version) (put 'ConTeXt-Mark-version 'safe-local-variable 'stringp) (defun ConTeXt-numbered-section-heading () "Hook to prompt for ConTeXt section name. Insert this hook into `ConTeXt-numbered-section-hook' to allow the user to change the name of the sectioning command inserted with `\\[ConTeXt-section]'." (let ((string (completing-read (concat "Select level: (default " name ") ") ConTeXt-numbered-section-list nil nil nil))) ;; Update name (if (not (zerop (length string))) (setq name string)))) (defun ConTeXt-unnumbered-section-heading () "Hook to prompt for ConTeXt section name. Insert this hook into `ConTeXt-unnumbered-section-hook' to allow the user to change the name of the sectioning command inserted with `\\[ConTeXt-section]'." (let ((string (completing-read (concat "Select level: (default " name ") ") ConTeXt-unnumbered-section-list nil nil nil))) ;; Update name (if (not (zerop (length string))) (setq name string)))) (defun ConTeXt-section-title () "Hook to prompt for ConTeXt section title. Insert this hook into `ConTeXt-(un)numbered-section-hook' to allow the user to change the title of the section inserted with `\\[ConTeXt-section]." (setq title (TeX-read-string "What title: "))) (defun ConTeXt-section-section () "Hook to insert ConTeXt section command into the file. Insert this hook into `ConTeXt-section-hook' after those hooks which sets the `name', `title', and `reference' variables, but before those hooks which assumes the section already is inserted." (insert TeX-esc name) (cond ((null reference)) ((zerop (length reference)) (insert ConTeXt-optop) (set-marker done-mark (point)) (insert ConTeXt-optcl)) (t (insert ConTeXt-optop reference ConTeXt-optcl))) (insert TeX-grop) (if (zerop (length title)) (set-marker done-mark (point))) (insert title TeX-grcl) (newline) ;; If RefTeX is available, tell it that we've just made a new section (and (fboundp 'reftex-notice-new-section) (funcall (symbol-function 'reftex-notice-new-section)))) (defun ConTeXt-section-ref () "Hook to insert a reference after the sectioning command. Insert this hook into `ConTeXt-section-hook' to prompt for a label to be inserted after the sectioning command." (setq reference (completing-read (TeX-argument-prompt t nil "Comma separated list of references") (LaTeX-label-list) nil nil)) ;; No reference or empty string entered? (if (string-equal "" reference) (setq reference nil))) ;; Various (defun TeX-ConTeXt-sentinel (process name) "Cleanup TeX output buffer after running ConTeXt." (cond ;; Mark IV ((with-current-buffer TeX-command-buffer (string= ConTeXt-Mark-version "IV")) (cond ((TeX-TeX-sentinel-check process name)) ((re-search-forward "fatal error: " nil t) (message (concat name ": problems after " (TeX-current-pages))) (setq TeX-command-next TeX-command-default)) (t (message (concat name ": successfully formatted " (TeX-current-pages))) (setq TeX-command-next TeX-command-Show)))) ;; Mark II (t (cond ((TeX-TeX-sentinel-check process name)) ((save-excursion ;; in a full ConTeXt run there will multiple texutil ;; outputs. Just looking for "another run needed" would ;; find the first occurence (goto-char (point-max)) (re-search-backward "TeXUtil " nil t) (re-search-forward "another run needed" nil t)) (message (concat "You should run ConTeXt again " "to get references right, " (TeX-current-pages))) (setq TeX-command-next TeX-command-default)) ((re-search-forward "removed files :" nil t) (message "sucessfully cleaned up")) ((re-search-forward "^ ?TeX\\(Exec\\|Util\\)" nil t) ;; strange regexp --pg (message (concat name ": successfully formatted " (TeX-current-pages))) (setq TeX-command-next TeX-command-Show)) (t (message (concat name ": problems after " (TeX-current-pages))) (setq TeX-command-next TeX-command-default))))) (unless TeX-error-list (run-hook-with-args 'TeX-after-compilation-finished-functions (with-current-buffer TeX-command-buffer (expand-file-name (TeX-active-master (TeX-output-extension))))))) ;;; Environments (defgroup ConTeXt-environment nil "Environments in AUCTeX." :group 'ConTeXt-macro) ;; TODO: interface awareness (defcustom ConTeXt-default-environment "itemize" "*The default environment when creating new ones with `ConTeXt-environment'." :group 'ConTeXt-environment :type 'string) (make-variable-buffer-local 'ConTeXt-default-environment) (TeX-auto-add-type "environment" "ConTeXt") (defadvice ConTeXt-add-environments (after ConTeXt-invalidate-menu (&rest environments) activate) "Add ENVIRONMENTS to the list of known environments." (setq ConTeXt-menu-changed t)) ;; (defvar ConTeXt-environment-list () ;; "ConTeXt-environment-list-XX where XX is the current interface.") (defvar ConTeXt-environment-history nil) (defun ConTeXt-environment-start-name () "Return the \\start translated to the language in current interface." ;; it is "inizia", others are "start" (cond ((equal ConTeXt-current-interface "it") "inizia") ((member ConTeXt-current-interface ConTeXt-known-interfaces) "start") (t ;; this should not happen (error "Unknown interface: %s" ConTeXt-current-interface)))) (defun ConTeXt-environment-stop-name () "Return the \\stop translated to the language in current interface." ;; it is "termina", others are "stop" (cond ((equal ConTeXt-current-interface "it") "termina") ((member ConTeXt-current-interface ConTeXt-known-interfaces) "stop") (t ;; this should not happen (error "Unknown interface: %s" ConTeXt-current-interface)))) (defun ConTeXt-environment (arg) "Make ConTeXt environment (\\start...-\\stop... pair). With optional ARG, modify current environment." (interactive "*P") (let* ((default (cond ((TeX-near-bobp) "text") (t ConTeXt-default-environment))) (environment (completing-read (concat "Environment type: (default " default ") ") ConTeXt-environment-list nil nil nil 'ConTeXt-environment-history default))) ;; Use `environment' as default for the next time only if it is different ;; from the current default. (unless (equal environment default) (setq ConTeXt-default-environment environment)) (let ((entry (assoc environment ConTeXt-environment-list))) (if (null entry) (ConTeXt-add-environments (list environment))) (if arg (ConTeXt-modify-environment environment) (ConTeXt-environment-menu environment))))) (defun ConTeXt-modify-environment (environment) "Modify current environment." (save-excursion (ConTeXt-find-matching-stop) (re-search-backward (concat (regexp-quote TeX-esc) (ConTeXt-environment-stop-name) " *\\([a-zA-Z]*\\)") (save-excursion (beginning-of-line 1) (point))) (replace-match (concat TeX-esc (ConTeXt-environment-stop-name) environment) t t) (beginning-of-line 1) (ConTeXt-find-matching-start) (re-search-forward (concat (regexp-quote TeX-esc) (ConTeXt-environment-start-name) " *\\([a-zA-Z]*\\)") (save-excursion (end-of-line 1) (point))) (replace-match (concat TeX-esc (ConTeXt-environment-start-name) environment) t t))) (defun ConTeXt-environment-menu (environment) "Insert ENVIRONMENT around point or region." (let ((entry (assoc environment ConTeXt-environment-list))) (cond ((not (and entry (nth 1 entry))) (ConTeXt-insert-environment environment)) ((numberp (nth 1 entry)) (let ((count (nth 1 entry)) (args "")) (while (> count 0) (setq args (concat args TeX-grop TeX-grcl)) (setq count (- count 1))) (ConTeXt-insert-environment environment args))) ((stringp (nth 1 entry)) (let ((prompts (cdr entry)) (args "")) (while prompts (setq args (concat args TeX-grop (read-from-minibuffer (concat (car prompts) ": ")) TeX-grcl)) (setq prompts (cdr prompts))) (ConTeXt-insert-environment environment args))) (t (apply (nth 1 entry) environment (nthcdr 2 entry)))))) (defun ConTeXt-close-environment () "Insert \\stop... to match the current environment." (interactive "*") (beginning-of-line) (let ((empty-line (looking-at "[ \t]*$"))) (end-of-line) (if (not empty-line) (newline))) (insert TeX-esc (ConTeXt-environment-stop-name) (ConTeXt-current-environment)) ;; indent broken, so don't do it. ;;(indent-according-to-mode) (end-of-line) (newline)) (defun ConTeXt-insert-environment (environment &optional extra) "Insert ENVIRONMENT, with optional argument EXTRA." (if (and (TeX-active-mark) (not (eq (mark) (point)))) (save-excursion (if (< (mark) (point)) (exchange-point-and-mark)) (insert TeX-esc (ConTeXt-environment-start-name) environment) (newline) (forward-line -1) (indent-according-to-mode) (if extra (insert extra)) (goto-char (mark)) (or (TeX-looking-at-backward "^[ \t]*") (newline)) (insert TeX-esc (ConTeXt-environment-stop-name) environment) (newline) (forward-line -1) (indent-according-to-mode) ;;(goto-char (point)) ) (or (TeX-looking-at-backward "^[ \t]*") (newline)) (insert TeX-esc (ConTeXt-environment-start-name) environment) (indent-according-to-mode) (if extra (insert extra)) (end-of-line) (newline-and-indent) (newline) (insert TeX-esc (ConTeXt-environment-stop-name) environment) (or (looking-at "[ \t]*$") (save-excursion (newline-and-indent))) (indent-according-to-mode) (end-of-line 0))) ;; with the following we can call a function on an environment. Say ;; you have metapost stuff within your TeX file, go to the environment ;; and run ConTeXt-work-on-environment (suggested Key: C-c !). AUCTeX ;; sees that you are inside e.g. \startMPpage....\stopMPpage and ;; looks in ConTeXt-environment-helper for a function to be called. ;; % so pressing C-c ! inside the following ... ;;\startuseMPgraphic{Logo}{Scale} ;; % Top rectangle ;; filldraw (0,0)--(2cm,0)--(2cm,1cm)--(0,1cm)--cycle withcolor blue ; ;; % Bottom black rectangle ;; drawfill (0,0)--(2cm,0)--(2cm,-1cm)--(0,-1cm)--cycle withcolor black; ;; % White Text ;; draw btex \bf AB etex withcolor white ; ;; % resize to size ;; currentpicture := currentpicture scaled \MPvar{Scale} ; ;; \stopuseMPgraphic ;; % ...should give you a "new buffer" (currently narrowed to region ;; % and switched to metapost-mode and recursive-edit) ;; % Top rectangle ;; filldraw (0,0)--(2cm,0)--(2cm,1cm)--(0,1cm)--cycle withcolor blue ; ;; % Bottom black rectangle ;; drawfill (0,0)--(2cm,0)--(2cm,-1cm)--(0,-1cm)--cycle withcolor black; ;; % White Text ;; draw btex \bf AB etex withcolor white ; ;; % resize to size ;; currentpicture := currentpicture scaled \MPvar{Scale} ; (defvar ConTeXt-environment-helper '(("useMPgraphic" . ConTeXt-mp-region) ("MPpage" . ConTeXt-mp-region)) "Alist that holds functions to call for working on regions. An entry looks like: (\"environment\" . function)") (defun ConTeXt-mp-region () "Edit region in `metapost-mode'." (ConTeXt-mark-environment t) (narrow-to-region (mark) (point)) (metapost-mode) (message "Type `M-x exit-recursive-edit' to get back") (recursive-edit) (context-mode) (widen)) ;; find smarter name. Suggestions welcome (defun ConTeXt-work-on-environment () "Takes current environment and does something on it (todo: documentation)." (interactive) (let ((fun (cdr (assoc (ConTeXt-current-environment) ConTeXt-environment-helper)))) (when (functionp fun) (funcall fun)))) (defun ConTeXt-current-environment () "Return the name of the current environment." ;; don't make this interactive. (let ((beg)) (save-excursion (ConTeXt-last-unended-start) (setq beg (+ (point) (length (ConTeXt-environment-start-name)) 1)) (goto-char (match-end 0)) (skip-chars-forward "a-zA-Z") (buffer-substring beg (point))))) (defun ConTeXt-last-unended-start () "Leave point at the beginning of the last `\\start...' that is unstopped looking from the current cursor." (while (and (re-search-backward "\\\\start[a-zA-Z]*\\|\\\\stop[a-zA-Z]*") (looking-at "\\\\stop[a-zA-Z]*")) (ConTeXt-last-unended-start))) (defun ConTeXt-mark-environment (&optional inner) "Set mark to end of current environment (\\start...-\\stop...) and point to the matching begin. If optional INNER is not nil, include \\start... and \\stop, otherwise only the contents." (interactive) (let ((cur (point))) (ConTeXt-find-matching-stop inner) (push-mark (point)) (goto-char cur) (ConTeXt-find-matching-start inner) (TeX-activate-region))) (defun ConTeXt-find-matching-stop (&optional inner) "Find end of current \\start...\\stop-Pair. If INNER is non-nil, go to the point just past before \\stop... macro. Otherwise goto the point just past \\stop..." (interactive) (let ((regexp (concat (regexp-quote TeX-esc) "\\(" (ConTeXt-environment-start-name) "\\|" (ConTeXt-environment-stop-name) "\\)" )) (level 1)) ;;jump over the \start... when at the beginning of it. (when (looking-at (concat (regexp-quote TeX-esc) (ConTeXt-environment-start-name))) (re-search-forward regexp nil t)) (while (and (> level 0) (re-search-forward regexp nil t) (goto-char (1- (match-beginning 1))) (cond ((looking-at (concat (regexp-quote TeX-esc) (ConTeXt-environment-start-name))) (re-search-forward regexp nil t) (setq level (1+ level))) ((looking-at (concat (regexp-quote TeX-esc) (ConTeXt-environment-stop-name))) (re-search-forward regexp nil t) (setq level (1- level)))))) ;; now we have to look if we want to start behind the \start... macro (if inner (beginning-of-line) (skip-chars-forward "a-zA-Z")))) (defun ConTeXt-find-matching-start (&optional inner) "Find beginning of current \\start...\\stop-Pair. If INNER is non-nil, go to the point just past the \\start... macro." (interactive) (let ((regexp (concat (regexp-quote TeX-esc) "\\(" (ConTeXt-environment-start-name) "\\|" (ConTeXt-environment-stop-name) "\\)" )) (level 1) (pos)) (while (and (> level 0) (re-search-backward regexp nil t) (cond ((looking-at (concat (regexp-quote TeX-esc) (ConTeXt-environment-stop-name))) (setq level (1+ level))) ((looking-at (concat (regexp-quote TeX-esc) (ConTeXt-environment-start-name))) (setq level (1- level)))))) ;; now we have to look if we want to start behind the \start... macro (when inner ;; \startfoo can have 0 or more {} and [] pairs. I assume that ;; skipping all those parens will be smart enough. It fails when ;; the first part in the \start-\stop-environment is { or [, like ;; in \startquotation {\em important} \stopquotation. There is ;; yet another pitfall: \startsetups SomeSetup foo bar ;; \stopsetups will use SomeSetup as the argument and the ;; environment (skip-chars-forward "\\\\a-zA-Z") (save-excursion (while (progn (skip-chars-forward "\t\n ") (forward-comment 1) (skip-chars-forward "\t\n ") (looking-at "\\s\(")) (forward-list 1) (setq pos (point)))) (when pos (goto-char pos)) (unless (bolp) (forward-line))))) ;;; items (defun ConTeXt-insert-item () "Insert a new item." (interactive "*") (or (TeX-looking-at-backward "^[ \t]*") (newline)) (TeX-insert-macro "item") (indent-according-to-mode)) ;;; Macro Argument Hooks (defun ConTeXt-optional-argument-insert (arg &optional _prefix) "Insert ARG surrounded by square brackets." (insert ConTeXt-optop) (insert arg) (insert ConTeXt-optcl)) (defun ConTeXt-required-argument-insert (arg &optional _prefix) "Insert ARG surrounded by curly braces." (insert TeX-grop) (insert arg) (insert TeX-grcl)) (defun ConTeXt-argument-insert (arg optional &optional prefix) "Insert ARG surrounded by curly braces. If OPTIONAL, only insert it if not empty, and then use square brackets." (if optional (if (not (string-equal arg "")) (ConTeXt-optional-argument-insert arg prefix)) (ConTeXt-required-argument-insert arg prefix))) (defun ConTeXt-arg-ref (optional &optional prompt definition) "Prompt for a reference completing with known references." (let ((ref (completing-read (TeX-argument-prompt optional prompt "ref") (LaTeX-label-list)))) (if (and definition (not (string-equal "" ref))) (LaTeX-add-labels ref)) (ConTeXt-argument-insert ref optional))) (defun ConTeXt-arg-define-ref (&optional prompt) "Prompt for an optional reference completing with known references." (ConTeXt-arg-ref t prompt t)) (defun ConTeXt-arg-setup (optional &optional prompt) "Prompt for setup arguments." (let ((setup (read-from-minibuffer (TeX-argument-prompt optional prompt "Setup")))) (ConTeXt-argument-insert setup t))) ;; paragraph (re)-formatting (defvar ConTeXt-item-list () "List of macro's considered items.") (defun ConTeXt-paragraph-commands-regexp () "Return a regexp matching macros that should have their own line." (concat (regexp-quote TeX-esc) "\\(" "[][]\\|" ; display math delimitors (is this applicable to ConTeXt??) (ConTeXt-environment-start-name) "\\|" (ConTeXt-environment-stop-name) "\\|" (mapconcat #'car ConTeXt-numbered-section-list "\\b\\|") "\\b\\|" (mapconcat #'car ConTeXt-unnumbered-section-list "\\b\\|") "\\b\\|" (mapconcat #'identity ConTeXt-extra-paragraph-commands "\\b\\|") "\\b\\|" (mapconcat #'identity ConTeXt-item-list "\\b\\|") "\\b\\)")) ;; Outline support (defun ConTeXt-environment-full-start-name (environment) "Return the ConTeXt macro name that starts ENVIRONMENT. It is interface aware" (concat (ConTeXt-environment-start-name) environment)) (defun ConTeXt-outline-regexp (&optional anywhere) "Return regexp for ConTeXt section blocks and sections. If optional argument ANYWHERE is not nil, do not require that the header is at the start of a line." (concat (if anywhere "" "^") "[ \t]*" (regexp-quote TeX-esc) "\\(" (mapconcat #'ConTeXt-environment-full-start-name ConTeXt-section-block-list "\\|") "\\|" (mapconcat #'car ConTeXt-numbered-section-list "\\|") "\\|" (mapconcat #'car ConTeXt-unnumbered-section-list "\\|") "\\)\\b" (if TeX-outline-extra "\\|" "") (mapconcat #'car TeX-outline-extra "\\|") "\\|" (ConTeXt-header-end) "\\b" "\\|" (ConTeXt-trailer-start) "\\b")) (defvar ConTeXt-text "Name of ConTeXt macro that begins the text body.") (defun ConTeXt-header-end () "Default end of header marker for ConTeXt documents." (concat (regexp-quote TeX-esc) (ConTeXt-environment-start-name) ConTeXt-text)) (defun ConTeXt-trailer-start () "Default start of trailer marker for ConTeXt documents." (concat (regexp-quote TeX-esc) (ConTeXt-environment-stop-name) ConTeXt-text)) (defun ConTeXt-outline-offset () "Offset to add to `ConTeXt-section-list' levels to get outline level." (- 4 (ConTeXt-largest-level))) (defun ConTeXt-start-environment-regexp (list) "Regular expression that matches a start of all environments mentioned in LIST." (concat "start\\(" (mapconcat #'identity list "\\|") "\\)\\b")) ;; The top headings are \starttext, \startfrontmatter, \startbodymatter etc. ;; \part, \chapter etc. are children of that. (defun ConTeXt-outline-level () "Find the level of current outline heading in an ConTeXt document." (cond ((looking-at (concat (ConTeXt-header-end) "\\b")) 1) ((looking-at (concat (ConTeXt-trailer-start) "\\b")) 1) ((TeX-look-at TeX-outline-extra) (max 1 (+ (TeX-look-at TeX-outline-extra) (ConTeXt-outline-offset)))) (t (save-excursion (skip-chars-forward " \t") (forward-char 1) (cond ((looking-at (ConTeXt-start-environment-regexp ConTeXt-section-block-list)) 1) ((TeX-look-at ConTeXt-section-list) (max 1 (+ (TeX-look-at ConTeXt-section-list) (ConTeXt-outline-offset)))) (t (error "Unrecognized header"))))))) ;;; Fonts (defcustom ConTeXt-font-list '((?\C-b "{\\bf " "}") (?\C-c "{\\sc " "}") (?\C-e "{\\em " "}") (?\C-i "{\\it " "}") (?\C-r "{\\rm " "}") (?\C-s "{\\sl " "}") (?\C-t "{\\tt " "}") (?\C-d "" "" t)) "List of fonts used by `TeX-font'. Each entry is a list. The first element is the key to activate the font. The second element is the string to insert before point, and the third element is the string to insert after point. If the fourth and fifth element are strings, they specify the prefix and suffix to be used in math mode. An optional fourth (or sixth) element means always replace if t." :group 'TeX-macro :type '(repeat (group :value (?\C-a "" "") (character :tag "Key") (string :tag "Prefix") (string :tag "Suffix") (option (group :inline t (string :tag "Math Prefix") (string :tag "Math Suffix"))) (option (sexp :format "Replace\n" :value t))))) ;; Imenu support (defun ConTeXt-outline-name () "Guess a name for the current header line." (save-excursion (if (re-search-forward "{\\([^\}]*\\)}" (point-at-eol) t) (match-string 1) (buffer-substring-no-properties (point) (point-at-eol))))) ;; This imenu also includes commented out chapters. Perhaps a feature ;; for LaTeX, not sure we want or need that for ConTeXt. (defun ConTeXt-imenu-create-index-function () "Imenu support function for ConTeXt." (TeX-update-style) (let (entries level (regexp (ConTeXt-outline-regexp))) (goto-char (point-max)) (while (re-search-backward regexp nil t) (let* ((name (ConTeXt-outline-name)) (level (make-string (1- (ConTeXt-outline-level)) ?\ )) (label (concat level level name)) (mark (make-marker))) (set-marker mark (point)) (set-text-properties 0 (length label) nil label) (setq entries (cons (cons label mark) entries)))) entries)) ;; Indentation, copied from Berend's context mode. ;; TODO: doesn't work great. (defvar ConTeXt-indent-allhanging t) (defvar ConTeXt-indent-arg 2) (defvar ConTeXt-indent-basic 2) (defvar ConTeXt-indent-item ConTeXt-indent-basic) (defvar ConTeXt-indent-item-re "\\\\\\(item\\|sym\\)\\>") (defvar ConTeXt-indent-syntax-table (make-syntax-table TeX-mode-syntax-table) "Syntax table used while computing indentation.") (progn (modify-syntax-entry ?$ "." ConTeXt-indent-syntax-table) (modify-syntax-entry ?\( "." ConTeXt-indent-syntax-table) (modify-syntax-entry ?\) "." ConTeXt-indent-syntax-table)) (defun ConTeXt-indent-line (&optional _arg) (with-syntax-table ConTeXt-indent-syntax-table ;; TODO: Rather than ignore $, we should try to be more clever about it. (let ((indent (save-excursion (beginning-of-line) (ConTeXt-find-indent)))) (if (< indent 0) (setq indent 0)) (if (<= (current-column) (current-indentation)) (indent-line-to indent) (save-excursion (indent-line-to indent)))))) (defun ConTeXt-find-indent (&optional virtual) "Find the proper indentation of text after point. VIRTUAL if non-nil indicates that we're only trying to find the indentation in order to determine the indentation of something else. There might be text before point." (save-excursion (skip-chars-forward " \t") (or ;; Trust the current indentation, if such info is applicable. (and virtual (>= (current-indentation) (current-column)) (current-indentation)) ;; Put leading close-paren where the matching open brace would be. (condition-case nil (and (eq (char-syntax (char-after)) ?\)) (save-excursion (skip-syntax-forward " )") (backward-sexp 1) (ConTeXt-find-indent 'virtual))) (error nil)) ;; Default (maybe an argument) (let ((pos (point)) (char (char-after)) (indent 0) up-list-pos) ;; Look for macros to be outdented (cond ((looking-at (concat (regexp-quote TeX-esc) (ConTeXt-environment-stop-name))) (setq indent (- indent ConTeXt-indent-basic))) ((looking-at ConTeXt-indent-item-re) (setq indent (- indent ConTeXt-indent-item)))) ;; Find the previous point which determines our current indentation. (condition-case err (progn (backward-sexp 1) (while (or (> (current-column) (current-indentation)) ;; Continue going back if we are ;; at a hanging optional group. (looking-at (regexp-quote ConTeXt-optop))) (backward-sexp 1))) (scan-error (setq up-list-pos (nth 2 err)))) (cond ((= (point-min) pos) 0) ; We're really just indenting the first line. ((integerp up-list-pos) ;; Have to indent relative to the open-paren. (goto-char up-list-pos) (if (and (not ConTeXt-indent-allhanging) (> pos (progn (down-list 1) (forward-comment (point-max)) (point)))) ;; Align with the first element after the open-paren. (current-column) ;; We're the first element after a hanging brace. (goto-char up-list-pos) (+ indent ConTeXt-indent-basic (ConTeXt-find-indent 'virtual)))) ;; We're now at the "beginning" of a line. ((not (and (not virtual) (eq (char-after) ?\\))) ;; Nothing particular here: just keep the same indentation. (+ indent (current-column))) ;; We're now looking at an item. ((looking-at ConTeXt-indent-item-re) ;; Indenting relative to an item, have to re-add the outdenting. (+ indent (current-column) ConTeXt-indent-item)) ;; We're looking at an environment starter. ((and (looking-at (concat (regexp-quote TeX-esc) (ConTeXt-environment-start-name))) (not (looking-at (concat (regexp-quote TeX-esc) (ConTeXt-environment-start-name) ConTeXt-text)))) ; other environments? (+ indent (current-column) ConTeXt-indent-basic)) (t (let ((col (current-column))) (if (not (and char (eq (char-syntax char) ?\())) ;; If the first char was not an open-paren, there's ;; a risk that this is really not an argument to the ;; macro at all. (+ indent col) (forward-sexp 1) (if (< (line-end-position) (save-excursion (forward-comment (point-max)) (point))) ;; we're indenting the first argument. (min (current-column) (+ ConTeXt-indent-arg col)) (skip-syntax-forward " ") (current-column)))))))))) ;; XML inside ConTeXt support (defun ConTeXt-last-unended-start-xml () "Leave point at the beginning of the last `tag' that is unstopped." (while (and (re-search-backward "<[_A-Za-z][-:._A-Za-z0-9]*\\([ \t\r\n]\\|[_A-Za-z][-:._A-Za-z0-9]*\=\"[^\"]*\"\\)*>\\|") (looking-at "")) (ConTeXt-last-unended-start-xml))) (defun ConTeXt-close-xml-tag () "Create an to match the last unclosed <...>. Not fool-proof." (interactive "*") (let ((new-line-needed (bolp)) text indentation) (save-excursion (condition-case nil (ConTeXt-last-unended-start-xml) (error (error "Couldn't find unended XML tag"))) (setq indentation (current-column)) (re-search-forward "<\\([_A-Za-z][-:._A-Za-z0-9]*\\)") (setq text (buffer-substring (match-beginning 1) (match-end 1)))) (indent-to indentation) (insert "") (if new-line-needed (insert ?\n)))) ;; Key bindings (defvar ConTeXt-mode-map (let ((map (make-sparse-keymap))) (set-keymap-parent map TeX-mode-map) (define-key map "\e\C-a" 'ConTeXt-find-matching-start) (define-key map "\e\C-e" 'ConTeXt-find-matching-stop) ;; likely to change in the future (define-key map "\C-c!" 'ConTeXt-work-on-environment) (define-key map "\C-c\C-e" 'ConTeXt-environment) (define-key map "\C-c\n" 'ConTeXt-insert-item) (or (key-binding "\e\r") (define-key map "\e\r" 'ConTeXt-insert-item)) ;*** Alias (define-key map "\C-c]" 'ConTeXt-close-environment) (define-key map "\C-c\C-s" 'ConTeXt-section) ;; XML in ConTeXt support (define-key map "\C-c/" 'ConTeXt-close-xml-tag) map) "Keymap used in `ConTeXt-mode'.") ;;; Menu building ;; functions to create menu entries ;; ConTeXt \start... \stop... pairs ;; (Choose a different name than the one in LaTeX mode. Otherwise the ;; contents of the "Insert Environment" and "Change Environment" menus ;; will not be updated correctly upon loading and switching between ;; LaTeX and ConTeXt files. AFAICS this is due to a bug in ;; easymenu.el not returning the correct keymap when ;; `easy-menu-change' (and therefore `easy-menu-get-map') is called. ;; It just sees an entry with a matching name and returns this first ;; match.) (defvar ConTeXt-environment-menu-name "Insert Environment (C-c C-e)") (defun ConTeXt-environment-menu-entry (entry) "Create an entry for the environment menu." (vector (car entry) (list 'ConTeXt-environment-menu (car entry)) t)) (defvar ConTeXt-environment-modify-menu-name "Change Environment (C-u C-c C-e)") (defun ConTeXt-environment-modify-menu-entry (entry) "Create an entry for the change environment menu." (vector (car entry) (list 'ConTeXt-modify-environment (car entry)) t)) ;; ConTeXt define macros (defvar ConTeXt-define-menu-name "Define") (defun ConTeXt-define-menu-entry (entry) "Create an entry for the define menu." (vector entry (list 'ConTeXt-define-menu entry))) (defun ConTeXt-define-menu (define) "Insert DEFINE from menu." (ConTeXt-insert-define define)) ;; ConTeXt setup macros (defvar ConTeXt-setup-menu-name "Setup") (defun ConTeXt-setup-menu-entry (entry) "Create an entry for the setup menu." (vector entry (list 'ConTeXt-setup-menu entry))) (defun ConTeXt-setup-menu (setup) "Insert SETUP from menu." (ConTeXt-insert-setup setup)) ;; ConTeXt referencing macros (defvar ConTeXt-referencing-menu-name "Referencing") (defun ConTeXt-referencing-menu-entry (entry) "Create an entry for the referencing menu." (vector entry (list 'ConTeXt-referencing-menu entry))) (defun ConTeXt-referencing-menu (referencing) "Insert REFERENCING from menu." (ConTeXt-insert-referencing referencing)) ;; ConTeXt other macros (defvar ConTeXt-other-macro-menu-name "Other macro") (defun ConTeXt-other-macro-menu-entry (entry) "Create an entry for the other macro menu." (vector entry (list 'ConTeXt-other-macro-menu entry))) (defun ConTeXt-other-macro-menu (other-macro) "Insert OTHER MACRO from menu." (ConTeXt-insert-other-macro other-macro)) ;; meta-structure project structure menu entries (defvar ConTeXt-project-structure-menu-name "Project Structure") (defun ConTeXt-project-structure-menu (project-structure) "Insert project structure from menu." (ConTeXt-project-structure (let ((l ConTeXt-project-structure-list)) (- (length l) (length (member project-structure l)))))) (defun ConTeXt-project-structure-menu-entry (entry) "Create an ENTRY for the project structure menu." (vector entry (list 'ConTeXt-project-structure-menu entry))) ;; meta-structure section blocks menu entries (defvar ConTeXt-section-block-menu-name "Section Block") (defun ConTeXt-section-block-menu (section-block) "Insert section block from menu." (ConTeXt-section-block section-block)) (defun ConTeXt-section-block-menu-entry (entry) "Create an ENTRY for the section block menu." (vector entry (list 'ConTeXt-section-block-menu entry))) ;; section menu entries (defvar ConTeXt-numbered-section-menu-name "Numbered section (C-c C-s)") (defvar ConTeXt-unnumbered-section-menu-name "Unnumbered section") (defun ConTeXt-section-enable-symbol (level) "Symbol used to enable section LEVEL in the menu bar." (intern (concat "ConTeXt-section-" (int-to-string level) "-enable"))) (defun ConTeXt-section-enable (entry) "Enable or disable section ENTRY from `ConTeXt-section-list'." (let ((level (nth 1 entry))) (set (ConTeXt-section-enable-symbol level) (>= level ConTeXt-largest-level)))) (defun ConTeXt-numbered-section-menu (level) "Insert numbered section from menu." (let ((ConTeXt-numbered-section-hook (delq 'ConTeXt-numbered-section-heading (copy-sequence ConTeXt-numbered-section-hook)))) (ConTeXt-section level))) (defun ConTeXt-unnumbered-section-menu (level) "Insert unnumbered section from menu." (let ((ConTeXt-unnumbered-section-hook (delq 'ConTeXt-unnumbered-section-heading (copy-sequence ConTeXt-unnumbered-section-hook)))) (ConTeXt-section level))) (defun ConTeXt-numbered-section-menu-entry (entry) "Create an ENTRY for the numbered section menu." (let ((enable (ConTeXt-section-enable-symbol (nth 1 entry)))) (set enable t) (vector (car entry) (list 'ConTeXt-numbered-section-menu (nth 1 entry)) enable))) (defun ConTeXt-unnumbered-section-menu-entry (entry) "Create an ENTRY for the unnumbered section menu." (let ((enable (ConTeXt-section-enable-symbol (nth 1 entry)))) (set enable t) (vector (car entry) (list 'ConTeXt-unnumbered-section-menu (nth 1 entry)) enable))) ;; etexshow support (defun ConTeXt-etexshow () "Call etexshow, if available, to show the definition of a ConText macro." (interactive) (if (fboundp 'etexshow) (let () (require 'etexshow) (funcall (symbol-function 'etexshow-cmd))) (error "etexshow is not installed. Get it from http://levana.de/emacs/"))) ;; menu itself (easy-menu-define ConTeXt-mode-command-menu ConTeXt-mode-map "Command menu used in ConTeXt mode." (TeX-mode-specific-command-menu 'context-mode)) ;; it seems the menu is evaluated at compile/load-time ;; we don't have ConTeXt-current-interface at that time ;; so make sure to do updates based on that variable in ;; ConTeXt-menu-update (easy-menu-define ConTeXt-mode-menu ConTeXt-mode-map "Menu used in ConTeXt mode." (TeX-menu-with-help `("ConTeXt" (,ConTeXt-project-structure-menu-name) (,ConTeXt-section-block-menu-name) (,ConTeXt-numbered-section-menu-name) (,ConTeXt-unnumbered-section-menu-name) ["Add Table of Contents to Emacs Menu" (imenu-add-to-menubar "TOC") t] "-" ["Macro ..." TeX-insert-macro :help "Insert a macro and possibly arguments"] ["Complete" TeX-complete-symbol :help "Complete the current macro or environment name"] ["Show ConTeXt Macro Definition" ConTeXt-etexshow] "-" (,ConTeXt-environment-menu-name) (,ConTeXt-environment-modify-menu-name) ["Item" ConTeXt-insert-item :help "Insert a new \\item into current environment"] (,ConTeXt-define-menu-name) (,ConTeXt-setup-menu-name) (,ConTeXt-other-macro-menu-name) "-" ("Insert Font" ["Emphasize" (TeX-font nil ?\C-e) :keys "C-c C-f C-e"] ["Bold" (TeX-font nil ?\C-b) :keys "C-c C-f C-b"] ["Typewriter" (TeX-font nil ?\C-t) :keys "C-c C-f C-t"] ["Small Caps" (TeX-font nil ?\C-c) :keys "C-c C-f C-c"] ["Sans Serif" (TeX-font nil ?\C-f) :keys "C-c C-f C-f"] ["Italic" (TeX-font nil ?\C-i) :keys "C-c C-f C-i"] ["Slanted" (TeX-font nil ?\C-s) :keys "C-c C-f C-s"] ["Roman" (TeX-font nil ?\C-r) :keys "C-c C-f C-r"] ["Calligraphic" (TeX-font nil ?\C-a) :keys "C-c C-f C-a"]) ("Replace Font" ["Emphasize" (TeX-font t ?\C-e) :keys "C-u C-c C-f C-e"] ["Bold" (TeX-font t ?\C-b) :keys "C-u C-c C-f C-b"] ["Typewriter" (TeX-font t ?\C-t) :keys "C-u C-c C-f C-t"] ["Small Caps" (TeX-font t ?\C-c) :keys "C-u C-c C-f C-c"] ["Sans Serif" (TeX-font t ?\C-f) :keys "C-u C-c C-f C-f"] ["Italic" (TeX-font t ?\C-i) :keys "C-u C-c C-f C-i"] ["Slanted" (TeX-font t ?\C-s) :keys "C-u C-c C-f C-s"] ["Roman" (TeX-font t ?\C-r) :keys "C-u C-c C-f C-r"] ["Calligraphic" (TeX-font t ?\C-a) :keys "C-u C-c C-f C-a"]) ["Delete Font" (TeX-font t ?\C-d) :keys "C-c C-f C-d"] "-" ["Comment or Uncomment Region" TeX-comment-or-uncomment-region :help "Make the selected region outcommented or active again"] ["Comment or Uncomment Paragraph" TeX-comment-or-uncomment-paragraph :help "Make the current paragraph outcommented or active again"] ,TeX-fold-menu "-" . ,TeX-common-menu-entries))) (defun ConTeXt-menu-update (&optional menu) "Update entries on AUCTeX menu." (or (not (memq major-mode '(context-mode))) (null ConTeXt-menu-changed) (not (fboundp 'easy-menu-change)) (progn (TeX-update-style) (setq ConTeXt-menu-changed nil) (message "Updating section menu...") (mapc #'ConTeXt-section-enable ConTeXt-section-list) (message "Updating environment menu...") (easy-menu-change '("ConTeXt") ConTeXt-environment-menu-name (LaTeX-split-long-menu (mapcar #'ConTeXt-environment-menu-entry (ConTeXt-environment-list)))) (message "Updating modify environment menu...") (easy-menu-change '("ConTeXt") ConTeXt-environment-modify-menu-name (LaTeX-split-long-menu (mapcar #'ConTeXt-environment-modify-menu-entry (ConTeXt-environment-list)))) (message "Updating define menu...") (easy-menu-change '("ConTeXt") ConTeXt-define-menu-name (LaTeX-split-long-menu (mapcar #'ConTeXt-define-menu-entry ConTeXt-define-list))) (message "Updating setup menu...") (easy-menu-change '("ConTeXt") ConTeXt-setup-menu-name (LaTeX-split-long-menu (mapcar #'ConTeXt-setup-menu-entry ConTeXt-setup-list))) (message "Updating referencing menu...") (easy-menu-change '("ConTeXt") ConTeXt-referencing-menu-name (LaTeX-split-long-menu (mapcar #'ConTeXt-referencing-menu-entry ConTeXt-referencing-list))) (message "Updating other macro's menu...") (easy-menu-change '("ConTeXt") ConTeXt-other-macro-menu-name (LaTeX-split-long-menu (mapcar #'ConTeXt-other-macro-menu-entry ConTeXt-other-macro-list))) (message "Updating project structure menu...") (easy-menu-change '("ConTeXt") ConTeXt-project-structure-menu-name (LaTeX-split-long-menu (mapcar #'ConTeXt-project-structure-menu-entry ConTeXt-project-structure-list))) (message "Updating section block menu...") (easy-menu-change '("ConTeXt") ConTeXt-section-block-menu-name (LaTeX-split-long-menu (mapcar #'ConTeXt-section-block-menu-entry ConTeXt-section-block-list))) (message "Updating section menu...") (easy-menu-change '("ConTeXt") ConTeXt-numbered-section-menu-name (LaTeX-split-long-menu (mapcar #'ConTeXt-numbered-section-menu-entry ConTeXt-numbered-section-list))) (easy-menu-change '("ConTeXt") ConTeXt-unnumbered-section-menu-name (LaTeX-split-long-menu (mapcar #'ConTeXt-unnumbered-section-menu-entry ConTeXt-unnumbered-section-list))) (message "Updating...done") (and menu (easy-menu-return-item ConTeXt-mode-menu menu)) ))) ;;; Option expander (defvar ConTeXt-texexec-option-nonstop "--nonstop " "Command line option for texexec to use nonstopmode.") (defun ConTeXt-expand-command () "Expand ConTeXt command. Use `ConTeXt-Mark-version' to choose the command." (cond ((string= ConTeXt-Mark-version "IV") "context") ;; In any other case fall back on Mark II. (t "texexec"))) (defun ConTeXt-expand-options () "Expand options for context command." (cond ;; Mark IV ((string= ConTeXt-Mark-version "IV") (concat (if TeX-source-correlate-mode "--synctex=1 ") (unless TeX-interactive-mode ConTeXt-texexec-option-nonstop))) ;; In any other case fall back on Mark II. (t (concat (let ((engine (eval (nth 4 (TeX-engine-in-engine-alist TeX-engine))))) (when engine (format "--engine=%s " engine))) (unless (eq ConTeXt-current-interface "en") (format "--interface=%s " ConTeXt-current-interface)) (when TeX-source-correlate-mode (format "--passon=\"%s\" " (if (eq (TeX-source-correlate-method-active) 'synctex) TeX-synctex-tex-flags TeX-source-specials-tex-flags))) (unless TeX-interactive-mode ConTeXt-texexec-option-nonstop))))) ;;; Mode ;; ConTeXt variables that are interface aware ;; They are mapped to interface specific variables (defvar ConTeXt-language-variable-list '(ConTeXt-define-list ConTeXt-setup-list ConTeXt-referencing-list ConTeXt-other-macro-list ConTeXt-project-structure-list ConTeXt-section-block-list ConTeXt-numbered-section-list ConTeXt-unnumbered-section-list ConTeXt-section-list ConTeXt-text ConTeXt-item-list ConTeXt-extra-paragraph-commands ConTeXt-environment-list) "List of variables to be set from languages specific ones.") (defconst ConTeXt-dialect :context "Default dialect for use with function `TeX-add-style-hook' for argument DIALECT-EXPR when the hook is to be run only on ConTeXt file, or any mode derived thereof. See variable `TeX-style-hook-dialect'." ) (defcustom ConTeXt-clean-intermediate-suffixes ;; See *suffixes in texutil.pl. '("\\.tui" "\\.tup" "\\.ted" "\\.tes" "\\.top" "\\.log" "\\.tmp" "\\.run" "\\.bck" "\\.rlg" "\\.mpt" "\\.mpx" "\\.mpd" "\\.mpo" "\\.tuo" "\\.tub" "\\.top" "-mpgraph\\.mp" "-mpgraph\\.mpd" "-mpgraph\\.mpo" "-mpgraph\\.mpy" "-mprun\\.mp" "-mprun\\.mpd" "-mprun\\.mpo" "-mprun\\.mpy") "List of regexps matching suffixes of files to be deleted. The regexps will be anchored at the end of the file name to be matched, i.e. you do _not_ have to cater for this yourself by adding \\\\' or $." :type '(repeat regexp) :group 'TeX-command) (defcustom ConTeXt-clean-output-suffixes '("\\.dvi" "\\.pdf" "\\.ps") "List of regexps matching suffixes of files to be deleted. The regexps will be anchored at the end of the file name to be matched, i.e. you do _not_ have to cater for this yourself by adding \\\\' or $." :type '(repeat regexp) :group 'TeX-command) (TeX-abbrev-mode-setup context-mode) (defun ConTeXt-mode-common-initialization () "Initialization code that is common for all ConTeXt interfaces." ;; `plain-TeX-common-initialization' kills all local variables, but ;; we need to keep ConTeXt-current-interface, so save and restore ;; it. (let (save-ConTeXt-current-interface) (setq save-ConTeXt-current-interface ConTeXt-current-interface) (plain-TeX-common-initialization) (setq ConTeXt-current-interface save-ConTeXt-current-interface)) (setq major-mode 'context-mode) (setq local-abbrev-table context-mode-abbrev-table) (set (make-local-variable 'TeX-style-hook-dialect) ConTeXt-dialect) ;; Make language specific variables buffer local (dolist (symbol ConTeXt-language-variable-list) (make-variable-buffer-local symbol)) (require (intern (concat "context-" ConTeXt-current-interface))) (dolist (symbol ConTeXt-language-variable-list) (set symbol (symbol-value (intern (concat (symbol-name symbol) "-" ConTeXt-current-interface))))) ;; Create certain regular expressions based on language (setq ConTeXt-indent-item-re (concat "\\\\\\(" (mapconcat #'identity ConTeXt-item-list "\\|") "\\)\\>")) ;; What's the deepest level at we can collapse a document? ;; set only if user has not set it. Need to be set before menu is created. ;; level 2 is "section" (or ConTeXt-largest-level (setq ConTeXt-largest-level 2)) ;; keybindings (use-local-map ConTeXt-mode-map) ;; Indenting (set (make-local-variable 'indent-line-function) 'ConTeXt-indent-line) (set (make-local-variable 'fill-indent-according-to-mode) t) ;; Paragraph formatting (set (make-local-variable 'LaTeX-syntactic-comments) nil) (set (make-local-variable 'LaTeX-paragraph-commands-regexp) (ConTeXt-paragraph-commands-regexp)) (set (make-local-variable 'paragraph-ignore-fill-prefix) t) (set (make-local-variable 'fill-paragraph-function) 'LaTeX-fill-paragraph) (set (make-local-variable 'adaptive-fill-mode) nil) (setq paragraph-start (concat "[ \t]*\\(" (ConTeXt-paragraph-commands-regexp) "\\|" "\\$\\$\\|" ; Plain TeX display math "$\\)")) (setq paragraph-separate (concat "[ \t]*\\(" "\\$\\$" ; Plain TeX display math "\\|$\\)")) ;; Keybindings and menu (use-local-map ConTeXt-mode-map) (easy-menu-add ConTeXt-mode-menu ConTeXt-mode-map) (easy-menu-add ConTeXt-mode-command-menu ConTeXt-mode-map) (setq ConTeXt-menu-changed t) (if (fboundp 'make-local-hook) (make-local-hook 'activate-menubar-hook)) (add-hook 'activate-menubar-hook 'ConTeXt-menu-update nil t) ;; Outline support (require 'outline) (set (make-local-variable 'outline-level) 'ConTeXt-outline-level) (set (make-local-variable 'outline-regexp) (ConTeXt-outline-regexp t)) ;;(make-local-variable 'outline-heading-end-regexp) (setq TeX-header-end (ConTeXt-header-end) TeX-trailer-start (ConTeXt-trailer-start)) ;; font switch support (set (make-local-variable 'TeX-font-list) ConTeXt-font-list) ;; imenu support (set (make-local-variable 'imenu-create-index-function) 'ConTeXt-imenu-create-index-function) ;; run hooks (setq TeX-command-default "ConTeXt") (setq TeX-sentinel-default-function 'TeX-ConTeXt-sentinel) (TeX-run-mode-hooks 'text-mode-hook 'TeX-mode-hook 'ConTeXt-mode-hook)) (defun context-guess-current-interface () "Guess what ConTeXt interface the current buffer is using." (interactive) (save-excursion (goto-char (point-min)) (setq ConTeXt-current-interface (cond ((re-search-forward "%.*?interface=en" (+ 512 (point)) t) "en") ((re-search-forward "%.*?interface=nl" (+ 512 (point)) t) "nl") ((re-search-forward "\\\\starttext" (+ 1024 (point)) t) "en") ((re-search-forward "\\\\starttekst" (+ 1024 (point)) t) "nl") (t ConTeXt-default-interface))))) ;;;###autoload (defalias 'ConTeXt-mode 'context-mode) ;;;###autoload (defun context-mode () "Major mode in AUCTeX for editing ConTeXt files. Special commands: \\{ConTeXt-mode-map} Entering `context-mode' calls the value of `text-mode-hook', then the value of `TeX-mode-hook', and then the value of ConTeXt-mode-hook." (interactive) (context-guess-current-interface) (require (intern (concat "context-" ConTeXt-current-interface))) (funcall (intern (concat "context-" ConTeXt-current-interface "-mode")))) (provide 'context) ;;; context.el ends here auctex-11.91/doc/000077500000000000000000000000001313533625700135735ustar00rootroot00000000000000auctex-11.91/doc/.gitignore000066400000000000000000000004111313533625700155570ustar00rootroot00000000000000*.aux *.cp *.cps *.dvi *.fn *.fns *.ky *.kys *.log *.pg *.pgs *.toc *.tp *.vr *.vrs *.tmp *.ps *.pdf *.info *.info-* Makefile CHANGES HISTORY INSTALL INSTALL.windows README TODO FAQ auctex*.html version.texi preview-dtxdoc.texi preview-latex preview-latex.tmp auto auctex-11.91/doc/Makefile.in000066400000000000000000000151671313533625700156520ustar00rootroot00000000000000# Makefile for AUCTeX # Maintainer: auctex-devel@gnu.org # Copyright (C) 2003-2008, 2013-2015 Free Software Foundation, Inc. # This file is part of AUCTeX. # AUCTeX is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # AUCTeX is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # You should have received a copy of the GNU General Public License # along with AUCTeX; see the file COPYING. If not, write to the Free # Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, # MA 02110-1301, USA. prefix=@prefix@$(null) datarootdir=@datarootdir@$(null) datadir=@datadir@$(null) packagedir=@packagedir@$(null) infodir=@infodir@$(null) docdir=@docdir@$(null) TEX=@TEX@ PDFTEX=@PDFTEX@ MAKEINFO=@MAKEINFO@ MAKEINFO_PLAIN=-D rawfile --no-headers INSTALL_INFO=@INSTALL_INFO@ INSTALL=@INSTALL@ INSTALL_DATA=@INSTALL_DATA@ DESTDIR= # If `texi2html' is not available, use `makeinfo' when possible. Set the ToC # file accordingly. Actually, makeinfo >= 5 is needed, but we don't check the # version. ifneq (@TEXI2HTML@,:) TEXI2HTML=@TEXI2HTML@ TEXI2HTML_TOC=auctex_toc.html else ifneq (@MAKEINFO@,:) TEXI2HTML=@MAKEINFO@ --html TEXI2HTML_TOC=index.html else TEXI2HTML=@TEXI2HTML@ TEXI2HTML_TOC=auctex_toc.html endif endif TEXI2DVI=@TEXI2DVI@ TEXI2PDF=@TEXI2PDF@ MKINSTALLDIRS = ../mkinstalldirs DVIPS=@DVIPS@ PERL=@PERL@ AUCTEXDATE=@AUCTEXDATE@ AUCTEXVERSION=@AUCTEXVERSION@ PACKAGE_TARNAME=@PACKAGE_TARNAME@ AUCTEXTEXIFILES = auctex.texi install.texi wininstall.texi intro.texi \ changes.texi todo.texi faq.texi macros.texi quickstart.texi \ fdl.texi version.texi PREVIEWTEXIFILES = copying.texi preview-faq.texi macros.texi \ preview-dtxdoc.texi preview-latex.texi preview-problems.texi \ preview-readme.texi preview-todo.texi version.texi DISTTEXTS = ../README ../INSTALL ../TODO ../INSTALL.windows ../FAQ ../CHANGES \ ../PROBLEMS.preview all: dist info: auctex.info preview-latex.info dvi: auctex.dvi tex-ref.dvi preview-latex.dvi install: install-auctex install-preview install-man: test x$(packagedir) != xno && \ { $(MKINSTALLDIRS) $(DESTDIR)$(packagedir)/man/auctex ; \ for i in $(AUCTEXTEXIFILES) $(PREVIEWTEXIFILES) tex-ref.tex ; \ do echo $(INSTALL_DATA) $$i $(DESTDIR)$(packagedir)/man/auctex; \ $(INSTALL_DATA) $$i $(DESTDIR)$(packagedir)/man/auctex; \ done ; \ } dist: $(DISTTEXTS) preview-latex.info auctex.info tex-ref.pdf extradist: html/$(TEXI2HTML_TOC) auctex.ps auctex.pdf tex-ref.ps tex-ref.pdf .PHONY: all info dvi dist install-auctex disttexts clean distclean \ maintainer-clean install-preview install-man uninstall html-docs \ extradist # AUCTeX html/$(TEXI2HTML_TOC): auctex.texi rm -rf html mkdir html cd html && $(TEXI2HTML) --split=node -I .. ../auctex.texi && \ test ! -d auctex || { mv auctex/* . && rm -rf auctex ; } tex-ref.dvi: tex-ref.tex $(TEX) tex-ref tex-ref.ps: tex-ref.dvi $(DVIPS) tex-ref.dvi -Ppdf -o tex-ref.ps tex-ref.pdf: tex-ref.tex $(PDFTEX) tex-ref.tex version.texi: ../ChangeLog.1 echo @set VERSION $(AUCTEXVERSION) >version.texi echo @set UPDATED $(AUCTEXDATE) >>version.texi auctex.dvi: $(AUCTEXTEXIFILES) $(TEXI2DVI) auctex.texi auctex.pdf: $(AUCTEXTEXIFILES) $(TEXI2PDF) auctex.texi auctex.ps: auctex.dvi $(DVIPS) auctex.dvi -Ppdf -o auctex.ps auctex.info: $(AUCTEXTEXIFILES) $(MAKEINFO) auctex.texi install-auctex: auctex.info tex-ref.pdf -$(MKINSTALLDIRS) $(DESTDIR)$(infodir) rm -f $(DESTDIR)$(infodir)/auctex $(DESTDIR)$(infodir)/auctex-* $(INSTALL_DATA) auctex.info $(DESTDIR)$(infodir) for x in auctex.info-*; do \ if [ -r $$x ]; then \ $(INSTALL_DATA) $$x $(DESTDIR)$(infodir) ; \ fi; \ done -$(INSTALL_INFO) --info-dir=$(DESTDIR)$(infodir) auctex.info test X$(packagedir) != Xno || { \ $(MKINSTALLDIRS) $(DESTDIR)$(docdir); \ rm -f $(DESTDIR)$(docdir)/tex-ref.pdf; \ $(INSTALL_DATA) tex-ref.pdf $(DESTDIR)$(docdir); \ } # preview preview-latex/index.html: $(PREVIEWTEXIFILES) rm -f preview-latex/* $(TEXI2HTML) preview-latex.texi html-docs: preview-latex/index.html preview-dtxdoc.texi: ../latex/preview.dtx preview-dtxdoc.pl -$(PERL) preview-dtxdoc.pl ../latex/preview.dtx \ preview-dtxdoc.texi preview-latex.dvi: $(PREVIEWTEXIFILES) $(TEXI2DVI) preview-latex.texi preview-latex.ps: preview-latex.dvi $(DVIPS) preview-latex.dvi -Ppdf -o preview-latex.ps preview-latex.pdf: $(PREVIEWTEXIFILES) $(TEXI2PDF) preview-latex.texi preview-latex.info: $(PREVIEWTEXIFILES) $(MAKEINFO) preview-latex.texi install-preview: preview-latex.info -$(MKINSTALLDIRS) $(DESTDIR)$(infodir) for x in preview-latex.info* ; do \ $(INSTALL_DATA) $$x $(DESTDIR)$(infodir) ; \ done -$(INSTALL_INFO) --info-dir=$(DESTDIR)$(infodir) preview-latex.info # disttexts ../INSTALL: install.texi macros.texi $(MAKEINFO) $(MAKEINFO_PLAIN) install.texi --output $@ ../INSTALL.windows: wininstall.texi macros.texi $(MAKEINFO) $(MAKEINFO_PLAIN) wininstall.texi --output $@ ../README: intro.texi preview-readme.texi macros.texi $(MAKEINFO) $(MAKEINFO_PLAIN) intro.texi --output $@ $(MAKEINFO) $(MAKEINFO_PLAIN) preview-readme.texi --output - >> $@ ../CHANGES: changes.texi macros.texi $(MAKEINFO) $(MAKEINFO_PLAIN) changes.texi --output $@ ../TODO: todo.texi preview-todo.texi macros.texi $(MAKEINFO) $(MAKEINFO_PLAIN) todo.texi --output $@ $(MAKEINFO) $(MAKEINFO_PLAIN) preview-todo.texi --output - >> $@ ../FAQ: faq.texi preview-faq.texi macros.texi $(MAKEINFO) $(MAKEINFO_PLAIN) faq.texi --output $@ $(MAKEINFO) $(MAKEINFO_PLAIN) --number-sections preview-faq.texi --output - >> $@ ../PROBLEMS.preview: preview-problems.texi macros.texi $(MAKEINFO) $(MAKEINFO_PLAIN) --number-sections preview-problems.texi --output $@ # clean uninstall: for info in $(DESTDIR)$(infodir)/{auctex.info,preview-latex.info}; do \ test ! -f $${info} || \ $(INSTALL_INFO) --delete --info-dir=$(DESTDIR)$(infodir) $${info}; \ done rm -f $(DESTDIR)$(infodir)/auctex.info $(DESTDIR)$(infodir)/auctex.info-* \ $(DESTDIR)$(infodir)/preview-latex.info* test X$(packagedir) != Xno || rm -rf -f $(DESTDIR)$(docdir) clean: rm -f *.dvi *.ps *.pdf *.aux *.cp *.fn *.ky *.log *~ \#*\# \ *.tp *.vr *.pg *.toc *.tp *.bak *.cps *.kys *.tps \ *.fns *.vrs *.pgs *.tmp *.html rm -rf html preview-latex distclean: clean rm -f Makefile maintainer-clean: distclean rm -f INSTALL.windows README CHANGES HISTORY TODO FAQ \ preview-dtxdoc.texi version.texi $(DISTTEXTS) *.info *.info-* auctex-11.91/doc/auctex.texi000066400000000000000000006617601313533625700157770ustar00rootroot00000000000000\input texinfo @comment %**start of header @setfilename auctex.info @include version.texi @settitle AUCTeX @value{VERSION} @c footnotestyle separate @c paragraphindent 2 @comment %**end of header @include macros.texi @copying This manual is for @AUCTeX{} (version @value{VERSION} from @value{UPDATED}), a sophisticated TeX environment for Emacs. Copyright @copyright{} 1992-1995, 2001, 2002, 2004-2017 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts and no Back-Cover Texts. A copy of the license is included in the section entitled ``GNU Free Documentation License.'' @end quotation @end copying @dircategory Emacs @direntry * AUCTeX: (auctex). A sophisticated TeX environment for Emacs. @end direntry @dircategory TeX @direntry * AUCTeX: (auctex). A sophisticated TeX environment for Emacs. @end direntry @iftex @tolerance 10000 @emergencystretch 3em @end iftex @finalout @titlepage @title @AUCTeX{} @subtitle A sophisticated @TeX{} environment for Emacs @subtitle Version @value{VERSION}, @value{UPDATED} @author Kresten Krab Thorup @author Per Abrahamsen @author David Kastrup and others @page @vskip 0pt plus 1filll @insertcopying @end titlepage @c Use @ifinfo _and_ @ifhtml here because Texinfo 3 cannot cope with @c @ifnottex around a top node. @ifinfo @node top @top @AUCTeX{} This manual may be copied under the conditions spelled out in @ref{Copying this Manual}. @end ifinfo @ifhtml @node top @top @AUCTeX{} @insertcopying @end ifhtml @contents @iftex @unnumbered Executive Summary @end iftex @AUCTeX{} is an integrated environment for editing @LaTeX{}, @ConTeXt{}, doc@TeX{}, Texinfo, and @TeX{} files. Although @AUCTeX{} contains a large number of features, there are no reasons to despair. You can continue to write @TeX{} and @LaTeX{} documents the way you are used to, and only start using the multiple features in small steps. @AUCTeX{} is not monolithic, each feature described in this manual is useful by itself, but together they provide an environment where you will make very few @LaTeX{} errors, and makes it easy to find the errors that may slip through anyway. It is a good idea to make a printout of @AUCTeX{}'s reference card @file{tex-ref.tex} or one of its typeset versions. If you want to make @AUCTeX{} aware of style files and multi-file documents right away, insert the following in your @file{.emacs} file. @lisp (setq TeX-auto-save t) (setq TeX-parse-self t) (setq-default TeX-master nil) @end lisp Another thing you should enable is Ref@TeX{}, a comprehensive solution for managing cross references, bibliographies, indices, document navigation and a few other things. (@pxref{Installation,,,reftex,The Ref@TeX{} manual}) For detailed information about the @previewlatex{} subsystem of @AUCTeX{}, see @ref{Top,,Introduction,preview-latex,The @previewlatex{} Manual}. There is a mailing list for general discussion about @AUCTeX{}: write a mail with ``subscribe'' in the subject to @email{auctex-request@@gnu.org} to join it. Send contributions to @email{auctex@@gnu.org}. Bug reports should go to @email{bug-auctex@@gnu.org}, suggestions for new features, and pleas for help should go to either @email{auctex-devel@@gnu.org} (the @AUCTeX{} developers), or to @email{auctex@@gnu.org} if they might have general interest. Please use the command @kbd{M-x TeX-submit-bug-report RET} to report bugs if possible. You can subscribe to a low-volume announcement list by sending ``subscribe'' in the subject of a mail to @email{info-auctex-request@@gnu.org}. @menu * Copying:: Copying * Introduction:: Introduction to @AUCTeX{} * Editing:: Editing the Document Source * Display:: Controlling Screen Display * Processing:: Starting Processors, Viewers and Other Programs * Customization:: Customization and Extension * Appendices:: Copying, Changes, Development, FAQ, Texinfo mode * Indices:: Indices @detailmenu --- The Detailed Node Listing --- Introduction * Summary:: Overview of @AUCTeX{} * Installation:: Installing @AUCTeX{} * Quick Start:: Quick Start Editing the Document Source * Quotes:: Inserting double quotes * Font Specifiers:: Inserting Font Specifiers * Sectioning:: Inserting chapters, sections, etc. * Environments:: Inserting Environment Templates * Mathematics:: Entering Mathematics * Completion:: Completion of macros * Commenting:: Commenting text * Indenting:: Reflecting syntactic constructs with whitespace * Filling:: Automatic and manual line breaking Inserting Environment Templates * Equations:: Equations * Floats:: Floats * Itemize-like:: Itemize-like Environments * Tabular-like:: Tabular-like Environments * Customizing Environments:: Customizing Environments Controlling Screen Display * Font Locking:: Font Locking * Folding:: Folding Macros and Environments * Outline:: Outlining the Document * Narrowing:: Restricting display and editing to a portion of the buffer * Prettifying:: Displaying Greek and math macros as Unicode characters Font Locking * Fontification of macros:: Fontification of macros * Fontification of quotes:: Fontification of quotes * Fontification of math:: Fontification of math constructs * Verbatim content:: Verbatim macros and environments * Faces:: Faces used by font-latex Starting Processors, Viewers and Other Programs * Commands:: Invoking external commands. * Viewing:: Invoking external viewers. * Debugging:: Debugging @TeX{} and @LaTeX{} output. * Checking:: Checking the document. * Control:: Controlling the processes. * Cleaning:: Cleaning intermediate and output files. * Documentation:: Documentation about macros and packages. Viewing the Formatted Output * Starting Viewers:: Starting viewers * I/O Correlation:: Forward and inverse search Catching the errors * Ignoring warnings:: Controlling warnings to be reported * Error overview:: List of all errors and warnings Customization and Extension * Multifile:: Multifile Documents * Parsing Files:: Automatic Parsing of @TeX{} Files * Internationalization:: Language Support * Automatic:: Automatic Customization * Style Files:: Writing Your Own Style Support Language Support * European:: Using @AUCTeX{} with European Languages * Japanese:: Using @AUCTeX{} with Japanese Automatic Customization * Automatic Global:: Automatic Customization for the Site * Automatic Private:: Automatic Customization for a User * Automatic Local:: Automatic Customization for a Directory Writing Your Own Style Support * Simple Style:: A Simple Style File * Adding Macros:: Adding Support for Macros * Adding Environments:: Adding Support for Environments * Adding Other:: Adding Other Information * Hacking the Parser:: Automatic Extraction of New Things Copying, Changes, Development, FAQ * Copying this Manual:: * Changes:: * Development:: * FAQ:: * Texinfo mode:: Copying this Manual * GNU Free Documentation License:: License for copying this manual. Indices * Key Index:: * Function Index:: * Variable Index:: * Concept Index:: @end detailmenu @end menu @node Copying @unnumbered Copying @cindex Copying @cindex Copyright @cindex GPL @cindex General Public License @cindex License @cindex Free @cindex Free software @cindex Distribution @cindex Right @cindex Warranty @c This text adapted from the Texinfo 2.16 distribution. @AUCTeX{} primarily consists of Lisp files for Emacs (and XEmacs), but there are also installation scripts and files and @TeX{} support files. All of those are @dfn{free}; this means that everyone is free to use them and free to redistribute them on a free basis. The files of @AUCTeX{} are not in the public domain; they are copyrighted and there are restrictions on their distribution, but these restrictions are designed to permit everything that a good cooperating citizen would want to do. What is not allowed is to try to prevent others from further sharing any version of these programs that they might get from you. Specifically, we want to make sure that you have the right to give away copies of the files that constitute @AUCTeX{}, that you receive source code or else can get it if you want it, that you can change these files or use pieces of them in new free programs, and that you know you can do these things. To make sure that everyone has such rights, we have to forbid you to deprive anyone else of these rights. For example, if you distribute copies of parts of @AUCTeX{}, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must tell them their rights. Also, for our own protection, we must make certain that everyone finds out that there is no warranty for @AUCTeX{}. If any parts are modified by someone else and passed on, we want their recipients to know that what they have is not what we distributed, so that any problems introduced by others will not reflect on our reputation. The precise conditions of the licenses for the files currently being distributed as part of @AUCTeX{} are found in the General Public Licenses that accompany them. This manual specifically is covered by the GNU Free Documentation License (@pxref{Copying this Manual}). @node Introduction @chapter Introduction @menu * Summary:: Overview of @AUCTeX{} * Installation:: Installing @AUCTeX{} * Quick Start:: Quick Start @end menu @lowersections @include intro.texi @include install.texi @include quickstart.texi @raisesections @node Editing @chapter Editing the Document Source The most commonly used commands/macros of @AUCTeX{} are those which simply insert templates for often used @TeX{}, @LaTeX{}, or @ConTeXt{} constructs, like font changes, handling of environments, etc. These features are very simple, and easy to learn, and help you avoid mistakes like mismatched braces, or @samp{\begin@{@}}-@samp{\end@{@}} pairs. Apart from that this chapter contains a description of some features for entering more specialized sorts of text, for formatting the source by indenting and filling and for navigating through the document. @menu * Quotes:: Inserting quotes, dollars, and braces * Font Specifiers:: Inserting Font Specifiers * Sectioning:: Inserting chapters, sections, etc. * Environments:: Inserting Environment Templates * Mathematics:: Entering Mathematics * Completion:: Completion of macros * Marking:: Marking Environments, Sections, or Texinfo Nodes * Commenting:: Commenting text * Indenting:: Reflecting syntactic constructs with whitespace * Filling:: Automatic and manual line breaking @end menu @node Quotes @section Insertion of Quotes, Dollars, and Braces @cindex Quotes @cindex Double quotes @cindex Braces @cindex Brackets @cindex Dollars @cindex Math mode delimiters @cindex Matching dollar signs @cindex Display math mode @subheading Quotation Marks In @TeX{}, literal double quotes @samp{"like this"} are seldom used, instead two single quotes are used @samp{``like this''}. To help you insert these efficiently, @AUCTeX{} allows you to continue to press @kbd{"} to insert two single quotes. To get a literal double quote, press @kbd{"} twice. @deffn Command TeX-insert-quote @var{count} @kindex " (@kbd{"}) Insert the appropriate quote marks for @TeX{}. Inserts the value of @code{TeX-open-quote} (normally @samp{``}) or @code{TeX-close-quote} (normally @samp{''}) depending on the context. With prefix argument, always inserts @samp{"} characters. @end deffn @defopt TeX-open-quote String inserted by typing @kbd{"} to open a quotation. (@xref{European}, for language-specific quotation mark insertion.) @end defopt @defopt TeX-close-quote String inserted by typing @kbd{"} to close a quotation. (@xref{European}, for language-specific quotation mark insertion.) @end defopt @defopt TeX-quote-after-quote Determines the behavior of @kbd{"}. If it is non-nil, typing @kbd{"} will insert a literal double quote. The respective values of @code{TeX-open-quote} and @code{TeX-close-quote} will be inserted after typing @kbd{"} once again. @end defopt The @samp{babel} package provides special support for the requirements of typesetting quotation marks in many different languages. If you use this package, either directly or by loading a language-specific style file, you should also use the special commands for quote insertion instead of the standard quotes shown above. @AUCTeX{} is able to recognize several of these languages and will change quote insertion accordingly. @xref{European}, for details about this feature and how to control it. @vindex LaTeX-csquotes-open-quote @vindex LaTeX-csquotes-close-quote @vindex LaTeX-csquotes-quote-after-quote In case you are using the @samp{csquotes} package, you should customize @code{LaTeX-csquotes-open-quote}, @code{LaTeX-csquotes-close-quote} and @code{LaTeX-csquotes-quote-after-quote}. The quotation characters will only be used if both variables---@code{LaTeX-csquotes-open-quote} and @code{LaTeX-csquotes-close-quote}---are non-empty strings. But then the @samp{csquotes}-related values will take precedence over the language-specific ones. @subheading Dollar Signs In @AUCTeX{}, dollar signs should match like they do in @TeX{}. This has been partially implemented, we assume dollar signs always match within a paragraph. By default, the first @samp{$} you insert in a paragraph will do nothing special. The second @samp{$} will match the first. This will be indicated by moving the cursor temporarily over the first dollar sign. @deffn Command TeX-insert-dollar @var{arg} @kindex $ (@kbd{$}) Insert dollar sign. Show matching dollar sign if this dollar sign end the @TeX{} math mode. With optional @var{arg}, insert that many dollar signs. @end deffn @TeX{} and @LaTeX{} users often look for a way to insert inline equations like @samp{$...$} or @samp{\(...\)} simply typing @kbd{$}. @AUCTeX{} helps them through the customizable variable @code{TeX-electric-math}. @defopt TeX-electric-math If the variable is non-nil and you type @kbd{$} outside math mode, @AUCTeX{} will automatically insert the opening and closing symbols for an inline equation and put the point between them. The opening symbol will blink when @code{blink-matching-paren} is non-nil. If @code{TeX-electric-math} is nil, typing @kbd{$} simply inserts @samp{$} at point, this is the default. Besides @code{nil}, possible values for this variable are @code{(cons "$" "$")} for @TeX{} inline equations @samp{$...$}, and @code{(cons "\\(" "\\)")} for @LaTeX{} inline equations @samp{\(...\)}. If the variable is non-nil and point is inside math mode right between a couple of single dollars, pressing @kbd{$} will insert another pair of dollar signs and leave the point between them. Thus, if @code{TeX-electric-math} is set to @code{(cons "$" "$")} you can easily obtain a @TeX{} display equation @samp{$$...$$} by pressing @kbd{$} twice in a row. (Note that you should not use double dollar signs in @LaTeX{} because this practice can lead to wrong spacing in typeset documents.) In addition, when the variable is non-nil and there is an active region outside math mode, typing @kbd{$} will put around the active region symbols for opening and closing inline equation and keep the region active, leaving point after the closing symbol. By pressing repeatedly @kbd{$} while the region is active you can toggle between an inline equation, a display equation, and no equation. To be precise, @samp{$...$} is replaced by @samp{$$...$$}, whereas @samp{\(...\)} is replaced by @samp{\[...\]}. @end defopt If you want to automatically insert @samp{$...$} in plain @TeX{} files, and @samp{\(...\)} in @LaTeX{} files by pressing @kbd{$}, add the following to your init file @lisp (add-hook 'plain-TeX-mode-hook (lambda () (set (make-variable-buffer-local 'TeX-electric-math) (cons "$" "$")))) (add-hook 'LaTeX-mode-hook (lambda () (set (make-variable-buffer-local 'TeX-electric-math) (cons "\\(" "\\)")))) @end lisp @subheading Braces To avoid unbalanced braces, it is useful to insert them pairwise. You can do this by typing @kbd{C-c @{}. @deffn Command TeX-insert-braces @kindex C-c @{ (@kbd{C-c @{}) Make a pair of braces and position the cursor to type inside of them. If there is an active region, put braces around it and leave point after the closing brace. @end deffn When writing complex math formulas in @LaTeX{} documents, you sometimes need to adjust the size of braces with pairs of macros like @samp{\left}-@samp{\right}, @samp{\bigl}-@samp{\bigr} and so on. You can avoid unbalanced pairs with the help of @code{TeX-insert-macro}, bound to @kbd{C-c C-m} or @kbd{C-c @key{RET}} (@pxref{Completion}). If you insert left size adjusting macros such as @samp{\left}, @samp{\bigl} etc. with @code{TeX-insert-macro}, it asks for left brace to use and supplies automatically right size adjusting macros such as @samp{\right}, @samp{\bigr} etc. and corresponding right brace in addtion to the intended left macro and left brace. The completion by @code{TeX-insert-macro} also applies when entering macros such as @samp{\langle}, @samp{\lfloor} and @samp{\lceil}, which produce the left part of the paired braces. For example, inserting @samp{\lfloor} by @kbd{C-c C-m} is immediately followed by the insertion of @samp{\rfloor}. In addition, if the point was located just after @samp{\left} or its friends, the corresponding @samp{\right} etc. will be inserted in front of @samp{\rfloor}. In both cases, active region is honored. As a side effect, when @code{LaTeX-math-mode} (@pxref{Mathematics}) is on, just typing @kbd{`(} inserts not only @samp{\langle}, but also @samp{\rangle}. If you do not like such auto completion at all, it can be disabled by a user option. @defopt TeX-arg-right-insert-p If this option is turned off, the automatic supply of the right macros and braces is suppressed. @end defopt When you edit @LaTeX{} documents, you can enable automatic brace pairing when typing @kbd{(}, @kbd{@{} and @kbd{[}. @defopt LaTeX-electric-left-right-brace If this option is on, just typing @kbd{(}, @kbd{@{} or @kbd{[} immediately adds the corresponding right brace @samp{)}, @samp{@}} or @samp{]}. The point is left after the opening brace. If there is an active region, braces are put around it. They recognize the preceeding backslash or size adjusting macros such as @samp{\left}, @samp{\bigl} etc., so the following completions will occur: @itemize @bullet @item (when typing single left brace) @itemize @minus @item @samp{(} -> @samp{()} @item @samp{@{} -> @samp{@{@}} @item @samp{[} -> @samp{[]} @end itemize @item (when typing left brace just after a backslash) @itemize @minus @item @samp{\(} -> @samp{\(\)} @item @samp{\@{} -> @samp{\@{\@}} @item @samp{\[} -> @samp{\[\]} @end itemize @item (when typing just after @samp{\left} or @samp{\bigl}) @itemize @minus @item @samp{\left(} -> @samp{\left(\right)} @item @samp{\bigl[} -> @samp{\bigl[\bigr]} @end itemize @item (when typing just after @samp{\Bigl\}) @itemize @minus @item @samp{\Bigl\@{} -> @samp{\Bigl\@{\Bigr\@}} @end itemize @end itemize This auto completion feature may be a bit annoying when editing an already existing @LaTeX{} document. In that case, use @kbd{C-u 1} or @kbd{C-q} before typing @kbd{(}, @kbd{@{} or @kbd{[}. Then no completion is done and just a single left brace is inserted. In fact, with optional prefix @var{arg}, just that many open braces are inserted without any completion. @end defopt @node Font Specifiers @section Inserting Font Specifiers @cindex Fonts @cindex Font macros @cindex Changing font @cindex Specifying a font Perhaps the most used keyboard commands of @AUCTeX{} are the short-cuts available for easy insertion of font changing macros. If you give an argument (that is, type @kbd{C-u}) to the font command, the innermost font will be replaced, i.e. the font in the @TeX{} group around point will be changed. The following table shows the available commands, with @code{@point{}} indicating the position where the text will be inserted. @table @kbd @item C-c C-f C-b @kindex C-c C-f C-b @cindex @code{\textbf} Insert @b{bold face} @samp{\textbf@{@point{}@}} text. @item C-c C-f C-i @kindex C-c C-f C-i @cindex @code{\textit} Insert @i{italics} @samp{\textit@{@point{}@}} text. @item C-c C-f C-e @kindex C-c C-f C-e @cindex @code{\emph} Insert @i{emphasized} @samp{\emph@{@point{}@}} text. @item C-c C-f C-s @kindex C-c C-f C-s @cindex @code{\textsl} Insert @i{slanted} @samp{\textsl@{@point{}@}} text. @item C-c C-f C-r @kindex C-c C-f C-r @cindex @code{\textrm} Insert roman @r{\textrm@{@point{}@}} text. @item C-c C-f C-f @kindex C-c C-f C-f @cindex @code{\textsf} Insert @sansserif{sans serif} @samp{\textsf@{@point{}@}} text. @item C-c C-f C-t @kindex C-c C-f C-t @cindex @code{\texttt} Insert @t{typewriter} @samp{\texttt@{@point{}@}} text. @item C-c C-f C-c @kindex C-c C-f C-c @cindex @code{\textsc} Insert @sc{small caps} @samp{\textsc@{@point{}@}} text. @item C-c C-f C-d @kindex C-c C-f C-c @cindex Deleting fonts Delete the innermost font specification containing point. @end table @deffn Command TeX-font replace what @kindex C-c C-f (@kbd{C-c C-f}) Insert template for font change command. If @var{replace} is not nil, replace current font. @var{what} determines the font to use, as specified by @code{TeX-font-list}. @end deffn @defopt TeX-font-list List of fonts used by @code{TeX-font}. Each entry is a list with three elements. The first element is the key to activate the font. The second element is the string to insert before point, and the third element is the string to insert after point. An optional fourth element means always replace if not nil. @end defopt @defopt LaTeX-font-list List of fonts used by @code{TeX-font} in LaTeX mode. It has the same structure as @code{TeX-font-list}. @end defopt @node Sectioning @section Inserting chapters, sections, etc. @cindex Sectioning @cindex Sections @cindex Chapters @cindex @code{\chapter} @cindex @code{\section} @cindex @code{\subsection} @cindex @code{\label} Insertion of sectioning macros, that is @samp{\chapter}, @samp{\section}, @samp{\subsection}, etc. and accompanying @samp{\label}'s may be eased by using @kbd{C-c C-s}. This command is highly customizable, the following describes the default behavior. When invoking you will be asked for a section macro to insert. An appropriate default is automatically selected by @AUCTeX{}, that is either: at the top of the document; the top level sectioning for that document style, and any other place: The same as the last occurring sectioning command. Next, you will be asked for the actual name of that section, and last you will be asked for a label to be associated with that section. The label will be prefixed by the value specified in @code{LaTeX-section-hook}. @deffn Command LaTeX-section @var{arg} @kindex C-c C-s (@kbd{C-c C-s}) Insert a sectioning command. Determine the type of section to be inserted, by the argument @var{arg}. @itemize @bullet @item If @var{arg} is nil or missing, use the current level. @item If @var{arg} is a list (selected by C-u), go downward one level. @item If @var{arg} is negative, go up that many levels. @item If @var{arg} is positive or zero, use absolute level: @itemize + @item 0 : part @item 1 : chapter @item 2 : section @item 3 : subsection @item 4 : subsubsection @item 5 : paragraph @item 6 : subparagraph @end itemize @end itemize The following variables can be set to customize the function. @vtable @code @item LaTeX-section-hook Hooks to be run when inserting a section. @item LaTeX-section-label Prefix to all section references. @end vtable @end deffn The precise behavior of @code{LaTeX-section} is defined by the contents of @code{LaTeX-section-hook}. @defopt LaTeX-section-hook List of hooks to run when a new section is inserted. The following variables are set before the hooks are run @table @var @item level Numeric section level, default set by prefix arg to @code{LaTeX-section}. @item name Name of the sectioning command, derived from @var{level}. @item title The title of the section, default to an empty string. @item toc Entry for the table of contents list, default nil. @item done-mark Position of point afterwards, default nil meaning after the inserted text. @end table A number of hooks are already defined. Most likely, you will be able to get the desired functionality by choosing from these hooks. @ftable @code @item LaTeX-section-heading Query the user about the name of the sectioning command. Modifies @var{level} and @var{name}. @item LaTeX-section-title Query the user about the title of the section. Modifies @var{title}. @item LaTeX-section-toc Query the user for the toc entry. Modifies @var{toc}. @item LaTeX-section-section Insert @LaTeX{} section command according to @var{name}, @var{title}, and @var{toc}. If @var{toc} is nil, no toc entry is inserted. If @var{toc} or @var{title} are empty strings, @var{done-mark} will be placed at the point they should be inserted. @item LaTeX-section-label Insert a label after the section command. Controlled by the variable @code{LaTeX-section-label}. @end ftable To get a full featured @code{LaTeX-section} command, insert @lisp (setq LaTeX-section-hook '(LaTeX-section-heading LaTeX-section-title LaTeX-section-toc LaTeX-section-section LaTeX-section-label)) @end lisp in your @file{.emacs} file. @end defopt The behavior of @code{LaTeX-section-label} is determined by the variable @code{LaTeX-section-label}. @defopt LaTeX-section-label Default prefix when asking for a label. If it is a string, it is used unchanged for all kinds of sections. If it is nil, no label is inserted. If it is a list, the list is searched for a member whose car is equal to the name of the sectioning command being inserted. The cdr is then used as the prefix. If the name is not found, or if the cdr is nil, no label is inserted. @cindex Prefix for labels @cindex Label prefix @cindex Labels By default, chapters have a prefix of @samp{cha:} while sections and subsections have a prefix of @samp{sec:}. Labels are not automatically inserted for other types of sections. @end defopt @node Environments @section Inserting Environment Templates @cindex Environments @cindex @samp{\begin} @cindex @samp{\end} A large apparatus is available that supports insertions of environments, that is @samp{\begin@{@}} --- @samp{\end@{@}} pairs. @AUCTeX{} is aware of most of the actual environments available in a specific document. This is achieved by examining your @samp{\documentclass} command, and consulting a precompiled list of environments available in a large number of styles. Most of these are described further in the following sections, and you may easily specify more. @xref{Customizing Environments}. You insert an environment with @kbd{C-c C-e}, and select an environment type. Depending on the environment, @AUCTeX{} may ask more questions about the optional parts of the selected environment type. With @kbd{C-u C-c C-e} you will change the current environment. @deffn Command LaTeX-environment @var{arg} @kindex C-c C-e (@kbd{C-c C-e}) @AUCTeX{} will prompt you for an environment to insert. At this prompt, you may press @key{TAB} or @key{SPC} to complete a partially written name, and/or to get a list of available environments. After selection of a specific environment @AUCTeX{} may prompt you for further specifications. If the optional argument @var{arg} is not-nil (i.e. you have given a prefix argument), the current environment is modified and no new environment is inserted. @end deffn @AUCTeX{} helps you adding labels to environments which use them, such as @samp{equation}, @samp{figure}, @samp{table}, etc@dots{} When you insert one of the supported environments with @kbd{C-c C-e}, you will be automatically prompted for a label. You can select the prefix to be used for such environments with the @code{LaTeX-label-alist} variable. @defopt LaTeX-label-alist List the prefixes to be used for the label of each supported environment. This is an alist whose car is the environment name, and the cdr either the prefix or a symbol referring to one. If the name is not found, or if the cdr is nil, no label is automatically inserted for that environment. If you want to automatically insert a label for a environment but with an empty prefix, use the empty string @code{""} as the cdr of the corresponding entry. @end defopt As a default selection, @AUCTeX{} will suggest the environment last inserted or, as the first choice the value of the variable @code{LaTeX-default-environment}. @defopt LaTeX-default-environment Default environment to insert when invoking @samp{LaTeX-environment} first time. When the current environment is @samp{document}, it is overriden by @code{LaTeX-default-document-environment}. @end defopt @defvar LaTeX-default-document-environment Default environment when invoking @samp{LaTeX-environment} and the current environment is @samp{document}. It is intended to be used in @LaTeX{} class style files. For example, in @file{beamer.el} it is set to @code{frame}, in @file{letter.el} to @code{letter}, and in @file{slides.el} to @code{slide}. @end defvar If the document is empty, or the cursor is placed at the top of the document, @AUCTeX{} will default to insert a @samp{document} environment prompting also for the insertion of @samp{\documentclass} and @samp{\usepackage} macros. You will be prompted for a new package until you enter nothing. If you do not want to insert any @samp{\usepackage} at all, just press @key{RET} at the first @samp{Packages} prompt. @AUCTeX{} distinguishes normal and expert environments. By default, it will offer completion only for normal environments. This behavior is controlled by the user option @code{TeX-complete-expert-commands}. @defopt TeX-complete-expert-commands Complete macros and environments marked as expert commands. Possible values are nil, t, or a list of style names. @table @asis @item nil Don't complete expert commands (default). @item t Always complete expert commands. @item (STYLES @dots{}) Only complete expert commands of STYLES. @end table @end defopt @menu * Equations:: Equations * Floats:: Floats * Itemize-like:: Itemize-like Environments * Tabular-like:: Tabular-like Environments * Customizing Environments:: Customizing Environments @end menu You can close the current environment with @kbd{C-c ]}, but we suggest that you use @kbd{C-c C-e} to insert complete environments instead. @deffn Command LaTeX-close-environment @kindex C-c ] (@kbd{C-c ]}) Insert an @samp{\end} that matches the current environment. @end deffn @AUCTeX{} offers keyboard shortcuts for moving point to the beginning and to the end of the current environment. @deffn Command LaTeX-find-matching-begin @kindex C-M-a (@kbd{C-M-a}) Move point to the @samp{\begin} of the current environment. If this command is called inside a comment and @code{LaTeX-syntactic-comments} is enabled, try to find the environment in commented regions with the same comment prefix. @end deffn @deffn Command LaTeX-find-matching-end @kindex C-M-e (@kbd{C-M-e}) Move point to the @samp{\end} of the current environment. If this command is called inside a comment and @code{LaTeX-syntactic-comments} is enabled, try to find the environment in commented regions with the same comment prefix. @end deffn @node Equations @subsection Equations @cindex Equations @cindex Equation @cindex Eqnarray @cindex amsmath When inserting equation-like environments, the @samp{\label} will have a default prefix, which is controlled by the following variables: @defopt LaTeX-equation-label Prefix to use for `equation' labels. @end defopt @defopt LaTeX-eqnarray-label Prefix to use for `eqnarray' labels. @end defopt @defopt LaTeX-amsmath-label Prefix to use for amsmath equation labels. Amsmath equations include @samp{align}, @samp{alignat}, @samp{xalignat}, @samp{aligned}, @samp{flalign} and @samp{gather}. @end defopt @node Floats @subsection Floats @cindex Floats @cindex Figures @cindex Figure environment @cindex Tables @cindex Table environment Figures and tables (i.e., floats) may also be inserted using @AUCTeX{}. After choosing either `figure' or `table' in the environment list described above, you will be prompted for a number of additional things. @table @var @item float position This is the optional argument of float environments that controls how they are placed in the final document. In @LaTeX{} this is a sequence of the letters @samp{htbp} as described in the @LaTeX{} manual. The value will default to the value of @code{LaTeX-float}. @vindex LaTeX-float @item caption This is the caption of the float. The default is to insert the caption at the bottom of the float. You can specify floats where the caption should be placed at the top with @code{LaTeX-top-caption-list}. @vindex LaTeX-top-caption-list @item short caption If the specified caption is greater than a specific length, then a short caption is prompted for and it is inserted as an optional argument to the @samp{\caption} macro. The length that a caption needs to be before prompting for a short version is controlled by @code{LaTeX-short-caption-prompt-length}. @vindex LaTeX-short-caption-prompt-length @item label The label of this float. The label will have a default prefix, which is controlled by the variables @code{LaTeX-figure-label} and @code{LaTeX-table-label}. @vindex LaTeX-figure-label @vindex LaTeX-table-label @cindex Prefix for labels @cindex Label prefix @cindex Labels @end table Moreover, you will be asked if you want the contents of the float environment to be horizontally centered. Upon a positive answer a @samp{\centering} macro will be inserted at the beginning of the float environment. @defopt LaTeX-float Default placement for floats. @end defopt @defopt LaTeX-figure-label Prefix to use for figure labels. @end defopt @defopt LaTeX-table-label Prefix to use for table labels. @end defopt @defopt LaTeX-top-caption-list List of float environments with top caption. @end defopt @defopt LaTeX-short-caption-prompt-length Number of chars a caption should be before prompting for a short caption. @end defopt @node Itemize-like @subsection Itemize-like Environments @cindex Itemize @cindex Enumerates @cindex Descriptions @cindex Items @cindex \item In an itemize-like environment, nodes (i.e., @samp{\item}s) may be inserted using @kbd{C-c @key{LFD}}. @deffn Command LaTeX-insert-item @kindex C-c @key{LFD} (@kbd{C-c @key{LFD}}) Close the current item, move to the next line and insert an appropriate @samp{\item} for the current environment. That is, `itemize' and `enumerate' will have @samp{\item } inserted, while `description' will have @samp{\item[]} inserted. @end deffn @defopt TeX-arg-item-label-p If non-nil, you will always be asked for optional label in items. Otherwise, you will be asked only in description environments. @end defopt @node Tabular-like @subsection Tabular-like Environments @cindex amsmath When inserting Tabular-like environments, that is, `tabular' `array' etc., you will be prompted for a template for that environment. Related variables: @defopt LaTeX-default-format Default format string for array and tabular environments. @end defopt @defopt LaTeX-default-width Default width for minipage and tabular* environments. @end defopt @defopt LaTeX-default-position Default position string for array and tabular environments. If nil, act like the empty string is given, but don't prompt for a position. @end defopt @AUCTeX{} calculates the number of columns from the format string and inserts the suitable number of ampersands. You can use @kbd{C-c @key{LFD}} (@code{LaTeX-insert-item}) to terminate rows in these environments. It supplies line break macro @samp{\\} and inserts the suitable number of ampersands on the next line. @AUCTeX{} also supports the @samp{*@{num@}@{cols@}} notation (which may contain another @samp{*}-expression) in the format string when calculating the number of ampersands. Please note that @samp{num} and @samp{cols} must be enclosed in braces; expressions like @samp{*2l} are not recognized correctly by the algorithm. @deffn Command LaTeX-insert-item @kindex C-c @key{LFD} (@kbd{C-c @key{LFD}}) Close the current row with @samp{\\}, move to the next line and insert an appropriate number of ampersands for the current environment. @end deffn Similar supports are provided for various amsmath environments such as @samp{align}, @samp{gather}, @samp{alignat}, @samp{matrix} etc. Try typing @kbd{C-c @key{LFD}} in these environments. It recognizes the current environment and does the appropriate job depending on the context. @node Customizing Environments @subsection Customizing Environments @xref{Adding Environments}, for how to customize the list of known environments. @node Mathematics @section Entering Mathematics @cindex Mathematics @cindex Symbols @cindex Abbreviations @TeX{} is written by a mathematician, and has always contained good support for formatting mathematical text. @AUCTeX{} supports this tradition, by offering a special minor mode for entering text with many mathematical symbols. You can enter this mode by typing @kbd{C-c ~}. @deffn Command LaTeX-math-mode @kindex C-c ~ (@kbd{C-c ~}) Toggle LaTeX Math mode. This is a minor mode rebinding the key @code{LaTeX-math-abbrev-prefix} to allow easy typing of mathematical symbols. @kbd{`} will read a character from the keyboard, and insert the symbol as specified in @code{LaTeX-math-default} and @code{LaTeX-math-list}. If given a prefix argument, the symbol will be surrounded by dollar signs. @end deffn You can use another prefix key (instead of @kbd{`}) by setting the variable @code{LaTeX-math-abbrev-prefix}. To enable LaTeX Math mode by default, add the following in your @file{.emacs} file: @lisp (add-hook 'LaTeX-mode-hook 'LaTeX-math-mode) @end lisp @defopt LaTeX-math-abbrev-prefix A string containing the prefix of @code{LaTeX-math-mode} commands; This value defaults to @kbd{`}. The string has to be a key or key sequence in a format understood by the @code{kbd} macro. This corresponds to the syntax usually used in the manuals for Emacs Emacs Lisp. @end defopt The variable @code{LaTeX-math-list} allows you to add your own mappings. @defopt LaTeX-math-list A list containing user-defined keys and commands to be used in LaTeX Math mode. Each entry should be a list of two to four elements. First, the key to be used after @code{LaTeX-math-abbrev-prefix} for macro insertion. If it is nil, the symbol has no associated keystroke (it is available in the menu, though). Second, a string representing the name of the macro (without a leading backslash.) Third, a string representing the name of a submenu the command should be added to. Use a list of strings in case of nested menus. Fourth, the position of a Unicode character to be displayed in the menu alongside the macro name. This is an integer value. @end defopt @defopt LaTeX-math-menu-unicode Whether the LaTeX menu should try using Unicode for effect. Your Emacs built must be able to display include Unicode characters in menus for this feature. @end defopt @AUCTeX{}'s reference card @file{tex-ref.tex} includes a list of all math mode commands. @AUCTeX{} can help you write subscripts and superscripts in math constructs by automatically inserting a pair of braces after typing @key{_} or @key{^} respectively and putting point between the braces. In order to enable this feature, set the variable @code{TeX-electric-sub-and-superscript} to a non-nil value. @defopt TeX-electric-sub-and-superscript If non-nil, insert braces after typing @key{^} and @key{_} in math mode. @end defopt @node Completion @section Completion @cindex Completion @cindex Expansion @cindex Macro expansion @cindex Macro completion @cindex Macro arguments @cindex Arguments to @TeX{} macros Emacs lisp programmers probably know the @code{lisp-complete-symbol} command which was bound to @kbd{M-@key{TAB}} until completion-at-point became the new standard completion facility (see below). Users of the wonderful ispell mode know and love the @code{ispell-complete-word} command from that package. Similarly, @AUCTeX{} has a @code{TeX-complete-symbol} command, by default bound to @kbd{M-@key{TAB}} which is equivalent to @kbd{M-C-i}. Using @code{TeX-complete-symbol} makes it easier to type and remember the names of long @LaTeX{} macros. In order to use @code{TeX-complete-symbol}, you should write a backslash and the start of the macro. Typing @kbd{M-@key{TAB}} will now complete as much of the macro, as it unambiguously can. For example, if you type `@samp{\renewc}' and then @kbd{M-@key{TAB}}, it will expand to `@samp{\renewcommand}'. But there's more: if point is just after @samp{\begin@{}, then @code{TeX-complete-symbol} will complete @LaTeX{} environments, etc. This is controlled by @code{TeX-complete-list}. @deffn Command TeX-complete-symbol @kindex M-@key{TAB} (@kbd{M-@key{TAB}}) Complete @TeX{} symbol before point. @end deffn @defvar TeX-complete-list List of ways to complete the preceding text. Each entry is a list with the following elements: @enumerate @item Regexp matching the preceding text or a predicate of arity 0 which returns non-nil and sets `match-data' appropriately if it is applicable. @item A number indicating the subgroup in the regexp containing the text. @item A function returning an alist of possible completions. @item Text to append after a succesful completion. @end enumerate Or alternatively: @enumerate @item Regexp matching the preceding text. @item Function to do the actual completion. @end enumerate @end defvar More recent Emacs versions have a new completion mechanism. Modes may define and register custom completion-at-point functions and when the user invokes @code{completion-at-point} (usually bound to @kbd{M-@key{TAB}}), all such registered functions are consulted for checking for possible completions. Modern completion UIs like @i{company-mode} support this completion-at-point facility. @defun TeX--completion-at-point @AUCTeX{}'s completion-at-point function which is automatically added to @code{completion-at-point-functions} in @TeX{} and @LaTeX{} buffers. It offers the same completion candidates as would @code{TeX-complete-symbol} (and is also controlled by @code{TeX-complete-list}) except that it doesn't fall back on @code{ispell-complete-word} which would be awkward with completion UIs like @i{company-mode}. @end defun A more direct way to insert a macro is with @code{TeX-insert-macro}, bound to @kbd{C-c C-m} which is equivalent to @kbd{C-c @key{RET}}. It has the advantage over completion that it knows about the argument of most standard @LaTeX{} macros, and will prompt for them. It also knows about the type of the arguments, so it will for example give completion for the argument to @samp{\include}. Some examples are listed below. @deffn Command TeX-insert-macro @kindex C-c C-m (@kbd{C-c C-m} or @kbd{C-c @key{RET}}) Prompt (with completion) for the name of a @TeX{} macro, and if @AUCTeX{} knows the macro, prompt for each argument. @end deffn As a default selection, @AUCTeX{} will suggest the macro last inserted or, as the first choice the value of the variable @code{TeX-default-macro}. @defopt TeX-insert-macro-default-style Specifies whether @code{TeX-insert-macro} will ask for all optional arguments. If set to the symbol @code{show-optional-args}, @code{TeX-insert-macro} asks for optional arguments of @TeX{} marcos, unless the previous optional argument has been rejected. If set to @code{show-all-optional-args}, @code{TeX-insert-macro} asks for all optional arguments. @code{mandatory-args-only}, @code{TeX-insert-macro} asks only for mandatory arguments. When @code{TeX-insert-macro} is called with prefix argument (@kbd{C-u}), it's the other way round. Note that for some macros, there are special mechanisms, e.g. @code{LaTeX-includegraphics-options-alist} and @code{TeX-arg-cite-note-p}. @end defopt @defopt TeX-default-macro Default macro to insert when invoking @code{TeX-insert-macro} first time. @end defopt A faster alternative is to bind the function @code{TeX-electric-macro} to @samp{\}. This can be done by setting the variable @code{TeX-electric-escape} @defopt TeX-electric-escape If this is non-nil when @AUCTeX{} is loaded, the @TeX{} escape character @samp{\} will be bound to @code{TeX-electric-macro} @end defopt The difference between @code{TeX-insert-macro} and @code{TeX-electric-macro} is that space will complete and exit from the minibuffer in @code{TeX-electric-macro}. Use @key{TAB} if you merely want to complete. @deffn Command TeX-electric-macro Prompt (with completion) for the name of a @TeX{} macro, and if @AUCTeX{} knows the macro, prompt for each argument. Space will complete and exit. @end deffn By default @AUCTeX{} will put an empty set braces @samp{@{@}} after a macro with no arguments to stop it from eating the next whitespace. This can be stopped by entering @code{LaTeX-math-mode}, @pxref{Mathematics}, or by setting @code{TeX-insert-braces} to nil. @defopt TeX-insert-braces If non-nil, append a empty pair of braces after inserting a macro. @end defopt @defopt TeX-insert-braces-alist Control the insertion of a pair of braces after a macro on a per macro basis. This variable is an alist. Each element is a cons cell, whose car is the macro name, and the cdr is non-nil or nil, depending on whether a pair of braces should be, respectively, appended or not to the macro. If a macro has an element in this variable, @code{TeX-parse-macro} will use its value to decided what to do, whatever the value of the variable @code{TeX-insert-braces}. @end defopt Completions work because @AUCTeX{} can analyze @TeX{} files, and store symbols in Emacs Lisp files for later retrieval. @xref{Automatic}, for more information. @AUCTeX{} distinguishes normal and expert macros. By default, it will offer completion only for normal commands. This behavior can be controlled using the user option @code{TeX-complete-expert-commands}. @defopt TeX-complete-expert-commands Complete macros and environments marked as expert commands. Possible values are nil, t, or a list of style names. @table @asis @item nil Don't complete expert commands (default). @item t Always complete expert commands. @item (STYLES @dots{}) Only complete expert commands of STYLES. @end table @end defopt @cindex \cite, completion of @cindex Bib@TeX{}, completion @cindex cite, completion of @cindex bibliography, completion @cindex citations, completion of @cindex \label, completion @cindex \ref, completion @cindex labels, completion of @AUCTeX{} will also make completion for many macro arguments, for example existing labels when you enter a @samp{\ref} macro with @code{TeX-insert-macro} or @code{TeX-electric-macro}, and Bib@TeX{} entries when you enter a @samp{\cite} macro. For this kind of completion to work, parsing must be enabled as described in @pxref{Parsing Files}. For @samp{\cite} you must also make sure that the Bib@TeX{} files have been saved at least once after you enabled automatic parsing on save, and that the basename of the Bib@TeX{} file does not conflict with the basename of one of @TeX{} files. @node Marking @section Marking Environments, Sections, or Texinfo Nodes You can mark the current environment by typing @kbd{C-c .}, or the current section by typing @kbd{C-c *}. In Texinfo documents you can type @kbd{M-C-h} to mark the current node. When the region is set, the point is moved to its beginning and the mark to its end. @menu * Marking (LaTeX):: LaTeX Commands for Marking Environments and Sections * Marking (Texinfo):: Texinfo Commands for Marking Environments, Sections, and Nodes @end menu @node Marking (LaTeX) @subsection LaTeX Commands for Marking Environments and Sections @deffn Command LaTeX-mark-section @kindex C-c * (@kbd{C-c *}) Set mark at end of current logical section, and point at top. With a non-nil prefix argument, mark only the region from the current section start to the next sectioning command. Thereby subsections are not being marked. Otherwise, any included subsections are also marked along with current section. @end deffn @deffn Command LaTeX-mark-environment @kindex C-c . (@kbd{C-c .}) Set mark to the end of the current environment and point to the matching beginning. If a prefix argument is given, mark the respective number of enclosing environments. The command will not work properly if there are unbalanced begin-end pairs in comments and verbatim environments. @end deffn @node Marking (Texinfo) @subsection Texinfo Commands for Marking Environments and Sections @deffn Command Texinfo-mark-section @kindex C-c * (@kbd{C-c *}) Mark the current section, with inclusion of any containing node. The current section is detected as starting by any of the structuring commands matched by the regular expression in the variable @code{outline-regexp} which in turn is a regular expression matching any element of the variable @code{texinfo-section-list}. With a non-nil prefix argument, mark only the region from the current section start to the next sectioning command. Thereby subsections are not being marked. Otherwise, any included subsections are also marked Note that when the current section is starting immediately after a node command, then the node command is also marked as part of the section. @end deffn @deffn Command Texinfo-mark-environment @kindex C-c . (@kbd{C-c .}) Set mark to the end of the current environment and point to the matching beginning. If a prefix argument is given, mark the respective number of enclosing environments. The command will not work properly if there are unbalanced begin-end pairs in comments and verbatim environments. @end deffn @deffn Command Texinfo-mark-node @kindex M-C-h (@kbd{M-C-h}) Mark the current node. This is the node in which point is located. It is starting at the previous occurrence of the keyword @code{@@node} and ending at next occurrence of the keywords @code{@@node} or @code{@@bye}. @end deffn @node Commenting @section Commenting It is often necessary to comment out temporarily a region of @TeX{} or @LaTeX{} code. This can be done with the commands @kbd{C-c ;} and @kbd{C-c %}. @kbd{C-c ;} will comment out all lines in the current region, while @kbd{C-c %} will comment out the current paragraph. Type @kbd{C-c ;} again to uncomment all lines of a commented region, or @kbd{C-c %} again to uncomment all comment lines around point. These commands will insert or remove a single @samp{%} respectively. @deffn Command TeX-comment-or-uncomment-region @kindex C-c ; (@kbd{C-c ;}) Add or remove @samp{%} from the beginning of each line in the current region. Uncommenting works only if the region encloses solely commented lines. If @AUCTeX{} should not try to guess if the region should be commented or uncommented the commands @code{TeX-comment-region} and @code{TeX-uncomment-region} can be used to explicitly comment or uncomment the region in concern. @end deffn @deffn Command TeX-comment-or-uncomment-paragraph @kindex C-c % (@kbd{C-c %}) Add or remove @samp{%} from the beginning of each line in the current paragraph. When removing @samp{%} characters the paragraph is considered to consist of all preceding and succeeding lines starting with a @samp{%}, until the first non-comment line. @end deffn @node Indenting @section Indenting @cindex Formatting @cindex Indenting @cindex Indentation @cindex Reformatting @cindex Reindenting Indentation means the addition of whitespace at the beginning of lines to reflect special syntactical constructs. This makes it easier to see the structure of the document, and to catch errors such as a missing closing brace. Thus, the indentation is done for precisely the same reasons that you would indent ordinary computer programs. Indentation is done by @LaTeX{} environments and by @TeX{} groups, that is the body of an environment is indented by the value of @code{LaTeX-indent-level} (default 2). Also, items of an `itemize-like' environment are indented by the value of @code{LaTeX-item-indent}, default @minus{}2. (Items are identified with the help of @code{LaTeX-item-regexp}.) If more environments are nested, they are indented `accumulated' just like most programming languages usually are seen indented in nested constructs. @vindex LaTeX-indent-level @vindex LaTeX-item-indent @vindex LaTeX-item-regexp You can explicitely indent single lines, usually by pressing @key{TAB}, or marked regions by calling @code{indent-region} on it. If you have @code{auto-fill-mode} enabled and a line is broken while you type it, Emacs automatically cares about the indentation in the following line. If you want to have a similar behavior upon typing @key{RET}, you can customize the variable @code{TeX-newline-function} and change the default of @code{newline} which does no indentation to @code{newline-and-indent} which indents the new line or @code{reindent-then-newline-and-indent} which indents both the current and the new line. @vindex TeX-newline-function There are certain @LaTeX{} environments which should be indented in a special way, like @samp{tabular} or @samp{verbatim}. Those environments may be specified in the variable @code{LaTeX-indent-environment-list} together with their special indentation functions. Taking the @samp{verbatim} environment as an example you can see that @code{current-indentation} is used as the indentation function. This will stop @AUCTeX{} from doing any indentation in the environment if you hit @key{TAB} for example. @vindex LaTeX-indent-environment-list There are environments in @code{LaTeX-indent-environment-list} which do not bring a special indentation function with them. This is due to the fact that first the respective functions are not implemented yet and second that filling will be disabled for the specified environments. This shall prevent the source code from being messed up by accidently filling those environments with the standard filling routine. If you think that providing special filling routines for such environments would be an appropriate and challenging task for you, you are invited to contribute. (@xref{Filling}, for further information about the filling functionality) @vindex LaTeX-indent-environment-list The check for the indentation function may be enabled or disabled by customizing the variable @code{LaTeX-indent-environment-check}. @vindex LaTeX-indent-environment-check As a side note with regard to formatting special environments: Newer Emacsen include @file{align.el} and therefore provide some support for formatting @samp{tabular} and @samp{tabbing} environments with the function @code{align-current} which will nicely align columns in the source code. @AUCTeX{} is able to format commented parts of your code just as any other part. This means @LaTeX{} environments and @TeX{} groups in comments will be indented syntactically correct if the variable @code{LaTeX-syntactic-comments} is set to t. If you disable it, comments will be filled like normal text and no syntactic indentation will be done. @vindex LaTeX-syntactic-comments Following you will find a list of most commands and variables related to indenting with a small summary in each case: @table @kbd @item @key{TAB} @kindex @key{TAB} @findex LaTeX-indent-line @code{LaTeX-indent-line} will indent the current line. @item @key{LFD} @kindex @key{LFD} @code{newline-and-indent} inserts a new line (much like @key{RET}) and moves the cursor to an appropriate position by the left margin. Most keyboards nowadays lack a linefeed key and @kbd{C-j} may be tedious to type. Therefore you can customize @AUCTeX{} to perform indentation upon typing @key{RET} as well. The respective option is called @code{TeX-newline-function}. @item C-j @kindex C-j Alias for @key{LFD} @end table @defopt LaTeX-indent-environment-list List of environments with special indentation. The second element in each entry is the function to calculate the indentation level in columns. The filling code currently cannot handle tabular-like environments which will be completely messed-up if you try to format them. This is why most of these environments are included in this customization option without a special indentation function. This will prevent that they get filled. @end defopt @defopt LaTeX-indent-level Number of spaces to add to the indentation for each @samp{\begin} not matched by a @samp{\end}. @end defopt @defopt LaTeX-item-indent Number of spaces to add to the indentation for @samp{\item}'s in list environments. @end defopt @defopt TeX-brace-indent-level Number of spaces to add to the indentation for each @samp{@{} not matched by a @samp{@}}. @end defopt @defopt LaTeX-syntactic-comments If non-nil comments will be filled and indented according to @LaTeX{} syntax. Otherwise they will be filled like normal text. @end defopt @defopt TeX-newline-function Used to specify the function which is called when @key{RET} is pressed. This will normally be @code{newline} which simply inserts a new line. In case you want to have @AUCTeX{} do indentation as well when you press @key{RET}, use the built-in functions @code{newline-and-indent} or @code{reindent-then-newline-and-indent}. The former inserts a new line and indents the following line, i.e. it moves the cursor to the right position and therefore acts as if you pressed @key{LFD}. The latter function additionally indents the current line. If you choose @samp{Other}, you can specify your own fancy function to be called when @key{RET} is pressed. @end defopt @AUCTeX{} treats by default @samp{\[...\]} math mode as a regular environment and indents it accordingly. If you do not like such behavior you only need to remove @code{\|\[} and @code{\|\]} from @code{LaTeX-begin-regexp} and @code{LaTeX-end-regexp} variables respectively. @node Filling @section Filling @cindex Filling @cindex Formatting @cindex Reformatting @cindex Refilling Filling deals with the insertion of line breaks to prevent lines from becoming wider than what is specified in @code{fill-column}. The linebreaks will be inserted automatically if @code{auto-fill-mode} is enabled. In this case the source is not only filled but also indented automatically as you write it. @code{auto-fill-mode} can be enabled for @AUCTeX{} by calling @code{turn-on-auto-fill} in one of the hooks @AUCTeX{} is running. @xref{Modes and Hooks}. As an example, if you want to enable @code{auto-fill-mode} in @code{LaTeX-mode}, put the following into your init file: @lisp (add-hook 'LaTeX-mode-hook 'turn-on-auto-fill) @end lisp You can manually fill explicitely marked regions, paragraphs, environments, complete sections, or the whole buffer. (Note that manual filling in @AUCTeX{} will indent the start of the region to be filled in contrast to many other Emacs modes.) There are some syntactical constructs which are handled specially with regard to filling. These are so-called code comments and paragraph commands. Code comments are comments preceded by code or text in the same line. Upon filling a region, code comments themselves will not get filled. Filling is done from the start of the region to the line with the code comment and continues after it. In order to prevent overfull lines in the source code, a linebreak will be inserted before the last non-comment word by default. This can be changed by customizing @code{LaTeX-fill-break-before-code-comments}. If you have overfull lines with code comments you can fill those explicitely by calling @code{LaTeX-fill-paragraph} or pressing @kbd{M-q} with the cursor positioned on them. This will add linebreaks in the comment and indent subsequent comment lines to the column of the comment in the first line of the code comment. In this special case @kbd{M-q} only acts on the current line and not on the whole paragraph. Lines with @samp{\par} are treated similarly to code comments, i.e. @samp{\par} will be treated as paragraph boundary which should not be followed by other code or text. But it is not treated as a real paragraph boundary like an empty line where filling a paragraph would stop. Paragraph commands like @samp{\section} or @samp{\noindent} (the list of commands is defined by @code{LaTeX-paragraph-commands}) are often to be placed in their own line(s). This means they should not be consecuted with any preceding or following adjacent lines of text. @AUCTeX{} will prevent this from happening if you do not put any text except another macro after the end of the last brace of the respective macro. If there is other text after the macro, @AUCTeX{} regards this as a sign that the macro is part of the following paragraph. @vindex LaTeX-paragraph-commands Here are some examples: @example \begin@{quote@} text text text text @end example @example \begin@{quote@}\label@{foo@} text text text text @end example If you press @kbd{M-q} on the first line in both examples, nothing will change. But if you write @example \begin@{quote@} text text text text text @end example and press @kbd{M-q}, you will get @example \begin@{quote@} text text text text text @end example Besides code comments and paragraph commands, another speciality of filling in @AUCTeX{} involves commented lines. You should be aware that these comments are treated as islands in the rest of the @LaTeX{} code if syntactic filling is enabled. This means, for example, if you try to fill an environment with @code{LaTeX-fill-environment} and have the cursor placed on a commented line which does not have a surrounding environment inside the comment, @AUCTeX{} will report an error. @findex LaTeX-fill-environment The relevant commands and variables with regard to filling are: @table @kbd @item C-c C-q C-p @kindex C-c C-q C-p @findex LaTeX-fill-paragraph @code{LaTeX-fill-paragraph} will fill and indent the current paragraph. @item M-q @kindex M-q Alias for @kbd{C-c C-q C-p} @item C-c C-q C-e @kindex C-c C-q C-e @findex LaTeX-fill-environment @code{LaTeX-fill-environment} will fill and indent the current environment. This may e.g. be the `document' environment, in which case the entire document will be formatted. @item C-c C-q C-s @kindex C-c C-q C-s @findex LaTeX-fill-section @code{LaTeX-fill-section} will fill and indent the current logical sectional unit. @item C-c C-q C-r @kindex C-c C-q C-r @findex LaTeX-fill-region @code{LaTeX-fill-region} will fill and indent the current region. @end table @defopt LaTeX-fill-break-at-separators List of separators before or after which respectively linebreaks will be inserted if they do not fit into one line. The separators can be curly braces, brackets, switches for inline math (@samp{$}, @samp{\(}, @samp{\)}) and switches for display math (@samp{\[}, @samp{\]}). Such formatting can be useful to make macros and math more visible or to prevent overfull lines in the @LaTeX{} source in case a package for displaying formatted @TeX{} output inside the Emacs buffer, like preview-latex, is used. @end defopt @defopt LaTeX-fill-break-before-code-comments Code comments are comments preceded by some other text in the same line. When a paragraph containing such a comment is to be filled, the comment start will be seen as a border after which no line breaks will be inserted in the same line. If the option @code{LaTeX-fill-break-before-code-comments} is enabled (which is the default) and the comment does not fit into the line, a line break will be inserted before the last non-comment word to minimize the chance that the line becomes overfull. @end defopt @defopt LaTeX-fill-excluded-macros A list of macro names (without leading backslash) for whose arguments filling should be disabled. Typically, you will want to add macros here which have long, multi-line arguments. An example is @code{\pgfplotstabletypeset} from the pgfplotstable package which is used as shown in the following listing: @verbatim \pgfplotstabletypeset[skip first n=4]{% XYZ Format, Version 1.234 Date 2010-09-01 @author Mustermann A B C 1 2 3 4 5 6 } @end verbatim @end defopt @node Display @chapter Controlling Screen Display It is often desirable to get visual help of what markup code in a text actually does without having to decipher it explicitly. For this purpose Emacs and @AUCTeX{} provide font locking (also known as syntax highlighting) which visually sets off markup code like macros or environments by using different colors or fonts. For example text to be typeset in italics can be displayed with an italic font in the editor as well, or labels and references get their own distinct color. While font locking helps you grasp the purpose of markup code and separate markup from content, the markup code can still be distracting. @AUCTeX{} lets you hide those parts and show them again at request with its built-in support for hiding macros and environments which we call folding here. Besides folding of macros and environments, @AUCTeX{} provides support for Emacs' outline mode which lets you narrow the buffer content to certain sections of your text by hiding the parts not belonging to these sections. Moreover, you can focus in a specific portion of the code by narrowing the buffer to the desired region. @AUCTeX{} provides also functions to narrow the buffer to the current group and to @LaTeX{} environments. @AUCTeX{} also provides some WYSIWYG features. First, you can customize @code{font-latex-fontify-script} to enable special formatting of @code{^} superscripts and @code{_} subscripts (@pxref{Font Locking}). Secondly, @AUCTeX{} with GNU Emacs 25 or later can display certain math macros using Unicode characters, e.g., @code{\alpha} as α. This is called prettification and is lightweight and reasonable robust (@pxref{Prettifying}). A more accurate approach is provided by @previewlatex{}, a subsystem of @AUCTeX{}, see @ref{Top,,Introduction,preview-latex,The @previewlatex{} Manual}. This system uses @LaTeX{} to generate images that are then displayed in your buffer. It is extremely accurate but can be fragile with some packages (like older pgf versions). Please note that you can use prettification and @previewlatex{} together. @menu * Font Locking:: Font Locking * Folding:: Folding Macros and Environments * Outline:: Outlining the Document * Narrowing:: Restricting display and editing to a portion of the buffer * Prettifying:: Displaying Greek and math macros as Unicode characters @end menu @node Font Locking @section Font Locking @cindex Font Locking @cindex Syntax Highlighting @cindex font-latex Font locking is supposed to improve readability of the source code by highlighting certain keywords with different colors or fonts. It thereby lets you recognize the function of markup code to a certain extent without having to read the markup command. For general information on controlling font locking with Emacs' Font Lock mode, see @ref{Font Lock, , Font Lock Mode, emacs, GNU Emacs Manual}. @defopt TeX-install-font-lock Once font locking is enabled globally or for the major modes provided by @AUCTeX{}, the font locking patterns and functionality of @fontlatex{} are activated by default. You can switch to a different font locking scheme or disable font locking in @AUCTeX{} by customizing the variable @code{TeX-install-font-lock}. Besides @fontlatex{} @AUCTeX{} ships with a scheme which is derived from Emacs' default @LaTeX{} mode and activated by choosing @code{tex-font-setup}. Be aware that this scheme is not coupled with @AUCTeX{}'s style system and not the focus of development. Therefore and due to @fontlatex{} being much more feature-rich the following explanations will only cover @fontlatex{}. In case you want to hook in your own fontification scheme, you can choose @code{other} and insert the name of the function which sets up your font locking patterns. If you want to disable fontification in @AUCTeX{} completely, choose @code{ignore}. @end defopt @fontlatex{} provides many options for customization which are accessible with @kbd{M-x customize-group RET font-latex RET}. For this description the various options are explained in conceptional groups. @menu * Fontification of macros:: Fontification of macros * Fontification of quotes:: Fontification of quotes * Fontification of math:: Fontification of math constructs * Verbatim content:: Verbatim macros and environments * Faces:: Faces used by font-latex * Known problems:: Known fontification problems @end menu @node Fontification of macros @subsection Fontification of macros Highlighting of macros can be customized by adapting keyword lists which can be found in the customization group @code{font-latex-keywords}. Three types of macros can be handled differently with respect to fontification: @enumerate @item Commands of the form @samp{\foo[bar]@{baz@}} which consist of the macro itself, optional arguments in square brackets and mandatory arguments in curly braces. For the command itself the face @code{font-lock-keyword-face} will be used and for the optional arguments the face @code{font-lock-variable-name-face}. The face applied to the mandatory argument depends on the macro class represented by the respective built-in variables. @item Declaration macros of the form @samp{@{\foo text@}} which consist of the macro which may be enclosed in a @TeX{} group together with text to be affected by the macro. In case a @TeX{} group is present, the macro will get the face @code{font-lock-keyword-face} and the text will get the face configured for the respective macro class. If no @TeX{} group is present, the latter face will be applied to the macro itself. @item Simple macros of the form @samp{\foo} which do not have any arguments or groupings. The respective face will be applied to the macro itself. @end enumerate Customization variables for @samp{\foo[bar]@{baz@}} type macros allow both the macro name and the sequence of arguments to be specified. The latter is done with a string which can contain the characters @table @samp @item * indicating the existence of a starred variant for the macro, @item [ for optional arguments in brackets, @item @{ for mandatory arguments in braces, @item \ for mandatory arguments consisting of a single macro and @item | as a prefix indicating that two alternatives are following. @end table For example the specifier for @samp{\documentclass} would be @samp{[@{} because the macro has one optional followed by one mandatory argument. The specifier for @samp{\newcommand} would be @samp{*|@{\[[@{} because there is a starred variant, the mandatory argument following the macro name can be a macro or a @TeX{} group which can be followed by two optional arguments and the last token is a mandatory argument in braces. Customization variables for the @samp{@{\foo text@}} and @samp{\foo} types are simple lists of strings where each entry is a macro name (without the leading backslash). @subheading General macro classes @fontlatex{} provides keyword lists for different macro classes which are described in the following table: @vindex font-latex-match-function-keywords @vindex font-latex-match-reference-keywords @vindex font-latex-match-textual-keywords @vindex font-latex-match-variable-keywords @vindex font-latex-match-warning-keywords @table @code @item font-latex-match-function-keywords Keywords for macros defining or related to functions, like @samp{\newcommand}.@* Type: @samp{\macro[...]@{...@}}@* Face: @code{font-lock-function-name-face} @item font-latex-match-reference-keywords Keywords for macros defining or related to references, like @samp{\ref}.@* Type: @samp{\macro[...]@{...@}}@* Face: @code{font-lock-constant-face} @item font-latex-match-textual-keywords Keywords for macros specifying textual content, like @samp{\caption}.@* Type: @samp{\macro[...]@{...@}}@* Face: @code{font-lock-type-face} @item font-latex-match-variable-keywords Keywords for macros defining or related to variables, like @samp{\setlength}.@* Type: @samp{\macro[...]@{...@}}@* Face: @code{font-lock-variable-name-face} @item font-latex-match-warning-keywords Keywords for important macros, e.g. affecting line or page break, like @samp{\clearpage}.@* Type: @samp{\macro}@* Face: @code{font-latex-warning-face} @end table @subheading Sectioning commands @cindex Sectioning commands, fontification of Sectioning commands are macros like @samp{\chapter} or @samp{\section}. For these commands there are two fontification schemes which may be selected by customizing the variable @code{font-latex-fontify-sectioning}. @defopt font-latex-fontify-sectioning @c Is @vindex correct? @vindex font-latex-sectioning-0-face @vindex font-latex-sectioning-1-face @vindex font-latex-sectioning-2-face @vindex font-latex-sectioning-3-face @vindex font-latex-sectioning-4-face @vindex font-latex-sectioning-5-face Per default sectioning commands will be shown in a larger, proportional font, which corresponds to a number for this variable. The font size varies with the sectioning level, e.g. @samp{\part} (@code{font-latex-sectioning-0-face}) has a larger font than @samp{\paragraph} (@code{font-latex-sectioning-5-face}). Typically, values from 1.05 to 1.3 for @code{font-latex-fontify-sectioning} give best results, depending on your font setup. If you rather like to use the base font and a different color, set the variable to the symbol @samp{color}. In this case the face @code{font-lock-type-face} will be used to fontify the argument of the sectioning commands. @end defopt @vindex font-latex-match-sectioning-0-keywords @vindex font-latex-match-sectioning-1-keywords @vindex font-latex-match-sectioning-2-keywords @vindex font-latex-match-sectioning-3-keywords @vindex font-latex-match-sectioning-4-keywords @vindex font-latex-match-sectioning-5-keywords You can make @fontlatex{} aware of your own sectioning commands be adding them to the keyword lists: @code{font-latex-match-sectioning-0-keywords} (@code{font-latex-sectioning-0-face}) @dots{} @code{font-latex-match-sectioning-5-keywords} (@code{font-latex-sectioning-5-face}). @vindex font-latex-slide-title-face @vindex font-latex-match-slide-title-keywords Related to sectioning there is special support for slide titles which may be fontified with the face @code{font-latex-slide-title-face}. You can add macros which should appear in this face by customizing the variable @code{font-latex-match-slide-title-keywords}. @subheading Commands for changing fonts @LaTeX{} provides various macros for changing fonts or font attributes. For example, you can select an italic font with @samp{\textit@{...@}} or bold with @samp{\textbf@{...@}}. An alternative way to specify these fonts is to use special macros in @TeX{} groups, like @samp{@{\itshape ...@}} for italics and @samp{@{\bfseries ...@}} for bold. As mentioned above, we call the former variants commands and the latter declarations. Besides the macros for changing fonts provided by @LaTeX{} there is an infinite number of other macros---either defined by yourself for logical markup or defined by macro packages---which affect the font in the typeset text. While @LaTeX{}'s built-in macros and macros of packages known by @AUCTeX{} are already handled by @fontlatex{}, different keyword lists per type style and macro type are provided for entering your own macros which are listed in the table below. @vindex font-latex-match-bold-command-keywords @vindex font-latex-match-italic-command-keywords @vindex font-latex-match-math-command-keywords @vindex font-latex-match-type-command-keywords @vindex font-latex-match-bold-declaration-keywords @vindex font-latex-match-italic-declaration-keywords @vindex font-latex-match-type-declaration-keywords @table @code @item font-latex-match-bold-command-keywords Keywords for commands specifying a bold type style.@* Face: @code{font-latex-bold-face} @item font-latex-match-italic-command-keywords Keywords for commands specifying an italic font.@* Face: @code{font-latex-italic-face} @item font-latex-match-math-command-keywords Keywords for commands specifying a math font.@* Face: @code{font-latex-math-face} @item font-latex-match-type-command-keywords Keywords for commands specifying a typewriter font.@* Face: @code{font-lock-type-face} @item font-latex-match-bold-declaration-keywords Keywords for declarations specifying a bold type style.@* Face: @code{font-latex-bold-face} @item font-latex-match-italic-declaration-keywords Keywords for declarations specifying an italic font.@* Face: @code{font-latex-italic-face} @item font-latex-match-type-declaration-keywords Keywords for declarations specifying a typewriter font.@* Face: @code{font-latex-type-face} @end table @subheading Deactivating defaults of built-in keyword classes @vindex font-latex-deactivated-keyword-classes @fontlatex{} ships with predefined lists of keywords for the classes described above. You can disable these defaults per class by customizing the variable @code{font-latex-deactivated-keyword-classes}. This is a list of strings for keyword classes to be deactivated. Valid entries are "warning", "variable", "biblatexnoarg", "biblatex", "reference", "function" , "sectioning-0", "sectioning-1", "sectioning-2", "sectioning-3", "sectioning-4", "sectioning-5", "slide-title", "textual", "bold-command", "italic-command", "math-command", "type-command", "bold-declaration", "italic-declaration", "type-declaration". You can also get rid of certain keywords only. For example if you want to remove highlighting of footnotes as references you can put the following stanza into your init file: @lisp (eval-after-load "font-latex" '(setq-default font-latex-match-reference-keywords-local (remove (TeX-assoc-string "footnote" font-latex-match-reference-keywords-local) font-latex-match-reference-keywords-local))) @end lisp But note that this means fiddling with @fontlatex{}'s internals and is not guaranteed to work in future versions of @fontlatex{}. @subheading User-defined keyword classes In case the customization options explained above do not suffice for your needs, you can specify your own keyword classes by customizing the variable @code{font-latex-user-keyword-classes}. @defopt font-latex-user-keyword-classes Every keyword class consists of four parts, a name, a list of keywords, a face and a specifier for the type of macros to be highlighted. When adding new entries, you have to use unique values for the class names, i.e. they must not clash with names of the built-in keyword classes or other names given by you. Additionally the names must not contain spaces. The list of keywords defines which commands and declarations should be covered by the keyword class. A keyword can either be a simple command name omitting the leading backslash or a list consisting of the command name and a string specifying the sequence of arguments for the command. The face argument can either be an existing face or face attributes made by you. (The latter option is not available on XEmacs.) There are three alternatives for the type of keywords---``Command with arguments'', ``Declaration inside @TeX{} group'' and ``Command without arguments''---which correspond with the macro types explained above. @end defopt @node Fontification of quotes @subsection Fontification of quotes @cindex Quotes, fontification of Text in quotation marks is displayed with the face @code{font-latex-string-face}. Besides the various forms of opening and closing double and single quotation marks, so-called guillemets (<<, >>) can be used for quoting. Because there are two styles of using them---French style: << text >>; German style: >>text<<---you can customize the variable @code{font-latex-quotes} to tell @fontlatex{} which type you are using if the correct value cannot be derived from document properties. @defopt font-latex-quotes The default value of @code{font-latex-quotes} is @samp{auto} which means that @fontlatex{} will try to derive the correct type of quotation mark matching from document properties like the language option supplied to the babel @LaTeX{} package. If the automatic detection fails for you and you mostly use one specific style you can set it to a specific language-dependent value as well. Set the value to @samp{german} if you are using >>German quotes<< and to @samp{french} if you are using << French quotes >>. @fontlatex{} will recognize the different ways these quotes can be given in your source code, i.e. (@samp{"<}, @samp{">}), (@samp{<<}, @samp{>>}) and the respective 8-bit variants. If you set @code{font-latex-quotes} to nil, quoted content will not be fontified. @end defopt @node Fontification of math @subsection Fontification of mathematical constructs @cindex Math, fontification of @cindex Subscript, fontification of @cindex Superscript, fontification of @vindex font-latex-match-math-command-keywords @vindex font-latex-math-environments In @LaTeX{} mathematics can be indicated by a variety of different methods: toggles (like dollar signs), macros and environments. Math constructs known by @fontlatex{} are displayed with the face @code{font-latex-math-face}. Support for dollar signs and shorthands like @samp{\(...\)} or @samp{\[...\]} is built-in and not customizable. Support for other math macros and environments can be adapted by customizing the variables @code{font-latex-match-math-command-keywords} and @code{font-latex-math-environments} respectively. In order to make math constructs more readable, @fontlatex{} displays subscript and superscript parts in a smaller font and raised or lowered respectively. This fontification feature can be controlled with the variables @code{font-latex-fontify-script} and @code{font-latex-script-display}. @defopt font-latex-fontify-script If non-nil, fontify subscript and superscript strings. Concretely, this means that the scripts are raised or lowered. Another possiblity is setting this variable to the symbol @code{multi-level}. In this case, in a formula @i{x^@{y^z@}}, @i{y} is raised above and smaller than @i{x}, and @i{z} is raised above and smaller than @i{y}. With many script levels, the text might become too small to be readable. (See @code{font-latex-fontify-script-max-level} below.) Lastly, you can set this variable to @code{invisible} whose behavior is like @code{multi-level}, and in addition the super-/subscript characters @i{^} and @i{_} are not displayed. Note that this feature is not available on XEmacs, for which it is disabled per default. In GNU Emacs raising and lowering is not enabled for versions 21.3 and before due to it working not properly. @end defopt @defopt font-latex-fontify-script-max-level Maximum scriptification level for which script faces are applied. The faces @code{font-latex-superscript-face} and @code{font-latex-subscript-face} define custom @code{:height} values < 1.0. Therefore, scripts are displayed with a slightly smaller font than normal math text. If @code{font-latex-fontify-script} is @code{multi-level} or @code{invisible}, the font size becomes too small to be readable after a few levels. This option allows to specify the maximum level after which the size of the script text won’t be shrunken anymore. For example, in the expression @i{x^@{y^@{z^a_b@}@}}, @i{x} has scriptification level 0, @i{y} has level 1, @i{z} has level 2, and both @i{a} and @i{b} have scriptification level 3. If @code{font-latex-fontify-script-max-level} was 2, then @i{z}, @i{a}, and @i{b} would have the same font size. If it was 3 or more, then @i{a} and @i{b} were smaller than @i{z} just in the same way as @i{z} is smaller than @i{y} and @i{y} is smaller than @i{x}. @end defopt The script characters @samp{^} and @samp{_} themselves are also fontified with an own face named @code{font-latex-script-char-face}. @defopt font-latex-script-display Display specification for subscript and superscript content. The car is used for subscript, the cdr is used for superscript. The feature is implemented using so-called display properties. For information on what exactly to specify for the values, see @ref{Other Display Specs, , Other Display Specifications, elisp, GNU Emacs Lisp Reference Manual}. @end defopt @node Verbatim content @subsection Verbatim macros and environments @cindex Verbatim, fontification of Usually it is not desirable to have content to be typeset verbatim highlighted according to @LaTeX{} syntax. Therefore this content will be fontified uniformly with the face @code{font-latex-verbatim-face}. @vindex LaTeX-verbatim-macros-with-delims @vindex LaTeX-verbatim-macros-with-braces @vindex LaTeX-verbatim-environments @fontlatex{} differentiates three different types of verbatim constructs for fontification. Macros with special characters like | as delimiters, macros with braces, and environments. Which macros and environments are recognized is controlled by the variables @code{LaTeX-verbatim-macros-with-delims}, @code{LaTeX-verbatim-macros-with-braces}, and @code{LaTeX-verbatim-environments} respectively. @node Faces @subsection Faces used by @fontlatex{} @cindex Faces In case you want to change the colors and fonts used by @fontlatex{} please refer to the faces mentioned in the explanations above and use @kbd{M-x customize-face RET RET}. All faces defined by @fontlatex{} are accessible through a customization group by typing @kbd{M-x customize-group RET font-latex-highlighting-faces RET}. @node Known problems @subsection Known fontification problems @cindex Dollar signs, color bleed with @cindex Math, fontification problems with In certain cases the fontification machinery fails to interpret buffer contents correctly. This can lead to color bleed, i.e. large parts of a buffer get fontified with an inappropriate face. A typical situation for this to happen is the use of a dollar sign (@samp{$}) in a verbatim macro or environment. If @fontlatex{} is not aware of the verbatim construct, it assumes the dollar sign to be a toggle for mathematics and fontifies the following buffer content with the respective face until it finds a closing dollar sign or till the end of the buffer. As a remedy you can make the verbatim construct known to @fontlatex{}, @pxref{Verbatim content}. If this is not possible, you can insert a commented dollar sign (@samp{%$}) at the next suitable end of line as a quick workaround. @c As a last resort one can set `font-lock-keywords-only', but we should @c probably not advise users to do this. @node Folding @section Folding Macros and Environments @cindex Outlining @cindex Folding @cindex Reveal @cindex Auto-Reveal @cindex Hide Macros A popular complaint about markup languages like @TeX{} and @LaTeX{} is that there is too much clutter in the source text and that one cannot focus well on the content. There are macros where you are only interested in the content they are enclosing, like font specifiers where the content might already be fontified in a special way by font locking. Or macros the content of which you only want to see when actually editing it, like footnotes or citations. Similarly you might find certain environments or comments distracting when trying to concentrate on the body of your document. With @AUCTeX{}'s folding functionality you can collapse those items and replace them by a fixed string, the content of one of their arguments, or a mixture of both. If you want to make the original text visible again in order to view or edit it, move point sideways onto the placeholder (also called display string) or left-click with the mouse pointer on it. (The latter is currently only supported on Emacs.) The macro or environment will unfold automatically, stay open as long as point is inside of it and collapse again once you move point out of it. (Note that folding of environments currently does not work in every @AUCTeX{} mode.) In order to use this feature, you have to activate @code{TeX-fold-mode} which will activate the auto-reveal feature and the necessary commands to hide and show macros and environments. You can activate the mode in a certain buffer by typing the command @kbd{M-x TeX-fold-mode RET} or using the keyboard shortcut @kbd{C-c C-o C-f}. If you want to use it every time you edit a @LaTeX{} document, add it to a hook: @findex TeX-fold-mode @kindex C-c C-o C-f @lisp (add-hook 'LaTeX-mode-hook (lambda () (TeX-fold-mode 1))) @end lisp If it should be activated in all @AUCTeX{} modes, use @code{TeX-mode-hook} instead of @code{LaTeX-mode-hook}. Once the mode is active there are several commands available to hide and show macros, environments and comments: @deffn Command TeX-fold-buffer @kindex C-c C-o C-b (@kbd{C-c C-o C-b}) Hide all foldable items in the current buffer according to the setting of @code{TeX-fold-type-list}. If you want to have this done automatically every time you open a file, add it to a hook and make sure the function is called after font locking is set up for the buffer. The following code should accomplish this: @lisp (add-hook 'find-file-hook 'TeX-fold-buffer t) @end lisp The command can be used any time to refresh the whole buffer and fold any new macros and environments which were inserted after the last invocation of the command. @end deffn @defopt TeX-fold-type-list List of symbols determining the item classes to consider for folding. This can be macros, environments and comments. Per default only macros and environments are folded. @end defopt @defopt TeX-fold-force-fontify In order for all folded content to get the right faces, the whole buffer has to be fontified before folding is carried out. @code{TeX-fold-buffer} therefore will force fontification of unfontified regions. As this will prolong the time folding takes, you can prevent forced fontification by customizing the variable @code{TeX-fold-force-fontify}. @end defopt @defopt TeX-fold-auto By default, a macro inserted with @code{TeX-insert-macro} (@kbd{C-c C-m}) will not be folded. Set this variable to a non-nil value to aumatically fold macros as soon as they are inserted. @end defopt @defopt TeX-fold-preserve-comments By default items found in comments will be folded. If your comments often contain unfinished code this might lead to problems. Give this variable a non-nil value and foldable items in your comments will be left alone. @end defopt @defopt TeX-fold-unfold-around-mark When this variable is non-nil and there is an active regione, text around the mark will be kept unfolded. @end defopt @deffn Command TeX-fold-region @kindex C-c C-o C-r (@kbd{C-c C-o C-r}) Hide all configured macros in the marked region. @end deffn @deffn Command TeX-fold-paragraph @kindex C-c C-o C-p (@kbd{C-c C-o C-p}) Hide all configured macros in the paragraph containing point. @end deffn @deffn Command TeX-fold-macro @kindex C-c C-o C-m (@kbd{C-c C-o C-m}) Hide the macro on which point currently is located. If the name of the macro is found in @code{TeX-fold-macro-spec-list}, the respective display string will be shown instead. If it is not found, the name of the macro in sqare brackets or the default string for unspecified macros (@code{TeX-fold-unspec-macro-display-string}) will be shown, depending on the value of the variable @code{TeX-fold-unspec-use-name}. @end deffn @deffn Command TeX-fold-env @kindex C-c C-o C-e (@kbd{C-c C-o C-e}) Hide the environment on which point currently is located. The behavior regarding the display string is analogous to @code{TeX-fold-macro} and determined by the variables @code{TeX-fold-env-spec-list} and @code{TeX-fold-unspec-env-display-string} respectively. @end deffn @deffn Command TeX-fold-math Hide the math macro on which point currently is located. If the name of the macro is found in @code{TeX-fold-math-spec-list}, the respective display string will be shown instead. If it is not found, the name of the macro in sqare brackets or the default string for unspecified macros (@code{TeX-fold-unspec-macro-display-string}) will be shown, depending on the value of the variable @code{TeX-fold-unspec-use-name}. @end deffn @deffn Command TeX-fold-comment @kindex C-c C-o C-c (@kbd{C-c C-o C-c}) Hide the comment point is located on. @end deffn @deffn Command TeX-fold-clearout-buffer @kindex C-c C-o b (@kbd{C-c C-o b}) Permanently unfold all macros and environments in the current buffer. @end deffn @deffn Command TeX-fold-clearout-region @kindex C-c C-o r (@kbd{C-c C-o r}) Permanently unfold all macros and environments in the marked region. @end deffn @deffn Command TeX-fold-clearout-paragraph @kindex C-c C-o p (@kbd{C-c C-o p}) Permanently unfold all macros and environments in the paragraph containing point. @end deffn @deffn Command TeX-fold-clearout-item @kindex C-c C-o i (@kbd{C-c C-o i}) Permanently show the macro or environment on which point currently is located. In contrast to temporarily opening the macro when point is moved sideways onto it, the macro will be permanently unfolded and will not collapse again once point is leaving it. @end deffn @deffn Command TeX-fold-dwim @kindex C-c C-o C-o (@kbd{C-c C-o C-o}) Hide or show items according to the current context. If there is folded content, unfold it. If there is a marked region, fold all configured content in this region. If there is no folded content but a macro or environment, fold it. @end deffn @vindex TeX-fold-command-prefix In case you want to use a different prefix than @kbd{C-c C-o} for these commands you can customize the variable @code{TeX-fold-command-prefix}. (Note that this will not change the key binding for activating the mode.) The commands above will only take macros or environments into consideration which are specified in the variables @code{TeX-fold-macro-spec-list} or @code{TeX-fold-env-spec-list} respectively. @defopt TeX-fold-macro-spec-list List of replacement specifiers and macros to fold. The specifier can be a string, an integer or a function symbol. If you specify a string, it will be used as a display replacement for the whole macro. Numbers in braces, brackets, parens or angle brackets will be replaced by the respective macro argument. For example @samp{@{1@}} will be replaced by the first mandatory argument of the macro. One can also define alternatives within the specifier which are used if an argument is not found. Alternatives are separated by @samp{||}. They are most useful with optional arguments. As an example, the default specifier for @samp{\item} is @samp{[1]:||*} which means that if there is an optional argument, its value is shown followed by a colon. If there is no optional argument, only an asterisk is used as the display string. If you specify a number as the first element, the content of the respective mandatory argument of a @LaTeX{} macro will be used as the placeholder. If the first element is a function symbol, the function will be called with all mandatory arguments of the macro and the result of the function call will be used as a replacement for the macro. The placeholder is made by copying the text from the buffer together with its properties, i.e. its face as well. If fontification has not happened when this is done (e.g. because of lazy font locking) the intended fontification will not show up. As a workaround you can leave Emacs idle a few seconds and wait for stealth font locking to finish before you fold the buffer. Or you just re-fold the buffer with @code{TeX-fold-buffer} when you notice a wrong fontification. @end defopt @defopt TeX-fold-env-spec-list List of display strings or argument numbers and environments to fold. Argument numbers refer to the @samp{\begin} statement. That means if you have e.g. @samp{\begin@{tabularx@}@{\linewidth@}@{XXX@} ... \end@{tabularx@}} and specify 3 as the argument number, the resulting display string will be ``XXX''. @end defopt @defopt TeX-fold-math-spec-list List of display strings and math macros to fold. @end defopt @vindex LaTeX-fold-macro-spec-list @vindex LaTeX-fold-env-spec-list @vindex LaTeX-fold-math-spec-list The variables @code{TeX-fold-macro-spec-list}, @code{TeX-fold-env-spec-list}, and @code{TeX-fold-math-spec-list} apply to any @AUCTeX{} mode. If you want to make settings which are only applied to @LaTeX{} mode, you can use the mode-specific variables @code{LaTeX-fold-macro-spec-list}, @code{LaTeX-fold-env-spec-list}, and @code{LaTeX-fold-math-spec-list} @defopt TeX-fold-unspec-macro-display-string Default display string for macros which are not specified in @code{TeX-fold-macro-spec-list}. @end defopt @defopt TeX-fold-unspec-env-display-string Default display string for environments which are not specified in @code{TeX-fold-env-spec-list}. @end defopt @defopt TeX-fold-unspec-use-name If non-nil the name of the macro or environment surrounded by square brackets is used as display string, otherwise the defaults specified in @code{TeX-fold-unspec-macro-display-string} or @code{TeX-fold-unspec-env-display-string} respectively. @end defopt When you hover with the mouse pointer over folded content, its original text will be shown in a tooltip or the echo area depending on Tooltip mode being activate. In order to avoid exorbitantly big tooltips and to cater for the limited space in the echo area the content will be cropped after a certain amount of characters defined by the variable @code{TeX-fold-help-echo-max-length}. @defopt TeX-fold-help-echo-max-length Maximum length of original text displayed in a tooltip or the echo area for folded content. Set it to zero in order to disable this feature. @end defopt @node Outline @section Outlining the Document @cindex Outlining @cindex Headers @cindex Sections @cindex Overview @cindex Folding @AUCTeX{} supports the standard outline minor mode using @LaTeX{}/@ConTeXt{} sectioning commands as header lines. @xref{Outline Mode, , Outline Mode, emacs, GNU Emacs Manual}. You can add your own headings by setting the variable @code{TeX-outline-extra}. @defvar TeX-outline-extra List of extra @TeX{} outline levels. Each element is a list with two entries. The first entry is the regular expression matching a header, and the second is the level of the header. A @samp{^} is automatically prepended to the regular expressions in the list, so they must match text at the beginning of the line. See @code{LaTeX-section-list} or @code{ConTeXt-INTERFACE-section-list} for existing header levels. @end defvar The following example add @samp{\item} and @samp{\bibliography} headers, with @samp{\bibliography} at the same outline level as @samp{\section}, and @samp{\item} being below @samp{\subparagraph}. @lisp (setq TeX-outline-extra '(("[ \t]*\\\\\\(bib\\)?item\\b" 7) ("\\\\bibliography\\b" 2))) @end lisp You may want to check out the unbundled @file{out-xtra} package for even better outline support. It is available from your favorite emacs lisp archive. @node Narrowing @section Narrowing Sometimes you want to focus your attention to a limited region of the code. You can do that by restricting the text addressable by editing commands and hiding the rest of the buffer with the narrowing functions, @pxref{Narrowing,,,emacs,GNU Emacs Manual}. In addition, AUCTeX provides a couple of other commands to narrow the buffer to a group, i.e. a region enclosed in a pair of curly braces, and to @LaTeX{} environments. @deffn Command TeX-narrow-to-group @kindex C-x n g (@kbd{C-x n g}) Make text outside current group invisible. @end deffn @deffn Command LaTeX-narrow-to-environment @var{count} @kindex C-x n e (@kbd{C-x n e}) Make text outside current environment invisible. With optional argument @var{count} keep visible that number of enclosing environmens. @end deffn Like other standard narrowing functions, the above commands are disabled. Attempting to use them asks for confirmation and gives you the option of enabling them; if you enable the commands, confirmation will no longer be required for them. @node Prettifying @section Prettifying Emacs 25 is able to prettify symbols in programming language buffers, @pxref{Misc for Programs,,,emacs,GNU Emacs Manual}. The canonical example is to display @code{(lambda () ...)} as @code{(λ () ...)} in Lisp buffers. @AUCTeX{} can use this feature in order to display certain math macros and greek letters using their Unicode representation, too. For example, the @TeX{} code @code{\alpha \times \beta} will be displayed as @code{α × β}. When point is on one of the characters, it'll be unprettified automatically, meaning you see the verbatim text again. For this behaviour however you need to set @code{prettify-symbols-unprettify-at-point} to t or @code{right-edge} which will unprettify the symbol when point moves into or near it. To enable prettification in @AUCTeX{}, simply add @code{prettify-symbols-mode} to @code{TeX-mode-hook}. If you enabled prettification globally with @code{global-prettify-symbols-mode}, then it's automatically enabled in @AUCTeX{}, too. You can also add custom symbol unicode-character pairs for prettification by adding to @code{tex--prettify-symbols-alist}. Note that this variable is part of Emacs' stock @code{tex-mode.el} and used by that and @AUCTeX{}. @node Processing @chapter Starting Processors, Viewers and Other Programs The most powerful features of @AUCTeX{} may be those allowing you to run @TeX{}, @LaTeX{}, @ConTeXt{} and other external commands like Bib@TeX{} and @code{makeindex} from within Emacs, viewing and printing the results, and moreover allowing you to @emph{debug} your documents. @cindex tool bar, toolbar @vindex LaTeX-enable-toolbar @vindex plain-TeX-enable-toolbar @AUCTeX{} comes with a special tool bar for @TeX{} and @LaTeX{} which provides buttons for the most important commands. You can enable or disable it by customizing the options @code{plain-TeX-enable-toolbar} and @code{LaTeX-enable-toolbar} in the @code{TeX-tool-bar} customization group. @menu * Commands:: Invoking external commands. * Viewing:: Invoking external viewers. * Debugging:: Debugging @TeX{} and @LaTeX{} output. * Checking:: Checking the document. * Control:: Controlling the processes. * Cleaning:: Cleaning intermediate and output files. * Documentation:: Documentation about macros and packages. @end menu @node Commands @section Executing Commands @cindex Formatting @cindex Running @LaTeX{} @cindex Running @TeX{} @cindex @LaTeX{} @cindex @TeX{} @cindex Running commands @cindex Default command @cindex Header @cindex Trailer @cindex Setting the header @cindex Setting the trailer @cindex Region @cindex Region file @cindex Setting the default command @cindex Commands @cindex External Commands @cindex Indexing @cindex Making an index @cindex Running @code{makeindex} @cindex @code{makeindex} @cindex Bib@TeX{} @cindex Bibliography @cindex Literature @cindex Running Bib@TeX{} @cindex Making a bibliography @cindex Printing @cindex Writing to a printer Formatting the document with @TeX{}, @LaTeX{} or @ConTeXt{}, viewing with a previewer, printing the document, running Bib@TeX{}, making an index, or checking the document with @command{lacheck} or @command{chktex} all require running an external command. @menu * Starting a Command:: Starting a Command on a Document or Region * Selecting a Command:: Selecting and Executing a Command * Processor Options:: Options for @TeX{} Processors @end menu @node Starting a Command @subsection Starting a Command on a Document or Region There are two ways to run an external command, you can either run it on the current document with @code{TeX-command-master}, or on the current region with @code{TeX-command-region}. A special case of running @TeX{} on a region is @code{TeX-command-buffer} which differs from @code{TeX-command-master} if the current buffer is not its own master file. @deffn Command TeX-command-master @kindex C-c C-c (@kbd{C-c C-c}) Query the user for a command, and run it on the master file associated with the current buffer. The name of the master file is controlled by the variable @code{TeX-master}. The available commands are controlled by the variable @code{TeX-command-list}. @vindex TeX-master @vindex TeX-command-list @end deffn @deffn Command TeX-command-region @kindex C-c C-r (@kbd{C-c C-r}) Query the user for a command, and run it on the contents of the selected region. The region contents are written into the region file, after extracting the header and trailer from the master file. If mark is inactive (which can happen with Transient Mark mode), use the old region. See also the command @code{TeX-pin-region} about how to fix a region. The name of the region file is controlled by the variable @code{TeX-region}. The name of the master file is controlled by the variable @code{TeX-master}. The header is all text up to the line matching the regular expression @code{TeX-header-end}. The trailer is all text from the line matching the regular expression @code{TeX-trailer-start}. The available commands are controlled by the variable @code{TeX-command-list}. @vindex TeX-region @vindex TeX-header-end @vindex TeX-trailer-start @vindex TeX-master @vindex TeX-command-list @end deffn @deffn Command TeX-command-buffer @kindex C-c C-b (@kbd{C-c C-b}) Query the user for a command, and apply it to the contents of the current buffer. The buffer contents are written into the region file, after extracting the header and trailer from the master file. The command is then actually run on the region file. See above for details. @end deffn @deffn Command LaTeX-command-section @kindex C-c C-z (@kbd{C-c C-z}) Query the user for a command, and apply it to the current section (or part, chapter, subsection, paragraph, or subparagraph). What makes the current section is determined by @code{LaTeX-command-section-level} which can be enlarged/shrunken using @code{LaTeX-command-section-change-level} (@kbd{C-c M-z}). The given numeric prefix arg is added to the current value of @code{LaTeX-command-section-level}. By default, @code{LaTeX-command-section-level} is initialized with the current document's @code{LaTeX-largest-level}. The buffer contents are written into the region file, after extracting the header and trailer from the master file. The command is then actually run on the region file. See @code{TeX-command-region} for details. @end deffn It is also possible to compile automatically the whole document until it is ready with a single command: @code{TeX-command-run-all}. @deffn Command TeX-command-run-all @kindex C-c C-a (@kbd{C-c C-a}) Compile the current document until an error occurs or it is finished. If compilation finishes successfully, run the viewer at the end. @end deffn Here are some relevant variables. @defopt TeX-region The name of the file for temporarily storing the text when formatting the current region. @end defopt @defopt TeX-header-end A regular expression matching the end of the header. By default, this is @samp{\begin@{document@}} in @LaTeX{} mode and @samp{%**end of header} in @TeX{} mode. @end defopt @defopt TeX-trailer-start A regular expression matching the start of the trailer. By default, this is @samp{\end@{document@}} in @LaTeX{} mode and @samp{\bye} in @TeX{} mode. @end defopt If you want to change the values of @code{TeX-header-end} and @code{TeX-trailer-start} you can do this for all files by setting the variables in a mode hook or per file by specifying them as file variables (@pxref{File Variables,,,emacs,The Emacs Editor}). @deffn Command TeX-pin-region @kindex C-c C-t C-r (@kbd{C-c C-t C-r}) If you don't have a mode like Transient Mark mode active, where marks get disabled automatically, the region would need to get properly set before each call to @code{TeX-command-region}. If you fix the current region with @kbd{C-c C-t C-r}, then it will get used for more commands even though mark and point may change. An explicitly activated mark, however, will always define a new region when calling @code{TeX-command-region}. @end deffn @AUCTeX{} will allow one process for each document, plus one process for the region file to be active at the same time. Thus, if you are editing @var{n} different documents, you can have @var{n} plus one processes running at the same time. If the last process you started was on the region, the commands described in @ref{Debugging} and @ref{Control} will work on that process, otherwise they will work on the process associated with the current document. @node Selecting a Command @subsection Selecting and Executing a Command Once you started the command selection with @kbd{C-c C-c}, @kbd{C-c C-r} or @kbd{C-c C-b} you will be prompted for the type of command. @AUCTeX{} will try to guess which command is appropriate in the given situation and propose it as default. Usually this is a processor like @samp{TeX} or @samp{LaTeX} if the document was changed or a viewer if the document was just typeset. Other commands can be selected in the minibuffer with completion support by typing @key{TAB}. @vindex TeX-command-list @vindex TeX-expand-list The available commands are defined by the variable @code{TeX-command-list}. Per default it includes commands for typesetting the document (e.g. @samp{LaTeX}), for viewing the output (@samp{View}), for printing (@samp{Print}), for generating an index (@samp{Index}) or for spell checking (@samp{Spell}) to name but a few. You can also add your own commands by adding entries to @code{TeX-command-list}. Refer to its doc string for information about its syntax. You might also want to look at @code{TeX-expand-list} to learn about the expanders you can use in @code{TeX-command-list}. Note that the default of the variable occasionally changes. Therefore it is advisable to add to the list rather than overwriting it. You can do this with a call to @code{add-to-list} in your init file. For example, if you wanted to add a command for running a program called @samp{foo} on the master or region file, you could do this with the following form. @lisp (eval-after-load "tex" '(add-to-list 'TeX-command-list '("Foo" "foo %s" TeX-run-command t t :help "Run foo") t)) @end lisp As mentioned before, @AUCTeX{} will try to guess what command you want to invoke. If you want to use another command than @samp{TeX}, @samp{LaTeX} or whatever processor @AUCTeX{} thinks is appropriate for the current mode, set the variable @code{TeX-command-default}. You can do this for all files by setting it in a mode hook or per file by specifying it as a file variable (@pxref{File Variables,,,emacs,The Emacs Editor}). @defopt TeX-command-default The default command to run in this buffer. Must be an entry in @code{TeX-command-list}. @end defopt @cindex Biber @cindex biblatex In case you use biblatex in a document, when automatic parsing is enabled @AUCTeX{} checks the value of @samp{backend} option given to biblatex at load time to decide whether to use Bib@TeX{} or Biber for bibliography processing. Should @AUCTeX{} fail to detect the right backend, you can use the file local @code{LaTeX-biblatex-use-Biber} variable. @defvr Variable LaTeX-biblatex-use-Biber If this boolean variable is set as file local, it tells to @AUCTeX{} whether to use Biber with biblatex. In this case, the autodetection of the biblatex backend will be overridden. You may want to set locally this variable if automatic parsing is not enabled. @end defvr After confirming a command to execute, @AUCTeX{} will try to save any buffers related to the document, and check if the document needs to be reformatted. If the variable @code{TeX-save-query} is non-nil, @AUCTeX{} will query before saving each file. By default @AUCTeX{} will check emacs buffers associated with files in the current directory, in one of the @code{TeX-macro-private} directories, and in the @code{TeX-macro-global} directories. You can change this by setting the variable @code{TeX-check-path}. @defopt TeX-check-path Directory path to search for dependencies. If nil, just check the current file. Used when checking if any files have changed. @end defopt @cindex ispell When performing spell checking on a document or a region (invoked through @AUCTeX{}'s @samp{Spell} command or @kbd{M-x ispell RET}), you want the spell checking program to skip certain macro arguments and environments, most notably the arguments of referencing macros and the contents of verbatim environments. The skipped parts are controlled by variable @code{ispell-tex-skip-alists} provided by @file{ispell.el}. @AUCTeX{} has a library which can be added to this variable depending on the value of @code{TeX-ispell-extend-skip-list} which is set to @code{t} by default. @defopt TeX-ispell-extend-skip-list This boolean option controls whether @AUCTeX{} activates its extension for skipping certain macro arguments and environments when spell checking. When non-@code{nil}, @AUCTeX{} loads the file @file{tex-ispell.el} and adds its content to @code{ispell-tex-skip-alists}. This library can and will never be complete, but the interface can be used to add selected and private macro names within your init file or on a file local basis. @code{ispell-tex-skip-alists} has the following structure: @lisp (defvar ispell-tex-skip-alists '((;; First list ("\\\\addcontentsline" ispell-tex-arg-end 2) ("\\\\\\([aA]lph\\|arabic\\)" ispell-tex-arg-end) ("\\\\makebox" ispell-tex-arg-end 0) ("\\\\documentclass" . "\\\\begin@{document@}")) (;; Second list ("\\(figure\\|table\\)\\*?" ispell-tex-arg-end 0) ("list" ispell-tex-arg-end 2) ("verbatim\\*?" . "\\\\end@{verbatim\\*?@}"))) "*Lists of regions to be skipped in TeX mode. First list is used raw. Second list has key placed inside \\begin@{@}.") @end lisp Each item is an alist and the structure of it is described in @code{ispell-skip-region-alist}: @lisp (defvar ispell-skip-region-alist '((...)) "Alist expressing beginning and end of regions not to spell check. The alist key must be a regular expression. Valid forms include: (KEY) - just skip the key. (KEY . REGEXP) - skip to the end of REGEXP. REGEXP may be string or symbol. (KEY REGEXP) - skip to end of REGEXP. REGEXP must be a string. (KEY FUNCTION ARGS) - FUNCTION called with ARGS returns end of region.") @end lisp Let's go through the first list of @code{ispell-tex-skip-alists} line by line: @lisp ("\\\\addcontentsline" ispell-tex-arg-end 2) @end lisp @code{KEY} is the string @code{"\\\\addcontentsline"}, @code{FUNCTION} is @code{ispell-tex-arg-end} called with @code{ARGS}, here @code{2}. @code{ispell-tex-arg-end} is a function provided by @file{ispell.el} which skips as many subsequent optional arguments in square brackets as it sees and then skips @code{ARGS} number of mandatory arguments in braces. Omitting @code{ARGS} means skip @code{1} mandatory argument. In practice, when you have something like this in your document: @example \addcontentsline@{toc@}@{chapter@}@{Some text@} @end example The first two arguments are left out and @samp{Some text} will be spell checked. For the next line @lisp ("\\\\\\([aA]lph\\|arabic\\)" ispell-tex-arg-end) @end lisp the name of the counter as argument is skipped. Next line is @lisp ("\\\\makebox" ispell-tex-arg-end 0) @end lisp where only optional arguments are skipped, the first mandatory argument is checked, e.g. @example \makebox[0pt][l]@{Some text@} @end example Finally, the next line @lisp ("\\\\documentclass" . "\\\\begin@{document@}")) @end lisp ensures that the entire preamble of a document is discarded. Second list works the same; it is more convenient for environments since @code{KEY} is wrapped inside @code{\begin@{@}}. @AUCTeX{} provides two functions to add items to car and cdr of @code{ispell-tex-arg-end}, namely @code{TeX-ispell-skip-setcar} and @code{TeX-ispell-skip-setcdr}. The argument of these functions is exactly as in @code{ispell-tex-skip-alists}. Additions can be done via init file, e.g.: @lisp (eval-after-load "tex-ispell" '(progn (TeX-ispell-skip-setcar '(("\\\\mymacro" ispell-tex-arg-end))) (TeX-ispell-skip-setcdr '(("myverbatim" . "\\\\end@{myverbatim@}"))))) @end lisp Another possibility is to use file local additions at the end of your @TeX{} file, e.g.: @example %%% Local Variables: %%% mode: latex %%% TeX-master: t %%% eval: (TeX-ispell-skip-setcar '(("\\\\mymacro" . "@{[-0-9]+@}"))) %%% End: @end example @findex TeX-ispell-tex-arg-end Finally, @AUCTeX{} provides a function called @code{TeX-ispell-tex-arg-end} which sees more arguments than @code{ispell-tex-arg-end}. Refer to its doc string for more information. @end defopt @AUCTeX{} also provides a facility to skip the argument of in-line verbatim macros like @samp{\Verb} from @file{fancyvrb.sty} or @samp{\mintinline} from @file{minted.sty}. Characters delimiting the verbatim text are stored in @code{TeX-ispell-verb-delimiters}. @defopt TeX-ispell-verb-delimiters String with delimiters recognized for in-line verbatim macros. This variable is initialized to @samp{!|#~\"*/+^-}. Since this string is used to build a character alternative inside a regular expression, special characters @samp{^} and @samp{-} should come last. Other characters like opening brace @samp{@{}, asterisk @samp{*} or at sign @samp{@@} should be avoided as they are not recognized by @file{font-latex.el}. @end defopt @node Processor Options @subsection Options for @TeX{} Processors There are some options you can customize affecting which processors are invoked or the way this is done and which output they produce as a result. These options control if @acronym{DVI} or @acronym{PDF} output should be produced, if @TeX{} should be started in interactive or nonstop mode, if source specials or a Sync@TeX{} file should be produced for making inverse and forward search possible or which @TeX{} engine should be used instead of regular @TeX{}, like PDF@TeX{}, Omega or Xe@TeX{}, and the style error messages are printed with. @deffn Command TeX-PDF-mode @kindex C-c C-t C-p @vindex TeX-PDF-mode @cindex PDF mode (@kbd{C-c C-t C-p}) This command toggles the @acronym{PDF} mode of @AUCTeX{}, a buffer-local minor mode which is enabled by default. You can customize @code{TeX-PDF-mode} to give it a different default or set it as a file local variable on a per-document basis. This option usually results in calling either PDF@TeX{} or ordinary @TeX{}. @end deffn @defopt TeX-DVI-via-PDFTeX If this is set, @acronym{DVI} will also be produced by calling PDF@TeX{}, setting @code{\pdfoutput=0}. This makes it possible to use PDF@TeX{} features like character protrusion even when producing @acronym{DVI} files. Contemporary @TeX{} distributions do this anyway, so that you need not enable the option within @AUCTeX{}. @end defopt @deffn Command TeX-interactive-mode @kindex C-c C-t C-i @vindex TeX-interactive-mode (@kbd{C-c C-t C-i}) This command toggles the interactive mode of @AUCTeX{}, a global minor mode. You can customize @code{TeX-interactive-mode} to give it a different default. In interactive mode, @TeX{} will pause with an error prompt when errors are encountered and wait for the user to type something. @end deffn @cindex I/O correlation @cindex SyncTeX @cindex Source specials @cindex PDFSync @deffn Command TeX-source-correlate-mode @kindex C-c C-t C-s @vindex TeX-source-correlate-mode (@kbd{C-c C-t C-s}) Toggles support for forward and inverse search. Forward search refers to jumping to the place in the previewed document corresponding to where point is located in the document source and inverse search to the other way round. @xref{I/O Correlation}. You can permanently activate @code{TeX-source-correlate-mode} by customizing the variable @code{TeX-source-correlate-mode}. There is a bunch of customization options for the mode, use @kbd{M-x customize-group @key{RET} TeX-view @key{RET}} to find out more. @vindex TeX-source-correlate-method @AUCTeX{} is aware of three different means to do I/O correlation: source specials (only DVI output), the pdfsync @LaTeX{} package (only PDF output) and Sync@TeX{}. The choice between source specials and Sync@TeX{} can be controlled with the variable @code{TeX-source-correlate-method}. Should you use source specials it has to be stressed @emph{very} strongly however, that source specials can cause differences in page breaks and spacing, can seriously interfere with various packages and should thus @emph{never} be used for the final version of a document. In particular, fine-tuning the page breaks should be done with source specials switched off. @end deffn Sometimes you are requested, by journal rules or packages, to compile the document into @acronym{DVI} output. Thus, if you want a @acronym{PDF} document in the end you can either use Xe@TeX{} engine, see below for information about how to set engines, or compile the document with @command{tex} and then convert to @acronym{PDF} with @command{dvips}--@command{ps2pdf} before viewing it. In addition, current Japanese @TeX{} engines cannot generate @acronym{PDF} directly so they rely on @acronym{DVI}-to-@acronym{PDF} converters. Usually @command{dvipdfmx} command is used for this purpose. You can use the @code{TeX-PDF-from-DVI} variable to let @AUCTeX{} know you want to generate the final @acronym{PDF} by converting a @acronym{DVI} file. @defopt TeX-PDF-from-DVI This option controls if and how to produce a @acronym{PDF} file by converting a @acronym{DVI} file. When @code{TeX-PDF-mode} is non-nil, if @code{TeX-PDF-from-DVI} is non-nil too the document is compiled to @acronym{DVI} instead of @acronym{PDF}. When the document is ready, @kbd{C-c C-c} will suggest to run the converter to @acronym{PDF} or an intermediate format. If non-nil, @code{TeX-PDF-from-DVI} should be the name of the command, as a string, used to convert the @acronym{DVI} file to @acronym{PDF} or to an intermediate format. Values currently supported are: @itemize @item @code{"Dvips"}: the @acronym{DVI} file is converted to @acronym{PS} with @command{dvips}. After successfully running it, @command{ps2pdf} will be the default command to convert the @acronym{PS} file to @acronym{PDF}. @item @code{"Dvipdfmx"}: the @acronym{DVI} file is converted to @acronym{PDF} with @command{dvipdfmx}. @end itemize When the @acronym{PDF} file is finally ready, the next suggested command will be to open the viewer. This option can also be set as a file local variable, in order to use this conversion on a per-document basis. Recall the whole sequence of @kbd{C-c C-c} commands can be replace by the single @kbd{C-c C-a}. @end defopt @AUCTeX{} also allows you to easily select different @TeX{} engines for processing, either by using the entries in the @samp{TeXing Options} submenu below the @samp{Command} menu or by calling the function @code{TeX-engine-set}. These eventually set the variable @code{TeX-engine} which you can also modify directly. @defopt TeX-engine This variable allows you to choose which @TeX{} engine should be used for typesetting the document, i.e. the executables which will be used when you invoke the @samp{TeX} or @samp{LaTeX} commands. The value should be one of the symbols defined in @code{TeX-engine-alist-builtin} or @code{TeX-engine-alist}. The symbols @samp{default}, @samp{xetex}, @samp{luatex} and @samp{omega} are available from the built-in list. @end defopt Note that @code{TeX-engine} is buffer-local, so setting the variable directly or via the above mentioned menu or function will not take effect in other buffers. If you want to activate an engine for all @AUCTeX{} modes, set @code{TeX-engine} in your init file, e.g. by using @kbd{M-x customize-variable }. If you want to activate it for a certain @AUCTeX{} mode only, set the variable in the respective mode hook. If you want to activate it for certain files, set it through file variables (@pxref{File Variables,,,emacs,The Emacs Editor}). @vindex TeX-command @vindex LaTeX-command @vindex TeX-Omega-command @vindex LaTeX-Omega-command @vindex ConTeXt-engine @vindex ConTeXt-Omega-engine @vindex TeX-engine-alist @vindex TeX-engine-alist-builtin Should you need to change the executable names related to the different engine settings, there are some variables you can tweak. Those are @code{TeX-command}, @code{LaTeX-command}, @code{TeX-Omega-command}, @code{LaTeX-Omega-command}, @code{ConTeXt-engine} and @code{ConTeXt-Omega-engine}. The rest of the executables is defined directly in @code{TeX-engine-alist-builtin}. If you want to override an entry from that, add an entry to @code{TeX-engine-alist} that starts with the same symbol as that the entry in the built-in list and specify the executables you want to use instead. You can also add entries to @code{TeX-engine-alist} in order to add support for engines not covered per default. @defopt TeX-engine-alist Alist of TeX engines and associated commands. Each entry is a list with a maximum of five elements. The first element is a symbol used to identify the engine. The second is a string describing the engine. The third is the command to be used for plain TeX. The fourth is the command to be used for LaTeX. The fifth is the command to be used for the @samp{--engine} parameter of ConTeXt's @samp{texexec} program. Each command can either be a variable or a string. An empty string or nil means there is no command available. @end defopt In some systems, Emacs cannot inherit the PATH environment variable from the shell and thus @AUCTeX{} may not be able to run @TeX{} commands. Before running them, @AUCTeX{} checks if it able to find those commands and will warn you in case it fails. You can skip this test by changing the option @code{TeX-check-TeX}. @defopt TeX-check-TeX @vindex TeX-command @vindex TeX-check-TeX-command-not-found If non-nil, @AUCTeX{} will check if it is able to find a working @TeX{} distribution before running @TeX{}, @LaTeX{}, @ConTeXt{}, etc. It actually checks if can run @code{TeX-command} command or the shell returns a command not found error. The error code returned by the shell in this case can be set in @code{TeX-check-TeX-command-not-found} option. @end defopt Some @LaTeX{} packages requires the document to be compiled with a specific engine. Notable examples are fontspec and polyglossia packages, which require Lua@TeX{} and Xe@TeX{} engines. If you try to compile a document which loads one of such packages and the set engine is not one of those allowed you will be asked to select a different engine before running the @LaTeX{} command. If you do not want to be warned by @AUCTeX{} in these cases, customize the option @code{TeX-check-engine}. @defopt TeX-check-engine This boolean option controls whether @AUCTeX{} should check the correct engine has been set before running @LaTeX{} commands. @end defopt As shown above, @AUCTeX{} handles in a special way most of the main options that can be given to the @TeX{} processors. When you need to pass to the @TeX{} processor arbitrary options not handled by @AUCTeX{}, you can use the file local variable @code{TeX-command-extra-options}. @defopt TeX-command-extra-options String with the extra options to be given to the TeX processor. For example, if you need to enable the shell escape feature to compile a document, add the following line to the list of local variables of the source file: @example %%% TeX-command-extra-options: "-shell-escape" @end example By default this option is not safe as a file-local variable because a specially crafted document compiled with shell escape enabled can be used for malicious purposes. @end defopt You can customize @AUCTeX{} to show the processor output as it is produced. @defopt TeX-show-compilation If non-nil, the output of @TeX{} compilation is shown in another window. @end defopt You can instruct @TeX{} to print error messages in the form file:line:error which is similar to the way many compilers format them. @defopt TeX-file-line-error If non-nil, @TeX{} will produce file:line:error style error messages. @end defopt @ConTeXt{} users can choose between Mark II and Mark IV versions. This is controlled by @code{ConTeXt-Mark-version} option. @defopt ConTeXt-Mark-version This variables specifies which version of Mark should be used. Values currently supported are @code{"II"}, the default, and @code{"IV"}. It can be set globally using customization interface or on a per-file basis, by specifying it as a file variable. @end defopt @node Viewing @section Viewing the Formatted Output @cindex Viewing @cindex Previewing @cindex Starting a previewer @AUCTeX{} allows you to start external programs for previewing the formatted output of your document. @menu * Starting Viewers:: Starting viewers * I/O Correlation:: Forward and inverse search @end menu @node Starting Viewers @subsection Starting Viewers Viewers are normally invoked by pressing @kbd{C-c C-c} once the document is formatted, which will propose the View command, or by activating the respective entry in the Command menu. Alternatively you can type @kbd{C-c C-v} which calls the function @code{TeX-view}. @deffn Command TeX-view @kindex C-c C-v (@kbd{C-c C-v}) Start a viewer without confirmation. The viewer is started either on a region or the master file, depending on the last command issued. This is especially useful for jumping to the location corresponding to point in the viewer when using @code{TeX-source-correlate-mode}. @end deffn @AUCTeX{} will try to guess which type of viewer (@acronym{DVI}, PostScript or @acronym{PDF}) has to be used and what options are to be passed over to it. This decision is based on the output files present in the working directory as well as the class and style options used in the document. For example, if there is a @acronym{DVI} file in your working directory, a @acronym{DVI} viewer will be invoked. In case of a @acronym{PDF} file it will be a @acronym{PDF} viewer. If you specified a special paper format like @samp{a5paper} or use the @samp{landscape} option, this will be passed to the viewer by the appropriate options. Especially some @acronym{DVI} viewers depend on this kind of information in order to display your document correctly. In case you are using @samp{pstricks} or @samp{psfrag} in your document, a @acronym{DVI} viewer cannot display the contents correctly and a PostScript viewer will be invoked instead. The association between the tests for the conditions mentioned above and the viewers is made in the variable @code{TeX-view-program-selection}. Therefore this variable is the starting point for customization if you want to use other viewers than the ones suggested by default. @defopt TeX-view-program-selection This is a list of predicates and viewers which is evaluated from front to back in order to find out which viewer to call under the given conditions. In the first element of each list item you can reference one or more predicates defined in @code{TeX-view-predicate-list} or @code{TeX-view-predicate-list-builtin}. In the second element you can reference a viewer defined in @code{TeX-view-program-list} or @code{TeX-view-program-list-builtin}. The viewer of the first item with a positively evaluated predicate is selected. @end defopt So @code{TeX-view-program-selection} only contains references to the actual implementations of predicates and viewer commands respectively which can be found elsewhere. @AUCTeX{} comes with a set of preconfigured predicates and viewer commands which are stored in the variables @code{TeX-view-predicate-list-builtin} and @code{TeX-view-program-list-builtin} respectively. If you are not satisfied with those and want to overwrite one of them or add your own definitions, you can do so via the variables @code{TeX-view-predicate-list} and @code{TeX-view-program-list}. @defopt TeX-view-predicate-list This is a list of predicates for viewer selection and invocation. The first element of each list item is a symbol and the second element a Lisp form to be evaluated. The form should return nil if the predicate is not fulfilled. A built-in predicate from @code{TeX-view-predicate-list-builtin} can be overwritten by defining a new predicate with the same symbol. @end defopt @defopt TeX-view-program-list This is a list of viewer specifications each consisting of a symbolic name and either a command line or a function to be invoked when the viewer is called. If a command line is used, parts of it can be conditionalized by prefixing them with predicates from @code{TeX-view-predicate-list} or @code{TeX-view-predicate-list-builtin}. (See the doc string for the exact format to use.) The command line can also contain placeholders as defined in @code{TeX-expand-list} and @code{TeX-expand-list-builtin} which are expanded before the viewer is called. The third element of each item is a string, or a list of strings, with the name of the executable, or executables, needed to open the output file in the viewer. Placeholders defined in @code{TeX-expand-list} and @code{TeX-expand-list-builtin} can be used here. This element is optional and is used to check whether the viewer is actually available on the system. A built-in viewer spec from @code{TeX-view-program-list-builtin} can be overwritten by defining a new viewer spec with the same name. @end defopt Note that the viewer selection and invocation as described above will only work if certain default settings in @AUCTeX{} are intact. For one, the whole viewer selection machinery will only be triggered if there is no @samp{%V} expander in @code{TeX-expand-list}. So if you have trouble with the viewer invocation you might check if there is an older customization of the variable in place. In addition, the use of a function in @code{TeX-view-program-list} only works if the View command in @code{TeX-command-list} makes use of the hook @code{TeX-run-discard-or-function}. Note also that the implementation described above replaces an older one which was less flexible. This old implementation works with the variables @code{TeX-output-view-style} and @code{TeX-view-style} which are used to associate file types and style options with viewers. If desired you can reactivate it by using the placeholder @samp{%vv} for the View command in @code{TeX-command-list}. Note however, that it is bound to be removed from @AUCTeX{} once the new implementation proved to be satisfactory. For the time being, find a short description of the mentioned customization options below. @defopt TeX-output-view-style List of output file extensions, style options and view options. Each item of the list consists of three elements. If the first element (a regular expression) matches the output file extension, and the second element (a regular expression) matches the name of one of the style options, any occurrence of the string @code{%V} in a command in @code{TeX-command-list} will be replaced with the third element. @end defopt @defopt TeX-view-style List of style options and view options. This is the predecessor of @code{TeX-output-view-style} which does not provide the possibility to specify output file extensions. It is used as a fallback in case none of the alternatives specified in @code{TeX-output-view-style} match. In case none of the entries in @code{TeX-view-style} match either, no suggestion for a viewer is made. @end defopt @node I/O Correlation @subsection Forward and Inverse Search @cindex Inverse search @cindex Forward search @cindex I/O correlation @cindex Source specials @cindex SyncTeX @cindex PDFSync Forward and inverse search refer to the correlation between the document source in the editor and the typeset document in the viewer. Forward search allows you to jump to the place in the previewed document corresponding to a certain line in the document source and inverse search vice versa. @findex TeX-source-correlate-mode @AUCTeX{} supports three methods for forward and inverse search: source specials (only DVI output), the pdfsync @LaTeX{} package (only PDF output) and Sync@TeX{} (any type of output). If you want to make use of forward and inverse searching with source specials or Sync@TeX{}, switch on @code{TeX-source-correlate-mode}. @xref{Processor Options}, on how to do that. The use of the pdfsync package is detected automatically if document parsing is enabled. Customize the variable @code{TeX-source-correlate-method} to select the method to use. @defopt TeX-source-correlate-method Method to use for enabling forward and inverse search. This can be @samp{source-specials} if source specials should be used, @samp{synctex} if SyncTeX should be used, or @samp{auto} if @AUCTeX{} should decide. When the variable is set to @samp{auto}, @AUCTeX{} will always use SyncTeX if your @code{latex} processor supports it, source specials otherwise. You must make sure your viewer supports the same method. It is also possible to specify a different method depending on the output, either DVI or PDF, by setting the variable to an alist of the kind @lisp ((dvi . ) (pdf . )) @end lisp in which the CDR of each entry is a symbol specifying the method to be used in the corresponding mode. The default value of the variable is @lisp ((dvi . source-specials) (pdf . synctex)) @end lisp which is compatible with the majority of viewers. @end defopt @findex TeX-view Forward search happens automatically upon calling the viewer, e.g. by typing @kbd{C-c C-v} (@code{TeX-view}). This will open the viewer or bring it to front and display the output page corresponding to the position of point in the source file. @AUCTeX{} will automatically pass the necessary command line options to the viewer for this to happen. @vindex TeX-source-correlate-start-server Upon opening the viewer you will be asked if you want to start a server process (Gnuserv or Emacs server) which is necessary for inverse search. This happens only if there is no server running already. You can customize the variable @code{TeX-source-correlate-start-server} to inhibit the question and always or never start the server respectively. @defopt TeX-source-correlate-start-server If @code{TeX-source-correlate-mode} is active and a viewer is invoked, the default behavior is to ask if a server process should be started. Set this variable to @code{t} if the question should be inhibited and the server should always be started. Set it to @code{nil} if the server should never be started. Inverse search will not be available in the latter case. @end defopt Inverse search, i.e. jumping to the part of your document source in Emacs corresponding to a certain position in the viewer, is triggered from the viewer, typically by a mouse click. Refer to the documentation of your viewer to find out how it has to be configured and what you have to do exactly. In xdvi you normally have to use @kbd{C-down-mouse-1}. @vindex TeX-source-correlate-start-server Note that inverse search with the Evince PDF viewer or its MATE fork Atril might fail in raising the Emacs frame after updating point in your document's buffer. There is simply no way to raise the Emacs frame reliably accross different operating systems and different window managers with their different focus stealing policies. If the Emacs frame is not raised after performing an inverse search from Evince or Atril, you can customize the following option. @defopt TeX-raise-frame-function A function that will be called after performing an inverse search from Evince or Atril in order to raise the current Emacs frame. If your Emacs frame is already raised in that situation, just leave this variable set to its default value @code{raise-frame}. Otherwise, here are some alternative settings that work for some users. @lisp ;; Alternative 1: For some users, `x-focus-frame' works. Note ;; that this function requires Emacs 24+. (setq TeX-raise-frame-function #'x-focus-frame) ;; Alternative 2: Under GNOME 3.20 (and probably others), it ;; seems some focus stealing prevention policy prohibits that ;; some window gets the focus immediately after the user has ;; clicked in some other window. Here waiting a bit before ;; issuing the request seems to work. (setq TeX-raise-frame-function (lambda () (run-at-time 0.5 nil #'x-focus-frame))) ;; Alternative 3: Use the external wmctrl tool in order to ;; force Emacs into the focus. (setq TeX-raise-frame-function (lambda () (call-process "wmctrl" nil nil nil "-i" "-R" (frame-parameter (selected-frame) ’outer-window-id)))) @end lisp @end defopt @node Debugging @section Catching the errors @cindex Debugging @cindex Errors @cindex Parsing errors @cindex Parsing TeX output @cindex Next error @cindex Parsing @LaTeX{} errors @cindex Overfull boxes @cindex Bad boxes @cindex Underfull boxes Once you've formatted your document you may `debug' it, i.e. browse through the errors (La)@TeX{} reported. If you have GNU Emacs 24 or later, you may also have a look at a nicely formatted list of all errors and warnings reported by the compiler. @deffn Command TeX-next-error @var{arg} @var{reparse} @kindex C-c ` (@kbd{C-c `}) Go to the next error reported by @TeX{}. The view will be split in two, with the cursor placed as close as possible to the error in the top view. In the bottom view, the error message will be displayed along with some explanatory text. An optional numeric @var{arg}, positive or negative, specifies how many error messages to move. A negative @var{arg} means to move back to previous error messages, see also @code{TeX-previous-error}. The optional @var{reparse} argument makes @AUCTeX{} reparse the error message buffer and start the debugging from the first error. This can also be achieved by calling the function with a prefix argument (@kbd{C-u}). @end deffn @deffn Command TeX-previous-error @var{arg} @kindex M-g p (@kbd{M-g p}) Go to the previous error reported by @TeX{}. An optional numeric @var{arg} specifies how many error messages to move backward. This is like calling @code{TeX-next-error} with a negative argument. @end deffn The command @code{TeX-previous-error} works only if @AUCTeX{} can parse the whole @TeX{} log buffer. This is controlled by the @code{TeX-parse-all-errors} variable. @defopt TeX-parse-all-errors If t, @AUCTeX{} automatically parses the whole output log buffer right after running a @TeX{} command, in order to collect all warnings and errors. This makes it possible to navigate back and forth between the error messages using @code{TeX-next-error} and @code{TeX-previous-error}. This is the default. If nil, @AUCTeX{} does not parse the whole output log buffer and @code{TeX-previous-error} cannot be used. @end defopt As default, @AUCTeX{} will display a special help buffer containing the error reported by @TeX{} along with the documentation. There is however an `expert' option, which allows you to display the real @TeX{} output. @defopt TeX-display-help If t @AUCTeX{} will automatically display a help text whenever an error is encountered using @code{TeX-next-error} (@kbd{C-c `}). If nil a terse information about the error is displayed in the echo area. If @code{expert} @AUCTeX{} will display the output buffer with the raw @TeX{} output. @end defopt @menu * Ignoring warnings:: Controlling warnings to be reported * Error overview:: List of all errors and warnings @end menu @node Ignoring warnings @subsection Controlling warnings to be reported Normally @AUCTeX{} will only report real errors, but you may as well ask it to report `bad boxes' and warnings as well. @deffn Command TeX-toggle-debug-bad-boxes @kindex C-c C-t C-b @vindex TeX-debug-bad-boxes (@kbd{C-c C-t C-b}) Toggle whether @AUCTeX{} should stop at bad boxes (i.e. overfull and underfull boxes) as well as normal errors. The boolean option @code{TeX-debug-bad-boxes} is set accordingly. @end deffn @deffn Command TeX-toggle-debug-warnings @kindex C-c C-t C-w @vindex TeX-debug-warnings (@kbd{C-c C-t C-w}) Toggle whether @AUCTeX{} should stop at warnings as well as normal errors. The boolean option @code{TeX-debug-warnings} is set accordingly. @end deffn While many users desire to have warnings reported after compilation, there are certain warnings that are considered unimportant and users want to ignore them. For a more fine-grained control of what kinds of warnings should be shown after compilation, @AUCTeX{} provides other options. @defopt TeX-ignore-warnings Controls which warnings are to be ignored. It can be a regexp matching the message of the warnings to be ignored. More advanced users can set also this option to a symbol with the name of a custom function taking as arguments all the information of the warning listed in @code{TeX-error-list} variable, except the last one about whether to ignore the warning. See the code of @code{TeX-warning} function and the documentation of @code{TeX-error-list} for more details. @end defopt @deffn Command TeX-toggle-suppress-ignored-warnings @kindex C-c C-t C-x @vindex TeX-suppress-ignored-warnings (@kbd{C-c C-t C-x}) Toggle whether @AUCTeX{} should actually hide the ignored warnings specified with @code{TeX-ignore-warnings}. The boolean option @code{TeX-suppress-ignored-warnings} is set accordingly. If this is nil, all warnings are shown, even those matched by @code{TeX-ignore-warnings}, otherwise these are hidden. Note that @code{TeX-debug-warnings} takes the precedence: if it is nil, all warnings are hidden in any case. @end deffn @node Error overview @subsection List of all errors and warnings When the option @code{TeX-parse-all-errors} is non-nil, you will be also able to open an overview of all errors and warnings reported by the TeX compiler. This feature requires @code{tabulated-list-mode}, shipped with GNU Emacs 24 or later. @deffn Command TeX-error-overview Show an overview of the errors and warnings occurred in the last TeX run. In this window you can visit the error on which point is on by pressing @key{RET}, and visit the next or previous issue by pressing @key{n} or @key{p} respectively. A prefix argument to these keys specifies how many errors to move forward or backward. You can visit an error also by clicking on its message. Jump to error point in the source code with @key{j}, and use @key{l} see the error in the log buffer. In addition, you can toggle visibility of bad boxes, generic warnings, and ignored warnings with @key{b}, @key{w}, and @key{x}, respectively (see @ref{Ignoring warnings} for details). Press @key{q} to quit the overview. @end deffn @defopt TeX-error-overview-open-after-TeX-run When this boolean variable is non-nil, the error overview will be automatically opened after running TeX if there are errors or warnings to show. @end defopt The error overview is opened in a new window of the current frame by default, but you can change this behavior by customizing the option @code{TeX-error-overview-setup}. @defopt TeX-error-overview-setup Controls the frame setup of the error overview. The possible value is: @code{separate-frame}; with a nil value the current frame is used instead. The parameters of the separate frame can be set with the @code{TeX-error-overview-frame-parameters} option. If the display does not support multi frame, the current frame will be used regardless of the value of this variable. @vindex TeX-error-overview-frame-parameters @end defopt @node Checking @section Checking for problems @cindex Checking @cindex @code{lacheck} @cindex @code{chktex} @cindex Finding errors @cindex Running @code{lacheck} @cindex Running @code{chktex} @cindex Style @cindex Problems Running @TeX{} or @LaTeX{} will only find regular errors in the document, not examples of bad style. Furthermore, description of the errors may often be confusing. The utilities @code{lacheck} and @code{chktex} can be used to find style errors, such as forgetting to escape the space after an abbreviation or using @samp{...} instead of @samp{\ldots} and other similar problems. You start @code{lacheck} with @kbd{C-c C-c Check @key{RET}} and @code{chktex} with @kbd{C-c C-c ChkTeX @key{RET}}. The result will be a list of errors in the @samp{*compilation*} buffer. You can go through the errors with @kbd{C-x `} (@code{next-error}, @pxref{Compilation,,,emacs,The Emacs Editor}), which will move point to the location of the next error. Each of the two utilities will find some errors the other doesn't, but @code{chktex} is more configurable, allowing you to create your own errors. You may need to install the programs before using them. You can get @code{lacheck} from @file{} and @code{chktex} from @file{}. @node Control @section Controlling the output @cindex Controlling the output @cindex Output @cindex Redisplay output @cindex Processes @cindex Killing a process @cindex Finding the master file @cindex Master file @cindex Stopping a process @cindex Current file @cindex Finding the current file A number of commands are available for controlling the output of an application running under @AUCTeX{} @deffn Command TeX-kill-job @kindex C-c C-k (@kbd{C-c C-k}) Kill currently running external application. This may be either of @TeX{}, @LaTeX{}, previewer, Bib@TeX{}, etc. @end deffn @deffn Command TeX-recenter-output-buffer @kindex C-c C-l (@kbd{C-c C-l}) Recenter the output buffer so that the bottom line is visible. @end deffn @deffn Command TeX-home-buffer @kindex C-c ^ (@kbd{C-c ^}) Go to the `master' file in the document associated with the current buffer, or if already there, to the file where the current process was started. @end deffn @node Cleaning @section Cleaning intermediate and output files @cindex Cleaning @deffn Command TeX-clean @vindex plain-TeX-clean-intermediate-suffixes @vindex plain-TeX-clean-output-suffixes @vindex LaTeX-clean-intermediate-suffixes @vindex LaTeX-clean-output-suffixes @vindex docTeX-clean-intermediate-suffixes @vindex docTeX-clean-output-suffixes @vindex Texinfo-clean-intermediate-suffixes @vindex Texinfo-clean-output-suffixes @vindex ConTeXt-clean-intermediate-suffixes @vindex ConTeXt-clean-output-suffixes Remove generated intermediate files. In case a prefix argument is given, remove output files as well. Canonical access to the function is provided by the @samp{Clean} and @samp{Clean All} entries in @code{TeX-command-list}, invokable with @kbd{C-c C-c} or the Command menu. The patterns governing which files to remove can be adapted separately for each @AUCTeX{} mode by means of the variables @code{plain-TeX-clean-intermediate-suffixes}, @code{plain-TeX-clean-output-suffixes}, @code{LaTeX-clean-intermediate-suffixes}, @code{LaTeX-clean-output-suffixes}, @code{docTeX-clean-intermediate-suffixes}, @code{docTeX-clean-output-suffixes}, @code{Texinfo-clean-intermediate-suffixes}, @code{Texinfo-clean-output-suffixes}, @code{ConTeXt-clean-intermediate-suffixes} and @code{ConTeXt-clean-output-suffixes}. @end deffn @defopt TeX-clean-confirm Control if deletion of intermediate and output files has to be confirmed before it is actually done. If non-nil, ask before deleting files. @end defopt @node Documentation @section Documentation about macros and packages @cindex Documentation @deffn Command TeX-documentation-texdoc @kindex C-c ? (@kbd{C-c ?}) Get documentation about the packages installed on your system, using @samp{texdoc} to find the manuals. The function will prompt for the name of packages. If point is on a word, this will be suggested as default. If the command is called with a prefix argument, you will be shown a list of manuals of the given package among to choose. The command can be invoked by the key binding mentioned above as well as the @samp{Find Documentation...} entry in the mode menu. @end deffn @node Customization @chapter Customization and Extension @menu * Modes and Hooks:: Modes and Hooks * Multifile:: Multifile Documents * Parsing Files:: Automatic Parsing of @TeX{} Files * Internationalization:: Language Support * Automatic:: Automatic Customization * Style Files:: Writing Your Own Style Support @end menu @node Modes and Hooks @section Modes and Hooks @AUCTeX{} supports a wide variety of derivatives and extensions of @TeX{}. Besides plain @TeX{} those are @LaTeX{}, AMS-@TeX{}, @ConTeXt{}, Texinfo and doc@TeX{}. For each of them there is a separate major mode in @AUCTeX{} and each major mode runs @code{text-mode-hook}, @code{TeX-mode-hook} as well as a hook special to the mode in this order. The following table provides an overview of the respective mode functions and hooks. @multitable {Plain @TeX{}} {@code{plain-TeX-mode}} {@code{plain-TeX-mode-hook}} @headitem Type @tab Mode function @tab Hook @item Plain @TeX{} @tab @code{plain-TeX-mode} @tab @code{plain-TeX-mode-hook} @item @LaTeX{} @tab @code{LaTeX-mode} @tab @code{LaTeX-mode-hook} @item AMS-@TeX{} @tab @code{ams-tex-mode} @tab @code{AmS-TeX-mode-hook} @item @ConTeXt{} @tab @code{ConTeXt-mode} @tab @code{ConTeXt-mode-hook} @item Texinfo @tab @code{Texinfo-mode} @tab @code{Texinfo-mode-hook} @item Doc@TeX{} @tab @code{docTeX-mode} @tab @code{docTeX-mode-hook} @end multitable @findex plain-TeX-mode @vindex plain-TeX-mode-hook @findex LaTeX-mode @vindex LaTeX-mode-hook @findex AmS-TeX-mode @vindex AmS-TeX-mode-hook @findex ConTeXt-mode @vindex ConTeXt-mode-hook @findex Texinfo-mode @vindex Texinfo-mode-hook @findex docTeX-mode @vindex docTeX-mode-hook If you need to make a customization via a hook which is only relevant for one of the modes listed above, put it into the respective mode hook, if it is relevant for any @AUCTeX{} mode, add it to @code{TeX-mode-hook} and if it is relevant for all text modes, append it to @code{text-mode-hook}. Other useful hooks are listed below. @defvr Variable TeX-after-compilation-finished-hook Hook which is run after the @TeX{}/@LaTeX{} processor has successfully finished compiling your document. (@xref{Processing}, for finding out how to compile your document). Each function in the hook is run with the compiled output document as its argument. This is useful for automatically refreshing the viewer after re-compilation especially when using Emacs viewers such as DocView or PDF Tools. The function @code{TeX-revert-document-buffer} can be added to the hook for this purpose. @end defvr @vindex TeX-after-compilation-finished-hook @findex TeX-revert-document-buffer @node Multifile @section Multifile Documents @cindex Multifile Documents @cindex Documents @cindex Documents with multiple files @cindex Multiple Files @cindex Many Files @cindex Including @cindex \include @cindex Inputing @cindex \input @cindex Master file You may wish to spread a document over many files (as you are likely to do if there are multiple authors, or if you have not yet discovered the power of the outline commands (@pxref{Outline})). This can be done by having a ``master'' file in which you include the various files with the @TeX{} macro @samp{\input} or the @LaTeX{} macro @samp{\include}. These files may also include other files themselves. However, to format the document you must run the commands on the top level master file. When you, for example, ask @AUCTeX{} to run a command on the master file, it has no way of knowing the name of the master file. By default, it will assume that the current file is the master file. If you insert the following in your @file{.emacs} file @AUCTeX{} will use a more advanced algorithm. @lisp (setq-default TeX-master nil) ; Query for master file. @end lisp If @AUCTeX{} finds the line indicating the end of the header in a master file (@code{TeX-header-end}), it can figure out for itself that this is a master file. Otherwise, it will ask for the name of the master file associated with the buffer. To avoid asking you again, @AUCTeX{} will automatically insert the name of the master file as a file variable (@pxref{File Variables,,,emacs,The Emacs Editor}). You can also insert the file variable yourself, by putting the following text at the end of your files. @findex TeX-header-end @example %%% Local Variables: %%% TeX-master: "master" %%% End: @end example You should always set this variable to the name of the top level document. If you always use the same name for your top level documents, you can set @code{TeX-master} in your @file{.emacs} file. @lisp (setq-default TeX-master "master") ; All master files called "master". @end lisp @defopt TeX-master The master file associated with the current buffer. If the file being edited is actually included from another file, then you can tell @AUCTeX{} the name of the master file by setting this variable. If there are multiple levels of nesting, specify the top level file. If this variable is @code{nil}, @AUCTeX{} will query you for the name. If the variable is @code{t}, then @AUCTeX{} will assume the file is a master file itself. If the variable is @code{shared}, then @AUCTeX{} will query for the name, but will not change the file. If the variable is @code{dwim}, @AUCTeX{} will try to avoid querying by attempting to ``do what I mean''; and then change the file. @end defopt @defopt TeX-one-master Regular expression matching ordinary @TeX{} files. You should set this variable to match the name of all files, for which it is a good idea to append a @code{TeX-master} file variable entry automatically. When @AUCTeX{} adds the name of the master file as a file variable, it does not need to ask next time you edit the file. If you dislike @AUCTeX{} automatically modifying your files, you can set this variable to @samp{""}. By default, @AUCTeX{} will modify any file with an extension of @samp{.tex}. @end defopt @deffn Command TeX-master-file-ask @kindex C-c _ (@kbd{C-c _}) Query for the name of a master file and add the respective File Variables (@pxref{File Variables,,,emacs,The Emacs Editor}) to the file for setting this variable permanently. @AUCTeX{} will not ask for a master file when it encounters existing files. This function shall give you the possibility to insert the variable manually. @end deffn @AUCTeX{} keeps track of macros, environments, labels, and style files that are used in a given document. For this to work with multifile documents, @AUCTeX{} has to have a place to put the information about the files in the document. This is done by having an @file{auto} subdirectory placed in the directory where your document is located. Each time you save a file, @AUCTeX{} will write information about the file into the @file{auto} directory. When you load a file, @AUCTeX{} will read the information in the @file{auto} directory about the file you loaded @emph{and the master file specified by @code{TeX-master}}. Since the master file (perhaps indirectly) includes all other files in the document, @AUCTeX{} will get information from all files in the document. This means that you will get from each file, for example, completion for all labels defined anywhere in the document. @AUCTeX{} will create the @file{auto} directory automatically if @code{TeX-auto-save} is non-nil. Without it, the files in the document will not know anything about each other, except for the name of the master file. @xref{Automatic Local}. @deffn Command TeX-save-document @kindex C-c C-d (@kbd{C-c C-d}) Save all buffers known to belong to the current document. @end deffn @defopt TeX-save-query If non-nil, then query the user before saving each file with @code{TeX-save-document}. @end defopt @node Parsing Files @section Automatic Parsing of @TeX{} Files @cindex Parsing @TeX{} @cindex Automatic Parsing @cindex Tabs @cindex Tabify @cindex Untabify @AUCTeX{} depends heavily on being able to extract information from the buffers by parsing them. Since parsing the buffer can be somewhat slow, the parsing is initially disabled. You are encouraged to enable them by adding the following lines to your @file{.emacs} file. @lisp (setq TeX-parse-self t) ; Enable parse on load. (setq TeX-auto-save t) ; Enable parse on save. @end lisp The latter command will make @AUCTeX{} store the parsed information in an @file{auto} subdirectory in the directory each time the @TeX{} files are stored, @pxref{Automatic Local}. If @AUCTeX{} finds the pre-parsed information when loading a file, it will not need to reparse the buffer. The information in the @file{auto} directory is also useful for multifile documents, @pxref{Multifile}, since it allows each file to access the parsed information from all the other files in the document. This is done by first reading the information from the master file, and then recursively the information from each file stored in the master file. The variables can also be done on a per file basis, by changing the file local variables. @example %%% Local Variables: %%% TeX-parse-self: t %%% TeX-auto-save: t %%% End: @end example Even when you have disabled the automatic parsing, you can force the generation of style information by pressing @kbd{C-c C-n}. This is often the best choice, as you will be able to decide when it is necessary to reparse the file. @defopt TeX-parse-self Parse file after loading it if no style hook is found for it. @end defopt @defopt TeX-auto-save Automatically save style information when saving the buffer. @end defopt @deffn Command TeX-normal-mode @var{arg} @kindex C-c C-n (@kbd{C-c C-n}) Remove all information about this buffer, and apply the style hooks again. Save buffer first including style information. With optional argument, also reload the style hooks. @end deffn When @AUCTeX{} saves your buffer, it can optionally convert all tabs in your buffer into spaces. Tabs confuse @AUCTeX{}'s error message parsing and so should generally be avoided. However, tabs are significant in some environments, and so by default @AUCTeX{} does not remove them. To convert tabs to spaces when saving a buffer, insert the following in your @file{.emacs} file: @lisp (setq TeX-auto-untabify t) @end lisp @defopt TeX-auto-untabify Automatically remove all tabs from a file before saving it. @end defopt Instead of disabling the parsing entirely, you can also speed it significantly up by limiting the information it will search for (and store) when parsing the buffer. You can do this by setting the default values for the buffer local variables @code{TeX-auto-regexp-list} and @code{TeX-auto-parse-length} in your @file{.emacs} file. @lisp ;; Only parse LaTeX class and package information. (setq-default TeX-auto-regexp-list 'LaTeX-auto-minimal-regexp-list) ;; The class and package information is usually near the beginning. (setq-default TeX-auto-parse-length 2000) @end lisp This example will speed the parsing up significantly, but @AUCTeX{} will no longer be able to provide completion for labels, macros, environments, or bibitems specified in the document, nor will it know what files belong to the document. These variables can also be specified on a per file basis, by changing the file local variables. @example %%% Local Variables: %%% TeX-auto-regexp-list: TeX-auto-full-regexp-list %%% TeX-auto-parse-length: 999999 %%% End: @end example @defopt TeX-auto-regexp-list List of regular expressions used for parsing the current file. @end defopt @defopt TeX-auto-parse-length Maximal length of @TeX{} file that will be parsed. @end defopt The pre-specified lists of regexps are defined below. You can use these before loading @AUCTeX{} by quoting them, as in the example above. @defvr Constant TeX-auto-empty-regexp-list Parse nothing @end defvr @defvr Constant LaTeX-auto-minimal-regexp-list Only parse @LaTeX{} class and packages. @end defvr @defvr Constant LaTeX-auto-label-regexp-list Only parse @LaTeX{} labels. @end defvr @defvr Constant LaTeX-auto-index-regexp-list Only parse @LaTeX{} index and glossary entries. @end defvr @defvr Constant LaTeX-auto-class-regexp-list Only parse macros in @LaTeX{} classes and packages. @end defvr @defvr Constant LaTeX-auto-pagestyle-regexp-list Only parse @LaTeX{} pagestyles. @end defvr @defvr Constant LaTeX-auto-counter-regexp-list Only parse @LaTeX{} counters. @end defvr @defvr Constant LaTeX-auto-length-regexp-list Only parse @LaTeX{} lengths. @end defvr @defvr Constant LaTeX-auto-savebox-regexp-list Only parse @LaTeX{} saveboxes. @end defvr @defvr Constant LaTeX-auto-regexp-list Parse common @LaTeX{} commands. @end defvr @defvr Constant plain-TeX-auto-regexp-list Parse common plain @TeX{} commands. @end defvr @defvr Constant TeX-auto-full-regexp-list Parse all @TeX{} and @LaTeX{} commands that @AUCTeX{} can use. @end defvr @node Internationalization @section Language Support @cindex Internationalization @cindex Language Support @cindex Character set @cindex National letters @cindex CJK language @cindex MULE @cindex C@TeX{} @cindex China@TeX{} @cindex p@TeX{} @cindex ASCII p@TeX{} @cindex j@TeX{} @cindex NTT j@TeX{} @cindex k@TeX{} @cindex H@LaTeX{} @cindex CJK-@LaTeX{} @cindex UNICODE @cindex MULE-UCS @TeX{} and Emacs are usable for European (Latin, Cyrillic, Greek) based languages. Some @LaTeX{} and EmacsLisp packages are available for easy typesetting and editing documents in European languages. @c Some Texinfo macros are not used because they require quite recent @c texinfo versions (2005-03-05): @c Second arg of @acronym is available with 4.7, @comma is available in @c 4.7, @abbr is available in 4.8. @c -> @abbr{MULE, MULtilingual Enhancement to GNU Emacs} @c -> @acronym{CJK, Chinese@comma{} Japanese@comma{} and Korean} For @acronym{CJK} (Chinese, Japanese, and Korean) languages, Emacs or XEmacs with @acronym{MULE} (MULtilingual Enhancement to GNU Emacs) support is required. @acronym{MULE} is part of Emacs by default since Emacs 20. XEmacs has to be configured with the @samp{--with-mule} option. Special versions of @TeX{} are needed for @acronym{CJK} languages: C@TeX{} and China@TeX{} for Chinese, ASCII p@TeX{} and NTT j@TeX{} for Japanese, H@LaTeX{} and k@TeX{} for Korean. The @acronym{CJK}-@LaTeX{} package is required for supporting multiple @acronym{CJK} scripts within a single document. Note that Unicode is not fully supported in Emacs 21 and XEmacs 21. @acronym{CJK} characters are not usable. Please use the @acronym{MULE}-@acronym{UCS} EmacsLisp package or Emacs 22 and later if you need @acronym{CJK}. @c FIXME: We need more information for CTeX, ChinaTeX, KTeX, and HLaTeX. @menu * European:: Using @AUCTeX{} with European Languages * Japanese:: Using @AUCTeX{} with Japanese @end menu @node European @subsection Using @AUCTeX{} with European Languages @cindex Europe @cindex European Characters @cindex ISO 8859 Latin 1 @cindex Latin 1 @cindex ISO 8859 Latin 2 @cindex Latin 2 @cindex ANSI @subsubsection Typing and Displaying Non-ASCII Characters First you will need a way to write non-ASCII characters. You can either use macros, or teach @TeX{} about the ISO character sets. I prefer the latter, it has the advantage that the usual standard emacs word movement and case change commands will work. With @LaTeX{}2e, just add @samp{\usepackage[latin1]@{inputenc@}}. Other languages than Western European ones will probably have other encoding needs. To be able to display non-ASCII characters you will need an appropriate font and a version of GNU Emacs capable of displaying 8-bit characters (e.g. Emacs 21). The manner in which this is supported differs between Emacsen, so you need to take a look at your respective documentation. A compromise is to use an European character set when editing the file, and convert to @TeX{} macros when reading and writing the files. @table @file @item iso-cvt.el @cindex @file{iso-cvt.el} Much like @file{iso-tex.el} but is bundled with Emacs 19.23 and later. @item x-compose.el @cindex @file{x-compose.el} Similar package bundled with new versions of XEmacs. @item X-Symbol @cindex X-Symbol a much more complete package for both Emacs and XEmacs that can also handle a lot of mathematical characters and input methods. @end table @subsubsection Style Files for Different Languages @cindex ispell @AUCTeX{} supports style files for several languages. Each style file may modify @AUCTeX{} to better support the language, and will run a language specific hook that will allow you to for example change ispell dictionary, or run code to change the keyboard remapping. The following will for example choose a Danish dictionary for documents including @samp{\usepackage[danish]@{babel@}}. This requires parsing to be enabled, @pxref{Parsing Files}. @lisp (add-hook 'TeX-language-dk-hook (lambda () (ispell-change-dictionary "danish"))) @end lisp The following style files are recognized: @c In alphabetic order of the hooks: @vindex TeX-language-bg-hook @vindex TeX-language-cz-hook @vindex TeX-language-dk-hook @vindex TeX-language-en-hook @vindex TeX-language-nl-hook @vindex TeX-language-de-hook @vindex TeX-language-it-hook @vindex TeX-language-is-hook @vindex TeX-language-pl-hook @vindex TeX-language-sk-hook @vindex TeX-language-sv-hook @cindex Bulgarian @cindex Czech @cindex Italian @cindex Danish @cindex Dutch @cindex English @cindex German @cindex Polish @cindex Slovak @cindex Swedish @table @file @item bulgarian Runs style hook @code{TeX-language-bg-hook}. Gives @samp{"} word syntax, makes the @key{"} key insert a literal @samp{"}. Typing @key{"} twice will insert insert @samp{"`} or @samp{"'} depending on context. Typing @key{-} twice will insert @samp{"=}, three times @samp{--}. @item czech Runs style hook @code{TeX-language-cz-hook}. Pressing @key{"} will insert @samp{\uv@{} and @samp{@}} depending on context. @c Is the difference between dk and danish really intented? @item danish Runs style hook @code{TeX-language-dk-hook}. Pressing @key{"} will insert @samp{"`} and @samp{"'} depending on context. Typing @key{-} twice will insert @samp{"=}, i.e. a hyphen string allowing hyphenation in the composing words. @c dk.sty seems to be obsolete, so we don't want to encourage using it. @c @item dk @c Runs style hook @code{TeX-language-dk-hook}. @item dutch Runs style hook @code{TeX-language-nl-hook}. @item english @itemx australian @itemx canadian @itemx newzealand Runs style hook @code{TeX-language-en-hook}. @item frenchb @itemx francais Runs style hook @code{TeX-language-fr-hook}. Pressing @key{"} will insert @samp{\\og} and @samp{\\fg} depending on context. Note that the language name for customizing @code{TeX-quote-language-alist} is @samp{french}. @item german @itemx ngerman Runs style hook @code{TeX-language-de-hook}. Gives @samp{"} word syntax, makes the @key{"} key insert a literal @samp{"}. Pressing the key twice will give you opening or closing German quotes (@samp{"`} or @samp{"'}). Typing @key{-} twice will insert @samp{"=}, three times @samp{--}. @item icelandic Runs style hook @code{TeX-language-is-hook}. Gives @samp{"} word syntax, makes the @key{"} key insert a literal @samp{"}. Typing @key{"} twice will insert insert @samp{"`} or @samp{"'} depending on context. Typing @key{-} twice will insert @samp{"=}, three times @samp{--}. @item italian Runs style hook @code{TeX-language-it-hook}. Pressing @key{"} will insert @samp{"<} and @samp{">} depending on context. @item polish Runs style hook @code{TeX-language-pl-hook}. Gives @samp{"} word syntax and makes the @key{"} key insert a literal @samp{"}. Pressing @key{"} twice will insert @samp{"`} or @samp{"'} depending on context. @item polski Runs style hook @code{TeX-language-pl-hook}. Makes the @key{"} key insert a literal @samp{"}. Pressing @key{"} twice will insert @samp{,,} or @samp{''} depending on context. @item slovak Runs style hook @code{TeX-language-sk-hook}. Pressing @key{"} will insert @samp{\uv@{} and @samp{@}} depending on context. @item swedish Runs style hook @code{TeX-language-sv-hook}. Pressing @key{"} will insert @samp{''}. Typing @key{-} twice will insert @samp{"=}, three times @samp{--}. @end table Replacement of language-specific hyphen strings like @samp{"=} with dashes does not require to type @key{-} three times in a row. You can put point after the hypen string anytime and trigger the replacement by typing @key{-}. In case you are not satisfied with the suggested behavior of quote and hyphen insertion you can change it by customizing the variables @code{TeX-quote-language-alist} and @code{LaTeX-babel-hyphen-language-alist} respectively. @defopt TeX-quote-language-alist Used for overriding the default language-specific quote insertion behavior. This is an alist where each element is a list consisting of four items. The first item is the name of the language in concern as a string. See the list of supported languages above. The second item is the opening quotation mark. The third item is the closing quotation mark. Opening and closing quotation marks can be specified directly as strings or as functions returning a string. The fourth item is a boolean controlling quote insertion. It should be non-nil if if the special quotes should only be used after inserting a literal @samp{"} character first, i.e. on second key press. @end defopt @defopt LaTeX-babel-hyphen-language-alist Used for overriding the behavior of hyphen insertion for specific languages. Every element in this alist is a list of three items. The first item should specify the affected language as a string. The second item denotes the hyphen string to be used as a string. The third item, a boolean, controls the behavior of hyphen insertion and should be non-nil if the special hyphen should be inserted after inserting a literal @samp{-} character, i.e. on second key press. @end defopt The defaults of hyphen insertion are defined by the variables @code{LaTeX-babel-hyphen} and @code{LaTeX-babel-hyphen-after-hyphen} respectively. @defopt LaTeX-babel-hyphen String to be used when typing @key{-}. This usually is a hyphen alternative or hyphenation aid provided by @samp{babel} and the related language style files, like @samp{"=}, @samp{"~} or @samp{"-}. Set it to an empty string or nil in order to disable language-specific hyphen insertion. @end defopt @defopt LaTeX-babel-hyphen-after-hyphen Control insertion of hyphen strings. If non-nil insert normal hyphen on first key press and swap it with the language-specific hyphen string specified in the variable @code{LaTeX-babel-hyphen} on second key press. If nil do it the other way round. @end defopt @node Japanese @subsection Using @AUCTeX{} with Japanese @TeX{} @cindex Japan @cindex Japanese @cindex Nippon @cindex MULE @cindex NTT j@TeX{} @cindex j@TeX{} @cindex j@LaTeX{} @cindex ASCII p@TeX{} @cindex p@TeX{} @cindex p@LaTeX{} @cindex up@TeX{} @cindex up@LaTeX{} @cindex @file{tex-jp.el} @vindex TeX-default-mode @vindex TeX-parse-self @vindex TeX-engine @vindex TeX-engine-alist @vindex japanese-TeX-engine-default @vindex japanese-LaTeX-default-style @vindex japanese-TeX-use-kanji-opt-flag @vindex TeX-japanese-process-input-coding-system @vindex TeX-japanese-process-output-coding-system To write Japanese text with @AUCTeX{}, you need the versions of @TeX{} and Emacs that support Japanese. @AUCTeX{} supports three Japanese @TeX{} engines by default: NTT j@TeX{}, ASCII p@TeX{} and up@TeX{}. On XEmacs, @AUCTeX{} needs @acronym{MULE, MULtilingual Enhancement to GNU Emacs} feature to deal with Japanese text. To use the Japanese @TeX{} engines, activate @code{japanese-plain-tex-mode} or @code{japanese-latex-mode}. If it doesn't work, send mail to Masayuki Ataka @samp{} or Ikumi Keita @samp{}, who currently concern with stuff related to Japanese in @AUCTeX{}. None of the primary @AUCTeX{} maintainers understand Japanese, so they cannot help you. It is recommended to enable @code{TeX-parse-self} for typical Japanese @LaTeX{} users. When enabled, @code{japanese-latex-mode} selects the suitable Japanese @TeX{} engine automatically based on the class file name (such as @code{jbook}, @code{jsarticle} and @code{tjreport}) and its option. @pxref{Parsing Files}. It is important to select the suitable Japanese @TeX{} engine because the selected engine determines the command name such as @samp{platex} and @samp{uptex} to typeset the document. If you find that wrong command is used, check the value of @code{TeX-engine} on that buffer. If the value does not suit the current document, change the value by the @samp{TeXing Options} submenu below the @samp{Command} menu. @pxref{Processor Options}. To make the selected engine to persist across Emacs sessions, there are two ways from which you can choose one according to your needs: @enumerate @item If you use a specific engine (almost) exclusively, customize the option @code{japanese-TeX-engine-default}. @defopt japanese-TeX-engine-default The default TeX engine in Japanese @TeX{} mode. The default value is @samp{ptex}. @end defopt @item If you want to set the engine on a per file basis, use the file local variables to set @code{TeX-engine}. Here is a sample code to set @code{TeX-engine} to @samp{uptex}: @example %%% Local Variables: %%% mode: japanese-latex %%% TeX-engine: uptex %%% End: @end example @end enumerate In the both cases above, the valid value is one of @samp{ptex}, @samp{jtex} and @samp{uptex}. You can override the command names associated with the above three engines or define your own engine by customizing @code{TeX-engine-alist}. @xref{Processor Options}. It is sometimes necessary to use an engine which differs from the one @AUCTeX{} selects automatically. For example, even when you want to use @code{j-article} document class deliberately with ASCII p@LaTeX{}, @AUCTeX{} selects NTT j@LaTeX{} command if @code{TeX-parse-self} is enabled, because @code{j-article} originally belongs to NTT j@LaTeX{}. In such cases, use the file local variable method above to select the engine you intend to use. If you usually use @AUCTeX{} in Japanese, setting the following variables is useful. @defopt TeX-default-mode Mode to enter for a new file when it cannot be determined whether the file is plain @TeX{} or @LaTeX{} or what. If you want to enter Japanese @LaTeX{} mode whenever this may happen, set the variable like this: @lisp (setq TeX-default-mode 'japanese-latex-mode) @end lisp @end defopt @defopt japanese-LaTeX-default-style The default style/class when creating a new Japanese @LaTeX{} document. The default value is @samp{"jarticle"}. @end defopt It is recommended also for Japanese users to customize the option @code{TeX-PDF-from-DVI} to @code{"Dvipdfmx"}. @xref{Processor Options} There are three customize options with regard to the encoding of Japanese text. @defopt japanese-TeX-use-kanji-opt-flag If non-nil, @AUCTeX{} adds @code{-kanji} option to the typesetting command when @code{TeX-engine} is @samp{ptex}. @end defopt Usually @AUCTeX{} guesses the right coding systems for input to and output from the Japanese @TeX{} process, but you can override them by the following two customize options. @defopt TeX-japanese-process-input-coding-system If non-nil, used for encoding input to Japanese @TeX{} process. When @code{nil}, @AUCTeX{} tries to choose suitable coding system. @end defopt @defopt TeX-japanese-process-output-coding-system If non-nil, used for decoding output from Japanese @TeX{} process. When @code{nil}, @AUCTeX{} tries to choose suitable coding system. @end defopt The former customize options @code{japanese-TeX-command-default} and @code{japanese-LaTeX-command-default} are obsolete. Use @code{japanese-TeX-engine-default} instead. If you need to customize the executable file name such as @samp{"latex"}, the options for them, or both, customize @code{TeX-engine-alist}. Also, the option @code{japanese-TeX-command-list} is considered as semi-obsolete. It still functions as before, but in theory, it is not required anymore in normal use. The following two additional font commands are available in @LaTeX{} mode buffer. @table @kbd @item C-c C-f g @kindex C-c C-f g @cindex @code{\textgt} Insert @b{gothic face} font command @samp{\textbf@{@point{}@}} or @samp{\mathbf@{@point{}@}} depending on the context. @item C-c C-f m @kindex C-c C-f m @cindex @code{\textmc} Insert mincho font command @samp{\textmc@{@point{}@}} or @samp{\mathmc@{@point{}@}} depending on the context. @end table Although they are meaningful only with @samp{ptex} and @samp{uptex} engines, it won't matter in buffers with other engines. See @file{tex-jp.el} for more information. @node Automatic @section Automatic Customization @cindex Automatic Customization @cindex Extracting @TeX{} symbols @cindex Automatic @cindex @file{auto} directories. @cindex Parsing @TeX{} @cindex @TeX{} parsing @cindex Generating symbols Since @AUCTeX{} is so highly customizable, it makes sense that it is able to customize itself. The automatic customization consists of scanning @TeX{} files and extracting symbols, environments, and things like that. The automatic customization is done on three different levels. The global level is the level shared by all users at your site, and consists of scanning the standard @TeX{} style files, and any extra styles added locally for all users on the site. The private level deals with those style files you have written for your own use, and use in different documents. You may have a @file{~/lib/TeX/} directory where you store useful style files for your own use. The local level is for a specific directory, and deals with writing customization for the files for your normal @TeX{} documents. If compared with the environment variable @code{TEXINPUTS}, the global level corresponds to the directories built into @TeX{}. The private level corresponds to the directories you add yourself, except for @file{.}, which is the local level. @menu * Automatic Global:: Automatic Customization for the Site * Automatic Private:: Automatic Customization for a User * Automatic Local:: Automatic Customization for a Directory @end menu By default @AUCTeX{} will search for customization files in all the global, private, and local style directories, but you can also set the path directly. This is useful if you for example want to add another person's style hooks to your path. Please note that all matching files found in @code{TeX-style-path} are loaded, and all hooks defined in the files will be executed. @defopt TeX-style-path List of directories to search for @AUCTeX{} style files. @end defopt By default, when @AUCTeX{} searches a directory for files, it will recursively search through subdirectories. @defopt TeX-file-recurse Whether to search @TeX{} directories recursively: nil means do not recurse, a positive integer means go that far deep in the directory hierarchy, t means recurse indefinitely. @end defopt By default, @AUCTeX{} will ignore files named @file{.}, @file{..}, @file{SCCS}, @file{RCS}, and @file{CVS}. @defopt TeX-ignore-file Regular expression matching file names to ignore. These files or directories will not be considered when searching for @TeX{} files in a directory. @end defopt @node Automatic Global @subsection Automatic Customization for the Site @cindex Global style hook directory @cindex Global macro directory @cindex Site macro directory @cindex Global @TeX{} macro directory @cindex Site @TeX{} macro directory @cindex Global directories @cindex Site information Assuming that the automatic customization at the global level was done when @AUCTeX{} was installed, your choice is now: will you use it? If you use it, you will benefit by having access to all the symbols and environments available for completion purposes. The drawback is slower load time when you edit a new file and perhaps too many confusing symbols when you try to do a completion. You can disable the automatic generated global style hooks by setting the variable @code{TeX-auto-global} to nil. @defopt TeX-macro-global Directories containing the site's @TeX{} style files. @end defopt @defopt TeX-style-global Directory containing hand generated @TeX{} information. These correspond to @TeX{} macros shared by all users of a site. @end defopt @defopt TeX-auto-global Directory containing automatically generated information. For storing automatic extracted information about the @TeX{} macros shared by all users of a site. @end defopt @node Automatic Private @subsection Automatic Customization for a User @cindex Private style hook directory @cindex Private macro directory @cindex Personal macro directory @cindex Private @TeX{} macro directory @cindex Personal @TeX{} macro directory @cindex Private directories @cindex Personal information You should specify where you store your private @TeX{} macros, so @AUCTeX{} can extract their information. The extracted information will go to the directories listed in @code{TeX-auto-private} Use @kbd{M-x TeX-auto-generate @key{RET}} to extract the information. @defopt TeX-macro-private Directories where you store your personal @TeX{} macros. The value defaults to the directories listed in the @samp{TEXINPUTS} and @samp{BIBINPUTS} environment variables or to the respective directories in @code{$TEXMFHOME} if no results can be obtained from the environment variables. @end defopt @defopt TeX-auto-private List of directories containing automatically generated @AUCTeX{} style files. These correspond to the personal @TeX{} macros. @end defopt @deffn Command TeX-auto-generate @var{TEX} @var{AUTO} (@kbd{M-x TeX-auto-generate @key{RET}}) Generate style hook for @var{TEX} and store it in @var{AUTO}. If @var{TEX} is a directory, generate style hooks for all files in the directory. @end deffn @defopt TeX-style-private List of directories containing hand generated @AUCTeX{} style files. These correspond to the personal @TeX{} macros. @end defopt @node Automatic Local @subsection Automatic Customization for a Directory @cindex Local style hooks @cindex Updating style hooks @cindex Automatic updating style hooks @cindex Local style hooks @cindex Local style directory @AUCTeX{} can update the style information about a file each time you save it, and it will do this if the directory @code{TeX-auto-local} exists. @code{TeX-auto-local} is by default set to @samp{"auto"}, so simply creating an @file{auto} directory will enable automatic saving of style information. The advantage of doing this is that macros, labels, etc. defined in any file in a multifile document will be known in all the files in the document. The disadvantage is that saving will be slower. To disable, set @code{TeX-auto-local} to nil. @defopt TeX-style-local Directory containing hand generated @TeX{} information. These correspond to @TeX{} macros found in the current directory. @end defopt @defopt TeX-auto-local Directory containing automatically generated @TeX{} information. These correspond to @TeX{} macros found in the current directory. @end defopt @node Style Files @section Writing Your Own Style Support @cindex Style files @cindex Style hooks @cindex @file{style} @xref{Automatic}, for a discussion about automatically generated global, private, and local style files. The hand generated style files are equivalent, except that they by default are found in @file{style} directories instead of @file{auto} directories. @menu * Simple Style:: A Simple Style File * Adding Macros:: Adding Support for Macros * Adding Environments:: Adding Support for Environments * Adding Other:: Adding Other Information * Hacking the Parser:: Automatic Extraction of New Things @end menu If you write some useful support for a public @TeX{} style file, please send it to us. @node Simple Style @subsection A Simple Style File @cindex @file{book.el} @cindex Sample style file @cindex Style file @cindex Example of a style file. @cindex Style hook @cindex Adding a style hook Here is a simple example of a style file. @lisp ;;; book.el - Special code for book style. (TeX-add-style-hook "book" (lambda () (LaTeX-largest-level-set "chapter")) LaTeX-dialect) @end lisp The example is from the @AUCTeX{} sources and is loaded for any @LaTeX{} document using the book document class (or style before @LaTeX{}2e). The file specifies that the largest kind of section in such a document is chapter. The interesting thing to notice is that the style file defines an (anonymous) function, and adds it to the list of loaded style hooks by calling @code{TeX-add-style-hook}. The first time the user indirectly tries to access some style-specific information, such as the largest sectioning command available, the style hooks for all files directly or indirectly read by the current document are executed. The actual files will only be evaluated once, but the hooks will be called for each buffer using the style file. Note that the basename of the style file and the name of the style hook should usually be identical. @defun TeX-add-style-hook @var{style} @var{hook} &optional @var{dialect-expr} Add @var{hook} to the list of functions to run when we use the @TeX{} file @var{style} and the current dialect is one in the set derived from @var{dialect-expr}. When @var{dialect-expr} is omitted, then @var{hook} is allowed to be run whatever the current dialect is. @var{dialect-expr} may be one of: @itemize @item A symbol indicating a singleton containing one basic @TeX{} dialect, this symbol shall be selected among: @table @code @item :latex For all files in @LaTeX{} mode, or any mode derived thereof @item :bibtex For all files in Bib@TeX{} mode, or any mode derived thereof @item :texinfo For all files in @acronym{Texinfo} mode. @end table @item A logical expression like: @table @code @item (or @var{dialect-expression1} @dots{} @var{dialect-expression_@var{n}}) For union of the sets of dialects corresponding to @var{dialect-expression1} through @var{dialect-expression_@var{n}} @item (and @var{dialect-expression1} @dots{} @var{dialect-expression_@var{n}}) For intersection of the sets of dialects corresponding to @var{dialect-expression1} through @var{dialect-expression_@var{n}} @item (nor @var{dialect-expression1} @dots{} @var{dialect-expression_@var{n}}) For complement of the union sets of dialects corresponding to @var{dialect-expression1} through @var{dialect-expression_@var{n}} relatively to the set of all supported dialects @item (not @var{dialect-expr}) For complement set of dialect corresponding to @var{dialect-expr} relatively to the set of all supported dialects @end table @end itemize @end defun In case of adding a style hook for @LaTeX{}, when calling function @code{TeX-add-style-hook} it is thought more futureproof for argument @var{dialect-expr} to pass constant @code{LaTeX-dialect} currently defined to @code{:latex}, rather than passing @code{:latex} directly. @defvr Constant LaTeX-dialect Default dialect for use with function @code{TeX-add-style-hook} for argument @var{dialect-expr} when the hook is to be run only on LaTeX file, or any mode derived thereof. @end defvr @node Adding Macros @subsection Adding Support for Macros @cindex Adding macros @cindex Macros, adding @cindex Defining macros in style hooks The most common thing to define in a style hook is new symbols (@TeX{} macros). Most likely along with a description of the arguments to the function, since the symbol itself can be defined automatically. Here are a few examples from @file{latex.el}. @lisp (TeX-add-style-hook "latex" (lambda () (TeX-add-symbols '("arabic" TeX-arg-counter) '("label" TeX-arg-define-label) '("ref" TeX-arg-ref) '("newcommand" TeX-arg-define-macro [ "Number of arguments" ] t) '("newtheorem" TeX-arg-define-environment [ TeX-arg-environment "Numbered like" ] t [ TeX-arg-counter "Within counter" ])))) @end lisp @defun TeX-add-symbols @var{symbol} @dots{} Add each @var{symbol} to the list of known symbols. @end defun Each argument to @code{TeX-add-symbols} is a list describing one symbol. The head of the list is the name of the symbol, the remaining elements describe each argument. If there are no additional elements, the symbol will be inserted with point inside braces. Otherwise, each argument of this function should match an argument of the @TeX{} macro. What is done depends on the argument type. If a macro is defined multiple times, @AUCTeX{} will chose the one with the longest definition (i.e. the one with the most arguments). Thus, to overwrite @example '("tref" 1) ; one argument @end example you can specify @example '("tref" TeX-arg-ref ignore) ; two arguments @end example @code{ignore} is a function that does not do anything, so when you insert a @samp{tref} you will be prompted for a label and no more. You can use the following types of specifiers for arguments: @table @code @item string Use the string as a prompt to prompt for the argument. @item number Insert that many braces, leave point inside the first. 0 and -1 are special. 0 means that no braces are inserted. -1 means that braces are inserted around the macro and an active region (e.g. @samp{@{\tiny foo@}}). If there is no active region, no braces are inserted. @item nil Insert empty braces. @item t Insert empty braces, leave point between the braces. @item other symbols Call the symbol as a function. You can define your own hook, or use one of the predefined argument hooks. @item list If the car is a string, insert it as a prompt and the next element as initial input. Otherwise, call the car of the list with the remaining elements as arguments. @item vector Optional argument. If it has more than one element, parse it as a list, otherwise parse the only element as above. Use square brackets instead of curly braces, and is not inserted on empty user input. @end table A lot of argument hooks have already been defined. The first argument to all hooks is a flag indicating if it is an optional argument. It is up to the hook to determine what to do with the remaining arguments, if any. Typically the next argument is used to overwrite the default prompt. @ftable @code @item TeX-arg-conditional Implements if EXPR THEN ELSE. If EXPR evaluates to true, parse THEN as an argument list, else parse ELSE as an argument list. @item TeX-arg-literal Insert its arguments into the buffer. Used for specifying extra syntax for a macro. @item TeX-arg-free Parse its arguments but use no braces when they are inserted. @item TeX-arg-eval Evaluate arguments and insert the result in the buffer. @item TeX-arg-label Prompt for a label completing with known labels. If Ref@TeX{} is active, prompt for the reference format. @item TeX-arg-ref Prompt for a label completing with known labels. If Ref@TeX{} is active, do not prompt for the reference format. Usually, reference macros should use this function instead of @code{TeX-arg-label}. @item TeX-arg-index-tag Prompt for an index tag. This is the name of an index, not the entry. @item TeX-arg-index Prompt for an index entry completing with known entries. @item TeX-arg-length Prompt for a @LaTeX{} length completing with known lengths. @item TeX-arg-macro Prompt for a @TeX{} macro with completion. @item TeX-arg-date @vindex TeX-date-format Prompt for a date, defaulting to the current date. The format of the date is specified by the @code{TeX-date-format} option. If you want to change the format when the @samp{babel} package is loaded with a specific language, set @code{TeX-date-format} inside the appropriate language hook, for details @pxref{European}. @item TeX-arg-version Prompt for the version of a file, using as initial input the current date. @item TeX-arg-environment Prompt for a @LaTeX{} environment with completion. @item TeX-arg-cite @vindex TeX-arg-cite-note-p Prompt for a Bib@TeX{} citation. If the variable @code{TeX-arg-cite-note-p} is non-nil, ask also for optional note in citations. @item TeX-arg-counter Prompt for a @LaTeX{} counter completing with known counters. @item TeX-arg-savebox Prompt for a @LaTeX{} savebox completing with known saveboxes. @item TeX-arg-file Prompt for a filename in the current directory, and use it with the extension. @item TeX-arg-file-name Prompt for a filename and use as initial input the name of the file being visited in the current buffer, with extension. @item TeX-arg-file-name-sans-extension Prompt for a filename and use as initial input the name of the file being visited in the current buffer, without extension. @item TeX-arg-input-file @vindex TeX-arg-input-file-search Prompt for the name of an input file in @TeX{}'s search path, and use it without the extension. Run the style hooks for the file. (Note that the behavior (type of prompt and inserted file name) of the function can be controlled by the variable @code{TeX-arg-input-file-search}.) @item TeX-arg-define-label Prompt for a label completing with known labels. Add label to list of defined labels. @item TeX-arg-define-length Prompt for a @LaTeX{} length completing with known lengths. Add length to list of defined lengths. @item TeX-arg-define-macro Prompt for a @TeX{} macro with completion. Add macro to list of defined macros. @item TeX-arg-define-environment Prompt for a @LaTeX{} environment with completion. Add environment to list of defined environments. @item TeX-arg-define-cite Prompt for a Bib@TeX{} citation. @item TeX-arg-define-counter Prompt for a @LaTeX{} counter. @item TeX-arg-define-savebox Prompt for a @LaTeX{} savebox. @item TeX-arg-document @vindex LaTeX-default-style @vindex LaTeX-default-options @vindex TeX-arg-input-file-search @vindex LaTeX-style-list Prompt for a @LaTeX{} document class, using @code{LaTeX-default-style} as default value and @code{LaTeX-default-options} as default list of options. If the variable @code{TeX-arg-input-file-search} is t, you will be able to complete with all @LaTeX{} classes available on your system, otherwise classes listed in the variable @code{LaTeX-style-list} will be used for completion. It is also provided completion for options of many common classes. @item LaTeX-arg-usepackage @vindex TeX-arg-input-file-search Prompt for @LaTeX{} packages. If the variable @code{TeX-arg-input-file-search} is t, you will be able to complete with all @LaTeX{} packages available on your system. It is also provided completion for options of many common packages. @item TeX-arg-bibstyle Prompt for a Bib@TeX{} style file completing with all style available on your system. @item TeX-arg-bibliography Prompt for BibTeX database files completing with all databases available on your system. @item TeX-arg-corner Prompt for a @LaTeX{} side or corner position with completion. @item TeX-arg-lr Prompt for a @LaTeX{} side with completion. @item TeX-arg-tb Prompt for a @LaTeX{} side with completion. @item TeX-arg-pagestyle Prompt for a @LaTeX{} pagestyle with completion. @item TeX-arg-verb Prompt for delimiter and text. @item TeX-arg-pair Insert a pair of numbers, use arguments for prompt. The numbers are surrounded by parentheses and separated with a comma. @item TeX-arg-size Insert width and height as a pair. No arguments. @item TeX-arg-coordinate Insert x and y coordinates as a pair. No arguments. @item LaTeX-arg-author @vindex LaTeX-default-author Prompt for document author, using @code{LaTeX-default-author} as initial input. @item TeX-read-key-val Prompt for a key=value list of options and return them. @item TeX-arg-key-val Prompt for a key=value list of options and insert it as a @TeX{} macro argument. @end ftable If you add new hooks, you can assume that point is placed directly after the previous argument, or after the macro name if this is the first argument. Please leave point located after the argument you are inserting. If you want point to be located somewhere else after all hooks have been processed, set the value of @code{exit-mark}. It will point nowhere, until the argument hook sets it. Some packages provide macros that are rarely useful to non-expert users. Those should be marked as expert macros using @code{TeX-declare-expert-macros}. @defun TeX-declare-expert-macros @var{style} @var{macros}... Declare MACROS as expert macros of STYLE. Expert macros are completed depending on `TeX-complete-expert-commands'. @end defun @node Adding Environments @subsection Adding Support for Environments @cindex Adding environments @cindex Environments, adding @cindex Defining environments in style hooks Adding support for environments is very much like adding support for @TeX{} macros, except that each environment normally only takes one argument, an environment hook. The example is again a short version of @file{latex.el}. @lisp (TeX-add-style-hook "latex" (lambda () (LaTeX-add-environments '("document" LaTeX-env-document) '("enumerate" LaTeX-env-item) '("itemize" LaTeX-env-item) '("list" LaTeX-env-list)))) @end lisp It is completely up to the environment hook to insert the environment, but the function @code{LaTeX-insert-environment} may be of some help. The hook will be called with the name of the environment as its first argument, and extra arguments can be provided by adding them to a list after the hook. For simple environments with arguments, for example defined with @samp{\newenvironment}, you can make @AUCTeX{} prompt for the arguments by giving the prompt strings in the call to @code{LaTeX-add-environments}. The fact that an argument is optional can be indicated by wrapping the prompt string in a vector. For example, if you have defined a @code{loop} environment with the three arguments @var{from}, @var{to}, and @var{step}, you can add support for them in a style file. @example %% loop.sty \newenvironment@{loop@}[3]@{...@}@{...@} @end example @lisp ;; loop.el (TeX-add-style-hook "loop" (lambda () (LaTeX-add-environments '("loop" "From" "To" "Step")))) @end lisp If an environment is defined multiple times, @AUCTeX{} will choose the one with the longest definition. Thus, if you have an enumerate style file, and want it to replace the standard @LaTeX{} enumerate hook above, you could define an @file{enumerate.el} file as follows, and place it in the appropriate style directory. @lisp (TeX-add-style-hook "latex" (lambda () (LaTeX-add-environments '("enumerate" LaTeX-env-enumerate foo)))) (defun LaTeX-env-enumerate (environment &optional ignore) ...) @end lisp The symbol @code{foo} will be passed to @code{LaTeX-env-enumerate} as the second argument, but since we only added it to overwrite the definition in @file{latex.el} it is just ignored. @defun LaTeX-add-environments @var{env} @dots{} Add each @var{env} to list of loaded environments. @end defun @defun LaTeX-insert-environment @var{env} [ @var{extra} ] Insert environment of type @var{env}, with optional argument @var{extra}. @end defun Following is a list of available hooks for @code{LaTeX-add-environments}: @ftable @code @item LaTeX-env-item Insert the given environment and the first item. @item LaTeX-env-figure Insert the given figure-like environment with a caption and a label. @item LaTeX-env-array Insert the given array-like environment with position and column specifications. @item LaTeX-env-label Insert the given environment with a label. @item LaTeX-env-list Insert the given list-like environment, a specifier for the label and the first item. @item LaTeX-env-minipage Insert the given minipage-like environment with position and width specifications. @item LaTeX-env-tabular* Insert the given tabular*-like environment with width, position and column specifications. @item LaTeX-env-picture Insert the given environment with width and height specifications. @item LaTeX-env-bib Insert the given environment with a label for a bibitem. @item LaTeX-env-contents Insert the given environment with a filename as its argument. @item LaTeX-env-args Insert the given environment with arguments. You can use this as a hook in case you want to specify multiple complex arguments just like in elements of @code{TeX-add-symbols}. This is most useful if the specification of arguments to be prompted for with strings and strings wrapped in a vector as described above is too limited. Here is an example from @file{listings.el} which calls a function with one argument in order to prompt for a key=value list to be inserted as an optional argument of the @samp{lstlisting} environment: @lisp (LaTeX-add-environments '("lstlisting" LaTeX-env-args [TeX-arg-key-val LaTeX-listings-key-val-options])) @end lisp @end ftable Some packages provide environments that are rarely useful to non-expert users. Those should be marked as expert environments using @code{LaTeX-declare-expert-environments}. @defun LaTeX-declare-expert-environments @var{style} @var{ENVIRONMENTS}... Declare ENVIRONMENTS as expert environments of STYLE. Expert environments are completed depending on `TeX-complete-expert-commands'. @end defun @node Adding Other @subsection Adding Other Information @cindex Adding bibliographies @cindex Bibliographies, adding @cindex Defining bibliographies in style hooks @cindex Adding labels @cindex Labels, adding @cindex Defining labels in style hooks @cindex Adding other information @cindex Other information, adding @cindex Defining other information in style hooks You can also specify bibliographical databases and labels in the style file. This is probably of little use, since this information will usually be automatically generated from the @TeX{} file anyway. @defun LaTeX-add-bibliographies @var{bibliography} @dots{} Add each @var{bibliography} to list of loaded bibliographies. @end defun @defun LaTeX-add-labels @var{label} @dots{} Add each @var{label} to the list of known labels. @end defun @node Hacking the Parser @subsection Automatic Extraction of New Things @cindex Parsing new macros @cindex @file{macro.tex} @cindex @file{macro.el} @cindex Changing the parser The automatic @TeX{} information extractor works by searching for regular expressions in the @TeX{} files, and storing the matched information. You can add support for new constructs to the parser, something that is needed when you add new commands to define symbols. For example, in the file @file{macro.tex} I define the following macro. @example \newcommand@{\newmacro@}[5]@{% \def#1@{#3\index@{#4@@#5~cite@{#4@}@}\nocite@{#4@}@}% \def#2@{#5\index@{#4@@#5~cite@{#4@}@}\nocite@{#4@}@}% @} @end example @AUCTeX{} will automatically figure out that @samp{newmacro} is a macro that takes five arguments. However, it is not smart enough to automatically see that each time we use the macro, two new macros are defined. We can specify this information in a style hook file. @lisp ;;; macro.el --- Special code for my own macro file. ;;; Code: (defvar TeX-newmacro-regexp '("\\\\newmacro@{\\\\\\([a-zA-Z]+\\)@}@{\\\\\\([a-zA-Z]+\\)@}" (1 2) TeX-auto-multi) "Matches \newmacro definitions.") (defvar TeX-auto-multi nil "Temporary for parsing \\newmacro definitions.") (defun TeX-macro-cleanup () "Move symbols from `TeX-auto-multi' to `TeX-auto-symbol'." (mapcar (lambda (list) (mapcar (lambda (symbol) (setq TeX-auto-symbol (cons symbol TeX-auto-symbol))) list)) TeX-auto-multi)) (defun TeX-macro-prepare () "Clear `Tex-auto-multi' before use." (setq TeX-auto-multi nil)) (add-hook 'TeX-auto-prepare-hook 'TeX-macro-prepare) (add-hook 'TeX-auto-cleanup-hook 'TeX-macro-cleanup) (TeX-add-style-hook "macro" (lambda () (TeX-auto-add-regexp TeX-newmacro-regexp) (TeX-add-symbols '("newmacro" TeX-arg-macro (TeX-arg-macro "Capitalized macro: \\") t "BibTeX entry: " nil)))) ;;; macro.el ends here @end lisp When this file is first loaded, it adds a new entry to @code{TeX-newmacro-regexp}, and defines a function to be called before the parsing starts, and one to be called after the parsing is done. It also declares a variable to contain the data collected during parsing. Finally, it adds a style hook which describes the @samp{newmacro} macro, as we have seen it before. So the general strategy is: Add a new entry to @code{TeX-newmacro-regexp}. Declare a variable to contain intermediate data during parsing. Add hook to be called before and after parsing. In this case, the hook before parsing just initializes the variable, and the hook after parsing collects the data from the variable, and adds them to the list of symbols found. @defvar TeX-auto-regexp-list List of regular expressions matching @TeX{} macro definitions. The list has the following format ((REGEXP MATCH TABLE) @dots{}), that is, each entry is a list with three elements. REGEXP. Regular expression matching the macro we want to parse. MATCH. A number or list of numbers, each representing one parenthesized subexpression matched by REGEXP. TABLE. The symbol table to store the data. This can be a function, in which case the function is called with the argument MATCH. Use @code{TeX-match-buffer} to get match data. If it is not a function, it is presumed to be the name of a variable containing a list of match data. The matched data (a string if MATCH is a number, a list of strings if MATCH is a list of numbers) is put in front of the table. @end defvar @defvar TeX-auto-prepare-hook nil List of functions to be called before parsing a @TeX{} file. @end defvar @defvar TeX-auto-cleanup-hook nil List of functions to be called after parsing a @TeX{} file. @end defvar @node Appendices @appendix Copying, Changes, Development, FAQ, Texinfo Mode @menu * Copying this Manual:: * Changes:: * Development:: * FAQ:: * Texinfo mode:: @end menu @node Copying this Manual @appendixsec Copying this Manual @ifinfo The copyright notice for this manual is: @insertcopying @end ifinfo The full license text can be read here: @menu * GNU Free Documentation License:: License for copying this manual. @end menu @lowersections @include fdl.texi @raisesections @node Changes @appendixsec Changes and New Features @lowersections @include changes.texi @raisesections @subheading Older versions See the file @file{history.texi} for older changes. @node Development @appendixsec Future Development @lowersections @include todo.texi @raisesections @node FAQ @appendixsec Frequently Asked Questions @lowersections @include faq.texi @raisesections @node Texinfo mode @appendixsec Features specific to @AUCTeX{}'s Texinfo major mode @AUCTeX{} includes a major mode for editting Texinfo files. This major mode is not the same mode as the native Texinfo mode (@pxref{(texinfo) Texinfo Mode}) of Emacs, although they have the same name. However, @AUCTeX{} still relies on a number of functions from the native Texinfo mode. The following text describes which functionality is offered by @AUCTeX{} and which by the native Texinfo mode. This should enable you to decide when to consult the @AUCTeX{} manual and when the manual of the native mode. And in case you are a seasoned user of the native mode, the information should help you to swiftly get to know the @AUCTeX{}-specific commands. @menu * Exploiting:: How @AUCTeX{} and the native mode work together * Superseding:: Where the native mode is superseded * Mapping:: Where key bindings are mapped to the native mode * Unbinding:: Which native mode key bindings are missing @end menu @node Exploiting @appendixsubsec How @AUCTeX{} and the native mode work together In a nutshell the split between @AUCTeX{} Texinfo mode, and native Texinfo mode is as follows: @itemize @item Most of the editing (environment creation, commenting, font command insertions) and/or processing commands (e.g. compiling or printing) which are available in other @AUCTeX{} modes are also handled by @AUCTeX{} in Texinfo mode. @item Texinfo-related features (e.g. info node linkage or menu creation) rely on the commands provided by the native Texinfo mode. @AUCTeX{} provides the key bindings to reach these functions, keeping the same keys as in native Texinfo whenever possible, or similar ones otherwise. @end itemize @node Superseding @appendixsubsec Where the native mode is superseded This section is directed to users of the native Texinfo mode switching to @AUCTeX{}. It follows the summary of the native mode (@pxref{(texinfo) Texinfo Mode Summary}) and lists which of its commands are no longer of use. @table @asis @item Insert commands In the native Texinfo mode, frequently used Texinfo commands can be inserted with key bindings of the form @kbd{C-c C-c @var{k}} where @var{k} differs for each Texinfo command; @kbd{c} inserts @@code, @kbd{d} inserts @@dfn, @kbd{k} @@kbd, etc. In @AUCTeX{} commands are inserted with the key binding @kbd{C-c C-m} instead which prompts for the macro to be inserted. For font selection commands (like @@b, @@i, or @@emph) and a few related ones (like @@var, @@key or @@code) there are bindings which insert the respective macros directly. They have the form @code{C-c C-f @var{k}} or @code{C-c C-f C-@var{k}} and call the function @code{TeX-font}. Type @kbd{C-c C-f @key{RET}} to get a list of supported commands. Note that the prefix argument is not handled the same way by @AUCTeX{}. Note also that the node insertion command from the native mode (@code{texinfo-insert-@@node}) can still accessed from the Texinfo menu in @AUCTeX{}. @item Insert braces In @AUCTeX{} braces can be inserted with the same key binding as in the native Texinfo mode: @kbd{C-c @{}. But @AUCTeX{} uses its own function for the feature: @code{TeX-insert-braces}. @item Insert environments The native Texinfo mode does not insert full environments. Instead, it provides the function @code{texinfo-insert-@@end} (mapped to @kbd{C-c C-c e}) for closing an open environment with a matching @@end statement. In @AUCTeX{} you can insert full environments, i.e. both the opening and closing statements, with the function @code{Texinfo-environment} (mapped to @kbd{C-c C-e}). @item Format info files with makeinfo and @TeX{} In the native Texinfo mode there are various functions and bindings to format a region or the whole buffer for info or to typeset the respective text. For example, there is @code{makeinfo-buffer} (mapped to @kbd{C-c C-m C-b}) which runs @samp{makeinfo} on the buffer or there is @code{texinfo-tex-buffer} (mapped to @kbd{C-c C-t C-b}) which runs @TeX{} on the buffer in order to produce a @acronym{DVI} file. In @AUCTeX{} different commands for formatting or typesetting can be invoked through the function @code{TeX-command-master} (mapped to @kbd{C-c C-c}). After typing @kbd{C-c C-c}, you can select the desired command, e.g @samp{Makeinfo} or @samp{TeX}, through a prompt in the mini buffer. Note that you can make, say @samp{Makeinfo}, the default by adding this statement in your init file: @lisp (add-hook 'Texinfo-mode-hook (lambda () (setq TeX-command-default "Makeinfo"))) @end lisp Note also that @kbd{C-c C-c Makeinfo @key{RET}} is not completely functionally equivalent to @code{makeinfo-buffer} as the latter will display the resulting info file in Emacs, showing the node corresponding to the position in the source file, just after a successful compilation. This is why, while using @AUCTeX{}, invoking @code{makeinfo-buffer} might still be more convenient. Note also that in the case of a multifile document, @kbd{C-c C-c} in @AUCTeX{} will work on the whole document (provided that the file variable @code{TeX-master} is set correctly), while @code{makeinfo-buffer} in the native mode will process only the current buffer, provided at the @code{@@setfilename} statement is provided. @item Produce indexes and print The native Texinfo mode provides the binding @kbd{C-c C-t C-i} (@code{texinfo-texindex}) for producing an index and the bindings @kbd{C-c C-t C-p} (@code{texinfo-tex-print}) and @kbd{C-c C-t C-q} (@code{tex-show-print-queue}) for printing and showing the printer queue. These are superseded by the respective commands available through @kbd{C-c C-c} (@code{TeX-command-master}) in @AUCTeX{}: Index, Print, and Queue. @item Kill jobs The command @kbd{C-c C-t C-k} (@code{tex-kill-job}) in the native mode is superseded by @kbd{C-c C-k} (@code{TeX-kill-job}) in @AUCTeX{}. @end table @node Mapping @appendixsubsec Where key bindings are mapped to the native mode This node follows the native Texinfo mode summary (@pxref{(texinfo) Texinfo Mode Summary}) and lists only those commands to which @AUCTeX{} provides a keybinding. Basically all commands of the native mode related to producing menus and interlinking nodes are mapped to same or similar keys in @AUCTeX{}, while a few insertion commands are mapped to @AUCTeX{}-like keys. @table @asis @item @code{@@item} insertion The binding @kbd{C-c C-c i} for the insertion of @code{@@item} in the native mode is mapped to @kbd{M-@key{RET}} or @kbd{C-c C-j} in @AUCTeX{}, similar to other @AUCTeX{} modes. @item @code{@@end} insertion The binding @kbd{C-c C-c e} for closing a @code{@@@var{foo}} command by a corresponding @code{@@end @var{foo}} statement in the native mode is mapped to @kbd{C-c C-]} in @AUCTeX{}, similar to other @AUCTeX{} modes. @item Move out of balanced braces The binding @kbd{C-@}} (@code{up-list}) is available both in the native mode and in @AUCTeX{}. (This is because the command is not implemented in either mode but a native Emacs command.) However, in @AUCTeX{}, you cannot use @kbd{C-]} for this, as it is used for @code{@@end} insertion. @item Update pointers The bindings @kbd{C-c C-u C-n} (@code{texinfo-update-node}) and @kbd{C-c C-u C-e} (@code{texinfo-every-node-update}) from the native mode are available in @AUCTeX{} as well. @item Update menus The bindings @kbd{C-c C-u m} (@code{texinfo-master-menu}), @kbd{C-c C-u C-m} (@code{texinfo-make-menu}), and @kbd{C-c C-u C-a} (@code{texinfo-all-menus-update}) from the native mode are available in @AUCTeX{} as well. The command @code{texinfo-start-menu-description}, bound to @kbd{C-c C-c C-d} in the native mode, is bound to @kbd{C-c C-u C-d} in @AUCTeX{} instead. @end table @node Unbinding @appendixsubsec Which native mode key bindings are missing The following commands from the native commands might still be useful when working with @AUCTeX{}, however, they are not accessible with a key binding any longer. @table @asis @item @code{@@node} insertion The node insertion command, mapped to @kbd{C-c C-c n} in the native mode, is not mapped to any key in @AUCTeX{}. You can still access it through the Texinfo menu, though. Another alternative is to use the @kbd{C-c C-m} binding for macro insertion in @AUCTeX{}. @item Show the section structure The command @code{texinfo-show-structure} (@kbd{C-c C-s}) from the native mode does not have a key binding in @AUCTeX{}. The binding is used by @AUCTeX{} for sectioning. @end table @node Indices @unnumbered Indices @menu * Key Index:: * Function Index:: * Variable Index:: * Concept Index:: @end menu @node Key Index @unnumberedsec Key Index @printindex ky @node Function Index @unnumberedsec Function Index @printindex fn @node Variable Index @unnumberedsec Variable Index @printindex vr @node Concept Index @unnumberedsec Concept Index @printindex cp @bye @c Local Variables: @c mode: texinfo @c TeX-master: t @c End: auctex-11.91/doc/changes.texi000066400000000000000000001225571313533625700161120ustar00rootroot00000000000000@c This is part of the AUCTeX manual. @c Copyright (C) 1994-2002, 2004-2010, 2012-2017 Free Software @c Foundation, Inc. @c See file auctex.texi for copying conditions. @include macros.texi @ifset rawfile @chapheading Changes and New Features in @AUCTeX{} @end ifset @heading News in 11.91 @itemize @bullet @item Now @AUCTeX{} has a logo. The @LaTeX{} code to create it is available in the @file{etc/} directory of the package. @item Add support for @command{upmendex}, an extension of @command{makeindex} capable of sorting indexes by unicode based ICU. @item Fix preview-latex to interact correctly with Japanese @LaTeX{}. The parsing routine was made robust not to be confused by the 7-bit encoding of Japanese text and the necessary option to @LaTeX{} command is kept even when preamble caching is enabled. @item The new ``Glossaries'' entry in @code{TeX-command-list} runs the command @command{makeglossaries}. @item Fontification of control symbols has been improved. Characters defined in @code{font-latex-match-simple-exclude-list} do not receive any fontification. In Doc@TeX{} mode, the character @samp{_} is removed from @code{font-latex-match-simple-exclude-list} in order to fontify macros like @samp{\__module_foo:nnn} correctly. @item Fontification of math environments has been improved. Optional and/or mandatory argument(s) to environments are not fontified. @item @file{preview.sty} loads @file{luatex85.sty} if possible and should be compatible with newer lua@TeX{} versions. @item @AUCTeX{} has a new customize option @code{TeX-ispell-verb-delimiters}. This string contains usual characters used as delimiters for in-line verbatim macros like @samp{\verb}. Text between delimiters after an in-line verbatim macro will be skipped during spell checking. @item Fontification of in-line verbatim macros has been improved. @file{font-latex.el} recognizes an optional or a mandatory argument for macros like @samp{\Verb} from @file{fancyvrb.sty}, @samp{\mint} and @samp{\mintinline} from @file{minted.sty} and fontifies verbatim content correctly. @item @AUCTeX{} can put and parse labels in optional argument of environments. Inserting labels is done by new function @code{LaTeX-env-label-as-keyval}. A new customize option @code{LaTeX-listing-label} is available as prefix to labels in code typesetting environments, e.g. @samp{lstlisting} environment provided by @samp{listings} package. @code{LaTeX-listing-label} defaults to @code{lst:}. Parsing of labels for later referencing relies on two requirements: @enumerate @item Label should come as last key-value argument, and @item label must be enclosed in braces, e.g. @example \begin@{lstlisting@}[caption=Some Caption,label=@{lst:foo@}] ... \end@{lstlisting@} @end example @end enumerate @item The function @code{LaTeX-label} now takes a second optional argument @code{NO-INSERT}. When non-@code{nil}, @code{LaTeX-label} reads a label and returns it as a string. This argument is also passed to any function bound to @code{LaTeX-label-function} (see next item). @item @strong{Incompatible change:} The signature for the function passed with the customize option @code{LaTeX-label-function} has changed. The function bound to this variable is now expected to take an optional second argument @code{NO-INSERT}. When this argument is non-@code{nil}, the function should read and only return a label as a string; insertion is done by another function. @item Directory local variables were ineffective for @code{japanese-latex-mode} and @code{japanese-plain-tex-mode}. This bug was fixed. (This was actually done in @AUCTeX{} 11.90, but not advertised) @item The output of Japanese text from Japanese @TeX{} engines is decoded correctly for most cases, according to the encoding of the @TeX{} documents and the locale. The difference between MS Windows, macOS and unix-like OS is taken into account. (This was actually done in @AUCTeX{} 11.90, but not advertised) @item Quite a few new @LaTeX{} packages are supported. @item As usual, many bugs were fixed. @end itemize @heading News in 11.90 @itemize @bullet @item In addition to the completion performed by @code{TeX-complete-symbol}, @AUCTeX{} now also supports the new Emacs standard completion-at-point facility (see the Emacs command @code{completion-at-point}). This also means that modern completion UIs like @i{company-mode} work out of the box in @TeX{} and @LaTeX{} buffers. @ifclear rawfile @xref{Completion}, for details. @end ifclear @item Completion is now aware of being inside a math environment and then completes math macros. @item @AUCTeX{} is able to display several levels of super- and subscripts, each one raised above and a bit smaller than its basis. For this feature, have a look at the customize options @code{font-latex-fontify-script} (especially the new values @code{multi-level} and @code{invisible}) and @code{font-latex-fontify-script-max-level}. Also, the script characters @samp{^} and @samp{_} are also fontified with a special face named @code{font-latex-script-char-face}. @ifclear rawfile @xref{Fontification of math}, for details. @end ifclear @item Parsing of format specification in various tabular environments has been improved. The function @code{LaTeX-insert-item} (@kbd{C-c @key{LFD}}) inserts suitable number of ampersands for @samp{*@{num@}@{cols@}} constructs. Style files for @LaTeX{} packages @samp{tabularx}, @samp{tabulary}, @samp{longtable}, @samp{dcolumn} and @samp{siunitx} are adapted to take advantage of this improvement. @item @AUCTeX{} has a new Ispell dictionary @file{tex-ispell.el} for macros and environments which will be skipped during spell checking. The activiation of this feature is controlled by a new customize option @code{TeX-ispell-extend-skip-list}, which is set to @code{t} and activated by default. @item @AUCTeX{} has a new customize option @code{TeX-raise-frame-function} that is currently only used by Evince and Atril inverse search to raise the Emacs frame. @item When inserting a new float, @AUCTeX{} will now prompt for a short-caption if the length of the caption provided is greater than a certain size. This size is controlled via a new user option @code{LaTeX-short-caption-prompt-length}. @item Parsing of the compilation log has been reworked. You should encounter fewer mistaken files while navigating through errors and warnings. @item Two new user options, @code{TeX-ignore-warnings} and @code{TeX-suppress-ignored-warnings}, allow ignoring certain warnings after compilation of the document. @ifclear rawfile @xref{Ignoring warnings}, for details. @end ifclear @item A new option, @code{TeX-PDF-from-DVI}, controls if and how to produce a @acronym{PDF} file by converting a @acronym{DVI} file. This supersedes @code{TeX-PDF-via-dvips-ps2pdf} which is still recognized but marked as obsolete and may be removed in future releases. @item Support for a number of external viewers has been added: @itemize @item Atril viewer. Forward and inverse search requires version 1.9.1 or later to work. @item dviout viewer on Windows. Note that this setup works when @code{TeX-source-correlate-method} is set to use @samp{source-specials} for @acronym{DVI}, e.g.: @lisp (setq TeX-source-correlate-method '((dvi . source-specials) (pdf . synctex))) @end lisp which is the default. @item SumatraPDF viewer on Windows. @item Zathura viewer. Forward and inverse search requires a recent version of the program to work (3.4 or later). @end itemize @item A new function, @code{TeX-documentation-texdoc}, for reading documentation with @samp{texdoc} has been added. @code{TeX-doc} is still available but now @kbd{C-c ?} runs @code{TeX-documentation-texdoc}. @item @AUCTeX{} has a new custom option @code{LaTeX-reftex-cite-format-auto-activate} which controls the automatic activation of citation formats provided by RefTeX when a style file is loaded and RefTeX is enabled. Currently, @file{biblatex.el}, @file{harvard.el}, @file{jurabib.el} and @file{natbib.el} use this feature. If you have customized @code{reftex-cite-format} and want to use your settings, you should set this variable to @code{nil}. @item @AUCTeX{} now has limited support for the TikZ package. For the moment, this includes some basic support for prompting the user of arguments to the @samp{\draw} macro. @item The style @file{graphicx.el} went through a bigger overhaul. The optional argument of command @samp{\includegraphics} now supports key-val query; keys can independently be chosen anytime by pressing the @key{,} key. As a side effect, the variable @code{LaTeX-includegraphics-options-alist} is now no-op and is removed from @file{tex-style.el}. You can safely remove any customization of it from your init file. The mandatory argument of @samp{\includegraphics} knows about image file extensions supported by the used engine and offers them for inclusion. @item Support for other @LaTeX{} packages was improved, and style files for several new packages were added. @item Many bugs were crushed along the way. @end itemize @heading News in 11.89 @itemize @bullet @item You can now run all commands needed to compile a document and then open the viewer with a single command: @code{TeX-command-run-all}, bound to @kbd{C-c C-a}. @item Commands such as LaTeX and View can now be executed conveniently on the current section (or part, chapter, subsection, etc). See @code{LaTeX-command-section} and @code{LaTeX-command-section-change-level}. @ifclear rawfile @xref{Starting a Command}, for details. @end ifclear @item Forward and backward search with Evince now also work when only a region of the document is compiled/viewed. @item To open the PDF output file you can now use also PDF Tools, a document viewer for Emacs. With it, as a plus, forward and backward search is accurate at word level. @item With new option @code{TeX-PDF-via-dvips-ps2pdf} it is possible to compile a document to @acronym{DVI} and then convert it to @acronym{PDF} using @command{dvips}--@command{ps2pdf} before viewing it. @item New option @code{TeX-file-line-error} allows to select file:line:error style for error messages. @item Indent @samp{\[...\]} math mode as a regular environment by default. @item Now @AUCTeX{} suggests to run @command{makeindex} when appropriate. @item @code{TeX-view-program-list} can contain, as third optional element of each item, the name of the executable(s) needed to open the viewer. @item @code{TeX-expand-list} variable has been split into @code{TeX-expand-list} and @code{TeX-expand-list-builtin}. Only the former is intended to be customized by the user, the latter contains built-in expanders. You might want to keep in @code{TeX-expand-list} only new expansion strings. @item Before running commands like @TeX{} and @LaTeX{}, now @AUCTeX{} performs some checks. If @code{TeX-check-TeX} is non-nil, it will test whether a working @TeX{} distribution is actually present in the system and available to Emacs. Instead, when @code{TeX-check-engine} is non-nil, before running @LaTeX{} commands @AUCTeX{} will check whether the correct engine has been set, based upon known restrictions posed by @LaTeX{} packages. @item Basic support to @ConTeXt{} Mark IV has been added. Users can now select the Mark version to be used with new option @code{ConTeXt-Mark-version}, and @AUCTeX{} is able to catch error messages in the output log of a Mark IV document. @item Support for tons of @LaTeX{} packages has been added. @item Numbers of bugs have been fixed, many minor features have been added. @end itemize @heading News in 11.88 @itemize @bullet @item @code{TeX-PDF-mode} is now enabled by default. @item Now @code{TeX-previous-error} works with @TeX{} commands if the new option @code{TeX-parse-all-errors} is non-nil, which is the default. When this option is non-nil, an overview of errors and warnings reported by the TeX compiler can be opened with @kbd{M-x TeX-error-overview @key{RET}}. @ifclear rawfile @xref{Debugging}, for details. @end ifclear @item Style file authors are encouraged to distinguish common from expert macros and environments, and mark the latter using @code{TeX-declare-expert-macros} and @code{LaTeX-declare-expert-environments}. Users can then restrict completion using @code{TeX-complete-expert-commands}. @item Management of @LaTeX{} package options in the parser was improved. You might need to reparse your documents, especially if you loaded the @samp{babel} package with language options. @item Now you can insert @samp{$...$} or @samp{\(...\)} by typing a single @kbd{$}. To do this, customize the new option @samp{TeX-electric-math}. @code{TeX-math-close-double-dollar} was removed. @ifclear rawfile @xref{Quotes}, for details. @end ifclear @item @kbd{C-c @key{RET} documentclass @key{RET}} completes with all available @LaTeX{} classes, if the @code{TeX-arg-input-file-search} variable is non-nil. Completion for class options of the standard @LaTeX{} classes is provided as well. @item New user options @code{LaTeX-default-author}, @code{LaTeX-fontspec-arg-font-search}, @code{LaTeX-fontspec-font-list-default}, @code{TeX-date-format}, and @code{TeX-insert-braces-alist}. A new possible value (@code{show-all-optional-args}) for @code{TeX-insert-macro-default-style} was added. The default value of @code{TeX-source-correlate-method} has been changed. @item @samp{biblatex} support was greatly expanded. If parsing is enabled, @AUCTeX{} looks at @samp{backend} option to decide whether to use Biber or BibTeX. The @code{LaTeX-biblatex-use-Biber} variable was changed to be file local only and is no more customizable. @item With some @LaTeX{} classes, the default environment suggested by @code{LaTeX-environment} (@kbd{C-c C-e}) when the current environment is @samp{document} was changed. With @samp{beamer} class the default environment is @samp{frame}, with @samp{letter} it is @samp{letter}, with @samp{slides} it is @samp{slide}. @item Brace pairing feature was enhanced in @LaTeX{} documents. Support for @samp{\bigl}, @samp{\Bigl}, @samp{\biggl} and @samp{\Biggl}, the same as the one for @samp{\left}, was added to @code{TeX-insert-macro}. For example, @kbd{C-c @key{RET} bigl @key{RET} ( @key{RET}} inserts @samp{\bigl(\bigr)}. You can insert brace pair @samp{()}, @samp{@{@}} and @samp{[]} by typing a single left brace if the new user option @code{LaTeX-electric-left-right-brace} is enabled. Macros @samp{\langle}, @samp{\lfloor} and @samp{\lceil}, which produce the left part of the paired braces, are treated similarly as @samp{(}, @samp{@{} and @samp{[} during the course of @code{TeX-insert-macro}. @ifclear rawfile @xref{Quotes}, for details. @end ifclear @item Support for dozens of @LaTeX{} packages was added. @item Tabular-like environments (tabular, tabular*, tabularx, tabulary, array, align, ...) are indented in a nicer and more informative way when the column values of a table line are written across multiple lines in the tex file. @item The suitable number of ampersands are inserted when you insert array, tabular and tabular* environments with @kbd{C-c C-e}. Similar experience is obtained if you terminate rows in these environments with @kbd{C-c @key{LFD}}. It supplies line break macro @samp{\\} and inserts the suitable number of ampersands on the next line. Similar supports are provided for various amsmath environments. @ifclear rawfile @xref{Tabular-like}, for details. @end ifclear @item Commands for narrowing to a group (@code{TeX-narrow-to-group}) and to @LaTeX{} environments (@code{LaTeX-narrow-to-environment}) were added. @item Now arbitrary options can be passed to the @TeX{} processor on a per file basis using the @code{TeX-command-extra-options} option. @ifclear rawfile @xref{Processor Options}, for details. @end ifclear @item Now @kbd{C-c C-e document @key{RET}}, in an empty document, prompts for @samp{\usepackage} macros in addition to @samp{\documentclass}. @item @code{TeX-add-style-hook} has now a third argument to tell AUCTeX for which dialect (LaTeX, Texinfo or BibTeX) the style hook is registers. Labelling style hook by dialect will avoid applying them not in the right context. @item There have been lots of bug fixes and feature additions. @end itemize @heading News in 11.87 @itemize @bullet @item @AUCTeX{} now supports Biber in conjunction with biblatex in addition to BibTeX. @item Each @AUCTeX{} mode now has its own abbrev table. On Emacsen which provide the possibility to inherit abbrevs from other tables, the abbrevs from the Text mode abbrev table are available as well. Newly defined abbrevs are written to the mode-specific tables, though. @item The file @samp{tex-fptex.el} was removed. @item Forward/backward search for Evince has been improved. If Emacs is compiled with DBUS support and a recent Evince version (3.x) is installed, the communication goes over the desktop bus instead of the command line, resulting in more accurate positioning of point in Emacs and highlighting of the target paragraph in Evince. @item A problem where Ghostscript threw an /invalidfileaccess error when running @previewlatex{} was fixed. @item A lot of smaller fixes and additions have been made. @end itemize @heading News in 11.86 @itemize @bullet @item Parsing of @LaTeX{} output was improved. It is now less likely that @AUCTeX{} opens a non-existent file upon calling @code{TeX-next-error}; a problem for example encountered when using MiK@TeX{} 2.8. In addition quoted file names as emitted by MiK@TeX{} are now supported. @item A new framework for the definition and selection of viewers was implemented. If you have customizations regarding viewers you will have to redo them in this new framework or reenable the old one. @ifset rawfile See the section on viewers in the manual for details. @end ifset @ifclear rawfile @xref{Starting Viewers}, for details. @end ifclear @item Comprehensive editing support for PSTricks was added. @item Support for various @LaTeX{} packages was added, e.g. @samp{tabularx}, @samp{CJK}, and @samp{hyperref}. @item An easy way to switch between @TeX{} engines (PDF@TeX{}, Lua@TeX{}, Xe@TeX{}, Omega) was added. @item Support for Sync@TeX{} was added. This involves the command line options for @LaTeX{} and the viewer. @item Folding can now be customized to use macro arguments as replacement text. @item @samp{preview.sty} now works with Xe@TeX{}. @item A lot of smaller and larger bugs have been squashed. @end itemize @heading News in 11.85 @itemize @bullet @item Font locking has been improved significantly. It is now less prone to color bleeding which could lead to high resource usage. In addition it now includes information about @LaTeX{} macro syntax and can indicate syntactically incorrect macros in @LaTeX{} mode. @item The license was updated to GPLv3. @item Support for the nomencl, flashcards and comment @LaTeX{} packages as well as the Icelandic language option of babel were added. @item Support for folding of math macros was added. @item Lots of minor bugs in features and documentation fixed. @end itemize @heading News in 11.84 @itemize @bullet @item There have been problems with the @samp{-without-texmf-dir} option to @samp{configure} when the value of @samp{-with-kpathsea-sep} was set or determined for an installation system with a default different from that of the runtime system. @code{with-kpathsea-sep} has been removed; the setting is now usually determined at runtime. Due to this and other problems, preview-latex in the released XEmacs package failed under Windows or with anything except recent 21.5 XEmacsen. @item @AUCTeX{} and @previewlatex{} have been changed in order to accommodate file names containing spaces. @previewlatex{} now tolerates bad PostScript code polluting the stack (like some Omega fonts). @item @samp{preview.sty} had in some cases failed to emit PostScript header specials. @item Support for folding of comments was added. @item The @code{polish} language option of the babel LaTeX package as well as the polski LaTeX package are now supported. Most notably this means that AUCTeX will help to insert quotation marks as defined by polish.sty (@code{"`..."'}) and polski.sty (@code{,,...''}). @item The @TeX{} tool bar is now available and enabled by default in plain @TeX{} mode. @ifclear rawfile @xref{Processing Facilities}. @end ifclear @item Bug fix in the display of math subscripts and superscripts. @item Bug fix @code{TeX-doc} for Emacs 21. @item There has been quite a number of other bug fixes to various features and documentation across the board. @end itemize @heading News in 11.83 @itemize @bullet @item The new function @code{TeX-doc} provides easy access to documentation about commands and packages or information related to @TeX{} and friends in general. @ifset rawfile It is accessible with the key binding @kbd{C-c ?} or the @samp{Find Documentation...} entry in the mode menus. @end ifset @ifclear rawfile @xref{Documentation}. @end ifclear @item You can now get rid of generated intermediate and output files by means of the new @samp{Clean} and @samp{Clean All} entries in @code{TeX-command-list} accessible with @kbd{C-c C-c} or the Command menu. @ifclear rawfile @xref{Cleaning}. @end ifclear @item Support for forward search with PDF files was added. That means you can jump to a place in the output file corresponding to the position in the source file. @ifset rawfile Currently this only works if you use the pdfsync @LaTeX{} package and xpdf as your PDF viewer. The accuracy is in the range of +/-1 page. @end ifset @ifclear rawfile @xref{Viewing}. @end ifclear Adding support for this feature required the default value of the variable @code{TeX-output-view-style} to be changed. Please make sure you either remove any customizations overriding the new default or incorporate the changes into your customizations if you want to use this feature. @item @TeX{} error messages of the @code{-file-line-error} kind are now understood in @AUCTeX{} and @previewlatex{} (parsers are still separate). @item Bug fix in XyM@TeX{} support. @item The @LaTeX{} tool bar is now enabled by default. @ifclear rawfile @xref{Processing Facilities}. @end ifclear @end itemize @heading News in 11.82 @itemize @bullet @item Support for the MinionPro LaTeX package was added. @item Warnings and underfull/overfull boxes are now being indicated in the echo area after a @LaTeX{} run, if the respective debugging options are activated with @code{TeX-toggle-debug-warnings} (@kbd{C-c C-t C-w}) or @code{TeX-toggle-debug-bad-boxes} (@kbd{C-c C-t C-b}). In this case @code{TeX-next-error} will find these warnings in addition to normal errors. The key binding @kbd{C-c C-w} for @code{TeX-toggle-debug-bad-boxes} (which was renamed from @code{TeX-toggle-debug-boxes}) now is deprecated. @item @AUCTeX{} now can automatically insert a pair of braces after typing @key{_} or @key{^} in math constructs if the new variable @code{TeX-electric-sub-and-superscript} is set to a non-nil value. @item Some language-specific support for French was added. There now is completion support for the commands provided by the @samp{frenchb} (and @samp{francais}) options of the babel @LaTeX{} package and easier input of French quotation marks (@code{\\og ...\\fg}) which can now be inserted by typing @key{"}. @item Completion support for options of some LaTeX packages was added. @item @cindex @file{auctex.el} @cindex @file{tex-site.el} Already in version 11.81 the way to activate @AUCTeX{} changed substantially. This should now be done with @code{(load "auctex.el" nil t t)} instead of the former @code{(require 'tex-site)}. Related to this change @file{tex-mik.el} does not load @file{tex-site.el} anymore. That means if you used only @code{(require 'tex-mik)} in order to activate @AUCTeX{}, you have to add @code{(load "auctex.el" nil t t)} before the latter statement. @ifset rawfile More detailed information can be found in the installation instructions (file INSTALL). @end ifset @ifclear rawfile @xref{Loading the package}. @end ifclear @item Handling of verbatim constructs was consolidated across AUCTeX. This resulted in the @fontlatex{}-specific variables @code{font-latex-verb-like-commands}, @code{font-latex-verbatim-macros}, and @code{font-latex-verbatim-environments} being removed and the more general variables @code{LaTeX-verbatim-macros-with-delims}, @code{LaTeX-verbatim-macros-with-braces}, and @code{LaTeX-verbatim-environments} being added. @item The output of a Bib@TeX{} run is now checked for warnings and errors, which are reported in the echo area. @item The aliases for @code{font-latex-title-fontify} were removed. Use @code{font-latex-fontify-sectioning} instead. @item The problem that Japanese macros where broken across lines was fixed. @item Various bug fixes. @end itemize @heading News in 11.81 @itemize @bullet @item @code{LaTeX-mark-section} now marks subsections of a given section as well. The former behavior is available via the prefix argument. @item @previewlatex{} which was previously available separately became a subsystem of @AUCTeX{}. There is no documented provision for building or installing @previewlatex{} separately. It is still possible to use and install @AUCTeX{} without @previewlatex{}, however. @item The installation procedures have been overhauled and now also install startup files as part of the process (those had to be copied manually previously). You are advised to remove previous installations of @AUCTeX{} and @previewlatex{} before starting the installation procedure. A standard installation from an unmodified tarball no longer requires Makeinfo or Perl. Also note that the way @AUCTeX{} is supposed to be activated changed. Instead of @code{(require 'tex-site)} you should now use @code{(load "auctex.el" nil t t)}. While the former method may still work, the new method has the advantage that you can deactivate a preactivated @AUCTeX{} with the statement @code{(unload-feature 'tex-site)} before any of its modes have been used. This may be important especially for site-wide installations. @item Support for the babel @LaTeX{} package was added. @item Folding a buffer now ensures that the whole buffer is fontified before the actual folding is carried out. If this results in unbearably long execution times, you can fall back to the old behavior of relying on stealth font locking to do this job in the background by customizing the variable @code{TeX-fold-force-fontify}. @item Folded content now reveals part of its original text in a tooltip or the echo area when hovering with the mouse pointer over it. @item The language-specific insertion of quotation marks was generalized. The variables @code{LaTeX-german-open-quote}, @code{LaTeX-german-close-quote}, @code{LaTeX-german-quote-after-quote}, @code{LaTeX-italian-open-quote}, @code{LaTeX-italian-close-quote}, and @code{LaTeX-italian-quote-after-quote} are now obsolete. If you are not satisfied with the default settings, you should customize @code{TeX-quote-language-alist} instead. @item Similar to language-specific quote insertion, @AUCTeX{} now helps you with hyphens in different languages as well. @ifclear rawfile @xref{European}, for details. @end ifclear @item Fill problems in Japanese text introduced in @AUCTeX{} 11.55 were fixed. @AUCTeX{} tries not to break lines between 1-byte and 2-byte chars. These features will work in Chinese text, too. @item The scaling factor of the fontification of sectioning commands can now be customized using the variable @code{font-latex-fontify-sectioning}. This variable was previously called @code{font-latex-title-fontify}; In this release we provide an alias but this will disappear in one of the the next releases. The faces for the sectioning commands are now called @code{font-latex-sectioning-@var{N}-face} (@var{N}=0@dots{}5) instead of @code{font-latex-title-@var{N}-face} (@var{N}=1@dots{}4). Analogously the names of the variables holding the related keyword lists were changed from @code{font-latex-title-@var{N}-keywords} to @code{font-latex-sectioning-@var{N}-keywords}. @ifclear rawfile @xref{Font Locking}, for details. @end ifclear Make sure to adjust your customizations. @item Titles in beamer slides marked by the ``\frametitle'' command are know displayed with the new face @code{font-latex-slide-title-face}. You can add macros to be highlighted with this face to @code{font-latex-match-slide-title-keywords}. @item Of course a lot of bugs have been fixed. @end itemize @heading News in 11.55 @itemize @bullet @item A bug was fixed which lead to the insertion of trailing whitespace during filling. In particular extra spaces were added to sentence endings at the end of lines. You can make this whitespace visible by setting the variable @code{show-trailing-whitespace} to @code{t}. If you want to delete all trailing whitespace in a buffer, type @kbd{M-x delete-trailing-whitespace RET}. @item A bug was fixed which lead to a @samp{*Compile-Log*} buffer popping up when the first @LaTeX{} file was loaded in an Emacs session. @item On some systems the presence of an outdated Emacspeak package lead to the error message @samp{File mode specification error: (error "Variable binding depth exceeds max-specpdl-size")}. Precautions were added which prevent this error from happening. But nevertheless, it is advised to upgrade or uninstall the outdated Emacspeak package. @item The value of @code{TeX-macro-global} is not determined during configuration anymore but at load time of @AUCTeX{}. Consequently the associated configuration option @samp{--with-tex-input-dirs} was removed. @item Support for the @LaTeX{} Japanese classes @samp{jsarticle} and @samp{jsbook} was added. @end itemize @heading News in 11.54 @itemize @bullet @item The parser (used e.g. for @code{TeX-auto-generate-global}) was extended to recognize keywords common in @LaTeX{} packages and classes, like ``\DeclareRobustCommand'' or ``\RequirePackage''. Additionally a bug was fixed which led to duplicate entries in @AUCTeX{} style files. @item Folding can now be done for paragraphs and regions besides single constructs and the whole buffer. With the new @code{TeX-fold-dwim} command content can both be hidden and shown with a single key binding. In course of these changes new key bindings for unfolding commands where introduced. The old bindings are still present but will be phased out in future releases. @item Info files of the manual now have a .info extension. @item There is an experimental tool bar support now. It is not activated by default. If you want to use it, add @lisp (add-hook 'LaTeX-mode-hook 'LaTeX-install-toolbar) @end lisp to your init file. @item The manual now contains a new chapter ``Quick Start''. It explains the main features and how to use them, and should be enough for a new user to start using @AUCTeX{}. @item A new section ``Font Locking'' was added to the manual which explains syntax highlighting in @AUCTeX{} and its customization. Together with the sections related to folding and outlining, the section is part of the new chapter ``Display''. @item Keywords for syntax highlighting of @LaTeX{} constructs to be typeset in bold, italic or typewriter fonts may now be customized. Besides the built-in classes, new keyword classes may be added by customizing the variable @samp{font-latex-user-keyword-classes}. The customization options can be found in the customization group @samp{font-latex-keywords}. @item Verbatim content is now displayed with the @samp{fixed-pitch} face. (GNU Emacs only) @item Syntax highlighting should not spill out of verbatim content anymore. (GNU Emacs only) @item Verbatim commands like @samp{\verb|...|} will not be broken anymore during filling. @item You can customize the completion for graphic files with @code{LaTeX-includegraphics-read-file}. @item Support for the @LaTeX{} packages @samp{url}, @samp{listings}, @samp{jurabib} and @samp{csquotes} was added with regard to command completion and syntax highlighting. @item Performance of fontification and filling was improved. @item Insertion of nodes in Texinfo mode now supports completion of existing node names. @item Setting the variable @code{LaTeX-float} to @code{nil} now means that you will not be prompted for the float position of figures and tables. You can get the old behaviour of @code{nil} by setting the variable to @code{""}, i.e. an empty string. @ifclear rawfile See also @ref{Floats}. @end ifclear @item The XEmacs-specific bug concerning @code{overlays-at} was fixed. @item Lots of bug fixes. @end itemize @heading News in 11.53 @itemize @bullet @item The @LaTeX{} math menu can include Unicode characters if your Emacs built supports it. See the variable @ifset rawfile @code{LaTeX-math-menu-unicode}. @end ifset @ifclear rawfile @code{LaTeX-math-menu-unicode}, @ref{Mathematics}. @end ifclear @item Bug fixes for XEmacs. @c The following items weren't present at release time of 11.53: @item Completion for graphic files in the TeX search path has been added. @item @command{start} is used for the viewer for MiK@TeX{} and fp@TeX{}. @item The variable @code{TeX-fold-preserve-comments} can now be customized to deactivate folding in comments. @end itemize @heading News in 11.52 @c Not present at release time of 11.52. @itemize @bullet @item Installation and menus under XEmacs work again (maybe for the first time). @item Fontification of subscripts and superscripts is now disabled when the fontification engine is not able to support it properly. @item Bug fixes in the build process. @end itemize @heading News in 11.51 @c Not present at release time of 11.51. @itemize @bullet @item PDFTeX and Source Special support did not work with ConTeXt, this has been fixed. Similar for Source Special support under Windows. @item Omega support has been added. @item Bug fixes in the build process. @item @code{TeX-fold} now supports folding of environments in Texinfo mode. @end itemize @heading News in 11.50 @itemize @bullet @item The use of source specials when processing or viewing the document can now be controlled with the new @code{TeX-source-specials} minor mode which can be toggled via an entry in the Command menu or the key binding @kbd{C-c C-t C-s}. If you have customized the variable @code{TeX-command-list}, you have to re-initialize it for this to work. This means to open a customization buffer for the variable by typing @code{M-x customize-variable RET TeX-command-list RET}, selecting ``Erase Customization'' and do your customization again with the new default. @item The content of the command menu now depends on the mode (plain @TeX{}, @LaTeX{}, @ConTeXt{} etc.). Any former customization of the variable @code{TeX-command-list} has to be erased. Otherwise the command menu and the customization will not work correctly. @item Support for hiding and auto-revealing macros, e.g. footnotes or citations, and environments in a buffer was @ifset rawfile added. @end ifset @ifclear rawfile added, @ref{Folding}. @end ifclear @item You can now control if indentation is done upon typing @key{RET} by customizing the variable @ifset rawfile @code{TeX-newline-function}. @end ifset @ifclear rawfile @code{TeX-newline-function}, @ref{Indenting}. @end ifclear @item Limited support for @code{doc.sty} and @code{ltxdoc.cls} (@samp{dtx} files) was added. The new doc@TeX{} mode provides functionality for editing documentation parts. This includes formatting (indenting and filling), adding and completion of macros and environments while staying in comments as well as syntax highlighting. (Please note that the mode is not finished yet. For example syntax highlighting does not work yet in XEmacs.) @item For macro completion in doc@TeX{} mode the @AUCTeX{} style files @file{doc.el}, @file{ltxdoc.el} and @file{ltx-base.el} were included. The latter provides general support for low-level @LaTeX{} macros and may be used with @LaTeX{} class and style files as well. It is currently not loaded automatically for those files. @item Support for @ConTeXt{} with a separate @ConTeXt{} mode is now included. Macro definitions for completion are available in Dutch and English. @item The filling and indentation code was overhauled and is now able to format commented parts of the source syntactically correct. Newly available functionality and customization options are explained in the manual. @item Filling and indentation in XEmacs with preview-latex and activated previews lead to the insertion of whitespace before multi-line previews. @AUCTeX{} now contains facilities to prevent this problem. @item If @code{TeX-master} is set to @code{t}, @AUCTeX{} will now query for a master file only when a new file is opened. Existing files will be left alone. The new function @code{TeX-master-file-ask} (bound to @kbd{C-c _} is provided for adding the variable manually. @item Sectioning commands are now shown in a larger font on display devices which support such fontification. The variable @code{font-latex-title-fontify} can be customized to restore the old appearance, i.e. the usage of a different color instead of a change in size. @item Support for @code{alphanum.sty}, @code{beamer.cls}, @code{booktabs.sty}, @code{captcont.sty}, @code{emp.sty}, @code{paralist.sty}, @code{subfigure.sty} and @code{units.sty}/@code{nicefrac.sty} was added. Credits go to the authors mentioned in the respective @AUCTeX{} style files. @item Inserting graphics with @kbd{C-c RET \includegraphics RET} was improved. See the variable @code{LaTeX-includegraphics-options-alist}. @c FIXME: Document this in the main part of the manual @item If @code{LaTeX-default-position} is @code{nil}, don't prompt for position arguments in Tabular-like @ifset rawfile environments. @end ifset @ifclear rawfile environments, see @ref{Tabular-like}. @end ifclear @item Completion for available packages when using @kbd{C-c RET \usepackage RET} was improved on systems using the kpathsea library. @item The commenting functionality was fixed. The separate functions for commenting and uncommenting were unified in one function for paragraphs and regions respectively which do both. @item Syntax highlighting can be customized to fontify quotes delimited by either >>German<< or <> quotation marks by changing the variable @code{font-latex-quotes}. @item Certain @TeX{}/@LaTeX{} keywords for functions, references, variables and warnings will now be fontified specially. You may add your own keywords by customizing the variables @code{font-latex-match-function-keywords}, @code{font-latex-match-reference-keywords}, @code{font-latex-match-variable-keywords} and @code{font-latex-match-warning-keywords}. @item If you include the style files @file{german} or @file{ngerman} in a document (directly or via the @samp{babel} package), you should now customize @code{LaTeX-german-open-quote}, @code{LaTeX-german-close-quote} and @code{LaTeX-german-quote-after-quote} instead of @code{TeX-open-quote}, @code{TeX-close-quote} and @code{TeX-quote-after-quote} if you want to influence the type of quote insertion. @item Upon viewing an output file, the right viewer and command line options for it are now determined automatically by looking at the extension of the output file and certain options used in the source file. The behavior can be adapted or extended respectively by customizing the variable @code{TeX-output-view-style}. @item You can control whether @code{TeX-insert-macro} (@kbd{C-c RET}) ask for all optional arguments by customizing the variable @ifset rawfile @code{TeX-insert-macro-default-style}. @end ifset @ifclear rawfile @code{TeX-insert-macro-default-style}, @ref{Completion}. @end ifclear @item @code{TeX-run-discard} is now able to completely detach a process that it started. @item The build process was enhanced and is now based on @code{autoconf} making installing AUC@TeX{} a mostly automatic process. See @ifset rawfile the files @file{INSTALL} and @file{INSTALL.windows} @end ifset @ifclear rawfile @ref{Installation} and @ref{Installation under MS Windows} @end ifclear for details. @end itemize @heading News in 11.14 @itemize @bullet @item Many more LaTeX and LaTeX2e commands are supported. Done by Masayuki Ataka @end itemize @heading News in 11.12 @itemize @bullet @item Support for the KOMA-Script classes. Contributed by Mark Trettin . @end itemize @heading News in 11.11 @itemize @bullet @item Support for @file{prosper.sty}, see @url{http://prosper.sourceforge.net/}. Contributed by Phillip Lord . @end itemize @heading News in 11.10 @itemize @bullet @item @code{comment-region} now inserts @t{%%} by default. Suggested by "Davide G. M. Salvetti" . @end itemize @heading News in 11.06 @itemize @bullet @item You can now switch between using the @file{font-latex} (all emacsen), the @file{tex-font} (Emacs 21 only) or no special package for font locking. Customize @code{TeX-install-font-lock} for this. @end itemize @heading News in 11.04 @itemize @bullet @item Now use @t{-t landscape} by default when landscape option appears. Suggested by Erik Frisk . @end itemize @heading News in 11.03 @itemize @bullet @item Use @file{tex-fptex.el} for fpTeX support. Contributed by Fabrice Popineau . @end itemize @heading News in 11.02 @itemize @bullet @item New user option @code{LaTeX-top-caption-list} specifies environments where the caption should go at top. Contributed by ataka@@milk.freemail.ne.jp (Masayuki Ataka). @item Allow explicit dimensions in @file{graphicx.sty}. Contributed by ataka@@milk.freemail.ne.jp (Masayuki Ataka). @item Limited support for @file{verbatim.sty}. Contributed by ataka@@milk.freemail.ne.jp (Masayuki Ataka). @item Better support for asmmath items. Patch by ataka@@milk.freemail.ne.jp (Masayuki Ataka). @item More accurate error parsing. Added by David Kastrup . @end itemize @heading News in 11.01 @itemize @bullet @item Bug fixes. @end itemize @c Local Variables: @c mode: texinfo @c TeX-master: "auctex" @c End: auctex-11.91/doc/copying.texi000066400000000000000000000041521313533625700161400ustar00rootroot00000000000000@include macros.texi @c ----------------------- @cindex Copying @cindex Copyright @cindex GPL @cindex General Public License @cindex License @c @cindex Free @c @cindex Free software @c @cindex Distribution @c @cindex Right @cindex Warranty (This text is stolen from the Texinfo manual, Edition 4.0). The programs currently being distributed that relate to @previewlatex{} include lisp files for Emacs and style files for @LaTeX{}. These programs are @dfn{free}; this means that everyone is free to use them and free to redistribute them on a free basis. The @previewlatex{} related programs are not in the public domain; they are copyrighted and there are restrictions on their distribution, but these restrictions are designed to permit everything that a good cooperating citizen would want to do. What is not allowed is to try to prevent others from further sharing any version of these programs that they might get from you. Specifically, we want to make sure that you have the right to give away copies of the programs that relate to @previewlatex{}, that you receive source code or else can get it if you want it, that you can change these programs or use pieces of them in new free programs, and that you know you can do these things. To make sure that everyone has such rights, we have to forbid you to deprive anyone else of these rights. For example, if you distribute copies of the @previewlatex{} related programs, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must tell them their rights. Also, for our own protection, we must make certain that everyone finds out that there is no warranty for the programs that relate to @previewlatex{}. If these programs are modified by someone else and passed on, we want their recipients to know that what they have is not what we distributed, so that any problems introduced by others will not reflect on our reputation. The precise conditions of the licenses for the programs currently being distributed that relate to @previewlatex{} are found in the General Public Licenses that accompany them. auctex-11.91/doc/faq.texi000066400000000000000000000143151313533625700152410ustar00rootroot00000000000000@c This is part of the AUCTeX Manual. @c Copyright (C) 2004-2014 Free Software Foundation, Inc. @c See the file auctex.texi for copying conditions. @ifset rawfile @include macros.texi @chapheading Frequently Asked Questions about @AUCTeX{} @end ifset @c We should switch to sectioning commands instead of items when this @c list grows. Keep in mind to formulate short questions because @c section headings will not be broken in contrast to items. @enumerate @item Something is not working correctly. What should I do? Well, you might have guessed it, the first place to look is in the available documentation packaged with @AUCTeX{}. This could be the release notes (in the @file{RELEASE} file) or the news section of the manual in case you are experiencing problems after an upgrade, the @file{INSTALL} file in case you are having problems with the installation, the section about bugs in the manual in case you encountered a bug or the relevant sections in the manual for other related problems. If this did not help, you can send a bug report to the @AUCTeX{} bug reporting list by using the command @kbd{M-x TeX-submit-bug-report RET}. But before you do this, you can try to get more information about the problem at hand which might also help you locate the cause of the error yourself. First, you can try to generate a so-called backtrace which shows the functions involved in a program error. In order to do this, start Emacs with the command line @samp{emacs --debug-init} and/or put the line @lisp (setq debug-on-error t) @end lisp as the first line into your init file. XEmacs users might want to add @code{(setq stack-trace-on-error t)} as well. After Emacs has started, you can load a file which triggers the error and a new window should pop up showing the backtrace. If you get such a backtrace, please include it in the bug report. Second, you can try to figure out if something in your personal or site configuration triggers the error by starting Emacs without such customizations. You can do this by invoking Emacs with the command line @samp{emacs -q -no-site-file -l auctex}. The @samp{-l} option @samp{auctex.el} which you normally do in your init file. After you have started Emacs like this, you can load the file triggering the error. If everything is working now, you know that you have to search either in the site configuration file or your personal init file for statements related to the problem. @item What versions of Emacs and XEmacs are supported? @AUCTeX{} was tested with @w{Emacs 21} and @w{XEmacs 21.4.15}. Older versions may work but are unsupported. Older versions of XEmacs might possibly made to work by updating the @file{xemacs-base} package through the XEmacs package system. If you are looking for a recommendation, it would appear that the smoothest working platform on all operating systems at the current point of time would be @w{Emacs 22} or higher. Our success with XEmacs has been less than convincing. Code for core functionality like formatting and syntax highlighting tends to be different and often older than even @w{Emacs 21.4}, and Unicode support as delivered is problematic at best, missing on Windows. Both @AUCTeX{} and XEmacs developers don't hear much from active users of the combination. Partly for that reason, problems tend to go unnoticed for long amounts of time and are often found, if at all, after releases. No experiences or recommendations can be given for beta or developer versions of XEmacs. @item What should I do when @code{./configure} does not find programs like latex? This is problem often encountered on Windows. Make sure that the @env{PATH} environment variable includes the directories containing the relevant programs, as described in @ifset rawfile the file @file{INSTALL.windows} @end ifset @ifclear rawfile @ref{Installation under MS Windows,,,auctex,the @AUCTeX{} manual}. @end ifclear @item Why doesn't the completion, style file, or multi-file stuff work? It must be enabled first, insert this in your init file: @lisp (setq-default TeX-master nil) (setq TeX-parse-self t) (setq TeX-auto-save t) @end lisp Read also the chapters about parsing and multifile documents in the manual. @item Why doesn't @code{TeX-save-document} work? @code{TeX-check-path} has to contain "./" somewhere. @item Why is the information in @file{foo.tex} forgotten when I save @file{foo.bib}? For various reasons, @AUCTeX{} ignores the extension when it stores information about a file, so you should use unique base names for your files. E.g. rename @file{foo.bib} to @file{foob.bib}. @item Why doesn't @AUCTeX{} signal when processing a document is done? If the message in the minibuffer stays "Type `C-c C-l' to display results of compilation.", you probably have a misconfiguration in your init file (@file{.emacs}, @file{init.el} or similar). To track this down either search in the @samp{*Messages*} buffer for an error message or put @code{(setq debug-on-error t)} as the first line into your init file, restart Emacs and open a @LaTeX{} file. Emacs will complain loudly by opening a debugging buffer as soon as an error occurs. The information in the debugging buffer can help you find the cause of the error in your init file. @item Why does @code{TeX-next-error} (@kbd{C-c `}) fail? If @code{TeX-file-line-error} is set to nil (not the default), these sort of failures might be related to the the fact that when writing the log file, @TeX{} puts information related to a file, including error messages, between a pair of parentheses. In this scenario @AUCTeX{} determines the file where the error happened by parsing the log file and counting the parentheses. This can fail when there are other, unbalanced parentheses present. Activating so-called file:line:error messages for the log file usually solves this issue, as these kind of messages are are easier to parse; however, they may lack some details. Activation can be done either in the configuration of your @TeX{} system (consult its manual to see where this is) or by simply keeping the variable @code{TeX-file-line-error} to the default value of non-nil. @item What does AUC stand for? @AUCTeX{} came into being at Aalborg University in Denmark. Back then the Danish name of the university was Aalborg Universitetscenter; AUC for short. @end enumerate auctex-11.91/doc/fdl.texi000066400000000000000000000557721313533625700152530ustar00rootroot00000000000000@node GNU Free Documentation License @appendixsec GNU Free Documentation License @cindex FDL, GNU Free Documentation License @center Version 1.3, 3 November 2008 @display Copyright @copyright{} 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. @uref{http://fsf.org/} Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. @end display @enumerate 0 @item PREAMBLE The purpose of this License is to make a manual, textbook, or other functional and useful document @dfn{free} in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others. This License is a kind of ``copyleft'', which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software. We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference. @item APPLICABILITY AND DEFINITIONS This License applies to any manual or other work, in any medium, that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. Such a notice grants a world-wide, royalty-free license, unlimited in duration, to use that work under the conditions stated herein. The ``Document'', below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as ``you''. You accept the license if you copy, modify or distribute the work in a way requiring permission under copyright law. A ``Modified Version'' of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language. A ``Secondary Section'' is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document's overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. (Thus, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them. The ``Invariant Sections'' are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License. If a section does not fit the above definition of Secondary then it is not allowed to be designated as Invariant. The Document may contain zero Invariant Sections. If the Document does not identify any Invariant Sections then there are none. The ``Cover Texts'' are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License. A Front-Cover Text may be at most 5 words, and a Back-Cover Text may be at most 25 words. A ``Transparent'' copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, that is suitable for revising the document straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file format whose markup, or absence of markup, has been arranged to thwart or discourage subsequent modification by readers is not Transparent. An image format is not Transparent if used for any substantial amount of text. A copy that is not ``Transparent'' is called ``Opaque''. Examples of suitable formats for Transparent copies include plain @sc{ascii} without markup, Texinfo input format, La@TeX{} input format, @acronym{SGML} or @acronym{XML} using a publicly available @acronym{DTD}, and standard-conforming simple @acronym{HTML}, PostScript or @acronym{PDF} designed for human modification. Examples of transparent image formats include @acronym{PNG}, @acronym{XCF} and @acronym{JPG}. Opaque formats include proprietary formats that can be read and edited only by proprietary word processors, @acronym{SGML} or @acronym{XML} for which the @acronym{DTD} and/or processing tools are not generally available, and the machine-generated @acronym{HTML}, PostScript or @acronym{PDF} produced by some word processors for output purposes only. The ``Title Page'' means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, ``Title Page'' means the text near the most prominent appearance of the work's title, preceding the beginning of the body of the text. The ``publisher'' means any person or entity that distributes copies of the Document to the public. A section ``Entitled XYZ'' means a named subunit of the Document whose title either is precisely XYZ or contains XYZ in parentheses following text that translates XYZ in another language. (Here XYZ stands for a specific section name mentioned below, such as ``Acknowledgements'', ``Dedications'', ``Endorsements'', or ``History''.) To ``Preserve the Title'' of such a section when you modify the Document means that it remains a section ``Entitled XYZ'' according to this definition. The Document may include Warranty Disclaimers next to the notice which states that this License applies to the Document. These Warranty Disclaimers are considered to be included by reference in this License, but only as regards disclaiming warranties: any other implication that these Warranty Disclaimers may have is void and has no effect on the meaning of this License. @item VERBATIM COPYING You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3. You may also lend copies, under the same conditions stated above, and you may publicly display copies. @item COPYING IN QUANTITY If you publish printed copies (or copies in media that commonly have printed covers) of the Document, numbering more than 100, and the Document's license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects. If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages. If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a computer-network location from which the general network-using public has access to download using public-standard network protocols a complete Transparent copy of the Document, free of added material. If you use the latter option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public. It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document. @item MODIFICATIONS You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version: @enumerate A @item Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission. @item List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the Document (all of its principal authors, if it has fewer than five), unless they release you from this requirement. @item State on the Title page the name of the publisher of the Modified Version, as the publisher. @item Preserve all the copyright notices of the Document. @item Add an appropriate copyright notice for your modifications adjacent to the other copyright notices. @item Include, immediately after the copyright notices, a license notice giving the public permission to use the Modified Version under the terms of this License, in the form shown in the Addendum below. @item Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document's license notice. @item Include an unaltered copy of this License. @item Preserve the section Entitled ``History'', Preserve its Title, and add to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If there is no section Entitled ``History'' in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence. @item Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on. These may be placed in the ``History'' section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission. @item For any section Entitled ``Acknowledgements'' or ``Dedications'', Preserve the Title of the section, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein. @item Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles. @item Delete any section Entitled ``Endorsements''. Such a section may not be included in the Modified Version. @item Do not retitle any existing section to be Entitled ``Endorsements'' or to conflict in title with any Invariant Section. @item Preserve any Warranty Disclaimers. @end enumerate If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version's license notice. These titles must be distinct from any other section titles. You may add a section Entitled ``Endorsements'', provided it contains nothing but endorsements of your Modified Version by various parties---for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard. You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one. The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version. @item COMBINING DOCUMENTS You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice, and that you preserve all their Warranty Disclaimers. The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work. In the combination, you must combine any sections Entitled ``History'' in the various original documents, forming one section Entitled ``History''; likewise combine any sections Entitled ``Acknowledgements'', and any sections Entitled ``Dedications''. You must delete all sections Entitled ``Endorsements.'' @item COLLECTIONS OF DOCUMENTS You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects. You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document. @item AGGREGATION WITH INDEPENDENT WORKS A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, is called an ``aggregate'' if the copyright resulting from the compilation is not used to limit the legal rights of the compilation's users beyond what the individual works permit. When the Document is included in an aggregate, this License does not apply to the other works in the aggregate which are not themselves derivative works of the Document. If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one half of the entire aggregate, the Document's Cover Texts may be placed on covers that bracket the Document within the aggregate, or the electronic equivalent of covers if the Document is in electronic form. Otherwise they must appear on printed covers that bracket the whole aggregate. @item TRANSLATION Translation is considered a kind of modification, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this License, and all the license notices in the Document, and any Warranty Disclaimers, provided that you also include the original English version of this License and the original versions of those notices and disclaimers. In case of a disagreement between the translation and the original version of this License or a notice or disclaimer, the original version will prevail. If a section in the Document is Entitled ``Acknowledgements'', ``Dedications'', or ``History'', the requirement (section 4) to Preserve its Title (section 1) will typically require changing the actual title. @item TERMINATION You may not copy, modify, sublicense, or distribute the Document except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, or distribute it is void, and will automatically terminate your rights under this License. However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, receipt of a copy of some or all of the same material does not give you any rights to use it. @item FUTURE REVISIONS OF THIS LICENSE The Free Software Foundation may publish new, revised versions of the GNU Free Documentation License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. See @uref{http://www.gnu.org/copyleft/}. Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this License ``or any later version'' applies to it, you have the option of following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation. If the Document specifies that a proxy can decide which future versions of this License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Document. @item RELICENSING ``Massive Multiauthor Collaboration Site'' (or ``MMC Site'') means any World Wide Web server that publishes copyrightable works and also provides prominent facilities for anybody to edit those works. A public wiki that anybody can edit is an example of such a server. A ``Massive Multiauthor Collaboration'' (or ``MMC'') contained in the site means any set of copyrightable works thus published on the MMC site. ``CC-BY-SA'' means the Creative Commons Attribution-Share Alike 3.0 license published by Creative Commons Corporation, a not-for-profit corporation with a principal place of business in San Francisco, California, as well as future copyleft versions of that license published by that same organization. ``Incorporate'' means to publish or republish a Document, in whole or in part, as part of another Document. An MMC is ``eligible for relicensing'' if it is licensed under this License, and if all works that were first published under this License somewhere other than this MMC, and subsequently incorporated in whole or in part into the MMC, (1) had no cover texts or invariant sections, and (2) were thus incorporated prior to November 1, 2008. The operator of an MMC Site may republish an MMC contained in the site under CC-BY-SA on the same site at any time before August 1, 2009, provided the MMC is eligible for relicensing. @end enumerate @page @heading ADDENDUM: How to use this License for your documents To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page: @smallexample @group Copyright (C) @var{year} @var{your name}. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled ``GNU Free Documentation License''. @end group @end smallexample If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, replace the ``with@dots{}Texts.'' line with this: @smallexample @group with the Invariant Sections being @var{list their titles}, with the Front-Cover Texts being @var{list}, and with the Back-Cover Texts being @var{list}. @end group @end smallexample If you have Invariant Sections without Cover Texts, or some other combination of the three, merge those two alternatives to suit the situation. If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software. @c Local Variables: @c ispell-local-pdict: "ispell-dict" @c End: auctex-11.91/doc/history.texi000066400000000000000000001651551313533625700162040ustar00rootroot00000000000000@include macros.texi @section News in 10.0 @itemize @bullet @item Disabled @code{LaTeX-hide-environment}. Suggested by Christopher Allen . @item Changed default to lazy evaluation of @code{TeX-view-style} and @code{LaTeX-command-style}. Suggested by Peter Neergaard . @item Backindent when brace is at the start of a line. Patch by Masashi Shimbo . @item Added Emacs 21 font lock support. @item @kbd{,} and @kbd{.} no longer removes italic correction. @item @code{graphicx} and @code{graphics} style support. Donated by Ryuichi Arafune . @item @code{LaTeX-math-abbrev-prefix} now accepts vector value. Reported by Jan Vroonhof . @item Improved Texinfo support(more environments and html). Patch by Akim Demaille . @item @code{danish} quotes support. Suggested by arne@@daimi.au.dk (Arne Joergensen). @item Some PDF support. @item New @file{tex-mik.el} file for MiK@TeX{} support. @item Some commands now have their own history. Suggested by Werner LEMBERG . @item Use @code{\centering} instead of center environment in figures. Patch by Stefan Monnier . @item New @code{dwim} setting for @code{TeX-master} attempts to guess a default master for new files. Patch by Stefan Monnier . @item @code{ngerman} style support. Just a copy of the german style support. @item Removed support for Emacs 18 and 19. @item @code{mdwlist} support. Patch by Stephen Heilbronner . @item Fixed various bugs with the babel package. @item @code{amsart} and @code{amsbook} now loads @code{amsthm} by default. Patch by Rune Kleveland . @item Fixed bug with file searching. Reported by Berwin Turlach . @item Finalized index support, added index-related style files. Patch by Carsten Dominik . @item New style files for @file{varioref.sty} and @file{fancyref.sty}. Patch by Carsten Dominik . @item @code{texmathp} recognizes additional macros like @code{\fbox}. Patch by Ulrik Vieth . @end itemize @section News in 9.9 @itemize @bullet @item Bug fix in JLATEX recognition. Patch by Tsutomu OKUMURA . @item Bug fix in foils package sypport. Suggested by Bernt Guldbrandtsen . @item Made @code{make install-contrib} compile the contributed lisp files. Suggested by Nils Ackermann . @item In @code{texinfo-mode}, @kbd{C-c C-f C-d} now deletes the current font, while @kbd{C-u C-c C-f @var{key}} changes it. @samp{@@dfn} moved to @kbd{C-c C-f d}. Suggested by Christoph Wedler . @item Fixed some custom types. Patch by Markus Rost . @item Support loading byte compiled files, even if @code{TeX-byte-compile} is nil. Patch by Christoph Wedler . @item The command to replace a LaTeX2e font should work more reliably now. Patch by Christoph Wedler . @item Minor XEmacs packaging changes. Patch by Christoph Wedler . @item @code{TeX-file-recurse} now accepts an integer value, max depth of recursion. Patch by Alastair Burt . @item Simple imenu support for @LaTeX{}. @item Workaround for 20.3 bugs. @item The `Spell' command now works on all open buffers in the document. Patch by Jason Stewart . @item @kbd{C-c C-m} now puts content of region inside first empty brackets in the macro, if any. Patch by Peter Thiemann . @item Update of @file{natbib.el} style file by Carsten Dominik . @item Much better detection of @TeX{} math mode. Patch by Carsten Dominik . @item New @samp{%n} escape in @code{TeX-command-list} for entering the current line number. Suggested by "Lee, Sang-Min" . @item Doc fixes in manual. Patch by Gustavo Chaves . @item Better reftex support for sections. Patch by Carsten Dominik . @item Bug fixes in math card. Reported by "Ron Smith" . @item Better multifile support. Patch by Soren Dayton . @item Don't expand abbreviations when @code{abbrev-mode} is nil. Suggested by Alastair Burt . @item @samp{direntry} support in manual, by SL Baur . @end itemize @section News in 9.8 @itemize @bullet @item Added @code{natbib.el} to support natbib.sty by Patrick W. Daly. Submitted by Berwin A. Turlach @samp{}. @item More @LaTeX{}2e support by Jan Vroonhof @samp{}.@refill @item Make @code{TeX-master} a local variable in Bib@TeX{} mode and set it to true. This seems to be necessary to enable auto-parsing of a .bib file. Patch by Berwin A. Turlach @samp{}. @item Support for Harvard style updated by Berwin A. Turlach @samp{}. @item Support for `natbib' package. By Berwin Turlach @samp{}. @item Finer control of automatic parsing of @TeX{} files: new variables @code{TeX-auto-x-parse-length} and @code{TeX-auto-x-regexp-list}. By Christoph Wedler @samp{}. @item Finer control of indentation: new variables @code{LaTeX-document-regexp}, @code{LaTeX-verbatim-regexp}, @code{LaTeX-begin-regexp}, @code{LaTeX-end-regexp} and @code{LaTeX-indent-comment-start-regexp}. By Christoph Wedler @samp{}. @item When running @LaTeX{} on a region, do not complain about undefined citations. See variable @code{TeX-region-extra}. By Christoph Wedler @samp{}. @item Split menu for LaTeX environments into submenus if number of environments is larger than the value of the new variable @code{LaTeX-menu-max-items}. By Christoph Wedler @samp{}. @item More reftex support with new @code{TeX-arg-ref} function. By Soren Dayton @samp{}, with @file{amsmath} support by Carsten Dominik @samp{}. @item Minimal parser now recognize @code{usepackage}. By Carsten Dominik @samp{}. @item More amstex styles recognized. By Carsten Dominik @samp{}. @item Czech and Slovak support. By Milan Zamazal @samp{}. @end itemize @section News in 9.7 @itemize @bullet @item Added support for customize. @item Added minimal support for @code{sentence-end-double-space}. @end itemize @section News in 9.6 @itemize @bullet @item NT installation instructions added. @item @file{func-doc.el} unbundled, as @file{word-help.el} will be added to the standard Emacs distribution. See @url{http://www.ifi.uio.no/~jensthi/}. @item @samp{$} is now of the syntax class `matched pair', suggested by Mats Bengtsson @samp{}. @item Now use @kbd{,} to enter multiple arguments to a @samp{\cite} or @samp{\bibliography} command instead of @kbd{@key{ret}}. @item Installation procedure is changed, read the @file{INSTALLATION} file. @item LaCheck is unbundled. You can get @code{lacheck} from @file{} or alternatively @code{chktex} from @file{}. Search for `chktex' in @file{tex.el} to see how to switch between them.@refill @item Insert @code{(require 'font-latex)} to get better font lock support. @item Bug fixes. @item Better handling of subdirectories, suggested by Frederic Devernay @samp{} and many others. @end itemize @section News in 9.5 @itemize @bullet @item Use the @file{func-doc.el} package to get context senstive help. This is not autoloaded, you must load it explicitly with: @lisp (require 'func-doc) @end lisp @item Bug fixes. @end itemize @section News in 9.4 @itemize @bullet @item There is now a menu in @code{LaTeX-math-minor-mode}. @item Bug fixes. @end itemize @section News in 9.3 @itemize @bullet @item Bug fixes. @end itemize @section News in 9.2 @itemize @bullet @item Bug fixes. @item New file @file{bib-cite.el} contributed by Peter S. Galbraith @samp{}. This file is not installed or enabled by default and is not part of the basic AUC @TeX{} package. If you have problems, questions, or suggestions, please direct them to Peter. @item New file @file{hilit-LaTeX.el} contributed by Peter S. Galbraith @samp{}. This file is not installed or enabled by default and is not part of the basic AUC @TeX{} package. If you have problems, questions, or suggestions, please direct them to Peter. @item AUC @TeX{} is now less likely to suggest running Bib@TeX{} when it is not needed. @item Press @kbd{M-x LaTeX-209-to-2e @key{ret}} to make a stab at converting a @LaTeX{} 2.09 header to @LaTeX{}2e. @item @kbd{C-c C-m input @key{ret}} should be faster now on second try. @item New variable @code{LaTeX-left-right-indent-level} controls the indentation added by @samp{\left}. @item @samp{\begin}, @samp{\end}, @samp{\left}, and @samp{\right} no longer need to be at the beginning of the line to take effect. @item You can now delete and replace @LaTeX{}2e style fonts. @item Moved external commands to new menu. @item @kbd{C-c C-m cite @key{ret}} will prompt for multiple keys. @item Better handling of @samp{"} with @file{german.sty}. @item New variable @code{LaTeX-paragraph-commands} lists @LaTeX{} commands that shouldn't be formatted as part of a paragraph. @item Older news moved to @file{HISTORY}. It is not @TeX{}info able, but you can get a plaintext version with @samp{make HISTORY}. @item See the new @file{ChangeLog} file for a more detailed list of changes. The history section will now only contain user level changes. If you send me a patch, please also provide a ChangeLog entry. @end itemize @node Version 9.1 @section News in 9.1 Coordinater: Per Abrahamsen, 1994. Alpha testers (in order of appearance): Bernt Guldbrandtsen @samp{}, Kevin Scott @samp{}, Lawrence R. Dodd @samp{}, Michelangelo Grigni @samp{}, David Aspinall @samp{}, Frederic Devernay @samp{}, Robert Estes @samp{}, Peter Whaite @samp{}, Karl Eichwalder @samp{}, John Interrante @samp{}, James A. Robinson @samp{}, Tim Carlson @samp{}, Michelangelo Grigni @samp{}, Manoj Srivastava @samp{}, Richard Stanton @samp{}, Kobayashi Shinji @samp{}, and probably more.@refill @itemize @bullet @item @LaTeX{}2e is now default. Set @code{LaTeX-version} to @samp{"2"} to disable this. @item Better handling of @samp{*TeX background*} buffer. Suggested by John Interrante @samp{}. @item Parser did not recognise the use of @samp{\def} to create @LaTeX{} environments. Reported by Frederic Devernay @samp{}. @item Minor cleanup in some error messages. @item Fixed bug in @code{TeX-comment-paragraph} when called with a negative argument. Reported by Markus Kramer @samp{}. @item Don't move point in master file when running a command on the region in an included file. Thanks to Karl Wilhelm Langenberger @samp{} for the patch. @item @code{LaTeX-math-mode} no longer works on Emacs 18 or older Lucid versions. This change allowed me to unbundle @file{min-map.el}. @item Made @kbd{C-c C-e} more robust, especially when applied on an empty active region. Reported by Andrew Senior @samp{}. @item @kbd{C-c C-m section RET} and @kbd{M-@key{tab}} should work now in @TeX{}info mode. @kbd{C-c C-b} and @kbd{C-c C-r} removed, since they did not work. Reported by Karl Eichwalder @samp{}. @item Made @kbd{M-q} skip block comments. Sugested by Peter Whaite @samp{}. @item Code cleanup: Renamed @samp{-format-} functions to @samp{-fill-}. @item Made @kbd{,} and @kbd{.} remove any preceding italic correction. @item Changes in math mode: @samp{setminus} moved to @key{\}, @samp{not} moved to @key{/}, and @samp{wedge}, @samp{vee}, and @samp{neg} installed on @key{&}, @kbd{|}, and @kbd{!} to make writing logic easier for C programmers. @item Renamed @file{auc-tex.el} to @file{auc-old.el} to make it less likely that new users load it by mistake. @item Changed name of @file{easymenu.el} to @file{auc-menu.el} to avoid conflict with RMS's version. Updated it to handle the Lucid @code{:keys} keyword argument. Defines a popup menu for both FSF and Lucid emacs, although it is only installed in Lucid Emacs. Added David Aspinall's @samp{} patch to handle an empty menu bar under Lucid Emacs. The interface is still a superset of @file{easymenu.el}. This version should no longer prevent the sharing of byte compiled files between FSF and Lucid emacs. @item Marking a section or environment now highlight it in Lucid Emacs. It already worked in GNU Emacs. Thanks to Andreas Ernst @samp{ernst_a@@maths.uwa.edu.au}. @item Font support for @LaTeX{}2e. Many people suggested this. Automatically activated for all documents defined with @samp{\documentclass}. @item Outline support for @LaTeX{}2e fixed by Robert Estes @samp{}. @item @samp{bibliography} macro now works. Thanks to Frederic Devernay @samp{}. @item Fixes to @file{psfig} support by Thomas Graichen @samp{}. @item Fixed position of @samp{\label} in environments. Reported by Richard Stanton @samp{}. @item Made the name of the AUC @TeX{} menu mode specific. @item More reliable guesses with @kbd{C-c C-r}. Thanks to Lawrence R. Dodd @samp{}. @item Insert newline before inserting local variable section. Thanks to Rajeev Gore' @samp{}. @item Fixes to Japanese version. Thanks to Kobayashi Shinji @samp{}. @item Fixed bug in @samp{put} and @samp{multiput} macros. Thanks to Kobayashi Shinji @samp{} and Masayuki Kuwada . @item Display number of pages after end of @LaTeX{} compilation. Thanks to Lawrence R. Dodd @samp{}. @item Only update section and environment menus when the lists have changed. @item New variables @code{LaTeX-header-end} and @code{LaTeX-trailer-start}. @item Some Emacs 18 compatibility changes. Thanks to Fran E. Burstall @samp{}. @item Use nonrecursive function to determine the current environment. This should solve problems with exceeding lisp max depth. Contributed by David Aspinall @samp{}. @item Fixed documentation for @kbd{` ~} in @file{math-ref.tex}. Thanks to Morten Welinder @samp{}. @item Made @code{LaTeX-math-mode} work better with FSF Emacs 19 in the case where you press something undefined, in particular function keys. Requested by several. @item Inserting an itemize environment around the active region now insert the first item inside the environment. Thanks to Berwin A. Turlach @samp{} for reporting this. @item Fixed bug in right button menu under Lucid. Reported by Frederic Devernay @samp{}. @end itemize @node Version 9.0 @section News in 9.0 Coordinator: Per Abrahamsen, 1994. Alpha testers (in order of appearance): Volker Dobler @samp{}, Piet van Oostrum @samp{}, Frederic Devernay @samp{}, Robert Estes @samp{}, Berwin Turlach @samp{}, Tim Carlson @samp{}, Peter Thiemann @samp{}, Kevin Scott @samp{}, Lawrence R. Dodd @samp{}, Johan Van Biesen @samp{}, Marc Gemis @samp{}, Michelangelo Grigni @samp{}, Kevin Scott @samp{}, Peter Paris @samp{}, Peter Barth @samp{}, Andy Piper @samp{}, Richard Stanton @samp{}, Christoph Wedler @samp{}, Graham Gough @samp{}, and probably more.@refill @itemize @bullet @item Fixed problem with @file{filladapt} defeating @LaTeX{} mode's own indentation algorithm. Thanks to Piet van Oostrum @samp{}. @item Made environments and sections selectable from the menu bar. @item Support Emacs comment conventions. Comments starting with a single @samp{%} are indented at @code{comment-column}. Comments starting with @samp{%%%} are indented at column 0. Comments starting with @samp{%%} are indented like ordinary text. You can set the variables @code{LaTeX-right-comment-regexp} and @code{LaTeX-left-comment-regexp} to nil to disable this. See also @code{LaTeX-ignore-comment-regexp}. Rewrote it from Christoph Wedler @samp{} from original code. @item @key{tab} and @key{lfd} will not indent code in @samp{verbatim} environment if you set @code{LaTeX-indent-environment-check} to non-nil. This was also first implemented by Christoph Wedler @samp{}. @item You can now get get custom indentation for various environments. See @code{LaTeX-indent-environment-list}. @item @kbd{C-c C-m left @key{ret}} new automatically inserts a matching @samp{\right}. See variables @code{TeX-left-right-braces}, @code{TeX-braces-default-association}, and @code{TeX-braces-user-association}. This feature was suggested by Jesse @samp{} and implemented by Berwin Turlach @samp{}. @item Don't automatically display the compilation buffer unless @code{TeX-show-compilation} in non-nil. Suggested by Stefan Schoef @samp{Stefan.Schoef@@arbi.informatik.uni-oldenburg.de}. @item Bundled @file{ltx-help.el}. Press @kbd{C-h C-l} to get the documentation for a LaTeX command. @item Fixed indentation of @samp{\left} and @samp{\right}. Thanks to Christoph Wedler @samp{}. @item Installation procedure changed. @file{tex-site.el} is now intended to survive AUC @TeX{} upgraded. The distribution version only contains autoloads (eliminating the need for @file{tex-load.el} , the customization variables are moved to @file{tex.el}. You should copy those variables you need to customize from @file{tex.el} to @file{tex-site.el}. @item Made it possible to use absolute paths when including bibliographies or style files. @item Fixed problem with parsing errors after running @LaTeX{} on the region from the menu. Thanks to Peter Barth @samp{} for finding this one. @item The file @file{doc/ref-card.texi} has been renamed to @file{doc/tex-ref.texi} to avoid confusion with the reference card for GNU Emacs. Suggested by Michelangelo Grigni @samp{}. @item The @file{README}, @file{CHANGES} and @file{INSTALLATION} files are now generated from chapters of this manual, to ensure they stay in sync. @item @kbd{M-@key{tab}} will now complete some macro arguments in addition to macro names. In particular, if you press @kbd{M-@key{tab}} after @samp{\cite@{} or @samp{\ref@{} you will get completion for bibitems and labels, respectively. @item Merged a number of files. The major files are now @file{tex.el} for plain @TeX{} and common support, @file{tex-buf.el} for running external commands, and @file{latex.el} for @LaTeX{} support. @item Unbundled @file{outln-18.el}. Users of Emacs 18 or Lucid Emacs 19.9 or earlier must get @file{outln-18.el} and install it as @file{outline.el} if they want the outline commands to work. @item No longer bind @kbd{C-c @key{tab}} to @code{TeX-complete-symbol}. Use @kbd{M-@key{tab}} instead. @item Cleaned up the parser and parameterizedd it. Now you can add now types of information to be maintained by the parser simply by calling @code{TeX-auto-add-type}. You still need to install the regexps with @code{TeX-auto-add-regexp}. @item Disable the automatic insertion of empty braces after macros with no arguments in @code{LaTeX-math-mode}. Added a variable @code{TeX-insert-braces} to disable it everywhere. @item Now complete with existing labels when asking for a label in a @LaTeX{} environment. Suggested by Berwin Turlach @samp{}. @item The variables @code{TeX-private-macro}, @code{TeX-private-auto}, and @code{TeX-private-style} are now initialized from the @samp{TEXINPUTS} and @samp{BIBINPUTS} environment variables. @item @kbd{C-c C-f} and @kbd{C-c C-e} will now put the template around the region if the region is active. @item Fixed @kbd{C-u C-c C-e} to handle environments ending with a star (@samp{*}). Reported by Berwin Turlach @samp{}. @item Don't use @code{with-output-to-temp-buffer} for compilation buffer. Fixed by Frederic Devernay @samp{}. @item New function @code{TeX-command-buffer} (@kbd{C-c C-b}) to run a command on the (visible part of) the current buffer. Requested by several people. @item Bundled the latest @file{reporter.el}, added @code{TeX-submit-bug-report} to menus. @item @code{TeX-insert-braces} now takes an argument like @code{insert-parentheses}. Thanks to Lawrence R. Dodd @samp{}. @item Fixed bug in @samp{\put} and @samp{\multiput} macros. Thanks to Kevin Scott @samp{}. @item Deleted @code{ams-latex-mode}, @code{slitex-mode}, and @code{foiltex-mode}. Instead, use @code{LaTeX-command-style} to determine the name of the external command to use. @item Deleted @code{latex2e-mode}. Instead set the @code{LaTeX-version} variable. This may be done automatically if you use @samp{\documentclass} in the future. @item Fixed Lucid Emacs menu for @TeX{}info mode. Thanks to Frederic Devernay @samp{}, @item Added support for @file{harvard.sty} by Berwin Turlach @samp{}. @item Filling will not let display math equations @samp{\[ ... \]} be on a line by themselves. Reported by Matthew Morley @samp{}. @item Made @code{words-include-escapes} default to nil. @item Made @code{TeX-expand-list} expansions case sensitive. Thanks to Havard Rue @samp{}. @item Fixed error in calculating indentation for lines starting with a brace. Thanks to Piet van Oostrum @samp{}. @item Fixed bug in the @samp{addcontentsline}, @samp{newtheorem}, and @samp{pagenumbering} macros reported by Berwin Turlach @samp{}. @item Doc fixes by Lawrence R. Dodd @samp{}. @item Indentation no longer fooled by @samp{\\@{}, Thanks to Peter Thiemann @samp{}. @item Bind @kbd{M-C-e} and @kbd{M-c-a} to @code{LaTeX-find-matching-end} and @code{LaTeX-find-matching-begin}. Suggested by Lawrence R. Dodd @samp{}. @item Added variable @code{TeX-quote-after-quote} which causes @code{TeX-insert-quote} to insert literal @samp{"} except when after another @samp{"}, in which case it will expand to @code{TeX-open-quote} or @code{TeX-close-quote}. This code was contributed by Piotr Filip Sawicki @samp{}. @item Added support for Polish style files @file{plfonts.sty} and @file{plhb.sty}, contributed by Piotr Filip Sawicki @samp{}. @item Added section with suggestions for how to handle European character sets. @item Created workaround for bug in the regexp handler in some Emacs 18 versions and older versions of Lucid Emacs. The workaround means you cannot use space in the documentstyle command in Emacs and Lucid Emacs earlier than version 19.9. @item @file{powerkey.el} is removed since the functionality is integrated in GNU Emacs @item @kbd{C-u "} now inserts four literal @samp{"}, not just one. To insert a single @samp{"} either press @key{"} twice or use @kbd{C-q "}. @item Allow non-string value for @code{outline-minor-map-prefix}. Reported by David Smith @samp{}. @item Make the use of @code{write-file-hooks} more safe, and use @code{local-write-file-hooks} when possible. Suggested by David Smith @samp{}. @item Don't indent @samp{\begin@{verbatim@}} and @samp{\end@{verbatim@}}, since any space before @samp{\end@{verbatim@}} is significant. Thanks to Peter Thiemann @samp{} for the patch. @item Show available fonts when you try to insert an non-existing font. Suggested by David Smith @samp{}. @item The @code{member} function in @file{tex-18.el} does not depend on @code{TeX-member} now. Thanks to Piet van Oostrum @samp{}. @item Do not overwrite any global binding of @kbd{M-@kbd{ret}}. Suggested by Jens Petersen @samp{}. @item Major modes for writing text are supposed to rebind @kbd{M-@kbd{tab}} to @code{ispell-complete-word}. Reported by Jens Petersen @samp{}. @item Fixed problems with @TeX{}info menus. Thanks to David Smith @samp{} for reporting this. @item Code cleanup. Removed the @file{format} directory, as it did not make it easier to add new @TeX{} modes, quite the contrary. @item Fixed name conflict in @file{auc-tex.el}, reported by Rik Faith @samp{}. @item Fixed some spelling errors. Thanks to Lawrence R. Dodd @samp{}. @item Fixed bug prohibiting non-standard file extensions. Now recognize @file{.ltx} by default. Suggested by Lawrence R. Dodd @samp{}. @item Name of the AUC @TeX{} info files changes once again to be usable under DOS. This time simply to @file{auctex}. @item Documented @code{TeX-outline-extra}. @item Could not select command on region from the menu before loading @file{tex-buf}. Reported by Uwe Bonnes @samp{}. @item Make the hilit19 interface more robust. Thanks to William Dean Norris II @samp{}. @item More OS/2 Makefile fixes by Bodo Huckestein @samp{}. @item Reimplemented comment support on top of @code{comment-region}, giving slightly different semantics. @end itemize @node Version 8.0 @comment node-name, next, previous, up @section News in 8.0 Coordinator: Per Abrahamsen, 1993. Alpha testers (in order of appearance): Marc Gemis @samp{}, Shinji Kobayashi @samp{}, Philippe Defert @samp{}, Richard Stanton @samp{}, Norbert Kiesel @samp{}, Roberto Cecchini @samp{}, Hanno Wirth @samp{}, Tim Carlson @samp{}, John Daschbach @samp{}, Bob Fields @samp{}, Peter Whaite @samp{}, Volker Dobler @samp{}, Phil Austin @samp{}, Martin Maechler @samp{}, Havard Rue @samp{}, Tim Geisler @samp{}, Tim Carlson @samp{}, Sridhar Anandakrishnan @samp{}, Peter Thiemann @samp{}, Pedro Quaresma @samp{}, Christian Lynbech @samp{}, Kevin Scott @samp{}, Bodo Huckestein @samp{}, Cengiz Alaettinoglu @samp{}, Jakob Schiotz @samp{}, and probably more.@refill @itemize @bullet @item New variable @code{LaTeX-letter-sender-address} contains default address for use with the letter style. Set it to the address of your organization in @file{tex-site.el}. Thanks to Sridhar Anandakrishnan @samp{}. @item Makefile now works under OS/2 with GNU Make. Thanks to Bodo Huckestein @samp{bodo@@eu10.mpi-hd.mpg.de}. @item Made it possible to install global auto files without having Bib@TeX{} mode installed. Thanks to Christian Lynbech @samp{}. @item Minor documentation fixes. Thanks to Martin Maechler @samp{}. @item Added support for @samp{eqref} for the @samp{amsart} style. Thanks to Peter Whaite @samp{}. @item Use @samp{-c} as the default shell command option under @samp{emx}. Eberhard Mattes @samp{} says it is better than @samp{/c}. @item Made powerkey in the menus work better under OS/2. Thanks to Eberhard Mattes @samp{}. @item Made the reference cards print correctly on US letter format paper. Thanks to Magnus Nordborg @samp{}. @item @code{LaTeX-dead-mode} removed. Read the file `ISO-TEX' for alternative solutions. @item All minor modes unbundled. You can find them from ftp at @samp{ftp.iesd.auc.dk} in the directory @file{/pub/emacs-lisp}. Removed information about minor modes from this document. @item New hooks for changing ispell directory, see @file{tex-site.el} for details. @item @LaTeX{}2e mode now supported. Insert @lisp (setq TeX-default-mode 'latex2e-mode) @end lisp in your @file{.emacs} file to get documentclass instead of documentstyle per default. The parser recognizes documentclass, usepackage, and newcommand with a default argument. There are also templates for all of them. @item Added Jakob Schiotz's @samp{} help file for installing AUC @TeX{} on OEMACS. It will probably also be of interest for DEMACS users. @item Minor changes to be more friendly for OEMACS, thanks to Jakob Schiotz @samp{}. @item The control key bindings in @code{LaTeX-math-mode} now works, thanks to Frederic Devernay @samp{}. @item @LaTeX{} outlines no longer matches @samp{\partial} or other commands with a sectioning command as prefix. Thanks to Jakob Schiotz @samp{}. @item @code{LaTeX-fill-paragraph} now handles the case where the previous line both contain an @samp{\item} and an unmatched open brace. Thanks to Piet van Oostrum @samp{}. @item Use abbreviated file name for @TeX{} output buffers in Emacs 19. Thanks to Jens Gustedt @samp{}. @item Added lowercase alias for @code{LaTeX-math-mode} for use with Emacs file mode commands. Thanks to Olaf Burkart @samp{}. @item Added code to reuse old region in @code{TeX-command-region} if mark is not active. Thanks to Cengiz Alaettinoglu @samp{}. @item Now get keyboard accelerators on all menus rather than only AUC @TeX{} menus, thanks to the @file{powerkey.el} file by Lars Lindberg @samp{}. @item Added @code{TeX-electric-macro} for faster completion of @TeX{} macros. @xref{Completion}. @item Comparing printer names are now case incentive. Thanks to Richard Stanton @samp{}. @item Default shell fixed for OS/2. Thanks to Richard Stanton @samp{}. @item Added functions to hide (@code{LaTeX-hide-environment}) and show (@code{LaTeX-show-environment}) the current environment. @item @kbd{C-u C-c C-e} will now modify the current environment instead of inserting a new environment. This is like the optional argument to the font commands. @item Added nabla to LaTeX Math Mode. Suggested by Bill Reynolds @samp{}. @item Added commands for running @TeX{} and @LaTeX{} interactively. Thanks to David Carlisle @samp{}. @item The external commands will now insert there output @emph{before} point in the output buffers. This allows you to follow the progress by putting point at the end of the file. Suggested by Jak Kirman @samp{}. @item When invoking an external command from a menu, the document will be automatically saved. @item There are now a printer menu for emacs 19. @item Redesigned dependency checking. Now only checks dependencies for files loaded in the current emacs session. This is much faster, but will not catch files that are edited outside this emacs session, or files edited in killed buffers. @strong{@code{TeX-check-path} must at least contain @file{.} for saving to work}. If you have set @samp{TeX-check-path} in your @file{.emacs} file, remove it. The default value is fast enough now. @item New variable @code{TeX-save-query} control if AUC @TeX{} will query you for each modified buffer when you save the document. Set it to nil to get rid of these questions. Setting this variable also affect the automatic saving of the document that happens each time you start an external command. @item New command @code{TeX-save-document} will save all files in the current document, i.e. the document associated with the current buffer. @item Cleaned up all minor modes, also made them use @file{min-map.el} or @file{min-mode.el} instead of @file{min-bind.el}. @item Cleaned up release management. @item AUC TeX will not longer be confused when you rewrite a file under a new name. @item Lots of code cleanup, involving reformatting the source and renaming all @samp{-hook} variables and functions to conform with the Emacs 19 guidelines. @item Can now parse Japanese characters in labels and macros when you use Japanese @TeX{}. Thanks to Shinji Kobayashi @samp{}. @item Made it safe to quit when AUC @TeX{} asks for the name of the master file. It will simply assume the file itself is the master, and continue without inserting any file local variables. @item Support for @code{epsf} and @code{psfig} style files. Thanks to Marc Gemis @samp{}. @item Support for @LaTeX{}info. Thanks to Marc Gemis @samp{}. @item Only examine the first 10000 bytes to find out what @TeX{} mode to use. @item Added @code{TeX-submit-bug-report} command to submit bug reports. It uses the @file{reporter.el} distributed with SuperCite, so it may not be available in some Emacs 18 installations. @item Speeded up parsing significantly by using a simpler regexp. @item Added variable @code{TeX-auto-untabify}. Set it to nil to prevent untabifying the buffer when it is saved. Several people wanted this. @item Changed defaults to @emph{not} do any automatic parsing, nor prompt for a master file. @xref{Parsing Files}, @ref{Multifile}, for information about how ot correct this. In short, insert the following in your @file{.emacs} file. @lisp (setq TeX-auto-save t) (setq TeX-parse-self t) (setq-default TeX-master nil) @end lisp @item Some grammatical fixes to the @file{PROBLEMS} file. Thanks to Lawrence R. Dodd @samp{}. @item No longer install a separate @code{outline-minor-mode} by default, as the FSF Emacs 19.19 @code{outline-minor-mode} is adequate. The included file @file{outln-18.el} emulates the FSF Emacs 19.19 mode under Emacs 18. The FSF Emacs 19.19 @code{outline-minor-mode} use the @kbd{C-c} prefix instead of @kbd{C-c C-o} by default, and does not bind as many keys as the @code{outline-minor-mode} distributed with earlier versions of AUC @TeX{} did. You can get the keybindings back together with other goodies by inserting @example (require 'out-xtra) @end example in your @file{.emacs} file. @file{out-xtra.el} will probably be unbundled from AUC @TeX{} in the future. @item Some fixes to AmS-@TeX{} mode by Ulf Juergens @samp{}. @item Make @samp{plain-TeX-mode-menu} work in Lucid Emacs. Thanks to Anthony Rossini @samp{rossini@@hsph.harvard.edu} for reporting this. @item First cut on a @TeX{}info mode. @item More strict about parsing @samp{\bibitem}'s and Bib@TeX{} entries. @item Made it easier to write style files for environments that takes arguments and documented it. Suggested by Martin Wunderli @samp{}. @item Parse optional argument to @samp{\newenvironment}. Suggested by Martin Wunderli @samp{}. @item Fixed @samp{parbox} macro. Thanks to Shinji Kobayashi @samp{}. @item Made the parser work better in outline minor mode. Thanks to Salvador Pinto Abreu @samp{}. @item Also save style information with @code{TeX-normal-mode} when buffer not modified. @item Use @code{$(MAKE)} instead of @samp{make} to invoke @code{make} from the @file{Makefile}. Thanks to John Interrante @samp{}. @item Make last value default for @code{TeX-insert-macro}. Suggested by Matt Fairtlough @samp{}. @item Renamed info file to @samp{auc-info} in order to fill DOS file limits. Please remember to update your @file{dir} file to reflect this change. @item Delete auto file instead of saving an empty file. @end itemize @node Version 7.3 @comment node-name, next, previous, up @section News in 7.3 Coordinator: Per Abrahamsen, 1993. @itemize @bullet @item More robust installation, especially for Lucid Emacs (I hope). Many people reported problems with this. @item Make `easymenu' work when byte-compiled. Many people reported this bug. @item Minimally updated the @file{README} file from version 6.0 (sigh). Thanks to Boris Goldowsky @samp{} for reporting this. @item Added @samp{@@finalout} to manual. Reported by Henrik Drabol @samp{}. @item Fixed @kbd{M-q} to work after an @samp{\end@{@dots{}@}}. It will not work at the end of the buffer, but there are usually the local variables so it should (hopefully) not matter. Thanks to Shinji Kobayashi @samp{} again. @item New variables @code{TeX-open-quote} and @code{TeX-close-quote} determine what is inserted by @code{TeX-insert-quote}. The @file{german} style file now use those variables instead of changing the keymap. @item Changes to the default settings in @file{tex-site.el}, in particular a @samp{Queue} command is added to display the print queue. Thanks to John Interrante @samp{} for code, and other members of the @samp{auc-tex@@iesd.auc.dk} mailing list for ideas. @item Make sure all outline mode commands are bound in @code{outline-minor-mode}. @item Added autoload for @code{TeX-command}. Thanks to Hanno Wirth @samp{} for reporting this. @item Added support for AmS@TeX{} and AmSLa@TeX{}. Currently they are identical to @TeX{} and @LaTeX{} except for another default command. @item Added Vor@TeX{} style matching of dollar sign. The style is guaranteed to be Vor@TeX{}, since I lifted the code directly from Vor@TeX{}. Thanks to Pehong Chen @samp{} for writing the Vor@TeX{} code. Thanks to Jak Kirman @samp{} for pointing out this nice Vor@TeX{} feature. @item Added information about AUC @TeX{} mail addresses to the manual. Thanks to Dave Smith @samp{}. @item Added menu to for plain @TeX{}. Suggested by Tim Carlson @samp{}. @item Made the menus depend on @code{TeX-command-list}. @item Made it possible to specify @code{TeX-auto-regexp-list} in the local variable section of each file. @item Added variable @code{TeX-auto-parse-length} to specify maximal length of text that will be parsed. @item Added automatic parsing of Bib@TeX{} files and @samp{bibitem} entries in order to get completion in @samp{cite}. This was inspired by an add on made by Sridhar Anandakrishnan @samp{}. @item Added variable @code{TeX-byte-compile} to disable automatic byte compilation of style files when loaded. This is needed when using different Emacs versions. @item Added variable @code{TeX-translate-location-hook} to translate file and line information before showing an error, as requested by Thorbjoern Ravn Andersen @samp{}. @item Added variable @code{TeX-auto-save} to allow disabling the automatic saving of style information, either per file in the file local variables, or globally by using @code{setq-default}. Use @code{TeX-normal-mode} to force style information to be saved. @item Try to create @file{auto} directory if it does not exists. @item Added chapter describing how to tune the @TeX{} parsing. @item Allow (but do not encourage) a string value for @code{LaTeX-default-options}. @item Give @samp{"} word syntax when german.sty is loaded. Suggested by Tim Geisler @samp{}. @item Many corrections to the grammar in the manual. Thanks to Manfred Weichel @samp{}. @item Bind @code{TeX-home-buffer} to @kbd{C-c ^} instead of @kbd{C-c C-h} which are reserved in Emacs 19. Suggested by Chris Moore @samp{}. @end itemize @node Version 7.2 @comment node-name, next, previous, up @section News in 7.2 Coordinator: Per Abrahamsen, 1993. @itemize @bullet @item @code{LaTeX-dead-mode} works again. Thanks to Patrick O'Callaghan @samp{} for fixing it. @item Minor fixes to the documentation. Thanks to Shinji Kobayashi @samp{}. @item Add @samp{Compiling} to the mode line of all buffers, while there is a AUC @TeX{} compilation process running. This is similar to the behavior of @code{compile} in Emacs 19. @item @code{TeX-normal-mode} will now save the buffer first to make sure it gets reparsed. @item Labels with underscores are now recognized. Thanks to Wolfgang Franzki @samp{} @item Fix to `ghostview' printer specification. Thanks to Masayuki Kuwada @samp{}. @item Recognize @samp{abstract}, @samp{center}, @samp{titlepage}, @samp{verse}, and @samp{theindex} environments. Thanks to Masayuki Kuwada @samp{}. @item Fix to @samp{newsavebox} macro. Thanks to Shinji Kobayashi @samp{} for reporting this. @item Menu support for GNU Emacs 19 and Lucid Emacs. Thanks to Alastair Burt @samp{} for the initial Lucid Emacs version. @item @kbd{C-c C-f C-d} now deletes the current font. The current font is defined to be the innermost @TeX{} group starting with a @TeX{} macro that is terminated by a space. @item Giving @kbd{C-c C-f} a prefix argument will replace the current font, i.e. @kbd{C-u C-c C-f C-b} will change the current font to bold. The old functionality (putting the font around the region) has been removed. To make the region bold, type @kbd{C-w C-c C-f C-b C-y} instead. @item Chapter recognized as largest heading in the report style. Thanks to Shinji Kobayashi @samp{} for reporting this. @item More support for Japanese style files. Thanks to Shinji Kobayashi @samp{}. @item No longer put @samp{Outline} in the mode line whenever @code{selective-display} is set. Thanks to Lawrence R. Dodd @samp{} for reporting this. @item Support for inserting calligraphic letters in @code{TeX-math-mode} with @kbd{` c @key{letter}}. Thanks to Olaf Burkart @samp{}. @item @code{set-docstring} in @file{tex-math.el} should work better now. Thanks to Alastair Burt @samp{} and Olaf Burkart @samp{}. @item Support for dviout preview on PC-9801. Thanks to Shinji Kobayashi @samp{}. @item Inserting environment in empty buffer should work now. Thanks to Alastair Burt @samp{}. @item Default float for figures changed from @samp{tbp} to @samp{htbp}. @item @code{LaTeX-format-environment} may work now. Thanks to Shinji Kobayashi @samp{}. @item Better @code{LaTeX-close-environment}. Thanks to Thorbjoern Hansen @samp{}. @item Some support for Ispell 4.0. @item Bib@TeX{} in Emacs 19 need @code{tex-insert-quote}, make it autoload from AUC @TeX{} instead of the standard @code{tex-mode}. @item @code{TeX-auto-generate} failed when repeated. Thanks to Peter Whaite @samp{} for reporting this. @end itemize @node Version 7.1 @comment node-name, next, previous, up @section News in 7.1 Coordinator: Per Abrahamsen, 1993. @itemize @bullet @item Allow multiple @samp{%p} in print commands. Suggested by Cliff Krumvieda @samp{}. @item Improved backward compatibility in @file{auc-tex.el}. Thanks to Ralf Handl @samp{}. @item New style hook for @file{german.sty}. Disable smart quotes. Press @kbd{C-c C-n} to make it take effect. @item Allow files to have other extensions than ``tex''. But no longer allow files to have multiple dots. Sigh. @item Will no longer parse the buffer if it can use the saved state. @item New variable @code{TeX-parse-self}. Set it to nil if you never want to parse the buffer when you load it. @item Only offer to save files that belongs to the document. When you format the document with @kbd{C-c C-c}, AUC @TeX{} will no longer offer to save your @file{RMAIL}, @file{.newsrc}, or other files that does not belong to the document. Suggested by Jim Hetrick @samp{}. @item Foil@TeX{} support. Thanks to Sven Mattisson @samp{} @item Smarter about when you need to reformat. Thanks to Chris Callsen @samp{}. @item Japanese @TeX{} Now supports Japanese @TeX{}. Thanks to Shinji Kobayashi @samp{}. @item Works again under OS/2 and other case insensitive file systems. @item DEMACS support. Thanks to Shinji Kobayashi @samp{}. @item Better @code{LaTeX-close-environment}. Thanks to Piet van Oostrum @samp{}. @item Ispell support. Thanks to Piet van Oostrum @samp{}. @item Support for Russian letters. Thanks to Justin R. Smith @samp{}. @item Sli@TeX{} fixes. Many people. @item Fixes for spelling errors. Many people. @end itemize @node Version 7.0 @comment node-name, next, previous, up @section Version 7.0 Coordinator: Per Abrahamsen, 1993. Alpha testers (in order of appearance): Piet van Oostrum @samp{}, Sven Mattisson @samp{}, Tim Geisler @samp{}, Fran E. Burstall @samp{}, Alastair Burt @samp{}, Sridhar Anandakrishnan @samp{}, Kjell Gustafsson @samp{}, Uffe Kjaerulff @samp{}, Kurt Swanson @samp{Kurt.Swanson@@dna.lth.se}, Mark Utting @samp{}, Per Norman Oma @samp{perno@@itk.unit.no}, Naji Mouawad @samp{}, Bo Nygaard Bai @samp{}, and probably more. @itemize @bullet @item New keymap. The keymap has been changed in order to make it more intuitive to new users, and because the old bindings did not work well with the new buffer manipulation commands in tex-buf.el. To use the new bindings, load @file{tex-init.el} instead of @file{auc-tex.el}. The file @file{auc-tex.el} is still available and implements the old keybindings on top of the new code. Print out the reference card (@file{doc/tex-ref.tex}) to see the new bindings. @item Completely redesigned the buffer handling. No part of the interface or the customization variables remain the same, unless you use the compatibility functions in @file{auc-tex.el}. In that case the interactive commands remain similar in spirit, but the customization interface is still changed. The file @file{tex-buf.el} has been completely rewritten, and there are major cleanup in @file{tex-dbg.el}, however the basic functionality remains the same in this file. The code for both @file{tex-buf.el} and @file{tex-dbg.el} should be much simpler now and easier to extent. @file{auc-tex.el} and @file{tex-site.el} was updated to support the new interface. I actually believe the moral equivalent to @code{TeX-region} to work now @t{:-)}, at least I understand the code now. The two major functions are now @code{TeX-command-master} and @code{TeX-command-region}. Each function will prompt you for the command to execute. AUC @TeX{} will make an educated guess on what command you want to run, and make that the default. The available commands are defined in the variable @code{TeX-command-list}. @code{TeX-command-master} will run the specified command on the buffers master file. You can have one command running for each master file. @code{TeX-command-region} will run the specified command on the current region, getting the header on trailer from the master file. You can have exactly one region command running, independent on how many master file commands that are running. Commands that operate on the active process (like @code{TeX-next-error}) will chose the process associated with buffers master file, unless the last region process is more recent than all master file processes. AUC @TeX{} now insist on knowing the master file for a buffer. If you do not specify it in the file variable section, and it is not obviously a master file itself, it will ask you. It will also add the master file name to the file variables, unless you disable this feature by setting @code{TeX-add-local} to nil. Furthermore, it will convert @samp{%% Master:} lines to file variables, unless you disable it by setting @code{TeX-convert-master} to nil. @vindex TeX-convert-master Functionality removed (for now, it might appear again latter) include all other functions to start a command (e.g. @code{LaTeX-BibTeX}), and alternative ways to specify headers and trailers. The only place to get the header and trailer is from the master file (I can easily change that, if anyone have such needs). @item Style specific code isolated. You can now add style specific information to AUC TeX by writing a style file somewhere in TeX-style-path. The main code is now organized around this principle. @item Automatically generate style files. AUC @TeX{} can now automatically extract information from a @TeX{} file, and will do this when you save a buffer. @item Sli@TeX{} mode. Just like @LaTeX{} mode, except that the default command to format run on the buffer is @samp{slitex}. @item @code{LaTeX-section} completely general. Rewrote @file{ltx-sec.el}. @itemize @minus @item Sectioning level, toc, and title queries can be individually turned off. @item Label query can be turned on or off for selected sectioning levels. @item Label prefix can be different for different sectioning levels. @item If the title (or toc) is empty, point will be positioned there. @item Users can add new hooks @end itemize @item @code{TeX-insert-macro} much smarter. It will now prompt for the symbol with completions, and for many symbols it will also prompt for each argument. There are also completion on some of the arguments. @item Fixed center in figure environment. Thanks to Thomas Koenig @samp{}. @item Changed @code{\M-} to @code{\e} in all keybindings in order to better support 8-bit input on some GNU Emacs. Thanks to Peter Dalgaard @samp{}. Please, implementors of 8-bit input extensions to GNU Emacs. @code{\M-x} does @emph{not} means @dfn{@kbd{x} with the 8-bit set}. It means @dfn{pressing @kbd{x} while holding down the @key{meta} key}. Some systems (such as X11) are able to tell the different. Thus, even if you implement 256 byte keymaps, @code{\M-x} should still expand @code{meta-prefix-char} followed by an @kbd{x} in the keymap. This allows you to distinguish pressing @kbd{x} while holding down the @key{meta} key from entering a literal 8-bit character. @item Made the outline commands aware of the document style. That is, if the document style is @samp{article}, @samp{\section} will be one level below the @samp{\documentstyle}, while if the style is @samp{book}, @samp{\section} will be three levels below @samp{\documentstyle}. This will make @code{show-children} work better at the top level. @item The makefiles are closer to GNU coding standard. They now understand `prefix' and some other macros. @item Added hooks to be run after list of environments or list of completion names are updated, and also added a hook to be called after each file has been loaded. Thanks to Piet van Oostrum @samp{}. @item Added @samp{*} to lot of @code{(interactive)} declarations. @item The outline commands are now always accessible from @LaTeX{} mode. @item Generalized the keyboard remapping and double modes. These are found in the file @file{min-key.el}. @item Smart Comments. Not really, but there are now two comment functions which use their arguments to determine what to do, instead of four functions ignoring their arguments. @item Add outline headers. It is now possible to add extra outline headers, by setting the variable @code{TeX-outline-extra}. @item Smart quotes even smarter. If you press @kbd{"} twice, it will insert an real double quote instead of two (or four) single quotes. This is consistent with how remapping in @file{min-key.el} is done. @item Automatically untabify buffer when you save it. Hands up, everyone who have produced a `last revision' paper containing an unreadable list of data in the back, because @TeX{} does not understands tabs. @item Call show-all when you change major mode. Thanks to Inge Frick's @samp{} @file{kill-fix.el} enhancement, outline minor mode can now guarantee that all text is shown when you leave the minor mode, even if you leave the minor mode by changing the major mode. @item Updated documentation for 7.0. Also added key, variable, function, and concept indexes, as well as this history section and a new chapter on multifile documents (@pxref{Multifile}).@refill @end itemize @node Version 6.1 @comment node-name, next, previous, up @section Version 6.1 Coordinator: Per Abrahamsen, 1992. @itemize @bullet @item @code{TeX-region} might work now (heard that before?). Many people reported this one. Especially thanks to Fran Burstall @samp{} and Bill Schworm @samp{}.@refill @item The specification format for the @TeX{} command is more general. See the documentation for @code{LaTeX-command} and @code{plain-TeX-command}. @item The specification format for the preview commands is more general. See their respective documentation. @item The specification format for the print command is more general. See the documentation for @code{TeX-print-command}. @item @code{TeX-args} is marked as obsolete. @item The @samp{"Emergency stop ..."} error. Some users of old @TeX{} installations got might might be fixed now. Thanks to Philip Sterne @samp{}. @item It is now possible to change the preview command. @dots{} without loading TeX-site first. Thanks to Tim Bradshaw @samp{}. @item New variable TeX-smart-quotes. Allow @file{german.sty} users (and others) to disable the mapping of double quote (@kbd{"} to @samp{``} or @samp{''}). Thanks to Daniel Hernandez @samp{}. @item Many minor corrections to the documentation. Thanks to Mainhard E. Mayer @samp{}. @item Make test for @code{HOSTTYPE} case insensitive. Thanks to Gisli Ottarsson @samp{}. @item @code{TeX-force-default-mode} Set to avoid AUC @TeX{}'s attempts to infer the mode of the file by itself. @end itemize @node Version 6.0 @comment node-name, next, previous, up @section Version 6.0 Coordinator: Kresten Krab Thorup, 1992. Preliminary documentation is available in the directory @file{doc}. It isn't very well written, but I believe it covers most interesting points. Comments, suggestions, or even rewrites of sections are VERY WELCOME@dots{} LaCheck has been incorporated in the package. The source code for it is available in the directory @file{lacheck} along with the documentation for it. Lacheck may also be used from the command line. It is bound to @kbd{C-c $}. Some minor changes in: @table @code @item TeX-region Should work better with @samp{Master:} option. @item LaTeX-environment Numerous new hooks added by Masayuki Kuwada. @item TeX-command-on-region Removed. @kbd{C-c C-o} used for @code{outline-minor-mode} instead. @end table And some additional minor fixes... @node Ancient History @comment node-name, next, previous, up @section Ancient History The origin of AUC @TeX{} is @file{tex-mode.el} from Emacs 16. Lars Peter Fischer @samp{} wrote the first functions to insert font macros and Danish characters back in 1986. Per Abrahamsen @samp{} wrote the functions to insert environments and sections, to indent the text, and the outline minor mode in 1987. Kresten Krab Thorup @samp{} wrote the buffer handling and debugging functions, the macro completion, and much more, including much improved indentation and text formatting functions. He also made the first public release in 1991, and was the main author and coordinator of every release up to and including 6.0. Thanks should also go to all the people who have been a great help developing the AUC @TeX{} system. Especially all the people on the @samp{auc-tex} mailing list, who have been very helpful commenting and pointing out weak points and errors. Some of the contributors are listed below. Others are mentioned in the lisp files or in the History section. @table @samp @item Denys Duchier @item George Ferguson @item Martin Simons @item Michael Smith @item Per Hagen @item Ralf Handl @item Sven Mattisson @item Masayuki Kuwada @item Terrence Brannon @item Leonard Roseman @end table Special thanks to Leslie Lamport for supplying the source for the LaTeX error messages in the @file{tex-dbg.el} file. auctex-11.91/doc/install.texi000066400000000000000000000553271313533625700161500ustar00rootroot00000000000000@c This is part of the AUCTeX Manual. @c Copyright (C) 1994, 1996, 2003-2007, 2012 Free Software Foundation, Inc. @c See the file auctex.texi for copying conditions. @ifset rawfile @include macros.texi @node Installation,,(dir),(dir) @top Installing @AUCTeX{} @end ifset @ifclear rawfile @node Installation @chapter Installing @AUCTeX{} @end ifclear The modern and strongly recommended way of installing @AUCTeX{} is by using the Emacs package manager integrated in Emacs 24 and greater (@acronym{ELPA}). Simply do @kbd{M-x list-packages RET}, mark the auctex package for installation with @kbd{i}, and hit @kbd{x} to execute the installation procedure. That's all. This installation procedure has several advantages. Besides being platform and @acronym{OS} independent, you will receive intermediate releases between major @AUCTeX{} releases conveniently. For past @acronym{ELPA} releases, see @url{https://elpa.gnu.org/packages/auctex.html}. @ifclear rawfile Once the installation is completed, you can skip the rest of this section and proceed to @ref{Quick Start}. @end ifclear The remainder of this section is about installing @AUCTeX{} from a release tarball or from a checkout of the @AUCTeX{} repository. Installing @AUCTeX{} should be simple: merely @command{./configure}, @command{make}, and @code{make install} for a standard site-wide installation (most other installations can be done by specifying a @option{--prefix=@dots{}} option). On many systems, this will already activate the package, making its modes the default instead of the built-in modes of Emacs. If this is not the case, consult @ref{Loading the package}. Please read through this document fully before installing anything. The installation procedure has changed as compared to earlier versions. Users of @w{MS Windows} are asked to consult @ifset rawfile the file @file{INSTALL.windows}. @end ifset @ifclear rawfile @xref{Installation under MS Windows}. @end ifclear @ifclear rawfile @menu * Prerequisites:: * Configure:: * Build/install and uninstall:: * Loading the package:: * Advice for package providers:: * Advice for non-privileged users:: * Installation under MS Windows:: * Customizing:: @end menu @end ifclear @ifset rawfile @menu * Prerequisites:: * Configure:: * Build/install and uninstall:: * Loading the package:: * Advice for package providers:: * Advice for non-privileged users:: * Customizing:: @end menu @end ifset @ifset rawfile @node Prerequisites @chapter Prerequisites @raisesections @end ifset @ifclear rawfile @node Prerequisites @section Prerequisites @end ifclear @itemize @bullet @item A recent version of Emacs, alternatively XEmacs @w{Emacs 20} is no longer supported, and neither is XEmacs with a version of @code{xemacs-base} older than 1.84 (released in sumo from 02/02/2004). Using @previewlatex{} requires a version of Emacs compiled with image support. While the X11 version of @w{Emacs 21} will likely work, @w{Emacs 22} and later is preferred. @table @b @item Windows Precompiled versions are available from @uref{ftp://ftp.gnu.org/gnu/emacs/windows/}. @item Mac OS X For an overview of precompiled versions of Emacs for Mac OS X see for example @uref{http://www.emacswiki.org/cgi-bin/wiki/EmacsForMacOS}. @item GNU/Linux Most GNU/Linux distributions nowadays provide a recent variant of Emacs via their package repositories. @item Self-compiled Compiling Emacs yourself requires a C compiler and a number of tools and development libraries. Details are beyond the scope of this manual. Instructions for checking out the source code can be found at @uref{https://savannah.gnu.org/bzr/?group=emacs}. @end table If you really need to use @w{Emacs 21} on platforms where this implies missing image support, you should disable the installation of @previewlatex{} (see below). While XEmacs (version 21.4.15, 21.4.17 or later) is supported, doing this in a satisfactory manner has proven to be difficult. This is mostly due to technical shortcomings and differing API's which are hard to come by. If @AUCTeX{} is your main application for XEmacs, you are likely to get better results and support by switching to Emacs. Of course, you can improve support for your favorite editor by giving feedback in case you encounter bugs. @item A working @TeX{} installation Well, @AUCTeX{} would be pointless without that. Processing documentation requires @TeX{}, @LaTeX{} and Texinfo during installation. @previewlatex{} requires Dvips for its operation in @acronym{DVI} mode. The default configuration of @AUCTeX{} is tailored for te@TeX{} or @TeX{}live-based distributions, but can be adapted easily. @item A recent Ghostscript This is needed for operation of @previewlatex{} in both @acronym{DVI} and @acronym{PDF} mode. Most versions of Ghostscript nowadays in use should work fine (version 7.0 and newer). @item The @code{texinfo} package Strictly speaking, you can get away without it if you are building from the distribution tarball, have not modified any files and don't need a printed version of the manual: the pregenerated info file is included in the tarball. At least @w{version 4.0} is required. @end itemize For some known issues with various software, see @ifset rawfile the @file{PROBLEMS} file. @end ifset @ifclear rawfile @ref{Known problems,,,preview-latex,the @previewlatex{} manual}. @end ifclear @node Configure @section Configure The first step is to configure the source code, telling it where various files will be. To do so, run @example ./configure @var{options} @end example (Note: if you have fetched @AUCTeX{} from @acronym{Git} rather than a regular release, you will have to first follow the instructions in @file{README.GIT}). On many machines, you will not need to specify any options, but if @command{configure} cannot determine something on its own, you'll need to help it out with one of these options: @table @code @item --prefix=@file{/usr/local} All automatic placements for package components will be chosen from sensible existing hierarchies below this: directories like @file{man}, @file{share} and @file{bin} are supposed to be directly below @var{prefix}. Only if no workable placement can be found there, in some cases an alternative search will be made in a prefix deduced from a suitable binary. @file{/usr/local} is the default @var{prefix}, intended to be suitable for a site-wide installation. If you are packaging this as an operating system component for distribution, the setting @file{/usr} will probably be the right choice. If you are planning to install the package as a single non-priviledged user, you will typically set @var{prefix} to your home directory. @item --with-emacs[=@var{/path/to/emacs}] If you are using a pretest which isn't in your @code{$PATH}, or @command{configure} is not finding the right Emacs executable, you can specify it with this option. @item --with-xemacs[=@var{/path/to/xemacs}] Configure for generation under XEmacs (Emacs is the default). Again, the name of the right XEmacs executable can be specified, complete with path if necessary. @item --with-packagedir=@var{/dir} This XEmacs-only option configures the directory for XEmacs packages. A typical user-local setting would be @file{~/.xemacs/xemacs-packages}. If this directory exists and is below @var{prefix}, it should be detected automatically. This will install and activate the package. @item --without-packagedir This XEmacs-only option switches the detection of a package directory and corresponding installation off. Consequently, the Emacs installation scheme will be used. This might be appropriate if you are using a different package system/installer than the XEmacs one and want to avoid conflicts. The Emacs installation scheme has the following options: @item --with-lispdir=@var{/dir} This Emacs-only option specifies the location of the @file{site-lisp} directory within @samp{load-path} under which the files will get installed (the bulk will get installed in a subdirectory). @file{./configure} should figure this out by itself. @item --with-auctexstartfile=@file{auctex.el} @itemx --with-previewstartfile=@file{preview-latex.el} This is the name of the respective startup files. If @var{lispdir} contains a subdirectory @file{site-start.d}, the start files are placed there, and @file{site-start.el} should load them automatically. Please be aware that you must not move the start files after installation since other files are found @emph{relative} to them. @item --with-packagelispdir=@file{auctex} This is the directory where the bulk of the package gets located. The startfile adds this into @var{load-path}. @item --with-auto-dir=@var{/dir} You can use this option to specify the directory containing automatically generated information. It is not necessary for most @TeX{} installs, but may be used if you don't like the directory that configure is suggesting. @item --help This is not an option specific to @AUCTeX{}. A number of standard options to @command{configure} exist, and we do not have the room to describe them here; a short description of each is available, using @code{--help}. If you use @samp{--help=recursive}, then also @previewlatex{}-specific options will get listed. @item --disable-preview This disables configuration and installation of @previewlatex{}. This option is not actually recommended. If your Emacs does not support images, you should really upgrade to a newer version. Distributors should, if possible, refrain from distributing @AUCTeX{} and @previewlatex{} separately in order to avoid confusion and upgrade hassles if users install partial packages on their own. @item --with-texmf-dir=@var{/dir}@*--without-texmf-dir @cindex preview-install-styles This option is used for specifying a @acronym{TDS}-compliant directory hierarchy. Using @code{--with-texmf-dir=@var{/dir}} you can specify where the @TeX{} @acronym{TDS} directory hierarchy resides, and the @TeX{} files will get installed in @file{@var{/dir}/tex/latex/preview/}. If you use the @code{--without-texmf-dir} option, the @TeX{}-related files will be kept in the Emacs Lisp tree, and at runtime the @env{TEXINPUTS} environment variable will be made to point there. You can install those files into your own @TeX{} tree at some later time with @kbd{M-x preview-install-styles RET}. @item --with-tex-dir=@var{/dir} If you want to specify an exact directory for the preview @TeX{} files, use @code{--with-tex-dir=@var{/dir}}. In this case, the files will be placed in @file{@var{/dir}}, and you'll also need the following option: @item --with-doc-dir=@var{/dir} This option may be used to specify where the @TeX{} documentation goes. It is to be used when you are using @code{--with-tex-dir=@var{/dir}}, but is normally not necessary otherwise. @end table @node Build/install and uninstall @section Build/install and uninstall @cindex Installation @cindex Make @cindex Uninstallation Once @command{configure} has been run, simply enter @example make @end example @noindent at the prompt to byte-compile the lisp files, extract the @TeX{} files and build the documentation files. To install the files into the locations chosen earlier, type @example make install @end example @noindent You may need special privileges to install, e.g., if you are installing into system directories. Should you want to completely remove the installed package, in the same directory you built @AUCTeX{} run @example make uninstall @end example @noindent You will need administration privileges if you installed the package into system directories. @node Loading the package @section Loading the package @cindex @file{.emacs} You can detect the successful activation of @AUCTeX{} and @previewlatex{} in the menus after loading a @LaTeX{} file like @file{preview/circ.tex}: @AUCTeX{} then gives you a @samp{Command} menu, and @previewlatex{} gives you a @samp{Preview} menu. For XEmacs, if the installation occured into a valid package directory (which is the default), then this should work out of the box. @cindex @file{auctex.el} @cindex @file{tex-site.el} With Emacs (or if you explicitly disabled use of the package system), the startup files @file{auctex.el} and @file{preview-latex.el} may already be in a directory of the @file{site-start.d/} variety if your Emacs installation provides it. In that case they should be automatically loaded on startup and nothing else needs to be done. If not, they should at least have been placed somewhere in your @code{load-path}. You can then load them by placing the lines @example (load "auctex.el" nil t t) (load "preview-latex.el" nil t t) @end example into your init file. If you explicitly used @code{--with-lispdir}, you may need to add the specified directory into Emacs' @code{load-path} variable by adding something like @example (add-to-list 'load-path "~/elisp") @end example before the above lines into your Emacs startup file. For site-wide activation in GNU Emacs, see @ifset rawfile below. @end ifset @ifclear rawfile @xref{Advice for package providers}. @end ifclear Once activated, the modes provided by @AUCTeX{} are used per default for all supported file types. If you want to change the modes for which it is operative instead of the default, use @example @kbd{M-x customize-variable @key{RET} TeX-modes @key{RET}} @end example If you want to remove a preinstalled @AUCTeX{} completely before any of its modes have been used, @example (unload-feature 'tex-site) @end example should accomplish that. @node Advice for package providers @section Providing @AUCTeX{} as a package As a package provider, you should make sure that your users will be served best according to their intentions, and keep in mind that a system might be used by more than one user, with different preferences. There are people that prefer the built-in Emacs modes for editing @TeX{} files, in particular plain @TeX{} users. There are various ways to tell @AUCTeX{} even after auto-activation that it should not get used, and they are described in @ifset rawfile the @file{README} file. @end ifset @ifclear rawfile @ref{Introduction,,Introduction to @AUCTeX{}}. @end ifclear So if you have users that don't want to use the preinstalled @AUCTeX{}, they can easily get rid of it. Activating @AUCTeX{} by default is therefore a good choice. If the installation procedure did not achieve this already by placing @file{auctex.el} and @file{preview-latex.el} into a possibly existing @file{site-start.d} directory, you can do this by placing @example (load "auctex.el" nil t t) (load "preview-latex.el" nil t t) @end example @noindent in the system-wide @file{site-start.el}. If your package is intended as an XEmacs package or to accompany a precompiled version of Emacs, you might not know which @TeX{} system will be available when @previewlatex{} gets used. In this case you should build using the @code{--without-texmf-dir} option described previously. This can also be convenient for systems that are intended to support more than a single TeX distribution. Since more often than not @TeX{} packages for operating system distributions are either much more outdated or much less complete than separately provided systems like @w{@TeX{} Live}, this method may be generally preferable when providing packages. The following package structure would be adequate for a typical fully supported Unix-like installation: @table @samp @item preview-tetex Style files and documentation for @file{preview.sty}, placed into a @TeX{} tree where it is accessible from the te@TeX{} executables usually delivered with a system. If there are other commonly used @TeX{} system packages, it might be appropriate to provide separate packages for those. @item auctex-emacs-tetex This package will require the installation of @samp{preview-tetex} and will record in @samp{TeX-macro-global} where to find the @TeX{} tree. It is also a good idea to run @example emacs -batch -f TeX-auto-generate-global @end example when either @AUCTeX{} or te@TeX{} get installed or upgraded. If your users might want to work with a different @TeX{} distribution (nowadays pretty common), instead consider the following: @item auctex-emacs This package will be compiled with @samp{--without-texmf-dir} and will consequently contain the @samp{preview} style files in its private directory. It will probably not be possible to initialize @samp{TeX-macro-global} to a sensible value, so running @samp{TeX-auto-generate-global} does not appear useful. This package would neither conflict with nor provide @samp{preview-tetex}. @item auctex-xemacs-tetex @itemx auctex-xemacs Those are the obvious XEmacs equivalents. For XEmacs, there is the additional problem that the XEmacs sumo package tree already possibly provides its own version of @AUCTeX{}, and the user might even have used the XEmacs package manager to updating this package, or even installing a private @AUCTeX{} version. So you should make sure that such a package will not conflict with existing XEmacs packages and will be at an appropriate place in the load order (after site-wide and user-specific locations, but before a distribution-specific sumo package tree). Using the @code{--without-packagedir} option might be one idea to avoid conflicts. Another might be to refrain from providing an XEmacs package and just rely on the user or system administrator to instead use the XEmacs package system. @end table @node Advice for non-privileged users @section Installation for non-privileged users Often people without system administration privileges want to install software for their private use. In that case you need to pass more options to the @command{configure} script. For XEmacs users, this is fairly easy, because the XEmacs package system has been designed to make this sort of thing practical: but GNU Emacs users (and XEmacs users for whom the package system is for some reason misbehaving) may need to do a little more work. The main expedient is using the @option{--prefix} option to the @file{configure} script, and let it point to the personal home directory. In that way, resulting binaries will be installed under the @file{bin} subdirectory of your home directory, manual pages under @file{man} and so on. It is reasonably easy to maintain a bunch of personal software, since the prefix argument is supported by most @file{configure} scripts. You'll have to add something like @file{/home/myself/share/emacs/site-lisp} to your @code{load-path} variable, if it isn't there already. XEmacs users can achieve the same end by pointing @command{configure} at an appropriate package directory (normally @option{--with-packagedir=~/.xemacs/xemacs-packages} will serve). The package directory stands a good chance at being detected automatically as long as it is in a subtree of the specified @var{prefix}. Now here is another thing to ponder: perhaps you want to make it easy for other users to share parts of your personal Emacs configuration. In general, you can do this by writing @samp{~myself/} anywhere where you specify paths to something installed in your personal subdirectories, not merely @samp{~/}, since the latter, when used by other users, will point to non-existent files. For yourself, it will do to manipulate environment variables in your @file{.profile} resp.@: @file{.login} files. But if people will be copying just Elisp files, their copies will not work. While it would in general be preferable if the added components where available from a shell level, too (like when you call the standalone info reader, or try using @file{preview.sty} for functionality besides of Emacs previews), it will be a big help already if things work from inside of Emacs. Here is how to do the various parts: @subheading Making the Elisp available In GNU Emacs, it should be sufficient if people just do @lisp (load "~myself/share/emacs/site-lisp/auctex.el" nil t t) (load "~myself/share/emacs/site-lisp/preview-latex.el" nil t t) @end lisp where the path points to your personal installation. The rest of the package should be found relative from there without further ado. In XEmacs, you should ask the other users to add symbolic links in the subdirectories @file{lisp}, @file{info} and @file{etc} of their @file{~/.xemacs/xemacs-packages/} directory. (Alas, there is presently no easy programmatic way to do this, except to have a script do the symlinking for them.) @subheading Making the Info files available For making the info files accessible from within Elisp, something like the following might be convenient to add into your or other people's startup files: @lisp (eval-after-load 'info '(add-to-list 'Info-directory-list "~myself/info")) @end lisp In XEmacs, as long as XEmacs can see the package, there should be no need to do anything at all; the info files should be immediately visible. However, you might want to set @env{INFOPATH} anyway, for the sake of standalone readers outside of XEmacs. (The info files in XEmacs are normally in @file{~/.xemacs/xemacs-packages/info}.) @subheading Making the @LaTeX{} style available If you want others to be able to share your installation, you should configure it using @samp{--without-texmf-dir}, in which case things should work as well for them as for you. @ifclear rawfile @node Installation under MS Windows @section Installation under MS Windows @include wininstall.texi @end ifclear @node Customizing @section Customizing @cindex Site initialization @cindex Initialization @cindex @file{tex-site.el} @cindex Personal customization @cindex Site customization @cindex Customization @cindex Customization, personal @cindex Customization, site Most of the site-specific customization should already have happened during configuration of @AUCTeX{}. Any further customization can be done with customization buffers directly in Emacs. Just type @kbd{M-x customize-group RET AUCTeX RET} to open the customization group for @AUCTeX{} or use the menu entries provided in the mode menus. Editing the file @file{tex-site.el} as suggested in former versions of @AUCTeX{} should not be done anymore because the installation routine will overwrite those changes. You might check some variables with a special significance. They are accessible directly by typing @kbd{M-x customize-variable RET RET}. @defopt TeX-macro-global Directories containing the site's @TeX{} style files. @end defopt Normally, @AUCTeX{} will only allow you to complete macros and environments which are built-in, specified in @AUCTeX{} style files or defined by yourself. If you issue the @kbd{M-x TeX-auto-generate-global} command after loading @AUCTeX{}, you will be able to complete on all macros available in the standard style files used by your document. To do this, you must set this variable to a list of directories where the standard style files are located. The directories will be searched recursively, so there is no reason to list subdirectories explicitly. Automatic configuration will already have set the variable for you if it could use the program @samp{kpsewhich}. In this case you normally don't have to alter anything. @c Local Variables: @c mode: texinfo @c TeX-master: "auctex" @c End: auctex-11.91/doc/intro.texi000066400000000000000000000076011313533625700156250ustar00rootroot00000000000000@include macros.texi @ifset rawfile @paragraphindent none This is the README file for the AUCTeX distribution. @quotation Copyright (C) 2008 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. @end quotation @chapheading Introduction to @AUCTeX{} @end ifset @ifclear rawfile @node Summary @chapter Overview of @AUCTeX{} @end ifclear @ifset rawfile This file gives a brief overview of what @AUCTeX{} is. It is @strong{not} an attempt to document @AUCTeX{}. Real documentation for @AUCTeX{} is available in the manual, which should be available as an info file after installation. @end ifset @AUCTeX{} is a comprehensive customizable integrated environment for writing input files for @TeX{}, @LaTeX{}, @ConTeXt{}, Texinfo, and doc@TeX{} using Emacs or XEmacs. It supports you in the insertion of macros, environments, and sectioning commands by providing completion alternatives and prompting for parameters. It automatically indents your text as you type it and lets you format a whole file at once. The outlining and folding facilities provide you with a focused and clean view of your text. @AUCTeX{} lets you process your source files by running @TeX{} and related tools (such as output filters, post processors for generating indices and bibliographies, and viewers) from inside Emacs. @AUCTeX{} lets you browse through the errors @TeX{} reported, while it moves the cursor directly to the reported error, and displays some documentation for that particular error. This will even work when the document is spread over several files. One component of @AUCTeX{} that @LaTeX{} users will find attractive is @previewlatex{}, a combination of folding and in-source previewing that provides true ``What You See Is What You Get'' experience in your sourcebuffer, while letting you retain full control. @ifset rawfile For more information, see further below. @end ifset More detailed information about the features and usage of @AUCTeX{} can be found in the @ifset rawfile @AUCTeX{} manual. You can access it from within Emacs by typing @kbd{C-h i d m auctex @key{RET}}. If you prefer the standalone info reader, issue the command @code{info auctex} in a terminal. @end ifset @ifclear rawfile remainder of this manual. @end ifclear @AUCTeX{} is written entirely in Emacs Lisp, and hence you can easily add new features for your own needs. It is a GNU project and distributed under the `GNU General Public License Version 3'. The most recent version is always available at @url{http://ftp.gnu.org/pub/gnu/auctex/}. WWW users may want to check out the @AUCTeX{} page at @url{http://www.gnu.org/software/auctex/}. For comprehensive information about how to install @AUCTeX{} @ifset rawfile read the file @file{INSTALL} or @file{INSTALL.windows}, respectively. @end ifset @ifclear rawfile @xref{Installation}, or @ref{Installation under MS Windows}, respectively. @end ifclear If you are considering upgrading @AUCTeX{}, the recent changes are described in @ifset rawfile the @file{CHANGES} file. @end ifset @ifclear rawfile @ref{Changes}. @end ifclear If you want to discuss @AUCTeX{} with other users or its developers, there are several mailing lists you can use. Send a mail with the subject ``subscribe'' to @email{auctex-request@@gnu.org} in order to join the general discussion list for @AUCTeX{}. Articles should be sent to @email{auctex@@gnu.org}. In a similar way, you can subscribe to the @email{info-auctex@@gnu.org} list for just getting important announcements about @AUCTeX{}. The list @email{bug-auctex@@gnu.org} is for bug reports which you should usually file with the @kbd{M-x TeX-submit-bug-report @key{RET}} command. If you want to address the developers of @AUCTeX{} themselves with technical issues, they can be found on the discussion list @email{auctex-devel@@gnu.org}. auctex-11.91/doc/macros.texi000066400000000000000000000035361313533625700157610ustar00rootroot00000000000000@ifclear macros @set macros @ifnottex @macro AUCTeX {} AUC@TeX{} @end macro @macro ConTeXt {} Con@TeX{}t @end macro @macro previewlatex {} preview-latex @end macro @macro fontlatex {} font-latex @end macro @ifset no-acronym @clear no-acronym @macro acronym {text} @sc{\text\} @end macro @end ifset @ifset no-env @clear no-env @macro env {text} @code{\text\} @end macro @end ifset @ifset no-option @clear no-option @macro option {text} @samp{\text\} @end macro @end ifset @ifset no-command @clear no-command @macro command {text} @samp{\text\} @end macro @end ifset @end ifnottex @ifset no-sansserif @macro sansserif {text}@c @iftex {@textsf \text\}@c @end iftex @ifnottex \text\@c @end ifnottex @end macro @end ifset @tex \global\let\savedTeX\TeX \gdef\TeX#1{\savedTeX#1} \gdef\LaTeX{% L\kern-.36em\raise.3ex\hbox{\sc{a}}\kern-.15em\TeX} \gdef\previewlatex#1{% {\sf preview-latex}#1} \gdef\fontlatex#1{% {\sf font-latex}#1} \gdef\AUCTeX{AUC\TeX} \gdef\ConTeXt#1{% Con\TeX t#1} \toks0\expandafter{\indexnofonts \def\TeX#1{TeX#1}% \def\LaTeX#1{LaTeX#1}\def\previewlatex#1{preview-latex#1}} \xdef\indexnofonts{\the\toks0} \ifx\commondummies\undefined \else \toks0\expandafter{\commondummies \def\TeX#1{TeX#1}% \def\LaTeX#1{LaTeX#1}\def\previewlatex#1{preview-latex#1}} \xdef\commondummies{\the\toks0} \fi \ifx\definedummies\undefined \else \toks0\expandafter{\definedummies \def\TeX#1{TeX#1}% \def\LaTeX#1{LaTeX#1}\def\previewlatex#1{preview-latex#1}} \xdef\definedummies{\the\toks0} \fi \ifx\acronym\undefined \gdef\acronym#1{{\smallcaps \lowercase{#1}}} \fi \ifx\env\undefined \global\let\env=\code \fi \ifx\option\undefined \global\let\option=\samp \fi \ifx\command\undefined \global\let\command=\samp \fi %Bug fix for texinfo.tex: \gdef\cslet#1#2{% \expandafter\let \csname#1\expandafter\endcsname \csname#2\endcsname} @end tex @end ifclear auctex-11.91/doc/preview-dtxdoc.pl000077500000000000000000000105621313533625700171030ustar00rootroot00000000000000#!/usr/bin/perl # Autoconverter from preview.dtx to preview-dtxdoc.texi # Author: Jan-ke Larsson # Maintainer: auctex-devel@gnu.org # Copyright (C) 2002, 2005 Free Software Foundation, Inc. # This file is part of AUCTeX. # AUCTeX is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # AUCTeX is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # You should have received a copy of the GNU General Public License # along with AUCTeX; see the file COPYING. If not, write to the Free # Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, # MA 02110-1301, USA. # Commentary: # Simpleminded autoconverter from preview.dtx to preview-dtxdoc.texi # run as 'perl preview-dtxdoc.pl ../latex/preview.dtx preview-dtxdoc.texi' die "Usage: perl preview-dtxdoc.pl infile outfile" unless ($#ARGV == 1); open(STDIN, $ARGV[0]) || die "Can't open $ARGV[0] for reading"; open(STDOUT, "> $ARGV[1]") || die "Can't open $ARGV[1] for writing"; # Eat header MUNGE: while () { last MUNGE if /^% *.section/; } # Fish out possible CR characters. /(\r*)$/; $cr = $1; # Noindent is used sometimes after \end{quote} (see below) $noindent=""; # Quote environments is translated into @example _without_ # @code{..} inside (see below) $quote=""; MAIN: while () { s/^%//; s/\\%/%/g; # Text-substitution macros s/\@/\@\@/g; s/\\#/#/g; s/AUC~?\\TeX[\\ ]?/\@AUCTeX{}/g; s/\\LaTeX[\\ ]?/\@LaTeX{}/g; s/\\TeX[\\ ]?/\@TeX{}/g; s/\\previewlatex[\\ ]?/\@previewlatex{}/g; s/EPS/\@acronym{EPS}/g; s/DVI/\@acronym{DVI}/g; s/~/\@w{ }/g; s/^ *//; # Environments if (s/\\begin\{quote\}/$cr\n\@example/) { $quote="yes" } if (/^\w/) { print $noindent } $noindent = ""; if (s/\\end\{quote\}/\@end example$cr\n/) { $quote=""; $noindent="\@noindent$cr\n" } s/\\begin\{description\}/$cr\n\@table \@w/; # Convoluted pattern: handle # \item[|...|], \item[\meta{..}] and \item[{|[]|}] s/\\item\[\{?(.+?[\|\}])\}?\] ?/\@item $1$cr\n/; s/\\end\{description\}/\@end table$cr\n/; s/\\begin\{enumerate\}/$cr\n\@enumerate/; s/\\item /\@item /; s/\\end\{enumerate\}/\@end enumerate$cr\n/; # Formatting (\cmd is special within {quote}) s/\\texttt/\@option/g; s/\\marg\{([^}]+)\}/\@{\@var{$1}\@}/g; s/\\meta/\@var/g; s/\\emph/\@emph/g; s/\\cmd(\\[\(\)\w]+)/|$1|/g; s/\\cmd\{(.*?)\}/|$1|/g; s/\\oarg\{([^}]+?)\}/\[\@var{$1}\]/g; s/\\char.//g; s/\\raggedright$cr\n//g; s/\\DescribeEnv\{(.*?)\} /\@item \\begin\@{$1\@}\@dots{}\\end\@{$1\@}$cr\n/; if (s/\\DescribeMacro\{(.*?)\}( |$cr\n)/\@item $1$cr\n/) { # Index entries for two important macros if (/(\\Preview(Macro|Environment))( |$cr\n)/) { $_ .= "\@findex $1$cr\n"; } } # ||||||| Hell... I hate bars # Braces WITHIN bars should be escaped like so: @{ @} # and |..| translates to @code{..} or @file{..} depending on content # and to .. if in {quote} @chunks = split /\|/; $odd=0; COMMAND: foreach (@chunks) { if ($odd==0) { $odd=1; } else { s/\{/\@\{/g; s/\}/\@\}/g; if (! $quote) { if (/[.\/]/) { $_="\@file\{".$_."\}"; } else { $_="\@code\{".$_."\}"; } } $odd=0; } } $_=join("",@chunks); # Argh! mixed types occurs in @code{...}@var{..}@file{..} # Should be @file{...@var{..}..} s/\@code(\S*?)\}(\S*)\@file\{/\@file$1$2/g; # Texinfo @node-ification if (s/\\section\{(.*)\}/\@subsection $1/) { if (s/[Oo]ptions/options/) { $_="\@menu$cr\n" . "* Package options::$cr\n" . "* Provided commands::$cr\n" . "\@end menu$cr\n$cr\n" . "\@node Package options, Provided commands, The LaTeX style file, The LaTeX style file$cr\n" . $_; } elsif (s/[Cc]ommands/commands/) { # \Describe... needs @table $_= "\@node Provided commands, ,Package options, The LaTeX style file$cr\n" . $_ . "$cr\n\@table \@code$cr\n"; } } # Stop here # \Describe.... needs @end table if (/^.StopEventually/) { print "\@end table$cr\n"; last MAIN; } print $_; } auctex-11.91/doc/preview-faq.texi000066400000000000000000000321701313533625700167170ustar00rootroot00000000000000@c This is part of the preview-latex manual. @c Copyright (C) 2002, 2003, 2004, 2005, 2006, 2009 Free Software @c Foundation, Inc. @c See file preview-latex.texi for copying conditions. @ifset rawfile @include macros.texi @node Frequently Asked Questions, Introduction to FAQ, (dir), (dir) @top Frequently Asked Questions about @previewlatex{} @contents @end ifset @menu * Introduction to FAQ:: * Requirements:: * Installation Trouble:: * Customization:: * Troubleshooting:: * Other formats:: @end menu @comment we need at least one chapter, or the numbers disappear in the @comment plain version of the FAQ. @ifset rawfile @node Introduction to FAQ, Requirements, Frequently Asked Questions, Frequently Asked Questions @chapter Introduction @raisesections @end ifset @ifclear rawfile @node Introduction to FAQ, Requirements, Frequently Asked Questions, Frequently Asked Questions @section Introduction @end ifclear @subsection How can I contribute to the FAQ? Send an email with the subject: @example Preview FAQ @end example to @email{auctex-devel@@gnu.org}. @node Requirements, Installation Trouble, Introduction to FAQ, Frequently Asked Questions @section Requirements @subsection Which version of (X)Emacs is needed? See also the table at the end of the section. @previewlatex{} nominally requires @w{GNU Emacs} with a version of at least 21.1. However, @w{Emacs 22} (currently under development) offers superior performance and wider platform support, and is even now the recommended platform to use. While recent versions of @w{XEmacs 21.4} are supported, doing this in a satisfactory manner has proven to be difficult due to technical shortcomings and differing API's which are hard to come by. If @previewlatex{} is an important part of your editing workflow, you are likely to get better results and support by switching to Emacs. Of course, you can improve support for your favorite editor by giving feedback in case you encounter bugs. @subsection Which versions of Ghostscript and @AUCTeX{} are needed? We recommend to use GNU or AFPL Ghostscript with a version of at least 7.07. @previewlatex{} has been distributed as part of @AUCTeX{} since version 11.80. If your version of @AUCTeX{} is older than that, or if it does not contain a working copy of @previewlatex{}, complain to wherever you got it from. @subsection I have trouble with the display format... We recommend keeping the variable @code{preview-image-type} set to @code{dvipng} (if you have it installed) or @code{png}. This is the default and can be set via the Preview/Customize menu. All other formats are known to have inconveniences, either in file size or quality. There are some Emacs versions around not supporting @acronym{PNG}; the proper way to deal with that is to complain to your Emacs provider. Short of that, checking out @acronym{PNM} or @acronym{JPEG} formats might be a good way to find out whether the lack of @acronym{PNG} format support might be the only problem with your Emacs. @subsection For which OS does preview work? It is known to work under the X Window System for Linux and for several flavors of Unix: we have reports for HP and Solaris. There are several development versions of Emacs around for native MacOS Carbon, and @previewlatex{} is working with them, too. With Windows, Cygwin and native ports of XEmacs should work. @previewlatex{} will not work with any native version 21 of Emacs under Windows: you need to get a hold of @w{Emacs 22} which is at the time of this writing not released but available as a developer snapshot. The entry "X11/Unix" currently means Linux, Solaris or HP/UX, as well as the X-specific version for Mac/OSX. @multitable {Win9x native} {Emacs version} {XEmacs version} @item OS @tab Emacs version @tab XEmacs version @item X11/Unix @tab 21.1 @tab 21.4.9 @item Win9x cygwin @tab 21.3.50? @tab 21.4.8 @item Win9x native @tab 22.1 @tab 21.4.8 @item MacOSX native @tab 22.1 @tab -- @end multitable @node Installation Trouble, Customization, Requirements, Frequently Asked Questions @section Installation Trouble @subsection I just get @samp{LaTeX found no preview images}. The reason for this is that @LaTeX{} found no preview images in the document in question. One reason might be that there are no previews to be seen. If you have not used @previewlatex{} before, you might not know its manner of operation. One sure-fire way to test if you just have a document where no previews are to be found is to use the provided example document @file{circ.tex} (you will have to copy it to some directory where you have write permissions). If the symptom persists, you have a problem, and the problem is most likely a @LaTeX{} problem. Here are possible reasons: @table @asis @item Filename database not updated Various @TeX{} distributions have their own ways of knowing where the files are without actually searching directories. The normal @previewlatex{} installation should detect common tools for that purpose and use them. If this goes wrong, or if the files get installed into a place where they are not looked for, the @LaTeX{} run will fail. @item An incomplete manual installation This should not happen if you followed installation instructions. Unfortunately, people know better all the time. If only @file{preview.sty} gets installed without a set of supplementary files also in the @file{latex} subdirectory, @previewlatex{} runs will not generate any errors, but they will not produce any previews, either. @item An outdated @file{preview} installation The @file{preview.sty} package is useful for more than just @previewlatex{}. For example, it is part of @TeX{}live. So you have to make sure that @previewlatex{} does not get to work with outdated style and configuration files: some newer features will not work with older @TeX{} style files, and really old files will make @previewlatex{} fail completely. There usual is a local @file{texmf} tree, or even a user-specific tree that are searched before the default tree. Make sure that the first version of those files that gets found is the correct one. @end table @subsection I have problems with the XEmacs installation Please note that the XEmacs installation is different, since XEmacs has a package system that gets used here. Please make sure that you read and follow the installation instructions for XEmacs. @node Customization, Troubleshooting, Installation Trouble, Frequently Asked Questions @section Customization @subsection Why don't I get balloon help like in the screen shots? Some users have reported problems with their XEmacs version, so balloon help is no longer switched on by default. Use the Preview/Customize menu or @kbd{@key{M-x} customize-variable} in order to customize @code{preview-use-balloon-help} to `On'. This only concerns XEmacs: tooltips under @w{GNU Emacs} are enabled by default and unproblematic. @subsection How to include additional environments like @code{enumerate} By default, @previewlatex{} is intended mainly for displaying mathematical formulas, so environments like @code{enumerate} or @code{tabular} (except where contained in a float) are not included. You can include them however manually by adding the lines: @example \usepackage[displaymath,textmath,sections,graphics,floats]@{preview@} \PreviewEnvironment@{enumerate@} @end example in your document header, that is before @example \begin@{document@} @end example @noindent In general, @file{preview} should be loaded as the last thing before the start of document. Be aware that @example \PreviewEnvironment@{...@} @end example does not accept a comma separated list! Also note that by putting more and more @example \PreviewEnvironment@{...@} @end example in your document, it will look more and more like a @acronym{DVI} file preview when running @previewlatex{}. Since each preview is treated as one large monolithic block by Emacs, one should really restrict previews to those elements where the improvement in visual representation more than makes up for the decreased editability. @subsection What if I don't want to change the document? The easiest way is to generate a configuration file in the current directory. You can basically either create @file{prdefault.cfg} which is used for any use of the @samp{preview} package, or you can use @file{prauctex.cfg} which only applies to the use from with Emacs. Let us assume you use the latter. In that case you should write something like @example \InputIfFileExists@{preview/prauctex.cfg@}@{@}@{@} \PreviewEnvironment@{enumerate@} @end example in it. The first line inputs the system-wide default configuration (the file name should match that, but not your own @file{prauctex.cfg}), then you add your own stuff. @subsection Suddenly I get gazillions of ridiculous pages?!? When @previewlatex{} works on extracting its stuff, it typesets each single preview on a page of its own. This only happens when actual previews get generated. Now if you want to configure @previewlatex{} in your document, you need to add your own @code{\usepackage} call to @samp{preview} so that it will be able to interpret its various definition commands. It is an error to add the @code{active} option to this invocation: you don't want the package to be active unless @previewlatex{} itself enables the previewing operation (which it will). @subsection Does @previewlatex{} work with presentation classes? @previewlatex{} should work with most presentation classes. However, since those classes often have macros or pseudo environments encompassing a complete slide, you will need to use the customization facilities of @file{preview.sty} to tell it how to resolve this, whether you want no previews, previews of whole slides or previews of inner material. @node Troubleshooting, Other formats, Customization, Frequently Asked Questions @section Troubleshooting @subsection Preview causes all sort of strange error messages When running @previewlatex{} and taking a look at either log file or terminal output, lots of messages like @example ! Preview: Snippet 3 started. <-><-> l.52 \item Sie lassen sich als Funktion $ y = f(x)$ darstellen. ! Preview: Snippet 3 ended.(491520+163840x2494310). <-><-> l.52 \item Sie lassen sich als Funktion $y = f(x)$ darstellen. @end example appear (previous versions generated messages looking even more like errors). Those are not real errors (as will be noted in the log file). Or rather, while they @strong{are} really @TeX{} error messages, they are intentional. This currently is the only reliable way to pass the information from the @LaTeX{} run of @previewlatex{} to its Emacs part about where the previews originated in the source text. Since they are actual errors, you will also get @AUCTeX{} to state @example Preview-LaTeX exited as expected with code 1 at Wed Sep 4 17:03:30 @end example after the @LaTeX{} run in the run buffer. This merely indicates that errors were present, and errors will always be present when @previewlatex{} is operating. There might be also real errors, so in case of doubt, look for them explicitly in either run buffer or the resulting @file{.log} file. @subsection Why do my @acronym{DVI} and @acronym{PDF} output files vanish? In order to produce the preview images @previewlatex{} runs @LaTeX{} on the master or region file. The resulting @acronym{DVI} or @acronym{PDF} file can happen to have the same name as the output file of a regular @LaTeX{} run. So the regular output file gets overwritten and is subsequently deleted by @previewlatex{}. @subsection My output file suddenly only contains preview images?! As mentioned in the previews @acronym{FAQ} entry, @previewlatex{} might use the file name of the original output file for the creation of preview images. If the original output file is being displayed with a viewer when this happens, you might see strange effects depending on the viewer, e.g. a message about the file being corrupted or the display of all the preview images instead of your typeset document. (Also @xref{Customization}.) @node Other formats, , Troubleshooting, Frequently Asked Questions @section @previewlatex{} when not using @LaTeX{} @subsection Does @previewlatex{} work with PDF@LaTeX{}? Yes, as long as you use @AUCTeX{}'s own PDF@LaTeX{} mode and have not messed with @samp{TeX-command-list}. @subsection Does @previewlatex{} work with @samp{elatex}? No problem here. If you configure your @AUCTeX{} to use @samp{elatex}, or simply have @samp{latex} point to @samp{elatex}, this will work fine. Modern @TeX{} distributions use e@TeX{} for @LaTeX{}, anyway. @subsection Does @previewlatex{} work with @ConTeXt{}? In short, no. The @samp{preview} package is @LaTeX{}-dependent. Adding support for other formats requires volunteers. @subsection Does @previewlatex{} work with plain TeX? Again, no. Restructuring the @samp{preview} package for @samp{plain} operation would be required. Volunteers welcome. In some cases you might get around by making a wrapper pseudo-Master file looking like the following: @example \documentclass@{article@} \usepackage@{plain@} \begin@{document@} \begin@{plain@} \input myplainfile \end@{plain@} \end@{document@} @end example auctex-11.91/doc/preview-latex.texi000066400000000000000000001053051313533625700172660ustar00rootroot00000000000000\input texinfo @comment %**start of header @setfilename preview-latex.info @include version.texi @settitle preview-latex @value{VERSION} @comment %**end of header @include macros.texi @copying This manual is for preview-latex, a @LaTeX{} preview mode for @AUCTeX{} (version @value{VERSION} from @value{UPDATED}). Copyright @copyright{} 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts and no Back-Cover Texts. A copy of the license is included in the section entitled ``GNU Free Documentation License.'' @end quotation @end copying @dircategory Emacs @direntry * preview-latex: (preview-latex). Preview LaTeX fragments in Emacs @end direntry @dircategory TeX @direntry * preview-latex: (preview-latex). Preview LaTeX fragments in Emacs @end direntry @c footnotestyle separate @c paragraphindent 2 @syncodeindex vr cp @syncodeindex ky cp @syncodeindex fn cp @iftex @tolerance 10000 @emergencystretch 3em @end iftex @finalout @titlepage @title @previewlatex{} @subtitle A @LaTeX{} preview mode for @AUCTeX{} in Emacs. @subtitle Version @value{VERSION}, @value{UPDATED} @author Jan-@AA{}ke Larsson @author David Kastrup and others @page @vskip 0pt plus 1filll @insertcopying @end titlepage @c @summarycontents @contents @c Use @ifinfo _and_ @ifhtml here because Texinfo 3 cannot cope with @c @ifnottex around a top node. @ifinfo @node top, , (dir), (dir) @top @previewlatex{} This manual may be copied under the conditions spelled out in @ref{Copying this Manual}. @end ifinfo @ifhtml @node top, Copying, (dir), (dir) @top @previewlatex{} @insertcopying @end ifhtml @contents @iftex @unnumbered @previewlatex{} @end iftex @previewlatex{} is a package embedding preview fragments into Emacs source buffers under the @AUCTeX{} editing environment for @LaTeX{}. It uses @file{preview.sty} for the extraction of certain environments (most notably displayed formulas). Other applications of this style file are possible and exist. The name of the package is really @samp{preview-latex}, all in lowercase letters, with a hyphen. If you typeset it, you can use a sans-serif font to visually offset it. @menu * Copying:: Copying * Introduction:: Getting started. * Installation:: Make Install. * Keys and lisp:: Key bindings and user-level lisp functions. * Simple customization:: To make it fit in. * Known problems:: When things go wrong. * For advanced users:: Internals and more customizations. * ToDo:: Future development. * Frequently Asked Questions:: All about @previewlatex{} * Copying this Manual:: GNU Free Documentation License * Index:: A menu of many topics. @end menu @node Copying, Introduction, top, top @unnumbered Copying @cindex Copying @cindex Copyright @cindex GPL @cindex General Public License @cindex License @cindex Free @cindex Free software @cindex Distribution @cindex Right @cindex Warranty For the conditions for copying parts of @previewlatex{}, see the General Public Licenses referres to in the copyright notices of the files, the General Public Licenses accompanying them and the explanatory section in @ref{Copying,,,auctex,the @AUCTeX{} manual}. This manual specifically is covered by the GNU Free Documentation License (@pxref{Copying this Manual}). @node Introduction, Installation, Copying, top @c Used as @file{README} as well: in separate file @chapter Introduction @include preview-readme.texi @node Installation, Keys and lisp, Introduction, top @chapter Installation Installation is now being covered in @ref{Installation,,,auctex,the @AUCTeX{} manual}. @node Keys and lisp, Simple customization, Installation, top @chapter Key bindings and user-level lisp functions @cindex Menu entries @previewlatex{} adds key bindings starting with @kbd{C-c C-p} to the supported modes of @AUCTeX{} (@inforef{Key Index,,auctex}). It will also add its own @samp{Preview} menu in the menu bar, as well as an icon in the toolbar. The following only describes the interactive use: view the documentation strings with @kbd{C-h f} if you need the Lisp information. @table @w @item @kbd{C-c C-p C-p} @itemx @code{preview-at-point} @itemx Preview/Generate previews (or toggle) at point If the cursor is positioned on or inside of a preview area, this toggles its visibility, regenerating the preview if necessary. If not, it will run the surroundings through preview. The surroundings include all areas up to the next valid preview, unless invalid previews occur before, in which case the area will include the last such preview in either direction. And overriding any other action, if a region is active (@code{transient-mark-mode} or @code{zmacs-regions}), it is run through @code{preview-region}. @kindex @kbd{C-c C-p C-p} @findex preview-at-point @item @kbd{} The middle mouse button has a similar action bound to it as @code{preview-at-point}, only that it knows which preview to apply it to according to the position of the click. You can click either anywhere on a previewed image, or when the preview is opened and showing the source text, you can click on the icon preceding the source text. In other areas, the usual mouse key action (typically: paste) is not affected. @item @kbd{} The right mouse key pops up a context menu with several options: toggling the preview, regenerating it, removing it (leaving the unpreviewed text), copying the text inside of the preview, and copying it in a form suitable for copying as an image into a mail or news article. This is a one-image variant of the following command: @item @kbd{C-c C-p C-w} @itemx @code{preview-copy-region-as-mml} @itemx Copy a region as MML @kindex @kbd{C-c C-p C-w} @findex preview-copy-region-as-mml This command is also available as a variant in the context menu on the right mouse button (where the region is the preview that has been clicked on). It copies the current region into the kill buffer in a form suitable for copying as a text including images into a mail or news article using mml-mode (@pxref{Composing,,Composing,emacs-mime,Emacs MIME}). If you regenerate or otherwise kill the preview in its source buffer before the mail or news gets posted, this will fail. Also you should generate images you want to send with @code{preview-transparent-border} @vindex preview-transparent-border set to @code{nil}, or the images will have an ugly border. @previewlatex{} detects this condition and asks whether to regenerate the region with borders switched off. As this is an asynchronous operation running in the background, you'll need to call this command explicitly again to get the newly generated images into the kill ring. Preview your articles with @code{mml-preview} (on @kbd{M-m P}, or @kbd{C-c C-m P} in @w{Emacs 22}) @kindex @kbd{M-m P} @kindex @kbd{C-c C-m P} to make sure they look fine. @item @kbd{C-c C-p C-e} @itemx @code{preview-environment} @itemx Preview/Generate previews for environment Run preview on @LaTeX{} environment. The environments in @code{preview-inner-environments} are treated as inner levels so that for instance, the @code{split} environment in @code{\begin@{equation@}\begin@{split@}@dots{}\end@{split@}\end@{equation@}} is properly displayed. If called with a numeric argument, the corresponding number of outward nested environments is treated as inner levels. @kindex @kbd{C-c C-p C-e} @findex preview-environment @item @kbd{C-c C-p C-s} @itemx @code{preview-section} @itemx Preview/Generate previews for section Run preview on this @LaTeX{} section. @kindex @kbd{C-c C-p C-s} @findex preview-section @item @kbd{C-c C-p C-r} @itemx @code{preview-region} @itemx Preview/Generate previews for region Run preview on current region. @kindex @kbd{C-c C-p C-r} @findex preview-region @item @kbd{C-c C-p C-b} @itemx @code{preview-buffer} @itemx Preview/Generate previews for buffer Run preview on the current buffer. @kindex @kbd{C-c C-p C-b} @findex preview-buffer @item @kbd{C-c C-p C-d} @itemx @code{preview-document} @itemx Preview/Generate previews for document Run preview on the current document. @kindex @kbd{C-c C-p C-d} @findex preview-document @item @kbd{C-c C-p C-c C-p} @itemx @code{preview-clearout-at-point} @itemx Preview/Remove previews at point @kindex @kbd{C-c C-p C-c C-p} @findex preview-clearout-at-point Clear out (remove) the previews that are immediately adjacent to point. @item @kbd{C-c C-p C-c C-s} @itemx @code{preview-clearout-section} @itemx Preview/Remove previews from section @kindex @kbd{C-c C-p C-c C-s} @findex preview-clearout-document Clear out all previews in current section. @item @kbd{C-c C-p C-c C-r} @itemx @code{preview-clearout} @itemx Preview/Remove previews from region @kindex @kbd{C-c C-p C-c C-r} @findex preview-clearout Clear out all previews in the current region. @item @kbd{C-c C-p C-c C-b} @itemx @code{preview-clearout-buffer} @itemx Preview/Remove previews from buffer @kindex @kbd{C-c C-p C-c C-b} @findex preview-clearout-buffer Clear out all previews in current buffer. This makes the current buffer lose all previews. @item @kbd{C-c C-p C-c C-d} @itemx @code{preview-clearout-document} @itemx Preview/Remove previews from document @kindex @kbd{C-c C-p C-c C-d} @findex preview-clearout-document Clear out all previews in current document. The document consists of all buffers that have the same master file as the current buffer. This makes the current document lose all previews. @item @kbd{C-c C-p C-f} @itemx @code{preview-cache-preamble} @itemx Preview/Turn preamble cache on @kindex @kbd{C-c C-p C-f} @findex preview-cache-preamble Dump a pregenerated format file. For the rest of the session, this file is used when running on the same master file. Use this if you know your @LaTeX{} takes a long time to start up, the speedup will be most noticeable when generating single or few previews. If you change your preamble, do this again. @previewlatex{} will try to detect the necessity of that automatically when editing changes to the preamble are done from within Emacs, but it will not notice if the preamble effectively changes because some included file or style file is tampered with. @item @kbd{C-c C-p C-c C-f} @itemx @code{preview-cache-preamble-off} @itemx Preview/Turn preamble cache off @kindex @kbd{C-u C-c C-p C-f} @findex preview-cache-preamble-off Clear the pregenerated format file and stop using preambles for the current document. If the caching gives you problems, use this. @item @kbd{C-c C-p C-i} @itemx @code{preview-goto-info-page} @itemx Preview/Read Documentation @kindex @kbd{C-c C-p C-i} @findex preview-goto-info-page Read @ifinfo this @end ifinfo @ifnotinfo the @end ifnotinfo info manual. @item @kbd{M-x preview-report-bug @key{RET}} @itemx @code{preview-report-bug} @itemx Preview/Report Bug @kindex @kbd{M-x preview-report-bug @key{RET}} @findex preview-report-bug @cindex Report a bug This is the preferred way of reporting bugs as it will fill in what version of @previewlatex{} you are using as well as versions of relevant other software, and also some of the more important settings. Please use this method of reporting, if at all possible and before reporting a bug, have a look at @ref{Known problems}. @item @kbd{C-c C-k} @itemx LaTeX/TeX Output/Kill Job @kindex @kbd{C-c C-k} @cindex Kill preview-generating process Kills the preview-generating process. This is really an @AUCTeX{} keybinding, but it is included here as a hint. If you are generating a preview and then make a change to the buffer, @previewlatex{} may be confused and place the previews wrong. @end table @node Simple customization, Known problems, Keys and lisp, top @chapter Simple customization Customization options can be found by typing @kbd{M-x customize-group @key{RET} preview @key{RET}}. Remember to set the option when you have changed it. The list of suggestions can be made very long (and is covered in detail in @ref{For advanced users}), but some are: @itemize @bullet @item Change the color of the preview background If you use a non-white background in Emacs, you might have color artifacts at the edges of your previews. Playing around with the option @code{preview-transparent-color} in the @code{Preview Appearance} group might improve things. With some settings, the cursor may cover the whole background of a preview, however. This option is specific to the display engine in use. Its default is different in @w{Emacs 21} and @w{Emacs 22}, and it is not available in XEmacs. @item Showing @code{\label}s @cindex Showing @code{\label}s When using @previewlatex{}, the @code{\label}s are hidden by the previews. It is possible to make them visible in the output by using the @LaTeX{} package @code{showkeys} alternatively @code{showlabels}. However, the boxes of these labels will be outside the region @previewlatex{} considers as the preview image. To enable a similar mechanism internal to @previewlatex{}, enable the @code{showlabels} option in the variable @code{preview-default-option-list} in the @code{Preview Latex} group. It must be noted, however, that a much better idea may be to use the Ref@TeX{} package for managing references. @xref{RefTeX in a Nutshell,,RefTeX in a Nutshell,reftex,The Ref@TeX{} Manual}. @item Open previews automatically The current default is to open previews automatically when you enter them with cursor left/right motions. Auto-opened previews will close again once the cursor leaves them again (this is also done when doing incremental search, or query-replace operations), unless you changed anything in it. In that case, you will have to regenerate the preview (via e.g., @kbd{C-c C-p C-p}). Other options for @code{preview-auto-reveal} are available via @code{customize}. @item Automatically cache preambles Currently @previewlatex{} asks you whether you want to cache the document preamble (everything before @code{\begin@{document@}}) before it generates previews for a buffer the first time. Caching the preamble will significantly speed up regeneration of previews. The larger your preamble is, the more this will be apparent. Once a preamble is cached, @previewlatex{} will try to keep track of when it is changed, and dump a fresh format in that case. If you experience problems with this, or if you want it to happen without asking you the first time, you can customize the variable @code{preview-auto-cache-preamble}. @vindex preview-auto-cache-preamble @cindex Caching a preamble @item Attempt to keep counters accurate when editing @vindex preview-preserve-counters @vindex preview-required-option-list Since @previewlatex{} frequently runs only small regions through @LaTeX{}, values like equation counters are not consistent from run to run. If this bothers you, customize the variable @code{preview-preserve-counters} to @code{t} (this is consulted by @code{preview-required-option-list}). @LaTeX{} will then output a load of counter information during compilation, and this information will be used on subsequent updates to keep counters set to useful values. The additional information takes additional time to analyze, but this is relevant mostly only when you are regenerating all previews at once, and maybe you will be less tempted to do so when counters appear more or less correct. @item Preview your favourite @LaTeX{} constructs If you have a certain macro or environment that you want to preview, first check if it can be chosen by cutomizing @code{preview-default-options-list} in the @code{Preview Latex} group. If it is not available there, you can add it to @code{preview-default-preamble} also in the @code{Preview Latex} group, by adding a @code{\PreviewMacro} or @code{\PreviewEnvironment} entry (@pxref{Provided commands}) @emph{after} the @code{\RequirePackage} line. For example, if you want to preview the @code{center} environment, press the @key{Show} button and the last @key{INS} button, then add @example \PreviewEnvironment@{center@} @end example @noindent in the space that just opened. Note that since @code{center} is a generic formatting construct of @LaTeX{}, a general configuration like that is not quite prudent. You better to do this on a per-document base so that it is easy to disable this behavior when you find this particular entry gives you trouble. One possibility is to save such settings in the corresponding file-local variable instead of your global configuration (@pxref{File Variables,,Local Variables in Files,emacs,GNU Emacs Manual}). A perhaps more convenient place for such options would be in a configuration file in the same directory with your project (@pxref{Package options}). The usual file for @previewlatex{} preconfiguration is @file{prauctex.cfg}. If you also want to keep the systemwide defaults, you should add a line @example \InputIfFileExists@{preview/prauctex.cfg@}@{@}@{@} @end example @noindent to your own version of @file{prauctex.cfg} (this is assuming that global files relating to the @code{preview} package are installed in a subdirectory @file{preview}, the default behavior). @item Don't preview inline math @cindex Inline math If you have performance problems because your document is full of inline math (@code{$@dots{}$}), or if your usage of @code{$} conflicts with @previewlatex{}'s, you can turn off inline math previews. In the @code{Preview Latex} group, remove @code{textmath} from @code{preview-default-option-list} by customizing this variable. @end itemize @node Known problems, For advanced users, Simple customization, top @chapter Known problems @c also used as PROBLEMS file @include preview-problems.texi @node For advanced users, ToDo, Known problems, top @chapter For advanced users This package consists of two parts: a @LaTeX{} style that splits the output into appropriate parts with one preview object on each page, and an Emacs-lisp part integrating the thing into Emacs (aided by @AUCTeX{}). @menu * The LaTeX style file:: * The Emacs interface:: * The preview images:: * Misplaced previews:: @end menu @node The LaTeX style file, The Emacs interface, For advanced users, For advanced users @section The @LaTeX{} style file @c Autogenerated from ../preview.dtx @include preview-dtxdoc.texi @node The Emacs interface, The preview images, The LaTeX style file, For advanced users @section The Emacs interface You can use @kbd{M-x customize-group @key{RET} preview-latex @key{RET}} in order to customize these variables, or use the menus for it. We explain the various available options together with explaining how they work together in making @previewlatex{} work as intended. @vtable @code @item preview-LaTeX-command When you generate previews on a buffer or a region, the command in @code{preview-LaTeX-command} gets run (that variable should only be changed with Customize since its structure is somewhat peculiar, though expressive). As usual with @AUCTeX{}, you can continue working while this is going on. It is not a good idea to change the file until after @previewlatex{} has established where to place the previews which it can only do after the @LaTeX{} run completes. This run produces a host of pseudo-error messages that get parsed by @previewlatex{} at the end of the @LaTeX{} run and give it the necessary information about where in the source file the @LaTeX{} code for the various previews is located exactly. The parsing takes a moment and will render Emacs busy. @item preview-LaTeX-command-replacements This variable specifies transformations to be used before calling the configured command. One possibility is to have @samp{\pdfoutput=0 } appended to every command starting with @samp{pdf}. This particular setting is available as the shortcut @samp{preview-LaTeX-disable-pdfoutput}. Since @previewlatex{} can work with @acronym{PDF} files by now, there is little incentive for using this option, anymore (for projects not requiring @acronym{PDF} output, the added speed of @samp{dvipng} might make this somewhat attractive). @item preview-required-option-list @code{preview-LaTeX-command} uses @code{preview-required-option-list} in order to pass options such as @option{auctex}, @option{active} and @option{dvips} to the @file{preview} package. This means that the user need (and should) not supply these in the document itself in case he wants to be able to still compile his document without it turning into an incoherent mass of little pictures. These options even get passed in when the user loads @file{preview} explicitly in his document. The default includes an option @code{counters} that is controlled by the boolean variable @item preview-preserve-counters This option will cause the @file{preview} package to emit information that will assist in keeping things like equation counters and section numbers reasonably correct even when you are regenerating only single previews. @item preview-default-option-list @itemx preview-default-preamble If the document does not call in the package @code{preview} itself (via @code{\usepackage}) in the preamble, the preview package is loaded using default options from @code{preview-default-option-list} and additional commands specified in @code{preview-default-preamble}. @item preview-fast-conversion This is relevant only for @acronym{DVI} mode. It defaults to `On' and results in the whole document being processed as one large PostScript file from which the single images are extracted with the help of parsing the PostScript for use of so-called @acronym{DSC} comments. The bounding boxes are extracted with the help of @TeX{} instead of getting them from Dvips. If you are experiencing bounding box problems, try setting this option to `Off'. @item preview-prefer-TeX-bb If this option is `On', it tells @previewlatex{} never to try to extract bounding boxes from the bounding box comments of @acronym{EPS} files, but rather rely on the boxes it gets from @TeX{}. If you activated @code{preview-fast-conversion}, this is done, anyhow, since there are no @acronym{EPS} files from which to read this information. The option defaults to `Off', simply because about the only conceivable reason to switch off @code{preview-fast-conversion} would be that you have some bounding box problem and want to get Dvips' angle on that matter. @item preview-scale-function @itemx preview-reference-face @itemx preview-document-pt-list @itemx preview-default-document-pt @code{preview-scale-function} determines by what factor images should be scaled when appearing on the screen. If you specify a numerical value here, the physical size on the screen will be that of the original paper output scaled by the specified factor, at least if Emacs' information about screen size and resolution are correct. The default is to let @code{preview-scale-from-face} determine the scale function. This function determines the scale factor by making the size of the default font in the document match that of the on-screen fonts. The size of the screen fonts is deduced from the font @code{preview-reference-face} (usually the default face used for display), the size of the default font for the document is determined by calling @code{preview-document-pt}. @findex preview-document-pt This function consults the members of @code{preview-document-pt-list} in turn until it gets the desired information. The default consults first @code{preview-parsed-font-size}, @vindex preview-parsed-font-size then calls @code{preview-auctex-font-size} @findex preview-auctex-font-size which asks @AUCTeX{} about any size specification like @option{12pt} to the documentclass that it might have detected when parsing the document, and finally reverts to just assuming @code{preview-default-document-pt} as the size used in the document (defaulting to 10pt). If you find that the size of previews and the other Emacs display clashes, something goes wrong. @code{preview-parsed-font-size} is determined at @code{\begin@{document@}} time; if the default font size changes after that, it will not get reported. If you have an outdated version of @file{preview.sty} in your path, the size might not be reported at all. If in this case @AUCTeX{} is unable to find a size specification, and if you are using a document class with a different default value (like KomaScript), the default fallback assumption will probably be wrong and @previewlatex{} will scale up things too large. So better specify those size options even when you know that @LaTeX{} does not need them: @previewlatex{} might benefit from them. Another possibility for error is that you have not enabled @AUCTeX{}'s document parsing options. The fallback method of asking @AUCTeX{} about the size might be disabled in future versions of @previewlatex{} since in general it is more reliable to get this information from the @LaTeX{} run itself. @item preview-fast-dvips-command @itemx preview-dvips-command The regular command for turning a @acronym{DVI} file into a single PostScript file is @code{preview-fast-dvips-command}, while @code{preview-dvips-command} is used for cranking out a @acronym{DVI} file where every preview is in a separate @acronym{EPS} file. Which of the two commands gets used depends on the setting of @code{preview-fast-conversion}. The printer specified here by default is @option{-Pwww} by default, which will usually get you scalable fonts where available. If you are experiencing problems, you might want to try playing around with Dvips options (@inforef{Command-line options,,dvips}). The conversion of the previews into PostScript or @acronym{EPS} files gets started after the @LaTeX{} run completes when Emacs recognizes the first image while parsing the error messages. When Emacs has finished parsing the error messages, it activates all detected previews. This entails throwing away any previous previews covering the same areas, and then replacing the text in its visual appearance by a placeholder looking like a roadworks sign. @item preview-nonready-icon-specs This is the roadworks sign displayed while previews are being prepared. You may want to customize the font sizes at which @previewlatex{} switches over between different icon sizes, and the ascent ratio which determines how high above the base line the icon gets placed. @item preview-error-icon-specs @itemx preview-icon-specs Those are icons placed before the source code of an opened preview and, respectively, the image specs to be used for PostScript errors, and a normal open preview in text representation. @item preview-inner-environments This is a list of environments that are regarded as inner levels of an outer environment when doing @code{preview-environment}. One example when this is needed is in @code{\begin@{equation@}\begin@{split@}@dots{}\end@{split@}\end@{equation@}}, and accordingly @code{split} is one entry in @code{preview-inner-environments}. @item preview-use-balloon-help If you turn this XEmacs-only option `on', then moving the mouse over previews and icons will show appropriate help texts. This works by switching on @code{balloon-help-mode} in the buffer if it is not already enabled. The default now is `off' since some users reported problems with their version of XEmacs. @w{GNU Emacs} has its corresponding @code{tooltip-mode} enabled by default and in usable condition. @end vtable @node The preview images, Misplaced previews, The Emacs interface, For advanced users @section The preview images @vtable @code @item preview-image-type @itemx preview-image-creators @itemx preview-gs-image-type-alist What happens when @LaTeX{} is finished depends on the configuration of @code{preview-image-type}. What to do for each of the various settings is specified in the variable @code{preview-image-creators}. The options to pass into Ghostscript and what Emacs image type to use is specified in @code{preview-gs-image-type-alist}. @code{preview-image-type} defaults to @code{png}. For this to work, your version of Ghostscript needs to support the @option{png16m} device. If you are experiencing problems here, you might want to reconfigure @code{gs-image-type-alist} or @code{preview-image-type}. Reconfiguring @code{preview-image-creators} is only necessary for adding additional image types. Most devices make @previewlatex{} start up a single Ghostscript process for the entire preview run (as opposed to one per image) and feed it either sections of a @acronym{PDF} file (if PDF@LaTeX{} was used), or (after running Dvips) sections of a single PostScript file or separate @acronym{EPS} files in sequence for conversion into @acronym{PNG} format which can be displayed much faster by Emacs. Actually, not in sequence but backwards since you are most likely editing at the end of the document. And as an added convenience, any preview that happens to be on-screen is given higher priority so that @previewlatex{} will first cater for the images that are displayed. There are various options customizable concerning aspects of that operation, see the customization group @code{Preview Gs} for this. Another noteworthy setting of @code{preview-image-type} is @samp{dvipng}: in this case, the @samp{dvipng} @pindex dvipng program will get run on @acronym{DVI} output (see below for @acronym{PDF}). This is in general much faster than Dvips and Ghostscript. In that case, the option @item preview-dvipng-command will get run for doing the conversion, and it is expected that @item preview-dvipng-image-type images get produced (@samp{dvipng} might be configured for other image types as well). You will notice that @code{preview-gs-image-type-alist} contains an entry for @code{dvipng}: this actually has nothing to with @samp{dvipng} itself but specifies the image type and Ghostscript device option to use when @samp{dvipng} can't be used. This will obviously be the case for @acronym{PDF} output by PDF@LaTeX{}, but it will also happen if the @acronym{DVI} file contains PostScript specials in which case the affected images will get run through Dvips and Ghostscript once @samp{dvipng} finishes. @item preview-gs-options Most interesting to the user perhaps is the setting of this variable. It contains the default antialiasing settings @option{-dTextAlphaBits=4} and @option{-dGraphicsAlphaBits=4}. Decreasing those values to 2 @w{or 1} might increase Ghostscript's performance if you find it lacking. @end vtable Running and feeding Ghostscript from @previewlatex{} happens asynchronously again: you can resume editing while the images arrive. While those pretty pictures filling in the blanks on screen tend to make one marvel instead of work, rendering the non-displayed images afterwards will not take away your attention and will eventually guarantee that jumping around in the document will encounter only prerendered images. @node Misplaced previews, , The preview images, For advanced users @section Misplaced previews If you are reading this section, the first thing is to check that your problem is not caused by x-symbol in connection with an installation not supporting 8-bit characters (@pxref{x-symbol interoperation}). If not, here's the beef: As explained previously, Emacs uses pseudo-error messages generated by the @samp{preview} package in order to pinpoint the exact source location where a preview originated. This works in running text, but fails when preview material happens to lie in macro arguments, like the contents of @code{\emph}. Those macros first read in their entire argument, munge it through, perhaps transform it somehow, process it and perhaps then typeset something. When they finally typeset something, where is the location where the stuff originated? @TeX{}, having read in the entire argument before, does not know and actually there would be no sane way of defining it. For previews contained inside such a macro argument, the default behaviour of @previewlatex{} is to use a position immediately after the closing brace of the argument. All the previews get placed there, all at a zero-width position, which means that Emacs displays it in an order that @previewlatex{} cannot influence (currently in Emacs it is even possible that the order changes between runs). And since the placement of those previews is goofed up, you will not be able to regenerate them by clicking on them. The default behaviour is thus somewhat undesirable. The solution (like with other preview problems) is to tell the @LaTeX{} @samp{preview} package how to tackle this problem (@pxref{The LaTeX style file}). Simply, you don't need @code{\emph} do anything at all during previews! You only want the text math previewed, so the solution is to use @code{\PreviewMacro*\emph} in the preamble of your document which will make @LaTeX{} ignore @code{\emph} completely as long as it is not part of a larger preview (in which case it gets typeset as usual). Its argument thus becomes ordinary text and gets treated like ordinary text. Note that it would be a bad idea to declare @code{\PreviewMacro*[@{@{@}@}]\emph} since then both @code{\emph} as well as its argument would be ignored instead of previewed. For user-level macros, this is almost never wanted, but there may be internal macros where you might want to ignore internal arguments. The same mechanism can be used for a number of other text-formatting commands like @code{\textrm}, @code{\textit} and the like. While they all use the same internal macro @code{\text@@command}, it will not do to redefine just that, since they call it only after having read their argument in, and then it already is too late. So you need to disable every of those commands by hand in your document preamble. Actually, we wrote all of the above just to scare you. At least all of the above mentioned macros and a few more are already catered for by a configuration file @file{prauctex.cfg} that gets loaded by default unless the @samp{preview} package gets loaded with the @option{noconfig} option. You can make your own copy of this file in a local directory and edit it in case of need. You can also add loading of a file of your liking to @code{preview-default-preamble}, @vindex preview-default-preamble or alternatively do the manual disabling of your favorite macro in @code{preview-default-preamble}, @vindex preview-default-preamble which is customizable in the Preview Latex group. @node ToDo, Frequently Asked Questions, For advanced users, top @c Also used as TODO: in separate file @appendix ToDo @include preview-todo.texi @node Frequently Asked Questions, Copying this Manual, ToDo, top @c Also used as TODO: in separate file @appendix Frequently Asked Questions @include preview-faq.texi @node Copying this Manual, Index, Frequently Asked Questions, top @c Not to be changed often, I think: in separate file. @appendix Copying this Manual @ifinfo The copyright notice for this manual is: @insertcopying @end ifinfo The full license text can be read here: @menu * GNU Free Documentation License:: License for copying this manual. @end menu @include fdl.texi @c @node Credits, Index, Internals, top @c @appendix Credits @node Index, , Copying this Manual, top @unnumbered Index @printindex cp @bye auctex-11.91/doc/preview-problems.texi000066400000000000000000000132311313533625700177700ustar00rootroot00000000000000@include macros.texi @ifset rawfile @c documentencoding is used by makeinfo in our --no-headers output. @documentencoding ISO-8859-1 @node Known problems,,(dir),(dir) @top Known problems with preview-latex @end ifset @c ----------------------- @c @cindex @kbd{M-x preview-report-bug @key{RET}} @c @cindex @code{preview-report-bug} @c @cindex Report a bug A number of issues are known concerning the interoperation with various other software. Some of the known problems can be solved by moving to newer versions of the problematic software or by simple patches. @menu * Font problems with Dvips:: * Too small bounding boxes:: * x-symbol interoperation:: * Middle-clicks paste instead of toggling:: @end menu If you find something not mentioned here, please send a bug report using @kbd{M-x preview-report-bug @key{RET}}, which will fill in a lot of information interesting to us and send it to the @email{bug-auctex@@gnu.org} list. Please use the bug reporting commands if at all possible. @ifset rawfile @node Font problems with Dvips @chapter Font problems with Dvips @raisesections @end ifset @ifclear rawfile @node Font problems with Dvips @section Font problems with Dvips @end ifclear Some fonts have been reported to produce wrong characters with @previewlatex{}. @previewlatex{} calls Dvips by default with the option @option{-Pwww} in order to get scalable fonts for nice results. If you are using antialiasing, however, the results might be sufficiently nice with bitmapped fonts, anyway. You might try @option{-Ppdf} for another stab at scalable fonts, or other printer definitions. Use @display @kbd{M-x customize-variable @key{RET} preview-fast-dvips-command @key{RET}} @end display @noindent and @display @kbd{M-x customize-variable @key{RET} preview-dvips-command @key{RET}} @end display @noindent in order to customize this. One particular problem is that several printer setup files (typically in a file called @file{/usr/share/texmf/dvips/config/config.pdf} if you are using the @option{-Ppdf} switch) contain the @option{G} option for `character shifting'. This option will result in @samp{fi} being rendered as @samp{@pounds{}} (British Pounds sign) in several fonts, unless your version of Dvips has a long-standing bug in its implementation fixed (only very recent versions of Dvips have). @node Too small bounding boxes @section Too small bounding boxes The bounding box of a preview is determined by the @LaTeX{} package using the pure @TeX{} bounding boxes. If there is material extending outside of the @TeX{} box, that material will be missing from the preview image. This happens for the label-showing boxes from the @code{showkeys} package. This particular problem can be circumvented by using the @code{showlabels} option of the preview package. In general, you should try to fix the problem in the @TeX{} code, like avoiding drawing outside of the picture with PSTricks. One possible remedy is to set @code{preview-fast-conversion} to `Off' @ifset rawfile (see the manual). @end ifset @ifclear rawfile (@pxref{The Emacs interface}). @end ifclear The conversion will take more time, but will then use the bounding boxes from @acronym{EPS} files generated by Dvips. Dvips generally does not miss things, but it does not understand PostScript constructs like @code{\resizebox} or @code{\rotate} commands, so will generate rather wrong boxes for those. Dvips can be helped with the @code{psfixbb} package option to preview @ifset rawfile (see the manual), @end ifset @ifclear rawfile (@pxref{The LaTeX style file}), @end ifclear which will tag the corners of the included @TeX{} box. This will mostly be convenient for @emph{pure} PostScript stuff like that created by PSTricks, which Dvips would otherwise reserve no space for. @node x-symbol interoperation @section x-symbol interoperation Thanks to the work of Christoph Wedler, starting with version @samp{4.0h/beta} of x-symbol, the line parsing of @AUCTeX{} and @previewlatex{} is fully supported. Earlier versions exhibit problems. However, versions before 4.2.2 will cause a drastic slowdown of @previewlatex{}'s parsing pass, so we don't recommend to use versions earlier than that. If you wonder what x-symbol is, it is a package that transforms various tokens and subscripts to a more readable form while editing and offers a few input methods handy especially for dealing with math. Take a look at @uref{http://x-symbol.sourceforge.net}. x-symbol versions up to 4.5.1-beta at least require an 8bit-clean @TeX{} implementation (meaning that its terminal output should not use @samp{^^}-started escape sequences) for cooperation with @previewlatex{}. Later versions may get along without it, like @previewlatex{} does now. If you experience problems with @file{circ.tex} in connection with both x-symbol and Latin-1 characters, you may need to change your language environment or, as a last resort, customize the variable @code{LaTeX-command-style} by replacing the command @code{latex} with @code{latex -translate-file=cp8bit}. @node Middle-clicks paste instead of toggling @section Middle-clicks paste instead of toggling This is probably the fault of your favorite package. @file{flyspell.el} and @file{mouse-drag.el} are known to be affected in versions before @w{Emacs 21.3}. Upgrade to the most recent version. What version of XEmacs might contain the fixes is unknown. @file{isearch.el} also shows this effect while searches are in progress, but the code is such a complicated mess that no patch is in sight. Better just end the search with @kbd{@key{RET}} before toggling and resume with @kbd{C-s C-s} or similar afterwards. Since previews over the current match will auto-open, anyway, this should not be much of a problem in practice. auctex-11.91/doc/preview-readme.texi000066400000000000000000000225261313533625700174110ustar00rootroot00000000000000@include macros.texi @ifset rawfile @node Introduction, What use is it?, (dir), (dir) @top @previewlatex{} in a nutshell @paragraphindent none @end ifset @c ----------------------- @cindex Readme Does your neck hurt from turning between previewer windows and the source too often? This @AUCTeX{} component will render your displayed @LaTeX{} equations right into the editing window where they belong. The purpose of @previewlatex{} is to embed @LaTeX{} environments such as display math or figures into the source buffers and switch conveniently between source and image representation. @menu * What use is it?:: * Activating preview-latex:: * Getting started:: * Basic modes of operation:: * More documentation:: * Availability:: * Contacts:: @end menu @ifset rawfile @node What use is it?, Activating preview-latex, Introduction, Introduction @chapter What use is it? @raisesections @end ifset @ifclear rawfile @node What use is it?, Activating preview-latex, Introduction, Introduction @section What use is it? @end ifclear @cindex Philosophy of @previewlatex{} @acronym{WYSIWYG} (what you see is what you get) sometimes is considered all the rage, sometimes frowned upon. Do we really want it? Wrong question. The right question is @emph{what} we want from it. Except when finetuning the layout, we don't want to use printer fonts for on-screen text editing. The low resolution and contrast of a computer screen render all but the coarsest printer fonts (those for low-quality newsprint) unappealing, and the margins and pagination of the print are not wanted on the screen, either. On the other hand, more complex visual compositions like math formulas and tables can't easily be taken in when seen only in the source. @previewlatex{} strikes a balance: it only uses graphic renditions of the output for certain, configurable constructs, does this only when told, and then right in the source code. Switching back and forth between the source and preview is easy and natural and can be done for each image independently. Behind the scenes of @previewlatex{}, a sophisticated framework of other programs like @samp{dvipng}, Dvips and Ghostscript are employed together with a special @LaTeX{} style file for extracting the material of interest in the background and providing fast interactive response. @node Activating preview-latex, Getting started, What use is it?, Introduction @section Activating @previewlatex{} @cindex Activation After installation, the package may need to be activated (and remember to activate @AUCTeX{} too). In XEmacs, and in any prepackaged versions worth their salt, activation should be automatic upon installation. If this seems not the case, complain to your installation provider. The usual activation (if it is not done automatically) would be @example (load "preview-latex.el" nil t t) @end example If you still don't get a ``Preview'' menu in @LaTeX{} mode in spite of @AUCTeX{} showing its ``Command'', your installation is broken. One possible cause are duplicate Lisp files that might be detectable with @kbd{@key{M-x} list-load-path-shadows @key{RET}}. @node Getting started, Basic modes of operation, Activating preview-latex, Introduction @section Getting started Once activated, @previewlatex{} and its documentation will be accessible via its menus (note that @previewlatex{} requires @AUCTeX{} to be loaded). When you have loaded a @LaTeX{} document (a sample document @file{circ.tex} is included in the distribution, but most documents including math and/or figures should do), you can use its menu or @kbd{C-c C-p C-d} (for @samp{Preview/Document}). Previews will now be generated for various objects in your document. You can use the time to take a short look at the other menu entries and key bindings in the @samp{Preview} menu. You'll see the previewed objects change into a roadworks sign when @previewlatex{} has determined just what it is going to preview. Note that you can freely navigate the buffer while this is going on. When the process is finished you will see the objects typeset in your buffer. It is a bad idea, however, to edit the buffer before the roadworks signs appear, since that is the moment when the correlation between the original text and the buffer locations gets established. If the buffer changes before that point of time, the previews will not be placed where they belong. If you do want to change some obvious error you just spotted, we recommend you stop the background process by pressing @kbd{C-c C-k}. To see/edit the @LaTeX{} code for a specific object, put the point (the cursor) on it and press @kbd{C-c C-p C-p} (for @samp{Preview/at point}). It will also do to click with the middle mouse button on the preview. Now you can edit the code, and generate a new preview by again pressing @kbd{C-c C-p C-p} (or by clicking with the middle mouse button on the icon before the edited text). If you are using the @code{desktop} package, previews will remain from one session to the next as long as you don't kill your buffer. If you are using XEmacs, you will probably need to upgrade the package to the newest one; things are being fixed just as I am writing this. @node Basic modes of operation, More documentation, Getting started, Introduction @section Basic modes of operation @previewlatex{} has a number of methods for generating its graphics. Its default operation is equivalent to using the `@LaTeX{}' command from @AUCTeX{}. If this happens to be a call of PDF@LaTeX{} generating @acronym{PDF} output (you need at least @w{@AUCTeX{} 11.51} for this), then Ghostscript will be called directly on the resulting @acronym{PDF} file. If a @acronym{DVI} file gets produced, first Dvips and then Ghostscript get called by default. The image type to be generated by Ghostscript can be configured with @example @kbd{M-x} customize-variable @kbd{RET} preview-image-type @kbd{RET} @end example @vindex preview-image-type @noindent The default is @samp{png} (the most efficient image type). A special setting is @samp{dvipng} in case you have the @samp{dvipng} @cindex Using dvipng @pindex dvipng program installed. In this case, @samp{dvipng} will be used for converting @acronym{DVI} files and Ghostscript (with a @samp{PNG} device) for converting @acronym{PDF} files. @samp{dvipng} is much faster than the combination of Dvips and Ghostscript. You can get downloads, access to its @acronym{CVS} archive and further information from its @uref{http://savannah.nongnu.org/projects/dvipng, project site}. @node More documentation, Availability, Basic modes of operation, Introduction @section More documentation After the installation, documentation in the form of @ifinfo @ifclear rawfile this @end ifclear @ifset rawfile an @end ifset @end ifinfo @ifnotinfo an @end ifnotinfo info manual will be available. You can access it with the standalone info reader with @example info preview-latex @end example @noindent or by pressing @kbd{C-h i d m preview-latex @key{RET}} in Emacs. Once @previewlatex{} is activated, you can instead use @kbd{C-c C-p @key{TAB}} (or the menu entry @samp{Preview/Read documentation}). Depending on your installation, @ifnottex a printable @end ifnottex @iftex this printed @end iftex manual may also be available in the form of @file{preview-latex.dvi} or @file{preview-latex.ps}. Detailed documentation for the @LaTeX{} style used for extracting the preview images is placed in @file{preview.dvi} in a suitable directory during installation; on typical teTeX-based systems, @example texdoc preview @end example @noindent will display it. @node Availability, Contacts, More documentation, Introduction @section Availability @cindex Download @cindex @sc{git} access The @previewlatex{} project is now part of @AUCTeX{} and accessible as part of the @uref{http://savannah.gnu.org/projects/auctex,@AUCTeX{} project page}. You can get its files from the @uref{ftp://ftp.gnu.org/pub/gnu/auctex,@AUCTeX{} download area}. As of @w{@AUCTeX{} 11.81}, @previewlatex{} should already be integrated into @AUCTeX{}, so no separate download will be necessary. You will also find @file{.rpm} files there for Fedora and possibly SuSE. Anonymous @acronym{Git} is available as well. @node Contacts, , Availability, Introduction @section Contacts @cindex Contacts @cindex Mailing list Bug reports should be sent by using @kbd{M-x preview-report-bug @key{RET}}, as this will fill in a lot of information interesting to us. If the installation fails (but this should be a rare event), report bugs to @email{bug-auctex@@gnu.org}. There is a general discussion list for @AUCTeX{} which also covers @previewlatex{}, look at @uref{http://lists.gnu.org/mailman/listinfo/auctex}. For more information on the mailing list, send a message with just the word ``help'' as subject or body to @email{auctex-request@@gnu.org}. For the developers, there is the @email{auctex-devel@@gnu.org} list; it would probably make sense to direct feature requests and questions about internal details there. There is a low-volume read-only announcement list available to which you can subscribe by sending a mail with ``subscribe'' in the subject to @email{info-auctex-request@@gnu.org}. Offers to support further development will be appreciated. If you want to show your appreciation with a donation to the main developer, you can do so via PayPal to @email{dak@@gnu.org}, and of course you can arrange for service contracts or for added functionality. Take a look at the @file{TODO} list for suggestions in that area. auctex-11.91/doc/preview-todo.texi000066400000000000000000000107261313533625700171200ustar00rootroot00000000000000@ifset rawfile @include macros.texi @chapheading Future Development of @previewlatex{} @end ifset @itemize @bullet @item Support other formats than just @LaTeX{} plain @TeX{} users and Con@TeX{}t users should not have to feel left out. While Con@TeX{}t is not supported yet by released versions of @AUCTeX{}, at least supporting plain would help people, and be a start for Con@TeX{}t as well. There are plain-based formats like MusiX@TeX{} that could benefit a lot from @previewlatex{}. The main part of the difficulties here is to adapt @file{preview.dtx} to produce stuff not requiring @LaTeX{}. @item Support nested snippets Currently you can't have both a footnote (which gets displayed as just its footnote number) and math inside of a footnote rendered as an image: such nesting might be achieved by rerunning @previewlatex{} on the footnote contents when one opens the footnote for editing. @item Support other text properties than just images Macros like @samp{\textit} can be rendered as images, but the resulting humungous blob is not suitable for editing, in particular since the line filling from LaTeX does not coincide with that of Emacs. It would be much more useful if text properties just switched the relevant font to italics rather than replacing the whole text with an image. It would also make editing quite easier. Then there are things like footnotes that are currently just replaced by their footnote number. While editing is not a concern here (the number is not in the original text, anyway), it would save a lot of conversion time if no images were generated, but Emacs just displayed a properly fontified version of the footnote number. Also, this might make @previewlatex{} useful even on text terminals. @item Find a way to facilitate Source Specials Probably in connection with adding appropriate support to @code{dvipng}, it would be nice if clicking on an image from a larger piece of source code would place the cursor at the respective source code location. @item Make @file{preview.dtx} look reasonable in @AUCTeX{} It is a bit embarrassing that @file{preview.dtx} is written in a manner that will not give either good syntax highlighting or good indentation when employing @AUCTeX{}. @item Web page work Currently, @previewlatex{}'s web page is not structured at all. Better navigation would be desirable, as well as separate News and Errata eye catchers. @item Manual improvements @itemize @minus @item Pepper the manual with screen shots and graphics This will be of interest for the @acronym{HTML} and @TeX{} renditions of the texinfo manual. Since Texinfo now supports images as well, this could well be nice to have. @item Fix duplicates Various stuff appears several times. @end itemize @item Implement rendering pipelines for Emacs The current @file{gs.el} interface is fundamentally flawed, not only because of a broken implementation. A general batchable and daemonizable rendering infrastructure that can work on all kinds of preview images for embedding into buffers is warranted. The current implementation has a rather adhoc flavor and is not easily extended. It will not work outside of AUCTeX, either. @item Integrate into Ref@TeX{} When referencing to equations and the like, the preview-images of the source rather than plain text should be displayed. If the preview in question covers labels, those should appear in the bubble help and/or a context menu. Apropos: @item Implement @LaTeX{} error indicators Previews on erroneous @LaTeX{} passages might gain a red border or similar. @item Pop up relevant online documentation for frequent errors A lot of errors are of the "badly configured" variety. Perhaps the relevant info pages should be delivered in addition to the error message. @item Implement a table editing mode where every table cell gets output as a separate preview. Alternatively, output the complete table metrics in a way that lets people click on individual cells for editing purposes. @item Benchmark and kill Emacs inefficiencies Both the @LaTeX{} run under Emacs control as well as actual image insertion in Emacs could be faster. CVS Emacs has improved in that respect, but it still is slower than desirable. @item Improve image support under Emacs The general image and color handling in Emacs is inefficient and partly defective. This is still the case in CVS. One option would be to replace the whole color and image handling with @acronym{GDK} routines when this library is available, since it has been optimized for it. @end itemize auctex-11.91/doc/quickstart.texi000066400000000000000000000312761313533625700166710ustar00rootroot00000000000000@include macros.texi @node Quick Start @chapter Quick Start @AUCTeX{} is a powerful program offering many features and configuration options. If you are new to @AUCTeX{} this might be deterrent. Fortunately you do not have to learn everything at once. This Quick Start Guide will give you the knowledge of the most important commands and enable you to prepare your first @LaTeX{} document with @AUCTeX{} after only a few minutes of reading. In this introduction, we assume that @AUCTeX{} is already installed on your system. If this is not the case, you should read the file @file{INSTALL} in the base directory of the unpacked distribution tarball. These installation instructions are available in this manual as well, @ref{Installation}. We also assume that you are familiar with the way keystrokes are written in Emacs manuals. If not, have a look at the Emacs Tutorial in the Help menu. If @AUCTeX{} is installed in any other way than from the Emacs package manager (@acronym{ELPA}), you might still need to activate it, by inserting @lisp (load "auctex.el" nil t t) @end lisp in your user init file.@footnote{This usually is a file in your home directory called @file{.emacs} if you are utilizing GNU Emacs or @file{.xemacs/init.el} if you are using XEmacs.} If @AUCTeX{} is installed from @acronym{ELPA}, the installation procedure already cares about loading @AUCTeX{} correctly and you @strong{must not} have the line above in your init file. Note that this also applies if you have the following line in your init file @lisp (package-initialize) @end lisp In order to get support for many of the @LaTeX{} packages you will use in your documents, you should enable document parsing as well, which can be achieved by putting @lisp (setq TeX-auto-save t) (setq TeX-parse-self t) @end lisp into your init file. Finally, if you often use @code{\include} or @code{\input}, you should make @AUCTeX{} aware of the multi-file document structure. You can do this by inserting @lisp (setq-default TeX-master nil) @end lisp into your init file. Each time you open a new file, @AUCTeX{} will then ask you for a master file. @menu * Editing Facilities:: Functions for editing TeX files * Processing Facilities:: Creating and viewing output, debugging @end menu @iftex This Quick Start Guide covers two main topics: First we explain how @AUCTeX{} helps you in editing your input file for @TeX{}, @LaTeX{}, and some other formats. Then we describe the functions that @AUCTeX{} provides for processing the input files with @LaTeX{}, Bib@TeX{}, etc., and for viewing and debugging. @end iftex @node Editing Facilities @section Functions for editing TeX files @subsection Making your @TeX{} code more readable @AUCTeX{} can do syntax highlighting of your source code, that means commands will get special colors or fonts. You can enable it locally by typing @kbd{M-x font-lock-mode RET}. If you want to have font locking activated generally, enable @code{global-font-lock-mode}, e.g. with @kbd{M-x customize-variable RET global-font-lock-mode RET}. @AUCTeX{} will indent new lines to indicate their syntactical relationship to the surrounding text. For example, the text of a @code{\footnote} or text inside of an environment will be indented relative to the text around it. If the indenting has gotten wrong after adding or deleting some characters, use @key{TAB} to reindent the line, @kbd{M-q} for the whole paragraph, or @kbd{M-x LaTeX-fill-buffer RET} for the whole buffer. @subsection Entering sectioning commands @cindex Sectioning @cindex Sections @cindex Chapters @cindex @code{\chapter} @cindex @code{\section} @cindex @code{\subsection} @cindex @code{\label} Insertion of sectioning macros, that is @samp{\chapter}, @samp{\section}, @samp{\subsection}, etc. and accompanying @samp{\label} commands may be eased by using @kbd{C-c C-s}. You will be asked for the section level. As nearly everywhere in @AUCTeX{}, you can use the @key{TAB} or @key{SPC} key to get a list of available level names, and to auto-complete what you started typing. Next, you will be asked for the printed title of the section, and last you will be asked for a label to be associated with the section. @subsection Inserting environments Similarly, you can insert environments, that is @samp{\begin@{@}}--@samp{\end@{@}} pairs: Type @kbd{C-c C-e}, and select an environment type. Again, you can use @key{TAB} or @key{SPC} to get a list, and to complete what you type. Actually, the list will not only provide standard @LaTeX{} environments, but also take your @samp{\documentclass} and @samp{\usepackage} commands into account if you have parsing enabled by setting @code{TeX-parse-self} to @code{t}. If you use a couple of environments frequently, you can use the up and down arrow keys (or @kbd{M-p} and @kbd{M-n}) in the minibuffer to get back to the previously inserted commands. Some environments need additional arguments. Often, @AUCTeX{} knows about this and asks you to enter a value. @subsection Inserting macros @kbd{C-c C-m}, or simply @kbd{C-c RET} will give you a prompt that asks you for a @LaTeX{} macro. You can use @key{TAB} for completion, or the up/down arrow keys (or @kbd{M-p} and @kbd{M-n}) to browse the command history. In many cases, @AUCTeX{} knows which arguments a macro needs and will ask you for that. It even can differentiate between mandatory and optional arguments---for details, see @ref{Completion}. An additional help for inserting macros is provided by the possibility to complete macros right in the buffer. With point at the end of a partially written macro, you can complete it by typing @kbd{M-TAB}. @subsection Changing the font @AUCTeX{} provides convenient keyboard shortcuts for inserting macros which specify the font to be used for typesetting certain parts of the text. They start with @kbd{C-c C-f}, and the last @kbd{C-} combination tells @AUCTeX{} which font you want: @table @kbd @item C-c C-f C-b @kindex C-c C-f C-b @cindex @code{\textbf} Insert @b{bold face} @samp{\textbf@{@point{}@}} text. @item C-c C-f C-i @kindex C-c C-f C-i @cindex @code{\textit} Insert @i{italics} @samp{\textit@{@point{}@}} text. @item C-c C-f C-e @kindex C-c C-f C-e @cindex @code{\emph} Insert @i{emphasized} @samp{\emph@{@point{}@}} text. @item C-c C-f C-s @kindex C-c C-f C-s @cindex @code{\textsl} Insert @i{slanted} @samp{\textsl@{@point{}@}} text. @item C-c C-f C-r @kindex C-c C-f C-r @cindex @code{\textrm} Insert roman @r{\textrm@{@point{}@}} text. @item C-c C-f C-f @kindex C-c C-f C-f @cindex @code{\textsf} Insert @sansserif{sans serif} @samp{\textsf@{@point{}@}} text. @item C-c C-f C-t @kindex C-c C-f C-t @cindex @code{\texttt} Insert @t{typewriter} @samp{\texttt@{@point{}@}} text. @item C-c C-f C-c @kindex C-c C-f C-c @cindex @code{\textsc} Insert @sc{small caps} @samp{\textsc@{@point{}@}} text. @item C-c C-f C-d @kindex C-c C-f C-c @cindex Deleting fonts Delete the innermost font specification containing point. @end table If you want to change font attributes of existing text, mark it as an active region, and then invoke the commands. If no region is selected, the command will be inserted with empty braces, and you can start typing the changed text. Most of those commands will also work in math mode, but then macros like @code{\mathbf} will be inserted. @subsection Other useful features @AUCTeX{} also tries to help you when inserting the right ``quote'' signs for your language, dollar signs to typeset math, or pairs of braces. It offers shortcuts for commenting out text (@kbd{C-c ;} for the current region or @kbd{C-c %} for the paragraph you are in). The same keystrokes will remove the % signs, if the region or paragraph is commented out yet. With @code{TeX-fold-mode}, you can hide certain parts (like footnotes, references etc.) that you do not edit currently. Support for Emacs' outline mode is provided as well. And there's more, but this is beyond the scope of this Quick Start Guide. @node Processing Facilities @section Creating and viewing output, debugging @subsection One Command for @LaTeX{}, helpers, viewers, and printing If you have typed some text and want to run @LaTeX{} (or @TeX{}, or other programs---see below) on it, type @kbd{C-c C-c}. If applicable, you will be asked whether you want to save changes, and which program you want to invoke. In many cases, the choice that @AUCTeX{} suggests will be just what you want: first @command{latex}, then a viewer. If a @command{latex} run produces or changes input files for @command{makeindex}, the next suggestion will be to run that program, and @AUCTeX{} knows that you need to run @command{latex} again afterwards---the same holds for Bib@TeX{}. When no processor invocation is necessary anymore, @AUCTeX{} will suggest to run a viewer, or you can chose to create a PostScript file using @command{dvips}, or to directly print it. Actually, there is another command which comes in handy to compile documents: type @kbd{C-c C-a} (@code{TeX-command-run-all}) and @AUCTeX{} will compile the document for you until it is ready and then run the viewer. This is the same as issuing repeatedly @kbd{C-c C-c} and letting @AUCTeX{} guess the next command to run. At this place, a warning needs to be given: First, although @AUCTeX{} is really good in detecting the standard situations when an additional @command{latex} run is necessary, it cannot detect it always. Second, the creation of PostScript files or direct printing currently only works when your output file is a @acronym{DVI} file, not a @acronym{PDF} file. Ah, you didn't know you can do both? That brings us to the next topic. @subsection Choosing an output format From a @LaTeX{} file, you can produce @acronym{DVI} output, or a @acronym{PDF} file directly @i{via} @command{pdflatex}. You can switch on source specials for easier navigation in the output file, or tell @command{latex} to stop after an error (usually @code{\noninteractive} is used, to allow you to detect all errors in a single run). These options are controlled by toggles, the keystrokes should be easy to memorize: @table @kbd @item @kbd{C-c C-t C-p} This command toggles between @acronym{DVI} and @acronym{PDF} output @item @kbd{C-c C-t C-i} toggles interactive mode @item @kbd{C-c C-t C-s} toggles source specials support @item @kbd{C-c C-t C-o} toggles usage of Omega/lambda. @end table There is also another possibility: compile the document with @command{tex} (or @command{latex}) and then convert the resulting @acronym{DVI} file to @acronym{PDF} using @command{dvips}--@command{ps2pdf} sequence. If you want to go by this route, when @code{TeX-PDF-via-dvips-ps2pdf} variable is non-nil, @AUCTeX{} will suggest you to run the appropriate command when you type @kbd{C-C C-c}. For details, see @ref{Processor Options}. @subsection Debugging @LaTeX{} When @AUCTeX{} runs a program, it creates an output buffer in which it displays the output of the command. If there is a syntactical error in your file, @command{latex} will not complete successfully. @AUCTeX{} will tell you that, and you can get to the place where the first error occured by pressing @kbd{C-c `} (the last character is a backtick). The view will be split in two windows, the output will be displayed in the lower buffer, and both buffers will be centered around the place where the error ocurred. You can then try to fix it in the document buffer, and use the same keystrokes to get to the next error. This procedure may be repeated until all errors have been dealt with. By pressing @kbd{C-c C-w} (@code{TeX-toggle-debug-boxes}) you can toggle whether @AUCTeX{} should notify you of overfull and underfull boxes in addition to regular errors. If you have a recent version of GNU Emacs (24 or later), issue @kbd{M-x TeX-error-overview RET} to see a nicely formatted list of all errors and warnings reported by the compiler. If a command got stuck in a seemingly infinite loop, or you want to stop execution for other reasons, you can use @kbd{C-c C-k} (for ``kill''). Similar to @kbd{C-l}, which centers the buffer you are in around your current position, @kbd{C-c C-l} centers the output buffer so that the last lines added at the bottom become visible. @subsection Running @LaTeX{} on parts of your document If you want to check how some part of your text looks like, and do not want to wait until the whole document has been typeset, then mark it as a region and use @kbd{C-c C-r}. It behaves just like @kbd{C-c C-c}, but it only uses the document preamble and the region you marked. If you are using @code{\include} or @code{\input} to structure your document, try @kbd{C-c C-b} while you are editing one of the included files. It will run @command{latex} only on the current buffer, using the preamble from the master file. @c does this also work with input? why not? @c Local Variables: @c mode: texinfo @c TeX-master: "auctex" @c End: auctex-11.91/doc/tex-ref.tex000066400000000000000000000456041313533625700157000ustar00rootroot00000000000000% Reference Card for AUCTeX version 11.91 %**start of header \newcount\columnsperpage % This file has only been checked with 3 columns per page. But it % should print fine either via DVI or PDFTeX. \columnsperpage=3 % Papersize stuff. Use default paper size for PDF, but switch % orientation. Use papersize special for dvips. \ifx\pdfoutput\undefined \csname newcount\endcsname\pdfoutput \pdfoutput=0 \fi \ifnum\pdfoutput=0 % \special{papersize 8.5in,11in}% \special{papersize 297mm,210mm}% \else \dimen0\pdfpagewidth \pdfpagewidth\pdfpageheight \pdfpageheight\dimen0 \fi % This file is intended to be processed by plain TeX (TeX82). % compile-command: "tex tex-ref" or "pdftex tex-ref" % % Original author of Auc-TeX Reference Card: % % Terrence Brannon, PO Box 5027, Bethlehem, PA 18015 , USA % internet: tb06@pl118f.cc.lehigh.edu (215) 758-1720 (215) 758-2104 % % Kresten Krab Thorup updated the reference card to 6. % Per Abrahamsen updated the reference card to 7, 8, and 9. % Ralf Angeli updated it to 11.50. % And David Kastrup messed around with it, too, merging the math reference. % % Thanks to Stephen Gildea % Paul Rubin, Bob Chassell, Len Tower, and Richard Mlynarik % for creating the GNU Emacs Reference Card from which this was mutated \def\versionnumber{11.91} \def\year{2017} \def\version{July \year\ v\versionnumber} \def\shortcopyrightnotice{\vskip 1ex plus 2 fill \centerline{\small \copyright\ \year\ Free Software Foundation, Inc. Permissions on back. v\versionnumber}} \def\copyrightnotice{% \vskip 1ex plus 2 fill\begingroup\small \centerline{Copyright \copyright\ 1987, 1992-1994, 2004-2006, 2008, 2010,} \centerline{2012, 2014, 2015 Free Software Foundation, Inc.} \centerline{for AUC\TeX\ version \versionnumber} Permission is granted to make and distribute copies of this card provided the copyright notice and this permission notice are preserved on all copies. \endgroup} % make \bye not \outer so that the \def\bye in the \else clause below % can be scanned without complaint. \def\bye{\par\vfill\supereject\end} \newdimen\intercolumnskip \newbox\columna \newbox\columnb \edef\ncolumns{\the\columnsperpage} \message{[\ncolumns\space column\if 1\ncolumns\else s\fi\space per page]} \def\scaledmag#1{ scaled \magstep #1} % This multi-way format was designed by Stephen Gildea % October 1986. \if 1\ncolumns \hsize 4in \vsize 10in \voffset -.7in \font\titlefont=\fontname\tenbf \scaledmag3 \font\headingfont=\fontname\tenbf \scaledmag2 \font\smallfont=\fontname\sevenrm \font\smallsy=\fontname\sevensy \footline{\hss\folio} \def\makefootline{\baselineskip10pt\hsize6.5in\line{\the\footline}} \else \hsize 3.2in \vsize 7.6in \hoffset -.75in \voffset -.8in \font\titlefont=cmbx10 \scaledmag2 \font\headingfont=cmbx10 \scaledmag1 \font\smallfont=cmr6 \font\smallsy=cmsy6 \font\eightrm=cmr8 \font\eightbf=cmbx8 \font\eightit=cmti8 \font\eighttt=cmtt8 \font\eightsl=cmsl8 \font\eightsc=cmcsc8 \font\eightsy=cmsy8 \textfont0=\eightrm \textfont2=\eightsy \def\rm{\fam0 \eightrm} \def\bf{\eightbf} \def\it{\eightit} \def\tt{\eighttt} \def\sl{\eightsl} \def\sc{\eightsc} \normalbaselineskip=.8\normalbaselineskip \ht\strutbox.8\ht\strutbox \dp\strutbox.8\dp\strutbox \normallineskip=.8\normallineskip \normallineskiplimit=.8\normallineskiplimit \normalbaselines\rm %make definitions take effect \if 2\ncolumns \let\maxcolumn=b \footline{\hss\rm\folio\hss} \def\makefootline{\vskip 2in \hsize=6.86in\line{\the\footline}} \else \if 3\ncolumns \let\maxcolumn=c \nopagenumbers \else \errhelp{You must set \columnsperpage equal to 1, 2, or 3.} \errmessage{Illegal number of columns per page} \fi\fi \intercolumnskip=.46in \def\abc{a} \output={% % This next line is useful when designing the layout. %\immediate\write16{Column \folio\abc\space starts with \firstmark} \if \maxcolumn\abc \multicolumnformat \global\def\abc{a} \else\if a\abc \global\setbox\columna\columnbox \global\def\abc{b} %% in case we never use \columnb (two-column mode) \global\setbox\columnb\hbox to -\intercolumnskip{} \else \global\setbox\columnb\columnbox \global\def\abc{c}\fi\fi} \def\multicolumnformat{\shipout\vbox{\makeheadline \hbox{\box\columna\hskip\intercolumnskip \box\columnb\hskip\intercolumnskip\columnbox} \makefootline}\advancepageno} \def\columnbox{\leftline{\pagebody}} \def\bye{\par\vfill\supereject \if a\abc \else\null\vfill\eject\fi \if a\abc \else\null\vfill\eject\fi \end} \fi % we won't be using math mode much, so redefine some of the characters % we might want to talk about \catcode`\^=12 \catcode`\_=12 \chardef\\=`\\ \chardef\{=`\{ \chardef\}=`\} \hyphenation{mini-buf-fer} \parindent 0pt \parskip 1ex plus .5ex minus .5ex \def\small{\smallfont\textfont2=\smallsy\baselineskip=.8\baselineskip} \def\newcolumn{\vfill\eject} \def\title#1{{\titlefont\centerline{#1}}\vskip 1ex plus .5ex} \def\section#1{\par\vskip 0pt plus 0.2\vsize \penalty-3000 \vskip 0pt plus -0.2\vsize \vskip 3ex plus 2ex minus 2ex {\headingfont #1}\mark{#1}% \vskip 2ex plus 1ex minus 1.5ex} \newdimen\keyindent \def\beginindentedkeys{\keyindent=1em} \def\endindentedkeys{\keyindent=0em} \endindentedkeys \def\paralign{\vskip\parskip\halign} \def\<#1>{$\langle${\rm #1}$\rangle$} \def\kbd#1{{\tt#1}\null} %\null so not an abbrev even if period follows \def\beginexample{\par\leavevmode\begingroup \obeylines\obeyspaces\parskip0pt\tt} {\obeyspaces\global\let =\ } \def\endexample{\endgroup} \def\key#1#2{\leavevmode\hbox to \hsize{\vtop {\hsize=.68\hsize\rightskip=1em \hskip\keyindent\relax#1}\kbd{#2}\hfil}} \newbox\metaxbox \setbox\metaxbox\hbox{\kbd{M-x }} \newdimen\metaxwidth \metaxwidth=\wd\metaxbox \def\metax#1#2{\leavevmode\hbox to \hsize{\hbox to .75\hsize {\hskip\keyindent\relax#1\hfil}% \hskip -\metaxwidth minus 1fil \kbd{#2}\hfil}} \def\threecol#1#2#3{\hskip\keyindent\relax#1\hfil&\kbd{#2}\quad &\kbd{#3}\quad\cr} \def\LaTeX{% L\kern-.36em\raise.3ex\hbox{\sc{a}}\kern-.15em\TeX} %**end of header \title{AUC\TeX\ Reference Card} \centerline{(for version \versionnumber)} \section{Conventions Used} \key{Carriage Return or \kbd{C-m}}{RET} \key{Tabular or \kbd{C-i}}{TAB} \key{Linefeed or \kbd{C-j}}{LFD} \section{Shell Interaction} \key{Run a command on the master file}{C-c C-c} \key{Run a command on the buffer}{C-c C-b} \key{Run a command on the region}{C-c C-r} \key{Fix the region}{C-c C-t C-r} \key{Kill job}{C-c C-k} \key{Recenter output buffer}{C-c C-l} \key{Next error in \TeX/\LaTeX\ session}{C-c `} \key{Previous error in \TeX/\LaTeX\ session}{M-g p} \key{Toggle debug of bad boxes}{C-c C-t C-b} \key{Toggle debug of warnings}{C-c C-t C-w} \key{View output file}{C-c C-v} \key{Compile all and view output file}{C-c C-a} Commands you can run on the master file (with \kbd{C-c C-c}) or the region (with \kbd{C-c C-r}) include the following (starred versions are not available in all modes): \def\star{\llap{\rm*}} \key{\TeX}{\star TeX} \key{\LaTeX}{\star LaTeX} \key{Con\TeX{}t (once)}{\star ConTeXt} \key{Con\TeX{}t Full}{\star ConTeXt Full} \key{Makeinfo}{\star Makeinfo} \key{Makeinfo with HTML output}{\star Makeinfo HTML} \key{Appropriate previewer}{View} \key{Print the output}{Print} \key{Bib\TeX}{BibTeX} \key{Biber}{Biber} \key{MakeIndex}{Index} \key{LaCheck}{Check} \key{Make (PostScript) File}{File} \key{Ispell}{Spell} \key{Delete intermediate files}{Clean} \key{Delete all output files}{Clean All} \section{\TeX ing options} \TeX\ runs can come in various types, which may be toggled and are indicated in the mode line. \key{PDF/DVI mode}{C-c C-t C-p} \key{Stop on errors (Interactive mode)}{C-c C-t C-i} \key{I/O correlation (S. Specials, Sync\TeX)}{C-c C-t C-s} \section{Miscellaneous} \key{Read AUC\TeX\ manual}{C-c TAB} \key{Find documentation}{C-c ?} \key{Math Mode}{C-c \string~} \key{Reset Buffer}{C-c C-n} \key{Reset AUC\TeX}{C-u C-c C-n} \section{Multifile Handling} \key{Save Document}{C-c C-d} \key{Switch to master file or active buffer}{C-c ^} \key{Query for a master file}{C-c \_} \section{Command Insertion} \key{Insert Section}{C-c C-s} \key{Insert \LaTeX\ environment}{C-c C-e} \key{Insert item}{C-c LFD} \key{Insert item (alias)}{M-RET} \key{Close \LaTeX\ environment}{C-c ]} \key{Insert \TeX\ macro \kbd{\{\}} }{C-c C-m} \key{Insert double brace}{C-c \{} \key{Complete \TeX\ macro}{M-TAB} \key{Smart ``quote''}{"} \key{Smart ``dollar''}{\$} \section{Font Selection} \key{Insert {\bf bold\/} text}{C-c C-f C-b} \key{Insert {\it italics\/} text}{C-c C-f C-i} \key{Insert {\rm roman} text}{C-c C-f C-r} \key{Insert {\it emphasized\/} text}{C-c C-f C-e} \key{Insert {\tt typewriter\/} text}{C-c C-f C-t} \key{Insert {\sl slanted\/} text}{C-c C-f C-s} \key{Insert {\sc Small Caps\/} text}{C-c C-f C-c} \key{Delete font}{C-c C-f C-d} \key{Replace font}{C-u C-c C-f \} \section{Source Formatting} \key{Indent current line}{TAB} \key{Indent next line}{LFD} \key{Format a paragraph}{M-q} \key{Format a region}{C-c C-q C-r} \key{Format a section}{C-c C-q C-s} \key{Format an environment}{C-c C-q C-e} \key{Mark an environment}{C-c .} \key{Mark a section}{C-c *} \key{Comment or uncomment region}{C-c ;} \key{Comment or uncomment paragraph}{C-c \%} \copyrightnotice \newcolumn \title{Math Mode} \section{Variables} All math mode commands are under the prefix key specified by LaTeX-math-abbrev-prefix, default is "`". You can define your own math mode commands by setting the variable LaTeX-math-list before loading LaTeX-math-mode. \section{Greek Letters} \def\disp#1{\hbox to 6ex{$#1$\hfill}} \def\twocol#1\par{{% \def\key##1##2{##1&##2\cr}% \setbox0\vbox{\halign to 0.45\hsize{\tabskip0ptplus1fil\relax ##\hfil&\kbd{##}\hfil\cr\vrule width0ptheight\ht\strutbox#1}}% \line{% \splittopskip=\ht\strutbox \dimen0\ht0 \advance\dimen0\baselineskip \setbox2\vsplit0to0.5\dimen0 \vtop{\unvbox2}\hfill\raise \ht\strutbox \vtop {\unvbox0}}}} \def\keycs#1#2#{\keycsii#1{#2}} \def\keycsii#1#2#3{\key{\disp{#1#2} ({\tt\string#1})}{#3}} \twocol \keycs\alpha{a} \keycs\beta{b} \keycs\gamma{g} \keycs\delta{d} \keycs\epsilon{e} \keycs\zeta{z} \keycs\eta{h} \keycs\theta{j} \keycs\kappa{k} \keycs\lambda{l} \keycs\mu{m} \keycs\nu{n} \keycs\xi{x} \keycs\pi{p} \keycs\rho{r} \keycs\sigma{s} \keycs\tau{t} \keycs\upsilon{u} \keycs\phi{f} \keycs\chi{q} \keycs\psi{y} \keycs\omega{w} \keycs\Delta{D} \keycs\Gamma{G} \keycs\Theta{J} \keycs\Lambda{L} \keycs\Xi{X} \keycs\Pi{P} \keycs\Sigma{S} \keycs\Upsilon{U} \keycs\Phi{F} \keycs\Psi{Y} \keycs\Omega{W} \section{Symbols} \twocol \keycs\rightarrow{C-f} \keycs\leftarrow{C-b} \keycs\uparrow{C-p} \keycs\downarrow{C-n} \keycs\leq{<} \keycs\geq{>} \keycs\tilde x{\string~} \keycs\hat x{^} \keycs\nabla{N} \keycs\infty{I} \keycs\forall{A} \keycs\exists{E} \keycs\not \ {/} \keycs\in{i} \keycs\times{*} \keycs\cdot{.} \keycs\colon{:} \keycs\subset{\{} \keycs\supset{\}} \keycs\subseteq{[} \keycs\supseteq{]} \keycs\emptyset{0} \keycs\setminus{\\} \keycs\cup{+} \keycs\cap{-} \keycs\langle{(} \keycs\rangle{)} \keycs\exp{C-e} \keycs\sin{C-s} \keycs\cos{C-c} \keycs\sup{C-^} \keycs\inf{C-_} \keycs\det{C-d} \keycs\lim{C-l} \keycs\tan{C-t} \keycs\vee{|} \keycs\wedge{\&} \section{Miscellaneous} \key{cal letters}{c \} \newcolumn \def\previewlatex{{preview-latex}} \title{\previewlatex} \section{Activation} \previewlatex\ is part of AUC\TeX. If it is active, you should see an entry ``Preview'' in the menu bar when editing \LaTeX{} files. If you have a ``LaTeX'', but no ``Preview'' menu, add the following to your {\tt .emacs} file: \beginexample (load "preview-latex.el" nil t t) \endexample \section{Usage and keybindings} \previewlatex\ operation only affects the display of the buffer, not its contents. It runs only on demand, using the target {\sc dvi} or {\sc PDF} files in the process. The first command in the following list (also on the toolbar button) will (as applicable) repreview an active region or a single modified preview, toggle the visibility of an unmodified preview or generate previews for a surrounding buffer area up to the next preview. \key{Preview at point}{C-c C-p C-p} \key{Preview environment}{C-c C-p C-e} \key{Preview region}{C-c C-p C-r} \key{Preview buffer}{C-c C-p C-b} \key{Preview document}{C-c C-p C-d} \key{Remove previews at point}{C-c C-p C-c C-p} \key{Remove previews from region}{C-c C-p C-c C-r} \key{Remove previews from buffer}{C-c C-p C-c C-b} \key{Remove previews from document}{C-c C-p C-c C-d} \key{Cache preamble}{C-c C-p C-f} \key{Switch off preamble cache}{C-c C-p C-c C-f} \key{Read Texinfo manual}{C-c C-p TAB} \key{Copy region as MML}{C-c C-p C-w} The last keysequence will copy a region with previews into the kill buffer in a form fit for sending in Emacs' message-mode. \section{Customization within Emacs} You can use \kbd{M-x customize-variable RET} or the ``Preview\slash Customize'' menu for customization. Worthwhile settings: \halign to \hsize{\tabskip=1ptplus1fil\relax#\hfil&\hfil\kbd{#}\tabskip0pt\cr \noalign{\medskip If you have dvipng available:} Set to \kbd{dvipng}&preview-image-type\cr \noalign{\medskip \vbox{Keep counter values when regenerating single previews:}} Set to \kbd{t}&preview-preserve-counters\cr \noalign{\medskip \vbox{Cache/Don't cache preamble without query (preamble caching is done using {\tt mylatex.ltx} and might not always work. Use the appropriate key sequences for overriding the following setting):}} Set to \kbd{t}/\kbd{nil}&preview-auto-cache-preamble\cr} \section{Customization from \LaTeX{}} Customization is done in the document preamble (you need to load {\tt preview.sty} explicitly) or in {\tt prauctex.cfg} (which should load the system {prauctex.cfg} first). Commands: \halign to \hsize{\tabskip=1ptplus1fil\relax#\hfil&\hfil\kbd{#}\tabskip0pt\cr Preview macro&\string\PreviewMacro[\{\\}]\{\\}\cr Preview env&\string\PreviewEnvironment[\{\\}]\{\\}\cr Skip macro&\string\PreviewMacro*[\{\\}]\{\\}\cr Skip env&\string\PreviewEnvironment*[\{\\}]\{\\}\cr \noalign{\smallskip Diverting material from float environments} Snarf stuff&\string\PreviewSnarfEnvironment[\{\\}]\{\\}\cr } Values to be used within \: \halign to \hsize{\tabskip=1ptplus1fil\relax#\hfil&\hfil\kbd{#}\tabskip0pt\cr Optional argument&[]\cr Mandatory argument&\{\}\cr Optional star&*\cr Conditionals&?\\{\\}\{\\}\cr Skip next token&-\cr Transformation&\#\{\\}\{\\}\cr } More options and explanations can be found in {\tt preview.dvi} or the Texinfo manual. \vskip 5ex plus 6ex minus 1ex \title{Folding Source Display} \key{Toggle folding mode}{C-c C-o C-f} \key{Hide all items in buffer}{C-c C-o C-b} \key{Hide all items in region}{C-c C-o C-r} \key{Hide all items in paragraph}{C-c C-o C-p} \key{Hide current macro}{C-c C-o C-m} \key{Hide current environment}{C-c C-o C-e} \key{Show all items in buffer}{C-c C-o b} \key{Show all items in region}{C-c C-o r} \key{Show all items in paragraph}{C-c C-o p} \key{Show current item}{C-c C-o i} \key{Hide or show current item}{C-c C-o C-o} \vskip 5ex plus 6ex minus 1ex \title{Outlining \TeX\ Documents} AUC\TeX\ supports outline mode by defining section, subsection, etc. as heading levels. You can use \kbd{M-x outline-minor-mode RET} to toggle outline minor mode. All outline minor mode commands are under the prefix key specified by outline-minor-mode-prefix, default is ``C-c @''. \key{Hide all of buffer except headings}{C-c @ C-t} \key{Show all text in buffer}{C-c @ C-a} \key{Hide body following this heading}{C-c @ C-c} \key{Show body following this heading}{C-c @ C-e} \key{Hide subtree}{C-c @ C-d} \key{Show subtree}{C-c @ C-s} \key{All subheadings visible}{C-c @ C-k} \key{next visible heading}{C-c @ C-n} \key{previous visible heading}{C-c @ C-p} \key{forward to next subheading}{C-c @ C-f} \key{backward to next subheading}{C-c @ C-b} \key{up one heading level}{C-c @ C-u} \newcolumn \iftrue % RefTeX long version \title{RefTeX} \section{Activation} RefTeX is part of [X]Emacs. To activate and make it interact with AUCTeX, insert the following lines in .emacs. \vskip-3mm \beginexample (add-hook 'LaTeX-mode-hook 'turn-on-reftex) (setq reftex-plug-into-auctex t) \endexample \section{Table of Contents} The table of contents is a structured view of the entire document. It contains the sections, and optionally labels, index entries, and file boundaries. \key{Show the table of contents$\sp1$}{C-c =} \key{Recenter *toc* buffer to here$\sp1$}{C-c -} \section{Crossreferences, Citations, Index} \key{Insert unique label$\sp1$}{C-c (} \key{Reference a label$\sp1$}{C-c )} \key{Insert citation with key selection}{C-c [} \key{\dots\ prompt for optional arguments}{C-u C-c [} \key{Index word at point with default macro}{C-c /} \key{Insert an index entry}{C-c <} \key{Add word to index phrases}{C-c \\} \key{Visit index phrases buffer}{C-c |} \key{Compile and display index}{C-c >} \key{View cross reference$\sp1$}{C-c \&} \key{View cross reference with mouse}{S-mouse-2} \key{View cross reference from BibTeX file}{C-c \&} \section{Standard keys in special buffers} RefTeX's special buffers have many active keys. The common ones are: \key{Display summary of active keys}{?} \key{Select this item}{RET} \key{Rescan the document}{r} \key{Display location in other window}{SPC} \key{Follow mode}{f} \section{Multifile actions} Since RefTeX scans the entire (multifile) document, it can provide commands that act on all files of a document. Check the {\tt Ref->Global Actions} menu for these commands. \section{Variables} To tell reftex about your own macro definitions, customize the variables \vskip-3mm \beginexample reftex-label-alist reftex-section-levels reftex-index-macros reftex-cite-format \endexample \vskip2mm\hrule $\sp1$ An argument of \kbd{C-u} triggers a document scan first. This can be necessary if file content and RefTeX's knowledge are no longer consistent. \else % RefTeX compact version \csname title\endcsname{RefTeX} \section{Activation in .emacs} \vskip-4mm \beginexample (add-hook 'LaTeX-mode-hook 'turn-on-reftex) (setq reftex-plug-into-auctex t) \endexample \section{Table of Contents} \key{Show the table of contents$\sp1$}{C-c =} \key{Recenter *toc* buffer to here$\sp1$}{C-c -} \section{Crossreferences, Citations, Index} \key{Insert unique label$\sp1$}{C-c (} \key{Reference a label$\sp1$}{C-c )} \key{Insert citation with key selection}{C-c [} \key{... prompt for optional arguments}{C-u C-c [} \key{Index word at point with default macro}{C-c /} \key{Insert an index entry}{C-c <} \key{Add word to index phrases}{C-c \\} \key{Visit index phrases buffer}{C-c |} \key{Compile and display index}{C-c >} \key{View cross reference$\sp1$}{C-c \&} \key{View cross reference with mouse}{S-mouse-2} \key{View cross reference from BibTeX file}{C-c \&} \vskip2mm\hrule $\sp1$ An argument of \kbd{C-u} triggers a document scan first. \fi \bye %%% Local Variables: %%% mode: plain-TeX %%% TeX-master: t %%% End: auctex-11.91/doc/todo.texi000066400000000000000000000214161313533625700154370ustar00rootroot00000000000000@c This is part of the AUCTeX Manual. @c Copyright (C) 2004-2006, 2008, 2009, 2013-2015 Free Software @c Foundation, Inc. @c See the file auctex.texi for copying conditions. @ifset rawfile @include macros.texi @node Development,,(dir),(dir) @top Future Development of @AUCTeX{} @end ifset The following sections describe future development of @AUCTeX{}. Besides mid-term goals, bug reports and requests we cannot fix or honor right away are being gathered here. If you have some time for Emacs Lisp hacking, you are encouraged to try to provide a solution to one of the following problems. If you don't know Lisp, you may help us to improve the documentation. It might be a good idea to discuss proposed changes on the mailing list of @AUCTeX{} first. @menu * Mid-term Goals:: * Wishlist:: * Bugs:: @end menu @ifset rawfile @node Mid-term Goals @chapter Mid-term Goals @raisesections @end ifset @ifclear rawfile @node Mid-term Goals @section Mid-term Goals @end ifclear @itemize @bullet @item Integration of @previewlatex{} into @AUCTeX{} As of @AUCTeX{} 11.81 @previewlatex{} is a part of @AUCTeX{} in the sense that the installation routines were merged and @previewlatex{} is being packaged with @AUCTeX{}. Further integration will happen at the backend. This involves folding of error parsing and task management of both packages which will ease development efforts and avoid redundant work. @item Error help catalogs Currently, the help for errors is more or less hardwired into @file{tex.el}. For supporting error help in other languages, it would be sensible to instead arrange error messages in language-specific files, make a common info file from all such catalogs in a given language and look the error texts up in an appropriate index. The user would then specify a preference list of languages, and the errors would be looked up in the catalogs in sequence until they were identified. @item Combining @samp{docTeX} with RefTeX Macro cross references should also be usable for document navigation using RefTeX. @end itemize @node Wishlist @section Wishlist @itemize @bullet @item Documentation lookup for macros A parser could gather information about which macros are defined in which @LaTeX{} packages and store the information in a hashtable which can be used in a backend for @code{TeX-doc} in order to open the matching documentation for a given macro. The information could also be used to insert an appropriate @samp{\usepackage} statement if the user tries to insert a macro for which the respective package has not been requested yet. @item Improvements to error reporting Fringe indicators for errors in the main text would be nice. @item A math entry grid A separate frame with a table of math character graphics to click on in order to insert the respective sequence into the buffer (cf. the ``grid'' of x-symbol). @item Crossreferencing support It would be nice if you could index process your favorite collection of @file{.dtx} files (such as the LaTeX source), just call a command on arbitrary control sequence, and get either the DVI viewer opened right at the definition of that macro (using Source Specials), or the source code of the @file{.dtx} file. @item Better plain TeX support For starters, @code{LaTeX-math-mode} is not very @LaTeX{}-specific in the first place, and similar holds for indentation and formatting. @item Page count when compiling should (optionally) go to modeline of the window where the compilation command was invoked, instead of the output window. Suggested by Karsten Tinnefeld . @item Command to insert a macrodefinition in the preamble, without moving point from the current location. Suggested by "Jeffrey C. Ely" . @item A database of all commands defined in all stylefiles. When a command or environment gets entered that is provided in one of the styles, insert the appropriate @code{\usepackage} in the preamble. @item A way to add and overwrite math mode entries in style files, and to decide where they should be. Suggested by Remo Badii . @item Create template for (first) line of tabular environment. @item @c Already fixed? I think prompting for the master is the intended behaviour. It corresponds to a `shared' value for TeX-master. There should probably be a `none' value which wouldn't query for the master, but instead disable all features that relies on TeX-master. This default value for TeX-master could then be controled with mapping based on the extension. @item Use index files (when available) to speed up @kbd{C-c C-m include @key{RET}}. @item Option not to calculate very slow completions like for @kbd{C-c C-m include @key{RET}}. @item Font menu should be created from @code{TeX-font-list}. @item Installation procedure written purely in emacs lisp. @item Included PostScript files should also be counted as part of the document. @item A nice hierarchical by-topic organization of all officially documented LaTeX macros, available from the menu bar. @item @code{TeX-command-default} should be set from the master file, if not set locally. Suggested by Peter Whaite @samp{}. @item Make @AUCTeX{} work with @samp{crypt++}. Suggested by Chris Moore @samp{}. @item Make @AUCTeX{} work with @samp{longlines}. This would also apply to @previewlatex{}, though it might make sense to unify error processing before attempting this. @item The @samp{Spell} command should apply to all files in a document. Maybe it could try to restrict to files that have been modified since last spell check? Suggested by Ravinder Bhumbla @samp{}. @item Make @key{.} check for abbreviations and sentences ending with capital letters. @item Use Emacs 19 minibuffer history to choose between previewers, and other stuff. Suggested by John Interrante @samp{}. @item Documentation of variables that can be set in a style hook. We need a list of what can safely be done in an ordinary style hook. You can not set a variable that @AUCTeX{} depends on, unless @AUCTeX{} knows that it has to run the style hooks first. Here is the start of such a list. @table @code @item LaTeX-add-environments @item TeX-add-symbols @item LaTeX-add-labels @item LaTeX-add-bibliographies @item LaTeX-largest-level @end table @item Outline should be (better) supported in @TeX{} mode. At least, support headers, trailers, as well as TeX-outline-extra. @item @code{TeX-header-start} and @code{TeX-trailer-end}. We might want these, just for fun (and outlines) @item Plain @TeX{} and @LaTeX{} specific header and trailer expressions. We should have a way to globally specify the default value of the header and trailer regexps. @item Get closer to original @code{TeX-mode} keybindings. A third initialization file (@file{tex-mode.el}) containing an emulator of the standard @code{TeX-mode} would help convince some people to change to @AUCTeX{}. @item Use markers in @code{TeX-error-list} to remember buffer positions in order to be more robust with regard to line numbers and changed files. @item Finish the Texinfo mode. For one thing, many Texinfo mode commands do not accept braces around their arguments. @item Hook up the letter environment with @file{bbdb.el}. @end itemize @node Bugs @section Bugs @c FIXME: Are those bugs still present? @itemize @bullet @item The style hooks automatically generated by parsing files for @file{example.dtx}, @file{example.sty}, @file{example.drv} and @file{example.bib} all clash. Bad. Clash with hand-written style hooks should be removed by dialect discrimination --- to be checked. @item @kbd{C-c `} should always stay in the current window, also when it finds a new file. @item Do not overwrite emacs warnings about existing auto-save files when loading a new file. @item Maybe the regexp for matching a TeX symbol during parsing should be @samp{"\\\\\\([a-zA-Z]+\\|.\\)"} --- @samp{} Peter Thiemann. @item @AUCTeX{} should not parse verbatim environments. @item Make @samp{`} check for math context in @code{LaTeX-math-mode}. and simply self insert if not in a math context. @item Make @code{TeX-insert-dollar} more robust. Currently it can be fooled by @samp{\mbox}'es and escaped double dollar for example. @item Correct indentation for tabular, tabbing, table, math, and array environments. @item No syntactic font locking of verbatim macros and environments. (XEmacs only) @item Font locking inside of verbatim macros and environments is not inhibited. This may result in syntax highlighting of unbalanced dollar signs and the like spilling out of the verbatim content. (XEmacs only) @item Folding of @LaTeX{} constructs spanning more than one line may result in overfull lines. (XEmacs only) @end itemize @c Local Variables: @c mode: texinfo @c TeX-master: "auctex" @c End: auctex-11.91/doc/wininstall.texi000066400000000000000000000354471313533625700166670ustar00rootroot00000000000000@c This is part of the AUCTeX Manual. @c Copyright (C) 2003, 2004, 2005, 2006, 2007, 2009 @c Free Software Foundation, Inc. @c See the file auctex.texi for copying conditions. @ifset rawfile @include macros.texi @end ifset @subheading In a Nutshell The following are brief installation instructions for the impatient. In case you don't understand some of this, run into trouble of some sort, or need more elaborate information, refer to the detailed instructions further below. @enumerate @item Install the prerequisites, i.e. Emacs or XEmacs, MSYS or Cygwin, a @TeX{} system, and Ghostscript. @item Open the MSYS shell or a Cygwin shell and change to the directory containing the unzipped file contents. @item Configure @AUCTeX{}: For Emacs: Many people like to install @AUCTeX{} into the pseudo file system hierarchy set up by the Emacs installation. Assuming Emacs is installed in @file{C:/Program Files/Emacs} and the directory for local additions of your @TeX{} system, e.g. MiK@TeX{}, is @file{C:/localtexmf}, you can do this by typing the following statement at the shell prompt: @example ./configure --prefix='C:/Program Files/Emacs' \ --infodir='C:/Program Files/Emacs/info' \ --with-texmf-dir='C:/localtexmf' @end example For XEmacs: You can install @AUCTeX{} as an XEmacs package. Assuming XEmacs is installed in @file{C:/Program Files/XEmacs} and the directory for local additions of your @TeX{} system, e.g. MiK@TeX{}, is @file{C:/localtexmf}, you can do this by typing the following command at the shell prompt: @example ./configure --with-xemacs='C:/Program Files/XEmacs/bin/xemacs' \ --with-texmf-dir='C:/localtexmf' @end example The commands above are examples for common usage. More on configuration options can be found in the detailed installation instructions below. If the configuration script failed to find all required programs, make sure that these programs are in your system path and add directories containing the programs to the @env{PATH} environment variable if necessary. Here is how to do that in W2000/XP: @enumerate @cindex Adding to @env{PATH} in Windows @cindex @env{PATH} in Windows @item On the desktop, right click ``My Computer'' and select properties. @item Click on ``Advanced'' in the ``System Properties'' window. @item Select ``Environment Variables''. @item Select ``path'' in ``System Variables'' and click ``edit''. Move to the front in the line (this might require scrolling) and add the missing path including drive letter, ended with a semicolon. @end enumerate @item If there were no further error messages, type @example make @end example In case there were, please refer to the detailed description below. @item Finish the installation by typing @example make install @end example @end enumerate @subheading Detailed Installation Instructions Installation of @AUCTeX{} under Windows is in itself not more complicated than on other platforms. However, meeting the prerequisites might require more work than on some other platforms, and feel less natural. If you are experiencing any problems, even if you think they are of your own making, be sure to report them to @email{auctex-devel@@gnu.org} so that we can explain things better in future. Windows is a problematic platform for installation scripts. The main problem is that the installation procedure requires consistent file names in order to find its way in the directory hierarchy, and Windows path names are a mess. The installation procedure tries finding stuff in system search paths and in Emacs paths. For that to succeed, you have to use the same syntax and spelling and case of paths everywhere: in your system search paths, in Emacs' @code{load-path} variable, as argument to the scripts. If your path names contain spaces or other `shell-unfriendly' characters, most notably backslashes for directory separators, place the whole path in @samp{"double quote marks"} whenever you specify it on a command line. Avoid `helpful' magic file names like @samp{/cygdrive/c} and @samp{C:\PROGRA~1\} like the plague. It is quite unlikely that the scripts will be able to identify the actual file names involved. Use the full paths, making use of normal Windows drive letters like @samp{ 'C:/Program Files/Emacs' } where required, and using the same combination of upper- and lowercase letters as in the actual files. File names containing shell-special characters like spaces or backslashes (if you prefer that syntax) need to get properly quoted to the shell: the above example used single quotes for that. Ok, now here are the steps to perform: @enumerate @item You need to unpack the @AUCTeX{} distribution (which you seemingly have done since you are reading this). It must be unpacked in a separate installation directory outside of your Emacs file hierarchy: the installation will later copy all necessary files to their final destination, and you can ultimately remove the directory where you unpacked the files. Line endings are a problem under Windows. The distribution contains only text files, and theoretically most of the involved tools should get along with that. However, the files are processed by various utilities, and it is conceivable that not all of them will use the same line ending conventions. If you encounter problems, it might help if you try unpacking (or checking out) the files in binary mode, if your tools allow that. If you don't have a suitable unpacking tool, skip to the next step: this should provide you with a working @samp{unzip} command. @item The installation of @AUCTeX{} will require the MSYS tool set from @uref{http://www.mingw.org/} or the Cygwin tool set from @uref{http://cygwin.com/}. The latter is slower and larger (the download size of the base system is about 15 MB) but comes with a package manager that allows for updating the tool set and installing additional packages like, for example, the spell checker @w{aspell}. If Cygwin specific paths like @samp{/cygdrive/c} crop up in the course of the installation, using a non-Cygwin Emacs could conceivably cause trouble. Using Cygwin either for everything or nothing might save headaches, @emph{if} things don't work out. @item Install a current version of XEmacs from @uref{http://www.xemacs.org/} or @w{Emacs} from @uref{ftp://ftp.gnu.org/gnu/emacs/windows/}. @w{Emacs} is the recommended choice because it is currently the primary platform for @AUCTeX{} development. @item You need a working @TeX{} installation. One popular installation under Windows is @uref{http://www.miktex.org,MiK@TeX{}}. Another much more extensive system is @uref{http://www.tug.org/texlive,@w{@TeX{} Live}} which is rather close to its Unix cousins. @item A working copy of @uref{http://www.cs.wisc.edu/~ghost/,Ghostscript} is required for @previewlatex{} operation. Examining the output from @example gswin32c -h @end example on a Windows command line should tell you whether your Ghostscript supports the @code{png16m} device needed for @acronym{PNG} support. MiKTeX apparently comes with its own Ghostscript called @samp{mgs.exe}. @item @uref{http://www.perl.org,Perl} is needed for rebuilding the documentation if you are working with a copy from @acronym{Git} or have touched documentation source files in the @previewlatex{} part. If the line endings of the file @file{preview/latex/preview.dtx} don't correspond with what Perl calls @code{\n} when reading text files, you'll run into trouble. @item Now the fun stuff starts. If you have not yet done so, unpack the @AUCTeX{} distribution into a separate directory after rereading the instructions for unpacking above. @item Ready for takeoff. Start some shell (typically @command{bash}) capable of running @command{configure}, change into the installation directory and call @command{./configure} with appropriate options. Typical options you'll want to specify will be @table @code @item --prefix=@var{drive:/path/to/emacs-hierarchy} which tells @file{configure} where to perform the installation. It may also make @file{configure} find Emacs or XEmacs automatically; if this doesn't happen, try one of @samp{--with-emacs} or @samp{--with-xemacs} as described below. All automatic detection of files and directories restricts itself to directories below the @var{prefix} or in the same hierarchy as the program accessing the files. Usually, directories like @file{man}, @file{share} and @file{bin} will be situated right under @var{prefix}. This option also affects the defaults for placing the Texinfo documentation files (see also @samp{--infodir} below) and automatically generated style hooks. If you have a central directory hierarchy (not untypical with Cygwin) for such stuff, you might want to specify its root here. You stand a good chance that this will be the only option you need to supply, as long as your @TeX{}-related executables are in your system path, which they better be for @AUCTeX{}'s operation, anyway. @item --with-emacs if you are installing for a version of Emacs. You can use @samp{--with-emacs=@var{drive:/path/to/emacs}} to specify the name of the installed Emacs executable, complete with its path if necessary (if Emacs is not within a directory specified in your @env{PATH} environment setting). @item --with-xemacs if you are installing for a version of XEmacs. Again, you can use @samp{--with-xemacs=@var{drive:/path/to/xemacs}} to specify the name of the installed XEmacs executable complete with its path if necessary. It may also be necessary to specify this option if a copy of Emacs is found in your @env{PATH} environment setting, but you still would like to install a copy of @AUCTeX{} for XEmacs. @item --with-packagedir=@var{drive:/dir} is an XEmacs-only option giving the location of the package directory. This will install and activate the package. Emacs uses a different installation scheme: @item --with-lispdir=@var{drive:/path/to/site-lisp} This Emacs-only option tells a place in @code{load-path} below which the files are situated. The startup files @file{auctex.el} and @file{preview-latex.el} will get installed here unless a subdirectory @file{site-start.d} exists which will then be used instead. The other files from @AUCTeX{} will be installed in a subdirectory called @file{auctex}. If you think that you need a different setup, please refer to the full installation instructions in @ifset rawfile the @file{INSTALL} file. @end ifset @ifclear rawfile @ref{Configure}. @end ifclear @item --infodir=@var{drive:/path/to/info/directory} If you are installing into an Emacs directory, info files have to be put into the @file{info} folder below that directory. The configuration script will usually try to install into the folder @file{share/info}, so you have to override this by specifying something like @samp{--infodir='C:/Program Files/info'} for the configure call. @item --with-auto-dir=@var{drive:/dir} Directory containing automatically generated information. You should not normally need to set this, as @samp{--prefix} should take care of this. @item --disable-preview Use this option if your Emacs version is unable to support image display. This will be the case if you are using a native variant of @w{Emacs 21}. @item --with-texmf-dir=@var{drive:/dir} This will specify the directory where your @TeX{} installation sits. If your @TeX{} installation does not conform to the TDS (@TeX{} directory standard), you may need to specify more options to get everything in place. @end table For more information about any of the above and additional options, see @ifset rawfile the `Configure' section in the @file{INSTALL} file. @end ifset @ifclear rawfile @ref{Configure}. @end ifclear Calling @file{./configure --help=recursive} will tell about other options, but those are almost never required. Some executables might not be found in your path. That is not a good idea, but you can get around by specifying environment variables to @file{configure}: @example GS="@var{drive:/path/to/gswin32c.exe}" ./configure @dots{} @end example should work for this purpose. @file{gswin32c.exe} is the usual name for the required @emph{command line} executable under Windows; in contrast, @file{gswin32.exe} is likely to fail. As an alternative to specifying variables for the @file{configure} call you can add directories containing the required executables to the @env{PATH} variable of your Windows system. This is especially a good idea if Emacs has trouble finding the respective programs later during normal operation. @item Run @command{make} in the installation directory. @item Run @code{make install} in the installation directory. @item With XEmacs, @AUCTeX{} and @previewlatex{} should now be active by default. With Emacs, activation depends on a working @file{site-start.d} directory or similar setup, since then the startup files @file{auctex.el} and @file{preview-latex.el} will have been placed there. If this has not been done, you should be able to load the startup files manually with @example (load "auctex.el" nil t t) (load "preview-latex.el" nil t t) @end example in either a site-wide @file{site-start.el} or your personal startup file (usually accessible as @file{~/.emacs} from within Emacs and @file{~/.xemacs/init.el} from within XEmacs). @cindex @file{tex-mik.el} The default configuration of @AUCTeX{} is probably not the best fit for Windows systems with MiK@TeX{}. You might want to add @example (require 'tex-mik) @end example after loading @file{auctex.el} and @file{preview-latex.el} in order to get more appropriate values for some customization options. You can always use @example @kbd{M-x customize-group RET AUCTeX RET} @end example in order to customize more stuff, or use the @samp{Customize} menu. @item Load @file{preview/circ.tex} into Emacs or XEmacs and see if you get the @samp{Command} menu. Try using it to @LaTeX{} the file. @item Check whether the @samp{Preview} menu is available in this file. Use it to generate previews for the document. If this barfs and tells you that image type @samp{png} is not supported, you can either add @acronym{PNG} support to your Emacs installation or choose another image format to be used by @previewlatex{}. Adding support for an image format usually involves the installation of a library, e.g. from @uref{http://gnuwin32.sf.net/}. If you got your Emacs from @uref{http://www.gnu.org} you might want to check its @uref{ftp://ftp.gnu.org/gnu/emacs/windows/README,README file} for details. A different image format can be chosen by setting the variable @code{preview-image-type}. While it is recommended to keep the @samp{dvipng} or @samp{png} setting, you can temporarily select a different format like @samp{pnm} to check if the lack of @acronym{PNG} support is the only problem with your Emacs installation. Try adding the line @example (setq preview-image-type 'pnm) @end example to your init file for a quick test. You should remove the line after the test again, because @acronym{PNM} files take away @strong{vast} amounts of disk space, and thus also of load/save time. @end enumerate Well, that about is all. Have fun! auctex-11.91/etc/000077500000000000000000000000001313533625700136015ustar00rootroot00000000000000auctex-11.91/etc/auctex-logo.tex000066400000000000000000000014641313533625700165570ustar00rootroot00000000000000% Copyright (C) Free Software Foundation, Inc. % License: GNU GPLv3 or later \documentclass{article} \usepackage{crimson,listings,tikz,geometry} \geometry{paperwidth=7.5mm,paperheight=7.5mm} \definecolor{bg}{HTML}{8596B0}\pagecolor{bg} \definecolor{fg}{HTML}{F0F0EA}\color{fg} \lstset{basicstyle=\color{fg!65!bg}\ttfamily, commentstyle=\itshape,language={[LaTeX]TeX}} \begin{document} \begin{tikzpicture}[overlay] \coordinate (a) at (-7.26pt,1.89098pt) {}; \node[inner sep=0pt] at (-0.265,0.07) {\resizebox{6.4mm}{!} {\lstinputlisting{\jobname}}}; \node[inner sep=0pt,align=center] at (a) {A\kern-0.05emU\kern-0.03emC\\[-0.7ex]% T\kern-.15em\lower.46ex% \hbox{\color[HTML]{CAE674}E}\kern-.06emX}; \end{tikzpicture} \end{document} %%% Local Variables: %%% mode: latex %%% TeX-master: t %%% End: auctex-11.91/font-latex.el000066400000000000000000002567071313533625700154520ustar00rootroot00000000000000;;; font-latex.el --- LaTeX fontification for Font Lock mode. ;; Copyright (C) 1996-2017 Free Software Foundation, Inc. ;; Authors: Peter S. Galbraith ;; Simon Marshall ;; Maintainer: auctex-devel@gnu.org ;; Created: 06 July 1996 ;; Keywords: tex, wp, faces ;;; This file is not part of GNU Emacs. ;; This package is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; This package is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to the ;; Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Commentary: ;; ;; This package enhances font-lock fontification patterns for LaTeX. ;; font-lock mode is a minor mode that causes your comments to be ;; displayed in one face, strings in another, reserved words in ;; another, and so on. ;; ;; ** Infinite loops !? ** ;; If you get an infinite loop, send a bug report! ;; Then set the following in your ~/.emacs file to keep on working: ;; (setq font-latex-do-multi-line nil) ;;; Code: (require 'font-lock) (require 'tex) (eval-when-compile (require 'cl)) (defgroup font-latex nil "Font-latex text highlighting package." :prefix "font-latex-" :group 'faces :group 'tex :group 'AUCTeX) (defgroup font-latex-keywords nil "Keywords for highlighting text in font-latex." :prefix "font-latex-" :group 'font-latex) (defgroup font-latex-highlighting-faces nil "Faces for highlighting text in font-latex." :prefix "font-latex-" :group 'font-latex) (defvar font-latex-multiline-boundary 5000 "Size of region to search for the start or end of a multiline construct.") (defvar font-latex-quote-regexp-beg nil "Regexp used to find quotes.") (make-variable-buffer-local 'font-latex-quote-regexp-beg) (defvar font-latex-quote-list '(("``" "''") ("<<" ">>" french) ("" "" french)) "List of quote specifiers for quotation fontification. Each element of the list is either a list consisting of two strings to be used as opening and closing quotation marks independently of the value of `font-latex-quotes' or a list with three elements where the first and second element are strings for opening and closing quotation marks and the third element being either the symbol 'german or 'french describing the order of quotes. If `font-latex-quotes' specifies a different state, order of the added quotes will be reversed for fontification. For example if '(\"\\\"<\" \"\\\">\" french) is given but `font-latex-quotes' specifies 'german, quotes will be used like \">foo\"< for fontification.") (defvar font-latex-quotes-control nil "Internal variable for keeping track if `font-latex-quotes' changed.") (make-variable-buffer-local 'font-latex-quotes-control) (defvar font-latex-quotes-internal nil "Internal variable for tracking outcome of automatic detection. If automatic detection is not enabled, it is assigned the value of `font-latex-quotes'.") (make-variable-buffer-local 'font-latex-quotes-internal) (defvar font-latex-quotes-fallback 'french "Fallback value for `font-latex-quotes' if automatic detection fails.") (defvar font-latex-quote-style-list-french '("french" "frenchb" "frenchle" "frenchpro" "francais" "canadien" "acadian" "italian") "List of styles for which French-style quote matching should be activated.") (defvar font-latex-quote-style-list-german '("austrian" "german" "germanb" "naustrian" "ngerman") "List of styles for which German-style quote matching should be activated.") (defcustom font-latex-quotes 'auto "Whether to fontify << French quotes >> or >>German quotes<<. Also selects \" versus \">quote\"<. If value `auto' is chosen, an attempt is being made in deriving the type of quotation mark matching from document settings like the language option supplied to the babel package. If nil, quoted content will not be fontified." :type '(choice (const auto) (const french) (const german) (const nil)) :group 'font-latex) (put 'font-latex-quotes 'safe-local-variable '(lambda (x) (memq x '(auto french german nil)))) (defun font-latex-add-quotes (quotes) "Add QUOTES to `font-latex-quote-list'. QUOTES has to be a list adhering to the format of an element of `font-latex-quote-list'." (setq font-latex-quotes-control nil) (add-to-list (make-local-variable 'font-latex-quote-list) quotes)) (defun font-latex-quotes-set-internal () "Set `font-latex-quotes-internal' according to `font-latex-quotes'. If `font-latex-quotes' is set to `auto', try to derive the correct value from document properties." (setq font-latex-quotes-internal (if (eq font-latex-quotes 'auto) (or (when (TeX-elt-of-list-member font-latex-quote-style-list-french TeX-active-styles) 'french) (when (TeX-elt-of-list-member font-latex-quote-style-list-german TeX-active-styles) 'german) font-latex-quotes-fallback) font-latex-quotes))) ;; Update the value of `font-latex-quotes-internal' when the list of ;; styles changes. (add-hook 'TeX-update-style-hook 'font-latex-quotes-set-internal) ;; The definitions of the title faces were originally taken from ;; info.el (Copyright (C) 1985, 86, 92, 93, 94, 95, 96, 97, 98, 99, ;; 2000, 2001 Free Software Foundation, Inc.) and adapted to the needs ;; of font-latex.el. (defconst font-latex-sectioning-max 5 "Highest number for font-latex-sectioning-N-face") (defface font-latex-sectioning-5-face (if (featurep 'xemacs) '((((type tty pc) (class color) (background light)) (:foreground "blue4" :bold t)) (((type tty pc) (class color) (background dark)) (:foreground "yellow" :bold t)) (((class color) (background light)) (:bold t :foreground "blue4" :family "helvetica")) (((class color) (background dark)) (:bold t :foreground "yellow" :family "helvetica")) (t (:bold t :family "helvetica"))) '((((type tty pc) (class color) (background light)) (:foreground "blue4" :weight bold)) (((type tty pc) (class color) (background dark)) (:foreground "yellow" :weight bold)) (((class color) (background light)) (:weight bold :inherit variable-pitch :foreground "blue4")) (((class color) (background dark)) (:weight bold :inherit variable-pitch :foreground "yellow")) (t (:weight bold :inherit variable-pitch)))) "Face for sectioning commands at level 5." :group 'font-latex-highlighting-faces) (defun font-latex-update-sectioning-faces (&optional max height-scale) "Update sectioning commands faces." (unless height-scale (setq height-scale (if (numberp font-latex-fontify-sectioning) ;; Make sure `height-scale' is a floating point ;; number because `set-face-attribute' treats ;; integers differently from floating points. (float font-latex-fontify-sectioning) 1.1))) (unless max (setq max font-latex-sectioning-max)) (dotimes (num max) (let* (;; reverse for XEmacs: (num (- max (1+ num))) (face-name (intern (format "font-latex-sectioning-%s-face" num)))) (unless (get face-name 'saved-face) ; Do not touch customized faces. (if (featurep 'xemacs) (let ((size ;; Multiply with .9 because `face-height' returns a value ;; slightly larger than the actual font size. ;; `make-face-size' takes numeric points according to Aidan ;; Kehoe in <16989.15536.613916.678965@parhasard.net> (not ;; documented). (round (* 0.9 (face-height 'default) (expt height-scale (- max 1 num)))))) ;; (message "%s - %s" face-name size) (make-face-size face-name size)) (set-face-attribute face-name nil :height height-scale)))))) (defcustom font-latex-fontify-sectioning 1.1 "Whether to fontify sectioning macros with varying height or a color face. If it is a number, use varying height faces. The number is used for scaling starting from `font-latex-sectioning-5-face'. Typically values from 1.05 to 1.3 give best results, depending on your font setup. If it is the symbol `color', use `font-lock-type-face'. Caveats: Customizing the scaling factor applies to all sectioning faces unless those face have been saved by customize. Setting this variable directly does not take effect unless you call `font-latex-update-sectioning-faces' or restart Emacs. Switching from `color' to a number or vice versa does not take effect unless you call \\[font-lock-fontify-buffer] or restart Emacs." ;; Possibly add some words about XEmacs here. :-( :type '(choice (number :tag "Scale factor") (const color)) :initialize 'custom-initialize-default :set (lambda (symbol value) (set-default symbol value) (unless (eq value 'color) (font-latex-update-sectioning-faces font-latex-sectioning-max value))) :group 'font-latex) (defun font-latex-make-sectioning-faces (max &optional height-scale) "Build the faces used to fontify sectioning commands." (unless max (setq max font-latex-sectioning-max)) (unless height-scale (setq height-scale (if (numberp font-latex-fontify-sectioning) ;; Make sure `height-scale' is a floating point ;; number because the integer type is treated ;; differently. (float font-latex-fontify-sectioning) 1.1))) (dotimes (num max) (let* (;; reverse for XEmacs: (num (- max (1+ num))) (face-name (intern (format "font-latex-sectioning-%s-face" num))) (f-inherit (intern (format "font-latex-sectioning-%s-face" (1+ num)))) (size (when (featurep 'xemacs) (round (* 0.9 (face-height 'default) (expt height-scale (- max 1 num))))))) (eval `(defface ,face-name (if (featurep 'xemacs) '((t (:size ,(format "%spt" size)))) '((t (:height ,height-scale :inherit ,f-inherit)))) (format "Face for sectioning commands at level %s. Probably you don't want to customize this face directly. Better change the base face `font-latex-sectioning-5-face' or customize the variable `font-latex-fontify-sectioning'." ',num) :group 'font-latex-highlighting-faces)) (when (and (featurep 'xemacs) ;; Do not touch customized faces. (not (get face-name 'saved-face))) (set-face-parent face-name f-inherit) ;; Explicitely set the size again to code around the bug that ;; `set-face-parent' overwrites the original face size. (make-face-size face-name size))))) (font-latex-make-sectioning-faces font-latex-sectioning-max) ;;; Keywords (defvar font-latex-keywords-1 nil "Subdued level highlighting for LaTeX modes.") (defvar font-latex-keywords-2 nil "High level highlighting for LaTeX modes.") (defvar font-latex-built-in-keyword-classes '(("warning" ("nopagebreak" "pagebreak" "newpage" "clearpage" "cleardoublepage" "enlargethispage" "nolinebreak" "linebreak" "newline" "-" "\\" "\\*" "appendix" "displaybreak" "allowdisplaybreaks" "include") font-latex-warning-face 1 noarg) ("variable" (("setlength" "|{\\{") ("settowidth" "|{\\{") ("settoheight" "{{") ("settodepth" "{{") ("setcounter" "{|{\\") ("addtolength" "|{\\{") ("addtocounter" "{|{\\") ("stepcounter" "{") ("refstepcounter" "{") ("arabic" "{") ("roman" "{") ("Roman" "{") ("alph" "{") ("Alph" "{") ("fnsymbol" "{")) font-lock-variable-name-face 2 command) ("biblatexnoarg" ("newrefsegment" "mancite" "pno" "ppno" "nopp" "psq" "psqq") font-lock-variable-name-face 2 noarg) ("biblatex" (("newrefsection" "[") ("ExecuteBibliographyOptions" "[{") ("printbibliography" "[") ("printshorthands" "[") ("printbibheading" "[") ("addbibresource" "[{") ("addglobalbib" "[{") ("addsectionbib" "[{") ("bibbysection" "[") ("bibbysegment" "[") ("bibbycategory" "[") ("DeclareBibliographyCategory" "{") ("addtocategory" "{{") ("defbibenvironment" "{{{{") ("defbibheading" "{[{") ("defbibnote" "{{") ("defbibfilter" "{{") ("defbibcheck" "{{") ("defbibentryset" "{{") ("Cite" "[[{") ("parencite" "*[[{") ("Parencite" "[[{") ("footcite" "[[{") ("footcitetext" "[[{") ("textcite" "[[{") ("Textcite" "[[{") ("smartcite" "[[{") ("Smartcite" "[[{") ("supercite" "{") ("autocite" "*[[{") ("Autocite" "*[[{") ("citeauthor" "*[[{") ("Citeauthor" "*[[{") ("citetitle" "*[[{") ("citeyear" "*[[{") ("citedate" "*[[{") ("citeurl" "[[{") ("parentext" "{") ("brackettext" "{") ("fullcite" "[[{") ("fullfootcite" "[[{") ("volcite" "[{[[") ("Volcite" "[{[[") ("pvolcite" "[{[[") ("Pvolcite" "[{[[") ("fvolcite" "[{[[") ("ftvolcite" "[{[[") ("svolcite" "[{[[") ("Svolcite" "[{[[") ("tvolcite" "[{[[") ("Tvolcite" "[{[[") ("avolcite" "[{[[") ("Avolcite" "[{[[") ("notecite" "[[{") ("Notecite" "[[{") ("pnotecite" "[[{") ("Pnotecite" "[[{") ("fnotecite" "[[{") ("citename" "[[{[{") ("citelist" "[[{[{") ("citefield" "[[{[{") ("citereset" "*") ("RN" "{") ("Rn" "{") ("DefineBibliographyStrings" "{{") ("DefineBibliographyExtras" "{{") ("UndefineBibliographyExtras" "{{") ("DefineHyphenationExceptions" "{{") ("NewBibliographyString" "{") ("autocites" "(([[{") ("Autocites" "(([[{") ("cites" "(([[{") ("Cites" "(([[{") ("parencites" "(([[{") ("Parencites" "(([[{") ("footcites" "(([[{") ("footcitetexts" "(([[{") ("smartcites" "(([[{") ("Smartcites" "(([[{") ("textcites" "(([[{") ("Textcites" "(([[{") ("supercites" "(([[{")) font-lock-constant-face 2 command) ("reference" (("nocite" "*{") ("cite" "*[[{") ("label" "{") ("pageref" "{") ("vref" "*{") ("eqref" "{") ("ref" "{") ("include" "{") ("input" "{") ("bibliography" "{") ("index" "{") ("glossary" "{") ("footnote" "[{") ("footnotemark" "[") ("footnotetext" "[{")) font-lock-constant-face 2 command) ("function" (("begin" "{") ("end" "{") ("pagenumbering" "{") ("thispagestyle" "{") ("pagestyle" "{") ("nofiles" "") ("includeonly" "{") ("bibliographystyle" "{") ("documentstyle" "[{") ("documentclass" "[{[") ("newenvironment" "*{[[{{") ("newcommand" "*|{\\[[{") ("newlength" "|{\\") ("newtheorem" "{[{[") ("providecommand" "*|{\\[[{") ("newcounter" "{[") ("renewenvironment" "*{[[{{") ("renewcommand" "*|{\\[[{") ("renewtheorem" "{[{[") ("usepackage" "[{[") ("fbox" "{") ("mbox" "{") ("rule" "[{{") ("vspace" "*{") ("hspace" "*{") ("thinspace" "") ("negthinspace" "") ;; XXX: Should macros without arguments rather be listed in a ;; separate category with 'noarg instead of 'command handling? ("enspace" "") ("enskip" "") ("quad" "") ("qquad" "") ("nonumber" "") ("centering" "") ("TeX" "") ("LaTeX" "")) font-lock-function-name-face 2 command) ("sectioning-0" (("part" "*[{")) (if (eq font-latex-fontify-sectioning 'color) 'font-lock-type-face 'font-latex-sectioning-0-face) 2 command) ("sectioning-1" (("chapter" "*[{")) (if (eq font-latex-fontify-sectioning 'color) 'font-lock-type-face 'font-latex-sectioning-1-face) 2 command) ("sectioning-2" (("section" "*[{")) (if (eq font-latex-fontify-sectioning 'color) 'font-lock-type-face 'font-latex-sectioning-2-face) 2 command) ("sectioning-3" (("subsection" "*[{")) (if (eq font-latex-fontify-sectioning 'color) 'font-lock-type-face 'font-latex-sectioning-3-face) 2 command) ("sectioning-4" (("subsubsection" "*[{")) (if (eq font-latex-fontify-sectioning 'color) 'font-lock-type-face 'font-latex-sectioning-4-face) 2 command) ("sectioning-5" (("paragraph" "*[{") ("subparagraph" "*[{") ("subsubparagraph" "*[{")) (if (eq font-latex-fontify-sectioning 'color) 'font-lock-type-face 'font-latex-sectioning-5-face) 2 command) ("slide-title" () font-latex-slide-title-face 2 command) ("textual" (("item" "[") ("title" "{") ("author" "{") ("date" "{") ("thanks" "{") ("address" "{") ("caption" "[{") ("textsuperscript" "{") ("textsubscript" "{") ("verb" "*")) font-lock-type-face 2 command) ("bold-command" (("textbf" "{") ("textsc" "{") ("textup" "{") ("boldsymbol" "{") ("pmb" "{")) font-latex-bold-face 1 command) ("italic-command" (("emph" "{") ("textit" "{") ("textsl" "{")) font-latex-italic-face 1 command) ("math-command" (("ensuremath" "|{\\")) font-latex-math-face 1 command) ("type-command" (("texttt" "{") ("textsf" "{") ("textrm" "{") ("textmd" "{") ("oldstylenums" "{")) font-lock-type-face 1 command) ("bold-declaration" ("bf" "bfseries" "sc" "scshape" "upshape") font-latex-bold-face 1 declaration) ("italic-declaration" ("em" "it" "itshape" "sl" "slshape") font-latex-italic-face 1 declaration) ("type-declaration" ("tt" "ttfamily" "sf" "sffamily" "rm" "rmfamily" "mdseries" "tiny" "scriptsize" "footnotesize" "small" "normalsize" "large" "Large" "LARGE" "huge" "Huge") font-lock-type-face 1 declaration)) "Built-in keywords and specifications for font locking. The first element of each item is the name of the keyword class. The second element is a list of keywords (macros without an escape character) to highlight or, if the fifth element is the symbol 'command, a list of lists where the first element of each item is a keyword and the second a string specifying the macro syntax. It can contain \"*\" if the macro has a starred variant, \"[\" for an optional argument, \"{\" for a mandatory argument, and \"\\\" for a macro. A \"|\" means the following two tokens should be regarded as alternatives. The third element is the symbol of a face to be used or a Lisp form returning a face symbol. The fourth element is the fontification level. The fifth element is the type of construct to be matched. It can be one of 'noarg which will match simple macros without arguments (like \"\\foo\"), 'declaration which will match macros inside a TeX group (like \"{\\bfseries foo}\"), or 'command which will match macros of the form \"\\foo[bar]{baz}\".") (defcustom font-latex-deactivated-keyword-classes nil "List of strings for built-in keyword classes to be deactivated. Valid entries are \"warning\", \"variable\", \"biblatexnoarg\", \"biblatex\", \"reference\", \"function\" , \"sectioning-0\", \"sectioning-1\", \"sectioning-2\", \"sectioning-3\", \"sectioning-4\", \"sectioning-5\", \"slide-title\", \"textual\", \"bold-command\", \"italic-command\", \"math-command\", \"type-command\", \"bold-declaration\", \"italic-declaration\", \"type-declaration\". You have to restart Emacs for a change of this variable to take effect." :group 'font-latex-keywords :type `(set ,@(mapcar (lambda (spec) `(const :tag ,(concat ;; Name of the keyword class (let ((name (split-string (car spec) "-"))) (setcar name (capitalize (car name))) (mapconcat 'identity name " ")) " keywords in `" ;; Name of the face (symbol-name (let ((face (nth 2 spec))) (if (symbolp face) face (eval face)))) "'.\n" ;; List of keywords (with-temp-buffer (insert " Keywords: " (mapconcat (lambda (x) (if (listp x) (car x) x)) (nth 1 spec) ", ")) (fill-paragraph nil) (buffer-string))) ,(car spec))) font-latex-built-in-keyword-classes))) (defun font-latex-make-match-defun (prefix name face type) "Return a function definition for keyword matching. The variable holding the keywords to match are determined by the strings PREFIX and NAME. The type of matcher is determined by the symbol TYPE. This is a helper function for `font-latex-make-built-in-keywords' and `font-latex-make-user-keywords' and not intended for general use." ;; Note: The functions are byte-compiled at the end of font-latex.el. ;; FIXME: Is the cond-clause possible inside of the defun? ;; In an earlier version of font-latex the type could be a list like ;; (command 1). This indicated a macro with one argument. Provide ;; a match function in this case but don't actually support it. (cond ((or (eq type 'command) (listp type)) (eval `(defun ,(intern (concat prefix name)) (limit) ,(concat "Fontify `" prefix name "' up to LIMIT. Generated by `font-latex-make-match-defun'.") (when ,(intern (concat prefix name)) (font-latex-match-command-with-arguments ,(intern (concat prefix name)) (append (when (boundp ',(intern (concat prefix name "-keywords-local"))) ,(intern (concat prefix name "-keywords-local"))) ,(intern (concat prefix name "-keywords"))) ;; `face' can be a face symbol, a form returning ;; a face symbol, or a list of face attributes. ,(if (and (listp face) (fboundp (car face))) face `',face) limit))))) ((eq type 'declaration) (eval `(defun ,(intern (concat prefix name)) (limit) ,(concat "Fontify `" prefix name "' up to LIMIT. Generated by `font-latex-make-match-defun'.") (when ,(intern (concat prefix name)) (font-latex-match-command-in-braces ,(intern (concat prefix name)) limit))))) ((eq type 'noarg) (eval `(defun ,(intern (concat prefix name)) (limit) ,(concat "Fontify `" prefix name "' up to LIMIT. Generated by `font-latex-make-match-defun'.") (when ,(intern (concat prefix name)) (re-search-forward ,(intern (concat prefix name)) limit t))))))) (defun font-latex-keyword-matcher (prefix name face type) "Return a matcher and highlighter as required by `font-lock-keywords'. PREFIX and NAME are strings which are concatenated to form the respective match function. FACE is a face name or a list of face attributes that will be applied to the respective part of the match returned by the match function. A lisp form returning a face name or a list of face attributes is also valid for FACE. TYPE is the type of construct to be highlighted. Currently the symbols 'command, 'declaration and 'noarg are valid. This is a helper function for `font-latex-make-built-in-keywords' and `font-latex-make-user-keywords' and not intended for general use." ;; Quote a list of face attributes and a face symbol ;; but do not quote a form returning such value. (unless (and (listp face) (fboundp (car face))) (setq face `',face)) ;; In an earlier version of font-latex the type could be a list like ;; (command 1). This indicated a macro with one argument. Provide ;; a matcher in this case but don't actually support it. (cond ((or (eq type 'command) (listp type)) `(,(intern (concat prefix name)) (0 (font-latex-matched-face 0) append t) (1 (font-latex-matched-face 1) append t) (2 (font-latex-matched-face 2) append t) (3 (font-latex-matched-face 3) append t) (4 (font-latex-matched-face 4) append t) (5 (font-latex-matched-face 5) append t) (6 (font-latex-matched-face 6) append t) (7 (font-latex-matched-face 7) append t))) ((eq type 'noarg) `(,(intern (concat prefix name)) (0 ,face))) ((eq type 'declaration) `(,(intern (concat prefix name)) (0 'font-latex-warning-face t t) (1 'font-lock-keyword-face append t) (2 ,face append t))))) (defun font-latex-make-built-in-keywords () "Build defuns, defvars and defcustoms for built-in keyword fontification." (dolist (item font-latex-built-in-keyword-classes) (let ((prefix "font-latex-match-") (name (nth 0 item)) (keywords (nth 1 item)) (face (nth 2 item)) (level (nth 3 item)) (type (nth 4 item))) ;; defvar font-latex-match-*-keywords-local (eval `(defvar ,(intern (concat prefix name "-keywords-local")) ',keywords ,(concat "Buffer-local keywords to add to `" prefix name "-keywords'.\n\n" (if (eq type 'command) "\ This must be a list where each element is a list consisting of a keyword string \(not a regular expression\) omitting the leading backslash and a format specifier as described in the doc string of `font-latex-user-keyword-classes'." "\ This must be a list where each element is a keyword string \(not a regular expression\) omitting the leading backslash.") "\n\n\ This is an internal variable which should not be set directly. Use `font-latex-add-keywords' instead. Generated by `font-latex-make-built-in-keywords'."))) (make-variable-buffer-local (intern (concat prefix name "-keywords-local"))) ;; defun font-latex-match-*-make ;; Note: The functions are byte-compiled at the end of font-latex.el. (eval `(defun ,(intern (concat prefix name "-make")) () ,(concat "Make or remake the variable `" prefix name "'. Generated by `font-latex-make-built-in-keywords'.") (let ((keywords (append (unless (member ,name font-latex-deactivated-keyword-classes) ,(intern (concat prefix name "-keywords-local"))) ,(intern (concat prefix name "-keywords")))) multi-char-macros single-char-macros) (dolist (elt keywords) (let ((keyword (if (listp elt) (car elt) elt))) (if (string-match "^[A-Za-z]" keyword) (push keyword multi-char-macros) (push keyword single-char-macros)))) (when (or multi-char-macros single-char-macros) (setq ,(intern (concat prefix name)) (concat "\\\\\\(" (when multi-char-macros (concat "\\(?:" (regexp-opt multi-char-macros) "\\)\\>")) (when single-char-macros (concat (when multi-char-macros "\\|") "\\(?:" (regexp-opt single-char-macros) "\\)")) "\\)")))))) ;; defcustom font-latex-match-*-keywords (eval `(defcustom ,(intern (concat prefix name "-keywords")) nil ,(concat "List of keywords " (when (eq type 'command) "and formats ") "for " name " face.\n" (if (eq type 'command) "\ Each element has to be a list consisting of the name of a macro omitting the leading backslash and a format specifier as described in the doc string of `font-latex-user-keyword-classes'." "\ Each element has to be the name of a macro as a string, omitting the leading backslash.") "\n\n\ Setting this variable directly does not take effect; restart Emacs. Generated by `font-latex-make-built-in-keywords'.") :type '(repeat ,(if (eq type 'command) '(list (string :tag "Keyword") (string :tag "Format")) '(string :tag "Keyword"))) :set (lambda (symbol value) (set-default symbol value) (funcall ',(intern (concat prefix name "-make")))) :group 'font-latex-keywords)) ;; defvar font-latex-match-* (eval `(defvar ,(intern (concat prefix name)) nil ,(concat "Regular expression to match " name " keywords. Generated by `font-latex-make-built-in-keywords'"))) (make-variable-buffer-local (intern (concat prefix name))) ;; defun font-latex-match-* (font-latex-make-match-defun prefix name face type) ;; Add matchers and highlighters to `font-latex-keywords-{1,2}'. (let ((keywords-entry (font-latex-keyword-matcher prefix name face type))) (add-to-list (intern (concat "font-latex-keywords-" (number-to-string level))) keywords-entry t) (when (= level 1) (add-to-list 'font-latex-keywords-2 keywords-entry t)))))) (font-latex-make-built-in-keywords) (defcustom font-latex-user-keyword-classes nil "List of user-defined keyword classes for font locking. Every keyword class consists of four parts, a name, a list of keywords, a face and a specifier for the type of macro to be highlighted. When adding new entries, you have to use unique values for the class names, i.e. they must not clash with names of the built-in keyword classes or other names given by you. Additionally the names must not contain spaces. The list of keywords defines which commands and declarations should be covered by the keyword class. A keyword can either be a simple command name omitting the leading backslash or a list consisting of the command name and a string specifying the syntax of the command. The latter is useful if you want to match LaTeX macros with arguments (see below). You can specify the occurence and order of optional (\"[\") and mandatory (\"{\") arguments for each keyword. For example for \"documentclass\" you'd use \"[{\" because the macro has one optional followed by one mandatory argument. Optionally starred macros can be indicated with \"*\". In case an argument is an unbraced macro, use \"\\\". You can also specify two alternative arguments by prefixing them with \"|\". As an example, the specifier for \\newcommand is \"*|{\\=\\[[{\". The face argument can either be an existing face or a face attribute. (The latter option is not available in XEmacs.) There are three alternatives for the class type: A value of `command' indicates commands with arguments \(\"\\foo[bar]{baz}\"). The mandatory arguments in curly braces will get the face you specified. A value of `declaration' indicates declarations inside of TeX groups (\"{\\foo bar}\"). The content inside the braces, excluding the command, will get the face you specified. In case the braces are missing, the face will be applied to the command itself. A value of `noarg' indicates commands without arguments \(\"\\foo\"). The command itself will get the face you specified. Setting this variable directly does not take effect; restart Emacs." :group 'font-latex-keywords :type `(repeat (list (string :tag "Name") (choice (repeat :tag "Keywords" (string :tag "Keyword")) (repeat :tag "Keywords with specs" (group (string :tag "Keyword") (string :tag "Format specifier")))) ,(if (featurep 'xemacs) '(face :tag "Face name") '(choice (face :tag "Face name") (custom-face-edit :tag "Face attributes"))) (choice :tag "Type" ;; Maps to ;;`font-latex-match-command-with-arguments' (const :tag "Command with arguments" command) ;; Maps to ;;`font-latex-match-command-in-braces' (const :tag "Declaration inside TeX group" declaration) ;; Maps to `re-search-forward' (const :tag "Command without arguments" noarg)))) :set (lambda (symbol value) (dolist (item value) (when (string-match " " (car item)) (error "No spaces allowed in name"))) (let (names names-uniq) (dolist (item (append font-latex-built-in-keyword-classes value)) (setq names (append names (list (car item))))) (setq names (TeX-sort-strings names)) (setq names-uniq (TeX-delete-duplicate-strings names)) (dotimes (i (safe-length names-uniq)) (unless (string= (nth i names) (nth i names-uniq)) (error "Name %S already exists" (nth i names))))) (set-default symbol value) (let ((prefix "font-latex-match-")) (dolist (elt value) (unless (boundp (intern (concat prefix (car elt)))) ;; defvar font-latex-match-* (eval `(defvar ,(intern (concat prefix (car elt))) nil ,(concat "Regular expression to match " (car elt) " keywords. Generated by `font-latex-user-keyword-classes'")))) (let ((keywords (nth 1 elt)) single-char-macro-flag) (setq keywords (if (listp (car keywords)) (mapcar 'car keywords) keywords)) (catch 'single-char (dolist (keyword keywords) (unless (string-match "^[A-Za-z]" keyword) (setq single-char-macro-flag t) (throw 'single-char nil)))) (set (intern (concat prefix (car elt))) (when (> (safe-length keywords) 0) (concat "\\\\" (let ((max-specpdl-size 1000)) (regexp-opt keywords t)) (unless single-char-macro-flag "\\>"))))))))) (defun font-latex-make-user-keywords () "Build defuns and defvars for user keyword fontification." (let ((keyword-specs font-latex-user-keyword-classes)) (dolist (item keyword-specs) (let ((prefix "font-latex-match-") (name (nth 0 item)) (keywords (nth 1 item)) (face (nth 2 item)) (type (nth 3 item))) ;; defvar font-latex-match-*-keywords (eval `(defvar ,(intern (concat prefix name "-keywords")) ',keywords ,(concat "Font-latex keywords for " name " face. Generated by `font-latex-make-user-keywords'."))) ;; defun font-latex-match-* (font-latex-make-match-defun prefix name face type) ;; Add the matcher to `font-latex-keywords-2'. (add-to-list 'font-latex-keywords-2 (font-latex-keyword-matcher prefix name face type) t)))) ;; Add the "fixed" matchers and highlighters. (dolist (item '(("\\(^\\|[^\\]\\)\\(&+\\)" 2 'font-latex-warning-face) ("\\$\\$\\([^$]+\\)\\$\\$" 1 'font-latex-math-face) (font-latex-match-quotation (0 'font-latex-string-face append) (1 'font-latex-warning-face)) ;; Hack to remove the verbatim face from the \ in ;; \end{verbatim} and similar. The same hack is used in ;; tex-mode.el. ("\\(\\\\\\)end" (1 (get-text-property (match-end 1) 'face) t)))) (add-to-list 'font-latex-keywords-1 item) (add-to-list 'font-latex-keywords-2 item)) (dolist (item '((font-latex-match-math-env (0 'font-latex-warning-face t t) (1 'font-latex-math-face append t)) (font-latex-match-math-envII (0 'font-latex-math-face append t)) (font-latex-match-simple-command (0 'font-latex-sedate-face append)) (font-latex-match-script (1 (font-latex-script (match-beginning 0)) append)) (font-latex-match-script-chars (1 (font-latex-script-char (match-beginning 1)) prepend)))) (add-to-list 'font-latex-keywords-2 item t))) (font-latex-make-user-keywords) (defun font-latex-add-keywords (keywords class) "Add KEYWORDS to CLASS. KEYWORDS is a list of keywords or keywords with syntax specs. CLASS corresponds to a keyword class and can be one of the symbols 'warning, 'variable, 'reference, 'biblatexnoarg, 'biblatex, 'function, 'sectioning-0, 'sectioning-1, 'sectioning-2, 'sectioning-3, 'sectioning-4, 'sectioning-5, 'slide-title, 'textual, 'bold-command, 'italic-command, 'math-command, 'type-command, 'bold-declaration, 'italic-declaration or 'type-declaration. The keywords will be added to the buffer-local list of keywords of the respective keyword class and necessary updates of the font locking machinery will be triggered." (let* ((class (symbol-name class)) (list (intern (format "font-latex-match-%s-keywords-local" class)))) (dolist (elt keywords) (add-to-list list elt)) (funcall (intern (format "font-latex-match-%s-make" class))) (font-latex-update-font-lock))) (defvar font-latex-keywords font-latex-keywords-1 "Default expressions to highlight in TeX mode.") ;;; Subscript and superscript (defcustom font-latex-fontify-script (not (featurep 'xemacs)) "If non-nil, fontify subscript and superscript strings. This feature does not work in XEmacs. By default, super/subscripts are raised/lowered if this variable is non-nil. This fontification only affects one level of scripts, e.g., in x^{y^z}, the y and the z have the same size and are equally raised over x. If this variable is set to the symbol `multi-level', then y is raised above x, and z is raised above y. With many script levels, the text might become too small to be readable, thus there is the option `font-latex-fontify-script-max-level'. (The factors for text shrinking are defined in the faces `font-latex-superscript-face' and `font-latex-subscript-face' and the raise/lower factor in `font-latex-script-display'.) If this variable is set to the symbol `invisible', then the effect is essentially like `multi-level' but additionally the script operators ^ and _ are not displayed." :type '(choice (boolean :tag "Enabled") (const :tag "Multiple levels" multi-level) (const :tag "Hide ^ and _" invisible)) :group 'font-latex) (put 'font-latex-fontify-script 'safe-local-variable (lambda (val) (or (TeX-booleanp val) (memq val '(multi-level invisible))))) (defcustom font-latex-fontify-script-max-level 3 "Maximum scriptification level for which script faces are applied. The faces `font-latex-superscript-face' and `font-latex-subscript-face' define custom :height values < 1.0. Therefore, scripts are displayed with a slightly smaller font than normal math text. If `font-latex-fontify-script' is `multi-level' or `invisible', the font size becomes too small to be readable after a few levels. This option allows to specify the maximum level after which the size of the script text won't be shrunken anymore. For example, see this expression: \\( x^{y^{z^a_b}} \\) x has scriptification level 0, y has level 1, z has level 2, and both a and b have scriptification level 3. If `font-latex-fontify-script-max-level' was 2, then z, a, and b would have the same font size. If it was 3 or more, then a and b were smaller than z just in the same way as z is smaller than y and y is smaller than x." :group 'font-latex :type 'integer) (defcustom font-latex-script-display '((raise -0.5) . (raise 0.5)) "Display specification for subscript and superscript content. The car is used for subscript, the cdr is used for superscripts." :group 'font-latex :type '(cons (choice (sexp :tag "Subscript form") (const :tag "No lowering" nil)) (choice (sexp :tag "Superscript form") (const :tag "No raising" nil)))) ;;; Syntactic keywords (defvar font-latex-syntactic-keywords nil "Syntactic keywords used by `font-latex'.") (make-variable-buffer-local 'font-latex-syntactic-keywords) (defvar font-latex-syntactic-keywords-extra nil "List of syntactic keywords to add to `font-latex-syntactic-keywords'. The form should be the same as in `font-lock-syntactic-keywords'.") (make-variable-buffer-local 'font-latex-syntactic-keywords-extra) ;; Set and updated in `font-latex-set-syntactic-keywords'. (defvar font-latex-doctex-syntactic-keywords nil) (defun font-latex-set-syntactic-keywords () "Set the variable `font-latex-syntactic-keywords'. This function can be used to refresh the variable in case other variables influencing its value, like `LaTeX-verbatim-environments', have changed." ;; Checks for non-emptiness of lists added in order to cater for ;; installations where `(regexp-opt-group nil)' would enter a loop. (let ((verb-envs (and (fboundp 'LaTeX-verbatim-environments) (LaTeX-verbatim-environments))) (verb-macros-with-delims (and (fboundp 'LaTeX-verbatim-macros-with-delims) (LaTeX-verbatim-macros-with-delims))) (verb-macros-with-braces (and (fboundp 'LaTeX-verbatim-macros-with-braces) (LaTeX-verbatim-macros-with-braces)))) (setq verb-envs (and verb-envs (regexp-opt verb-envs)) verb-macros-with-delims (and verb-macros-with-delims (regexp-opt verb-macros-with-delims)) verb-macros-with-braces (and verb-macros-with-braces (regexp-opt verb-macros-with-braces)) font-latex-syntactic-keywords nil) (unless (= (length verb-envs) 0) (add-to-list 'font-latex-syntactic-keywords `(,(concat "^[ \t]*\\\\begin *{\\(?:" verb-envs "\\)}" ;; Some environments accept an optional and/or mandatory ;; argument that can span over more lines. Between ;; "\begin{}" and the optional argument there ;; can be whitespaces and the newline can be commented ;; by a "%" character. "[ \t]*\\(?:%.*\n[ \t]*\\)?" ;; The following line of the regexp matches the optional ;; argument and allows for up to one level of brackets ;; inside the argument (e.g., the dialect of a language ;; in the `lstlisting' environment by the `listings' ;; package). "\\(?:\\[[^\]\[]*\\(?:\\[[^\]\[]*\\][^\]\[]*\\)*\\]\\)?" ;; After the optional argument, there may also be ;; another mandatory argument(s) (e.g. with VerbatimOut or ;; the minted envs or defined with `lstnewenvironment'). "\\(?:{[^}]*}\\)*" ;; Now match the final newline. The "." alternative ;; catches the case where verbatim content is written ;; immediately after the \begin{verbatim}. "\\(\n\\|.\\)") (1 "|" t))) (add-to-list 'font-latex-syntactic-keywords ;; Using the newline character for the syntax ;; property often resulted in fontification ;; problems when text was inserted at the end of ;; the verbatim environment. That's why we now use ;; the starting backslash of \end. There is a hack ;; in `font-latex-make-user-keywords' to remove the ;; spurious fontification of the backslash. `(,(concat "\\(\\\\\\)end *{\\(?:" verb-envs "\\)}") (1 "|" t)))) (unless (= (length verb-macros-with-delims) 0) (add-to-list 'font-latex-syntactic-keywords `(,(concat "\\\\\\(?:" verb-macros-with-delims "\\)" ;; Some macros take an optional ;; argument. This is the same line as ;; above for environments. "\\(?:\\[[^][]*\\(?:\\[[^][]*\\][^][]*\\)*\\]\\)?" ;; An opening curly brace as delimiter ;; is valid, but allowing it might screw ;; up fontification of stuff like ;; "\url{...} foo \textbf{<--!...}". "\\([^a-z@*\n\f{]\\).*?" ;; Give an escape char at the end of the ;; verbatim construct punctuation syntax. ;; Prevents wrong fontification of stuff ;; like "\verb|foo\|". "\\(" (regexp-quote TeX-esc) "*\\)\\(\\1\\)") (1 "\"") (2 ".") (3 "\"")))) (unless (= (length verb-macros-with-braces) 0) (add-to-list 'font-latex-syntactic-keywords `(,(concat "\\\\\\(?:" verb-macros-with-braces "\\)" ;; Some macros take an optional ;; argument. This is the same line as ;; above for environments. "\\(?:\\[[^][]*\\(?:\\[[^][]*\\][^][]*\\)*\\]\\)?" "\\({\\).*?[^\\]\\(?:\\\\\\\\\\)*\\(}\\)") (1 "|") (2 "|"))))) (when font-latex-syntactic-keywords-extra (nconc font-latex-syntactic-keywords font-latex-syntactic-keywords-extra)) ;; Cater for docTeX mode. (setq font-latex-doctex-syntactic-keywords (append font-latex-syntactic-keywords ;; For docTeX comment-in-doc. `(("\\(\\^\\)\\^A" (1 (font-latex-doctex-^^A))))))) ;;; Syntactic fontification ;; Copy and adaptation of `tex-font-lock-syntactic-face-function' in ;; `tex-mode.el' of CVS Emacs (March 2004) (defun font-latex-syntactic-face-function (state) (let ((char (nth 3 state))) (cond ((not char) 'font-lock-comment-face) ((eq char ?$) 'font-latex-math-face) (t (when (char-valid-p char) ;; This is a \verb?...? construct. Let's find the end and mark it. (save-excursion (skip-chars-forward (string ?^ char)) ;; Use `end' ? (when (eq (char-syntax (preceding-char)) ?/) (put-text-property (1- (point)) (point) 'syntax-table '(1))) (unless (eobp) (put-text-property (point) (1+ (point)) 'syntax-table '(7))))) 'font-latex-verbatim-face)))) ;;; Faces (defface font-latex-bold-face (let ((font (cond ((assq :inherit custom-face-attributes) '(:inherit bold)) ((assq :weight custom-face-attributes) '(:weight bold)) (t '(:bold t))))) `((((class grayscale) (background light)) (:foreground "DimGray" ,@font)) (((class grayscale) (background dark)) (:foreground "LightGray" ,@font)) (((class color) (background light)) (:foreground "DarkOliveGreen" ,@font)) (((class color) (background dark)) (:foreground "OliveDrab" ,@font)) (t (,@font)))) "Face used to highlight text to be typeset in bold." :group 'font-latex-highlighting-faces) (defface font-latex-italic-face (let ((font (cond ((assq :inherit custom-face-attributes) '(:inherit italic)) ((assq :slant custom-face-attributes) '(:slant italic)) (t '(:italic t))))) `((((class grayscale) (background light)) (:foreground "DimGray" ,@font)) (((class grayscale) (background dark)) (:foreground "LightGray" ,@font)) (((class color) (background light)) (:foreground "DarkOliveGreen" ,@font)) (((class color) (background dark)) (:foreground "OliveDrab" ,@font)) (t (,@font)))) "Face used to highlight text to be typeset in italic." :group 'font-latex-highlighting-faces) (defface font-latex-math-face (let ((font (cond ((assq :inherit custom-face-attributes) '(:inherit underline)) (t '(:underline t))))) `((((class grayscale) (background light)) (:foreground "DimGray" ,@font)) (((class grayscale) (background dark)) (:foreground "LightGray" ,@font)) (((class color) (background light)) (:foreground "SaddleBrown")) (((class color) (background dark)) (:foreground "burlywood")) (t (,@font)))) "Face used to highlight math." :group 'font-latex-highlighting-faces) (defface font-latex-sedate-face '((((class grayscale) (background light)) (:foreground "DimGray")) (((class grayscale) (background dark)) (:foreground "LightGray")) (((class color) (background light)) (:foreground "DimGray")) (((class color) (background dark)) (:foreground "LightGray")) ;;;(t (:underline t)) ) "Face used to highlight sedate stuff." :group 'font-latex-highlighting-faces) (defface font-latex-string-face (let ((font (cond ((assq :inherit custom-face-attributes) '(:inherit italic)) ((assq :slant custom-face-attributes) '(:slant italic)) (t '(:italic t))))) `((((type tty) (class color)) (:foreground "green")) (((class grayscale) (background light)) (:foreground "DimGray" ,@font)) (((class grayscale) (background dark)) (:foreground "LightGray" ,@font)) (((class color) (background light)) (:foreground "RosyBrown")) (((class color) (background dark)) (:foreground "LightSalmon")) (t (,@font)))) "Face used to highlight strings." :group 'font-latex-highlighting-faces) (defface font-latex-warning-face (let ((font (cond ((assq :inherit custom-face-attributes) '(:inherit bold)) ((assq :weight custom-face-attributes) '(:weight bold)) (t '(:bold t))))) `((((class grayscale)(background light)) (:foreground "DimGray" ,@font)) (((class grayscale)(background dark)) (:foreground "LightGray" ,@font)) (((class color)(background light)) (:foreground "red" ,@font)) (((class color)(background dark)) (:foreground "red" ,@font)) (t (,@font)))) "Face for important keywords." :group 'font-latex-highlighting-faces) (defface font-latex-verbatim-face (let ((font (if (and (assq :inherit custom-face-attributes) (if (featurep 'xemacs) (find-face 'fixed-pitch) (facep 'fixed-pitch))) '(:inherit fixed-pitch) '(:family "courier")))) `((((class grayscale) (background light)) (:foreground "DimGray" ,@font)) (((class grayscale) (background dark)) (:foreground "LightGray" ,@font)) (((class color) (background light)) (:foreground "SaddleBrown" ,@font)) (((class color) (background dark)) (:foreground "burlywood" ,@font)) (t (,@font)))) "Face used to highlight TeX verbatim environments." :group 'font-latex-highlighting-faces) (defface font-latex-superscript-face '((t (:height 0.85))) "Face used for superscripts." :group 'font-latex-highlighting-faces) (defface font-latex-subscript-face '((t (:height 0.85))) "Face used for subscripts." :group 'font-latex-highlighting-faces) (defface font-latex-script-char-face (let ((font (cond ((assq :inherit custom-face-attributes) '(:inherit underline)) (t '(:underline t))))) `((((class grayscale) (background light)) (:foreground "DarkGray" ,@font)) (((class grayscale) (background dark)) (:foreground "gray" ,@font)) (((class color) (background light)) (:foreground "salmon")) (((class color) (background dark)) (:foreground "DarkRed")) (t (,@font)))) "Face used for the script chars ^ and _." :group 'font-latex-highlighting-faces) (defface font-latex-slide-title-face (let* ((scale 1.2) (size (when (featurep 'xemacs) (round (* 0.9 (face-height 'default) scale))))) (if (featurep 'xemacs) `((t (:bold t :family "helvetica" :size ,size))) `((t (:inherit (variable-pitch font-lock-type-face) :weight bold :height ,scale))))) "Face for slide titles." :group 'font-latex-highlighting-faces) (when (featurep 'xemacs) (set-face-parent 'font-latex-slide-title-face 'font-lock-type-face nil nil 'append)) ;;; Setup (defvar font-lock-comment-start-regexp nil "Regexp to match the start of a comment.") (defvar font-latex-extend-region-functions nil "List of functions extending the region for multiline constructs. Each function should accept two arguments, the begin and end of the region to be fontified, and return the new region start. If no extension is necessary, the original region start should be returned. All specified functions will be called and the region extended backwards to the minimum over their return values.") (defvar font-latex-syntax-alist ;; Use word syntax for @ because we use \> for matching macros and ;; we don't want \foo@bar to be found if we search for \foo. '((?\( . ".") (?\) . ".") (?$ . "\"") (?@ . "w")) "List of specifiers for the syntax alist of `font-lock-defaults'.") (defun font-latex-add-to-syntax-alist (list) "Activate syntactic font locking for the entries in LIST. The entries are added to `font-latex-syntax-alist' and eventually end up in `font-lock-defaults'. Each entry in LIST should be a cons pair as expected by `font-lock-defaults'. The function also triggers Font Lock to recognize the change." (make-local-variable 'font-latex-syntax-alist) (set (make-local-variable 'font-latex-syntax-alist) (append font-latex-syntax-alist list)) ;; Tell font-lock about the update. (setq font-lock-set-defaults nil) (font-latex-setup)) ;;;###autoload (defun font-latex-setup () "Setup this buffer for LaTeX font-lock. Usually called from a hook." (font-latex-set-syntactic-keywords) ;; Trickery to make $$ fontification be in `font-latex-math-face' while ;; strings get whatever `font-lock-string-face' has been set to. (when (fboundp 'built-in-face-specifiers) ;; Cool patch from Christoph Wedler... (let (instance) (mapc (lambda (property) (setq instance (face-property-instance 'font-latex-math-face property nil 0 t)) (if (numberp instance) (setq instance (face-property-instance 'default property nil 0))) (or (numberp instance) (set-face-property 'font-lock-string-face property instance (current-buffer)))) (built-in-face-specifiers)))) ;; Activate multi-line fontification facilities if available. (when (boundp 'font-lock-multiline) (set (make-local-variable 'font-lock-multiline) t)) ;; Functions for extending the region. (dolist (elt '(font-latex-extend-region-backwards-command-with-args font-latex-extend-region-backwards-command-in-braces font-latex-extend-region-backwards-quotation font-latex-extend-region-backwards-math-env font-latex-extend-region-backwards-math-envII)) (add-to-list 'font-latex-extend-region-functions elt)) ;; Tell Font Lock about the support. (make-local-variable 'font-lock-defaults) ;; The test for `major-mode' currently only works with docTeX mode ;; because `TeX-install-font-lock' is called explicitely in ;; `doctex-mode'. In case other modes have to be distinguished as ;; well, remove the call to `TeX-install-font-lock' from ;; `VirTeX-common-initialization' and place it in the different ;; `xxx-mode' calls instead, but _after_ `major-mode' is set. (let ((defaults `((font-latex-keywords font-latex-keywords-1 font-latex-keywords-2) nil nil ,font-latex-syntax-alist nil)) (variables '((font-lock-comment-start-regexp . "%") (font-lock-mark-block-function . mark-paragraph) (font-lock-fontify-region-function . font-latex-fontify-region) (font-lock-unfontify-region-function . font-latex-unfontify-region)))) ;; Add the mode-dependent stuff to the basic variables defined above. (if (eq major-mode 'doctex-mode) (progn (setcar defaults (append (car defaults) '(font-latex-doctex-keywords))) (setq variables (append variables '((font-lock-syntactic-face-function . font-latex-doctex-syntactic-face-function) (font-lock-syntactic-keywords . font-latex-doctex-syntactic-keywords))))) (setq variables (append variables '((font-lock-syntactic-face-function . font-latex-syntactic-face-function) (font-lock-syntactic-keywords . font-latex-syntactic-keywords))))) ;; Cater for the idiosyncrasies of Emacs and XEmacs. (if (featurep 'xemacs) (progn ;; XEmacs does not set these variables via `font-lock-defaults' ;; but requires them to be set explicitely. (mapc (lambda (alist) (set (car alist) (cdr alist))) variables) ;; Has to be set to t as otherwise syntax properties will not be ;; be picked up during fontification. (set (make-local-variable 'lookup-syntax-properties) t)) (setq defaults (append defaults variables))) ;; Set the defaults. (setq font-lock-defaults defaults)) ;; Make sure fontification will be refreshed if a user sets variables ;; influencing fontification in her file-local variables section. (add-hook 'hack-local-variables-hook #'font-latex-after-hacking-local-variables t t)) (defun font-latex-update-font-lock (&optional syntactic-kws) "Tell font-lock about updates of fontification rules. If SYNTACTIC-KWS is non-nil, also update `font-latex-syntactic-keywords'." ;; Update syntactic keywords. (when syntactic-kws (font-latex-set-syntactic-keywords)) ;; Let font-lock recompute its fontification rules. (setq font-lock-set-defaults nil) (font-lock-set-defaults) ;; Re-initialize prettification if needed. (when (and (boundp 'prettify-symbols-mode) (boundp 'prettify-symbols--keywords) prettify-symbols-mode prettify-symbols--keywords) (font-lock-add-keywords nil prettify-symbols--keywords))) (defun font-latex-jit-lock-force-redisplay (buf start end) "Compatibility for Emacsen not offering `jit-lock-force-redisplay'." ;; The following block is an expansion of `jit-lock-force-redisplay' ;; and involved macros taken from CVS Emacs on 2007-04-28. (with-current-buffer buf (let ((modified (buffer-modified-p))) (unwind-protect (let ((buffer-undo-list t) (inhibit-read-only t) (inhibit-point-motion-hooks t) (inhibit-modification-hooks t) deactivate-mark buffer-file-name buffer-file-truename) (put-text-property start end 'fontified t)) (unless modified (restore-buffer-modified-p nil)))))) (defun font-latex-fontify-region (beg end &optional loudly) "Fontify region from BEG to END. If optional argument is non-nil, print status messages." (let ((extend-list (delq nil (mapcar (lambda (fun) (funcall fun beg end)) font-latex-extend-region-functions)))) (when extend-list (let ((orig-beg beg)) (setq beg (apply 'min extend-list)) (when (featurep 'jit-lock) ;; Stolen from `jit-lock-fontify-now' (2007-04-27) and ;; adapted. Without this stanza only the line in which a ;; change happened will refontified. The rest will only be ;; refontified upon redisplay. (run-with-timer 0 nil 'font-latex-jit-lock-force-redisplay (current-buffer) beg orig-beg)))) (font-lock-default-fontify-region beg end loudly))) ;; Copy and adaption of `tex-font-lock-unfontify-region' from ;; tex-mode.el in GNU Emacs on 2004-08-04. ;; (XEmacs passes a third argument to the function.) (defun font-latex-unfontify-region (beg end &rest ignored) "Unfontify region from BEG to END." (font-lock-default-unfontify-region beg end) ;; XEmacs does not provide `font-lock-extra-managed-props', so ;; remove the `font-latex-multiline' property manually. (The ;; property is only added if `font-lock-multiline' is bound.) (unless (boundp 'font-lock-multiline) (remove-text-properties beg end '(font-latex-multiline))) (remove-text-properties beg end '(script-level)) (let ((start beg)) (while (< beg end) (let ((next (next-single-property-change beg 'display nil end)) (prop (get-text-property beg 'display))) (if (and (eq (car-safe prop) 'raise) (null (cddr prop))) (put-text-property beg next 'display nil)) (setq beg next))) (remove-text-properties start end '(invisible)))) (defadvice font-lock-after-change-function (before font-latex-after-change activate) "Extend region for fontification of multiline constructs. This is only necessary if the editor does not provide multiline fontification facilities like `font-lock-multiline' itself." (unless (boundp 'font-lock-multiline) (let ((ad-beg (ad-get-arg 0)) (ad-end (ad-get-arg 1))) (save-excursion (goto-char ad-beg) (beginning-of-line) (when (get-text-property (point) 'font-latex-multiline) (setq ad-beg (previous-single-property-change (point) 'font-latex-multiline)) (when (numberp ad-beg) (ad-set-arg 0 ad-beg))) (goto-char ad-end) (end-of-line) (when (get-text-property (point) 'font-latex-multiline) (setq ad-end (next-single-property-change (point) 'font-latex-multiline)) (when (numberp ad-end) (ad-set-arg 1 ad-end))))))) (defun font-latex-after-hacking-local-variables () "Refresh fontification if required by updates of file-local variables. This function is added to `hack-local-variables-hook' and recomputes fontification if variables affecting fontification are modified. Such variables include `LaTeX-verbatim-environments-local', `LaTeX-verbatim-macros-with-braces-local', `LaTeX-verbatim-macros-with-delims-local'." (when (if (boundp 'file-local-variables-alist) ;; In Emacs we know if the value came from file or directory ;; locals. Note to self: directory-local variables are also added ;; to file-local-variables-alist. (let ((hacked-local-vars (mapcar #'car file-local-variables-alist))) (or (memq 'LaTeX-verbatim-environments-local hacked-local-vars) (memq 'LaTeX-verbatim-macros-with-braces-local hacked-local-vars) (memq 'LaTeX-verbatim-macros-with-delims-local hacked-local-vars))) ;; In XEmacs and old Emacs versions we don't know if a buffer-local ;; variable has been set by a file-local variables block or somehow ;; else. So we trigger a refresh if any of those variables has a ;; non-nil local binding. (or (and LaTeX-verbatim-environments-local (local-variable-p LaTeX-verbatim-environments-local (current-buffer))) (and LaTeX-verbatim-macros-with-braces-local (local-variable-p LaTeX-verbatim-macros-with-braces-local (current-buffer))) (and LaTeX-verbatim-macros-with-delims-local (local-variable-p LaTeX-verbatim-macros-with-delims-local (current-buffer))))) ;; Ok, we need to refresh fontification. (font-latex-update-font-lock t))) ;;; Utility functions (defun font-latex-find-matching-close (openchar closechar) "Skip over matching pairs of OPENCHAR and CLOSECHAR. OPENCHAR is the opening character and CLOSECHAR is the closing character. Character pairs are usually { } or [ ]. Comments are ignored during the search." (let ((parse-sexp-ignore-comments (not (eq major-mode 'doctex-mode))) ; scan-sexps ignores comments (init-point (point)) (mycount 1) (esc-char (or (and (boundp 'TeX-esc) TeX-esc) "\\")) ;; XXX: Do not look up syntax-table properties since they may ;; be misleading, e.g. in the case of "{foo}^^A" where the ;; closing brace gets a comment end syntax. (parse-sexp-lookup-properties nil)) (or (condition-case nil (progn (goto-char (with-syntax-table (TeX-search-syntax-table openchar closechar) (scan-sexps (point) 1))) ;; No error code. See if closechar is unquoted (save-excursion (backward-char 1) (zerop (mod (skip-chars-backward (regexp-quote esc-char)) 2)))) (error nil)) (save-match-data (goto-char (1+ init-point)) (while (and (> mycount 0) (re-search-forward (string ?\[ ;; closechar might be ] ;; and therefor must be first in regexp closechar openchar ?\]) nil t)) (cond ((font-latex-commented-outp) (forward-line 1)) ((save-excursion (backward-char 1) (zerop (mod (skip-chars-backward (regexp-quote esc-char)) 2))) (setq mycount (+ mycount (if (= (preceding-char) openchar) 1 -1))))))) (if (= mycount 0) t (goto-char init-point) nil)))) (defun font-latex-commented-outp () "Return t if comment character is found between bol and point." (save-excursion (let ((limit (point)) (esc-char (if (and (boundp 'TeX-esc) TeX-esc) TeX-esc "\\"))) (forward-line 0) (if (and (eq (char-after) ?\%) (not (font-latex-faces-present-p 'font-latex-verbatim-face))) (not (eq major-mode 'doctex-mode)) (catch 'found (while (progn (skip-chars-forward "^%" limit) (< (point) limit)) (when (and (save-excursion (zerop (mod (skip-chars-backward (regexp-quote esc-char)) 2))) (not (font-latex-faces-present-p 'font-latex-verbatim-face))) (throw 'found t)) (forward-char))))))) (defun font-latex-faces-present-p (faces &optional pos) "Return t if FACES are present at position POS. FACES may be a single face or a list of faces. If POS is omitted, the current position of point is used." (let* ((faces (if (listp faces) faces (list faces))) (pos (or pos (point))) (prop (get-text-property pos 'face)) (prop-list (if (listp prop) prop (list prop)))) (catch 'member (dolist (item prop-list) (when (memq item faces) (throw 'member t)))))) (defun font-latex-forward-comment () "Like `forward-comment' but with special provisions for docTeX mode. In docTeX mode \"%\" at the start of a line will be treated as whitespace." (if (eq major-mode 'doctex-mode) ;; XXX: We should probably cater for ^^A as well. (progn (while (progn (if (bolp) (skip-chars-forward "%")) (> (skip-chars-forward " \t\n") 0))) (when (eq (char-after) ?%) (beginning-of-line 2) t)) (forward-comment 1))) (defun font-latex-put-multiline-property-maybe (beg end) "Add a multiline property if no equivalent is provided by the editor. The text property is used to find the start or end of a multiline construct when unfontifying a region. Emacs adds such a text property automatically if `font-lock-multiline' is set to t and extends the region to be unfontified automatically as well. XEmacs does not do this at the time of this writing." (unless (boundp 'font-lock-multiline) (put-text-property beg end 'font-latex-multiline t))) ;;; Match functions (defvar font-latex-matched-faces nil "List of faces corresponding to matches in match data.") (defun font-latex-matched-face (pos) "Return face at position POS in `font-latex-matched-faces'." (nth pos font-latex-matched-faces)) (defvar font-latex-command-with-args-default-spec nil ; "*[{" "Default specifier for keywords without syntax description. Set this to nil if verification of command syntax is unwanted.") (defvar font-latex-command-with-args-opt-arg-delims '((?[ . ?]) (?< . ?>) (?\( . ?\))) "List character pairs used as delimiters for optional arguments.") (defvar font-latex-syntax-error-modes '(latex-mode) "List of modes where syntax errors in macros should be indicated.") (defun font-latex-match-command-with-arguments (regexp keywords face limit) "Search for regexp command KEYWORDS[opt]{arg} before LIMIT. Returns nil if none of KEYWORDS is found." (setq font-latex-matched-faces nil) (catch 'match (while (re-search-forward regexp limit t) (unless (font-latex-faces-present-p '(font-lock-comment-face font-latex-verbatim-face) (match-beginning 0)) (let* ((beg (match-beginning 0)) end ; Used for multiline text property. (match-data (list beg)) match-beg syntax-error alternative spec error-indicator-pos (spec-list (string-to-list (or (cadr (assoc (match-string 1) keywords)) font-latex-command-with-args-default-spec))) (parse-sexp-ignore-comments t)) ; scan-sexps ignores comments (goto-char (match-end 0)) ;; Check for starred macro if first spec is an asterisk or a ;; plus sign in case of \defaultfontfeatures+ provided by ;; fontspec.sty (when (or (eq (car spec-list) ?*) (eq (car spec-list) ?+)) (setq spec-list (cdr spec-list)) (skip-chars-forward "*+" (1+ (point)))) ;; Add current point to match data and use keyword face for ;; region from start to point. (nconc match-data (list (point))) (add-to-list 'font-latex-matched-faces 'font-lock-keyword-face) (setq end (point)) (catch 'break ;; Walk the list of specs. (while spec-list (setq spec (pop spec-list) error-indicator-pos beg) (while (and (not (eobp)) (font-latex-forward-comment))) ;; Alternative (when (eq spec ?|) (setq alternative t) (setq spec (pop spec-list))) (cond ;; Macros: \foo ((eq spec ?\\) (if (eq (char-after) spec) (progn (nconc match-data (list (point) (progn (forward-char) (if (zerop (skip-syntax-forward "_w")) (forward-char) ; Single-char macro. (skip-chars-forward "*+")) (point)))) (nconc font-latex-matched-faces (list face)) (setq end (max end (point))) (when alternative (pop spec-list))) (setq syntax-error t) (throw 'break nil))) ;; Mandatory arguments: {...} ((eq spec ?{) (if (and (eq (char-after) spec) (setq match-beg (point)) (font-latex-find-matching-close ?{ ?})) (progn (nconc match-data (list (1+ match-beg) (1- (point)))) (nconc font-latex-matched-faces (list face)) (setq end (max end (1- (point)))) (when alternative (pop spec-list))) (unless alternative (setq syntax-error t) (when (and match-beg (= match-beg (point))) (setq error-indicator-pos match-beg)) (throw 'break nil)))) ;; Optional arguments: [...] and others ((eq (char-after) spec) (setq match-beg (point)) (if (font-latex-find-matching-close spec (cdr (assq spec font-latex-command-with-args-opt-arg-delims))) (progn (nconc match-data (list (1+ match-beg) (1- (point)))) (nconc font-latex-matched-faces (list 'font-lock-variable-name-face)) (setq end (max end (1- (point))))) (setq syntax-error t error-indicator-pos match-beg) (throw 'break nil)))) (setq alternative nil))) (when (and syntax-error (memq major-mode font-latex-syntax-error-modes)) ;; Add the warning face at the front of the list because ;; the matcher uses 'append and the face would otherwise ;; be overridden by the keyword face. (setq match-data (append (list error-indicator-pos (1+ error-indicator-pos)) match-data)) (push 'font-latex-warning-face font-latex-matched-faces)) (font-latex-put-multiline-property-maybe beg end) (store-match-data match-data) (throw 'match t)))))) (defun font-latex-extend-region-backwards-command-with-args (beg end) "Return position to extend region backwards for commands with args. Return nil if region does not have to be extended for a multiline macro to fit in. The region between the positions BEG and END marks boundaries for searching for macro ends." (save-excursion (goto-char end) (catch 'extend (while (TeX-search-backward-unescaped "}" beg t) (let ((macro-start (TeX-find-macro-start (max (point-min) (- beg font-latex-multiline-boundary))))) (when (and macro-start (< macro-start beg)) (throw 'extend macro-start)))) nil))) (defun font-latex-match-command-in-braces (keywords limit) "Search for command like {\\bfseries fubar} before LIMIT. Sets `match-data' so that: subexpression 0 is a warning indicator, subexpression 1 is the keyword, and subexpression 2 is the rest in the TeX group. Returns nil if no command is found." (catch 'match (while (re-search-forward keywords limit t) (unless (font-latex-faces-present-p '(font-lock-comment-face font-latex-verbatim-face) (match-beginning 0)) (let ((kbeg (match-beginning 0)) (kend (match-end 1)) (beg (match-end 0)) cbeg cend (parse-sexp-ignore-comments t)) ; scan-sexps ignores comments (goto-char kbeg) (if (not (eq (preceding-char) ?\{)) ;; Fontify only the keyword (no argument found). (progn (setq cbeg kbeg cend kend) (goto-char (match-end 0)) (store-match-data (list (point) (point) (point) (point) cbeg cend)) (throw 'match t)) ;; There's an opening bracket (save-restriction ;; Restrict to LIMIT. (narrow-to-region (point-min) limit) (forward-char -1) ; Move on the opening bracket (if (font-latex-find-matching-close ?\{ ?\}) (progn (font-latex-put-multiline-property-maybe beg (1- (point))) (store-match-data (list kbeg kbeg kbeg kend beg (1- (point))))) (goto-char kend) (store-match-data (list (1- kbeg) kbeg kbeg kend kend kend))) (throw 'match t)))))))) (defun font-latex-extend-region-backwards-command-in-braces (beg end) "Return position to extend region backwards for commands in braces. Return nil if region does not have to be extended for a multiline group to fit in. The region between the positions BEG and END marks boundaries for searching for group ends." (save-excursion (goto-char end) (catch 'extend (while (TeX-search-backward-unescaped "}" beg t) (let ((group-start (TeX-find-opening-brace nil (max (point-min) (- beg font-latex-multiline-boundary))))) (when group-start ;; XXX: Actually we'd have to check if any of the ;; declaration-type macros can be found right after the ;; brace. If we don't do this (like now) large regions ;; may be refontified for no good reason. For checking ;; the built-in `font-latex-match-*' variables for ;; declaration-type macros as well as the respective ;; user-defined variables could be concatenated. (goto-char group-start) (when (< group-start beg) (throw 'extend group-start))))) nil))) (defvar font-latex-match-simple-exclude-list '("-" "," "/" "&" "#" "_" "`" "'" "^" "~" "=" "." "\"") "List of characters directly after \"\\\" excluded from fontification. Each character is a string.") (defun font-latex-match-simple-command (limit) "Search for command like \\foo before LIMIT." ;; \s_ matches chars with symbol syntax, \sw chars with word syntax, ;; \s. chars with punctuation syntax. We must exclude matches where ;; the first character after the \ is a reserved character and ;; should not be fontified (e.g. \, in foo\,bar or \- in foo\-bar). ;; These characters are stored in ;; `font-latex-match-simple-exclude-list'. In docTeX mode, we ;; remove "_" from this list to get correct fontification for macros ;; like `\__module_foo:nnn' (let* ((search (lambda () (TeX-re-search-forward-unescaped "\\\\\\(\\s_\\|\\sw\\|\\s.\\)\\(?:\\s_\\|\\sw\\)*" limit t))) (pos (funcall search))) (while (and pos (member (match-string 1) (if (eq major-mode 'doctex-mode) (remove "_" font-latex-match-simple-exclude-list) font-latex-match-simple-exclude-list))) (setq pos (funcall search))) pos)) (defun font-latex-match-math-env (limit) "Match math pattern up to LIMIT. Used for patterns like: \\( F = ma \\) \\[ F = ma \\] but not \\\\ [len]" (catch 'match (while (re-search-forward "\\(\\\\(\\)\\|\\(\\\\\\[\\)" limit t) (unless (save-excursion (goto-char (match-beginning 0)) ;; \\[ does not start a math environment (/= (mod (skip-chars-backward "\\\\") 2) 0)) (let ((beg (match-beginning 0)) (open-tag (if (match-beginning 1) "\\(" "\\[")) (close-tag (if (match-beginning 1) "\\)" "\\]"))) ;; Search for both opening and closing tags in order to be ;; able to avoid erroneously matching stuff like "\(foo \(bar\)". (if (and (re-search-forward (concat "[^\\]\\(?:\\\\\\\\\\)*\\(" (regexp-quote open-tag) "\\|" (regexp-quote close-tag) "\\)") limit 'move) (string= (match-string 1) close-tag)) ;; Found closing tag. (progn (font-latex-put-multiline-property-maybe beg (point)) (store-match-data (list beg beg beg (point)))) ;; Did not find closing tag. (goto-char (+ beg 2)) (store-match-data (list beg (point) (point) (point)))) (throw 'match t)))))) (defun font-latex-extend-region-backwards-math-env (beg end) "Return position to extend region backwards for math environments. Return nil if region does not have to be extended for a multiline environment to fit in. The region between the positions BEG and END marks boundaries for searching for environment ends." (save-excursion (goto-char end) (catch 'extend (while (re-search-backward "\\(\\\\)\\)\\|\\(\\\\]\\)" beg t) (when (and (zerop (mod (skip-chars-backward "\\\\") 2)) (re-search-backward (concat "[^\\]\\(?:\\\\\\\\\\)*\\(" (regexp-quote (if (match-beginning 1) "\\(" "\\[")) "\\)") (- beg font-latex-multiline-boundary) t) (goto-char (match-beginning 1)) (< (point) beg)) (throw 'extend (point)))) nil))) (defcustom font-latex-math-environments '("display" "displaymath" "equation" "eqnarray" "gather" "math" "multline" "align" "alignat" "xalignat" "xxalignat" "flalign") "List of math environment names for font locking." :type '(repeat string) :group 'font-latex) (defun font-latex-match-math-envII (limit) "Match math patterns up to LIMIT. Used for patterns like: \\begin{equation} fontified stuff \\end{equation} or \\begin{empheq}[X=Y\\Rightarrow]{alignat=3} fontified stuff \\end{empheq} The \\begin{equation} incl. arguments in the same line and \\end{equation} are not fontified here." (when (re-search-forward (concat "\\\\begin[ \t]*{" (regexp-opt font-latex-math-environments t) ;; Subexpression 2 is used to build ;; the \end{} construct below "\\(\\*?}\\)" ;; Match an optional and possible ;; mandatory argument(s) as long as ;; they are on the same line with ;; no spaces in-between "\\(?:\\[[^][]*\\(?:\\[[^][]*\\][^][]*\\)*\\]\\)?" "\\(?:{[^}]*}\\)*") limit t) (let ((beg (match-end 0)) end) (if (re-search-forward (concat "\\\\end[ \t]*{" (regexp-quote (buffer-substring-no-properties (match-beginning 1) (match-end 2)))) ;; XXX: Should this rather be done by ;; extending the region to be fontified? (+ limit font-latex-multiline-boundary) 'move) (setq end (match-beginning 0)) (goto-char beg) (setq end beg)) (font-latex-put-multiline-property-maybe beg end) (store-match-data (list beg end)) t))) (defun font-latex-extend-region-backwards-math-envII (beg end) "Return position to extend region backwards for math environments. Return nil if region does not have to be extended for a multiline environment to fit in. The region between the positions BEG and END marks boundaries for searching for environment ends." (save-excursion (goto-char end) (catch 'extend (while (re-search-backward (concat "\\\\end[ \t]*{" (regexp-opt font-latex-math-environments t) "\\*?}") beg t) (when (and (re-search-backward (concat "\\\\begin[ \t]*{" (buffer-substring-no-properties (match-beginning 1) (match-end 0)) ;; Match an optional and possible ;; mandatory argument(s) "\\(?:\\[[^][]*\\(?:\\[[^][]*\\][^][]*\\)*\\]\\)?" "\\(?:{[^}]*}\\)*") (- beg font-latex-multiline-boundary) t) (< (point) beg)) (throw 'extend (point)))) nil))) (defun font-latex-update-quote-list () "Update quote list and regexp if value of `font-latex-quotes' changed." (unless (eq font-latex-quotes-control font-latex-quotes) (setq font-latex-quotes-control font-latex-quotes) (font-latex-quotes-set-internal) ;; Set order of each entry in `font-latex-quote-list' according to ;; setting of `font-latex-quotes-internal'. (let ((tail font-latex-quote-list) elt) (while tail (setq elt (car tail)) (when (and (> (safe-length elt) 2) (not (eq (nth 2 elt) font-latex-quotes-internal))) (setcar tail (list (nth 1 elt) (nth 0 elt) font-latex-quotes-internal))) (setq tail (cdr tail)))) (setq font-latex-quote-regexp-beg (regexp-opt (mapcar 'car font-latex-quote-list) t)))) (defun font-latex-match-quotation (limit) "Match quote patterns up to LIMIT. Used for patterns like: ``this is a normal quote'' and these are multilingual quoted strings: \"< french \"> and \"`german\"' quotes. The quotes << french >> and 8-bit french are used if `font-latex-quotes' is set to french, and >>german<< (and 8-bit) are used if set to german." (when font-latex-quotes (font-latex-update-quote-list) ;; Search for matches. (catch 'match (while (TeX-re-search-forward-unescaped font-latex-quote-regexp-beg limit t) (unless (font-latex-faces-present-p '(font-lock-comment-face font-latex-verbatim-face font-latex-math-face) (match-beginning 0)) (let* ((beg (match-beginning 0)) (after-beg (match-end 0)) (opening-quote (match-string 0)) (closing-quote (nth 1 (assoc (if (fboundp 'string-make-multibyte) (string-make-multibyte (match-string 0)) (match-string 0)) font-latex-quote-list))) (nest-count 0) (point-of-surrender (+ beg font-latex-multiline-boundary))) ;; Find closing quote taking nested quotes into account. (while (progn (re-search-forward (concat opening-quote "\\|" closing-quote) point-of-surrender 'move) (when (and (< (point) point-of-surrender) (not (eobp))) (if (string= (match-string 0) opening-quote) (setq nest-count (1+ nest-count)) (when (/= nest-count 0) (setq nest-count (1- nest-count))))))) ;; If no closing quote was found, set the second match which ;; will be marked with warning color, if one was found, set ;; the first match which will be marked with string color. (if (or (= (point) point-of-surrender) (eobp)) (progn (goto-char after-beg) (store-match-data (list after-beg after-beg beg after-beg))) (font-latex-put-multiline-property-maybe beg (point)) (store-match-data (list beg (point) (point) (point)))) (throw 'match t))))))) (defun font-latex-extend-region-backwards-quotation (beg end) "Return position to extend region backwards for quotations. Return nil if region does not have to be extended for a multiline quotation to fit in. The region between the positions BEG and END marks boundaries for searching for quotation ends." (if font-latex-quotes (progn (font-latex-update-quote-list) (let ((regexp-end (regexp-opt (mapcar 'cadr font-latex-quote-list) t))) (save-excursion (goto-char end) (catch 'extend (while (re-search-backward regexp-end beg t) (let ((closing-quote (match-string 0)) (nest-count 0) (point-of-surrender (- beg font-latex-multiline-boundary)) opening-quote) (catch 'found (dolist (elt font-latex-quote-list) (when (string= (cadr elt) closing-quote) (setq opening-quote (car elt)) (throw 'found nil)))) ;; Find opening quote taking nested quotes into account. (while (progn (re-search-backward (concat opening-quote "\\|" closing-quote) point-of-surrender 'move) (when (and (> (point) point-of-surrender) (not (bobp))) (if (string= (match-string 0) closing-quote) (setq nest-count (1+ nest-count)) (when (/= nest-count 0) (setq nest-count (1- nest-count))))))) (when (< (point) beg) (throw 'extend (point))))) nil)))) nil)) (defun font-latex-match-script (limit) "Match subscript and superscript patterns up to LIMIT." (when (and font-latex-fontify-script (re-search-forward "[_^] *\\([^\n\\{}]\\|\ \\\\\\([a-zA-Z@]+\\|[^ \t\n]\\)\\|\\({\\)\\)" limit t)) (if (and (not (memq font-latex-fontify-script '(multi-level invisible))) (font-latex-faces-present-p '(font-latex-subscript-face font-latex-superscript-face))) ;; Apply subscript and superscript highlighting only once (in case ;; font-latex-fontify-script is not 'multi-level) in order to prevent ;; the font size becoming too small. We set an empty match to do that. (let ((point (point))) (store-match-data (list point point point point))) (when (match-end 3) (let ((beg (match-beginning 3)) (end (TeX-find-closing-brace ;; Don't match groups spanning more than one line ;; in order to avoid visually wrong indentation in ;; subsequent lines. nil (line-end-position)))) (store-match-data (if end (list (match-beginning 0) end beg end) (list beg beg beg beg)))))) t)) (defun font-latex-match-script-chars (limit) "Match subscript and superscript chars up to LIMIT." (and (re-search-forward "[^_^]\\([_^]\\)" limit t) (let ((pos (match-beginning 1))) (and (font-latex-faces-present-p 'font-latex-math-face pos) (not (font-latex-faces-present-p '(font-lock-constant-face font-lock-builtin-face font-lock-comment-face font-latex-verbatim-face) pos)) ;; Check for backslash quoting (not (let ((odd nil) (pos pos)) (while (eq (char-before pos) ?\\) (setq pos (1- pos) odd (not odd))) odd)))))) (defun font-latex--get-script-props (pos script-type) (let* ((old-raise (or (plist-get (get-text-property pos 'display) 'raise) 0.0)) (new-level (1+ (or (get-text-property pos 'script-level) 0))) (disp-props (copy-sequence (case script-type (:super (cdr font-latex-script-display)) (:sub (car font-latex-script-display))))) (new-disp-props (let ((raise (plist-get disp-props 'raise)) (nl new-level)) (if raise ;; This polynom approximates that the factor ;; which is multiplied with raise is 1 for nl=1, ;; 0.8 for nl=2, 0.64 for nl=3, etc. (so always ;; about 80% of the previous value). (plist-put disp-props 'raise (+ old-raise (* raise (+ 1.1965254857142873 (* nl -0.21841226666666758) (* nl nl 0.012018514285714385))))) disp-props)))) `(face ,(if (<= new-level font-latex-fontify-script-max-level) (case script-type (:super 'font-latex-superscript-face) (:sub 'font-latex-subscript-face)) nil) script-level ,new-level display ,new-disp-props))) ;; Copy and adaption of `tex-font-lock-suscript' from tex-mode.el in ;; GNU Emacs on 2004-07-07. (defun font-latex-script (pos) "Return face and display spec for subscript and superscript content." (when (and (font-latex-faces-present-p 'font-latex-math-face pos) (not (font-latex-faces-present-p '(font-lock-constant-face font-lock-builtin-face font-lock-comment-face font-latex-verbatim-face) pos)) ;; Check for backslash quoting (not (let ((odd nil) (pos pos)) (while (eq (char-before pos) ?\\) (setq pos (1- pos) odd (not odd))) odd))) ;; Adding other text properties than `face' is supported by ;; `font-lock-apply-highlight' in CVS Emacsen since 2001-10-28. ;; With the introduction of this feature the variable ;; `font-lock-extra-managed-props' was introduced and serves here ;; for feature checking. XEmacs (CVS and 21.4.15) currently ;; (2004-08-18) does not support this feature. (let ((extra-props-flag (boundp 'font-lock-extra-managed-props))) (if (eq (char-after pos) ?_) (if extra-props-flag (font-latex--get-script-props pos :sub) 'font-latex-subscript-face) (if extra-props-flag (font-latex--get-script-props pos :super) 'font-latex-superscript-face))))) (defun font-latex-script-char (pos) "Return face and display spec for subscript and superscript character at POS." (if (boundp 'font-lock-extra-managed-props) `(face font-latex-script-char-face ,@(when (eq font-latex-fontify-script 'invisible) '(invisible t))) 'font-latex-script-char-face)) ;;; docTeX (defvar font-latex-doctex-preprocessor-face 'font-latex-doctex-preprocessor-face "Face used to highlight preprocessor directives in docTeX mode.") (defface font-latex-doctex-preprocessor-face '((t (:inherit (font-latex-doctex-documentation-face font-lock-builtin-face ; Emacs 21 does not provide ; the preprocessor face. font-lock-preprocessor-face)))) "Face used to highlight preprocessor directives in docTeX mode." :group 'font-latex-highlighting-faces) (defvar font-latex-doctex-documentation-face 'font-latex-doctex-documentation-face "Face used to highlight the documentation in docTeX mode.") (defface font-latex-doctex-documentation-face '((((class mono)) (:inverse-video t)) (((class grayscale) (background dark)) (:background "#333")) (((class color) (background dark)) (:background "#333")) (t (:background "#eeeeee"))) "Face used to highlight the documentation parts in docTeX mode." :group 'font-latex-highlighting-faces) (defvar font-latex-doctex-keywords (append font-latex-keywords-2 '(("^%<[^>]*>" (0 font-latex-doctex-preprocessor-face t))))) ;; Copy and adaptation of `doctex-font-lock-^^A' in `tex-mode.el' of ;; CVS Emacs (March 2004) (defun font-latex-doctex-^^A () (if (eq (char-after (line-beginning-position)) ?\%) (progn (put-text-property (1- (match-beginning 1)) (match-beginning 1) 'syntax-table (if (= (1+ (line-beginning-position)) (match-beginning 1)) ;; The `%' is a single-char comment, which Emacs ;; syntax-table can't deal with. We could turn it ;; into a non-comment, or use `\n%' or `%^' as the comment. ;; Instead, we include it in the ^^A comment. ;; COMPATIBILITY for Emacs 20 and XEmacs (eval-when-compile (if (fboundp 'string-to-syntax) (string-to-syntax "< b") '(2097163))) ;; COMPATIBILITY for Emacs 20 and XEmacs (eval-when-compile (if (fboundp 'string-to-syntax) (string-to-syntax ">") '(12))))) (let ((end (line-end-position))) (if (< end (point-max)) (put-text-property end (1+ end) 'syntax-table ;; COMPATIBILITY for Emacs 20 and XEmacs (eval-when-compile (if (fboundp 'string-to-syntax) (string-to-syntax "> b") '(2097164)))))) ;; COMPATIBILITY for Emacs 20 and XEmacs (eval-when-compile (if (fboundp 'string-to-syntax) (string-to-syntax "< b") '(2097163)))))) ;; Copy and adaptation of `doctex-font-lock-syntactic-face-function' ;; in `tex-mode.el' of CVS Emacs (March 2004) (defun font-latex-doctex-syntactic-face-function (state) ;; Mark docTeX documentation, which is parsed as a style A comment ;; starting in column 0. (if (or (nth 3 state) (nth 7 state) (not (memq (char-before (nth 8 state)) '(?\n nil)))) ;; Anything else is just as for LaTeX. (font-latex-syntactic-face-function state) font-latex-doctex-documentation-face)) ;;; Installation in non-AUCTeX LaTeX mode ;; Here used to be some code which tried to magically make things work and ;; thereby broke other stuff. If you want to use font-latex with stock ;; latex-mode, then please just add `font-latex-setup' to `latex-mode-hook' ;; yourself. ;;; Byte-compilation of generated functions (when (byte-code-function-p (symbol-function 'font-latex-make-built-in-keywords)) (dolist (elt font-latex-built-in-keyword-classes) (let ((name (nth 0 elt))) (byte-compile (intern (concat "font-latex-match-" name))) (byte-compile (intern (concat "font-latex-match-" name "-make")))))) ;; Provide ourselves: (provide 'font-latex) ;; Local Variables: ;; coding: iso-8859-1 ;; End: ;;; font-latex.el ends here auctex-11.91/images/000077500000000000000000000000001313533625700142735ustar00rootroot00000000000000auctex-11.91/images/amstex.xpm000066400000000000000000000101571313533625700163260ustar00rootroot00000000000000/* XPM */ static char * amstex_xpm[] = { "24 24 180 2", " c None s backgroundToolBarColor", ". c #3E9543", "+ c #409644", "@ c #3D9D45", "# c #3F9B42", "$ c #4C2A1F", "% c #4E3124", "& c #727E51", "* c #598A4E", "= c #5B6647", "- c #88624F", "; c #89383B", "> c #8B343B", ", c #6D5852", "' c #506D48", ") c #4C843E", "! c #648752", "~ c #B8A789", "{ c #80624D", "] c #7D6951", "^ c #FFFFC1", "/ c #94A676", "( c #8F8668", "_ c #977567", ": c #A86660", "< c #986C6A", "[ c #758660", "} c #708C60", "| c #6A6C4E", "1 c #C3C599", "2 c #988167", "3 c #5A3125", "4 c #561E1C", "5 c #958066", "6 c #BEA384", "7 c #68372B", "8 c #672124", "9 c #5B392F", "0 c #94917B", "a c #AFAC91", "b c #B8B39C", "c c #BDBCA0", "d c #B39073", "e c #582522", "f c #712E2B", "g c #6F292C", "h c #83826F", "i c #908F88", "j c #F8FFFD", "k c #686C8D", "l c #D7DBB8", "m c #716D76", "n c #7B7B92", "o c #D5D5B3", "p c #DBBD9A", "q c #81463B", "r c #691A19", "s c #838270", "t c #888791", "u c #6462D0", "v c #2C2B87", "w c #DAD9C7", "x c #868394", "y c #716DDC", "z c #2F2C94", "A c #C7C6B7", "B c #D2AF8D", "C c #84473C", "D c #6D1E1F", "E c #6E262C", "F c #BDBDAB", "G c #878593", "H c #909095", "I c #C0BEAF", "J c #A09EAD", "K c #A6A5A9", "L c #C19978", "M c #7C3D33", "N c #641C1F", "O c #662633", "P c #DBDCB8", "Q c #B4B492", "R c #E5D9AA", "S c #9F755A", "T c #50231F", "U c #672424", "V c #8E3B4B", "W c #E4E3BC", "X c #A5A28D", "Y c #D2D1B5", "Z c #E7E5C1", "` c #E3DFC0", " . c #E4CCA2", ".. c #894E3A", "+. c #461715", "@. c #632524", "#. c #95404E", "$. c #777776", "%. c #C0B396", "&. c #AAAB90", "*. c #463F31", "=. c #665E46", "-. c #7C7968", ";. c #B3AF92", ">. c #D4BD97", ",. c #804B37", "'. c #461F19", "). c #42201F", "!. c #5A4F43", "~. c #504334", "{. c #979183", "]. c #DCD8B5", "^. c #D0BC9D", "/. c #C8A487", "(. c #82493F", "_. c #3F1310", ":. c #401613", "<. c #664B46", "[. c #DCD9BC", "}. c #B8B59D", "|. c #8C8977", "1. c #E9E7C0", "2. c #A2897B", "3. c #AE8872", "4. c #CFB89A", "5. c #A6715F", "6. c #4B1D19", "7. c #68272E", "8. c #6E2933", "9. c #453E37", "0. c #767361", "a. c #7F8170", "b. c #7B7B6C", "c. c #8E897E", "d. c #827F6E", "e. c #83876F", "f. c #847E70", "g. c #9C7964", "h. c #662F2A", "i. c #5D2D2E", "j. c #783C3F", "k. c #87826E", "l. c #B3B99A", "m. c #D1D1AB", "n. c #DFDDB9", "o. c #C3B191", "p. c #826453", "q. c #6D2B2A", "r. c #884144", "s. c #772B2F", "t. c #702F34", "u. c #AEA28C", "v. c #C1C3A2", "w. c #AEA07E", "x. c #C8C09F", "y. c #C4C6A3", "z. c #B6886B", "A. c #774237", "B. c #7E3E3D", "C. c #854748", "D. c #78373B", "E. c #6A2932", "F. c #5F343C", "G. c #7C474A", "H. c #815655", "I. c #7F534F", "J. c #8A5C54", "K. c #74504B", "L. c #8C615F", "M. c #7E2C29", "N. c #8C4240", "O. c #7C322F", "P. c #703634", "Q. c #6D1B27", "R. c #975F59", "S. c #631D22", "T. c #65101D", "U. c #000000", "V. c #868686", "W. c #AFAEAE", " . + @ # $ ", " % & * = - ; > , ' ) ! ~ { ", " ] ^ / ( _ : < [ } | 1 2 3 4 ", " 5 ^ ^ ^ ^ ^ ^ ^ ^ ^ 6 7 8 ", " 9 ^ 0 a ^ b 0 c ^ ^ d e f g ", " h i j k l m j n o ^ p q r ", " s t u v w x y z A ^ B C D E ", " ] F G H ^ I J K ^ ^ L M N O ", " ] ^ P Q ^ ^ ^ ^ ^ ^ R S T U V ", " ] ^ W X Y Z ` ^ ^ ^ ^ ...+.@.#. ", " $.$.%.%.&.*.=.-.;.%.%.%.^ >.,.'.). ", " %.%.^ ^ !.~.{.].^ ^ ^ ^./.(._.:. ", " $.$.<.[.^ }.|.1.^ 2.3.4.^ 5.6.7.8. ", " 9.0.a.b.c.d.e.f.^ ^ g.h.i.j. ", " k.^ l.^ ^ m.n.^ o.p.q.r.s.t. ", " u.v.%.w.x.y.z.A.B.C.D.E.F. ", " G.H.I.J.K.L.M.N.O.P. ", " Q.R. S. T. ", " ", " U.U. V.U.U.W. ", " U. U. U.U.V.U.V. U. ", " U. U. U. U. U. V.U.U.V. ", " U.U.U.U. U. U. U. U. ", " U.V. U. U. U. U. U.U.U.V. "}; auctex-11.91/images/bibtex.xpm000066400000000000000000000030511313533625700162750ustar00rootroot00000000000000/* XPM */ static char * bibtex14_xpm[] = { "24 24 55 1", " c None s backgroundToolBarColor", ". c #353535", "+ c #877D55", "@ c #B9AD74", "# c #606060", "$ c #878585", "% c #A89C6A", "& c #726A49", "* c #070705", "= c #9A9A9A", "- c #59533A", "; c #938960", "> c #C9C7BF", ", c #7C7C7C", "' c #3D3928", ") c #AFA379", "! c #AFAEA8", "~ c #938A63", "{ c #3F3B2A", "] c #8E865E", "^ c #B6AA72", "/ c #424242", "( c #373737", "_ c #4E4C41", ": c #565344", "< c #746D4E", "[ c #7E7652", "} c #8E845A", "| c #B0A46E", "1 c #775E5E", "2 c #F5F4F3", "3 c #D7D5D0", "4 c #BCB8AC", "5 c #A39F94", "6 c #817E71", "7 c #605D4F", "8 c #8A8058", "9 c #92885C", "0 c #826A6A", "a c #CACACA", "b c #FFFFFF", "c c #E6E6E5", "d c #D0D0D0", "e c #CCCCCC", "f c #C4C2B8", "g c #B5B2A5", "h c #918F84", "i c #59564C", "j c #F6F6F6", "k c #F3F2F0", "l c #AEAEAE", "m c #727272", "n c #909090", "o c #DCDCDC", "p c #A3A3A3", " ", " ", " .............. ", " .+@@@@@@@@@@@+# ", " $.@@@@@@@@@@@+. ", " .%&*@@@@@@@@@.= ", " .+@--@@*@-;@@+.> ", " $.@-*@@@@;*@@@.=>, ", " .%@*@*@*@'*@@+.>>..", " .+@*;--&&&*)*@.=>!, ", " $.@@@*-@*@*~~*@.>>,= ", " .%@@@@@@@@@{{@.=>!. ", " .+@@@@@@@@@@@@+.>>,= ", " $.]^@@@@@@@@@@@.=>!. ", " /(_:<[}|@@@@@@+.>>,= ", " /12234567:<[89.>>!. ", " /0abbb2cdefghi>>>,= ", " $#$ajbbbbbkcc>>!. ", " l=mnajbbbbbo>,= ", " l=mnajbbc>. ", " l=mnac,= ", " l=m. ", " p ", " "}; auctex-11.91/images/dropdown.xpm000066400000000000000000000007141313533625700166570ustar00rootroot00000000000000/* XPM */ static char * dropdown_xpm[] = { "10 24 3 1", " c None s backgroundToolBarColor", ". c #292C29", "+ c #B3B3B3", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " . . ", " ... ... ", " ...... ", " .... ", " .. ", " ++ ", " ", " ", " ", " ", " ", " ", " ", " "}; auctex-11.91/images/dvipdf.xpm000066400000000000000000000024511313533625700162770ustar00rootroot00000000000000/* XPM */ static char * dvipdf4_xpm[] = { "24 24 38 1", " c None s backgroundToolBarColor", ". c #4C4C4C", "+ c #000000", "@ c #7C7C7C", "# c #577A4D", "$ c #4C6B43", "% c #37452B", "& c #76996C", "* c #9BB594", "= c #648C58", "- c #DAE3D6", "; c #445636", "> c #67865E", ", c #A7BDA0", "' c #8EAB86", ") c #526741", "! c #425D3A", "~ c #4C603C", "{ c #566B43", "] c #5A7046", "^ c #295E29", "/ c #5ABD5A", "( c #D37F71", "_ c #CE918A", ": c #D4897A", "< c #67102D", "[ c #488148", "} c #C47474", "| c #D69788", "1 c #4CA14C", "2 c #4D904D", "3 c #CB8984", "4 c #D79C8D", "5 c #C8807D", "6 c #4FA64F", "7 c #5A5A5A", "8 c #B50000", "9 c #AA7979", " .+. ++++ ", " @+##$+@ +++%++ ", " +&**&=+ + +%+ ", " .#*-*&=$. +;+ ", " +>,*'==$+ +)+ ", " .#&&==#!. ++))~++ ", " +#==#$+ +{]{+ ", " @+!$!+@ +)+ ", " .+. + ", " ", " + ", "^^^/ ^ ^ ^ +(+ ", "^ ^ ^ ^ ^ +_:<+ ", "^ ^ [ [ ^ +}_|<<+ ", "^ ^ 1221 ^ +}3_4<<<+ ", "^ ^ [[ ^ +}53_4<<<<+", "^^^/ 66 ^ +}53_|<<<+ ", " 7+}5:<<+ ", " 7+(<+ ", "8889 8889 8889 ++ ", "8 8 8 8 8 ", "8889 8 8 889 ", "8 8 8 8 ", "8 8889 8 "}; auctex-11.91/images/dvips.xpm000066400000000000000000000032211313533625700161440ustar00rootroot00000000000000/* XPM */ static char * dvips66_xpm[] = { "24 24 62 1", " c None s backgroundToolBarColor", ". c #4C4C4C", "+ c #000000", "@ c #7C7C7C", "# c #577A4D", "$ c #4C6B43", "% c #37452B", "& c #76996C", "* c #9BB594", "= c #648C58", "- c #DAE3D6", "; c #445636", "> c #67865E", ", c #A7BDA0", "' c #8EAB86", ") c #526741", "! c #425D3A", "~ c #4C603C", "{ c #566B43", "] c #5A7046", "^ c #869CB4", "/ c #00244C", "( c #002248", "_ c #0050A9", ": c #006FEB", "< c #0066D9", "[ c #00336D", "} c #295E29", "| c #5ABD5A", "1 c #001070", "2 c #004BA2", "3 c #0078FF", "4 c #0075FC", "5 c #004DB6", "6 c #00072F", "7 c #0047FF", "8 c #006DFF", "9 c #0042CA", "0 c #00169E", "a c #000A45", "b c #488148", "c c #0024FF", "d c #0027FF", "e c #0056ED", "f c #001FA7", "g c #00179F", "h c #4CA14C", "i c #4D904D", "j c #001DCE", "k c #4FA64F", "l c #000B4C", "m c #0023F5", "n c #001492", "o c #000E65", "p c #00010B", "q c #001AB9", "r c #0022F0", "s c #001387", "t c #000942", "u c #0037C4", "v c #6C84B7", "w c #000C57", " .+. ++++ ", " @+##$+@ +++%++ ", " +&**&=+ + +%+ ", " .#*-*&=$. +;+ ", " +>,*'==$+ +)+ ", " .#&&==#!. ++))~++ ", " +#==#$+ +{]{+ ", " @+!$!+@ +)+ ", " .+. + ", " ", " ^/ ", " ^(_:<[ ", "}}}| } } } 12:333456", "} } } } } 17833390a", "} } b b } 1cd7efg0a", "} } hiih } 1cccj000a", "} } bb } 1cccj000a", "}}}| kk } lmccj0nop", " lqrjst ", " uuuv vuuv 1w ", " u u u ", " uuuv vuuv ", " u u ", " u vuuv "}; auctex-11.91/images/error.xpm000066400000000000000000000015461313533625700161600ustar00rootroot00000000000000/* XPM */ static char * error22_xpm[] = { "24 24 8 1", " c None s backgroundToolBarColor", ". c #847000", "+ c #000000", "@ c #F0C900", "# c #AB9100", "$ c #887821", "% c #AA9629", "& c #51470D", " ", " ", " .++. ", " +@@@@+ ", " #.@@@@.# ", " +@@@@@@+ ", " #.@@@@@@.# ", " +@@@++@@@+ ", " #.@@@++@@@.# ", " +@@@@++@@@@+ ", " #.@@@@++@@@@.# ", " +@@@@@++@@@@@+ ", " #.@@@@@++@@@@@.# ", " +@@@@@@$$@@@@@@+ ", " #.@@@@@@%%@@@@@@.# ", " +@@@@@@@@@@@@@@@@+ ", " .#@@@@@@@++@@@@@@@#. ", " &@@@@@@@@++@@@@@@@@& ", " &@@@@@@@@@@@@@@@@@@& ", " +@@@@@@@@@@@@@@@@+ ", " .++++++++++++++. ", " ", " ", " "}; auctex-11.91/images/exec.xpm000066400000000000000000000025241313533625700157500ustar00rootroot00000000000000/* XPM */ static char * exec6_xpm[] = { "24 24 41 1", " c None s backgroundToolBarColor", ". c #9F9D96", "+ c #3A3A3A", "@ c #B3B3B1", "# c #000000", "$ c #807D74", "% c #3C3C3C", "& c #76746B", "* c #5D5C55", "= c #6D6B63", "- c #65635C", "; c #8C8B89", "> c #E4E3E1", ", c #E2E2E2", "' c #484641", ") c #888781", "! c #B0AFAD", "~ c #A8A7A1", "{ c #908E86", "] c #97958E", "^ c #595854", "/ c #605E57", "( c #898883", "_ c #464542", ": c #4A4947", "< c #43423E", "[ c #E2E2E1", "} c #B6B5AF", "| c #494847", "1 c #434242", "2 c #464644", "3 c #E6E6E4", "4 c #484846", "5 c #DFDEDC", "6 c #B0AFA9", "7 c #D5D4D1", "8 c #93918B", "9 c #D6D5D2", "0 c #ABA9A3", "a c #494943", "b c #464540", " ", " . ++ @ ", " #@#..#.# ", " .@...$$$%. ", " #..&$*=# ", " +..&##@--+ ", " +.$$#;@-%+ ", " #$*@@$%# ", " @.$=--%%%. ", " #%#-%#%# ", " . ++ . %%% ", " %% %>% %% ", " %,@%'.'%)%% ", " %!~...{]$'% ", " %..^/($&% ", " %%'./_:<.='%% ", " %[}.^|123$-/% ", " %%'.(<4;5-'%% ", " %6$}378-%% ", " %90.$$&&*'% ", " %%^%'&'%a%% ", " %% %b%*%% ", " %%% ", " "}; auctex-11.91/images/execbibtex.xpm000066400000000000000000000055641313533625700171550ustar00rootroot00000000000000/* XPM */ static char * execbibtex8_xpm[] = { "24 24 100 2", " c None s backgroundToolBarColor", ". c #1F1D12", "+ c #222017", "@ c #211F15", "# c #211F14", "$ c #0C0B07", "% c #5E5737", "& c #B7AB72", "* c #BFB480", "= c #BAAF77", "- c #B9AD74", "; c #9A9061", "> c #545144", ", c #AFA98C", "' c #776F4F", ") c #C0B684", "! c #625C3D", "~ c #767675", "{ c #A79D6F", "] c #BEB37E", "^ c #93895C", "/ c #59574E", "( c #A3A3A2", "_ c #807A59", ": c #BCB17E", "< c #B9AE75", "[ c #B8AC73", "} c #7E7650", "| c #5B5B5B", "1 c #ACACAA", "2 c #202120", "3 c #60593A", "4 c #BAAE76", "5 c #A39966", "6 c #363635", "7 c #B4B4B3", "8 c #82857F", "9 c #171816", "0 c #8A825C", "a c #B9AD75", "b c #6D6748", "c c #6A6A6A", "d c #A9AAA6", "e c #363735", "f c #95948C", "g c #A39C82", "h c #7A7356", "i c #BBB079", "j c #BBAF78", "k c #20201C", "l c #B3B3B2", "m c #767774", "n c #20211F", "o c #1A1112", "p c #5D413D", "q c #555540", "r c #7C7A58", "s c #4D4830", "t c #8B8A89", "u c #ADADAB", "v c #4F514E", "w c #1E1616", "x c #BA9797", "y c #DCD6D3", "z c #CDCDCA", "A c #575651", "B c #1B1A19", "C c #ABABA9", "D c #777775", "E c #080808", "F c #1B1212", "G c #846666", "H c #A5A09E", "I c #D4D2C6", "J c #E7E6DF", "K c #F1F0EC", "L c #A9AAA8", "M c #4F514D", "N c #585442", "O c #6D6D66", "P c #DEDBCA", "Q c #EAE9E4", "R c #BEC0B9", "S c #878A84", "T c #000000", "U c #47453A", "V c #50504D", "W c #999474", "X c #363731", "Y c #020201", "Z c #3A3A3A", "` c #65635C", " . c #9F9D96", ".. c #807D74", "+. c #3C3C3C", "@. c #76746B", "#. c #5D5C55", "$. c #6D6B63", "%. c #B3B3B1", "&. c #8C8B89", " ", " . + @ # # # # $ ", " % & * = - - - ; > ", " , ' ) = - - - - ! ~ ", " % { ] - - - - ^ / ( ", " , _ : < - - - [ } | 1 2 ", " 3 ] 4 - - - - 5 6 7 8 9 ", " % 0 ] a - - - - b c d e f ", " g h i j - - - - - k l m n ", " o p q r ; 5 - - s t u v f ", " w x y z u ~ A q B C D E ", " F G H I J K K K z L M f ", " v M N O f P Q R S T ", " ( D U V W X f ", " ( v Y Z Z ", " T ` T . .T ` T ", " ` . . .......+. ", " T . .@...#.$.T ", " Z . .@.T T %.` ` Z ", " Z .....T &.%.` +.Z ", " T ..#.%.%...+.T ", " ` ..$.` ` +.+.+. ", " T +.T ` +.T +.T ", " Z Z "}; auctex-11.91/images/execdvips.xpm000066400000000000000000000021521313533625700170130ustar00rootroot00000000000000/* XPM */ static char * execdvips36_xpm[] = { "24 24 25 1", " c None s backgroundToolBarColor", ". c #295E29", "+ c #5ABD5A", "@ c #488148", "# c #818181", "$ c #4CA14C", "% c #4D904D", "& c #ADADAD", "* c #4FA64F", "= c #6E6E6E", "- c #545454", "; c #999999", "> c #3A3A3A", ", c #000000", "' c #65635C", ") c #9F9D96", "! c #0037C4", "~ c #6C84B7", "{ c #807D74", "] c #3C3C3C", "^ c #76746B", "/ c #5D5C55", "( c #6D6B63", "_ c #B3B3B1", ": c #8C8B89", " ", " ...+ . . . ", " . . . . . ", " . . . . . ", " . . @ @ . ", " # . . $%%$ . ", " #& . . @@ . ", " #& ...+ ** . ", " = ", " - ", " # ", " - ; ", " ;- ", " ;-- ", " >> ", " ,',)),', ", " !!!~ ~!!~ '))){{{] ", " ! ! ! ! ,))^{/(, ", " ! ! ! >))^,,_''>", " !!!~ ~!!~ >){{,:_']>", " ! ! ,{/__{], ", " ! ! ! '{('']]] ", " ! ~!!~ ,],'],], ", " >> "}; auctex-11.91/images/execerror.xpm000066400000000000000000000020751313533625700170230ustar00rootroot00000000000000/* XPM */ static char * execerror12_xpm[] = { "24 24 22 1", " c None s backgroundToolBarColor", ". c #B09400", "+ c #605000", "@ c #9C8400", "# c #FFD906", "$ c #FED90A", "% c #957F0D", "& c #DEBD0E", "* c #6F5D00", "= c #8F7900", "- c #655500", "; c #3A3A3A", "> c #000000", ", c #65635C", "' c #9F9D96", ") c #807D74", "! c #3C3C3C", "~ c #76746B", "{ c #5D5C55", "] c #6D6B63", "^ c #B3B3B1", "/ c #8C8B89", " ", " ", " .++. ", " @##@. ", " +$###+ ", " ..#++#.. ", " +$#++#$+ ", " ..##++##.. ", " +$##%%##$+ ", " ..###&&###.. ", " +####**###$+ ", " +##########+ ", " =--------= ", " ", " ;; ", " >,>''>,> ", " ,''')))! ", " >''~){]> ", " ;''~>>^,,;", " ;'))>/^,!;", " >){^^)!> ", " ,)],,!!! ", " >!>,!>!> ", " ;; "}; auctex-11.91/images/execpdftex.xpm000066400000000000000000000101251313533625700171570ustar00rootroot00000000000000/* XPM */ static char * execpdftex11_xpm[] = { "24 24 178 2", " c None s backgroundToolBarColor", ". c #3E9543", "+ c #409644", "@ c #3D9D45", "# c #3F9B42", "$ c #4C2A1F", "% c #4E3124", "& c #727E51", "* c #598A4E", "= c #5B6647", "- c #88624F", "; c #89383B", "> c #8B343B", ", c #6D5852", "' c #506D48", ") c #4C843E", "! c #648752", "~ c #B8A789", "{ c #80624D", "] c #7D6951", "^ c #FFFFC1", "/ c #94A676", "( c #8F8668", "_ c #977567", ": c #A86660", "< c #986C6A", "[ c #758660", "} c #708C60", "| c #6A6C4E", "1 c #C3C599", "2 c #988167", "3 c #5A3125", "4 c #958066", "5 c #BEA384", "6 c #68372B", "7 c #672124", "8 c #5B392F", "9 c #94917B", "0 c #AFAC91", "a c #B8B39C", "b c #BDBCA0", "c c #B39073", "d c #582522", "e c #712E2B", "f c #83826F", "g c #908F88", "h c #F8FFFD", "i c #686C8D", "j c #D7DBB8", "k c #716D76", "l c #7B7B92", "m c #D5D5B3", "n c #DBBD9A", "o c #81463B", "p c #691A19", "q c #838270", "r c #888791", "s c #6462D0", "t c #2C2B87", "u c #DAD9C7", "v c #868394", "w c #716DDC", "x c #2F2C94", "y c #C7C6B7", "z c #D2AF8D", "A c #84473C", "B c #6D1E1F", "C c #975F59", "D c #BDBDAB", "E c #878593", "F c #909095", "G c #C0BEAF", "H c #A09EAD", "I c #A6A5A9", "J c #C19978", "K c #7C3D33", "L c #641C1F", "M c #DBDCB8", "N c #B4B492", "O c #E5D9AA", "P c #9F755A", "Q c #50231F", "R c #672424", "S c #E4E3BC", "T c #A5A28D", "U c #D2D1B5", "V c #E7E5C1", "W c #E3DFC0", "X c #E4CCA2", "Y c #894E3A", "Z c #461715", "` c #632524", " . c #665E46", ".. c #C0B396", "+. c #AAAB90", "@. c #463F31", "#. c #7C7968", "$. c #B3AF92", "%. c #D4BD97", "&. c #804B37", "*. c #461F19", "=. c #42201F", "-. c #5A4F43", ";. c #504334", ">. c #979183", ",. c #DCD8B5", "'. c #D0BC9D", "). c #C8A487", "!. c #82493F", "~. c #3F1310", "{. c #401613", "]. c #664B46", "^. c #DCD9BC", "/. c #B8B59D", "(. c #8C8977", "_. c #E9E7C0", ":. c #A2897B", "<. c #AE8872", "[. c #CFB89A", "}. c #A6715F", "|. c #4B1D19", "1. c #68272E", "2. c #767361", "3. c #7F8170", "4. c #7B7B6C", "5. c #8E897E", "6. c #827F6E", "7. c #83876F", "8. c #847E70", "9. c #9C7964", "0. c #662F2A", "a. c #5D2D2E", "b. c #783C3F", "c. c #87826E", "d. c #B3B99A", "e. c #D1D1AB", "f. c #DFDDB9", "g. c #C3B191", "h. c #826453", "i. c #6D2B2A", "j. c #884144", "k. c #772B2F", "l. c #3A3A3A", "m. c #AEA28C", "n. c #C1C3A2", "o. c #AEA07E", "p. c #C8C09F", "q. c #C4C6A3", "r. c #B6886B", "s. c #774237", "t. c #7E3E3D", "u. c #854748", "v. c #78373B", "w. c #000000", "x. c #65635C", "y. c #9F9D96", "z. c #7C474A", "A. c #815655", "B. c #7F534F", "C. c #8A5C54", "D. c #74504B", "E. c #8C615F", "F. c #7E2C29", "G. c #8C4240", "H. c #7C322F", "I. c #703634", "J. c #807D74", "K. c #3C3C3C", "L. c #6D1B27", "M. c #631D22", "N. c #65101D", "O. c #76746B", "P. c #5D5C55", "Q. c #6D6B63", "R. c #B3B3B1", "S. c #B50000", "T. c #AA7979", "U. c #8C8B89", " . + @ # $ ", " % & * = - ; > , ' ) ! ~ { ", " ] ^ / ( _ : < [ } | 1 2 3 ", " 4 ^ ^ ^ ^ ^ ^ ^ ^ ^ 5 6 7 ", " 8 ^ 9 0 ^ a 9 b ^ ^ c d e ", " f g h i j k h l m ^ n o p ", " q r s t u v w x y ^ z A B C ", " ] D E F ^ G H I ^ ^ J K L ", " ] ^ M N ^ ^ ^ ^ ^ ^ O P Q R C ", " ] ^ S T U V W ^ ^ ^ ^ X Y Z ` ", " .....+.@. .#.$.......^ %.&.*.=. ", "....^ ^ -.;.>.,.^ ^ ^ '.).!.~.{. ", " .].^.^ /.(._.^ :.<.[.^ }.|.1. ", " 2.2.3.4.5.6.7.8.^ ^ 9.0.a.b. ", " c.^ d.^ ^ e.f.^ g.h.i.j.k. l.l. ", " m.n...o.p.q.r.s.t.u.v. w.x.w.y.y.w.x.w. ", " z.A.B.C.D.E.F.G.H.I. x.y.y.y.J.J.J.K. ", " L.C M. N. w.y.y.O.J.P.Q.w. ", " l.y.y.O.w.w.R.x.x.l.", " S.S.T. S.S.T. S.S.T. l.y.J.J.w.U.R.x.K.l.", " S. S. S. S. S. w.J.P.R.R.J.K.w. ", " S.S.T. S. S. S.S. x.J.Q.x.x.K.K.K. ", " S. S. S. S. w.K.w.x.K.w.K.w. ", " S. S.S.T. S. l.l. "}; auctex-11.91/images/exectex.xpm000066400000000000000000000100621313533625700164650ustar00rootroot00000000000000/* XPM */ static char * exectex40_xpm[] = { "24 24 176 2", " c None s backgroundToolBarColor", ". c #3E9543", "+ c #409644", "@ c #3D9D45", "# c #3F9B42", "$ c #4C2A1F", "% c #4E3124", "& c #727E51", "* c #598A4E", "= c #5B6647", "- c #88624F", "; c #89383B", "> c #8B343B", ", c #6D5852", "' c #506D48", ") c #4C843E", "! c #648752", "~ c #B8A789", "{ c #80624D", "] c #7D6951", "^ c #FFFFC1", "/ c #94A676", "( c #8F8668", "_ c #977567", ": c #A86660", "< c #986C6A", "[ c #758660", "} c #708C60", "| c #6A6C4E", "1 c #C3C599", "2 c #988167", "3 c #5A3125", "4 c #958066", "5 c #BEA384", "6 c #68372B", "7 c #672124", "8 c #5B392F", "9 c #94917B", "0 c #AFAC91", "a c #B8B39C", "b c #BDBCA0", "c c #B39073", "d c #582522", "e c #712E2B", "f c #83826F", "g c #908F88", "h c #F8FFFD", "i c #686C8D", "j c #D7DBB8", "k c #716D76", "l c #7B7B92", "m c #D5D5B3", "n c #DBBD9A", "o c #81463B", "p c #691A19", "q c #838270", "r c #888791", "s c #6462D0", "t c #2C2B87", "u c #DAD9C7", "v c #868394", "w c #716DDC", "x c #2F2C94", "y c #C7C6B7", "z c #D2AF8D", "A c #84473C", "B c #6D1E1F", "C c #975F59", "D c #BDBDAB", "E c #878593", "F c #909095", "G c #C0BEAF", "H c #A09EAD", "I c #A6A5A9", "J c #C19978", "K c #7C3D33", "L c #641C1F", "M c #DBDCB8", "N c #B4B492", "O c #E5D9AA", "P c #9F755A", "Q c #50231F", "R c #672424", "S c #E4E3BC", "T c #A5A28D", "U c #D2D1B5", "V c #E7E5C1", "W c #E3DFC0", "X c #E4CCA2", "Y c #894E3A", "Z c #461715", "` c #632524", " . c #979183", ".. c #665E46", "+. c #C0B396", "@. c #AAAB90", "#. c #463F31", "$. c #7C7968", "%. c #B3AF92", "&. c #D4BD97", "*. c #804B37", "=. c #461F19", "-. c #42201F", ";. c #5A4F43", ">. c #504334", ",. c #DCD8B5", "'. c #D0BC9D", "). c #C8A487", "!. c #82493F", "~. c #3F1310", "{. c #401613", "]. c #664B46", "^. c #DCD9BC", "/. c #B8B59D", "(. c #8C8977", "_. c #E9E7C0", ":. c #A2897B", "<. c #AE8872", "[. c #CFB89A", "}. c #A6715F", "|. c #4B1D19", "1. c #68272E", "2. c #767361", "3. c #7F8170", "4. c #7B7B6C", "5. c #8E897E", "6. c #827F6E", "7. c #83876F", "8. c #847E70", "9. c #9C7964", "0. c #662F2A", "a. c #5D2D2E", "b. c #783C3F", "c. c #87826E", "d. c #B3B99A", "e. c #D1D1AB", "f. c #DFDDB9", "g. c #C3B191", "h. c #826453", "i. c #6D2B2A", "j. c #884144", "k. c #772B2F", "l. c #3A3A3A", "m. c #AEA28C", "n. c #C1C3A2", "o. c #AEA07E", "p. c #C8C09F", "q. c #C4C6A3", "r. c #B6886B", "s. c #774237", "t. c #7E3E3D", "u. c #854748", "v. c #78373B", "w. c #000000", "x. c #65635C", "y. c #9F9D96", "z. c #7C474A", "A. c #815655", "B. c #7F534F", "C. c #8A5C54", "D. c #74504B", "E. c #8C615F", "F. c #7E2C29", "G. c #8C4240", "H. c #7C322F", "I. c #703634", "J. c #807D74", "K. c #3C3C3C", "L. c #6D1B27", "M. c #631D22", "N. c #65101D", "O. c #76746B", "P. c #5D5C55", "Q. c #6D6B63", "R. c #B3B3B1", "S. c #8C8B89", " . + @ # $ ", " % & * = - ; > , ' ) ! ~ { ", " ] ^ / ( _ : < [ } | 1 2 3 ", " 4 ^ ^ ^ ^ ^ ^ ^ ^ ^ 5 6 7 ", " 8 ^ 9 0 ^ a 9 b ^ ^ c d e ", " f g h i j k h l m ^ n o p ", " q r s t u v w x y ^ z A B C ", " ] D E F ^ G H I ^ ^ J K L ", " ] ^ M N ^ ^ ^ ^ ^ ^ O P Q R C ", " ] ^ S T U V W ^ ^ ^ ^ X Y Z ` ", " ...+.+.@.#...$.%.+.+.+.^ &.*.=.-. ", " +.+.^ ^ ;.>. .,.^ ^ ^ '.).!.~.{. ", " ...].^.^ /.(._.^ :.<.[.^ }.|.1. ", " 2.2.3.4.5.6.7.8.^ ^ 9.0.a.b. ", " c.^ d.^ ^ e.f.^ g.h.i.j.k. l.l. ", " m.n.+.o.p.q.r.s.t.u.v. w.x.w.y.y.w.x.w. ", " z.A.B.C.D.E.F.G.H.I. x.y.y.y.J.J.J.K. ", " L.C M. N. w.y.y.O.J.P.Q.w. ", " l.y.y.O.w.w.R.x.x.l.", " l.y.J.J.w.S.R.x.K.l.", " w.J.P.R.R.J.K.w. ", " x.J.Q.x.x.K.K.K. ", " w.K.w.x.K.w.K.w. ", " l.l. "}; auctex-11.91/images/execviewdvi.xpm000066400000000000000000000020221313533625700173370ustar00rootroot00000000000000/* XPM */ static char * execviewdvi11_xpm[] = { "24 24 19 1", " c None s backgroundToolBarColor", ". c #295E29", "+ c #5ABD5A", "@ c #488148", "# c #4CA14C", "$ c #4D904D", "% c #000000", "& c #4FA64F", "* c #FFFFFF", "= c #3A3A3A", "- c #65635C", "; c #9F9D96", "> c #807D74", ", c #3C3C3C", "' c #76746B", ") c #5D5C55", "! c #6D6B63", "~ c #B3B3B1", "{ c #8C8B89", " ...+ . . . ", " . . . . . ", " . . . . . ", " . . @ @ . ", " . . #$$# . ", " . . @@ . ", " %% ...+ && . ", " % % ", " % % ", " % % %% ", " %% % % ", "%* % % % ", "%** % %% % % ", "%** %%%* %% ", " % % %** % == ", " %% %** % %-%;;%-% ", " % % -;;;>>>, ", " %% %;;'>)!% ", " =;;'%%~--=", " =;>>%{~-,=", " %>)~~>,% ", " ->!--,,, ", " %,%-,%,% ", " == "}; auctex-11.91/images/execviewpdf.xpm000066400000000000000000000017251313533625700173370ustar00rootroot00000000000000/* XPM */ static char * execviewpdf4_xpm[] = { "24 24 15 1", " c None s backgroundToolBarColor", ". c #B50000", "+ c #AA7979", "@ c #000000", "# c #FFFFFF", "$ c #3A3A3A", "% c #65635C", "& c #9F9D96", "* c #807D74", "= c #3C3C3C", "- c #76746B", "; c #5D5C55", "> c #6D6B63", ", c #B3B3B1", "' c #8C8B89", " ...+ ...+ ...+", " . . . . . ", " . . . . . ", " ...+ . . ..+ ", " . . . . ", " . . . . ", " @@ . ...+ . ", " @ @ ", " @ @ ", " @ @ @@ ", " @@ @ @ ", "@# @ @ @ ", "@## @ @@ @ @ ", "@## @@@# @@ ", " @ @ @## @ $$ ", " @@ @## @ @%@&&@%@ ", " @ @ %&&&***= ", " @@ @&&-*;>@ ", " $&&-@@,%%$", " $&**@',%=$", " @*;,,*=@ ", " %*>%%=== ", " @=@%=@=@ ", " $$ "}; auctex-11.91/images/execviewps.xpm000066400000000000000000000017251313533625700172100ustar00rootroot00000000000000/* XPM */ static char * execviewps12_xpm[] = { "24 24 15 1", " c None s backgroundToolBarColor", ". c #0037C4", "+ c #6C84B7", "@ c #000000", "# c #FFFFFF", "$ c #3A3A3A", "% c #65635C", "& c #9F9D96", "* c #807D74", "= c #3C3C3C", "- c #76746B", "; c #5D5C55", "> c #6D6B63", ", c #B3B3B1", "' c #8C8B89", " ...+ +..+ ", " . . . . ", " . . . ", " ...+ +..+ ", " . . ", " . . . ", " @@ . +..+ ", " @ @ ", " @ @ ", " @ @ @@ ", " @@ @ @ ", "@# @ @ @ ", "@## @ @@ @ @ ", "@## @@@# @@ ", " @ @ @## @ $$ ", " @@ @## @ @%@&&@%@ ", " @ @ %&&&***= ", " @@ @&&-*;>@ ", " $&&-@@,%%$", " $&**@',%=$", " @*;,,*=@ ", " %*>%%=== ", " @=@%=@=@ ", " $$ "}; auctex-11.91/images/gv.xpm000066400000000000000000000065341313533625700154450ustar00rootroot00000000000000/* XPM */ static char * gv7_xpm[] = { "24 24 131 2", " c None s backgroundToolBarColor", ". c #9F9F9F", "+ c #2F2F2F", "@ c #373737", "# c #323232", "$ c #303030", "% c #525252", "& c #ECECEC", "* c #FFFFFF", "= c #F4F4F4", "- c #BE5858", "; c #FD6F6F", "> c #FF7070", ", c #FF9898", "' c #FFE1E1", ") c #FE7070", "! c #C96363", "~ c #FF6B6B", "{ c #DD6666", "] c #FDCFCF", "^ c #FFD1D1", "/ c #FF8888", "( c #FFCACA", "_ c #F37C7C", ": c #F56767", "< c #DA6363", "[ c #ECE6E6", "} c #F2F2F2", "| c #B6B6B6", "1 c #D0CBCB", "2 c #FD8686", "3 c #FE7878", "4 c #FE8787", "5 c #DCD6D6", "6 c #E1E1E1", "7 c #F5EFEF", "8 c #895B5B", "9 c #848484", "0 c #000000", "a c #2B2B2B", "b c #DAACAC", "c c #F3C5C5", "d c #414141", "e c #4C4C4C", "f c #B18383", "g c #5B5B5B", "h c #F86969", "i c #A5A5A5", "j c #3E3E3E", "k c #E4B6B6", "l c #F6C8C8", "m c #5D5D5D", "n c #6C6C6C", "o c #F56666", "p c #1C1C1C", "q c #AFAFAF", "r c #F6F6F6", "s c #FA9494", "t c #F67F7F", "u c #FFF9F9", "v c #FCFCFC", "w c #EDEDED", "x c #F3EDED", "y c #FF7878", "z c #F6F0F0", "A c #F8F8F8", "B c #EB7474", "C c #DA7373", "D c #E2E2E2", "E c #A4A4A4", "F c #F0F0F0", "G c #D5D5D5", "H c #393939", "I c #161616", "J c #8C8C8C", "K c #F7F7F7", "L c #BEBEBE", "M c #191919", "N c #989898", "O c #BCBCBC", "P c #2A2A2A", "Q c #1B1B1B", "R c #313131", "S c #AAAAAA", "T c #C7C7C7", "U c #101010", "V c #D3D3D3", "W c #595959", "X c #E4E4E4", "Y c #969696", "Z c #FBFBFB", "` c #D1D1D1", " . c #717171", ".. c #0A0A0A", "+. c #B7B7B7", "@. c #EEEEEE", "#. c #F9F9F9", "$. c #DBDBDB", "%. c #EBEBEB", "&. c #D2D2D2", "*. c #6E6E6E", "=. c #7D7D7D", "-. c #EAEAEA", ";. c #A2A2A2", ">. c #CCCCCC", ",. c #E8E8E8", "'. c #4E4E4E", "). c #ABABAB", "!. c #F5F5F5", "~. c #6B6B6B", "{. c #171717", "]. c #434343", "^. c #CECECE", "/. c #4D4D4D", "(. c #ADADAD", "_. c #D0D0D0", ":. c #9E9E9E", "<. c #808080", "[. c #FAFAFA", "}. c #858585", "|. c #A0A0A0", "1. c #BDBDBD", "2. c #838383", "3. c #181818", "4. c #8F8F8F", "5. c #959595", "6. c #D6D6D6", "7. c #DDDDDD", "8. c #C1C1C1", "9. c #7B7B7B", "0. c #8E8E8E", " ", " . + @ @ @ # . ", " $ % & * * * = % % ", " - ; > , ' * ' , > ) ! ", " ~ { ] ^ / > ( > / ^ ^ _ : ", " ~ < [ } | 1 2 3 4 5 | 6 7 { ~ ", " ~ 8 * 9 0 a b ~ c d 0 e * f ~ ", " $ g h 8 * i 0 j k ~ l m 0 n * f o 0 g ", " p q r s t u v w x 4 y / z w A u B C D D @ ", " p E F ' > / ^ ^ / > ( > / ^ ^ / ) ' * G H ", " I @ J K ' , > > , ' * ' , > > , ' * L E H ", " M N * * * * * * * * * * * * * O P Q ", " R S * * * * * * * * * * * T a ", " U S * * * * * * * * * * * V W ", " U S * * * * * * * * * * * X Y U ", " U S * * * * * * * * * * * Z ` ... ", " R +.* * Z @.#.* * * * * $.%.* &.*.Q ", " 0 =.%.* * -.;.>.v v * * ,.'.).!.v >.~.{. ", " ].q * * * ^./.(.A A * * _.p :.%.* %.:.p ", " @ <.@.* [.r }.R |.1.1.L L 2.3.:.%.%.%.4.Q ", " H 5.6.7.8.).0 0 j % % % % M 0 9.9.9. .% ", " 3. .0.0.m @ % % % % ", " @ @ @ @ ", " "}; auctex-11.91/images/jumpdvi.xpm000066400000000000000000000026621313533625700165050ustar00rootroot00000000000000/* XPM */ static char * jumpdvi19_xpm[] = { "24 24 47 1", " c None s backgroundToolBarColor", ". c #212121", "+ c #EAD4CB", "@ c #E3C5BA", "# c #DBB4A4", "$ c #EEDED7", "% c #FAF7F5", "& c #F2E5E1", "* c #D2AC99", "= c #000000", "- c #8D9E7C", "; c #CDD9C2", "> c #DEE6D7", ", c #DAE2D1", "' c #9BAD89", ") c #B79382", "! c #707D63", "~ c #B4C6A2", "{ c #ACC098", "] c #636E57", "^ c #AB8A7A", "/ c #E4E9DD", "( c #657158", "_ c #C49F8D", ": c #C3D1B5", "< c #808F70", "[ c #4C5442", "} c #58634E", "| c #E6EBE0", "1 c #D4DDC9", "2 c #CAD7BE", "3 c #90A17F", "4 c #5F6A53", "5 c #535C49", "6 c #E9EDE4", "7 c #616D56", "8 c #A8BC95", "9 c #7C8B6E", "0 c #4C5443", "a c #B6C2AA", "b c #5E6953", "c c #295E29", "d c #5ABD5A", "e c #488148", "f c #4CA14C", "g c #4D904D", "h c #4FA64F", " ", " ", " ", " ... ", " ..+@#.. ", " .$%&@*. ", " =======+#**. ", " =-;>,'=###). ", " =!~{]=##*^. ", " ==/;{(]=#*_. ", " ==/;:{<[}=)).. ", " =|12{{34=5=.. ", " =6{{{7= == ", " =>890= ", " =a]= ", " =b= ", " = cccd c c c ", " c c c c c ", " c c c c c ", " c c e e c ", " c c fggf c ", " c c ee c ", " cccd hh c ", " "}; auctex-11.91/images/ltx-symb-turn-off.xpm000066400000000000000000000020451313533625700203370ustar00rootroot00000000000000/* XPM */ static char * ltx_symb_turn_off_xpm[] = { "24 24 20 1", " c None s backgroundToolBarColor", ". c #AEAEAE", "+ c #000000", "@ c #0A0A0A", "# c #1F1F1F", "$ c #C9C9C9", "% c #353535", "& c #999999", "* c #4D4D4D", "= c #777777", "- c #141414", "; c #878787", "> c #686868", ", c #5A5A5A", "' c #FF5858", ") c #FFB9B9", "! c #FF0000", "~ c #FF9595", "{ c #414141", "] c #292929", " ", " ", " ", ".+@########++@$ ", " %@& .*@= ", " $--$ ;% ", " .@% >$ ", " ,+= ", " %@. ", " $--$ ' ' ", " &+* )!' '!)", " *@$ ~!~ ", " $#; ~!~ ", " %, )!' '!)", " >% ' ' ", " ;#$ &$ ", " .-. ${ ", " ]; .], ", " *]>>>>>>>>]++. ", "${{{{{{{{{{{{* ", " ", " ", " ", " "}; auctex-11.91/images/ltx-symb-turn-on.xpm000066400000000000000000000020251313533625700201770ustar00rootroot00000000000000/* XPM */ static char * ltx_symb_turn_on_xpm[] = { "24 24 19 1", " c None s backgroundToolBarColor", ". c #AEAEAE", "+ c #000000", "@ c #0A0A0A", "# c #1F1F1F", "$ c #C9C9C9", "% c #353535", "& c #999999", "* c #4D4D4D", "= c #777777", "- c #141414", "; c #878787", "> c #686868", ", c #5A5A5A", "' c #79DECA", ") c #00AA88", "! c #5DC8B3", "~ c #414141", "{ c #292929", " ", " ", " ", ".+@########++@$ ", " %@& .*@= ", " $--$ ;% ", " .@% >$ ", " ,+= '", " %@. ) ", " $--$ )) ", " &+* ')! )) ", " *@$ )))) ", " $#; !)) ", " %, ')' ", " >% ", " ;#$ &$ ", " .-. $~ ", " {; .{, ", " *{>>>>>>>>{++. ", "$~~~~~~~~~~~~* ", " ", " ", " ", " "}; auctex-11.91/images/pdftex.xpm000066400000000000000000000101411313533625700163100ustar00rootroot00000000000000/* XPM */ static char * pdftex22_xpm[] = { "24 24 179 2", " c None s backgroundToolBarColor", ". c #3E9543", "+ c #409644", "@ c #3D9D45", "# c #3F9B42", "$ c #4C2A1F", "% c #4E3124", "& c #727E51", "* c #598A4E", "= c #5B6647", "- c #88624F", "; c #89383B", "> c #8B343B", ", c #6D5852", "' c #506D48", ") c #4C843E", "! c #648752", "~ c #B8A789", "{ c #80624D", "] c #7D6951", "^ c #FFFFC1", "/ c #94A676", "( c #8F8668", "_ c #977567", ": c #A86660", "< c #986C6A", "[ c #758660", "} c #708C60", "| c #6A6C4E", "1 c #C3C599", "2 c #988167", "3 c #5A3125", "4 c #561E1C", "5 c #958066", "6 c #BEA384", "7 c #68372B", "8 c #672124", "9 c #5B392F", "0 c #94917B", "a c #AFAC91", "b c #B8B39C", "c c #BDBCA0", "d c #B39073", "e c #582522", "f c #712E2B", "g c #6F292C", "h c #83826F", "i c #908F88", "j c #F8FFFD", "k c #686C8D", "l c #D7DBB8", "m c #716D76", "n c #7B7B92", "o c #D5D5B3", "p c #DBBD9A", "q c #81463B", "r c #691A19", "s c #838270", "t c #888791", "u c #6462D0", "v c #2C2B87", "w c #DAD9C7", "x c #868394", "y c #716DDC", "z c #2F2C94", "A c #C7C6B7", "B c #D2AF8D", "C c #84473C", "D c #6D1E1F", "E c #6E262C", "F c #BDBDAB", "G c #878593", "H c #909095", "I c #C0BEAF", "J c #A09EAD", "K c #A6A5A9", "L c #C19978", "M c #7C3D33", "N c #641C1F", "O c #662633", "P c #DBDCB8", "Q c #B4B492", "R c #E5D9AA", "S c #9F755A", "T c #50231F", "U c #672424", "V c #8E3B4B", "W c #E4E3BC", "X c #A5A28D", "Y c #D2D1B5", "Z c #E7E5C1", "` c #E3DFC0", " . c #E4CCA2", ".. c #894E3A", "+. c #461715", "@. c #632524", "#. c #95404E", "$. c #777776", "%. c #C0B396", "&. c #AAAB90", "*. c #463F31", "=. c #665E46", "-. c #7C7968", ";. c #B3AF92", ">. c #D4BD97", ",. c #804B37", "'. c #461F19", "). c #42201F", "!. c #5A4F43", "~. c #504334", "{. c #979183", "]. c #DCD8B5", "^. c #D0BC9D", "/. c #C8A487", "(. c #82493F", "_. c #3F1310", ":. c #401613", "<. c #664B46", "[. c #DCD9BC", "}. c #B8B59D", "|. c #8C8977", "1. c #E9E7C0", "2. c #A2897B", "3. c #AE8872", "4. c #CFB89A", "5. c #A6715F", "6. c #4B1D19", "7. c #68272E", "8. c #6E2933", "9. c #453E37", "0. c #767361", "a. c #7F8170", "b. c #7B7B6C", "c. c #8E897E", "d. c #827F6E", "e. c #83876F", "f. c #847E70", "g. c #9C7964", "h. c #662F2A", "i. c #5D2D2E", "j. c #783C3F", "k. c #87826E", "l. c #B3B99A", "m. c #D1D1AB", "n. c #DFDDB9", "o. c #C3B191", "p. c #826453", "q. c #6D2B2A", "r. c #884144", "s. c #772B2F", "t. c #702F34", "u. c #AEA28C", "v. c #C1C3A2", "w. c #AEA07E", "x. c #C8C09F", "y. c #C4C6A3", "z. c #B6886B", "A. c #774237", "B. c #7E3E3D", "C. c #854748", "D. c #78373B", "E. c #6A2932", "F. c #5F343C", "G. c #7C474A", "H. c #815655", "I. c #7F534F", "J. c #8A5C54", "K. c #74504B", "L. c #8C615F", "M. c #7E2C29", "N. c #8C4240", "O. c #7C322F", "P. c #703634", "Q. c #6D1B27", "R. c #975F59", "S. c #631D22", "T. c #65101D", "U. c #B50000", "V. c #AA7979", " . + @ # $ ", " % & * = - ; > , ' ) ! ~ { ", " ] ^ / ( _ : < [ } | 1 2 3 4 ", " 5 ^ ^ ^ ^ ^ ^ ^ ^ ^ 6 7 8 ", " 9 ^ 0 a ^ b 0 c ^ ^ d e f g ", " h i j k l m j n o ^ p q r ", " s t u v w x y z A ^ B C D E ", " ] F G H ^ I J K ^ ^ L M N O ", " ] ^ P Q ^ ^ ^ ^ ^ ^ R S T U V ", " ] ^ W X Y Z ` ^ ^ ^ ^ ...+.@.#. ", " $.$.%.%.&.*.=.-.;.%.%.%.^ >.,.'.). ", " %.%.^ ^ !.~.{.].^ ^ ^ ^./.(._.:. ", " $.$.<.[.^ }.|.1.^ 2.3.4.^ 5.6.7.8. ", " 9.0.a.b.c.d.e.f.^ ^ g.h.i.j. ", " k.^ l.^ ^ m.n.^ o.p.q.r.s.t. ", " u.v.%.w.x.y.z.A.B.C.D.E.F. ", " G.H.I.J.K.L.M.N.O.P. ", " Q.R. S. T. ", " ", " U.U.U.V. U.U.U.V. U.U.U.V. ", " U. U. U. U. U. ", " U.U.U.V. U. U. U.U.V. ", " U. U. U. U. ", " U. U.U.U.V. U. "}; auctex-11.91/images/prverr16.xpm000066400000000000000000000010531313533625700165070ustar00rootroot00000000000000/* XPM */ static char *noway16[] = { /* columns rows colors chars-per-pixel */ "16 16 9 1", " c red", ". c #FD0D0D", "X c #FA1C1C", "o c #F52D2D", "O c #FB5B5B", "+ c #FC6060", "@ c #FFBBBB", "# c #FEFEFE", "$ c None", /* pixels */ "$$$$$ XXXX $$$$$", "$$$X. .X$$$", "$$o o$$", "$X. .X$", "$. .$", " ", "O@@@@@@@@@@@@@@O", "+##############+", "+##############+", "O@@@@@@@@@@@@@@O", " ", "$. .$", "$X. .X$", "$$o o$$", "$$$X. .X$$$", "$$$$$ XXXX $$$$$" }; auctex-11.91/images/prverr20.xpm000066400000000000000000000013131313533625700165010ustar00rootroot00000000000000/* XPM */ static char *noway20[] = { /* columns rows colors chars-per-pixel */ "20 20 9 1", " c red", ". c #FF0404", "X c #FD0F0F", "o c #F91919", "O c #F82828", "+ c #F33636", "@ c #ED4A4A", "# c #FEFEFE", "$ c None", /* pixels */ "$$$$$$@+OXXO+@$$$$$$", "$$$$OO. .OO$$$$", "$$$@. .@$$$", "$$@. .@$$", "$O. .O$", "$o o$", "@. .@", "+ +", "o##################o", "o##################o", "o##################o", "o##################o", "+ +", "@. .@", "$o o$", "$O. .O$", "$$@. .@$$", "$$$@. .@$$$", "$$$$OO. .OO$$$$", "$$$$$$@+OXXO+@$$$$$$" }; auctex-11.91/images/prverr24.xbm000066400000000000000000000010261313533625700164700ustar00rootroot00000000000000#define wutz_width 24 #define wutz_height 24 static unsigned char wutz_bits[] = { 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0xc0, 0xff, 0x03, 0xf0, 0xff, 0x0f, 0xf8, 0xff, 0x1f, 0xf8, 0xff, 0x1f, 0xfc, 0xff, 0x3f, 0xfc, 0xff, 0x3f, 0xfe, 0xff, 0x7f, 0x02, 0x00, 0x40, 0x01, 0x00, 0x80, 0x01, 0x00, 0x80, 0x01, 0x00, 0x80, 0x01, 0x00, 0x80, 0x02, 0x00, 0x40, 0xfe, 0xff, 0x7f, 0xfc, 0xff, 0x3f, 0xfc, 0xff, 0x3f, 0xf8, 0xff, 0x1f, 0xf8, 0xff, 0x1f, 0xf0, 0xff, 0x0f, 0xc0, 0xff, 0x03, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00 }; auctex-11.91/images/prverr24.xpm000066400000000000000000000016131313533625700165100ustar00rootroot00000000000000/* XPM */ static char *noway24[] = { /* columns rows colors chars-per-pixel */ "24 24 9 1", " c red", ". c #FF0404", "X c #FD0C0C", "o c #F91919", "O c #F62929", "+ c #F34C4C", "@ c #FF9090", "# c #FEFEFE", "$ c None", /* pixels */ "$$$$$$$$+OOXXOO+$$$$$$$$", "$$$$$$OX XO$$$$$$", "$$$$+X X+$$$$", "$$$+ +$$$", "$$+ +$$", "$$X X$$", "$O O$", "$X X$", "+ +", "O+@@@@@@@@@@@@@@@@@@@@+O", "o######################o", "X######################X", "X######################X", "o######################o", "O+@@@@@@@@@@@@@@@@@@@@+O", "+ +", "$X X$", "$O O$", "$$X X$$", "$$+ +$$", "$$$+ +$$$", "$$$$+X X+$$$$", "$$$$$$OX XO$$$$$$", "$$$$$$$$+OOXXOO+$$$$$$$$" }; auctex-11.91/images/prvtex-cap-up.xpm000066400000000000000000000027501313533625700175400ustar00rootroot00000000000000/* XPM */ static char * preview_cap_up_xpm[] = { "33 33 12 1", " c None", ". c #BFBFBF s backgroundToolBarColor", "+ c #000000 s foregroundToolBarColor", "! c #000000", "@ c #FFFFFF", "# c #7C7C7C", "$ c #A0A0A0", "% c #E5E5E5", "& c #BABABA", "* c #1D1D1D", "= c #424242", "- c #676767", ".................................", ".....!!!!!!!!!!!!!!!!!!!!!!......", ".....!@@@@@@@@@@@@@@@@@@@@!......", ".....!@@@@@@@@@#$@@@@@@@@@!......", ".....!@@@@@@@@%!&@@@@@@@@@!......", ".....!@@@@@@@@#$@@@@@@@@@@!......", ".....!@@@@@@@%*#%@%%@@@@&@!......", ".....!#!!!!=$*#-!$#!&@@#*@!......", ".....!@@&&@@#$@@%@@%=@%!$@!......", ".....!@@&&@@&-=$@@@@$$-=@@!......", ".....!@@&&@@$##&@@@@@=!&@@!......", ".....!@@&#%@#$@@&&@@@*-@@@!......", ".....!@@@*!@&!#-*@@@$!$@@@!......", ".....!@@@%%@@%#$@@@@!#-@@@!......", ".....!@%==@@@@@@@@@#*@-%@@!......", "......!=#=@@@@@@@@%!&@%=#@!......", "......%$$=@@@@@@@@$=@@@&=@!......", ".....#.&$#=&@@@@@@@@@@@@@@!......", ".....#...#-*$@@@@@@@@@@@@@!......", "......#..###===*%%@@@@@@@@!......", "......#...#...#.!!!!!!!!!!!......", ".......#..#...#..#.#..#..#.......", ".......#..#...#.##.#..#..#.......", "........#..##..#.#..###...#......", "........#.................#......", "..+++............................", "..+..+.+.+.+..+..+.+..+..+.+.+...", "..+..+.++.+.+.+..+...+.+.+.+.+...", "..+++..+..+++.+..+.+.+++.+.+.+...", "..+....+..+...+.+..+.+....+.+....", "..+....+...++..+...+..++..+.+....", ".................................", "................................."}; auctex-11.91/images/prvtex12.xbm000066400000000000000000000004251313533625700164770ustar00rootroot00000000000000/* Created with The GIMP */ #define preview12_width 12 #define preview12_height 12 static unsigned char preview12_bits[] = { 0xff, 0x0f, 0x41, 0x08, 0x21, 0x08, 0x6f, 0x0d, 0x35, 0x0a, 0x75, 0x0a, 0x6b, 0x0b, 0x82, 0x0c, 0x7c, 0x08, 0xf0, 0x08, 0x00, 0x0f, 0x00, 0x00 }; auctex-11.91/images/prvtex12.xpm000066400000000000000000000007671313533625700165260ustar00rootroot00000000000000/* XPM */ static char * preview12_xpm[] = { "12 12 17 1", " c None", ". c #020202", "+ c #1E1E1A", "@ c #626256", "# c #7D7D70", "$ c #8A8A7A", "% c #969686", "& c #A6A692", "* c #B2B29E", "= c #46463E", "- c #BEBEAA", "; c #1A1A16", "> c #CECEB2", ", c #363632", "' c #6E6E62", ") c #0E0E0E", "! c #52524A", "............", ".>>>>$*>>>>.", ".>>>>&>>>>>.", ".'.,@+##&$%.", ".>)>'#>>&!>.", ".>=%#%%>@&>.", "..,@>*>-@&>=", " # #,>>#-%%.", " . @,%>>>>.", " . !;#>>>.", " . . ,;.", " . .. .."}; auctex-11.91/images/prvtex16.xbm000066400000000000000000000005101313533625700164760ustar00rootroot00000000000000/* Created with The GIMP */ #define preview16_width 16 #define preview16_height 16 static unsigned char preview16_bits[] = { 0xff, 0xff, 0x01, 0x81, 0x81, 0x80, 0xbd, 0xad, 0x49, 0xa8, 0xc9, 0x91, 0x49, 0x90, 0x9e, 0x99, 0x1c, 0xac, 0x7d, 0x84, 0xf1, 0x80, 0xf2, 0x87, 0x22, 0xfa, 0x24, 0x52, 0x24, 0x5a, 0xc8, 0x94 }; auctex-11.91/images/prvtex16.xpm000066400000000000000000000011671313533625700165250ustar00rootroot00000000000000/* XPM */ static char * preview16_xpm[] = { "16 16 17 1", " c None", ". c #020202", "+ c #1A1A16", "@ c #636357", "# c #6E6E62", "$ c #828276", "% c #8A8A7A", "& c #969686", "* c #A6A692", "= c #B2B29E", "- c #BABAA6", "; c #363632", "> c #BEBEAA", ", c #52524A", "' c #CECEB2", ") c #46463E", "! c #7A7A6E", "................", ".''''''>@''''''.", ".''''''%>''''''.", ".'!..#*;,=#*'#=.", ".''.''!*>''&=@'.", ".''.''#@>''>)='.", ".'',,'#!@>'&@''.", " .;@;''*>'')%''.", " -$$;'''''%!>@=.", ". &$@;&'''*''>'.", ". @,+$'''''''.", " . ...;;;+''''.", " . . . .....", " . . . . . ", " . . . .. . ", " . .. . . ."}; auctex-11.91/images/prvtex20.xpm000066400000000000000000000014271313533625700165170ustar00rootroot00000000000000/* XPM */ static char * preview20_xpm[] = { "20 20 17 1", " c None", ". c #000200", "+ c #151614", "@ c #20211F", "# c #31312A", "$ c #3D3C35", "% c #474439", "& c #504F48", "* c #626054", "= c #727063", "- c #7E7E6F", "; c #888A7A", "> c #969987", ", c #A9A992", "' c #B8B8A1", ") c #C6C5AA", "! c #CFCDB1", " .@@@@@@@@@@@@@@@@. ", " %!!!!!!!''!!!!!!!% ", " %!!!!!!)&>!!!!!!!% ", " %!!!!!!>*'!!!!!!!% ", " %!!!!!)&*')')!!''% ", " @&@+#*&*=#;&*)'%-% ", " %!,>!,=;,)!)=,-$'% ", " %!,>!'=&-!!!'*#;!% ", " %!,-),=>','!!$&)!% ", " %!)$$'&&=%)!,+;!!% ", " %!','!);;!!)%**!!% ", " $;*$!!!!!!!;%'->)% ", " *=$!!!!!!)*-!'*;% ", " @>;*='!!!!),)!!''% ", " . *&&,!!!!!!!!!!% ", " ..+##@>,,,,,,,$ ", " . . . ......... ", " . . . ... . . ", " . . . . ... . ", " . . "}; auctex-11.91/images/prvtex24.xbm000066400000000000000000000010731313533625700165020ustar00rootroot00000000000000/* Created with The GIMP */ #define preview_width 24 #define preview_height 24 static unsigned char preview_bits[] = { 0xfe, 0xff, 0x7f, 0x02, 0x00, 0x40, 0x02, 0x18, 0x40, 0x02, 0x0c, 0x40, 0x02, 0x04, 0x40, 0x02, 0x00, 0x50, 0xfe, 0xde, 0x59, 0x32, 0x03, 0x49, 0x32, 0x0f, 0x4f, 0x32, 0x07, 0x46, 0x32, 0x23, 0x46, 0x62, 0x1e, 0x47, 0x02, 0x0c, 0x47, 0x02, 0x80, 0x4d, 0x32, 0x80, 0x48, 0x2c, 0xc0, 0x58, 0x42, 0x00, 0x40, 0xc2, 0x01, 0x40, 0xe4, 0x0e, 0x40, 0x44, 0xf4, 0x7f, 0x48, 0xa4, 0x24, 0x48, 0xb4, 0x24, 0x90, 0x29, 0x47, 0x10, 0x00, 0x40 }; auctex-11.91/images/prvtex24.xpm000066400000000000000000000015541313533625700165240ustar00rootroot00000000000000/* XPM */ static char * preview_xpm[] = { "24 24 10 1", " c None", ". c #000000", "+ c #CECEB2", "@ c #656559", "# c #818174", "$ c #B9B9A4", "% c #969686", "& c #181815", "* c #363630", "= c #53534B", " ...................... ", " .++++++++++++++++++++. ", " .+++++++++@#+++++++++. ", " .++++++++$.%+++++++++. ", " .++++++++@#++++++++++. ", " .+++++++$&@$+$$++++%+. ", " .@....*#&@=.#@.%++@&+. ", " .++%%++@#++$++$*+$.#+. ", " .++%%++%=*#++++##=*++. ", " .++%%++#@@%+++++*.%++. ", " .++%@$+@#++%%+++&=+++. ", " .+++&.+%.@=&+++#.#+++. ", " .+++$$++$@#++++.@=+++. ", " .+$**+++++++++@&+=$++. ", " .*@*++++++++$.%+$*@+. ", " $##*++++++++#*+++%*+. ", " . %#@*%++++++++++++++. ", " . @=&#+++++++++++++. ", " . ...***&$$++++++++. ", " . . . ........... ", " . . . . . . . ", " . . . .. . . . ", " . .. . . ... . ", " . . "}; auctex-11.91/images/prvwrk12.xpm000066400000000000000000000007651313533625700165270ustar00rootroot00000000000000/* XPM */ static char * nwork12_xpm[] = { "12 12 17 1", " c None", ". c #0F110E", "+ c #161815", "@ c #1F211E", "# c #383937", "$ c #6A6C69", "% c #818380", "& c #E46767", "* c #FF6467", "= c #959794", "- c #DC9897", "; c #ADAFAC", "> c #FF9797", ", c #C6C8C5", "' c #FFCBCA", ") c #E4E6E3", "! c #FBFDFA", " >> ", " '**' ", " >>>> ", " '*''*' ", " >>!)>> ", " '*,==,*' ", " >>$@=!>> ", " '*';#;!'*' ", " >>!$$=!,-> ", "'*'=)%!%.@&'", ">>!=!=;..+$>", " ********** "}; auctex-11.91/images/prvwrk14.xpm000066400000000000000000000010611313533625700165170ustar00rootroot00000000000000/* XPM */ static char * nwork14_xpm[] = { "14 14 17 1", " c None", ". c #000100", "+ c #161816", "@ c #222421", "# c #2A2C29", "$ c #363836", "% c #525451", "& c #686A67", "* c #828481", "= c #FF6467", "- c #949693", "; c #A4A6A3", "> c #FF9797", ", c #B8BAB7", "' c #D8D6D4", ") c #FFCBCA", "! c #FAFDF9", " >> ", " )==) ", " >>>> ", " )=))=) ", " >>!!>> ", " )=)!!)=) ", " >>''@!>> ", " )=&%#!!)=) ", " >>-@$!!!>> ", " )=);%&!!!)=) ", " >>!&&;,!&,>> ", ")=)*',,'@.+'=)", ">>!-!';$+++%>>", " ============ "}; auctex-11.91/images/prvwrk16.xpm000066400000000000000000000011651313533625700165260ustar00rootroot00000000000000/* XPM */ static char * nwork16_xpm[] = { "16 16 17 1", " c None", ". c #040703", "+ c #0E100D", "@ c #262825", "# c #434542", "$ c #4C4E4B", "% c #5B5D5A", "& c #70726F", "* c #868885", "= c #D86467", "- c #FF6467", "; c #A69F9F", "> c #FF9797", ", c #B6B8B5", "' c #C7C9C6", ") c #D5D7D4", "! c #FAFCF9", " >> ", " -- ", " >--> ", " ->>- ", " >-!!-> ", " ->!!>- ", " >-!!&*-> ", " -;#@;)>- ", " >-#&.;!!-> ", " ->!+@,!!>- ", " >-!&@%;!!!-> ", " ->)#,%,,&.;- ", " >-!%'!#!$..+=> ", " ->!&!!&&..++#- ", ">->>>>>>>>>>>>->", " >>>>>>>>>>>>>> "}; auctex-11.91/images/prvwrk20.xpm000066400000000000000000000014251313533625700165200ustar00rootroot00000000000000/* XPM */ static char * nwork20_xpm[] = { "20 20 17 1", " c None", ". c #000100", "+ c #262825", "@ c #2B2D2A", "# c #444643", "$ c #575956", "% c #726D6B", "& c #D16668", "* c #FF6467", "= c #979794", "- c #E4999A", "; c #B1B3B0", "> c #FF9797", ", c #C9CBC8", "' c #D3D5D2", ") c #E5E7E3", "! c #FDFFFB", " ** ", " >**> ", " **** ", " >****> ", " **>>** ", " >**!!**> ", " **>!!>** ", " >**!!)!**> ", " **>!'.)>** ", " >*%$$;,!!**> ", " *&=;.=!!!>** ", " >*&;@@=!!!!**> ", " **>,$=;!!!!>** ", " >**)#%;=!!!!!**> ", " **>=,;=';!,#;>** ", " >**)%!)%!!=+..,**> ", " **>='!)%!;....@-** ", ">**!;!!!='#####$=**>", "********************", "********************"}; auctex-11.91/images/prvwrk24.xbm000066400000000000000000000011641313533625700165060ustar00rootroot00000000000000/* 2002 David Kastrup, GPL */ #define prevwork_width 24 #define prevwork_height 24 #define prevwork_x_hot 0 #define prevwork_y_hot 20 static unsigned char prevwork_bits[] = { 0x00, 0x3c, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x7e, 0x00, 0x00, 0xe7, 0x00, 0x00, 0xe7, 0x00, 0x80, 0xc3, 0x01, 0x80, 0xc3, 0x01, 0xc0, 0x81, 0x03, 0xc0, 0x81, 0x03, 0xe0, 0x30, 0x07, 0xe0, 0x3f, 0x07, 0x70, 0x0d, 0x0e, 0x70, 0x0d, 0x0e, 0x38, 0x0e, 0x1c, 0x38, 0x0f, 0x1c, 0x1c, 0x1f, 0x38, 0x9c, 0xa5, 0x3b, 0x8e, 0xc4, 0x77, 0xce, 0xe4, 0x7f, 0x47, 0xec, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; auctex-11.91/images/prvwrk24.xpm000066400000000000000000000017251313533625700165270ustar00rootroot00000000000000/* XPM */ static char * nwork24_xpm[] = { "24 24 17 1", " c None", ". c #000100", "+ c #141513", "@ c #212320", "# c #313230", "$ c #3B3D3A", "% c #484947", "& c #626461", "* c #8C8E8B", "= c #FF6467", "- c #B6AFAC", "; c #FF9696", "> c #C4C6C3", ", c #D0D2CE", "' c #FFCBCA", ") c #DDDFDC", "! c #FBFDFA", " ;; ", " ;==; ", " ==== ", " ;====; ", " ==;;== ", " ;==''==; ", " ==;!!;== ", " ;=='!!'==; ", " ==;!!!!;== ", " ;=='!!>,'==; ", " ==;!!!.%!;== ", " ;=;$#$*,)!'==; ", " ==&,*..!!!!;== ", " ;==#,@.$!!!!'==; ", " ==;!&.&&!!!!!;== ", " ;==')*&*&!!!!!'==; ", " ==;!*#&>&!!!!!!;== ", " ;==')$)&->-!!)&*'==; ", " ==;!&-!,&!!-,%..*;== ", " ;==',%!!)$!!>#....-==; ", " ==;!&>!!)@!>+.....+;== ", ";=='!-!!!!*!&%%%%%&&*==;", "========================", " ====================== "}; auctex-11.91/images/pspdf.xpm000066400000000000000000000030661313533625700161420ustar00rootroot00000000000000/* XPM */ static char * pspdf5_xpm[] = { "24 24 56 1", " c None s backgroundToolBarColor", ". c #869CB4", "+ c #00244C", "@ c #000000", "# c #002248", "$ c #0050A9", "% c #006FEB", "& c #0066D9", "* c #00336D", "= c #37452B", "- c #001070", "; c #004BA2", "> c #0078FF", ", c #0075FC", "' c #004DB6", ") c #00072F", "! c #0047FF", "~ c #006DFF", "{ c #0042CA", "] c #00169E", "^ c #000A45", "/ c #445636", "( c #0024FF", "_ c #0027FF", ": c #0056ED", "< c #001FA7", "[ c #00179F", "} c #526741", "| c #001DCE", "1 c #4C603C", "2 c #566B43", "3 c #5A7046", "4 c #000B4C", "5 c #0023F5", "6 c #001492", "7 c #000E65", "8 c #00010B", "9 c #001AB9", "0 c #0022F0", "a c #001387", "b c #000942", "c c #000C57", "d c #D37F71", "e c #0037C4", "f c #6C84B7", "g c #CE918A", "h c #D4897A", "i c #67102D", "j c #C47474", "k c #D69788", "l c #CB8984", "m c #D79C8D", "n c #C8807D", "o c #5A5A5A", "p c #B50000", "q c #AA7979", " .+ @@@@ ", " .#$%&* @@@=@@ ", " -;%>>>,') @ @=@ ", " -!~>>>{]^ @/@ ", " -(_!:<[]^ @}@ ", " -(((|]]]^ @@}}1@@ ", " -(((|]]]^ @232@ ", " 45((|]678 @}@ ", " 490|ab @ ", " -c ", " @ ", " @d@ ", " eeef feef @ghi@ ", " e e e @jgkii@ ", " eeef feef @jlgmiii@ ", " e e @jnlgmiiii@", " e e e @jnlgkiii@ ", " e feef o@jnhii@ ", " o@di@ ", "pppq pppq pppq @@ ", "p p p p p ", "pppq p p ppq ", "p p p p ", "p pppq p "}; auctex-11.91/images/sep.xpm000066400000000000000000000003371313533625700156130ustar00rootroot00000000000000/* XPM */ static char * sep_xpm[] = { "1 24 2 1", " c None s backgroundToolBarColor", ". c #776758", " ", " ", " ", ".", ".", ".", ".", ".", ".", ".", ".", ".", ".", ".", ".", ".", ".", ".", ".", ".", ".", " ", " ", " "}; auctex-11.91/images/spell.xpm000066400000000000000000000023771313533625700161510ustar00rootroot00000000000000/* XPM */ static char * spell_xpm[] = { "24 24 37 1", " c None", ". c #000000", "+ c #8BBB8C", "@ c #ABD0AC", "# c #1A3B1A", "$ c #8ABA88", "% c #B4D5B4", "& c #70A770", "* c #132C13", "= c #77A676", "- c #2D2D2D", "; c #CBDFCB", "> c #6FAE6E", ", c #A8CBA6", "' c #6D9D6C", ") c #D0E4D0", "! c #6FAF6F", "~ c #587055", "{ c #B8D6B8", "] c #5B9159", "^ c #D4E4D4", "/ c #67AF67", "( c #5D905B", "_ c #9FC59D", ": c #93BE92", "< c #B5D1B5", "[ c #67AF68", "} c #63A261", "| c #BBD6BA", "1 c #82B881", "2 c #75AF74", "3 c #6B8868", "4 c #9DC39D", "5 c #7DB17B", "6 c #6BA368", "7 c #485C46", "8 c #89BA88", " ", " ", " ", " ", " ... .... ... ", " .. . .. . .. . ", " .. . .... .. ", " ..... .. . .. ", " .. . .. . .. . . ", " .. . .... ... ... ", " .+. ", " .. .@# ", " .$. .%&. ", " *=. -;>. ", " .,'. .)!~. ", " .{].^/(. ", " ._:<[}~. ", " .|123. ", " .4567. ", " .83. ", " .37. ", " .. ", " ", " "}; auctex-11.91/images/tex.xpm000066400000000000000000000116751313533625700156330ustar00rootroot00000000000000/* XPM */ static char * tex6_xpm[] = { "24 24 233 2", " c None s backgroundToolBarColor", ". c #3D9944", "+ c #3E9842", "@ c #3DA243", "# c #3C9B47", "$ c #3EA442", "% c #290400", "& c #304116", "* c #3E8D43", "= c #3F7744", "- c #977C5E", "; c #842835", "> c #9C3635", ", c #94506A", "' c #54764E", ") c #3DBA41", "! c #386C34", "~ c #CABC9A", "{ c #C1AE8E", "] c #795642", "^ c #907F62", "/ c #FFFFC1", "( c #94AC73", "_ c #664535", ": c #8A6A61", "< c #6D302B", "[ c #943A3B", "} c #772437", "| c #52382D", "1 c #664940", "2 c #99A578", "3 c #6E4835", "4 c #6D5642", "5 c #9DBA88", "6 c #A3B181", "7 c #A3A982", "8 c #B9968B", "9 c #BF8A7F", "0 c #CAA8A0", "a c #6F9966", "b c #CEE6B0", "c c #3E8946", "d c #808C6A", "e c #947F66", "f c #916B50", "g c #370708", "h c #5D181B", "i c #664437", "j c #F2DBB4", "k c #621E1C", "l c #782C33", "m c #411712", "n c #82806E", "o c #868266", "p c #C1BFA2", "q c #C7C2A8", "r c #82806A", "s c #84826C", "t c #E8E8C7", "u c #D1B08B", "v c #4A1A16", "w c #5C2628", "x c #7F3630", "y c #6B262B", "z c #82826F", "A c #BBBABD", "B c #F8FFFD", "C c #404448", "D c #48424A", "E c #FFFEFF", "F c #BBC0BB", "G c #9C6D56", "H c #5D201D", "I c #712723", "J c #868471", "K c #A29EF2", "L c #3132E4", "M c #181766", "N c #807E80", "O c #2F29CF", "P c #A46D56", "Q c #6C0E12", "R c #6B2731", "S c #7F7F6F", "T c #8E8BE8", "U c #141369", "V c #504D7F", "W c #848081", "X c #2725AA", "Y c #A46F58", "Z c #833A33", "` c #040400", " . c #BFBE98", ".. c #7F7F6C", "+. c #8D523D", "@. c #580F16", "#. c #66283A", "$. c #312B23", "%. c #DCDFBB", "&. c #E4D7A8", "*. c #B48566", "=. c #4E3025", "-. c #3F0810", ";. c #9C4256", ">. c #31302E", ",. c #E2E0C7", "'. c #ACA896", "). c #CFD1B0", "!. c #ECE6CB", "~. c #F0D9AC", "{. c #A26048", "]. c #50271C", "^. c #3D030C", "/. c #392F26", "(. c #E4E2CB", "_. c #ACAA92", ":. c #48453B", "<. c #878364", "[. c #83806D", "}. c #B2B496", "|. c #CFBD94", "1. c #8C5037", "2. c #4C2318", "3. c #351114", "4. c #522B2B", "5. c #B07F6B", "6. c #62433A", "7. c #A0876A", "8. c #BFBB96", "9. c #B8C2A0", "0. c #1E140C", "a. c #35210C", "b. c #2B2106", "c. c #A09A96", "d. c #CCBF9A", "e. c #AA8368", "f. c #B4846A", "g. c #AE826A", "h. c #D2B89A", "i. c #EAD0AA", "j. c #9E6852", "k. c #542D25", "l. c #441C16", "m. c #312019", "n. c #5F2D31", "o. c #604835", "p. c #A29A8F", "q. c #3D3123", "r. c #A09698", "s. c #BFBBA2", "t. c #C7BB9C", "u. c #B38A71", "v. c #A05250", "w. c #1A0400", "x. c #520308", "y. c #350010", "z. c #584C44", "A. c #444637", "B. c #7F625E", "C. c #834A3F", "D. c #AA7F6D", "E. c #D2BC9E", "F. c #E6E4BD", "G. c #A66456", "H. c #2B0702", "I. c #602A2B", "J. c #5A2229", "K. c #3C3831", "L. c #6F6B58", "M. c #797B6D", "N. c #484A3E", "O. c #ACA7A2", "P. c #4C463E", "Q. c #807E71", "R. c #686F5A", "S. c #605F56", "T. c #E0D9BC", "U. c #FDFACB", "V. c #C5BD9C", "W. c #8B5E4E", "X. c #561F1A", "Y. c #582E2F", "Z. c #6F3A3A", "`. c #814247", " + c #94947D", ".+ c #858B75", "++ c #9C9E81", "@+ c #E0DBBB", "#+ c #CFC19C", "$+ c #483325", "%+ c #661718", "&+ c #995657", "*+ c #732428", "=+ c #7B2C2E", "-+ c #655347", ";+ c #DACDA6", ">+ c #F6E5B8", ",+ c #73503A", "'+ c #643433", ")+ c #894043", "!+ c #9C5156", "~+ c #681B23", "{+ c #873E43", "]+ c #5D2E34", "^+ c #623C46", "/+ c #775A50", "(+ c #858271", "_+ c #987B71", ":+ c #524024", "<+ c #7D6C56", "[+ c #8A806F", "}+ c #7B826D", "|+ c #853626", "1+ c #894A3C", "2+ c #75292C", "3+ c #93594C", "4+ c #623739", "5+ c #8B5A56", "6+ c #4E0E1C", "7+ c #7E3F47", "8+ c #804047", "9+ c #6E3A3D", "0+ c #9F6662", "a+ c #A05A62", "b+ c #4C2626", "c+ c #A45862", "d+ c #731C21", "e+ c #964648", "f+ c #722020", "g+ c #620818", "h+ c #A0675E", "i+ c #561014", "j+ c #5A0414", " ", " . + @ + # $ % ", " % & * = - ; > , ' = ) ! ~ { ] ", " ^ / ( _ : < [ } | ' 1 _ 2 ~ % 3 ", " 4 / 5 6 7 8 9 0 a b c d / e f g h ", " i / / / / / / / / / / / j 3 k l ", " m / n o p / q r s t / / u v w x y ", " z z A B C / D E F n / / j G H I ", " J z K L M / N K O M / / j P h Q R ", " S z T U V / W T X V / / u Y h Z ", " ` t ...t / t . ./ / / u +.h @.#. ", " $.%./ ../ / / / / / / / &.*.=.-.Z ;. ", " >.,./ '.)./ / !./ / / / / ~.{.].^.Z ;. ", " /.(./ _.:.<.[...}./ / / / / |.1.2.3.4. ", "5.5.6.7.8.9.0.a.b.c.d.e.5.f.g.h.i.j.k.l.m.n. ", " o./ / / p.q.r.s./ / / / / t.u.v.w.x. ", "5.5.y.z./ / / A./ / / B.C.D.E.F.G.H.I.;.J. ", " K.L.M.N.O.P.Q.R.S.T.U.V.W.X.Y.Z.`. ", " +/ .+/ / / ++@+/ / #+$+%+&+*+=+ ", " -+/ / / ;+/ / / >+,+'+)+!+~+{+]+^+ ", " /+(+_+:+<+[+}+|+1+2+3+4+5+6+ ", " 7+7+8+9+0+a+b+c+d+e+ f+ ", " g+h+ i+ j+ ", " "}; auctex-11.91/images/view.xpm000066400000000000000000000014511313533625700157740ustar00rootroot00000000000000/* XPM */ static char * view15_xpm[] = { "24 24 4 1", " c None s backgroundToolBarColor", ". c #000000", "+ c #565656", "@ c #FFFFFF", " ", " ", " ", " ", " ... ", " .+ . ", " .+ . ", " .+ .+ ", " .+ .+ ... ", " .+ .+ ..", " .... .+ .", " .@@ +. .+ .+", " .@@@ +. .+ .+ ", " .@@@ . .... .+ ", " . @ ...@@ +.. ", " +. +. .@@@ +. ", " +.++. .@@@ . ", " +.. . @ . ", " +. +. ", " +.++. ", " +.. ", " ", " ", " "}; auctex-11.91/images/viewdvi.xpm000066400000000000000000000023021313533625700164730ustar00rootroot00000000000000/* XPM */ static char * viewdvi11_xpm[] = { "24 24 31 1", " c None s backgroundToolBarColor", ". c #090909", "+ c #000000", "@ c #292929", "# c #8E8E8E", "$ c #2D2D2D", "% c #303030", "& c #2B2B2B", "* c #3C3C3C", "= c #1F1F1F", "- c #101010", "; c #1A1A1A", "> c #2E2E2E", ", c #FFFFFF", "' c #C3C3C3", ") c #252525", "! c #191919", "~ c #131313", "{ c #1D1D1D", "] c #0D0D0D", "^ c #121212", "/ c #444444", "( c #3B3B3B", "_ c #3D3D3D", ": c #080808", "< c #295E29", "[ c #5ABD5A", "} c #488148", "| c #4CA14C", "1 c #4D904D", "2 c #4FA64F", " .+ ", " @# + ", " $# @ ", " %# &# ", " @# ++ ", " *=- ;# + ", " >,,') !# ~ ", " >,, + !# {# ", " ],, ++ *=- =# ", " #^ /+ >,,')# ", " ($_: >,, + ", " ## ],, + ", " #^ /+ ", " ($_: ", " ## ", " ", " <<<[ < < <", " < < < < <", " < < < < <", " < < } } <", " < < |11| <", " < < }} <", " <<<[ 22 <", " "}; auctex-11.91/images/viewpdf.xpm000066400000000000000000000022051313533625700164640ustar00rootroot00000000000000/* XPM */ static char * viewpdf5_xpm[] = { "24 24 27 1", " c None s backgroundToolBarColor", ". c #090909", "+ c #000000", "@ c #292929", "# c #8E8E8E", "$ c #2D2D2D", "% c #303030", "& c #2B2B2B", "* c #3C3C3C", "= c #1F1F1F", "- c #101010", "; c #1A1A1A", "> c #2E2E2E", ", c #FFFFFF", "' c #C3C3C3", ") c #252525", "! c #191919", "~ c #131313", "{ c #1D1D1D", "] c #0D0D0D", "^ c #121212", "/ c #444444", "( c #3B3B3B", "_ c #3D3D3D", ": c #080808", "< c #B50000", "[ c #AA7979", " .+ ", " @# + ", " $# @ ", " %# &# ", " @# ++ ", " *=- ;# + ", " >,,') !# ~ ", " >,, + !# {# ", " ],, ++ *=- =# ", " #^ /+ >,,')# ", " ($_: >,, + ", " ## ],, + ", " #^ /+ ", " ($_: ", " ## ", " ", " <<<[ <<<[ <<<[", " < < < < < ", " < < < < < ", " <<<[ < < <<[ ", " < < < < ", " < < < < ", " < <<<[ < ", " "}; auctex-11.91/images/viewps.xpm000066400000000000000000000022041313533625700163340ustar00rootroot00000000000000/* XPM */ static char * viewps8_xpm[] = { "24 24 27 1", " c None s backgroundToolBarColor", ". c #090909", "+ c #000000", "@ c #292929", "# c #8E8E8E", "$ c #2D2D2D", "% c #303030", "& c #2B2B2B", "* c #3C3C3C", "= c #1F1F1F", "- c #101010", "; c #1A1A1A", "> c #2E2E2E", ", c #FFFFFF", "' c #C3C3C3", ") c #252525", "! c #191919", "~ c #131313", "{ c #1D1D1D", "] c #0D0D0D", "^ c #121212", "/ c #444444", "( c #3B3B3B", "_ c #3D3D3D", ": c #080808", "< c #0037C4", "[ c #6C84B7", " .+ ", " @# + ", " $# @ ", " %# &# ", " @# ++ ", " *=- ;# + ", " >,,') !# ~ ", " >,, + !# {# ", " ],, ++ *=- =# ", " #^ /+ >,,')# ", " ($_: >,, + ", " ## ],, + ", " #^ /+ ", " ($_: ", " ## ", " ", " <<<[ [<<[ ", " < < < < ", " < < < ", " <<<[ [<<[ ", " < < ", " < < < ", " < [<<[ ", " "}; auctex-11.91/install-sh000077500000000000000000000127261313533625700150420ustar00rootroot00000000000000: # # install - install a program, script, or datafile # This comes from X11R5 (mit/util/scripts/install.sh). # # Copyright 1991 by the Massachusetts Institute of Technology # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of M.I.T. not be used in advertising or # publicity pertaining to distribution of the software without specific, # written prior permission. M.I.T. makes no representations about the # suitability of this software for any purpose. It is provided "as is" # without express or implied warranty. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. It can only install one file at a time, a restriction # shared with many OS's install programs. # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit="${DOITPROG-}" # put in absolute paths if you don't have them in your path; or use env. vars. mvprog="${MVPROG-mv}" cpprog="${CPPROG-cp}" chmodprog="${CHMODPROG-chmod}" chownprog="${CHOWNPROG-chown}" chgrpprog="${CHGRPPROG-chgrp}" stripprog="${STRIPPROG-strip}" rmprog="${RMPROG-rm}" mkdirprog="${MKDIRPROG-mkdir}" transformbasename="" transform_arg="" instcmd="$mvprog" chmodcmd="$chmodprog 0755" chowncmd="" chgrpcmd="" stripcmd="" rmcmd="$rmprog -f" mvcmd="$mvprog" src="" dst="" dir_arg="" while [ x"$1" != x ]; do case $1 in -c) instcmd="$cpprog" shift continue;; -d) dir_arg=true shift continue;; -m) chmodcmd="$chmodprog $2" shift shift continue;; -o) chowncmd="$chownprog $2" shift shift continue;; -g) chgrpcmd="$chgrpprog $2" shift shift continue;; -s) stripcmd="$stripprog" shift continue;; -t=*) transformarg=`echo $1 | sed 's/-t=//'` shift continue;; -b=*) transformbasename=`echo $1 | sed 's/-b=//'` shift continue;; *) if [ x"$src" = x ] then src=$1 else # this colon is to work around a 386BSD /bin/sh bug : dst=$1 fi shift continue;; esac done if [ x"$src" = x ] then echo "install: no input file specified" exit 1 else true fi if [ x"$dir_arg" != x ]; then dst=$src src="" if [ -d $dst ]; then instcmd=: chmodcmd="" else instcmd=mkdir fi else # Waiting for this to be detected by the "$instcmd $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if [ -f $src -o -d $src ] then true else echo "install: $src does not exist" exit 1 fi if [ x"$dst" = x ] then echo "install: no destination specified" exit 1 else true fi # If destination is a directory, append the input filename; if your system # does not like double slashes in filenames, you may need to add some logic if [ -d $dst ] then dst="$dst"/`basename $src` else true fi fi ## this sed command emulates the dirname command dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` # Make sure that the destination directory exists. # this part is taken from Noah Friedman's mkinstalldirs script # Skip lots of stat calls in the usual case. if [ ! -d "$dstdir" ]; then defaultIFS=' ' IFS="${IFS-${defaultIFS}}" oIFS="${IFS}" # Some sh's can't handle IFS=/ for some reason. IFS='%' set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` IFS="${oIFS}" pathcomp='' while [ $# -ne 0 ] ; do pathcomp="${pathcomp}${1}" shift if [ ! -d "${pathcomp}" ] ; then $mkdirprog "${pathcomp}" else true fi pathcomp="${pathcomp}/" done fi if [ x"$dir_arg" != x ] then $doit $instcmd $dst && if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi else # If we're going to rename the final executable, determine the name now. if [ x"$transformarg" = x ] then dstfile=`basename $dst` else dstfile=`basename $dst $transformbasename | sed $transformarg`$transformbasename fi # don't allow the sed command to completely eliminate the filename if [ x"$dstfile" = x ] then dstfile=`basename $dst` else true fi # Make a temp file name in the proper directory. dsttmp=$dstdir/#inst.$$# # Move or copy the file name to the temp name $doit $instcmd $src $dsttmp && trap "rm -f ${dsttmp}" 0 && # and set any options; do chmod last to preserve setuid bits # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $instcmd $src $dsttmp" command. if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && # Now rename the file to the real destination. $doit $rmcmd -f $dstdir/$dstfile && $doit $mvcmd $dsttmp $dstdir/$dstfile fi && exit 0 auctex-11.91/latex.el000066400000000000000000007671341313533625700145070ustar00rootroot00000000000000;;; latex.el --- Support for LaTeX documents. ;; Copyright (C) 1991, 1993-2016 Free Software Foundation, Inc. ;; Maintainer: auctex-devel@gnu.org ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file provides AUCTeX support for LaTeX. ;;; Code: (require 'tex) (require 'tex-style) (require 'tex-ispell) (eval-when-compile (require 'cl)) ;FIXME: Use cl-lib. ;;; Syntax (defvar LaTeX-optop "[" "The LaTeX optional argument opening character.") (defvar LaTeX-optcl "]" "The LaTeX optional argument closeing character.") ;;; Style (defcustom LaTeX-default-style "article" "*Default when creating new documents." :group 'LaTeX-environment :type 'string) (defcustom LaTeX-default-options nil "Default options to documentclass. A comma-seperated list of strings." :group 'LaTeX-environment :type '(repeat (string :format "%v"))) (make-variable-buffer-local 'LaTeX-default-options) (defcustom LaTeX-insert-into-comments t "*Whether insertion commands stay in comments. This allows using the insertion commands even when the lines are outcommented, like in dtx files." :group 'LaTeX-environment :type 'boolean) (defun LaTeX-newline () "Start a new line potentially staying within comments. This depends on `LaTeX-insert-into-comments'." (interactive) (if LaTeX-insert-into-comments (cond ((and (save-excursion (skip-chars-backward " \t") (bolp)) (save-excursion (skip-chars-forward " \t") (looking-at (concat TeX-comment-start-regexp "+")))) (beginning-of-line) (insert (buffer-substring-no-properties (line-beginning-position) (match-end 0))) (newline)) ((and (not (bolp)) (save-excursion (skip-chars-forward " \t") (not (TeX-escaped-p))) (looking-at (concat "[ \t]*" TeX-comment-start-regexp "+[ \t]*"))) (delete-region (match-beginning 0) (match-end 0)) (indent-new-comment-line)) ;; `indent-new-comment-line' does nothing when ;; `comment-auto-fill-only-comments' is non-il, so we must be sure ;; to be in a comment before calling it. In any other case ;; `newline' is used. ((TeX-in-comment) (indent-new-comment-line)) (t (newline))) (newline))) ;;; Syntax Table (defvar LaTeX-mode-syntax-table (copy-syntax-table TeX-mode-syntax-table) "Syntax table used in LaTeX mode.") (progn ; set [] to match for LaTeX. (modify-syntax-entry (string-to-char LaTeX-optop) (concat "(" LaTeX-optcl) LaTeX-mode-syntax-table) (modify-syntax-entry (string-to-char LaTeX-optcl) (concat ")" LaTeX-optop) LaTeX-mode-syntax-table)) ;;; Sections ;; Declare dynamically scoped vars. (defvar title) (defvar name) (defvar level) (defvar done-mark) (defvar toc) (defun LaTeX-section (arg) "Insert a template for a LaTeX section. Determine the type of section to be inserted, by the argument ARG. If ARG is nil or missing, use the current level. If ARG is a list (selected by \\[universal-argument]), go downward one level. If ARG is negative, go up that many levels. If ARG is positive or zero, use absolute level: 0 : part 1 : chapter 2 : section 3 : subsection 4 : subsubsection 5 : paragraph 6 : subparagraph The following variables can be set to customize: `LaTeX-section-hook' Hooks to run when inserting a section. `LaTeX-section-label' Prefix to all section labels." (interactive "*P") (let* ((val (prefix-numeric-value arg)) (level (cond ((null arg) (LaTeX-current-section)) ((listp arg) (LaTeX-down-section)) ((< val 0) (LaTeX-up-section (- val))) (t val))) (name (LaTeX-section-name level)) (toc nil) (title (if (TeX-active-mark) (buffer-substring (region-beginning) (region-end)) "")) (done-mark (make-marker))) (run-hooks 'LaTeX-section-hook) (LaTeX-newline) (if (marker-position done-mark) (goto-char (marker-position done-mark))) (set-marker done-mark nil))) (defun LaTeX-current-section () "Return the level of the section that contain point. See also `LaTeX-section' for description of levels." (save-excursion (max (LaTeX-largest-level) (if (re-search-backward (LaTeX-outline-regexp) nil t) (- (LaTeX-outline-level) (LaTeX-outline-offset)) (LaTeX-largest-level))))) (defun LaTeX-down-section () "Return the value of a section one level under the current. Tries to find what kind of section that have been used earlier in the text, if this fail, it will just return one less than the current section." (save-excursion (let ((current (LaTeX-current-section)) (next nil) (regexp (LaTeX-outline-regexp))) (if (not (re-search-backward regexp nil t)) (1+ current) (while (not next) (cond ((eq (LaTeX-current-section) current) (if (re-search-forward regexp nil t) (if (<= (setq next (LaTeX-current-section)) current) ;Wow! (setq next (1+ current))) (setq next (1+ current)))) ((not (re-search-backward regexp nil t)) (setq next (1+ current))))) next)))) (defun LaTeX-up-section (arg) "Return the value of the section ARG levels above this one." (save-excursion (if (zerop arg) (LaTeX-current-section) (let ((current (LaTeX-current-section))) (while (and (>= (LaTeX-current-section) current) (re-search-backward (LaTeX-outline-regexp) nil t))) (LaTeX-up-section (1- arg)))))) (defvar LaTeX-section-list '(("part" 0) ("chapter" 1) ("section" 2) ("subsection" 3) ("subsubsection" 4) ("paragraph" 5) ("subparagraph" 6)) "List which elements is the names of the sections used by LaTeX.") (defun LaTeX-section-list-add-locally (sections &optional clean) "Add SECTIONS to `LaTeX-section-list'. SECTIONS can be a single list containing the section macro name as a string and the level as an integer or a list of such lists. If optional argument CLEAN is non-nil, remove any existing entries from `LaTeX-section-list' before adding the new ones. The function will make `LaTeX-section-list' buffer-local and invalidate the section submenu in order to let the menu filter regenerate it. It is mainly a convenience function which can be used in style files." (when (stringp (car sections)) (setq sections (list sections))) (make-local-variable 'LaTeX-section-list) (when clean (setq LaTeX-section-list nil)) (dolist (elt sections) (add-to-list 'LaTeX-section-list elt t)) (setq LaTeX-section-list (sort (copy-sequence LaTeX-section-list) (lambda (a b) (< (nth 1 a) (nth 1 b))))) (setq LaTeX-section-menu nil)) (defun LaTeX-section-name (level) "Return the name of the section corresponding to LEVEL." (let ((entry (TeX-member level LaTeX-section-list (lambda (a b) (equal a (nth 1 b)))))) (if entry (nth 0 entry) nil))) (defun LaTeX-section-level (name) "Return the level of the section NAME." (let ((entry (TeX-member name LaTeX-section-list (lambda (a b) (equal a (nth 0 b)))))) (if entry (nth 1 entry) nil))) (defcustom TeX-outline-extra nil "List of extra TeX outline levels. Each element is a list with two entries. The first entry is the regular expression matching a header, and the second is the level of the header. See `LaTeX-section-list' for existing header levels." :group 'LaTeX :type '(repeat (group (regexp :tag "Match") (integer :tag "Level")))) (defun LaTeX-outline-regexp (&optional anywhere) "Return regexp for LaTeX sections. If optional argument ANYWHERE is not nil, do not require that the header is at the start of a line." (concat (if anywhere "" "^") "[ \t]*" (regexp-quote TeX-esc) "\\(appendix\\|documentstyle\\|documentclass\\|" (mapconcat 'car LaTeX-section-list "\\|") "\\)\\b" (if TeX-outline-extra "\\|" "") (mapconcat 'car TeX-outline-extra "\\|") "\\|" TeX-header-end "\\|" TeX-trailer-start)) (defvar LaTeX-largest-level nil "Largest sectioning level with current document class.") (make-variable-buffer-local 'LaTeX-largest-level) (defun LaTeX-largest-level () "Return largest sectioning level with current document class. Run style hooks before it has not been done." (TeX-update-style) LaTeX-largest-level) (defun LaTeX-largest-level-set (section) "Set `LaTeX-largest-level' to the level of SECTION. SECTION has to be a string contained in `LaTeX-section-list'. Additionally the function will invalidate the section submenu in order to let the menu filter regenerate it." (setq LaTeX-largest-level (LaTeX-section-level section)) (let ((offset (LaTeX-outline-offset))) (when (and (> offset 0) ;; XEmacs does not know `outline-heading-alist'. (boundp 'outline-heading-alist)) (let (lst) (dolist (tup outline-heading-alist) (setq lst (cons (cons (car tup) (+ offset (cdr tup))) lst))) (setq outline-heading-alist (nreverse lst))))) (setq LaTeX-section-menu nil)) (defun LaTeX-outline-offset () "Offset to add to `LaTeX-section-list' levels to get outline level." (- 2 (LaTeX-largest-level))) (defun TeX-look-at (list) "Check if we are looking at the first element of a member of LIST. If so, return the second element, otherwise return nil." (while (and list (not (looking-at (nth 0 (car list))))) (setq list (cdr list))) (if list (nth 1 (car list)) nil)) (defun LaTeX-outline-level () "Find the level of current outline heading in an LaTeX document." (cond ((looking-at LaTeX-header-end) 1) ((looking-at LaTeX-trailer-start) 1) ((TeX-look-at TeX-outline-extra) (max 1 (+ (TeX-look-at TeX-outline-extra) (LaTeX-outline-offset)))) (t (save-excursion (skip-chars-forward " \t") (forward-char 1) (cond ((looking-at "appendix") 1) ((looking-at "documentstyle") 1) ((looking-at "documentclass") 1) ((TeX-look-at LaTeX-section-list) (max 1 (+ (TeX-look-at LaTeX-section-list) (LaTeX-outline-offset)))) (t (outline-level))))))) (defun LaTeX-outline-name () "Guess a name for the current header line." (save-excursion (if (re-search-forward "{\\([^\}]*\\)}" (+ (point) fill-column 10) t) (match-string 1) (buffer-substring (point) (min (point-max) (+ 20 (point))))))) (add-hook 'TeX-remove-style-hook (lambda () (setq LaTeX-largest-level nil))) (defcustom LaTeX-section-hook '(LaTeX-section-heading LaTeX-section-title ;; LaTeX-section-toc ; Most people won't want this LaTeX-section-section LaTeX-section-label) "List of hooks to run when a new section is inserted. The following variables are set before the hooks are run level - numeric section level, see the documentation of `LaTeX-section'. name - name of the sectioning command, derived from `level'. title - The title of the section, default to an empty string. toc - Entry for the table of contents list, default nil. done-mark - Position of point afterwards, default nil (meaning end). The following standard hook exist - LaTeX-section-heading: Query the user about the name of the sectioning command. Modifies `level' and `name'. LaTeX-section-title: Query the user about the title of the section. Modifies `title'. LaTeX-section-toc: Query the user for the toc entry. Modifies `toc'. LaTeX-section-section: Insert LaTeX section command according to `name', `title', and `toc'. If `toc' is nil, no toc entry is inserted. If `toc' or `title' are empty strings, `done-mark' will be placed at the point they should be inserted. LaTeX-section-label: Insert a label after the section command. Controled by the variable `LaTeX-section-label'. To get a full featured `LaTeX-section' command, insert (setq LaTeX-section-hook '(LaTeX-section-heading LaTeX-section-title LaTeX-section-toc LaTeX-section-section LaTeX-section-label)) in your .emacs file." :group 'LaTeX-macro :type 'hook :options '(LaTeX-section-heading LaTeX-section-title LaTeX-section-toc LaTeX-section-section LaTeX-section-label)) (defcustom LaTeX-section-label '(("part" . "part:") ("chapter" . "chap:") ("section" . "sec:") ("subsection" . "sec:") ("subsubsection" . "sec:")) "Default prefix when asking for a label. Some LaTeX packages \(such as `fancyref'\) look at the prefix to generate some text around cross-references automatically. When using those packages, you should not change this variable. If it is a string, it it used unchanged for all kinds of sections. If it is nil, no label is inserted. If it is a list, the list is searched for a member whose car is equal to the name of the sectioning command being inserted. The cdr is then used as the prefix. If the name is not found, or if the cdr is nil, no label is inserted." :group 'LaTeX-label :type '(choice (const :tag "none" nil) (string :format "%v" :tag "Common") (repeat :menu-tag "Level specific" :format "\n%v%i" (cons :format "%v" (string :tag "Type") (choice :tag "Prefix" (const :tag "none" nil) (string :format "%v")))))) ;;; Section Hooks. (defun LaTeX-section-heading () "Hook to prompt for LaTeX section name. Insert this hook into `LaTeX-section-hook' to allow the user to change the name of the sectioning command inserted with `\\[LaTeX-section]'." (let ((string (completing-read (concat "Level (default " name "): ") LaTeX-section-list nil nil nil nil name))) ;; Update name (if (not (zerop (length string))) (setq name string)) ;; Update level (setq level (LaTeX-section-level name)))) (defun LaTeX-section-title () "Hook to prompt for LaTeX section title. Insert this hook into `LaTeX-section-hook' to allow the user to change the title of the section inserted with `\\[LaTeX-section]." (setq title (TeX-read-string "Title: " title)) (let ((region (and (TeX-active-mark) (cons (region-beginning) (region-end))))) (when region (delete-region (car region) (cdr region))))) (defun LaTeX-section-toc () "Hook to prompt for the LaTeX section entry in the table of content . Insert this hook into `LaTeX-section-hook' to allow the user to insert a different entry for the section in the table of content." (setq toc (TeX-read-string "Toc Entry: ")) (if (zerop (length toc)) (setq toc nil))) (defun LaTeX-section-section () "Hook to insert LaTeX section command into the file. Insert this hook into `LaTeX-section-hook' after those hooks that set the `name', `title', and `toc' variables, but before those hooks that assume that the section is already inserted." ;; insert a new line if the current line and the previous line are ;; not empty (except for whitespace), with one exception: do not ;; insert a new line if the previous (or current, sigh) line starts ;; an environment (i.e., starts with `[optional whitespace]\begin') (unless (save-excursion (re-search-backward (concat "^\\s-*\n\\s-*\\=\\|^\\s-*" (regexp-quote TeX-esc) "begin") (line-beginning-position 0) t)) (LaTeX-newline)) (insert TeX-esc name) (cond ((null toc)) ((zerop (length toc)) (insert LaTeX-optop) (set-marker done-mark (point)) (insert LaTeX-optcl)) (t (insert LaTeX-optop toc LaTeX-optcl))) (insert TeX-grop) (if (zerop (length title)) (set-marker done-mark (point))) (insert title TeX-grcl) (LaTeX-newline) ;; If RefTeX is available, tell it that we've just made a new section (and (fboundp 'reftex-notice-new-section) (reftex-notice-new-section))) (defun LaTeX-section-label () "Hook to insert a label after the sectioning command. Insert this hook into `LaTeX-section-hook' to prompt for a label to be inserted after the sectioning command. The behaviour of this hook is controlled by variable `LaTeX-section-label'." (and (LaTeX-label name 'section) (LaTeX-newline))) ;;; Environments (defgroup LaTeX-environment nil "Environments in AUCTeX." :group 'LaTeX-macro) (defcustom LaTeX-default-environment "itemize" "*The default environment when creating new ones with `LaTeX-environment'. It is overridden by `LaTeX-default-document-environment' when it is non-nil and the current environment is \"document\"." :group 'LaTeX-environment :type 'string) (make-variable-buffer-local 'LaTeX-default-environment) (defvar LaTeX-default-document-environment nil "The default environment when creating new ones with `LaTeX-environment' and the current one is \"document\". This variable overrides `LaTeX-default-environment'.") (make-variable-buffer-local 'LaTeX-default-document-environment) (defvar LaTeX-default-tabular-environment "tabular" "The default tabular-like environment used when inserting a table env. Styles such as tabularx may set it according to their needs.") (make-variable-buffer-local 'LaTeX-default-tabular-environment) (defvar LaTeX-environment-history nil) ;; Variable used to cache the current environment, e.g. for repeated ;; tasks in an environment, like indenting each line in a paragraph to ;; be filled. It must not have a non-nil value in general. That ;; means it is usually let-bound for such operations. (defvar LaTeX-current-environment nil) (defun LaTeX-environment (arg) "Make LaTeX environment (\\begin{...}-\\end{...} pair). With optional ARG, modify current environment. It may be customized with the following variables: `LaTeX-default-environment' Your favorite environment. `LaTeX-default-style' Your favorite document class. `LaTeX-default-options' Your favorite document class options. `LaTeX-float' Where you want figures and tables to float. `LaTeX-table-label' Your prefix to labels in tables. `LaTeX-figure-label' Your prefix to labels in figures. `LaTeX-default-format' Format for array and tabular. `LaTeX-default-width' Width for minipage and tabular*. `LaTeX-default-position' Position for array and tabular." (interactive "*P") (let* ((default (cond ((TeX-near-bobp) "document") ((and LaTeX-default-document-environment (string-equal (LaTeX-current-environment) "document")) LaTeX-default-document-environment) (t LaTeX-default-environment))) (environment (completing-read (concat "Environment type (default " default "): ") (LaTeX-environment-list-filtered) nil nil nil 'LaTeX-environment-history default))) ;; Use `environment' as default for the next time only if it is different ;; from the current default. (unless (equal environment default) (setq LaTeX-default-environment environment)) (let ((entry (assoc environment (LaTeX-environment-list)))) (if (null entry) (LaTeX-add-environments (list environment))) (if arg (LaTeX-modify-environment environment) (LaTeX-environment-menu environment))))) (defun LaTeX-environment-menu (environment) "Insert ENVIRONMENT around point or region." (let ((entry (assoc environment (LaTeX-environment-list)))) (cond ((not (and entry (nth 1 entry))) (LaTeX-insert-environment environment)) ((numberp (nth 1 entry)) (let ((count (nth 1 entry)) (args "")) (while (> count 0) (setq args (concat args TeX-grop TeX-grcl)) (setq count (- count 1))) (LaTeX-insert-environment environment args))) ((or (stringp (nth 1 entry)) (vectorp (nth 1 entry))) (let ((prompts (cdr entry)) (args "")) (dolist (elt prompts) (let* ((optional (vectorp elt)) (elt (if optional (elt elt 0) elt)) (arg (TeX-read-string (concat (when optional "(Optional) ") elt ": ")))) (setq args (concat args (cond ((and optional (> (length arg) 0)) (concat LaTeX-optop arg LaTeX-optcl)) ((not optional) (concat TeX-grop arg TeX-grcl))))))) (LaTeX-insert-environment environment args))) (t (apply (nth 1 entry) environment (nthcdr 2 entry)))))) (defun LaTeX-close-environment (&optional reopen) "Create an \\end{...} to match the current environment. With prefix-argument, reopen environment afterwards." (interactive "*P") (if (> (point) (save-excursion (beginning-of-line) (when LaTeX-insert-into-comments (if (looking-at comment-start-skip) (goto-char (match-end 0)))) (skip-chars-forward " \t") (point))) (LaTeX-newline)) (let ((environment (LaTeX-current-environment 1)) marker) (insert "\\end{" environment "}") (indent-according-to-mode) (if (or (not (looking-at "[ \t]*$")) (and (TeX-in-commented-line) (save-excursion (beginning-of-line 2) (not (TeX-in-commented-line))))) (LaTeX-newline) (unless (= (forward-line 1) 0) (insert "\n"))) (indent-according-to-mode) (when reopen (save-excursion (setq marker (point-marker)) (set-marker-insertion-type marker t) (LaTeX-environment-menu environment) (delete-region (point) (if (save-excursion (goto-char marker) (bolp)) (1- marker) marker)) (move-marker marker nil))))) (if (featurep 'xemacs) (define-obsolete-variable-alias 'LaTeX-after-insert-env-hooks 'LaTeX-after-insert-env-hook) (define-obsolete-variable-alias 'LaTeX-after-insert-env-hooks 'LaTeX-after-insert-env-hook "11.89")) (defvar LaTeX-after-insert-env-hook nil "List of functions to be run at the end of `LaTeX-insert-environment'. Each function is called with three arguments: the name of the environment just inserted, the buffer position just before \\begin and the position just before \\end.") (defun LaTeX-insert-environment (environment &optional extra) "Insert LaTeX ENVIRONMENT with optional argument EXTRA." (let ((active-mark (and (TeX-active-mark) (not (eq (mark) (point))))) prefix content-start env-start env-end) (when (and active-mark (< (mark) (point))) (exchange-point-and-mark)) ;; Compute the prefix. (when (and LaTeX-insert-into-comments (TeX-in-commented-line)) (save-excursion (beginning-of-line) (looking-at (concat "^\\([ \t]*" TeX-comment-start-regexp "+\\)+[ \t]*")) (setq prefix (match-string 0)))) ;; What to do with the line containing point. (cond ((save-excursion (beginning-of-line) (looking-at (concat prefix "[ \t]*$"))) (delete-region (match-beginning 0) (match-end 0))) ((TeX-looking-at-backward (concat "^" prefix "[ \t]*") (line-beginning-position)) (beginning-of-line) (newline) (beginning-of-line 0)) ((bolp) (delete-horizontal-space) (newline) (beginning-of-line 0)) (t (delete-horizontal-space) (newline 2) (when prefix (insert prefix)) (beginning-of-line 0))) ;; What to do with the line containing mark. (when active-mark (save-excursion (goto-char (mark)) (cond ((save-excursion (beginning-of-line) (or (looking-at (concat prefix "[ \t]*$")) (looking-at "[ \t]*$"))) (delete-region (match-beginning 0) (match-end 0))) ((TeX-looking-at-backward (concat "^" prefix "[ \t]*") (line-beginning-position)) (beginning-of-line) (newline) (beginning-of-line 0)) (t (delete-horizontal-space) (insert-before-markers "\n") (newline) (when prefix (insert prefix)))))) ;; Now insert the environment. (when prefix (insert prefix)) (setq env-start (point)) (insert TeX-esc "begin" TeX-grop environment TeX-grcl) (indent-according-to-mode) (when extra (insert extra)) (setq content-start (line-beginning-position 2)) (unless active-mark (newline) (when prefix (insert prefix)) (newline)) (when active-mark (goto-char (mark))) (when prefix (insert prefix)) (insert TeX-esc "end" TeX-grop environment TeX-grcl) (end-of-line 0) (if active-mark (progn (or (assoc environment LaTeX-indent-environment-list) (if auto-fill-function ;; Fill the region only when `auto-fill-mode' is active. (LaTeX-fill-region content-start (line-beginning-position 2)))) (set-mark content-start)) (indent-according-to-mode)) (save-excursion (beginning-of-line 2) (indent-according-to-mode)) (TeX-math-input-method-off) (setq env-end (save-excursion (search-forward (concat TeX-esc "end" TeX-grop environment TeX-grcl)) (match-beginning 0))) (run-hook-with-args 'LaTeX-after-insert-env-hooks environment env-start env-end))) (defun LaTeX-environment-name-regexp () "Return the regexp matching the name of a LaTeX environment. This matches everything different from a TeX closing brace but allowing one level of TeX group braces." (concat "\\([^" (regexp-quote TeX-grcl) (regexp-quote TeX-grop) "]*\\(" (regexp-quote TeX-grop) "[^" (regexp-quote TeX-grcl) (regexp-quote TeX-grop) "]*" (regexp-quote TeX-grcl) "\\)*[^" (regexp-quote TeX-grcl) (regexp-quote TeX-grop) "]*\\)")) (defvar LaTeX-after-modify-env-hook nil "List of functions to be run at the end of `LaTeX-modify-environment'. Each function is called with four arguments: the new name of the environment, the former name of the environment, the buffer position just before \\begin and the position just before \\end.") (defun LaTeX-modify-environment (environment) "Modify current ENVIRONMENT." (let ((goto-end (lambda () (LaTeX-find-matching-end) (re-search-backward (concat (regexp-quote TeX-esc) "end" (regexp-quote TeX-grop) "\\(" (LaTeX-environment-name-regexp) "\\)" (regexp-quote TeX-grcl)) (save-excursion (beginning-of-line 1) (point))))) (goto-begin (lambda () (LaTeX-find-matching-begin) (prog1 (point) (re-search-forward (concat (regexp-quote TeX-esc) "begin" (regexp-quote TeX-grop) "\\(" (LaTeX-environment-name-regexp) "\\)" (regexp-quote TeX-grcl)) (save-excursion (end-of-line 1) (point))))))) (save-excursion (funcall goto-end) (let ((old-env (match-string 1))) (replace-match environment t t nil 1) (beginning-of-line 1) (funcall goto-begin) (replace-match environment t t nil 1) (end-of-line 1) (run-hook-with-args 'LaTeX-after-modify-env-hook environment old-env (save-excursion (funcall goto-begin)) (progn (funcall goto-end) (point))))))) (defun LaTeX-current-environment (&optional arg) "Return the name (a string) of the enclosing LaTeX environment. With optional ARG>=1, find that outer level. If function is called inside a comment and `LaTeX-syntactic-comments' is enabled, try to find the environment in commented regions with the same comment prefix. The functions `LaTeX-find-matching-begin' and `LaTeX-find-matching-end' work analogously." (setq arg (if arg (if (< arg 1) 1 arg) 1)) (let* ((in-comment (TeX-in-commented-line)) (comment-prefix (and in-comment (TeX-comment-prefix))) (case-fold-search nil)) (save-excursion (while (and (/= arg 0) (re-search-backward "\\\\\\(begin\\|end\\) *{ *\\([A-Za-z*]+\\) *}" nil t)) (when (or (and LaTeX-syntactic-comments (eq in-comment (TeX-in-commented-line)) (or (not in-comment) ;; Consider only matching prefixes in the ;; commented case. (string= comment-prefix (TeX-comment-prefix)))) (and (not LaTeX-syntactic-comments) (not (TeX-in-commented-line)))) (setq arg (if (string= (match-string 1) "end") (1+ arg) (1- arg))))) (if (/= arg 0) "document" (match-string-no-properties 2))))) (defun docTeX-in-macrocode-p () "Determine if point is inside a macrocode environment." (let ((case-fold-search nil)) (save-excursion (re-search-backward (concat "^% " (regexp-quote TeX-esc) "\\(begin\\|end\\)[ \t]*{macrocode\\*?}") nil 'move) (not (or (bobp) (= (char-after (match-beginning 1)) ?e)))))) ;;; Environment Hooks (defvar LaTeX-document-style-hook nil "List of hooks to run when inserting a document environment. To insert a hook here, you must insert it in the appropiate style file.") (defun LaTeX-env-document (&optional _ignore) "Create new LaTeX document. Also inserts a \\documentclass macro if there's none already and prompts for the insertion of \\usepackage macros. The compatibility argument IGNORE is ignored." ;; just assume a single valid \\documentclass, i.e., one not in a ;; commented line (let ((found nil)) (save-excursion (while (and (not found) (re-search-backward "\\\\documentclass\\(\\[[^]\n\r]*\\]\\)?\\({[^}]+}\\)" nil t)) (and (not (TeX-in-commented-line)) (setq found t)))) (when (not found) (TeX-insert-macro "documentclass") (LaTeX-newline) (LaTeX-newline) ;; Add a newline only if some `\usepackage' has been inserted. (if (LaTeX-insert-usepackages) (LaTeX-newline)) (LaTeX-newline) (end-of-line 0))) (LaTeX-insert-environment "document") (run-hooks 'LaTeX-document-style-hook) (setq LaTeX-document-style-hook nil)) (defcustom LaTeX-float "" "Default float position for figures and tables. If nil, act like the empty string is given, but do not prompt. \(The standard LaTeX classes use [tbp] as float position if the optional argument is omitted.)" :group 'LaTeX-environment :type '(choice (const :tag "Do not prompt" nil) (const :tag "Empty" "") (string :format "%v"))) (make-variable-buffer-local 'LaTeX-float) (defcustom LaTeX-top-caption-list nil "*List of float environments with top caption." :group 'LaTeX-environment :type '(repeat (string :format "%v"))) (defgroup LaTeX-label nil "Adding labels for LaTeX commands in AUCTeX." :group 'LaTeX) (defcustom LaTeX-label-function nil "*A function inserting a label at point or returning a label string. Sole mandatory argument of the function is the environment. The function has to return the label inserted, or nil if no label was inserted. If the optional argument NO-INSERT is non-nil, then the function has to return the label as string without any insertion or nil if no label was read in." :group 'LaTeX-label :type 'function) (defcustom LaTeX-figure-label "fig:" "*Default prefix to figure labels." :group 'LaTeX-label :group 'LaTeX-environment :type 'string) (defcustom LaTeX-table-label "tab:" "*Default prefix to table labels." :group 'LaTeX-label :group 'LaTeX-environment :type 'string) (defcustom LaTeX-listing-label "lst:" "Default prefix to listing labels. This prefix should apply to all environments which typeset code listings and take a caption and label." :group 'LaTeX-label :group 'LaTeX-environment :type 'string) (defcustom LaTeX-default-format "" "Default format for array and tabular environments." :group 'LaTeX-environment :type 'string) (make-variable-buffer-local 'LaTeX-default-format) (defcustom LaTeX-default-width "1.0\\linewidth" "Default width for minipage and tabular* environments." :group 'LaTeX-environment :type 'string) (make-variable-buffer-local 'LaTeX-default-width) (defcustom LaTeX-default-position "" "Default position for array and tabular environments. If nil, act like the empty string is given, but do not prompt." :group 'LaTeX-environment :type '(choice (const :tag "Do not prompt" nil) (const :tag "Empty" "") string)) (make-variable-buffer-local 'LaTeX-default-position) (defcustom LaTeX-equation-label "eq:" "*Default prefix to equation labels." :group 'LaTeX-label :type 'string) (defcustom LaTeX-eqnarray-label LaTeX-equation-label "*Default prefix to eqnarray labels." :group 'LaTeX-label :type 'string) (defun LaTeX-env-item (environment) "Insert ENVIRONMENT and the first item." (LaTeX-insert-environment environment) (if (TeX-active-mark) (progn (LaTeX-find-matching-begin) (end-of-line 1)) (end-of-line 0)) (delete-char 1) (when (looking-at (concat "^[ \t]+$\\|" "^[ \t]*" TeX-comment-start-regexp "+[ \t]*$")) (delete-region (point) (line-end-position))) (delete-horizontal-space) ;; Deactivate the mark here in order to prevent `TeX-parse-macro' ;; from swapping point and mark and the \item ending up right after ;; \begin{...}. (TeX-deactivate-mark) (LaTeX-insert-item) ;; The inserted \item may have outdented the first line to the ;; right. Fill it, if appropriate. (when (and (not (looking-at "$")) (not (assoc environment LaTeX-indent-environment-list)) (> (- (line-end-position) (line-beginning-position)) (current-fill-column))) (LaTeX-fill-paragraph nil))) (defcustom LaTeX-label-alist '(("figure" . LaTeX-figure-label) ("table" . LaTeX-table-label) ("figure*" . LaTeX-figure-label) ("table*" . LaTeX-table-label) ("equation" . LaTeX-equation-label) ("eqnarray" . LaTeX-eqnarray-label)) "Lookup prefixes for labels. An alist where the CAR is the environment name, and the CDR either the prefix or a symbol referring to one. If the name is not found, or if the CDR is nil, no label is automatically inserted for that environment. If you want to automatically insert a label for a environment but with an empty prefix, use the empty string \"\" as the CDR of the corresponding entry." :group 'LaTeX-label :type '(repeat (cons (string :tag "Environment") (choice (string :tag "Label prefix") (symbol :tag "Label prefix symbol"))))) (make-variable-buffer-local 'LaTeX-label-alist) (defun LaTeX-label (name &optional type no-insert) "Insert a label for NAME at point. The optional TYPE argument can be either environment or section: in the former case this function looks up `LaTeX-label-alist' to choose which prefix to use for the label, in the latter case `LaTeX-section-label' will be looked up instead. If TYPE is nil, you will be always prompted for a label, with an empty default prefix. If `LaTeX-label-function' is a valid function, LaTeX label will transfer the job to this function. If the optional NO-INSERT is non-nil, only the label is returned and no insertion happens. Otherwise the inserted label is returned, nil if it is empty." (let ((TeX-read-label-prefix (cond ((eq type 'environment) (cdr (assoc name LaTeX-label-alist))) ((eq type 'section) (if (assoc name LaTeX-section-list) (if (stringp LaTeX-section-label) LaTeX-section-label (and (listp LaTeX-section-label) (cdr (assoc name LaTeX-section-label)))) "")) ((null type) "") (t nil))) label) (when (symbolp TeX-read-label-prefix) (setq TeX-read-label-prefix (symbol-value TeX-read-label-prefix))) (when TeX-read-label-prefix (if (and (fboundp LaTeX-label-function)) (funcall LaTeX-label-function name no-insert) ;; Use completing-read as we do with `C-c C-m \label RET' (setq label (TeX-read-label t "What label" t)) ;; No label or empty string entered? (if (or (string= TeX-read-label-prefix label) (string= "" label)) (setq label nil) ;; We have a label; when NO-INSERT is nil, insert ;; \label{label} in the buffer, add new label to list of ;; known labels and return it (unless no-insert (insert TeX-esc "label" TeX-grop label TeX-grcl)) (LaTeX-add-labels label) label))))) (defcustom LaTeX-short-caption-prompt-length 40 "The length that the caption of a figure should be before propting for \\caption's optional short-version." :group 'LaTeX-environment :type 'integer) (defun LaTeX-compose-caption-macro (caption &optional short-caption) "Return a \\caption macro for a given CAPTION as a string. If SHORT-CAPTION is non-nil pass it as an optional argument to \\caption." (let ((short-caption-string (if (and short-caption (not (string= short-caption ""))) (concat LaTeX-optop short-caption LaTeX-optcl)))) (concat TeX-esc "caption" short-caption-string TeX-grop caption TeX-grcl))) (defun LaTeX-env-figure (environment) "Create ENVIRONMENT with \\caption and \\label commands." (let* ((float (and LaTeX-float ; LaTeX-float can be nil, i.e. ; do not prompt (TeX-read-string "(Optional) Float position: " LaTeX-float))) (caption (TeX-read-string "Caption: ")) (short-caption (when (>= (length caption) LaTeX-short-caption-prompt-length) (TeX-read-string "(Optional) Short caption: "))) (center (y-or-n-p "Center? ")) (active-mark (and (TeX-active-mark) (not (eq (mark) (point))))) start-marker end-marker) (when active-mark (if (< (mark) (point)) (exchange-point-and-mark)) (setq start-marker (point-marker)) (set-marker-insertion-type start-marker t) (setq end-marker (copy-marker (mark)))) (setq LaTeX-float float) (LaTeX-insert-environment environment (unless (zerop (length float)) (concat LaTeX-optop float LaTeX-optcl))) (when active-mark (goto-char start-marker)) (when center (insert TeX-esc "centering") (indent-according-to-mode) (LaTeX-newline) (indent-according-to-mode)) ;; Insert caption and ask for a label, do nothing if user skips caption (unless (zerop (length caption)) (if (member environment LaTeX-top-caption-list) ;; top caption (progn (insert (LaTeX-compose-caption-macro caption short-caption)) ;; If `auto-fill-mode' is active, fill the caption. (if auto-fill-function (LaTeX-fill-paragraph)) (LaTeX-newline) (indent-according-to-mode) ;; ask for a label and insert a new line only if a label is ;; actually inserted (when (LaTeX-label environment 'environment) (LaTeX-newline) (indent-according-to-mode))) ;; bottom caption (default) (when active-mark (goto-char end-marker)) (save-excursion (LaTeX-newline) (indent-according-to-mode) ;; If there is an active region point is before the backslash of ;; "\end" macro, go one line upwards. (when active-mark (forward-line -1) (indent-according-to-mode)) (insert (LaTeX-compose-caption-macro caption short-caption)) ;; If `auto-fill-mode' is active, fill the caption. (if auto-fill-function (LaTeX-fill-paragraph)) ;; ask for a label and if necessary insert a new line between caption ;; and label (when (save-excursion (LaTeX-label environment 'environment)) (LaTeX-newline) (indent-according-to-mode))) ;; Insert an empty line between caption and marked region, if any. (when active-mark (LaTeX-newline) (forward-line -1)) (indent-according-to-mode))) (when (and (member environment '("table" "table*")) ;; Suppose an existing tabular environment should just ;; be wrapped into a table if there is an active region. (not active-mark)) (LaTeX-environment-menu LaTeX-default-tabular-environment)))) (defun LaTeX-env-array (environment) "Insert ENVIRONMENT with position and column specifications. Just like array and tabular." (let ((pos (and LaTeX-default-position ; LaTeX-default-position can ; be nil, i.e. do not prompt (TeX-read-string "(Optional) Position: " LaTeX-default-position))) (fmt (TeX-read-string "Format: " LaTeX-default-format))) (setq LaTeX-default-position pos) (setq LaTeX-default-format fmt) (LaTeX-insert-environment environment (concat (unless (zerop (length pos)) (concat LaTeX-optop pos LaTeX-optcl)) (concat TeX-grop fmt TeX-grcl))) (LaTeX-item-array t))) (defun LaTeX-env-label (environment) "Insert ENVIRONMENT and prompt for label." (LaTeX-insert-environment environment) (when (LaTeX-label environment 'environment) (LaTeX-newline) (indent-according-to-mode))) (defun LaTeX-env-list (environment) "Insert ENVIRONMENT and the first item." (let ((label (TeX-read-string "Default Label: "))) (LaTeX-insert-environment environment (format "{%s}{}" label)) (end-of-line 0) (delete-char 1) (delete-horizontal-space)) (LaTeX-insert-item)) (defun LaTeX-env-minipage (environment) "Create new LaTeX minipage or minipage-like ENVIRONMENT." (let ((pos (and LaTeX-default-position ; LaTeX-default-position can ; be nil, i.e. do not prompt (TeX-read-string "(Optional) Position: " LaTeX-default-position))) (width (TeX-read-string "Width: " LaTeX-default-width))) (setq LaTeX-default-position pos) (setq LaTeX-default-width width) (LaTeX-insert-environment environment (concat (unless (zerop (length pos)) (concat LaTeX-optop pos LaTeX-optcl)) (concat TeX-grop width TeX-grcl))))) (defun LaTeX-env-tabular* (environment) "Insert ENVIRONMENT with width, position and column specifications." (let ((width (TeX-read-string "Width: " LaTeX-default-width)) (pos (and LaTeX-default-position ; LaTeX-default-position can ; be nil, i.e. do not prompt (TeX-read-string "(Optional) Position: " LaTeX-default-position))) (fmt (TeX-read-string "Format: " LaTeX-default-format))) (setq LaTeX-default-width width) (setq LaTeX-default-position pos) (setq LaTeX-default-format fmt) (LaTeX-insert-environment environment (concat (concat TeX-grop width TeX-grcl) ;; not optional! (unless (zerop (length pos)) (concat LaTeX-optop pos LaTeX-optcl)) (concat TeX-grop fmt TeX-grcl))) (LaTeX-item-tabular* t))) (defun LaTeX-env-picture (environment) "Insert ENVIRONMENT with width, height specifications." (let ((width (TeX-read-string "Width: ")) (height (TeX-read-string "Height: ")) (x-offset (TeX-read-string "X Offset: ")) (y-offset (TeX-read-string "Y Offset: "))) (if (zerop (length x-offset)) (setq x-offset "0")) (if (zerop (length y-offset)) (setq y-offset "0")) (LaTeX-insert-environment environment (concat (format "(%s,%s)" width height) (if (not (and (string= x-offset "0") (string= y-offset "0"))) (format "(%s,%s)" x-offset y-offset)))))) (defun LaTeX-env-bib (environment) "Insert ENVIRONMENT with label for bibitem." (LaTeX-insert-environment environment (concat TeX-grop (TeX-read-string "Label for BibItem: " "99") TeX-grcl)) (end-of-line 0) (delete-char 1) (delete-horizontal-space) (LaTeX-insert-item)) (defun LaTeX-env-contents (environment) "Insert ENVIRONMENT with filename for contents." (save-excursion (when (re-search-backward LaTeX-header-end nil t) (error "Put %s environment before \\begin{document}" environment))) (LaTeX-insert-environment environment (concat TeX-grop (TeX-read-string "File: ") TeX-grcl)) (delete-horizontal-space)) (defun LaTeX-env-args (environment &rest args) "Insert ENVIRONMENT and arguments defined by ARGS." (LaTeX-insert-environment environment) (save-excursion (LaTeX-find-matching-begin) (end-of-line) (let ((exit-mark (if (boundp 'exit-mark) exit-mark (make-marker)))) (TeX-parse-arguments args)))) (defun LaTeX-env-label-as-keyval (_optional &optional keyword keyvals environment) "Query for a label and insert it in the optional argument of an environment. OPTIONAL is ignored. Optional KEYWORD is a string to search for in the optional argument, label is only included if KEYWORD is found. KEYVALS is a string with key=val's read in. If nil, this function searchs for key=val's itself. ENVIRONMENT is a string with the name of environment, if non-nil, don't bother to find out." (let ((env-start (make-marker)) (body-start (make-marker)) (opt-start (make-marker)) (opt-end (make-marker)) (currenv (or environment (LaTeX-current-environment)))) ;; Save the starting point as we will come back here (set-marker body-start (point)) ;; Go to the start of the current environment and save the position (LaTeX-find-matching-begin) (set-marker env-start (point)) ;; Check if an opt. argument is there; assume that it starts in ;; the same line and save the points in markers (when (re-search-forward (concat "\\\\begin{" currenv "}[ \t]*\\[") body-start t) (set-marker opt-start (1- (point))) (goto-char opt-start) (forward-sexp) (set-marker opt-end (1- (point)))) ;; If keyword argument is given and keyvals argument is not given, ;; parse the optional argument and put it into keyvals (when (and keyword (marker-position opt-start) (not keyvals)) (setq keyvals (buffer-substring-no-properties (1+ opt-start) opt-end))) ;; If keyword is given, only insert a label when keyword is found ;; inside the keyvals. If keyword is nil, then insert a label ;; anyways (if (stringp keyword) (when (and (stringp keyvals) (not (string= keyvals "")) (string-match (concat keyword "[ \t]*=") keyvals)) (goto-char opt-end) (let ((opt-label (LaTeX-label currenv 'environment t))) (when opt-label (insert (if (equal (preceding-char) ?,) "label=" ",label=") TeX-grop opt-label TeX-grcl)))) (let ((opt-label (LaTeX-label currenv 'environment t))) (when opt-label ;; Check if an opt. argument is found and go to the end if (if (marker-position opt-end) (progn (goto-char opt-end) (insert (if (equal (preceding-char) ?,) "label=" ",label=") TeX-grop opt-label TeX-grcl)) ;; Otherwise start at the beginning of environment in ;; order to not mess with any other mandatory arguments ;; which can be there (goto-char env-start) (re-search-forward (concat "\\\\begin{" currenv "}")) (insert LaTeX-optop "label=" TeX-grop opt-label TeX-grcl LaTeX-optcl))))) ;; Go to where we started and clean up the markers (goto-char body-start) (set-marker env-start nil) (set-marker body-start nil) (set-marker opt-start nil) (set-marker opt-end nil))) ;;; Item hooks (defvar LaTeX-item-list nil "A list of environments where items have a special syntax. The cdr is the name of the function, used to insert this kind of items.") (defun LaTeX-insert-item () "Insert a new item in an environment. You may use `LaTeX-item-list' to change the routines used to insert the item." (interactive "*") (let ((environment (LaTeX-current-environment))) (when (and (TeX-active-mark) (> (point) (mark))) (exchange-point-and-mark)) (unless (bolp) (LaTeX-newline)) (if (assoc environment LaTeX-item-list) (funcall (cdr (assoc environment LaTeX-item-list))) (TeX-insert-macro "item")) (indent-according-to-mode))) (defvar TeX-arg-item-label-p) (defun LaTeX-item-argument () "Insert a new item with an optional argument." (let ((TeX-arg-item-label-p t) (TeX-insert-macro-default-style 'show-optional-args)) (TeX-insert-macro "item"))) (defun LaTeX-item-bib () "Insert a new bibitem." (TeX-insert-macro "bibitem")) (defvar LaTeX-array-skipping-regexp (regexp-opt '("[t]" "[b]" "")) "Regexp matching between \\begin{xxx} and column specification. For array and tabular environments. See `LaTeX-insert-ampersands' for detail.") (defvar LaTeX-tabular*-skipping-regexp ;; Assume width specification contains neither nested curly brace ;; pair nor escaped "}". (concat "{[^}]*}[ \t]*" (regexp-opt '("[t]" "[b]" ""))) "Regexp matching between \\begin{tabular*} and column specification. For tabular* environment only. See `LaTeX-insert-ampersands' for detail.") (defun LaTeX-item-array (&optional suppress) "Insert line break macro on the last line and suitable number of &'s. For array and tabular environments. If SUPPRESS is non-nil, do not insert line break macro." (unless suppress (save-excursion (end-of-line 0) (just-one-space) (TeX-insert-macro "\\"))) (LaTeX-insert-ampersands LaTeX-array-skipping-regexp 'LaTeX-array-count-columns)) (defun LaTeX-item-tabular* (&optional suppress) "Insert line break macro on the last line and suitable number of &'s. For tabular* environment only. If SUPPRESS is non-nil, do not insert line break macro." (unless suppress (save-excursion (end-of-line 0) (just-one-space) (TeX-insert-macro "\\"))) (LaTeX-insert-ampersands LaTeX-tabular*-skipping-regexp 'LaTeX-array-count-columns)) (defun LaTeX-insert-ampersands (regexp func) "Insert suitable number of ampersands for the current environment. The number is calculated from REGEXP and FUNC. Example 1: Consider the case that the current environment begins with \\begin{array}[t]{|lcr|} . REGEXP must be chosen to match \"[t]\", i.e., the text between just after \"\\begin{array}\" and just before \"{|lcr|}\", which encloses the column specification. FUNC must return the number of ampersands to be inserted, which is 2 since this example specifies three columns. FUNC is called with two arguments START and END, which spans the column specification (without enclosing braces.) REGEXP is used to determine these START and END. Example 2: This time the environment begins with \\begin{tabular*}{1.0\\linewidth}[b]{c@{,}p{5ex}} . REGEXP must match \"{1.0\\linewidth}[b]\" and FUNC must return 1 from the text \"c@{,}p{5ex}\" between START and END specified two columns. FUNC should return nil if it cannot determine the number of ampersands." (let* ((cur (point)) (num (save-excursion (ignore-errors (LaTeX-find-matching-begin) ;; Skip over "\begin{xxx}" and possible whitespaces. (forward-list 1) (skip-chars-forward " \t") ;; Skip over the text specified by REGEXP and whitespaces. (when (let ((case-fold-search nil)) (re-search-forward regexp cur)) (skip-chars-forward " \t") (when (eq (following-char) ?{) ;; We have reached the target "{yyy}" part. (forward-char 1) ;; The next line doesn't move point, so point ;; is left just after the opening brace. (let ((pos (TeX-find-closing-brace))) (if pos ;; Calculate number of ampersands to be inserted. (funcall func (point) (1- pos)))))))))) (if (natnump num) (save-excursion (insert (make-string num ?&)))))) (defvar LaTeX-array-column-letters "clrp" "Column letters for array-like environments. See `LaTeX-array-count-columns' for detail.") (defun LaTeX-array-count-columns (start end) "Count number of ampersands to be inserted. The columns are specified by the letters found in the string `LaTeX-array-column-letters' and the number of those letters within the text between START and END is basically considered to be the number of columns. The arguments surrounded between braces such as p{30pt} do not interfere the count of columns. Return one less number than the columns, or nil on failing to count the right number." (save-excursion (let (p (cols 0)) (goto-char start) (while (< (setq p (point)) end) ;; The below block accounts for one unit of move for ;; one column. (setq cols (+ cols ;; treat *-operator specially. (if (eq (following-char) ?*) ;; *-operator is there. (progn ;; pick up repetition number and count ;; how many columns are repeated. (re-search-forward "\\*[ \t\r\n%]*{[ \t\r\n%]*\\([0-9]+\\)[ \t\r\n%]*}" end) (let ((n (string-to-number (match-string-no-properties 1))) ;; get start and end of repeated spec. (s (progn (down-list 1) (point))) (e (progn (up-list 1) (1- (point))))) (* n (1+ (LaTeX-array-count-columns s e))))) ;; not *-operator. (skip-chars-forward LaTeX-array-column-letters end)))) ;; Do not skip over `*' (see above) and `[' (siunitx has `S[key=val]':): (skip-chars-forward (concat "^" LaTeX-array-column-letters "*" TeX-grop LaTeX-optop) end) (when (or (eq (following-char) ?\{) (eq (following-char) ?\[)) (forward-list 1)) ;; Not sure whether this is really necessary or not, but ;; prepare for possible infinite loop anyway. (when (eq p (point)) (setq cols nil) (goto-char end))) ;; The number of ampersands is one less than column. (if cols (1- cols))))) ;;; Parser (defvar LaTeX-auto-style nil) (defvar LaTeX-auto-arguments nil) (defvar LaTeX-auto-optional nil) (defvar LaTeX-auto-env-args nil) (defvar LaTeX-auto-env-args-with-opt nil) (TeX-auto-add-type "label" "LaTeX") (TeX-auto-add-type "bibitem" "LaTeX") (TeX-auto-add-type "environment" "LaTeX") (TeX-auto-add-type "bibliography" "LaTeX" "bibliographies") (TeX-auto-add-type "index-entry" "LaTeX" "index-entries") (TeX-auto-add-type "pagestyle" "LaTeX") (TeX-auto-add-type "counter" "LaTeX") (TeX-auto-add-type "length" "LaTeX") (TeX-auto-add-type "savebox" "LaTeX" "saveboxes") (defvar LaTeX-auto-minimal-regexp-list '(("\\\\document\\(style\\|class\\)\ \\(\\[\\(\\([^#\\%]\\|%[^\n\r]*[\n\r]\\)*\\)\\]\\)?\ {\\([^#\\.\n\r]+?\\)}" (3 5 1) LaTeX-auto-style) ("\\\\use\\(package\\)\\(\\[\\([^\]\\]*\\)\\]\\)?\ {\\(\\([^#}\\.%]\\|%[^\n\r]*[\n\r]\\)+?\\)}" (3 4 1) LaTeX-auto-style)) "Minimal list of regular expressions matching LaTeX macro definitions.") (defvar LaTeX-auto-label-regexp-list '(("\\\\label{\\([^\n\r%\\{}]+\\)}" 1 LaTeX-auto-label)) "List of regular expression matching LaTeX labels only.") (defvar LaTeX-auto-index-regexp-list '(("\\\\\\(index\\|glossary\\){\\([^}{]*\\({[^}{]*\\({[^}{]*\\({[^}{]*}[^}{]*\\)*}[^}{]*\\)*}[^}{]*\\)*\\)}" 2 LaTeX-auto-index-entry)) "List of regular expression matching LaTeX index/glossary entries only. Regexp allows for up to 3 levels of parenthesis inside the index argument. This is necessary since index entries may contain commands and stuff.") (defvar LaTeX-auto-class-regexp-list '(;; \RequirePackage[]{}[] ("\\\\Require\\(Package\\)\\(\\[\\([^#\\.%]*?\\)\\]\\)?\ {\\([^#\\.\n\r]+?\\)}" (3 4 1) LaTeX-auto-style) ;; \RequirePackageWithOptions{}[], ("\\\\Require\\(Package\\)WithOptions\\(\\){\\([^#\\.\n\r]+?\\)}" (2 3 1) LaTeX-auto-style) ;; \LoadClass[]{}[] ("\\\\Load\\(Class\\)\\(\\[\\([^#\\.%]*?\\)\\]\\)?{\\([^#\\.\n\r]+?\\)}" (3 4 1) LaTeX-auto-style) ;; \LoadClassWithOptions{}[] ("\\\\Load\\(Class\\)WithOptions\\(\\){\\([^#\\.\n\r]+?\\)}" (2 3 1) LaTeX-auto-style) ;; \DeclareRobustCommand{}[][]{}, ;; \DeclareRobustCommand*{}[][]{} ("\\\\DeclareRobustCommand\\*?{?\\\\\\([A-Za-z]+\\)}?\ \\[\\([0-9]+\\)\\]\\[\\([^\n\r]*?\\)\\]" (1 2 3) LaTeX-auto-optional) ("\\\\DeclareRobustCommand\\*?{?\\\\\\([A-Za-z]+\\)}?\\[\\([0-9]+\\)\\]" (1 2) LaTeX-auto-arguments) ("\\\\DeclareRobustCommand\\*?{?\\\\\\([A-Za-z]+\\)}?" 1 TeX-auto-symbol) ;; Patterns for commands described in "LaTeX2e font selection" (fntguide) ("\\\\DeclareMath\\(?:Symbol\\|Delimiter\\|Accent\\|Radical\\)\ {?\\\\\\([A-Za-z]+\\)}?" 1 TeX-auto-symbol) ("\\\\\\(Declare\\|Provide\\)Text\ \\(?:Command\\|Symbol\\|Accent\\|Composite\\){?\\\\\\([A-Za-z]+\\)}?" 1 TeX-auto-symbol) ("\\\\Declare\\(?:Text\\|Old\\)FontCommand{?\\\\\\([A-Za-z]+\\)}?" 1 TeX-auto-symbol)) "List of regular expressions matching macros in LaTeX classes and packages.") (defvar LaTeX-auto-pagestyle-regexp-list '(("\\\\ps@\\([A-Za-z]+\\)" 1 LaTeX-auto-pagestyle)) "List of regular expressions matching LaTeX pagestyles only.") (defvar LaTeX-auto-counter-regexp-list '(("\\\\newcounter *{\\([A-Za-z]+\\)}" 1 LaTeX-auto-counter) ("\\\\@definecounter{\\([A-Za-z]+\\)}" 1 LaTeX-auto-counter)) "List of regular expressions matching LaTeX counters only.") (defvar LaTeX-auto-length-regexp-list '(("\\\\newlength *{?\\\\\\([A-Za-z]+\\)}?" 1 LaTeX-auto-length)) "List of regular expressions matching LaTeX lengths only.") (defvar LaTeX-auto-savebox-regexp-list '(("\\\\newsavebox *{?\\\\\\([A-Za-z]+\\)}?" 1 LaTeX-auto-savebox)) "List of regular expressions matching LaTeX saveboxes only.") (defvar LaTeX-auto-regexp-list (append (let ((token TeX-token-char)) `((,(concat "\\\\\\(?:new\\|provide\\)command\\*?{?\\\\\\(" token "+\\)}?\\[\\([0-9]+\\)\\]\\[\\([^\n\r]*\\)\\]") (1 2 3) LaTeX-auto-optional) (,(concat "\\\\\\(?:new\\|provide\\)command\\*?{?\\\\\\(" token "+\\)}?\\[\\([0-9]+\\)\\]") (1 2) LaTeX-auto-arguments) (,(concat "\\\\\\(?:new\\|provide\\)command\\*?{?\\\\\\(" token "+\\)}?") 1 TeX-auto-symbol) (,(concat "\\\\newenvironment\\*?{?\\(" token "+\\)}?\\[\\([0-9]+\\)\\]\\[") (1 2) LaTeX-auto-env-args-with-opt) (,(concat "\\\\newenvironment\\*?{?\\(" token "+\\)}?\\[\\([0-9]+\\)\\]") (1 2) LaTeX-auto-env-args) (,(concat "\\\\newenvironment\\*?{?\\(" token "+\\)}?") 1 LaTeX-auto-environment) (,(concat "\\\\newtheorem{\\(" token "+\\)}") 1 LaTeX-auto-environment) ("\\\\input{\\(\\.*[^#}%\\\\\\.\n\r]+\\)\\(\\.[^#}%\\\\\\.\n\r]+\\)?}" 1 TeX-auto-file) ("\\\\include{\\(\\.*[^#}%\\\\\\.\n\r]+\\)\\(\\.[^#}%\\\\\\.\n\r]+\\)?}" 1 TeX-auto-file) (, (concat "\\\\bibitem{\\(" token "[^, \n\r\t%\"#'()={}]*\\)}") 1 LaTeX-auto-bibitem) (, (concat "\\\\bibitem\\[[^][\n\r]+\\]{\\(" token "[^, \n\r\t%\"#'()={}]*\\)}") 1 LaTeX-auto-bibitem) ("\\\\bibliography{\\([^#}\\\\\n\r]+\\)}" 1 LaTeX-auto-bibliography) ("\\\\addbibresource\\(?:\\[[^]]+\\]\\)?{\\([^#}\\\\\n\r]+\\)\\..+}" 1 LaTeX-auto-bibliography) ("\\\\add\\(?:global\\|section\\)bib\\(?:\\[[^]]+\\]\\)?{\\([^#}\\\\\n\r\.]+\\)\\(?:\\..+\\)?}" 1 LaTeX-auto-bibliography) ("\\\\newrefsection\\[\\([^]]+\\)\\]" 1 LaTeX-split-bibs) ("\\\\begin{refsection}\\[\\([^]]+\\)\\]" 1 LaTeX-split-bibs))) LaTeX-auto-class-regexp-list LaTeX-auto-label-regexp-list LaTeX-auto-index-regexp-list LaTeX-auto-minimal-regexp-list LaTeX-auto-pagestyle-regexp-list LaTeX-auto-counter-regexp-list LaTeX-auto-length-regexp-list LaTeX-auto-savebox-regexp-list) "List of regular expression matching common LaTeX macro definitions.") (defun LaTeX-split-bibs (match) "Extract bibliography resources from MATCH. Split the string at commas and remove Biber file extensions." (let ((bibs (TeX-split-string " *, *" (TeX-match-buffer match)))) (dolist (bib bibs) (LaTeX-add-bibliographies (TeX-replace-regexp-in-string (concat "\\(?:\\." (mapconcat #'regexp-quote TeX-Biber-file-extensions "\\|\\.") "\\)") "" bib))))) (defun LaTeX-auto-prepare () "Prepare for LaTeX parsing." (setq LaTeX-auto-arguments nil LaTeX-auto-optional nil LaTeX-auto-env-args nil LaTeX-auto-style nil LaTeX-auto-end-symbol nil)) (add-hook 'TeX-auto-prepare-hook 'LaTeX-auto-prepare) (defun LaTeX-listify-package-options (options) "Return a list from a comma-separated string of package OPTIONS. The input string may include LaTeX comments and newlines." ;; We jump through all those hoops and don't just use `split-string' ;; or the like in order to be able to deal with key=value package ;; options which can look like this: "pdftitle={A Perfect Day}, ;; colorlinks=false" (let (opts match start) (with-temp-buffer (set-syntax-table LaTeX-mode-syntax-table) (insert options) (newline) ; So that the last entry can be found. (goto-char (point-min)) (setq start (point)) (while (re-search-forward "[{ ,%\n\r]" nil t) (setq match (match-string 0)) (cond ;; Step over groups. (Let's hope nobody uses escaped braces.) ((string= match "{") (up-list)) ;; Get rid of whitespace. ((string= match " ") (delete-region (1- (point)) (save-excursion (skip-chars-forward " ") (point)))) ;; Add entry to output. ((or (string= match ",") (= (point) (point-max))) (let ((entry (buffer-substring-no-properties start (1- (point))))) (unless (member entry opts) (setq opts (append opts (list entry))))) (setq start (point))) ;; Get rid of comments. ((string= match "%") (delete-region (1- (point)) (line-beginning-position 2))) ;; Get rid of newlines. ((or (string= match "\n") (string= match "\r")) (delete-char -1))))) opts)) (defvar LaTeX-provided-class-options nil "Alist of options provided to LaTeX classes. For each element, the CAR is the name of the class, the CDR is the list of options provided to it. E.g., its value will be \(\(\"book\" \"a4paper\" \"11pt\" \"openany\" \"fleqn\"\) ...\) See also `LaTeX-provided-package-options'.") (make-variable-buffer-local 'LaTeX-provided-class-options) (defun LaTeX-provided-class-options-member (class option) "Return non-nil if OPTION has been given to CLASS at load time. The value is actually the tail of the list of options given to CLASS." (member option (cdr (assoc class LaTeX-provided-class-options)))) (defun LaTeX-match-class-option (regexp) "Check if a documentclass option matching REGEXP is active." (TeX-member regexp (apply #'append (mapcar #'cdr LaTeX-provided-class-options)) 'string-match)) (defvar LaTeX-provided-package-options nil "Alist of options provided to LaTeX packages. For each element, the CAR is the name of the package, the CDR is the list of options provided to it. E.g., its value will be \(\(\"babel\" \"german\"\) \(\"geometry\" \"a4paper\" \"top=2cm\" \"bottom=2cm\" \"left=2.5cm\" \"right=2.5cm\"\) ...\) See also `LaTeX-provided-class-options'.") (make-variable-buffer-local 'LaTeX-provided-package-options) (defun LaTeX-provided-package-options-member (package option) "Return non-nil if OPTION has been given to PACKAGE at load time. The value is actually the tail of the list of options given to PACKAGE." (member option (cdr (assoc package LaTeX-provided-package-options)))) (defun LaTeX-auto-cleanup () "Cleanup after LaTeX parsing." ;; Cleanup BibTeX/Biber files (setq LaTeX-auto-bibliography (apply 'append (mapcar (lambda (arg) (TeX-split-string "," arg)) LaTeX-auto-bibliography))) ;; Reset class and packages options for the current buffer (setq LaTeX-provided-class-options nil) (setq LaTeX-provided-package-options nil) ;; Cleanup document classes and packages (unless (null LaTeX-auto-style) (while LaTeX-auto-style (let* ((entry (car LaTeX-auto-style)) (options (nth 0 entry)) (style (nth 1 entry)) (class (nth 2 entry))) ;; Next document style. (setq LaTeX-auto-style (cdr LaTeX-auto-style)) ;; Get the options. (setq options (LaTeX-listify-package-options options)) ;; Treat documentclass/documentstyle specially. (if (or (string-equal "package" class) (string-equal "Package" class)) (dolist (elt (TeX-split-string "\\([ \t\r\n]\\|%[^\n\r]*[\n\r]\\|,\\)+" style)) ;; Append style to the style list. (add-to-list 'TeX-auto-file elt t) ;; Append to `LaTeX-provided-package-options' the name of the ;; package and the options provided to it at load time. (unless (equal options '("")) (TeX-add-to-alist 'LaTeX-provided-package-options (list (cons elt options))))) ;; And a special "art10" style file combining style and size. (add-to-list 'TeX-auto-file style t) (add-to-list 'TeX-auto-file (concat (cond ((string-equal "article" style) "art") ((string-equal "book" style) "bk") ((string-equal "report" style) "rep") ((string-equal "jarticle" style) "jart") ((string-equal "jbook" style) "jbk") ((string-equal "jreport" style) "jrep") ((string-equal "j-article" style) "j-art") ((string-equal "j-book" style) "j-bk") ((string-equal "j-report" style ) "j-rep") (t style)) (cond ((member "11pt" options) "11") ((member "12pt" options) "12") (t "10"))) t) (unless (equal options '("")) (TeX-add-to-alist 'LaTeX-provided-class-options (list (cons style options))))) ;; The third argument if "class" indicates LaTeX2e features. (cond ((or (string-equal class "class") (string-equal class "Class")) (add-to-list 'TeX-auto-file "latex2e")) ((string-equal class "style") (add-to-list 'TeX-auto-file "latex2")))))) ;; Cleanup optional arguments (mapc (lambda (entry) (add-to-list 'TeX-auto-symbol (list (nth 0 entry) (string-to-number (nth 1 entry))))) LaTeX-auto-arguments) ;; Cleanup default optional arguments (mapc (lambda (entry) (add-to-list 'TeX-auto-symbol (list (nth 0 entry) (vector "argument") (1- (string-to-number (nth 1 entry)))))) LaTeX-auto-optional) ;; Cleanup environments arguments (mapc (lambda (entry) (add-to-list 'LaTeX-auto-environment (list (nth 0 entry) (string-to-number (nth 1 entry))))) LaTeX-auto-env-args) ;; Ditto for environments with an optional arg (mapc (lambda (entry) (add-to-list 'LaTeX-auto-environment (list (nth 0 entry) 'LaTeX-env-args (vector "argument") (1- (string-to-number (nth 1 entry)))))) LaTeX-auto-env-args-with-opt) ;; Cleanup use of def to add environments ;; NOTE: This uses an O(N^2) algorithm, while an O(N log N) ;; algorithm is possible. (mapc (lambda (symbol) (if (not (TeX-member symbol TeX-auto-symbol 'equal)) ;; No matching symbol, insert in list (add-to-list 'TeX-auto-symbol (concat "end" symbol)) ;; Matching symbol found, remove from list (if (equal (car TeX-auto-symbol) symbol) ;; Is it the first symbol? (setq TeX-auto-symbol (cdr TeX-auto-symbol)) ;; Nope! Travel the list (let ((list TeX-auto-symbol)) (while (consp (cdr list)) ;; Until we find it. (if (equal (car (cdr list)) symbol) ;; Then remove it. (setcdr list (cdr (cdr list)))) (setq list (cdr list))))) ;; and add the symbol as an environment. (add-to-list 'LaTeX-auto-environment symbol))) LaTeX-auto-end-symbol)) (add-hook 'TeX-auto-cleanup-hook 'LaTeX-auto-cleanup) (defadvice LaTeX-add-bibliographies (after run-bib-style-hooks (&rest bibliographies) activate) "Add BIBLIOGRAPHIES to the list of known bibliographies and style files." (apply 'TeX-run-style-hooks bibliographies)) ;;; Biber support (defvar LaTeX-using-Biber nil "Used to track whether Biber is in use.") (make-variable-buffer-local 'LaTeX-using-Biber) ;;; BibTeX ;;;###autoload (defun BibTeX-auto-store () "This function should be called from `bibtex-mode-hook'. It will setup BibTeX to store keys in an auto file." ;; We want this to be early in the list, so we do not ;; add it before we enter BibTeX mode the first time. (if (boundp 'local-write-file-hooks) (add-hook 'local-write-file-hooks 'TeX-safe-auto-write) (add-hook 'write-file-hooks 'TeX-safe-auto-write)) (TeX-bibtex-set-BibTeX-dialect) (set (make-local-variable 'TeX-auto-update) 'BibTeX) (set (make-local-variable 'TeX-auto-untabify) nil) (set (make-local-variable 'TeX-auto-parse-length) 999999) (set (make-local-variable 'TeX-auto-regexp-list) BibTeX-auto-regexp-list) (set (make-local-variable 'TeX-master) t)) (defvar BibTeX-auto-regexp-list '(("@[Ss][Tt][Rr][Ii][Nn][Gg]" 1 ignore) ("@[a-zA-Z]+[{(][ \t]*\\([^, \n\r\t%\"#'()={}]*\\)" 1 LaTeX-auto-bibitem)) "List of regexp-list expressions matching BibTeX items.") ;;; Macro Argument Hooks (defun TeX-arg-conditional (optional expr then else) "Implement if EXPR THEN ELSE. If OPTIONAL is non-nil, insert the resulting value as an optional argument, otherwise as a mandatory one. If EXPR evaluate to true, parse THEN as an argument list, else parse ELSE as an argument list." (TeX-parse-arguments (if (eval expr) then else))) (defun TeX-arg-eval (optional &rest args) "Evaluate ARGS and insert value in buffer. If OPTIONAL is non-nil, insert the resulting value as an optional argument, otherwise as a mandatory one." (TeX-argument-insert (eval args) optional)) (defvar TeX-read-label-prefix nil "Initial input for the label in `TeX-read-label.'") (defun TeX-read-label (optional &optional prompt definition) "Prompt for a label completing with known labels and return it. This function always returns a string depending on user input: the returned value can be an empty string \"\", the value of `TeX-read-label-prefix' if present (e.g. \"fig:\") or a complete label input (e.g. \"fig:foo\"). If OPTIONAL is non-nil, indicate optional as part of prompt in minibuffer. Use PROMPT as the prompt string. If DEFINITION is non-nil, add the chosen label to the list of defined labels. `TeX-read-label-prefix' is used as initial input for the label. Also check if label is already defined and ask user for confirmation before proceeding." (let (label valid) (while (not valid) (setq label (completing-read (TeX-argument-prompt optional prompt "Key") (LaTeX-label-list) nil nil TeX-read-label-prefix)) ;; If we're defining a label, check if it's already defined and ;; ask user for confirmation, otherwise ask again (cond ((and definition (assoc label (LaTeX-label-list))) (ding) (when (y-or-n-p (format-message "Label `%s' exists. Use anyway? " label)) (setq valid t))) (t (setq valid t)))) ;; Only add a newly defined label to list of known one if it is ;; not empty and not equal to `TeX-read-label-prefix', if given (when (and definition (not (string-equal "" label)) (if TeX-read-label-prefix (not (string-equal TeX-read-label-prefix label)) t)) (LaTeX-add-labels label)) ;; Return label, can be empty string "", TeX-read-label-prefix ;; only "fig:" or the real thing like "fig:foo" label)) (defun TeX-arg-label (optional &optional prompt definition) "Prompt for a label completing with known labels. If OPTIONAL is non-nil, insert the resulting value as an optional argument, otherwise as a mandatory one. Use PROMPT as the prompt string. If DEFINITION is non-nil, add the chosen label to the list of defined labels. `TeX-read-label-prefix' is used as initial input for the label." (TeX-argument-insert (TeX-read-label optional prompt definition) optional optional)) (defvar reftex-ref-macro-prompt) (defun TeX-arg-ref (optional &optional prompt definition) "Let-bind `reftex-ref-macro-prompt' to nil and pass arguments to `TeX-arg-label'. See the documentation of `TeX-arg-label' for details on the arguments: OPTIONAL, PROMPT, and DEFINITION." (let ((reftex-ref-macro-prompt nil)) (TeX-arg-label optional prompt definition))) (defun TeX-arg-index-tag (optional &optional prompt &rest _args) "Prompt for an index tag. This is the name of an index, not the entry. If OPTIONAL is non-nil, insert the resulting value as an optional argument, otherwise as a mandatory one. Use PROMPT as the prompt string. ARGS is unused." (TeX-argument-insert (TeX-read-string (TeX-argument-prompt optional prompt "Index tag")) optional)) (defun TeX-arg-index (optional &optional prompt &rest args) "Prompt for an index entry completing with known entries. If OPTIONAL is non-nil, insert the resulting value as an optional argument, otherwise as a mandatory one. Use PROMPT as the prompt string. ARGS is unused." (let ((entry (completing-read (TeX-argument-prompt optional prompt "Key") (LaTeX-index-entry-list)))) (if (and (not (string-equal "" entry)) (not (member (list entry) (LaTeX-index-entry-list)))) (LaTeX-add-index-entries entry)) (TeX-argument-insert entry optional optional))) (defalias 'TeX-arg-define-index 'TeX-arg-index) (defun TeX-arg-macro (optional &optional prompt definition) "Prompt for a TeX macro with completion. If OPTIONAL is non-nil, insert the resulting value as an optional argument, otherwise as a mandatory one. Use PROMPT as the prompt string. If DEFINITION is non-nil, add the chosen macro to the list of defined macros." (let ((macro (completing-read (TeX-argument-prompt optional prompt (concat "Macro: " TeX-esc) t) (TeX-symbol-list)))) (if (and definition (not (string-equal "" macro))) (TeX-add-symbols macro)) (TeX-argument-insert macro optional TeX-esc))) (defun TeX-arg-environment (optional &optional prompt definition) "Prompt for a LaTeX environment with completion. If OPTIONAL is non-nil, insert the resulting value as an optional argument, otherwise as a mandatory one. Use PROMPT as the prompt string. If DEFINITION is non-nil, add the chosen environment to the list of defined environments." (let ((environment (completing-read (TeX-argument-prompt optional prompt "Environment") (LaTeX-environment-list)))) (if (and definition (not (string-equal "" environment))) (LaTeX-add-environments environment)) (TeX-argument-insert environment optional))) ;; Why is DEFINITION unused? (defun TeX-arg-cite (optional &optional prompt definition) "Prompt for a BibTeX citation with completion. If OPTIONAL is non-nil, insert the resulting value as an optional argument, otherwise as a mandatory one. Use PROMPT as the prompt string. DEFINITION is unused." (let ((items (multi-prompt "," t (TeX-argument-prompt optional prompt "Key") (LaTeX-bibitem-list)))) (apply 'LaTeX-add-bibitems items) (TeX-argument-insert (mapconcat 'identity items ",") optional optional))) (defun TeX-arg-counter (optional &optional prompt definition) "Prompt for a LaTeX counter. If OPTIONAL is non-nil, insert the resulting value as an optional argument, otherwise as a mandatory one. Use PROMPT as the prompt string. If DEFINITION is non-nil, add the chosen counter to the list of defined counters." (let ((counter (completing-read (TeX-argument-prompt optional prompt "Counter") (LaTeX-counter-list)))) (if (and definition (not (string-equal "" counter))) (LaTeX-add-counters counter)) (TeX-argument-insert counter optional))) (defun TeX-arg-savebox (optional &optional prompt definition) "Prompt for a LaTeX savebox. If OPTIONAL is non-nil, insert the resulting value as an optional argument, otherwise as a mandatory one. Use PROMPT as the prompt string. If definition is non-nil, the savebox is added to the list of defined saveboxes." (let ((savebox (completing-read (TeX-argument-prompt optional prompt (concat "Savebox: " TeX-esc) t) (LaTeX-savebox-list)))) (if (and definition (not (zerop (length savebox)))) (LaTeX-add-saveboxes savebox)) (TeX-argument-insert savebox optional TeX-esc))) (defun TeX-arg-length (optional &optional prompt initial-input definition) "Prompt for a LaTeX length. If OPTIONAL is non-nil, insert the resulting value as an optional argument, otherwise as a mandatory one. Use PROMPT as the prompt string. If INITIAL-INPUT is non-nil, insert it in the minibuffer initially, with point positioned at the end. If DEFINITION is non-nil, the length is added to the list of defined length." (let ((length (completing-read (TeX-argument-prompt optional prompt "Length") ;; A valid length can be a macro or a length of ;; the form . Input starting ;; with a `\' can be completed with length ;; macros. (mapcar (lambda(elt) (concat TeX-esc (car elt))) (LaTeX-length-list)) ;; Some macros takes as argument only a length ;; macro (e.g., `\setlength' in its first ;; argument, and `\newlength'), in this case is ;; convenient to set `\\' as initial input. nil nil initial-input))) (if (and definition (not (zerop (length length)))) ;; Strip leading TeX-esc from macro name (LaTeX-add-lengths (substring length 1))) (TeX-argument-insert length optional))) (defun TeX-arg-file (optional &optional prompt) "Prompt for a filename in the current directory. If OPTIONAL is non-nil, insert the resulting value as an optional argument, otherwise as a mandatory one. Use PROMPT as the prompt string." (TeX-argument-insert (read-file-name (TeX-argument-prompt optional prompt "File") "" "" nil) optional)) (defun TeX-arg-file-name (optional &optional prompt) "Prompt for a file name. Initial input is the name of the file being visited in the current buffer, with extension. If OPTIONAL is non-nil, insert it as an optional argument. Use PROMPT as the prompt string." (TeX-argument-insert (TeX-read-string (TeX-argument-prompt optional prompt "Name") (file-name-nondirectory buffer-file-name)) optional)) (defun TeX-arg-file-name-sans-extension (optional &optional prompt) "Prompt for a file name. Initial input is the name of the file being visited in the current buffer, without extension. If OPTIONAL is non-nil, insert it as an optional argument. Use PROMPT as the prompt string." (TeX-argument-insert (TeX-read-string (TeX-argument-prompt optional prompt "Name") (file-name-sans-extension (file-name-nondirectory buffer-file-name))) optional)) (defun TeX-arg-define-label (optional &optional prompt) "Prompt for a label completing with known labels. If OPTIONAL is non-nil, insert the resulting value as an optional argument, otherwise as a mandatory one. Use PROMPT as the prompt string. `TeX-read-label-prefix' is used as initial input for the label." (TeX-arg-label optional prompt t)) (defun TeX-arg-default-argument-value (optional &optional prompt) "Prompt for the default value for the first argument of a LaTeX macro. If OPTIONAL is non-nil, insert the resulting value as an optional argument, otherwise as a mandatory one. Use PROMPT as the prompt string." (TeX-argument-insert (TeX-read-string (TeX-argument-prompt optional prompt "Default value for first argument")) optional)) (defun TeX-arg-define-macro-arguments (optional &optional prompt) "Prompt for the number of arguments for a LaTeX macro. If this is non-zero, also prompt for the default value for the first argument. If OPTIONAL is non-nil, insert the resulting value as an optional argument, otherwise as a mandatory one. Use PROMPT as the prompt string." (let ((arg-count (TeX-read-string (TeX-argument-prompt optional prompt "Number of arguments" nil)))) (unless (or (string= arg-count "0") (string= arg-count "")) (TeX-argument-insert arg-count optional) (unless (string-equal LaTeX-version "2") (TeX-arg-default-argument-value optional))))) (defun TeX-arg-define-macro (optional &optional prompt) "Prompt for a TeX macro with completion. If OPTIONAL is non-nil, insert the resulting value as an optional argument, otherwise as a mandatory one. Use PROMPT as the prompt string." (TeX-arg-macro optional prompt t)) (defun TeX-arg-define-environment (optional &optional prompt) "Prompt for a LaTeX environment with completion. If OPTIONAL is non-nil, insert the resulting value as an optional argument, otherwise as a mandatory one. Use PROMPT as the prompt string." (TeX-arg-environment optional prompt t)) (defun TeX-arg-define-cite (optional &optional prompt) "Prompt for a BibTeX citation. If OPTIONAL is non-nil, insert the resulting value as an optional argument, otherwise as a mandatory one. Use PROMPT as the prompt string." (TeX-arg-cite optional prompt t)) (defun TeX-arg-define-counter (optional &optional prompt) "Prompt for a LaTeX counter. If OPTIONAL is non-nil, insert the resulting value as an optional argument, otherwise as a mandatory one. Use PROMPT as the prompt string." (TeX-arg-counter optional prompt t)) (defun TeX-arg-define-savebox (optional &optional prompt) "Prompt for a LaTeX savebox. If OPTIONAL is non-nil, insert the resulting value as an optional argument, otherwise as a mandatory one. Use PROMPT as the prompt string." (TeX-arg-savebox optional prompt t)) (defun TeX-arg-define-length (optional &optional prompt) "Prompt for a LaTeX length. If OPTIONAL is non-nil, insert the resulting value as an optional argument, otherwise as a mandatory one. Use PROMPT as the prompt string." (TeX-arg-length optional prompt "\\" t)) (defcustom LaTeX-style-list '(("amsart") ("amsbook") ("article") ("beamer") ("book") ("dinbrief") ("foils") ("letter") ("memoir") ("minimal") ("prosper") ("report") ("scrartcl") ("scrbook") ("scrlttr2") ("scrreprt") ("slides")) "List of document classes offered when inserting a document environment. If `TeX-arg-input-file-search' is set to `t', you will get completion with all LaTeX classes available in your distribution and this variable will be ignored." :group 'LaTeX-environment :type '(repeat (group (string :format "%v")))) (defvar LaTeX-global-class-files nil "List of the LaTeX class files. Initialized once at the first time you prompt for a LaTeX class. May be reset with `\\[universal-argument] \\[TeX-normal-mode]'.") (defvar TeX-after-document-hook nil "List of functions to be run at the end of `TeX-arg-document'. To insert a hook here, you must insert it in the appropiate style file.") (defun TeX-arg-document (optional &optional _ignore) "Insert arguments to documentclass. OPTIONAL and IGNORE are ignored." (let* ((TeX-file-extensions '("cls")) (crm-separator ",") style var options) (unless LaTeX-global-class-files (setq LaTeX-global-class-files (if (if (eq TeX-arg-input-file-search 'ask) (not (y-or-n-p "Find class yourself? ")) TeX-arg-input-file-search) (prog2 (message "Searching for LaTeX classes...") (TeX-search-files-by-type 'texinputs 'global t t) (message "Searching for LaTeX classes...done")) LaTeX-style-list))) (setq style (completing-read (concat "Document class (default " LaTeX-default-style "): ") LaTeX-global-class-files nil nil nil nil LaTeX-default-style)) ;; Clean up hook before use. (setq TeX-after-document-hook nil) (TeX-run-style-hooks style) (setq var (intern (format "LaTeX-%s-class-options" style))) (if (or (and (boundp var) (listp (symbol-value var))) (fboundp var)) (if (functionp var) (setq options (funcall var)) (when (symbol-value var) (setq options (mapconcat 'identity (TeX-completing-read-multiple "Options: " (mapcar 'list (symbol-value var)) nil nil (if (stringp LaTeX-default-options) LaTeX-default-options (mapconcat 'identity LaTeX-default-options ","))) ",")))) (setq options (TeX-read-string "Options: "))) (unless (zerop (length options)) (insert LaTeX-optop options LaTeX-optcl) (let ((opts (LaTeX-listify-package-options options))) (TeX-add-to-alist 'LaTeX-provided-class-options (list (cons style opts))))) (insert TeX-grop style TeX-grcl)) ;; remove old information (TeX-remove-style) ;; defined in individual style hooks (TeX-update-style) (run-hooks 'TeX-after-document-hook)) (defvar LaTeX-after-usepackage-hook nil "List of functions to be run at the end of `LaTeX-arg-usepackage'. To insert a hook here, you must insert it in the appropiate style file.") (defun LaTeX-arg-usepackage-read-packages-with-options () "Read the packages and the options for the usepackage macro. If at least one package is provided, this function returns a cons cell, whose CAR is the list of packages and the CDR is the string of the options, nil otherwise." (let* ((TeX-file-extensions '("sty")) (crm-separator ",") packages var options) (unless TeX-global-input-files (if (if (eq TeX-arg-input-file-search 'ask) (not (y-or-n-p "Find packages yourself? ")) TeX-arg-input-file-search) (progn (message "Searching for LaTeX packages...") (setq TeX-global-input-files (mapcar 'list (TeX-search-files-by-type 'texinputs 'global t t))) (message "Searching for LaTeX packages...done")))) (setq packages (TeX-completing-read-multiple "Packages: " TeX-global-input-files)) ;; Clean up hook before use in `LaTeX-arg-usepackage-insert'. (setq LaTeX-after-usepackage-hook nil) (mapc 'TeX-run-style-hooks packages) ;; Prompt for options only if at least one package has been supplied, return ;; nil otherwise. (when packages (setq var (if (= 1 (length packages)) (intern (format "LaTeX-%s-package-options" (car packages))) ;; Something like `\usepackage[options]{pkg1,pkg2,pkg3,...}' is ;; allowed (provided that pkg1, pkg2, pkg3, ... accept same ;; options). When there is more than one package, set `var' to ;; a dummy value so next `if' enters else form. t)) (if (or (and (boundp var) (listp (symbol-value var))) (fboundp var)) (if (functionp var) (setq options (funcall var)) (when (symbol-value var) (setq options (mapconcat 'identity (TeX-completing-read-multiple "Options: " (mapcar 'list (symbol-value var))) ",")))) (setq options (TeX-read-string "Options: "))) (cons packages options)))) (defun LaTeX-arg-usepackage-insert (packages options) "Actually insert arguments to usepackage." (unless (zerop (length options)) (let ((opts (LaTeX-listify-package-options options))) (mapc (lambda (elt) (TeX-add-to-alist 'LaTeX-provided-package-options (list (cons elt opts)))) packages)) (insert LaTeX-optop options LaTeX-optcl)) (insert TeX-grop (mapconcat 'identity packages ",") TeX-grcl) (run-hooks 'LaTeX-after-usepackage-hook)) (defun LaTeX-arg-usepackage (_optional) "Insert arguments to usepackage. OPTIONAL is ignored." (let* ((packages-options (LaTeX-arg-usepackage-read-packages-with-options)) (packages (car packages-options)) (options (cdr packages-options))) (LaTeX-arg-usepackage-insert packages options))) (defun LaTeX-insert-usepackages () "Prompt for the insertion of usepackage macros until empty input is reached. Return t if at least one \\usepackage has been inserted, nil otherwise." (let (packages-options packages options (inserted nil)) (while (setq packages-options (LaTeX-arg-usepackage-read-packages-with-options)) (setq packages (car packages-options)) (setq options (cdr packages-options)) (insert TeX-esc "usepackage") (LaTeX-arg-usepackage-insert packages options) (LaTeX-newline) (setq inserted t)) inserted)) (defcustom LaTeX-search-files-type-alist '((texinputs "${TEXINPUTS.latex}" ("tex/generic/" "tex/latex/") TeX-file-extensions) (docs "${TEXDOCS}" ("doc/") TeX-doc-extensions) (graphics "${TEXINPUTS}" ("tex/") LaTeX-includegraphics-extensions) (bibinputs "${BIBINPUTS}" ("bibtex/bib/") BibTeX-file-extensions) (bstinputs "${BSTINPUTS}" ("bibtex/bst/") BibTeX-style-extensions) (bbxinputs "" ("tex/latex/") BibLaTeX-style-extensions) (biberinputs "${BIBINPUTS}" ("bibtex/bib/") TeX-Biber-file-extensions)) "Alist of filetypes with locations and file extensions. Each element of the alist consists of a symbol expressing the filetype, a variable which can be expanded on kpathsea-based systems into the directories where files of the given type reside, a list of absolute directories, relative directories below the root of a TDS-compliant TeX tree or a list of variables with either type of directories as an alternative for non-kpathsea-based systems and a list of extensions to be matched upon a file search. Note that the directories have to end with a directory separator. Reset the mode for a change of this variable to take effect." :group 'TeX-file :type '(alist :key-type symbol :value-type (group (string :tag "Kpathsea variable") (choice :tag "Directories" (repeat :tag "TDS subdirectories" string) (repeat :tag "Absolute directories" directory) (repeat :tag "Variables" variable)) (choice :tag "Extensions" variable (repeat string))))) (defcustom TeX-arg-input-file-search t "If `TeX-arg-input-file' should search for files. If the value is t, files in TeX's search path are searched for and provided for completion. The file name is then inserted without directory and extension. If the value is nil, the file name can be specified manually and is inserted with a path relative to the directory of the current buffer's file and with extension. If the value is `ask', you are asked for the method to use every time `TeX-arg-input-file' is called." :group 'LaTeX-macro :type '(choice (const t) (const nil) (const ask))) (defvar TeX-global-input-files nil "List of the non-local TeX input files. Initialized once at the first time you prompt for an input file. May be reset with `\\[universal-argument] \\[TeX-normal-mode]'.") (defun TeX-arg-input-file (optional &optional prompt local) "Prompt for a tex or sty file. If OPTIONAL is non-nil, insert the resulting value as an optional argument, otherwise as a mandatory one. PROMPT is the prompt, LOCAL is a flag. If the flag is set, only complete with local files." (let ((search (if (eq TeX-arg-input-file-search 'ask) (not (y-or-n-p "Find file yourself? ")) TeX-arg-input-file-search)) file style) (if search (progn (unless (or TeX-global-input-files local) (message "Searching for files...") (setq TeX-global-input-files (mapcar 'list (TeX-search-files-by-type 'texinputs 'global t t))) (message "Searching for files...done")) (setq file (completing-read (TeX-argument-prompt optional prompt "File") (TeX-delete-dups-by-car (append (mapcar 'list (TeX-search-files-by-type 'texinputs 'local t t)) (unless local TeX-global-input-files)))) style file)) (setq file (read-file-name (TeX-argument-prompt optional prompt "File") nil "")) (unless (string-equal file "") (setq file (file-relative-name file))) (setq style (file-name-sans-extension (file-name-nondirectory file)))) (unless (string-equal "" style) (TeX-run-style-hooks style)) (TeX-argument-insert file optional))) (defvar BibTeX-global-style-files nil "Association list of BibTeX style files. Initialized once at the first time you prompt for an input file. May be reset with `\\[universal-argument] \\[TeX-normal-mode]'.") (defvar BibLaTeX-global-style-files nil "Association list of BibLaTeX style files. Initialized once at the first time you prompt for a BibLaTeX style. May be reset with `\\[universal-argument] \\[TeX-normal-mode]'.") (defun TeX-arg-bibstyle (optional &optional prompt) "Prompt for a BibTeX style file. If OPTIONAL is non-nil, insert the resulting value as an optional argument, otherwise as a mandatory one. Use PROMPT as the prompt string." (message "Searching for BibTeX styles...") (or BibTeX-global-style-files (setq BibTeX-global-style-files (mapcar 'list (TeX-search-files-by-type 'bstinputs 'global t t)))) (message "Searching for BibTeX styles...done") (TeX-argument-insert (completing-read (TeX-argument-prompt optional prompt "BibTeX style") (append (mapcar 'list (TeX-search-files-by-type 'bstinputs 'local t t)) BibTeX-global-style-files)) optional)) (defvar BibTeX-global-files nil "Association list of BibTeX files. Initialized once at the first time you prompt for a BibTeX file. May be reset with `\\[universal-argument] \\[TeX-normal-mode]'.") (defvar TeX-Biber-global-files nil "Association list of Biber files. Initialized once at the first time you prompt for an Biber file. May be reset with `\\[universal-argument] \\[TeX-normal-mode]'.") (defun TeX-arg-bibliography (optional &optional prompt) "Prompt for a BibTeX database file. If OPTIONAL is non-nil, insert the resulting value as an optional argument, otherwise as a mandatory one. Use PROMPT as the prompt string." (message "Searching for BibTeX files...") (or BibTeX-global-files (setq BibTeX-global-files (mapcar 'list (TeX-search-files-by-type 'bibinputs 'global t t)))) (message "Searching for BibTeX files...done") (let ((styles (multi-prompt "," t (TeX-argument-prompt optional prompt "BibTeX files") (append (mapcar 'list (TeX-search-files-by-type 'bibinputs 'local t t)) BibTeX-global-files)))) (apply 'LaTeX-add-bibliographies styles) ;; Run style files associated to the bibliography database files in order to ;; immediately fill `LaTeX-bibitem-list'. (mapc 'TeX-run-style-hooks styles) (TeX-argument-insert (mapconcat 'identity styles ",") optional))) (defun TeX-arg-corner (optional &optional prompt) "Prompt for a LaTeX side or corner position with completion. If OPTIONAL is non-nil, insert the resulting value as an optional argument, otherwise as a mandatory one. Use PROMPT as the prompt string." (TeX-argument-insert (completing-read (TeX-argument-prompt optional prompt "Position") '(("") ("l") ("r") ("t") ("b") ("tl") ("tr") ("bl") ("br")) nil t) optional)) (defun TeX-arg-lr (optional &optional prompt) "Prompt for a LaTeX side with completion. If OPTIONAL is non-nil, insert the resulting value as an optional argument, otherwise as a mandatory one. Use PROMPT as the prompt string." (TeX-argument-insert (completing-read (TeX-argument-prompt optional prompt "Position") '(("") ("l") ("r")) nil t) optional)) (defun TeX-arg-tb (optional &optional prompt) "Prompt for a LaTeX side with completion. If OPTIONAL is non-nil, insert the resulting value as an optional argument, otherwise as a mandatory one. Use PROMPT as the prompt string." (TeX-argument-insert (completing-read (TeX-argument-prompt optional prompt "Position") '(("") ("t") ("b")) nil t) optional)) (defcustom TeX-date-format "%Y/%m/%d" "The default date format prompted by `TeX-arg-date'." :group 'LaTeX-macro :type 'string) (defun TeX-arg-date (optional &optional prompt) "Prompt for a date, defaulting to the current date. If OPTIONAL is non-nil, insert the resulting value as an optional argument, otherwise as a mandatory one. Use PROMPT as the prompt string." (let ((default (format-time-string TeX-date-format (current-time)))) (TeX-argument-insert (TeX-read-string (TeX-argument-prompt optional prompt (format "Date (default %s)" default)) nil nil default) optional))) (defun TeX-arg-version (optional &optional prompt) "Prompt for the version of a file. Use as initial input the current date. If OPTIONAL is non-nil, insert the resulting value as an optional argument, otherwise as a mandatory one. Use PROMPT as the prompt string." (TeX-argument-insert (TeX-read-string (TeX-argument-prompt optional prompt "Version") (format-time-string "%Y/%m/%d" (current-time))) optional)) (defun TeX-arg-pagestyle (optional &optional prompt definition) "Prompt for a LaTeX pagestyle with completion. If OPTIONAL is non-nil, insert the resulting value as an optional argument, otherwise as a mandatory one. Use PROMPT as the prompt string. If DEFINITION is non-nil, add the chosen pagestyle to the list of defined pagestyles." (let ((pagestyle (completing-read (TeX-argument-prompt optional prompt "Pagestyle") (LaTeX-pagestyle-list)))) (if (and definition (not (string-equal "" pagestyle))) (LaTeX-add-pagestyles pagestyle)) (TeX-argument-insert pagestyle optional))) (defcustom LaTeX-default-verb-delimiter ?| "Default delimiter for `\\verb' macros." :group 'LaTeX-macro :type 'character) (defun TeX-arg-verb (optional &optional _ignore) "Prompt for delimiter and text. If OPTIONAL is non-nil, insert the resulting value as an optional argument, otherwise as a mandatory one. IGNORE is ignored." (let ((del (read-quoted-char (concat "Delimiter (default " (char-to-string LaTeX-default-verb-delimiter) "): ")))) (when (<= del ?\ ) (setq del LaTeX-default-verb-delimiter)) (if (TeX-active-mark) (progn (insert del) (goto-char (mark)) (insert del)) (insert del (read-from-minibuffer "Text: ") del)) (setq LaTeX-default-verb-delimiter del))) (defun TeX-arg-pair (optional first second) "Insert a pair of number, prompted by FIRST and SECOND. The numbers are surounded by parenthesizes and separated with a comma. If OPTIONAL is non-nil, insert the resulting value as an optional argument, otherwise as a mandatory one." (insert "(" (TeX-read-string (concat first ": ")) "," (TeX-read-string (concat second ": ")) ")")) (defun TeX-arg-size (optional) "Insert width and height as a pair. If OPTIONAL is non-nil, insert the resulting value as an optional argument, otherwise as a mandatory one." (TeX-arg-pair optional "Width" "Height")) (defun TeX-arg-coordinate (optional) "Insert x and y coordinate as a pair. If OPTIONAL is non-nil, insert the resulting value as an optional argument, otherwise as a mandatory one." (TeX-arg-pair optional "X position" "Y position")) (defconst TeX-braces-default-association '(("[" . "]") ("\\{" . "\\}") ("(" . ")") ("|" . "|") ("\\|" . "\\|") ("/" . "/") ("\\backslash" . "\\backslash") ("\\lfloor" . "\\rfloor") ("\\lceil" . "\\rceil") ("\\langle" . "\\rangle"))) (defcustom TeX-braces-user-association nil "A list of your personal association of brace symbols. These are used for \\left and \\right. The car of each entry is the brace used with \\left, the cdr is the brace used with \\right." :group 'LaTeX-macro :group 'LaTeX-math :type '(repeat (cons :format "%v" (string :tag "Left") (string :tag "Right")))) (defvar TeX-braces-association (append TeX-braces-user-association TeX-braces-default-association) "A list of association of brace symbols for \\left and \\right. The car of each entry is the brace used with \\left, the cdr is the brace used with \\right.") (defcustom LaTeX-electric-left-right-brace nil "If non-nil, insert right brace with suitable macro after typing left brace." :group 'LaTeX-macro :type 'boolean) (defvar TeX-left-right-braces '(("[") ("]") ("\\{") ("\\}") ("(") (")") ("|") ("\\|") ("/") ("\\backslash") ("\\lfloor") ("\\rfloor") ("\\lceil") ("\\rceil") ("\\langle") ("\\rangle") ("\\uparrow") ("\\Uparrow") ("\\downarrow") ("\\Downarrow") ("\\updownarrow") ("\\Updownarrow") (".")) "List of symbols which can follow the \\left or \\right command.") (defvar LaTeX-left-right-macros-association '(("left" . "right") ("bigl" . "bigr") ("Bigl" . "Bigr") ("biggl" . "biggr") ("Biggl" . "Biggr")) "Alist of macros for adjusting size of left and right braces. The car of each entry is for left brace and the cdr is for right brace.") (defun TeX-arg-insert-braces (optional &optional prompt) "Prompt for a brace for \\left and insert the corresponding \\right. If OPTIONAL is non-nil, insert the resulting value as an optional argument, otherwise as a mandatory one. Use PROMPT as the prompt string." (let (left-macro) (save-excursion ;; Obtain macro name such as "left", "bigl" etc. (setq left-macro (buffer-substring-no-properties (point) (progn (backward-word 1) (point)))) (backward-char) (LaTeX-newline) (indent-according-to-mode) ;; Delete possibly produced blank line. (beginning-of-line 0) (if (looking-at "^[ \t]*$") (progn (delete-horizontal-space) (delete-char 1)))) (let ((left-brace (completing-read (TeX-argument-prompt optional prompt "Which brace") TeX-left-right-braces))) (insert left-brace) (LaTeX-newline) (save-excursion (if (TeX-active-mark) (goto-char (mark))) (LaTeX-newline) (LaTeX-insert-corresponding-right-macro-and-brace left-macro left-brace optional prompt) (indent-according-to-mode)) (indent-according-to-mode)))) (defun TeX-arg-insert-right-brace-maybe (optional) "Insert the suitable right brace macro such as \\rangle. Insertion is done when `TeX-arg-right-insert-p' is non-nil. If the left brace macro is preceeded by \\left, \\bigl etc., supply the corresponding macro such as \\right before the right brace macro. OPTIONAL is ignored." ;; Nothing is done when TeX-arg-right-insert-p is nil. (when TeX-arg-right-insert-p (let (left-brace left-macro) (save-excursion ;; Obtain left brace macro name such as "\langle". (setq left-brace (buffer-substring-no-properties (point) (progn (backward-word) (backward-char) (point))) ;; Obtain the name of preceeding left macro, if any, ;; such as "left", "bigl" etc. left-macro (LaTeX-find-preceeding-left-macro-name))) (save-excursion (if (TeX-active-mark) (goto-char (mark))) (LaTeX-insert-corresponding-right-macro-and-brace left-macro left-brace optional))))) (defvar TeX-arg-right-insert-p) (defun LaTeX-insert-left-brace (arg) "Insert typed left brace ARG times and possibly a correspondig right brace. Automatic right brace insertion is done only if no prefix ARG is given and `LaTeX-electric-left-right-brace' is non-nil. Normally bound to keys \(, { and [." (interactive "*P") (let ((auto-p (and LaTeX-electric-left-right-brace (not arg)))) (if (and auto-p (TeX-active-mark) (> (point) (mark))) (exchange-point-and-mark)) (self-insert-command (prefix-numeric-value arg)) (if auto-p (let ((lbrace (char-to-string last-command-event)) lmacro skip-p) (save-excursion (backward-char) ;; The brace "{" is exceptional in two aspects. ;; 1. "\{" should be considered as a single brace ;; like "(" and "[". ;; 2. "\left{" is nonsense while "\left\{" and ;; "\left(" are not. (if (string= lbrace TeX-grop) ;; If "{" follows "\", set lbrace to "\{". (if (TeX-escaped-p) (progn (backward-char) (setq lbrace (concat TeX-esc TeX-grop))) ;; Otherwise, don't search for left macros. (setq skip-p t))) (unless skip-p ;; Obtain the name of preceeding left macro, if any, ;; such as "left", "bigl" etc. (setq lmacro (LaTeX-find-preceeding-left-macro-name)))) (let ((TeX-arg-right-insert-p t) ;; "{" and "}" are paired temporally so that typing ;; a single "{" should insert a pair "{}". (TeX-braces-association (cons (cons TeX-grop TeX-grcl) TeX-braces-association))) (save-excursion (if (TeX-active-mark) (goto-char (mark))) (LaTeX-insert-corresponding-right-macro-and-brace lmacro lbrace))))))) (defun LaTeX-insert-corresponding-right-macro-and-brace (lmacro lbrace &optional optional prompt) "Insert right macro and brace correspoinding to LMACRO and LBRACE. Left-right association is determined through `LaTeX-left-right-macros-association' and `TeX-braces-association'. If brace association can't be determined or `TeX-arg-right-insert-p' is nil, consult user which brace should be used." ;; This function is called with LMACRO being one of the following ;; possibilities. ;; (1) nil, which means LBRACE is isolated. ;; (2) null string, which means LBRACE follows right after "\" to ;; form "\(" or "\[". ;; (3) a string in CARs of `LaTeX-left-right-macros-association'. (let ((rmacro (cdr (assoc lmacro LaTeX-left-right-macros-association))) (rbrace (cdr (assoc lbrace TeX-braces-association)))) ;; Since braces like "\(" and "\)" should be paired, RMACRO ;; should be considered as null string in the case (2). (if (string= lmacro "") (setq rmacro "")) ;; Insert right macros such as "\right", "\bigr" etc., if necessary. ;; Even single "\" will be inserted so that "\)" or "\]" is ;; inserted after "\(", "\[". (if rmacro (insert TeX-esc rmacro)) (cond ((and TeX-arg-right-insert-p rbrace) (insert rbrace)) (rmacro (insert (completing-read (TeX-argument-prompt optional prompt (format "Which brace (default %s)" (or rbrace "."))) TeX-left-right-braces nil nil nil nil (or rbrace "."))))))) (defun LaTeX-find-preceeding-left-macro-name () "Return the left macro name just before the point, if any. If the preceeding macro isn't left macros such as \\left, \\bigl etc., return nil. If the point is just after unescaped `TeX-esc', return the null string." ;; \left-!- => "left" ;; \-!- => "" ;; \infty-!- => nil ;; \&-!- => nil ;; \mathrm{abc}-!- => nil ;; {blah blah blah}-!- => nil ;; \\-!- => nil (let ((name (buffer-substring-no-properties (point) ;; This is only a helper function, so we do not ;; preserve point by save-excursion. (progn ;; Assume left macro names consist of only A-Z and a-z. (skip-chars-backward "A-Za-z") (point))))) (if (and (TeX-escaped-p) (or (string= name "") (assoc name LaTeX-left-right-macros-association))) name))) (defcustom LaTeX-default-author 'user-full-name "Initial input to `LaTeX-arg-author' prompt. If nil, do not prompt at all." :group 'LaTeX-macro :type '(choice (const :tag "User name in Emacs" user-full-name) (const :tag "Do not prompt" nil) string)) (defun LaTeX-arg-author (optional &optional prompt) "Prompt for author name. Insert the given value as a TeX macro argument. If OPTIONAL is non-nil, insert it as an optional argument. Use PROMPT as the prompt string. `LaTeX-default-author' is the initial input." (let ((author (if LaTeX-default-author (TeX-read-string (TeX-argument-prompt optional prompt "Author(s)") (if (symbolp LaTeX-default-author) (symbol-value LaTeX-default-author) LaTeX-default-author)) ""))) (TeX-argument-insert author optional nil))) (defun TeX-read-key-val (optional key-val-alist &optional prompt) "Prompt for keys and values in KEY-VAL-ALIST and return them. If OPTIONAL is non-nil, indicate in the prompt that we are reading an optional argument. KEY-VAL-ALIST is an alist. The car of each element should be a string representing a key and the optional cdr should be a list with strings to be used as values for the key. Use PROMPT as the prompt string." (multi-prompt-key-value (TeX-argument-prompt optional prompt "Options (k=v)") (if (symbolp key-val-alist) (eval key-val-alist) key-val-alist))) (defun TeX-arg-key-val (optional key-val-alist &optional prompt) "Prompt for keys and values in KEY-VAL-ALIST. Insert the given value as a TeX macro argument. If OPTIONAL is non-nil, insert it as an optional argument. KEY-VAL-ALIST is an alist. The car of each element should be a string representing a key and the optional cdr should be a list with strings to be used as values for the key. Use PROMPT as the prompt string." (let ((options (TeX-read-key-val optional key-val-alist prompt))) (TeX-argument-insert options optional))) ;;; Verbatim constructs (defcustom LaTeX-verbatim-macros-with-delims '("verb" "verb*") "Macros for inline verbatim with arguments in delimiters, like \\foo|...|. Programs should not use this variable directly but the function `LaTeX-verbatim-macros-with-delims' which returns a value including buffer-local keyword additions via `LaTeX-verbatim-macros-with-delims-local' as well." :group 'LaTeX-macro :type '(repeat (string))) (defvar LaTeX-verbatim-macros-with-delims-local nil "Buffer-local variable for inline verbatim with args in delimiters. Style files should add constructs to this variable and not to `LaTeX-verbatim-macros-with-delims'. Programs should not use this variable directly but the function `LaTeX-verbatim-macros-with-delims' which returns a value including values of the variable `LaTeX-verbatim-macros-with-delims' as well.") (make-variable-buffer-local 'LaTeX-verbatim-macros-with-delims-local) (put 'LaTeX-verbatim-macros-with-delims-local 'safe-local-variable #'TeX--list-of-string-p) (defcustom LaTeX-verbatim-macros-with-braces nil "Macros for inline verbatim with arguments in braces, like \\foo{...}. Programs should not use this variable directly but the function `LaTeX-verbatim-macros-with-braces' which returns a value including buffer-local keyword additions via `LaTeX-verbatim-macros-with-braces-local' as well." :group 'LaTeX-macro :type '(repeat (string))) (defvar LaTeX-verbatim-macros-with-braces-local nil "Buffer-local variable for inline verbatim with args in braces. Style files should add constructs to this variable and not to `LaTeX-verbatim-macros-with-braces'. Programs should not use this variable directly but the function `LaTeX-verbatim-macros-with-braces' which returns a value including values of the variable `LaTeX-verbatim-macros-with-braces' as well.") (make-variable-buffer-local 'LaTeX-verbatim-macros-with-braces-local) (put 'LaTeX-verbatim-macros-with-braces-local 'safe-local-variable #'TeX--list-of-string-p) (defcustom LaTeX-verbatim-environments '("verbatim" "verbatim*") "Verbatim environments. Programs should not use this variable directly but the function `LaTeX-verbatim-environments' which returns a value including buffer-local keyword additions via `LaTeX-verbatim-environments-local' as well." :group 'LaTeX-environment :type '(repeat (string))) (defvar LaTeX-verbatim-environments-local nil "Buffer-local variable for inline verbatim environments. Style files should add constructs to this variable and not to `LaTeX-verbatim-environments'. Programs should not use this variable directly but the function `LaTeX-verbatim-environments' which returns a value including values of the variable `LaTeX-verbatim-environments' as well.") (make-variable-buffer-local 'LaTeX-verbatim-environments-local) (put 'LaTeX-verbatim-environments-local 'safe-local-variable #'TeX--list-of-string-p) (defun LaTeX-verbatim-macros-with-delims () "Return list of verbatim macros with delimiters." (append LaTeX-verbatim-macros-with-delims LaTeX-verbatim-macros-with-delims-local)) (defun LaTeX-verbatim-macros-with-braces () "Return list of verbatim macros with braces." (append LaTeX-verbatim-macros-with-braces LaTeX-verbatim-macros-with-braces-local)) (defun LaTeX-verbatim-environments () "Return list of verbatim environments." (append LaTeX-verbatim-environments LaTeX-verbatim-environments-local)) (defun LaTeX-verbatim-macro-boundaries () "Return boundaries of verbatim macro. Boundaries are returned as a cons cell where the car is the macro start and the cdr the macro end. Only macros which enclose their arguments with special non-parenthetical delimiters, like \\verb+foo+, are recognized." (save-excursion (let ((orig (point)) (verbatim-regexp (regexp-opt (LaTeX-verbatim-macros-with-delims) t))) ;; Search backwards for the macro start, unless we are facing one (unless (looking-at (concat (regexp-quote TeX-esc) verbatim-regexp)) (catch 'found (while (progn (skip-chars-backward (concat "^\n" (regexp-quote TeX-esc)) (line-beginning-position)) (when (looking-at verbatim-regexp) (throw 'found nil)) (or (bobp) (forward-char -1)) (/= (point) (line-beginning-position)))))) ;; Search forward for the macro end, unless we failed to find a start (unless (bolp) (let* ((beg (1- (point))) (macro-end (match-end 0)) ;; XXX: Here we assume we are dealing with \verb which ;; expects the delimiter right behind the command. ;; However, \lstinline can also cope with whitespace as ;; well as an optional argument after the command. (delimiter (buffer-substring-no-properties macro-end (1+ macro-end)))) ;; Heuristic: If an opening brace is encountered, search for ;; both the opening and the closing brace as an end marker. ;; Like that the function should work for \verb|...| as well ;; as for \url{...}. (when (string= delimiter TeX-grop) (setq delimiter (concat delimiter TeX-grcl))) (goto-char (1+ macro-end)) (skip-chars-forward (concat "^" delimiter)) (when (<= orig (point)) (cons beg (1+ (point))))))))) (defun LaTeX-current-verbatim-macro () "Return name of verbatim macro containing point, nil if none is present." (let ((macro-boundaries (LaTeX-verbatim-macro-boundaries))) (when macro-boundaries (save-excursion (goto-char (car macro-boundaries)) (forward-char (length TeX-esc)) (buffer-substring-no-properties (point) (progn (skip-chars-forward "@A-Za-z") (point))))))) (defun LaTeX-verbatim-p (&optional pos) "Return non-nil if position POS is in a verbatim-like construct." (when pos (goto-char pos)) (save-match-data (or (when (fboundp 'font-latex-faces-present-p) (font-latex-faces-present-p 'font-latex-verbatim-face)) (member (LaTeX-current-verbatim-macro) (LaTeX-verbatim-macros-with-delims)) (member (TeX-current-macro) (LaTeX-verbatim-macros-with-braces)) (member (LaTeX-current-environment) (LaTeX-verbatim-environments))))) ;;; Formatting (defcustom LaTeX-syntactic-comments t "If non-nil comments will be handled according to LaTeX syntax. This variable influences, among others, the behavior of indentation and filling which will take LaTeX syntax into consideration just as is in the non-commented source code." :type 'boolean :group 'LaTeX) ;;; Indentation ;; We are distinguishing two different types of comments: ;; ;; 1) Comments starting in column one (line comments) ;; ;; 2) Comments starting after column one with only whitespace ;; preceding it. ;; ;; (There is actually a third type: Comments preceded not only by ;; whitespace but by some code as well; so-called code comments. But ;; they are not relevant for the following explanations.) ;; ;; Additionally we are distinguishing two different types of ;; indentation: ;; ;; a) Outer indentation: Indentation before the comment character(s). ;; ;; b) Inner indentation: Indentation after the comment character(s) ;; (taking into account possible comment padding). ;; ;; Comments can be filled syntax-aware or not. ;; ;; In `doctex-mode' line comments should always be indented ;; syntax-aware and the comment character has to be anchored at the ;; first column (unless the appear in a macrocode environment). Other ;; comments not in the documentation parts always start after the ;; first column and can be indented syntax-aware or not. If they are ;; indented syntax-aware both the indentation before and after the ;; comment character(s) have to be checked and adjusted. Indentation ;; should not move the comment character(s) to the first column. With ;; `LaTeX-syntactic-comments' disabled, line comments should still be ;; indented syntax-aware. ;; ;; In `latex-mode' comments starting in different columns don't have ;; to be handled differently. They don't have to be anchored in ;; column one. That means that in any case indentation before and ;; after the comment characters has to be checked and adjusted. (defgroup LaTeX-indentation nil "Indentation of LaTeX code in AUCTeX" :group 'LaTeX :group 'TeX-indentation) (defcustom LaTeX-indent-level 2 "*Indentation of begin-end blocks in LaTeX." :group 'LaTeX-indentation :type 'integer) (defcustom LaTeX-item-indent (- LaTeX-indent-level) "*Extra indentation for lines beginning with an item." :group 'LaTeX-indentation :type 'integer) (defcustom LaTeX-item-regexp "\\(bib\\)?item\\b" "*Regular expression matching macros considered items." :group 'LaTeX-indentation :type 'regexp) (defcustom LaTeX-indent-environment-list '(("verbatim" current-indentation) ("verbatim*" current-indentation) ("tabular" LaTeX-indent-tabular) ("tabular*" LaTeX-indent-tabular) ("align" LaTeX-indent-tabular) ("align*" LaTeX-indent-tabular) ("array" LaTeX-indent-tabular) ("eqnarray" LaTeX-indent-tabular) ("eqnarray*" LaTeX-indent-tabular) ;; The following should have their own, smart indentation function. ;; Some other day. ("displaymath") ("equation") ("equation*") ("picture") ("tabbing")) "Alist of environments with special indentation. The second element in each entry is the function to calculate the indentation level in columns. Environments present in this list are not filled by filling functions, see `LaTeX-fill-region-as-paragraph'." :group 'LaTeX-indentation :type '(repeat (list (string :tag "Environment") (option function)))) (defcustom LaTeX-indent-environment-check t "*If non-nil, check for any special environments." :group 'LaTeX-indentation :type 'boolean) (defcustom LaTeX-document-regexp "document" "Regexp matching environments in which the indentation starts at col 0." :group 'LaTeX-indentation :type 'regexp) (defcustom LaTeX-verbatim-regexp "verbatim\\*?" "*Regexp matching environments with indentation at col 0 for begin/end." :group 'LaTeX-indentation :type 'regexp) (make-obsolete-variable 'LaTeX-verbatim-regexp 'LaTeX-verbatim-environments-local "2014-12-19") (defcustom LaTeX-begin-regexp "begin\\b\\|\\[" "*Regexp matching macros considered begins." :group 'LaTeX-indentation :type 'regexp) (defcustom LaTeX-end-regexp "end\\b\\|\\]" "*Regexp matching macros considered ends." :group 'LaTeX-indentation :type 'regexp) (defcustom LaTeX-left-right-indent-level LaTeX-indent-level "*The level of indentation produced by a \\left macro." :group 'LaTeX-indentation :type 'integer) (defcustom LaTeX-indent-comment-start-regexp "%" "*Regexp matching comments ending the indent level count. This means, we just count the LaTeX tokens \\left, \\right, \\begin, and \\end up to the first occurence of text matching this regexp. Thus, the default \"%\" stops counting the tokens at a comment. A value of \"%[^>]\" would allow you to alter the indentation with comments, e.g. with comment `%> \\begin'. Lines which start with `%' are not considered at all, regardless if this value." :group 'LaTeX-indentation :type 'regexp) (defvar docTeX-indent-inner-fixed `((,(concat (regexp-quote TeX-esc) "\\(begin\\|end\\)[ \t]*{macrocode\\*?}") 4 t) (,(concat (regexp-quote TeX-esc) "\\(begin\\|end\\)[ \t]*{\\(macro\\|environment\\)\\*?}") 0 nil)) "List of items which should have a fixed inner indentation. The items consist of three parts. The first is a regular expression which should match the respective string. The second is the amount of spaces to be used for indentation. The third toggles if comment padding is relevant or not. If t padding is part of the amount given, if nil the amount of spaces will be inserted after potential padding.") (defun LaTeX-indent-line () "Indent the line containing point, as LaTeX source. Add `LaTeX-indent-level' indentation in each \\begin{ - \\end{ block. Lines starting with an item is given an extra indentation of `LaTeX-item-indent'." (interactive) (let* ((case-fold-search nil) ;; Compute a fill prefix. Whitespace after the comment ;; characters will be disregarded and replaced by ;; `comment-padding'. (fill-prefix (and (TeX-in-commented-line) (save-excursion (beginning-of-line) (looking-at (concat "\\([ \t]*" TeX-comment-start-regexp "+\\)+")) (concat (match-string 0) (TeX-comment-padding-string))))) (overlays (when (featurep 'xemacs) ;; Isn't that fun? In Emacs an `(overlays-at ;; (line-beginning-position))' would do the ;; trick. How boring. (extent-list nil (line-beginning-position) (line-beginning-position) 'all-extents-closed-open 'overlay))) ol-specs) ;; XEmacs' `indent-to' function (at least in version 21.4.15) has ;; a bug which leads to the insertion of whitespace in front of an ;; invisible overlay. So during indentation we temporarily remove ;; the 'invisible property. (dolist (ol overlays) (when (extent-property ol 'invisible) (pushnew (list ol (extent-property ol 'invisible)) ol-specs :test #'equal) (set-extent-property ol 'invisible nil))) (save-excursion (cond ((and fill-prefix (TeX-in-line-comment) (eq major-mode 'doctex-mode)) ;; If point is in a line comment in `doctex-mode' we only ;; consider the inner indentation. (let ((inner-indent (LaTeX-indent-calculate 'inner))) (when (/= (LaTeX-current-indentation 'inner) inner-indent) (LaTeX-indent-inner-do inner-indent)))) ((and fill-prefix LaTeX-syntactic-comments) ;; In any other case of a comment we have to consider ;; outer and inner indentation if we do syntax-aware ;; indentation. (let ((inner-indent (LaTeX-indent-calculate 'inner)) (outer-indent (LaTeX-indent-calculate 'outer))) (when (/= (LaTeX-current-indentation 'inner) inner-indent) (LaTeX-indent-inner-do inner-indent)) (when (/= (LaTeX-current-indentation 'outer) outer-indent) (LaTeX-indent-outer-do outer-indent)))) (t ;; The default is to adapt whitespace before any ;; non-whitespace character, i.e. to do outer ;; indentation. (let ((outer-indent (LaTeX-indent-calculate 'outer))) (when (/= (LaTeX-current-indentation 'outer) outer-indent) (LaTeX-indent-outer-do outer-indent)))))) ;; Make the overlays invisible again. (dolist (ol-spec ol-specs) (set-extent-property (car ol-spec) 'invisible (cadr ol-spec))) (when (< (current-column) (save-excursion (LaTeX-back-to-indentation) (current-column))) (LaTeX-back-to-indentation)))) (defun LaTeX-indent-inner-do (inner-indent) ;; Small helper function for `LaTeX-indent-line' to perform ;; indentation after a comment character. It requires that ;; `LaTeX-indent-line' already set the appropriate variables and ;; should not be used outside of `LaTeX-indent-line'. (move-to-left-margin) (TeX-re-search-forward-unescaped (concat "\\(" TeX-comment-start-regexp "+[ \t]*\\)+") (line-end-position) t) (delete-region (line-beginning-position) (point)) (insert fill-prefix) (indent-to (+ inner-indent (length fill-prefix)))) (defun LaTeX-indent-outer-do (outer-indent) ;; Small helper function for `LaTeX-indent-line' to perform ;; indentation of normal lines or before a comment character in a ;; commented line. It requires that `LaTeX-indent-line' already set ;; the appropriate variables and should not be used outside of ;; `LaTeX-indent-line'. (back-to-indentation) (delete-region (line-beginning-position) (point)) (indent-to outer-indent)) (defun LaTeX-verbatim-regexp () "Calculate the verbatim env regex from `LaTeX-verbatim-environments'." (regexp-opt (LaTeX-verbatim-environments))) (defun LaTeX-indent-calculate (&optional force-type) "Return the indentation of a line of LaTeX source. FORCE-TYPE can be used to force the calculation of an inner or outer indentation in case of a commented line. The symbols 'inner and 'outer are recognized." (save-excursion (LaTeX-back-to-indentation force-type) (let ((i 0) (list-length (safe-length docTeX-indent-inner-fixed)) (case-fold-search nil) entry found) (cond ((save-excursion (beginning-of-line) (bobp)) 0) ((and (eq major-mode 'doctex-mode) fill-prefix (TeX-in-line-comment) (progn (while (and (< i list-length) (not found)) (setq entry (nth i docTeX-indent-inner-fixed)) (when (looking-at (nth 0 entry)) (setq found t)) (setq i (1+ i))) found)) (if (nth 2 entry) (- (nth 1 entry) (if (integerp comment-padding) comment-padding (length comment-padding))) (nth 1 entry))) ((looking-at (concat (regexp-quote TeX-esc) "\\(begin\\|end\\){\\(" (LaTeX-verbatim-regexp) "\\)}")) ;; \end{verbatim} must be flush left, otherwise an unwanted ;; empty line appears in LaTeX's output. 0) ((and LaTeX-indent-environment-check ;; Special environments. (let ((entry (assoc (or LaTeX-current-environment (LaTeX-current-environment)) LaTeX-indent-environment-list))) (and entry (nth 1 entry) (funcall (nth 1 entry)))))) ((looking-at (concat (regexp-quote TeX-esc) "\\(" LaTeX-end-regexp "\\)")) ;; Backindent at \end. (- (LaTeX-indent-calculate-last force-type) LaTeX-indent-level)) ((looking-at (concat (regexp-quote TeX-esc) "right\\b")) ;; Backindent at \right. (- (LaTeX-indent-calculate-last force-type) LaTeX-left-right-indent-level)) ((looking-at (concat (regexp-quote TeX-esc) "\\(" LaTeX-item-regexp "\\)")) ;; Items. (+ (LaTeX-indent-calculate-last force-type) LaTeX-item-indent)) ((looking-at "}") ;; End brace in the start of the line. (- (LaTeX-indent-calculate-last force-type) TeX-brace-indent-level)) (t (LaTeX-indent-calculate-last force-type)))))) (defun LaTeX-indent-level-count () "Count indentation change caused by all \\left, \\right, \\begin, and \\end commands in the current line." (save-excursion (save-restriction (let ((count 0)) (narrow-to-region (point) (save-excursion (re-search-forward (concat "[^" TeX-esc "]" "\\(" LaTeX-indent-comment-start-regexp "\\)\\|\n\\|\\'")) (backward-char) (point))) (while (search-forward TeX-esc nil t) (cond ((looking-at "left\\b") (setq count (+ count LaTeX-left-right-indent-level))) ((looking-at "right\\b") (setq count (- count LaTeX-left-right-indent-level))) ((looking-at LaTeX-begin-regexp) (setq count (+ count LaTeX-indent-level))) ((looking-at LaTeX-end-regexp) (setq count (- count LaTeX-indent-level))) ((looking-at (regexp-quote TeX-esc)) (forward-char 1)))) count)))) (defun LaTeX-indent-calculate-last (&optional force-type) "Return the correct indentation of a normal line of text. The point is supposed to be at the beginning of the current line. FORCE-TYPE can be used to force the calculation of an inner or outer indentation in case of a commented line. The symbols 'inner and 'outer are recognized." (let (line-comment-current-flag line-comment-last-flag comment-current-flag comment-last-flag) (beginning-of-line) (setq line-comment-current-flag (TeX-in-line-comment) comment-current-flag (TeX-in-commented-line)) (if comment-current-flag (skip-chars-backward "%\n\t ") (skip-chars-backward "\n\t ")) (beginning-of-line) ;; If we are called in a non-comment line, skip over comment ;; lines. The computation of indentation should in this case ;; rather take the last non-comment line into account. ;; Otherwise there might arise problems with e.g. multi-line ;; code comments. This behavior is not enabled in docTeX mode ;; where large amounts of line comments may have to be skipped ;; and indentation should not be influenced by unrelated code in ;; other macrocode environments. (while (and (not (eq major-mode 'doctex-mode)) (not comment-current-flag) (TeX-in-commented-line) (not (bobp))) (skip-chars-backward "\n\t ") (beginning-of-line)) (setq line-comment-last-flag (TeX-in-line-comment) comment-last-flag (TeX-in-commented-line)) (LaTeX-back-to-indentation force-type) ;; Separate line comments and other stuff (normal text/code and ;; code comments). Additionally we don't want to compute inner ;; indentation when a commented and a non-commented line are ;; compared. (cond ((or (and (eq major-mode 'doctex-mode) (or (and line-comment-current-flag (not line-comment-last-flag)) (and (not line-comment-current-flag) line-comment-last-flag))) (and force-type (eq force-type 'inner) (or (and comment-current-flag (not comment-last-flag)) (and (not comment-current-flag) comment-last-flag)))) 0) ((looking-at (concat (regexp-quote TeX-esc) "begin *{\\(" LaTeX-document-regexp "\\)}")) ;; I dislike having all of the document indented... (+ (LaTeX-current-indentation force-type) ;; Some people have opening braces at the end of the ;; line, e.g. in case of `\begin{letter}{%'. (TeX-brace-count-line))) ((and (eq major-mode 'doctex-mode) (looking-at (concat (regexp-quote TeX-esc) "end[ \t]*{macrocode\\*?}")) fill-prefix (TeX-in-line-comment)) ;; Reset indentation to zero after a macrocode ;; environment. 0) ((looking-at (concat (regexp-quote TeX-esc) "begin *{\\(" (LaTeX-verbatim-regexp) "\\)}")) 0) ((looking-at (concat (regexp-quote TeX-esc) "end *{\\(" (LaTeX-verbatim-regexp) "\\)}")) ;; If I see an \end{verbatim} in the previous line I skip ;; back to the preceding \begin{verbatim}. (save-excursion (if (re-search-backward (concat (regexp-quote TeX-esc) "begin *{\\(" (LaTeX-verbatim-regexp) "\\)}") 0 t) (LaTeX-indent-calculate-last force-type) 0))) (t (+ (LaTeX-current-indentation force-type) (if (not (and force-type (eq force-type 'outer) (TeX-in-commented-line))) (+ (LaTeX-indent-level-count) (TeX-brace-count-line)) 0) (cond ((looking-at (concat (regexp-quote TeX-esc) "\\(" LaTeX-end-regexp "\\)")) LaTeX-indent-level) ((looking-at (concat (regexp-quote TeX-esc) "right\\b")) LaTeX-left-right-indent-level) ((looking-at (concat (regexp-quote TeX-esc) "\\(" LaTeX-item-regexp "\\)")) (- LaTeX-item-indent)) ((looking-at "}") TeX-brace-indent-level) (t 0))))))) (defun LaTeX-current-indentation (&optional force-type) "Return the indentation of a line. FORCE-TYPE can be used to force the calculation of an inner or outer indentation in case of a commented line. The symbols 'inner and 'outer are recognized." (if (and fill-prefix (or (and force-type (eq force-type 'inner)) (and (not force-type) (or ;; If `LaTeX-syntactic-comments' is not enabled, ;; do conventional indentation LaTeX-syntactic-comments ;; Line comments in `doctex-mode' are always ;; indented syntax-aware so we need their inner ;; indentation. (and (TeX-in-line-comment) (eq major-mode 'doctex-mode)))))) ;; INNER indentation (save-excursion (beginning-of-line) (looking-at (concat "\\(?:[ \t]*" TeX-comment-start-regexp "+\\)+" "\\([ \t]*\\)")) (- (length (match-string 1)) (length (TeX-comment-padding-string)))) ;; OUTER indentation (current-indentation))) (defun LaTeX-back-to-indentation (&optional force-type) "Move point to the first non-whitespace character on this line. If it is commented and comments are formatted syntax-aware move point to the first non-whitespace character after the comment character(s). The optional argument FORCE-TYPE can be used to force point being moved to the inner or outer indentation in case of a commented line. The symbols 'inner and 'outer are recognized." (if (or (and force-type (eq force-type 'inner)) (and (not force-type) (or (and (TeX-in-line-comment) (eq major-mode 'doctex-mode)) (and (TeX-in-commented-line) LaTeX-syntactic-comments)))) (progn (beginning-of-line) ;; Should this be anchored at the start of the line? (TeX-re-search-forward-unescaped (concat "\\(?:" TeX-comment-start-regexp "+[ \t]*\\)+") (line-end-position) t)) (back-to-indentation))) ;;; Filling ;; The default value should try not to break formulae across lines (this is ;; useful for preview-latex) and give a meaningful filling. (defcustom LaTeX-fill-break-at-separators '(\\\( \\\[) "List of separators before or after which respectively a line break will be inserted if they do not fit into one line." :group 'LaTeX :type '(set :tag "Contents" (const :tag "Opening Brace" \{) (const :tag "Closing Brace" \}) (const :tag "Opening Bracket" \[) (const :tag "Opening Inline Math Switches" \\\() (const :tag "Closing Inline Math Switches" \\\)) (const :tag "Opening Display Math Switch" \\\[) (const :tag "Closing Display Math Switch" \\\]))) (defcustom LaTeX-fill-break-before-code-comments t "If non-nil, a line with some code followed by a comment will be broken before the last non-comment word in case the comment does not fit into the line." :group 'LaTeX :type 'boolean) (defcustom LaTeX-fill-excluded-macros nil "List of macro names (without leading \\) whose arguments must not be subject to filling." :group 'LaTeX :type '(repeat string)) (defvar LaTeX-nospace-between-char-regexp (if (featurep 'xemacs) (if (and (boundp 'word-across-newline) word-across-newline) word-across-newline ;; NOTE: Ensure not to have a value of nil for such a rare case that ;; somebody removes the mule test in `LaTeX-fill-delete-newlines' so that ;; it could match only "\n" and this could lead to problem. XEmacs does ;; not have a category `\c|' and `\ct' means `Chinese Taiwan' in XEmacs. "\\(\\cj\\|\\cc\\|\\ct\\)") "\\c|") "Regexp matching a character where no interword space is necessary. Words formed by such characters can be broken across newlines.") (defvar LaTeX-fill-newline-hook nil "Hook run after `LaTeX-fill-newline' inserted and indented a new line.") (defun LaTeX-fill-region-as-paragraph (from to &optional justify-flag) "Fill region as one paragraph. Break lines to fit `fill-column', but leave all lines ending with \\\\ \(plus its optional argument) alone. Lines with code comments and lines ending with `\par' are included in filling but act as boundaries. Prefix arg means justify too. From program, pass args FROM, TO and JUSTIFY-FLAG. You can disable filling inside a specific environment by adding it to `LaTeX-indent-environment-list', only indentation is performed in that case." (interactive "*r\nP") (let ((end-marker (save-excursion (goto-char to) (point-marker)))) (if (or (assoc (LaTeX-current-environment) LaTeX-indent-environment-list) (member (TeX-current-macro) LaTeX-fill-excluded-macros) ;; This could be generalized, if there are more cases where ;; a special string at the start of a region to fill should ;; inhibit filling. (progn (save-excursion (goto-char from) (looking-at (concat TeX-comment-start-regexp "+[ \t]*" "Local Variables:"))))) ;; Filling disabled, only do indentation. (indent-region from to nil) (save-restriction (goto-char from) (while (< (point) end-marker) (if (re-search-forward (concat "\\(" ;; Code comments. "[^\r\n%\\]\\([ \t]\\|\\\\\\\\\\)*" TeX-comment-start-regexp "\\|" ;; Lines ending with `\par'. "\\(\\=\\|[^" TeX-esc "\n]\\)\\(" (regexp-quote (concat TeX-esc TeX-esc)) "\\)*" (regexp-quote TeX-esc) "par[ \t]*" "\\({[ \t]*}\\)?[ \t]*$" "\\)\\|\\(" ;; Lines ending with `\\'. (regexp-quote TeX-esc) (regexp-quote TeX-esc) "\\(\\s-*\\*\\)?" "\\(\\s-*\\[[^]]*\\]\\)?" "\\s-*$\\)") end-marker t) (progn (goto-char (line-end-position)) (delete-horizontal-space) ;; I doubt very much if we want justify - ;; this is a line with \\ ;; if you think otherwise - uncomment the next line ;; (and justify-flag (justify-current-line)) (forward-char) ;; keep our position in a buffer (save-excursion ;; Code comments and lines ending with `\par' are ;; included in filling. Lines ending with `\\' are ;; skipped. (if (match-string 1) (LaTeX-fill-region-as-para-do from (point) justify-flag) (LaTeX-fill-region-as-para-do from (line-beginning-position 0) justify-flag) ;; At least indent the line ending with `\\'. (indent-according-to-mode))) (setq from (point))) ;; ELSE part follows - loop termination relies on a fact ;; that (LaTeX-fill-region-as-para-do) moves point past ;; the filled region (LaTeX-fill-region-as-para-do from end-marker justify-flag))))))) ;; The content of `LaTeX-fill-region-as-para-do' was copied from the ;; function `fill-region-as-paragraph' in `fill.el' (CVS Emacs, ;; January 2004) and adapted to the needs of AUCTeX. (defun LaTeX-fill-region-as-para-do (from to &optional justify nosqueeze squeeze-after) "Fill the region defined by FROM and TO as one paragraph. It removes any paragraph breaks in the region and extra newlines at the end, indents and fills lines between the margins given by the `current-left-margin' and `current-fill-column' functions. \(In most cases, the variable `fill-column' controls the width.) It leaves point at the beginning of the line following the paragraph. Normally performs justification according to the `current-justification' function, but with a prefix arg, does full justification instead. From a program, optional third arg JUSTIFY can specify any type of justification. Fourth arg NOSQUEEZE non-nil means not to make spaces between words canonical before filling. Fifth arg SQUEEZE-AFTER, if non-nil, means don't canonicalize spaces before that position. Return the `fill-prefix' used for filling. If `sentence-end-double-space' is non-nil, then period followed by one space does not end a sentence, so don't break a line there." (interactive (progn (barf-if-buffer-read-only) (list (region-beginning) (region-end) (if current-prefix-arg 'full)))) (unless (memq justify '(t nil none full center left right)) (setq justify 'full)) ;; Make sure "to" is the endpoint. (goto-char (min from to)) (setq to (max from to)) ;; Ignore blank lines at beginning of region. (skip-chars-forward " \t\n") (let ((from-plus-indent (point)) (oneleft nil)) (beginning-of-line) (setq from (point)) ;; Delete all but one soft newline at end of region. ;; And leave TO before that one. (goto-char to) (while (and (> (point) from) (eq ?\n (char-after (1- (point))))) (if (and oneleft (not (and use-hard-newlines (get-text-property (1- (point)) 'hard)))) (delete-char -1) (backward-char 1) (setq oneleft t))) (setq to (copy-marker (point) t)) (goto-char from-plus-indent)) (if (not (> to (point))) nil ;; There is no paragraph, only whitespace: exit now. (or justify (setq justify (current-justification))) ;; Don't let Adaptive Fill mode alter the fill prefix permanently. (let ((fill-prefix fill-prefix)) ;; Figure out how this paragraph is indented, if desired. (when (and adaptive-fill-mode (or (null fill-prefix) (string= fill-prefix ""))) (setq fill-prefix (fill-context-prefix from to)) ;; Ignore a white-space only fill-prefix ;; if we indent-according-to-mode. (when (and fill-prefix fill-indent-according-to-mode (string-match "\\`[ \t]*\\'" fill-prefix)) (setq fill-prefix nil))) (goto-char from) (beginning-of-line) (if (not justify) ; filling disabled: just check indentation (progn (goto-char from) (while (< (point) to) (if (and (not (eolp)) (< (LaTeX-current-indentation) (current-left-margin))) (fill-indent-to-left-margin)) (forward-line 1))) (when use-hard-newlines (remove-text-properties from to '(hard nil))) ;; Make sure first line is indented (at least) to left margin... (indent-according-to-mode) ;; COMPATIBILITY for Emacs <= 21.1 (if (fboundp 'fill-delete-prefix) ;; Delete the fill-prefix from every line. (fill-delete-prefix from to fill-prefix) ;; Delete the comment prefix and any whitespace from every ;; line of the region in concern except the first. (The ;; implementation is heuristic to a certain degree.) (save-excursion (goto-char from) (forward-line 1) (when (< (point) to) (while (re-search-forward (concat "^[ \t]+\\|^[ \t]*" TeX-comment-start-regexp "+[ \t]*") to t) (delete-region (match-beginning 0) (match-end 0)))))) (setq from (point)) ;; FROM, and point, are now before the text to fill, ;; but after any fill prefix on the first line. (LaTeX-fill-delete-newlines from to justify nosqueeze squeeze-after) ;; This is the actual FILLING LOOP. (goto-char from) (let* (linebeg (code-comment-start (save-excursion (LaTeX-back-to-indentation) (TeX-search-forward-comment-start (line-end-position)))) (end-marker (save-excursion (goto-char (or code-comment-start to)) (point-marker))) (LaTeX-current-environment (LaTeX-current-environment))) ;; Fill until point is greater than the end point. If there ;; is a code comment, use the code comment's start as a ;; limit. (while (and (< (point) (marker-position end-marker)) (or (not code-comment-start) (and code-comment-start (> (- (marker-position end-marker) (line-beginning-position)) fill-column)))) (setq linebeg (point)) (move-to-column (current-fill-column)) (if (when (< (point) (marker-position end-marker)) ;; Find the position where we'll break the line. (forward-char 1) ; Use an immediately following ; space, if any. (LaTeX-fill-move-to-break-point linebeg) ;; Check again to see if we got to the end of ;; the paragraph. (skip-chars-forward " \t") (< (point) (marker-position end-marker))) ;; Found a place to cut. (progn (LaTeX-fill-newline) (when justify ;; Justify the line just ended, if desired. (save-excursion (forward-line -1) (justify-current-line justify nil t)))) (goto-char end-marker) ;; Justify this last line, if desired. (if justify (justify-current-line justify t t)))) ;; Fill a code comment if necessary. (Enable this code if ;; you want the comment part in lines with code comments to ;; be filled. Originally it was disabled because the ;; indentation code indented the lines following the line ;; with the code comment to the column of the comment ;; starters. That means, it would have looked like this: ;; | code code code % comment ;; | % comment ;; | code code code ;; This now (2005-07-29) is not the case anymore. But as ;; filling code comments like this would split a single ;; paragraph into two separate ones, we still leave it ;; disabled. I leave the code here in case it is useful for ;; somebody. ;; (when (and code-comment-start ;; (> (- (line-end-position) (line-beginning-position)) ;; fill-column)) ;; (LaTeX-fill-code-comment justify)) ;; The following is an alternative strategy to minimize the ;; occurence of overfull lines with code comments. A line ;; will be broken before the last non-comment word if the ;; code comment does not fit into the line. (when (and LaTeX-fill-break-before-code-comments code-comment-start (> (- (line-end-position) (line-beginning-position)) fill-column)) (beginning-of-line) (goto-char end-marker) (while (not (looking-at TeX-comment-start-regexp)) (forward-char)) (skip-chars-backward " \t") (skip-chars-backward "^ \t\n") (unless (or (bolp) ;; Comment starters and whitespace. (TeX-looking-at-backward (concat "^\\([ \t]*" TeX-comment-start-regexp "+\\)*" "[ \t]*") (line-beginning-position))) (LaTeX-fill-newline))))) ;; Leave point after final newline. (goto-char to) (unless (eobp) (forward-char 1)) ;; Return the fill-prefix we used fill-prefix))) ;; Following lines are copied from `fill.el' (CVS Emacs, March 2005). ;; The `fill-space' property carries the string with which a newline should be ;; replaced when unbreaking a line (in fill-delete-newlines). It is added to ;; newline characters by fill-newline when the default behavior of ;; fill-delete-newlines is not what we want. (unless (featurep 'xemacs) ;; COMPATIBILITY for Emacs < 22.1 (add-to-list 'text-property-default-nonsticky '(fill-space . t))) (defun LaTeX-fill-delete-newlines (from to justify nosqueeze squeeze-after) ;; COMPATIBILITY for Emacs < 22.1 and XEmacs (if (fboundp 'fill-delete-newlines) (fill-delete-newlines from to justify nosqueeze squeeze-after) (if (featurep 'xemacs) (when (featurep 'mule) (goto-char from) (let ((unwished-newline (concat LaTeX-nospace-between-char-regexp "\n" LaTeX-nospace-between-char-regexp))) (while (re-search-forward unwished-newline to t) (skip-chars-backward "^\n") (delete-char -1)))) ;; This else-sentence was copied from the function `fill-delete-newlines' ;; in `fill.el' (CVS Emacs, 2005-02-17) and adapted accordingly. (while (search-forward "\n" to t) (if (get-text-property (match-beginning 0) 'fill-space) (replace-match (get-text-property (match-beginning 0) 'fill-space)) (let ((prev (char-before (match-beginning 0))) (next (following-char))) (when (or (aref (char-category-set next) ?|) (aref (char-category-set prev) ?|)) (delete-char -1)))))) ;; Make sure sentences ending at end of line get an extra space. (if (or (not (boundp 'sentence-end-double-space)) sentence-end-double-space) (progn (goto-char from) (while (re-search-forward "[.?!][]})\"']*$" to t) (insert ? )))) ;; Then change all newlines to spaces. (let ((point-max (progn (goto-char to) (skip-chars-backward "\n") (point)))) (subst-char-in-region from point-max ?\n ?\ )) (goto-char from) (skip-chars-forward " \t") ;; Remove extra spaces between words. (unless (and nosqueeze (not (eq justify 'full))) (canonically-space-region (or squeeze-after (point)) to) ;; Remove trailing whitespace. (goto-char (line-end-position)) (delete-char (- (skip-chars-backward " \t")))))) (defun LaTeX-fill-move-to-break-point (linebeg) "Move to the position where the line should be broken." ;; COMPATIBILITY for Emacs < 22.1 and XEmacs (if (fboundp 'fill-move-to-break-point) (fill-move-to-break-point linebeg) (if (featurep 'mule) (if (TeX-looking-at-backward (concat LaTeX-nospace-between-char-regexp ".?") 2) ;; Cancel `forward-char' which is called just before ;; `LaTeX-fill-move-to-break-point' if the char before point matches ;; `LaTeX-nospace-between-char-regexp'. (backward-char 1) (when (re-search-backward (concat " \\|\n\\|" LaTeX-nospace-between-char-regexp) linebeg 'move) (forward-char 1))) (skip-chars-backward "^ \n")) ;; Prevent infinite loops: If we cannot find a place to break ;; while searching backward, search forward again. (when (save-excursion (skip-chars-backward " \t%") (bolp)) (skip-chars-forward "^ \n" (point-max))) ;; This code was copied from the function `fill-move-to-break-point' ;; in `fill.el' (CVS Emacs, 2005-02-22) and adapted accordingly. (when (and (< linebeg (point)) ;; If we are going to break the line after or ;; before a non-ascii character, we may have to ;; run a special function for the charset of the ;; character to find the correct break point. (boundp 'enable-multibyte-characters) enable-multibyte-characters (fboundp 'charset-after) ; Non-MULE XEmacsen don't have this. (not (and (eq (charset-after (1- (point))) 'ascii) (eq (charset-after (point)) 'ascii)))) ;; Make sure we take SOMETHING after the fill prefix if any. (if (fboundp 'fill-find-break-point) (fill-find-break-point linebeg) (when (fboundp 'kinsoku-process) ;XEmacs (kinsoku-process))))) ;; Prevent line break between 2-byte char and 1-byte char. (when (and (featurep 'mule) enable-multibyte-characters (or (and (not (looking-at LaTeX-nospace-between-char-regexp)) (TeX-looking-at-backward LaTeX-nospace-between-char-regexp 1)) (and (not (TeX-looking-at-backward LaTeX-nospace-between-char-regexp 1)) (looking-at LaTeX-nospace-between-char-regexp))) (re-search-backward (concat LaTeX-nospace-between-char-regexp LaTeX-nospace-between-char-regexp LaTeX-nospace-between-char-regexp "\\|" ".\\ca\\s +\\ca") linebeg t)) (if (looking-at "..\\c>") (forward-char 1) (forward-char 2))) ;; Cater for Japanese Macro (when (and (boundp 'japanese-TeX-mode) japanese-TeX-mode (aref (char-category-set (char-after)) ?j) (TeX-looking-at-backward (concat (regexp-quote TeX-esc) TeX-token-char "*") (1- (- (point) linebeg))) (not (TeX-escaped-p (match-beginning 0)))) (goto-char (match-beginning 0))) ;; Cater for \verb|...| (and similar) contructs which should not be ;; broken. (FIXME: Make it work with shortvrb.sty (also loaded by ;; doc.sty) where |...| is allowed. Arbitrary delimiters may be ;; chosen with \MakeShortVerb{}.) This could probably be ;; handled with `fill-nobreak-predicate', but this is not available ;; in XEmacs. (let ((final-breakpoint (point)) (verb-macros (regexp-opt (append (LaTeX-verbatim-macros-with-delims) (LaTeX-verbatim-macros-with-braces))))) (save-excursion ;; Look for the start of a verbatim macro in the current line. (when (re-search-backward (concat (regexp-quote TeX-esc) "\\(?:" verb-macros "\\)\\([^a-z@*]\\)") (line-beginning-position) t) ;; Determine start and end of verbatim macro. (let ((beg (point)) (end (if (not (string-match "[ [{]" (match-string 1))) (cdr (LaTeX-verbatim-macro-boundaries)) (TeX-find-macro-end)))) ;; Determine if macro end is behind fill column. (when (and end (> (- end (line-beginning-position)) (current-fill-column)) (> end final-breakpoint)) ;; Search backwards for place to break before the macro. (goto-char beg) (skip-chars-backward "^ \n") ;; Determine if point ended up at the beginning of the line. (when (save-excursion (skip-chars-backward " \t%") (bolp)) ;; Search forward for a place to break after the macro. (goto-char end) (skip-chars-forward "^ \n" (point-max))) (setq final-breakpoint (point)))))) (goto-char final-breakpoint)) (when LaTeX-fill-break-at-separators (let ((orig-breakpoint (point)) (final-breakpoint (point)) start-point) (save-excursion (beginning-of-line) (LaTeX-back-to-indentation) (setq start-point (point)) ;; Find occurences of [, $, {, }, \(, \), \[, \] or $$. (while (and (= final-breakpoint orig-breakpoint) (TeX-re-search-forward-unescaped (concat "[[{}]\\|\\$\\$?\\|" (regexp-quote TeX-esc) "[][()]") orig-breakpoint t)) (let ((match-string (match-string 0))) (cond ;; [ (opening bracket) (The closing bracket should ;; already be handled implicitely by the code for the ;; opening brace.) ((save-excursion (and (memq '\[ LaTeX-fill-break-at-separators) (string= match-string "[") (TeX-re-search-forward-unescaped (concat "\\][ \t]*{") (line-end-position) t) (> (- (or (TeX-find-closing-brace) (line-end-position)) (line-beginning-position)) fill-column))) (save-excursion (skip-chars-backward "^ \n") (when (> (point) start-point) (setq final-breakpoint (point))))) ;; { (opening brace) ((save-excursion (and (memq '\{ LaTeX-fill-break-at-separators) (string= match-string "{") (> (- (save-excursion ;; `TeX-find-closing-brace' is not enough ;; if there is no breakpoint in form of ;; whitespace after the brace. (goto-char (or (TeX-find-closing-brace) (line-end-position))) (skip-chars-forward "^ \t\n") (point)) (line-beginning-position)) fill-column))) (save-excursion (skip-chars-backward "^ \n") ;; The following is a primitive and error-prone method ;; to cope with point probably being inside square ;; brackets. A better way would be to use functions ;; to determine if point is inside an optional ;; argument and to jump to the start and end brackets. (when (save-excursion (TeX-re-search-forward-unescaped (concat "\\][ \t]*{") orig-breakpoint t)) (TeX-search-backward-unescaped "[" (line-beginning-position) t) (skip-chars-backward "^ \n")) (when (> (point) start-point) (setq final-breakpoint (point))))) ;; } (closing brace) ((save-excursion (and (memq '\} LaTeX-fill-break-at-separators) (string= match-string "}") (save-excursion (backward-char 2) (not (TeX-find-opening-brace nil (line-beginning-position)))))) (save-excursion (skip-chars-forward "^ \n") (when (> (point) start-point) (setq final-breakpoint (point))))) ;; $ or \( or \[ or $$ (opening math) ((save-excursion (and (or (and (memq '\\\( LaTeX-fill-break-at-separators) (or (and (string= match-string "$") (texmathp)) (string= match-string "\\("))) (and (memq '\\\[ LaTeX-fill-break-at-separators) (or (string= match-string "\\[") (and (string= match-string "$$") (texmathp))))) (> (- (save-excursion (TeX-search-forward-unescaped (cond ((string= match-string "\\(") (concat TeX-esc ")")) ((string= match-string "$") "$") ((string= match-string "$$") "$$") (t (concat TeX-esc "]"))) (point-max) t) (skip-chars-forward "^ \n") (point)) (line-beginning-position)) fill-column))) (save-excursion (skip-chars-backward "^ \n") (when (> (point) start-point) (setq final-breakpoint (point))))) ;; $ or \) or \] or $$ (closing math) ((save-excursion (and (or (and (memq '\\\) LaTeX-fill-break-at-separators) (or (and (string= match-string "$") (not (texmathp))) (string= match-string "\\)"))) (and (memq '\\\] LaTeX-fill-break-at-separators) (or (string= match-string "\\]") (and (string= match-string "$$") (not (texmathp)))))) (if (member match-string '("$" "$$")) (save-excursion (skip-chars-backward "$") (TeX-search-backward-unescaped match-string (line-beginning-position) t)) (texmathp-match-switch (line-beginning-position))))) (save-excursion (skip-chars-forward "^ \n") (when (> (point) start-point) (setq final-breakpoint (point))))))))) (goto-char final-breakpoint)))) ;; The content of `LaTeX-fill-newline' was copied from the function ;; `fill-newline' in `fill.el' (CVS Emacs, January 2004) and adapted ;; to the needs of AUCTeX. (defun LaTeX-fill-newline () "Replace whitespace here with one newline and indent the line." (skip-chars-backward " \t") (newline 1) ;; COMPATIBILITY for XEmacs (unless (featurep 'xemacs) ;; Give newline the properties of the space(s) it replaces (set-text-properties (1- (point)) (point) (text-properties-at (point))) (and (looking-at "\\( [ \t]*\\)\\(\\c|\\)?") (or (aref (char-category-set (or (char-before (1- (point))) ?\000)) ?|) (match-end 2)) ;; When refilling later on, this newline would normally not ;; be replaced by a space, so we need to mark it specially to ;; re-install the space when we unfill. (put-text-property (1- (point)) (point) 'fill-space (match-string 1))) ;; COMPATIBILITY for Emacs <= 21.3 (when (boundp 'fill-nobreak-invisible) ;; If we don't want breaks in invisible text, don't insert ;; an invisible newline. (if fill-nobreak-invisible (remove-text-properties (1- (point)) (point) '(invisible t))))) ;; Insert the fill prefix. (and fill-prefix (not (equal fill-prefix "")) ;; Markers that were after the whitespace are now at point: insert ;; before them so they don't get stuck before the prefix. (insert-before-markers-and-inherit fill-prefix)) (indent-according-to-mode) (run-hooks 'LaTeX-fill-newline-hook)) (defun LaTeX-fill-paragraph (&optional justify) "Like `fill-paragraph', but handle LaTeX comments. If any of the current line is a comment, fill the comment or the paragraph of it that point is in. Code comments, i.e. comments with uncommented code preceding them in the same line, will not be filled unless the cursor is placed on the line with the code comment. If LaTeX syntax is taken into consideration during filling depends on the value of `LaTeX-syntactic-comments'." (interactive "P") (if (save-excursion (beginning-of-line) (looking-at (concat TeX-comment-start-regexp "*[ \t]*$"))) ;; Don't do anything if we look at an empty line and let ;; `fill-paragraph' think we successfully filled the paragraph. t (let (;; Non-nil if the current line contains a comment. has-comment ;; Non-nil if the current line contains code and a comment. has-code-and-comment code-comment-start ;; If has-comment, the appropriate fill-prefix for the comment. comment-fill-prefix) ;; Figure out what kind of comment we are looking at. (cond ;; A line only with potential whitespace followed by a ;; comment on it? ((save-excursion (beginning-of-line) (looking-at (concat "^[ \t]*" TeX-comment-start-regexp "\\(" TeX-comment-start-regexp "\\|[ \t]\\)*"))) (setq has-comment t comment-fill-prefix (TeX-match-buffer 0))) ;; A line with some code, followed by a comment? ((and (setq code-comment-start (save-excursion (beginning-of-line) (TeX-search-forward-comment-start (line-end-position)))) (> (point) code-comment-start) (not (TeX-in-commented-line)) (save-excursion (goto-char code-comment-start) ;; See if there is at least one non-whitespace character ;; before the comment starts. (re-search-backward "[^ \t\n]" (line-beginning-position) t))) (setq has-comment t has-code-and-comment t))) (cond ;; Code comments. (has-code-and-comment (save-excursion (when (>= (- code-comment-start (line-beginning-position)) fill-column) ;; If start of code comment is beyond fill column, fill it as a ;; regular paragraph before it is filled as a code comment. (let ((end-marker (save-excursion (end-of-line) (point-marker)))) (LaTeX-fill-region-as-paragraph (line-beginning-position) (line-beginning-position 2) justify) (goto-char end-marker) (beginning-of-line))) (LaTeX-fill-code-comment justify))) ;; Syntax-aware filling: ;; * `LaTeX-syntactic-comments' enabled: Everything. ;; * `LaTeX-syntactic-comments' disabled: Uncommented code and ;; line comments in `doctex-mode'. ((or (or LaTeX-syntactic-comments (and (not LaTeX-syntactic-comments) (not has-comment))) (and (eq major-mode 'doctex-mode) (TeX-in-line-comment))) (let ((fill-prefix comment-fill-prefix)) (save-excursion (let* ((end (progn (LaTeX-forward-paragraph) (or (bolp) (newline 1)) (and (eobp) (not (bolp)) (open-line 1)) (point))) (start (progn (LaTeX-backward-paragraph) (while (and (looking-at (concat "$\\|[ \t]+$\\|" "[ \t]*" TeX-comment-start-regexp "+[ \t]*$")) (< (point) end)) (forward-line)) (point)))) (LaTeX-fill-region-as-paragraph start end justify))))) ;; Non-syntax-aware filling. (t (save-excursion (save-restriction (beginning-of-line) (narrow-to-region ;; Find the first line we should include in the region to fill. (save-excursion (while (and (zerop (forward-line -1)) (looking-at (concat "^[ \t]*" TeX-comment-start-regexp)))) ;; We may have gone too far. Go forward again. (or (looking-at (concat ".*" TeX-comment-start-regexp)) (forward-line 1)) (point)) ;; Find the beginning of the first line past the region to fill. (save-excursion (while (progn (forward-line 1) (looking-at (concat "^[ \t]*" TeX-comment-start-regexp)))) (point))) ;; The definitions of `paragraph-start' and ;; `paragraph-separate' will still make ;; `forward-paragraph' and `backward-paragraph' stop at ;; the respective (La)TeX commands. If these should be ;; disregarded, the definitions would have to be changed ;; accordingly. (Lines with only `%' characters on them ;; can be paragraph boundaries.) (let* ((paragraph-start (concat paragraph-start "\\|" "\\(" TeX-comment-start-regexp "\\|[ \t]\\)*$")) (paragraph-separate (concat paragraph-separate "\\|" "\\(" TeX-comment-start-regexp "\\|[ \t]\\)*$")) (fill-prefix comment-fill-prefix) (end (progn (forward-paragraph) (or (bolp) (newline 1)) (point))) (beg (progn (backward-paragraph) (point)))) (fill-region-as-paragraph beg end justify nil (save-excursion (goto-char beg) (if (looking-at fill-prefix) nil (re-search-forward comment-start-skip nil t) (point))))))))) t))) (defun LaTeX-fill-code-comment (&optional justify-flag) "Fill a line including code followed by a comment." (let ((beg (line-beginning-position)) fill-prefix code-comment-start) (indent-according-to-mode) (when (when (setq code-comment-start (save-excursion (goto-char beg) (TeX-search-forward-comment-start (line-end-position)))) (goto-char code-comment-start) (while (not (looking-at TeX-comment-start-regexp)) (forward-char)) ;; See if there is at least one non-whitespace character ;; before the comment starts. (save-excursion (re-search-backward "[^ \t\n]" (line-beginning-position) t))) (setq fill-prefix (concat (if indent-tabs-mode (concat (make-string (/ (current-column) tab-width) ?\t) (make-string (% (current-column) tab-width) ?\ )) (make-string (current-column) ?\ )) (progn (looking-at (concat TeX-comment-start-regexp "+[ \t]*")) (TeX-match-buffer 0)))) (fill-region-as-paragraph beg (line-beginning-position 2) justify-flag nil (save-excursion (goto-char beg) (if (looking-at fill-prefix) nil (re-search-forward comment-start-skip nil t) (point))))))) (defun LaTeX-fill-region (from to &optional justify what) "Fill and indent the text in region from FROM to TO as LaTeX text. Prefix arg (non-nil third arg JUSTIFY, if called from program) means justify as well. Fourth arg WHAT is a word to be displayed when formatting." (interactive "*r\nP") (save-excursion (let ((to (set-marker (make-marker) to)) (next-par (make-marker))) (goto-char from) (beginning-of-line) (setq from (point)) (catch 'end-of-buffer (while (and (< (point) to)) (message "Formatting%s...%d%%" (or what "") (/ (* 100 (- (point) from)) (- to from))) (save-excursion (LaTeX-fill-paragraph justify)) (if (marker-position next-par) (goto-char (marker-position next-par)) (LaTeX-forward-paragraph)) (when (eobp) (throw 'end-of-buffer t)) (LaTeX-forward-paragraph) (set-marker next-par (point)) (LaTeX-backward-paragraph) (while (and (not (eobp)) (looking-at (concat "^\\($\\|[ \t]+$\\|[ \t]*" TeX-comment-start-regexp "+[ \t]*$\\)"))) (forward-line 1)))) (set-marker to nil))) (message "Formatting%s...done" (or what ""))) (defun LaTeX-find-matching-end () "Move point to the \\end of the current environment. If function is called inside a comment and `LaTeX-syntactic-comments' is enabled, try to find the environment in commented regions with the same comment prefix." (interactive) (let* ((regexp (concat (regexp-quote TeX-esc) "\\(begin\\|end\\)\\b")) (level 1) (in-comment (TeX-in-commented-line)) (comment-prefix (and in-comment (TeX-comment-prefix))) (case-fold-search nil)) (let ((pt (point))) (skip-chars-backward (concat "a-zA-Z \t" (regexp-quote TeX-grop))) (unless (bolp) (backward-char 1) (if (and (looking-at regexp) (char-equal (char-after (1+ (match-beginning 0))) ?e)) (setq level 0) (goto-char pt)))) (while (and (> level 0) (re-search-forward regexp nil t)) (when (or (and LaTeX-syntactic-comments (eq in-comment (TeX-in-commented-line)) ;; If we are in a commented line, check if the ;; prefix matches the one we started out with. (or (not in-comment) (string= comment-prefix (TeX-comment-prefix)))) (and (not LaTeX-syntactic-comments) (not (TeX-in-commented-line)))) (if (= (char-after (1+ (match-beginning 0))) ?b) ;;begin (setq level (1+ level)) (setq level (1- level))))) (if (= level 0) (re-search-forward (concat TeX-grop (LaTeX-environment-name-regexp) TeX-grcl)) (error "Can't locate end of current environment")))) (defun LaTeX-find-matching-begin () "Move point to the \\begin of the current environment. If function is called inside a comment and `LaTeX-syntactic-comments' is enabled, try to find the environment in commented regions with the same comment prefix." (interactive) (let* ((regexp (concat (regexp-quote TeX-esc) "\\(begin\\|end\\)\\b")) (level 1) (in-comment (TeX-in-commented-line)) (comment-prefix (and in-comment (TeX-comment-prefix))) (case-fold-search nil)) (skip-chars-backward (concat "a-zA-Z \t" (regexp-quote TeX-grop))) (unless (bolp) (backward-char 1) (and (looking-at regexp) (char-equal (char-after (1+ (match-beginning 0))) ?b) (setq level 0))) (while (and (> level 0) (re-search-backward regexp nil t)) (when (or (and LaTeX-syntactic-comments (eq in-comment (TeX-in-commented-line)) ;; If we are in a commented line, check if the ;; prefix matches the one we started out with. (or (not in-comment) (string= comment-prefix (TeX-comment-prefix)))) (and (not LaTeX-syntactic-comments) (not (TeX-in-commented-line)))) (if (= (char-after (1+ (match-beginning 0))) ?e) ;;end (setq level (1+ level)) (setq level (1- level))))) (or (= level 0) (error "Can't locate beginning of current environment")))) (defun LaTeX-mark-environment (&optional count) "Set mark to end of current environment and point to the matching begin. If prefix argument COUNT is given, mark the respective number of enclosing environments. The command will not work properly if there are unbalanced begin-end pairs in comments and verbatim environments." (interactive "p") (setq count (if count (abs count) 1)) (let ((cur (point)) beg end) ;; Only change point and mark after beginning and end were found. ;; Point should not end up in the middle of nowhere if the search fails. (save-excursion (dotimes (c count) (LaTeX-find-matching-end)) (setq end (line-beginning-position 2)) (goto-char cur) (dotimes (c count) (LaTeX-find-matching-begin)) (setq beg (point))) (push-mark end) (goto-char beg) (TeX-activate-region))) (defun LaTeX-fill-environment (justify) "Fill and indent current environment as LaTeX text." (interactive "*P") (save-excursion (LaTeX-mark-environment) (re-search-forward "{\\([^}]+\\)}") (LaTeX-fill-region (region-beginning) (region-end) justify (concat " environment " (TeX-match-buffer 1))))) (defun LaTeX-fill-section (justify) "Fill and indent current logical section as LaTeX text." (interactive "*P") (save-excursion (LaTeX-mark-section) (re-search-forward "{\\([^}]+\\)}") (LaTeX-fill-region (region-beginning) (region-end) justify (concat " section " (TeX-match-buffer 1))))) (defun LaTeX-mark-section (&optional no-subsections) "Set mark at end of current logical section, and point at top. If optional argument NO-SUBSECTIONS is non-nil, mark only the region from the current section start to the next sectioning command. Thereby subsections are not being marked. If the function `outline-mark-subtree' is not available, `LaTeX-mark-section' always behaves like this regardless of the value of NO-SUBSECTIONS." (interactive "P") (if (or no-subsections (not (fboundp 'outline-mark-subtree))) (progn (re-search-forward (concat "\\(" (LaTeX-outline-regexp) "\\|\\'\\)")) (beginning-of-line) (push-mark (point) nil t) (re-search-backward (concat "\\(" (LaTeX-outline-regexp) "\\|\\`\\)"))) (outline-mark-subtree) (when (and (boundp 'transient-mark-mode) transient-mark-mode (boundp 'mark-active) (not mark-active)) (setq mark-active t) (run-hooks 'activate-mark-hook))) (TeX-activate-region)) (defun LaTeX-fill-buffer (justify) "Fill and indent current buffer as LaTeX text." (interactive "*P") (save-excursion (LaTeX-fill-region (point-min) (point-max) justify (concat " buffer " (buffer-name))))) ;;; Navigation (defvar LaTeX-paragraph-commands-internal '("[" "]" ; display math "appendix" "begin" "caption" "chapter" "end" "include" "includeonly" "label" "maketitle" "noindent" "par" "paragraph" "part" "section" "subsection" "subsubsection" "tableofcontents" "newpage" "clearpage") "Internal list of LaTeX macros that should have their own line.") (defun LaTeX-paragraph-commands-regexp-make () "Return a regular expression matching defined paragraph commands. Regexp part containing TeX control words is postfixed with `\\b' to avoid ambiguities (e.g. \\par vs. \\parencite)." (let (cmds symbs) (dolist (mac (append LaTeX-paragraph-commands LaTeX-paragraph-commands-internal)) (if (string-match "[^a-zA-Z]" mac) (push mac symbs) (push mac cmds))) (concat (regexp-quote TeX-esc) "\\(?:" (regexp-opt cmds "\\(?:") "\\b" "\\|" (regexp-opt symbs) "\\)"))) (defcustom LaTeX-paragraph-commands nil "List of LaTeX macros that should have their own line. The list should contain macro names without the leading backslash." :group 'LaTeX-macro :type '(repeat (string)) :set (lambda (symbol value) (set-default symbol value) (setq LaTeX-paragraph-commands-regexp (LaTeX-paragraph-commands-regexp-make)))) (defvar LaTeX-paragraph-commands-regexp (LaTeX-paragraph-commands-regexp-make) "Regular expression matching LaTeX macros that should have their own line.") (defun LaTeX-set-paragraph-start () "Set `paragraph-start'." (setq paragraph-start (concat "[ \t]*%*[ \t]*\\(" LaTeX-paragraph-commands-regexp "\\|" (regexp-quote TeX-esc) "\\(" LaTeX-item-regexp "\\)\\|" "\\$\\$\\|" ; Plain TeX display math (Some people actually ; use this with LaTeX. Yuck.) "$\\)"))) (defun LaTeX-paragraph-commands-add-locally (commands) "Make COMMANDS be recognized as paragraph commands. COMMANDS can be a single string or a list of strings which will be added to `LaTeX-paragraph-commands-internal'. Additionally `LaTeX-paragraph-commands-regexp' will be updated and both variables will be made buffer-local. This is mainly a convenience function which can be used in style files." (make-local-variable 'LaTeX-paragraph-commands-internal) (make-local-variable 'LaTeX-paragraph-commands-regexp) (unless (listp commands) (setq commands (list commands))) (dolist (elt commands) (add-to-list 'LaTeX-paragraph-commands-internal elt)) (setq LaTeX-paragraph-commands-regexp (LaTeX-paragraph-commands-regexp-make)) (LaTeX-set-paragraph-start)) (defun LaTeX-forward-paragraph (&optional count) "Move forward to end of paragraph. If COUNT is non-nil, do it COUNT times." (or count (setq count 1)) (dotimes (i count) (let* ((macro-start (TeX-find-macro-start)) (paragraph-command-start (cond ;; Point is inside of a paragraph command. ((and macro-start (save-excursion (goto-char macro-start) (looking-at LaTeX-paragraph-commands-regexp))) (match-beginning 0)) ;; Point is before a paragraph command in the same line. ((looking-at (concat "[ \t]*\\(?:" TeX-comment-start-regexp "\\(?:" TeX-comment-start-regexp "\\|[ \t]\\)*\\)?" "\\(" LaTeX-paragraph-commands-regexp "\\)")) (match-beginning 1)))) macro-end) ;; If a paragraph command is encountered there are two cases to be ;; distinguished: ;; 1) If the end of the paragraph command coincides (apart from ;; potential whitespace) with the end of the line, is only ;; followed by a comment or is directly followed by a macro, ;; it is assumed that it should be handled separately. ;; 2) If the end of the paragraph command is followed by other ;; code, it is assumed that it should be included with the rest ;; of the paragraph. (if (and paragraph-command-start (save-excursion (goto-char paragraph-command-start) (setq macro-end (goto-char (TeX-find-macro-end))) (looking-at (concat (regexp-quote TeX-esc) "[@A-Za-z]+\\|" "[ \t]*\\($\\|" TeX-comment-start-regexp "\\)")))) (progn (goto-char macro-end) ;; If the paragraph command is followed directly by ;; another macro, regard the latter as part of the ;; paragraph command's paragraph. (when (looking-at (concat (regexp-quote TeX-esc) "[@A-Za-z]+")) (goto-char (TeX-find-macro-end))) (forward-line)) (let (limit) (goto-char (min (save-excursion (forward-paragraph) (setq limit (point))) (save-excursion (TeX-forward-comment-skip 1 limit) (point))))))))) (defun LaTeX-backward-paragraph (&optional count) "Move backward to beginning of paragraph. If COUNT is non-nil, do it COUNT times." (or count (setq count 1)) (dotimes (i count) (let* ((macro-start (TeX-find-macro-start))) (if (and macro-start ;; Point really has to be inside of the macro, not before it. (not (= macro-start (point))) (save-excursion (goto-char macro-start) (looking-at LaTeX-paragraph-commands-regexp))) ;; Point is inside of a paragraph command. (progn (goto-char macro-start) (beginning-of-line)) (let (limit (start (line-beginning-position))) (goto-char (max (save-excursion (backward-paragraph) (setq limit (point))) ;; Search for possible transitions from commented to ;; uncommented regions and vice versa. (save-excursion (TeX-backward-comment-skip 1 limit) (point)) ;; Search for paragraph commands. (save-excursion (let ((end-point 0) macro-bol) (when (setq macro-bol (re-search-backward (format "^[ \t]*%s*[ \t]*\\(%s\\)" TeX-comment-start-regexp LaTeX-paragraph-commands-regexp) limit t)) (if (and (string= (match-string 1) "\\begin") (progn (goto-char (match-end 1)) (skip-chars-forward "{ \t") (member (buffer-substring-no-properties (point) (progn (skip-chars-forward "A-Za-z*") (point))) LaTeX-verbatim-environments))) ;; If inside a verbatim environment, just ;; use the next line. In such environments ;; `TeX-find-macro-end' could otherwise ;; think brackets or braces belong to the ;; \begin macro. (setq end-point (line-beginning-position 2)) ;; Jump to the macro end otherwise. (goto-char (match-beginning 1)) (goto-char (TeX-find-macro-end)) ;; For an explanation of this distinction see ;; `LaTeX-forward-paragraph'. (if (looking-at (concat (regexp-quote TeX-esc) "[@A-Za-z]+\\|[ \t]*\\($\\|" TeX-comment-start-regexp "\\)")) (progn (when (looking-at (regexp-quote TeX-esc)) (goto-char (TeX-find-macro-end))) (forward-line 1) (when (< (point) start) (setq end-point (point)))) (setq end-point macro-bol)))) end-point))))))))) (defun LaTeX-search-forward-comment-start (&optional limit) "Search forward for a comment start from current position till LIMIT. If LIMIT is omitted, search till the end of the buffer. This function makes sure that any comment starters found inside of verbatim constructs are not considered." (setq limit (or limit (point-max))) (save-excursion (let (start) (catch 'found (while (progn (when (and (TeX-re-search-forward-unescaped TeX-comment-start-regexp limit 'move) (not (LaTeX-verbatim-p))) (setq start (match-beginning 0)) (throw 'found t)) (< (point) limit)))) start))) ;;; Math Minor Mode (defgroup LaTeX-math nil "Mathematics in AUCTeX." :group 'LaTeX-macro) (defvar LaTeX-math-keymap (make-sparse-keymap) "Keymap used for `LaTeX-math-mode' commands.") (defun LaTeX-math-abbrev-prefix () "Make a key definition from the variable `LaTeX-math-abbrev-prefix'." (if (stringp LaTeX-math-abbrev-prefix) (read-kbd-macro LaTeX-math-abbrev-prefix) LaTeX-math-abbrev-prefix)) (defvar LaTeX-math-menu '("Math" ("Greek Uppercase") ("Greek Lowercase") ("Binary Op") ("Relational") ("Arrows") ("Punctuation") ("Misc Symbol") ("Var Symbol") ("Log-like") ("Delimiters") ("Constructs") ("Accents") ("AMS")) "Menu containing LaTeX math commands. The menu entries will be generated dynamically, but you can specify the sequence by initializing this variable.") (defcustom LaTeX-math-menu-unicode (or (string-match "\\" (emacs-version)) (eq window-system 'w32)) "Whether the LaTeX menu should try using Unicode for effect." :type 'boolean :group 'LaTeX-math) (defcustom LaTeX-math-abbrev-prefix "`" "Prefix key for use in `LaTeX-math-mode'. This has to be a string representing a key sequence in a format understood by the `kbd' macro. This corresponds to the syntax usually used in the Emacs and Elisp manuals. Setting this variable directly does not take effect; use \\[customize]." :group 'LaTeX-math :initialize 'custom-initialize-default :set '(lambda (symbol value) (define-key LaTeX-math-mode-map (LaTeX-math-abbrev-prefix) t) (set-default symbol value) (define-key LaTeX-math-mode-map (LaTeX-math-abbrev-prefix) LaTeX-math-keymap)) :type '(string :tag "Key sequence")) (defun LaTeX-math-initialize () (let ((math (reverse (append LaTeX-math-list LaTeX-math-default))) (map LaTeX-math-keymap) (unicode (and LaTeX-math-menu-unicode (fboundp 'decode-char)))) (while math (let* ((entry (car math)) (key (nth 0 entry)) (prefix (and unicode (nth 3 entry))) value menu name) (setq math (cdr math)) (if (and prefix (setq prefix (decode-char 'ucs (nth 3 entry)))) (setq prefix (concat (string prefix) " \\")) (setq prefix "\\")) (if (listp (cdr entry)) (setq value (nth 1 entry) menu (nth 2 entry)) (setq value (cdr entry) menu nil)) (if (stringp value) (progn (setq name (intern (concat "LaTeX-math-" value))) (fset name (list 'lambda (list 'arg) (list 'interactive "*P") (list 'LaTeX-math-insert value 'arg)))) (setq name value)) (if key (progn (setq key (cond ((numberp key) (char-to-string key)) ((stringp key) (read-kbd-macro key)) (t (vector key)))) (define-key map key name))) (if menu (let ((parent LaTeX-math-menu)) (if (listp menu) (progn (while (cdr menu) (let ((sub (assoc (car menu) LaTeX-math-menu))) (if sub (setq parent sub) (setcdr parent (cons (list (car menu)) (cdr parent)))) (setq menu (cdr menu)))) (setq menu (car menu)))) (let ((sub (assoc menu parent))) (if sub (if (stringp value) (setcdr sub (cons (vector (concat prefix value) name t) (cdr sub))) (error "Cannot have multiple special math menu items")) (setcdr parent (cons (if (stringp value) (list menu (vector (concat prefix value) name t)) (vector menu name t)) (cdr parent))))))))) ;; Make the math prefix char available if it has not been used as a prefix. (unless (lookup-key map (LaTeX-math-abbrev-prefix)) (define-key map (LaTeX-math-abbrev-prefix) 'self-insert-command)))) (defconst LaTeX-dialect :latex "Default dialect for use with function `TeX-add-style-hook' for argument DIALECT-EXPR when the hook is to be run only on LaTeX file, or any mode derived thereof. See variable `TeX-style-hook-dialect'." ) (defconst LaTeX-math-default '((?a "alpha" "Greek Lowercase" 945) ;; #X03B1 (?b "beta" "Greek Lowercase" 946) ;; #X03B2 (?g "gamma" "Greek Lowercase" 947) ;; #X03B3 (?d "delta" "Greek Lowercase" 948) ;; #X03B4 (?e "epsilon" "Greek Lowercase" 1013) ;; #X03F5 (?z "zeta" "Greek Lowercase" 950) ;; #X03B6 (?h "eta" "Greek Lowercase" 951) ;; #X03B7 (?j "theta" "Greek Lowercase" 952) ;; #X03B8 (nil "iota" "Greek Lowercase" 953) ;; #X03B9 (?k "kappa" "Greek Lowercase" 954) ;; #X03BA (?l "lambda" "Greek Lowercase" 955) ;; #X03BB (?m "mu" "Greek Lowercase" 956) ;; #X03BC (?n "nu" "Greek Lowercase" 957) ;; #X03BD (?x "xi" "Greek Lowercase" 958) ;; #X03BE (?p "pi" "Greek Lowercase" 960) ;; #X03C0 (?r "rho" "Greek Lowercase" 961) ;; #X03C1 (?s "sigma" "Greek Lowercase" 963) ;; #X03C3 (?t "tau" "Greek Lowercase" 964) ;; #X03C4 (?u "upsilon" "Greek Lowercase" 965) ;; #X03C5 (?f "phi" "Greek Lowercase" 981) ;; #X03D5 (?q "chi" "Greek Lowercase" 967) ;; #X03C7 (?y "psi" "Greek Lowercase" 968) ;; #X03C8 (?w "omega" "Greek Lowercase" 969) ;; #X03C9 ("v e" "varepsilon" "Greek Lowercase" 949) ;; #X03B5 ("v j" "vartheta" "Greek Lowercase" 977) ;; #X03D1 ("v p" "varpi" "Greek Lowercase" 982) ;; #X03D6 ("v r" "varrho" "Greek Lowercase" 1009) ;; #X03F1 ("v s" "varsigma" "Greek Lowercase" 962) ;; #X03C2 ("v f" "varphi" "Greek Lowercase" 966) ;; #X03C6 (?G "Gamma" "Greek Uppercase" 915) ;; #X0393 (?D "Delta" "Greek Uppercase" 916) ;; #X0394 (?J "Theta" "Greek Uppercase" 920) ;; #X0398 (?L "Lambda" "Greek Uppercase" 923) ;; #X039B (?X "Xi" "Greek Uppercase" 926) ;; #X039E (?P "Pi" "Greek Uppercase" 928) ;; #X03A0 (?S "Sigma" "Greek Uppercase" 931) ;; #X03A3 (?U "Upsilon" "Greek Uppercase" 978) ;; #X03D2 (?F "Phi" "Greek Uppercase" 934) ;; #X03A6 (?Y "Psi" "Greek Uppercase" 936) ;; #X03A8 (?W "Omega" "Greek Uppercase" 937) ;; #X03A9 (?c LaTeX-math-cal "Cal-whatever") (nil "pm" "Binary Op" 177) ;; #X00B1 (nil "mp" "Binary Op" 8723) ;; #X2213 (?* "times" "Binary Op" 215) ;; #X00D7 (nil "div" "Binary Op" 247) ;; #X00F7 (nil "ast" "Binary Op" 8727) ;; #X2217 (nil "star" "Binary Op" 8902) ;; #X22C6 (nil "circ" "Binary Op" 8728) ;; #X2218 (nil "bullet" "Binary Op" 8729) ;; #X2219 (?. "cdot" "Binary Op" 8901) ;; #X22C5 (?- "cap" "Binary Op" 8745) ;; #X2229 (?+ "cup" "Binary Op" 8746) ;; #X222A (nil "uplus" "Binary Op" 8846) ;; #X228E (nil "sqcap" "Binary Op" 8851) ;; #X2293 (?| "vee" "Binary Op" 8744) ;; #X2228 (?& "wedge" "Binary Op" 8743) ;; #X2227 (?\\ "setminus" "Binary Op" 8726) ;; #X2216 (nil "wr" "Binary Op" 8768) ;; #X2240 (nil "diamond" "Binary Op" 8900) ;; #X22C4 (nil "bigtriangleup" "Binary Op" 9651) ;; #X25B3 (nil "bigtriangledown" "Binary Op" 9661) ;; #X25BD (nil "triangleleft" "Binary Op" 9665) ;; #X25C1 (nil "triangleright" "Binary Op" 9655) ;; #X25B7 (nil "lhd" "Binary Op" 8882) ;; #X22B2 (nil "rhd" "Binary Op" 8883) ;; #X22B3 (nil "unlhd" "Binary Op" 8884) ;; #X22B4 (nil "unrhd" "Binary Op" 8885) ;; #X22B5 (nil "oplus" "Binary Op" 8853) ;; #X2295 (nil "ominus" "Binary Op" 8854) ;; #X2296 (nil "otimes" "Binary Op" 8855) ;; #X2297 (nil "oslash" "Binary Op" 8709) ;; #X2205 (nil "odot" "Binary Op" 8857) ;; #X2299 (nil "bigcirc" "Binary Op" 9675) ;; #X25CB (nil "dagger" "Binary Op" 8224) ;; #X2020 (nil "ddagger" "Binary Op" 8225) ;; #X2021 (nil "amalg" "Binary Op" 10815) ;; #X2A3F (?< "leq" "Relational" 8804) ;; #X2264 (?> "geq" "Relational" 8805) ;; #X2265 (nil "qed" "Relational" 8718) ;; #X220E (nil "equiv" "Relational" 8801) ;; #X2261 (nil "models" "Relational" 8871) ;; #X22A7 (nil "prec" "Relational" 8826) ;; #X227A (nil "succ" "Relational" 8827) ;; #X227B (nil "sim" "Relational" 8764) ;; #X223C (nil "perp" "Relational" 10178) ;; #X27C2 (nil "preceq" "Relational" 10927) ;; #X2AAF (nil "succeq" "Relational" 10928) ;; #X2AB0 (nil "simeq" "Relational" 8771) ;; #X2243 (nil "mid" "Relational" 8739) ;; #X2223 (nil "ll" "Relational" 8810) ;; #X226A (nil "gg" "Relational" 8811) ;; #X226B (nil "asymp" "Relational" 8781) ;; #X224D (nil "parallel" "Relational" 8741) ;; #X2225 (?\{ "subset" "Relational" 8834) ;; #X2282 (?\} "supset" "Relational" 8835) ;; #X2283 (nil "approx" "Relational" 8776) ;; #X2248 (nil "bowtie" "Relational" 8904) ;; #X22C8 (?\[ "subseteq" "Relational" 8838) ;; #X2286 (?\] "supseteq" "Relational" 8839) ;; #X2287 (nil "cong" "Relational" 8773) ;; #X2245 (nil "Join" "Relational" 10781) ;; #X2A1D (nil "sqsubset" "Relational" 8847) ;; #X228F (nil "sqsupset" "Relational" 8848) ;; #X2290 (nil "neq" "Relational" 8800) ;; #X2260 (nil "smile" "Relational" 8995) ;; #X2323 (nil "sqsubseteq" "Relational" 8849) ;; #X2291 (nil "sqsupseteq" "Relational" 8850) ;; #X2292 (nil "doteq" "Relational" 8784) ;; #X2250 (nil "frown" "Relational" 8994) ;; #X2322 (?i "in" "Relational" 8712) ;; #X2208 (nil "ni" "Relational" 8715) ;; #X220B (nil "propto" "Relational" 8733) ;; #X221D (nil "vdash" "Relational" 8866) ;; #X22A2 (nil "dashv" "Relational" 8867) ;; #X22A3 (?\C-b "leftarrow" "Arrows" 8592) ;; #X2190 (nil "Leftarrow" "Arrows" 8656) ;; #X21D0 (?\C-f "rightarrow" "Arrows" 8594) ;; #X2192 (nil "Rightarrow" "Arrows" 8658) ;; #X21D2 (nil "leftrightarrow" "Arrows" 8596) ;; #X2194 (nil "Leftrightarrow" "Arrows" 8660) ;; #X21D4 (nil "mapsto" "Arrows" 8614) ;; #X21A6 (nil "hookleftarrow" "Arrows" 8617) ;; #X21A9 (nil "leftharpoonup" "Arrows" 8636) ;; #X21BC (nil "leftharpoondown" "Arrows" 8637) ;; #X21BD (nil "longleftarrow" "Arrows" 10229) ;; #X27F5 (nil "Longleftarrow" "Arrows" 10232) ;; #X27F8 (nil "longrightarrow" "Arrows" 10230) ;; #X27F6 (nil "Longrightarrow" "Arrows" 10233) ;; #X27F9 (nil "longleftrightarrow" "Arrows" 10231) ;; #X27F7 (nil "Longleftrightarrow" "Arrows" 10234) ;; #X27FA (nil "iff" "Arrows" 10234) ;; #X27FA (nil "longmapsto" "Arrows" 10236) ;; #X27FC (nil "hookrightarrow" "Arrows" 8618) ;; #X21AA (nil "rightharpoonup" "Arrows" 8640) ;; #X21C0 (nil "rightharpoondown" "Arrows" 8641) ;; #X21C1 (?\C-p "uparrow" "Arrows" 8593) ;; #X2191 (nil "Uparrow" "Arrows" 8657) ;; #X21D1 (?\C-n "downarrow" "Arrows" 8595) ;; #X2193 (nil "Downarrow" "Arrows" 8659) ;; #X21D3 (nil "updownarrow" "Arrows" 8597) ;; #X2195 (nil "Updownarrow" "Arrows" 8661) ;; #X21D5 (nil "nearrow" "Arrows" 8599) ;; #X2197 (nil "searrow" "Arrows" 8600) ;; #X2198 (nil "swarrow" "Arrows" 8601) ;; #X2199 (nil "nwarrow" "Arrows" 8598) ;; #X2196 (nil "ldots" "Punctuation" 8230) ;; #X2026 (nil "cdots" "Punctuation" 8943) ;; #X22EF (nil "vdots" "Punctuation" 8942) ;; #X22EE (nil "ddots" "Punctuation" 8945) ;; #X22F1 (?: "colon" "Punctuation" 58) ;; #X003A (?N "nabla" "Misc Symbol" 8711) ;; #X2207 (nil "aleph" "Misc Symbol" 8501) ;; #X2135 (nil "prime" "Misc Symbol" 8242) ;; #X2032 (?A "forall" "Misc Symbol" 8704) ;; #X2200 (?I "infty" "Misc Symbol" 8734) ;; #X221E (nil "hbar" "Misc Symbol" 8463) ;; #X210F (?0 "emptyset" "Misc Symbol" 8709) ;; #X2205 (?E "exists" "Misc Symbol" 8707) ;; #X2203 (nil "surd" "Misc Symbol" 8730) ;; #X221A (nil "Box" "Misc Symbol" 9633) ;; #X25A1 (nil "triangle" "Misc Symbol" 9651) ;; #X25B3 (nil "Diamond" "Misc Symbol" 9671) ;; #X25C7 (nil "imath" "Misc Symbol" 120484) ;; #X1D6A4 (nil "jmath" "Misc Symbol" 120485) ;; #X1D6A5 (nil "ell" "Misc Symbol" 8467) ;; #X2113 (nil "neg" "Misc Symbol" 172) ;; #X00AC (?/ "not" "Misc Symbol" 824) ;; #X0338 (nil "top" "Misc Symbol" 8868) ;; #X22A4 (nil "flat" "Misc Symbol" 9837) ;; #X266D (nil "natural" "Misc Symbol" 9838) ;; #X266E (nil "sharp" "Misc Symbol" 9839) ;; #X266F (nil "wp" "Misc Symbol" 8472) ;; #X2118 (nil "bot" "Misc Symbol" 8869) ;; #X22A5 (nil "clubsuit" "Misc Symbol" 9827) ;; #X2663 (nil "diamondsuit" "Misc Symbol" 9826) ;; #X2662 (nil "heartsuit" "Misc Symbol" 9825) ;; #X2661 (nil "spadesuit" "Misc Symbol" 9824) ;; #X2660 (nil "mho" "Misc Symbol" 8487) ;; #X2127 (nil "Re" "Misc Symbol" 8476) ;; #X211C (nil "Im" "Misc Symbol" 8465) ;; #X2111 (nil "angle" "Misc Symbol" 8736) ;; #X2220 (nil "partial" "Misc Symbol" 8706) ;; #X2202 (nil "sum" "Var Symbol" 8721) ;; #X2211 (nil "prod" "Var Symbol" 8719) ;; #X220F (nil "coprod" "Var Symbol" 8720) ;; #X2210 (nil "int" "Var Symbol" 8747) ;; #X222B (nil "oint" "Var Symbol" 8750) ;; #X222E (nil "bigcap" "Var Symbol" 8898) ;; #X22C2 (nil "bigcup" "Var Symbol" 8899) ;; #X22C3 (nil "bigsqcup" "Var Symbol" 10758) ;; #X2A06 (nil "bigvee" "Var Symbol" 8897) ;; #X22C1 (nil "bigwedge" "Var Symbol" 8896) ;; #X22C0 (nil "bigodot" "Var Symbol" 10752) ;; #X2A00 (nil "bigotimes" "Var Symbol" 10754) ;; #X2A02 (nil "bigoplus" "Var Symbol" 10753) ;; #X2A01 (nil "biguplus" "Var Symbol" 10756) ;; #X2A04 (nil "arccos" "Log-like") (nil "arcsin" "Log-like") (nil "arctan" "Log-like") (nil "arg" "Log-like") (?\C-c "cos" "Log-like") (nil "cosh" "Log-like") (nil "cot" "Log-like") (nil "coth" "Log-like") (nil "csc" "Log-like") (nil "deg" "Log-like") (?\C-d "det" "Log-like") (nil "dim" "Log-like") (?\C-e "exp" "Log-like") (nil "gcd" "Log-like") (nil "hom" "Log-like") (?\C-_ "inf" "Log-like") (nil "ker" "Log-like") (nil "lg" "Log-like") (?\C-l "lim" "Log-like") (nil "liminf" "Log-like") (nil "limsup" "Log-like") (nil "ln" "Log-like") (nil "log" "Log-like") (nil "max" "Log-like") (nil "min" "Log-like") (nil "Pr" "Log-like") (nil "sec" "Log-like") (?\C-s "sin" "Log-like") (nil "sinh" "Log-like") (?\C-^ "sup" "Log-like") (?\C-t "tan" "Log-like") (nil "tanh" "Log-like") (nil "{" "Delimiters" ?{) (nil "}" "Delimiters" ?}) (nil "lfloor" "Delimiters" 8970) ;; #X230A (nil "rfloor" "Delimiters" 8971) ;; #X230B (nil "lceil" "Delimiters" 8968) ;; #X2308 (nil "rceil" "Delimiters" 8969) ;; #X2309 (?\( "langle" "Delimiters" 10216) ;; #X27E8 (?\) "rangle" "Delimiters" 10217) ;; #X27E9 (nil "rmoustache" "Delimiters" 9137) ;; #X23B1 (nil "lmoustache" "Delimiters" 9136) ;; #X23B0 (nil "rgroup" "Delimiters" 9133) ;; #X23AD (nil "lgroup" "Delimiters" 9129) ;; #X23A9 (nil "backslash" "Delimiters" 92) ;; #X005C (nil "|" "Delimiters" 8214) ;; #X2016) (nil "arrowvert" "Delimiters") (nil "Arrowvert" "Delimiters") (nil "bracevert" "Delimiters") (nil "widetilde" "Constructs" 771) ;; #X0303 (nil "widehat" "Constructs" 770) ;; #X0302 (nil "overleftarrow" "Constructs" 8406) ;; #X20D6 (nil "overrightarrow" "Constructs") (nil "overline" "Constructs" 773) ;; #X0305 (nil "underline" "Constructs" 818) ;; #X0332 (nil "overbrace" "Constructs" 65079) ;; #XFE37 (nil "underbrace" "Constructs" 65080) ;; #XFE38 (nil "sqrt" "Constructs" 8730) ;; #X221A (nil "frac" "Constructs") (?^ "hat" "Accents" 770) ;; #X0302 (nil "acute" "Accents" 769) ;; #X0301 (nil "bar" "Accents" 772) ;; #X0304 (nil "dot" "Accents" 775) ;; #X0307 (nil "breve" "Accents" 774) ;; #X0306 (nil "check" "Accents" 780) ;; #X030C (nil "grave" "Accents" 768) ;; #X0300 (nil "vec" "Accents" 8407) ;; #X20D7 (nil "ddot" "Accents" 776) ;; #X0308 (?~ "tilde" "Accents" 771) ;; #X0303 (nil "mathring" "Accents" 778) ;; #X030A (nil "beth" ("AMS" "Hebrew") 8502) ;; #X2136 (nil "daleth" ("AMS" "Hebrew") 8504) ;; #X2138 (nil "gimel" ("AMS" "Hebrew") 8503) ;; #X2137 (nil "digamma" ("AMS" "Greek Lowercase") 989) ;; #X03DD ("v k" "varkappa" ("AMS" "Greek Lowercase") 1008) ;; #X03F0 ("v G" "varGamma" ("AMS" "Greek Uppercase") 120548) ;; #X1D6E4 ("v D" "varDelta" ("AMS" "Greek Uppercase") 120549) ;; #X1D6E5 ("v J" "varTheta" ("AMS" "Greek Uppercase") 120553) ;; #X1D6E9 ("v L" "varLambda" ("AMS" "Greek Uppercase") 120556) ;; #X1D6EC ("v X" "varXi" ("AMS" "Greek Uppercase") 120559) ;; #X1D6EF ("v P" "varPi" ("AMS" "Greek Uppercase") 120561) ;; #X1D6F1 ("v S" "varSigma" ("AMS" "Greek Uppercase") 120564) ;; #X1D6F4 ("v U" "varUpsilon" ("AMS" "Greek Uppercase") 120566) ;; #X1D6F6 ("v F" "varPhi" ("AMS" "Greek Uppercase") 120567) ;; #X1D6F7 ("v Y" "varPsi" ("AMS" "Greek Uppercase") 120569) ;; #X1D6F9 ("v W" "varOmega" ("AMS" "Greek Uppercase") 120570) ;; #X1D6FA (nil "dashrightarrow" ("AMS" "Arrows")) (nil "dashleftarrow" ("AMS" "Arrows")) (nil "impliedby" ("AMS" "Arrows") 10232) ;; #X27F8 (nil "implies" ("AMS" "Arrows") 10233) ;; #X27F9 (nil "leftleftarrows" ("AMS" "Arrows") 8647) ;; #X21C7 (nil "leftrightarrows" ("AMS" "Arrows") 8646) ;; #X21C6 (nil "Lleftarrow" ("AMS" "Arrows") 8666) ;; #X21DA (nil "twoheadleftarrow" ("AMS" "Arrows") 8606) ;; #X219E (nil "leftarrowtail" ("AMS" "Arrows") 8610) ;; #X21A2 (nil "looparrowleft" ("AMS" "Arrows") 8619) ;; #X21AB (nil "leftrightharpoons" ("AMS" "Arrows") 8651) ;; #X21CB (nil "curvearrowleft" ("AMS" "Arrows") 8630) ;; #X21B6 (nil "circlearrowleft" ("AMS" "Arrows") 8634) ;; #X21BA (nil "Lsh" ("AMS" "Arrows") 8624) ;; #X21B0 (nil "upuparrows" ("AMS" "Arrows") 8648) ;; #X21C8 (nil "upharpoonleft" ("AMS" "Arrows") 8639) ;; #X21BF (nil "downharpoonleft" ("AMS" "Arrows") 8643) ;; #X21C3 (nil "multimap" ("AMS" "Arrows") 8888) ;; #X22B8 (nil "leftrightsquigarrow" ("AMS" "Arrows") 8621) ;; #X21AD (nil "looparrowright" ("AMS" "Arrows") 8620) ;; #X21AC (nil "rightleftharpoons" ("AMS" "Arrows") 8652) ;; #X21CC (nil "curvearrowright" ("AMS" "Arrows") 8631) ;; #X21B7 (nil "circlearrowright" ("AMS" "Arrows")) (nil "Rsh" ("AMS" "Arrows") 8625) ;; #X21B1 (nil "downdownarrows" ("AMS" "Arrows") 8650) ;; #X21CA (nil "upharpoonright" ("AMS" "Arrows") 8638) ;; #X21BE (nil "downharpoonright" ("AMS" "Arrows") 8642) ;; #X21C2 (nil "rightsquigarrow" ("AMS" "Arrows") 8605) ;; #X219D (nil "nleftarrow" ("AMS" "Neg Arrows") 8602) ;; #X219A (nil "nrightarrow" ("AMS" "Neg Arrows") 8603) ;; #X219B (nil "nLeftarrow" ("AMS" "Neg Arrows") 8653) ;; #X21CD (nil "nRightarrow" ("AMS" "Neg Arrows") 8655) ;; #X21CF (nil "nleftrightarrow" ("AMS" "Neg Arrows") 8622) ;; #X21AE (nil "nLeftrightarrow" ("AMS" "Neg Arrows") 8654) ;; #X21CE (nil "leqq" ("AMS" "Relational I") 8806) ;; #X2266 (nil "leqslant" ("AMS" "Relational I") 10877) ;; #X2A7D (nil "eqslantless" ("AMS" "Relational I") 10901) ;; #X2A95 (nil "lesssim" ("AMS" "Relational I") 8818) ;; #X2272 (nil "lessapprox" ("AMS" "Relational I") 10885) ;; #X2A85 (nil "approxeq" ("AMS" "Relational I") 8778) ;; #X224A (nil "lessdot" ("AMS" "Relational I") 8918) ;; #X22D6 (nil "lll" ("AMS" "Relational I") 8920) ;; #X22D8 (nil "lessgtr" ("AMS" "Relational I") 8822) ;; #X2276 (nil "lesseqgtr" ("AMS" "Relational I") 8922) ;; #X22DA (nil "lesseqqgtr" ("AMS" "Relational I") 10891) ;; #X2A8B (nil "doteqdot" ("AMS" "Relational I") 8785) ;; #X2251 (nil "risingdotseq" ("AMS" "Relational I") 8787) ;; #X2253 (nil "fallingdotseq" ("AMS" "Relational I") 8786) ;; #X2252 (nil "backsim" ("AMS" "Relational I") 8765) ;; #X223D (nil "backsimeq" ("AMS" "Relational I") 8909) ;; #X22CD (nil "subseteqq" ("AMS" "Relational I") 10949) ;; #X2AC5 (nil "Subset" ("AMS" "Relational I") 8912) ;; #X22D0 (nil "sqsubset" ("AMS" "Relational I") 8847) ;; #X228F (nil "preccurlyeq" ("AMS" "Relational I") 8828) ;; #X227C (nil "curlyeqprec" ("AMS" "Relational I") 8926) ;; #X22DE (nil "precsim" ("AMS" "Relational I") 8830) ;; #X227E (nil "precapprox" ("AMS" "Relational I") 10935) ;; #X2AB7 (nil "vartriangleleft" ("AMS" "Relational I") 8882) ;; #X22B2 (nil "trianglelefteq" ("AMS" "Relational I") 8884) ;; #X22B4 (nil "vDash" ("AMS" "Relational I") 8872) ;; #X22A8 (nil "Vvdash" ("AMS" "Relational I") 8874) ;; #X22AA (nil "smallsmile" ("AMS" "Relational I") 8995) ;; #X2323 (nil "smallfrown" ("AMS" "Relational I") 8994) ;; #X2322 (nil "bumpeq" ("AMS" "Relational I") 8783) ;; #X224F (nil "Bumpeq" ("AMS" "Relational I") 8782) ;; #X224E (nil "geqq" ("AMS" "Relational II") 8807) ;; #X2267 (nil "geqslant" ("AMS" "Relational II") 10878) ;; #X2A7E (nil "eqslantgtr" ("AMS" "Relational II") 10902) ;; #X2A96 (nil "gtrsim" ("AMS" "Relational II") 8819) ;; #X2273 (nil "gtrapprox" ("AMS" "Relational II") 10886) ;; #X2A86 (nil "gtrdot" ("AMS" "Relational II") 8919) ;; #X22D7 (nil "ggg" ("AMS" "Relational II") 8921) ;; #X22D9 (nil "gtrless" ("AMS" "Relational II") 8823) ;; #X2277 (nil "gtreqless" ("AMS" "Relational II") 8923) ;; #X22DB (nil "gtreqqless" ("AMS" "Relational II") 10892) ;; #X2A8C (nil "eqcirc" ("AMS" "Relational II") 8790) ;; #X2256 (nil "circeq" ("AMS" "Relational II") 8791) ;; #X2257 (nil "triangleq" ("AMS" "Relational II") 8796) ;; #X225C (nil "thicksim" ("AMS" "Relational II") 8764) ;; #X223C (nil "thickapprox" ("AMS" "Relational II") 8776) ;; #X2248 (nil "supseteqq" ("AMS" "Relational II") 10950) ;; #X2AC6 (nil "Supset" ("AMS" "Relational II") 8913) ;; #X22D1 (nil "sqsupset" ("AMS" "Relational II") 8848) ;; #X2290 (nil "succcurlyeq" ("AMS" "Relational II") 8829) ;; #X227D (nil "curlyeqsucc" ("AMS" "Relational II") 8927) ;; #X22DF (nil "succsim" ("AMS" "Relational II") 8831) ;; #X227F (nil "succapprox" ("AMS" "Relational II") 10936) ;; #X2AB8 (nil "vartriangleright" ("AMS" "Relational II") 8883) ;; #X22B3 (nil "trianglerighteq" ("AMS" "Relational II") 8885) ;; #X22B5 (nil "Vdash" ("AMS" "Relational II") 8873) ;; #X22A9 (nil "shortmid" ("AMS" "Relational II") 8739) ;; #X2223 (nil "shortparallel" ("AMS" "Relational II") 8741) ;; #X2225 (nil "between" ("AMS" "Relational II") 8812) ;; #X226C (nil "pitchfork" ("AMS" "Relational II") 8916) ;; #X22D4 (nil "varpropto" ("AMS" "Relational II") 8733) ;; #X221D (nil "blacktriangleleft" ("AMS" "Relational II") 9664) ;; #X25C0 (nil "therefore" ("AMS" "Relational II") 8756) ;; #X2234 (nil "backepsilon" ("AMS" "Relational II") 1014) ;; #X03F6 (nil "blacktriangleright" ("AMS" "Relational II") 9654) ;; #X25B6 (nil "because" ("AMS" "Relational II") 8757) ;; #X2235 (nil "nless" ("AMS" "Neg Rel I") 8814) ;; #X226E (nil "nleq" ("AMS" "Neg Rel I") 8816) ;; #X2270 (nil "nleqslant" ("AMS" "Neg Rel I")) (nil "nleqq" ("AMS" "Neg Rel I")) (nil "lneq" ("AMS" "Neg Rel I") 10887) ;; #X2A87 (nil "lneqq" ("AMS" "Neg Rel I") 8808) ;; #X2268 (nil "lvertneqq" ("AMS" "Neg Rel I")) (nil "lnsim" ("AMS" "Neg Rel I") 8934) ;; #X22E6 (nil "lnapprox" ("AMS" "Neg Rel I") 10889) ;; #X2A89 (nil "nprec" ("AMS" "Neg Rel I") 8832) ;; #X2280 (nil "npreceq" ("AMS" "Neg Rel I")) (nil "precnsim" ("AMS" "Neg Rel I") 8936) ;; #X22E8 (nil "precnapprox" ("AMS" "Neg Rel I") 10937) ;; #X2AB9 (nil "nsim" ("AMS" "Neg Rel I") 8769) ;; #X2241 (nil "nshortmid" ("AMS" "Neg Rel I") 8740) ;; #X2224 (nil "nmid" ("AMS" "Neg Rel I") 8740) ;; #X2224 (nil "nvdash" ("AMS" "Neg Rel I") 8876) ;; #X22AC (nil "nvDash" ("AMS" "Neg Rel I") 8877) ;; #X22AD (nil "ntriangleleft" ("AMS" "Neg Rel I") 8938) ;; #X22EA (nil "ntrianglelefteq" ("AMS" "Neg Rel I") 8940) ;; #X22EC (nil "nsubseteq" ("AMS" "Neg Rel I") 8840) ;; #X2288 (nil "subsetneq" ("AMS" "Neg Rel I") 8842) ;; #X228A (nil "varsubsetneq" ("AMS" "Neg Rel I")) (nil "subsetneqq" ("AMS" "Neg Rel I") 10955) ;; #X2ACB (nil "varsubsetneqq" ("AMS" "Neg Rel I")) (nil "ngtr" ("AMS" "Neg Rel II") 8815) ;; #X226F (nil "ngeq" ("AMS" "Neg Rel II") 8817) ;; #X2271 (nil "ngeqslant" ("AMS" "Neg Rel II")) (nil "ngeqq" ("AMS" "Neg Rel II")) (nil "gneq" ("AMS" "Neg Rel II") 10888) ;; #X2A88 (nil "gneqq" ("AMS" "Neg Rel II") 8809) ;; #X2269 (nil "gvertneqq" ("AMS" "Neg Rel II")) (nil "gnsim" ("AMS" "Neg Rel II") 8935) ;; #X22E7 (nil "gnapprox" ("AMS" "Neg Rel II") 10890) ;; #X2A8A (nil "nsucc" ("AMS" "Neg Rel II") 8833) ;; #X2281 (nil "nsucceq" ("AMS" "Neg Rel II")) (nil "succnsim" ("AMS" "Neg Rel II") 8937) ;; #X22E9 (nil "succnapprox" ("AMS" "Neg Rel II") 10938) ;; #X2ABA (nil "ncong" ("AMS" "Neg Rel II") 8775) ;; #X2247 (nil "nshortparallel" ("AMS" "Neg Rel II") 8742) ;; #X2226 (nil "nparallel" ("AMS" "Neg Rel II") 8742) ;; #X2226 (nil "nvDash" ("AMS" "Neg Rel II") 8877) ;; #X22AD (nil "nVDash" ("AMS" "Neg Rel II") 8879) ;; #X22AF (nil "ntriangleright" ("AMS" "Neg Rel II") 8939) ;; #X22EB (nil "ntrianglerighteq" ("AMS" "Neg Rel II") 8941) ;; #X22ED (nil "nsupseteq" ("AMS" "Neg Rel II") 8841) ;; #X2289 (nil "nsupseteqq" ("AMS" "Neg Rel II")) (nil "supsetneq" ("AMS" "Neg Rel II") 8843) ;; #X228B (nil "varsupsetneq" ("AMS" "Neg Rel II")) (nil "supsetneqq" ("AMS" "Neg Rel II") 10956) ;; #X2ACC (nil "varsupsetneqq" ("AMS" "Neg Rel II")) (nil "dotplus" ("AMS" "Binary Op") 8724) ;; #X2214 (nil "smallsetminus" ("AMS" "Binary Op") 8726) ;; #X2216 (nil "Cap" ("AMS" "Binary Op") 8914) ;; #X22D2 (nil "Cup" ("AMS" "Binary Op") 8915) ;; #X22D3 (nil "barwedge" ("AMS" "Binary Op") 8892) ;; #X22BC (nil "veebar" ("AMS" "Binary Op") 8891) ;; #X22BB (nil "doublebarwedge" ("AMS" "Binary Op") 8966) ;; #X2306 (nil "boxminus" ("AMS" "Binary Op") 8863) ;; #X229F (nil "boxtimes" ("AMS" "Binary Op") 8864) ;; #X22A0 (nil "boxdot" ("AMS" "Binary Op") 8865) ;; #X22A1 (nil "boxplus" ("AMS" "Binary Op") 8862) ;; #X229E (nil "divideontimes" ("AMS" "Binary Op") 8903) ;; #X22C7 (nil "ltimes" ("AMS" "Binary Op") 8905) ;; #X22C9 (nil "rtimes" ("AMS" "Binary Op") 8906) ;; #X22CA (nil "leftthreetimes" ("AMS" "Binary Op") 8907) ;; #X22CB (nil "rightthreetimes" ("AMS" "Binary Op") 8908) ;; #X22CC (nil "curlywedge" ("AMS" "Binary Op") 8911) ;; #X22CF (nil "curlyvee" ("AMS" "Binary Op") 8910) ;; #X22CE (nil "circleddash" ("AMS" "Binary Op") 8861) ;; #X229D (nil "circledast" ("AMS" "Binary Op") 8859) ;; #X229B (nil "circledcirc" ("AMS" "Binary Op") 8858) ;; #X229A (nil "centerdot" ("AMS" "Binary Op")) (nil "intercal" ("AMS" "Binary Op") 8890) ;; #X22BA (nil "hbar" ("AMS" "Misc") 8463) ;; #X210F (nil "hslash" ("AMS" "Misc") 8463) ;; #X210F (nil "vartriangle" ("AMS" "Misc") 9653) ;; #X25B5 (nil "triangledown" ("AMS" "Misc") 9663) ;; #X25BF (nil "square" ("AMS" "Misc") 9633) ;; #X25A1 (nil "lozenge" ("AMS" "Misc") 9674) ;; #X25CA (nil "circledS" ("AMS" "Misc") 9416) ;; #X24C8 (nil "angle" ("AMS" "Misc") 8736) ;; #X2220 (nil "measuredangle" ("AMS" "Misc") 8737) ;; #X2221 (nil "nexists" ("AMS" "Misc") 8708) ;; #X2204 (nil "mho" ("AMS" "Misc") 8487) ;; #X2127 (nil "Finv" ("AMS" "Misc") 8498) ;; #X2132 (nil "Game" ("AMS" "Misc") 8513) ;; #X2141 (nil "Bbbk" ("AMS" "Misc") 120156) ;; #X1D55C (nil "backprime" ("AMS" "Misc") 8245) ;; #X2035 (nil "varnothing" ("AMS" "Misc") 8709) ;; #X2205 (nil "blacktriangle" ("AMS" "Misc") 9652) ;; #X25B4 (nil "blacktriangledown" ("AMS" "Misc") 9662) ;; #X25BE (nil "blacksquare" ("AMS" "Misc") 9632) ;; #X25A0 (nil "blacklozenge" ("AMS" "Misc") 10731) ;; #X29EB (nil "bigstar" ("AMS" "Misc") 9733) ;; #X2605 (nil "sphericalangle" ("AMS" "Misc") 8738) ;; #X2222 (nil "complement" ("AMS" "Misc") 8705) ;; #X2201 (nil "eth" ("AMS" "Misc") 240) ;; #X00F0 (nil "diagup" ("AMS" "Misc") 9585) ;; #X2571 (nil "diagdown" ("AMS" "Misc") 9586) ;; #X2572 (nil "dddot" ("AMS" "Accents") 8411) ;; #X20DB (nil "ddddot" ("AMS" "Accents") 8412) ;; #X20DC (nil "bigl" ("AMS" "Delimiters")) (nil "bigr" ("AMS" "Delimiters")) (nil "Bigl" ("AMS" "Delimiters")) (nil "Bigr" ("AMS" "Delimiters")) (nil "biggl" ("AMS" "Delimiters")) (nil "biggr" ("AMS" "Delimiters")) (nil "Biggl" ("AMS" "Delimiters")) (nil "Biggr" ("AMS" "Delimiters")) (nil "lvert" ("AMS" "Delimiters")) (nil "rvert" ("AMS" "Delimiters")) (nil "lVert" ("AMS" "Delimiters")) (nil "rVert" ("AMS" "Delimiters")) (nil "ulcorner" ("AMS" "Delimiters") 8988) ;; #X231C (nil "urcorner" ("AMS" "Delimiters") 8989) ;; #X231D (nil "llcorner" ("AMS" "Delimiters") 8990) ;; #X231E (nil "lrcorner" ("AMS" "Delimiters") 8991) ;; #X231F (nil "nobreakdash" ("AMS" "Special")) (nil "leftroot" ("AMS" "Special")) (nil "uproot" ("AMS" "Special")) (nil "accentedsymbol" ("AMS" "Special")) (nil "xleftarrow" ("AMS" "Special")) (nil "xrightarrow" ("AMS" "Special")) (nil "overset" ("AMS" "Special")) (nil "underset" ("AMS" "Special")) (nil "dfrac" ("AMS" "Special")) (nil "genfrac" ("AMS" "Special")) (nil "tfrac" ("AMS" "Special")) (nil "binom" ("AMS" "Special")) (nil "dbinom" ("AMS" "Special")) (nil "tbinom" ("AMS" "Special")) (nil "smash" ("AMS" "Special")) (nil "eucal" ("AMS" "Special")) (nil "boldsymbol" ("AMS" "Special")) (nil "text" ("AMS" "Special")) (nil "intertext" ("AMS" "Special")) (nil "substack" ("AMS" "Special")) (nil "subarray" ("AMS" "Special")) (nil "sideset" ("AMS" "Special"))) "Alist of LaTeX math symbols. Each entry should be a list with upto four elements, KEY, VALUE, MENU and CHARACTER, see `LaTeX-math-list' for details.") (defcustom LaTeX-math-list nil "Alist of your personal LaTeX math symbols. Each entry should be a list with up to four elements, KEY, VALUE, MENU and CHARACTER. KEY is the key (after `LaTeX-math-abbrev-prefix') to be redefined in math minor mode. If KEY is nil, the symbol has no associated keystroke \(it is available in the menu, though\). VALUE can be a string with the name of the macro to be inserted, or a function to be called. The macro must be given without the leading backslash. The third element MENU is the name of the submenu where the command should be added. MENU can be either a string \(e.g. \"greek\"\), a list (e.g. \(\"AMS\" \"Delimiters\"\)\) or nil. If MENU is nil, no menu item will be created. The fourth element CHARACTER is a Unicode character position for menu display. When nil, no character is shown. See also `LaTeX-math-menu'." :group 'LaTeX-math :set (lambda (symbol value) (set-default symbol value) (LaTeX-math-initialize)) :type '(repeat (group (choice :tag "Key" (const :tag "none" nil) (choice (character) (string :tag "Key sequence"))) (choice :tag "Value" (string :tag "Macro") (function)) (choice :tag "Menu" (string :tag "Top level menu" ) (repeat :tag "Submenu" (string :tag "Menu"))) (choice :tag "Unicode character" (const :tag "none" nil) (integer :tag "Number"))))) (define-minor-mode LaTeX-math-mode "A minor mode with easy access to TeX math macros. Easy insertion of LaTeX math symbols. If you give a prefix argument, the symbols will be surrounded by dollar signs. The following commands are defined: \\{LaTeX-math-mode-map}" nil nil (list (cons (LaTeX-math-abbrev-prefix) LaTeX-math-keymap)) (if LaTeX-math-mode (easy-menu-add LaTeX-math-mode-menu LaTeX-math-mode-map) (easy-menu-remove LaTeX-math-mode-menu)) (TeX-set-mode-name)) (defalias 'latex-math-mode 'LaTeX-math-mode) (easy-menu-define LaTeX-math-mode-menu LaTeX-math-mode-map "Menu used in math minor mode." LaTeX-math-menu) (defcustom LaTeX-math-insert-function 'TeX-insert-macro "Function called with argument STRING to insert \\STRING." :group 'LaTeX-math :type 'function) (defun LaTeX-math-insert (string dollar) "Insert \\STRING{}. If DOLLAR is non-nil, put $'s around it. If `TeX-electric-math' is non-nil wrap that symbols around the string." (if dollar (insert (or (car TeX-electric-math) "$"))) (funcall LaTeX-math-insert-function string) (if dollar (insert (or (cdr TeX-electric-math) "$")))) (defun LaTeX-math-cal (char dollar) "Insert a {\\cal CHAR}. If DOLLAR is non-nil, put $'s around it. If `TeX-electric-math' is non-nil wrap that symbols around the char." (interactive "*c\nP") (if dollar (insert (or (car TeX-electric-math) "$"))) (if (member "latex2e" (TeX-style-list)) (insert "\\mathcal{" (char-to-string char) "}") (insert "{\\cal " (char-to-string char) "}")) (if dollar (insert (or (cdr TeX-electric-math) "$")))) ;;; Folding (defcustom LaTeX-fold-macro-spec-list nil "List of display strings and macros to fold in LaTeX mode." :type '(repeat (group (choice (string :tag "Display String") (integer :tag "Number of argument" :value 1)) (repeat :tag "Macros" (string)))) :group 'TeX-fold) (defcustom LaTeX-fold-env-spec-list nil "List of display strings and environments to fold in LaTeX mode." :type '(repeat (group (choice (string :tag "Display String") (integer :tag "Number of argument" :value 1)) (repeat :tag "Environments" (string)))) :group 'TeX-fold) (defcustom LaTeX-fold-math-spec-list (delete nil (mapcar (lambda (elt) (let ((tex-token (nth 1 elt)) (submenu (nth 2 elt)) (unicode (nth 3 elt)) uchar noargp) (when (and (fboundp 'decode-char) (integerp unicode)) (setq uchar (decode-char 'ucs unicode))) (when (listp submenu) (setq submenu (nth 1 submenu))) (setq noargp (not (string-match (concat "^" (regexp-opt '("Constructs" "Accents"))) submenu))) (when (and (stringp tex-token) (integerp uchar) noargp) `(,(char-to-string uchar) (,tex-token))))) `((nil "to" "" 8594) (nil "gets" "" 8592) ,@LaTeX-math-default))) "List of display strings and math macros to fold in LaTeX mode." :type '(repeat (group (choice (string :tag "Display String") (integer :tag "Number of argument" :value 1)) (repeat :tag "Math Macros" (string)))) :group 'TeX-fold) ;;; Narrowing (defun LaTeX-narrow-to-environment (&optional count) "Make text outside current environment invisible. With optional COUNT keep visible that number of enclosing environments." (interactive "p") (setq count (if count (abs count) 1)) (save-excursion (widen) (let ((opoint (point)) beg end) (dotimes (c count) (LaTeX-find-matching-end)) (setq end (point)) (goto-char opoint) (dotimes (c count) (LaTeX-find-matching-begin)) (setq beg (point)) (narrow-to-region beg end)))) (put 'LaTeX-narrow-to-environment 'disabled t) ;;; Keymap (defvar LaTeX-mode-map (let ((map (make-sparse-keymap))) (set-keymap-parent map TeX-mode-map) ;; Standard (define-key map "\n" 'reindent-then-newline-and-indent) ;; From latex.el ;; We now set `fill-paragraph-function' instead. ;; (define-key map "\eq" 'LaTeX-fill-paragraph) ;*** Alias ;; This key is now used by Emacs for face settings. ;; (define-key map "\eg" 'LaTeX-fill-region) ;*** Alias (define-key map "\e\C-e" 'LaTeX-find-matching-end) (define-key map "\e\C-a" 'LaTeX-find-matching-begin) (define-key map "\C-c\C-q\C-p" 'LaTeX-fill-paragraph) (define-key map "\C-c\C-q\C-r" 'LaTeX-fill-region) (define-key map "\C-c\C-q\C-s" 'LaTeX-fill-section) (define-key map "\C-c\C-q\C-e" 'LaTeX-fill-environment) (define-key map "\C-c\C-z" 'LaTeX-command-section) (define-key map "\C-c\M-z" 'LaTeX-command-section-change-level) (define-key map "\C-c." 'LaTeX-mark-environment) ;*** Dubious (define-key map "\C-c*" 'LaTeX-mark-section) ;*** Dubious (define-key map "\C-c\C-e" 'LaTeX-environment) (define-key map "\C-c\n" 'LaTeX-insert-item) (or (key-binding "\e\r") (define-key map "\e\r" 'LaTeX-insert-item)) ;*** Alias (define-key map "\C-c]" 'LaTeX-close-environment) (define-key map "\C-c\C-s" 'LaTeX-section) (define-key map "\C-c~" 'LaTeX-math-mode) ;*** Dubious (define-key map "-" 'LaTeX-babel-insert-hyphen) (define-key map "(" 'LaTeX-insert-left-brace) (define-key map "{" 'LaTeX-insert-left-brace) (define-key map "[" 'LaTeX-insert-left-brace) map) "Keymap used in `LaTeX-mode'.") (defvar LaTeX-environment-menu-name "Insert Environment (C-c C-e)") (defun LaTeX-environment-menu-entry (entry) "Create an entry for the environment menu." (vector (car entry) (list 'LaTeX-environment-menu (car entry)) t)) (defvar LaTeX-environment-modify-menu-name "Change Environment (C-u C-c C-e)") (defun LaTeX-environment-modify-menu-entry (entry) "Create an entry for the change environment menu." (vector (car entry) (list 'LaTeX-modify-environment (car entry)) t)) (defun LaTeX-section-enable-symbol (level) "Symbol used to enable section LEVEL in the menu bar." (intern (concat "LaTeX-section-" (int-to-string level) "-enable"))) (defun LaTeX-section-enable (entry) "Enable or disable section ENTRY from `LaTeX-section-list'." (let* ((level (nth 1 entry)) (symbol (LaTeX-section-enable-symbol level))) (set symbol (or (= level 0) (>= level LaTeX-largest-level))) (make-variable-buffer-local symbol))) (defun LaTeX-section-menu (level) "Insert section from menu." (let ((LaTeX-section-hook (delq 'LaTeX-section-heading (copy-sequence LaTeX-section-hook)))) (LaTeX-section level))) (defun LaTeX-section-menu-entry (entry) "Create an ENTRY for the section menu." (let ((enable (LaTeX-section-enable-symbol (nth 1 entry)))) (vector (car entry) (list 'LaTeX-section-menu (nth 1 entry)) enable))) (defcustom LaTeX-menu-max-items 25 "*Maximum number of items in the menu for LaTeX environments. If number of entries in a menu is larger than this value, split menu into submenus of nearly equal length. If nil, never split menu into submenus." :group 'LaTeX-environment :type '(choice (const :tag "no submenus" nil) (integer))) (defcustom LaTeX-submenu-name-format "%-12.12s ... %.12s" "*Format specification of the submenu name. Used by `LaTeX-split-long-menu' if the number of entries in a menu is larger than `LaTeX-menu-max-items'. This string should contain one %s for the name of the first entry and one %s for the name of the last entry in the submenu. If the value is a function, it should return the submenu name. The function is called with two arguments, the names of the first and the last entry in the menu." :group 'LaTeX-environment :type '(choice (string :tag "Format string") (function))) (defun LaTeX-split-long-menu (menu) "Split MENU according to `LaTeX-menu-max-items'." (let ((len (length menu))) (if (or (null LaTeX-menu-max-items) (null (featurep 'lisp-float-type)) (<= len LaTeX-menu-max-items)) menu ;; Submenu is max 2 entries longer than menu, never shorter, number of ;; entries in submenus differ by at most one (with longer submenus first) (let* ((outer (floor (sqrt len))) (inner (/ len outer)) (rest (% len outer)) (result nil)) (setq menu (reverse menu)) (while menu (let ((in inner) (sub nil) (to (car menu))) (while (> in 0) (setq in (1- in) sub (cons (car menu) sub) menu (cdr menu))) (setq result (cons (cons (if (stringp LaTeX-submenu-name-format) (format LaTeX-submenu-name-format (aref (car sub) 0) (aref to 0)) (funcall LaTeX-submenu-name-format (aref (car sub) 0) (aref to 0))) sub) result) rest (1+ rest)) (if (= rest outer) (setq inner (1+ inner))))) result)))) (defvar LaTeX-section-menu nil) (make-variable-buffer-local 'LaTeX-section-menu) (defun LaTeX-section-menu-filter (ignored) "Filter function for the section submenu in the mode menu. The argument IGNORED is not used in any way." (TeX-update-style) (or LaTeX-section-menu (progn (setq LaTeX-section-list-changed nil) (mapc 'LaTeX-section-enable LaTeX-section-list) (setq LaTeX-section-menu (mapcar 'LaTeX-section-menu-entry LaTeX-section-list))))) (defvar LaTeX-environment-menu nil) (make-variable-buffer-local 'LaTeX-environment-menu) (defvar LaTeX-environment-modify-menu nil) (make-variable-buffer-local 'LaTeX-environment-modify-menu) (defun LaTeX-environment-menu-filter (menu) "Filter function for the environment submenus in the mode menu. The argument MENU is the name of the submenu in concern and corresponds to the variables `LaTeX-environment-menu-name' and `LaTeX-environment-modify-menu-name'." (TeX-update-style) (cond ((string= menu LaTeX-environment-menu-name) (or LaTeX-environment-menu (setq LaTeX-environment-menu (LaTeX-split-long-menu (mapcar 'LaTeX-environment-menu-entry (LaTeX-environment-list)))))) ((string= menu LaTeX-environment-modify-menu-name) (or LaTeX-environment-modify-menu (setq LaTeX-environment-modify-menu (LaTeX-split-long-menu (mapcar 'LaTeX-environment-modify-menu-entry (LaTeX-environment-list)))))))) (defadvice LaTeX-add-environments (after LaTeX-invalidate-environment-menu (&rest environments) activate) "Add ENVIRONMENTS to the list of known environments. Additionally invalidate the environment submenus to let them be regenerated by the respective menu filter." (setq LaTeX-environment-menu nil) (setq LaTeX-environment-modify-menu nil)) (easy-menu-define LaTeX-mode-command-menu LaTeX-mode-map "Command menu used in LaTeX mode." (TeX-mode-specific-command-menu 'latex-mode)) (easy-menu-define LaTeX-mode-menu LaTeX-mode-map "Menu used in LaTeX mode." (TeX-menu-with-help `("LaTeX" ("Section (C-c C-s)" :filter LaTeX-section-menu-filter) ["Macro..." TeX-insert-macro :help "Insert a macro and possibly arguments"] ["Complete Macro" TeX-complete-symbol :help "Complete the current macro or environment name"] ,(list LaTeX-environment-menu-name :filter (lambda (ignored) (LaTeX-environment-menu-filter LaTeX-environment-menu-name))) ,(list LaTeX-environment-modify-menu-name :filter (lambda (ignored) (LaTeX-environment-menu-filter LaTeX-environment-modify-menu-name))) ["Close Environment" LaTeX-close-environment :help "Insert the \\end part of the current environment"] ["Item" LaTeX-insert-item :help "Insert a new \\item into current environment"] "-" ("Insert Font" ["Emphasize" (TeX-font nil ?\C-e) :keys "C-c C-f C-e"] ["Bold" (TeX-font nil ?\C-b) :keys "C-c C-f C-b"] ["Typewriter" (TeX-font nil ?\C-t) :keys "C-c C-f C-t"] ["Small Caps" (TeX-font nil ?\C-c) :keys "C-c C-f C-c"] ["Sans Serif" (TeX-font nil ?\C-f) :keys "C-c C-f C-f"] ["Italic" (TeX-font nil ?\C-i) :keys "C-c C-f C-i"] ["Slanted" (TeX-font nil ?\C-s) :keys "C-c C-f C-s"] ["Roman" (TeX-font nil ?\C-r) :keys "C-c C-f C-r"] ["Calligraphic" (TeX-font nil ?\C-a) :keys "C-c C-f C-a"]) ("Replace Font" ["Emphasize" (TeX-font t ?\C-e) :keys "C-u C-c C-f C-e"] ["Bold" (TeX-font t ?\C-b) :keys "C-u C-c C-f C-b"] ["Typewriter" (TeX-font t ?\C-t) :keys "C-u C-c C-f C-t"] ["Small Caps" (TeX-font t ?\C-c) :keys "C-u C-c C-f C-c"] ["Sans Serif" (TeX-font t ?\C-f) :keys "C-u C-c C-f C-f"] ["Italic" (TeX-font t ?\C-i) :keys "C-u C-c C-f C-i"] ["Slanted" (TeX-font t ?\C-s) :keys "C-u C-c C-f C-s"] ["Roman" (TeX-font t ?\C-r) :keys "C-u C-c C-f C-r"] ["Calligraphic" (TeX-font t ?\C-a) :keys "C-u C-c C-f C-a"]) ["Delete Font" (TeX-font t ?\C-d) :keys "C-c C-f C-d"] "-" ["Comment or Uncomment Region" TeX-comment-or-uncomment-region :help "Make the selected region outcommented or active again"] ["Comment or Uncomment Paragraph" TeX-comment-or-uncomment-paragraph :help "Make the current paragraph outcommented or active again"] ("Formatting and Marking" ["Format Environment" LaTeX-fill-environment :help "Fill and indent the current environment"] ["Format Paragraph" LaTeX-fill-paragraph :help "Fill and ident the current paragraph"] ["Format Region" LaTeX-fill-region :help "Fill and indent the currently selected region"] ["Format Section" LaTeX-fill-section :help "Fill and indent the current section"] "-" ["Mark Environment" LaTeX-mark-environment :help "Mark the current environment"] ["Mark Section" LaTeX-mark-section :help "Mark the current section"] "-" ["Beginning of Environment" LaTeX-find-matching-begin :help "Move point to the beginning of the current environment"] ["End of Environment" LaTeX-find-matching-end :help "Move point to the end of the current environment"]) ,TeX-fold-menu ["Math Mode" LaTeX-math-mode :style toggle :selected LaTeX-math-mode :help "Toggle math mode"] "-" [ "Convert 209 to 2e" LaTeX-209-to-2e :visible (member "latex2" (TeX-style-list)) ] . ,TeX-common-menu-entries))) (defcustom LaTeX-font-list '((?\C-a "" "" "\\mathcal{" "}") (?\C-b "\\textbf{" "}" "\\mathbf{" "}") (?\C-c "\\textsc{" "}") (?\C-e "\\emph{" "}") (?\C-f "\\textsf{" "}" "\\mathsf{" "}") (?\C-i "\\textit{" "}" "\\mathit{" "}") (?\C-m "\\textmd{" "}") (?\C-n "\\textnormal{" "}" "\\mathnormal{" "}") (?\C-r "\\textrm{" "}" "\\mathrm{" "}") (?\C-s "\\textsl{" "}" "\\mathbb{" "}") (?\C-t "\\texttt{" "}" "\\mathtt{" "}") (?\C-u "\\textup{" "}") (?\C-d "" "" t)) "Font commands used with LaTeX2e. See `TeX-font-list'." :group 'LaTeX-macro :type '(repeat (group :value (?\C-a "" "") (character :tag "Key") (string :tag "Prefix") (string :tag "Suffix") (option (group :inline t (string :tag "Math Prefix") (string :tag "Math Suffix"))) (option (sexp :format "Replace\n" :value t))))) ;;; Simple Commands (defcustom LaTeX-babel-hyphen "\"=" "String to be used when typing `-'. This usually is a hyphen alternative or hyphenation aid, like \"=, \"~ or \"-, provided by babel and the related language style files. Set it to an empty string or nil in order to disable this feature. Alter `LaTeX-babel-hyphen-language-alist' in case you want to change the behavior for a specific language only." :group 'LaTeX-macro :type 'string) (defcustom LaTeX-babel-hyphen-after-hyphen t "Control insertion of hyphen strings. If non-nil insert normal hyphen on first key press and swap it with the language-specific hyphen string specified in the variable `LaTeX-babel-hyphen' on second key press. If nil do it the other way round." :group 'LaTeX-macro :type 'boolean) (defcustom LaTeX-babel-hyphen-language-alist nil "Alist controlling hyphen insertion for specific languages. It may be used to override the defaults given by `LaTeX-babel-hyphen' and `LaTeX-babel-hyphen-after-hyphen' respectively. The first item in each element is a string specifying the language as set by the language-specific style file. The second item is the string to be used instead of `LaTeX-babel-hyphen'. The third element is the value overriding `LaTeX-babel-hyphen-after-hyphen'." :group 'LaTeX-macro :type '(alist :key-type (string :tag "Language") :value-type (group (string :tag "Hyphen string") (boolean :tag "Insert plain hyphen first" :value t)))) (defvar LaTeX-babel-hyphen-language nil "String determining language-specific behavior of hyphen insertion. It serves as an indicator that the babel hyphenation string should be used and as a means to find a potential customization in `LaTeX-babel-hyphen-language-alist' related to the active language. It is usually set by language-related style files.") (make-variable-buffer-local 'LaTeX-babel-hyphen-language) (defun LaTeX-babel-insert-hyphen (force) "Insert a hyphen string. The string can be either a normal hyphen or the string specified in `LaTeX-babel-hyphen'. Wether one or the other is chosen depends on the value of `LaTeX-babel-hyphen-after-hyphen' and the buffer context. If prefix argument FORCE is non-nil, always insert a regular hyphen." (interactive "*P") (if (or force (zerop (length LaTeX-babel-hyphen)) (not LaTeX-babel-hyphen-language) ;; FIXME: It would be nice to check for verbatim constructs in the ;; non-font-locking case, but things like `LaTeX-current-environment' ;; are rather expensive in large buffers. (and (fboundp 'font-latex-faces-present-p) (font-latex-faces-present-p '(font-latex-verbatim-face font-latex-math-face font-lock-comment-face))) (texmathp) (TeX-in-comment)) (call-interactively 'self-insert-command) (let* ((lang (assoc LaTeX-babel-hyphen-language LaTeX-babel-hyphen-language-alist)) (hyphen (if lang (nth 1 lang) LaTeX-babel-hyphen)) (h-after-h (if lang (nth 2 lang) LaTeX-babel-hyphen-after-hyphen)) (hyphen-length (length hyphen))) (cond ;; "= --> -- / - ((string= (buffer-substring (max (- (point) hyphen-length) (point-min)) (point)) hyphen) (if h-after-h (progn (delete-char (- hyphen-length)) (insert "--")) (delete-char (- hyphen-length)) (call-interactively 'self-insert-command))) ;; -- --> [+]- ((string= (buffer-substring (max (- (point) 2) (point-min)) (point)) "--") (call-interactively 'self-insert-command)) ;; - --> "= / [+]- ((eq (char-before) ?-) (if h-after-h (progn (delete-char -1) (insert hyphen)) (call-interactively 'self-insert-command))) (h-after-h (call-interactively 'self-insert-command)) (t (insert hyphen)))))) ;; Cater for Delete Selection mode (put 'LaTeX-babel-insert-hyphen 'delete-selection t) (defcustom LaTeX-enable-toolbar t "Enable LaTeX tool bar." :group 'TeX-tool-bar :type 'boolean) (defun LaTeX-maybe-install-toolbar () "Conditionally install tool bar buttons for LaTeX mode. Install tool bar if `LaTeX-enable-toolbar' is non-nil." (when LaTeX-enable-toolbar ;; Defined in `tex-bar.el': (LaTeX-install-toolbar))) ;;; Mode (defgroup LaTeX-macro nil "Special support for LaTeX macros in AUCTeX." :prefix "TeX-" :group 'LaTeX :group 'TeX-macro) (defcustom TeX-arg-cite-note-p nil "*If non-nil, ask for optional note in citations." :type 'boolean :group 'LaTeX-macro) (defcustom TeX-arg-footnote-number-p nil "*If non-nil, ask for optional number in footnotes." :type 'boolean :group 'LaTeX-macro) (defcustom TeX-arg-item-label-p nil "*If non-nil, always ask for optional label in items. Otherwise, only ask in description environments." :type 'boolean :group 'LaTeX-macro) (defcustom TeX-arg-right-insert-p t "*If non-nil, always insert automatically the corresponding \\right. This happens when \\left is inserted." :type 'boolean :group 'LaTeX-macro) (defcustom LaTeX-mode-hook nil "A hook run in LaTeX mode buffers." :type 'hook :group 'LaTeX) (TeX-abbrev-mode-setup latex-mode) ;;;###autoload (add-to-list 'auto-mode-alist '("\\.drv\\'" . latex-mode)) ;; HeVeA files (LaTeX -> HTML converter: http://hevea.inria.fr/) ;;;###autoload (add-to-list 'auto-mode-alist '("\\.hva\\'" . latex-mode)) (when (fboundp 'declare-function) (declare-function LaTeX-preview-setup "preview")) ;;;###autoload (defun TeX-latex-mode () "Major mode in AUCTeX for editing LaTeX files. See info under AUCTeX for full documentation. Special commands: \\{LaTeX-mode-map} Entering LaTeX mode calls the value of `text-mode-hook', then the value of `TeX-mode-hook', and then the value of `LaTeX-mode-hook'." (interactive) (LaTeX-common-initialization) (setq TeX-base-mode-name "LaTeX") (setq major-mode 'latex-mode) (setq TeX-command-default "LaTeX") (setq TeX-sentinel-default-function 'TeX-LaTeX-sentinel) (add-hook 'tool-bar-mode-on-hook 'LaTeX-maybe-install-toolbar nil t) (when (if (featurep 'xemacs) (featurep 'toolbar) (and (boundp 'tool-bar-mode) tool-bar-mode)) (LaTeX-maybe-install-toolbar)) ;; Set the value of `LaTeX-using-Biber' based on the local value of ;; `LaTeX-biblatex-use-Biber'. This should be run within ;; `TeX-update-style-hook' before toolbarx-refresh, otherwise the bibliography ;; button could be wrongly set. (add-hook 'TeX-update-style-hook (lambda () (if (local-variable-p 'LaTeX-biblatex-use-Biber (current-buffer)) (setq LaTeX-using-Biber LaTeX-biblatex-use-Biber))) nil t) (TeX-run-mode-hooks 'text-mode-hook 'TeX-mode-hook 'LaTeX-mode-hook) (when (fboundp 'LaTeX-preview-setup) (LaTeX-preview-setup)) (TeX-set-mode-name) ;; Defeat filladapt (if (and (boundp 'filladapt-mode) filladapt-mode) (turn-off-filladapt-mode))) (TeX-abbrev-mode-setup doctex-mode) ;;;###autoload (add-to-list 'auto-mode-alist '("\\.dtx\\'" . doctex-mode)) ;;;###autoload (define-derived-mode docTeX-mode TeX-latex-mode "docTeX" "Major mode in AUCTeX for editing .dtx files derived from `LaTeX-mode'. Runs `LaTeX-mode', sets a few variables and runs the hooks in `docTeX-mode-hook'." :abbrev-table doctex-mode-abbrev-table (setq major-mode 'doctex-mode) (set (make-local-variable 'LaTeX-insert-into-comments) t) (set (make-local-variable 'LaTeX-syntactic-comments) t) (setq TeX-default-extension docTeX-default-extension) ;; Make filling and indentation aware of DocStrip guards. (setq paragraph-start (concat paragraph-start "\\|%<") paragraph-separate (concat paragraph-separate "\\|%<") TeX-comment-start-regexp "\\(?:%\\(?:<[^>]+>\\)?\\)") (setq TeX-base-mode-name "docTeX") (TeX-set-mode-name) (funcall TeX-install-font-lock)) ;;This is actually a mess: to fit the scheme properly, our derived ;;mode definition would have had to be made for TeX-doctex-mode in the ;;first place, but then we could not have used define-derived-mode, or ;;all mode-specific variables would have gotten non-AUCTeX names. ;;This solution has the advantage that documentation strings are ;;provided in the autoloads, and has the disadvantage that docTeX-mode ;;is not aliased to doctex-mode (not even when the AUCTeX version is ;;disabled) as would be normal for our scheme. ;;;###autoload (defalias 'TeX-doctex-mode 'docTeX-mode) (defcustom docTeX-clean-intermediate-suffixes TeX-clean-default-intermediate-suffixes "List of regexps matching suffixes of files to be deleted. The regexps will be anchored at the end of the file name to be matched, i.e. you do _not_ have to cater for this yourself by adding \\\\' or $." :type '(repeat regexp) :group 'TeX-command) (defcustom docTeX-clean-output-suffixes TeX-clean-default-output-suffixes "List of regexps matching suffixes of files to be deleted. The regexps will be anchored at the end of the file name to be matched, i.e. you do _not_ have to cater for this yourself by adding \\\\' or $." :type '(repeat regexp) :group 'TeX-command) (defvar LaTeX-header-end (concat "^[^%\n]*" (regexp-quote TeX-esc) "begin *" TeX-grop "document" TeX-grcl) "Default end of header marker for LaTeX documents.") (defvar LaTeX-trailer-start (concat "^[^%\n]*" (regexp-quote TeX-esc) "end *" TeX-grop "document" TeX-grcl) "Default start of trailer marker for LaTeX documents.") (defcustom LaTeX-clean-intermediate-suffixes (append TeX-clean-default-intermediate-suffixes ;; These are extensions of files created by makeglossaries. '("\\.acn" "\\.acr" "\\.alg" "\\.glg" "\\.ist")) "List of regexps matching suffixes of files to be deleted. The regexps will be anchored at the end of the file name to be matched, i.e. you do _not_ have to cater for this yourself by adding \\\\' or $." :type '(repeat regexp) :group 'TeX-command) (defcustom LaTeX-clean-output-suffixes TeX-clean-default-output-suffixes "List of regexps matching suffixes of files to be deleted. The regexps will be anchored at the end of the file name to be matched, i.e. you do _not_ have to cater for this yourself by adding \\\\' or $." :type '(repeat regexp) :group 'TeX-command) (defun LaTeX--after-math-macro-prefix-p () "Return non-nil if point is after a macro prefix in math mode. Also sets `match-data' so that group 1 is the already typed prefix. For example, in $a + \a| - 17$ with | denoting point, the function would return non-nil and `(match-string 1)' would return \"a\" afterwards." (and (texmathp) (TeX-looking-at-backward "\\\\\\([a-zA-Z]*\\)"))) (defun LaTeX-common-initialization () "Common initialization for LaTeX derived modes." (VirTeX-common-initialization) (set-syntax-table LaTeX-mode-syntax-table) (set (make-local-variable 'indent-line-function) 'LaTeX-indent-line) (setq local-abbrev-table latex-mode-abbrev-table) ;; Filling (set (make-local-variable 'paragraph-ignore-fill-prefix) t) (set (make-local-variable 'fill-paragraph-function) 'LaTeX-fill-paragraph) (set (make-local-variable 'adaptive-fill-mode) nil) (or LaTeX-largest-level (setq LaTeX-largest-level (LaTeX-section-level "section"))) (setq TeX-header-end LaTeX-header-end TeX-trailer-start LaTeX-trailer-start) (set (make-local-variable 'TeX-style-hook-dialect) :latex) (require 'outline) (set (make-local-variable 'outline-level) 'LaTeX-outline-level) (set (make-local-variable 'outline-regexp) (LaTeX-outline-regexp t)) (when (boundp 'outline-heading-alist) (setq outline-heading-alist (mapcar (lambda (x) (cons (concat "\\" (nth 0 x)) (nth 1 x))) LaTeX-section-list))) (set (make-local-variable 'TeX-auto-full-regexp-list) (append LaTeX-auto-regexp-list plain-TeX-auto-regexp-list)) (LaTeX-set-paragraph-start) (setq paragraph-separate (concat "[ \t]*%*[ \t]*\\(" "\\$\\$" ; Plain TeX display math "\\|$\\)")) (setq TeX-verbatim-p-function 'LaTeX-verbatim-p) (setq TeX-search-forward-comment-start-function 'LaTeX-search-forward-comment-start) (set (make-local-variable 'TeX-search-files-type-alist) LaTeX-search-files-type-alist) (set (make-local-variable 'LaTeX-item-list) '(("description" . LaTeX-item-argument) ("thebibliography" . LaTeX-item-bib) ("array" . LaTeX-item-array) ("tabular" . LaTeX-item-array) ("tabular*" . LaTeX-item-tabular*))) (setq TeX-complete-list (append '(("\\\\cite\\[[^]\n\r\\%]*\\]{\\([^{}\n\r\\%,]*\\)" 1 LaTeX-bibitem-list "}") ("\\\\cite{\\([^{}\n\r\\%,]*\\)" 1 LaTeX-bibitem-list "}") ("\\\\cite{\\([^{}\n\r\\%]*,\\)\\([^{}\n\r\\%,]*\\)" 2 LaTeX-bibitem-list) ("\\\\nocite{\\([^{}\n\r\\%,]*\\)" 1 LaTeX-bibitem-list "}") ("\\\\nocite{\\([^{}\n\r\\%]*,\\)\\([^{}\n\r\\%,]*\\)" 2 LaTeX-bibitem-list) ("\\\\ref{\\([^{}\n\r\\%,]*\\)" 1 LaTeX-label-list "}") ("\\\\eqref{\\([^{}\n\r\\%,]*\\)" 1 LaTeX-label-list "}") ("\\\\pageref{\\([^{}\n\r\\%,]*\\)" 1 LaTeX-label-list "}") ("\\\\\\(index\\|glossary\\){\\([^{}\n\r\\%]*\\)" 2 LaTeX-index-entry-list "}") ("\\\\begin{\\([A-Za-z]*\\)" 1 LaTeX-environment-list-filtered "}") ("\\\\end{\\([A-Za-z]*\\)" 1 LaTeX-environment-list-filtered "}") ("\\\\renewcommand\\*?{\\\\\\([A-Za-z]*\\)" 1 TeX-symbol-list-filtered "}") ("\\\\renewenvironment\\*?{\\([A-Za-z]*\\)" 1 LaTeX-environment-list-filtered "}") ("\\\\\\(this\\)?pagestyle{\\([A-Za-z]*\\)" 2 LaTeX-pagestyle-list "}") (LaTeX--after-math-macro-prefix-p 1 (lambda () (append (mapcar #'cadr LaTeX-math-list) (mapcar #'cadr LaTeX-math-default))) (if TeX-insert-braces "{}"))) TeX-complete-list)) (LaTeX-add-environments '("document" LaTeX-env-document) '("enumerate" LaTeX-env-item) '("itemize" LaTeX-env-item) '("list" LaTeX-env-list) '("trivlist" LaTeX-env-item) '("picture" LaTeX-env-picture) '("tabular" LaTeX-env-array) '("tabular*" LaTeX-env-tabular*) '("array" LaTeX-env-array) '("eqnarray" LaTeX-env-label) '("equation" LaTeX-env-label) '("minipage" LaTeX-env-minipage) ;; The following have no special support, but are included in ;; case the auto files are missing. "sloppypar" "picture" "tabbing" "verbatim" "verbatim*" "flushright" "flushleft" "displaymath" "math" "quote" "quotation" "center" "titlepage" "verse" "eqnarray*" ;; The following are not defined in latex.el, but in a number of ;; other style files. I'm to lazy to copy them to all the ;; corresponding .el files right now. ;; This means that AUCTeX will complete e.g. ;; ``thebibliography'' in a letter, but I guess we can live with ;; that. '("description" LaTeX-env-item) '("figure" LaTeX-env-figure) '("figure*" LaTeX-env-figure) '("table" LaTeX-env-figure) '("table*" LaTeX-env-figure) '("thebibliography" LaTeX-env-bib) '("theindex" LaTeX-env-item)) ;; `latex.ltx' defines `plain' and `empty' pagestyles (LaTeX-add-pagestyles "plain" "empty") ;; `latex.ltx' defines the following counters (LaTeX-add-counters "page" "equation" "enumi" "enumii" "enumiii" "enumiv" "footnote" "mpfootnote") (LaTeX-add-lengths "arraycolsep" "arrayrulewidth" "baselineskip" "baselinestretch" "columnsep" "columnwidth" "doublerulesep" "evensidemargin" "linewidth" "oddsidemargin" "paperwidth" "paperheight" "parindent" "parskip" "tabcolsep" "textheight" "textwidth" "topmargin" "unitlength") (TeX-add-symbols '("addtocounter" TeX-arg-counter "Value") '("alph" TeX-arg-counter) '("arabic" TeX-arg-counter) '("fnsymbol" TeX-arg-counter) '("newcounter" TeX-arg-define-counter [ TeX-arg-counter "Within counter" ]) '("roman" TeX-arg-counter) '("setcounter" TeX-arg-counter "Value") '("usecounter" TeX-arg-counter) '("value" TeX-arg-counter) '("stepcounter" TeX-arg-counter) '("refstepcounter" TeX-arg-counter) '("label" TeX-arg-define-label) '("pageref" TeX-arg-ref) '("ref" TeX-arg-ref) '("newcommand" TeX-arg-define-macro [ TeX-arg-define-macro-arguments ] t) '("renewcommand" TeX-arg-macro [ TeX-arg-define-macro-arguments ] t) '("newenvironment" TeX-arg-define-environment [ "Number of arguments"] t t) '("renewenvironment" TeX-arg-environment [ "Number of arguments"] t t) '("providecommand" TeX-arg-define-macro [ TeX-arg-define-macro-arguments ] t) '("providecommand*" TeX-arg-define-macro [ TeX-arg-define-macro-arguments ] t) '("newcommand*" TeX-arg-define-macro [ TeX-arg-define-macro-arguments ] t) '("renewcommand*" TeX-arg-macro [ TeX-arg-define-macro-arguments ] t) '("newenvironment*" TeX-arg-define-environment [ "Number of arguments"] t t) '("renewenvironment*" TeX-arg-environment [ "Number of arguments"] t t) '("newtheorem" TeX-arg-define-environment [ TeX-arg-environment "Numbered like" ] t [ (TeX-arg-eval progn (if (eq (save-excursion (backward-char 2) (preceding-char)) ?\]) () (TeX-arg-counter t "Within counter")) "") ]) '("newfont" TeX-arg-define-macro t) '("circle" "Diameter") '("circle*" "Diameter") '("dashbox" "Dash Length" TeX-arg-size [ TeX-arg-corner ] t) '("frame" t) '("framebox" (TeX-arg-conditional (string-equal (LaTeX-current-environment) "picture") (TeX-arg-size [ TeX-arg-corner ] t) ([ "Length" ] [ TeX-arg-lr ] t))) '("line" (TeX-arg-pair "X slope" "Y slope") "Length") '("linethickness" "Dimension") '("makebox" (TeX-arg-conditional (string-equal (LaTeX-current-environment) "picture") (TeX-arg-size [ TeX-arg-corner ] t) ([ "Length" ] [ TeX-arg-lr ] t))) '("multiput" TeX-arg-coordinate (TeX-arg-pair "X delta" "Y delta") "Number of copies" t) '("oval" TeX-arg-size [ TeX-arg-corner "Portion" ]) '("put" TeX-arg-coordinate t) '("savebox" TeX-arg-savebox (TeX-arg-conditional (string-equal (LaTeX-current-environment) "picture") (TeX-arg-size [ TeX-arg-corner ] t) ([ "Length" ] [ TeX-arg-lr ] t))) '("shortstack" [ TeX-arg-lr ] t) '("vector" (TeX-arg-pair "X slope" "Y slope") "Length") '("cline" "Span `i-j'") '("multicolumn" "Columns" "Format" t) '("item" (TeX-arg-conditional (or TeX-arg-item-label-p (string-equal (LaTeX-current-environment) "description")) ([ "Item label" ]) ()) (TeX-arg-literal " ")) '("bibitem" [ "Bibitem label" ] TeX-arg-define-cite) '("cite" (TeX-arg-conditional TeX-arg-cite-note-p ([ "Note" ]) ()) TeX-arg-cite) '("nocite" TeX-arg-cite) '("bibliographystyle" TeX-arg-bibstyle) '("bibliography" TeX-arg-bibliography) '("footnote" (TeX-arg-conditional TeX-arg-footnote-number-p ([ "Number" ]) nil) t) '("footnotetext" (TeX-arg-conditional TeX-arg-footnote-number-p ([ "Number" ]) nil) t) '("footnotemark" (TeX-arg-conditional TeX-arg-footnote-number-p ([ "Number" ]) nil)) '("newlength" (TeX-arg-define-length "Length macro")) '("setlength" (TeX-arg-length "Length macro" "\\") (TeX-arg-length "Length value")) '("addtolength" (TeX-arg-length "Length macro" "\\") (TeX-arg-length "Length to add")) '("settowidth" (TeX-arg-length "Length macro" "\\") "Text") '("settoheight" (TeX-arg-length "Length macro" "\\") "Text") '("settodepth" (TeX-arg-length "Length macro" "\\") "Text") '("\\" [ "Space" ]) '("\\*" [ "Space" ]) '("hyphenation" t) '("linebreak" [ "How much [0 - 4]" ]) '("nolinebreak" [ "How much [0 - 4]" ]) '("nopagebreak" [ "How much [0 - 4]" ]) '("pagebreak" [ "How much [0 - 4]" ]) '("stackrel" t nil) '("frac" t nil) '("lefteqn" t) '("overbrace" t) '("overline" t) '("overleftarrow" t) '("overrightarrow" t) '("sqrt" [ "Root" ] t) '("underbrace" t) '("underline" t) '("acute" t) '("grave" t) '("ddot" t) '("tilde" t) '("bar" t) '("breve" t) '("check" t) '("hat" t) '("vec" t) '("dot" t) '("widetilde" t) '("widehat" t) '("author" LaTeX-arg-author) '("date" TeX-arg-date) '("thanks" t) '("title" t) '("pagenumbering" (TeX-arg-eval completing-read "Numbering style: " '(("arabic") ("roman") ("Roman") ("alph") ("Alph")))) '("pagestyle" TeX-arg-pagestyle) '("markboth" t nil) '("markright" t) '("thispagestyle" TeX-arg-pagestyle) '("addvspace" TeX-arg-length) '("fbox" t) '("hspace*" TeX-arg-length) '("hspace" TeX-arg-length) '("mbox" t) '("newsavebox" TeX-arg-define-savebox) '("parbox" [ TeX-arg-tb ] [ "Height" ] [ TeX-arg-tb "Inner position" ] "Width" t) '("raisebox" "Raise" [ "Height above" ] [ "Depth below" ] t) '("rule" [ "Raise" ] "Width" "Thickness") '("sbox" TeX-arg-savebox t) '("usebox" TeX-arg-savebox) '("vspace*" TeX-arg-length) '("vspace" TeX-arg-length) '("documentstyle" TeX-arg-document) '("include" (TeX-arg-input-file "File" t)) '("includeonly" t) '("input" TeX-arg-input-file) '("addcontentsline" (TeX-arg-eval completing-read "File: " '(("toc") ("lof") ("lot"))) (TeX-arg-eval completing-read "Numbering style: " LaTeX-section-list) t) '("addtocontents" (TeX-arg-eval completing-read "File: " '(("toc") ("lof") ("lot"))) t) '("typeout" t) '("typein" [ TeX-arg-define-macro ] t) '("verb" TeX-arg-verb) '("verb*" TeX-arg-verb) '("extracolsep" t) '("index" TeX-arg-index) '("glossary" TeX-arg-index) '("numberline" "Section number" "Heading") '("caption" t) '("marginpar" [ "Left margin text" ] "Text") '("left" TeX-arg-insert-braces) ;; The following 4 macros are not specific to amsmath. '("bigl" TeX-arg-insert-braces) '("Bigl" TeX-arg-insert-braces) '("biggl" TeX-arg-insert-braces) '("Biggl" TeX-arg-insert-braces) '("langle" TeX-arg-insert-right-brace-maybe) '("lceil" TeX-arg-insert-right-brace-maybe) '("lfloor" TeX-arg-insert-right-brace-maybe) ;; These have no special support, but are included in case the ;; auto files are missing. "TeX" "LaTeX" "samepage" "newline" "smallskip" "medskip" "bigskip" "fill" "stretch" "thinspace" "negthinspace" "enspace" "enskip" "quad" "qquad" "nonumber" "centering" "raggedright" "raggedleft" "kill" "pushtabs" "poptabs" "protect" "arraystretch" "hline" "vline" "cline" "thinlines" "thicklines" "and" "makeindex" "makeglossary" "reversemarginpar" "normalmarginpar" "raggedbottom" "flushbottom" "sloppy" "fussy" "newpage" "clearpage" "cleardoublepage" "twocolumn" "onecolumn" "maketitle" "tableofcontents" "listoffigures" "listoftables" '("tiny" -1) '("scriptsize" -1) '("footnotesize" -1) '("small" -1) '("normalsize" -1) '("large" -1) '("Large" -1) '("LARGE" -1) '("huge" -1) '("Huge" -1) '("oldstylenums" "Numbers") "pounds" "copyright" "hfil" "hfill" "vfil" "vfill" "hrulefill" "dotfill" "indent" "noindent" "today" "appendix" "dots" "makeatletter" "makeatother" "jobname") (when (string-equal LaTeX-version "2e") (LaTeX-add-environments '("filecontents" LaTeX-env-contents) '("filecontents*" LaTeX-env-contents)) (TeX-add-symbols '("enlargethispage" TeX-arg-length) '("enlargethispage*" TeX-arg-length) '("tabularnewline" [ TeX-arg-length ]) '("suppressfloats" [ TeX-arg-tb "Suppress floats position" ]) '("ensuremath" "Math commands") '("textsuperscript" "Text") '("textsubscript" "Text") '("textcircled" "Text") '("mathring" t) "LaTeXe" "listfiles" "frontmatter" "mainmatter" "backmatter" "textcompwordmark" "textvisiblespace" "textemdash" "textendash" "textexclamdown" "textquestiondown" "textquotedblleft" "textquotedblright" "textquoteleft" "textquoteright" "textbullet" "textperiodcentered" "textasteriskcentered" "textbackslash" "textbar" "textless" "textgreater" "textasciicircum" "textasciitilde" "textregistered" "texttrademark" "rmfamily" "sffamily" "ttfamily" "mdseries" "bfseries" "itshape" "slshape" "upshape" "scshape" "eminnershape")) (TeX-run-style-hooks "LATEX") (make-local-variable 'TeX-font-list) (make-local-variable 'TeX-font-replace-function) (if (string-equal LaTeX-version "2") () (setq TeX-font-list LaTeX-font-list) (setq TeX-font-replace-function 'TeX-font-replace-macro) (TeX-add-symbols '("newcommand" TeX-arg-define-macro [ TeX-arg-define-macro-arguments ] t) '("renewcommand" TeX-arg-macro [ TeX-arg-define-macro-arguments ] t) '("providecommand" TeX-arg-define-macro [ TeX-arg-define-macro-arguments ] t) '("providecommand*" TeX-arg-define-macro [ TeX-arg-define-macro-arguments ] t) '("newcommand*" TeX-arg-define-macro [ TeX-arg-define-macro-arguments ] t) '("renewcommand*" TeX-arg-macro [ TeX-arg-define-macro-arguments ] t) '("newenvironment" TeX-arg-define-environment [ TeX-arg-define-macro-arguments ] t t) '("renewenvironment" TeX-arg-environment [ TeX-arg-define-macro-arguments ] t t) '("usepackage" LaTeX-arg-usepackage) '("RequirePackage" LaTeX-arg-usepackage) '("ProvidesPackage" (TeX-arg-file-name-sans-extension "Package name") [ TeX-arg-conditional (y-or-n-p "Insert version? ") ([ TeX-arg-version ]) nil]) '("ProvidesClass" (TeX-arg-file-name-sans-extension "Class name") [ TeX-arg-conditional (y-or-n-p "Insert version? ") ([ TeX-arg-version ]) nil]) '("ProvidesFile" (TeX-arg-file-name "File name") [ TeX-arg-conditional (y-or-n-p "Insert version? ") ([ TeX-arg-version ]) nil ]) '("documentclass" TeX-arg-document))) (TeX-add-style-hook "latex2e" ;; Use new fonts for `\documentclass' documents. (lambda () (setq TeX-font-list LaTeX-font-list) (setq TeX-font-replace-function 'TeX-font-replace-macro) (run-hooks 'LaTeX2e-hook)) LaTeX-dialect) (TeX-add-style-hook "latex2" ;; Use old fonts for `\documentstyle' documents. (lambda () (setq TeX-font-list (default-value 'TeX-font-list)) (setq TeX-font-replace-function (default-value 'TeX-font-replace-function)) (run-hooks 'LaTeX2-hook)) LaTeX-dialect) ;; There must be something better-suited, but I don't understand the ;; parsing properly. -- dak (TeX-add-style-hook "pdftex" 'TeX-PDF-mode-on LaTeX-dialect) (TeX-add-style-hook "pdftricks" 'TeX-PDF-mode-on LaTeX-dialect) (TeX-add-style-hook "pst-pdf" 'TeX-PDF-mode-on LaTeX-dialect) (TeX-add-style-hook "dvips" 'TeX-PDF-mode-off LaTeX-dialect) ;; This is now done in style/pstricks.el because it prevents other ;; pstricks style files from being loaded. ;; (TeX-add-style-hook "pstricks" 'TeX-PDF-mode-off) (TeX-add-style-hook "psfrag" 'TeX-PDF-mode-off LaTeX-dialect) (TeX-add-style-hook "dvipdf" 'TeX-PDF-mode-off LaTeX-dialect) (TeX-add-style-hook "dvipdfm" 'TeX-PDF-mode-off LaTeX-dialect) ;; (TeX-add-style-hook "DVIoutput" 'TeX-PDF-mode-off) ;; ;; Well, DVIoutput indicates that we want to run PDFTeX and expect to ;; get DVI output. Ugh. (TeX-add-style-hook "ifpdf" (lambda () (TeX-PDF-mode-on) (TeX-PDF-mode-off)) LaTeX-dialect) ;; ifpdf indicates that we cater for either. So calling both ;; functions will make sure that the default will get used unless the ;; user overrode it. (set (make-local-variable 'imenu-create-index-function) 'LaTeX-imenu-create-index-function) (use-local-map LaTeX-mode-map) ;; Calling `easy-menu-add' may result in the menu filters being ;; executed which call `TeX-update-style'. So this is placed very ;; late in mode initialization to assure that all relevant variables ;; are properly initialized before style files try to alter them. (easy-menu-add LaTeX-mode-menu LaTeX-mode-map) (easy-menu-add LaTeX-mode-command-menu LaTeX-mode-map) (define-key LaTeX-mode-map "\C-xne" 'LaTeX-narrow-to-environment) ;; AUCTeX's brace pairing feature (`LaTeX-electric-left-right-brace') doesn't ;; play nice with `electric-pair-mode' which is a global minor mode as of ;; emacs 24.4. (when (and LaTeX-electric-left-right-brace (boundp 'electric-pair-mode)) (set (make-local-variable 'electric-pair-mode) nil))) (defun LaTeX-imenu-create-index-function () "Imenu support function for LaTeX." (TeX-update-style) (let (entries level (regexp (LaTeX-outline-regexp))) (goto-char (point-max)) (while (re-search-backward regexp nil t) (let* ((name (LaTeX-outline-name)) (level (make-string (1- (LaTeX-outline-level)) ?\ )) (label (concat level level name)) (mark (make-marker))) (set-marker mark (point)) (set-text-properties 0 (length label) nil label) (setq entries (cons (cons label mark) entries)))) entries)) (defvar LaTeX-builtin-opts '("12pt" "11pt" "10pt" "twocolumn" "twoside" "draft") "Built in options for LaTeX standard styles.") (defun LaTeX-209-to-2e () "Make a stab at changing 2.09 doc header to 2e style." (interactive) (TeX-home-buffer) (let (optstr optlist 2eoptlist 2epackages docline docstyle) (goto-char (point-min)) (if (search-forward-regexp "\\documentstyle\\[\\([^]]*\\)\\]{\\([^}]*\\)}" (point-max) t) (setq optstr (TeX-match-buffer 1) docstyle (TeX-match-buffer 2) optlist (TeX-split-string "," optstr)) (if (search-forward-regexp "\\documentstyle{\\([^}]*\\)}" (point-max) t) (setq docstyle (TeX-match-buffer 1)) (error "No documentstyle defined"))) (beginning-of-line 1) (setq docline (point)) (insert "%%%") (while optlist (if (member (car optlist) LaTeX-builtin-opts) (setq 2eoptlist (cons (car optlist) 2eoptlist)) (setq 2epackages (cons (car optlist) 2epackages))) (setq optlist (cdr optlist))) ;;(message (format "%S %S" 2eoptlist 2epackages)) (goto-char docline) (forward-line 1) (insert "\\documentclass") (if 2eoptlist (insert "[" (mapconcat (lambda (x) x) (nreverse 2eoptlist) ",") "]")) (insert "{" docstyle "}\n") (if 2epackages (insert "\\usepackage{" (mapconcat (lambda (x) x) (nreverse 2epackages) "}\n\\usepackage{") "}\n")) (if (equal docstyle "slides") (progn (goto-char (point-min)) (while (re-search-forward "\\\\blackandwhite{" nil t) (replace-match "\\\\input{" nil nil))))) (TeX-normal-mode nil)) (defun LaTeX-env-beginning-pos-col () "Return a cons: (POINT . COLUMN) for current environment's beginning." (save-excursion (LaTeX-find-matching-begin) (cons (point) (current-column)))) (defun LaTeX-hanging-ampersand-position () "Return indent column for a hanging ampersand (i.e. ^\\s-*&)." (destructuring-bind (beg-pos . beg-col) (LaTeX-env-beginning-pos-col) (let* ((cur-pos (point))) (save-excursion (if (re-search-backward "\\\\\\\\" beg-pos t) (let ((cur-idx (TeX-how-many "[^\\]&" (point) cur-pos))) (goto-char beg-pos) (re-search-forward "[^\\]&" cur-pos t (+ 1 cur-idx)) ;; If the above searchs fails, i.e. no "&" found, ;; (- (current-column) 1) returns -1, which is wrong. So ;; we use a fallback (+ 2 beg-col) whenever this happens: (max (- (current-column) 1) (+ 2 beg-col))) (+ 2 beg-col)))))) (defun LaTeX-indent-tabular () "Return indent column for the current tabular-like line." (destructuring-bind (beg-pos . beg-col) (LaTeX-env-beginning-pos-col) (let ((tabular-like-end-regex (format "\\\\end{%s}" (regexp-opt (let (out) (mapc (lambda (x) (when (eq (cadr x) 'LaTeX-indent-tabular) (push (car x) out))) LaTeX-indent-environment-list) out))))) (cond ((looking-at tabular-like-end-regex) beg-col) ((looking-at "\\\\\\\\") (+ 2 beg-col)) ((looking-at "&") (LaTeX-hanging-ampersand-position)) (t (+ 2 (let ((any-col (save-excursion (when (re-search-backward "\\\\\\\\\\|[^\\]&" beg-pos t) (current-column))))) (if (and any-col (= ?& (char-before (match-end 0)))) (1+ any-col) beg-col)))))))) (provide 'latex) ;;; latex.el ends here auctex-11.91/latex/000077500000000000000000000000001313533625700141435ustar00rootroot00000000000000auctex-11.91/latex/.gitignore000066400000000000000000000001701313533625700161310ustar00rootroot00000000000000 *.aux *.cfg *.def *.drv *.dvi *.glo *.idx *.log *.prv Makefile auto preview-mk.ins preview.ins preview.pdf preview.sty auctex-11.91/latex/Makefile.in000066400000000000000000000061141313533625700162120ustar00rootroot00000000000000# Makefile for AUCTeX # Maintainer: auctex-devel@gnu.org # Copyright (C) 2002-2006, 2008, 2014, 2015 Free Software Foundation, # Inc. # This file is part of AUCTeX. # AUCTeX is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # AUCTeX is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # You should have received a copy of the GNU General Public License # along with AUCTeX; see the file COPYING. If not, write to the Free # Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, # MA 02110-1301, USA. @SET_MAKE@ LATEX=@LATEX@ PDFLATEX=@PDFLATEX@ TEX=@TEX@ TEXHASH=@TEXHASH@ prefix=@prefix@$(null) datarootdir=@datarootdir@$(null) datadir=@datadir@$(null) exec_prefix=@exec_prefix@$(null) libdir=@libdir@$(null) previewtexmfdir = @previewtexmfdir@$(null) previewdocdir = @previewdocdir@$(null) TEXMFGEN = @TEXMFGEN@ DESTDIR= INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ MKINSTALLDIRS = ../mkinstalldirs .PHONY: all install install-texmf install-texmf-doc uninstall clean all: $(TEXMFGEN) preview.drv preview-mk.ins preview.dvi preview.pdf install: install-texmf install-texmf-doc install-texmf: $(TEXMFGEN) -$(MKINSTALLDIRS) $(DESTDIR)$(previewtexmfdir) for x in $(TEXMFGEN) ; do \ echo $(INSTALL_DATA) $$x $(DESTDIR)$(previewtexmfdir) ; \ $(INSTALL_DATA) $$x $(DESTDIR)$(previewtexmfdir) ; \ done # Isn't the texmfdir directory without "tex/latex/preview" available? @ texmfdir="$(DESTDIR)$(previewtexmfdir)/../../.."; \ if [ -r "$$texmfdir"/ls-R ]; then \ $(TEXHASH) "$$texmfdir"; \ else \ echo "Warning: Cannot update ls-R database in $$texmfdir"; \ sleep 2; \ fi install-texmf-doc: preview.dvi $(MKINSTALLDIRS) $(DESTDIR)$(previewdocdir) $(INSTALL_DATA) preview.dvi $(DESTDIR)$(previewdocdir) uninstall: rm -rf $(DESTDIR)$(previewdocdir)/preview.dvi $(DESTDIR)$(previewtexmfdir) preview-mk.ins: preview.dtx bootstrap.ins $(TEX) '\nonstopmode \input bootstrap.ins' #only for standalone preview.sty package: preview.ins: preview.dtx $(TEX) '\nonstopmode\def\jobname{.ins}\input docstrip ' \ '\generate{\file{preview.ins}{\from{preview.dtx}{installer}}}' \ '\endbatchfile' $(TEXMFGEN) preview.drv: preview.dtx preview-mk.ins $(TEX) '\nonstopmode \input preview-mk.ins' preview.dvi: preview.drv preview.dtx preview.sty $(LATEX) '\nonstopmode \input preview.drv' $(LATEX) '\nonstopmode \input preview.drv' $(LATEX) '\nonstopmode \input preview.drv' preview.pdf: preview.drv preview.dtx preview.sty $(PDFLATEX) '\nonstopmode \AtBeginDocument{\OnlyDescription}\input{preview.drv}' $(PDFLATEX) '\nonstopmode \AtBeginDocument{\OnlyDescription}\input{preview.drv}' $(PDFLATEX) '\nonstopmode \AtBeginDocument{\OnlyDescription}\input{preview.drv}' clean: rm -f *~ *.aux *.dvi *.drv *.log rm -f $(TEXMFGEN) preview.ins preview-mk.ins auctex-11.91/latex/README000066400000000000000000000050141313533625700150230ustar00rootroot00000000000000The preview.sty style file ========================== Purpose ------- The main purpose of the preview package is the extraction of selected elements from a LaTeX source, like formulas or graphics, into separate pages of a DVI file. A flexible and convenient interface allows it to specify what commands and constructs should be extracted. This works with DVI files postprocessed by either Dvips and Ghostscript or dvipng, but it also works when you are using PDFTeX for generating PDF files. Current uses of the package include the preview-latex package for WYSIWYG functionality in the AUCTeX editing environment, generation of previews in LyX, as part of the operation of the ps4pdf and pst-pdf packages, the tbook XML system and some other tools. Availability ------------ The preview package is being developed along and distributed with AUCTeX. It can therefore be obtained as part of AUCTeX distribution files available at or its mirror at . CTAN also provides a standalone version at . The project page at offers downloads and anonymous CVS access for cutting edge versions. For more information about the preview package please refer to the home page of AUCTeX at . Installation ------------ To install the preview style file on its own without the entire AUCTeX package, run tex preview.ins If preview.ins happens to be missing, you can regenerate it by running tex docstrip on preview.dtx with the option `installer'. Running TeX on preview.ins will then extract further files: preview.drv which you can run through LaTeX in order to get the documentation for preview.sty, preview.sty itself, a bunch of option files with extension .def and a few configuration files with extension .cfg. In case your docstrip configuration has not already taken care of that, install the files with extension .sty, .def and .cfg to a location where LaTeX will be able to find them, generate the documentation and have fun. The license of the original file is the GPL which you'll find a copy of in the complete AUCTeX distribution. The distribution will also unpack and install the respective LaTeX files with an autoconf-supported mechanism, so you might consider using that. Bug reporting ------------- Please report problems to , including a small example file which uses the \listfiles statement, and the resulting log file. David Kastrup auctex-11.91/latex/bootstrap.ins000066400000000000000000000001711313533625700166720ustar00rootroot00000000000000\input docstrip \askforoverwritefalse \generate{\file{preview-mk.ins}{\from{preview.dtx}{installer,make}}} \endbatchfile auctex-11.91/latex/preview.dtx000066400000000000000000002331271313533625700163550ustar00rootroot00000000000000% \iffalse %% The preview style for extracting previews from LaTeX documents. %% Developed as part of AUCTeX . % % Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, % 2010, 2017 Free Software Foundation % % This program is free software; you can redistribute it and/or modify % it under the terms of the GNU General Public License as published by % the Free Software Foundation; either version 3 of the License, or % (at your option) any later version. % % This program is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License % along with this program; if not, write to the % Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, % Boston, MA 02110-1301 USA % \fi % \CheckSum{1760} % \GetFileInfo{preview.sty} % \date{\filedate} % \author{David Kastrup\thanks{\texttt{bug-auctex@gnu.org}}} % \title{The \texttt{preview} Package for \LaTeX\\Version \fileversion} % \maketitle % \section{Introduction} % The main purpose of this package is the extraction of certain % environments (most notably displayed formulas) from \LaTeX\ sources % as graphics. This works with DVI files postprocessed by either % Dvips and Ghostscript or dvipng, but it also works when you are % using PDF\TeX\ for generating PDF files (usually also postprocessed % by Ghostscript). % % Current uses of the package include the \previewlatex\ package for % WYSIWYG functionality in the AUC\TeX\ editing environment, % generation of previews in LyX, as part of the operation of the % pst-pdf package, the tbook XML system and some other tools. % % Producing EPS files with Dvips and its derivatives using the % \texttt{-E} option is not a good alternative: People make do by % fiddling around with |\thispagestyle{empty}| and hoping for the best % (namely, that the specified contents will indeed fit on single % pages), and then trying to guess the baseline of the resulting code % and stuff, but this is at best dissatisfactory. The preview package % provides an easy way to ensure that exactly one page per request % gets shipped, with a well-defined baseline and no page decorations. % While you still can use the preview package with the `classic' % \begin{quote} % |dvips -E -i| % \end{quote} % invocation, there are better ways available that don't rely on Dvips % not getting confused by PostScript specials. % % For most applications, you'll want to make use of the |tightpage| % option. This will embed the page dimensions into the PostScript or % PDF code, obliterating the need to use the |-E -i| options to Dvips. % You can then produce all image files with a single run of % Ghostscript from a single PDF or PostScript (as opposed to EPS) % file. % % Various options exist that will pass \TeX\ dimensions and other % information about the respective shipped out material (including % descender size) into the log file, where external applications might % make use of it. % % The possibility for generating a whole set of graphics with a single % run of Ghostscript (whether from \LaTeX\ or PDF\LaTeX) increases % both speed and robustness of applications. It is also feasible to % use dvipng on a DVI file with the options % \begin{quote} % |-picky -noghostscript| % \end{quote} % to omit generating any image file that requires Ghostscript, then % let a script generate all missing files using Dvips/Ghostscript. % This will usually speed up the process significantly. % % \section{Package options} % The package is included with the customary % \begin{quote} % |\usepackage|\oarg{options}|{preview}| % \end{quote} % You should usually load this package as the last one, since it % redefines several things that other packages may also provide. % % The following options are available: % \begin{description} % \item[|active|] is the most essential option. If this option is not % specified, the |preview| package will be inactive and the document % will be typeset as if the |preview| package were not loaded, % except that all declarations and environments defined by the % package are still legal but have no effect. This allows defining % previewing characteristics in your document, and only activating % them by calling \LaTeX\ as % \begin{quote} % \raggedright % |latex '\PassOptionsToPackage{active}{preview}| |\input|\marg{filename}|'| % \end{quote} % \item[|noconfig|] Usually the file |prdefault.cfg| gets loaded % whenever the |preview| package gets activated. |prdefault.cfg| is % supposed to contain definitions that can cater for otherwise bad % results, for example, if a certain document class would otherwise % lead to trouble. It also can be used to override any settings % made in this package, since it is loaded at the very end of it. % In addition, there may be configuration files specific for certain % |preview| options like |auctex| which have more immediate needs. % The |noconfig| option suppresses loading of those option files, % too. % \item[|psfixbb|] Dvips determines the bounding boxes from the % material in the DVI file it understands. Lots of PostScript % specials are not part of that. Since the \TeX\ boxes do not make % it into the DVI file, but merely characters, rules and specials % do, Dvips might include far too small areas. The option |psfixbb| % will include |/dev/null| as a graphic file in the ultimate upper % left and lower right corner of the previewed box. This will make % Dvips generate an appropriate bounding box. % \item[|dvips|] If this option is specified as a class option or to % other packages, several packages pass things like page size % information to Dvips, or cause crop marks or draft messages % written on pages. This seriously hampers the usability of % previews. If this option is specified, the changes will be undone % if possible. % \item[|pdftex|] If this option is set, PDF\TeX\ is assumed as the % output driver. This mainly affects the |tightpage| option. % \item[|xetex|] If this option is set, Xe\TeX\ is assumed as the % output driver. This mainly affects the |tightpage| option. % \item[|displaymath|] will make all displayed math environments % subject to preview processing. This will typically be the most % desired option. % \item[|floats|] will make all float objects subject to preview % processing. If you want to be more selective about what floats to % pass through to a preview, you should instead use the % \cmd{\PreviewSnarfEnvironment} command on the floats you want to % have previewed. % \item[|textmath|] will make all text math subject to previews. % Since math mode is used throughly inside of \LaTeX\ even for other % purposes, this works by redefining \cmd\(, \cmd\) % and |$| and the |math| environment (apparently some people use % that). Only occurences of these text math delimiters in later % loaded packages and in the main document will thus be affected. % \item[|graphics|] will subject all \cmd{\includegraphics} commands % to a preview. % \item[|sections|] will subject all section headers to a preview. % \item[|delayed|] will delay all activations and redefinitions the % |preview| package makes until |\||begin{document}|. The purpose % of this is to cater for documents which should be subjected to the % |preview| package without having been prepared for it. You can % process such documents with % \begin{quote} % |latex '\RequirePackage[active,delayed,|\meta{options}|]{preview}| % |\input|\marg{filename}|'| % \end{quote} % This relaxes the requirement to be loading the |preview| package % as last package. % \item[\meta{driver}] loads a special driver file % |pr|\meta{driver}|.def|. The remaining options are implemented % through the use of driver files. % \item[|auctex|] This driver will produce fake error messages at the % start and end of every preview environment that enable the Emacs % package \previewlatex\ in connection with AUC\TeX\ to pinpoint % the exact source location where the previews have originated. % Unfortunately, there is no other reliable means of passing the % current \TeX\ input position \emph{in} a line to external % programs. In order to make the parsing more robust, this option % also switches off quite a few diagnostics that could be % misinterpreted. % % You should not specify this option manually, since it will only be % needed by automated runs that want to parse the pseudo error % messages. Those runs will then use \cmd{\PassOptionsToPackage} in % order to effect the desired behaviour. In addition, % |prauctex.cfg| will get loaded unless inhibited by the |noconfig| % option. This caters for the most frequently encountered % problematic commands. % \item[|showlabels|] During the editing process, some people like to % see the label names in their equations, figures and the like. Now % if you are using Emacs for editing, and in particular % \previewlatex, I'd strongly recommend that you check out the % Ref\TeX\ package which pretty much obliterates the need for this % kind of functionality. If you still want it, standard \LaTeX\ % provides it with the |showkeys| package, and there is also the % less encompassing |showlabels| package. Unfortunately, since % those go to some pain not to change the page layout and spacing, % they also don't change |preview|'s idea of the \TeX\ dimensions of % the involved boxes. So if you are using |preview| for determing % bounding boxes, those packages are mostly useless. The option % |showlabels| offers a substitute for them. % \item[|tightpage|] It is not uncommon to want to use the results of % |preview| as graphic images for some other application. One % possibility is to generate a flurry of EPS files with % \begin{quote} % |dvips -E -i -Pwww -o| \meta{outputfile}|.000| \meta{inputfile} % \end{quote} % However, in case those are to be processed further into graphic % image files by Ghostscript, this process is inefficient since all % of those files need to be processed one by one. In addition, it % is necessary to extract the bounding box comments from the EPS % files and convert them into page dimension parameters for % Ghostscript in order to avoid full-page graphics. This is not % even possible if you wanted to use Ghostscript in a~\emph{single} % run for generating the files from a single PostScript file, since % Dvips will in that case leave no bounding box information % anywhere. % % The solution is to use the |tightpage| option. That way a single % command line like % \begin{quote} % \raggedright % \texttt{gs -sDEVICE=png16m -dTextAlphaBits=4 -r300 % -dGraphicsAlphaBits=4 -dSAFER -q -dNOPAUSE % -sOutputFile=\meta{outputfile}\%d.png \meta{inputfile}.ps} % \end{quote} % will be able to produce tight graphics from a single PostScript % file generated with Dvips \emph{without} use of the options % |-E -i|, in a single run. % % The |tightpage| option actually also works when using the |pdftex| % option and generating PDF files with PDF\TeX. The resulting PDF % file has separate page dimensions for every page and can directly % be converted with one run of Ghostscript into image files. % % If neither |dvips| or |pdftex| have been specified, the % corresponding option will get autodetected and invoked. % % If you need this in a batch environment where you don't want to % use |preview|'s automatic extraction facilities, no problem: just % don't use any of the extraction options, and wrap everything to be % previewed into |preview| environments. This is how LyX does its % math previews. % % If the pages under the |tightpage| option are just too tight, you % can adjust by setting the length |\PreviewBorder| to a different % value by using \cmd{\setlength}. The default value is % |0.50001bp|, which is half of a usual PostScript point, rounded % up. If you go below this value, the resulting page size may drop % below |1bp|, and Ghostscript does not seem to like that. If you % need finer control, you can adjust the bounding box dimensions % individually by changing the macro |\PreviewBbAdjust| with the % help of |\renewcommand|. Its default value is % \begin{quote} % \raggedright % |\newcommand| |\PreviewBbAdjust| % |{-\PreviewBorder| |-\PreviewBorder| % |\PreviewBorder| |\PreviewBorder}| % \end{quote} % This adjusts the left, lower, right and upper borders by the given % amount. The macro must contain 4~\TeX\ dimensions after another, % and you may not omit the units if you specify them explicitly % instead of by register. PostScript points have the unit~|bp|. % \item[|lyx|] This option is for the sake of LyX developers. It will % output a few diagnostics relevant for the sake of LyX' preview % functionality (at the time of writing, mostly implemented for math % insets, in versions of LyX starting with 1.3.0). % \item[|counters|] This writes out diagnostics at the start and the % end of previews. Only the counters changed since the last output % get written, and if no counters changed, nothing gets written at % all. The list consists of counter name and value, both enclosed % in |{}| braces, followed by a space. The last such pair is % followed by a colon (|:|) if it is at the start of the preview % snippet, and by a period (|.|) if it is at the end. The order of % different diagnostics like this being issued depends on the order % of the specification of the options when calling the package. % % Systems like \previewlatex\ use this for keeping counters accurate % when single previews are regenerated. % \item[|footnotes|] This makes footnotes render as previews, and only % as their footnote symbol. A convenient editing feature inside of % Emacs. % \end{description} % The following options are just for debugging purposes of the package % and similar to the corresponding \TeX\ commands they allude to: % \begin{description} % \item[|tracingall|] causes lots of diagnostic output to appear in % the log file during the preview collecting phases of \TeX's % operation. In contrast to the similarly named \TeX\ command, it % will not switch to |\errorstopmode|, nor will it change the % setting of |\tracingonline|. % \item[|showbox|] This option will show the contents of the boxes % shipped out to the DVI files. It also sets |\showboxbreadth| and % |\showboxdepth| to their maximum values at the end of loading this % package, but you may reset them if you don't like that. % \end{description} % \section{Provided Commands} % \DescribeEnv{preview} The |preview| environment causes its contents % to be set as a single preview image. Insertions like figures and % footnotes (except those included in minipages) will typically lead % to error messages or be lost. In case the |preview| package has not % been activated, the contents of this environment will be typeset % normally. % % \DescribeEnv{nopreview} The |nopreview| environment will cause its % contents not to undergo any special treatment by the |preview| % package. When |preview| is active, the contents will be discarded % like all main text that does not trigger the |preview| hooks. When % |preview| is not active, the contents will be typeset just like the % main text. % % Note that both of these environments typeset things as usual when % preview is not active. If you need something typeset conditionally, % use the \cmd{\ifPreview} conditional for it. % % \DescribeMacro{\PreviewMacro} If you want to make a macro like % \cmd{\includegraphics} (actually, this is what is done by the % |graphics| option to |preview|) produce a preview image, you put a % declaration like % \begin{quote} % |\PreviewMacro[*[[!]{\includegraphics}| % \end{quote} % or, more readable, % \begin{quote} % |\PreviewMacro[{*[][]{}}]{\includegraphics}| % \end{quote} % into your preamble. The optional argument to \cmd{\PreviewMacro} % specifies the arguments \cmd{\includegraphics} accepts, since this % is necessary information for properly ending the preview box. Note % that if you are using the more readable form, you have to enclose % the argument in a |[{| and |}]| pair. The inner braces are % necessary to stop any included |[]| pairs from prematurely ending % the optional argument, and to make a single |{}| % denoting an optional argument not get stripped away by \TeX's % argument parsing. % % The letters simply mean % \begin{description} % \item[|*|] indicates an optional |*| modifier, as in % |\includegraphics*|. % \item[|[|]^^A] % indicates an optional argument in brackets. This syntax % is somewhat baroque, but brief. % \item[{|[]|}] also indicates an optional argument in brackets. Be % sure to have encluded the entire optional argument specification % in an additional pair of braces as described above. % \item[|!|] indicates a mandatory argument. % \item[|\char`{\char`}|] indicates the same. Again, be sure to have % that additional level of braces around the whole argument % specification. % \item[|?|\meta{delimiter}\marg{true case}\marg{false case}] is a % conditional. The next character is checked against being equal to % \meta{delimiter}. If it is, the specification \meta{true case} is % used for the further parsing, otherwise \meta{false case} will be % employed. In neither case is something consumed from the input, % so \marg{true case} will still have to deal with the upcoming % delimiter. % \item[|@|\marg{literal sequence}] will insert the given sequence % literally into the executed call of the command. % \item[|-|] will just drop the next token. It will probably be most % often used in the true branch of a |?| specification. % \item[|\#|\marg{argument}\marg{replacement}] is a transformation % rule that calls a macro with the given argument and replacement % text on the rest of the argument list. The replacement is used in % the executed call of the command. This can be used for parsing % arbitrary constructs. For example, the |[]| option could manually % be implemented with the option string |?[{#{[#1]}{[{#1}]}}{}|. % PStricks users might enjoy this sort of flexibility. % \item[|:|\marg{argument}\marg{replacement}] is again a % transformation rule. As opposed to |#|, however, the result of % the transformation is parsed again. You'll rarely need this. % \end{description} % % There is a second optional argument in brackets that can be used to % declare any default action to be taken instead. This is mostly for % the sake of macros that influence numbering: you would want to keep % their effects in that respect. The default action should use |#1| % for referring to the original (not the patched) command with the % parsed options appended. Not specifying a second optional argument % here is equivalent to specifying~|[#1]|. % % \DescribeMacro{\PreviewMacro*} A similar invocation % \cmd{\PreviewMacro*} simply throws the macro and all of its % arguments declared in the manner above away. This is mostly useful % for having things like \cmd{\footnote} not do their magic on their % arguments. More often than not, you don't want to declare any % arguments to scan to \cmd{\PreviewMacro*} since you would want the % remaining arguments to be treated as usual text and typeset in that % manner instead of being thrown away. An exception might be, say, % sort keys for \cmd{\cite}. % % A second optional argument in brackets can be used to declare any % default action to be taken instead. This is for the sake of macros % that influence numbering: you would want to keep their effects in % that respect. The default action might use |#1| for referring to % the original (not the patched) command with the parsed options % appended. Not specifying a second optional argument here is % equivalent to specifying~|[]| since the command usually gets thrown % away. % % As an example for using this argument, you might want to specify % \begin{quote} % |\PreviewMacro*[{[]}][#1{}]{\footnote}| % \end{quote} % This will replace a footnote by an empty footnote, but taking any % optional parameter into account, since an optional paramter changes % the numbering scheme. That way the real argument for the footnote % remains for processing by \previewlatex. % % \DescribeMacro{\PreviewEnvironment} The macro % \cmd{\PreviewEnvironment} works just as \cmd{\PreviewMacro} does, % only for environments. \DescribeMacro{\PreviewEnvironment*} And the % same goes for \cmd{\PreviewEnvironment*} as compared to % \cmd{\PreviewMacro*}. % % \DescribeMacro{\PreviewSnarfEnvironment} This macro does not typeset % the original environment inside of a preview box, but instead % typesets just the contents of the original environment inside of the % preview box, leaving nothing for the original environment. This has % to be used for figures, for example, since they would % \begin{enumerate} % \item produce insertion material that cannot be extracted to the % preview properly, % \item complain with an error message about not being in outer par % mode. % \end{enumerate} % % \DescribeMacro{\PreviewOpen} % \DescribeMacro{\PreviewClose} % Those Macros form a matched preview pair. This is for macros that % behave similar as \cmd{\begin} and \cmd{\end} of an environment. It % is essential for the operation of \cmd{\PreviewOpen} that the macro % treated with it will open an additional group even when the preview % falls inside of another preview or inside of a |nopreview| % environment. Similarly, the macro treated with \cmd{\PreviewClose} % will close an environment even when inactive. % % \DescribeMacro{\ifPreview} In case you need to know whether % |preview| is active, you can use the conditional \cmd{\ifPreview} % together with |\else| and |\fi|. % % \StopEventually{} % \section{The Implementation} % Here we go: the start is somewhat obtuse since we figure out version % number and date from RCS strings. This should really be done at % docstrip time instead. Takers? % \begin{macro}{\pr@version} % \begin{macrocode} %<*style> %<*!active> \NeedsTeXFormat{LaTeX2e} \def\reserved@a #1#2$#3: #4${\xdef#1{\reserved@c #2#4 $}} \def\reserved@c #1 #2${#1} \begingroup \catcode`\_=12 \reserved@a\pr@version $Name: release_11_91 $ \ifx\pr@version\@empty \reserved@a\pr@version CVS-$Revision: 1.126 $ \endgroup \else \def\next release_{} \lccode`\_=`. \edef\next{\lowercase{\endgroup \def\noexpand\pr@version{\expandafter\next\pr@version}}} \next \fi \reserved@a\next $Date: 2017/04/24 13:20:00 $ \edef\next{\noexpand\ProvidesPackage{preview}% [\next\space \pr@version\space (AUCTeX/preview-latex)]} \next % \end{macrocode} % \end{macro} % Since many parts here will not be needed as long as the package is % inactive, we will include them enclosed with |<*active>| and % || guards. That way, we can append all of this stuff at a % place where it does not get loaded if not necessary. % %\begin{macro}{\ifPreview} % Setting the \cmd{\ifPreview} command should not be done by the % user, so we don't use \cmd{\newif} here. As a consequence, there % are no \cmd{\Previewtrue} and \cmd{\Previewfalse} commands. % \begin{macrocode} \let\ifPreview\iffalse % % \end{macrocode} %\end{macro} %\begin{macro}{\ifpr@outer} % We don't allow previews inside of previews. The macro % \cmd{\ifpr@outer} can be used for checking whether we are outside % of any preview code. % \begin{macrocode} %<*active> \newif\ifpr@outer \pr@outertrue % % \end{macrocode} %\end{macro} % %\begin{macro}{\preview@delay} % The usual meaning of \cmd{\preview@delay} is to just echo its % argument in normal |preview| operation. If |preview| is inactive, % it swallows its argument. If the |delayed| option is active, the % contents will be passed to the \cmd{\AtBeginDocument} hook. %\begin{macro}{\pr@advise} % The core macro for modifying commands is \cmd{\pr@advise}. You % pass it the original command name as first argument and what should % be executed before the saved original command as second argument. %\begin{macro}{\pr@advise@ship} % The most often used macro for modifying commands is % \cmd{\pr@advise@ship}. It receives three arguments. The first is % the macro to modify, the second specifies some actions to be done % inside of a box to be created before the original macro gets % executed, the third one specifies actions after the original macro % got executed. %\begin{macro}{\pr@loadcfg} % The macro \cmd{\pr@loadcfg} is used for loading in configuration % files, unless disabled by the |noconfig| option. After discussion % with maintainer of pst-pdf package Rolf Niepraschk (Thanks!), we % add here a check for existence of |luatex85.sty| and load it if % available. With this, |preview| will also work with newer |luatex| % versions. % \begin{macrocode} %<*!active> \let\preview@delay=\@gobble \let\pr@advise=\@gobbletwo \long\def\pr@advise@ship#1#2#3{} \def\pr@loadcfg#1{\InputIfFileExists{#1.cfg}{}{}} \IfFileExists{luatex85.sty}{\RequirePackage{luatex85}}{} \DeclareOption{noconfig}{\let\pr@loadcfg=\@gobble} % \end{macrocode} %\begin{macro}{\pr@addto@front} % This adds code globally to the front of a macro. % \begin{macrocode} \long\def\pr@addto@front#1#2{% \toks@{#2}\toks@\expandafter{\the\expandafter\toks@#1}% \xdef#1{\the\toks@}} % \end{macrocode} % \end{macro} % These commands get more interesting when |preview| is active: % \begin{macrocode} \DeclareOption{active}{% \let\ifPreview\iftrue \def\pr@advise#1{% \expandafter\pr@adviseii\csname pr@\string#1\endcsname#1}% \long\def\pr@advise@ship#1#2#3{\pr@advise#1{\pr@protect@ship{#2}{#3}}}% \let\preview@delay\@firstofone} % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % % \begin{macro}{\pr@adviseii} % Now \cmd{\pr@advise} needs its helper macro. In order to avoid % recursive definitions, we advise only macros that are not yet % advised. Or, more exactly, we throw away the old advice and only % take the new one. We use e\TeX's \cmd{\protected} where available % for some extra robustness. % \begin{macrocode} \long\def\pr@adviseii#1#2#3{\preview@delay{% \ifx#1\relax \let#1#2\fi \toks@{#3#1}% \ifx\@undefined\protected \else \protected\fi \long\edef#2{\the\toks@}}} % \end{macrocode} %\end{macro} % % The |delayed| option is easy to implement: this is \emph{not} done % with \cmd{\let} since at the course of document processing, \LaTeX\ % redefines \cmd{\AtBeginDocument} and we want to follow that % redefinition. % \begin{macrocode} \DeclareOption{delayed}{% \ifPreview \def\preview@delay{\AtBeginDocument}\fi } % \end{macrocode} % %\begin{macro}{\ifpr@fixbb} % Another conditional. \cmd{\ifpr@fixbb} tells us whether we want to % surround the typeset materials with invisible rules so that Dvips % gets the bounding boxes right for, say, pure PostScript inclusions. % % If you are installing this on an operating system different from % the one |preview| has been developed on, you might want to redefine % |\pr@markerbox| in your |prdefault.cfg| file to use a file known to % be empty, like |/dev/null| is under Unix. Make this redefinition % depend on \cmd{\ifpr@fixbb} since only then |\pr@markerbox| will be % defined. % \begin{macrocode} \newif\ifpr@fixbb \pr@fixbbfalse \DeclareOption{psfixbb}{\ifPreview% \pr@fixbbtrue \newbox\pr@markerbox \setbox\pr@markerbox\hbox{\special{psfile=/dev/null}}\fi } % \end{macrocode} % \end{macro} % \begin{macro}{\pr@graphicstype} % The |dvips| option redefines the |bop-hook| to reset the page % size. % \begin{macrocode} \let\pr@graphicstype=\z@ \DeclareOption{dvips}{% \let\pr@graphicstype\@ne \preview@delay{\AtBeginDvi{% \special{!/preview@version(\pr@version)def} \special{!userdict begin/preview-bop-level 0 def% /bop-hook{/preview-bop-level dup load dup 0 le{/isls false def% /vsize 792 def/hsize 612 def}if 1 add store}bind def% /eop-hook{/preview-bop-level dup load dup 0 gt{1 sub}if store}bind def end}}}} % \end{macrocode} % The |pdftex| option just sets \cmd{\pr@graphicstype}. % \begin{macrocode} \DeclareOption{pdftex}{% \let\pr@graphicstype\tw@} % \end{macrocode} % And so does the |xetex| option. % \begin{macrocode} \DeclareOption{xetex}{% \let\pr@graphicstype\thr@@} % % \end{macrocode} % \end{macro} % \subsection{The internals} % % Those are only needed if |preview| is active. % \begin{macrocode} %<*active> % \end{macrocode} % \begin{macro}{\pr@snippet} % \cmd{\pr@snippet} is the current snippet number. We need a % separate counter to \cmd{\c@page} since several other commands % might fiddle with the page number. % \begin{macrocode} \newcount\pr@snippet \global\pr@snippet=1 % \end{macrocode} % \end{macro} % \begin{macro}{\pr@protect} % This macro gets one argument which is unpacked and executed in % typesetting situations where we are not yet inside of a preview. % \begin{macrocode} \def\pr@protect{\ifx\protect\@typeset@protect \ifpr@outer \expandafter\expandafter\expandafter \@secondoftwo\fi\fi\@gobble} % \end{macrocode} % \end{macro} % \begin{macro}{\pr@protect@ship} % Now for the above mentioned \cmd{\pr@protect@ship}. This gets % three arguments. The first is what to do at the beginning of the % preview, the second what to do at the end, the third is the macro % where we stored the original definition. % % In case we are not in a typesetting situation, % \cmd{\pr@protect@ship} leaves the stored macro to fend for its % own. No better or worse protection than the original. And we % only do anything different when \cmd{\ifpr@outer} turns out to be % true. % \begin{macrocode} \def\pr@protect@ship{\pr@protect{\@firstoftwo\pr@startbox}% \@gobbletwo} % \end{macrocode} % \end{macro} % \begin{macro}{\pr@insert} % \begin{macro}{\pr@mark} % \begin{macro}{\pr@marks} % We don't want insertions to end up on our lists. So we disable % them right now by replacing them with the following: % \begin{macrocode} \def\pr@insert{\begingroup\afterassignment\pr@insertii\count@} \def\pr@insertii{\endgroup\setbox\pr@box\vbox} % \end{macrocode} % Similar things hold for marks. % \begin{macrocode} \def\pr@mark{{\afterassignment}\toks@} \def\pr@marks{{\aftergroup\pr@mark\afterassignment}\count@} % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % \begin{macro}{\pr@box} % \begin{macro}{\pr@startbox} % Previews will be stored in \cmd{\box}\cmd{\pr@box}. % \cmd{\pr@startbox} gets two arguments: code to execute immediately % before the following stuff, code to execute afterwards. You have % to cater for \cmd{\pr@endbox} being called at the right time % yourself. We will use a \cmd{\vsplit} on the box later in order % to remove any leading glues, penalties and similar stuff. For % this reason we start off the box with an optimal break point. % \begin{macrocode} \newbox\pr@box \long\def\pr@startbox#1#2{% \ifpr@outer \toks@{#2}% \edef\pr@cleanup{\the\toks@}% \setbox\pr@box\vbox\bgroup \break \pr@outerfalse\@arrayparboxrestore \let\insert\pr@insert \let\mark\pr@mark \let\marks\pr@marks \expandafter\expandafter\expandafter \pr@ship@start \expandafter\@firstofone \else \expandafter \@gobble \fi{#1}} % \end{macrocode} % \end{macro} % \end{macro} % \begin{macro}{\pr@endbox} % Cleaning up also is straightforward. If we have to watch the % bounding \TeX\ box, we want to remove spurious skips. We also % want to unwrap a possible single line paragraph, so that the box % is not full line length. We use \cmd{\vsplit} to clean up leading % glue and stuff, and we make some attempt of removing trailing % ones. After that, we wrap up the box including possible material % from \cmd{\AtBeginDvi}. If the |psfixbb| option is active, we % adorn the upper left and lower right corners with copies of % \cmd{\pr@markerbox}. The first few lines cater for \LaTeX\ hiding % things like like the code for \cmd{\paragraph} in \cmd{\everypar}. % \begin{macrocode} \def\pr@endbox{% \let\reserved@a\relax \ifvmode \edef\reserved@a{\the\everypar}% \ifx\reserved@a\@empty\else \dimen@\prevdepth \noindent\par \setbox\z@\lastbox\unskip\unpenalty \prevdepth\dimen@ \setbox\z@\hbox\bgroup\penalty-\maxdimen\unhbox\z@ \ifnum\lastpenalty=-\maxdimen\egroup \else\egroup\box\z@ \fi\fi\fi \ifhmode \par\unskip\setbox\z@\lastbox \nointerlineskip\hbox{\unhbox\z@\/}% \else \unskip\unpenalty\unskip \fi \egroup \setbox\pr@box\vbox{% \baselineskip\z@skip \lineskip\z@skip \lineskiplimit\z@ \@begindvi \nointerlineskip \splittopskip\z@skip\setbox\z@\vsplit\pr@box to\z@ \unvbox\z@ \nointerlineskip %\color@setgroup \box\pr@box %\color@endgroup }% % \end{macrocode} % \begin{macro}{\pr@ship@end} % \label{sec:prshipend}At this point, \cmd{\pr@ship@end} gets % called. You must not under any circumstances change |\box\pr@box| % in any way that would add typeset material at the front of it, % except for PostScript header specials, since the front of % |\box\pr@box| may contain stuff from \cmd{\AtBeginDvi}. % \cmd{\pr@ship@end} contains two types of code additions: stuff % that adds to |\box\pr@box|, like the |labels| option does, and % stuff that measures out things or otherwise takes a look at the % finished |\box\pr@box|, like the |auctex| or |showbox| option do. % The former should use \cmd{pr@addto@front} for adding to this % hook, the latter use \cmd{g@addto@macro} for adding at the end of % this hook. % % Note that we shift the output box up by its height via % \cmd{\voffset}. This has three reasons: first we make sure that % no package-inflicted non-zero value of \cmd{\voffset} or % \cmd{\hoffset} will have any influence on the positioning of our % box. Second we shift the box such that its basepoint will exactly % be at the (1in,1in)~mark defined by \TeX. That way we can % properly take ascenders into account. And the third reason is % that \TeX\ treats a \cmd{\hbox} and a \cmd{\vbox} differently with % regard to the treating of its depth. Shifting \cmd{\voffset} and % \cmd{\hoffset} can be inhibited by setting |\pr@offset@override|. % \begin{macrocode} \pr@ship@end {\let\protect\noexpand \ifx\pr@offset@override\@undefined \voffset=-\ht\pr@box \hoffset=\z@ \fi \c@page=\pr@snippet \pr@shipout \ifpr@fixbb\hbox{% \dimen@\wd\pr@box \@tempdima\ht\pr@box \@tempdimb\dp\pr@box \box\pr@box \llap{\raise\@tempdima\copy\pr@markerbox\kern\dimen@}% \lower\@tempdimb\copy\pr@markerbox}% \else \box\pr@box \fi}% \global\advance\pr@snippet\@ne \pr@cleanup } % \end{macrocode} % \end{macro} % \end{macro} % Oh, and we kill off the usual meaning of \cmd{\shipout} in case % somebody makes a special output routine. The following test is % pretty much the same as in |everyshi.sty|. One of its implications % is that if someone does a \cmd{\shipout} of a \emph{void} box, % things will go horribly wrong. % \begin{macro}{\shipout} % \begin{macrocode} \let\pr@shipout=\shipout \def\shipout{\deadcycles\z@\bgroup\setbox\z@\box\voidb@x \afterassignment\pr@shipoutegroup\setbox\z@} \def\pr@shipoutegroup{\ifvoid\z@ \expandafter\aftergroup\fi \egroup} % \end{macrocode} % \end{macro} % \subsection{Parsing commands} % \begin{macro}{\pr@parseit} % \begin{macro}{\pr@endparse} % \begin{macro}{\pr@callafter} % The following stuff is for parsing the arguments of commands we % want to somehow surround with stuff. Usage is % \begin{quote} % \cmd{\pr@callafter}\meta{aftertoken}\meta{parsestring}\cmd{\pr@endparse}\\ % \qquad\meta{macro}\meta{parameters} % \end{quote} % \meta{aftertoken} is stored away and gets executed once parsing % completes, with its first argument being the parsed material. % \meta{parsestring} would be, for example for the % \cmd{\includegraphics} macro, |*[[!|, an optional |*| argument % followed by two optional arguments enclosed in |[]|, followed by % one mandatory argument. % % For the sake of a somewhat more intuitive syntax, we now support % also the syntax |{*[]{}}| in the optional argument. Since \TeX\ % strips redundant braces, we have to write |[{{}}]| in this syntax % for a single mandatory argument. Hard to avoid. We use an % unusual character for ending the parsing. The implementation is % rather trivial. % \begin{macrocode} \def\pr@parseit#1{\csname pr@parse#1\endcsname} \let\pr@endparse=\@percentchar \def\next#1{% \def\pr@callafter{% \afterassignment\pr@parseit \let#1= }} \expandafter\next\csname pr@parse\pr@endparse\endcsname % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % \begin{macro}{\pr@parse*} % Straightforward, same mechanism \LaTeX\ itself employs. We take % some care not to pass potential |#| tokens unprotected through % macros. % \begin{macrocode} \long\expandafter\def\csname pr@parse*\endcsname#1\pr@endparse#2{% \begingroup\toks@{#1\pr@endparse{#2}}% \edef\next##1{\endgroup##1\the\toks@}% \@ifstar{\next{\pr@parse@*}}{\next\pr@parseit}} % \end{macrocode} % \end{macro} % \begin{macro}{\pr@parse[} % \begin{macro}{\pr@brace} % Copies optional parameters in brackets if present. The additional % level of braces is necessary to ensure that braces the user might % have put to hide a~|]| bracket in an optional argument don't get % lost. There will be no harm if such braces were not there at the % start. % \begin{macrocode} \long\expandafter\def\csname pr@parse[\endcsname#1\pr@endparse#2{% \begingroup\toks@{#1\pr@endparse{#2}}% \edef\next##1{\endgroup##1\the\toks@}% \@ifnextchar[{\next\pr@bracket}{\next\pr@parseit}} \long\def\pr@bracket#1\pr@endparse#2[#3]{% \pr@parseit#1\pr@endparse{#2[{#3}]}} % \end{macrocode} % \end{macro} % \end{macro} % \begin{macro}{\pr@parse]} % This is basically a do-nothing, so that we may use the syntax % |{*[][]!}| in the optional argument instead of the more concise % but ugly |*[[!| which confuses the brace matchers of editors. % \begin{macrocode} \expandafter\let\csname pr@parse]\endcsname=\pr@parseit % \end{macrocode} % \end{macro} % \begin{macro}{\pr@parse} % \begin{macro}{\pr@parse!} % Mandatory arguments are perhaps easiest to parse. % \begin{macrocode} \long\def\pr@parse#1\pr@endparse#2#3{% \pr@parseit#1\pr@endparse{#2{#3}}} \expandafter\let\csname pr@parse!\endcsname=\pr@parse % \end{macrocode} % \end{macro} % \end{macro} % \begin{macro}{\pr@parse?} % \begin{macro}{\pr@parsecond} % This does an explicit call of |\@ifnextchar| and forks into the % given two alternatives as a result. % \begin{macrocode} \long\expandafter\def\csname pr@parse?\endcsname#1#2\pr@endparse#3{% \begingroup\toks@{#2\pr@endparse{#3}}% \@ifnextchar#1{\pr@parsecond\@firstoftwo}% {\pr@parsecond\@secondoftwo}} \def\pr@parsecond#1{\expandafter\endgroup \expandafter\expandafter\expandafter\pr@parseit \expandafter#1\the\toks@} % \end{macrocode} % \end{macro} % \end{macro} % \begin{macro}{\pr@parse@} % This makes it possible to insert literal material into the % argument list. % \begin{macrocode} \long\def\pr@parse@#1#2\pr@endparse#3{% \pr@parseit #2\pr@endparse{#3#1}} % \end{macrocode} % \end{macro} % \begin{macro}{\pr@parse-} % This will just drop the next token. % \begin{macrocode} \long\expandafter\def\csname pr@parse-\endcsname #1\pr@endparse#2{\begingroup \toks@{\endgroup\pr@parseit #1\pr@endparse{#2}}% {\aftergroup\the\aftergroup\toks@ \afterassignment}% \let\next= } % \end{macrocode} % \end{macro} % \begin{macro}{\pr@parse:} % The following is a transform rule. A macro is being defined with % the given argument list and replacement, and the transformed % version replaces the original. The result of the transform is % still subject to being parsed. % \begin{macrocode} \long\expandafter\def\csname pr@parse:\endcsname #1#2#3\pr@endparse#4{\begingroup \toks@{\endgroup \pr@parseit#3\pr@endparse{#4}}% \long\def\next#1{#2}% \the\expandafter\toks@\next} % \end{macrocode} % \end{macro} % \edef\next{\noexpand\begin{macro}{\noexpand % \pr@parse\string#}} % \next % Another transform rule, but this passes the transformed material % into the token list. % \begin{macrocode} \long\expandafter\def\csname pr@parse#\endcsname #1#2#3\pr@endparse#4{\begingroup \toks@{#4}% \long\edef\next##1{\toks@{\the\toks@##1}}% \toks@{\endgroup \pr@parseit#3\pr@endparse}% \long\def\reserved@a#1{{#2}}% \the\expandafter\next\reserved@a} % % \end{macrocode} % \end{macro} % % \subsection{Selection options} % The |displaymath| option. The |equation| environments in AMS\LaTeX\ % already do too much before our hook gets to interfere, so we hook % earlier. Some juggling is involved to ensure we get the original % |\everydisplay| tokens only once and where appropriate. % % The incredible hack with |\dt@ptrue| is necessary for working around % bug `amslatex/3425'. % \begin{macrocode} %<*!active> \begingroup \catcode`\*=11 \@firstofone{\endgroup \DeclareOption{displaymath}{% \preview@delay{\toks@{% \pr@startbox{\noindent$$% \aftergroup\pr@endbox\@gobbletwo}{$$}\@firstofone}% \everydisplay\expandafter{\the\expandafter\toks@ \expandafter{\the\everydisplay}}}% \pr@advise@ship\equation{\begingroup\aftergroup\pr@endbox \def\dt@ptrue{\m@ne=\m@ne}\noindent}% {\endgroup}% \pr@advise@ship\equation*{\begingroup\aftergroup\pr@endbox \def\dt@ptrue{\m@ne=\m@ne}\noindent}% {\endgroup}% \PreviewOpen[][\def\dt@ptrue{\m@ne=\m@ne}\noindent#1]\[% \PreviewClose\]% \PreviewEnvironment[][\noindent#1]{eqnarray}% \PreviewEnvironment[][\noindent#1]{eqnarray*}% \PreviewEnvironment{displaymath}% }} % \end{macrocode} % % The |textmath| option. Some folderol in order to define the active % |$| % math mode delimiter. \cmd\pr@textmathcheck is used for checking % whether we have a single |$| or double |$$|. % In the latter case, we enter display math (this sort of display math % is not allowed inside of \LaTeX\ because of inconsistent spacing, % but surprisingly many people use it nevertheless). Strictly % speaking, this is incorrect, since not every % |$$| actually means display math. For example, |\hbox{$$}| will % because of restricted horizontal mode rather yield an empty text % math formula. Since our implementation moved the sequence inside of % a |\vbox|, the interpretation will change. People should just not % enter rubbish like that. % \begin{macrocode} \begingroup \def\next#1#2{% \endgroup \DeclareOption{textmath}{% \PreviewEnvironment{math}% \preview@delay{\ifx#1\@undefined \let#1=$%$ \fi\catcode`\$=\active \ifx\xyreuncatcodes\@undefined\else \edef\next{\catcode`@=\the\catcode`@\relax}% \makeatother\expandafter\xyreuncatcodes\next\fi}% \pr@advise@ship\(\pr@endaftergroup{}% \) \pr@advise@ship#1{\@firstoftwo{\let#1=#2% \futurelet\reserved@a\pr@textmathcheck}}{}}% \def\pr@textmathcheck{\expandafter\pr@endaftergroup \ifx\reserved@a#1{#2#2}\expandafter\@gobbletwo\fi#2}} \lccode`\~=`\$ \lowercase{\expandafter\next\expandafter~}% \csname pr@\string$%$ \endcsname % % \end{macrocode} % \begin{macro}{\pr@endaftergroup} % This justs ends the box after the group opened by |#1| is closed % again. % \begin{macrocode} %<*active> \def\pr@endaftergroup#1{#1\aftergroup\pr@endbox} % % \end{macrocode} % \end{macro} % % The |graphics| option. % \begin{macrocode} %<*!active> \DeclareOption{graphics}{% \PreviewMacro[*[[!]{\includegraphics}%]] } % \end{macrocode} % The |floats| option. The complications here are merely to spare us % bug reports about broken document classes that use |\let| on % |\endfigure| and similar. Notable culprits that have not been % changed in years in spite of reports are |elsart.cls| and % |IEEEtran.cls|. Complain when you are concerned. % \begin{macrocode} \def\pr@floatfix#1#2{\ifx#1#2% \ifx#1\@undefined\else \PackageWarningNoLine{preview}{% Your document class has a bad definition^^J of \string#1, most likely^^J \string\let\string#1=\string#2^^J which has now been changed to^^J \string\def\string#1{\string#2}^^J because otherwise subsequent changes to \string#2^^J (like done by several packages changing float behaviour)^^J can't take effect on \string#1.^^J Please complain to your document class author}% \def#1{#2}\fi\fi} \begingroup \def\next#1#2{\endgroup \DeclareOption{floats}{% \pr@floatfix\endfigure\end@float \pr@floatfix\endtable\end@float \pr@floatfix#1\end@dblfloat \pr@floatfix#2\end@dblfloat \PreviewSnarfEnvironment[![]{@float}%] \PreviewSnarfEnvironment[![]{@dblfloat}%] }} \expandafter\next\csname endfigure*\expandafter\endcsname \csname endtable*\endcsname % \end{macrocode} % The |sections| option. Two optional parameters might occur in % |memoir.cls|. % \begin{macrocode} \DeclareOption{sections}{% \PreviewMacro[!!!!!!*[[!]{\@startsection}%]] \PreviewMacro[*[[!]{\chapter}%]] } % \end{macrocode} % We now interpret any further options as driver files we load. Note % that these driver files are loaded even when |preview| is not % active. The reason is that they might define commands (like % \cmd{\PreviewCommand}) that should be available even in case of an % inactive package. Large parts of the |preview| package will not % have been loaded in this case: you have to cater for that. % \begin{macrocode} \DeclareOption* {\InputIfFileExists{pr\CurrentOption.def}{}{\OptionNotUsed}} % \end{macrocode} % % \subsection{Preview attaching commands} % \begin{macro}{\PreviewMacro} % As explained above. Detect possible |*| and call appropriate % macro. % \begin{macrocode} \def\PreviewMacro{\@ifstar\pr@starmacro\pr@macro} % \end{macrocode} % The version without |*| is now rather straightforward. % \begin{macro}{\pr@macro} % \begin{macro}{\pr@domacro} % \begin{macro}{\pr@macroii} % \begin{macro}{\pr@endmacro} % \begin{macrocode} \long\def\pr@domacro#1#2{% \long\def\next##1{#2}% \pr@callafter\next#1]\pr@endparse} \newcommand\pr@macro[1][]{% \toks@{\pr@domacro{#1}}% \long\edef\next[##1]##2{% \noexpand\pr@advise@ship{##2}{\the\toks@{##1\noexpand\pr@endbox}}{}}% \@ifnextchar[\next\pr@macroii} \def\pr@macroii{\next[##1]} \long\def\pr@endmacro#1{#1\pr@endbox} % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \begin{macro}{PreviewMacro*} % \begin{macro}{\pr@protect@domacro} % \begin{macro}{\pr@starmacro} % The version with |*| has to parse the arguments, then throw them % away. Some internal macros first, then the interface call. % \begin{macrocode} \long\def\pr@protect@domacro#1#2{\pr@protect{% \long\def\next##1{#2}% \pr@callafter\next#1]\pr@endparse}} \newcommand\pr@starmacro[1][]{\toks@{\pr@protect@domacro{#1}}% \long\edef\next[##1]##2{% \noexpand\pr@advise##2{\the\toks@{##1}}}% \@ifnextchar[\next{\next[]}} % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % \begin{macro}{\PreviewOpen} % As explained above. Detect possible |*| and call appropriate macro. % \begin{macrocode} \def\PreviewOpen{\@ifstar\pr@starmacro\pr@open} % \end{macrocode} % The version without |*| is now rather straightforward. % \begin{macro}{\pr@open} % \begin{macrocode} \newcommand\pr@open[1][]{% \toks@{\pr@domacro{#1}}% \long\edef\next[##1]##2{% \noexpand\pr@advise##2{\begingroup \noexpand\pr@protect@ship {\the\toks@{\begingroup\aftergroup\noexpand\pr@endbox##1}}% {\endgroup}}}% \@ifnextchar[\next\pr@macroii} % \end{macrocode} % \end{macro} % \end{macro} % \begin{macro}{\PreviewClose} % As explained above. Detect possible |*| and call appropriate % macro. % \begin{macrocode} \def\PreviewClose{\@ifstar\pr@starmacro\pr@close} % \end{macrocode} % The version without |*| is now rather straightforward. % \begin{macro}{\pr@close} % \begin{macrocode} \newcommand\pr@close[1][]{% \toks@{\pr@domacro{#1}}% \long\edef\next[##1]##2{% \noexpand\pr@advise{##2}{\the\toks@{##1\endgroup}}}% \@ifnextchar[\next\pr@macroii} % \end{macrocode} % \end{macro} % \end{macro} % \begin{macro}{\PreviewEnvironment} % Actually, this ignores any syntax argument. But don't tell % anybody. Except for the |*|~variant, it respects (actually % ignores) any argument! Of course, we'll need to deactivate % |\end{|\meta{environment}|}| as well. % \begin{macrocode} \def\PreviewEnvironment{\@ifstar\pr@starenv\pr@env} \newcommand\pr@starenv[1][]{\toks@{\pr@starmacro[{#1}]}% \long\edef\next##1##2{% \the\toks@[{##2}]##1}% \begingroup\pr@starenvii} \newcommand\pr@starenvii[2][]{\endgroup \expandafter\next\csname#2\endcsname{#1}% \expandafter\pr@starmacro\csname end#2\endcsname} \newcommand\pr@env[1][]{% \toks@{\pr@domacro{#1}}% \long\edef\next[##1]##2{% \noexpand\expandafter\noexpand\pr@advise@ship \noexpand\csname##2\noexpand\endcsname{\the\toks@ {\begingroup\aftergroup\noexpand\pr@endbox##1}}{\endgroup}}% \@ifnextchar[\next\pr@macroii %] } % \end{macrocode} % \end{macro} % \begin{macro}{\PreviewSnarfEnvironment} % This is a nuisance since we have to advise \emph{both} the % environment and its end. % \begin{macrocode} \newcommand{\PreviewSnarfEnvironment}[2][]{% \expandafter\pr@advise \csname #2\endcsname{\pr@snarfafter{#1}}% \expandafter\pr@advise \csname end#2\endcsname{\pr@endsnarf}} % % \end{macrocode} % \end{macro} % \begin{macro}{\pr@snarfafter} % \begin{macro}{\pr@startsnarf} % \begin{macro}{\pr@endsnarf} % Ok, this looks complicated, but we have to start a group in order % to be able to hook \cmd{\pr@endbox} into the game only when % \cmd{\ifpr@outer} has triggered the start. And we need to get our % start messages out before parsing the arguments. % \begin{macrocode} %<*active> \let\pr@endsnarf\relax \long\def\pr@snarfafter#1{\ifpr@outer \pr@ship@start \let\pr@ship@start\relax \let\pr@endsnarf\endgroup \else \let\pr@endsnarf\relax \fi \pr@protect{\pr@callafter\pr@startsnarf#1]\pr@endparse}} \def\pr@startsnarf#1{#1\begingroup \pr@startbox{\begingroup\aftergroup\pr@endbox}{\endgroup}% \ignorespaces} % % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % \begin{macro}{\pr@ship@start} % \begin{macro}{\pr@ship@end} % The hooks \cmd{\pr@ship@start} and \cmd{\pr@ship@end} can be added % to by option files by the help of the \cmd{\g@addto@macro} command % from \LaTeX, and by the \cmd{\pr@addto@front} command from % |preview.sty| itself. They are called just before starting to % process some preview, and just after it. Here is the policy for % adding to them: \cmd{\pr@ship@start} is called inside of the vbox % |\pr@box| before typeset material gets produced. It is, however, % preceded by a break command that is intended for usage in % \cmd{\vsplit}, so that any following glue might disappear. In % case you want to add any material on the list, you have to precede % it with \cmd{\unpenalty} and have to follow it with \cmd{\break}. % You have make sure that under no circumstances any other legal % breakpoints appear before that, and your material should % contribute no nonzero dimensions to the page. For the policies of % the \cmd{\pr@ship@end} hook, see the description on % page~\pageref{sec:prshipend}. % \begin{macrocode} %<*!active> \let\pr@ship@start\@empty \let\pr@ship@end\@empty % \end{macrocode} % \end{macro} % \end{macro} % \begin{environment}{preview} % \begin{environment}{nopreview} % First we write the definitions of these environments when % |preview| is inactive. We will redefine them if |preview| gets % activated. % \begin{macrocode} \newenvironment{preview}{\ignorespaces}{\ifhmode\unskip\fi} \newenvironment{nopreview}{\ignorespaces}{\ifhmode\unskip\fi} % \end{macrocode} % \end{environment} % \end{environment} % % We now process the options and finish in case we are not active. % \begin{macrocode} \ProcessOptions\relax \ifPreview\else\expandafter\endinput\fi % % \end{macrocode} % Now for the redefinition of the |preview| and |endpreview| % environments: % \begin{macrocode} %<*active> \renewenvironment{preview}{\begingroup \pr@startbox{\begingroup\aftergroup\pr@endbox}% {\endgroup}% \ignorespaces}% {\ifhmode\unskip\fi\endgroup} \renewenvironment{nopreview}{\pr@outerfalse\ignorespaces}% {\ifhmode\unskip\fi} % \end{macrocode} % We use the normal output routine, but hijack it a bit for our % purposes to preserve \cmd{\AtBeginDvi} hooks and not get previews % while in output: that could become rather ugly. % % The main work of disabling normal output relies on a \cmd{\shipout} % redefinition. % \begin{macro}{\pr@output} % \begin{macrocode} \newtoks\pr@output \pr@output\output \output{% \pr@outerfalse \let\@begindvi\@empty \the\pr@output} \let\output\pr@output % \end{macrocode} % \end{macro} % \begin{macro}{\pr@typeinfos} % Then we have some document info that style files might want to % output. % \begin{macrocode} \def\pr@typeinfos{\typeout{Preview: Fontsize \f@size pt}% \ifnum\mag=\@m\else\typeout{Preview: Magnification \number\mag}\fi \ifx\pdfoutput\@undefined \ifx\XeTeXversion\@undefined \else % FIXME: The message should not be emitted if XeTeX does not produce % PDF. There does not seem to be a primitive for that, though. \typeout{Preview: PDFoutput 1}% \fi \else \ifx\pdfoutput\relax \else \ifnum\pdfoutput>\z@ \typeout{Preview: PDFoutput 1}% \fi \fi \fi } \AtBeginDocument{\pr@typeinfos} % \end{macrocode} % \end{macro} % And at the end we load the default configuration file, so that it % may override settings from this package: % \begin{macrocode} \pr@loadcfg{prdefault} % % % \end{macrocode} % % \section{The option files} % \subsection{The \texttt{auctex} option} % The AUC\TeX\ option will cause error messages to spew. We want them % on the terminal, but we don't want \LaTeX\ to stop its automated % run. We delay \cmd{\nonstopmode} in case the user has any % pseudo-interactive folderol like reading in of file names in his % preamble. Because we are so good-hearted, we will not break this as % long as the document has not started, but after that we need the % error message mechanism operative. % % The |\nofiles| command here tries to avoid clobbering input files % used for references and similar. It will come too late if you call % the package with \cmd{\AtBeginDocument}, so you'll need to issue % |\nofiles| yourself in that case. Previously, this was done % unconditionally in the main style file, but since we don't know what % the package may be used for, this was inappropriate. % % So here is the contents of the |prauctex.def| file: % \begin{macrocode} %\ifPreview\else\expandafter\endinput\fi %\nofiles %\preview@delay{\nonstopmode} % \end{macrocode} % Ok, here comes creative error message formatting. It turns out a % sizable portion of the runtime is spent in I/O. Making the error % messages short is an advantage. It is not possible to convince % \TeX\ to make shorter error messages than this: \TeX\ always wants % to include context. This is about the shortest \ae sthetic one we % can muster. % \begin{macrocode} %\begingroup %\lccode`\~=`\- %\lccode`\{=`\< %\lccode`\}=`\> %\lowercase{\endgroup % \def\pr@msgi{{~}}} %\def\pr@msgii{Preview: % Snippet \number\pr@snippet\space} %\begingroup %\catcode`\-=13 %\catcode`\<=13 %\@firstofone{\endgroup %\def\pr@msg#1{{% % \let<\pr@msgi % \def-{\pr@msgii#1}% % \errhelp{Not a real error.}% % \errmessage<}}} %\g@addto@macro\pr@ship@start{\pr@msg{started}} %\g@addto@macro\pr@ship@end{\pr@msg{ended.% % (\number\ht\pr@box+\number\dp\pr@box x\number\wd\pr@box)}} % \end{macrocode} % This looks pretty baffling, but it produces something short and % semi-graphical, namely |<-><->|. That is a macro |<| that expands % into |<->|, where |<| and |>| are the braces around an % \cmd{\errmessage} argument and |-| is a macro expanding to the full % text of the error message. Cough cough. You did not really want to % know, did you? % % Since over/underfull boxes are about the messiest things to parse, % we disable them by setting the appropriate badness limits and making % the variables point to junk. We also disable other stuff. While we % set \cmd{\showboxbreadth} and \cmd{\showboxdepth} to indicate as % little diagnostic output as possible, we keep them operative, so % that the user retains the option of debugging using this stuff. The % other variables concerning the generation of warnings and % daignostics, however, are more often set by commonly employed % packages and macros such as \cmd{\sloppy}. So we kill them off for % good. % \begin{macrocode} %\hbadness=\maxdimen %\newcount\hbadness %\vbadness=\maxdimen %\let\vbadness=\hbadness %\hfuzz=\maxdimen %\newdimen\hfuzz %\vfuzz=\maxdimen %\let\vfuzz=\hfuzz %\showboxdepth=-1 %\showboxbreadth=-1 % \end{macrocode} % Ok, now we load a possible configuration file. % \begin{macrocode} %\pr@loadcfg{prauctex} % \end{macrocode} % And here we cater for several frequently used commands in % |prauctex.cfg|: % \begin{macrocode} %\PreviewMacro*[[][#1{}]\footnote %\PreviewMacro*[?[{@{[]}}{}][#1]\item %\PreviewMacro*\emph %\PreviewMacro*\textrm %\PreviewMacro*\textit %\PreviewMacro*\textsc %\PreviewMacro*\textsf %\PreviewMacro*\textsl %\PreviewMacro*\texttt %\PreviewMacro*\textcolor %\PreviewMacro*\mbox %\PreviewMacro*[][#1{}]\author %\PreviewMacro*[][#1{}]\title %\PreviewMacro*\and %\PreviewMacro*\thanks %\PreviewMacro*[][#1{}]\caption %\preview@delay{\@ifundefined{pr@\string\@startsection}{% % \PreviewMacro*[!!!!!!*][#1{}]\@startsection}{}} %\preview@delay{\@ifundefined{pr@\string\chapter}{% % \PreviewMacro*[*][#1{}]\chapter}{}} %\PreviewMacro*\index % \end{macrocode} % % \subsection{The \texttt{lyx} option} % The following is the option providing LyX with info for its preview % implementation. % \begin{macrocode} %\ifPreview\else\expandafter\endinput\fi %\pr@loadcfg{prlyx} %\g@addto@macro\pr@ship@end{\typeout{Preview: % Snippet \number\pr@snippet\space % \number\ht\pr@box\space \number\dp\pr@box \space\number\wd\pr@box}} % \end{macrocode} % % \subsection{The \texttt{counters} option} % This outputs a checkpoint. We do this by saving all counter % registers in backup macros starting with |\pr@c@| in their name. A % checkpoint first writes out all changed counters (previously % unchecked counters are not written out unless different from zero), % then saves all involved counter values. \LaTeX\ tracks its counters % in the global variable \cmd{\cl@ckpt}. % \begin{macrocode} %\ifPreview\else\expandafter\endinput\fi %\def\pr@eltprint#1{\expandafter\@gobble\ifnum\value{#1}=0% % \csname pr@c@#1\endcsname\else\relax % \space{#1}{\arabic{#1}}\fi} %\def\pr@eltdef#1{\expandafter\xdef % \csname pr@c@#1\endcsname{\arabic{#1}}} %\def\pr@ckpt#1{{\let\@elt\pr@eltprint\edef\next{\cl@@ckpt}% % \ifx\next\@empty\else\typeout{Preview: Counters\next#1}% % \let\@elt\pr@eltdef\cl@@ckpt\fi}} %\pr@addto@front\pr@ship@start{\pr@ckpt:} %\pr@addto@front\pr@ship@end{\pr@ckpt.} % \end{macrocode} % % \subsection{Debugging options} % Those are for debugging the operation of |preview|, and thus are % mostly of interest for people that want to use |preview| for their % own purposes. Since debugging output is potentially confusing to % the error message parsing from AUC\TeX, you should not turn on % |\tracingonline| or switch from |\nonstopmode| unless you are % certain your package will never be used with \previewlatex. % % \paragraph{The \texttt{showbox} option} will generate diagnostic % output for every produced box. It does not delay the resetting of % the |\showboxbreadth| and |\showboxdepth| parameters so that you can % still change them after the loading of the package. It does, % however, move them to the end of the package loading, so that they % will not be affected by the |auctex| option. % \begin{macrocode} %\ifPreview\else\expandafter\endinput\fi %\AtEndOfPackage{% % \showboxbreadth\maxdimen % \showboxdepth\maxdimen} %\g@addto@macro\pr@ship@end{\showbox\pr@box} % \end{macrocode} % % \paragraph{The \texttt{tracingall} option} is for the really heavy % diagnostic stuff. For the reasons mentioned above, we do not want % to change the setting of the interaction mode, nor of the % |tracingonline| flag. If the user wants them different, he should % set them outside of the preview boxes. % \begin{macrocode} %\ifPreview\else\expandafter\endinput\fi %\pr@addto@front\pr@ship@start{\let\tracingonline\count@ % \let\errorstopmode\@empty\tracingall} % \end{macrocode} % % \subsection{Supporting conversions} % It is not uncommon to want to use the results of |preview| as % images. One possibility is to generate a flurry of EPS files with % \begin{quote} % |dvips -E -i -Ppdf -o| \meta{outputfile}|.000| \meta{inputfile} % \end{quote} % However, in case those are to be processed further into graphic % image files by Ghostscript, this process is inefficient. One cannot % use Ghostscript in a single run for generating the files, however, % since one needs to set the page size (or full size pages will be % produced). The |tightpage| option will set the page dimensions at % the start of each PostScript page so that the output will be sized % appropriately. That way, a single pass of Dvips followed by a % single pass of Ghostscript will be sufficient for generating all % images. % % You will have to specify the output driver to be used, either % |dvips| or |pdftex|. % % \begin{macro}{\PreviewBorder} % \begin{macro}{\PreviewBbAdjust} % We start this off with the user tunable parameters which get % defined even in the case of an inactive package, so that % redefinitions and assignments to them will always work: % \begin{macrocode} %\ifx\PreviewBorder\@undefined % \newdimen\PreviewBorder % \PreviewBorder=0.50001bp %\fi %\ifx\PreviewBbAdjust\@undefined % \def\PreviewBbAdjust{-\PreviewBorder -\PreviewBorder % \PreviewBorder \PreviewBorder} %\fi % \end{macrocode} % \end{macro} % \end{macro} % Here is stuff used for parsing this: % \begin{macrocode} %\ifPreview\else\expandafter\endinput\fi %\def\pr@nextbb{\edef\next{\next\space\number\dimen@}% % \expandafter\xdef\csname pr@bb@% % \romannumeral\count@\endcsname{\the\dimen@}% % \advance\count@\@ne\ifnum\count@<5 % \afterassignment\pr@nextbb\dimen@=\fi} % \end{macrocode} % And here is the stuff that we fudge into our hook. Of course, we % have to do it in a box, and we start this box off with our special. % There is one small consideration here: it might come before any % |\AtBeginDvi| stuff containing header specials. It turns out Dvips % rearranges this amicably: header code specials get transferred to % the appropriate header section, anyhow, so this ensures that we come % right after the bop section. We insert the 7~numbers here: the % 4~bounding box adjustments, and the 3~\TeX\ box dimensions. In case % the box adjustments have changed since the last time, we write them % out to the console. % \begin{macrocode} %\ifnum\pr@graphicstype=\z@ % \ifcase % \ifx\XeTeXversion\@undefined % \ifx\pdfoutput\@undefined \@ne\fi % \ifx\pdfoutput\relax \@ne\fi % \ifnum\pdfoutput>\z@ \tw@\fi \@ne % \else \thr@@\fi % \or \ExecuteOptions{dvips}\relax % \or \ExecuteOptions{pdftex}\relax % \or \ExecuteOptions{xetex}\relax\fi\fi %\global\let\pr@bbadjust\@empty %\pr@addto@front\pr@ship@end{\begingroup % \let\next\@gobble % \count@\@ne\afterassignment\pr@nextbb % \dimen@\PreviewBbAdjust % \ifx\pr@bbadjust\next % \else \global\let\pr@bbadjust\next % \typeout{Preview: Tightpage \pr@bbadjust}% % \fi\endgroup} %\ifcase\pr@graphicstype %\or % \g@addto@macro\pr@ship@end{\setbox\pr@box\hbox{% % \special{ps::\pr@bbadjust\space % \number\ifdim\ht\pr@box>\z@ \ht\pr@box % \else \z@ % \fi \space % \number\ifdim\dp\pr@box>\z@ \dp\pr@box % \else \z@ % \fi \space % \number\ifdim\wd\pr@box>\z@ \wd\pr@box % \else \z@ % \fi}\box\pr@box}} %\or % \g@addto@macro\pr@ship@end{{\dimen@\ht\pr@box % \ifdim\dimen@<\z@ \dimen@\z@\fi % \advance\dimen@\pr@bb@iv % \dimen@ii=\dimen@ % \global\pdfvorigin\dimen@ % \dimen@\dp\pr@box % \ifdim\dimen@<\z@ \dimen@\z@\fi % \advance\dimen@-\pr@bb@ii % \advance\dimen@\dimen@ii % \global\pdfpageheight\dimen@ % \dimen@\wd\pr@box % \ifdim\dimen@<\z@ \dimen@=\z@\fi % \advance\dimen@-\pr@bb@i % \advance\dimen@\pr@bb@iii % \global\pdfpagewidth\dimen@ % \global\pdfhorigin-\pr@bb@i}} %\or % \g@addto@macro\pr@ship@end{\dimen@\ht\pr@box % \ifdim\dimen@<\z@ \dimen@\z@\fi % \advance\dimen@\pr@bb@iv % \dimen@ii=\dimen@ % \voffset=-1in % \advance\voffset\dimen@ % \advance\voffset-\ht\pr@box % \dimen@\dp\pr@box % \ifdim\dimen@<\z@ \dimen@\z@\fi % \advance\dimen@-\pr@bb@ii % \advance\dimen@\dimen@ii % \global\pdfpageheight\dimen@ % \global\paperheight\dimen@ % \dimen@\wd\pr@box % \ifdim\dimen@<\z@ \dimen@=\z@\fi % \advance\dimen@-\pr@bb@i % \advance\dimen@\pr@bb@iii % \global\pdfpagewidth\dimen@ % \hoffset=-1in % \advance\hoffset-\pr@bb@i % \let\pr@offset@override\@empty} %\fi % \end{macrocode} % Ok, here comes the beef. First we fish the 7~numbers from the file % with |token| and convert them from \TeX~|sp| to PostScript points. % \begin{macrocode} %\ifnum\pr@graphicstype=\@ne %\preview@delay{\AtBeginDvi{% % \end{macrocode} % Backwards-compatibility. Once we are certain that dvipng-1.6 or % later is widely used, the three following specials can be exchanged % for the simple |\special{!/preview@tightpage true def}| % \begin{macrocode} % \special{!/preview@tightpage true def (% % compatibility PostScript comment for dvipng<=1.5 } % \special{!userdict begin/bop-hook{% % 7{currentfile token not{stop}if % 65781.76 div DVImag mul}repeat % 72 add 72 2 copy gt{exch}if 4 2 roll % neg 2 copy lt{exch}if dup 0 gt{pop 0 exch}% % {exch dup 0 lt{pop 0}if}ifelse 720 add exch 720 add % 3 1 roll % 4{5 -1 roll add 4 1 roll}repeat % < /PageOffset[7 -2 roll [1 1 dtransform exch]% % {0 ge{neg}if exch}forall]>>setpagedevice% % //bop-hook exec}bind def end} % \special{!userdict (some extra code to avoid % dvipng>=1.6 unknown special: % 7{currentfile token not{stop}if 65781.76 div })) pop} % \end{macrocode} % The ``userdict'' at the start of the last special is also there to % avoid an unknown special in dvipng<=1.6. This is the end of the % backwards-compatibility code. % \begin{macrocode} % \special{!userdict begin/bop-hook{% % preview-bop-level 0 le{% % 7{currentfile token not{stop}if % 65781.76 div DVImag mul}repeat % \end{macrocode} % Next we produce the horizontal part of the bounding box as % \[ (1\mathrm{in},1\mathrm{in}) + % \bigl(\min(|\wd\pr@box|,0),\max(|\wd\pr@box|,0)\bigr) \] % and roll it to the bottom of the stack: % \begin{macrocode} % 72 add 72 2 copy gt{exch}if 4 2 roll % \end{macrocode} % Next is the vertical part of the bounding box. Depth counts in % negatively, and we again take $\min$ and $\max$ of possible extents % in the vertical direction, limited by 0. 720 corresponds to % $10\,\mathrm{in}$ and is the famous $1\,\mathrm{in}$ distance away % from the edge of letterpaper. % \begin{macrocode} % neg 2 copy lt{exch}if dup 0 gt{pop 0 exch}% % {exch dup 0 lt{pop 0}if}ifelse 720 add exch 720 add % 3 1 roll % \end{macrocode} % Ok, we now have the bounding box on the stack in the proper order % llx, lly, urx, ury. We add the adjustments: % \begin{macrocode} % 4{5 -1 roll add 4 1 roll}repeat % \end{macrocode} % The page size is calculated as the appropriate differences, the page % offset consists of the coordinates of the lower left corner, with % those coordinates negated that would be reckoned positive in the % device coordinate system. % \begin{macrocode} % < /PageOffset[7 -2 roll [1 1 dtransform exch]% % {0 ge{neg}if exch}forall]>>setpagedevice}if% % \end{macrocode} % So we now bind the old definition of |bop-hook| into our new % definition and finish it. % \begin{macrocode} % //bop-hook exec}bind def end}}} %\fi % \end{macrocode} % % \subsection{The \texttt{showlabels} option} % During the editing process, some people like to see the label names % in their equations, figures and the like. Now if you are using % Emacs for editing, and in particular \previewlatex, I'd strongly % recommend that you check out the Ref\TeX\ package which pretty much % obliterates the need for this kind of functionality. If you still % want it, standard \LaTeX\ provides it with the |showkeys| package, % and there is also the less encompassing |showlabels| package. % Unfortunately, since those go to some pain not to change the page % layout and spacing, they also don't change |preview|'s idea of the % \TeX\ dimensions of the involved boxes. % % So those packages are mostly useless. So we present here an % alternative hack that will get the labels through. % \begin{macro}{\pr@labelbox} % This works by collecting them into a separate box which we then % tack to the right of the previews. % \begin{macrocode} %\ifPreview\else\expandafter\endinput\fi %\newbox\pr@labelbox % \end{macrocode} % \end{macro} % \begin{macro}{\pr@label} % We follow up with our own definition of the \cmd{\label} macro % which will be active only in previews. The original definition is % stored in |\pr@@label|. |\pr@lastlabel| contains the last typeset % label in order to avoid duplication in certain environments, and % we keep the stuff in |\pr@labelbox|. % \begin{macrocode} %\def\pr@label#1{\pr@@label{#1}% % \end{macrocode} % Ok, now we generate the box, by placing the label below any existing % stuff. % \begin{macrocode} % \ifpr@setbox\z@{#1}% % \global\setbox\pr@labelbox\vbox{\unvbox\pr@labelbox % \box\z@}\egroup\fi} % \end{macrocode} % \end{macro} % \begin{macro}{\ifpr@setbox} % |\ifpr@setbox| receives two arguments, |#1| is the box into which % to set a label, |#2| is the label text itself. If a label needs % to be set (if it is not a duplicate in the current box, and is % nonempty, and we are in the course of typesetting and so on), we % are left in a true conditional and an open group with the preset % box. If nothing should be set, no group is opened, and we get % into skipping to the closing of the conditional. Since % |\ifpr@setbox| is a macro, you should not place the call to it % into conditional text, since it will not pair up with |\fi| until % being expanded. % % We have some trickery involved here. |\romannumeral\z@| expands % to empty, and will also remove everything between the two of them % that also expands to empty, like a chain of |\fi|. % \begin{macrocode} %\def\ifpr@setbox#1#2{% % \romannumeral% % \ifx\protect\@typeset@protect\ifpr@outer\else % \end{macrocode} % Ignore empty labels\dots % \begin{macrocode} % \z@\bgroup % \protected@edef\next{#2}\@onelevel@sanitize\next % \ifx\next\@empty\egroup\romannumeral\else % \end{macrocode} % and labels equal to the last one. % \begin{macrocode} % \ifx\next\pr@lastlabel\egroup\romannumeral\else % \global\let\pr@lastlabel\next % \setbox#1\pr@boxlabel\pr@lastlabel % \expandafter\expandafter\romannumeral\fi\fi\fi\fi % \z@\iffalse\iftrue\fi} % \end{macrocode} % \end{macro} % \begin{macro}{\pr@boxlabel} % Now the actual typesetting of a label box is done. We use a small % typewriter font inside of a framed box (the default frame/box % separating distance is a bit large). % \begin{macrocode} %\def\pr@boxlabel#1{\hbox{\normalfont % \footnotesize\ttfamily\fboxsep0.4ex\relax\fbox{#1}}} % \end{macrocode} % \end{macro} % \begin{macro}{\pr@maketag} % And here is a version for |amsmath| equations. They look better % when the label is right beside the tag, so we place it there, but % augment |\box\pr@labelbox| with an appropriate placeholder. % \begin{macrocode} %\def\pr@maketag#1{\pr@@maketag{#1}% % \ifpr@setbox\z@{\df@label}% % \global\setbox\pr@labelbox\vbox{% % \hrule\@width\wd\z@\@height\z@ % \unvbox\pr@labelbox}% % \end{macrocode} % Set the width of the box to empty so that the label placement gets % not disturbed, then append it. % \begin{macrocode} % \wd\z@\z@\box\z@ \egroup\fi} % \end{macrocode} % \end{macro} % \begin{macro}{\pr@lastlabel} % Ok, here is how we activate this: we clear out box and label info % \begin{macrocode} %\g@addto@macro\pr@ship@start{% % \global\setbox\pr@labelbox\box\voidb@x % \xdef\pr@lastlabel{}% % \end{macrocode} % The definitions above are global because we might be in any amount % of nesting. We then reassign the appropriate labelling macros: % \begin{macrocode} % \global\let\pr@@label\label \let\label\pr@label % \global\let\pr@@maketag\maketag@@@ % \let\maketag@@@\pr@maketag %} % \end{macrocode} % \end{macro} % Now all we have to do is to add the stuff to the box in question. % The stuff at the front works around a bug in |ntheorem.sty|. % \begin{macrocode} %\pr@addto@front\pr@ship@end{% % \ifx \label\pr@label \global\let\label\pr@@label \fi % \ifx \maketag@@@\pr@maketag % \global\let\maketag@@@\pr@@maketag \fi % \ifvoid\pr@labelbox % \else \setbox\pr@box\hbox{% % \box\pr@box\,\box\pr@labelbox}% % \fi} % \end{macrocode} % \subsection{The \texttt{footnotes} option} % This is rather simplistic right now. It overrides the default % footnote action (which is to disable footnotes altogether for better % visibility). % \begin{macrocode} %\PreviewMacro[[!]\footnote %] % \end{macrocode} % % \section{Various driver files} % The installer, in case it is missing. If it is to be used via % |make|, we don't specify an installation path, since % \begin{quote} % |make install| % \end{quote} % is supposed to cater for the installation itself. % \begin{macrocode} % \input docstrip % \askforoverwritefalse % \generate{ % \file{preview.drv}{\from{preview.dtx}{driver}} % \usedir{tex/latex/preview} % \file{preview.sty}{\from{preview.dtx}{style} % \from{preview.dtx}{style,active}} % \file{prauctex.def}{\from{preview.dtx}{auctex}} % \file{prauctex.cfg}{\from{preview.dtx}{auccfg}} % \file{prshowbox.def}{\from{preview.dtx}{showbox}} % \file{prshowlabels.def}{\from{preview.dtx}{showlabels}} % \file{prtracingall.def}{\from{preview.dtx}{tracingall}} % \file{prtightpage.def}{\from{preview.dtx}{tightpage}} % \file{prlyx.def}{\from{preview.dtx}{lyx}} % \file{prcounters.def}{\from{preview.dtx}{counters}} % \file{prfootnotes.def}{\from{preview.dtx}{footnotes}} % } % \endbatchfile % \end{macrocode} % And here comes the documentation driver. % \begin{macrocode} % \documentclass{ltxdoc} % \usepackage{preview} % \let\ifPreview\relax % \newcommand\previewlatex{\texttt{preview-latex}} % \begin{document} % \DocInput{preview.dtx} % \end{document} % \end{macrocode} % \Finale{} % \iffalse % Local Variables: % mode: doctex % TeX-master: "preview.drv" % End: % \fi auctex-11.91/lpath.el000066400000000000000000000004351313533625700144620ustar00rootroot00000000000000;;; This file is only used for installing AUCTeX. ;; Copyright (C) 2013 Free Software Foundation, Inc. ;;; It is not a part of AUCTeX itself. ;; Make sure we get the right files. (setq load-path (cons "." load-path) TeX-lisp-directory "" TeX-auto-global "") auctex-11.91/mkinstalldirs000077500000000000000000000034001313533625700156310ustar00rootroot00000000000000: # mkinstalldirs --- make directory hierarchy # Author: Noah Friedman # Created: 1993-05-16 # Public domain errstatus=0 dirmode="" usage="\ Usage: mkinstalldirs [-h] [--help] [-m mode] dir ..." # process command line arguments while test $# -gt 0 ; do case "${1}" in -h | --help | --h* ) # -h for help echo "${usage}" 1>&2; exit 0 ;; -m ) # -m PERM arg shift test $# -eq 0 && { echo "${usage}" 1>&2; exit 1; } dirmode="${1}" shift ;; -- ) shift; break ;; # stop option processing -* ) echo "${usage}" 1>&2; exit 1 ;; # unknown option * ) break ;; # first non-opt arg esac done for file do if test -d "$file"; then shift else break fi done case $# in 0) exit 0 ;; esac case $dirmode in '') if mkdir -p -- . 2>/dev/null; then echo "mkdir -p -- $*" exec mkdir -p -- "$@" fi ;; *) if mkdir -m "$dirmode" -p -- . 2>/dev/null; then echo "mkdir -m $dirmode -p -- $*" exec mkdir -m "$dirmode" -p -- "$@" fi ;; esac for file do set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` shift pathcomp= for d do pathcomp="$pathcomp$d" case "$pathcomp" in -* ) pathcomp=./$pathcomp ;; esac if test ! -d "$pathcomp"; then echo "mkdir $pathcomp" mkdir "$pathcomp" || lasterr=$? if test ! -d "$pathcomp"; then errstatus=$lasterr else if test ! -z "$dirmode"; then echo "chmod $dirmode $pathcomp" lasterr="" chmod "$dirmode" "$pathcomp" || lasterr=$? if test ! -z "$lasterr"; then errstatus=$lasterr fi fi fi fi pathcomp="$pathcomp/" done done exit $errstatus # Local Variables: # mode: shell-script # sh-indentation: 3 # End: # mkinstalldirs ends here auctex-11.91/multi-prompt.el000066400000000000000000000176621313533625700160350ustar00rootroot00000000000000;;; multi-prompt.el --- Completing read of multiple strings ;; Copyright (C) 1996, 1997, 2000, 2009, 2014 Free Software Foundation, Inc. ;; Author: Per Abrahamsen ;; Maintainer: auctex-devel@gnu.org ;; Created: 1996-08-31 ;; Keywords: extensions ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; ;; You should have received a copy of the GNU General Public License ;; along with this program; if not, write to the Free Software ;; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ;;; Commentary: ;; This package is written for use in emacs lisp programs, where the ;; user is prompted for a string of the form: ;; ;; FOO,BAR,BAZ ;; ;; where FOO, BAR, and BAZ are elements of some table. The function ;; `multi-prompt' is a replacement `completing-read' that will allow ;; the user to enter a string like the above, yet get completion on ;; all FOO, BAR, and BAZ. ;;; Code: (defvar multi-prompt-found nil "List of entries currently added during a `multi-prompt'.") ;;;###autoload (defun multi-prompt (separator unique prompt table &optional mp-predicate require-match initial history) "Completing prompt for a list of strings. The first argument SEPARATOR should be the string (of length 1) to separate the elements in the list. The second argument UNIQUE should be non-nil, if each element must be unique. The remaining elements are the arguments to `completing-read'. See that." (let ((old-map (if require-match minibuffer-local-must-match-map minibuffer-local-completion-map)) (new-map (make-sparse-keymap))) (if (fboundp 'set-keymap-parent) ;; `set-keymap-parent' was introduced in Emacs 19.32. (set-keymap-parent new-map old-map) (setq new-map (copy-keymap old-map))) (define-key new-map separator (if require-match 'multi-prompt-next-must-match 'multi-prompt-next)) (define-key new-map "\C-?" 'multi-prompt-delete) (let* ((minibuffer-local-completion-map new-map) (minibuffer-local-must-match-map new-map) (multi-prompt-found nil) (filter (cond (unique (lambda (x) (and (not (member (car x) multi-prompt-found)) (or (null mp-predicate) (funcall mp-predicate x))))) (mp-predicate))) (answer (catch 'multi-prompt-exit (while t (let ((extra (catch 'multi-prompt-next (throw 'multi-prompt-exit (completing-read prompt table filter require-match initial history))))) (cond ((eq extra 'back) (when multi-prompt-found (setq prompt (substring prompt 0 (- 0 (length separator) (length (car multi-prompt-found)))) initial (car multi-prompt-found)) (setq multi-prompt-found (cdr multi-prompt-found)))) (t (setq prompt (concat prompt extra separator) initial nil) (setq multi-prompt-found (cons extra multi-prompt-found))))))))) (if (string= answer "") multi-prompt-found (nreverse (cons answer multi-prompt-found)))))) (defun multi-prompt-delete () (interactive) (if (bobp) (throw 'multi-prompt-next 'back) (call-interactively 'backward-delete-char))) (defun multi-prompt-next () (interactive) (throw 'multi-prompt-next (cond ((fboundp 'minibuffer-contents-no-properties) ;; buffer-substring no longer works in emacs-21, it returns ;; the whole prompt line. Use this instead. (minibuffer-contents-no-properties)) (t (buffer-substring-no-properties (point-min) (point-max)))))) (defun multi-prompt-next-must-match () (interactive) (when (call-interactively 'minibuffer-complete) (let ((content (buffer-substring-no-properties (point-min) (point-max)))) (when (or ;; (not require-match) (assoc content minibuffer-completion-table)) (throw 'multi-prompt-next content))))) ;;; Support for key=value completion ;; The following code was ripped out of crm.el ;; (completing-read-multiple) and extended to support comma-separated ;; key=value lists. The code is separate from the code above. ;; WARNING: This obviously relies on internals of crm.el and ;; minibuffer.el and will therefore have to be adapted if these ;; change. ;; TODO: How to support stuff like "caption={[one]two}" or ;; "morekeywords={one,three,five}"? (defvar multi-prompt-key-value-sep "=" "Single-character string separating key=value pairs.") (defvar multi-prompt-completion-table nil "Completion table used by `multi-prompt-key-value'.") (defun multi-prompt-key-value-collection-fn (string predicate flag) "Function used by `multi-prompt-key-value' to compute completion values. The value of STRING is the string to be completed. The value of PREDICATE is a function to filter possible matches, or nil if none. The value of FLAG is used to specify the type of completion operation. A value of nil specifies `try-completion'. A value of t specifies `all-completions'. A value of lambda specifes a test for an exact match. For more information on STRING, PREDICATE, and FLAG, see the Elisp Reference sections on 'Programmed Completion' and 'Basic Completion Functions'." (let ((beg 0) (last 0) matched) (while (string-match multi-prompt-key-value-sep string beg) (setq matched t last beg beg (match-end 0))) (completion-table-with-context (substring string 0 beg) (if (not matched) multi-prompt-completion-table (cadr (assoc (substring string last (1- beg)) multi-prompt-completion-table))) (substring string beg) predicate flag))) (defun multi-prompt-expand-completion-table (table) "Return an expanded version of completion table TABLE. This is achieved by eval'ing all variables in the value parts of the alist elements." (mapcar (lambda (x) (if (and (cadr x) (symbolp (cadr x)) (not (functionp (cadr x)))) (cons (car x) (list (eval (cadr x)))) x)) table)) ;; Silence the byte compiler. (defvar crm-local-must-match-map) (defvar crm-local-completion-map) ;;;###autoload (defun multi-prompt-key-value (prompt table &optional predicate require-match initial-input hist def inherit-input-method) "Read multiple strings, with completion and key=value support. PROMPT is a string to prompt with, usually ending with a colon and a space. TABLE is an alist. The car of each element should be a string representing a key and the optional cdr should be a list with strings to be used as values for the key. See the documentation for `completing-read' for details on the other arguments: PREDICATE, REQUIRE-MATCH, INITIAL-INPUT, HIST, DEF, and INHERIT-INPUT-METHOD. The return value is the string as entered in the minibuffer." (let* ((minibuffer-completion-table #'multi-prompt-key-value-collection-fn) (minibuffer-completion-predicate predicate) (minibuffer-completion-confirm (unless (eq require-match t) require-match)) (multi-prompt-completion-table ;; Expand the table here because completion would otherwise ;; interpret symbols in the table as functions. However, it ;; would be nicer if this could be done during the actual ;; completion in order to avoid walking through the whole ;; table. (multi-prompt-expand-completion-table table)) (map (if require-match crm-local-must-match-map crm-local-completion-map)) (input (read-from-minibuffer prompt initial-input map nil hist def inherit-input-method))) (and def (string-equal input "") (setq input def)) input)) (provide 'multi-prompt) ;;; multi-prompt.el ends here auctex-11.91/plain-tex.el000066400000000000000000000221741313533625700152570ustar00rootroot00000000000000;;; plain-tex.el --- Support for plain TeX documents. ;; Copyright (C) 2010, 2013, 2016 Free Software Foundation, Inc. ;; Maintainer: auctex-devel@gnu.org ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file provides support for plain TeX in AUCTeX. ;;; Code: (require 'tex) (require 'tex-buf) ;;; Tool bar (defcustom plain-TeX-enable-toolbar t "Enable TeX tool bar in plain TeX mode." :group 'TeX-tool-bar :type 'boolean) (defun plain-TeX-maybe-install-toolbar () "Conditionally install tool bar buttons for plain TeX mode. Install tool bar if `plain-TeX-enable-toolbar' is non-nil." (when plain-TeX-enable-toolbar ;; Defined in `tex-bar.el': (TeX-install-toolbar))) ;;; Keymap and menu (defvar plain-TeX-mode-map (let ((map (make-sparse-keymap))) (set-keymap-parent map TeX-mode-map) map) "Keymap used in plain TeX mode.") (defvar plain-TeX-menu-entries (TeX-menu-with-help `(["Macro..." TeX-insert-macro :help "Insert a macro and possibly arguments"] ["Complete" TeX-complete-symbol :help "Complete the current macro"] "-" ("Insert Font" ["Emphasize" (TeX-font nil ?\C-e) :keys "C-c C-f C-e"] ["Bold" (TeX-font nil ?\C-b) :keys "C-c C-f C-b"] ["Typewriter" (TeX-font nil ?\C-t) :keys "C-c C-f C-t"] ["Small Caps" (TeX-font nil ?\C-c) :keys "C-c C-f C-c"] ["Sans Serif" (TeX-font nil ?\C-f) :keys "C-c C-f C-f"] ["Italic" (TeX-font nil ?\C-i) :keys "C-c C-f C-i"] ["Slanted" (TeX-font nil ?\C-s) :keys "C-c C-f C-s"] ["Roman" (TeX-font nil ?\C-r) :keys "C-c C-f C-r"] ["Calligraphic" (TeX-font nil ?\C-a) :keys "C-c C-f C-a"]) ("Replace Font" ["Emphasize" (TeX-font t ?\C-e) :keys "C-u C-c C-f C-e"] ["Bold" (TeX-font t ?\C-b) :keys "C-u C-c C-f C-b"] ["Typewriter" (TeX-font t ?\C-t) :keys "C-u C-c C-f C-t"] ["Small Caps" (TeX-font t ?\C-c) :keys "C-u C-c C-f C-c"] ["Sans Serif" (TeX-font t ?\C-f) :keys "C-u C-c C-f C-f"] ["Italic" (TeX-font t ?\C-i) :keys "C-u C-c C-f C-i"] ["Slanted" (TeX-font t ?\C-s) :keys "C-u C-c C-f C-s"] ["Roman" (TeX-font t ?\C-r) :keys "C-u C-c C-f C-r"] ["Calligraphic" (TeX-font t ?\C-a) :keys "C-u C-c C-f C-a"]) ["Delete Font" (TeX-font t ?\C-d) :keys "C-c C-f C-d"] "-" ["Comment or Uncomment Region" TeX-comment-or-uncomment-region :help "Comment or uncomment the currently selected region"] ["Comment or Uncomment Paragraph" TeX-comment-or-uncomment-paragraph :help "Comment or uncomment the paragraph containing point"] ,TeX-fold-menu "-" . ,TeX-common-menu-entries))) (easy-menu-define plain-TeX-mode-command-menu plain-TeX-mode-map "Command menu used in TeX mode." (TeX-mode-specific-command-menu 'plain-tex-mode)) (easy-menu-define plain-TeX-mode-menu plain-TeX-mode-map "Menu used in plain TeX mode." (cons "TeX" plain-TeX-menu-entries)) ;;; The mode (defconst plain-TeX-dialect :plain-tex "Default dialect for use with function `TeX-add-style-hook' for argument DIALECT-EXPR when the hook is to be run only on plain-TeX file, or any mode derived thereof. See variable `TeX-style-hook-dialect'." ) (defcustom plain-TeX-mode-hook nil "A hook run in plain TeX mode buffers." :type 'hook :group 'TeX-misc) (TeX-abbrev-mode-setup plain-tex-mode) ;;;###autoload (defun TeX-plain-tex-mode () "Major mode in AUCTeX for editing plain TeX files. See info under AUCTeX for documentation. Special commands: \\{plain-TeX-mode-map} Entering `plain-tex-mode' calls the value of `text-mode-hook', then the value of `TeX-mode-hook', and then the value of plain-TeX-mode-hook." (interactive) (plain-TeX-common-initialization) (setq major-mode 'plain-tex-mode) (use-local-map plain-TeX-mode-map) (easy-menu-add plain-TeX-mode-menu plain-TeX-mode-map) (easy-menu-add plain-TeX-mode-command-menu plain-TeX-mode-map) (setq TeX-base-mode-name "TeX") (setq TeX-command-default "TeX") (setq TeX-sentinel-default-function 'TeX-TeX-sentinel) (add-hook 'tool-bar-mode-on-hook 'plain-TeX-maybe-install-toolbar nil t) (when (if (featurep 'xemacs) (featurep 'toolbar) (and (boundp 'tool-bar-mode) tool-bar-mode)) (plain-TeX-maybe-install-toolbar)) (TeX-run-mode-hooks 'text-mode-hook 'TeX-mode-hook 'plain-TeX-mode-hook) (TeX-set-mode-name)) (defun plain-TeX-common-initialization () "Common initialization for plain TeX like modes." (VirTeX-common-initialization) (set-syntax-table TeX-mode-syntax-table) (setq local-abbrev-table plain-tex-mode-abbrev-table) (set (make-local-variable 'TeX-style-hook-dialect) plain-TeX-dialect) (setq paragraph-start (concat "\\(?:[ \t]*$" "\\|" (regexp-quote TeX-esc) "par\\|" "[ \t]*" (regexp-quote TeX-esc) "\\(?:" "begin\\|end\\|part\\|chapter\\|" "section\\|subsection\\|subsubsection\\|" "paragraph\\|include\\|includeonly\\|" "tableofcontents\\|appendix\\|label\\|caption\\|\\(?:item\\)?item" "\\)" "\\|" "[ \t]*\\$\\$" ; display math delimitor "\\)" )) (setq paragraph-separate (concat "[ \t]*" "\\(?:" (regexp-quote TeX-esc) "par\\|" "%\\|" "$\\|" "\\$\\$\\|" (regexp-quote TeX-esc) "\\(?:" "begin\\|end\\|label\\|caption\\|part\\|chapter\\|" "section\\|subsection\\|subsubsection\\|" "paragraph\\|include\\|includeonly\\|" "tableofcontents\\|appendix\\|" (regexp-quote TeX-esc) "\\)" "\\)")) (setq TeX-header-end (regexp-quote "%**end of header")) (setq TeX-trailer-start (regexp-quote (concat TeX-esc "bye"))) (TeX-add-symbols ;; From the TeX Book, Appendix B ;; ;; XXX: This should be refined and extended by somebody who is ;; familiar with plain TeX. "dag" "ddag" "copyright" "TeX" "dots" "break" "nobreak" "allowbreak" "hbox" "slash" "enskip" "quad" "qquad" "enspace" "thinspace" "negthinspace" "smallskip" "medskip" "bigskip" "eject" "supereject" "goodbreak" "filbreak" "smallbreak" "medbreak" "bigbreak" "hrulefill" "dotfill" "rightarrowfill" "leftarrowfill" "upbracefill" "downbracefill" "halign" "valign" "omit" "span" "multispan" "centerline" "rightline" "leftline" "line" "par" "noindent" "frenchspacing" "nonfrenchspacing" "llap" "rlap" "raggedright" "ttraggedright" "raggedbottom" "normalbottom" "obeylines" "obeyspaces" "hsize" "vsize" "hoffset" "voffset" "tolerance" "looseness" "parindent" "baselineskip" "parskip") (TeX-run-style-hooks "TEX")) ;;; Miscellaneous (defcustom plain-TeX-clean-intermediate-suffixes TeX-clean-default-intermediate-suffixes "List of regexps matching suffixes of intermediate files to be deleted. The regexps will be anchored at the end of the file name to be matched, i.e. you do _not_ have to cater for this yourself by adding \\\\' or $." :type '(repeat regexp) :group 'TeX-command) (defcustom plain-TeX-clean-output-suffixes TeX-clean-default-output-suffixes "List of regexps matching suffixes of output files to be deleted. The regexps will be anchored at the end of the file name to be matched, i.e. you do _not_ have to cater for this yourself by adding \\\\' or $." :type '(repeat regexp) :group 'TeX-command) ;;; AmSTeX (defvar AmSTeX-mode-map (let ((map (make-sparse-keymap))) (set-keymap-parent map TeX-mode-map) map) "Keymap used in `AmSTeX-mode'.") ;; Menu for AmSTeX mode (easy-menu-define AmSTeX-mode-command-menu AmSTeX-mode-map "Command menu used in AmsTeX mode." (TeX-mode-specific-command-menu 'ams-tex-mode)) (easy-menu-define AmSTeX-mode-menu AmSTeX-mode-map "Menu used in AMS-TeX mode." (cons "AmS-TeX" plain-TeX-menu-entries)) ;;;###autoload (defun ams-tex-mode () "Major mode in AUCTeX for editing AmS-TeX files. See info under AUCTeX for documentation. Special commands: \\{AmSTeX-mode-map} Entering AmS-tex-mode calls the value of `text-mode-hook', then the value of `TeX-mode-hook', and then the value of `AmS-TeX-mode-hook'." (interactive) (plain-TeX-common-initialization) (setq major-mode 'ams-tex-mode) (use-local-map AmSTeX-mode-map) ;; Menu (easy-menu-add AmSTeX-mode-menu AmSTeX-mode-map) (easy-menu-add AmSTeX-mode-command-menu AmSTeX-mode-map) (setq TeX-base-mode-name "AmS-TeX") (setq TeX-command-default "AmSTeX") (TeX-run-mode-hooks 'text-mode-hook 'TeX-mode-hook 'AmS-TeX-mode-hook) (TeX-set-mode-name)) (provide 'plain-tex) ;;; plain-tex.el ends here auctex-11.91/preview-latex.spec000066400000000000000000000201261313533625700164770ustar00rootroot00000000000000# Spec file for preview-latex # Maintainer: auctex-devel@gnu.org # Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc. # This file is part of AUCTeX. # AUCTeX is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # AUCTeX is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # You should have received a copy of the GNU General Public License # along with AUCTeX; see the file COPYING. If not, write to the Free # Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, # MA 02110-1301, USA. %define HAVE_EMACS %(which emacs >/dev/null 2>/dev/null && echo 1 || echo 0) %define HAVE_XEMACS %(which xemacs >/dev/null 2>/dev/null && echo 1 || echo 0) %define FOR_SUSE %{?suse_version:1}%{!?suse_version:0} %if %{FOR_SUSE} %define distri .suse %define commongroup Productivity/Editors/Emacs # This is awful, but I don't have the clue to avoid it: %define xemacspkgdir %{_datadir}/xemacs/xemacs-packages %define xemacspkgconfdir ${datadir}/xemacs/xemacs-packages %else %define distri .fedora %define commongroup Applications/Editors # This is awful, but I don't have the clue to avoid it: %define xemacspkgdir %{_datadir}/xemacs/xemacs-packages %define xemacspkgconfdir ${datadir}/xemacs/xemacs-packages %endif # we use xemacs-packages because the system packages can be found # here, and preview-latex is not yet a part of any sumo tarball or # similar. The choice for AUCTeX would probably be site-packages # instead. Summary: Emacs/LaTeX inline preview Name: preview-latex Version: 0.9.1 Release: 1%{distri} License: GPL BuildArchitectures: noarch URL: http://www.gnu.org/software/auctex Source0: ftp://ftp.gnu.org/pub/auctex/%{name}-%{version}.tar.gz Group: %{commongroup} BuildRoot: %{_tmppath}/%{name}-root Prereq: info Requires: ghostscript >= 6.51 Requires: tetex tetex-dvips BuildRequires: texinfo >= 4.0 %description Does your neck hurt from turning between previewer windows and the source too often? This Elisp/LaTeX package will render your displayed LaTeX equations right into the editing window where they belong. %package common Summary: Emacs/LaTeX inline preview (LaTeX style and docs) Group: %{commongroup} %description common Does your neck hurt from turning between previewer windows and the source too often? This Elisp/LaTeX package will render your displayed LaTeX equations right into the editing window where they belong. This package contains the LaTeX style files and the documentation. %package emacs Summary: Emacs/LaTeX inline preview (GNU Emacs lisp files) Group: %{commongroup} Requires: %{name}-common = %{version}-%{release} Requires: emacs >= 21.1 Requires: auctex >= 11.0 Obsoletes: preview-latex %description emacs Does your neck hurt from turning between previewer windows and the source too often? This Elisp/LaTeX package will render your displayed LaTeX equations right into the editing window where they belong. This package contains the lisp modules for GNU Emacs 21.1 or higher. %package xemacs Summary: Emacs/LaTeX inline preview (XEmacs lisp files) Group: %{commongroup} Requires: %{name}-common = %{version}-%{release} Requires: xemacs >= 21.4.9 Conflicts: xemacs = 21.4.16 %description xemacs Does your neck hurt from turning between previewer windows and the source too often? This Elisp/LaTeX package will render your displayed LaTeX equations right into the editing window where they belong. This package contains the lisp modules for XEmacs 21.4.9 or higher. %prep %setup -c -q %if %{HAVE_EMACS} mkdir emacs pushd emacs ln -sf ../%{name}-%{version}/* . popd %endif %if %{HAVE_XEMACS} mkdir xemacs pushd xemacs ln -sf ../%{name}-%{version}/* . popd %endif %build for i in *emacs; do pushd $i # The below will make the package build from a tar straight from CVS # NOT RECOMMENDED, but useful for testing! test -f ./configure || ./autogen.sh # --with-packagedir repairs RedHat XEmacs braindamage texmf-dir # moves the installation to a location searched before the (possibly # conflicting) system tree. Unfortunately, this is the site-wide # tree that we should not really be touching. Sigh. if [ $i = "emacs" ]; then %configure '--with-lispdir=${datadir}/emacs/site-lisp/site-start.d' \ --with-packagelispdir=../preview '--with-texmf-dir=${prefix}/local/share/texmf' else %configure --with-xemacs '--with-packagedir=%{xemacspkgconfdir}' '--with-texmf-dir=${prefix}/local/share/texmf' fi make 'infodir=%{_infodir}' cd doc make preview-latex.pdf popd done %install rm -rf '%{buildroot}' for i in *emacs; do pushd $i if [ $i == "emacs" ]; then # Make directory non-searchable. mkdir -p '%{buildroot}%{_datadir}/emacs/site-lisp/preview' touch .nosearch install -c -m 644 .nosearch \ '%{buildroot}%{_datadir}/emacs/site-lisp/preview' %makeinstall TEXHASH=: else # XEmacs MANIFEST doesn't get created unless the target dir exists mkdir -p %{buildroot}%{xemacspkgdir}/pkginfo %makeinstall TEXHASH=: fi popd done # Package documentation in /usr/share/doc/preview-latex-n.n # rather than /usr/share/doc/preview-latex-common-n.n %define docs %{_defaultdocdir}/%{name}-%{version} mkdir -p '%{buildroot}%{docs}' pushd %{name}-%{version} for i in ChangeLog circ.tex COPYING FAQ INSTALL PROBLEMS README \ RELEASE TODO doc/preview-latex.pdf; do cp -R "$i" '%{buildroot}%{docs}' done cp latex/README '%{buildroot}%{docs}/README-preview' # Remove dir file that has been created by the makeinfo calls because this # file will not been included in the rpm distribution (make RPM 4.1+ happy) # Apparently RPM 4.2 removes the file itself? rm -f '%{buildroot}%{_infodir}/dir' %clean rm -rf '%{buildroot}' %post common /sbin/install-info '--info-dir=%{_infodir}' '%{_infodir}/preview-latex.info' texhash /usr/local/share/texmf %preun common # $1 is the number of versions of this package installed # after this uninstallation if [ $1 -eq 0 ]; then /sbin/install-info '--info-dir=%{_infodir}' --delete \ '%{_infodir}/preview-latex.info' fi %files common %defattr(-,root,root) %dir %{_prefix}/local/share/texmf/tex/latex/preview %{_prefix}/local/share/texmf/tex/latex/preview/*.sty %{_prefix}/local/share/texmf/tex/latex/preview/*.def %config %{_prefix}/local/share/texmf/tex/latex/preview/*.cfg %doc %{_prefix}/local/share/texmf/doc/latex/styles/preview.dvi %doc %{_infodir}/preview-latex.info* %doc %{docs} %if %{HAVE_EMACS} %files emacs %defattr(-,root,root) %{_datadir}/emacs/site-lisp/preview %{_datadir}/emacs/site-lisp/site-start.d/preview-latex.el %endif %if %{HAVE_XEMACS} %files xemacs %defattr(-,root,root) %{xemacspkgdir}/lisp/preview %{xemacspkgdir}/etc/preview %verify() %{xemacspkgdir}/pkginfo/MANIFEST.preview %endif %changelog * Wed Jul 28 2004 David Kastrup - Remove 8bit-test stuff, some changes to directories. * Mon Apr 12 2004 David Kastrup - bump XEmacs requirements to 21.4.9 * Thu Jan 29 2004 Jan-ke Larsson - add support for SuSE (kudos to Martin Vth ) * Wed Aug 7 2002 David Kastrup - add FAQ * Tue Apr 16 2002 David Kastrup - allow split info file, docs now go in preview-latex-n.n * Mon Apr 15 2002 Jan-Ake Larsson - Docs now goes in preview-latex-n.n-n directory * Wed Apr 10 2002 Jan-Ake Larsson - Triple-rpm simplifications * Sun Mar 31 2002 Jan-Ake Larsson - Prepare for 0.7, initial triple rpm attempt * Sun Mar 10 2002 David Kastrup - Prepare for 0.6.1 * Tue Feb 19 2002 Jan-Ake Larsson - Added site-start.d support and prauctex.cfg config file * Thu Feb 14 2002 Jan-Ake Larsson - Adjusted for 0.6 * Wed Jan 23 2002 Jan-Ake Larsson - Initial build. auctex-11.91/preview.el.in000066400000000000000000003766411313533625700154570ustar00rootroot00000000000000;;; preview.el --- embed preview LaTeX images in source buffer ;; Copyright (C) 2001-2006, 2010-2015 Free Software Foundation, Inc. ;; Author: David Kastrup ;; Keywords: tex, wp, convenience ;; This file is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; This file is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to ;; the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Commentary: ;; This style is for the "seamless" embedding of generated images ;; into LaTeX source code. Please see the README and INSTALL files ;; for further instruction. ;; ;; Please use the usual configure script for installation: more than ;; just Elisp files are involved: a LaTeX style, icon files, startup ;; code and so on. ;; ;; Quite a few things with regard to preview-latex's operation can be ;; configured by using ;; M-x customize-group RET preview RET ;; ;; Please report bugs with M-x preview-report-bug RET. ;;; Code: (require 'tex-site) (require 'tex) (require 'tex-buf) (require 'latex) (eval-when-compile (condition-case nil (require 'desktop) (file-error (message "Missing desktop package: preview-latex buffers will not survive across sessions."))) (condition-case nil (require 'reporter) (file-error (message "Missing reporter library, probably from the mail-lib package: preview-latex's bug reporting commands will probably not work."))) (require 'info)) ;; we need the compatibility macros which do _not_ get byte-compiled. (eval-when-compile (if (featurep 'xemacs) (load-library "prv-xemacs.el"))) ;; if the above load-library kicked in, this will not cause anything ;; to get loaded. (require (if (featurep 'xemacs) 'prv-xemacs 'prv-emacs)) (defgroup preview nil "Embed Preview images into LaTeX buffers." :group 'AUCTeX :prefix "preview-" :link '(custom-manual "(preview-latex)Top") :link '(info-link "(preview-latex)The Emacs interface") :link '(url-link :tag "Homepage" "http://www.gnu.org/software/auctex/")) (defgroup preview-gs nil "Preview's Ghostscript renderer." :group 'preview :prefix "preview-") (defgroup preview-appearance nil "Preview image appearance." :group 'preview :prefix "preview-") (defconst preview-specs-type '(repeat (list :tag "Image spec" ;; Use an extra :value keyword to avoid a bug in ;; `widget-convert' of XEmacs 21.4 and Emacs 21. ;; Analogously for the following `const' statements. (const :format "" :value :type) (choice :tag "Image type" (const xpm) (const xbm) (symbol :tag "Other")) (set :inline t :tag "Minimum font size" (list :inline t :tag "" (const :format "" :value :min) (integer :tag "pixels"))) (const :format "" :value :file) (string :tag "Filename") (set :inline t :tag "Ascent ratio" (list :inline t :tag "" (const :format "" :value :ascent) (integer :tag "percent of image" :value 50)))))) (defun preview-specs-setter (symbol value) "Set SYMBOL to VALUE and clear `preview-min-alist' property. This is used in icon specs, so that customizing will clear cached icons." (put symbol 'preview-min-alist nil) (set-default symbol value)) (defcustom preview-nonready-icon-specs '((:type xpm :min 26 :file "prvwrk24.xpm" :ascent 90) (:type xpm :min 22 :file "prvwrk20.xpm" :ascent 90) (:type xpm :min 17 :file "prvwrk16.xpm" :ascent 90) (:type xpm :min 15 :file "prvwrk14.xpm" :ascent 90) (:type xpm :file "prvwrk12.xpm" :ascent 90) (:type xbm :file "prvwrk24.xbm" :ascent 90)) "The icon used for previews to be generated. The spec must begin with `:type'. File names are relative to `load-path' and `data-directory', a spec `:min' requires a minimal pixel height for `preview-reference-face' before the spec will be considered. Since evaluating the `:file' spec takes considerable time under XEmacs, it should come after the `:min' spec to avoid unnecessary evaluation time." :group 'preview-appearance :type preview-specs-type :set #'preview-specs-setter) (defvar preview-nonready-icon) (defcustom preview-error-icon-specs '((:type xpm :min 22 :file "prverr24.xpm" :ascent 90) (:type xpm :min 18 :file "prverr20.xpm" :ascent 90) (:type xpm :file "prverr16.xpm" :ascent 90) (:type xbm :file "prverr24.xbm" :ascent 90)) "The icon used for PostScript errors. The spec must begin with `:type'. File names are relative to `load-path' and `data-directory', a spec `:min' requires a minimal pixel height for `preview-reference-face' before the spec will be considered. Since evaluating the `:file' spec takes considerable time under XEmacs, it should come after the `:min' spec to avoid unnecessary evaluation time." :group 'preview-appearance :type preview-specs-type :set #'preview-specs-setter ) (defvar preview-error-icon) (defcustom preview-icon-specs '((:type xpm :min 24 :file "prvtex24.xpm" :ascent 75) (:type xpm :min 20 :file "prvtex20.xpm" :ascent 75) (:type xpm :min 16 :file "prvtex16.xpm" :ascent 75) (:type xpm :file "prvtex12.xpm" :ascent 75) (:type xbm :min 24 :file "prvtex24.xbm" :ascent 75) (:type xbm :min 16 :file "prvtex16.xbm" :ascent 75) (:type xbm :file "prvtex12.xbm" :ascent 75)) "The icon used for an open preview. The spec must begin with `:type'. File names are relative to `load-path' and `data-directory', a spec `:min' requires a minimal pixel height for `preview-reference-face' before the spec will be considered. Since evaluating the `:file' spec takes considerable time under XEmacs, it should come after the `:min' spec to avoid unnecessary evaluation time." :group 'preview-appearance :type preview-specs-type :set #'preview-specs-setter) (defvar preview-icon) (defgroup preview-latex nil "LaTeX options for preview." :group 'preview :prefix "preview-") (defcustom preview-image-creators '((dvipng (open preview-gs-open preview-dvipng-process-setup) (place preview-gs-place) (close preview-dvipng-close)) (png (open preview-gs-open) (place preview-gs-place) (close preview-gs-close)) (jpeg (open preview-gs-open) (place preview-gs-place) (close preview-gs-close)) (pnm (open preview-gs-open) (place preview-gs-place) (close preview-gs-close)) (tiff (open preview-gs-open) (place preview-gs-place) (close preview-gs-close))) "Define functions for generating images. These functions get called in the process of generating inline images of the specified type. The open function is called at the start of a rendering pass, the place function for placing every image, the close function at the end of the pass. Look at the documentation of the various functions used here for the default settings, and at the function `preview-call-hook' through which those are called. Additional argument lists specified in here are passed to the functions before any additional arguments given to `preview-call-hook'. Not all of these image types may be supported by your copy of Ghostscript, or by your copy of Emacs." :group 'preview-gs :type '(alist :key-type (symbol :tag "Preview's image type") :value-type (alist :tag "Handler" :key-type (symbol :tag "Operation:") :value-type (list :tag "Handler" (function :tag "Handler function") (repeat :tag "Additional \ function args" :inline t sexp)) :options (open place close)))) (defcustom preview-gs-image-type-alist '((png png "-sDEVICE=png16m") (dvipng png "-sDEVICE=png16m") (jpeg jpeg "-sDEVICE=jpeg") (pnm pbm "-sDEVICE=pnmraw") (tiff tiff "-sDEVICE=tiff12nc")) "*Alist of image types and corresponding Ghostscript options. The `dvipng' and `postscript' (don't use) entries really specify a fallback device when images can't be processed by the requested method, like when PDFTeX was used." :group 'preview-gs :type '(repeat (list :tag nil (symbol :tag "preview image-type") (symbol :tag "Emacs image-type") (repeat :inline t :tag "Ghostscript options" string)))) (defcustom preview-image-type 'png "*Image type to be used in images." :group 'preview-gs :type (append '(choice) (mapcar (lambda (symbol) (list 'const (car symbol))) preview-image-creators) '((symbol :tag "Other")))) (defun preview-call-hook (symbol &rest rest) "Call a function from `preview-image-creators'. This looks up SYMBOL in the `preview-image-creators' entry for the image type `preview-image-type' and calls the hook function given there with the arguments specified there followed by REST. If such a function is specified in there, that is." (let ((hook (cdr (assq symbol (cdr (assq preview-image-type preview-image-creators)))))) (when hook (apply (car hook) (append (cdr hook) rest))))) (defvar TeX-active-tempdir nil "List of directory name, top directory name and reference count.") (make-variable-buffer-local 'TeX-active-tempdir) (defcustom preview-bb-filesize 1024 "Size of file area scanned for bounding box information." :group 'preview-gs :type 'integer) (defcustom preview-preserve-indentation t "*Whether to keep additional whitespace at the left of a line." :group 'preview-appearance :type 'boolean) (defun preview-extract-bb (filename) "Extract EPS bounding box vector from FILENAME." (with-temp-buffer (insert-file-contents-literally filename nil 0 preview-bb-filesize t) (goto-char (point-min)) (when (search-forward-regexp "%%BoundingBox:\ +\\([-+]?[0-9.]+\\)\ +\\([-+]?[0-9.]+\\)\ +\\([-+]?[0-9.]+\\)\ +\\([-+]?[0-9.]+\\)" nil t) (vector (if preview-preserve-indentation (min 72 (string-to-number (match-string 1))) (string-to-number (match-string 1))) (string-to-number (match-string 2)) (string-to-number (match-string 3)) (string-to-number (match-string 4)) )))) (defcustom preview-prefer-TeX-bb nil "*Prefer TeX bounding box to EPS one if available. If `preview-fast-conversion' is set, this option is not consulted since the TeX bounding box has to be used anyway." :group 'preview-gs :type 'boolean) (defcustom preview-TeX-bb-border 0.5 "*Additional space in pt around Bounding Box from TeX." :group 'preview-gs :type 'number) (defvar preview-coding-system nil "Proper coding system to decode output from LaTeX process.") (make-variable-buffer-local 'preview-coding-system) (defvar preview-parsed-font-size nil "Font size as parsed from the log of LaTeX run.") (make-variable-buffer-local 'preview-parsed-font-size) (defvar preview-parsed-magnification nil "Magnification as parsed from the log of LaTeX run.") (make-variable-buffer-local 'preview-parsed-magnification) (defvar preview-parsed-pdfoutput nil "PDFoutput as parsed from the log of LaTeX run.") (make-variable-buffer-local 'preview-parsed-pdfoutput) (defvar preview-parsed-counters nil "Counters as parsed from the log of LaTeX run.") (make-variable-buffer-local 'preview-parsed-counters) (defvar preview-parsed-tightpage nil "Tightpage as parsed from the log of LaTeX run.") (make-variable-buffer-local 'preview-parsed-tightpage) (defun preview-get-magnification () "Get magnification from `preview-parsed-magnification'." (if preview-parsed-magnification (/ preview-parsed-magnification 1000.0) 1.0)) (defun preview-TeX-bb (list) "Calculate bounding box from (ht dp wd). LIST consists of TeX dimensions in sp (1/65536 TeX point)." (and (consp list) (let* ((dims (vconcat (mapcar #'(lambda (x) (/ x 65781.76)) list))) (box (vector (+ 72 (min 0 (aref dims 2))) (+ 720 (min (aref dims 0) (- (aref dims 1)) 0)) (+ 72 (max 0 (aref dims 2))) (+ 720 (max (aref dims 0) (- (aref dims 1)) 0)))) (border (if preview-parsed-tightpage (vconcat (mapcar #'(lambda(x) (/ x 65781.76)) preview-parsed-tightpage)) (vector (- preview-TeX-bb-border) (- preview-TeX-bb-border) preview-TeX-bb-border preview-TeX-bb-border)))) (dotimes (i 4) (aset box i (+ (aref box i) (aref border i)))) box))) (defcustom preview-gs-command (or ;; The GS wrapper coming with TeX Live (executable-find "rungs") ;; The MikTeX builtin GS (let ((gs (executable-find "mgs"))) ;; Check if mgs is functional for external non-MikTeX apps. ;; See http://blog.miktex.org/post/2005/04/07/Starting-mgsexe-at-the-DOS-Prompt.aspx (when (and gs (= 0 (shell-command (concat gs " -q -dNODISPLAY -c quit")))) gs)) ;; Windows ghostscript (executable-find "GSWIN32C.EXE") ;; standard GhostScript (executable-find "gs")) "*How to call gs for conversion from EPS. See also `preview-gs-options'." :group 'preview-gs :type 'string) (defcustom preview-gs-options '("-q" "-dDELAYSAFER" "-dNOPAUSE" "-DNOPLATFONTS" "-dPrinted" "-dTextAlphaBits=4" "-dGraphicsAlphaBits=4") "*Options with which to call gs for conversion from EPS. See also `preview-gs-command'." :group 'preview-gs :type '(repeat string)) (defvar preview-gs-queue nil "List of overlays to convert using gs. Buffer-local to the appropriate TeX process buffer.") (make-variable-buffer-local 'preview-gs-queue) (defvar preview-gs-outstanding nil "Overlays currently processed.") (make-variable-buffer-local 'preview-gs-outstanding) (defcustom preview-gs-outstanding-limit 2 "*Number of requests allowed to be outstanding. This is the number of not-yet-completed requests we might at any time have piped into Ghostscript. If this number is larger, the probability of Ghostscript working continuously is higher when Emacs is rather busy. If this number is smaller, redisplay will follow changes in the displayed buffer area faster." :group 'preview-gs :type '(restricted-sexp :match-alternatives ((lambda (value) (and (integerp value) (> value 0) (< value 10)))) :tag "small number")) (defvar preview-gs-answer nil "Accumulated answer of Ghostscript process.") (make-variable-buffer-local 'preview-gs-answer) (defvar preview-gs-image-type nil "Image type for gs produced images.") (make-variable-buffer-local 'preview-gs-image-type) (defvar preview-gs-sequence nil "Pair of sequence numbers for gs produced images.") (make-variable-buffer-local 'preview-gs-sequence) (defvar preview-scale nil "Screen scale of images. Magnify by this factor to make images blend with other screen content. Buffer-local to rendering buffer.") (make-variable-buffer-local 'preview-scale) (defvar preview-colors nil "Color setup list. An array with elements 0, 1 and 2 for background, foreground and border colors, respectively. Each element is a list of 3 real numbers between 0 and 1, or NIL of nothing special should be done for the color") (make-variable-buffer-local 'preview-colors) (defvar preview-gs-init-string nil "Ghostscript setup string.") (make-variable-buffer-local 'preview-gs-init-string) (defvar preview-ps-file nil "PostScript file name for fast conversion.") (make-variable-buffer-local 'preview-ps-file) (defvar preview-gs-dsc nil "Parsed DSC information.") (make-variable-buffer-local 'preview-gs-dsc) (defvar preview-resolution nil "Screen resolution where rendering started. Cons-cell of x and y resolution, given in dots per inch. Buffer-local to rendering buffer.") (make-variable-buffer-local 'preview-resolution) (defun preview-gs-resolution (scale xres yres) "Generate resolution argument for gs. Calculated from real-life factor SCALE and XRES and YRES, the screen resolution in dpi." (format "-r%gx%g" (/ (* scale xres) (preview-get-magnification)) (/ (* scale yres) (preview-get-magnification)))) (defun preview-gs-behead-outstanding (err) "Remove leading element of outstanding queue after error. Return element if non-nil. ERR is the error string to show as response of Ghostscript." (let ((ov (pop preview-gs-outstanding))) (when ov (preview-gs-flag-error ov err) (overlay-put ov 'queued nil)) ov)) (defvar preview-gs-command-line nil) (make-variable-buffer-local 'preview-gs-command-line) (defvar preview-gs-file nil) (make-variable-buffer-local 'preview-gs-file) (defcustom preview-fast-conversion t "*Set this for single-file PostScript conversion. This will have no effect when `preview-image-type' is set to `postscript'." :group 'preview-latex :type 'boolean) (defun preview-string-expand (arg &optional separator) "Expand ARG as a string. It can already be a string. Or it can be a list, then it is recursively evaluated using SEPARATOR as separator. If a list element is in itself a CONS cell, the CAR of the list (after symbol dereferencing) can evaluate to either a string, in which case it is used as a separator for the rest of the list, or a boolean (t or nil) in which case the rest of the list is either evaluated and concatenated or ignored, respectively. ARG can be a symbol, and so can be the CDR of a cell used for string concatenation." (cond ((stringp arg) arg) ((consp arg) (mapconcat #'identity (delq nil (mapcar (lambda(x) (if (consp x) (let ((sep (car x))) (while (and (symbolp sep) (not (memq sep '(t nil)))) (setq sep (symbol-value sep))) (if (stringp sep) (preview-string-expand (cdr x) sep) (and sep (preview-string-expand (cdr x))))) (preview-string-expand x))) arg)) (or separator ""))) ((and (symbolp arg) (not (memq arg '(t nil)))) (preview-string-expand (symbol-value arg) separator)) (t (error "Bad string expansion")))) (defconst preview-expandable-string (let ((f (lambda (x) `(choice string (repeat :tag "Concatenate" (choice string (cons :tag "Separated list" (choice (string :tag "Separator") (symbol :tag "Indirect separator or flag")) ,x) (symbol :tag "Indirect variable (no separator)"))) (symbol :tag "Indirect variable (with separator)"))))) (funcall f (funcall f 'sexp))) "Type to be used for `preview-string-expand'. Just a hack until we get to learn how to do this properly. Recursive definitions are not popular with Emacs, so we define this type just two levels deep. This kind of expandible string can either be just a string, or a cons cell with a separator string in the CAR, and either an explicit list of elements in the CDR, or a symbol to be consulted recursively.") (defcustom preview-dvipng-command "dvipng -picky -noghostscript %d -o \"%m/prev%%03d.png\"" "*Command used for converting to separate PNG images. You might specify options for converting to other image types, but then you'll need to adapt `preview-dvipng-image-type'." :group 'preview-latex :type 'string) (defcustom preview-dvipng-image-type 'png "*Image type that dvipng produces. You'll need to change `preview-dvipng-command' too, if you customize this." :group 'preview-latex :type '(choice (const png) (const gif) (symbol :tag "Other" :value png))) (defcustom preview-dvips-command "dvips -Pwww -i -E %d -o %m/preview.000" "*Command used for converting to separate EPS images." :group 'preview-latex :type 'string) (defcustom preview-fast-dvips-command "dvips -Pwww %d -o %m/preview.ps" "*Command used for converting to a single PS file." :group 'preview-latex :type 'string) (defcustom preview-pdf2dsc-command "pdf2dsc %s.pdf %m/preview.dsc" "*Command used for generating dsc from a PDF file." :group 'preview-latex :type 'string) (defun preview-gs-queue-empty () "Kill off everything remaining in `preview-gs-queue'." (mapc #'preview-delete preview-gs-outstanding) (dolist (ov preview-gs-queue) (if (overlay-get ov 'queued) (preview-delete ov))) (setq preview-gs-outstanding nil) (setq preview-gs-queue nil)) (defvar preview-error-condition nil "Last error raised and to be reported.") (defun preview-log-error (err context &optional process) "Log an error message to run buffer. ERR is the caught error syndrome, CONTEXT is where it occured, PROCESS is the process for which the run-buffer is to be used." (when (or (null process) (buffer-name (process-buffer process))) (with-current-buffer (or (and process (process-buffer process)) (current-buffer)) (save-excursion (goto-char (or (and process (process-buffer process) (marker-buffer (process-mark process)) (process-mark process)) (point-max))) (insert-before-markers (format "%s: %s\n" context (error-message-string err))) (display-buffer (current-buffer))))) (setq preview-error-condition err)) (defun preview-reraise-error (&optional process) "Raise an error that has been logged. Makes sure that PROCESS is removed from the \"Compilation\" tag in the mode line." (when preview-error-condition (unwind-protect (signal (car preview-error-condition) (cdr preview-error-condition)) (setq preview-error-condition nil compilation-in-progress (delq process compilation-in-progress))))) (defun preview-gs-sentinel (process string) "Sentinel function for rendering process. Gets the default PROCESS and STRING arguments and tries to restart Ghostscript if necessary." (condition-case err (let ((status (process-status process))) (when (memq status '(exit signal)) (setq compilation-in-progress (delq process compilation-in-progress))) (when (buffer-name (process-buffer process)) (with-current-buffer (process-buffer process) (goto-char (point-max)) (insert-before-markers "\n" mode-name " " string) (forward-char -1) (insert " at " (substring (current-time-string) 0 -5)) (forward-char 1) (TeX-command-mode-line process) (when (memq status '(exit signal)) ;; process died. ;; Throw away culprit, go on. (let* ((err (concat preview-gs-answer "\n" (process-name process) " " string)) (ov (preview-gs-behead-outstanding err))) (when (and (null ov) preview-gs-queue) (save-excursion (goto-char (if (marker-buffer (process-mark process)) (process-mark process) (point-max))) (insert-before-markers err))) (delete-process process) (if (or (null ov) (eq status 'signal)) ;; if process was killed explicitly by signal, or if nothing ;; was processed, we give up on the matter altogether. (progn (when preview-ps-file (condition-case nil (preview-delete-file preview-ps-file) (file-error nil))) (preview-gs-queue-empty)) ;; restart only if we made progress since last call (let (filenames) (dolist (ov preview-gs-outstanding) (setq filenames (overlay-get ov 'filenames)) (condition-case nil (preview-delete-file (nth 1 filenames)) (file-error nil)) (setcdr filenames nil))) (setq preview-gs-queue (nconc preview-gs-outstanding preview-gs-queue)) (setq preview-gs-outstanding nil) (preview-gs-restart))))))) (error (preview-log-error err "Ghostscript" process))) (preview-reraise-error process)) (defun preview-gs-filter (process string) "Filter function for processing Ghostscript output. Gets the usual PROCESS and STRING parameters, see `set-process-filter' for a description." (with-current-buffer (process-buffer process) (setq preview-gs-answer (concat preview-gs-answer string)) (while (string-match "GS\\(<[0-9]+\\)?>" preview-gs-answer) (let* ((pos (match-end 0)) (answer (substring preview-gs-answer 0 pos))) (setq preview-gs-answer (substring preview-gs-answer pos)) (condition-case err (preview-gs-transact process answer) (error (preview-log-error err "Ghostscript filter" process)))))) (preview-reraise-error)) (defun preview-gs-restart () "Start a new Ghostscript conversion process." (when preview-gs-queue (if preview-gs-sequence (setcar preview-gs-sequence (1+ (car preview-gs-sequence))) (setq preview-gs-sequence (list 1))) (setcdr preview-gs-sequence 1) (let* ((process-connection-type nil) (outfile (format "-dOutputFile=%s" (preview-ps-quote-filename (format "%s/pr%d-%%d.%s" (car TeX-active-tempdir) (car preview-gs-sequence) preview-gs-image-type)))) (process (apply #'start-process "Preview-Ghostscript" (current-buffer) preview-gs-command outfile preview-gs-command-line))) (goto-char (point-max)) (insert-before-markers "Running `Preview-Ghostscript' with ``" (mapconcat #'shell-quote-argument (append (list preview-gs-command outfile) preview-gs-command-line) " ") "''\n") (setq preview-gs-answer "") (process-kill-without-query process) (set-process-sentinel process #'preview-gs-sentinel) (set-process-filter process #'preview-gs-filter) (process-send-string process preview-gs-init-string) (setq mode-name "Preview-Ghostscript") (push process compilation-in-progress) (TeX-command-mode-line process) (set-buffer-modified-p (buffer-modified-p)) process))) (defun preview-gs-open (&optional setup) "Start a Ghostscript conversion pass. SETUP may contain a parser setup function." (let ((image-info (assq preview-image-type preview-gs-image-type-alist))) (setq preview-gs-image-type (nth 1 image-info)) (setq preview-gs-sequence nil) (setq preview-gs-command-line (append preview-gs-options (nthcdr 2 image-info)) preview-gs-init-string (format "{DELAYSAFER{.setsafe}if}stopped pop\ /.preview-BP currentpagedevice/BeginPage get dup \ null eq{pop{pop}bind}if def\ <>setpagedevice\ /preview-do{[count 3 roll save]3 1 roll dup length 0 eq\ {pop}{setpagedevice}{ifelse .runandhide}\ stopped{handleerror quit}if \ aload pop restore}bind def " (preview-gs-color-string preview-colors))) (preview-gs-queue-empty) (preview-parse-messages (or setup #'preview-gs-dvips-process-setup)))) (defun preview-gs-color-value (value) "Return string to be used as color value for an RGB component. Conversion from Emacs color numbers (0 to 65535) in VALUE to Ghostscript floats." (format "%g" (/ value 65535.0))) (defun preview-pdf-color-string (colors) "Return a string that patches PDF foreground color to work properly." ;; Actually, this is rather brutal. It will only be invoked in ;; cases, however, where previously it was not expected that ;; anything readable turned up, anyway. (let ((fg (aref colors 1))) (if fg (concat "/GS_PDF_ProcSet GS_PDF_ProcSet dup maxlength dict copy dup begin\ /graphicsbeginpage{//graphicsbeginpage exec " (mapconcat #'preview-gs-color-value fg " ") " 3 copy rg RG}bind store end readonly store ")))) (defun preview-gs-color-string (colors) "Return a string setting up colors" (let ((bg (aref colors 0)) (fg (aref colors 1)) (mask (aref colors 2)) (border (aref colors 3))) (concat (and (or (and mask border) (and bg (not fg))) "gsave ") (and bg (concat (mapconcat #'preview-gs-color-value bg " ") " setrgbcolor clippath fill ")) (and mask border (format "%s setrgbcolor false setstrokeadjust %g \ setlinewidth clippath strokepath \ matrix setmatrix true \ {2 index{newpath}if round exch round exch moveto pop false}\ {round exch round exch lineto}{curveto}{closepath}\ pathforall pop fill " (mapconcat #'preview-gs-color-value mask " ") (* 2 border))) ;; I hate antialiasing. Warp border to integral coordinates. (and (or (and mask border) (and bg (not fg))) "grestore ") (and fg (concat (mapconcat #'preview-gs-color-value fg " ") " setrgbcolor"))))) (defun preview-dvipng-color-string (colors res) "Return color setup tokens for dvipng. Makes a string of options suitable for passing to dvipng. Pure borderless black-on-white will return an empty string." (let ((bg (aref colors 0)) (fg (aref colors 1)) (mask (aref colors 2)) (border (aref colors 3))) (concat (and bg (format "--bg 'rgb %s' " (mapconcat #'preview-gs-color-value bg " "))) (and fg (format "--fg 'rgb %s' " (mapconcat #'preview-gs-color-value fg " "))) (and mask border (format "--bd 'rgb %s' " (mapconcat #'preview-gs-color-value mask " "))) (and border (format "--bd %d" (max 1 (round (/ (* res border) 72.0)))))))) (defun preview-gs-dvips-process-setup () "Set up Dvips process for conversions via gs." (unless (preview-supports-image-type preview-gs-image-type) (error "preview-image-type setting '%s unsupported by this Emacs" preview-gs-image-type)) (setq preview-gs-command-line (append preview-gs-command-line (list (preview-gs-resolution (preview-hook-enquiry preview-scale) (car preview-resolution) (cdr preview-resolution))))) (if preview-parsed-pdfoutput (preview-pdf2dsc-process-setup) (let ((process (preview-start-dvips preview-fast-conversion))) (setq TeX-sentinel-function #'preview-gs-dvips-sentinel) (list process (current-buffer) TeX-active-tempdir preview-ps-file preview-gs-image-type)))) (defun preview-dvipng-process-setup () "Set up dvipng process for conversion." (setq preview-gs-command-line (append preview-gs-command-line (list (preview-gs-resolution (preview-hook-enquiry preview-scale) (car preview-resolution) (cdr preview-resolution))))) (if preview-parsed-pdfoutput (if (preview-supports-image-type preview-gs-image-type) (preview-pdf2dsc-process-setup) (error "preview-image-type setting '%s unsupported by this Emacs" preview-gs-image-type)) (unless (preview-supports-image-type preview-dvipng-image-type) (error "preview-dvipng-image-type setting '%s unsupported by this Emacs" preview-dvipng-image-type)) (let ((process (preview-start-dvipng))) (setq TeX-sentinel-function #'preview-dvipng-sentinel) (list process (current-buffer) TeX-active-tempdir t preview-dvipng-image-type)))) (defun preview-pdf2dsc-process-setup () (let ((process (preview-start-pdf2dsc))) (setq TeX-sentinel-function #'preview-pdf2dsc-sentinel) (list process (current-buffer) TeX-active-tempdir preview-ps-file preview-gs-image-type))) (defun preview-dvips-abort () "Abort a Dvips run." (preview-gs-queue-empty) (condition-case nil (delete-file (let ((gsfile preview-gs-file)) (with-current-buffer TeX-command-buffer (funcall (car gsfile) "dvi")))) (file-error nil)) (when preview-ps-file (condition-case nil (preview-delete-file preview-ps-file) (file-error nil))) (setq TeX-sentinel-function nil)) (defalias 'preview-dvipng-abort 'preview-dvips-abort) ; "Abort a DviPNG run.") (defun preview-gs-dvips-sentinel (process _command &optional gsstart) "Sentinel function for indirect rendering DviPS process. The usual PROCESS and COMMAND arguments for `TeX-sentinel-function' apply. Starts gs if GSSTART is set." (condition-case err (let ((status (process-status process)) (gsfile preview-gs-file)) (cond ((eq status 'exit) (delete-process process) (setq TeX-sentinel-function nil) (condition-case nil (delete-file (with-current-buffer TeX-command-buffer (funcall (car gsfile) "dvi"))) (file-error nil)) (if preview-ps-file (preview-prepare-fast-conversion)) (when gsstart (if preview-gs-queue (preview-gs-restart) (when preview-ps-file (condition-case nil (preview-delete-file preview-ps-file) (file-error nil)))))) ((eq status 'signal) (delete-process process) (preview-dvips-abort)))) (error (preview-log-error err "DviPS sentinel" process))) (preview-reraise-error process)) (defun preview-pdf2dsc-sentinel (process _command &optional gsstart) "Sentinel function for indirect rendering PDF process. The usual PROCESS and COMMAND arguments for `TeX-sentinel-function' apply. Starts gs if GSSTART is set." (condition-case err (let ((status (process-status process))) (cond ((eq status 'exit) (delete-process process) (setq TeX-sentinel-function nil) (setq preview-gs-init-string (concat preview-gs-init-string (preview-pdf-color-string preview-colors))) (preview-prepare-fast-conversion) (when gsstart (if preview-gs-queue (preview-gs-restart) (when preview-ps-file (condition-case nil (preview-delete-file preview-ps-file) (file-error nil)))))) ((eq status 'signal) (delete-process process) (preview-dvips-abort)))) (error (preview-log-error err "PDF2DSC sentinel" process))) (preview-reraise-error process)) (defun preview-gs-close (process closedata) "Clean up after PROCESS and set up queue accumulated in CLOSEDATA." (setq preview-gs-queue (nconc preview-gs-queue closedata)) (if process (if preview-gs-queue (if TeX-process-asynchronous (if (and (eq (process-status process) 'exit) (null TeX-sentinel-function)) ;; Process has already finished and run sentinel (progn (when preview-ps-file (condition-case nil (preview-delete-file preview-ps-file) (file-error nil))) (preview-gs-restart)) (setq TeX-sentinel-function `(lambda (process command) (,(if preview-parsed-pdfoutput 'preview-pdf2dsc-sentinel 'preview-gs-dvips-sentinel) process command t)))) (TeX-synchronous-sentinel "Preview-DviPS" (cdr preview-gs-file) process)) ;; pathological case: no previews although we sure thought so. (delete-process process) (unless (eq (process-status process) 'signal) (preview-dvips-abort))))) (defun preview-dvipng-sentinel (process _command &optional placeall) "Sentinel function for indirect rendering DviPNG process. The usual PROCESS and COMMAND arguments for `TeX-sentinel-function' apply. Places all snippets if PLACEALL is set." (condition-case err (let ((status (process-status process))) (cond ((eq status 'exit) (delete-process process) (setq TeX-sentinel-function nil) (when placeall (preview-dvipng-place-all))) ((eq status 'signal) (delete-process process) (preview-dvipng-abort)))) (error (preview-log-error err "DviPNG sentinel" process))) (preview-reraise-error process)) (defun preview-dvipng-close (process closedata) "Clean up after PROCESS and set up queue accumulated in CLOSEDATA." (if preview-parsed-pdfoutput (preview-gs-close process closedata) (setq preview-gs-queue (nconc preview-gs-queue closedata)) (if process (if preview-gs-queue (if TeX-process-asynchronous (if (and (eq (process-status process) 'exit) (null TeX-sentinel-function)) ;; Process has already finished and run sentinel (preview-dvipng-place-all) (setq TeX-sentinel-function (lambda (process command) (preview-dvipng-sentinel process command t)))) (TeX-synchronous-sentinel "Preview-DviPNG" (cdr preview-gs-file) process)) ;; pathological case: no previews although we sure thought so. (delete-process process) (unless (eq (process-status process) 'signal) (preview-dvipng-abort)))))) (defun preview-dsc-parse (file) "Parse DSC comments of FILE. Returns a vector with offset/length pairs corresponding to the pages. Page 0 corresponds to the initialization section." (with-temp-buffer (set-buffer-multibyte nil) (insert-file-contents-literally file) (let ((last-pt (point-min)) trailer pagelist lastbegin pt case-fold-search (level 0)) (while (search-forward-regexp "\ %%\\(?:\\(BeginDocument:\\)\\|\ \\(EndDocument[\n\r]\\)\\|\ \\(Page:\\)\\|\ \\(Trailer[\n\r]\\)\\)" nil t) (setq pt (match-beginning 0)) (cond ((null (memq (char-before pt) '(?\C-j ?\C-m nil)))) (trailer (error "Premature %%%%Trailer in `%s' at offsets %d/%d" file trailer pt)) ((match-beginning 1) (if (zerop level) (setq lastbegin pt)) (setq level (1+ level))) ((match-beginning 2) (if (zerop level) (error "Unmatched %%%%EndDocument in `%s' at offset %d" file pt) (setq level (1- level)))) ((> level 0)) ((match-beginning 3) (push (list last-pt (- pt last-pt)) pagelist) (setq last-pt pt)) ((match-beginning 4) (setq trailer pt)))) (unless (zerop level) (error "Unmatched %%%%BeginDocument in `%s' at offset %d" file lastbegin)) (push (list last-pt (- (or trailer (point-max)) last-pt)) pagelist) (vconcat (nreverse pagelist))))) (defun preview-gs-dsc-cvx (page dsc) "Generate PostScript code accessing PAGE in the DSC object. The returned PostScript code will need the file on top of the stack, and will replace it with an executable object corresponding to the wanted page." (let ((curpage (aref dsc page))) (format "dup %d setfileposition %d()/SubFileDecode filter cvx" (1- (car curpage)) (nth 1 curpage)))) (defun preview-ps-quote-filename (str &optional nonrel) "Make a PostScript string from filename STR. The file name is first made relative unless NONREL is not NIL." (unless nonrel (setq str (file-relative-name str))) (let ((index 0)) (while (setq index (string-match "[\\()]" str index)) (setq str (replace-match "\\\\\\&" t nil str) index (+ 2 index))) (concat "(" str ")"))) (defun preview-prepare-fast-conversion () "This fixes up all parameters for fast conversion." (let* ((file (if (consp (car preview-ps-file)) (if (consp (caar preview-ps-file)) (car (last (caar preview-ps-file))) (caar preview-ps-file)) (car preview-ps-file))) (all-files (if (and (consp (car preview-ps-file)) (consp (caar preview-ps-file))) (caar preview-ps-file) (list file)))) (setq preview-gs-dsc (preview-dsc-parse file)) (setq preview-gs-init-string (concat (format "{<> setuserparams \ .locksafe} stopped pop " (mapconcat 'preview-ps-quote-filename all-files "")) preview-gs-init-string (format "[%s(r)file]aload exch %s .runandhide aload pop " (preview-ps-quote-filename file) (preview-gs-dsc-cvx 0 preview-gs-dsc)))))) (defun preview-gs-urgentize (ov buff) "Make a displayed overlay render with higher priority. This function is used in fake conditional display properties for reordering the conversion order to prioritize on-screen images. OV is the overlay in question, and BUFF is the Ghostscript process buffer where the buffer-local queue is located." ;; It does not matter that ov gets queued twice in that process: the ;; first version to get rendered will clear the 'queued property. ;; It cannot get queued more than twice since we remove the ;; conditional display property responsible for requeuing here. ;; We don't requeue if the overlay has been killed (its buffer made ;; nil). Not necessary, but while we are checking... ;; We must return t. (preview-remove-urgentization ov) (when (and (overlay-get ov 'queued) (overlay-buffer ov)) (with-current-buffer buff (push ov preview-gs-queue))) t) (defun preview-gs-place (ov snippet box run-buffer tempdir ps-file _imagetype) "Generate an image placeholder rendered over by Ghostscript. This enters OV into all proper queues in order to make it render this image for real later, and returns the overlay after setting a placeholder image. SNIPPET gives the number of the snippet in question for the file to be generated. BOX is a bounding box if we already know one via TeX. RUN-BUFFER is the buffer of the TeX process, TEMPDIR is the correct copy of `TeX-active-tempdir', PS-FILE is a copy of `preview-ps-file', IMAGETYPE is the image type for the file extension." (overlay-put ov 'filenames (unless (eq ps-file t) (list (preview-make-filename (or ps-file (format "preview.%03d" snippet)) tempdir)))) (overlay-put ov 'queued (vector box nil snippet)) (overlay-put ov 'preview-image (list (preview-icon-copy preview-nonready-icon))) (preview-add-urgentization #'preview-gs-urgentize ov run-buffer) (list ov)) (defvar view-exit-action) (defun preview-mouse-open-error (string) "Display STRING in a new view buffer on click." (let ((buff (get-buffer-create "*Preview-Ghostscript-Error*"))) (with-current-buffer buff (kill-all-local-variables) (set (make-local-variable 'view-exit-action) #'kill-buffer) (setq buffer-undo-list t) (erase-buffer) (insert string) (goto-char (point-min))) (view-buffer-other-window buff))) (defun preview-mouse-open-eps (file &optional position) "Display eps FILE in a view buffer on click. Place point at POSITION, else beginning of file." (let ((default-major-mode ;; FIXME: Yuck! Just arrange for the file name to have the right ;; extension instead! (or (assoc-default "x.ps" auto-mode-alist #'string-match) (default-value 'major-mode))) (buff (get-file-buffer file))) (save-excursion (if buff (pop-to-buffer buff) (view-file-other-window file)) (goto-char (or position (point-min))) (if (eq major-mode 'ps-mode) ; Bundled with GNU Emacs (message "%s" (substitute-command-keys "\ Try \\[ps-run-start] \\[ps-run-buffer] and \ \\\\[ps-run-mouse-goto-error] on error offset." ))) (if (eq major-mode 'postscript-mode) ; Bundled with XEmacs, limited (message "%s" (substitute-command-keys "\ Try \\[ps-shell] and \\[ps-execute-buffer].")))))) (defun preview-gs-flag-error (ov err) "Make an eps error flag in overlay OV for ERR string." (let* ((filenames (overlay-get ov 'filenames)) (file (car (nth 0 filenames))) (outfile (format "-dOutputFile=%s" (preview-ps-quote-filename (car (nth 1 filenames))))) (ps-open `(lambda() (interactive "@") (preview-mouse-open-error ,(concat (mapconcat #'shell-quote-argument (append (list preview-gs-command outfile) preview-gs-command-line) " ") "\nGS>" preview-gs-init-string (aref (overlay-get ov 'queued) 1) err)))) (str (preview-make-clickable nil preview-error-icon "%s views error message %s more options" ps-open `(lambda() (interactive) (popup-menu '("PostScript error" ["View error" ,ps-open] ["View source" (lambda () (interactive "@") ,(if preview-ps-file `(preview-mouse-open-eps ,(if (consp (car file)) (nth 1 (car file)) (car file)) ,(nth 0 (aref preview-gs-dsc (aref (overlay-get ov 'queued) 2)))) `(preview-mouse-open-eps ,file)))])))))) (overlay-put ov 'strings (cons str str)) (preview-toggle ov))) (defun preview-gs-transact (process answer) "Work off Ghostscript transaction. This routine is the action routine called via the process filter. The Ghostscript process buffer of PROCESS will already be selected, and and the standard output of Ghostscript up to the next prompt will be given as ANSWER." (let ((ov (pop preview-gs-outstanding)) (have-error (not (string-match "\\`GS\\(<[0-9]+\\)?>\\'" answer )))) (when (and ov (overlay-buffer ov)) (let ((queued (overlay-get ov 'queued))) (when queued (let* ((bbox (aref queued 0)) (filenames (overlay-get ov 'filenames)) (oldfile (nth 0 filenames)) (newfile (nth 1 filenames))) (if have-error (preview-gs-flag-error ov answer) (condition-case nil (preview-delete-file oldfile) (file-error nil)) (overlay-put ov 'filenames (cdr filenames)) (preview-replace-active-icon ov (preview-create-icon (car newfile) preview-gs-image-type (preview-ascent-from-bb bbox) (aref preview-colors 2)))) (overlay-put ov 'queued nil))))) (while (and (< (length preview-gs-outstanding) preview-gs-outstanding-limit) (setq ov (pop preview-gs-queue))) (let ((queued (overlay-get ov 'queued))) (when (and queued (not (memq ov preview-gs-outstanding)) (overlay-buffer ov)) (let* ((filenames (overlay-get ov 'filenames)) (oldfile (car (nth 0 (nconc filenames (list (preview-make-filename (format "pr%d-%d.%s" (car preview-gs-sequence) (cdr preview-gs-sequence) preview-gs-image-type) TeX-active-tempdir)))))) (bbox (aset queued 0 (or (and preview-prefer-TeX-bb (aref queued 0)) (and (stringp oldfile) (preview-extract-bb oldfile)) (aref queued 0) (error "No bounding box")))) (snippet (aref queued 2)) (gs-line (format "%s<<%s>>preview-do\n" (if preview-ps-file (concat "dup " (preview-gs-dsc-cvx snippet preview-gs-dsc)) (format "%s(r)file cvx" (preview-ps-quote-filename (if (listp oldfile) (car (last oldfile)) oldfile)))) (if preview-parsed-tightpage "" (format "/PageSize[%g %g]/PageOffset[%g \ %g[1 1 dtransform exch]{0 ge{neg}if exch}forall]" (- (aref bbox 2) (aref bbox 0)) (- (aref bbox 3) (aref bbox 1)) (aref bbox 0) (aref bbox 1)))))) (setcdr preview-gs-sequence (1+ (cdr preview-gs-sequence))) (setq preview-gs-outstanding (nconc preview-gs-outstanding (list ov))) (aset queued 1 gs-line) ;; ignore errors because of dying processes: they will get ;; caught by the sentinel, anyway. (condition-case nil (process-send-string process gs-line) (error nil)))))) (unless preview-gs-outstanding (condition-case nil (process-send-eof process) (error nil))))) (defun preview-hook-enquiry (hook) "Gets a value from a configured hook. HOOK is a list or single item, for which the first resolving to non-nil counts. Entries can be a callable function, or a symbol that is consulted, or a value. Lists are evaluated recursively." (cond ((functionp hook) (funcall hook)) ((consp hook) (let (res) (while (and (not res) hook) (setq res (preview-hook-enquiry (car hook)) hook (cdr hook))) res)) ((and (symbolp hook) (boundp hook)) (symbol-value hook)) (t hook))) (defcustom preview-scale-function #'preview-scale-from-face "*Scale factor for included previews. This can be either a function to calculate the scale, or a fixed number." :group 'preview-appearance :type '(choice (function-item preview-scale-from-face) (const 1.0) (number :value 1.0) (function :value preview-scale-from-face))) (defcustom preview-default-document-pt 10 "*Assumed document point size for `preview-scale-from-face'. If the point size (such as 11pt) of the document cannot be determined from the document options itself, assume this size. This is for matching screen font size and previews." :group 'preview-appearance :type '(choice (const :tag "10pt" 10) (const :tag "11pt" 11) (const :tag "12pt" 12) (number :tag "Other" :value 11.0)) ) (defcustom preview-document-pt-list '(preview-parsed-font-size preview-auctex-font-size preview-default-document-pt) "*How `preview-document-pt' figures out the document size." :group 'preview-appearance :type '(repeat (choice ;; This is a bug: type function seems to match variables, too. (restricted-sexp :match-alternatives (functionp) :tag "Function" :value preview-auctex-font-size) (variable :value preview-parsed-font-size) (number :value 11)))) (defun preview-auctex-font-size () "Calculate the default font size of document. If packages, classes or styles were called with an option like 10pt, size is taken from the first such option if you had let your document be parsed by AucTeX." (catch 'return (dolist (option (TeX-style-list)) (if (string-match "\\`\\([0-9]+\\)pt\\'" option) (throw 'return (string-to-number (match-string 1 option))))))) (defsubst preview-document-pt () "Calculate the default font size of document." (preview-hook-enquiry preview-document-pt-list)) (defun preview-scale-from-face () "Calculate preview scale from `preview-reference-face'. This calculates the scale of EPS images from a document assumed to have a default font size given by function `preview-document-pt' so that they match the reference face in height." `(lambda nil (/ ,(/ (preview-inherited-face-attribute 'preview-reference-face :height 'default) 10.0) (preview-document-pt)))) (defvar preview-min-spec) (defun preview-make-image (symbol) "Make an image from a preview spec list. The first spec that is workable (given the current setting of `preview-min-spec') from the given symbol is used here. The icon is cached in the property list of the symbol." (let ((alist (get 'preview-min-alist symbol))) (cdr (or (assq preview-min-spec alist) (car (put symbol 'preview-min-alist (cons (cons preview-min-spec (preview-filter-specs (symbol-value symbol))) alist))))))) (defun preview-filter-specs (spec-list) "Find the first of the fitting specs and make an image." (let (image) (while (and spec-list (not (setq image (catch 'preview-filter-specs (preview-filter-specs-1 (car spec-list)))))) (setq spec-list (cdr spec-list))) image)) (defun preview-filter-specs-1 (specs) (and specs (if (get 'preview-filter-specs (car specs)) (apply (get 'preview-filter-specs (car specs)) specs) `(,(nth 0 specs) ,(nth 1 specs) ,@(preview-filter-specs-1 (nthcdr 2 specs)))))) (put 'preview-filter-specs :min #'(lambda (_keyword value &rest args) (if (> value preview-min-spec) (throw 'preview-filter-specs nil) (preview-filter-specs-1 args)))) (put 'preview-filter-specs :file #'(lambda (_keyword value &rest args) `(:file ,(expand-file-name value (expand-file-name "images" TeX-data-directory)) ,@(preview-filter-specs-1 args)))) (defun preview-ascent-from-bb (bb) "This calculates the image ascent from its bounding box. The bounding box BB needs to be a 4-component vector of numbers (can be float if available)." ;; baseline is at 1in from the top of letter paper (11in), so it is ;; at 10in from the bottom precisely, which is 720 in PostScript ;; coordinates. If our bounding box has its bottom not above this ;; line, and its top above, we can calculate a useful ascent value. ;; If not, something is amiss. We just use 100 in that case. (let ((bottom (aref bb 1)) (top (aref bb 3))) (if (and (<= bottom 720) (> top 720)) (round (* 100.0 (/ (- top 720.0) (- top bottom)))) 100))) (defface preview-face '((((background dark)) (:background "dark slate gray")) (t (:background "beige"))) "Face to use for the preview source." :group 'preview-appearance) (defface preview-reference-face '((t nil)) "Face consulted for colors and scale of active previews. Fallback to :inherit and 'default implemented." :group 'preview-appearance) (defcustom preview-auto-reveal '(eval (preview-arrived-via (key-binding [left]) (key-binding [right]) 'backward-char 'forward-char)) "*Cause previews to open automatically when entered. Possibilities are: T autoopens, NIL doesn't, a symbol will have its value consulted if it exists, defaulting to NIL if it doesn't. An integer will specify a maximum cursor movement distance. Larger movements won't open the preview. A CONS-cell means to call a function for determining the value. The CAR of the cell is the function to call which receives the CDR of the CONS-cell in the rest of the arguments, while point and current buffer point to the position in question. All of the options show reasonable defaults." :group 'preview-appearance :type '(choice (const :tag "Off" nil) (const :tag "On" t) (symbol :tag "Indirect variable" :value reveal-mode) (integer :tag "Maximum distance" :value 1) (cons :tag "Function call" :value (eval (preview-arrived-via (key-binding [left]) (key-binding [right]))) function (list :tag "Argument list" (repeat :inline t sexp))))) (defun preview-auto-reveal-p (mode distance) "Decide whether to auto-reveal. Returns non-NIL if region should be auto-opened. See `preview-auto-reveal' for definitions of MODE, which gets set to `preview-auto-reveal'. DISTANCE specifies the movement distance with which point has been reached in case it has been a movement starting in the current buffer." (cond ((symbolp mode) (and (boundp mode) (symbol-value mode))) ((integerp mode) (and distance (/= 0 distance) (<= (abs distance) mode))) ((consp mode) (apply (car mode) (cdr mode))) (t mode))) (defun preview-arrived-via (&rest list) "Indicate auto-opening. Returns non-NIL if called by one of the commands in LIST." (memq this-command list)) (defcustom preview-equality-transforms '(identity preview-canonical-spaces) "Transformation functions for region changes. These functions are tried in turn on the strings from the regions of a preview to decide whether a preview is to be considered changed. If any transform leads to equal results, the preview is considered unchanged." :group 'preview-appearance :type '(repeat function)) (defun preview-relaxed-string= (&rest args) "Check for functional equality of arguments. The arguments ARGS are checked for equality by using `preview-equality-transforms' on them until it is exhausted or one transform returns equality." (let ((lst preview-equality-transforms)) (while (and lst (not (apply #'string= (mapcar (car lst) args)))) (setq lst (cdr lst))) lst)) (defun preview-canonical-spaces (arg) "Convert ARG into canonical form. Removes comments and collapses white space, except for multiple newlines." (let (pos) (while (setq pos (string-match "\\s<.*[\n\r][ \t]*" arg pos)) (setq arg (replace-match "" t t arg 0))) (while (setq pos (string-match "[ \t]*\\(\\([ \t]\\)\\|[\n\r][ \t]*\\)" arg pos)) (setq arg (replace-match (if (match-beginning 2) " " "\n") t t arg 0) pos (1+ pos))) (while (setq pos (string-match "\n+" arg pos)) (if (string= "\n" (match-string 0 arg)) (setq arg (replace-match " " t t arg 0) pos (1+ pos)) (setq pos (match-end 0))))) arg) (defun preview-regenerate (ovr) "Pass the modified region in OVR again through LaTeX." (let ((begin (overlay-start ovr)) (end (overlay-end ovr))) (with-current-buffer (overlay-buffer ovr) (preview-delete ovr) (preview-region begin end)))) (defcustom preview-inner-environments '("Bmatrix" "Vmatrix" "aligned" "array" "bmatrix" "cases" "gathered" "matrix" "pmatrix" "smallmatrix" "split" "subarray" "vmatrix") "Environments not to be previewed on their own." :group 'preview-latex :type '(repeat string)) (defun preview-next-border (backwards) "Search for the next interesting border for `preview-at-point'. Searches backwards if BACKWARDS is non-nil." (let (history preview-state (pt (point))) (catch 'exit (while (null (memq (setq preview-state (if backwards (if (> (setq pt (previous-single-char-property-change pt 'preview-state)) (point-min)) (get-char-property (1- pt) 'preview-state) (throw 'exit (or history (point-min)))) (if (< (setq pt (next-single-char-property-change pt 'preview-state)) (point-max)) (get-char-property pt 'preview-state) (throw 'exit (or history (point-max)))))) '(active inactive))) (setq history (and (not preview-state) pt))) (or history pt)))) (defun preview-at-point () "Do the appropriate preview thing at point. If point is positioned on or inside of an unmodified preview area, its visibility is toggled. If not, the surroundings are run through preview. The surroundings don't extend into unmodified previews or past contiguous previews invalidated by modifications. Overriding any other action, if a region is active (`transient-mark-mode' or `zmacs-regions'), it is run through `preview-region'." (interactive) (if (TeX-active-mark) (preview-region (region-beginning) (region-end)) (catch 'exit (dolist (ovr (overlays-in (max (point-min) (1- (point))) (min (point-max) (1+ (point))))) (let ((preview-state (overlay-get ovr 'preview-state))) (when preview-state (unless (eq preview-state 'disabled) (preview-toggle ovr 'toggle (selected-window)) (throw 'exit t))))) (preview-region (preview-next-border t) (preview-next-border nil))))) (defun preview-disabled-string (ov) "Generate a before-string for disabled preview overlay OV." (concat (preview-make-clickable (overlay-get ov 'preview-map) preview-icon "\ %s regenerates preview %s more options" `(lambda() (interactive) (preview-regenerate ,ov))) ;; icon on separate line only for stuff starting on its own line (with-current-buffer (overlay-buffer ov) (save-excursion (save-restriction (widen) (goto-char (overlay-start ov)) (if (bolp) "\n" "")))))) (defun preview-disable (ovr) "Change overlay behaviour of OVR after source edits." (overlay-put ovr 'queued nil) (preview-remove-urgentization ovr) (overlay-put ovr 'preview-image nil) (overlay-put ovr 'timestamp nil) (setcdr (overlay-get ovr 'strings) (preview-disabled-string ovr)) (preview-toggle ovr) (overlay-put ovr 'preview-state 'disabled) (dolist (filename (overlay-get ovr 'filenames)) (condition-case nil (preview-delete-file filename) (file-error nil)) (overlay-put ovr 'filenames nil))) (defun preview-delete (ovr &rest ignored) "Delete preview overlay OVR, taking any associated file along. IGNORED arguments are ignored, making this function usable as a hook in some cases" (let ((filenames (overlay-get ovr 'filenames))) (overlay-put ovr 'filenames nil) (delete-overlay ovr) (dolist (filename filenames) (condition-case nil (preview-delete-file filename) (file-error nil))))) (defun preview-clearout (&optional start end timestamp) "Clear out all previews in the current region. When called interactively, the current region is used. Non-interactively, the region between START and END is affected. Those two values default to the borders of the entire buffer. If TIMESTAMP is non-nil, previews with a `timestamp' property of it are kept." (interactive "r") (dolist (ov (overlays-in (or start (point-min)) (or end (point-max)))) (and (overlay-get ov 'preview-state) (not (and timestamp (equal timestamp (overlay-get ov 'timestamp)))) (preview-delete ov)))) (defun preview-clearout-buffer (&optional buffer) "Clearout BUFFER from previews, current buffer if nil." (interactive) (if buffer (with-current-buffer buffer (preview-clearout)) (preview-clearout))) (defun preview-clearout-section () "Clearout previews from LaTeX section." (interactive) (save-excursion (LaTeX-mark-section) (preview-clearout (region-beginning) (region-end)))) (defun preview-clearout-at-point () "Clearout any preview at point." (interactive) (preview-clearout (max (point-min) (1- (point))) (min (point-max) (1+ (point))))) (defun preview-walk-document (func) "Cycle through all buffers belonging to current document. Each buffer having the same master file as the current file has FUNC called with its current buffer being set to it." (let* ((buffers (buffer-list)) (master (expand-file-name (TeX-master-file t))) (default-buffers (list (current-buffer) (find-buffer-visiting master)))) (while buffers (with-current-buffer (pop buffers) (when (or (memq (current-buffer) default-buffers) (and (memq major-mode '(plain-tex-mode latex-mode)) (or (stringp TeX-master) (eq TeX-master t)) (string= (expand-file-name (TeX-master-file t)) master))) (funcall func)))))) (defun preview-clearout-document () "Clear out all previews in current document. The document consists of all buffers that have the same master file as the current buffer. This makes the current document lose all previews." (interactive) (preview-walk-document #'preview-clearout-buffer)) (defun preview-kill-buffer-cleanup (&optional buf) "This is a cleanup function just for use in hooks. Cleans BUF or current buffer. The difference to `preview-clearout-buffer' is that previews associated with the last buffer modification time are kept." (with-current-buffer (or buf (current-buffer)) (save-restriction (widen) (preview-clearout (point-min) (point-max) (visited-file-modtime))))) (add-hook 'kill-buffer-hook #'preview-kill-buffer-cleanup) (add-hook 'before-revert-hook #'preview-kill-buffer-cleanup) (defvar preview-last-counter) (defun preview-extract-counters (ctr) (setq preview-last-counter (prog1 (copy-sequence ctr) (dolist (elt preview-last-counter) (setq ctr (delete elt ctr))))) (apply #'concat ctr)) (defun desktop-buffer-preview-misc-data (&rest ignored) "Hook function that extracts previews for persistent sessions." (unless (buffer-modified-p) (setq preview-last-counter nil) (save-restriction (widen) (let (save-info (timestamp (visited-file-modtime))) (dolist (ov (sort (overlays-in (point-min) (point-max)) (lambda (x y) (< (overlay-start x) (overlay-start y))))) (when (and (memq (overlay-get ov 'preview-state) '(active inactive)) (null (overlay-get ov 'queued)) (cdr (overlay-get ov 'preview-image))) (push (preview-dissect ov timestamp) save-info))) (and save-info (cons 'preview (cons timestamp (nreverse save-info)))))))) (eval-after-load "desktop" '(add-hook 'desktop-buffer-misc-functions #'desktop-buffer-preview-misc-data)) (defvar preview-temp-dirs nil "List of top level temporary directories in use from preview. Any directory not in this list will be cleared out by preview on first use.") (defun preview-dissect (ov timestamp) "Extract all persistent data from OV and TIMESTAMP it." (let ((filenames (butlast (nth 0 (overlay-get ov 'filenames))))) (overlay-put ov 'timestamp timestamp) (list (overlay-start ov) (overlay-end ov) (cdr (overlay-get ov 'preview-image)) filenames (let ((ctr (overlay-get ov 'preview-counters))) (and ctr (cons (preview-extract-counters (car ctr)) (preview-extract-counters (cdr ctr)))))))) (defun preview-buffer-restore-internal (buffer-misc) "Restore previews from BUFFER-MISC if proper. Remove them if they have expired." (let ((timestamp (visited-file-modtime)) tempdirlist files) (setq preview-parsed-counters nil) (when (eq 'preview (pop buffer-misc)) (preview-get-geometry) (if (equal (pop buffer-misc) timestamp) (dolist (ovdata buffer-misc) (setq tempdirlist (apply #'preview-reinstate-preview tempdirlist timestamp ovdata))) (dolist (ovdata buffer-misc) (setq files (nth 3 ovdata)) (condition-case nil (delete-file (nth 0 files)) (file-error nil)) (unless (member (nth 1 files) tempdirlist) (push (nth 1 files) tempdirlist))) (dolist (dir tempdirlist) (condition-case nil (delete-directory dir) (file-error nil))))))) (defun preview-buffer-restore (buffer-misc) "At end of desktop load, reinstate previews. This delay is so that minor modes changing buffer positions \(like `x-symbol-mode' does) will not wreak havoc. BUFFER-MISC is the appropriate data to be used." (add-hook 'desktop-delay-hook `(lambda () (with-current-buffer ,(current-buffer) (preview-buffer-restore-internal ',buffer-misc))))) (defun desktop-buffer-preview (file-name _buffer-name misc) "Hook function for restoring persistent previews into a buffer." (when (and file-name (file-readable-p file-name)) (let ((buf (find-file-noselect file-name))) (if (eq (car misc) 'preview) (with-current-buffer buf (preview-buffer-restore misc) buf) buf)))) (eval-after-load "desktop" '(if (boundp 'desktop-buffer-mode-handlers) (add-to-list 'desktop-buffer-mode-handlers '(latex-mode . desktop-buffer-preview)) (add-hook 'desktop-buffer-handlers '(lambda () (desktop-buffer-preview desktop-buffer-file-name desktop-buffer-name desktop-buffer-misc))))) (defcustom preview-auto-cache-preamble 'ask "*Whether to generate a preamble cache format automatically. Possible values are nil, t, and `ask'." :group 'preview-latex :type '(choice (const :tag "Cache" t) (const :tag "Don't cache" nil) (const :tag "Ask" ask))) (defvar preview-dumped-alist nil "Alist of dumped masters. The elements are (NAME . ASSOC). NAME is the master file name \(without extension), ASSOC is what to do with regard to this format. Possible values: NIL means no format is available and none should be generated. T means no format is available, it should be generated on demand. If the value is a cons cell, the CAR of the cons cell is the command with which the format has been generated, and the CDR is some Emacs-flavor specific value used for maintaining a watch on possible changes of the preamble.") (defun preview-cleanout-tempfiles () "Clean out all directories and files with non-persistent data. This is called as a hook when exiting Emacs." (mapc #'preview-kill-buffer-cleanup (buffer-list)) (mapc #'preview-format-kill preview-dumped-alist)) (defun preview-inactive-string (ov) "Generate before-string for an inactive preview overlay OV. This is for overlays where the source text has been clicked visible. For efficiency reasons it is expected that the buffer is already selected and unnarrowed." (concat (preview-make-clickable (overlay-get ov 'preview-map) preview-icon "\ %s redisplays preview %s more options") ;; icon on separate line only for stuff starting on its own line (with-current-buffer (overlay-buffer ov) (save-excursion (save-restriction (widen) (goto-char (overlay-start ov)) (if (bolp) "\n" "")))))) (defun preview-dvipng-place-all () "Place all images dvipng has created, if any. Deletes the dvi file when finished." (let (filename queued oldfiles snippet) (dolist (ov (prog1 preview-gs-queue (setq preview-gs-queue nil))) (when (and (setq queued (overlay-get ov 'queued)) (setq snippet (aref (overlay-get ov 'queued) 2)) (setq filename (preview-make-filename (format "prev%03d.%s" snippet preview-dvipng-image-type) TeX-active-tempdir))) (if (file-exists-p (car filename)) (progn (overlay-put ov 'filenames (list filename)) (preview-replace-active-icon ov (preview-create-icon (car filename) preview-dvipng-image-type (preview-ascent-from-bb (aref queued 0)) (aref preview-colors 2))) (overlay-put ov 'queued nil)) (push filename oldfiles) (overlay-put ov 'filenames nil) (push ov preview-gs-queue)))) (if (setq preview-gs-queue (nreverse preview-gs-queue)) (progn (preview-start-dvips preview-fast-conversion) (setq TeX-sentinel-function (lambda (process command) (preview-gs-dvips-sentinel process command t))) (dolist (ov preview-gs-queue) (setq snippet (aref (overlay-get ov 'queued) 2)) (overlay-put ov 'filenames (list (preview-make-filename (or preview-ps-file (format "preview.%03d" snippet)) TeX-active-tempdir)))) (while (setq filename (pop oldfiles)) (condition-case nil (preview-delete-file filename) (file-error nil)))) (condition-case nil (let ((gsfile preview-gs-file)) (delete-file (with-current-buffer TeX-command-buffer (funcall (car gsfile) "dvi")))) (file-error nil))))) (defun preview-active-string (ov) "Generate before-string for active image overlay OV." (preview-make-clickable (overlay-get ov 'preview-map) (car (overlay-get ov 'preview-image)) "%s opens text %s more options")) (defun preview-make-filename (file tempdir) "Generate a preview filename from FILE and TEMPDIR. Filenames consist of a CONS-cell with absolute file name as CAR and TEMPDIR as CDR. TEMPDIR is a copy of `TeX-active-tempdir' with the directory name, the reference count and its top directory name elements. If FILE is already in that form, the file name itself gets converted into a CONS-cell with a name and a reference count." (if (consp file) (progn (if (consp (car file)) (setcdr (car file) (1+ (cdr (car file)))) (setcar file (cons (car file) 1))) file) (setcar (nthcdr 2 tempdir) (1+ (nth 2 tempdir))) (cons (expand-file-name file (nth 0 tempdir)) tempdir))) (defun preview-attach-filename (attached file) "Attaches the absolute file name ATTACHED to FILE." (if (listp (caar file)) (setcar (car file) (cons attached (caar file))) (setcar (car file) (list attached (caar file)))) file) (defun preview-delete-file (file) "Delete a preview FILE. See `preview-make-filename' for a description of the data structure. If the containing directory becomes empty, it gets deleted as well." (let ((filename (if (consp (car file)) (and (zerop (setcdr (car file) (1- (cdr (car file))))) (car (car file))) (car file)))) (if filename (unwind-protect (if (listp filename) (dolist (elt filename) (delete-file elt)) (delete-file filename)) (let ((tempdir (cdr file))) (when tempdir (if (> (nth 2 tempdir) 1) (setcar (nthcdr 2 tempdir) (1- (nth 2 tempdir))) (setcdr file nil) (delete-directory (nth 0 tempdir))))))))) (defvar preview-buffer-has-counters nil) (make-variable-buffer-local 'preview-buffer-has-counters) (defun preview-place-preview (snippet start end box counters tempdir place-opts) "Generate and place an overlay preview image. This generates the filename for the preview snippet SNIPPET in the current buffer, and uses it for the region between START and END. BOX is an optional preparsed TeX bounding BOX passed on to the `place' hook. COUNTERS is the info about saved counter structures. TEMPDIR is a copy of `TeX-active-tempdir'. PLACE-OPTS are additional arguments passed into `preview-parse-messages'. Returns a list with additional info from the placement hook. Those lists get concatenated together and get passed to the close hook." (preview-clearout start end tempdir) (let ((ov (make-overlay start end nil nil nil))) (when (fboundp 'TeX-overlay-prioritize) (overlay-put ov 'priority (TeX-overlay-prioritize start end))) (overlay-put ov 'preview-map (preview-make-clickable nil nil nil `(lambda(event) (interactive "e") (preview-toggle ,ov 'toggle event)) `(lambda(event) (interactive "e") (preview-context-menu ,ov event)))) (overlay-put ov 'timestamp tempdir) (when (cdr counters) (overlay-put ov 'preview-counters counters) (setq preview-buffer-has-counters t)) (prog1 (apply #'preview-call-hook 'place ov snippet box place-opts) (overlay-put ov 'strings (list (preview-active-string ov))) (preview-toggle ov t)))) ;; The following is a brutal hack. It relies on `begin' being let to ;; the start of the interesting area when TeX-region-create is being ;; called. (defun preview-counter-find (begin) "Fetch the next preceding or next preview-counters property. Factored out because of compatibility macros XEmacs would not use in advice." ;; The following two lines are bug workaround for Emacs < 22.1. (if (markerp begin) (setq begin (marker-position begin))) (or (car (get-char-property begin 'preview-counters)) (cdr (get-char-property (max (point-min) (1- begin)) 'preview-counters)) (cdr (get-char-property (max (point-min) (1- (previous-single-char-property-change begin 'preview-counters))) 'preview-counters)) (car (get-char-property (next-single-char-property-change begin 'preview-counters) 'preview-counters)))) (defadvice TeX-region-create (around preview-counters) "Write out counter information to region." (let ((TeX-region-extra (concat (and (boundp 'begin) preview-buffer-has-counters (mapconcat #'identity (cons "" (preview-counter-find (symbol-value 'begin))) "\\setcounter")) TeX-region-extra))) ad-do-it)) (defun preview-reinstate-preview (tempdirlist timestamp start end image filename &optional counters) "Reinstate a single preview. This gets passed TEMPDIRLIST, a list consisting of the kind of entries used in `TeX-active-tempdir', and TIMESTAMP, the time stamp under which the file got read in. It returns an augmented list. START and END give the buffer location where the preview is to be situated, IMAGE the image to place there, and FILENAME the file to use: a triple consisting of filename, its temp directory and the corresponding topdir. COUNTERS is saved counter information, if any." (when (or (null filename) (file-readable-p (car filename))) (when filename (unless (equal (nth 1 filename) (car TeX-active-tempdir)) (setq TeX-active-tempdir (or (assoc (nth 1 filename) tempdirlist) (car (push (append (cdr filename) (list 0)) tempdirlist)))) (setcar (cdr TeX-active-tempdir) (car (or (member (nth 1 TeX-active-tempdir) preview-temp-dirs) (progn (add-hook 'kill-emacs-hook #'preview-cleanout-tempfiles t) (push (nth 1 TeX-active-tempdir) preview-temp-dirs)))))) (setcar (nthcdr 2 TeX-active-tempdir) (1+ (nth 2 TeX-active-tempdir))) (setcdr filename TeX-active-tempdir) (setq filename (list filename))) (let ((ov (make-overlay start end nil nil nil))) (when (fboundp 'TeX-overlay-prioritize) (overlay-put ov 'priority (TeX-overlay-prioritize start end))) (overlay-put ov 'preview-map (preview-make-clickable nil nil nil `(lambda(event) (interactive "e") (preview-toggle ,ov 'toggle event)) `(lambda(event) (interactive "e") (preview-context-menu ,ov event)))) (when counters (overlay-put ov 'preview-counters (cons (mapcar #'cdr (if (string= (car counters) "") preview-parsed-counters (setq preview-parsed-counters (preview-parse-counters (car counters))))) (mapcar #'cdr (if (string= (cdr counters) "") preview-parsed-counters (setq preview-parsed-counters (preview-parse-counters (cdr counters))))))) (setq preview-buffer-has-counters t)) (overlay-put ov 'filenames filename) (overlay-put ov 'preview-image (cons (preview-import-image image) image)) (overlay-put ov 'strings (list (preview-active-string ov))) (overlay-put ov 'timestamp timestamp) (preview-toggle ov t))) tempdirlist) (defun preview-back-command (&optional nocomplex) "Move backward a TeX token. If NOCOMPLEX is set, only basic tokens and no argument sequences will be skipped over backwards." (let ((oldpos (point)) oldpoint) (condition-case nil (or (search-backward-regexp "\\(\\$\\$?\ \\|\\\\[^a-zA-Z@]\ \\|\\\\[a-zA-Z@]+\ \\|\\\\begin[ \t]*{[^}]+}\ \\)\\=" (line-beginning-position) t) nocomplex (if (eq ?\) (char-syntax (char-before))) (while (progn (setq oldpoint (point)) (backward-sexp) (and (not (eq oldpoint (point))) (eq ?\( (char-syntax (char-after)))))) (backward-char))) (error (goto-char oldpos))))) (defcustom preview-required-option-list '("active" "tightpage" "auctex" (preview-preserve-counters "counters")) "Specifies required options passed to the preview package. These are passed regardless of whether there is an explicit \\usepackage of that package present." :group 'preview-latex :type preview-expandable-string) (defcustom preview-preserve-counters nil "Try preserving counters for partial runs if set." :group 'preview-latex :type 'boolean) (defcustom preview-default-option-list '("displaymath" "floats" "graphics" "textmath" "sections" "footnotes") "*Specifies default options to pass to preview package. These options are only used when the LaTeX document in question does not itself load the preview package, namely when you use preview on a document not configured for preview. \"auctex\", \"active\", \"dvips\" and \"delayed\" need not be specified here." :group 'preview-latex :type '(list (set :inline t :tag "Options known to work" :format "%t:\n%v%h" :doc "The above options are all the useful ones at the time of the release of this package. You should not need \"Other options\" unless you upgraded to a fancier version of just the LaTeX style. Please also note that `psfixbb' fails to have an effect if `preview-fast-conversion' or `preview-prefer-TeX-bb' are selected." (const "displaymath") (const "floats") (const "graphics") (const "textmath") (const "sections") (const "footnotes") (const "showlabels") (const "psfixbb")) (set :tag "Expert options" :inline t :format "%t:\n%v%h" :doc "Expert options should not be enabled permanently." (const "noconfig") (const "showbox") (const "tracingall")) (repeat :inline t :tag "Other options" (string)))) (defcustom preview-default-preamble '("\\RequirePackage[" ("," . preview-default-option-list) "]{preview}[2004/11/05]") "*Specifies default preamble code to add to a LaTeX document. If the document does not itself load the preview package, that is, when you use preview on a document not configured for preview, this list of LaTeX commands is inserted just before \\begin{document}." :group 'preview-latex :type preview-expandable-string) (defcustom preview-LaTeX-command '("%`%l \"\\nonstopmode\\nofiles\ \\PassOptionsToPackage{" ("," . preview-required-option-list) "}{preview}\ \\AtBeginDocument{\\ifx\\ifPreview\\undefined" preview-default-preamble "\\fi}\"%' %t") "*Command used for starting a preview. See description of `TeX-command-list' for details." :group 'preview-latex :type preview-expandable-string) (defun preview-goto-info-page () "Read documentation for preview-latex in the info system." (interactive) (info "(preview-latex)")) (eval-after-load 'info '(add-to-list 'Info-file-list-for-emacs '("preview" . "preview-latex"))) (defvar preview-map (let ((map (make-sparse-keymap))) (define-key map "\C-p" #'preview-at-point) (define-key map "\C-r" #'preview-region) (define-key map "\C-b" #'preview-buffer) (define-key map "\C-d" #'preview-document) (define-key map "\C-f" #'preview-cache-preamble) (define-key map "\C-c\C-f" #'preview-cache-preamble-off) (define-key map "\C-i" #'preview-goto-info-page) ;; (define-key map "\C-q" #'preview-paragraph) (define-key map "\C-e" #'preview-environment) (define-key map "\C-s" #'preview-section) (define-key map "\C-w" #'preview-copy-region-as-mml) (define-key map "\C-c\C-p" #'preview-clearout-at-point) (define-key map "\C-c\C-r" #'preview-clearout) (define-key map "\C-c\C-s" #'preview-clearout-section) (define-key map "\C-c\C-b" #'preview-clearout-buffer) (define-key map "\C-c\C-d" #'preview-clearout-document) map)) (defun preview-copy-text (ov) "Copy the text of OV into the kill buffer." (with-current-buffer (overlay-buffer ov) (copy-region-as-kill (overlay-start ov) (overlay-end ov)))) (defun preview-copy-mml (ov) "Copy an MML representation of OV into the kill buffer. This can be used to send inline images in mail and news when using MML mode." (when (catch 'badcolor (let ((str (car (preview-format-mml ov)))) (if str (if (eq last-command 'kill-region) (kill-append str nil) (kill-new str)) (error "No image file available"))) nil) (let (preview-transparent-border) (preview-regenerate ov)))) (defun preview-copy-region-as-mml (start end) (interactive "r") (when (catch 'badcolor (let (str lst dont-ask) (dolist (ov (overlays-in start end)) (when (setq str (preview-format-mml ov dont-ask)) (setq dont-ask (cdr str)) (and (>= (overlay-start ov) start) (<= (overlay-end ov) end) (push (list (- (overlay-start ov) start) (- (overlay-end ov) start) (car str)) lst)))) (setq str (buffer-substring start end)) (dolist (elt (nreverse (sort lst #'car-less-than-car))) (setq str (concat (substring str 0 (nth 0 elt)) (nth 2 elt) (substring str (nth 1 elt))))) (if (eq last-command 'kill-region) (kill-append str nil) (kill-new str))) nil) (let (preview-transparent-border) (preview-region start end)))) (autoload 'mailcap-extension-to-mime "mailcap") (defun preview-format-mml (ov &optional dont-ask) "Return an MML representation of OV as string. This can be used to send inline images in mail and news when using MML mode. If there is nothing current available, NIL is returned. If the image has a colored border and the user wants it removed when asked (unless DONT-ASK is set), 'badcolor is thrown a t. The MML is returned in the car of the result, DONT-ASK in the cdr." (and (memq (overlay-get ov 'preview-state) '(active inactive)) (not (overlay-get ov 'queued)) (let* ((text (with-current-buffer (overlay-buffer ov) (buffer-substring (overlay-start ov) (overlay-end ov)))) (image (cdr (overlay-get ov 'preview-image))) file type) (cond ((consp image) (and (not dont-ask) (nth 3 image) (if (y-or-n-p "Replace colored borders? ") (throw 'badcolor t) (setq dont-ask t))) (setq file (car (car (last (overlay-get ov 'filenames)))) type (mailcap-extension-to-mime (file-name-extension file))) (cons (format "<#part %s description=\"%s\" filename=%s> <#/part>" (if type (format "type=\"%s\" disposition=inline" type) "disposition=attachment") (if (string-match "[\n\"]" text) "preview-latex image" text) (if (string-match "[ \n<>]" file) (concat "\"" file "\"") file)) dont-ask)) ((stringp image) (cons image dont-ask)))))) (defun preview-active-contents (ov) "Check whether we have a valid image associated with OV." (and (memq (overlay-get ov 'preview-state) '(active inactive)) t)) (defun preview-context-menu (ov ev) "Pop up a menu for OV at position EV." (popup-menu `("Preview" ["Toggle" (preview-toggle ,ov 'toggle ',ev) (preview-active-contents ,ov)] ["Regenerate" (preview-regenerate ,ov)] ["Remove" (preview-delete ,ov)] ["Copy text" (preview-copy-text ,ov)] ["Copy MIME" (preview-copy-mml ,ov) (preview-active-contents ,ov)]) ev)) (defvar preview-TeX-style-dir) (defun preview-TeX-style-cooked () "Return `preview-TeX-style-dir' in cooked form. This will be fine for prepending to a `TEXINPUT' style environment variable, including an initial `.' at the front." (if (or (zerop (length preview-TeX-style-dir)) (member (substring preview-TeX-style-dir -1) '(";" ":"))) preview-TeX-style-dir (let ((sep (cond ((stringp TeX-kpathsea-path-delimiter) TeX-kpathsea-path-delimiter) ((string-match "\\`.[:]" (if (file-name-absolute-p preview-TeX-style-dir) preview-TeX-style-dir (expand-file-name preview-TeX-style-dir))) ";") (t ":")))) (concat "." sep preview-TeX-style-dir sep)))) (defun preview-set-texinputs (&optional remove) "Add `preview-TeX-style-dir' into `TEXINPUTS' variables. With prefix argument REMOVE, remove it again." (interactive "P") (let ((case-fold-search nil) (preview-TeX-style-dir (preview-TeX-style-cooked)) pattern) (if remove (progn (setq pattern (concat "\\`\\(TEXINPUTS[^=]*\\)=\\(.*\\)" (regexp-quote preview-TeX-style-dir))) (dolist (env (copy-sequence process-environment)) (if (string-match pattern env) (setenv (match-string 1 env) (and (or (< (match-beginning 2) (match-end 2)) (< (match-end 0) (length env))) (concat (match-string 2 env) (substring env (match-end 0)))))))) (setq pattern (regexp-quote preview-TeX-style-dir)) (dolist (env (cons "TEXINPUTS=" (copy-sequence process-environment))) (if (string-match "\\`\\(TEXINPUTS[^=]*\\)=" env) (unless (string-match pattern env) (setenv (match-string 1 env) (concat preview-TeX-style-dir (substring env (match-end 0)))))))))) (defcustom preview-TeX-style-dir nil "This variable contains the location of uninstalled TeX styles. If this is nil, the preview styles are considered to be part of the installed TeX system. Otherwise, it can either just specify an absolute directory, or it can be a complete TEXINPUTS specification. If it is the latter, it has to be followed by the character with which kpathsea separates path components, either `:' on Unix-like systems, or `;' on Windows-like systems. And it should be preceded with .: or .; accordingly in order to have . first in the search path. The `TEXINPUT' environment type variables will get this prepended at load time calling \\[preview-set-texinputs] to reflect this. You can permanently install the style files using \\[preview-install-styles]. Don't set this variable other than with customize so that its changes get properly reflected in the environment." :group 'preview-latex :set (lambda (var value) (and (boundp var) (symbol-value var) (preview-set-texinputs t)) (set var value) (and (symbol-value var) (preview-set-texinputs))) :type '(choice (const :tag "Installed" nil) (string :tag "Style directory or TEXINPUTS path"))) ;;;###autoload (defun preview-install-styles (dir &optional force-overwrite force-save) "Installs the TeX style files into a permanent location. This must be in the TeX search path. If FORCE-OVERWRITE is greater than 1, files will get overwritten without query, if it is less than 1 or nil, the operation will fail. The default of 1 for interactive use will query. Similarly FORCE-SAVE can be used for saving `preview-TeX-style-dir' to record the fact that the uninstalled files are no longer needed in the search path." (interactive "DPermanent location for preview TeX styles pp") (unless preview-TeX-style-dir (error "Styles are already installed")) (dolist (file (or (condition-case nil (directory-files (progn (string-match "\\`\\(\\.[:;]\\)?\\(.*?\\)\\([:;]\\)?\\'" preview-TeX-style-dir) (match-string 2 preview-TeX-style-dir)) t "\\.\\(sty\\|def\\|cfg\\)\\'") (error nil)) (error "Can't find files to install"))) (copy-file file dir (cond ((eq force-overwrite 1) 1) ((numberp force-overwrite) (> force-overwrite 1)) (t force-overwrite)))) (if (cond ((eq force-save 1) (y-or-n-p "Stop using non-installed styles permanently ")) ((numberp force-save) (> force-save 1)) (t force-save)) (customize-save-variable 'preview-TeX-style-dir nil) (customize-set-variable 'preview-TeX-style-dir nil))) ;;;###autoload (defun LaTeX-preview-setup () "Hook function for embedding the preview package into AUCTeX. This is called by `LaTeX-mode-hook' and changes AUCTeX variables to add the preview functionality." ;; This has to be done only once. (unless (and (boundp 'LaTeX-mode-hook) (memq #'preview-mode-setup LaTeX-mode-hook)) (remove-hook 'LaTeX-mode-hook #'LaTeX-preview-setup) (add-hook 'LaTeX-mode-hook #'preview-mode-setup) (define-key LaTeX-mode-map "\C-c\C-p" preview-map) (easy-menu-define preview-menu LaTeX-mode-map "This is the menu for preview-latex." '("Preview" "Generate previews" ["(or toggle) at point" preview-at-point] ["for environment" preview-environment] ["for section" preview-section] ["for region" preview-region (preview-mark-active)] ["for buffer" preview-buffer] ["for document" preview-document] "---" "Remove previews" ["at point" preview-clearout-at-point] ["from section" preview-clearout-section] ["from region" preview-clearout (preview-mark-active)] ["from buffer" preview-clearout-buffer] ["from document" preview-clearout-document] "---" "Turn preamble cache" ["on" preview-cache-preamble] ["off" preview-cache-preamble-off] "---" ("Customize" ["Browse options" (customize-group 'preview)] ["Extend this menu" (easy-menu-add-item nil '("Preview") (customize-menu-create 'preview))]) ["Read documentation" preview-goto-info-page] ["Report Bug" preview-report-bug])) (if (eq major-mode 'latex-mode) (preview-mode-setup)) (if (boundp 'desktop-buffer-misc) (preview-buffer-restore desktop-buffer-misc)))) (defun preview-clean-subdir (dir) "Cleans out a temporary DIR with preview image files." (condition-case err (progn (mapc #'delete-file (directory-files dir t "\\`pr" t)) (delete-directory dir)) (error (message "Deletion of `%s' failed: %s" dir (error-message-string err))))) (defun preview-clean-topdir (topdir) "Cleans out TOPDIR from temporary directories. This does not erase the directory itself since its permissions might be needed for colloborative work on common files." (mapc #'preview-clean-subdir (condition-case nil (directory-files topdir t "\\`tmp" t) (file-error nil)))) (defun preview-create-subdirectory () "Create a temporary subdir for the current TeX process. If necessary, generates a fitting top directory or cleans out an existing one (if not yet visited in this session), then returns the name of the created subdirectory relative to the master directory, in shell-quoted form. `TeX-active-tempdir' is set to the corresponding TEMPDIR descriptor as described in `preview-make-filename'. The directory is registered in `preview-temp-dirs' in order not to be cleaned out later while in use." (let ((topdir (expand-file-name (TeX-active-master "prv")))) (if (file-directory-p topdir) (unless (member topdir preview-temp-dirs) ;; Cleans out the top preview directory by ;; removing subdirs possibly left from a previous session. (preview-clean-topdir topdir) (push topdir preview-temp-dirs)) (make-directory topdir) (add-to-list 'preview-temp-dirs topdir)) (add-hook 'kill-emacs-hook #'preview-cleanout-tempfiles t) (setq TeX-active-tempdir (list (make-temp-file (expand-file-name "tmp" (file-name-as-directory topdir)) t) topdir 0)) (shell-quote-argument (concat (file-name-as-directory (file-name-nondirectory topdir)) (file-name-nondirectory (nth 0 TeX-active-tempdir)))))) (defun preview-parse-counters (string) "Extract counter information from STRING." (let ((list preview-parsed-counters) (pos 0)) (while (eq pos (string-match " *\\({\\([^{}]+\\)}{[-0-9]+}\\)" string pos)) (setcdr (or (assoc (match-string 2 string) list) (car (push (list (match-string 2 string)) list))) (match-string 1 string)) (setq pos (match-end 1))) list)) (defun preview-parse-tightpage (string) "Build tightpage vector from STRING," (read (concat "[" string "]"))) (defvar preview-parse-variables '(("Fontsize" preview-parsed-font-size "\\` *\\([0-9.]+\\)pt\\'" 1 string-to-number) ("Magnification" preview-parsed-magnification "\\` *\\([0-9]+\\)\\'" 1 string-to-number) ("PDFoutput" preview-parsed-pdfoutput "" 0 stringp) ("Counters" preview-parsed-counters ".*" 0 preview-parse-counters) ("Tightpage" preview-parsed-tightpage "\\` *\\(-?[0-9]+ *\\)\\{4\\}\\'" 0 preview-parse-tightpage))) (defun preview-error-quote (string run-coding-system) "Turn STRING with potential ^^ sequences into a regexp. To preserve sanity, additional ^ prefixes are matched literally, so the character represented by ^^^ preceding extended characters will not get matched, usually. If decoding the process output was suppressed during receiving, decode first with RUN-CODING-SYSTEM." (let (output case-fold-search) ;; Some coding systems (e.g. japanese-shift-jis) use regexp meta ;; characters on encoding. Such meta characters would be ;; interfered with `regexp-quote' below. Thus the idea of ;; "encoding entire string beforehand and decoding it at the last ;; stage" does not work for such coding systems. ;; Rather, we work consistently with decoded text. (if (and (featurep 'mule) (not (eq run-coding-system (preview-buffer-recode-system run-coding-system)))) (setq string (decode-coding-string string run-coding-system))) ;; Next, bytes with value from 0x80 to 0xFF represented with ^^ ;; form are converted to byte sequence, and decoded by the file ;; coding system. (setq string (preview--decode-^^ab string (if (featurep 'mule) buffer-file-coding-system nil))) ;; Then, control characters are taken into account. (while (string-match "\\^\\{2,\\}\\([@-_?]\\)" string) (setq output (concat output (regexp-quote (substring string 0 (- (match-beginning 1) 2))) (concat "\\(?:" (regexp-quote (substring string (- (match-beginning 1) 2) (match-end 0))) "\\|" (char-to-string (logxor (aref string (match-beginning 1)) 64)) "\\)")) string (substring string (match-end 0)))) (setq output (concat output (regexp-quote string))) output)) (defun preview--decode-^^ab (string coding-system) "Decode ^^ sequences in STRING with CODING-SYSTEM. Sequences of control characters such as ^^I are left untouched. Return a new string." ;; Since the given string can contain multibyte characters, decoding ;; should be performed seperately on each segment made up entirely ;; with ASCII characters. (let ((result "")) (while (string-match "[\x00-\x7F]+" string) (setq result (concat result (substring string 0 (match-beginning 0)) (let ((text (save-match-data (preview--convert-^^ab (match-string 0 string))))) (if (featurep 'mule) (decode-coding-string text coding-system) text))) string (substring string (match-end 0)))) (setq result (concat result string)) result)) (defun preview--convert-^^ab (string) "Convert ^^ sequences in STRING to raw 8bit. Sequences of control characters such as ^^I are left untouched. Return a new string." (let ((result "")) (while (string-match "\\^\\^[8-9a-f][0-9a-f]" string) (setq result (concat result (substring string 0 (match-beginning 0)) (let ((byte (string-to-number (substring string (+ (match-beginning 0) 2) (match-end 0)) 16))) ;; `char-to-string' is not appropriate in ;; Emacs >= 23 because it converts #xAB into ;; "\u00AB" (multibyte string), not "\xAB" ;; (raw 8bit unibyte string). (if (fboundp 'byte-to-string) (byte-to-string byte) (char-to-string byte)))) string (substring string (match-end 0)))) (setq result (concat result string)) result)) (defun preview-parse-messages (open-closure) "Turn all preview snippets into overlays. This parses the pseudo error messages from the preview document style for LaTeX. OPEN-CLOSURE is called once it is certain that we have a valid output file, and it has to return in its CAR the PROCESS parameter for the CLOSE call, and in its CDR the final stuff for the placement hook." (with-temp-message "locating previews..." (let (TeX-error-file TeX-error-offset snippet box counters file line (lsnippet 0) lstart (lfile "") lline lbuffer lpoint lcounters string after-string offset parsestate (case-fold-search nil) (run-buffer (current-buffer)) (run-coding-system preview-coding-system) (run-directory default-directory) tempdir close-data open-data fast-hook slow-hook) ;; clear parsing variables (dolist (var preview-parse-variables) (set (nth 1 var) nil)) (goto-char (point-min)) (unwind-protect (progn (while (re-search-forward "\ ^\\(!\\|\\(.*?\\):[0-9]+:\\) \\|\ \(\\(/*\ \\(?:\\.+[^()\r\n{} /]*\\|[^()\r\n{} ./]+\ \\(?: [^()\r\n{} ./]+\\)*\\(?:\\.[-0-9a-zA-Z_.]*\\)?\\)\ \\(?:/+\\(?:\\.+[^()\r\n{} /]*\\|[^()\r\n{} ./]+\ \\(?: [^()\r\n{} ./]+\\)*\\(?:\\.[-0-9a-zA-Z_.]*\\)?\\)?\\)*\\)\ )*\\(?: \\|\r?$\\)\\|\ \\()+\\)\\|\ !\\(?:offset(\\([---0-9]+\\))\\|\ name(\\([^)]+\\))\\)\\|\ ^Preview: \\([a-zA-Z]+\\) \\([^\n\r]*\\)\r?$" nil t) ;;; Ok, here is a line by line breakdown: ;;; match-alternative 1: ;;; error indicator for TeX error, either style. ;;; match-alternative 2: ;;; The same, but file-line-error-style, matching on file name. ;;; match-alternative 3: ;;; Too ugly to describe in detail. In short, we try to catch file ;;; names built from path components that don't contain spaces or ;;; other special characters once the file extension has started. ;;; ;;; Position for searching immediately after the file name so as to ;;; not miss closing parens or something. ;;; (match-string 3) is the file name. ;;; match-alternative 4: ;;; )+\( \|$\) ;;; a closing paren followed by the end of line or a space: a just ;;; closed file. ;;; match-alternative 5 (wrapped into one shy group with ;;; match-alternative 6, so that the match on first char is slightly ;;; faster): ;;; !offset(\([---0-9]+\)) ;;; an AUCTeX offset message. (match-string 5) is the offset itself ;;; !name(\([^)]+\)) ;;; an AUCTeX file name message. (match-string 6) is the file name ;;; TODO: Actually, the latter two should probably again match only ;;; after a space or newline, since that it what \message produces. ;;; disabled in prauctex.def: ;;; \(?:Ov\|Und\)erfull \\.*[0-9]*--[0-9]* ;;; \(?:.\{79\} ;;; \)*.*$\)\| ;;; This would have caught overfull box messages that consist of ;;; several lines of context all with 79 characters in length except ;;; of the last one. prauctex.def kills all such messages. (setq file (match-string-no-properties 2)) (cond ((match-beginning 1) (if (looking-at "\ \\(?:Preview\\|Package Preview Error\\): Snippet \\([---0-9]+\\) \\(started\\|ended\\(\ \\.? *(\\([---0-9]+\\)\\+\\([---0-9]+\\)x\\([---0-9]+\\))\\)?\\)\\.") (progn (when file (unless TeX-error-file (push nil TeX-error-file) (push nil TeX-error-offset)) (unless (car TeX-error-offset) (rplaca TeX-error-file file))) (setq snippet (string-to-number (match-string 1)) box (unless (string= (match-string 2) "started") (if (match-string 4) (mapcar #'(lambda (x) (* (preview-get-magnification) (string-to-number x))) (list (match-string 4) (match-string 5) (match-string 6))) t)) counters (mapcar #'cdr preview-parsed-counters) ;; And the line number to position the cursor. line (progn (setq lpoint (point)) (end-of-line) ;;; variant 1: profiling seems to indicate the regexp-heavy solution ;;; to be favorable. Removing incomplete characters from the error ;;; context is an absolute nuisance. (and (re-search-forward "\ ^l\\.\\([0-9]+\\) \\(\\.\\.\\.\\(?:\\^*\\(?:[89a-f][0-9a-f]\\|[]@-\\_?]\\)\\|\ \[0-9a-f]?\\)\\)?\\([^\n\r]*?\\)\r? \\([^\n\r]*?\\)\\(\\(?:\\^+[89a-f]?\\)?\\.\\.\\.\\)?\r?$" nil t) (string-to-number (match-string 1)))) ;; And a string of the context to search for. string (and line (match-string 3)) after-string (and line (buffer-substring (+ (match-beginning 4) (- (match-end 3) (match-beginning 0))) (match-end 4))) ;; We may use these in another buffer. offset (or (car TeX-error-offset) 0) file (car TeX-error-file)) (when (and (stringp file) (or (string= file "") (TeX-match-extension file))) ;; if we are the first time round, check for fast hooks: (when (null parsestate) (setq open-data (save-excursion (funcall open-closure)) tempdir TeX-active-tempdir) (dolist (lst (if (listp TeX-translate-location-hook) TeX-translate-location-hook (list TeX-translate-location-hook))) (let ((fast (and (symbolp lst) (get lst 'TeX-translate-via-list)))) (if fast (setq fast-hook (nconc fast-hook (list fast))) (setq slow-hook (nconc slow-hook (list lst))))))) (condition-case err (save-excursion (mapc #'funcall slow-hook)) (error (preview-log-error err "Translation hook"))) (push (vector file (+ line offset) string after-string snippet box counters) parsestate))) ;; else normal error message (forward-line) (re-search-forward "^l\\.[0-9]" nil t) (forward-line 2))) ((match-beginning 3) ;; New file -- Push on stack (push (match-string-no-properties 3) TeX-error-file) (push nil TeX-error-offset) (goto-char (match-end 3))) ((match-beginning 4) ;; End of file -- Pop from stack (when (> (length TeX-error-file) 1) (pop TeX-error-file) (pop TeX-error-offset)) (goto-char (1+ (match-beginning 0)))) ((match-beginning 5) ;; Hook to change line numbers (setq TeX-error-offset (list (string-to-number (match-string 5))))) ((match-beginning 6) ;; Hook to change file name (setq TeX-error-file (list (match-string-no-properties 6)))) ((match-beginning 7) (let ((var (assoc (match-string-no-properties 7) preview-parse-variables)) (offset (- (match-beginning 0) (match-beginning 8))) (str (match-string-no-properties 8))) ;; paste together continuation lines: (while (= (- (length str) offset) 79) (search-forward-regexp "^\\([^\n\r]*\\)\r?$") (setq offset (- (length str)) str (concat str (match-string-no-properties 1)))) (when (and var (string-match (nth 2 var) str)) (set (nth 1 var) (funcall (nth 4 var) (match-string-no-properties (nth 3 var) str)))))))) (when (null parsestate) (error "LaTeX found no preview images"))) (unwind-protect (save-excursion (setq parsestate (nreverse parsestate)) (condition-case err (dolist (fun fast-hook) (setq parsestate (save-excursion (funcall fun parsestate)))) (error (preview-log-error err "Fast translation hook"))) (setq snippet 0) (dolist (state parsestate) (setq lsnippet snippet file (aref state 0) line (aref state 1) string (aref state 2) after-string (aref state 3) snippet (aref state 4) box (aref state 5) counters (aref state 6)) (unless (string= lfile file) (set-buffer (if (string= file "") (with-current-buffer run-buffer TeX-command-buffer) (find-file-noselect (expand-file-name file run-directory)))) (setq lfile file)) (save-excursion (save-restriction (widen) ;; a fast hook might have positioned us already: (if (number-or-marker-p string) (progn (goto-char string) (setq lpoint (if (number-or-marker-p after-string) after-string (line-beginning-position)))) (if (and (eq (current-buffer) lbuffer) (<= lline line)) ;; while Emacs does the perfectly correct ;; thing even when when the line differences ;; get zero or negative, I don't trust this ;; to be universally the case across other ;; implementations. Besides, if the line ;; number gets smaller again, we are probably ;; rereading the file, and restarting from ;; the beginning will probably be faster. (progn (goto-char lpoint) (if (/= lline line) (if (eq selective-display t) (re-search-forward "[\n\C-m]" nil 'end (- line lline)) (forward-line (- line lline))))) (goto-char (point-min)) (forward-line (1- line))) (setq lpoint (point)) (cond ((search-forward (concat string after-string) (line-end-position) t) (backward-char (length after-string))) ;;ok, transform ^^ sequences ((search-forward-regexp (concat "\\(" (setq string (preview-error-quote string run-coding-system)) "\\)" (setq after-string (preview-error-quote after-string run-coding-system))) (line-end-position) t) (goto-char (match-end 1))) ((search-forward-regexp (concat "\\(" (if (string-match "^[^\0-\177]\\{1,6\\}" string) (setq string (substring string (match-end 0))) string) "\\)" (if (string-match "[^\0-\177]\\{1,6\\}$" after-string) (setq after-string (substring after-string 0 (match-beginning 0))))) (line-end-position) t) (goto-char (match-end 1))) (t (search-forward-regexp string (line-end-position) t)))) (setq lline line lbuffer (current-buffer)) (if box (progn (if (and lstart (= snippet lsnippet)) (setq close-data (nconc (preview-place-preview snippet (save-excursion (preview-back-command (= (prog1 (point) (goto-char lstart)) lstart)) (point)) (point) (preview-TeX-bb box) (cons lcounters counters) tempdir (cdr open-data)) close-data)) (with-current-buffer run-buffer (preview-log-error (list 'error (format "End of Preview snippet %d unexpected" snippet)) "Parser"))) (setq lstart nil)) ;; else-part of if box (setq lstart (point) lcounters counters) ;; >= because snippets in between might have ;; been ignored because of TeX-default-extension (unless (>= snippet (1+ lsnippet)) (with-current-buffer run-buffer (preview-log-error (list 'error (format "Preview snippet %d out of sequence" snippet)) "Parser")))))))) (preview-call-hook 'close (car open-data) close-data)))))) (defun preview-get-geometry () "Transfer display geometry parameters from current display. Returns list of scale, resolution and colors. Calculation is done in current buffer." (condition-case err (let* ((geometry (list (preview-hook-enquiry preview-scale-function) (cons (/ (* 25.4 (display-pixel-width)) (display-mm-width)) (/ (* 25.4 (display-pixel-height)) (display-mm-height))) (preview-get-colors))) (preview-min-spec (* (cdr (nth 1 geometry)) (/ (preview-inherited-face-attribute 'preview-reference-face :height 'default) 720.0)))) (setq preview-icon (preview-make-image 'preview-icon-specs) preview-error-icon (preview-make-image 'preview-error-icon-specs) preview-nonready-icon (preview-make-image 'preview-nonready-icon-specs)) geometry) (error (error "Display geometry unavailable: %s" (error-message-string err))))) (defun preview-set-geometry (geometry) "Set geometry variables from GEOMETRY. Buffer-local `preview-scale', `preview-resolution', and `preview-colors' are set as given." (setq preview-scale (nth 0 geometry) preview-resolution (nth 1 geometry) preview-colors (nth 2 geometry))) (defun preview-start-dvipng () "Start a DviPNG process.." (let* ((file preview-gs-file) tempdir (res (/ (* (car preview-resolution) (preview-hook-enquiry preview-scale)) (preview-get-magnification))) (resolution (format " -D%d " res)) (colors (preview-dvipng-color-string preview-colors res)) (command (with-current-buffer TeX-command-buffer (prog1 (concat (TeX-command-expand preview-dvipng-command (car file)) " " colors resolution) (setq tempdir TeX-active-tempdir)))) (name "Preview-DviPNG")) (setq TeX-active-tempdir tempdir) (goto-char (point-max)) (insert-before-markers "Running `" name "' with ``" command "''\n") (setq mode-name name) (setq TeX-sentinel-function (lambda (_process name) (message "%s: done." name))) (if TeX-process-asynchronous (let ((process (start-process name (current-buffer) TeX-shell TeX-shell-command-option command))) (if TeX-after-start-process-function (funcall TeX-after-start-process-function process)) (TeX-command-mode-line process) (set-process-filter process 'TeX-command-filter) (set-process-sentinel process 'TeX-command-sentinel) (set-marker (process-mark process) (point-max)) (push process compilation-in-progress) (sit-for 0) process) (setq mode-line-process ": run") (set-buffer-modified-p (buffer-modified-p)) (sit-for 0) ; redisplay (call-process TeX-shell nil (current-buffer) nil TeX-shell-command-option command)))) (defun preview-start-dvips (&optional fast) "Start a DviPS process. If FAST is set, do a fast conversion." (let* ((file preview-gs-file) tempdir (command (with-current-buffer TeX-command-buffer (prog1 (TeX-command-expand (if fast preview-fast-dvips-command preview-dvips-command) (car file)) (setq tempdir TeX-active-tempdir)))) (name "Preview-DviPS")) (setq TeX-active-tempdir tempdir) (setq preview-ps-file (and fast (preview-make-filename (preview-make-filename "preview.ps" tempdir) tempdir))) (goto-char (point-max)) (insert-before-markers "Running `" name "' with ``" command "''\n") (setq mode-name name) (setq TeX-sentinel-function (lambda (_process name) (message "%s: done." name))) (if TeX-process-asynchronous (let ((process (start-process name (current-buffer) TeX-shell TeX-shell-command-option command))) (if TeX-after-start-process-function (funcall TeX-after-start-process-function process)) (TeX-command-mode-line process) (set-process-filter process 'TeX-command-filter) (set-process-sentinel process 'TeX-command-sentinel) (set-marker (process-mark process) (point-max)) (push process compilation-in-progress) (sit-for 0) process) (setq mode-line-process ": run") (set-buffer-modified-p (buffer-modified-p)) (sit-for 0) ; redisplay (call-process TeX-shell nil (current-buffer) nil TeX-shell-command-option command)))) (defun preview-start-pdf2dsc () "Start a PDF2DSC process." (let* ((file preview-gs-file) tempdir pdfsource (command (with-current-buffer TeX-command-buffer (prog1 (TeX-command-expand preview-pdf2dsc-command (car file)) (setq tempdir TeX-active-tempdir pdfsource (funcall `,(car file) "pdf"))))) (name "Preview-PDF2DSC")) (setq TeX-active-tempdir tempdir) (setq preview-ps-file (preview-attach-filename pdfsource (preview-make-filename (preview-make-filename "preview.dsc" tempdir) tempdir))) (goto-char (point-max)) (insert-before-markers "Running `" name "' with ``" command "''\n") (setq mode-name name) (setq TeX-sentinel-function (lambda (_process name) (message "%s: done." name))) (if TeX-process-asynchronous (let ((process (start-process name (current-buffer) TeX-shell TeX-shell-command-option command))) (if TeX-after-start-process-function (funcall TeX-after-start-process-function process)) (TeX-command-mode-line process) (set-process-filter process 'TeX-command-filter) (set-process-sentinel process 'TeX-command-sentinel) (set-marker (process-mark process) (point-max)) (push process compilation-in-progress) (sit-for 0) process) (setq mode-line-process ": run") (set-buffer-modified-p (buffer-modified-p)) (sit-for 0) ; redisplay (call-process TeX-shell nil (current-buffer) nil TeX-shell-command-option command)))) (defun preview-TeX-inline-sentinel (process _name) "Sentinel function for preview. See `TeX-sentinel-function' and `set-process-sentinel' for definition of PROCESS and NAME." (if process (TeX-format-mode-line process)) (let ((status (process-status process))) (if (memq status '(signal exit)) (delete-process process)) (when (eq status 'exit) (save-excursion (goto-char (point-max)) (forward-line -1) (if (search-forward "abnormally with code 1" nil t) (replace-match "as expected with code 1" t t) (if (search-forward "finished" nil t) (insert " with nothing to show")))) (condition-case err (preview-call-hook 'open) (error (preview-log-error err "LaTeX" process))) (preview-reraise-error process)))) (defcustom preview-format-extensions '(".fmt" ".efmt") "Possible extensions for format files. Those are just needed for cleanup." :group 'preview-latex :type '(repeat string)) (defun preview-format-kill (format-cons) "Kill a cached format. FORMAT-CONS is intended to be an element of `preview-dumped-alist'. Tries through `preview-format-extensions'." (dolist (ext preview-format-extensions) (condition-case nil (delete-file (preview-dump-file-name (concat (car format-cons) ext))) (file-error nil)))) (defun preview-dump-file-name (file) "Make a file name suitable for dumping from FILE." (if file (concat (file-name-directory file) "prv_" (progn (setq file (file-name-nondirectory file)) (while (string-match " " file) (setq file (replace-match "_" t t file))) file)) "prv_texput")) (defun preview-do-replacements (string replacements) "Perform replacements in string. STRING is the input string, REPLACEMENTS is a list of replacements. A replacement is a cons-cell, where the car is the match string, and the cdr is a list of strings or symbols. Symbols get dereferenced, and strings get evaluated as replacement strings." (let (rep case-fold-search) (while replacements (setq rep (pop replacements)) (cond ((symbolp rep) (setq string (preview-do-replacements string (symbol-value rep)))) ((string-match (car rep) string) (setq string (mapconcat (lambda(x) (if (symbolp x) (symbol-value x) (replace-match x t nil string))) (cdr rep) "")))))) string) (defconst preview-LaTeX-disable-pdfoutput '(("\\`\\(pdf[^ ]*\\)\ \\(\\( +[-&]\\([^ \"]\\|\"[^\"]*\"\\)*\\|\ +\"[-&][^\"]*\"\\)*\\)\\(.*\\)\\'" . ("\\1\\2 \"\\\\pdfoutput=0 \" \\5"))) "This replacement places `\"\\pdfoutput=0 \"' after the options of any command starting with `pdf'.") (defcustom preview-LaTeX-command-replacements nil "Replacement for `preview-LaTeX-command'. This is passed through `preview-do-replacements'." :group 'preview-latex :type '(repeat (choice (symbol :tag "Named replacement" :value preview-LaTeX-disable-pdfoutput) (cons (string :tag "Matched string") (repeat :tag "Concatenated elements for replacement" (choice (symbol :tag "Variable with literal string") (string :tag "non-literal regexp replacement"))))))) (defvar preview-format-name) (defcustom preview-dump-replacements '(preview-LaTeX-command-replacements ("\\`\\([^ ]+\\)\ \\(\\( +-\\([^ \\\\\"]\\|\\\\\\.\\|\"[^\"]*\"\\)*\\)*\\)\\(.*\\)\\'" . ("\\1 -ini -interaction=nonstopmode \"&\\1\" " preview-format-name ".ini \\5"))) "Generate a dump command from the usual preview command." :group 'preview-latex :type '(repeat (choice (symbol :tag "Named replacement") (cons string (repeat (choice symbol string)))))) (defcustom preview-undump-replacements '(("\\`\\([^ ]+\\)\ .*? \"\\\\input\" \\(.*\\)\\'" . ("\\1 -interaction=nonstopmode \"&" preview-format-name "\" \\2"))) "Use a dumped format for reading preamble." :group 'preview-latex :type '(repeat (choice (symbol :tag "Named replacement") (cons string (repeat (choice symbol string)))))) (defun preview-cache-preamble (&optional format-cons) "Dump a pregenerated format file. For the rest of the session, this file is used when running on the same master file. Returns the process for dumping, nil if there is still a valid format available. If FORMAT-CONS is non-nil, a previous format may get reused." (interactive) (let* ((dump-file (expand-file-name (preview-dump-file-name (TeX-master-file "ini")))) (master (TeX-master-file)) (format-name (expand-file-name master)) (preview-format-name (shell-quote-argument (preview-dump-file-name (file-name-nondirectory master)))) (master-file (expand-file-name (TeX-master-file t))) (command (preview-do-replacements (TeX-command-expand (preview-string-expand preview-LaTeX-command) 'TeX-master-file) preview-dump-replacements)) (preview-auto-cache-preamble nil)) (unless (and (consp (cdr format-cons)) (string= command (cadr format-cons))) (unless format-cons (setq format-cons (assoc format-name preview-dumped-alist))) (if format-cons (preview-cache-preamble-off format-cons) (setq format-cons (list format-name)) (push format-cons preview-dumped-alist)) ;; mylatex.ltx expects a file name to follow. Bad. `.tex' ;; in the tools bundle is an empty file. (write-region "\\ifx\\pdfoutput\\undefined\\else\ \\let\\PREVIEWdump\\dump\\def\\dump{% \\edef\\next{{\\catcode`\\ 9 \\pdfoutput=\\the\\pdfoutput\\relax\ \\the\\everyjob}}\\everyjob\\next\\catcode`\\ 10 \\let\\dump\\PREVIEWdump\\dump}\\fi\\input mylatex.ltx \\relax\n" nil dump-file) (TeX-save-document master) (prog1 (preview-generate-preview nil (file-name-nondirectory master) command) (add-hook 'kill-emacs-hook #'preview-cleanout-tempfiles t) (setq TeX-sentinel-function `(lambda (process string) (condition-case err (progn (if (and (eq (process-status process) 'exit) (zerop (process-exit-status process))) (preview-watch-preamble ',master-file ',command ',format-cons) (preview-format-kill ',format-cons)) (delete-file ',dump-file)) (error (preview-log-error err "Dumping" process))) (preview-reraise-error process))))))) (defun preview-cache-preamble-off (&optional old-format) "Clear the pregenerated format file. The use of the format file is discontinued. OLD-FORMAT may already contain a format-cons as stored in `preview-dumped-alist'." (interactive) (unless old-format (setq old-format (let ((master-file (expand-file-name (TeX-master-file)))) (or (assoc master-file preview-dumped-alist) (car (push (list master-file) preview-dumped-alist)))))) (preview-unwatch-preamble old-format) (preview-format-kill old-format) (setcdr old-format nil)) (defun preview-region (begin end) "Run preview on region between BEGIN and END." (interactive "r") (TeX-region-create (TeX-region-file TeX-default-extension) (buffer-substring begin end) (if buffer-file-name (file-name-nondirectory buffer-file-name) "") (save-restriction (widen) (let ((inhibit-point-motion-hooks t) (inhibit-field-text-motion t)) (+ (count-lines (point-min) begin) (save-excursion (goto-char begin) (if (bolp) 0 -1)))))) (preview-generate-preview t (TeX-region-file nil t) (preview-do-replacements (TeX-command-expand (preview-string-expand preview-LaTeX-command) 'TeX-region-file) preview-LaTeX-command-replacements))) (defun preview-buffer () "Run preview on current buffer." (interactive) (preview-region (point-min) (point-max))) ;; We have a big problem: When we are dumping preambles, diagnostics ;; issued in later runs will not make it to the output when the ;; predumped format skips the preamble. So we have to place those ;; after \begin{document}. This we can only do if regions never ;; include the preamble. We could do this in our own functions, but ;; that would not extend to the operation of C-c C-r g RET. So we ;; make this preamble skipping business part of TeX-region-create. ;; This will fail if the region is to contain just part of the ;; preamble -- a bad idea anyhow. (defadvice TeX-region-create (before preview-preamble preactivate activate) "Skip preamble for the sake of predumped formats." (when (string-match TeX-header-end (ad-get-arg 1)) (ad-set-arg 1 (prog1 (substring (ad-get-arg 1) (match-end 0)) (ad-set-arg 3 (with-temp-buffer (insert (substring (ad-get-arg 1) 0 (match-end 0))) (+ (ad-get-arg 3) (count-lines (point-min) (point-max)) (if (bolp) 0 -1)))))))) (defun preview-document () "Run preview on master document." (interactive) (TeX-save-document (TeX-master-file)) (preview-generate-preview nil (TeX-master-file nil t) (preview-do-replacements (TeX-command-expand (preview-string-expand preview-LaTeX-command) 'TeX-master-file) preview-LaTeX-command-replacements))) (defun preview-environment (count) "Run preview on LaTeX environment. This avoids running environments through preview that are indicated in `preview-inner-environments'. If you use a prefix argument COUNT, the corresponding level of outward nested environments is selected." (interactive "p") (save-excursion (let (currenv) (dotimes (i (1- count)) (setq currenv (LaTeX-current-environment)) (if (string= currenv "document") (error "No enclosing outer environment found")) (LaTeX-find-matching-begin)) (while (member (setq currenv (LaTeX-current-environment)) preview-inner-environments) (LaTeX-find-matching-begin)) (if (string= currenv "document") (error "No enclosing outer environment found")) (preview-region (save-excursion (LaTeX-find-matching-begin) (point)) (save-excursion (LaTeX-find-matching-end) (point)))))) (defun preview-section () "Run preview on LaTeX section." (interactive) (save-excursion (LaTeX-mark-section) (preview-region (region-beginning) (region-end)))) (defun preview-generate-preview (region-p file command) "Generate a preview. REGION-P is the region flag, FILE the file (without default extension and directory), COMMAND is the command to use. It returns the started process." (setq TeX-current-process-region-p region-p) (let* ((geometry (preview-get-geometry)) (commandbuff (current-buffer)) (pr-file (cons (if TeX-current-process-region-p 'TeX-region-file 'TeX-master-file) file)) (master (TeX-master-file)) (master-file (expand-file-name master)) (dumped-cons (assoc master-file preview-dumped-alist)) process) (unless dumped-cons (push (setq dumped-cons (cons master-file (if (eq preview-auto-cache-preamble 'ask) (y-or-n-p "Cache preamble? ") preview-auto-cache-preamble))) preview-dumped-alist)) (when (cdr dumped-cons) (let* (TeX-current-process-region-p) (setq process (preview-cache-preamble dumped-cons)) (if process (setq TeX-sentinel-function `(lambda (process string) (funcall ,TeX-sentinel-function process string) (TeX-inline-preview-internal ,command ,file ',pr-file ,commandbuff ',dumped-cons ',master ',geometry (buffer-string))))))) (or process (TeX-inline-preview-internal command file pr-file commandbuff dumped-cons master geometry)))) (defun TeX-inline-preview-internal (command file pr-file commandbuff dumped-cons master geometry &optional str) "Internal stuff for previewing. COMMAND and FILE should be explained in `TeX-command-list'. PR-FILE is the target file name in the form for `preview-gs-file'. COMMANDBUFF, DUMPED-CONS, MASTER, and GEOMETRY are internal parameters, STR may be a log to insert into the current log." (set-buffer commandbuff) (let* ((preview-format-name (shell-quote-argument (preview-dump-file-name (file-name-nondirectory master)))) (process (TeX-run-command "Preview-LaTeX" (if (consp (cdr dumped-cons)) (preview-do-replacements command (append preview-undump-replacements ;; Since the command options provided in ;; (TeX-engine-alist) are dropped, give them ;; back. (list (list "\\`\\([^ ]+\\)" (TeX-command-expand "%(latex)" nil))))) command) file))) (condition-case err (progn (when str (save-excursion (goto-char (point-min)) (insert str) (when (= (process-mark process) (point-min)) (set-marker (process-mark process) (point))))) (preview-set-geometry geometry) (setq preview-gs-file pr-file) (setq TeX-sentinel-function 'preview-TeX-inline-sentinel) ;; Postpone decoding of process output for xemacs 21.4, ;; which is rather bad at preserving incomplete multibyte ;; characters. (when (featurep 'mule) ;; Get process coding system set in `TeX-run-command'. (setq preview-coding-system (process-coding-system process)) ;; Substitute coding system for decode with `raw-text' if ;; necessary and save the original coding system for ;; decode for later use in `preview-error-quote'. (set-process-coding-system process (preview-buffer-recode-system (car preview-coding-system)) (cdr preview-coding-system)) (setq preview-coding-system (car preview-coding-system))) (TeX-parse-reset) (setq TeX-parse-function 'TeX-parse-TeX) (if TeX-process-asynchronous process (TeX-synchronous-sentinel "Preview-LaTeX" file process))) (error (preview-log-error err "Preview" process) (delete-process process) (preview-reraise-error process))))) (defconst preview-version "@PREVIEWVERSION@" "Preview version. If not a regular release, the date of the last change.") (defconst preview-release-date "@PREVIEWDATE@" "Preview release date using the ISO 8601 format, yyyy-mm-dd.") (defun preview-dump-state (buffer) (condition-case nil (progn (unless (local-variable-p 'TeX-command-buffer (current-buffer)) (setq buffer (with-current-buffer buffer (TeX-active-buffer)))) (when (bufferp buffer) (insert "\nRun buffer contents:\n\n") (if (< (buffer-size buffer) 5000) (insert-buffer-substring buffer) (insert-buffer-substring buffer 1 2500) (insert "...\n\n[...]\n\n\t...") (insert-buffer-substring buffer (- (buffer-size buffer) 2500) (buffer-size buffer))) (insert "\n"))) (error nil))) ;;;###autoload (defun preview-report-bug () "Report a bug in the preview-latex package." (interactive) (let ((reporter-prompt-for-summary-p "Bug report subject: ")) (reporter-submit-bug-report "bug-auctex@gnu.org" preview-version '(AUCTeX-version LaTeX-command-style image-types preview-image-type preview-image-creators preview-dvipng-image-type preview-dvipng-command preview-pdf2dsc-command preview-gs-command preview-gs-options preview-gs-image-type-alist preview-fast-conversion preview-prefer-TeX-bb preview-dvips-command preview-fast-dvips-command preview-scale-function preview-LaTeX-command preview-required-option-list preview-preserve-counters preview-default-option-list preview-default-preamble preview-LaTeX-command-replacements preview-dump-replacements preview-undump-replacements preview-auto-cache-preamble preview-TeX-style-dir) `(lambda () (preview-dump-state ,(current-buffer))) (lambda () (insert (format "\nOutput from running `%s -h':\n" preview-gs-command)) (call-process preview-gs-command nil t nil "-h") (insert "\n")) "Remember to cover the basics. Including a minimal LaTeX example file exhibiting the problem might help." ))) (eval-when-compile (when (boundp 'preview-compatibility-macros) (dolist (elt preview-compatibility-macros) (if (consp elt) (fset (car elt) (cdr elt)) (fmakunbound elt))))) (makunbound 'preview-compatibility-macros) (provide 'preview) ;;; preview.el ends here auctex-11.91/prv-emacs.el000066400000000000000000000526021313533625700152520ustar00rootroot00000000000000;;; prv-emacs.el --- GNU Emacs specific code for preview.el ;; Copyright (C) 2001, 02, 03, 04, 05 Free Software Foundation, Inc. ;; Author: David Kastrup ;; Keywords: convenience, tex, wp ;; This file is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; This file is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to ;; the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Commentary: ;; ;;; Code: (require 'tex-site) (require 'tex) (require 'latex) (defvar preview-compatibility-macros nil "List of macros only present when compiling/loading.") (defcustom preview-transparent-color '(highlight :background) "Color to appear transparent in previews. Set this to something unusual when using `preview-transparent-border', to the default background in most other cases." :type '(radio (const :tag "None" nil) (const :tag "Autodetect" t) (color :tag "By name" :value "white") (list :tag "Take from face" :value (default :background) (face) (choice :tag "What to take" (const :tag "Background" :value :background) (const :tag "Foreground" :value :foreground)))) :group 'preview-appearance) ;;; Note that the following default introduces a border only when ;;; Emacs blinks politely when point is on an image (the tested ;;; unrelated function was introduced at about the time image blinking ;;; became tolerable). (defcustom preview-transparent-border (unless (fboundp 'posn-object-x-y) 1.5) "Width of transparent border for previews in pt. Setting this to a numeric value will add a border of `preview-transparent-color' around images, and will turn the heuristic-mask setting of images to default to 't since then the borders are correctly detected even in case of palette operations. If the transparent color is something not present otherwise in the image, the cursor display will affect just this border. A width of 0 is interpreted by PostScript as meaning a single pixel, other widths are interpreted as PostScript points (1/72 of 1in)" :group 'preview-appearance :type '(choice (const :value nil :tag "No border") (number :value 1.5 :tag "Border width in pt"))) (defun preview-get-heuristic-mask () "Get heuristic-mask to use for previews. Consults `preview-transparent-color'." (cond ((stringp preview-transparent-color) (color-values preview-transparent-color)) ((or (not (consp preview-transparent-color)) (integerp (car preview-transparent-color))) preview-transparent-color) (t (color-values (preview-inherited-face-attribute (nth 0 preview-transparent-color) (nth 1 preview-transparent-color) 'default))))) (defsubst preview-create-icon-1 (file type ascent border) `(image :file ,file :type ,type :ascent ,ascent ,@(and border '(:mask (heuristic t))))) (defun preview-create-icon (file type ascent border) "Create an icon from FILE, image TYPE, ASCENT and BORDER." (list (preview-create-icon-1 file type ascent border) file type ascent border)) (put 'preview-filter-specs :type #'(lambda (keyword value &rest args) (if (image-type-available-p value) `(image :type ,value ,@(preview-filter-specs-1 args)) (throw 'preview-filter-specs nil)))) ;; No defcustom here: does not seem to make sense. (defvar preview-tb-icon-specs '((:type xpm :file "prvtex24.xpm") (:type xbm :file "prvtex24.xbm"))) (defvar preview-tb-icon nil) (defun preview-add-urgentization (fun ov &rest rest) "Cause FUN (function call form) to be called when redisplayed. FUN must be a form with OV as first argument, REST as the remainder, returning T." (let ((dispro (overlay-get ov 'display))) (unless (eq (car dispro) 'when) (overlay-put ov 'display `(when (,fun ,ov ,@rest) . ,dispro))))) (defun preview-remove-urgentization (ov) "Undo urgentization of OV by `preview-add-urgentization'. Returns the old arguments to `preview-add-urgentization' if there was any urgentization." (let ((dispro (overlay-get ov 'display))) (when (eq (car-safe dispro) 'when) (prog1 (car (cdr dispro)) (overlay-put ov 'display (cdr (cdr dispro))))))) (defsubst preview-icon-copy (icon) "Prepare a later call of `preview-replace-active-icon'." ;; This is just a GNU Emacs specific efficiency hack because it ;; is easy to do. When porting, don't do anything complicated ;; here, rather deliver just the unchanged icon and make ;; `preview-replace-active-icon' do the necessary work of replacing ;; the icon where it actually has been stored, probably ;; in the car of the strings property of the overlay. This string ;; might probably serve as a begin-glyph as well, in which case ;; modifying the string in the strings property would change that ;; glyph automatically. (cons 'image (cdr icon))) (defsubst preview-replace-active-icon (ov replacement) "Replace the active Icon in OV by REPLACEMENT, another icon." (let ((img (overlay-get ov 'preview-image))) (setcdr (car img) (cdar replacement)) (setcdr img (cdr replacement)))) (defvar preview-button-1 [mouse-2]) (defvar preview-button-2 [mouse-3]) (defmacro preview-make-clickable (&optional map glyph helpstring click1 click2) "Generate a clickable string or keymap. If MAP is non-nil, it specifies a keymap to add to, otherwise a new one is created. If GLYPH is given, the result is made to display it wrapped in a string. In that case, HELPSTRING is a format string with one or two %s specifiers for preview's clicks, displayed as a help-echo. CLICK1 and CLICK2 are functions to call on preview's clicks." `(let ((resmap ,(or map '(make-sparse-keymap)))) ,@(if click1 `((define-key resmap preview-button-1 ,click1))) ,@(if click2 `((define-key resmap preview-button-2 ,click2))) ,(if glyph `(propertize "x" 'display ,glyph 'mouse-face 'highlight 'help-echo ,(if (stringp helpstring) (format helpstring preview-button-1 preview-button-2) `(format ,helpstring preview-button-1 preview-button-2)) 'keymap resmap) 'resmap))) (defvar preview-overlay nil) (put 'preview-overlay 'modification-hooks '(preview-handle-modification)) (put 'preview-overlay 'insert-in-front-hooks '(preview-handle-insert-in-front)) (put 'preview-overlay 'insert-behind-hooks '(preview-handle-insert-behind)) ;; We have to fake our way around atomicity. ;; Here is the beef: for best intuitiveness, we want to have ;; insertions be carried out as expected before iconized text ;; passages, but we want to insert *into* the overlay when not ;; iconized. A preview that has become empty can not get content ;; again: we remove it. A disabled preview needs no insert-in-front ;; handler. (defvar preview-change-list nil "List of tentatively changed overlays.") (defcustom preview-dump-threshold "^ *\\\\begin *{document}[ %]*$" "*Regexp denoting end of preamble. This is the location up to which preamble changes are considered to require redumping of a format." :group 'preview-latex :type 'string) (defun preview-preamble-changed-function (ov after-change beg end &optional length) "Hook function for change hooks on preamble. See info node `(elisp) Overlay Properties' for definition of OV, AFTER-CHANGE, BEG, END and LENGTH." (let ((format-cons (overlay-get ov 'format-cons))) (preview-unwatch-preamble format-cons) (preview-format-kill format-cons) (setcdr format-cons t))) (defun preview-watch-preamble (file command format-cons) "Set up a watch on master file FILE. FILE can be an associated buffer instead of a filename. COMMAND is the command that generated the format. FORMAT-CONS contains the format info for the main format dump handler." (let ((buffer (if (bufferp file) file (find-buffer-visiting file))) ov) (setcdr format-cons (cons command (when buffer (with-current-buffer buffer (save-excursion (save-restriction (widen) (goto-char (point-min)) (unless (re-search-forward preview-dump-threshold nil t) (error "Can't find preamble of `%s'" file)) (setq ov (make-overlay (point-min) (point))) (overlay-put ov 'format-cons format-cons) (overlay-put ov 'insert-in-front-hooks '(preview-preamble-changed-function)) (overlay-put ov 'modification-hooks '(preview-preamble-changed-function)) ov)))))))) (defun preview-unwatch-preamble (format-cons) "Stop watching a format on FORMAT-CONS. The watch has been set up by `preview-watch-preamble'." (when (consp (cdr format-cons)) (when (cddr format-cons) (delete-overlay (cddr format-cons))) (setcdr (cdr format-cons) nil))) (defun preview-register-change (ov) "Register not yet changed OV for verification. This stores the old contents of the overlay in the `preview-prechange' property and puts the overlay into `preview-change-list' where `preview-check-changes' will find it at some later point of time." (unless (overlay-get ov 'preview-prechange) (if (eq (overlay-get ov 'preview-state) 'disabled) (overlay-put ov 'preview-prechange t) (overlay-put ov 'preview-prechange (save-restriction (widen) (buffer-substring-no-properties (overlay-start ov) (overlay-end ov))))) (push ov preview-change-list))) (defun preview-check-changes () "Check whether the contents under the overlay have changed. Disable it if that is the case. Ignores text properties." (dolist (ov preview-change-list) (condition-case nil (with-current-buffer (overlay-buffer ov) (let ((text (save-restriction (widen) (buffer-substring-no-properties (overlay-start ov) (overlay-end ov))))) (if (zerop (length text)) (preview-delete ov) (unless (or (eq (overlay-get ov 'preview-state) 'disabled) (preview-relaxed-string= text (overlay-get ov 'preview-prechange))) (overlay-put ov 'insert-in-front-hooks nil) (overlay-put ov 'insert-behind-hooks nil) (preview-disable ov))))) (error nil)) (overlay-put ov 'preview-prechange nil)) (setq preview-change-list nil)) (defun preview-handle-insert-in-front (ov after-change beg end &optional length) "Hook function for `insert-in-front-hooks' property. See info node `(elisp) Overlay Properties' for definition of OV, AFTER-CHANGE, BEG, END and LENGTH." (if after-change (unless undo-in-progress (if (eq (overlay-get ov 'preview-state) 'active) (move-overlay ov end (overlay-end ov)))) (preview-register-change ov))) (defun preview-handle-insert-behind (ov after-change beg end &optional length) "Hook function for `insert-behind-hooks' property. This is needed in case `insert-before-markers' is used at the end of the overlay. See info node `(elisp) Overlay Properties' for definition of OV, AFTER-CHANGE, BEG, END and LENGTH." (if after-change (unless undo-in-progress (if (eq (overlay-get ov 'preview-state) 'active) (move-overlay ov (overlay-start ov) beg))) (preview-register-change ov))) (defun preview-handle-modification (ov after-change beg end &optional length) "Hook function for `modification-hooks' property. See info node `(elisp) Overlay Properties' for definition of OV, AFTER-CHANGE, BEG, END and LENGTH." (unless after-change (preview-register-change ov))) (defun preview-toggle (ov &optional arg event) "Toggle visibility of preview overlay OV. ARG can be one of the following: t displays the overlay, nil displays the underlying text, and 'toggle toggles. If EVENT is given, it indicates the window where the event occured, either by being a mouse event or by directly being the window in question. This may be used for cursor restoration purposes." (let ((old-urgent (preview-remove-urgentization ov)) (preview-state (if (if (eq arg 'toggle) (null (eq (overlay-get ov 'preview-state) 'active)) arg) 'active 'inactive)) (strings (overlay-get ov 'strings))) (unless (eq (overlay-get ov 'preview-state) 'disabled) (overlay-put ov 'preview-state preview-state) (if (eq preview-state 'active) (progn (overlay-put ov 'category 'preview-overlay) (if (eq (overlay-start ov) (overlay-end ov)) (overlay-put ov 'before-string (car strings)) (dolist (prop '(display keymap mouse-face help-echo)) (overlay-put ov prop (get-text-property 0 prop (car strings)))) (overlay-put ov 'before-string nil)) (overlay-put ov 'face nil)) (dolist (prop '(display keymap mouse-face help-echo)) (overlay-put ov prop nil)) (overlay-put ov 'face 'preview-face) (unless (cdr strings) (setcdr strings (preview-inactive-string ov))) (overlay-put ov 'before-string (cdr strings))) (if old-urgent (apply 'preview-add-urgentization old-urgent)))) (if event (preview-restore-position ov (if (windowp event) event (posn-window (event-start event)))))) (defsubst preview-buffer-recode-system (base) "This is supposed to translate unrepresentable base encodings into something that can be used safely for byte streams in the run buffer. A noop for Emacs." base) (defun preview-mode-setup () "Setup proper buffer hooks and behavior for previews." (set (make-local-variable 'desktop-save-buffer) #'desktop-buffer-preview-misc-data) (add-hook 'pre-command-hook #'preview-mark-point nil t) (add-hook 'post-command-hook #'preview-move-point nil t) (easy-menu-add preview-menu LaTeX-mode-map) (unless preview-tb-icon (setq preview-tb-icon (preview-filter-specs preview-tb-icon-specs))) (when preview-tb-icon (define-key LaTeX-mode-map [tool-bar preview] `(menu-item "Preview at point" preview-at-point :image ,preview-tb-icon :help "Preview on/off at point"))) (when buffer-file-name (let* ((filename (expand-file-name buffer-file-name)) format-cons) (when (string-match (concat "\\." TeX-default-extension "\\'") filename) (setq filename (substring filename 0 (match-beginning 0)))) (setq format-cons (assoc filename preview-dumped-alist)) (when (consp (cdr format-cons)) (preview-unwatch-preamble format-cons) (preview-watch-preamble (current-buffer) (cadr format-cons) format-cons))))) (defvar preview-marker (make-marker) "Marker for fake intangibility.") (defvar preview-temporary-opened nil) (defvar preview-last-location nil "Restored cursor position marker for reopened previews.") (make-variable-buffer-local 'preview-last-location) (defun preview-mark-point () "Mark position for fake intangibility." (when (eq (get-char-property (point) 'preview-state) 'active) (unless preview-last-location (setq preview-last-location (make-marker))) (set-marker preview-last-location (point)) (set-marker preview-marker (point)) (preview-move-point)) (set-marker preview-marker (point))) (defun preview-restore-position (ov window) "Tweak position after opening/closing preview. The treated overlay OV has been triggered in WINDOW. This function records the original buffer position for reopening, or restores it after reopening. Note that by using the mouse, you can open/close overlays not in the active window." (when (eq (overlay-buffer ov) (window-buffer window)) (with-current-buffer (overlay-buffer ov) (if (eq (overlay-get ov 'preview-state) 'active) (setq preview-last-location (set-marker (or preview-last-location (make-marker)) (window-point window))) (when (and (markerp preview-last-location) (eq (overlay-buffer ov) (marker-buffer preview-last-location)) (< (overlay-start ov) preview-last-location) (> (overlay-end ov) preview-last-location)) (set-window-point window preview-last-location)))))) (defun preview-move-point () "Move point out of fake-intangible areas." (preview-check-changes) (let* (newlist (pt (point)) (lst (overlays-at pt)) distance) (setq preview-temporary-opened (dolist (ov preview-temporary-opened newlist) (and (overlay-buffer ov) (eq (overlay-get ov 'preview-state) 'inactive) (if (and (eq (overlay-buffer ov) (current-buffer)) (or (<= pt (overlay-start ov)) (>= pt (overlay-end ov)))) (preview-toggle ov t) (push ov newlist))))) (when lst (if (or disable-point-adjustment global-disable-point-adjustment (preview-auto-reveal-p preview-auto-reveal (setq distance (and (eq (marker-buffer preview-marker) (current-buffer)) (- pt (marker-position preview-marker)))))) (preview-open-overlays lst) (while lst (setq lst (if (and (eq (overlay-get (car lst) 'preview-state) 'active) (> pt (overlay-start (car lst)))) (overlays-at (setq pt (if (and distance (< distance 0)) (overlay-start (car lst)) (overlay-end (car lst))))) (cdr lst)))) (goto-char pt))))) (defun preview-open-overlays (list &optional pos) "Open all previews in LIST, optionally restricted to enclosing POS." (dolist (ovr list) (when (and (eq (overlay-get ovr 'preview-state) 'active) (or (null pos) (and (> pos (overlay-start ovr)) (< pos (overlay-end ovr))))) (preview-toggle ovr) (push ovr preview-temporary-opened)))) (defadvice replace-highlight (before preview) "Make `query-replace' open preview text about to be replaced." (preview-open-overlays (overlays-in (ad-get-arg 0) (ad-get-arg 1)))) (defcustom preview-query-replace-reveal t "*Make `query-replace' autoreveal previews." :group 'preview-appearance :type 'boolean :require 'preview :set (lambda (symbol value) (set-default symbol value) (if value (ad-enable-advice 'replace-highlight 'before 'preview) (ad-disable-advice 'replace-highlight 'before 'preview)) (ad-activate 'replace-highlight)) :initialize #'custom-initialize-reset) ;; Check whether the four-argument form of `face-attribute' exists. ;; If not, we will get a `wrong-number-of-arguments' error thrown. ;; Use `defun' instead of `defsubst' here so that the decision may be ;; reverted at load time if you are compiling with one Emacs and using ;; another. (if (condition-case nil (progn (face-attribute 'default :height nil nil) t) (wrong-number-of-arguments nil)) (defun preview-inherited-face-attribute (face attribute &optional inherit) "Fetch face attribute while adhering to inheritance. This searches FACE for an ATTRIBUTE, using INHERIT for resolving unspecified or relative specs. See the fourth argument of function `face-attribute' for details." (face-attribute face attribute nil inherit)) (defun preview-inherited-face-attribute (face attribute &optional inherit) "Fetch face attribute while adhering to inheritance. This searches FACE for an ATTRIBUTE. If it is 'unspecified, first inheritance is consulted (if INHERIT is non-NIL), then INHERIT is searched if it is a face or a list of faces. Relative specs are evaluated recursively until they get absolute or are not resolvable. Relative specs are float values." (let ((value (face-attribute face attribute))) (when inherit (setq inherit (append (let ((ancestors (face-attribute face :inherit))) (cond ((facep ancestors) (list ancestors)) ((consp ancestors) ancestors))) (cond ((facep inherit) (list inherit)) ((consp inherit) inherit))))) (cond ((null inherit) value) ((floatp value) (let ((avalue (preview-inherited-face-attribute (car inherit) attribute (or (cdr inherit) t)))) (cond ((integerp avalue) (round (* avalue value))) ((floatp avalue) (* value avalue)) (t value)))) ((eq value 'unspecified) (preview-inherited-face-attribute (car inherit) attribute (or (cdr inherit) t))) (t value))))) (defun preview-get-colors () "Return colors from the current display. Fetches the current screen colors and makes a vector of colors as numbers in the range 0..65535. Pure borderless black-on-white will return triple NIL. The fourth value is the transparent border thickness." (let ((bg (color-values (preview-inherited-face-attribute 'preview-reference-face :background 'default))) (fg (color-values (preview-inherited-face-attribute 'preview-reference-face :foreground 'default))) (mask (preview-get-heuristic-mask))) (if (equal '(65535 65535 65535) bg) (setq bg nil)) (if (equal '(0 0 0) fg) (setq fg nil)) (unless (and (numberp preview-transparent-border) (consp mask) (integerp (car mask))) (setq mask nil)) (vector bg fg mask preview-transparent-border))) (defmacro preview-mark-active () "Return t if the mark is active." 'mark-active) (defun preview-import-image (image) "Convert the printable IMAGE rendition back to an image." (cond ((stringp image) (propertize image 'face 'preview-face)) ((eq (car image) 'image) image) (t (preview-create-icon-1 (nth 0 image) (nth 1 image) (nth 2 image) (if (< (length image) 4) (preview-get-heuristic-mask) (nth 3 image)))))) (defsubst preview-supports-image-type (imagetype) "Check if IMAGETYPE is supported." (image-type-available-p imagetype)) (provide 'prv-emacs) ;;; prv-emacs.el ends here auctex-11.91/prv-install.el000066400000000000000000000115171313533625700156300ustar00rootroot00000000000000;;; prv-install.el --- Complicated install-time magic for preview-latex. ;; Copyright (C) 2002, 2005, 2014 Free Software Foundation, Inc. ;; Author: David Kastrup ;; Keywords: convenience, tex, wp ;; This file is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; This file is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to ;; the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Commentary: ;; This contains package-building stuff and other install-time magic. ;; It may well contain Emacs-version-specific code, but certain ;; functions here should be *callable* from any Emacs version. ;;; Code: (defun preview-make-package () "Do anything required to make a package in this version of Emacs, other than actually copying the Lisp files. Takes arguments on the comamnd line: the package directory and any number of Lisp files to generate autoloads from. Does nothing in Emacsen that do not support a package system." (if (featurep 'xemacs) (preview-make-package-xemacs)) (setq command-line-args-left nil)) (defun preview-make-package-xemacs () "Do anything required to make a package in XEmacs, other than actually copying the Lisp files. Generates auto-autoloads, custom-loads, and package metadata file in the right locations. Takes from the command line the package directory, package name, and version (to be evaluated), followed by a file to append." (let* ((package-dir (pop command-line-args-left)) (package-name (pop command-line-args-left)) (release-version (eval (read (pop command-line-args-left)))) (author-version (eval (read (pop command-line-args-left)))) append-file (lisp-dir (expand-file-name (format "lisp/%s/" package-name) package-dir)) (metadata (expand-file-name "_pkg.el" lisp-dir)) (custom-load (expand-file-name "custom-load.el" lisp-dir)) (generated-autoload-file (expand-file-name "auto-autoloads.el" lisp-dir)) (si:message (symbol-function 'message)) make-backup-files noninteractive) ;; Delete and regenerate the custom-load file. (when (file-exists-p custom-load) (delete-file custom-load)) (when (file-exists-p (concat custom-load "c")) (delete-file (concat custom-load "c"))) (Custom-make-dependencies lisp-dir) (when (file-exists-p custom-load) (require 'cus-load) (byte-compile-file custom-load)) ; Delete and regenerate the package metadata file. ; There is no compiled form of this file. (message "Updating metadata for the directory %s..." lisp-dir) (with-temp-file metadata (insert (concat ";;;###autoload\n" "(package-provide '" package-name "\n" " :version " release-version "\n" " :author-version " "\"" author-version "\"\n" " :type 'regular)\n"))) ; Delete and regenerate the auto-autoloads file. (message "Updating autoloads for the directory %s..." lisp-dir) (when (file-exists-p generated-autoload-file) (delete-file generated-autoload-file)) (when (file-exists-p (concat generated-autoload-file "c")) (delete-file (concat generated-autoload-file "c"))) (defun message (fmt &rest args) "Ignore useless messages while generating autoloads." (cond ((and (string-equal "Generating autoloads for %s..." fmt) (file-exists-p (file-name-nondirectory (car args)))) (funcall si:message fmt (file-name-nondirectory (car args)))) ((string-equal "No autoloads found in %s" fmt)) ((string-equal "Generating autoloads for %s...done" fmt)) (t (apply si:message fmt args)))) (unwind-protect (cond ((fboundp 'update-autoloads-from-directory) (update-autoloads-from-directory lisp-dir)) ((fboundp 'update-autoload-files) (update-autoload-files (list lisp-dir) "auctex")) (t (error "Failed to generate autoloads."))) (fset 'message si:message)) (while (setq append-file (pop command-line-args-left)) (when (file-exists-p generated-autoload-file) (with-temp-buffer (insert-file-contents append-file) (append-to-file (point-min) (point-max) generated-autoload-file)))) (byte-compile-file generated-autoload-file))) ;;; prv-install.el ends here auctex-11.91/prv-xemacs.el000066400000000000000000000661671313533625700154550ustar00rootroot00000000000000;;; prv-xemacs.el --- XEmacs support for preview-latex ;; Copyright (C) 2001-2006 Free Software Foundation, Inc. ;; Author: David Kastrup ;; Keywords: convenience, tex, wp ;; This file is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; This file is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to ;; the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Commentary: ;; ;;; Code: (require 'overlay) (require 'tex-site) (require 'tex) (require 'latex) ;; Compatibility macros and functions. (eval-when-compile (defvar preview-compatibility-macros nil "List of macros only present when compiling/loading uncompiled.") (defmacro preview-defmacro (name &rest rest) (when (featurep 'xemacs) (push (if (fboundp name) (cons name (symbol-function name)) name) preview-compatibility-macros) `(eval-when-compile (defmacro ,name ,@rest)))) (push 'preview-defmacro preview-compatibility-macros)) (preview-defmacro assoc-default (key alist test) `(cdr (assoc* ,key ,alist :test #'(lambda(a b) (funcall ,test b a))))) (preview-defmacro display-mm-height () '(device-mm-height)) (preview-defmacro display-mm-width () '(device-mm-width)) (preview-defmacro display-pixel-height () '(device-pixel-height)) (preview-defmacro display-pixel-width () '(device-pixel-width)) (preview-defmacro line-beginning-position () '(point-at-bol)) (preview-defmacro line-end-position () '(point-at-eol)) ;; This is not quite the case, but unless we're playing with duplicable extents, ;; the two are equivalent in XEmacs. (preview-defmacro match-string-no-properties (&rest args) `(match-string ,@args)) (preview-defmacro face-attribute (face attr) (cond ((eq attr :height) `(round (/ (* ,(/ 720.0 25.4) (face-height ,face) (device-mm-height)) (device-pixel-height)))) ((eq attr :foreground) `(face-foreground-instance ,face)) ((eq attr :background) `(face-background-instance ,face)) (t (error 'unimplemented (format "Don't know how to fake %s" attr))))) (preview-defmacro make-temp-file (prefix dir-flag) (if (not dir-flag) (error 'unimplemented "Can only fake make-temp-file for directories")) `(let (file) (while (condition-case () (progn (setq file (make-temp-name ,prefix)) (make-directory file) nil) (file-already-exists t)) nil) file)) (preview-defmacro set-buffer-multibyte (multibyte) "Set the representation type of the current buffer. If MULTIBYTE is non-`nil', the buffer becomes multibyte. If MULTIBYTE is `nil', the buffer becomes unibyte. Because XEmacs does not implement multibyte versus unibyte buffers per se (they just have encodings which may be unibyte or multibyte), this is only implemented for the `nil' case." (if (not multibyte) `(if (fboundp 'set-buffer-file-coding-system) (set-buffer-file-coding-system 'binary)) (error 'unimplemented "`set-buffer-multibyte is only implemented for the binary case."))) (preview-defmacro next-single-char-property-change (pos prop) "Return the position of next property change for a specific property. This is like `next-single-property-change', except that if no change is found before the end of the buffer, it returns \(point-max) rather than `nil'." `(or (next-single-property-change ,pos ,prop) (point-max))) (preview-defmacro previous-single-char-property-change (pos prop) "Return the position of previous property change for a specific property. This is like `next-single-property-change', except that if no change is found before the end of the buffer, it returns \(point-min) rather than `nil'." `(or (previous-single-property-change ,pos ,prop) (point-min))) (preview-defmacro with-temp-message (message &rest body) "Display MESSAGE temporarily if non-nil while BODY is evaluated. The original message is restored to the echo area after BODY has finished. The value returned is the value of the last form in BODY. MESSAGE is written to the message log buffer if `message-log-max' is non-nil. If MESSAGE is nil, the echo area and message log buffer are unchanged. Use a MESSAGE of \"\" to temporarily clear the echo area. The message is displayed with label `progress'; see `display-message'." (let ((current-message (make-symbol "current-message")) (temp-message (make-symbol "with-temp-message"))) `(let ((,temp-message ,message) (,current-message)) (unwind-protect (progn (when ,temp-message (setq ,current-message (current-message)) (display-message 'progress ,temp-message)) ,@body) (and ,temp-message (if ,current-message (display-message 'progress ,current-message) (message nil))))))) (defun preview-mark-active () "Return t if the mark is active." (and (mark) t)) (defvar preview-transparent-border) ;; Images. (defsubst preview-supports-image-type (imagetype) "Return whether IMAGETYPE is supported by XEmacs." (memq imagetype (image-instantiator-format-list))) ;; TODO: Generalize this so we can create the fixed icons using it. ;; Argh, dired breaks :file :( ;; This is a temporary kludge to get around that until a fixed dired ;; or a fixed XEmacs is released. (defun preview-create-icon-1 (file type ascent) "Create an icon from FILE, image TYPE and ASCENT." (let ((glyph (make-glyph (vector type :file file :data (with-temp-buffer (insert-file-contents-literally file) (buffer-string)))))) (set-glyph-baseline glyph ascent) glyph)) (defun preview-create-icon (file type ascent border) "Create an icon from FILE, image TYPE, ASCENT and BORDER." (list (preview-create-icon-1 file type ascent) file type ascent border)) (defvar preview-ascent-spec) (put 'preview-filter-specs :type #'(lambda (keyword value &rest args) (if (preview-supports-image-type value) (let* (preview-ascent-spec (glyph (make-glyph `[,value ,@(preview-filter-specs-1 args)]))) (when preview-ascent-spec (set-glyph-baseline glyph preview-ascent-spec)) glyph) (throw 'preview-filter-specs nil)))) (put 'preview-filter-specs :ascent #'(lambda (keyword value &rest args) (setq preview-ascent-spec value) (preview-filter-specs-1 args))) ;; No defcustom here: does not seem to make sense. (defvar preview-tb-icon-specs '((:type xpm :file "prvtex-cap-up.xpm" :ascent 75) (:type xbm :file "prvtex24.xbm" :ascent 75))) (defvar preview-tb-icon nil) ;; Image frobbing. (defun preview-add-urgentization (fun ov &rest rest) "Cause FUN (function call form) to be called when redisplayed. FUN must be a form with OV as first argument, REST as the remainder, returning T. An alternative is to give what `preview-remove-urgentization' returns, this will reinstate the previous state." (set-extent-initial-redisplay-function ov (if (null rest) fun `(lambda (ov) (,fun ,ov ,@rest))))) (defun preview-remove-urgentization (ov) "Undo urgentization of OV by `preview-add-urgentization'. Returns the old arguments to `preview-add-urgentization' if there was any urgentization." (prog1 (list (extent-property ov 'initial-redisplay-function) ov) (set-extent-initial-redisplay-function ov nil))) (defsubst preview-icon-copy (icon) "Prepare for a later call of `preview-replace-active-icon'." icon) (defsubst preview-replace-active-icon (ov replacement) "Replace the active Icon in OV by REPLACEMENT, another icon." (set-extent-property ov 'preview-image replacement) (add-text-properties 0 1 (list 'end-glyph (car replacement)) (car (extent-property ov 'strings))) (if (eq (extent-property ov 'preview-state) 'active) (set-extent-end-glyph ov (car replacement)))) (defvar preview-button-1 'button2) (defvar preview-button-2 'button3) ;; The `x' and invisible junk is because XEmacs doesn't bother to insert ;; the extents of a zero-length string. Bah. ;; When this is fixed, we'll autodetect this case and use zero-length ;; strings where possible. (defmacro preview-make-clickable (&optional map glyph helpstring click1 click2) "Generate a clickable string or keymap. If MAP is non-nil, it specifies a keymap to add to, otherwise a new one is created. If GLYPH is given, the result is made to display it wrapped in a string. In that case, HELPSTRING is a format string with one or two %s specifiers for preview's clicks, displayed as a help-echo. CLICK1 and CLICK2 are functions to call on preview's clicks." `(let (,@(and glyph '((res (copy-sequence "x")))) (resmap ,(or map '(make-sparse-keymap)))) ,@(if click1 `((define-key resmap preview-button-1 ,click1))) ,@(if click2 `((define-key resmap preview-button-2 ,click2))) ,@(if glyph `((add-text-properties 0 1 (list 'end-glyph ,glyph 'mouse-face 'highlight 'preview-balloon-help ,(if (stringp helpstring) (format helpstring preview-button-1 preview-button-2) `(format ,helpstring preview-button-1 preview-button-2)) 'preview-keymap resmap) res) res) '(resmap)))) (defun preview-click-reroute (ov event) "If OV received a click EVENT on a glyph, reroute to special map." (let ((oldmap (extent-keymap ov))) (unwind-protect (progn (set-extent-keymap ov (and (event-over-glyph-p event) (extent-property ov 'preview-keymap))) (dispatch-event event)) (set-extent-keymap ov oldmap)))) (defun preview-reroute-map (ov) "Get rerouting keymap for OV for catching glyph clicks only." (let ((map (make-sparse-keymap)) (fun `(lambda (event) (interactive "e") (preview-click-reroute ,ov event)))) (define-key map preview-button-1 fun) (define-key map preview-button-2 fun) map)) (defun preview-balloon-reroute (ov) "Give balloon help only if over glyph of OV." (and (eq ov (event-glyph-extent (mouse-position-as-motion-event))) (extent-property ov 'preview-balloon-help))) ;; Most of the changes to this are junking the use of overlays; ;; a bit of it is different, and there's a little extra paranoia. ;; We also have to move the image from the begin to the end-glyph ;; whenever the extent is invisible because of a bug in XEmacs-21.4's ;; redisplay engine. (defun preview-toggle (ov &optional arg event) "Toggle visibility of preview overlay OV. ARG can be one of the following: t displays the overlay, nil displays the underlying text, and 'toggle toggles. If EVENT is given, it indicates the window where the event occured, either by being a mouse event or by directly being the window in question. This may be used for cursor restoration purposes." (if (not (bufferp (extent-object ov))) (error 'wrong-type-argument ov)) (let ((old-urgent (preview-remove-urgentization ov)) (preview-state (if (if (eq arg 'toggle) (not (eq (extent-property ov 'preview-state) 'active)) arg) 'active 'inactive)) (strings (extent-property ov 'strings))) (unless (eq (extent-property ov 'preview-state) 'disabled) (set-extent-property ov 'preview-state preview-state) (if (eq preview-state 'active) (progn (unless (extent-keymap ov) (set-extent-keymap ov (preview-reroute-map ov)) (set-extent-property ov 'balloon-help #'preview-balloon-reroute)) (set-extent-begin-glyph ov nil) (set-extent-end-glyph-layout ov 'text) (set-extent-end-glyph ov (get-text-property 0 'end-glyph (car strings))) (set-extent-properties ov '(invisible t isearch-open-invisible ignore isearch-invisible t face nil)) (dolist (prop '(preview-keymap mouse-face preview-balloon-help)) (set-extent-property ov prop (get-text-property 0 prop (car strings))))) (unless (cdr strings) (setcdr strings (preview-inactive-string ov))) (set-extent-end-glyph ov nil) (set-extent-begin-glyph-layout ov 'text) (set-extent-begin-glyph ov (get-text-property 0 'end-glyph (cdr strings))) (set-extent-properties ov `(face preview-face mouse-face nil invisible nil isearch-invisible nil preview-keymap ,(get-text-property 0 'preview-keymap (cdr strings)) preview-balloon-help ,(get-text-property 0 'preview-balloon-help (cdr strings))))) (if old-urgent (apply 'preview-add-urgentization old-urgent)))) (if event (preview-restore-position ov (if (windowp event) event (event-window event))))) ; Does FALLBACKS need to be implemented? Likely not. (defmacro preview-inherited-face-attribute (face attribute &optional fallbacks) "Fetch face attribute while adhering to inheritance. This searches FACE and all its ancestors for an ATTRIBUTE. FALLBACKS is unused." `(face-attribute ,face ,attribute)) (defun preview-get-colors () "Return colors from the current display. Fetches the current screen colors and makes a vector of colors as numbers in the range 0..65535. Pure borderless black-on-white will return quadruple NIL." (let ((bg (color-instance-rgb-components (preview-inherited-face-attribute 'preview-reference-face :background 'default))) (fg (color-instance-rgb-components (preview-inherited-face-attribute 'preview-reference-face :foreground 'default)))) (if (equal '(65535 65535 65535) bg) (setq bg nil)) (if (equal '(0 0 0) fg) (setq fg nil)) (vector bg fg nil nil))) (defcustom preview-use-balloon-help nil "*Is balloon help enabled in preview-latex?" :group 'preview-appearance :type 'boolean) (defcustom preview-buffer-recoding-alist (if (and (= emacs-major-version 21) (< emacs-minor-version 5)) '((utf-8-unix . raw-text-unix) (utf-8-dos . raw-text-dos) (utf-8-mac . raw-text-mac) (utf-8 . raw-text))) "Translate buffer encodings into process encodings. TeX is sometimes bad dealing with 8bit encodings and rather bad dealing with multibyte encodings. So the process encoding output might need to get temporarily reprocessed into the original byte stream before the buffer characters can be identified. XEmacs 21.4 is rather bad at preserving incomplete multibyte characters in that process. This variable makes it possible to use a reconstructable coding system in the run buffer instead. Specify an alist of coding system names here, which you can get using \(coding-system-name buffer-file-coding-system) in properly detected buffers." :group 'preview-latex :type '(repeat (cons symbol symbol))) (defun preview-buffer-recode-system (base) "This is supposed to translate unrepresentable base encodings into something that can be used safely for byte streams in the run buffer. XEmacs mule-ucs is so broken that this may be needed." (or (cdr (assq (coding-system-name base) preview-buffer-recoding-alist)) base)) (if (and (featurep 'mule) (= emacs-major-version 21) (< emacs-minor-version 5)) (defadvice coding-system-change-eol-conversion (after fallback activate) "Return CODING-SYSTEM as-is if the result is nil. XEmacs 21.4 mule-ucs fails to define utf-8 to respond properly to this function." (unless ad-return-value (setq ad-return-value (ad-get-arg 0))))) (defun preview-mode-setup () "Setup proper buffer hooks and behavior for previews." (set (make-local-variable 'desktop-save-buffer) #'desktop-buffer-preview-misc-data) (mapc #'make-local-hook '(pre-command-hook post-command-hook before-change-functions after-change-functions)) (add-hook 'pre-command-hook #'preview-mark-point nil t) (add-hook 'post-command-hook #'preview-move-point nil t) (and preview-use-balloon-help (not (and (boundp 'balloon-help-mode) balloon-help-mode)) (balloon-help-minor-mode 1)) (add-hook 'before-change-functions #'preview-handle-before-change nil t) (add-hook 'after-change-functions #'preview-handle-after-change nil t) (easy-menu-add preview-menu) (unless preview-tb-icon (setq preview-tb-icon (preview-filter-specs preview-tb-icon-specs)) (when preview-tb-icon (setq preview-tb-icon (vector (list preview-tb-icon) #'preview-at-point t "Preview on/off at point")))) ;;; [Courtesy Stephen J. Turnbull, with some modifications ;;; Message-ID: <87el9fglsj.fsf@tleepslib.sk.tsukuba.ac.jp> ;;; I could not have figured this out for the world] ;;; Hm, there really ought to be a way to get the spec that would be ;;; instantiated in a given domain (when preview-tb-icon (let ((tb (cdadar (or (specifier-spec-list default-toolbar (current-buffer)) (specifier-spec-list default-toolbar 'global))))) (unless (member preview-tb-icon tb) (set-specifier default-toolbar (append tb (list preview-tb-icon)) (current-buffer))))) (when buffer-file-name (let* ((filename (expand-file-name buffer-file-name)) format-cons) (when (string-match (concat "\\." TeX-default-extension "\\'") filename) (setq filename (substring filename 0 (match-beginning 0)))) (setq format-cons (assoc filename preview-dumped-alist)) (when (consp (cdr format-cons)) (preview-unwatch-preamble format-cons) (preview-watch-preamble (current-buffer) (cadr format-cons) format-cons))))) (defvar preview-marker (make-marker) "Marker for fake intangibility.") (defvar preview-temporary-opened nil) (defvar preview-last-location nil "Restored cursor position marker for reopened previews.") (make-variable-buffer-local 'preview-last-location) (defun preview-mark-point () "Mark position for fake intangibility." (when (eq (get-char-property (point) 'preview-state) 'active) (unless preview-last-location (setq preview-last-location (make-marker))) (set-marker preview-last-location (point)) (set-marker preview-marker (point)) (preview-move-point)) (set-marker preview-marker (point))) (defun preview-restore-position (ov window) "Tweak position after opening/closing preview. The treated overlay OV has been triggered in WINDOW. This function records the original buffer position for reopening, or restores it after reopening. Note that by using the mouse, you can open/close overlays not in the active window." (when (eq (extent-object ov) (window-buffer window)) (with-current-buffer (extent-object ov) (if (eq (extent-property ov 'preview-state) 'active) (setq preview-last-location (set-marker (or preview-last-location (make-marker)) (window-point window))) (when (and (markerp preview-last-location) (eq (extent-object ov) (marker-buffer preview-last-location)) (< (extent-start-position ov) preview-last-location) (> (extent-end-position ov) preview-last-location)) (set-window-point window preview-last-location)))))) (defun preview-move-point () "Move point out of fake-intangible areas." (preview-check-changes) (let (newlist (pt (point)) distance) (setq preview-temporary-opened (dolist (ov preview-temporary-opened newlist) (and (extent-object ov) (not (extent-detached-p ov)) (eq (extent-property ov 'preview-state) 'inactive) (if (and (eq (extent-object ov) (current-buffer)) (or (<= pt (extent-start-position ov)) (>= pt (extent-end-position ov)))) (preview-toggle ov t) (push ov newlist))))) (if (preview-auto-reveal-p preview-auto-reveal (setq distance (and (eq (marker-buffer preview-marker) (current-buffer)) (- pt (marker-position preview-marker))))) (map-extents #'preview-open-overlay nil pt pt nil nil 'preview-state 'active) (let (newpt) (while (setq newpt (map-extents #'preview-skip-overlay nil pt pt (and distance (< distance 0)) nil 'preview-state 'active)) (setq pt newpt)) (goto-char pt))))) (defun preview-skip-overlay (ovr backward) "Skip point over OVR, BACKWARD is set if backwards. Returns new position or NIL." (if backward (and (> (extent-start-position ovr) (point-min)) (1- (extent-start-position ovr))) (and (<= (extent-end-position ovr) (point-max)) (> (extent-end-position ovr) (extent-start-position ovr)) (extent-end-position ovr)))) (defun preview-open-overlay (ovr ignored) "Open the active preview OVR, IGNORED gets ignored. NIL is returned: this is for `map-extents'." (preview-toggle ovr) (push ovr preview-temporary-opened) nil) (defadvice isearch-highlight (before preview protect disable) "Make isearch open preview text that's a search hit. Also make `query-replace' open preview text about to be replaced." (map-extents #'preview-open-overlay nil (ad-get-arg 0) (ad-get-arg 1) nil nil 'preview-state 'active)) (defcustom preview-query-replace-reveal t "*Make `isearch' and `query-replace' autoreveal previews." :group 'preview-appearance :type 'boolean :require 'preview :set (lambda (symbol value) (set-default symbol value) (if value (ad-enable-advice 'isearch-highlight 'before 'preview) (ad-disable-advice 'isearch-highlight 'before 'preview)) (ad-activate 'isearch-highlight)) :initialize #'custom-initialize-reset) ;; Here is the beef: for best intuitiveness, we want to have ;; insertions be carried out as expected before iconized text ;; passages, but we want to insert *into* the overlay when not ;; iconized. A preview that has become empty can not get content ;; again: we remove it. A disabled preview needs no insert-in-front ;; handler. (defvar preview-change-list nil "List of tentatively changed overlays.") (defcustom preview-dump-threshold "^ *\\\\begin *{document}[ %]*$" "*Regexp denoting end of preamble. This is the location up to which preamble changes are considered to require redumping of a format." :group 'preview-latex :type 'string) (defvar preview-preamble-format-cons nil "Where our preamble is supposed to end.") (make-variable-buffer-local 'preview-preamble-format-cons) (defun preview-preamble-check-change (beg end) "Hook function for change hooks on preamble. Reacts to changes between BEG and END." (when (and (consp (cdr preview-preamble-format-cons)) (cddr preview-preamble-format-cons) (< beg (cddr preview-preamble-format-cons))) (preview-unwatch-preamble preview-preamble-format-cons) (preview-format-kill preview-preamble-format-cons) (setcdr preview-preamble-format-cons t))) (defun preview-watch-preamble (file command format-cons) "Set up a watch on master file FILE. FILE can be an associated buffer instead of a filename. COMMAND is the command that generated the format. FORMAT-CONS contains the format info for the main format dump handler." (let ((buffer (if (bufferp file) file (find-buffer-visiting file))) ov) (setq preview-preamble-format-cons nil) (setcdr format-cons (cons command (when buffer (with-current-buffer buffer (save-excursion (save-restriction (widen) (goto-char (point-min)) (unless (re-search-forward preview-dump-threshold nil t) (error "Can't find preamble of `%s'" file)) (setq preview-preamble-format-cons format-cons) (point))))))))) (defun preview-unwatch-preamble (format-cons) "Stop watching a format on FORMAT-CONS. The watch has been set up by `preview-watch-preamble'." (when (consp (cdr format-cons)) (setcdr (cdr format-cons) nil))) (defun preview-register-change (ov map-arg) "Register not yet changed OV for verification. This stores the old contents of the overlay in the `preview-prechange' property and puts the overlay into `preview-change-list' where `preview-check-changes' will find it at some later point of time. MAP-ARG is ignored; it is usually generated by `map-extents'." (unless (extent-property ov 'preview-prechange) (if (eq (extent-property ov 'preview-state) 'disabled) (set-extent-property ov 'preview-prechange t) (set-extent-property ov 'preview-prechange (save-restriction (widen) (buffer-substring-no-properties (extent-start-position ov) (extent-end-position ov))))) (push ov preview-change-list)) nil) (defun preview-check-changes () "Check whether the contents under the overlay have changed. Disable it if that is the case. Ignores text properties." (dolist (ov preview-change-list) (condition-case nil (with-current-buffer (extent-object ov) (let ((text (save-restriction (widen) (buffer-substring-no-properties (extent-start-position ov) (extent-end-position ov))))) (if (or (zerop (length text)) (extent-detached-p ov)) (preview-delete ov) (unless (or (eq (extent-property ov 'preview-state) 'disabled) (preview-relaxed-string= text (extent-property ov 'preview-prechange))) (preview-disable ov))))) (error nil)) (set-extent-property ov 'preview-prechange nil)) (setq preview-change-list nil)) (defun preview-handle-before-change (beg end) "Hook function for `before-change-functions'. Receives BEG and END, the affected region." (map-extents #'preview-register-change nil beg end nil nil 'preview-state) (preview-preamble-check-change beg end)) (defun preview-handle-after-change (beg end length) "Hook function for `after-change-functions'. Receives BEG and END, the affected region, and LENGTH of an insertion." (when (and preview-change-list (zerop length) (not (eq this-command 'undo))) (map-extents (lambda (ov maparg) (set-extent-endpoints ov maparg (extent-end-position ov))) nil beg beg end 'start-in-region 'preview-state 'active) (map-extents (lambda (ov maparg) (set-extent-endpoints ov (extent-start-position ov) maparg)) nil end end beg 'end-in-region 'preview-state 'active))) (defun preview-import-image (image) "Convert the printable IMAGE rendition back to an image." (cond ((stringp image) (setq image (copy-sequence image)) (add-text-properties 0 (length image) '(face preview-face) image) image) ((eq (car image) 'image) (let ((plist (cdr image))) (preview-create-icon-1 (plist-get plist :file) (plist-get plist :type) (plist-get plist :ascent)))) (t (preview-create-icon-1 (nth 0 image) (nth 1 image) (nth 2 image))))) (if (eq system-type 'windows-nt) (defadvice preview-ps-quote-filename (around path-sep-to-slash) "Make path separator to slash so that the function will not be confused." (let ((directory-sep-char ?/)) ad-do-it))) (provide 'prv-xemacs) ;;; Local variables: ;;; eval: (put 'preview-defmacro 'lisp-indent-function 'defun) ;;; end: ;;; prv-xemacs.el ends here auctex-11.91/style/000077500000000000000000000000001313533625700141665ustar00rootroot00000000000000auctex-11.91/style/.nosearch000066400000000000000000000001071313533625700157670ustar00rootroot00000000000000;; AUCTeX style/ and auto/ directories should not appear in load path. auctex-11.91/style/Alegreya.el000066400000000000000000000060171313533625700162450ustar00rootroot00000000000000;;; Alegreya.el --- AUCTeX style for `Alegreya.sty' (v2015/10/22) ;; Copyright (C) 2015 Free Software Foundation, Inc. ;; Author: Arash Esbati ;; Maintainer: auctex-devel@gnu.org ;; Created: 2015-09-12 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `Alegreya.sty' (v2015/10/22). ;; `Alegreya.sty' is part of TeXLive. ;;; Code: (TeX-add-style-hook "Alegreya" (lambda () ;; Run style hook for packages loaded by Alegreya (TeX-run-style-hooks "textcomp") ;; Load `fontaxes' or `fontspec' dep. on `type1' option: (if (or (LaTeX-provided-package-options-member "Alegreya" "type1") (LaTeX-provided-package-options-member "Alegreya" "type1=true")) (TeX-run-style-hooks "fontaxes") (TeX-run-style-hooks "fontspec")) (TeX-add-symbols ;; Should be used in preamble only '("useosf") ;; Text commands '("Alegreya" -1) '("AlegreyaBlack" -1) '("AlegreyaLF" -1) '("AlegreyaOsF" -1) '("AlegreyaTLF" -1) '("AlegreyaTOsF" -1) '("textsu" t) ; superior figures '("sufigures" -1) ; '("textin" t) ; inferior figures '("infigures" -1)) ;; Fontification (when (and (featurep 'font-latex) (eq TeX-install-font-lock 'font-latex-setup)) (font-latex-add-keywords '(("textsu" "{") ("textin" "{")) 'type-command) (font-latex-add-keywords '(("Alegreya" "") ("AlegreyaBlack" "") ("AlegreyaLF" "") ("AlegreyaOsF" "") ("AlegreyaTLF" "") ("AlegreyaTOsF" "") ("sufigures" "") ("infigures" "")) 'type-declaration))) LaTeX-dialect) (defvar LaTeX-Alegreya-package-options-list '(("lining" ("true" "false")) ("lf" ("true" "false")) ("oldstyle" ("true" "false")) ("osf" ("true" "false")) ("tabular" ("true" "false")) ("tf" ("true" "false")) ("proportional" ("true" "false")) ("pf" ("true" "false")) ("black" ("true" "false")) ("type1" ("true" "false")) ("scaled") ("scale")) "Package options for the Alegreya package.") (defun LaTeX-Alegreya-package-options () "Prompt for package options for the Alegreya package." (TeX-read-key-val t LaTeX-Alegreya-package-options-list)) ;;; Alegreya.el ends here auctex-11.91/style/AlegreyaSans.el000066400000000000000000000072311313533625700170710ustar00rootroot00000000000000;;; AlegreyaSans.el --- AUCTeX style for `AlegreyaSans.sty' (v2015/10/22) ;; Copyright (C) 2015 Free Software Foundation, Inc. ;; Author: Arash Esbati ;; Maintainer: auctex-devel@gnu.org ;; Created: 2015-09-12 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `AlegreyaSans.sty' (v2015/10/22). ;; `AlegreyaSans.sty' is part of TeXLive. ;;; Code: (TeX-add-style-hook "AlegreyaSans" (lambda () ;; Run style hook for packages loaded by AlegreyaSans (TeX-run-style-hooks "textcomp") ;; Load `fontaxes' or `fontspec' dep. on `type1' option: (if (or (LaTeX-provided-package-options-member "AlegreyaSans" "type1") (LaTeX-provided-package-options-member "AlegreyaSans" "type1=true")) (TeX-run-style-hooks "fontaxes") (TeX-run-style-hooks "fontspec")) (TeX-add-symbols ;; Should be used in preamble only '("useosf") ;; Text commands '("AlegreyaSans" -1) '("AlegreyaSansLF" -1) '("AlegreyaSansOsF" -1) '("AlegreyaSansTLF" -1) '("AlegreyaSansTOsF" -1) '("AlegreyaSansThin" -1) '("AlegreyaSansLight" -1) '("AlegreyaSansMedium" -1) '("AlegreyaSansExtraBold" -1) '("AlegreyaSansBlack" -1) '("textsu" t) ; superior figures '("sufigures" -1) ; '("textin" t) ; inferior figures '("infigures" -1)) ;; Fontification (when (and (featurep 'font-latex) (eq TeX-install-font-lock 'font-latex-setup)) (font-latex-add-keywords '(("textsu" "{") ("textin" "{")) 'type-command) (font-latex-add-keywords '(("AlegreyaSans" "") ("AlegreyaSansLF" "") ("AlegreyaSansOsF" "") ("AlegreyaSansTLF" "") ("AlegreyaSansTOsF" "") ("AlegreyaSansLight" "") ("AlegreyaSansMedium" "") ("AlegreyaSansExtraBold" "") ("AlegreyaSansBlack" "") ("sufigures" "") ("infigures" "")) 'type-declaration))) LaTeX-dialect) (defvar LaTeX-AlegreyaSans-package-options-list '(("lining" ("true" "false")) ("lf" ("true" "false")) ("oldstyle" ("true" "false")) ("osf" ("true" "false")) ("tabular" ("true" "false")) ("tf" ("true" "false")) ("proportional" ("true" "false")) ("pf" ("true" "false")) ("black" ("true" "false")) ("extrabold" ("true" "false")) ("thin" ("true" "false")) ("light" ("true" "false")) ("medium" ("true" "false")) ("type1" ("true" "false")) ("sfdefault" ("true" "false")) ("scaled") ("scale")) "Package options for the AlegreyaSans package.") (defun LaTeX-AlegreyaSans-package-options () "Prompt for package options for the AlegreyaSans package." (TeX-read-key-val t LaTeX-AlegreyaSans-package-options-list)) ;;; AlegreyaSans.el ends here auctex-11.91/style/AnonymousPro.el000066400000000000000000000042121313533625700171600ustar00rootroot00000000000000;;; AnonymousPro.el --- AUCTeX style for `AnonymousPro.sty' (v2.1) ;; Copyright (C) 2014 Free Software Foundation, Inc. ;; Author: Arash Esbati ;; Maintainer: auctex-devel@gnu.org ;; Created: 2014-10-30 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `AnonymousPro.sty' (v2.1) from ;; 2014/03/22. `AnonymousPro.sty' is part of TeXLive. ;;; Code: (TeX-add-style-hook "AnonymousPro" (lambda () ;; Run style hook for textcomp (TeX-run-style-hooks "textcomp") ;; New symbols (TeX-add-symbols "ANPapplelogo" "ANPappleopen" "ANPapproxequal" "ANPback" "ANPblackdiamond" "ANPcheckmark" "ANPcopy" "ANPellipsis" "ANPendtab" "ANPerasetotheright" "ANPgreaterequal" "ANPHbar" "ANPhbar" "ANPinfinity" "ANPinsert" "ANPintegral" "ANPlessequal" "ANPlozenge" "ANPnotequal" "ANPoptionkey" "ANPpartialdiff" "ANPPi" "ANPpi" "ANPproduct" "ANPshift" "ANPshiftlock" "ANPSigma" "ANPsigma" "ANPsigmaone" "ANPsummation" "ANPtab" "ANPReturnSign" "ANPShoulderedOpenBox" "ANPUpArrowHead" "ANPInsertSign" "ANPUpArrowHeadBars" "ANPHelm" "ANPOpenBox" "ANPDelta" "ANPverticaltab" "ANPNumeroSign")) LaTeX-dialect) (defvar LaTeX-AnonymousPro-package-options '("ttdefault" "scale") "Package options for the AnonymousPro package.") ;;; AnonymousPro.el ends here auctex-11.91/style/CJK.el000066400000000000000000000053221313533625700151210ustar00rootroot00000000000000;;; CJK.el --- AUCTeX style for the CJK package. ;; Copyright (C) 2009, 2014 Free Software Foundation, Inc. ;; Author: Ralf Angeli ;; Maintainer: auctex-devel@gnu.org ;; Created: 2009-01-04 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for the CJK package, version 4.8.0 ;; (22-May-2008). ;;; Code: (defvar LaTeX-CJK-package-options '("lowercase" "global" "local" "active" "encapsulated") "Package options for the CJK package.") (defvar LaTeX-CJK-enc-list '("Bg5" "Bg5+" "HK" "GB" "GBt" "GBK" "JIS" "JIS2" "SJIS" "KS" "UTF8" "CNS1" "CNS2" "CNS3" "CNS4" "CNS5" "CNS6" "CNS7" "CEFX" "CEFY") "List of encodings supported by the CJK package.") (defun LaTeX-env-CJK (env) "Prompt for the arguments of ENV and insert it. The function can be used for CJK and CJK* environments." (LaTeX-insert-environment env (concat (let ((font-enc (TeX-read-string "(Optional) Font encoding: "))) (unless (zerop (length font-enc)) (format "[%s]" font-enc))) (format "{%s}" (completing-read "Encoding: " (mapcar 'list LaTeX-CJK-enc-list))) (format "{%s}" (TeX-read-string "Font family: "))))) (TeX-add-style-hook "CJK" (lambda () ;; New symbols (TeX-add-symbols '("CJKencfamily" ["Font encoding"] "Encoding" "Font family") '("CJKchar" ["Encoding"] "First byte" "Second byte") '("CJKcaption" 1) '("CJKfamily" 1) '("CJKfontenc" "Encoding" "Font encoding") '("CJKenc" 1) '("Unicode" "First byte" "Second byte") '("CJKsymbols" 2) '("CJKsymbol" 1) "CJKbold" "CJKnormal" "CJKboldshift" "CJKCJKchar" "CJKhangulchar" "CJKlatinchar" "CJKhwkatakana" "CJKnohwkatakana" "CJKglue" "CJKtolerance" "CJKtilde" "nbs" "standardtilde" "CJKspace" "CJKnospace" "CJKindent" '("CJKaddEncHook" 2) "CJKkern" "CJKverbatim") ;; New environments (LaTeX-add-environments '("CJK" LaTeX-env-CJK) '("CJK*" LaTeX-env-CJK))) LaTeX-dialect) ;;; CJK.el ends here auctex-11.91/style/CJKutf8.el000066400000000000000000000022211313533625700157230ustar00rootroot00000000000000;;; CJKutf8.el --- AUCTeX style for the CJKutf8 package. ;; Copyright (C) 2009 Free Software Foundation, Inc. ;; Author: Ralf Angeli ;; Maintainer: auctex-devel@gnu.org ;; Created: 2009-01-04 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for the CJKutf8 package. ;;; Code: (TeX-add-style-hook "CJKutf8" (lambda () (TeX-run-style-hooks "CJK")) LaTeX-dialect) ;;; CJKutf8.el ends here auctex-11.91/style/FiraMono.el000066400000000000000000000040141313533625700162210ustar00rootroot00000000000000;;; FiraMono.el --- AUCTeX style for `FiraMono.sty' (v2016/02/13) ;; Copyright (C) 2016 Free Software Foundation, Inc. ;; Author: Arash Esbati ;; Maintainer: auctex-devel@gnu.org ;; Created: 2016-11-11 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `FiraMono.sty' (v2016/02/13). ;; `FiraMono.sty' is part of TeXLive. ;;; Code: (TeX-add-style-hook "FiraMono" (lambda () ;; `textcomp' is always loaded: (TeX-run-style-hooks "textcomp") ;; If package option `type1' is given, load `fontaxes': (when (LaTeX-provided-package-options-member "FiraMono" "type1") (TeX-run-style-hooks "fontaxes")) ;; Macros: (TeX-add-symbols '("sufigures" -1) '("firamonooldstyle" -1) '("firamonolining" -1) '("firamonomedium" -1)) ;; Fontification (when (and (featurep 'font-latex) (eq TeX-install-font-lock 'font-latex-setup)) (font-latex-add-keywords '(("sufigures" "") ("firamonooldstyle" "") ("firamonolining" "") ("firamonomedium" "")) 'type-declaration))) LaTeX-dialect) (defvar LaTeX-FiraMono-package-options '("scaled" "scale" "type1" "lining" "lf" "oldstyle" "osf" "nomap" "medium" "mb") "Package options for the FiraMono package.") ;;; FiraMono.el ends here auctex-11.91/style/FiraSans.el000066400000000000000000000053611313533625700162230ustar00rootroot00000000000000;;; FiraSans.el --- AUCTeX style for `FiraSans.sty' (v2016/11/20) ;; Copyright (C) 2016 Free Software Foundation, Inc. ;; Author: Arash Esbati ;; Maintainer: auctex-devel@gnu.org ;; Created: 2016-11-11 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `FiraSans.sty' (v2016/11/20). ;; `FiraSans.sty' is part of TeXLive. ;;; Code: (TeX-add-style-hook "FiraSans" (lambda () ;; `textcomp' is always loaded: (TeX-run-style-hooks "textcomp") ;; If package option `type1' is given, load `fontaxes': (when (LaTeX-provided-package-options-member "FiraSans" "type1") (TeX-run-style-hooks "fontaxes")) ;; Macros: (TeX-add-symbols '("sufigures" -1) '("firaoldstyle" -1) '("firalining" -1) '("firatabular" -1) '("firaproportional" -1) '("firathin" -1) '("firalight" -1) '("firaextralight" -1) '("firaultralight" -1) '("firamedium" -1) '("firabook" -1) '("firasemibold" -1) '("firaextrabold" -1) '("firaheavy" -1)) ;; Fontification (when (and (featurep 'font-latex) (eq TeX-install-font-lock 'font-latex-setup)) (font-latex-add-keywords '(("sufigures" "") ("firaoldstyle" "") ("firalining" "") ("firatabular" "") ("firaproportional" "") ("firathin" "") ("firalight" "") ("firaextralight" "") ("firaultralight" "") ("firamedium" "") ("firabook" "") ("firasemibold" "") ("firaextrabold" "") ("firaheavy" "")) 'type-declaration))) LaTeX-dialect) (defvar LaTeX-FiraSans-package-options '("scaled" "scale" "type1" "lining" "lf" "oldstyle" "osf" "tabular" "t" "proportional" "p" "book" "medium" "mb" "semibold" "sb" "light" "l" "extralight" "ultralight" "thin" "extrabold" "heavy" "default" "sfdefault") "Package options for the FiraSans package.") ;;; FiraSans.el ends here auctex-11.91/style/MinionPro.el000066400000000000000000000043321313533625700164240ustar00rootroot00000000000000;;; MinionPro.el -- AUCTeX style for MinionPro.sty ;; Copyright (C) 2005, 2014 Free Software Foundation, Inc. ;; Author: Mark Trettin ;; Maintainer: auctex-devel@gnu.org ;; Created: 2005-11-26 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `MinionPro.sty' (v2.3) from 2012/08/03. ;; The latest version of MinionPro is available as part of FontPro ;; bundle from . ;;; Code: (TeX-add-style-hook "MinionPro" (lambda () ;; New symbols (TeX-add-symbols '("smallfrac" "Numerator" "Denominator") '("slantfrac" "Numerator" "Denominator")) ;; Run style hook for amsmath which is loaded via MnSymbol (TeX-run-style-hooks "amsmath" "fontaxes" "textcomp") ;; Fontification (when (and (featurep 'font-latex) (eq TeX-install-font-lock 'font-latex-setup)) (font-latex-add-keywords '(("smallfrac" "{{") ("slantfrac" "{{")) 'textual))) LaTeX-dialect) (defvar LaTeX-MinionPro-package-options '("smallfamily" "medfamily" "fullfamily" "noopticals" "opticals" "slides" "textosf" "mathosf" "osf" "textlf" "mathlf" "lf" "mathtabular" "mnsy" "cmsy" "swash" "abx" "amsbb" "fourierbb" "lucidabb" "mixedgreek" "italicgreek" "frenchmath" "minionint" "footnotefigures" ;; Additional options in v2.1 "onlytext" "onlymath" "loosequotes" "openg" "normalsize" "nonormalsize" ;; Additional option in v2.2 "scale") "Package options for the MinionPro package.") ;;; MinionPro.el ends here auctex-11.91/style/MyriadPro.el000066400000000000000000000055501313533625700164230ustar00rootroot00000000000000;;; MyriadPro.el --- AUCTeX style for `MyriadPro.sty' (v0.5) ;; Copyright (C) 2014 Free Software Foundation, Inc. ;; Author: Arash Esbati ;; Maintainer: auctex-devel@gnu.org ;; Created: 2014-10-21 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `MyriadPro.sty' (v0.5) from 2013/04/20. ;; The latest version of MyriadPro is available as part of FontPro ;; bundle from . `MyriadPro.sty' is ;; not part of TeXLive. ;;; Code: (TeX-add-style-hook "MyriadPro" (lambda () ;; Run style hook for various packages loaded by MyriadPro (TeX-run-style-hooks "textcomp" "amsmath" "fontaxes" "mdsymbol") ;; New symbols (TeX-add-symbols '("smallfrac" "Numerator" "Denominator") '("slantfrac" "Numerator" "Denominator") '("boldsymbol" "Symbol")) ;; More control over spacing in `\slantfrac': (LaTeX-add-lengths "MdSlantfracSpacingBeforeSlash" "MdSlantfracSpacingAfterSlash") ;; `\mathversion' is available with sansmath option (when (LaTeX-provided-package-options-member "MyriadPro" "sansmath") (TeX-add-symbols '("mathversion" (TeX-arg-eval completing-read "Math version: " '(("sans") ("sansbold") ("sanstabular") ("sansboldtabular")))))) ;; Fontification (when (and (featurep 'font-latex) (eq TeX-install-font-lock 'font-latex-setup)) (font-latex-add-keywords '(("smallfrac" "{{") ("slantfrac" "{{")) 'textual) (font-latex-add-keywords '(("mathversion" "{")) 'variable))) LaTeX-dialect) (defvar LaTeX-MyriadPro-package-options '(;; Font selection "smallfamily" "medfamily" "onlytext" "onlymath" "math" "sansmath" ;; Figure selection "textosf" "mathosf" "osf" "textlf" "mathlf" "lf" "mathtabular" ;; Calligraphic fonts "cmsy" "swash" "abx" ;; Blackboard bold letters "amsbb" "fourierbb" "lucidabb" ;; Greek letters "mixedgreek" "italicgreek" "frenchmath" ;; Miscellaneous options "scale" "loosequotes" "footnotefigures" ;; Additional mathversions "sansmath") "Package options for the MyriadPro package.") ;;; MyriadPro.el ends here auctex-11.91/style/XCharter.el000066400000000000000000000046241313533625700162360ustar00rootroot00000000000000;;; XCharter.el --- AUCTeX style for `XCharter.sty' (v1.05) ;; Copyright (C) 2014 Free Software Foundation, Inc. ;; Author: Arash Esbati ;; Maintainer: auctex-devel@gnu.org ;; Created: 2014-10-30 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `XCharter.sty' (v1.05) from 2014/07/03. ;; `XCharter.sty' is part of TeXLive. ;;; Code: (TeX-add-style-hook "XCharter" (lambda () ;; Run style hook for various packages loaded by XCharter (TeX-run-style-hooks "textcomp" "fontaxes") ;; New symbols (TeX-add-symbols ;; Only preamble commands '("useosf" 0) '("useosfI" 0) ;; Text commands '("textsu" t) ; superior figures '("sustyle" -1) ; '("textlf" t) ; lining figures '("lfstyle" -1) ; '("textosf" t) ; oldstyle figures '("textosfI" t) ; oldstyle figures alternate '("osfstyle" -1)) ; whatever oldstyle option is in force ;; Fontification (when (and (featurep 'font-latex) (eq TeX-install-font-lock 'font-latex-setup)) (font-latex-add-keywords '(("textsu" "{") ("textlf" "{") ("textosf" "{") ("textosfI" "{")) 'type-command) (font-latex-add-keywords '(("sustyle" "") ("lfstyle" "") ("osfstyle" "")) 'type-declaration))) LaTeX-dialect) (defvar LaTeX-XCharter-package-options '("lining" "lf" "oldstyle" "osf" "oldstyleI" "osfI" "scaled" "sups") "Package options for the XCharter package.") ;;; XCharter.el ends here auctex-11.91/style/acro.el000066400000000000000000000242461313533625700154440ustar00rootroot00000000000000;;; acro.el --- AUCTeX style for `acro.sty' version 1.2a. ;; Copyright (C) 2013-2015 Free Software Foundation, Inc. ;; Maintainer: auctex-devel@gnu.org ;; Author: Mosè Giordano ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `acro.sty' version 1.2a. ;;; Code: (require 'tex) ;Indispensable when compiling the call to `TeX-auto-add-type'. (defvar LaTeX-acro-package-options-list '(;; General Options ("version" ("0" "1")) ("single" ("true" "false")) ("hyperref" ("true" "false")) ("record-pages" ("true" "false")) ("only-used" ("true" "false")) ("mark-as-used" ("first" "any")) ("macros" ("true" "false")) ("xspace" ("true" "false")) ("strict" ("true" "false")) ("sort" ("true" "false")) ("cite" ("all" "first" "none")) ("cite-cmd") ("cite-space") ("index-cmd") ("accsupp" ("true" "false")) ("uc-cmd") ;; Options Regarding Acronyms ("short-format") ("long-format") ("first-long-format") ("list-short-format") ("list-long-format") ("extra-format") ("first-style" ("default" "plain" "empty" "square" "short" "reversed" "plain-reversed" "footnote" "sidenote")) ("extra-style" ("default" "plain" "comma" "paren" "bracket")) ("plural-ending") ;; Options Regarding the List ("page-ref" ("none" "plain" "comma" "paren")) ("page-name") ("pages-name") ("page-ranges" ("true" "false")) ("next-page") ("next-pages") ("list-type" ("table" "itemize" "description")) ("list-style" ("list" "tabular" "longtable" "extra-tabular" "extra-longtable" "extra-tabular-rev" "extra-longtable-rev")) ("list-header" ("chapter" "chapter*" "section" "section*" "subsection" "subsection*" "addchap" "addsec")) ("list-name") ("list-table-width") ("list-caps" ("true" "false"))) "Package options for the acro package.") (TeX-auto-add-type "acro-acronym" "LaTeX") ;; Self Parsing -- see (info "(auctex)Hacking the Parser"). (defvar LaTeX-acro-regexp (concat "\\\\DeclareAcronym" "{\\([^\n\r%\\{}]+\\)}") "Matches `acro' acronym definitions.") (defvar LaTeX-auto-acro-acronym nil "Temporary for parsing `acro' acronym definitions.") (defun LaTeX-acro-prepare () "Clear `LaTex-auto-acro-acronym' before use." (setq LaTeX-auto-acro-acronym nil)) (defun LaTeX-acro-cleanup () "Move acronyms from `LaTeX-auto-acro-acronym' to `LaTeX-acro-list' and to `TeX-auto-symbol' if option `macros' is set to `true'." (mapc (lambda (acronym) (add-to-list 'LaTeX-acro-acronym-list (list acronym))) LaTeX-auto-acro-acronym) (when (or (LaTeX-provided-package-options-member "acro" "macros") (LaTeX-provided-package-options-member "acro" "macros=true")) (add-to-list 'TeX-auto-symbol LaTeX-auto-acro-acronym))) (add-hook 'TeX-auto-prepare-hook #'LaTeX-acro-prepare t) (add-hook 'TeX-auto-cleanup-hook #'LaTeX-acro-cleanup t) (add-hook 'TeX-update-style-hook #'TeX-auto-parse t) (defvar LaTeX-acro-acronym-history nil "History of acronyms in acro.") (defun LaTeX-arg-acro-acronym (optional &optional prompt definition) "Prompt for an acronym completing with known acronyms. If OPTIONAL is non-nil, insert the resulting value as an optional argument, otherwise as a mandatory one. Use PROMPT as the prompt string. If DEFINITION is non-nil, add the chosen acronym to the list of defined acronyms." (let ((acronym (completing-read (TeX-argument-prompt optional prompt "Acronym") (LaTeX-acro-acronym-list) nil nil nil 'LaTeX-acro-acronym-history))) (if (and definition (not (string-equal "" acronym))) (LaTeX-add-acro-acronyms acronym)) (TeX-argument-insert acronym optional optional))) (defun LaTeX-arg-define-acro-acronym (optional &optional prompt) "Prompt for an acronym completing with known acronyms. If OPTIONAL is non-nil, insert the resulting value as an optional argument, otherwise as a mandatory one. Use PROMPT as the prompt string." (LaTeX-arg-acro-acronym optional prompt t)) (defvar LaTeX-acro-declareacronym-keys '(("short") ("long") ("short-plural") ("long-plural") ("long-plural-form") ("short-indefinite") ("long-indefinite") ("long-pre") ("long-post") ("alt") ("alt-indefinite") ("extra") ("sort") ("class") ("cite") ("short-format") ("long-format") ("first-long-format") ("pdfstring") ("accsupp") ("index-sort") ("index") ("index-cmd")) "List of keys accepted by `\DeclareAcronym' macro of `acro' package in its second mandatory argument.") (defvar LaTeX-acro-printacronyms-keys '(("include-classes") ("exclude-classes") ("name") ("header")) "List of keys accepted by `\printacronyms' macro of `acro' package in its optional argument.") (defun LaTeX-arg-acro-key-val (optional prompt key-val-alist) "Prompt for keys and values in KEY-VAL-ALIST. key binding in minibuffer is removed temporarily. Insert the given value as a TeX macro argument. If OPTIONAL is non-nil, insert it as an optional argument. Use PROMPT as the prompt string. KEY-VAL-ALIST is an alist. The car of each element should be a string representing a key and the optional cdr should be a list with strings to be used as values for the key." ;; Remove key binding from map used in `multi-prompt-key-value' (called ;; by `TeX-arg-key-val') with `require-match' set to `nil'. (let ((crm-local-completion-map (remove (assoc 32 crm-local-completion-map) crm-local-completion-map))) (TeX-arg-key-val optional key-val-alist prompt))) (TeX-add-style-hook "acro" (lambda () (TeX-auto-add-regexp `(,LaTeX-acro-regexp 1 LaTeX-auto-acro-acronym)) (TeX-add-symbols ;; Creating New Acronyms '("DeclareAcronym" LaTeX-arg-define-acro-acronym (LaTeX-arg-acro-key-val "Definition of acronym (k=v)" LaTeX-acro-declareacronym-keys)) ;; Using the Acronyms '("ac" LaTeX-arg-acro-acronym) '("ac*" LaTeX-arg-acro-acronym) '("Ac" LaTeX-arg-acro-acronym) '("Ac*" LaTeX-arg-acro-acronym) '("acs" LaTeX-arg-acro-acronym) '("acs*" LaTeX-arg-acro-acronym) '("acl" LaTeX-arg-acro-acronym) '("acl*" LaTeX-arg-acro-acronym) '("Acl" LaTeX-arg-acro-acronym) '("Acl*" LaTeX-arg-acro-acronym) '("aca" LaTeX-arg-acro-acronym) '("aca*" LaTeX-arg-acro-acronym) '("acf" LaTeX-arg-acro-acronym) '("acf*" LaTeX-arg-acro-acronym) '("Acf" LaTeX-arg-acro-acronym) '("Acf*" LaTeX-arg-acro-acronym) '("acp" LaTeX-arg-acro-acronym) '("acp*" LaTeX-arg-acro-acronym) '("Acp" LaTeX-arg-acro-acronym) '("Acp*" LaTeX-arg-acro-acronym) '("acsp" LaTeX-arg-acro-acronym) '("acsp*" LaTeX-arg-acro-acronym) '("aclp" LaTeX-arg-acro-acronym) '("aclp*" LaTeX-arg-acro-acronym) '("Aclp" LaTeX-arg-acro-acronym) '("Aclp*" LaTeX-arg-acro-acronym) '("acap" LaTeX-arg-acro-acronym) '("acap*" LaTeX-arg-acro-acronym) '("acfp" LaTeX-arg-acro-acronym) '("acfp*" LaTeX-arg-acro-acronym) '("Acfp" LaTeX-arg-acro-acronym) '("Acfp*" LaTeX-arg-acro-acronym) ;; Indefinite Forms '("iac" LaTeX-arg-acro-acronym) '("iac*" LaTeX-arg-acro-acronym) '("Iac" LaTeX-arg-acro-acronym) '("Iac*" LaTeX-arg-acro-acronym) '("iacs" LaTeX-arg-acro-acronym) '("iacs*" LaTeX-arg-acro-acronym) '("Iacs" LaTeX-arg-acro-acronym) '("Iacs*" LaTeX-arg-acro-acronym) '("iaca" LaTeX-arg-acro-acronym) '("iaca*" LaTeX-arg-acro-acronym) '("Iaca" LaTeX-arg-acro-acronym) '("Iaca*" LaTeX-arg-acro-acronym) '("iacl" LaTeX-arg-acro-acronym) '("iacl*" LaTeX-arg-acro-acronym) '("Iacl" LaTeX-arg-acro-acronym) '("Iacl*" LaTeX-arg-acro-acronym) '("iacf" LaTeX-arg-acro-acronym) '("iacf*" LaTeX-arg-acro-acronym) '("Iacf" LaTeX-arg-acro-acronym) '("Iacf*" LaTeX-arg-acro-acronym) '("iacflike" LaTeX-arg-acro-acronym) '("iacflike*" LaTeX-arg-acro-acronym) '("Iacflike" LaTeX-arg-acro-acronym) '("Iacflike*" LaTeX-arg-acro-acronym) ;; Simulating the First Appearance '("acflike" LaTeX-arg-acro-acronym) '("acflike*" LaTeX-arg-acro-acronym) '("acfplike" LaTeX-arg-acro-acronym) '("acfplike*" LaTeX-arg-acro-acronym) ;; Reset or Mark as Used '("acreset" "List of acronyms") '("acresetall" 0) '("acuse" "List of acronyms") '("acuseall" 0) ;; PDF bookmarks '("acpdfstring" LaTeX-arg-acro-acronym) '("acpdfstringplural" LaTeX-arg-acro-acronym) ;; Printing the List '("printacronyms" [LaTeX-arg-acro-key-val nil LaTeX-acro-printacronyms-keys]) ;; Customization '("acsetup" (TeX-arg-key-val LaTeX-acro-package-options-list))) (TeX-run-style-hooks "l3sort" "xspace" "xtemplate" "l3keys2e" "xparse" "expl3") ;; Fontification (when (and (featurep 'font-latex) (eq TeX-install-font-lock 'font-latex-setup)) (font-latex-add-keywords '(("DeclareAcronym" "{{") ("ac" "*{") ("Ac" "*{") ("acs" "*{") ("acl" "*{") ("Acl" "*{") ("aca" "*{") ("acf" "*{") ("Acf" "*{") ("acp" "*{") ("Acp" "*{") ("acsp" "*{") ("aclp" "*{") ("Aclp" "*{") ("acap" "*{") ("acfp" "*{") ("Acfp" "*{") ("acflike" "*{") ("acfplike" "*{") ("iac" "*{") ("Iac" "*{") ("iacs" "*{") ("Iacs" "*{") ("iaca" "*{") ("Iaca" "*{") ("iacl" "*{") ("Iacl" "*{") ("iacf" "*{") ("Iacf" "*{") ("iacflike" "*{") ("Iacflike" "*{") ("acuse" "{")) 'function))) LaTeX-dialect) (defun LaTeX-acro-package-options () "Prompt for package options for the acro package." (TeX-read-key-val t LaTeX-acro-package-options-list)) ;;; acro.el ends here auctex-11.91/style/acronym.el000066400000000000000000000145111313533625700161620ustar00rootroot00000000000000;;; acronym.el --- AUCTeX style for `acronym.sty' version 1.38. ;; Copyright (C) 2013-2015 Free Software Foundation, Inc. ;; Maintainer: auctex-devel@gnu.org ;; Author: Mosè Giordano ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `acronym.sty' version 1.38. ;;; Code: (require 'tex) ;Indispensable when compiling the call to `TeX-auto-add-type'. (TeX-auto-add-type "acronym" "LaTeX") ;; Self Parsing -- see (info "(auctex)Hacking the Parser"). (defvar LaTeX-acronym-regexp (concat "\\\\\\(?:acro\\|newacro\\|acrodef\\)" "{\\([^\n\r%\\{}]+\\)}") "Matches acronyms by `acronym' package.") (defvar LaTeX-auto-acronym nil "Temporary for parsing acronym by `acronym' package.") (defun LaTeX-acronym-prepare () "Clear `LaTex-auto-acronym' before use." (setq LaTeX-auto-acronym nil)) (defun LaTeX-acronym-cleanup () "Move acronyms from `LaTeX-auto-acronym' to `LaTeX-acronym-list'." (mapc (lambda (acronym) (add-to-list 'LaTeX-acronym-list (list acronym))) LaTeX-auto-acronym)) (add-hook 'TeX-auto-prepare-hook #'LaTeX-acronym-prepare t) (add-hook 'TeX-auto-cleanup-hook #'LaTeX-acronym-cleanup t) (add-hook 'TeX-update-style-hook #'TeX-auto-parse t) (defvar LaTeX-acronym-acronym-history nil "History of acronyms in acronym.") ;; The former `acronym' stands for package name, the latter stands for the ;; argument of the macro calling this function. (defun LaTeX-arg-acronym-acronym (optional &optional prompt definition) "Prompt for an acronym completing with known acronyms. If OPTIONAL is non-nil, insert the resulting value as an optional argument, otherwise as a mandatory one. Use PROMPT as the prompt string. If DEFINITION is non-nil, add the chosen acronym to the list of defined acronyms." (let ((acronym (completing-read (TeX-argument-prompt optional prompt "Acronym") (LaTeX-acronym-list) nil nil nil 'LaTeX-acronym-acronym-history))) (if (and definition (not (string-equal "" acronym))) (LaTeX-add-acronyms acronym)) (TeX-argument-insert acronym optional optional))) (defun LaTeX-arg-define-acronym-acronym (optional &optional prompt) "Prompt for an acronym completing with known acronyms. If OPTIONAL is non-nil, insert the resulting value as an optional argument, otherwise as a mandatory one. Use PROMPT as the prompt string." (LaTeX-arg-acronym-acronym optional prompt t)) (TeX-add-style-hook "acronym" (lambda () (TeX-auto-add-regexp `(,LaTeX-acronym-regexp 1 LaTeX-auto-acronym)) (LaTeX-add-environments '("acronym" LaTeX-env-args [TeX-arg-string "Longest acronym"])) (TeX-add-symbols ;; Acronyms in the Text '("ac" LaTeX-arg-acronym-acronym) '("acresetall" 0) '("acf" LaTeX-arg-acronym-acronym) '("acs" LaTeX-arg-acronym-acronym) '("acl" LaTeX-arg-acronym-acronym) '("acp" LaTeX-arg-acronym-acronym) '("acfp" LaTeX-arg-acronym-acronym) '("acsp" LaTeX-arg-acronym-acronym) '("aclp" LaTeX-arg-acronym-acronym) '("acfi" LaTeX-arg-acronym-acronym) '("acused" LaTeX-arg-acronym-acronym) '("acsu" LaTeX-arg-acronym-acronym) '("aclu" LaTeX-arg-acronym-acronym) '("iac" LaTeX-arg-acronym-acronym) '("Iac" LaTeX-arg-acronym-acronym) '("ac*" LaTeX-arg-acronym-acronym) '("acf*" LaTeX-arg-acronym-acronym) '("acs*" LaTeX-arg-acronym-acronym) '("acl*" LaTeX-arg-acronym-acronym) '("acp*" LaTeX-arg-acronym-acronym) '("acfp*" LaTeX-arg-acronym-acronym) '("acsp*" LaTeX-arg-acronym-acronym) '("aclp*" LaTeX-arg-acronym-acronym) '("acfi*" LaTeX-arg-acronym-acronym) '("acsu*" LaTeX-arg-acronym-acronym) '("aclu*" LaTeX-arg-acronym-acronym) '("iac*" LaTeX-arg-acronym-acronym) '("Iac*" LaTeX-arg-acronym-acronym) ;; Customization '("acsfont" 1) '("acffont" 1) '("acfsfont" 1) ;; Defining Acronyms '("acro" LaTeX-arg-define-acronym-acronym [ "Short name" ] "Full name") '("acroextra" "Additional info") '("newacro" LaTeX-arg-define-acronym-acronym [ "Short name" ] "Full name") '("acrodef" LaTeX-arg-define-acronym-acronym [ "Short name" ] "Full name") ;; Non standard indefinite articles '("acroindefinite" LaTeX-arg-acronym-acronym "Short indefinite article" "Long indefinite article") '("acrodefindefinite" LaTeX-arg-acronym-acronym "Short indefinite article" "Long indefinite article") '("newacroindefinite" LaTeX-arg-acronym-acronym "Short indefinite article" "Long indefinite article") ;; Non standard and foreign plural forms '("acroplural" LaTeX-arg-acronym-acronym [ "Short plural" ] "Long plural") '("acrodefplural" LaTeX-arg-acronym-acronym [ "Short plural" ] "Long plural") '("newacroplural" LaTeX-arg-acronym-acronym [ "Short plural" ] "Long plural")) (TeX-run-style-hooks "relsize" "xstring" "suffix") ;; Fontification (when (and (featurep 'font-latex) (eq TeX-install-font-lock 'font-latex-setup)) (font-latex-add-keywords '(("ac" "*{") ("acf" "*{") ("acs" "*{") ("acl" "*{") ("acp" "*{") ("acfp" "*{") ("acsp" "*{") ("aclp" "*{") ("acfi" "*{") ("acused" "{") ("acsu" "*{") ("aclu" "*{") ("iac" "*{") ("Iac" "*{") ("acro" "{[{") ("acroextra" "{") ("newacro" "{[{") ("acrodef" "{[{") ("acroindefinite" "{{{") ("acrodefindefinite" "{{{") ("newacroindefinite" "{{{") ("acroplural" "{[{") ("acrodefplural" "{[{") ("newacroplural" "{[{")) 'function))) LaTeX-dialect) (defvar LaTeX-acronym-package-options '("footnote" "nohyperlinks" "printonlyused" "withpage" "smaller" "dua" "nolist") "Package options for the acronym package.") ;; acronym.el ends here auctex-11.91/style/afterpage.el000066400000000000000000000023431313533625700164500ustar00rootroot00000000000000;;; afterpage.el --- AUCTeX style for `afterpage.sty' ;; Copyright (C) 2013 Free Software Foundation, Inc. ;; Author: Mads Jensen ;; Maintainer: auctex-devel@gnu.org ;; Created: 2013-01-01 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `afterpage.sty' ;;; Code: (TeX-add-style-hook "afterpage" (lambda () (TeX-add-symbols '("afterpage" t))) LaTeX-dialect) (defvar LaTeX-afterpage-package-options nil "Package options for afterpage.") ;; afterpage.el ends here auctex-11.91/style/alltt.el000066400000000000000000000031301313533625700156250ustar00rootroot00000000000000;;; alltt.el --- AUCTeX style for `alltt.sty' ;; Copyright (C) 2004, 2005, 2014, 2016 Free Software Foundation, Inc. ;; Author: Ralf Angeli ;; Maintainer: auctex-devel@gnu.org ;; Created: 2004-04-30 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `alltt.sty'. ;;; Code: (TeX-add-style-hook "alltt" (lambda () (LaTeX-add-environments "alltt") (add-to-list (make-local-variable 'LaTeX-indent-environment-list) '("alltt" current-indentation) t) (add-to-list 'LaTeX-verbatim-environments-local "alltt") ;; Fontification (when (and (fboundp 'font-latex-update-font-lock) (eq TeX-install-font-lock 'font-latex-setup)) ;; Tell font-lock about the update. (font-latex-update-font-lock t))) LaTeX-dialect) (defvar LaTeX-alltt-package-options nil "Package options for the alltt package.") ;;; alltt.el ends here auctex-11.91/style/alphanum.el000066400000000000000000000063741313533625700163270ustar00rootroot00000000000000;;; alphanum.el --- AUCTeX style for `alphanum.sty' ;; Copyright (C) 2004 Free Software Foundation, Inc. ;; Author: Frank Kster ;; Maintainer: auctex-devel@gnu.org ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This is file alphanum.el, which makes AUCTeX usable with jura.cls ;; and its style file alphanum.sty. ;; ;; Contributed by Frank Kster . The code for ;; reftex has been written by Carsten Dominik, the maintainer of ;; reftex, but all the errors are mine. ;;; Code: (defun TeX-arg-none (arg) (insert " ")) (defun reftex-get-section-level-alphanum () (save-excursion ; preserve position (save-match-data ; preserve matching data (important!) ;; Go back to the beginning of the sectioning command (goto-char (match-beginning 0)) ;; Define an initial level number, depending on the current macro. (let* ((macro (reftex-match-string 3)) ; "toc" or "sub" (lev (cond ((string= macro "toc") 1) ; min level for "toc" ((string= macro "sub") 2) ; min level for "sub" (t 0))) ;; Make a regular expression which will match sectioning commands ;; and the levelup macro. (re (concat "\\(^[^%]*\\\\levelup\\>\\)" "\\|" "\\(" reftex-section-regexp "\\)"))) ;; Now parse backwards for all sectioning and levelup macros, ;; and keep track of the relative level changes. (while (re-search-backward re nil t) (cond ((match-beginning 1) ;; levelup matched, reduce level counter (setq lev (1- lev))) ((string= (reftex-match-string 4) "toc") ;; a toc entry, nothing changes ) ((string= (reftex-match-string 4) "sub") ;; a sub entry, increase level counter (setq lev (1+ lev))))) ;; return the level lev)))) (TeX-add-style-hook "alphanum" (lambda () (LaTeX-largest-level-set "chapter") (TeX-add-symbols '("levelup" TeX-arg-none)) (make-local-variable 'LaTeX-section-list) (LaTeX-section-list-add-locally '(("part" 0) ;; the levels don't make sense with alphanum, I randomly chose 0... ("toc" 0) ("sub" 0)) t) (setq LaTeX-section-label '(("part" . "part:") ("toc" . "sec:") ("sub" . "sec:"))) ;; ;; ****************** reftex part ****************** ;; this won't work in multifile documents, but at least there is ;; something. (if (fboundp 'reftex-add-section-levels) (reftex-add-section-levels '(("toc" . reftex-get-section-level-alphanum) ("sub" . reftex-get-section-level-alphanum))))) LaTeX-dialect) ;; Local Variables: ;; coding: iso-8859-1 ;; End: auctex-11.91/style/amsart.el000066400000000000000000000004111313533625700157730ustar00rootroot00000000000000;;; amsart.el --- Style hook for the AMS-LaTeX article document class. ;;; Code: (TeX-add-style-hook "amsart" (function (lambda () (TeX-run-style-hooks "amsmath" "amsthm") (LaTeX-add-environments "abstract"))) LaTeX-dialect) ;;; amsart.el ends here. auctex-11.91/style/amsbook.el000066400000000000000000000004111313533625700161370ustar00rootroot00000000000000;;; amsbook.el --- Style hook for the AMS-LaTeX book document class. ;;; Code: (TeX-add-style-hook "amsbook" (function (lambda () (TeX-run-style-hooks "amsmath" "amsthm") (LaTeX-add-environments "abstract"))) LaTeX-dialect) ;;; amsbook.el ends here. auctex-11.91/style/amsbsy.el000066400000000000000000000006301313533625700160050ustar00rootroot00000000000000;;; amsbsy.el --- Style hook for the AMS-LaTeX amsbsy package. ;;; ;;; AUTHOR: Carsten Dominik ;;; Code: (TeX-add-style-hook "amsbsy" (function (lambda () (TeX-add-symbols '("boldsymbol" "Symbol") '("pmb" "Symbol") ))) LaTeX-dialect) (defvar LaTeX-amsbsy-package-options nil "Package options for the amsbsy package.") ;;; amsbsy.el ends here. auctex-11.91/style/amsfonts.el000066400000000000000000000031241313533625700163420ustar00rootroot00000000000000;;; amsfonts.el --- AUCTeX style for `amsfonts.sty' version 3.01 ;; Copyright (C) 2016 Free Software Foundation, Inc. ;; Maintainer: auctex-devel@gnu.org ;; Author: Mosè Giordano ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `amsfonts.sty' version 3.01. ;;; Code: (TeX-add-style-hook "amsfonts" (lambda () (TeX-add-symbols '("bold" 1)) ;; New math font by `amsfonts'. (setq TeX-font-list (append TeX-font-list '((?\C-k "" "" "\\mathfrak{" "}")))) ;; Fontification (when (and (featurep 'font-latex) (eq TeX-install-font-lock 'font-latex-setup)) (font-latex-add-keywords '(("bold" "{")) 'bold-command))) LaTeX-dialect) ;; The `psamsfonts' option is obsolete in AMSFonts v3 (defvar LaTeX-amsfonts-package-options nil "Package options for the amsfonts package.") ;;; amsfonts.el ends here. auctex-11.91/style/amsmath.el000066400000000000000000000203331313533625700161430ustar00rootroot00000000000000;;; amsmath.el --- Style hook for the AMS-LaTeX amsmath package. ;; Copyright (C) 2002, 2005-2007, 2012-2014 Free Software Foundation, Inc. ;; FIXME: What about the copyright for <= 2001? ;; Author: Carsten Dominik ;; Maintainer: auctex-devel@gnu.org ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This will also load the amstext, amsbsy and amsopn style files. ;;; Code: (TeX-add-style-hook "amsmath" (function (lambda () (LaTeX-add-environments '("align" LaTeX-env-label) '("gather" LaTeX-env-label) '("flalign" LaTeX-env-label) '("multline" LaTeX-env-label) '("alignat" LaTeX-amsmath-env-alignat) '("alignat*" LaTeX-amsmath-env-alignat) '("xalignat" LaTeX-amsmath-env-alignat) '("xalignat*" LaTeX-amsmath-env-alignat) '("xxalignat" LaTeX-amsmath-env-alignat) '("aligned" ["Vertical position (t or b)"]) '("gathered" ["Vertical position (t or b)"]) '("alignedat" LaTeX-amsmath-env-alignedat) "align*" "gather*" "flalign*" "multline*" "equation*" "split" "cases" "matrix" "smallmatrix" "pmatrix" "bmatrix" "Bmatrix" "vmatrix" "Vmatrix" "subequations" '("subarray" "Alignment")) (TeX-add-symbols '("eqref" TeX-arg-ref) '("numberwithin" TeX-arg-counter "Section level") '("raisetag" "Dimension") '("shoveright" t) '("shoveleft" t) '("intertext" t) '("hdotsfor" ["Stretch"] "Number of columns to cover") '("xleftarrow" ["Below"] "Above") '("xrightarrow" ["Below"] "Above") '("overset" "Accent symbol" "Symbol") '("underset" "Accent symbol" "Symbol") '("dfrac" 2) '("tfrac" 2) '("binom" 2) '("dbinom" 2) '("tbinom" 2) '("genfrac" "Left delimiter" "Right delimiter" "Thickness" "Mathstyle" 2) '("cfrac" ["position (l or r)"] t) '("smash" ["where (t or b)"] t) '("sideset" "Left" "Right") '("tag" "(Tag)") '("tag*" "Tag") '("displaybreak" ["Weight (0..4)"]) '("allowdisplaybreaks" ["Weight (1..4)"]) '("substack" t) '("leftroot" "Push root index left by") '("uproot" "Push root index upward by") '("boxed" t) '("mspace" t) '("mod" t) '("pmod" t) '("pod" t) '("overleftrightarrow" t) '("underleftarrow" t) '("underrightarrow" t) '("underleftrightarrow" t) '("dddot" t) '("ddddot" t) "bmod" "notag" "dots" "dotsb" "dotsc" "dotsi" "dotsm" "dotso" "nobreakdash" '("lvert" TeX-arg-insert-right-brace-maybe) '("lVert" TeX-arg-insert-right-brace-maybe) "rvert" "rVert" "iint" "iiint" "iiiint" "idotsint" ) (setq LaTeX-item-list (append '(("split" . LaTeX-item-equation) ("multline" . LaTeX-item-equation) ("multline*" . LaTeX-item-equation) ("gather" . LaTeX-item-equation) ("gather*" . LaTeX-item-equation) ("gathered" . LaTeX-item-equation) ("align" . LaTeX-item-equation) ("align*" . LaTeX-item-equation) ("aligned" . LaTeX-item-equation) ("alignat" . LaTeX-item-equation-alignat) ("alignat*" . LaTeX-item-equation-alignat) ("xalignat" . LaTeX-item-equation-alignat) ("xalignat*" . LaTeX-item-equation-alignat) ("xxalignat" . LaTeX-item-equation-alignat) ("alignedat" . LaTeX-item-equation-alignat) ("flalign" . LaTeX-item-equation) ("flalign*" . LaTeX-item-equation) ("matrix" . LaTeX-item-equation) ("pmatrix" . LaTeX-item-equation) ("bmatrix" . LaTeX-item-equation) ("Bmatrix" . LaTeX-item-equation) ("vmatrix" . LaTeX-item-equation) ("Vmatrix" . LaTeX-item-equation) ("subarray" . LaTeX-item-equation) ("cases" . LaTeX-item-equation)) LaTeX-item-list)) ;; When `LaTeX-amsmath-label' is nil, use value of LaTeX-equation-label: (unless LaTeX-amsmath-label (setq LaTeX-amsmath-label LaTeX-equation-label)) (setq LaTeX-label-alist ;; Append amsmath environments to `LaTeX-label-alist', in order not to ;; override possible custome values. (append LaTeX-label-alist '(("align" . LaTeX-amsmath-label) ("alignat" . LaTeX-amsmath-label) ("xalignat" . LaTeX-amsmath-label) ("multline" . LaTeX-amsmath-label) ("flalign" . LaTeX-amsmath-label) ("gather" . LaTeX-amsmath-label)))) (set (make-local-variable 'TeX-braces-association) (append '(("\\lvert" . "\\rvert") ("\\lVert" . "\\rVert")) TeX-braces-association)) (set (make-local-variable 'TeX-left-right-braces) (append '(("\\lvert") ("\\rvert") ("\\lVert") ("\\rVert")) TeX-left-right-braces)) ;; amsmath includes amstext, amsbsy, & amsopn. ;; So we run their hooks, too. (TeX-run-style-hooks "amstext" "amsbsy" "amsopn") ;; If RefTeX is loaded, make it recognize the amsmath environments. (when (fboundp 'reftex-add-to-label-alist) (reftex-add-to-label-alist '(AMSTeX))))) LaTeX-dialect) (defun LaTeX-amsmath-env-alignat (env) "Insert ENV with column number specifications. Insert suitable number of ampersands also if possible." (let ((ncols (TeX-read-string "Number of columns: "))) (LaTeX-insert-environment env (concat TeX-grop ncols TeX-grcl)) (LaTeX-item-equation-alignat t))) (defun LaTeX-amsmath-env-alignedat (env) "Insert ENV with position and column number specifications. Insert suitable number of ampersands also if possible." (let ((where (TeX-read-string "(Optional) Vertical position (t or b): ")) (ncols (TeX-read-string "Number of columns: "))) (unless (string= where "") (setq where (concat LaTeX-optop where LaTeX-optcl))) (LaTeX-insert-environment env (concat where TeX-grop ncols TeX-grcl)) (LaTeX-item-equation-alignat t))) (defun LaTeX-item-equation (&optional suppress) "Insert contents to terminate a line in multi-line equations environment. Put line break macro on the last line. If the current environment wants \\label, insert it also. If SUPPRESS is non-nil, do not insert line break macro." (unless suppress (end-of-line 0) (just-one-space) (TeX-insert-macro "\\") (forward-line 1) (indent-according-to-mode)) (let ((env (LaTeX-current-environment))) (when (and (assoc env LaTeX-label-alist) (LaTeX-label env 'environment)) (LaTeX-newline) (indent-according-to-mode)))) (defun LaTeX-item-equation-alignat (&optional suppress) "Insert contents to terminate a line in multi-line equations environment. Put line break macro on the last line. Next, if the current environment wants \\label, insert it also. And insert suitable number of ampersands if possible. If SUPPRESS is non-nil, do not insert line break macro." (LaTeX-item-equation suppress) (LaTeX-insert-ampersands (concat "\\(?:" (regexp-quote LaTeX-optop) "[tb]" (regexp-quote LaTeX-optcl) "\\)?") 'LaTeX-amsmath-alignat-number-of-ampersands)) (defun LaTeX-amsmath-alignat-number-of-ampersands (start end) "Return the number of ampersands to insert. The number is 2N-1 where N is the number taken from the text between START and END." (let ((num (string-to-number (buffer-substring-no-properties start end)))) (if (integerp num) (+ num num -1)))) (defvar LaTeX-amsmath-package-options '("intlimits" "nointlimits" "sumlimits" "nosumlimits" "namelimits" "nonamelimits" "leqno" "reqno" "centertags" "tbtags" "cmex10" "fleqn" "?" "alignedleftspaceyes" "alignedleftspaceno" "alignedleftspaceyesifneg") "Package options for the amsmath package.") ;;; amsmath.el ends here. auctex-11.91/style/amsopn.el000066400000000000000000000033371313533625700160130ustar00rootroot00000000000000;;; amsopn.el --- AUCTeX style for the `amsnopn.sty' AMS-LaTeX package ;; Copyright (C) 1997, 2002, 2005, 2013 Free Software Foundation, Inc. ;; Author: Carsten Dominik ;; Mads Jensen ;; Maintainer: auctex-devel@gnu.org ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `amsnopn.sty' ;;; Code: (TeX-add-style-hook "amsopn" (function (lambda () (TeX-add-symbols '("DeclareMathOperator" (TeX-arg-define-macro "Math Operator: \\") "Expansion text for the math operator") '("DeclareMathOperator*" (TeX-arg-define-macro "Math Operator: \\") "Expansion text for the math operator") '("operatorname" t) '("operatorname*" t)) (add-to-list 'LaTeX-auto-regexp-list '("\\\\DeclareMathOperator\\*?{?\\\\\\([A-Za-z0-9]+\\)}?" 1 TeX-auto-symbol)))) LaTeX-dialect ) (defvar LaTeX-amsopn-package-options '("namelimits" "nonamelimits") "Package options for the amsopn package.") ;;; amsopn.el ends here. auctex-11.91/style/amssymb.el000066400000000000000000000111721313533625700161650ustar00rootroot00000000000000;;; amssymb.el --- AUCTeX style for `amssymb.sty' ;; Copyright (C) 2012 Free Software Foundation, Inc. ;; Author: Mads Jensen ;; Maintainer: auctex-devel@gnu.org ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `amssymb.sty'. ;; The commands were just taken out of the \DeclareMathSymbol from ;; amssymb.sty in the order specified there, i.e., \mathord, \mathbin, ;; \mathrel ;;; Code: (TeX-add-style-hook "amssymb" (lambda () (TeX-run-style-hooks "amsfonts") (TeX-add-symbols "boxdot" "boxplus" "boxtimes" "square" "blacksquare" "centerdot" "lozenge" "blacklozenge" "circlearrowright" "circlearrowleft" "leftrightharpoons" "boxminus" "Vdash" "Vvdash" "vDash" "twoheadrightarrow" "twoheadleftarrow" "leftleftarrows" "rightrightarrows" "upuparrows" "downdownarrows" "upharpoonright" "downharpoonright" "upharpoonleft" "downharpoonleft" "rightarrowtail" "leftarrowtail" "leftrightarrows" "rightleftarrows" "Lsh" "Rsh" "rightsquigarrow" "leftrightsquigarrow" "looparrowleft" "looparrowright" "circeq" "succsim" "gtrsim" "gtrapprox" "multimap" "therefore" "because" "doteqdot" "triangleq" "precsim" "lesssim" "lessapprox" "eqslantless" "eqslantgtr" "curlyeqprec" "curlyeqsucc" "preccurlyeq" "leqq" "leqslant" "lessgtr" "backprime" "risingdotseq" "fallingdotseq" "succcurlyeq" "geqq" "geqslant" "gtrless" "vartriangleright" "vartriangleleft" "trianglerighteq" "trianglelefteq" "bigstar" "between" "blacktriangledown" "blacktriangleright" "blacktriangleleft" "vartriangle" "blacktriangle" "triangledown" "eqcirc" "lesseqgtr" "gtreqless" "lesseqqgtr" "gtreqqless" "Rrightarrow" "Lleftarrow" "veebar" "barwedge" "doublebarwedge" "measuredangle" "sphericalangle" "varpropto" "smallsmile" "smallfrown" "Subset" "Supset" "Cup" "Cap" "curlywedge" "curlyvee" "leftthreetimes" "rightthreetimes" "subseteqq" "supseteqq" "bumpeq" "Bumpeq" "lll" "ggg" "circledS" "pitchfork" "dotplus" "backsim" "backsimeq" "complement" "intercal" "circledcirc" "circledast" "circleddash" "lvertneqq" "gvertneqq" "nleq" "ngeq" "nless" "ngtr" "nprec" "nsucc" "lneqq" "gneqq" "nleqslant" "ngeqslant" "lneq" "gneq" "npreceq" "nsucceq" "precnsim" "succnsim" "lnsim" "gnsim" "nleqq" "ngeqq" "precneqq" "succneqq" "precnapprox" "succnapprox" "lnapprox" "gnapprox" "nsim" "ncong" "diagup" "diagdown" "varsubsetneq" "varsupsetneq" "nsubseteqq" "nsupseteqq" "subsetneqq" "supsetneqq" "varsubsetneqq" "varsupsetneqq" "subsetneq" "supsetneq" "nsubseteq" "nsupseteq" "nparallel" "nmid" "nshortmid" "nshortparallel" "nvdash" "nVdash" "nvDash" "nVDash" "ntrianglerighteq" "ntrianglelefteq" "ntriangleleft" "ntriangleright" "nleftarrow" "nrightarrow" "nLeftarrow" "nRightarrow" "nLeftrightarrow" "nleftrightarrow" "divideontimes" "varnothing" "nexists" "Finv" "Game" "eth" "eqsim" "beth" "gimel" "daleth" "lessdot" "gtrdot" "ltimes" "rtimes" "shortmid" "shortparallel" "smallsetminus" "thicksim" "thickapprox" "approxeq" "succapprox" "precapprox" "curvearrowleft" "curvearrowright" "digamma" "varkappa" "Bbbk" "hslash" "backepsilon")) LaTeX-dialect) (defvar LaTeX-amssymb-package-options '("psamsfonts") "Package options for the amssymb package.") ;;; amssymb.el ends here. auctex-11.91/style/amstex.el000066400000000000000000000041021313533625700160060ustar00rootroot00000000000000;;; amstex.el --- AMS-LaTeX support. ;; Copyright (C) 2004, 2005 Free Software Foundation, Inc. ;; Maintainer: auctex-devel@gnu.org ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file is only needed when using AMS-LaTeX 1.1 and LaTeX 2.09. ;; In later versions of LaTeX and AMS-LaTeX this file is never used, ;; because there is no longer a class or package name amstex. ;; ;; As far as AUCTeX is concerned, the old amstex style is fairly ;; similar to the new amsmath package. So we will just run that hook ;; here. ;; ;; amsmath.el should not be loaded, if an AMS-TeX (in contrast to ;; AMS-LaTeX) file is opened. The commands defined in amsmath.el ;; mostly have no meaning in this case and errors about unknown ;; variables or functions may occur due to latex.el possibly not being ;; loaded. ;;; Code: (TeX-add-style-hook "amstex" (function (lambda () (unless (memq major-mode '(plain-tex-mode ams-tex-mode)) (TeX-run-style-hooks "amsmath")))) LaTeX-dialect) (defvar LaTeX-amstex-package-options '("noamsfonts" "psamsfonts" "intlimits" "nointlimits" "sumlimits" "nosumlimits" "namelimits" "nonamelimits" "leqno" "reqno" "centertags" "tbtags" "fleqn" "righttag" "ctagsplt" "intlim" "nosumlim" "nonamelm") "Package options for the amstex package.") ;;; amstex.el ends here. auctex-11.91/style/amstext.el000066400000000000000000000005551313533625700162020ustar00rootroot00000000000000;;; amstext.el --- Style hook for the AMS-LaTeX amstext package. ;;; ;;; AUTHOR: Carsten Dominik ;;; Code: (TeX-add-style-hook "amstext" (function (lambda () (TeX-add-symbols '("text" t)))) LaTeX-dialect) (defvar LaTeX-amstext-package-options nil "Package options for the amstext package.") ;;; amstext.el ends here. auctex-11.91/style/amsthm.el000066400000000000000000000154611313533625700160100ustar00rootroot00000000000000;;; amsthm.el --- Style hook for the AMS-LaTeX amsthm package. ;; Copyright (C) 1997, 2013--2015 Free Software Foundation, Inc. ;; Author: Carsten Dominik ;; Maintainer: auctex-devel@gnu.org ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; The style provides the function `LaTeX-amsthm-env-label' which ;; enables new defined environments with "\newtheoreom" to interact ;; with AUCTeX and RefTeX mechanisms for inserting labels. Check ;; docstring of `LaTeX-amsthm-env-label' for instructions. ;;; Code: (defvar LaTeX-amsthm-package-options nil "Package options for the amsthm package.") (defvar LaTeX-amsthm-theoremstyle-list '(("plain") ("definition") ("remark")) "List of theorem styles provided by `amsthm.el' and new ones defined with \"\\newtheoremstyle\".") (defvar LaTeX-amsthm-fontdecl '(;; family "rmfamily" "sffamily" "ttfamily" ;; series "mdseries" "bfseries" ;; shape "upshape" "itshape" "slshape" "scshape" ;; size "tiny" "scriptsize" "footnotesize" "small" "normalsize" "large" "Large" "LARGE" "huge" "Huge" ;; reset macro "normalfont") "List of font declaration commands for \"\\newtheoremstyle\".") (defun LaTeX-arg-amsthm-fontdecl (optional &optional prompt) "Prompt for font declaration commands in \"\\newtheoremstyle\". If OPTIONAL is non-nil, insert the resulting value as an optional argument. Use PROMPT as the prompt string." ;; `INITIAL-INPUT' (5th argument to `TeX-completing-read-multiple') ;; is hard-coded to `TeX-esc'. (let* ((crm-separator (regexp-quote TeX-esc)) (fontdecl (mapconcat 'identity (TeX-completing-read-multiple (TeX-argument-prompt optional prompt "Font") LaTeX-amsthm-fontdecl nil nil TeX-esc) TeX-esc))) (TeX-argument-insert fontdecl optional))) (defun LaTeX-amsthm-env-label (environment) "Insert ENVIRONMENT, query for an optional argument and prompt for label. AUCTeX users should add ENVIRONMENT to `LaTeX-label-alist' via customize or in init-file with: (add-to-list \\='LaTeX-label-alist \\='(\"lemma\" . \"lem:\")) RefTeX users should customize or add ENVIRONMENT to `LaTeX-label-alist' and `reftex-label-alist', e.g. (add-to-list \\='LaTeX-label-alist \\='(\"lemma\" . \"lem:\")) (add-to-list \\='reftex-label-alist \\='(\"lemma\" ?m \"lem:\" \"~\\ref{%s}\" nil (\"Lemma\" \"lemma\") nil))" (let ((opthead (TeX-read-string (TeX-argument-prompt t nil "Heading")))) (LaTeX-insert-environment environment (when (and opthead (not (string= opthead ""))) (format "[%s]" opthead)))) (when (LaTeX-label environment 'environment) (LaTeX-newline) (indent-according-to-mode))) ;; Needed for auto-parsing (require 'tex) ;; Setup parsing for \newtheorem (TeX-auto-add-type "amsthm-newtheorem" "LaTeX") ;; Setup parsing for \newtheoremstyle (TeX-auto-add-type "amsthm-newtheoremstyle" "LaTeX") (defun LaTeX-amsthm-auto-prepare () "Clear `LaTeX-auto-amsthm-newtheorem' and `LaTeX-auto-amsthm-newtheoremstyle' before parsing." (setq LaTeX-auto-amsthm-newtheorem nil) (setq LaTeX-auto-amsthm-newtheoremstyle nil)) (defun LaTeX-amsthm-auto-cleanup () "Move parsed results from `LaTeX-auto-amsthm-newtheorem' and make them available as new environments. Update `LaTeX-amsthm-theoremstyle-list' with styles defined with \"\\newtheoremstyle\"." (dolist (newthm (mapcar 'car (LaTeX-amsthm-newtheorem-list))) (LaTeX-add-environments (list newthm 'LaTeX-amsthm-env-label))) (dolist (newthmstyle (LaTeX-amsthm-newtheoremstyle-list)) (add-to-list (make-local-variable 'LaTeX-amsthm-theoremstyle-list) newthmstyle))) (add-hook 'TeX-auto-prepare-hook #'LaTeX-amsthm-auto-prepare t) (add-hook 'TeX-auto-cleanup-hook #'LaTeX-amsthm-auto-cleanup t) (add-hook 'TeX-update-style-hook #'TeX-auto-parse t) (TeX-add-style-hook "amsthm" (lambda () (LaTeX-add-environments '("proof" LaTeX-amsthm-env-label)) (TeX-add-symbols ;; Overrule the defintion in `latex.el': '("newtheorem" (TeX-arg-eval (lambda () (let ((nthm (TeX-read-string (TeX-argument-prompt nil nil "Environment")))) (LaTeX-add-amsthm-newtheorems nthm) (LaTeX-add-environments (list nthm 'LaTeX-theorem-env-label)) (format "%s" nthm)))) [ TeX-arg-environment "Numbered like" ] t [ (TeX-arg-eval progn (if (eq (save-excursion (backward-char 2) (preceding-char)) ?\]) () (TeX-arg-counter t "Within counter")) "") ]) '("newtheorem*" (TeX-arg-eval (lambda () (let ((nthm (TeX-read-string (TeX-argument-prompt nil nil "Environment"))) (heading (TeX-read-string (TeX-argument-prompt nil nil "Heading")))) (LaTeX-add-amsthm-newtheorems nthm) (LaTeX-add-environments (list nthm 'LaTeX-amsthm-env-label)) (insert (concat TeX-grop nthm TeX-grcl)) (format "%s" heading))))) '("theoremstyle" (TeX-arg-eval completing-read "Style: " LaTeX-amsthm-theoremstyle-list)) "qedhere" "swapnumbers" '("newtheoremstyle" (TeX-arg-eval (lambda () (let ((nthmstyle (TeX-read-string (TeX-argument-prompt nil nil "Style name")))) (LaTeX-add-amsthm-newtheoremstyles nthmstyle) (add-to-list (make-local-variable 'LaTeX-amsthm-theoremstyle-list) (list nthmstyle)) (format "%s" nthmstyle)))) (TeX-arg-length "Space above") (TeX-arg-length "Space below") (LaTeX-arg-amsthm-fontdecl "Body font") "Indent amount" (LaTeX-arg-amsthm-fontdecl "Theorem head font") "Punctuation after head" (TeX-arg-length "Space after head") "Theorem head spec")) (TeX-auto-add-regexp `(,(concat "\\\\newtheorem\\*?{\\(" TeX-token-char "+\\)}") 1 LaTeX-auto-amsthm-newtheorem)) (TeX-auto-add-regexp `(,(concat "\\\\newtheoremstyle{\\(" TeX-token-char "+\\)}") 1 LaTeX-auto-amsthm-newtheoremstyle)) ;; Fontification (when (and (featurep 'font-latex) (eq TeX-install-font-lock 'font-latex-setup)) (font-latex-add-keywords '(("newtheorem" "*{[{[") ("theoremstyle" "{") ("newtheoremstyle" "{{{{{{{{{")) 'function))) LaTeX-dialect) ;;; amsthm.el ends here auctex-11.91/style/array.el000066400000000000000000000063361313533625700156360ustar00rootroot00000000000000;;; array.el --- AUCTeX style for `array.sty' ;; Copyright (C) 2013, 2015 Free Software Foundation, Inc. ;; Author: Mads Jensen ;; Maintainer: auctex-devel@gnu.org ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `array.sty' ;;; Code: (require 'tex) (TeX-auto-add-type "array-newcolumntype" "LaTeX") (defvar LaTeX-array-newcolumntype-regexp '("\\\\newcolumntype{\\([^}]+\\)}" 1 LaTeX-auto-array-newcolumntype) "Matches the argument of `\\newcolumntype' from `array' package.") (defun LaTeX-array-auto-prepare () "Clear `LaTeX-auto-array-newcolumntype' before parsing." (setq LaTeX-auto-array-newcolumntype nil)) (defun LaTeX-array-auto-cleanup () "Move parsed column specification from `LaTeX-auto-array-newcolumntype' to `LaTeX-array-column-letters'." (when (LaTeX-array-newcolumntype-list) (LaTeX-array-update-column-letters))) (defun LaTeX-array-update-column-letters () "Update and uniquify the value of `LaTeX-array-column-letters' and make it buffer local. " (set (make-local-variable 'LaTeX-array-column-letters) (mapconcat 'identity (TeX-delete-duplicate-strings (split-string (concat LaTeX-array-column-letters (mapconcat 'car (LaTeX-array-newcolumntype-list) "")) "" t)) ""))) (add-hook 'TeX-auto-prepare-hook #'LaTeX-array-auto-prepare t) (add-hook 'TeX-auto-cleanup-hook #'LaTeX-array-auto-cleanup t) (add-hook 'TeX-update-style-hook #'TeX-auto-parse t) (TeX-add-style-hook "array" (lambda () (TeX-auto-add-regexp LaTeX-array-newcolumntype-regexp) (TeX-add-symbols '("newcolumntype" (TeX-arg-eval (lambda () (let ((col (TeX-read-string "Column type: "))) (LaTeX-add-array-newcolumntypes col) (LaTeX-array-update-column-letters) (format "%s" col)))) [ "Number of arguments" ] t) '("showcols" 0) '("firsthline" 0) '("lasthline" 0)) ;; `array.sty' adds a couple of new lengths. They're added here, rather than ;; in the `TeX-add-symbols' block. (LaTeX-add-lengths "extratabsurround" "extrarowheight") ;; `array.sty' adds some new column specification letters. (set (make-local-variable 'LaTeX-array-column-letters) (concat LaTeX-array-column-letters "m" "b")) ;; Fontification (when (and (featurep 'font-latex) (eq TeX-install-font-lock 'font-latex-setup)) (font-latex-add-keywords '(("newcolumntype" "{[{")) 'function))) LaTeX-dialect) (defvar LaTeX-array-package-options nil "Package options for array.") ;; array.el ends here auctex-11.91/style/article.el000066400000000000000000000013071313533625700161340ustar00rootroot00000000000000;;; article.el - Special code for article style. ;;; Code: (defvar LaTeX-article-class-options '("a4paper" "a5paper" "b5paper" "letterpaper" "legalpaper" "executivepaper" "landscape" "10pt" "11pt" "12pt" "oneside" "twoside" "draft" "final" "titlepage" "notitlepage" "onecolumn" "twocolumn" "leqno" "fleqn" "openbib") "Package options for the article class.") (TeX-add-style-hook "article" (lambda () (LaTeX-largest-level-set "section") (LaTeX-add-counters "part" "section" "subsection" "subsubsection" "paragraph" "subparagraph" "figure" "table") (LaTeX-add-pagestyles "headings" "myheadings") (LaTeX-add-environments "abstract")) LaTeX-dialect) ;;; article.el ends here auctex-11.91/style/attachfile.el000066400000000000000000000067041313533625700166230ustar00rootroot00000000000000;;; attachfile.el --- AUCTeX style for `attachfile.sty' (v1.6) ;; Copyright (C) 2015 Free Software Foundation, Inc. ;; Author: Arash Esbati ;; Maintainer: auctex-devel@gnu.org ;; Created: 2015-04-11 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `attachfile.sty' (v1.6) from 2015/04/04. ;; `attachfile.sty' is part of TeXLive. ;;; Code: (defvar LaTeX-attachfile-key-val-options '(("appearance" ("true" "false")) ("author") ("color") ("created") ("date") ("description") ("icon" ("Graph" "Paperclip" "PushPin" "Tag")) ;; This can only be a small excerpt: ("mimetype" ("application/javascript" "application/pdf" "application/postscript" "application/vnd.ms-excel" "application/vnd.ms-powerpoint" "application/zip" "audio/mpeg" "audio/ogg" "image/jpeg" "image/png" "image/tiff" "text/csv" "text/plain" "video/H264" "video/mp4")) ("modified") ("print" ("true" "false")) ("size") ("subject") ("timezone") ("zoom" ("true" "false"))) "Key=value options for attachfile macros.") (TeX-add-style-hook "attachfile" (lambda () ;; Run style hook for packages loaded by attachfile; both packages ;; are required for running LaTeX, but not necessary within AUCTeX (TeX-run-style-hooks "hyperref" "color") (TeX-add-symbols ;; \attachfile[]{} '("attachfile" [TeX-arg-key-val LaTeX-attachfile-key-val-options] (TeX-arg-eval (lambda () (let ((atfi (file-relative-name (read-file-name "File to attach: ")))) (format "%s" atfi))))) ;; \noattachfile[] '("noattachfile" [TeX-arg-key-val LaTeX-attachfile-key-val-options] ) ;; \textattachfile[]{}{} '("textattachfile" [TeX-arg-key-val LaTeX-attachfile-key-val-options] (TeX-arg-eval (lambda () (let ((atfi (file-relative-name (read-file-name "File to attach: ")))) (format "%s" atfi)))) t) ;; \notextattachfile[]{} '("notextattachfile" [TeX-arg-key-val LaTeX-attachfile-key-val-options] t) ;; \attachfilesetup{} '("attachfilesetup" (TeX-arg-key-val LaTeX-attachfile-key-val-options))) ;; Fontification (when (and (featurep 'font-latex) (eq TeX-install-font-lock 'font-latex-setup)) (font-latex-add-keywords '(("attachfilesetup" "{") ("attachfile" "[{") ("noattachfile" "[") ("textattachfile" "[{{") ("notextattachfile" "[{")) 'function))) LaTeX-dialect) (defvar LaTeX-attachfile-package-options nil "Prompt for package options for the attachfile package.") ;;; attachfile.el ends here auctex-11.91/style/australian.el000066400000000000000000000023211313533625700166510ustar00rootroot00000000000000;;; australian.el --- AUCTeX style for the `australian' babel option. ;; Copyright (C) 2017 Free Software Foundation, Inc. ;; Author: Arash Esbati ;; Maintainer: auctex-devel@gnu.org ;; Created: 2017-07-02 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; Set up AUCTeX for editing Australian text in connection with the ;; `australian' babel option. ;;; Code: (TeX-add-style-hook "australian" (lambda () (TeX-run-style-hooks "english")) LaTeX-dialect) ;;; australian.el ends here auctex-11.91/style/austrian.el000066400000000000000000000023121313533625700163340ustar00rootroot00000000000000;;; austrian.el --- AUCTeX style for the `austrian' babel option. ;; Copyright (C) 2009 Free Software Foundation, Inc. ;; Author: Ralf Angeli ;; Maintainer: auctex-devel@gnu.org ;; Created: 2009-12-28 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; Set up AUCTeX for editing Austrian text in connection with the ;; `austrian' babel option. ;;; Code: (TeX-add-style-hook "austrian" (lambda () (TeX-run-style-hooks "german")) LaTeX-dialect) ;;; austrian.el ends here auctex-11.91/style/babel.el000066400000000000000000000147241313533625700155650ustar00rootroot00000000000000;;; babel.el --- AUCTeX style for `babel.sty' version 3.9h. ;; Copyright (C) 2005, 2007, 2013-2014 Free Software Foundation, Inc. ;; Author: Ralf Angeli ;; Maintainer: auctex-devel@gnu.org ;; Created: 2005-05-29 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `babel.sty' version 3.9h. ;;; Code: (eval-when-compile (require 'cl)) (defvar LaTeX-babel-language-list '("afrikaans" "bahasa" "indonesian" "indon" "bahasai" "bahasam" "malay" "meyalu" "basque" "breton" "bulgarian" "catalan" "croatian" "czech" "danish" "dutch" "english" "USenglish" "american" "UKenglish" "british" "canadian" "australian" "newzealand" "esperanto" "estonian" "finnish" "french" "francais" "canadien" "acadian" "galician" "austrian" "german" "germanb" "ngerman" "naustrian" "greek" "polutonikogreek" "hebrew" "icelandic" "interlingua" "irish" "italian" "latin" "lowersorbian" "samin" "norsk" "nynorsk" "polish" "portuges" "portuguese" "brazilian" "brazil" "romanian" "russian" "scottish" "spanish" "slovak" "slovene" "swedish" "serbian" "turkish" "ukrainian" "uppersorbian" "welsh" ;; Extra languages mentioned in the `babel' manual. "albanian" "hindi" "thai" "thaicjk" "latvian" "turkmen" "hungarian" "magyar" "mongolian" "romansh" "lithuanian" "spanglish" "vietnamese" "japanese" "pinyin" "arabinc" "farsi" "ibygreek" "bgreek" "serbianic" "frenchle" "ethiop" "friulan" "frenchb") "List of languages supported by the babel LaTeX package.") (defun LaTeX-babel-active-languages () "Return a list of languages used in the document." (let (main-language active-languages) ;; Loop over options provided to class and `babel' package at load time. (dolist (elt (append ;; In most cases there is only one element in the alist, if ;; there is more than one element, the first one should ;; contain the class options of the current buffer. So we can ;; take the car of `LaTeX-provided-class-options'. (cdr (car LaTeX-provided-class-options)) (cdr (assoc "babel" LaTeX-provided-package-options)))) (setq elt (TeX-split-string "=" elt)) (if (equal (car elt) "main") ;; Starting from version 3.9 of `babel' package, languages can be set ;; with the following syntax: ;; \usepackage[latin.medieval,main=danish,spanish.notilde]{babel} ;; with `danish' being the default language. When the default ;; language is set with the `main' option, we record it and append to ;; the list at the end. (setq main-language (car (cdr elt))) ;; Get rid of the modifiers (`medieval' and `notilde' in the above ;; example). (setq elt (car (TeX-split-string "\\." (car elt)))) (if (member elt LaTeX-babel-language-list) ;; Append element to `active-languages' to respect loading order. ;; `babel' package uses as default language the last loaded one, ;; except if it is set with the `main' option. (pushnew elt active-languages :test #'equal)))) (if main-language (pushnew main-language active-languages :test #'equal)) (nreverse active-languages))) (defun TeX-arg-babel-lang (_optional &optional _prompt) "Prompt for a language with completion and insert it as an argument." (TeX-argument-insert (completing-read "Language: " (LaTeX-babel-active-languages)) nil)) (defun LaTeX-env-babel-lang (env) "Prompt for a language and insert it as an argument of ENV." (LaTeX-insert-environment env (format "{%s}" (completing-read "Language: " (LaTeX-babel-active-languages))))) (defun LaTeX-babel-load-languages () "Load style files of babel active languages." ;; Run style hooks for every active language in loading order, so ;; `TeX-quote-language' will be correctly set. (mapc 'TeX-run-style-hooks (LaTeX-babel-active-languages))) (TeX-add-style-hook "babel" (lambda () (LaTeX-babel-load-languages) (add-hook 'LaTeX-after-usepackage-hook 'LaTeX-babel-load-languages nil t) ;; New symbols (TeX-add-symbols '("selectlanguage" TeX-arg-babel-lang) '("foreignlanguage" TeX-arg-babel-lang t) "languagename" '("iflanguage" TeX-arg-babel-lang t nil) '("useshorthands" t) '("defineshorthand" t nil) '("aliasshorthand" t nil) '("languageshorthands" TeX-arg-babel-lang) '("shorthandon" t) '("shorthandoff" t) '("languageattribute" TeX-arg-babel-lang t)) ;; New environments (LaTeX-add-environments '("otherlanguage" LaTeX-env-babel-lang) '("otherlanguage*" LaTeX-env-babel-lang) '("hyphenrules" LaTeX-env-babel-lang)) ;; Fontification (when (and (featurep 'font-latex) (eq TeX-install-font-lock 'font-latex-setup)) (font-latex-add-keywords '(("selectlanguage" "{") ("foreignlanguage" "{{") ("iflanguage" "{{{") ("languagename" "") ("useshorthands" "{") ("languageshorthands" "{") ("shorthandon" "{") ("shorthandoff" "{")) 'function) (font-latex-add-keywords '(("defineshorthand" "{{") ("aliasshorthand" "{{") ("languageattribute" "{{")) 'variable))) LaTeX-dialect) (defun LaTeX-babel-package-options () "Prompt for package options for the babel package." (TeX-read-key-val t (append '(("KeepShorthandsActive") ("activeacute") ("activegrave") ("shorthands") ("safe" ("none" "ref" "bib")) ("math" ("active" "normal")) ("config") ("main" LaTeX-babel-language-list) ("headfoot" LaTeX-babel-language-list) ("noconfigs") ("showlanguages") ("strings" ("generic" "unicode" "encoded")) ("hyphenmap" ("off" "main" "select" "other" "other*")) ("base")) (mapcar 'list LaTeX-babel-language-list)))) ;;; babel.el ends here auctex-11.91/style/baskervaldx.el000066400000000000000000000052021313533625700170150ustar00rootroot00000000000000;;; baskervaldx.el --- AUCTeX style for `baskervaldx.sty' (v1.07) ;; Copyright (C) 2014, 2015 Free Software Foundation, Inc. ;; Author: Arash Esbati ;; Maintainer: auctex-devel@gnu.org ;; Created: 2014-11-18 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `baskervaldx.sty' (v1.07) from 2015/04/06. ;; `baskervaldx.sty' is part of TeXLive. ;;; Code: (TeX-add-style-hook "baskervaldx" (lambda () ;; Run style hook for various packages loaded by baskervaldx (TeX-run-style-hooks "textcomp" "fontaxes") ;; New symbols (TeX-add-symbols ;; Only preamble commands '("useosf" 0) ;; Text commands '("lfstyle" -1) ; lf declaration '("tlfstyle" -1) ; tlf declaration '("osfstyle" -1) ; osf declaration '("tosfstyle" -1) ; tosf declaration '("sufigures" -1) ; superior figures declaration '("textlf" t) ; proportional lining figures '("texttlf" t) ; tabular lining figures '("textosf" t) ; proportional oldstyle figures '("texttosf" t) ; tabular oldstyle figures '("textsu" t) ; superior figures '("swshape" -1)) ; italic shape with ligatures activated ;; Fontification (when (and (featurep 'font-latex) (eq TeX-install-font-lock 'font-latex-setup)) (font-latex-add-keywords '(("textlf" "{") ("texttlf" "{") ("textosf" "{") ("texttosf" "{") ("textsu" "{")) 'type-command) (font-latex-add-keywords '(("lfstyle" "") ("tlfstyle" "") ("osfstyle" "") ("tosfstyle" "") ("sufigures" "")) 'type-declaration) (font-latex-add-keywords '(("swshape" "")) 'bold-declaration))) LaTeX-dialect) (defvar LaTeX-baskervaldx-package-options '("lining" "lf" "oldstyle" "osf" "tabular" "proportional" "p" "scale" "scaled" "sups" "swash") "Package options for the baskervaldx package.") ;;; baskervaldx.el ends here auctex-11.91/style/beamer.el000066400000000000000000000320021313533625700157400ustar00rootroot00000000000000;;; beamer.el --- AUCTeX style for the latex-beamer class ;; Copyright (C) 2003, 2004, 2005, 2008, 2013-2016 Free Software Foundation ;; Author: Thomas Baumann ;; Created: 2003-12-20 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for the latex-beamer class. ;;; Code: (defun LaTeX-beamer-after-insert-env (env start _end) "Do beamer-specific stuff after the insertion of an environment." ;; Add `fragile' as an optional argument to the frame environment if ;; a verbatim environment is inserted. (when (and (TeX-member env (LaTeX-verbatim-environments) 'string-equal) (save-excursion (goto-char start) (string-equal (LaTeX-current-environment) "frame"))) (save-excursion (when (re-search-backward "\\\\begin[ \t]*{frame}" nil t) (let ((end-of-begin (match-end 0))) (goto-char end-of-begin) (while (forward-comment 1)) (if (eq (char-after) (string-to-char LaTeX-optop)) (progn (forward-char) (insert "fragile") (unless (looking-at (concat "[ \t]*" LaTeX-optcl)) (insert ","))) (goto-char end-of-begin) (insert "[fragile]"))))))) (defvar LaTeX-beamer-frametitle-history nil "History of frame titles in beamer.") (TeX-add-style-hook "beamer" (lambda () (add-hook 'LaTeX-after-insert-env-hooks 'LaTeX-beamer-after-insert-env nil t) (TeX-run-style-hooks "amsmath" "amssymb" "amsthm" "color" "geometry" "hyperref" "inputenc" "translator" "xcolor") (unless LaTeX-beamer-section-labels-flag (make-local-variable 'LaTeX-section-hook) (setq LaTeX-section-hook '(LaTeX-section-heading LaTeX-section-title LaTeX-section-section))) (setq LaTeX-item-list (append '(("itemize" . LaTeX-item-beamer) ("enumerate" . LaTeX-item-beamer)) LaTeX-item-list)) (setq LaTeX-default-document-environment "frame") (LaTeX-paragraph-commands-add-locally "frametitle") (TeX-add-symbols '("alert" 1) '("alt" TeX-arg-beamer-overlay-spec 2) '("beamerbutton" 1) '("beamergotobutton" 1) '("beamerreturnbutton" 1) '("beamerskipbutton" 1) '("frame" TeX-arg-beamer-frametitle) '("frametitle" (TeX-arg-eval TeX-read-string "Title: " nil 'LaTeX-beamer-frametitle-history)) '("hyperlink" TeX-arg-beamer-overlay-spec 2) '("hyperlinkslideprev" TeX-arg-beamer-overlay-spec 1) '("hyperlinkslidenext" TeX-arg-beamer-overlay-spec 1) '("hyperlinkframestart" TeX-arg-beamer-overlay-spec 1) '("hyperlinkframeend" TeX-arg-beamer-overlay-spec 1) '("hyperlinkframestartnext" TeX-arg-beamer-overlay-spec 1) '("hyperlinkframeendprev" TeX-arg-beamer-overlay-spec 1) '("hyperlinkpresentationstart" TeX-arg-beamer-overlay-spec 1) '("hyperlinkpresentationend" TeX-arg-beamer-overlay-spec 1) '("hyperlinkappendixstart" TeX-arg-beamer-overlay-spec 1) '("hyperlinkappendixend" TeX-arg-beamer-overlay-spec 1) '("hyperlinkdocumentstart" TeX-arg-beamer-overlay-spec 1) '("hyperlinkdocumentend" TeX-arg-beamer-overlay-spec 1) '("hypertarget" TeX-arg-beamer-overlay-spec 2) '("institute" 1) '("invisible" TeX-arg-beamer-overlay-spec 1) '("label" TeX-arg-beamer-overlay-spec 1) '("logo" 1) '("note" TeX-arg-beamer-note 1) '("only" TeX-arg-beamer-overlay-spec 1) '("onslide" TeX-arg-beamer-overlay-spec) '("partpage") '("pause" ["Slide number"]) '("structure" TeX-arg-beamer-overlay-spec 1) '("temporal" TeX-arg-beamer-overlay-spec 3) '("titlepage") '("titlegraphic" 1) '("uncover" TeX-arg-beamer-overlay-spec 1) '("usetheme" LaTeX-arg-beamer-theme) '("useinnertheme" LaTeX-arg-beamer-inner-theme) '("useoutertheme" LaTeX-arg-beamer-outer-theme) '("usecolortheme" LaTeX-arg-beamer-color-theme) '("usefonttheme" LaTeX-arg-beamer-font-theme) '("usetheme" LaTeX-arg-beamer-theme) '("visible" TeX-arg-beamer-overlay-spec 1)) (LaTeX-add-environments '("actionenv") '("alertblock" 1) '("beamerboxesrounded" 1) '("block" (lambda (env &rest ignore) (LaTeX-insert-environment env (format "{%s}" (TeX-read-string "Title: "))))) '("column" "Width") "columns" "columnsonlytextwidth" '("exampleblock" 1) '("frame" (lambda (env &rest ignore) (let ((title (TeX-read-string "(Optional) Title: " nil 'LaTeX-beamer-frametitle-history))) (LaTeX-insert-environment env) (unless (zerop (length title)) (save-excursion (LaTeX-find-matching-begin) (end-of-line) (LaTeX-newline) (insert (format "\\frametitle{%s}" title)) ;; This works because \frametitle is a ;; paragraph command. (backward-char) (LaTeX-fill-paragraph)))))) '("onlyenv" (lambda (env &rest ignore) (LaTeX-insert-environment env (let ((overlay (TeX-read-string "(Optional) Overlay: "))) (unless (zerop (length overlay)) (format "<%s>" overlay)))))) '("overlayarea" "Area width" "Area height") '("overprint" (lambda (env &rest ignore) (LaTeX-insert-environment env (let ((width (TeX-read-string "(Optional) Area width: "))) (unless (zerop (length width)) (format "[%s]" width)))))) "semiverbatim") (LaTeX-largest-level-set "section") (LaTeX-add-counters "lecture" "part" "section" "subsection" "subsubsection" "subsectionslide" "framenumber" "figure" "table" "beamerpauses") (LaTeX-add-pagestyles "navigation") (add-to-list (make-local-variable 'LaTeX-indent-environment-list) '("semiverbatim" current-indentation) t) (add-to-list 'LaTeX-verbatim-environments-local "semiverbatim") ;; Fontification (when (and (featurep 'font-latex) (eq TeX-install-font-lock 'font-latex-setup)) (font-latex-add-keywords '(("title" "[{") ("subtitle" "[{") ("author" "[{") ("date" "[{") ("frametitle" "<[{")) 'slide-title) (font-latex-update-font-lock t))) LaTeX-dialect) (defun TeX-arg-beamer-overlay-spec (_optional &optional _prompt) "Prompt for overlay specification." (let ((overlay (TeX-read-string "(Optional) Overlay: "))) (unless (zerop (length overlay)) (insert "<" overlay ">")) (indent-according-to-mode))) (defun TeX-arg-beamer-frametitle (_optional &optional _prompt) "Prompt for the frametitle." (let ((title (TeX-read-string "Title: " nil 'LaTeX-beamer-frametitle-history))) (if (not (zerop (length title))) (insert TeX-grop TeX-esc "frametitle" TeX-grop title TeX-grcl TeX-grcl) (insert TeX-grop TeX-grcl)))) (defun LaTeX-item-beamer () "Insert a new item with an optional overlay argument. You can turn off the prompt for the overlay argument by setting `LaTeX-beamer-item-overlay-flag' to nil. Calling the function with a prefix argument prompts for the overlay specification unconditionally." (if (listp current-prefix-arg) (setq current-prefix-arg (car current-prefix-arg)) current-prefix-arg) (TeX-insert-macro "item") (delete-horizontal-space) (if (or current-prefix-arg LaTeX-beamer-item-overlay-flag) (TeX-arg-beamer-overlay-spec 0)) (insert " ") (indent-according-to-mode)) (defun TeX-arg-beamer-note (_optional &optional _prompt) "Prompt for overlay specification and optional argument." (let ((overlay (TeX-read-string "(Optional) Overlay: ")) (options (TeX-read-string "(Optional) Options: "))) (unless (zerop (length overlay)) (insert "<" overlay ">")) (unless (zerop (length options)) (insert "[" options "]")) (indent-according-to-mode))) (defun LaTeX-beamer-search-themes (&optional regexp extensions length) "Search for beamer themes matching REGEXP with EXTENSIONS. The function removes the first LENGTH characters and the extension of the file and returns a list of strings. LENGTH may also be a string. Then the length of the string is used." (let* ((match (or regexp "^beamertheme[A-Z]")) (exts (or extensions '("tex" "sty"))) (chars (cond ((integerp length) length) ((stringp length) (string-width length)) ;; Try some DWIM magic... ((and (not length) (string-match "beamer[A-Za-z0-9]*theme" match)) (- (match-end 0) (match-beginning 0))) (t (error "Invalid length: `%s'" length))))) ;; (message "match=`%s' chars=`%s'" match chars) (TeX-delete-duplicate-strings (delete nil (mapcar (lambda (file) (let ((case-fold-search nil)) (and (numberp (string-match match file)) (substring file chars)))) (TeX-search-files nil exts t t)))))) (defun LaTeX-arg-beamer-theme (&rest _ignore) "Prompt for beamer theme with completion." (TeX-argument-insert (completing-read (TeX-argument-prompt nil nil "Theme") (mapcar 'list (cond ((eq LaTeX-beamer-themes 'local) (set (make-local-variable 'LaTeX-beamer-themes) (LaTeX-beamer-search-themes))) ((functionp LaTeX-beamer-themes) (funcall LaTeX-beamer-themes)) ((listp LaTeX-beamer-themes) LaTeX-beamer-themes) (t (error "`LaTeX-beamer-themes' should be a list: `%s'" LaTeX-beamer-themes)))) nil nil nil) t)) (defun LaTeX-arg-beamer-inner-theme (&rest _ignore) "Prompt for beamer inner theme with completion." (TeX-argument-insert (completing-read (TeX-argument-prompt nil nil "Theme") (mapcar 'list (cond ((eq LaTeX-beamer-inner-themes 'local) (set (make-local-variable 'LaTeX-beamer-inner-themes) (LaTeX-beamer-search-themes "^beamerinnertheme"))) ((functionp LaTeX-beamer-inner-themes) (funcall LaTeX-beamer-inner-themes)) ((listp LaTeX-beamer-inner-themes) LaTeX-beamer-inner-themes) (t (error "`LaTeX-beamer-inner-themes' should be a list: `%s'" LaTeX-beamer-inner-themes)))) nil nil nil) t)) (defun LaTeX-arg-beamer-outer-theme (&rest _ignore) "Prompt for beamer outer theme with completion." (TeX-argument-insert (completing-read (TeX-argument-prompt nil nil "Theme") (mapcar 'list (cond ((eq LaTeX-beamer-outer-themes 'local) (set (make-local-variable 'LaTeX-beamer-outer-themes) (LaTeX-beamer-search-themes "^beameroutertheme"))) ((functionp LaTeX-beamer-outer-themes) (funcall LaTeX-beamer-outer-themes)) ((listp LaTeX-beamer-outer-themes) LaTeX-beamer-outer-themes) (t (error "`LaTeX-beamer-outer-themes' should be a list: `%s'" LaTeX-beamer-outer-themes)))) nil nil nil) t)) (defun LaTeX-arg-beamer-color-theme (&rest _ignore) "Prompt for beamer color theme with completion." (TeX-argument-insert (completing-read (TeX-argument-prompt nil nil "Theme") (mapcar 'list (cond ((eq LaTeX-beamer-color-themes 'local) (set (make-local-variable 'LaTeX-beamer-color-themes) (LaTeX-beamer-search-themes "^beamercolortheme"))) ((functionp LaTeX-beamer-color-themes) (funcall LaTeX-beamer-color-themes)) ((listp LaTeX-beamer-color-themes) LaTeX-beamer-color-themes) (t (error "`LaTeX-beamer-color-themes' should be a list: `%s'" LaTeX-beamer-color-themes)))) nil nil nil) t)) (defun LaTeX-arg-beamer-font-theme (&rest _ignore) "Prompt for beamer font theme with completion." (TeX-argument-insert (completing-read (TeX-argument-prompt nil nil "Theme") (mapcar 'list (cond ((eq LaTeX-beamer-font-themes 'local) (set (make-local-variable 'LaTeX-beamer-font-themes) (LaTeX-beamer-search-themes "^beamerfonttheme"))) ((functionp LaTeX-beamer-font-themes) (funcall LaTeX-beamer-font-themes)) ((listp LaTeX-beamer-font-themes) LaTeX-beamer-font-themes) (t (error "`LaTeX-beamer-font-themes' should be a list: `%s'" LaTeX-beamer-font-themes)))) nil nil nil) t)) (defun LaTeX-beamer-class-options () "Read the beamer class options from the user." (TeX-read-key-val t '(("usepdftitle" ("false")) ("envcountsect") ("notheorems") ("noamsthm") ("compress") ("t") ("c") ("leqno") ("fleqn") ("handout") ("trans") ("pdftex") ("nativepdf") ("pdfmark") ("dvips") ("dviwindo") ("dvipsone") ("vtex") ("ps2pdf") ("ignorenonframetext") ("noamssymb") ("bigger") ("smaller") ("8pt") ("9pt") ("10pt") ("11pt") ("12pt") ("14pt") ("17pt") ("20pt") ("draft") ("CJK") ("cjk") ("pgf") ("hyperref" LaTeX-hyperref-package-options-list) ("color") ("xcolor") ("ucs") ("utf8x") ("utf8") ("aspectratio" ("1610" "169" "149" "54" "43" "32"))))) ;;; beamer.el ends here auctex-11.91/style/biblatex.el000066400000000000000000000645231313533625700163140ustar00rootroot00000000000000;;; biblatex.el --- AUCTeX style for `biblatex.sty' version 2.8a. ;; Copyright (C) 2012-2014, 2016 Free Software Foundation, Inc. ;; Author: Ralf Angeli ;; Maintainer: auctex-devel@gnu.org ;; Created: 2012-11-14 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `biblatex.sty' version 2.8a. ;;; Code: (defvar LaTeX-biblatex-entrytype '(;; Regular Types "article" "book" "mvbook" "inbook" "bookinbook" "suppbook" "booklet" "collection" "mvcollection" "incollection" "suppcollection" "manual" "misc" "online" "patent" "periodical" "suppperiodical" "proceedings" "mvproceedings" "inproceedings" "reference" "mvreference" "inreference" "report" "set" "thesis" "unpublished" "xdata" "customa" "customb" "customc" "customd" "custome" "customf" ;; Type Aliases "conference" "electronic" "masterthesis" "phdthesis" "techreport" "www" ;; Unsupported Types "artwork" "audio" "bibnote" "commentary" "image" "jurisdiction" "legislation" "legal" "letter" "movie" "music" "performance" "review" "software" "standard" "video") "List of biblatex entry types.") (defvar LaTeX-biblatex-executebibliographyoptions-options '(;; General ("sorting" ("nty" "nyt" "nyvt" "anyt" "anyvt" "ynt" "ydnt" "none" "debug")) ("sortcase" ("true" "false")) ("sortupper" ("true" "false")) ("sortlocale") ("sortlos" ("bib" "los")) ("related" ("true" "false")) ("sortcites" ("true" "false")) ("maxnames") ("minnames") ("maxbibnames") ("minbibnames") ("maxcitenames") ("mincitenames") ("maxitems") ("minitems") ("autocite" ("plain" "inline" "footnote" "superscript")) ("autopunct" ("true" "false")) ("language" (append LaTeX-biblatex-language-list '("autobib" "autocite" "auto"))) ("clearlang" ("true" "false")) ("autolang" ("none" "hyphen" "other" "other*" "langname")) ("block" ("none" "space" "par" "nbpar" "ragged")) ("notetype" ("foot+end" "footonly" "endonly")) ("hyperref" ("true" "false" "auto")) ("backref" ("true" "false")) ("backrefstyle" ("none" "three" "two" "two+" "three+" "all+")) ("backrefsetstyle" ("setonly" "memonly" "setormem" "setandmem" "memandset" "setplusmem")) ("indexing" ("true" "false" "cite" "bib")) ("loadfiles" ("true" "false")) ("refsection" ("none" "part" "chapter" "section" "subsection")) ("refsegment" ("none" "part" "chapter" "section" "subsection")) ("citereset" ("none" "part" "chapter" "section" "subsection")) ("abbreviate" ("true" "false")) ("date" ("short" "long" "terse" "comp" "iso8601")) ("datelabel" ("year" "short" "long" "terse" "comp" "iso8601")) ("origdate" ("short" "long" "terse" "comp" "iso8601")) ("eventdate" ("short" "long" "terse" "comp" "iso8601")) ("urldate" ("short" "long" "terse" "comp" "iso8601")) ("alldates" ("short" "long" "terse" "comp" "iso8601")) ("datezeros" ("true" "false")) ("dateabbrev" ("true" "false")) ("defernumbers" ("true" "false")) ("punctfont" ("true" "false")) ("arxiv" ("abs" "ps" "pdf" "format")) ("texencoding" ("auto")) ("bibencoding" ("auto")) ("safeinputenc" ("true" "false")) ("bibwarn" ("true" "false")) ("mincrossrefs") ;; Style-specific ("isbn" ("true" "false")) ("url" ("true" "false")) ("doi" ("true" "false")) ("eprint" ("true" "false")) ;; Internal ("pagetracker" ("true" "false" "page" "spread")) ("citecounter" ("true" "false" "context")) ("citetracker" ("true" "false" "context" "strict" "constrict")) ("ibidtracker" ("true" "false" "context" "strict" "constrict")) ("opcittracker" ("true" "false" "context" "strict" "constrict")) ("loccittracker" ("true" "false" "context" "strict" "constrict")) ("idemtracker" ("true" "false" "context" "strict" "constrict")) ("parentracker" ("true" "false")) ("maxparens") ("firstinits" ("true" "false")) ("sortfirstinits" ("true" "false")) ("terseinits" ("true" "false")) ("labelalpha" ("true" "false")) ("maxalphanames") ("minalphanames") ("labelnumber" ("true" "false")) ("labeltitle" ("true" "false")) ("labeltitleyear" ("true" "false")) ("labeldate" ("true" "false")) ("singletitle" ("true" "false")) ("uniquename" ("true" "false" "init" "full" "allinit" "allfull" "mininit" "minfull")) ("uniquelist" ("true" "false" "minyear"))) "Key=value options for ExecuteBibliographyOptions macro of the biblatex package.") ;; See table 2 of Biblatex reference manual. (defvar LaTeX-biblatex-language-list '("catalan" "croatian" "czech" "danish" "dutch" "american" "british" "canadian" "australian" "newzealand" "finnish" "french" "german" "austrian" "ngernam" "naustrian" "greek" "italian" "norwegian" "polish" "brazilian" "portuguese" "russian" "spanish" "swedish") "List of languages supported by biblatex packages.") (defvar LaTeX-biblatex-addbibresource-options '(("label") ("location" ("local" "remote")) ("type" ("file")) ("datatype" ("bibtex" "ris" "zoterordfxml" "endnotexml"))) "Key=value options for addbibresource macro of the biblatex package.") (defun LaTeX-arg-addbibresource (optional &optional prompt) "Prompt for a BibLaTeX database file. If OPTIONAL is non-nil, insert the resulting value as an optional argument, otherwise as a mandatory one. Use PROMPT as the prompt string." (let (files inputs database) (if LaTeX-using-Biber (setq files 'TeX-Biber-global-files inputs 'biberinputs) (setq files 'BibTeX-global-files inputs 'bibinputs)) (setq files 'TeX-Biber-global-files inputs 'biberinputs) (message "Searching for BibLaTeX files...") (or (symbol-value files) (set files (mapcar 'list (TeX-search-files-by-type 'biberinputs 'global t nil)))) (setq database (completing-read (TeX-argument-prompt optional prompt "BibLaTeX files") (append (mapcar 'list (TeX-search-files-by-type inputs 'local t nil)) (symbol-value files)))) (LaTeX-add-bibliographies database) ;; Run style file associated to the bibliography database file in order to ;; immediately fill `LaTeX-bibitem-list'. We need to strip the extension ;; because AUCTeX style files don't use it. (TeX-run-style-hooks (file-name-sans-extension database)) (TeX-argument-insert database optional))) ;; Support for multicite commands, see § 3.7.3 of Biblatex reference manual. (defun LaTeX-arg-biblatex-cites (optional &optional prompt) "Prompt for citations with completion until input is empty. Prompt also for optional prenotes and postnotes. If OPTIONAL is non-nil, insert the citation key as an optional argument, otherwise as a mandatory one. Use PROMPT as the prompt string for citation keys." ;; Prompt for global prenote and postnote. (and TeX-arg-cite-note-p (not current-prefix-arg) (let ((TeX-arg-opening-brace "(") (TeX-arg-closing-brace ")") (prenote (TeX-read-string (TeX-argument-prompt t nil "Global prenote")))) (TeX-argument-insert prenote t) ;; If the prenote is empty the postnote is optional, otherwise it's ;; mandatory. (TeX-argument-insert (TeX-read-string (TeX-argument-prompt t nil "Global postnote")) (equal prenote "")))) (let ((items t) (noinsert nil)) (while items ;; Prompt for prenote and postnote of the current keys. (and TeX-arg-cite-note-p (not current-prefix-arg) (let ((TeX-arg-opening-brace "[") (TeX-arg-closing-brace "]") (prenote (TeX-read-string (TeX-argument-prompt t nil "Prenote")))) (TeX-argument-insert prenote t) ;; If the prenote is empty the postnote is optional, otherwise it's ;; mandatory. (TeX-argument-insert (TeX-read-string (TeX-argument-prompt t nil "Postnote")) (equal prenote "")))) (setq items (if (and (fboundp 'reftex-citation) (fboundp 'reftex-plug-flag) (reftex-plug-flag 3)) ;; Use RefTeX when enabled. (reftex-citation t) ;; Multiple citation keys in each argument are allowed. (TeX-completing-read-multiple (TeX-argument-prompt optional prompt "Key(s)") (LaTeX-bibitem-list)))) (apply 'LaTeX-add-bibitems items) ;; If input is empty, insert an empty group only the first time, when ;; `noinsert' flag is nil. (unless (and (not items) noinsert) (TeX-argument-insert (mapconcat 'identity items ",") optional)) (setq noinsert t)))) (defun LaTeX-arg-biblatex-natbib-notes (optional) "Prompt for two note arguments of a natbib compat citation command." (when TeX-arg-cite-note-p (let ((pre (TeX-read-string (TeX-argument-prompt optional nil "Prenote"))) (post (TeX-read-string (TeX-argument-prompt optional nil "Postnote")))) (TeX-argument-insert pre optional) (TeX-argument-insert post optional) ;; pre is given, post is empty: Make sure that we insert an ;; extra pair of `[]', otherwise pre becomes post (when (and pre (not (string= pre "")) (string= post "")) (insert LaTeX-optop LaTeX-optcl))))) (TeX-add-style-hook "biblatex" (lambda () ;; Biblatex uses as default backend biber, run it unless biblatex `backend' ;; option value is one of `bibtex', `bibtex8', `bibtexu'. Autodetection of ;; the backend can be overridden by setting `LaTeX-biblatex-use-Biber' as a ;; local variable. (setq LaTeX-using-Biber (if (local-variable-p 'LaTeX-biblatex-use-Biber (current-buffer)) LaTeX-biblatex-use-Biber (not (or (LaTeX-provided-package-options-member "biblatex" "backend=bibtex") (LaTeX-provided-package-options-member "biblatex" "backend=bibtex8") (LaTeX-provided-package-options-member "biblatex" "backend=bibtexu"))))) (TeX-run-style-hooks "etoolbox" "keyval" "kvoptions" "logreq" "ifthen" "url") (TeX-add-symbols ;;; Global Customization ;; Setting Package Options '("ExecuteBibliographyOptions" [TeX-arg-eval mapconcat 'identity (TeX-completing-read-multiple "Entry type: " LaTeX-biblatex-entrytype) ","] (TeX-arg-key-val LaTeX-biblatex-executebibliographyoptions-options)) ;;; Bibliography Commands ;; Resources '("addbibresource" [TeX-arg-key-val LaTeX-biblatex-addbibresource-options] LaTeX-arg-addbibresource) '("addglobalbib" [TeX-arg-key-val LaTeX-biblatex-addbibresource-options] LaTeX-arg-addbibresource) '("addsectionbib" [TeX-arg-key-val LaTeX-biblatex-addbibresource-options] LaTeX-arg-addbibresource) ;; The Bibliography '("printbibliography" [TeX-arg-key-val (("env") ("heading") ("title") ("prenote") ("postnote") ("section") ("segment") ("sorting") ("type") ("nottype") ("subtype") ("notsubtype") ("keyword") ("notkeyword") ("categoy") ("notcategory") ("filter") ("check") ("prefixnumbers") ("resetnumbers" ("true" "false")) ("omitnumbers" ("true" "false")))]) '("bibbysection" [TeX-arg-key-val (("env") ("heading") ("prenote") ("postnote"))]) '("bibbysegment" [TeX-arg-key-val (("env") ("heading") ("prenote") ("postnote"))]) '("bibbycategory" [TeX-arg-key-val (("env") ("prenote") ("postnote") ("section"))]) '("printbibheading" [TeX-arg-key-val (("heading") ("title"))]) ;; The List of Shorthands '("printshorthands" [TeX-arg-key-val (("env") ("heading") ("title") ("prenote") ("postnote") ("section") ("segment") ("sorting") ("type") ("nottype") ("subtype") ("notsubtype") ("keyword") ("notkeyword") ("categoy") ("notcategory") ("filter") ("check"))]) ;; Bibliography Sections '("newrefsection" ["Resources"]) "endrefsection" ;; Bibliography Segments "newrefsegment" "endrefsegment" ;; Bibliography Categories '("DeclareBibliographyCategory" "Category") '("addtocategory" "Category" TeX-arg-cite) ;; Bibliography Headings and Environments '("defbibenvironment" "Name" 3) '("defbibheading" "Name" ["Title"] t) ;; Bibliography Notes '("defbibnote" "Name" "Text") ;; Bibliography Filters and Checks '("defbibfilter" "Name" t) '("defbibcheck" "Name" t) ;; Dynamic Entry Sets '("defbibentryset" "Set" (TeX-arg-eval mapconcat 'identity (TeX-completing-read-multiple "Keys: " (LaTeX-bibitem-list)) ",")) ;;; Citation Commands '("cite" (TeX-arg-conditional TeX-arg-cite-note-p (["Prenote"] ["Postnote"]) ()) TeX-arg-cite) '("Cite" (TeX-arg-conditional TeX-arg-cite-note-p (["Prenote"] ["Postnote"]) ()) TeX-arg-cite) '("parencite" (TeX-arg-conditional TeX-arg-cite-note-p (["Prenote"] ["Postnote"]) ()) TeX-arg-cite) '("Parencite" (TeX-arg-conditional TeX-arg-cite-note-p (["Prenote"] ["Postnote"]) ()) TeX-arg-cite) '("footcite" (TeX-arg-conditional TeX-arg-cite-note-p (["Prenote"] ["Postnote"]) ()) TeX-arg-cite) '("footcitetext" (TeX-arg-conditional TeX-arg-cite-note-p (["Prenote"] ["Postnote"]) ()) TeX-arg-cite) ;; Style-specific Commands '("textcite" (TeX-arg-conditional TeX-arg-cite-note-p (["Prenote"] ["Postnote"]) ()) TeX-arg-cite) '("Textcite" (TeX-arg-conditional TeX-arg-cite-note-p (["Prenote"] ["Postnote"]) ()) TeX-arg-cite) '("smartcite" (TeX-arg-conditional TeX-arg-cite-note-p (["Prenote"] ["Postnote"]) ()) TeX-arg-cite) '("Smartcite" (TeX-arg-conditional TeX-arg-cite-note-p (["Prenote"] ["Postnote"]) ()) TeX-arg-cite) '("cite*" (TeX-arg-conditional TeX-arg-cite-note-p (["Prenote"] ["Postnote"]) ()) TeX-arg-cite) '("parencite*" (TeX-arg-conditional TeX-arg-cite-note-p (["Prenote"] ["Postnote"]) ()) TeX-arg-cite) '("supercite" (TeX-arg-conditional TeX-arg-cite-note-p (["Prenote"] ["Postnote"]) ()) TeX-arg-cite) ;; Qualified Citation Lists '("cites" LaTeX-arg-biblatex-cites) '("Cites" LaTeX-arg-biblatex-cites) '("parencites" LaTeX-arg-biblatex-cites) '("Parencites" LaTeX-arg-biblatex-cites) '("footcites" LaTeX-arg-biblatex-cites) '("footcitetexts" LaTeX-arg-biblatex-cites) '("smartcites" LaTeX-arg-biblatex-cites) '("Smartcites" LaTeX-arg-biblatex-cites) '("textcites" LaTeX-arg-biblatex-cites) '("Textcites" LaTeX-arg-biblatex-cites) '("supercites" LaTeX-arg-biblatex-cites) ;; Style-independent Commands '("autocite" (TeX-arg-conditional TeX-arg-cite-note-p (["Prenote"] ["Postnote"]) ()) TeX-arg-cite) '("Autocite" (TeX-arg-conditional TeX-arg-cite-note-p (["Prenote"] ["Postnote"]) ()) TeX-arg-cite) '("autocite*" (TeX-arg-conditional TeX-arg-cite-note-p (["Prenote"] ["Postnote"]) ()) TeX-arg-cite) '("Autocite*" (TeX-arg-conditional TeX-arg-cite-note-p (["Prenote"] ["Postnote"]) ()) TeX-arg-cite) '("autocites" LaTeX-arg-biblatex-cites) '("Autocites" LaTeX-arg-biblatex-cites) ;; Text Commands '("citeauthor" (TeX-arg-conditional TeX-arg-cite-note-p (["Prenote"] ["Postnote"]) ()) TeX-arg-cite) '("Citeauthor" (TeX-arg-conditional TeX-arg-cite-note-p (["Prenote"] ["Postnote"]) ()) TeX-arg-cite) '("citeauthor*" (TeX-arg-conditional TeX-arg-cite-note-p (["Prenote"] ["Postnote"]) ()) TeX-arg-cite) '("Citeauthor*" (TeX-arg-conditional TeX-arg-cite-note-p (["Prenote"] ["Postnote"]) ()) TeX-arg-cite) '("citetitle" (TeX-arg-conditional TeX-arg-cite-note-p (["Prenote"] ["Postnote"]) ()) TeX-arg-cite) '("citetitle*" (TeX-arg-conditional TeX-arg-cite-note-p (["Prenote"] ["Postnote"]) ()) TeX-arg-cite) '("citeyear" (TeX-arg-conditional TeX-arg-cite-note-p (["Prenote"] ["Postnote"]) ()) TeX-arg-cite) '("citeyear*" (TeX-arg-conditional TeX-arg-cite-note-p (["Prenote"] ["Postnote"]) ()) TeX-arg-cite) '("citedate" (TeX-arg-conditional TeX-arg-cite-note-p (["Prenote"] ["Postnote"]) ()) TeX-arg-cite) '("citedate*" (TeX-arg-conditional TeX-arg-cite-note-p (["Prenote"] ["Postnote"]) ()) TeX-arg-cite) '("citeurl" (TeX-arg-conditional TeX-arg-cite-note-p (["Prenote"] ["Postnote"]) ()) TeX-arg-cite) '("parentext" "Text") '("brackettext" "Text") ;; Special Commands '("fullcite" (TeX-arg-conditional TeX-arg-cite-note-p (["Prenote"] ["Postnote"]) ()) TeX-arg-cite) '("footfullcite" (TeX-arg-conditional TeX-arg-cite-note-p (["Prenote"] ["Postnote"]) ()) TeX-arg-cite) '("volcite" (TeX-arg-conditional TeX-arg-cite-note-p (["Prenote"]) ()) "Volume" (TeX-arg-conditional TeX-arg-cite-note-p (["Page"]) ()) TeX-arg-cite) '("Volcite" (TeX-arg-conditional TeX-arg-cite-note-p (["Prenote"]) ()) "Volume" (TeX-arg-conditional TeX-arg-cite-note-p (["Page"]) ()) TeX-arg-cite) '("Pvolcite" (TeX-arg-conditional TeX-arg-cite-note-p (["Prenote"]) ()) "Volume" (TeX-arg-conditional TeX-arg-cite-note-p (["Page"]) ()) TeX-arg-cite) '("Pvolcite" (TeX-arg-conditional TeX-arg-cite-note-p (["Prenote"]) ()) "Volume" (TeX-arg-conditional TeX-arg-cite-note-p (["Page"]) ()) TeX-arg-cite) '("fvolcite" (TeX-arg-conditional TeX-arg-cite-note-p (["Prenote"]) ()) "Volume" (TeX-arg-conditional TeX-arg-cite-note-p (["Page"]) ()) TeX-arg-cite) '("ftolcite" (TeX-arg-conditional TeX-arg-cite-note-p (["Prenote"]) ()) "Volume" (TeX-arg-conditional TeX-arg-cite-note-p (["Page"]) ()) TeX-arg-cite) '("svolcite" (TeX-arg-conditional TeX-arg-cite-note-p (["Prenote"]) ()) "Volume" (TeX-arg-conditional TeX-arg-cite-note-p (["Page"]) ()) TeX-arg-cite) '("Svolcite" (TeX-arg-conditional TeX-arg-cite-note-p (["Prenote"]) ()) "Volume" (TeX-arg-conditional TeX-arg-cite-note-p (["Page"]) ()) TeX-arg-cite) '("tvolcite" (TeX-arg-conditional TeX-arg-cite-note-p (["Prenote"]) ()) "Volume" (TeX-arg-conditional TeX-arg-cite-note-p (["Page"]) ()) TeX-arg-cite) '("Tvolcite" (TeX-arg-conditional TeX-arg-cite-note-p (["Prenote"]) ()) "Volume" (TeX-arg-conditional TeX-arg-cite-note-p (["Page"]) ()) TeX-arg-cite) '("avolcite" (TeX-arg-conditional TeX-arg-cite-note-p (["Prenote"]) ()) "Volume" (TeX-arg-conditional TeX-arg-cite-note-p (["Page"]) ()) TeX-arg-cite) '("Avolcite" (TeX-arg-conditional TeX-arg-cite-note-p (["Prenote"]) ()) "Volume" (TeX-arg-conditional TeX-arg-cite-note-p (["Page"]) ()) TeX-arg-cite) '("notecite" (TeX-arg-conditional TeX-arg-cite-note-p (["Prenote"] ["Postnote"]) ()) TeX-arg-cite) '("Notecite" (TeX-arg-conditional TeX-arg-cite-note-p (["Prenote"] ["Postnote"]) ()) TeX-arg-cite) '("pnotecite" (TeX-arg-conditional TeX-arg-cite-note-p (["Prenote"] ["Postnote"]) ()) TeX-arg-cite) '("Pnotecite" (TeX-arg-conditional TeX-arg-cite-note-p (["Prenote"] ["Postnote"]) ()) TeX-arg-cite) '("fnotecite" (TeX-arg-conditional TeX-arg-cite-note-p (["Prenote"] ["Postnote"]) ()) TeX-arg-cite) ;; Low-level Commands '("citename" (TeX-arg-conditional TeX-arg-cite-note-p (["Prenote"] ["Postnote"]) ()) TeX-arg-cite (TeX-arg-conditional TeX-arg-cite-note-p (["Format"]) ()) "Name list") '("citelist" (TeX-arg-conditional TeX-arg-cite-note-p (["Prenote"] ["Postnote"]) ()) TeX-arg-cite (TeX-arg-conditional TeX-arg-cite-note-p (["Format"]) ()) "Literal list") '("citefield" (TeX-arg-conditional TeX-arg-cite-note-p (["Prenote"] ["Postnote"]) ()) TeX-arg-cite (TeX-arg-conditional TeX-arg-cite-note-p (["Format"]) ()) "Field") ;; Miscellaneous Commands "citereset" "citereset*" "mancite" "pno" "ppno" "nopp" "psq" "psqq" '("RN" "Integer") '("Rn" "Integer") ;; Localization Commands '("DefineBibliographyStrings" (TeX-arg-eval completing-read "Language: " LaTeX-biblatex-language-list) t) '("DefineBibliographyExtras" (TeX-arg-eval completing-read "Language: " LaTeX-biblatex-language-list) t) '("UndefineBibliographyExtras" (TeX-arg-eval completing-read "Language: " LaTeX-biblatex-language-list) t) '("DefineHyphenationExceptions" (TeX-arg-eval completing-read "Language: " LaTeX-biblatex-language-list) t) "NewBibliographyString") ;; § 3.8.9 natbib Compatibility Commands (when (or (LaTeX-provided-package-options-member "biblatex" "natbib") (LaTeX-provided-package-options-member "biblatex" "natbib=true")) (let ((cmds '(("citet" . 1) ("citet*" . 1) ("Citet" . 1) ("Citet*" . 1) ("citep" . 2) ("citep*" . 2) ("Citep" . 2) ("Citep*" . 2) ("citealt" . 1) ("citealt*" . 1) ("Citealt" . 1) ("Citealt*" . 1) ("citealp" . 2) ("citealp*" . 2) ("Citealp" . 2) ("Citealp*" . 2)))) ;; Taken from natbib.el: (apply #'TeX-add-symbols (mapcar (lambda (cmd) (cond ((= (cdr cmd) 1) ;; Just one optional argument, the post note (list (car cmd) '(TeX-arg-conditional TeX-arg-cite-note-p (["Postnote"]) nil) 'TeX-arg-cite)) ((= (cdr cmd) 2) ;; Pre and post notes (list (car cmd) '(TeX-arg-conditional TeX-arg-cite-note-p ([LaTeX-arg-biblatex-natbib-notes]) nil) 'TeX-arg-cite)))) cmds)) ;; Fontification for compat macros does not go into `font-latex.el': (when (and (featurep 'font-latex) (eq TeX-install-font-lock 'font-latex-setup)) (font-latex-add-keywords '(("citet" "*[[{") ("Citet" "*[[{") ("citep" "*[[{") ("Citep" "*[[{") ("citealt" "*[[{") ("Citealt" "*[[{") ("citealp" "*[[{") ("Citealp" "*[[{")) 'biblatex)))) (LaTeX-add-environments ;;; Bibliography commands ;; Bibliography Sections '("refsection" ["Resources"]) ;; Bibliography Segments "refsegment") ;; Declaring expert macros and environments. Criterion: all macros and ;; environments to fine tune the bibliography, probably they will be used ;; only by expert users. (TeX-declare-expert-macros "biblatex" "ExecuteBibliographyOptions" "printshorthands" "newrefsection" "endrefsection" "newrefsegment" "endrefsegment" "DeclareBibliographyCategory" "addtocategory" "defbibenvironment" "defbibheading" "defbibnote" "defbibfilter" "defbibcheck" "defbibentryset" "citereset" "citereset*" "mancite" "pno" "ppno" "nopp" "psq" "psqq" "RN" "Rn" "DefineBibliographyStrings" "DefineBibliographyExtras" "UndefineBibliographyExtras" "DefineHyphenationExceptions" "NewBibliographyString") (LaTeX-declare-expert-environments "biblatex" "refsection" "refsegment") ;; Tell RefTeX: If package option `natbib' is given, activate that ;; format, otherwise stick with `biblatex': (when (and LaTeX-reftex-cite-format-auto-activate (fboundp 'reftex-set-cite-format)) (if (or (LaTeX-provided-package-options-member "biblatex" "natbib") (LaTeX-provided-package-options-member "biblatex" "natbib=true")) (reftex-set-cite-format 'natbib) ;; The entry `biblatex' is defined in ;; `reftex-cite-format-builtin' in reftex-vars.el which will be ;; part of Emacs >= 25.3. So check here if we find an entry, ;; otherwise do it manually for older Emacsen. (if (assoc 'biblatex reftex-cite-format-builtin) (reftex-set-cite-format 'biblatex) (reftex-set-cite-format '((?\C-m . "\\cite[][]{%l}") (?C . "\\cite*[][]{%l}") (?t . "\\textcite[][]{%l}") (?T . "\\textcite*[][]{%l}") (?p . "\\parencite[][]{%l}") (?P . "\\parencite*[][]{%l}") (?f . "\\footcite[][]{%l}") (?s . "\\smartcite[][]{%l}") (?u . "\\autocite[][]{%l}") (?U . "\\autocite*[][]{%l}") (?a . "\\citeauthor{%l}") (?A . "\\citeauthor*{%l}") (?i . "\\citetitle{%l}") (?I . "\\citetitle*{%l}") (?y . "\\citeyear{%l}") (?Y . "\\citeyear*{%l}") (?n . "\\nocite{%l}"))))))) LaTeX-dialect) (defvar LaTeX-biblatex-package-options-list (append ;;; Preamble Options LaTeX-biblatex-executebibliographyoptions-options '(;;; Load-time Options ("backend" ("biber" "bibtex" "bibtexu" "bibtex8")) ("style" BibLaTeX-global-style-files) ("bibstyle" BibLaTeX-global-style-files) ("citestyle" BibLaTeX-global-style-files) ("natbib" ("true" "false")) ("mcite" ("true" "false")) ;;; Entry Options ;; Preamble/Type/Entry Options ("useauthor" ("true" "false")) ("useeditor" ("true" "false")) ("usetranslator" ("true" "false")) ("useprefix" ("true" "false")) ("indexing" ("true" "false" "cite" "bib")) ;; Type/Entry Options are not available globally. ;; Legacy Options (deprecated) ("openbib"))) "Package options for the biblatex package.") (defun LaTeX-biblatex-package-options nil "Prompt for package options for the biblatex package." (unless BibLaTeX-global-style-files (if (if (eq TeX-arg-input-file-search 'ask) (not (y-or-n-p "Find BibLaTeX style yourself? ")) TeX-arg-input-file-search) ;; ...then, search for BibLaTeX styles. (progn (message "Searching for BibLaTeX styles...") (setq BibLaTeX-global-style-files (TeX-search-files-by-type 'bbxinputs 'global t t))) ;; ...else, use for completion only standard BibLaTeX styles (see §3.3 of ;; Biblatex reference manual). (setq BibLaTeX-global-style-files '("numeric" "numeric-comp" "numeric-verb" "alphabetic" "alphabetic-verb" "authoryear" "authoryear-comp" "authoryear-ibid" "authoryear-icomp" "authortitle" "authortitle-comp" "authortitle-ibid" "authortitle-icomp" "authortitle-terse" "authortitle-tcomp" "authortitle-ticomp" "verbose" "verbose-ibid" "verbose-note" "verbose-inote" "verbose-trad1" "verbose-trad2" "verbose-trad3" "reading" "draft" "debug")))) (TeX-read-key-val t LaTeX-biblatex-package-options-list)) ;;; biblatex.el ends here auctex-11.91/style/bicaption.el000066400000000000000000000157631313533625700164740ustar00rootroot00000000000000;;; bicaption.el --- AUCTeX style for `bicaption.sty' (v1.1-158) ;; Copyright (C) 2016, 2017 Free Software Foundation, Inc. ;; Author: Arash Esbati ;; Maintainer: auctex-devel@gnu.org ;; Created: 2016-11-11 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `bicaption.sty' (v1.1-158) from ;; 2016/03/27. `bicaption.sty' is part of TeXLive. ;; If things do not work or when in doubt, press `C-c C-n'. Comments ;; for improvement are welcome. ;;; Code: (defvar LaTeX-bicaption-key-val-options '(("bi-lang" ("first" "second" "both")) ("bi-singlelinecheck" ("false" "no" "off" "0" "true" "yes" "on" "1")) ("bi-slc" ("false" "no" "off" "0" "true" "yes" "on" "1")) ("bi-swap" ("false" "no" "off" "0" "true" "yes" "on" "1")) ("listtype+")) "Key=value options for bicaption macros.") (defun LaTeX-arg-bicaption-bicaption (optional &optional prompt star cap-box label-inside) "Query for the arguments of \"\\bicaption\" incl. a label and insert them. PROMPT replaces the standard one. If STAR is non-nil, then do not query for a \\label and short captions, insert only captions. If CAP-BOX is non-nil, also query and include optional arguments for the box command. If LABEL-INSIDE is non-nil, insert \\label inside the first mandatory argument, otherwise after all arguments." (let* (;; \bisubcaption needs an environment, "minipage" will be ;; popular. If so, check next higher environment to find out ;; where we are (currenv (if (string= (LaTeX-current-environment) "minipage") (LaTeX-current-environment 2) (LaTeX-current-environment))) (captionI (TeX-read-string (TeX-argument-prompt optional (when prompt (concat "1. " prompt "bicaption")) "1. bicaption"))) (short-captionI (when (and (not star) (>= (length captionI) LaTeX-short-caption-prompt-length)) (TeX-read-string (TeX-argument-prompt t (when prompt (concat "Short 1. " prompt "bicaption")) "Short 1. bicaption")))) (captionII (TeX-read-string (TeX-argument-prompt optional (when prompt (concat "2. " prompt "bicaption")) "2. bicaption"))) (short-captionII (when (and (not star) (>= (length captionII) LaTeX-short-caption-prompt-length)) (TeX-read-string (TeX-argument-prompt t (when prompt (concat "Short 2. " prompt "bicaption")) "Short 2. bicaption"))))) (indent-according-to-mode) ;; Insert short & regular 1. caption (when (and short-captionI (not (string= short-captionI ""))) (insert LaTeX-optop short-captionI LaTeX-optcl)) (insert TeX-grop captionI) ;; For \bi(sub)?captionbox, the label must be inserted here (when (and label-inside (not star)) (LaTeX-label currenv 'environment)) (insert TeX-grcl) (LaTeX-fill-paragraph) (LaTeX-newline) (indent-according-to-mode) ;; Insert short & regular 2. caption (when (and short-captionII (not (string= short-captionII ""))) (insert LaTeX-optop short-captionII LaTeX-optcl)) (insert TeX-grop captionII TeX-grcl) ;; Insert width & pos in case of captionbox macros: (when cap-box (let* ((TeX-arg-opening-brace "[") (TeX-arg-closing-brace "]") (width (completing-read (TeX-argument-prompt t nil "Width") (mapcar (lambda (elt) (concat TeX-esc (car elt))) (LaTeX-length-list)))) (inpos (if (and width (not (string-equal width ""))) (completing-read (TeX-argument-prompt t nil "Inner position") '("c" "l" "r" "s")) ""))) (TeX-argument-insert width t) (TeX-argument-insert inpos t))) (LaTeX-fill-paragraph) ;; Insert label -- a new line is inserted only if label is there: (when (and (not label-inside) (not star) (save-excursion (LaTeX-label currenv 'environment))) (LaTeX-newline) (indent-according-to-mode) (end-of-line)))) (defun LaTeX-arg-bicaption-captionsetup (optional) "Query for 2 arguments for \"\\captionsetup\" with bicaption.sty loaded. When OPTIONAL is non-nil, include both as optional arguments in square brackets." (let* ((flttype (completing-read (TeX-argument-prompt optional nil "Float type") LaTeX-caption-supported-float-types)) (biflt (if (and (not (or (string= flttype "bi") (string= flttype "bi-first") (string= flttype "bi-second"))) flttype (not (string= flttype ""))) (completing-read (TeX-argument-prompt optional nil "Bicaption type") '("bi" "bi-first" "bi-second")) ""))) (TeX-argument-insert flttype optional) (TeX-argument-insert biflt optional))) (TeX-add-style-hook "bicaption" (lambda () ;; Load caption.el: (TeX-run-style-hooks "caption") ;; Macros (TeX-add-symbols '("bicaption" (LaTeX-arg-bicaption-bicaption)) '("bicaption*" (LaTeX-arg-bicaption-bicaption nil t)) '("bicaptionbox" (LaTeX-arg-bicaption-bicaption nil nil t t) t) '("bicaptionbox*" (LaTeX-arg-bicaption-bicaption nil t t) t) '("bisubcaption" (LaTeX-arg-bicaption-bicaption "sub-")) '("bisubcaption*" (LaTeX-arg-bicaption-bicaption "sub-" t)) '("bisubcaptionbox" (LaTeX-arg-bicaption-bicaption "sub-" nil t t) t) '("bisubcaptionbox*" (LaTeX-arg-bicaption-bicaption "sub-" t t t) t)) ;; \bi(sub)?caption(box)? macros should get their own lines (LaTeX-paragraph-commands-add-locally '("bicaption" "bicaptionbox" "bisubcaption" "bisubcaptionbox")) ;; Fontification (when (and (featurep 'font-latex) (eq TeX-install-font-lock 'font-latex-setup)) (font-latex-add-keywords '(("bicaption" "*[{[{") ("bicaptionbox" "*[{[{[[") ("bisubcaption" "*[{[{") ("bisubcaptionbox" "*[{[{[[")) 'textual))) LaTeX-dialect) (defun LaTeX-bicaption-package-options () "Prompt for package options for the bicaption package." (TeX-read-key-val t (append `(,(list "language" (cond ((and (member "babel" (TeX-style-list)) (LaTeX-babel-active-languages)) (butlast (LaTeX-babel-active-languages))) ((and (member "polyglossia" (TeX-style-list)) (LaTeX-polyglossia-active-languages)) (butlast (LaTeX-babel-active-languages))) (t nil)))) LaTeX-bicaption-key-val-options LaTeX-caption-key-val-options))) ;;; bicaption.el ends here auctex-11.91/style/bidi.el000077500000000000000000000027771313533625700154370ustar00rootroot00000000000000;;; bidi.el --- AUCTeX style for the (XeLaTeX) bidi package ;; Copyright (C) 2016 Free Software Foundation, Inc. ;; Author: Uwe Brauer ;; Created: 2016-03-06 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for the bidi package. ;;; Code: (defvar LaTeX-bidi-package-options '("RTLdocument" "rldocument") "Package options for the bidi package.") (TeX-add-style-hook "bidi" (lambda () (TeX-check-engine-add-engines 'xetex) (LaTeX-add-environments "LTR" "RTL") ;; Fontification (TeX-add-symbols '("setRL" 0) '("unsetRL" 0) '("setRTL" 0) '("unsetRTL" 0) '("setLR" 0) '("unsetLR" 0) '("setLTR" 0) '("unsetLTR" 0) '("LR" 1) '("LRE" 1) '("RLE" 1) '("RL" 1))) LaTeX-dialect) ;;; bidi.el ends here auctex-11.91/style/bidibeamer.el000066400000000000000000000023451313533625700165770ustar00rootroot00000000000000;;; bidibeamer.el --- AUCTeX style for the bidibeamer class ;; Copyright (C) 2015 Free Software Foundation ;; Author: Tassilo Horn ;; Created: 2015-03-08 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for the bidibeamer class which offers the same ;; functionality and interface as latex-beamer, so we simply call the style ;; hook of the latter. ;;; Code: (TeX-add-style-hook "bidibeamer" (lambda () (TeX-run-style-hooks "beamer")) LaTeX-dialect) ;;; bidibeamer.el ends here auctex-11.91/style/bigdelim.el000066400000000000000000000033171313533625700162700ustar00rootroot00000000000000;;; bigdelim.el --- AUCTeX style for `bigdelim.sty' ;; Copyright (C) 2011 Free Software Foundation, Inc. ;; Author: Mads Jensen ;; Maintainer: auctex-devel@gnu.org ;; Created: 2011-01-24 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `bigdelim.sty'. ;;; Code: (TeX-add-style-hook "bigdelim" (lambda () (TeX-add-symbols '("ldelim" TeX-arg-bigdelim-brace "Number of rows for multirow" "Width in multirow" [ "Text in multirow" ]) '("rdelim" TeX-arg-bigdelim-brace "Number of rows for multirow" "Width in multirow" [ "Text in multirow" ]))) LaTeX-dialect) (defun TeX-arg-bigdelim-brace (optional &optional prompt) "Prompt for a single brace, and do not insert the matching right parentheses." (let ((brace (read-from-minibuffer (TeX-argument-prompt optional prompt "Brace") nil))) (insert (format "%s" brace)))) (defvar LaTeX-bigdelim-package-options nil "Package options for the bigdelim package.") ;;; bigdelim.el ends here auctex-11.91/style/bigstrut.el000066400000000000000000000030421313533625700163520ustar00rootroot00000000000000;;; bigstrut.el --- AUCTeX style for `bigstrut.sty' ;; Copyright (C) 2012, 2014 Free Software Foundation, Inc. ;; Author: Mads Jensen ;; Maintainer: auctex-devel@gnu.org ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `bigstrut.sty'. ;;; Code: (TeX-add-style-hook "bigstrut" (lambda () (TeX-add-symbols "bigstrutsetup" '("bigstrut" [ TeX-arg-bigstrut ]))) LaTeX-dialect) (defun TeX-arg-bigstrut (optional &optional _prompt) "Prompt for the optional argument in \\bigstrut." (TeX-argument-insert (completing-read (TeX-argument-prompt optional "Strut to top (t) or bottom (b)" nil t) (mapcar 'list '("t" "b")) nil t) optional)) (defvar LaTeX-bigstrut-package-options nil "Package options for the bigstrut package.") ;;; bigstrut.el ends here auctex-11.91/style/bm.el000066400000000000000000000033261313533625700151120ustar00rootroot00000000000000;;; bm.el --- AUCTeX style for `bm.sty'. ;; Copyright (C) 2012 Free Software Foundation, Inc. ;; Maintainer: auctex-devel@gnu.org ;; Author: Mosè Giordano ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `bm.sty'. ;;; Code: (TeX-add-style-hook "bm" (lambda () (TeX-add-symbols '("bm" 1) '("hm" 1) '("DeclareBoldMathCommand" [ "Math version" ] TeX-arg-define-macro "Math expression") '("bmdefine" TeX-arg-define-macro "Math expression") '("hmdefine" TeX-arg-define-macro "Math expression")) ;; Fontification (when (and (featurep 'font-latex) (eq TeX-install-font-lock 'font-latex-setup)) (font-latex-add-keywords '(("bm" "{") ("hm" "{")) 'bold-command) (font-latex-add-keywords '(("DeclareBoldMathCommand" "[|{\\{") ("bmdefine" "|{\\{") ("hmdefine" "|{\\{")) 'function))) LaTeX-dialect) (defvar LaTeX-bm-package-options nil "Package options for the bm package.") ;; bm.el ends here auctex-11.91/style/book.el000066400000000000000000000012571313533625700154470ustar00rootroot00000000000000;;; book.el - Special code for book style. ;;; Code: (defvar LaTeX-book-class-options '("a4paper" "a5paper" "b5paper" "letterpaper" "legalpaper" "executivepaper" "landscape" "10pt" "11pt" "12pt" "oneside" "twoside" "draft" "final" "titlepage" "notitlepage" "openright" "openany" "onecolumn" "twocolumn" "leqno" "fleqn" "openbib") "Package options for the book class.") (TeX-add-style-hook "book" (lambda () (LaTeX-largest-level-set "part") (LaTeX-add-counters "part" "chapter" "section" "subsection" "subsubsection" "paragraph" "subparagraph" "figure" "table") (LaTeX-add-pagestyles "headings" "myheadings")) LaTeX-dialect) ;;; book.el ends here auctex-11.91/style/booktabs.el000066400000000000000000000051561313533625700163230ustar00rootroot00000000000000;;; booktabs.el -- AUCTeX style for booktabs.sty ;; Copyright (C) 2003, 2004, 2013 Free Software Foundation, Inc. ;; Author: Ralf Angeli ;; Maintainer: auctex-devel@gnu.org ;; Created: 2003-10-21 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `booktabs.sty'. ;;; Code: (defun LaTeX-booktabs-arg-paren (optional prompt) "Prompt for a value and use parentheses when it is inserted. If OPTIONAL is non-nil the parameter is labeled as optional. PROMPT is the value of the prompt to be shown." (let ((TeX-arg-opening-brace "\(") (TeX-arg-closing-brace "\)")) (TeX-parse-argument optional prompt))) (TeX-add-style-hook "booktabs" (lambda () ;; Do not append an empty group to toprule, midrule, and bottomrule macros, ;; otherwise one gets a wrong spacing in the table. (setq TeX-insert-braces-alist (append TeX-insert-braces-alist '(("toprule" . nil) ("midrule" . nil) ("bottomrule" . nil)))) ;; New symbols (TeX-add-symbols '("toprule" [ "Thickness" ]) '("midrule" [ "Thickness" ]) '("bottomrule" [ "Thickness" ]) ;; The `ignore' resets `last-optional-rejected' to nil so that the trim ;; argument is prompted also when the thickness is skipped. '("cmidrule" [ "Thickness" ] (ignore) [ LaTeX-booktabs-arg-paren "Trim" ] "Column(s)") '("addlinespace" [ "Height" ]) '("morecmidrules") '("specialrule" "Thickness" "Space above" "Space below")) ;; Fontification (when (and (featurep 'font-latex) (eq TeX-install-font-lock 'font-latex-setup)) (font-latex-add-keywords '(("toprule" "[") ("midrule" "[") ("bottomrule" "[") ("cmidrule" "[({") ("addlinespace" "[") ("morecmidrules" "") ("specialrule" "{{{")) 'function))) LaTeX-dialect) (defvar LaTeX-booktabs-package-options nil "Package options for the booktabs package.") ;;; booktabs.el ends here auctex-11.91/style/breqn.el000066400000000000000000000143101313533625700156160ustar00rootroot00000000000000;;; breqn.el --- AUCTeX style for `breqn.sty' (v0.98e) ;; Copyright (C) 2017 Free Software Foundation, Inc. ;; Author: Arash Esbati ;; Maintainer: auctex-devel@gnu.org ;; Created: 2017-01-06 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `breqn.sty' (v0.98e) from 2017/01/27. ;; `breqn.sty' is part of TeXLive. ;; In breqn documentation, there is the following statement: ;; ;; 9 Various environment options ;; ;; Use of the normal \label command instead of the label option ;; works, I think, most of the time (untested). ;; ;; To be on the safe side, a label should be written in the optional ;; argument of an environment as value to the `label' key, e.g.: ;; ;; \begin{dmath}[label={eq:42}] ;; ... ;; \end{dmath} ;; ;; This style achieves this requirement by using the function ;; `LaTeX-env-label-as-keyval'. ;;; Code: (defvar LaTeX-breqn-key-val-options '(("style" ("\\tiny" "\\scriptsize" "\\footnotesize" "\\small" "\\normalsize" "\\large" "\\Large" "\\LARGE" "\\huge" "\\Huge")) ("number") ("indentstep") ("compact") ("spread") ("frame") ("framesep") ("background") ("color") ("breakdepth")) "Key=value options for breqn environments. The keys \"label\" and \"labelprefix\" are omitted.") (defvar LaTeX-breqn-key-val-options-local nil "Buffer-local key=value options for breqn environments.") (make-variable-buffer-local 'LaTeX-breqn-key-val-options-local) (defvar LaTeX-breqn-key-val-label-regexp `(,(concat "\\\\begin{" (regexp-opt '("dmath" "dseries" "dgroup" "darray")) "}" "\\(?:\\[[^][]*" "\\(?:{[^}{]*" "\\(?:{[^}{]*" "\\(?:{[^}{]*}[^}{]*\\)*" "}[^}{]*\\)*" "}[^][]*\\)*" "label[ \t]*=[ \t]*{\\([^}]+\\)}" "\\(?:[^]]*\\)*" "\\]\\)") 1 LaTeX-auto-label) "Matches the label inside an optional argument after \\begin{}.") (defun LaTeX-breqn-env (env) "Insert ENV from breqn package incl. optional key=val argument. Keys offered for key=val query depend on ENV. \"label\" and \"labelprefix\" are omitted." (let ((keyvals (TeX-read-key-val t (cond ((or (string= env "dgroup") (string= env "dgroup*")) (append '(("noalign") ("brace")) LaTeX-breqn-key-val-options-local)) ((or (string= env "darray") (string= env "darray*")) (append '(("noalign") ("brace") ("cols" ("{}"))) LaTeX-breqn-key-val-options-local)) (t LaTeX-breqn-key-val-options-local))))) (LaTeX-insert-environment env (when (and keyvals (not (string= keyvals ""))) (concat LaTeX-optop keyvals LaTeX-optcl))) (LaTeX-env-label-as-keyval nil nil keyvals env))) (defun LaTeX-breqn-update-color-keys () "Update color relevant keys from `LaTeX-breqn-key-val-options-local'." (when (or (member "xcolor" (TeX-style-list)) (member "color" (TeX-style-list))) (let* ((colorcmd (if (member "xcolor" (TeX-style-list)) #'LaTeX-xcolor-definecolor-list #'LaTeX-color-definecolor-list)) (keys '("color" "background")) (tmp (copy-alist LaTeX-breqn-key-val-options-local))) (dolist (x keys) (setq tmp (assq-delete-all (car (assoc x tmp)) tmp)) (push (list x (mapcar #'car (funcall colorcmd))) tmp)) (setq LaTeX-breqn-key-val-options-local (copy-alist tmp))))) (add-hook 'TeX-auto-cleanup-hook #'LaTeX-breqn-update-color-keys t) (add-hook 'TeX-update-style-hook #'TeX-auto-parse t) (TeX-add-style-hook "breqn" (lambda () ;; Local version of key-val options (setq LaTeX-breqn-key-val-options-local (copy-alist LaTeX-breqn-key-val-options)) ;; Add breqn to parser: (TeX-auto-add-regexp LaTeX-breqn-key-val-label-regexp) ;; Tell AUCTeX that we want to prefix the labels with `LaTeX-equation-label': (let ((envs '("dmath" "dseries" "dgroup" "darray"))) (dolist (env envs) (add-to-list 'LaTeX-label-alist `(,env . LaTeX-equation-label) t))) ;; For RefTeX, we must distinguish between equation and eqnarray-like: ;; breqn env == equivalent -- starred ;; dmath == equation -- dmath* == unnumbered ;; dseries == equation -- dseries* == unnumbered ;; dgroup == align -- dgroup* == unnumbered ;; darray == eqnarray -- darray* == unnumbered (when (fboundp 'reftex-add-label-environments) (dolist (env '("dmath" "dseries" "dgroup")) (reftex-add-label-environments `((,env ?e nil nil t)))) (reftex-add-label-environments '(("darray" ?e nil nil eqnarray-like)))) (LaTeX-add-environments '("dmath" LaTeX-breqn-env) '("dmath*" LaTeX-breqn-env) '("dseries" LaTeX-breqn-env) '("dseries*" LaTeX-breqn-env) '("dgroup" LaTeX-breqn-env) '("dgroup*" LaTeX-breqn-env) '("darray" LaTeX-breqn-env) '("darray*" LaTeX-breqn-env) '("dsuspend")) (TeX-add-symbols '("condition" [ "Punctuation mark (default ,)" ] t) '("condition*" [ "Punctuation mark (default ,)" ] t) '("hiderel" t)) ;; Fontification (when (and (featurep 'font-latex) (eq TeX-install-font-lock 'font-latex-setup) (boundp 'font-latex-math-environments)) (make-local-variable 'font-latex-math-environments) (let ((envs '(;; Do not insert the starred versions here; ;; function `font-latex-match-math-envII' takes ;; care of it "dmath" "dseries" "dgroup" "darray"))) (dolist (env envs) (add-to-list 'font-latex-math-environments env t))))) LaTeX-dialect) (defvar LaTeX-breqn-package-options nil "Package options for the breqn package.") ;;; breqn.el ends here auctex-11.91/style/bulgarian.el000066400000000000000000000035231313533625700164570ustar00rootroot00000000000000;;; bulgarian.el --- AUCTeX style for the `bulgarian' babel option. ;; Copyright (C) 2008 Free Software Foundation, Inc. ;; Author: Ralf Angeli ;; Maintainer: auctex-devel@gnu.org ;; Created: 2008-06-28 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; Set up AUCTeX for editing Bulgarian text in connection with the ;; `bulgarian' babel option. ;;; Code: (defvar LaTeX-bulgarian-mode-syntax-table (copy-syntax-table LaTeX-mode-syntax-table) "Syntax table used in LaTeX mode when using `bulgarian.sty'.") (modify-syntax-entry ?\" "w" LaTeX-bulgarian-mode-syntax-table) (TeX-add-style-hook "bulgarian" (lambda () (set-syntax-table LaTeX-bulgarian-mode-syntax-table) (unless (eq (car TeX-quote-language) 'override) (setq TeX-quote-language `("bulgarian" "\"`" "\"'" ,TeX-quote-after-quote))) (setq LaTeX-babel-hyphen-language "bulgarian") ;; Fontification of quotation marks. (when (fboundp 'font-latex-add-quotes) (font-latex-add-quotes '("\"`" "\"'")) (font-latex-add-quotes '("\"<" "\">" french))) (run-hooks 'TeX-language-bg-hook)) LaTeX-dialect) ;;; bulgarian.el ends here auctex-11.91/style/canadian.el000066400000000000000000000023051313533625700162460ustar00rootroot00000000000000;;; canadian.el --- AUCTeX style for the `canadian' babel option. ;; Copyright (C) 2017 Free Software Foundation, Inc. ;; Author: Arash Esbati ;; Maintainer: auctex-devel@gnu.org ;; Created: 2017-07-02 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; Set up AUCTeX for editing Canadian text in connection with the ;; `canadian' babel option. ;;; Code: (TeX-add-style-hook "canadian" (lambda () (TeX-run-style-hooks "english")) LaTeX-dialect) ;;; canadian.el ends here auctex-11.91/style/captcont.el000066400000000000000000000027071313533625700163310ustar00rootroot00000000000000;; captcont.el --- AUCTeX style file for captcont.sty ;; Copyright (C) 2003, 2005 Free Software Foundation, Inc. ;; Author: Reiner Steib ;; Maintainer: auctex-devel@gnu.org ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; AUCTeX style file for captcont.sty ;;; Code: (TeX-add-style-hook "captcont" (lambda () (TeX-add-symbols '("captcont" [ "list entry" ] "Caption") '("captcont*" [ "list entry" ] "Caption")) ;; Fontification (when (featurep 'font-latex) (font-latex-add-keywords '(("captcont" "*[{")) 'textual))) LaTeX-dialect) (defvar LaTeX-captcont-package-options '("figbotcap" "figtopcap" "tabbotcap" "tabtopcap") "Package options for the captcont package.") ;;; captcont.el ends here auctex-11.91/style/caption.el000066400000000000000000000441171313533625700161540ustar00rootroot00000000000000;;; caption.el --- AUCTeX style for `caption.sty' (v3.3-111) ;; Copyright (C) 2015--2017 Free Software Foundation, Inc. ;; Author: Arash Esbati ;; Maintainer: auctex-devel@gnu.org ;; Created: 2015-02-21 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `caption.sty' (v3.3-111) from 2015/09/17. ;; `caption.sty' is part of TeXLive. ;; If things do not work or when in doubt, press `C-c C-n'. Comments ;; for improvement are welcome. ;;; Code: ;; Needed for compiling `pushnew': (eval-when-compile (require 'cl)) ;; Needed for auto-parsing. (require 'tex) (defvar LaTeX-caption-key-val-options '(("aboveskip") ("belowskip") ("font" ("scriptsize" "footnotesize" "small" "normalsize" "large" "Large" "normalfont" "up" "it" "sl" "sc" "md" "bf" "rm" "sf" "tt" "singlespacing" "onehalfspacing" "doublespacing" "stretch" "normalcolor" "color" "normal")) ("font+" ("scriptsize" "footnotesize" "small" "normalsize" "large" "Large" "normalfont" "up" "it" "sl" "sc" "md" "bf" "rm" "sf" "tt" "singlespacing" "onehalfspacing" "doublespacing" "stretch" "normalcolor" "color" "normal")) ("format" ("plain" "hang")) ("hangindent") ("hypcap" ("false" "no" "off" "0" "true" "yes" "on" "1")) ("hypcapspace") ("indention") ("justification" ("justified" "centering" "centerlast" "centerfirst" "raggedright" "RaggedRight" "raggedleft")) ("labelfont" ("scriptsize" "footnotesize" "small" "normalsize" "large" "Large" "normalfont" "up" "it" "sl" "sc" "md" "bf" "rm" "sf" "tt" "singlespacing" "onehalfspacing" "doublespacing" "stretch" "normalcolor" "color" "normal")) ("labelfont+" ("scriptsize" "footnotesize" "small" "normalsize" "large" "Large" "normalfont" "up" "it" "sl" "sc" "md" "bf" "rm" "sf" "tt" "singlespacing" "onehalfspacing" "doublespacing" "stretch" "normalcolor" "color" "normal")) ("labelformat" ("default" "empty" "simple" "brace" "parens")) ("labelsep" ("none" "colon" "period" "space" "quad" "newline" "endash")) ("list" ("false" "no" "off" "0" "true" "yes" "on" "1")) ("listformat" ("empty" "simple" "paren" "subsimple" "subparens")) ("margin") ("margin*") ("maxmargin") ("minmargin") ("name") ("oneside") ("parindent") ("parskip") ("position" ("top" "above" "bottom" "below" "auto")) ("singlelinecheck" ("false" "no" "off" "0" "true" "yes" "on" "1")) ("slc" ("false" "no" "off" "0" "true" "yes" "on" "1")) ("skip") ("strut" ("false" "no" "off" "0" "true" "yes" "on" "1")) ("style" ("base" "default")) ("textfont" ("scriptsize" "footnotesize" "small" "normalsize" "large" "Large" "normalfont" "up" "it" "sl" "sc" "md" "bf" "rm" "sf" "tt" "singlespacing" "onehalfspacing" "doublespacing" "stretch" "normalcolor" "color" "normal")) ("textfont+" ("scriptsize" "footnotesize" "small" "normalsize" "large" "Large" "normalfont" "up" "it" "sl" "sc" "md" "bf" "rm" "sf" "tt" "singlespacing" "onehalfspacing" "doublespacing" "stretch" "normalcolor" "color" "normal")) ("textformat" ("empty" "simple" "period")) ("twoside") ("type" ("figure" "table" "ContinuedFloat")) ("type*" ("figure" "table" "ContinuedFloat")) ("width")) "Key=value options for caption macros.") (defvar LaTeX-caption-key-val-options-local nil "Buffer-local key=value options for caption macros.") (make-variable-buffer-local 'LaTeX-caption-key-val-options-local) (defvar LaTeX-caption-supported-float-types '("figure" "table" "ContinuedFloat" ; Standard caption.sty "sub" "subtable" "subfigure" ; subcaption.sty "bi" "bi-first" "bi-second" ; bicaption.sty "ruled" "boxed" ; float.sty "floatingfigure" "floatingtable" ; floatflt.sty "lstlisting" ; listings.sty "longtable" ; longtable.sty "figwindow" "tabwindow" ; picinpar.sty "parpic" ; picins.sty "SCfigure" "SCtable" ; sidecap.sty "supertabular" "xtabular" ; supertabular.sty & xtab.sty "threeparttable" "measuredfigure" ; threeparttable.sty "wrapfigure" "wraptable") ; wrapfigure "List of float types provided by other LaTeX packages and supported by `caption.sty'.") ;; Setup for various \DeclareCaption's: (TeX-auto-add-type "caption-DeclareCaption" "LaTeX") ;; The 2. argument to `DeclareCaption[A-Za-z]' contains (La)TeX code. ;; We deliberately ignore that argument in our regex since it is not ;; needed for this style and would pollute the auto generated ;; `docname.el' file. (defvar LaTeX-caption-DeclareCaption-regexp `(,(concat "\\\\DeclareCaption\\(Font\\|Format\\|Justification" "\\|LabelFormat\\|LabelSeparator\\|ListFormat" "\\|Option\\|Style\\|TextFormat\\)" "\\*?" "[ \t\n\r%]*" "{\\([^}]+\\)}") (0 1 2) LaTeX-auto-caption-DeclareCaption) "Matches the arguments of different `\\DeclareCaption*' from `caption.sty'.") (defun LaTeX-caption-auto-prepare () "Clear `LaTeX-auto-caption-DeclareCaption' before parsing." (setq LaTeX-auto-caption-DeclareCaption nil)) (add-hook 'TeX-auto-prepare-hook #'LaTeX-caption-auto-prepare t) (add-hook 'TeX-update-style-hook #'TeX-auto-parse t) (defun LaTeX-caption-update-key-val-options () "Update the buffer-local key-val options before offering them in `caption'-completions." (dolist (keyvals (LaTeX-caption-DeclareCaption-list)) (let* ((key (cond ((string-equal (nth 1 keyvals) "LabelSeparator") (downcase (substring (nth 1 keyvals) 0 8))) (t (downcase (nth 1 keyvals))))) (val (nth 2 keyvals)) (val-match (cdr (assoc key LaTeX-caption-key-val-options-local))) (temp (copy-alist LaTeX-caption-key-val-options-local)) ;; If `subcaption.el' is loaded, delete and update also the ;; entry for `subrefformat' when processing the `labelformat'. (opts (progn (when (and (string-equal key "labelformat") (boundp 'LaTeX-subcaption-key-val-options)) (setq temp (assq-delete-all (car (assoc (caar LaTeX-subcaption-key-val-options) temp)) temp))) (assq-delete-all (car (assoc key temp)) temp)))) ;; For `\DeclareCaptionOption', only add the value ;; (remember: key=^^^^^^, val="defined key") (if (string-equal key "option") (pushnew (list val) opts :test #'equal) ;; For anything but `\DeclareCaptionOption', do the standard ;; procedure. Again, take care of `subrefformat' for `subcaption.el'. (if val-match (progn (when (and (string-equal key "labelformat") (boundp 'LaTeX-subcaption-key-val-options)) (pushnew (list "subrefformat" (delete-dups (apply #'append (list val) val-match))) opts :test #'equal)) (pushnew (list key (delete-dups (apply #'append (list val) val-match))) opts :test #'equal)) (pushnew (list key (list val)) opts :test #'equal))) (setq LaTeX-caption-key-val-options-local (copy-alist opts)))) ;; Support for environments defined with newfloat.sty: These ;; environments are added to "type" and "type*" key: (when (and (member "newfloat" (TeX-style-list)) (fboundp 'LaTeX-newfloat-DeclareFloatingEnvironment-list) (LaTeX-newfloat-DeclareFloatingEnvironment-list)) (dolist (key '("type" "type*")) (let* ((val (mapcar #'car (LaTeX-newfloat-DeclareFloatingEnvironment-list))) (val-match (cdr (assoc key LaTeX-caption-key-val-options-local))) (temp (copy-alist LaTeX-caption-key-val-options-local)) (opts (assq-delete-all (car (assoc key temp)) temp))) (pushnew (list key (delete-dups (apply #'append val val-match))) opts :test #'equal) (setq LaTeX-caption-key-val-options-local (copy-alist opts)))))) (defun LaTeX-arg-caption-command (optional &optional prompt) "Insert caption-commands from `caption.sty'. If OPTIONAL, indicate `(Optional)' while reading key=val and insert it in square brackets. PROMPT replaces the standard one." (LaTeX-caption-update-key-val-options) (let ((opts (TeX-read-key-val optional LaTeX-caption-key-val-options-local prompt))) (TeX-argument-insert opts optional))) ;; In `LaTeX-caption-DeclareCaption-regexp', we match (0 1 2). When ;; adding a new `Name', we need something unique for `0'-match until ;; the next `C-c C-n'. We mimic that regex-match bei concat'ing the ;; elements. It will vanish upon next `C-c C-n'. (defun LaTeX-arg-caption-DeclareCaption (optional format) "Insert various `\\DeclareCaptionFORMAT' commands. If OPTIONAL, insert argument in square brackets. FORMAT is the suffix of the command." (let ((name (TeX-read-string "Name: "))) (LaTeX-add-caption-DeclareCaptions (list (concat "\\DeclareCaption" format "{" name "}") format name)) (TeX-argument-insert name optional))) ;; Support for an undocumented feature of caption.sty: ;; `\captionbox' sets the width of the caption equal to the width of ;; the contents (a feature provided e.g. by `threeparttable.sty'). ;; The starred version typesets the caption without label and without ;; entry to the list of figures or tables. ;; The first mandatory argument {} contains the caption text ;; and the label. We used to use `TeX-insert-macro' to do the job ;; (Thanks to M. Giordano for his valuable comments on this!), but now ;; moved to `LaTeX-label'. ;; Syntax: ;; \captionbox[]{}[][]{} ;; \captionbox*{}[][]{} (defun LaTeX-arg-caption-captionbox (optional &optional star) "Query for the arguments of \"\\captionbox\" incl. a label and insert them. If STAR is non-nil, then do not query for a \\label and a short caption, insert only a caption." (let* ((currenv (LaTeX-current-environment)) (caption (TeX-read-string (TeX-argument-prompt optional nil "Caption"))) (short-caption (when (and (not star) (>= (length caption) LaTeX-short-caption-prompt-length)) (TeX-read-string (TeX-argument-prompt t nil "Short caption"))))) (indent-according-to-mode) (when (and short-caption (not (string= short-caption ""))) (insert LaTeX-optop short-caption LaTeX-optcl)) (insert TeX-grop caption) (unless star (LaTeX-label currenv 'environment)) (insert TeX-grcl)) (let* ((TeX-arg-opening-brace "[") (TeX-arg-closing-brace "]") (width (completing-read (TeX-argument-prompt t nil "Width") (mapcar (lambda (elt) (concat TeX-esc (car elt))) (LaTeX-length-list)))) (inpos (if (and width (not (string-equal width ""))) (completing-read (TeX-argument-prompt t nil "Inner position") '("c" "l" "r" "s")) ""))) (TeX-argument-insert width t) (TeX-argument-insert inpos t)) ;; Fill the paragraph before inserting {}. We can use ;; `LaTeX-fill-paragraph' without messing up the code since ;; \caption starts a new paragraph with AUCTeX ;; (cf. `paragraph-start'). (LaTeX-fill-paragraph)) (defun LaTeX-arg-caption-captionof (optional &optional star) "Query for the arguments of \"\\captionof\" macro and insert them. If OPTIONAL is non-nil, insert the arguments in brackets. If STAR is non-nil, do not query for a short-caption and a label." (let* ((envtype (completing-read (TeX-argument-prompt optional nil "Float type") LaTeX-caption-supported-float-types)) (figtypes '("figure" "subfigure" "floatingfigure" "figwindow" "SCfigure" "measuredfigure" "wrapfigure")) (tabtypes '("table" "subtable" "floatingtable" "tabwindow" "SCtable" "supertabular" "xtabular" "threeparttable" "wraptable")) (caption (TeX-read-string (TeX-argument-prompt optional nil "Caption"))) (short-caption (when (and (not star) (>= (length caption) LaTeX-short-caption-prompt-length)) (TeX-read-string (TeX-argument-prompt t nil "Short caption"))))) (indent-according-to-mode) (TeX-argument-insert envtype optional) (when (and short-caption (not (string= short-caption ""))) (insert LaTeX-optop short-caption LaTeX-optcl)) (TeX-argument-insert caption optional) (LaTeX-fill-paragraph) (when (and (not star) ;; Check if `envtype' is a figure or a table, also ;; consult `LaTeX-label-alist' for additions from user ;; or newfloat.el, then run `LaTeX-label' w/ ;; 'environment arg, otherwise w/o. (save-excursion (if (or (member envtype figtypes) (member envtype tabtypes) (assoc envtype LaTeX-label-alist)) (LaTeX-label (cond ((member envtype figtypes) "figure") ((member envtype tabtypes) "table") (t envtype)) 'environment) (LaTeX-label envtype)))) (LaTeX-newline) (indent-according-to-mode) (end-of-line)))) (TeX-add-style-hook "caption" (lambda () ;; Add caption to the parser. (TeX-auto-add-regexp LaTeX-caption-DeclareCaption-regexp) ;; Activate the buffer-local version of key-vals. (setq LaTeX-caption-key-val-options-local (copy-alist LaTeX-caption-key-val-options)) ;; Append key=vals from bicaption.sty if loaded: "language" key ;; depends on the active languages, it is appended extra where main ;; language is removed from the list: (when (and (member "bicaption" (TeX-style-list)) ;; Make sure that one of these packages is loaded: (or (fboundp 'LaTeX-babel-active-languages) (fboundp 'LaTeX-polyglossia-active-languages))) (setq LaTeX-caption-key-val-options-local (append `(,(list "language" (or (butlast (LaTeX-babel-active-languages)) (butlast (LaTeX-polyglossia-active-languages))))) LaTeX-bicaption-key-val-options LaTeX-caption-key-val-options-local))) ;; Caption commands: (TeX-add-symbols '("caption*" t) '("captionlistentry" [TeX-arg-eval completing-read (TeX-argument-prompt t nil "Float type") LaTeX-caption-supported-float-types] t) '("captionof" LaTeX-arg-caption-captionof) '("captionof*" (LaTeX-arg-caption-captionof t)) '("captionsetup" (TeX-arg-conditional (member "bicaption" (TeX-style-list)) ([LaTeX-arg-bicaption-captionsetup]) ([TeX-arg-eval completing-read (TeX-argument-prompt t nil "Float type") LaTeX-caption-supported-float-types])) (LaTeX-arg-caption-command)) '("captionsetup*" (TeX-arg-conditional (member "bicaption" (TeX-style-list)) ([LaTeX-arg-bicaption-captionsetup]) ([TeX-arg-eval completing-read (TeX-argument-prompt t nil "Float type") LaTeX-caption-supported-float-types])) (LaTeX-arg-caption-command)) '("clearcaptionsetup" [LaTeX-arg-caption-command "Single key"] (TeX-arg-eval completing-read (TeX-argument-prompt nil nil "Float type") LaTeX-caption-supported-float-types)) '("clearcaptionsetup*" [LaTeX-arg-caption-command "Single key"] (TeX-arg-eval completing-read (TeX-argument-prompt nil nil "Float type") LaTeX-caption-supported-float-types)) '("captionbox" (LaTeX-arg-caption-captionbox) t) '("captionbox*" (LaTeX-arg-caption-captionbox t) t) '("ContinuedFloat" 0) '("ContinuedFloat*" 0) '("continuedfloat" 0) '("continuedfloat*" 0) '("DeclareCaptionFont" (LaTeX-arg-caption-DeclareCaption "Font") t) '("DeclareCaptionFormat" (LaTeX-arg-caption-DeclareCaption "Format") t) '("DeclareCaptionFormat*" (LaTeX-arg-caption-DeclareCaption "Format") t) '("DeclareCaptionJustification" (LaTeX-arg-caption-DeclareCaption "Justification") t) '("DeclareCaptionLabelFormat" (LaTeX-arg-caption-DeclareCaption "LabelFormat") t) '("DeclareCaptionLabelSeparator" (LaTeX-arg-caption-DeclareCaption "LabelSeparator") t) '("DeclareCaptionLabelSeparator*" (LaTeX-arg-caption-DeclareCaption "LabelSeparator") t) '("DeclareCaptionListFormat" (LaTeX-arg-caption-DeclareCaption "ListFormat") t) '("DeclareCaptionOption" (LaTeX-arg-caption-DeclareCaption "Option") t) '("DeclareCaptionStyle" (LaTeX-arg-caption-DeclareCaption "Style") [LaTeX-arg-caption-command "Additional options"] (LaTeX-arg-caption-command "Options")) '("DeclareCaptionTextFormat" (LaTeX-arg-caption-DeclareCaption "TextFormat") t) '("bothIfFirst" 2) '("bothIfSecond" 2)) ;; \caption(box|of) macros should get their own lines (LaTeX-paragraph-commands-add-locally '("captionbox" "captionof")) ;; Fontification (when (and (featurep 'font-latex) (eq TeX-install-font-lock 'font-latex-setup)) (font-latex-add-keywords '(("caption" "*[{") ("captionlistentry" "[{") ("captionof" "*{[{") ("captionbox" "*[{[[")) 'textual) (font-latex-add-keywords '(("captionsetup" "*[[{") ("clearcaptionsetup" "*[{") ("DeclareCaptionFont" "{{") ("DeclareCaptionFormat" "*{{") ("DeclareCaptionJustification" "{{") ("DeclareCaptionLabelFormat" "{{") ("DeclareCaptionLabelSeparator" "*{{") ("DeclareCaptionListFormat" "{{") ("DeclareCaptionOption" "{{") ("DeclareCaptionStyle" "{[{") ("DeclareCaptionTextFormat" "{{")) 'function)) ) LaTeX-dialect) (defun LaTeX-caption-package-options () "Prompt for package options for the caption package." (TeX-read-key-val t (append '(("compatibility" ("true" "false"))) '(("figureposition" ("top" "above" "bottom" "below"))) '(("tableposition" ("top" "above" "bottom" "below"))) LaTeX-caption-key-val-options))) ;;; caption.el ends here auctex-11.91/style/cleveref.el000066400000000000000000000102401313533625700163000ustar00rootroot00000000000000;;; cleveref.el --- Style hook for the `cleveref.sty' package. ;; Copyright (C) 2014--2016 Free Software Foundation, Inc. ;; Author: Matthew Leach ;; Maintainer: auctex-devel@gnu.org ;; Created: 13/10/2014 ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Code (defun TeX-arg-cleveref-multiple-labels (optional &optional prompt) "Prompt for a series of labels completing with known labels. If OPTIONAL is non-nil, insert the resulting value as an optional argument, otherwise as a mandatory one. Use PROMPT as the prompt string." (if (and (fboundp 'reftex-arg-label) (fboundp 'reftex-plug-flag) (reftex-plug-flag 2)) ;; Use RefTeX when enabled (TeX-arg-ref optional) ;; Use AUCTeX interface (let* ((labels (TeX-completing-read-multiple (TeX-argument-prompt optional prompt "Keys") (LaTeX-label-list))) (labels-string (mapconcat #'identity labels ","))) (TeX-argument-insert labels-string optional)))) (TeX-add-style-hook "cleveref" (lambda () (TeX-add-symbols '("cref" TeX-arg-cleveref-multiple-labels) '("Cref" TeX-arg-cleveref-multiple-labels) '("crefrange" (TeX-arg-ref "Key (first)") (TeX-arg-ref "Key (last)")) '("Crefrange" (TeX-arg-ref "key (first)") (TeX-arg-ref "Key (last)")) '("cpageref" TeX-arg-cleveref-multiple-labels) '("Cpageref" TeX-arg-cleveref-multiple-labels) '("cpagerefrange" (TeX-arg-ref "Key (first)") (TeX-arg-ref "Key (last)")) '("Cpagerefrange" (TeX-arg-ref "Key (first)") (TeX-arg-ref "Key (last)")) '("cref*" TeX-arg-cleveref-multiple-labels) '("Cref*" TeX-arg-cleveref-multiple-labels) '("crefrange*" (TeX-arg-ref "Key (first)") (TeX-arg-ref "Key (last)")) '("Crefrange*" (TeX-arg-ref "Key (first)") (TeX-arg-ref "Key (last)")) '("namecref" TeX-arg-ref) '("nameCref" TeX-arg-ref) '("lcnamecref" TeX-arg-ref) '("namecrefs" TeX-arg-ref) '("nameCrefs" TeX-arg-ref) '("lcnamecrefs" TeX-arg-ref) '("labelcref" TeX-arg-cleveref-multiple-labels) '("labelcpageref" TeX-arg-cleveref-multiple-labels)) ;; These macros aren't used particularly often during the course of ;; normal referencing. (TeX-declare-expert-macros "cleveref" "namecref" "nameCref" "lcnamecref" "namecrefs" "nameCrefs" "lcnamecrefs" "labelcref" "labelcpageref") ;; Fontification (when (and (fboundp 'font-latex-add-keywords) (eq TeX-install-font-lock 'font-latex-setup)) (font-latex-add-keywords '(("cref" "*{") ("Cref" "*{") ("crefrange" "*{{") ("Crefrange" "*{{") ("cpageref" "{") ("Cpageref" "{") ("cpagerefrange" "{{") ("Cpagerefrange" "{{") ("namecref" "{") ("nameCref" "{") ("lcnamecref" "{") ("namecrefs" "{") ("nameCrefs" "{") ("lcnamecrefs" "{") ("labelcref" "{") ("labelcpageref" "{")) 'reference)) ;; Activate RefTeX reference style. (and LaTeX-reftex-ref-style-auto-activate (fboundp 'reftex-ref-style-activate) (reftex-ref-style-activate "Cleveref"))) LaTeX-dialect) (defvar LaTeX-cleveref-package-options '("capitalise" "nameinlink" "noabbrev" "poorman") "Package options for the cleveref package.") ;;; cleveref.el ends here. auctex-11.91/style/color.el000066400000000000000000000306301313533625700156300ustar00rootroot00000000000000;;; color.el --- AUCTeX style for `color.sty' (v1.1a) ;; Copyright (C) 2015--2017 Free Software Foundation, Inc. ;; Author: Arash Esbati ;; Maintainer: auctex-devel@gnu.org ;; Created: 2015-01-16 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `color.sty' (v1.1a) from 2014/10/28. ;; `color.sty' is part of TeXLive. ;; Many thanks to Tassilo Horn for his percetive comments on ;; implementation of this style and testing. ;;; Code: (defvar LaTeX-color-colour-models '("cmyk" "gray" "named" "rgb") "List of color models provided by `color.sty'.") (defvar LaTeX-color-dvipsnames-colors '("Apricot" "Aquamarine" "Bittersweet" "Black" "Blue" "BlueGreen" "BlueViolet" "BrickRed" "Brown" "BurntOrange" "CadetBlue" "CarnationPink" "Cerulean" "CornflowerBlue" "Cyan" "Dandelion" "DarkOrchid" "Emerald" "ForestGreen" "Fuchsia" "Goldenrod" "Gray" "Green" "GreenYellow" "JungleGreen" "Lavender" "LimeGreen" "Magenta" "Mahogany" "Maroon" "Melon" "MidnightBlue" "Mulberry" "NavyBlue" "OliveGreen" "Orange" "OrangeRed" "Orchid" "Peach" "Periwinkle" "PineGreen" "Plum" "ProcessBlue" "Purple" "RawSienna" "Red" "RedOrange" "RedViolet" "Rhodamine" "RoyalBlue" "RoyalPurple" "RubineRed" "Salmon" "SeaGreen" "Sepia" "SkyBlue" "SpringGreen" "Tan" "TealBlue" "Thistle" "Turquoise" "Violet" "VioletRed" "White" "WildStrawberry" "Yellow" "YellowGreen" "YellowOrange") "List of colors defined by package option `dvipsnames' from `color.sty'.") ;; Needed for auto-parsing. (require 'tex) ;; Plug \definecolor into the parser (TeX-auto-add-type "color-definecolor" "LaTeX") (defvar LaTeX-color-definecolor-regexp '("\\\\definecolor{\\([^}]+\\)}" 1 LaTeX-auto-color-definecolor) "Matches the argument of \\definecolor from color package.") (defun LaTeX-color-auto-prepare () "Clear `LaTeX-auto-color-definecolor' before parsing." (setq LaTeX-auto-color-definecolor nil)) (add-hook 'TeX-auto-prepare-hook #'LaTeX-color-auto-prepare t) (add-hook 'TeX-update-style-hook #'TeX-auto-parse t) (defun TeX-arg-color-definecolor (optional &optional prompt) "Insert arguments of `\\definecolor' from `color.sty'." ;; \definecolor{}{}{} ;; Ask for , add to our list and insert it (let ((colorname (TeX-read-string "Color name: "))) (LaTeX-add-color-definecolors colorname) (TeX-argument-insert colorname optional)) ;; Ask and insert (let ((model (completing-read (TeX-argument-prompt optional prompt "Color model") (if (not (or (LaTeX-provided-package-options-member "color" "dvips") (LaTeX-provided-package-options-member "color" "dvipsnames"))) (remove "named" LaTeX-color-colour-models) LaTeX-color-colour-models)))) (TeX-argument-insert model optional) ;; Depending on , ask for and insert it (cond (;; model (string-equal model "cmyk") (let ((cyan (TeX-read-string "Value Cyan (between 0,1): ")) (magenta (TeX-read-string "Value Magenta (between 0,1): ")) (yellow (TeX-read-string "Value Yellow (between 0,1): ")) (black (TeX-read-string "Value Black (between 0,1): "))) (TeX-argument-insert (concat cyan "," magenta "," yellow "," black) optional))) ;; model ((string-equal model "rgb") (let ((red (TeX-read-string "Value Red (between 0,1): ")) (green (TeX-read-string "Value Green (between 0,1): ")) (blue (TeX-read-string "Value Blue (between 0,1): "))) (TeX-argument-insert (concat red "," green "," blue) optional))) ;; model ((string-equal model "gray") (let ((grayness (TeX-read-string "Value Gray (between 0,1): "))) (TeX-argument-insert grayness optional))) ;; model takes the dvipsnames ((string-equal model "named") (let ((color (completing-read "Named Color: " LaTeX-color-dvipsnames-colors))) (TeX-argument-insert color optional)))))) (defun TeX-arg-color (optional &optional prompt) "Insert arguments of various color commands from `color.sty'." ;; \color{} or \color[]{} ;; First, ask for . `named' is removed here from completion ;; if package option is not given (let ((model (completing-read (TeX-argument-prompt t prompt "Color model") (if (not (or (LaTeX-provided-package-options-member "color" "dvips") (LaTeX-provided-package-options-member "color" "dvipsnames"))) (remove "named" LaTeX-color-colour-models) LaTeX-color-colour-models)))) (if (string-equal model "") ;; if empty, ask for with completion (let ((color (completing-read (TeX-argument-prompt optional prompt "Color name") (LaTeX-color-definecolor-list)))) (TeX-argument-insert color optional)) ;; if not empty, insert [] and proceed (insert (concat LaTeX-optop model LaTeX-optcl)) (cond (;; model (string-equal model "cmyk") (let ((cyan (TeX-read-string "Value Cyan (between 0,1): ")) (magenta (TeX-read-string "Value Magenta (between 0,1): ")) (yellow (TeX-read-string "Value Yellow (between 0,1): ")) (black (TeX-read-string "Value Black (between 0,1): "))) (TeX-argument-insert (concat cyan "," magenta "," yellow "," black) optional))) ;; model ((string-equal model "rgb") (let ((red (TeX-read-string "Value Red (between 0,1): ")) (green (TeX-read-string "Value Green (between 0,1): ")) (blue (TeX-read-string "Value Blue (between 0,1): "))) (TeX-argument-insert (concat red "," green "," blue) optional))) ;; model ((string-equal model "gray") (let ((grayness (TeX-read-string "Value Gray (between 0,1): "))) (TeX-argument-insert grayness optional))) ;; model; allowed are dvipsnames. ((string-equal model "named") (let ((color (completing-read "Named Color: " LaTeX-color-dvipsnames-colors))) (TeX-argument-insert color optional))))))) (defun TeX-arg-color-fcolorbox (optional &optional prompt) "Insert arguments of `\\fcolorbox' from `color.sty'. " ;; \fcolorbox{}{}{} or ;; \fcolorbox[]{}{}{} ;; First, ask for ; remove `named' again (let ((model (completing-read (TeX-argument-prompt t prompt "Color model") (if (not (or (LaTeX-provided-package-options-member "color" "dvips") (LaTeX-provided-package-options-member "color" "dvipsnames"))) (remove "named" LaTeX-color-colour-models) LaTeX-color-colour-models)))) (if (string-equal model "") ;; if empty, ask for with completion (let ((frame-color (completing-read (TeX-argument-prompt optional prompt "Frame color name") (LaTeX-color-definecolor-list))) (box-color (completing-read (TeX-argument-prompt optional prompt "Box color name") (LaTeX-color-definecolor-list)))) (TeX-argument-insert frame-color optional) (TeX-argument-insert box-color optional)) ;; if not empty, insert [] and cater for 2 mandatory args. (insert (concat LaTeX-optop model LaTeX-optcl)) (cond (;; model (string-equal model "cmyk") (let ((cyan (TeX-read-string "Frame value Cyan (between 0,1): ")) (magenta (TeX-read-string "Frame value Magenta (between 0,1): ")) (yellow (TeX-read-string "Frame value Yellow (between 0,1): ")) (black (TeX-read-string "Frame value Black (between 0,1): "))) (TeX-argument-insert (concat cyan "," magenta "," yellow "," black) optional)) (let ((cyan (TeX-read-string "Box value Cyan (between 0,1): ")) (magenta (TeX-read-string "Box value Magenta (between 0,1): ")) (yellow (TeX-read-string "Box value Yellow (between 0,1): ")) (black (TeX-read-string "Box value Black (between 0,1): "))) (TeX-argument-insert (concat cyan "," magenta "," yellow "," black) optional))) ;; model ((string-equal model "rgb") (let ((red (TeX-read-string "Frame value Red (between 0,1): ")) (green (TeX-read-string "Frame value Green (between 0,1): ")) (blue (TeX-read-string "Frame value Blue (between 0,1): "))) (TeX-argument-insert (concat red "," green "," blue) optional)) (let ((red (TeX-read-string "Box value Red (between 0,1): ")) (green (TeX-read-string "Box value Green (between 0,1): ")) (blue (TeX-read-string "box value Blue (between 0,1): "))) (TeX-argument-insert (concat red "," green "," blue) optional))) ;; model ((string-equal model "gray") (let ((grayness (TeX-read-string "Frame value Gray (between 0,1): "))) (TeX-argument-insert grayness optional)) (let ((grayness (TeX-read-string "Box value Gray (between 0,1): "))) (TeX-argument-insert grayness optional))) ;; model; allowed are dvipsnames. ((string-equal model "named") (let ((color (completing-read "Frame named Color: " LaTeX-color-dvipsnames-colors))) (TeX-argument-insert color optional)) (let ((color (completing-read "Box named Color: " LaTeX-color-dvipsnames-colors))) (TeX-argument-insert color optional))))))) (TeX-add-style-hook "color" (lambda () ;; Add color to the parser. (TeX-auto-add-regexp LaTeX-color-definecolor-regexp) ;; Add list of colors which are always available. (LaTeX-add-color-definecolors "black" "blue" "cyan" "green" "magenta" "red" "white" "yellow") ;; Add dvips colors in conjunction with `usenames'. (when (and (LaTeX-provided-package-options-member "color" "usenames") (or (LaTeX-provided-package-options-member "color" "dvips") (LaTeX-provided-package-options-member "color" "dvipsnames"))) (apply #'LaTeX-add-color-definecolors LaTeX-color-dvipsnames-colors)) (unless (member "xcolor" (TeX-style-list)) (TeX-add-symbols ;; \definecolor{}{}{} '("definecolor" TeX-arg-color-definecolor) ;; \color{} or \color[]{} '("color" TeX-arg-color) ;; \textcolor{}{} or ;; \textcolor[]{}{} '("textcolor" TeX-arg-color "Text") ;; \pagecolor{} or ;; \pagecolor[]{} '("pagecolor" TeX-arg-color) ;; \nopagecolor '("nopagecolor" 0) ;; \colorbox{}{} or ;; \colorbox[]{}{} '("colorbox" TeX-arg-color "Text") ;; \fcolorbox{}{}{} or ;; \fcolorbox[]{}{}{} '("fcolorbox" TeX-arg-color-fcolorbox "Text")) ;; Fontification (when (and (featurep 'font-latex) (eq TeX-install-font-lock 'font-latex-setup)) (font-latex-add-keywords '(("color" "[{") ("pagecolor" "[{")) 'type-declaration) (font-latex-add-keywords '(("textcolor" "[{{") ("colorbox" "[{{" ) ("fcolorbox" "[{{{")) 'type-command) (font-latex-add-keywords '(("definecolor" "{{{")) 'function)))) LaTeX-dialect) (defvar LaTeX-color-package-options '("debugshow" "dvipdf" "dvipdfm" "dvipdfmx" "dvips" "dvipsnames" "dvipsone" "dviwin" "dviwindo" "emtex" "monochrome" "nodvipsnames" "oztex" "pctex32" "pctexhp" "pctexps" "pctexwin" "pdftex" "tcidvi" "textures" "truetex" "usenames" "vtex" "xdvi" "xetex") "Package options for the color package.") ;;; color.el ends here auctex-11.91/style/colortbl.el000066400000000000000000000061411313533625700163320ustar00rootroot00000000000000;;; colortbl.el --- AUCTeX style for `colortbl.sty' (v1.0a) ;; Copyright (C) 2015, 2016 Free Software Foundation, Inc. ;; Author: Arash Esbati ;; Maintainer: auctex-devel@gnu.org ;; Created: 2015-03-22 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `colortbl.sty' (v1.0a) from 2012/02/13. ;; `colortbl.sty' is part of TeXLive. ;;; Code: (TeX-add-style-hook "colortbl" (lambda () ;; array.el is always loaded: (TeX-run-style-hooks "array") ;; Load color.el only if xcolor.el is not already loaded. This is ;; mainly for the option `table' from xcolor.sty which loads ;; colortbl.sty, but we don't want to load color.el. (unless (member "xcolor" (TeX-style-list)) (TeX-run-style-hooks "color")) (TeX-add-symbols ;; `TeX-arg-color' is provided by color.el, ;; `TeX-arg-xcolor' is provided by xcolor.el. '("columncolor" (TeX-arg-conditional (member "xcolor" (TeX-style-list)) (TeX-arg-xcolor) (TeX-arg-color)) [ TeX-arg-length "Left overhang" ] [ TeX-arg-length "Right overhang" ] ) '("rowcolor" (TeX-arg-conditional (member "xcolor" (TeX-style-list)) (TeX-arg-xcolor) (TeX-arg-color)) [ TeX-arg-length "Left overhang" ] [ TeX-arg-length "Right overhang" ] ) '("cellcolor" (TeX-arg-conditional (member "xcolor" (TeX-style-list)) (TeX-arg-xcolor) (TeX-arg-color)) [ TeX-arg-length "Left overhang" ] [ TeX-arg-length "Right overhang" ] ) '("arrayrulecolor" (TeX-arg-conditional (member "xcolor" (TeX-style-list)) (TeX-arg-xcolor) (TeX-arg-color))) '("doublerulesepcolor" (TeX-arg-conditional (member "xcolor" (TeX-style-list)) (TeX-arg-xcolor) (TeX-arg-color)))) (LaTeX-add-lengths "minrowclearance") ;; Fontification (when (and (featurep 'font-latex) (eq TeX-install-font-lock 'font-latex-setup)) (font-latex-add-keywords '(("columncolor" "[{[[") ("rowcolor" "[{[[") ("cellcolor" "[{[[") ("arrayrulecolor" "[{") ("doublerulesepcolor" "[{")) 'function))) LaTeX-dialect) ;; colortbl.sty has one option `debugshow'. I ignore that since it ;; would only take more time during insertation in a buffer and I ;; presume that not many users use it anyway. (defvar LaTeX-colortbl-package-options nil "Package option for the colortbl package.") ;;; colortbl.el ends here auctex-11.91/style/commath.el000066400000000000000000000063561313533625700161520ustar00rootroot00000000000000;;; commath.el --- AUCTeX style for `commath.sty' (v0.3) ;; Copyright (C) 2016 Free Software Foundation, Inc. ;; Author: Arash Esbati ;; Maintainer: auctex-devel@gnu.org ;; Created: 2016-07-31 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `commath.sty' (v0.3) from 2006/07/18. ;; `commath.sty' is part of TeXLive. ;;; Code: (TeX-add-style-hook "commath" (lambda () ;; Only load amsmath.el, ifthen.el is not necessary (TeX-run-style-hooks "amsmath") (TeX-add-symbols '("dif" 0) '("Dif" 0) '("od" [ "Order of differentiation" ] "Function" "Variable") '("tod" [ "Order of differentiation" ] "Function" "Variable") '("dod" [ "Order of differentiation" ] "Function" "Variable") '("pd" [ "Order of differentiation" ] "Function" "Variable") '("tpd" [ "Order of differentiation" ] "Function" "Variable") '("dpd" [ "Order of differentiation" ] "Function" "Variable") '("md" 6) '("tmd" 6) '("dmd" 6) '("del" [ "Size argument (0..4)" ] "Argument") '("cbr" [ "Size argument (0..4)" ] "Argument") '("set" [ "Size argument (0..4)" ] "Argument") '("sbr" [ "Size argument (0..4)" ] "Argument") '("intoo" [ "Size argument (0..4)" ] "Argument") '("intcc" [ "Size argument (0..4)" ] "Argument") '("intoc" [ "Size argument (0..4)" ] "Argument") '("intco" [ "Size argument (0..4)" ] "Argument") '("eval" [ "Size argument (0..4)" ] t) '("sVert" [ "Size argument (0..4)" ]) '("envert" [ "Size argument (0..4)" ] "Argument") '("abs" [ "Size argument (0..4)" ] "Argument") '("enVert" [ "Size argument (0..4)" ] "Argument") '("norm" [ "Size argument (0..4)" ] "Argument") '("fullfunction" 5) ;; Referencing macros '("thmref" TeX-arg-ref) '("exref" TeX-arg-ref) '("defnref" TeX-arg-ref) '("secref" TeX-arg-ref) '("lemref" TeX-arg-ref) '("propref" TeX-arg-ref) '("remref" TeX-arg-ref) '("figref" TeX-arg-ref) '("colref" TeX-arg-ref) '("appref" TeX-arg-ref) '("assref" TeX-arg-ref)) ;; Fontification (when (and (featurep 'font-latex) (eq TeX-install-font-lock 'font-latex-setup)) (font-latex-add-keywords '(("thmref" "{") ("exref" "{") ("defnref" "{") ("secref" "{") ("lemref" "{") ("propref" "{") ("remref" "{") ("figref" "{") ("colref" "{") ("appref" "{") ("assref" "{")) 'reference))) LaTeX-dialect) (defvar LaTeX-commath-package-options nil "Package options for the commath package.") ;;; commath.el ends here auctex-11.91/style/comment.el000066400000000000000000000044611313533625700161570ustar00rootroot00000000000000;;; comment.el --- AUCTeX style for `comment.sty' ;; Copyright (C) 2007 Free Software Foundation, Inc. ;; Author: Ralf Angeli ;; Maintainer: auctex-devel@gnu.org ;; Created: 2007-03-18 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA ;; 02111-1307, USA. ;;; Commentary: ;; This file adds support for `comment.sty'. ;;; Code: (TeX-add-style-hook "comment" (lambda () ;; New symbols (TeX-add-symbols '("includecomment" "Name") '("excludecomment" "Name") '("specialcomment" "Name" "Before commands" "After commands") '("processcomment" "Name" "Each-line commands" "Before commands" "After commands")) ;; New environments (mapc 'LaTeX-add-environments LaTeX-comment-env-list) ;; Fontification (when (and (fboundp 'font-latex-add-keywords) (fboundp 'font-latex-update-font-lock) (eq TeX-install-font-lock 'font-latex-setup)) ;; For syntactic fontification. (add-to-list 'font-latex-syntactic-keywords-extra ;; \begin is supposed to start at the beginning of a line. `(,(format "^\\\\begin *{%s}.*\\(\n\\)" (regexp-opt LaTeX-comment-env-list)) (1 "!" t))) (add-to-list 'font-latex-syntactic-keywords-extra ;; \end is supposed to start at the beginning of a line. `(,(format "^\\(\\\\\\)end *{%s}" (regexp-opt LaTeX-comment-env-list)) (1 "!" t))) (font-latex-add-keywords '(("includecomment" "{") ("excludecomment" "{") ("specialcomment" "{{{") ("processcomment" "{{{{")) 'variable) ;; Tell font-lock about the update. (font-latex-update-font-lock t))) LaTeX-dialect) ;;; comment.el ends here auctex-11.91/style/csquotes.el000066400000000000000000000227551313533625700163710ustar00rootroot00000000000000;;; csquotes.el --- AUCTeX style for `csquotes.sty' ;; Copyright (C) 2004, 2005, 2006, 2014 Free Software Foundation, Inc. ;; Author: Ralf Angeli ;; Maintainer: auctex-devel@gnu.org ;; Created: 2004-11-29 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `csquotes.sty', version 3.7. ;;; Code: ;; FIXME: It would be nice to be able to dump this function in favor ;; of a generalized handling of additional arguments for environments ;; specified via `LaTeX-add-environments'. `TeX-parse-arguments' and ;; friends would be the functions to be used for that, but those ;; functions currently insert text directly into the buffer. There ;; would either have to be a way of preventing this and letting them ;; return a string, or the insertion could happen in a temporary buffer ;; and the buffer content be returned. (defun LaTeX-csquotes-insert-environment (env &rest args) "Insert environment ENV considering optional arguments ARGS. This is basically a variant of `LaTeX-environment-menu' specialized for csquotes.el. ARGS can be made up of strings and vectors containing single strings. Plain strings will be used as prompts for mandatory arguments and strings in vectors as prompts for optional arguments of the environment to be inserted. That means, in contrast to `LaTeX-environment-menu' it supports the insertion of optional arguments." (let (env-extra prompt optional user-input) (dolist (elt args) (if (vectorp elt) (setq prompt (aref elt 0) optional t) (setq prompt elt optional nil)) (setq user-input (TeX-read-string (TeX-argument-prompt optional prompt nil))) (unless (and optional (zerop (length user-input))) (setq env-extra (concat env-extra (if optional LaTeX-optop TeX-grop) user-input (if optional LaTeX-optcl TeX-grcl))))) (LaTeX-insert-environment env env-extra))) (TeX-add-style-hook "csquotes" (lambda () (let ((quote-style-variant-list '(("quotes") ("guillemets") ("american") ("british") ("oldstyle") ("imprimerie") ("swiss"))) (quote-style-name-list '(("danish") ("dutch") ("english") ("finnish") ("french") ("german") ("italian") ("norwegian") ("swedish")))) ;; New symbols (TeX-add-symbols '("enquote" 1) '("enquote*" 1) '("foreignquote" 2) '("foreignquote*" 2) '("hyphenquote" 2) '("hyphenquote*" 2) '("textquote" ["Citation"] ["Punctuation"] t) '("textquote*" ["Citation"] ["Punctuation"] t) '("foreigntextquote" "Language" ["Citation"] ["Punctuation"] t) '("foreigntextquote*" "Language" ["Citation"] ["Punctuation"] t) '("hyphentextquote" "Language" ["Citation"] ["Punctuation"] t) '("hyphentextquote*" "Language" ["Citation"] ["Punctuation"] t) '("blockquote" ["Citation"] ["Punctuation"] t) '("foreignblockquote" "Language" ["Citation"] ["Punctuation"] t) '("hyphenblockquote" "Language" ["Citation"] ["Punctuation"] t) `("setquotestyle" [ (TeX-arg-eval completing-read "Quote style variant: " ',quote-style-variant-list) ] (TeX-arg-eval completing-read "Quote style name or alias: " ',quote-style-name-list)) "setquotestyle*" '("MakeInnerQuote" "Character") '("MakeOuterQuote" "Character") '("MakeAutoQuote" "Opening quotation mark" "Closing quotation mark") '("MakeAutoQuote*" "Opening quotation mark" "Closing quotation mark") '("MakeForeignQuote" "Babel's language name" "Opening quotation mark" "Closing quotation mark") '("MakeForeignQuote*" "Babel's language name" "Opening quotation mark" "Closing quotation mark") '("MakeHyphenQuote" "Babel's language name" "Opening quotation mark" "Closing quotation mark") '("MakeHyphenQuote" "Babel's language name" "Opening quotation mark" "Closing quotation mark") '("MakeBlockQuote" "Opening quotation mark" "Delimiter for citation" "Closing quotation mark") '("MakeForeignBlockQuote" "Language" "Opening quotation mark" "Delimiter for citation" "Closing quotation mark") '("MakeHyphenBlockQuote" "Language" "Opening quotation mark" "Delimiter for citation" "Closing quotation mark") "EnableQuotes" "DisableQuotes" "VerbatimQuotes" "DeleteQuotes" '("textcquote" ["Pre-note"] ["Post-note"] "Key" ["Punctuation"] t) '("textcquote*" ["Pre-note"] ["Post-note"] "Key" ["Punctuation"] t) '("foreigntextcquote" "Language" ["Pre-note"] ["Post-note"] "Key" ["Punctuation"] t) '("foreigntextcquote*" "Language" ["Pre-note"] ["Post-note"] "Key" ["Punctuation"] t) '("hyphentextcquote" "Language" ["Pre-note"] ["Post-note"] "Key" ["Punctuation"] t) '("hyphentextcquote*" "Language" ["Pre-note"] ["Post-note"] "Key" ["Punctuation"] t) '("blockcquote" ["Pre-note"] ["Post-note"] "Key" ["Punctuation"] t) '("foreignblockcquote" "Language" ["Pre-note"] ["Post-note"] "Key" ["Punctuation"] t) '("hyphenblockcquote" "Language" ["Pre-note"] ["Post-note"] "Key" ["Punctuation"] t) `("DeclareQuoteStyle" [ (TeX-arg-eval completing-read "Quote style variant: " ',quote-style-variant-list) ] (TeX-arg-eval completing-read "Quote style name: " ',quote-style-name-list) ["Outer quote initialization"] ["Inner quote initialization"] "Opening outer quotation mark" ["Middle outer quotation mark"] "Closing outer quotation mark" ["Kerning between adjoining marks"] "Opening inner quotation mark" ["Middle inner quotation mark"] "Closing inner quotation mark") `("DeclareQuoteAlias" [ (TeX-arg-eval completing-read "Quote style variant: " ',quote-style-variant-list) ] (TeX-arg-eval completing-read "Quote style name: " ',quote-style-name-list) "Alias name") '("DeclareQuoteOption" 1) '("ExecuteQuoteOptions" 1) '("DeclarePlainStyle" "Opening outer quotation mark" "Closing outer quotation mark" "Opening inner quotation mark" "Closing inner quotation mark") '("SetBlockThreshold" "Number of lines") '("SetBlockEnvironment" "Environment") '("SetCiteCommand" "Command") "mkcitation" "mkccitation" "mkpreblockpunct" "mkmidblockpunct" "mkfinblockpunct" "mkpretextpunct" "mkmidtextpunct" "mkfintextpunct" "mkpredisppunct" "mkmiddisppunct" "mkfindisppunct" '("ifblockquote" 2) '("ifquotepunct" 2) '("ifquoteterm" 2) '("ifquoteperiod" 2) '("ifquotecomma" 2) '("ifquotesemicolon" 2) '("ifquotecolon" 2) '("ifquoteexclam" 2) '("ifquotequestion" 2) '("ifstringblank" 2) '("BlockquoteDisable" 1)) ;; New environments (LaTeX-add-environments "quoteblock" "quotetext" '("displayquote" LaTeX-csquotes-insert-environment ["Citation"] ["Punctuation"]) '("foreigndisplayquote" LaTeX-csquotes-insert-environment "Language" ["Citation"] ["Punctuation"]) '("hyphendisplayquote" LaTeX-csquotes-insert-environment "Language" ["Citation"] ["Punctuation"]) '("displaycquote" LaTeX-csquotes-insert-environment ["Pre-note"] ["Post-note"] "Key" ["Punctuation"]) '("foreigndisplaycquote" LaTeX-csquotes-insert-environment "Language" ["Pre-note"] ["Post-note"] "Key" ["Punctuation"]) '("hyphendisplaycquote" LaTeX-csquotes-insert-environment "Language" ["Pre-note"] ["Post-note"] "Key" ["Punctuation"])) ;; Quotation marks (when (and (> (length LaTeX-csquotes-open-quote) 0) (> (length LaTeX-csquotes-close-quote) 0)) (setq TeX-quote-language `(override ,LaTeX-csquotes-open-quote ,LaTeX-csquotes-close-quote ,LaTeX-csquotes-quote-after-quote))) ;; Fontification (when (and (featurep 'font-latex) (eq TeX-install-font-lock 'font-latex-setup)) (font-latex-add-keywords '(("DisableQuotes" "") ("RestoreQuotes" "")) 'function) (font-latex-add-keywords '(("enquote" "*{") ("foreignquote" "*{{") ("hyphenquote" "*{{") ("textcquote" "*[[{[{") ("foreigntextcquote" "*{[[{[{") ("hyphentextcquote" "*{[[{[{") ("textquote" "*[[{") ("foreigntextquote" "*{[[{") ("hyphentextquote" "*{[[{") ("blockquote" "[[{") ("foreignblockquote" "{[[{") ("hyphenblockquote" "{[[{") ("blockcquote" "[[{[{") ("foreignblockcquote" "{[[{[{") ("hyphenblockcquote" "{[[{[{")) 'textual) (font-latex-add-keywords '(("setquotestyle" "[{") ("MakeOuterQuote" "{") ("MakeInnerQuote" "{") ("MakeAutoQuote" "*{{") ("MakeForeignQuote" "*{{{") ("MakeHyphenQuote" "*{{{") ("MakeBlockQuote" "{{{") ("MakeForeignBlockQuote" "{{{{") ("MakeHyphenBlockQuote" "{{{{") ("DeclareQuoteStyle" "[{[[{[{[{[{") ("DeclareQuoteAlias" "[{{") ("DeclareQuoteOption" "{") ("DeclarePlainStyle" "{{{{") ("SetBlockThreshold" "{") ("SetBlockEnvironment" "{") ("SetCiteCommand" "{")) 'variable)))) LaTeX-dialect) ;;; csquotes.el ends here auctex-11.91/style/currvita.el000066400000000000000000000060241313533625700163510ustar00rootroot00000000000000;;; currvita.el --- AUCTeX style for `currvita.sty' (v0.9i) ;; Copyright (C) 2015, 2016 Free Software Foundation, Inc. ;; Author: Arash Esbati ;; Maintainer: auctex-devel@gnu.org ;; Created: 2015-01-05 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `currvita.sty' (v0.9i) from 1999/09/13. ;; `currvita.sty' is part of TeXLive. ;;; Code: ;; This is a modified version of `LaTeX-env-item'. (defun LaTeX-currvita-env-with-label (env) "Insert ENV, a mandatory label and the first item." (LaTeX-insert-environment env (let ((heading (TeX-read-string "Heading of list: "))) (format "{%s}" heading))) (if (TeX-active-mark) (progn (LaTeX-find-matching-begin) (end-of-line 1)) (end-of-line 0)) (delete-char 1) (when (looking-at (concat "^[ \t]+$\\|" "^[ \t]*" TeX-comment-start-regexp "+[ \t]*$")) (delete-region (point) (line-end-position))) (delete-horizontal-space) ;; Deactivate the mark here in order to prevent `TeX-parse-macro' ;; from swapping point and mark and the \item ending up right after ;; \begin{...}. (TeX-deactivate-mark) (LaTeX-insert-item) ;; The inserted \item may have outdented the first line to the ;; right. Fill it, if appropriate. (when (and (not (looking-at "$")) (not (assoc env LaTeX-indent-environment-list)) (> (- (line-end-position) (line-beginning-position)) (current-fill-column))) (LaTeX-fill-paragraph nil))) (TeX-add-style-hook "currvita" (lambda () ;; env's defined by currvita.sty (LaTeX-add-environments '("cv" "Heading of CV") '("cvlist" LaTeX-currvita-env-with-label)) ;; Add "cvlist" to the list of environments which have an optional ;; argument for each item (add-to-list 'LaTeX-item-list '("cvlist" . LaTeX-item-argument)) ;; General commands: "\date" is already provided by AUCTeX (TeX-add-symbols '("cvplace" t) '("cvheadingfont" 0) '("cvlistheadingfont" 0) '("cvlabelfont" 0) '("cvbibname" 0)) ;; Add new lengths defined by currvita.sty (LaTeX-add-lengths "cvlabelwidth" "cvlabelskip" "cvlabelsep")) LaTeX-dialect) (defvar LaTeX-currvita-package-options '("LabelsAligned" "TextAligned" "openbib" "ManyBibs" "NoDate") "Package options for the currvita package.") ;;; currvita.el ends here auctex-11.91/style/czech.el000066400000000000000000000004271313533625700156070ustar00rootroot00000000000000;;; czech.el --- Setup AUCTeX for editing Czech text. (TeX-add-style-hook "czech" (lambda () (unless (eq (car TeX-quote-language) 'override) (setq TeX-quote-language `("czech" "\\uv{" "}" ,TeX-quote-after-quote))) (run-hooks 'TeX-language-cz-hook)) LaTeX-dialect) auctex-11.91/style/danish.el000066400000000000000000000010401313533625700157510ustar00rootroot00000000000000;;; danish.el --- Setup AUCTeX for editing Danish text. ;;; Code: (TeX-add-style-hook "danish" (lambda () (unless (eq (car TeX-quote-language) 'override) (setq TeX-quote-language `("danish" "\"`" "\"'" ,TeX-quote-after-quote))) (setq LaTeX-babel-hyphen-language "danish") ;; Fontification of quotation marks. (when (fboundp 'font-latex-add-quotes) (font-latex-add-quotes '("\"`" "\"'")) (font-latex-add-quotes '("\">" "\"<" german))) (run-hooks 'TeX-language-dk-hook)) LaTeX-dialect) ;;; danish.el ends here auctex-11.91/style/dcolumn.el000066400000000000000000000027511313533625700161560ustar00rootroot00000000000000;;; dcolumn.el --- AUCTeX style for `dcolumn.sty' (v1.06) ;; Copyright (C) 2016 Free Software Foundation, Inc. ;; Author: Arash Esbati ;; Maintainer: auctex-devel@gnu.org ;; Created: 2016-12-18 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `dcolumn.sty' (v1.06) from 2014/10/28. ;; `dcolumn.sty' is part of TeXLive. ;;; Code: (TeX-add-style-hook "dcolumn" (lambda () ;; `dcolumn.sty' adds one new column specification letter: (set (make-local-variable 'LaTeX-array-column-letters) (concat LaTeX-array-column-letters "D")) ;; Also run style hook for `array': (TeX-run-style-hooks "array")) LaTeX-dialect) (defvar LaTeX-dcolumn-package-options nil "Package options for the dcolumn package.") ;;; dcolumn.el ends here auctex-11.91/style/dinbrief.el000066400000000000000000000220121313533625700162670ustar00rootroot00000000000000;;; dinbrief.el --- Special code for LaTeX-Style dinbrief. ;; Copyright (C) 1994, 2013, 2014 Free Software Foundation, Inc. ;; Author: Werner Fink ;; Maintainer: auctex-devel@gnu.org ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; dinbrief.el - Special code for LaTeX class dinbrief. ;;; Commentary: ;; LaTeX Class: dinbrief.cls ;;; Code: (require 'tex) (TeX-add-style-hook "dinbrief" (function (lambda () (add-hook 'LaTeX-document-style-hook 'LaTeX-dinbrief-style) (LaTeX-add-environments '("letter" LaTeX-dinbrief-env-recipient) "dinquote") (TeX-add-symbols '("address" "Absender: ") '("postremark" "Postvermerk: ") '("date" "Datum: ") '("subject" "Betreff: ") '("handling" "Behandlungsvermerk: ") '("cc" "Verteiler: ") '("place" "Heutiger Ort: ") "makelabels" "nowindowrules" "windowrules" "nowindowtics" "windowtics" "disabledraftstandard" "enabledraftstandard" "centeraddress" "normaladdress" '("encl" "Anlagen: ") '("backaddress" "Retouradresse: ") '("signature" "Unterschrift: ") '("opening" "Anrede: ") '("closing" "Schluss: ")))) LaTeX-dialect) (defmacro LaTeX-dinbrief-insert (&rest args) "Insert text ignoring active markers." `(progn (if (TeX-mark-active) (TeX-deactivate-mark)) (insert ,@args))) (defun LaTeX-dinbrief-style () "Insert some useful packages for writing german letters." (save-excursion (goto-char (point-min)) ; insert before \begin{document} (if (re-search-forward ".begin.document." (point-max) t) (beginning-of-line 1)) (open-line 2) (indent-relative-maybe) (LaTeX-dinbrief-insert TeX-esc "usepackage" LaTeX-optop "latin1,utf8" LaTeX-optcl TeX-grop "inputenc" TeX-grcl) (newline-and-indent) (LaTeX-dinbrief-insert TeX-esc "usepackage" LaTeX-optop "T1" LaTeX-optcl TeX-grop "fontenc" TeX-grcl) (newline-and-indent) (LaTeX-dinbrief-insert TeX-esc "usepackage" TeX-grop "ngerman" TeX-grcl) (TeX-run-style-hooks "inputenc") (TeX-run-style-hooks "fontenc") (TeX-run-style-hooks "ngerman"))) (defun LaTeX-dinbrief-env-recipient (environment) "Insert ENVIRONMENT and prompt for recipient and address." (let ( (sender (LaTeX-dinbrief-sender)) (recipient (TeX-read-string "Empfänger: ")) (address (LaTeX-dinbrief-recipient)) (date (TeX-read-string "Datum: " (LaTeX-dinbrief-today))) (postremark (TeX-read-string "Postvermerk: ")) (fenster (TeX-read-string "Fenster \(ja/nein\): ")) (vermerk (TeX-read-string "Behandlungsvermerk: ")) (verteil (TeX-read-string "Verteiler: ")) (betreff (TeX-read-string "Betreff: ")) (opening (TeX-read-string "Anrede: ")) (closing (TeX-read-string "Schluss: ")) (signature (TeX-read-string "Unterschrift: ")) (anlage (TeX-read-string "Anlagen: "))) (if (string= fenster "ja") (progn (LaTeX-dinbrief-insert TeX-esc "enabledraftstandard") (newline-and-indent) (LaTeX-dinbrief-insert TeX-esc "centeraddress") (newline-and-indent) (LaTeX-dinbrief-insert TeX-esc "nowindowrules") (newline-and-indent) (LaTeX-dinbrief-insert TeX-esc "windowtics") (newline-and-indent) (let ((retouradr (TeX-read-string "Retouradresse: " sender))) (newline-and-indent) (if (not (zerop (length retouradr))) (progn (if (TeX-mark-active) (TeX-deactivate-mark)) (LaTeX-dinbrief-insert TeX-esc "backaddress" TeX-grop retouradr TeX-grcl) (newline-and-indent))))) (LaTeX-dinbrief-insert TeX-esc "enabledraftstandard") (newline-and-indent) (LaTeX-dinbrief-insert TeX-esc "centeraddress") (newline-and-indent) (LaTeX-dinbrief-insert TeX-esc "nowindowrules") (newline-and-indent) (LaTeX-dinbrief-insert TeX-esc "windowtics")) (newline-and-indent) (if (not (zerop (length signature))) (progn (LaTeX-dinbrief-insert TeX-esc "signature" TeX-grop signature TeX-grcl) (newline-and-indent))) (if (not (zerop (length date))) (progn (LaTeX-dinbrief-insert TeX-esc "date" TeX-grop date TeX-grcl) (newline-and-indent))) (newline-and-indent) (let ((indentation (current-column))) (LaTeX-insert-environment environment (concat TeX-grop recipient (if (not (zerop (length address))) (concat (if (not (zerop (length recipient))) (concat " " TeX-esc TeX-esc " ")) address)) TeX-grcl)) (save-excursion ; Fix indentation of address (if (search-backward TeX-grcl nil 'move) (let ((addr-end (point-marker))) (if (search-backward TeX-grop nil 'move) (let ((addr-column (current-column))) (while (search-forward (concat TeX-esc TeX-esc) (marker-position addr-end) 'move) (progn (newline) (indent-to addr-column)))))))) (LaTeX-dinbrief-insert "\n") (indent-to indentation)) (if (not (zerop (length postremark))) (progn (LaTeX-dinbrief-insert TeX-esc "postremark" TeX-grop postremark TeX-grcl) (newline-and-indent))) (if (not (zerop (length betreff))) (progn (LaTeX-dinbrief-insert TeX-esc "subject" TeX-grop) (LaTeX-dinbrief-insert betreff TeX-grcl) (newline-and-indent))) (if (not (zerop (length vermerk))) (progn (LaTeX-dinbrief-insert TeX-esc "handling" TeX-grop vermerk TeX-grcl) (newline-and-indent))) (if (not (zerop (length verteil))) (progn (LaTeX-dinbrief-insert TeX-esc "cc" TeX-grop verteil TeX-grcl) (newline-and-indent))) (if (not (zerop (length anlage))) (progn (LaTeX-dinbrief-insert TeX-esc "encl" TeX-grop anlage TeX-grcl) (newline-and-indent))) (LaTeX-dinbrief-insert TeX-esc "opening" TeX-grop (if (zerop (length opening)) (concat TeX-esc " ") opening) TeX-grcl "\n") (indent-relative-maybe) (save-excursion (LaTeX-dinbrief-insert "\n" TeX-esc "closing" TeX-grop (if (zerop (length closing)) (concat TeX-esc " ") closing) TeX-grcl "\n") (indent-relative-maybe)))) (defun LaTeX-dinbrief-sender () "Read and write the senders address." (interactive) (let ((name (TeX-read-string "Absender: " (user-full-name))) (str (TeX-read-string "Meine Strasse: ")) (ort (TeX-read-string "Mein Wohnort: "))) (if (not (zerop (length name))) (progn (goto-char (point-min)) ; insert before \end{document} (if (re-search-forward ".end.document." (point-max) t) (beginning-of-line 1)) (previous-line 1) ;FIXME: Use forward-line! (LaTeX-dinbrief-insert TeX-esc "address" TeX-grop name) (if (not (zerop (length str))) (progn (LaTeX-dinbrief-insert " " TeX-esc TeX-esc) (newline-and-indent) (LaTeX-dinbrief-insert str))) (if (not (zerop (length ort))) (progn (LaTeX-dinbrief-insert " " TeX-esc "par") (newline-and-indent) (LaTeX-dinbrief-insert ort))) (LaTeX-dinbrief-insert TeX-grcl) (newline-and-indent) (concat name ", " str ", " ort))))) (defun LaTeX-dinbrief-recipient () "Read and return the recipient address." (interactive) (let ((str (TeX-read-string "Wohnhaft in Strasse: ")) (ort (TeX-read-string "Aus der Ortschaft: "))) (if (not (zerop (length str))) (if (not (zerop (length ort))) (concat str " " TeX-esc TeX-esc " " ort) str) (if (not (zerop (length ort))) ort)))) (defun LaTeX-dinbrief-today () "Return a string representing todays date according to flavor." (interactive) (let ((ctime-string (current-time-string)) (month-alist '(("Jan" . "Januar") ("Feb" . "Februar") ("Mar" . "M\\\"arz") ("Apr" . "April") ("May" . "Mai") ("Jun" . "Juni") ("Jul" . "Juli") ("Aug" . "August") ("Sep" . "September") ("Oct" . "Oktober") ("Nov" . "November") ("Dec" . "Dezember")))) (string-match "^\\S-+\\s-+\\(\\S-+\\)\\s-+\\(\\S-+\\)\\s-+\\S-+\\s-+\\(\\S-+\\)" ctime-string) (let ((year (substring ctime-string (match-beginning 3) (match-end 3))) (month (substring ctime-string (match-beginning 1) (match-end 1))) (day (substring ctime-string (match-beginning 2) (match-end 2))) (place (TeX-read-string "Heutiger Ort: "))) (if (assoc month month-alist) (progn (setq month (cdr (assoc month month-alist))) (if (> 2 (length day)) (setq day (concat "0" day))))) (format "%s, den %s. %s %s" place day month year)))) ;;; dinbrief.el ends here auctex-11.91/style/dk-bib.el000066400000000000000000000036451313533625700156500ustar00rootroot00000000000000;;; dk-bib.el --- AUCTeX style for `dk-bib.sty' ;; Copyright (C) 2005, 2014 Free Software Foundation, Inc. ;; Author: Arne Jrgensen ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, ;; MA 02110-1301, USA. ;;; Commentary: ;; Prompt for package option for dk-bib.sty. ;;; Code: (defun LaTeX-dk-bib-package-options nil "Prompt for package options for the dk-bib package." (let ((options (mapconcat 'identity (TeX-completing-read-multiple "Options: " '(("isbn") ("issn") ("url") ("annote") ("printing") ("apalike") ("fixcitedash=false") ("ordinals2word") ("ordinaldepth="))) ",")) (depth -1)) (when (string-match "\\(ordinaldepth=\\)\\([^0-9]\\|$\\)" options) (while (or (< depth 0) (> depth 20)) (setq depth (if (fboundp 'read-number) (read-number "Ordinal depth: ") (string-to-number (TeX-read-string "Ordinal depth: ")))) (when (or (< depth 0) (> depth 20)) (message "Ordinal depth must be between 0 and 20") (sit-for 1))) (setq options (concat (substring options 0 (match-end 1)) (number-to-string depth) (substring options (match-end 1))))) options)) ;; Local Variables: ;; coding: iso-8859-1 ;; End: ;;; dk-bib.el ends here auctex-11.91/style/dk.el000066400000000000000000000002741313533625700151110ustar00rootroot00000000000000;;; dk.el - Setup AUCTeX for editing Danish text. ;;; Code: (TeX-add-style-hook "dk" (function (lambda () (run-hooks 'TeX-language-dk-hook))) LaTeX-dialect) ;;; dk.el ends here auctex-11.91/style/doc.el000066400000000000000000000123001313533625700152510ustar00rootroot00000000000000;;; doc.el --- AUCTeX style for `doc.sty' ;; Copyright (C) 2004, 2008, 2016 Free Software Foundation, Inc. ;; Author: Frank Kster ;; Maintainer: auctex-devel@gnu.org ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `doc.sty'. ;;; Code: (defun LaTeX-env-no-comment (environment) "Insert ENVIRONMENT and make sure there is no commented empty line inside." (LaTeX-insert-environment environment (when (string-equal environment "macro") (let ((macroname (TeX-read-string (TeX-argument-prompt nil nil "Macro") TeX-esc))) (format "{%s}" macroname)))) (unless (TeX-active-mark) (when (save-excursion (beginning-of-line) (looking-at (concat "[ \t]+$\\|[ \t]*" TeX-comment-start-regexp "+[ \t]*$"))) (delete-region (line-beginning-position) (line-end-position)) (indent-according-to-mode)))) (defun LaTeX-doc-after-insert-macrocode (env start end) "Make sure the macrocode environment is properly formatted after insertion." (when (TeX-member env '("macro" "macrocode" "macrocode*") 'string-equal) (save-excursion (goto-char end) (skip-chars-backward " \t") (when (bolp) (insert "%") (indent-according-to-mode)) (goto-char start) (skip-chars-backward " \t") (when (bolp) (insert "%") (indent-according-to-mode))))) (TeX-add-style-hook "doc" (lambda () (add-to-list (make-local-variable 'LaTeX-indent-environment-list) '("macrocode" current-indentation) t) (add-to-list 'LaTeX-indent-environment-list '("macrocode*" current-indentation) t) (add-to-list 'LaTeX-indent-environment-list '("macro" current-indentation) t) (add-hook 'LaTeX-after-insert-env-hooks 'LaTeX-doc-after-insert-macrocode nil t) (LaTeX-add-environments "theglossary" '("macrocode" LaTeX-env-no-comment) '("macrocode*" LaTeX-env-no-comment) '("macro" LaTeX-env-no-comment)) (TeX-add-symbols "EnableCrossrefs" "DisableCrossrefs" '("DoNotIndex" t) "DontCheckModules" "CheckModules" "Module" '("DescribeMacro" (TeX-arg-eval (lambda () (let ((name (TeX-read-string (TeX-argument-prompt optional nil "Macro") TeX-esc))) (format "%s" name))))) '("DescribeEnv" "Environment") "verbatim" "verb" '("parg" "Argument") '("oarg" "Argument") '("marg" "Argument") '("meta" "Text") '("cs" "Name") '("cmd" (TeX-arg-eval (lambda () (let ((name (TeX-read-string (TeX-argument-prompt optional nil "Name") TeX-esc))) (format "%s" name))))) "makelabel" '("MacroFont" t) '("AltMacroFont" t) "PrintMacroName" "PrintDescribeMacro" "PrintDescribeEnv" "PrintEnvName" "MakePrivateLetters" "actualchar" "quotechar" "levelchar" "encapchar" "verbatimchar" "SpecialIndex" "SpecialMainIndex" "SpecialMainEnvIndex" "SpecialUsageIndex" "SpecialEnvIndex" "SortIndex" "LeftBraceIndex" "RightBraceIndex" "PercentIndex" "OldMakeindex" "PercentIndex" "IndexPrologue" "IndexParms" "subitem" "subsubitem" "indexspace" "efill" "pfill" "PrintIndex" '("changes" "version" TeX-arg-date t) "generalname" "RecordChanges" "GlossaryPrologue" "GlossaryParms" "PrintChanges" "AlsoImplementation" '("StopEventually" t) "OnlyDescription" "Finale" "IndexInput" "maketitle" "MakeShortVerb" "DeleteShortVerb" "MakeShortverb" "DeleteShortverb" "CheckSum" "CharacterTable" "CharTableChanges" "CodelineNumbered" "CodelineIndex" "PageIndex" "theCodelineNo" "DocstyleParms" "MakePercentIgnore" "MakePercentComment" '("DocInput" (TeX-arg-eval (lambda () (let ((file (file-relative-name (read-file-name "File to input: " nil nil nil nil (lambda (x) (string-match "\\.fdd$\\|\\.dtx$" x))) (TeX-master-directory)))) (format "%s" file))))) '("DocInclude" (TeX-arg-eval (lambda () (let ((file (file-relative-name (read-file-name "File to include: " nil nil nil nil (lambda (x) (string-match "\\.fdd$\\|\\.dtx$" x))) (TeX-master-directory)))) (format "%s" file))))) "GetFileInfo" "filename" "fileinfo") (TeX-run-style-hooks "shortvrb") (LaTeX-add-lengths "MacrocodeTopsep" "MacroTopsep" "MacroIndent")) LaTeX-dialect) ;; Local Variables: ;; coding: iso-8859-1 ;; End: auctex-11.91/style/dutch.el000066400000000000000000000003041313533625700156140ustar00rootroot00000000000000;;; dutch.el - Setup AUCTeX for editing Dutch text. ;;; Code: (TeX-add-style-hook "dutch" (function (lambda () (run-hooks 'TeX-language-nl-hook))) LaTeX-dialect) ;;; dutch.el ends here auctex-11.91/style/emp.el000066400000000000000000000056741313533625700153050ustar00rootroot00000000000000;;; emp.el --- AUCTeX support for emp.sty ;; Copyright (C) 2004, 2005, 2014 Free Software Foundation, Inc. ;; Author: Yvon Henel aka TeXnicien de surface ;; Maintainer: auctex-devel@gnu.org ;; Keywords: tex ;; This file is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; This file is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to ;; the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;; version 1.0 2004-03-04 ;;; Code: (TeX-add-style-hook "emp" (function (lambda () (TeX-add-symbols "empuse" "empTeX" "empaddtoTeX" "emprelude" "empaddtoprelude" "unitlength" ) (LaTeX-add-environments '("empfile" LaTeX-env-empfile) '("emp" LaTeX-env-emp-gen) '("empdef" LaTeX-env-emp-gen) '("empgraph" LaTeX-env-emp-gen) '("empcmds") ))) LaTeX-dialect) (defun LaTeX-env-emp-gen (environment-name) "Ask for file, width and length. Insert environment-name environment Used for emp, empdef, and empgraph environments." (let ((emp-fig-name (TeX-read-string "figure name: " "")) (emp-fig-width (TeX-read-string "figure width: " "1" )) (emp-fig-height (TeX-read-string "figure height: " "1" )) ;;; emp.sty demands a width and a height for each of the ;;; emp, empdef, and empgraph environments ;;; we give them 1 by default ;;; not necessarily the best thing to do? ) (if (not (zerop (length emp-fig-name))) (progn (setq LaTeX-emp-fig-name (concat LaTeX-optop emp-fig-name LaTeX-optcl)) (LaTeX-insert-environment environment-name LaTeX-emp-fig-name)) (LaTeX-insert-environment environment-name)) (forward-line -1) (end-of-line) (insert "(" emp-fig-width "," emp-fig-height ")") (forward-line 1) (indent-according-to-mode) )) (defun LaTeX-env-empfile (_optional) "Ask for file. Insert empfile environment" (let ((empfile (TeX-read-string "empfile: " ""))) (if (not (zerop (length empfile))) (progn (setq LaTeX-emp-file-name (concat LaTeX-optop empfile LaTeX-optcl)) (setq mpost-emp-file-name (concat empfile ".mp")) (LaTeX-insert-environment "empfile" LaTeX-emp-file-name)) (progn (setq mpost-emp-file-name "\\jobname") (LaTeX-insert-environment "empfile"))) (if LaTeX-write18-enabled-p (progn (forward-line 1) (end-of-line) (newline-and-indent) (insert "\\immediate\\write18{mpost -tex=latex " mpost-emp-file-name TeX-grcl) (forward-line -2))))) ;;; emp.el ends here auctex-11.91/style/empheq.el000066400000000000000000000431111313533625700157670ustar00rootroot00000000000000;;; empheq.el --- AUCTeX style for `empheq.sty' (v2.14) ;; Copyright (C) 2016, 2017 Free Software Foundation, Inc. ;; Author: Arash Esbati ;; Maintainer: auctex-devel@gnu.org ;; Created: 2016-08-07 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `empheq.sty' (v2.14) from 2014/08/04. ;; `empheq.sty' is part of TeXLive. ;;; Code: ;; Needed for compiling `pushnew': (eval-when-compile (require 'cl)) ;; Needed for auto-parsing. (require 'tex) (defvar LaTeX-empheq-key-val-options `(("box") ("innerbox") ("left" ,(mapcar (lambda (x) (concat TeX-esc x)) '("empheqlbrace" "empheqlbrack" "empheqlangle" "empheqlparen" "empheqlvert" "empheqlVert" "empheqlfloor" "empheqlceil" "empheqbiglbrace" "empheqbiglbrack" "empheqbiglangle" "empheqbiglparen" "empheqbiglvert" "empheqbiglVert" "empheqbiglfloor" "empheqbiglceil"))) ("right" ,(mapcar (lambda (x) (concat TeX-esc x)) '("empheqrbrace" "empheqrbrack" "empheqrangle" "empheqrparen" "empheqrvert" "empheqrVert" "empheqrfloor" "empheqrceil" "empheqbigrbrace" "empheqbigrbrack" "empheqbigrangle" "empheqbigrparen" "empheqbigrvert" "empheqbigrVert" "empheqbigrfloor" "empheqbigrceil"))) ("outerbox") ("marginbox")) "Key=value options for environments from empheq.sty.") (defvar LaTeX-empheq-key-val-options-local nil "Buffer-local key=value options for environments from empheq.sty.") (make-local-variable 'LaTeX-empheq-key-val-options-local) (defvar LaTeX-empheq-supported-amsmath-envs '("equation" "equation*" "align" "align*" "gather" "gather*" "flalign" "flalign*" "alignat" "alignat*" "multline" "multline*") "List of amsmath environments supported by empheq package.") (defvar LaTeX-empheq-package-options '("overload" "overload2" "ntheorem" "newmultline" "oldmultline") "Package options for the empheq package.") ;; Setup for \Declare(Left|Right)Delimiter: (TeX-auto-add-type "empheq-declaredelimiter" "LaTeX") (defvar LaTeX-empheq-declaredelimiter-regexp `(,(concat "\\\\Declare\\(Left\\|Right\\)Delimiter" "[ \t\n\r%]*" "\\(?:\\[[^]]*\\]\\)?" "[ \t\n\r%]*" "{" (regexp-quote TeX-esc) "\\([^}]+\\)}") (2 1) LaTeX-auto-empheq-declaredelimiter) "Matches the argument of \\Declare(Left|Right)Delimiter from empheq package.") (defun LaTeX-empheq-auto-prepare () "Clear `LaTeX-auto-empheq-declaredelimiter' before parsing." (setq LaTeX-auto-empheq-declaredelimiter nil)) (defun LaTeX-empheq-auto-cleanup () "Process parsed delimiters." (dolist (delim (mapcar #'car (LaTeX-empheq-declaredelimiter-list))) (TeX-add-symbols (concat "empheq" delim) (concat "empheqbig" delim))) (LaTeX-empheq-update-key-val-options)) (add-hook 'TeX-auto-prepare-hook #'LaTeX-empheq-auto-prepare t) (add-hook 'TeX-auto-cleanup-hook #'LaTeX-empheq-auto-cleanup t) (add-hook 'TeX-update-style-hook #'TeX-auto-parse t) (defun LaTeX-empheq-update-key-val-options () "Update `LaTeX-empheq-key-val-options-local' if the function `LaTeX-empheq-declaredelimiter-list' returns non-nil." (when (LaTeX-empheq-declaredelimiter-list) (let ((lvals (cadr (assoc "left" LaTeX-empheq-key-val-options))) (rvals (cadr (assoc "right" LaTeX-empheq-key-val-options))) (tmp (copy-alist LaTeX-empheq-key-val-options)) lval rval) (dolist (delims (LaTeX-empheq-declaredelimiter-list)) (let ((delim (car delims)) (where (cadr delims))) (if (string= where "Left") (progn (pushnew (concat TeX-esc "empheq" delim) lval :test #'equal) (pushnew (concat TeX-esc "empheqbig" delim) lval :test #'equal)) (progn (pushnew (concat TeX-esc "empheq" delim) rval :test #'equal) (pushnew (concat TeX-esc "empheqbig" delim) rval :test #'equal))))) (when lval (setq tmp (assq-delete-all (car (assoc "left" tmp)) tmp)) (setq lvals (append lval lvals)) (push (list "left" lvals) tmp)) (when rval (setq tmp (assq-delete-all (car (assoc "right" tmp)) tmp)) (setq rvals (append rval rvals)) (push (list "right" rvals) tmp)) (setq LaTeX-empheq-key-val-options-local (copy-alist tmp))))) (defun LaTeX-empheq-env (env) "Query for a supported amsmath environment and insert it accordingly." (let* ((keyvals (TeX-read-key-val t LaTeX-empheq-key-val-options-local)) (amsenv (completing-read (TeX-argument-prompt nil nil "amsmath environment") LaTeX-empheq-supported-amsmath-envs)) (ncols (when (or (string= amsenv "alignat") (string= amsenv "alignat*")) (TeX-read-string (TeX-argument-prompt nil nil "Number of columns")))) num) (LaTeX-insert-environment env (concat (when (and keyvals (not (string= keyvals ""))) (concat LaTeX-optop keyvals LaTeX-optcl)) TeX-grop (if (and ncols (not (string= ncols ""))) (concat amsenv "=" ncols) (symbol-value 'amsenv)) TeX-grcl)) (when (and (assoc amsenv LaTeX-label-alist) (LaTeX-label amsenv 'environment)) (LaTeX-newline) (indent-according-to-mode)) (when (and ncols (not (string= ncols ""))) (setq num (string-to-number ncols)) (save-excursion (insert (make-string (+ num num -1) ?&)))))) (defun LaTeX-empheq-env-overload (env &optional _ignore) "Insert amsmath ENV's when option overload is given to empheq package. This function combines the capabilities of `LaTeX-env-label' and `LaTeX-amsmath-env-alignat'. It overwrites the definitions of `amsmath.el'." (if (or (string= env "alignat") (string= env "alignat*")) (let ((ncols (TeX-read-string (TeX-argument-prompt nil nil "Number of columns"))) (keyvals (TeX-read-key-val t LaTeX-empheq-key-val-options-local "empheq options (k=v)"))) (LaTeX-insert-environment env (concat TeX-grop ncols TeX-grcl (when (and keyvals (not (string= keyvals ""))) (concat LaTeX-optop keyvals LaTeX-optcl)))) (LaTeX-item-equation-alignat t)) (let ((keyvals (TeX-read-key-val t LaTeX-empheq-key-val-options-local "empheq options (k=v)"))) (LaTeX-insert-environment env (when (and keyvals (not (string= keyvals ""))) (concat LaTeX-optop keyvals LaTeX-optcl))) (when (and (assoc env LaTeX-label-alist) (LaTeX-label env 'environment)) (LaTeX-newline) (indent-according-to-mode))))) (defun LaTeX-empheq-item-equation () "Insert contents to terminate a line in multi-line equations environment. Put line break macro on the last line. Next, if the current environment wants \\label, insert it also. And insert suitable number of ampersands if possible." (let ((env (LaTeX-current-environment)) amsenv ncols match) (save-excursion (LaTeX-find-matching-begin) (re-search-forward (concat (regexp-quote TeX-esc) "begin" TeX-grop env TeX-grcl)) (when (looking-at "[ \t\n\r%]*\\[") (forward-sexp)) (re-search-forward "[ \t\n\r%]*{\\([^}]+\\)}") (setq match (TeX-replace-regexp-in-string "[ \t\n\r%]" "" (match-string-no-properties 1))) (if (string-match "=" match) (progn (setq amsenv (car (split-string match "="))) (setq ncols (string-to-number (cadr (split-string match "="))))) (setq amsenv match))) ;; Do not ask for "\\" if in "equation" or "equation*" since these ;; are single line equations only (if (or (string= amsenv "equation") (string= amsenv "equation*")) ;; Nullify the effect of `M-RET' (progn (message "This environment does not support multi-line equations") (end-of-line 0) (kill-line 1)) (progn (end-of-line 0) (just-one-space) (TeX-insert-macro "\\") (forward-line 1) (indent-according-to-mode))) ;; Add a new label only if not in "equation" (when (and (not (string= amsenv "equation")) (assoc amsenv LaTeX-label-alist) (LaTeX-label amsenv 'environment)) (LaTeX-newline) (indent-according-to-mode)) (when ncols (save-excursion (insert (make-string (+ ncols ncols -1) ?&)))))) (TeX-add-style-hook "empheq" (lambda () ;; Add empheq to parser (TeX-auto-add-regexp LaTeX-empheq-declaredelimiter-regexp) ;; Load amsmath.el and mathtools.el (TeX-run-style-hooks "amsmath" "mathtools") ;; Add elements from `LaTeX-mathtools-package-options' only once ;; and not every time the style hook runs (dolist (elt LaTeX-mathtools-package-options) (add-to-list 'LaTeX-empheq-package-options elt)) ;; Local version of key-val options (setq LaTeX-empheq-key-val-options-local (copy-alist LaTeX-empheq-key-val-options)) ;; Initial update of key-vals (LaTeX-empheq-update-key-val-options) (LaTeX-add-environments '("empheq" LaTeX-empheq-env)) ;; Add "empheq" to `LaTeX-item-list' and run ;; `LaTeX-empheq-item-equation' when `M-RET' is invoked (add-to-list 'LaTeX-item-list '("empheq" . LaTeX-empheq-item-equation) t) ;; Reftex support: Use `reftex-add-label-environments' (when (fboundp 'reftex-add-label-environments) (reftex-add-label-environments '(("empheq" ?e nil nil t)))) (TeX-add-symbols '("empheqset" (TeX-arg-key-val LaTeX-empheq-key-val-options-local)) ;; 1.4 Special delimiters ;; Normal '("empheqlbrace" TeX-arg-insert-right-brace-maybe) '("empheqrbrace") '("empheqlbrack" TeX-arg-insert-right-brace-maybe) '("empheqrbrack") '("empheqlangle" TeX-arg-insert-right-brace-maybe) '("empheqrangle") '("empheqlparen" TeX-arg-insert-right-brace-maybe) '("empheqrparen") '("empheqlvert" TeX-arg-insert-right-brace-maybe) '("empheqrvert") '("empheqlVert" TeX-arg-insert-right-brace-maybe) '("empheqrVert") '("empheqlfloor" TeX-arg-insert-right-brace-maybe) '("empheqrfloor") '("empheqlceil" TeX-arg-insert-right-brace-maybe) '("empheqrceil") ;; Bigger '("empheqbiglbrace" TeX-arg-insert-right-brace-maybe) '("empheqbigrbrace") '("empheqbiglbrack" TeX-arg-insert-right-brace-maybe) '("empheqbigrbrack") '("empheqbiglangle" TeX-arg-insert-right-brace-maybe) '("empheqbigrangle") '("empheqbiglparen" TeX-arg-insert-right-brace-maybe) '("empheqbigrparen") '("empheqbiglvert" TeX-arg-insert-right-brace-maybe) '("empheqbigrvert") '("empheqbiglVert" TeX-arg-insert-right-brace-maybe) '("empheqbigrVert") '("empheqbiglfloor" TeX-arg-insert-right-brace-maybe) '("empheqbigrfloor") '("empheqbiglceil" TeX-arg-insert-right-brace-maybe) '("empheqbigrceil")) ;; Append delimiters to `TeX-braces-association' (make-local-variable 'TeX-braces-association) (let ((delimiters '(("\\empheqlbrace" . "\\empheqrbrace") ("\\empheqlbrack" . "\\empheqrbrack") ("\\empheqlangle" . "\\empheqrangle") ("\\empheqlparen" . "\\empheqrparen") ("\\empheqlvert" . "\\empheqrvert") ("\\empheqlVert" . "\\empheqrVert") ("\\empheqlfloor" . "\\empheqrfloor") ("\\empheqlceil" . "\\empheqrceil") ("\\empheqbiglbrace" . "\\empheqbigrbrace") ("\\empheqbiglbrack" . "\\empheqbigrbrack") ("\\empheqbiglangle" . "\\empheqbigrangle") ("\\empheqbiglparen" . "\\empheqbigrparen") ("\\empheqbiglvert" . "\\empheqbigrvert") ("\\empheqbiglVert" . "\\empheqbigrVert") ("\\empheqbiglfloor" . "\\empheqbigrfloor") ("\\empheqbiglceil" . "\\empheqbigrceil")))) (dolist (elt delimiters) (add-to-list 'TeX-braces-association elt t))) ;; 2.2.1 Using multline (when (LaTeX-provided-package-options-member "empheq" "oldmultline") (LaTeX-add-environments '("MTmultlined" LaTeX-mathtools-env-multlined))) ;; 2.2.2 The overload option ;; I simplify it and ignore the additional feature overload2: (when (or (LaTeX-provided-package-options-member "empheq" "overload") (LaTeX-provided-package-options-member "empheq" "overload2")) (LaTeX-add-environments '("align" LaTeX-empheq-env-overload) '("alignat" LaTeX-empheq-env-overload) '("equation" LaTeX-empheq-env-overload) '("flalign" LaTeX-empheq-env-overload) '("gather" LaTeX-empheq-env-overload) '("multline" LaTeX-empheq-env-overload) '("align*" LaTeX-env-args [TeX-arg-key-val LaTeX-empheq-key-val-options-local]) '("alignat*" LaTeX-empheq-env-overload) '("equation*" LaTeX-env-args [TeX-arg-key-val LaTeX-empheq-key-val-options-local]) '("flalign*" LaTeX-env-args [TeX-arg-key-val LaTeX-empheq-key-val-options-local]) '("gather*" LaTeX-env-args [TeX-arg-key-val LaTeX-empheq-key-val-options-local]) '("multline*" LaTeX-env-args [TeX-arg-key-val LaTeX-empheq-key-val-options-local]) ;; Original definitions are stored prefixed with "AmS" '("AmSalign" LaTeX-env-label) '("AmSalignat" LaTeX-amsmath-env-alignat) '("AmSequation" LaTeX-env-label) '("AmSflalign" LaTeX-env-label) '("AmSgather" LaTeX-env-label) '("AmSmultline" LaTeX-env-label) '("AmSalign*") '("AmSalignat*" LaTeX-amsmath-env-alignat) '("AmSequation*") '("AmSflalign*") '("AmSgather*") '("AmSmultline*")) ;; Append original definitions to `LaTeX-label-alist' (let ((envs '("AmSalign" "AmSalignat" "AmSequation" "AmSflalign" "AmSgather" "AmSmultline"))) (dolist (env envs) (add-to-list 'LaTeX-label-alist `(,env . LaTeX-amsmath-label) t))) ;; RefTeX support: Add original definitions with `reftex-add-label-environments' (when (fboundp 'reftex-add-label-environments) (let ((envs '(("AmSalign" ?e nil nil eqnarray-like) ("AmSequation" ?e nil nil t) ("AmSgather" ?e nil nil eqnarray-like) ("AmSmultline" ?e nil nil t) ("AmSflalign" ?e nil nil eqnarray-like) ("AmSalignat" ?e nil nil alignat-like)))) (dolist (env envs) (reftex-add-label-environments `(,env))))) ;; Append original definitions to `LaTeX-item-list'; functions ;; are provided by amsmath.el (let ((envs '(("AmSalign" . LaTeX-item-equation) ("AmSalign*" . LaTeX-item-equation) ("AmSflalign" . LaTeX-item-equation) ("AmSalignat" . LaTeX-item-equation-alignat) ("AmSalignat*" . LaTeX-item-equation-alignat) ("AmSflalign*" . LaTeX-item-equation) ("AmSgather" . LaTeX-item-equation) ("AmSgather*" . LaTeX-item-equation) ("AmSmultline" . LaTeX-item-equation) ("AmSmultline*" . LaTeX-item-equation)))) (dolist (env envs) (add-to-list 'LaTeX-item-list env t))) ;; Ispell skip lists: (TeX-ispell-skip-setcdr `(,(cons (concat "\\(AmS\\(?:align\\(?:\\*\\|at\\*?\\)?\\|" "equation\\*?\\|flalign\\*?\\|gather\\*?\\|multline\\*?\\)\\)") (concat "\\\\end{" "\\(AmS\\(?:align\\(?:\\*\\|at\\*?\\)?\\|" "equation\\*?\\|flalign\\*?\\|gather\\*?\\|multline\\*?\\)\\)}"))))) ;; 3.2 Support for ntheorem (LaTeX-add-lengths "mintagvsep") ;; 4.1 Creating your own delimiters (TeX-add-symbols '("DeclareLeftDelimiter" [ "Space adjustment" ] (TeX-arg-eval (lambda () (let ((delim (TeX-read-string (concat "Delimiter: " TeX-esc)))) (TeX-add-symbols (concat "empheq" delim) (concat "empheqbig" delim)) (LaTeX-add-empheq-declaredelimiters `(,delim "Left")) (LaTeX-empheq-update-key-val-options) (concat TeX-esc delim))))) '("DeclareRightDelimiter" [ "Space adjustment" ] (TeX-arg-eval (lambda () (let ((delim (TeX-read-string (concat "Delimiter: " TeX-esc)))) (TeX-add-symbols (concat "empheq" delim) (concat "empheqbig" delim)) (LaTeX-add-empheq-declaredelimiters `(,delim "Right")) (LaTeX-empheq-update-key-val-options) (concat TeX-esc delim)))))) ;; 4.2 Fine-tuning of delimiters (LaTeX-add-lengths "EmphEqdelimitershortfall") (LaTeX-add-counters "EmphEqdelimiterfactor") (TeX-add-symbols ;; 4.3 Scaling material yourself '("EmphEqdisplayheight" 0) '("EmphEqdisplaydepth" 0) ;; 6.1 New empheq-like environments '("EmphEqMainEnv" 0) '("endEmphEqMainEnv" 0)) ;; Fontification (when (and (featurep 'font-latex) (eq TeX-install-font-lock 'font-latex-setup)) (font-latex-add-keywords '(("empheqset" "{") ("DeclareLeftDelimiter" "[{") ("DeclareRightDelimiter" "[{")) 'function) ;; Append our addition so that we don't interfere with user customizations (make-local-variable 'font-latex-math-environments) (add-to-list 'font-latex-math-environments "empheq" t) (when (or (LaTeX-provided-package-options-member "empheq" "overload") (LaTeX-provided-package-options-member "empheq" "overload2")) (let ((envs '(;; Do not insert the starred versions here; ;; function `font-latex-match-math-envII' takes ;; care of it "AmSalign" "AmSalignat" "AmSequation" "AmSflalign" "AmSgather" "AmSmultline"))) (dolist (env envs) (add-to-list 'font-latex-math-environments env t)))))) LaTeX-dialect) ;;; empheq.el ends here auctex-11.91/style/english.el000066400000000000000000000004301313533625700161360ustar00rootroot00000000000000;;; english.el --- Setup AUCTeX for editing English text. ;;; Code: (TeX-add-style-hook "english" (lambda () (unless (eq (car TeX-quote-language) 'override) (setq TeX-quote-language nil)) (run-hooks 'TeX-language-en-hook)) LaTeX-dialect) ;;; english.el ends here auctex-11.91/style/enumitem.el000066400000000000000000000405261313533625700163420ustar00rootroot00000000000000;;; enumitem.el --- AUCTeX style for `enumitem.sty' (v3.5.2) ;; Copyright (C) 2015, 2016 Free Software Foundation, Inc. ;; Author: Arash Esbati ;; Maintainer: auctex-devel@gnu.org ;; Created: 2014-10-20 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `enumitem.sty' (v3.5.2) from 2011/09/28. ;; `enumitem.sty' is part of TeXLive. ;; Tassilo Horn's `minted.el' was a major source of inspiration for ;; this style, many thanks to him (also for patiently answering my ;; many other questions, incl. the stupid ones.) ;; If things do not work or when in doubt, press `C-c C-n'. Comments ;; for improvement are welcome. ;;; Code: ;; Needed for compiling `pushnew': (eval-when-compile (require 'cl)) ;; Needed for auto-parsing. (require 'tex) (defvar LaTeX-enumitem-key-val-options '(;; Vertical Spacing ("topsep") ("partopsep") ("parsep") ("itemsep") ;; Horizontal Spacing ("leftmargin" ("*" "!")) ("itemindent" ("*" "!")) ("labelsep" ("*" "!")) ("labelwidth" ("*" "!")) ("labelindent" ("*" "!")) ("labelsep*") ("labelindent*") ("widest") ("widest*") ("rightmargin") ;; Labels and cross reference format ("label") ("label*") ("ref") ("font") ("format") ("align" ("left" "right" "parleft")) ;; Numbering, stopping, resuming ("start") ("resume") ("resume*") ;; Series ("series") ;; Penalties ("beginpenalty") ("midpenalty") ("endpenalty") ("before") ("before*") ("after") ("after*") ;; Description styles ("style" ("standard" "multiline" "nextline" "sameline" "unboxed")) ;; Compact lists ("noitemsep") ("nosep") ;; Wide lists ("wide") ;; Inline lists ("itemjoin") ("itemjoin*") ("afterlabel") ("mode" ("boxed" "unboxed"))) "Key=value options for enumitem macros and environments.") (defvar LaTeX-enumitem-key-val-options-local nil "Buffer-local key=value options for enumitem macros and environments.") (make-variable-buffer-local 'LaTeX-enumitem-key-val-options-local) (defvar LaTeX-enumitem-newlist-list-local nil "Local list of all environments definded with `\\newlist' plus the ones initially available through `enumitem' package.") (make-variable-buffer-local 'LaTeX-enumitem-newlist-list-local) ;; Setup for \newlist: (TeX-auto-add-type "enumitem-newlist" "LaTeX") (defvar LaTeX-enumitem-newlist-regexp '("\\\\newlist{\\([^}]+\\)}{\\([^}]+\\)}" (1 2) LaTeX-auto-enumitem-newlist) "Matches the arguments of `\\newlist' from `enumitem' package.") ;; Setup for \SetLabelAlign: (TeX-auto-add-type "enumitem-SetLabelAlign" "LaTeX") (defvar LaTeX-enumitem-SetLabelAlign-regexp '("\\\\SetLabelAlign{\\([^}]+\\)}" 1 LaTeX-auto-enumitem-SetLabelAlign) "Matches the argument of `\\SetLabelAlign' from `enumitem' package.") ;; Setup for \SetEnumitemKey: (TeX-auto-add-type "enumitem-SetEnumitemKey" "LaTeX") (defvar LaTeX-enumitem-SetEnumitemKey-regexp '("\\\\SetEnumitemKey{\\([^}]+\\)}" 1 LaTeX-auto-enumitem-SetEnumitemKey) "Matches the arguments of `\\SetEnumitemKey' from `enumitem' package.") ;; Setup for \SetEnumitemValue: (TeX-auto-add-type "enumitem-SetEnumitemValue" "LaTeX") ;; Upon Tassilo's recommendation, we include also `0' so that we can ;; use the function `LaTeX-enumitem-SetEnumitemValue-list' while we ;; make sure that `TeX-auto-list-information' doesn't remove multiple ;; defined values to a specific key. For this reason, we also ignore ;; the 3. argument to the `\SetEnumitemValue' macro (i.e., a third ;; {\\([^}]+\\)} in regex) so that we don't pollute the generated ;; `docname.el' with unnecessary (La)TeX code. (defvar LaTeX-enumitem-SetEnumitemValue-regexp '("\\\\SetEnumitemValue{\\([^}]+\\)}{\\([^}]+\\)}" (0 1 2) LaTeX-auto-enumitem-SetEnumitemValue) "Matches the arguments of `\\SetEnumitemValue' from `enumitem' package.") ;; Plug them into the machinery. (defun LaTeX-enumitem-auto-prepare () "Clear various `LaTeX-enumitem-*' before parsing." (setq LaTeX-auto-enumitem-newlist nil LaTeX-auto-enumitem-SetLabelAlign nil LaTeX-auto-enumitem-SetEnumitemKey nil LaTeX-auto-enumitem-SetEnumitemValue nil)) (defun LaTeX-enumitem-auto-cleanup () "Move parsing results into right places for further usage." ;; \newlist{}{}{} ;; env=, type=, ignored= (dolist (env-type (LaTeX-enumitem-newlist-list)) (let* ((env (car env-type)) (type (cadr env-type))) (LaTeX-add-environments (list env 'LaTeX-enumitem-env-with-opts)) ;; Tell AUCTeX about parsed description like environments. (when (or (string-equal type "description") (string-equal type "description*")) (add-to-list 'LaTeX-item-list `(,env . LaTeX-item-argument))) ;; Add new env's to `ispell-tex-skip-alist': skip the optional argument (TeX-ispell-skip-setcdr `((,env ispell-tex-arg-end 0))))) ;; Now add the parsed env's to the local list. (when (LaTeX-enumitem-newlist-list) (setq LaTeX-enumitem-newlist-list-local (append (mapcar 'list (mapcar 'car (LaTeX-enumitem-newlist-list))) LaTeX-enumitem-newlist-list-local)))) (add-hook 'TeX-auto-prepare-hook #'LaTeX-enumitem-auto-prepare t) (add-hook 'TeX-auto-cleanup-hook #'LaTeX-enumitem-auto-cleanup t) (add-hook 'TeX-update-style-hook #'TeX-auto-parse t) (defun LaTeX-enumitem-env-with-opts (env) "Update available key-val options, then insert ENV and optional key-val and the first item." (LaTeX-enumitem-update-key-val-options) (LaTeX-insert-environment env (let ((opts (TeX-read-key-val t LaTeX-enumitem-key-val-options-local))) (when (and opts (not (string-equal opts ""))) (format "[%s]" opts)))) (if (TeX-active-mark) (progn (LaTeX-find-matching-begin) (end-of-line 1)) (end-of-line 0)) (delete-char 1) (when (looking-at (concat "^[ \t]+$\\|" "^[ \t]*" TeX-comment-start-regexp "+[ \t]*$")) (delete-region (point) (line-end-position))) (delete-horizontal-space) ;; Deactivate the mark here in order to prevent `TeX-parse-macro' ;; from swapping point and mark and the \item ending up right after ;; \begin{...}. (TeX-deactivate-mark) (LaTeX-insert-item) ;; The inserted \item may have outdented the first line to the ;; right. Fill it, if appropriate. (when (and (not (looking-at "$")) (not (assoc env LaTeX-indent-environment-list)) (> (- (line-end-position) (line-beginning-position)) (current-fill-column))) (LaTeX-fill-paragraph nil))) (defun LaTeX-arg-SetLabelAlign (optional) "Ask for new type (value) for the \"align\" key and add it to `LaTeX-enumitem-key-val-options-local'." (LaTeX-enumitem-update-key-val-options) (let ((val (TeX-read-string "Alignment: "))) (TeX-argument-insert val optional) (LaTeX-add-enumitem-SetLabelAligns val))) (defun LaTeX-arg-SetEnumitemKey (optional) "Ask for a new key to be defined and add it to `LaTeX-enumitem-key-val-options-local'." (LaTeX-enumitem-update-key-val-options) (let ((key (TeX-read-string "New Key: ")) (replace (TeX-read-key-val optional LaTeX-enumitem-key-val-options-local "Replacement"))) (TeX-argument-insert key optional) (TeX-argument-insert replace optional) (LaTeX-add-enumitem-SetEnumitemKeys key))) ;; In `LaTeX-enumitem-SetEnumitemValue-regexp', we match (0 1 2). ;; When adding a new `key=val', we need something unique for `0'-match ;; until the next `C-c C-n'. We mimic that regex-match bei concat'ing ;; the elements and pass the result to ;; `LaTeX-add-enumitem-SetEnumitemValues'. It will vanish upon next ;; invocation of `C-c C-n'. (defun LaTeX-arg-SetEnumitemValue (optional) "Ask for a new value added to an existing key incl. the final replacement of the value." (LaTeX-enumitem-update-key-val-options) (let ((key (completing-read "Key: " LaTeX-enumitem-key-val-options-local)) (val (TeX-read-string "String value: "))) (TeX-argument-insert key optional) (TeX-argument-insert val optional) (LaTeX-add-enumitem-SetEnumitemValues (list (concat "\\SetEnumitemValue{" key "}{" val "}") key val)))) (defun LaTeX-enumitem-update-key-val-options () "Update the buffer-local key-val options before offering them in `enumitem'-completions." (dolist (key (LaTeX-enumitem-SetEnumitemKey-list)) (add-to-list 'LaTeX-enumitem-key-val-options-local key)) (dolist (keyvals (LaTeX-enumitem-SetEnumitemValue-list)) (let* ((key (nth 1 keyvals)) (val (nth 2 keyvals)) ;; (key-match (car (assoc key LaTeX-enumitem-key-val-options-local))) (val-match (cdr (assoc key LaTeX-enumitem-key-val-options-local))) (temp (copy-alist LaTeX-enumitem-key-val-options-local)) (opts (assq-delete-all (car (assoc key temp)) temp))) (if val-match (pushnew (list key (delete-dups (apply 'append (list val) val-match))) opts :test #'equal) (pushnew (list key (list val)) opts :test #'equal)) (setq LaTeX-enumitem-key-val-options-local (copy-alist opts)))) (dolist (newalign (LaTeX-enumitem-SetLabelAlign-list)) (let* ((key "align") (val (car newalign)) (val-match (cdr (assoc key LaTeX-enumitem-key-val-options-local))) (temp (copy-alist LaTeX-enumitem-key-val-options-local)) (opts (assq-delete-all (car (assoc key temp)) temp))) (pushnew (list key (delete-dups (apply 'append (list val) val-match))) opts :test #'equal) (setq LaTeX-enumitem-key-val-options-local (copy-alist opts))))) (TeX-add-style-hook "enumitem" (lambda () ;; Add enumitem to the parser. (TeX-auto-add-regexp LaTeX-enumitem-newlist-regexp) (TeX-auto-add-regexp LaTeX-enumitem-SetEnumitemKey-regexp) (TeX-auto-add-regexp LaTeX-enumitem-SetEnumitemValue-regexp) (TeX-auto-add-regexp LaTeX-enumitem-SetLabelAlign-regexp) ;; Activate the buffer-local version of key-vals. (setq LaTeX-enumitem-key-val-options-local (copy-alist LaTeX-enumitem-key-val-options)) ;; Set the standard env's to the local list. (setq LaTeX-enumitem-newlist-list-local '(("itemize") ("enumerate") ("description"))) ;; Add the starred versions to the local list. (when (LaTeX-provided-package-options-member "enumitem" "inline") (setq LaTeX-enumitem-newlist-list-local (append '(("itemize*") ("enumerate*") ("description*")) LaTeX-enumitem-newlist-list-local))) ;; Standard env's take key-val as optional argument. (LaTeX-add-environments '("itemize" LaTeX-enumitem-env-with-opts) '("enumerate" LaTeX-enumitem-env-with-opts) '("description" LaTeX-enumitem-env-with-opts)) ;; Make inline env's available with package option "inline" (when (LaTeX-provided-package-options-member "enumitem" "inline") (LaTeX-add-environments '("itemize*" LaTeX-enumitem-env-with-opts) '("enumerate*" LaTeX-enumitem-env-with-opts) '("description*" LaTeX-enumitem-env-with-opts)) (add-to-list 'LaTeX-item-list '("description*" . LaTeX-item-argument))) ;; Cloning lists (TeX-add-symbols ;; The easy way would be: ;; '("newlist" ;; "Name" (TeX-arg-eval ;; completing-read "Type: " ;; '(("itemize") ("enumerate") ("description") ;; ("itemize*") ("enumerate*") ("description*"))) ;; "Max-depth") ;; But we go the extra mile to improve the user experience and add ;; the arguments directly to appropriate lists. ;; \newlist{}{}{} '("newlist" (TeX-arg-eval (lambda () (let ((name (TeX-read-string "Name: ")) (type (completing-read "Type: " '(("itemize") ("enumerate") ("description") ("itemize*") ("enumerate*") ("description*")))) (depth (TeX-read-string "Max-depth: "))) (setq LaTeX-enumitem-newlist-list-local (append `(,(list name)) LaTeX-enumitem-newlist-list-local)) (when (or (string-equal type "description") (string-equal type "description*")) (add-to-list 'LaTeX-item-list `(,name . LaTeX-item-argument))) (LaTeX-add-environments `(,name LaTeX-enumitem-env-with-opts)) (LaTeX-add-enumitem-newlists (list name type)) (TeX-ispell-skip-setcdr `((,name ispell-tex-arg-end 0))) (TeX-argument-insert name optional) (TeX-argument-insert type optional) (format "%s" depth))))) ;; \renewlist{}{}{} '("renewlist" (TeX-arg-eval completing-read "Name: " LaTeX-enumitem-newlist-list-local) (TeX-arg-eval completing-read "Type: " '(("itemize") ("enumerate") ("description") ("itemize*") ("enumerate*") ("description*"))) "Max-depth") ;; \setlist[]{} '("setlist" [TeX-arg-eval mapconcat 'identity (TeX-completing-read-multiple "Environment(s), level(s): " `(,@LaTeX-enumitem-newlist-list-local ("1") ("2") ("3") ("4"))) ","] (TeX-arg-eval (lambda () (LaTeX-enumitem-update-key-val-options) (let ((opts (TeX-read-key-val nil LaTeX-enumitem-key-val-options-local))) (format "%s" opts))))) ;; \setlist*[]{} '("setlist*" [TeX-arg-eval mapconcat 'identity (TeX-completing-read-multiple "Environment, level: " `(,@LaTeX-enumitem-newlist-list-local ("1") ("2") ("3") ("4"))) ","] (TeX-arg-eval (lambda () (LaTeX-enumitem-update-key-val-options) (let ((opts (TeX-read-key-val nil LaTeX-enumitem-key-val-options-local))) (format "%s" opts))))) ) ;; General commands: (TeX-add-symbols ;; Ask for an Integer and insert it. '("setlistdepth" "Integer") ;; Just add the braces and let the user do the rest. '("AddEnumerateCounter" 3) '("AddEnumerateCounter*" 3) ;; "\restartlist" only works for lists defined with "resume" key. ;; We will not extract that information and leave that to users. ;; For completion, extract enumerated environments from ;; `LaTeX-enumitem-newlist-list' and add "enumerate" to them. '("restartlist" (TeX-arg-eval (lambda () (let ((enums '("enumerate"))) (when (LaTeX-provided-package-options-member "enumitem" "inline") (pushnew "enumerate*" enums :test #'equal)) (dolist (env-type (LaTeX-enumitem-newlist-list)) (let ((env (car env-type)) (type (cadr env-type))) (when (or (string-equal type "enumerate") (string-equal type "enumerate*")) (pushnew env enums :test #'equal)))) (completing-read "List name: " enums))))) ;; "Align" is added as new value to "align" key in key-val list. '("SetLabelAlign" LaTeX-arg-SetLabelAlign t) ;; "Key" will be parsed and added to key-val list. '("SetEnumitemKey" LaTeX-arg-SetEnumitemKey) ;; "Key" and "Value" are added to our key-val list '("SetEnumitemValue" LaTeX-arg-SetEnumitemValue "Replacement")) ;; Setting enumerate short label (when (LaTeX-provided-package-options-member "enumitem" "shortlabels") (TeX-add-symbols '("SetEnumerateShortLabel" (TeX-arg-eval completing-read "Key: " '(("A") ("a") ("I") ("i") ("1"))) "Replacement"))) ;; Fontification (when (and (featurep 'font-latex) (eq TeX-install-font-lock 'font-latex-setup)) (font-latex-add-keywords '(("newlist" "{{{") ("renewlist" "{{{") ("setlist" "*[{") ("AddEnumerateCounter" "*{{{") ("SetLabelAlign" "{{") ("SetEnumitemKey" "{{" ) ("SetEnumitemValue" "{{{")) 'function) (font-latex-add-keywords '(("restartlist" "{" ) ("setlistdepth" "{" ) ("SetEnumerateShortLabel" "{{")) 'variable))) LaTeX-dialect) (defvar LaTeX-enumitem-package-options '("inline" "ignoredisplayed" "shortlabels" "loadonly") "Package options for the enumitem package.") ;;; enumitem.el ends here auctex-11.91/style/environ.el000066400000000000000000000105551313533625700161760ustar00rootroot00000000000000;;; environ.el --- AUCTeX style for `environ.sty' version v0.3 ;; Copyright (C) 2015, 2016 Free Software Foundation, Inc. ;; Author: Arash Esbati ;; Maintainer: auctex-devel@gnu.org ;; Created: 2015-07-04 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `environ.sty' version v0.3 from ;; 2014/05/04. `environ.sty' is part of TeXLive. ;; Name of new env's defined with `\NewEnviron' are automatically ;; added to list of known env's, e.g.: ;; ;; \NewEnviron{test}{} ;; ;; `test' will be in completion list upon `C-c C-e'. ;; More sophisticated definions must go through AUCTeX's parser, e.g.: ;; ;; \NewEnviron{test}[2][]{} ;; ;; After a definition like this, you have to invoke `C-c C-n' to get ;; the correct completion. ;;; Code: (defvar LaTeX-auto-environ-NewEnviron nil "Temporary for parsing the arguments of `\\NewEnviron' from `environ' package.") (defvar LaTeX-environ-NewEnviron-regexp `(,(concat "\\\\\\(?:Ren\\|N\\)ewEnviron" "[ \t\n\r]*{\\([A-Za-z0-9]+\\)}%?" "[ \t\n\r]*\\[?\\([0-9]?\\)\\]?%?" "[ \t\n\r]*\\(\\[\\)?") (1 2 3) LaTeX-auto-environ-NewEnviron) "Matches the argument of `\\NewEnviron' and `\\RenewEnviron' from `environ.sty'.") (defun LaTeX-environ-auto-prepare () "Clear temporary variable from `environ.sty' before parsing." (setq LaTeX-auto-environ-NewEnviron nil)) (defun LaTeX-environ-auto-cleanup () "Process the parsed results of `\\NewEnviron'." (dolist (env-args LaTeX-auto-environ-NewEnviron) (let ((env (car env-args)) (args (cadr env-args)) (opt (nth 2 env-args))) (cond (;; opt. 1st argument and mandatory argument(s) (and args (not (string-equal args "")) opt (not (string-equal opt ""))) (add-to-list 'LaTeX-auto-environment (list env 'LaTeX-env-args (vector "argument") (1- (string-to-number args))))) (;; mandatory argument(s) only (and args (not (string-equal args "")) (string-equal opt "")) (add-to-list 'LaTeX-auto-environment (list env (string-to-number args)))) (t ; No args (add-to-list 'LaTeX-auto-environment (list env))))))) (add-hook 'TeX-auto-prepare-hook #'LaTeX-environ-auto-prepare t) (add-hook 'TeX-auto-cleanup-hook #'LaTeX-environ-auto-cleanup t) (add-hook 'TeX-update-style-hook #'TeX-auto-parse t) (defun TeX-arg-environ-final-code (_optional) "Query for the presence of optional `final code' as argument to `\\NewEnviron' and insert the appropriate brackets." (let ((fincode (y-or-n-p "With optional final code? "))) (when fincode (insert "[]")))) (TeX-add-style-hook "environ" (lambda () ;; Add it to the parser (TeX-auto-add-regexp LaTeX-environ-NewEnviron-regexp) (TeX-add-symbols ;; \NewEnviron{}[][]{}[] '("NewEnviron" (TeX-arg-define-environment "Environment") [ "Number of arguments" ] [ "argument" ] t TeX-arg-environ-final-code) '("RenewEnviron" (TeX-arg-environment "Environment") [ "Number of arguments" ] [ "argument" ] t TeX-arg-environ-final-code) ;; Insert a pair of braces and we're done '("environfinalcode" t) ;; Pre-defined '("BODY") ;; Define another macro instead of \BODY '("environbodyname" TeX-arg-define-macro)) ;; Fontification (when (and (featurep 'font-latex) (eq TeX-install-font-lock 'font-latex-setup)) (font-latex-add-keywords '(("NewEnviron" "{[[{[") ("RenewEnviron" "{[[{[") ("environbodyname" "|{\\")) 'function))) LaTeX-dialect) (defvar LaTeX-environ-package-options nil "Package options for the environ package.") ;;; environ.el ends here auctex-11.91/style/epigraph.el000066400000000000000000000041401313533625700163060ustar00rootroot00000000000000;;; epigraph.el --- AUCTeX style for `epigraph.sty' ;; Copyright (C) 2012 Free Software Foundation, Inc. ;; Author: Mads Jensen ;; Maintainer: auctex-devel@gnu.org ;; Created: 2012-02-11 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `epigraph.sty'. ;;; Code: (TeX-add-style-hook "epigraph" (lambda () (TeX-add-symbols '("epigraph" t t) '("qitem" t t) '("epigraphhead" [ "Distance (a number)" ] t) '("dropchapter" TeX-arg-size) "epigraphwidth" "textflush" "epigraphflush" "sourceflush" "epigraphsize" "epigraphrule" "beforeepigraphskip" "afterepigraphskip" "undodrop" "cleartoevenpage") (LaTeX-add-environments '("epigraphs" LaTeX-env-item)) (add-to-list 'LaTeX-item-list '("epigraphs" . LaTeX-epigraph-qitem)) (when (and (featurep 'font-latex) (eq TeX-install-font-lock 'font-latex-setup)) (font-latex-add-keywords '(("epigraph" "{{") ("qitem" "{{") ("dropchapter" "{") ("epigraphhead" "{")) 'function) (font-latex-add-keywords '("cleartoevenpage") 'warning))) LaTeX-dialect) (defvar LaTeX-epigraph-package-options nil "Package options for the epigraph package.") ;; adapted from latex.el:`LaTeX-item-bib' (defun LaTeX-epigraph-qitem () "Insert a new qitem for use in the epigraphs environment." (TeX-insert-macro "qitem")) ;;; epigraph.el ends here auctex-11.91/style/epsf.el000066400000000000000000000022411313533625700154440ustar00rootroot00000000000000;;; epsf.el - Support for the epsf style option. ;; Copyright (C) 2013-2014 Free Software Foundation, Inc. ;; Contributed by Marc Gemis ;;; Code: (TeX-add-style-hook "epsf" (lambda () (TeX-add-symbols '("epsfsize" TeX-arg-epsfsize) '("epsffile" TeX-arg-file) '("epsfbox" TeX-arg-file) "epsflly" "epsfury" "testit" "epsfgetlitbb" "epsfnormal" "epsfgetbb" "other" "epsfsetgraph" "PsFragSpecialArgs" "epsfaux" "testit" "epsfgrab" "epsfllx" "epsflly" "epsfury" "epsfverbosetrue")) LaTeX-dialect) (defun TeX-arg-epsfsize (_optional &optional _prompt _definition) "Create a line that print epsf figures at a certain percentage" (interactive) (let ((scale (TeX-read-string "Scale in percent (default 75): "))) (setq scale (if (zerop (length scale)) "75" scale)) (save-excursion ; append #1#{scale#1} (insert "#1#2" TeX-grop "0." scale "#1" TeX-grcl) ; insert \def before \epsfsize (beginning-of-line 1) (newline) (insert TeX-esc "def") (forward-line -1) (insert "% From now on print figures at " scale "% of original size")) (end-of-line))) ;;; epsf.el ends here auctex-11.91/style/erewhon.el000066400000000000000000000054561313533625700161710ustar00rootroot00000000000000;;; erewhon.el --- AUCTeX style for `erewhon.sty' (v1.04) ;; Copyright (C) 2014, 2015 Free Software Foundation, Inc. ;; Author: Arash Esbati ;; Maintainer: auctex-devel@gnu.org ;; Created: 2014-11-18 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `erewhon.sty' (v1.04) from 2015/04/07. ;; `erewhon.sty' is part of TeXLive. ;;; Code: (TeX-add-style-hook "erewhon" (lambda () ;; Run style hook for various packages loaded by erewhon (TeX-run-style-hooks "textcomp" "fontaxes") ;; New symbols (TeX-add-symbols ;; Only preamble commands '("useosf" 0) '("useproportional" 0) ;; Text commands '("lfstyle" -1) ; lf declaration '("tlfstyle" -1) ; tlf declaration '("osfstyle" -1) ; osf declaration '("tosfstyle" -1) ; tosf declaration '("sufigures" -1) ; superior figures declaration '("textlf" t) ; proportional lining figures '("texttlf" t) ; tabular lining figures '("textosf" t) ; proportional oldstyle figures '("texttosf" t) ; tabular oldstyle figures '("textsu" t) ; superior figures '("textin" t) ; inferior figures '("textnu" t) ; numerator figures '("textde" t) ; denominator figures '("textfrac" "Numerator" "Denominator")) ;; Fontification (when (and (featurep 'font-latex) (eq TeX-install-font-lock 'font-latex-setup)) (font-latex-add-keywords '(("textlf" "{") ("texttlf" "{") ("textosf" "{") ("texttosf" "{") ("textsu" "{") ("textin" "{") ("textnu" "{") ("textde" "{")) 'type-command) (font-latex-add-keywords '(("lfstyle" "") ("tlfstyle" "") ("osfstyle" "") ("tosfstyle" "") ("sufigures" "")) 'type-declaration) (font-latex-add-keywords '(("textfrac" "{{")) 'textual))) LaTeX-dialect) (defvar LaTeX-erewhon-package-options '("lining" "lf" "oldstyle" "osf" "tabular" "p" "proportional" "scale" "scaled" "scosf" "space" "sups") "Package options for the erewhon package.") ;;; erewhon.el ends here auctex-11.91/style/eso-pic.el000066400000000000000000000051621313533625700160530ustar00rootroot00000000000000;;; eso-pic.el --- AUCTeX style for `eso-pic.sty' (v2.0d) ;; Copyright (C) 2014 Free Software Foundation, Inc. ;; Author: Arash Esbati ;; Maintainer: auctex-devel@gnu.org ;; Created: 2014-10-29 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `eso-pic.sty' (v2.0d) from 2013/10/06. ;; `eso-pic.sty' is part of TeXLive. ;;; Code: (TeX-add-style-hook "eso-pic" (lambda () ;; Run style hook for eso-pic (TeX-run-style-hooks "atbegshi") ;; New symbols (TeX-add-symbols ;; Basic commands '("AddToShipoutPictureBG" t) '("AddToShipoutPictureBG*" t) '("AddToShipoutPictureFG" t) '("AddToShipoutPictureFG*" t) '("ClearShipoutPictureBG" 0) '("ClearShipoutPictureFG" 0) ;; Helper macros '("AtPageUpperLeft" t) '("AtPageLowerLeft" t) '("AtPageCenter" t) '("AtTextUpperLeft" t) '("AtTextLowerLeft" t) '("AtTextCenter" t) '("AtStockUpperLeft" t) '("AtStockLowerLeft" t) '("AtStockCenter" t) ;; Aux. commands '("LenToUnit" t) '("gridSetup" [ "Grid unit name" ] "Grid unit" "Label factor" "Grid delta" "Grid Delta" "Gap")) ;; Declare expert macro (TeX-declare-expert-macros "eso-pic" "gridSetup" "LenToUnit")) LaTeX-dialect) (defvar LaTeX-eso-pic-package-options-list '(("pscoord" ("true" "false")) ("texcoord" ("true" "false")) ("grid" ("true" "false")) ("gridunit" ("mm" "in" "bp" "pt")) ("gridcolor") ("subgridcolor") ("subgridstyle" ("solid" "dotted")) ("dvips" ("true" "false"))) "Package options for the eso-pic package.") (defun LaTeX-eso-pic-package-options nil "Prompt for package options for the eso-pic package." (TeX-read-key-val t LaTeX-eso-pic-package-options-list)) ;;; eso-pic.el ends here auctex-11.91/style/everysel.el000066400000000000000000000025611313533625700163520ustar00rootroot00000000000000;;; everysel.el --- AUCTeX style for `everysel.sty' ;; Copyright (C) 2012, 2015 Free Software Foundation, Inc. ;; Author: Mads Jensen ;; Created: 2012-12-25 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `everysel.sty'. ;;; Code: (TeX-add-style-hook "everysel" (lambda () (TeX-add-symbols ;; adds a hook (the argument code) to be called after \\selectfont '("EverySelectfont" 1) ;; adds a hook to be called after the next \\selectfont '("AtNextSelectfont" 1))) LaTeX-dialect) (defvar LaTeX-everysel-package-options nil "Package options for the everysel package.") ;;; everysel.el ends here auctex-11.91/style/exam.el000066400000000000000000000274021313533625700154470ustar00rootroot00000000000000;;; exam.el --- AUCTeX style for the (LaTeX) exam class ;; Copyright (C) 2016, 2017 Free Software Foundation, Inc. ;; Author: Uwe Brauer ;; Created: 2016-03-06 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for the exam class. ;; Acknowledgements ;; Arash Esbati for a almost complete rewrite. ;;; Code: (defvar LaTeX-exam-class-options '("answers" "noanswers" "cancelspace" "nocancelspace" "addpoints") "Class options for the exam class.") (defun LaTeX-exam-insert-item () "Insert a new item in an environment from exam class. Item inserted depends on the environment." (TeX-insert-macro (cond ((string= environment "questions") "question") ((string= environment "parts") "part") ((string= environment "subparts") "subpart") ((string= environment "subsubparts") "subsubpart") ;; Fallback (t "item")))) (defun LaTeX-exam-insert-label (_optional &optional name type) "Indent the line and query/insert a label incl. the \"\\label\" macro. Arguments NAME and TYPE are the same as for the function `LaTeX-label'. OPTIONAL is ignored." (indent-according-to-mode) (let ((currenv (LaTeX-current-environment))) (LaTeX-label (or name currenv) (or type 'environment)))) (TeX-add-style-hook "exam" (lambda () (TeX-run-style-hooks "article") ;; Add options from `LaTeX-article-class-options' only once: (dolist (opt LaTeX-article-class-options) (add-to-list 'LaTeX-exam-class-options opt)) ;; Make our label prefix available ... (let ((envs '("questions"))) (dolist (env envs) ;; to AUCTeX (add-to-list 'LaTeX-label-alist (cons env 'LaTeX-exam-label)) ;; to RefTeX with `reftex-add-label-environments' (when (fboundp 'reftex-add-label-environments) (reftex-add-label-environments `((,env ,LaTeX-exam-reftex-quick-id-key ,LaTeX-exam-label "~\\ref{%s}" nil (regexp "[Qq]uestions?" "[Nn]umbers?"))))))) (when (or (member "xcolor" (TeX-style-list)) (member "color" (TeX-style-list))) (TeX-add-symbols '("shadedsolutions" 0))) (LaTeX-add-environments '("solution" [ "Height" ]) '("select") '("solutionorbox" [ "Height" ]) '("solutionorlines" [ "Height" ]) '("solutionordottedlines" [ "Height" ]) '("solutionorgrid" [ "Height" ]) '("questions" LaTeX-env-item) '("parts" LaTeX-env-item) '("subparts" LaTeX-env-item) '("subsubparts" LaTeX-env-item)) ;; Tell AUCTeX about special environments: (let ((envs '("questions" "parts" "subparts" "subsubparts"))) (dolist (env envs) (add-to-list 'LaTeX-item-list (cons env 'LaTeX-exam-insert-item)))) ;; Append us only once: (unless (and (string-match "question" LaTeX-item-regexp) (string-match "subsub" LaTeX-item-regexp)) (set (make-local-variable 'LaTeX-item-regexp) (concat LaTeX-item-regexp "\\|" "\\(titled\\)?question\\b" "\\|" "\\(sub\\|subsub\\)?part\\b")) (LaTeX-set-paragraph-start)) (TeX-add-symbols '("part" [ "Points" ] (TeX-arg-literal " ")) '("subpart" [ "Points" ] (TeX-arg-literal " ")) '("gradetable" [ TeX-arg-eval completing-read (TeX-argument-prompt optional nil "Orientation") '("v" "h") ] [ TeX-arg-eval completing-read (TeX-argument-prompt optional nil "Table index") '("questions" "pages") ] ) '("bonusgradetable" [ TeX-arg-eval completing-read (TeX-argument-prompt optional nil "Orientation") '("v" "h") ] [ TeX-arg-eval completing-read (TeX-argument-prompt optional nil "Table index") '("questions" "pages") ] ) '("bonuspointtable" [ TeX-arg-eval completing-read (TeX-argument-prompt optional nil "Orientation") '("v" "h") ] [ TeX-arg-eval completing-read (TeX-argument-prompt optional nil "Table index") '("questions" "pages") ] ) '("partialgradetable" [ TeX-arg-eval completing-read (TeX-argument-prompt optional nil "Orientation") '("v" "h") ] [ TeX-arg-eval completing-read (TeX-argument-prompt optional nil "Table index") '("questions" "pages") ] ) '("partialbonusgradetable" [ TeX-arg-eval completing-read (TeX-argument-prompt optional nil "Orientation") '("v" "h") ] [ TeX-arg-eval completing-read (TeX-argument-prompt optional nil "Table index") '("questions" "pages") ] ) '("partialbonuspointtable" [ TeX-arg-eval completing-read (TeX-argument-prompt optional nil "Orientation") '("v" "h") ] [ TeX-arg-eval completing-read (TeX-argument-prompt optional nil "Table index") '("questions" "pages") ] ) '("pointtable" [ TeX-arg-eval completing-read (TeX-argument-prompt optional nil "Orientation") '("v" "h") ] [ TeX-arg-eval completing-read (TeX-argument-prompt optional nil "Table index") '("questions" "pages") ] ) '("partialpointtable" [ TeX-arg-eval completing-read (TeX-argument-prompt optional nil "Orientation") '("v" "h") ] [ TeX-arg-eval completing-read (TeX-argument-prompt optional nil "Table index") '("questions" "pages") ] ) '("subsubpart" [ "Points" ] (TeX-arg-literal " ")) '("question" ["Points"] (TeX-arg-literal " ")) '("bonusquestion" ["Points"] (TeX-arg-literal " ")) '("extrafootheight" [ TeX-arg-length "Extra height 1. page footer" ] (TeX-arg-length "Extra height footers")) '("titledquestion" "Title" ["Points"] LaTeX-exam-insert-label (TeX-arg-literal " ")) '("ContinuedQuestion" 0) '("CorrectChoice" 0) '("CorrectChoiceEmphasis" 1) '("IncompleteQuestion" 0) '("SolutionEmphasis" 1) '("addpoints" 0) '("addquestionobject" 0) '("answerclearance" 1) '("answerline" ["Points"] (TeX-arg-literal " ")) '("begingradingrange" 1) '("bhpgword" 1) '("bhpword" 1) '("bhqword" 1) '("bhsword" 1) '("bhtword" 1) '("bonuspart" 0) '("bonuspointformat" 0) '("bonuspointname" 1) '("bonuspointpoints" 2) '("bonuspointsinrange" 0) '("bonuspointsofquestion" 1) '("bonuspointsonpage" 0) '("bonusqformat" 1) '("bonussubpart" 0) '("bonussubsubpart" 0) '("bonustitledquestion" "Title" ["Points"] LaTeX-exam-insert-label (TeX-arg-literal " ")) '("bonustotalformat" 0) '("boxedpoints" 0) '("bracketedpoints" 0) '("bvpgword" 1) '("bvpword" 1) '("bvqword" 1) '("bvsword" 1) '("bvtword" 1) '("cancelspace" 0) '("cellwidth" 1) '("cfoot" 1) '("chbpword" 1) '("chead" 1) '("checkboxchar" 1) '("checkboxeshook" 0) '("checkedchar" 1) '("choice" 0) '("choicelabel" 0) '("choiceshook" 0) '("chpgword" 1) '("chpword" 1) '("chqword" 1) '("chsword" 1) '("chsword" 1) '("correctchoice" 0) '("correctchoiceemphasis" 1) '("covercfoot" 3) '("coverchead" 3) '("coverextrafootheight" 3) '("coverextraheadheight" 3) '("coverfirstpagefooter" 3) '("coverfirstpageheader" 3) '("coverfooter" 3) '("coverheader" 3) '("coverlfoot" 3) '("coverlhead" 3) '("coverrfoot" 3) '("coverrhead" 3) '("coverrunningfooter" 3) '("coverrunningheader" 3) '("cvbpword" 1) '("cvpgword" 1) '("cvpword" 1) '("cvqword" 1) '("cvsword" 1) '("cvtword" 1) '("dottedlinefillheight" 1) '("droppoints" 0) '("droptotalbonuspoints" 0) '("droptotalpoints" 0) '("endgradingrange" 1) '("extraheadheight" 1) '("extrawidth" 1) '("fillwithdottedlines" 1) '("fillwithlines" 1) '("firstpagefooter" 1) '("firstpagefootrule" 0) '("firstpageheader" 3) '("firstpageheadrule" 0) '("footer" 3) '("footrule" 0) '("framedsolutions" 0) '("fullwidth" 1) '("gradetablestretch" 0) '("greeknum" 0) '("half" 0) '("hpgword" 1) '("hpword" 1) '("hqword" 1) '("hsword" 1) '("htword" 1) '("ifcontinuation" 0) '("ifincomplete" 0) '("iflastpage" 0) '("ifprintanswers" 0) '("lfoot" 1) '("lhead" 1) '("linefillheight" 1) '("linefillthickness" 1) '("makeemptybox" 1) '("marginbonuspointname" 1) '("marginpointname" 1) '("marginpointsep" 1) '("marksnotpoints" 0) '("noaddpoints" 0) '("nobonusqformat" 1) '("noboxedpoints" 0) '("nobracketedpoints" 0) '("nocancelspace" 0) '("nomorequestions" 0) '("nopointsinmargin" 0) '("nopointsinrightmargin" 0) '("noprintanswers" 0) '("noqformat" 1) '("numbonuspoints" 0) '("numcoverpages" 0) '("numpages" 0) '("numparts" 0) '("numpoints" 0) '("numquestions" 0) '("numsubparts" 0) '("numsubsubparts" 0) '("oddeven" 2) '("partlabel" 0) '("partopsep" 0) '("partshook" 0) '("pointname" 1) '("pointpoints" 2) '("pointsdroppedatright" 0) '("pointsinmargin" 0) '("pointsinrightmargin" 0) '("pointsofquestion" 1) '("pointsonpage" 1) '("printanswers" 0) '("printselectedfalse" 0) '("printselectedtrue" 0) '("qformat" 1) '("questionlabel" 0) '("questionshook" 0) '("rfoot" 1) '("rhead" 1) '("rightpointsmargin" 0) '("roman" 0) '("romannumeral" 0) '("runningfooter" 3) '("runningfootrule" 0) '("runningheader" 3) '("runningheadrule" 0) '("settabletotalbonuspoints" 1) '("settabletotalpoints" 1) '("shadedsolutions" 0) '("solutiontitle" 0) '("subpartlabel" 0) '("subpartshook" 0) '("subsubpartlabel" 0) '("subsubpartshook" 0) '("thechoice" 0) '("themarginpoints" 0) '("thepartno" 0) '("thequestion" 0) '("thequestiontitle" 0) '("thesubpart" 0) '("thesubsubpart" 0) '("totalbonuspoints" 0) '("totalformat" 0) '("totalnumpages" 0) '("totalpoints" 0) '("unframedsolutions" 0) '("uplevel" 1) '("usehorizontalhalf" 0) '("useslantedhalf" 0) '("vpgword" 1) '("vpword" 1) '("vqword" 1) '("vsword" 1) '("vtword" 1) '("thepoints" 0) ;; ... more stuff here ) (LaTeX-add-lengths "answerlinelength" "answerskip") ;; Fontification (when (and (featurep 'font-latex) (eq TeX-install-font-lock 'font-latex-setup)) (font-latex-add-keywords '(("question" "[") ("titledquestion" "{[") ("subpart" "[") ("subsubpart" "[")) 'textual))) LaTeX-dialect) ;;; exam.el ends here auctex-11.91/style/exercise.el000066400000000000000000000033611313533625700163220ustar00rootroot00000000000000;;; exercise.el --- AUCTeX style for `exercise.sty' ;; Copyright (C) 2014 Free Software Foundation, Inc. ;; Author: Nicolas Richard ;; Created: 2014-03-17 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `exercise.sty'. ;;; Code: (TeX-add-style-hook "exercise" (lambda () (LaTeX-add-environments '("Exercise") '("Exercise*") '("Answer") '("ExerciseList") ) (TeX-add-symbols '("Exercise") '("Exercise*") '("Answer") '("ExePart") '("ExePart*") '("Question") '("subQuestion") '("ExeText") '("ExerciseSelect") '("ExerciseStopSelect") '("refAnswer") '("marker") '("DifficultyMarker") '("listofexercises") '("ListOfExerciseInToc") '("ExerciseLevelInToc"))) LaTeX-dialect) (defvar LaTeX-exercise-package-options '("noexercise" "noanswer" "exerciseonly" "answeronly" "nothing" "answerdelayed" "exercisedelayed" "lastexercise") "Package options for the exercise package.") ;;; exercise.el ends here auctex-11.91/style/expl3.el000066400000000000000000000034611313533625700155470ustar00rootroot00000000000000;;; expl3.el --- AUCTeX style for `expl3.sty' ;; Copyright (C) 2015, 2017 Free Software Foundation, Inc. ;; Author: Tassilo Horn ;; Maintainer: auctex-devel@gnu.org ;; Created: 2015-02-22 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `expl3.sty'. ;;; Code: (defvar LaTeX-expl3-syntax-table (let ((st (copy-syntax-table LaTeX-mode-syntax-table))) ;; Make _ and : symbol chars (modify-syntax-entry ?\_ "_" st) (modify-syntax-entry ?\: "_" st) st)) (TeX-add-style-hook "expl3" (lambda () (set-syntax-table LaTeX-expl3-syntax-table) (when (and (fboundp 'font-latex-update-font-lock) (eq TeX-install-font-lock 'font-latex-setup)) ;; Tell font-lock about the update. (font-latex-update-font-lock t))) LaTeX-dialect) (defun LaTeX-expl3-package-options () "Read the expl3 package options from the user." (TeX-read-key-val t '(("check-declarations" ("true" "false")) ("log-functions" ("true" "false")) ("driver" ("auto" "latex2e" "dvips" "dvipdfmx" "pdfmode" "xdvipdfmx"))))) ;;; expl3.el ends here auctex-11.91/style/fancyhdr.el000066400000000000000000000105321313533625700163070ustar00rootroot00000000000000;;; fancyhdr.el --- AUCTeX style for `fancyhdr.sty' ;; Copyright (C) 2012, 2013 Free Software Foundation, Inc. ;; Author: Mads Jensen ;; Maintainer: auctex-devel@gnu.org ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `fancyhdr.sty', version 3.2 ;;; Code: (TeX-add-style-hook "fancyhdr" (lambda () (TeX-add-symbols '("lhead" t) '("lfoot" t) '("chead" t) '("cfoot" t) '("rhead" t) '("rfoot" t) '("nouppercase" t) '("MakeUppercase" t) '("fancyhead" [ TeX-arg-fancyhdr-position ] t) '("fancyfoot" [ TeX-arg-fancyhdr-position ] t) '("fancyheadoffset" [ (TeX-arg-fancyhdr-position "Position" ("LO" "LE" "L" "RE" "RO" "R" "0")) ] t) '("fancyfootoffset" [ (TeX-arg-fancyhdr-position "Position" ("LO" "LE" "L" "RE" "RO" "R" "O")) ] t) '("fancyhfoffset" [ (TeX-arg-fancyhdr-position "Position" ("E" "O" "L" "R")) ] t) '("fancypagestyle" TeX-arg-pagestyle t) "headrulewidth" "footrulewidth" "plainfootrulewidth" "plainheadrulewidth" "leftmark" "rightmark" ;; the manual does not mention any subsubsectionmark (!) "chaptermark" "sectionmark" "subsectionmark" "paragraphmark" "subparagraphmark" "footrule" "headrule") ;; `fancyhdr.sty' supplies these two pagestyles (LaTeX-add-pagestyles "fancy" "fancyplain") ;; Fontification (when (and (fboundp 'font-latex-add-keywords) (fboundp 'font-latex-update-font-lock) (eq TeX-install-font-lock 'font-latex-setup)) (font-latex-add-keywords '(("fancyhead" "[{") ("fancyfoot" "[{") ("lhead" "{") ("lfoot" "{") ("chead" "{") ("cfoot" "{") ("rhead" "{") ("rfoot" "{") ("fancyheadoffset" "[{") ("fancyfootoffset" "[{") ("fancypagestyle" "{{")) 'function) (font-latex-add-keywords '(("headrulewidth" "") ("footrulewidth" "") ("plainheadrulewidth" "") ("plainfootrulewidth" "")) 'variable) ;; Tell font-lock about the update. (font-latex-update-font-lock))) LaTeX-dialect) ;; Because there can be many positions, `TeX-completing-read-multiple' is used ;; instead of just `completing-read', and a `collection' argument is provided as ;; the list of positions differs between the macros (defun TeX-arg-fancyhdr-position (optional &optional prompt collection) "Prompt for a fancyhdr position with completion. If OPTIONAL is non-nil, insert the resulting value as an optional argument, otherwise as a mandatory one. If non-nil, PROMPT is used as the prompt. If non-nil, COLLECTION is used as the completion list for the position." (let* ((positions (if (not collection) ;; Standard positions with no restrictions. Lower-case ;; versions, and reverse versions (e.g., OC) are left ;; out for simplicity. '("LO" "LE" "L" "CO" "CE" "C" "RE" "RO" "R") collection)) (arguments (mapconcat 'identity (TeX-completing-read-multiple (TeX-argument-prompt optional prompt "Position") (mapcar 'list positions)) ","))) (TeX-argument-insert arguments optional))) (defvar LaTeX-fancyhdr-package-options nil "Package options for fancyhdr.") ;;; fancyhdr.el ends here auctex-11.91/style/fancynum.el000066400000000000000000000025101313533625700163260ustar00rootroot00000000000000;;; fancynum.el --- AUCTeX style for `fancynum.sty' ;; Copyright (C) 2013 Free Software Foundation, Inc. ;; Author: Mads Jensen ;; Maintainer: auctex-devel@gnu.org ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `fancynum.sty' ;;; Code: (TeX-add-style-hook "fancynum" (lambda () (TeX-add-symbols '("fnum" t) '("setfnumdsym" t) '("setfnummsym" t) '("setfnumgsym" t))) LaTeX-dialect) (defvar LaTeX-fancynum-package-options '("english" "french" "tight" "loose" "commas" "thinspaces" "plain") "Package options for fancynum.") ;; fancynum.el ends here auctex-11.91/style/fancyref.el000066400000000000000000000105351313533625700163110ustar00rootroot00000000000000;;; fancyref.el --- AUCTeX style file with support for fancyref.sty ;; Copyright (C) 1999, 2014, 2015 Free Software Foundation, Inc. ;; Author: Carsten Dominik ;; Maintainer: auctex-devel@gnu.org ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Code: (TeX-add-style-hook "fancyref" (lambda () (TeX-add-symbols ;; The macros with label arguments '("fref" [ TeX-arg-fancyref-format ] TeX-arg-ref) '("Fref" [ TeX-arg-fancyref-format ] TeX-arg-ref) ;; The macros which define new prefixes and formats '("fancyrefchangeprefix" TeX-arg-macro "Prefix") '("Frefformat" TeX-arg-fancyref-format TeX-arg-macro "Output") '("frefformat" TeX-arg-fancyref-format TeX-arg-macro "Output") ;; The delimiter "fancyrefargdelim" ;; All those names and abbreviations. ;; Part "fancyrefpartlabelprefix" "Frefpartname" "frefpartname" ;; Chapter "fancyrefchalabelprefix" "Frefchaname" "frefchaname" ;; Section "fancyrefseclabelprefix" "Frefsecname" "frefsecname" ;; Equation "fancyrefeqlabelprefix" "Frefeqname" "frefeqname" ;; Figure "fancyreffiglabelprefix" "Freffigname" "freffigname" "Freffigshortname" ;; Footnote "fancyreffnlabelprefix" "Freffnname" "freffnname" ;; Item "fancyrefitemlabelprefix" "Frefitemname" "frefitemname" ;; Table "fancyreftablabelprefix" "Freftabname" "freftabname" "Freftabshortname" ;; Page "Frefpgname" "frefpgname" "Frefpgshortname" ;; On "Frefonname" "frefonname" ;; See "Frefseename" "frefseename" ;; The spacing macros "fancyrefloosespacing" "fancyreftightspacing" "fancyrefdefaultspacing" ;; And the hook "fancyrefhook") ;; Insatall completion for labels and formats (setq TeX-complete-list (append '(("\\\\[fF]ref\\(\\[[^]]*\\]\\)?{\\([^{}\n\r\\%,]*\\)" 2 LaTeX-label-list "}") ("\\\\[fF]ref\\[\\([^{}\n\r\\%,]*\\)" 1 LaTeX-fancyref-formats "]") ("\\\\[fF]refformat{\\([^{}\n\r\\%,]*\\)" 1 LaTeX-fancyref-formats "}")) TeX-complete-list)) ;; Fontification (when (and (featurep 'font-latex) (eq TeX-install-font-lock 'font-latex-setup)) (font-latex-add-keywords '(("fref" "[{") ("Fref" "[{")) 'reference)) ;; Activate RefTeX reference style. (and LaTeX-reftex-ref-style-auto-activate (fboundp 'reftex-ref-style-activate) (reftex-ref-style-activate "Fancyref"))) LaTeX-dialect) ;; The following list keeps a list of available format names ;; Note that this list is only updated when a format is used, not ;; during buffer parsing. We could install a regexp to look for ;; formats, but this would not work in multifile documents since the ;; formats are not written out to the auto files. ;; For now, we just leave it at that. (defvar LaTeX-fancyref-formats '(("plain") ("vario") ("margin") ("main")) "List of formats for fancyref.") (defun LaTeX-fancyref-formats () LaTeX-fancyref-formats) (defun TeX-arg-fancyref-format (optional &optional prompt _definition) "Prompt for a fancyref format name. If the user gives an unknown name, add it to the list." (let ((format (completing-read (TeX-argument-prompt optional prompt "Format") LaTeX-fancyref-formats))) (if (not (string-equal "" format)) (add-to-list 'LaTeX-fancyref-formats (list format))) (TeX-argument-insert format optional))) (defvar LaTeX-fancyref-package-options '("english" "german" "loose" "margin" "paren" "plain" "tight" "vario") "Package options for the fancyref package.") ;;; fancyref.el ends here auctex-11.91/style/fancyvrb.el000066400000000000000000000511501313533625700163240ustar00rootroot00000000000000;;; fancyvrb.el --- AUCTeX style for `fancyvrb.sty' version 2.8. ;; Copyright (C) 2013, 2014, 2016, 2017 Free Software Foundation, Inc. ;; Maintainer: auctex-devel@gnu.org ;; Author: Mosè Giordano ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `fancyvrb.sty' version 2.8. ;; This style has some capabilities to parse user defined macros, ;; environments and saved blocks with `SaveVerbatim' environments and ;; offer them for completion. After defining a new macro or ;; environment, hit `C-c C-n' to parse the document. In case of ;; `SaveVerbatim', a second `C-c C-n' might be necessary. ;; The command `\CustomVerbatimEnvironment' is not mentioned in the ;; documenation; hence this command is removed from this style. Use ;; `\DefineVerbatimEnvironment' for new environments and customize the ;; standard ones with `\RecustomVerbatimEnvironment'. ;; The entries in `LaTeX-fancyvrb-key-val-options' cover also some ;; keys which are not mentioned in the manual of the package. ;;; Code: ;; Needed for auto-parsing. (require 'tex) (defvar LaTeX-fancyvrb-key-val-options '(("commentchar" ("none")) ("gobble") ("formatcom") ;; Undocumented key ("formatcom*") ("fontfamily" ("tt" "courier" "helvetica")) ("fontsize" ("auto" "\\tiny" "\\scriptsize" "\\footnotesize" "\\small" "\\normalsize" "\\large" "\\Large" "\\LARGE" "\\huge" "\\Huge")) ("fontshape" ("auto" "n" "it" "sl" "sc" "scit")) ("fontseries" ("auto" "m" "b" "bx" "sb" "c" "l" "lc")) ("frame" ("none" "leftline" "topline" "bottomline" "lines" "single")) ("framerule") ("framesep") ("rulecolor" ("none")) ("fillcolor" ("none")) ("label" ("none")) ("labelposition" ("none" "topline" "bottomline" "all")) ("numbers" ("none" "left" "right")) ("numbersep") ("firstnumber" ("auto" "last" "integer")) ("stepnumber") ("numberblanklines" ("true" "false")) ("firstline") ("lastline") ("showspaces" ("true" "false")) ("showtabs" ("true" "false")) ("obeytabs" ("true" "false")) ("tabsize") ("baselinestretch" ("auto" "dimension")) ("commandchars" ("none")) ("xleftmargin") ("xrightmargin") ("resetmargins" ("true" "false")) ("hfuzz") ("samepage" ("true" "false")) ("codes") ;; Undocumented key ("codes*") ("defineactive") ;; Undocumented key ("defineactive*") ;; Actually, the following options are used only by the `BVerbatim' ;; environment. ("boxwidth" ("auto" "dimension")) ("baseline" ("b" "c" "t")) ;; The next key applies only to `\SaveVerb' macro. ("aftersave")) "Key=value options for fancyvrb macros and environments.") (defvar LaTeX-fancyvrb-key-val-options-local nil "Buffer-local key=value options for fancyvrb macros and environments. This variable is intended for packages like \"fvextra\" which provide new key=values for fancyvrb environments. New key=values should be appended to this variable.") (make-variable-buffer-local 'LaTeX-fancyvrb-key-val-options-local) (defvar LaTeX-fancyvrb-base-macros '("VerbatimInput" "BVerbatimInput" "LVerbatimInput" "SaveVerb" "UseVerb" "Verb") "List of base macros available with fancyvrb package. Starred versions are not included in this list.") (defvar LaTeX-fancyvrb-base-environments '("Verbatim" "BVerbatim" "LVerbatim" "SaveVerbatim" "VerbatimOut") "List of base environments available with fancyvrb package. Starred versions are not included in this list.") (defvar LaTeX-fancyvrb-key-val-skip-regexp (concat "\\(?:\\[[^][]*" "\\(?:{[^}{]*" "\\(?:{[^}{]*" "\\(?:{[^}{]*}[^}{]*\\)*" "}[^}{]*\\)*" "}[^][]*\\)*" "\\]\\)?") "Helper regexp to skip over an optional argument.") ;; Setup for defining new Verbatim commands: (TeX-auto-add-type "fancyvrb-macro" "LaTeX") (defvar LaTeX-fancyvrb-macro-regexp `(,(concat "\\\\\\(Rec\\|C\\)ustomVerbatimCommand" "[ \t\n\r]*{?[ \t\n\r]*\\\\\\([A-Za-z]+\\)[ \t\n\r]*}?" "[ \t\n\r]*{[ \t\n\r]*\\([A-Za-z]+\\)[ \t\n\r]*}") (2 3 1) LaTeX-auto-fancyvrb-macro) "Matches macros by fancyvrb package.") ;; Setup for defining new Verbatim environments: (TeX-auto-add-type "fancyvrb-environment" "LaTeX") (defvar LaTeX-fancyvrb-environment-regexp `(,(concat "\\\\DefineVerbatimEnvironment" "[ \t\n\r]*{[ \t\n\r]*\\([A-Za-z0-9]+\\)[ \t\n\r]*}" "[ \t\n\r]*{[ \t\n\r]*\\([A-Za-z]+\\)[ \t\n\r]*}") (1 2) LaTeX-auto-fancyvrb-environment) "Matches new environments defined by fancyvrb package.") ;; Setup for names in SaveVerb macros: (TeX-auto-add-type "fancyvrb-saveverb" "LaTeX") (defvar LaTeX-fancyvrb-saveverb-regexp `(,(concat "\\\\SaveVerb" LaTeX-fancyvrb-key-val-skip-regexp "{\\([^}]+\\)}") 1 LaTeX-auto-fancyvrb-saveverb) "Match the name under which verbatim text is saved by SaveVerb macro.") ;; Setup for names in SaveVerbatim environments: (TeX-auto-add-type "fancyvrb-saveverbatim" "LaTeX") (defvar LaTeX-fancyvrb-saveverbatim-regexp `(,(concat "\\\\begin{SaveVerbatim}" LaTeX-fancyvrb-key-val-skip-regexp "{\\([^}]+\\)}") 1 LaTeX-auto-fancyvrb-saveverbatim) "Match the name under which verbatim text is saved by SaveVerbatim environment.") (defun LaTeX-fancyvrb-auto-prepare () "Clear various LaTeX-auto-fancyvrb-* variables before parsing." (setq LaTeX-auto-fancyvrb-macro nil LaTeX-auto-fancyvrb-environment nil LaTeX-auto-fancyvrb-saveverb nil LaTeX-auto-fancyvrb-saveverbatim nil)) (defun LaTeX-fancyvrb-auto-cleanup () "Process parsed elements for fancyvrb package." (LaTeX-fancyvrb-arg-define-macro nil t) (LaTeX-fancyvrb-arg-define-environment nil t)) (add-hook 'TeX-auto-prepare-hook #'LaTeX-fancyvrb-auto-prepare t) (add-hook 'TeX-auto-cleanup-hook #'LaTeX-fancyvrb-auto-cleanup t) (add-hook 'TeX-update-style-hook #'TeX-auto-parse t) (defun LaTeX-fancyvrb-arg-define-macro (optional &optional cleanup recustom) "Query and insert a new verbatim macro with fancyvrb package. If OPTIONAL is non-nil, insert the arguments in brackets. If CLEANUP is non-nil, do not insert any arguments in the buffer and update only various AUCTeX variables for verbatim macros. If RECUSTOM is non-nil, delete macros from the variable `TeX-symbol-list' before adding the new ones." (let ((new-mac (unless cleanup (if recustom (completing-read (TeX-argument-prompt optional nil "Verbatim macro: \\" t) (mapcar #'car (apply #'append LaTeX-fancyvrb-macro-list))) (TeX-read-string (TeX-argument-prompt optional nil "New verbatim macro: \\" t))))) (base-mac (unless cleanup (completing-read (TeX-argument-prompt optional nil "Based on macro") LaTeX-fancyvrb-base-macros))) (rec-flag (if recustom "Rec" "C"))) ;; We are (re-)defining a macro: Insert user queried input and use ;; `LaTeX-add-fancyvrb-macros' on the input (unless cleanup (TeX-argument-insert new-mac optional TeX-esc) (TeX-argument-insert base-mac optional) (TeX-argument-insert (TeX-read-key-val optional LaTeX-fancyvrb-key-val-options-local) optional) (LaTeX-add-fancyvrb-macros `(,new-mac ,base-mac ,rec-flag)))) ;; ;; Now run the procdure: Do not use the function ;; `LaTeX-fancyvrb-macro-list' here which will remove dupes from the ;; variable `LaTeX-fancyvrb-macro-list' depending on car; we need ;; the variable as is, hence (apply #'append ...); (dolist (elt (apply #'append LaTeX-fancyvrb-macro-list)) (let ((mac-name (nth 0 elt)) (base-mac (nth 1 elt)) (flag (nth 2 elt))) ;; If we're Rec-ustomizing, delete the entry first from ;; `TeX-symbol-list': (when (string= flag "Rec") (setq TeX-symbol-list (assq-delete-all (car (assoc mac-name (TeX-symbol-list))) TeX-symbol-list))) ;; Now add the new item: Start with new macros for loading ;; files: (cond ((member base-mac '("VerbatimInput" "BVerbatimInput" "LVerbatimInput")) (TeX-add-symbols `(,mac-name [ TeX-arg-key-val LaTeX-fancyvrb-key-val-options-local ] LaTeX-fancyvrb-arg-file-relative)) (when (and (fboundp 'font-latex-add-keywords) (fboundp 'font-latex-update-font-lock)) (font-latex-add-keywords `((,mac-name "[{")) 'reference))) ;; New macros for saving verbatim text: ((string= base-mac "SaveVerb") (TeX-add-symbols `(,mac-name [ TeX-arg-key-val LaTeX-fancyvrb-key-val-options-local ] (TeX-arg-eval (lambda () (let ((name (TeX-read-string (TeX-argument-prompt optional nil "Save name")))) (LaTeX-add-fancyvrb-saveverbs name) (format "%s" name)))) TeX-arg-verb)) (when (and (fboundp 'font-latex-add-keywords) (fboundp 'font-latex-update-font-lock)) (font-latex-add-keywords `((,mac-name "[{")) 'textual))) ;; New macros for using previously saved text: ((string= base-mac "UseVerb") (TeX-add-symbols `(,mac-name (TeX-arg-eval completing-read (TeX-argument-prompt optional nil "Saved name") (LaTeX-fancyvrb-saveverb-list)))) (when (and (fboundp 'font-latex-add-keywords) (fboundp 'font-latex-update-font-lock)) (font-latex-add-keywords `((,mac-name "{")) 'textual))) ;; Anything else is considered as verbatim typesetting macro: (t (TeX-add-symbols `(mac-name [ TeX-arg-key-val LaTeX-fancyvrb-key-val-options-local ] TeX-arg-verb)) (add-to-list 'LaTeX-verbatim-macros-with-delims-local mac-name t) (when (and (fboundp 'font-latex-add-keywords) (fboundp 'font-latex-update-font-lock)) (font-latex-add-keywords `((,mac-name "[")) 'textual)))))) ;; Update font-lock: (when (and (fboundp 'font-latex-add-keywords) (fboundp 'font-latex-update-font-lock) (eq TeX-install-font-lock 'font-latex-setup)) (font-latex-update-font-lock t))) (defun LaTeX-fancyvrb-arg-define-environment (optional &optional cleanup) "Query and insert a new verbatim environment with fancyvrb package. If OPTIONAL is non-nil, insert the arguments in brackets. If CLEANUP is non-nil, do not insert any arguments in the buffer and update only various AUCTeX variables for verbatim environments." (let ((new-env (unless cleanup (TeX-read-string (TeX-argument-prompt optional nil "New verbatim environment")))) (base-env (unless cleanup (completing-read (TeX-argument-prompt optional nil "Based on environment") LaTeX-fancyvrb-base-environments)))) ;; We are defining a new env: First insert the arguments and the ;; run `LaTeX-add-fancyvrb-environments' on '(new-env base-env). ;; If base-env is SaveVerbatim, run ;; `LaTeX-add-fancyvrb-saveverbatims' on new-env as well. (unless cleanup (TeX-argument-insert (car new-env) optional) (TeX-argument-insert base-env optional) (TeX-argument-insert (TeX-read-key-val optional LaTeX-fancyvrb-key-val-options-local) optional) (LaTeX-add-fancyvrb-environments `(,new-env ,base-env)) (when (string= base-env "SaveVerbatim") (LaTeX-add-fancyvrb-saveverbatims new-env))) ;; ;; Now run the procdure: (dolist (elt (LaTeX-fancyvrb-environment-list)) (let ((env (car elt)) (type (cadr elt))) (cond ((string= type "VerbatimOut") (LaTeX-add-environments `(,env (lambda (env) (let ((options (TeX-read-key-val t LaTeX-fancyvrb-key-val-options-local)) (file (TeX-read-string "Output file: "))) (LaTeX-insert-environment env (concat (unless (zerop (length options)) (concat LaTeX-optop options LaTeX-optcl)) (concat TeX-grop file TeX-grcl)))))))) ((string= type "SaveVerbatim") (TeX-auto-add-regexp `(,(concat "\\\\begin{" env "}" LaTeX-fancyvrb-key-val-skip-regexp "{\\([^}]+\\)}") 1 LaTeX-auto-fancyvrb-saveverbatim))) (t ;; Regular verbatim environments have a starred ;; version; so add them here; the non-starred additions ;; to `LaTeX-verbatim-environments-local' and ;; `LaTeX-indent-environment-list' are done outside ;; (cond ...): (LaTeX-add-environments `(,env LaTeX-env-args [ TeX-arg-key-val LaTeX-fancyvrb-key-val-options-local ])) (LaTeX-add-environments `(,(concat env "*") LaTeX-env-args [ TeX-arg-key-val LaTeX-fancyvrb-key-val-options-local ])) (add-to-list 'LaTeX-verbatim-environments-local (concat env "*")) (add-to-list 'LaTeX-indent-environment-list `(,(concat env "*") current-indentation) t))) ;; These apply for all environments defined: (add-to-list 'LaTeX-verbatim-environments-local env) (add-to-list 'LaTeX-indent-environment-list `(,env current-indentation) t))) ;; Update font-lock: (when (and (fboundp 'font-latex-add-keywords) (fboundp 'font-latex-update-font-lock) (eq TeX-install-font-lock 'font-latex-setup)) (font-latex-update-font-lock t)))) (defun LaTeX-fancyvrb-arg-file-relative (optional) "Query and insert a file name relative to current master file. If OPTIONAL is non-nil, insert the file name in brackets." (TeX-argument-insert (file-relative-name (read-file-name (TeX-argument-prompt optional nil "File")) (TeX-master-directory)) optional)) (TeX-add-style-hook "fancyvrb" (lambda () (TeX-auto-add-regexp LaTeX-fancyvrb-macro-regexp) (TeX-auto-add-regexp LaTeX-fancyvrb-environment-regexp) (TeX-auto-add-regexp LaTeX-fancyvrb-saveverb-regexp) (TeX-auto-add-regexp LaTeX-fancyvrb-saveverbatim-regexp) (TeX-run-style-hooks "keyval") ;; Activate the buffer-local version of key-vals. (setq LaTeX-fancyvrb-key-val-options-local (copy-alist LaTeX-fancyvrb-key-val-options)) (TeX-add-symbols ;; Verbatim material in footnotes "VerbatimFootnotes" ;; Improved verbatim commands '("Verb" [TeX-arg-key-val LaTeX-fancyvrb-key-val-options-local] TeX-arg-verb) '("DefineShortVerb" (TeX-arg-eval TeX-read-string (TeX-argument-prompt optional nil "Character") TeX-esc)) '("UndefineShortVerb" (TeX-arg-eval TeX-read-string (TeX-argument-prompt optional nil "Character") TeX-esc)) ;; Verbatim environments '("fvset" (TeX-arg-key-val LaTeX-fancyvrb-key-val-options-local)) ;; Changing individual line formatting "FancyVerbFormatLine" ;; Line numbering "theFancyVerbLine" ;; Selection of lines to print "FancyVerbStartString" "FancyVerbStopString" ;; Personalized environments '("DefineVerbatimEnvironment" LaTeX-fancyvrb-arg-define-environment) '("RecustomVerbatimEnvironment" (TeX-arg-eval completing-read (TeX-argument-prompt optional nil "Verbatim environment") LaTeX-fancyvrb-base-environments) (TeX-arg-eval completing-read (TeX-argument-prompt optional nil "Based on environment") LaTeX-fancyvrb-base-environments) (TeX-arg-key-val LaTeX-fancyvrb-key-val-options-local)) '("CustomVerbatimCommand" LaTeX-fancyvrb-arg-define-macro) '("RecustomVerbatimCommand" (LaTeX-fancyvrb-arg-define-macro nil t)) ;; Saving and restoring verbatim text and environments '("SaveVerb" [TeX-arg-key-val LaTeX-fancyvrb-key-val-options-local] (TeX-arg-eval (lambda () (let ((name (TeX-read-string (TeX-argument-prompt optional nil "Save name")))) (LaTeX-add-fancyvrb-saveverbs name) (format "%s" name)))) TeX-arg-verb) '("UseVerb" (TeX-arg-eval completing-read (TeX-argument-prompt optional nil "Saved name") (LaTeX-fancyvrb-saveverb-list))) '("UseVerbatim" (TeX-arg-eval completing-read (TeX-argument-prompt optional nil "Saved name") (LaTeX-fancyvrb-saveverbatim-list))) '("LUseVerbatim" (TeX-arg-eval completing-read (TeX-argument-prompt optional nil "Saved name") (LaTeX-fancyvrb-saveverbatim-list))) '("BUseVerbatim" (TeX-arg-eval completing-read (TeX-argument-prompt optional nil "Saved name") (LaTeX-fancyvrb-saveverbatim-list))) ;; Writing and reading verbatim files '("VerbatimInput" [TeX-arg-key-val LaTeX-fancyvrb-key-val-options-local] LaTeX-fancyvrb-arg-file-relative) '("BVerbatimInput" [TeX-arg-key-val LaTeX-fancyvrb-key-val-options-local] LaTeX-fancyvrb-arg-file-relative) '("LVerbatimInput" [TeX-arg-key-val LaTeX-fancyvrb-key-val-options-local] LaTeX-fancyvrb-arg-file-relative)) (LaTeX-add-environments '("Verbatim" LaTeX-env-args [TeX-arg-key-val LaTeX-fancyvrb-key-val-options-local]) '("Verbatim*" LaTeX-env-args [TeX-arg-key-val LaTeX-fancyvrb-key-val-options-local]) '("BVerbatim" LaTeX-env-args [TeX-arg-key-val LaTeX-fancyvrb-key-val-options-local]) '("BVerbatim*" LaTeX-env-args [TeX-arg-key-val LaTeX-fancyvrb-key-val-options-local]) '("LVerbatim" LaTeX-env-args [TeX-arg-key-val LaTeX-fancyvrb-key-val-options-local]) '("LVerbatim*" LaTeX-env-args [TeX-arg-key-val LaTeX-fancyvrb-key-val-options-local]) '("SaveVerbatim" (lambda (env) (let ((options (TeX-read-key-val t LaTeX-fancyvrb-key-val-options-local)) (name (TeX-read-string "Save name: "))) (LaTeX-insert-environment env (concat (unless (zerop (length options)) (concat LaTeX-optop options LaTeX-optcl)) (concat TeX-grop name TeX-grcl))) (LaTeX-add-fancyvrb-saveverbatims name)))) '("VerbatimOut" (lambda (env) (let ((options (TeX-read-key-val t LaTeX-fancyvrb-key-val-options-local)) (file (TeX-read-string "Output file: "))) (LaTeX-insert-environment env (concat (unless (zerop (length options)) (concat LaTeX-optop options LaTeX-optcl)) (concat TeX-grop file TeX-grcl))))))) (LaTeX-add-counters "FancyVerbLine") ;; Filling (add-to-list 'LaTeX-verbatim-environments-local "Verbatim") (add-to-list 'LaTeX-verbatim-environments-local "Verbatim*") (add-to-list 'LaTeX-verbatim-environments-local "BVerbatim") (add-to-list 'LaTeX-verbatim-environments-local "BVerbatim*") (add-to-list 'LaTeX-verbatim-environments-local "LVerbatim") (add-to-list 'LaTeX-verbatim-environments-local "LVerbatim*") (add-to-list 'LaTeX-verbatim-environments-local "SaveVerbatim") (add-to-list 'LaTeX-verbatim-environments-local "VerbatimOut") (make-local-variable 'LaTeX-indent-environment-list) (add-to-list 'LaTeX-indent-environment-list '("Verbatim" current-indentation) t) (add-to-list 'LaTeX-indent-environment-list '("Verbatim*" current-indentation) t) (add-to-list 'LaTeX-indent-environment-list '("BVerbatim" current-indentation) t) (add-to-list 'LaTeX-indent-environment-list '("BVerbatim*" current-indentation) t) (add-to-list 'LaTeX-indent-environment-list '("LVerbatim" current-indentation) t) (add-to-list 'LaTeX-indent-environment-list '("LVerbatim*" current-indentation) t) (add-to-list 'LaTeX-indent-environment-list '("SaveVerbatim" current-indentation) t) (add-to-list 'LaTeX-indent-environment-list '("VerbatimOut" current-indentation) t) (add-to-list 'LaTeX-verbatim-macros-with-delims-local "Verb") ;; Fontification (when (and (fboundp 'font-latex-add-keywords) (fboundp 'font-latex-update-font-lock) (eq TeX-install-font-lock 'font-latex-setup)) (font-latex-add-keywords '(("CustomVerbatimCommand" "{{{") ("RecustomVerbatimCommand" "{{{") ("DefineVerbatimEnvironment" "{{{") ("RecustomVerbatimEnvironment" "{{{") ("DefineShortVerb" "{") ("UndefineShortVerb" "{") ("fvset" "{")) 'function) (font-latex-add-keywords '(("VerbatimInput" "[{") ("BVerbatimInput" "[{") ("LVerbatimInput" "[{")) 'reference) (font-latex-add-keywords '(("Verb" "[") ; The second argument should ; actually be verbatim. ("SaveVerb" "[{") ("UseVerb" "{") ("UseVerbatim" "{") ("LUseVerbatim" "{") ("BUseVerbatim" "{")) 'textual) ;; Tell font-lock about the update. (font-latex-update-font-lock t))) LaTeX-dialect) (defvar LaTeX-fancyvrb-package-options nil "Package options for the fancyvrb package.") ;;; fancyvrb.el ends here auctex-11.91/style/fbb.el000066400000000000000000000046461313533625700152530ustar00rootroot00000000000000;;; fbb.el --- AUCTeX style for `fbb.sty' (v1.07) ;; Copyright (C) 2014, 2015 Free Software Foundation, Inc. ;; Author: Arash Esbati ;; Maintainer: auctex-devel@gnu.org ;; Created: 2014-11-19 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `fbb.sty' (v1.07) from 2015/04/06. ;; `fbb.sty' is part of TeXLive. ;;; Code: (TeX-add-style-hook "fbb" (lambda () ;; Run style hook for various packages loaded by fbb (TeX-run-style-hooks "textcomp" "fontaxes") ;; New symbols (TeX-add-symbols ;; Only preamble command '("useosf" 0) ;; Text commands '("lfstyle" -1) ; lf declaration '("tlfstyle" -1) ; tlf declaration '("osfstyle" -1) ; osf declaration '("tosfstyle" -1) ; tosf declaration '("sufigures" -1) ; superior figures declaration '("textlf" t) ; proportional lining figures '("texttlf" t) ; tabular lining figures '("textosf" t) ; proportional oldstyle figures '("texttosf" t) ; tabular oldstyle figures '("textsu" t)) ; superior figures ;; Fontification (when (and (featurep 'font-latex) (eq TeX-install-font-lock 'font-latex-setup)) (font-latex-add-keywords '(("textlf" "{") ("texttlf" "{") ("textosf" "{") ("texttosf" "{") ("textsu" "{")) 'type-command) (font-latex-add-keywords '(("lfstyle" "") ("tlfstyle" "") ("osfstyle" "") ("tosfstyle" "") ("sufigures" "")) 'type-declaration))) LaTeX-dialect) (defvar LaTeX-fbb-package-options '("lining" "osf" "oldstyle" "tabular" "p" "proportional" "scale" "scaled" "scosf" "sups") "Package options for the fbb package.") ;;; fbb.el ends here auctex-11.91/style/filecontents.el000066400000000000000000000040401313533625700172030ustar00rootroot00000000000000;;; filecontents.el --- AUCTeX style for `filecontents.sty' ;; Copyright (C) 2013--2016 Free Software Foundation, Inc. ;; Author: Mads Jensen ;; Maintainer: auctex-devel@gnu.org ;; Created: 2013-01-01 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `filecontents.sty'. The package removes the two ;; constraints that `filecontents' from LaTeX2e has, namely that the environment ;; must be before the documentclass (or \begin{document} according to some ;; sources), and that existing files are not overwritten. ;;; Code: (TeX-add-style-hook "filecontents" (lambda () (LaTeX-add-environments '("filecontents" LaTeX-env-filecontents) '("filecontents*" LaTeX-env-filecontents)) (make-local-variable 'LaTeX-indent-environment-list) (add-to-list 'LaTeX-indent-environment-list '("filecontents" current-indentation) t) (add-to-list 'LaTeX-indent-environment-list '("filecontents*" current-indentation) t)) LaTeX-dialect) (defun LaTeX-env-filecontents (environment) "Insert ENVIRONMENT with filename for contents." (LaTeX-insert-environment environment (concat TeX-grop (TeX-read-string "File: ") TeX-grcl)) (delete-horizontal-space)) (defvar LaTeX-filecontents-package-options nil "Package options for filecontents.") ;; filecontents.el ends here auctex-11.91/style/flashcards.el000066400000000000000000000035411313533625700166250ustar00rootroot00000000000000;;; flashcards.el --- AUCTeX style for the flashcards class. ;; Copyright (C) 2007 Free Software Foundation, Inc. ;; Author: Ralf Angeli ;; Maintainer: auctex-devel@gnu.org ;; Created: 2007-04-23 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for the flashcards class. ;;; Code: (TeX-add-style-hook "flashcards" (lambda () (TeX-add-symbols '("cardfrontstyle" ["Format"] "Style") '("cardfrontfoot" "Footer text") '("cardbackstyle" ["Format"] "Style") '("cardfrontheadstyle" ["Format"] "Style") '("cardfrontfootstyle" ["Format"] "Style") "cardmargin" "cardpaper" "cardpapermode" "cardrows" "cardcolumns" "cardheight" "cardwidth") (LaTeX-add-environments '("flashcard" ["Header"] "Front side")) ;; Fontification (when (and (fboundp 'font-latex-add-keywords) (eq TeX-install-font-lock 'font-latex-setup)) (font-latex-add-keywords '(("cardfrontstyle" "[{") ("cardfrontfoot" "{") ("cardbackstyle" "[{") ("cardfrontheadstyle" "[{") ("cardfrontfootstyle" "[{")) 'variable))) LaTeX-dialect) ;;; flashcards.el ends here auctex-11.91/style/floatrow.el000066400000000000000000000700071313533625700163510ustar00rootroot00000000000000;;; floatrow.el --- AUCTeX style for `floatrow.sty' (v0.3b) ;; Copyright (C) 2017 Free Software Foundation, Inc. ;; Author: Arash Esbati ;; Maintainer: auctex-devel@gnu.org ;; Created: 2016-11-11 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `floatrow.sty' (v0.3b) from 2009/08/02. ;; `floatrow.sty' is part of TeXLive. ;; ;; `floatrow.sty' is a powerful package and the documentation long. ;; It is expected that this style is not feature complete. One ;; deliberate decision is that this style does not offer any package ;; options: Please use the command `\floatsetup' to set the options ;; you want. ;; ;; This style also alters the way AUCTeX inserts the environments ;; "table" and "figure" (cf. function `LaTeX-floatrow-env-init'). If ;; you want the original behavior, try `C-c C-e rawfigure' or `C-c C-e ;; rawtable' which include the environments incl. the macro \RawFloats ;; at the beginning of the environment (cf. function ;; `LaTeX-floatrow-env-figure-raw'). ;; ;; Another deliberate decision is the implementation of commands like ;; `\ffigbox' and `\ttabbox': When invoked with `C-c C-m ffigbox RET', ;; the final result will look like this with cursor being at *: ;; ;; \ffigbox{*}{% ;; \caption{query for a caption}% ;; \label{prefix:is-chosen-acc-to-current-environment}% ;; } ;; ;; This gives users the freedom to insert any command where point is. ;; The mandatory arguments are not part of the fontification as ;; commands like `\includegraphics' or `tabular' environments have their ;; own fontification. ;;; Code: ;; Needed for compiling `pushnew': (eval-when-compile (require 'cl)) ;; Needed for auto-parsing. (require 'tex) (defvar LaTeX-floatrow-key-val-options '(;; 3.1.1 Float Style ("style" ("plain" "plaintop" "Plaintop" "ruled" "Ruled" "boxed" "Boxed" "BOXED" "shadowbox" "Shadowbox" "SHADOWBOX" "doublebox" "Doublebox" "DOUBLEBOX" "wshadowbox" "Wshadowbox" "WSHADOWBOX")) ;; 3.1.2 Font Settings ("font" ("scriptsize" "footnotesize" "small" "normalsize" "large" "Large" "normalfont" "up" "it" "sl" "sc" "md" "bf" "rm" "sf" "tt")) ("footfont" ("scriptsize" "footnotesize" "small" "normalsize" "large" "Large" "normalfont" "up" "it" "sl" "sc" "md" "bf" "rm" "sf" "tt")) ;; 3.1.3 Position of Caption ("capposition" ("top" "TOP" "bottom" "beside")) ;; 3.1.4 Position of Beside Caption ("capbesideposition" ("left" "right" "inside" "outside" "top" "bottom" "center")) ;; 3.1.5 Defining The Width of Beside Caption ("capbesidewidth" ("none" "sidefil")) ;; 3.1.6 Defining Width of Object ("floatwidth" ("\\hsize" "\\textwidth" "\\columnwidth" "\\linewidth")) ;; 3.1.7 Other Settings for Beside Captions ("capbesideframe" ("yes" "no")) ;; 3.1.8 Defining Float Foot Position (Legends and Footnotes) ("footposition" ("default" "caption" "bottom")) ;; 3.1.9 Vertical Alignment of Float Elements ("heightadjust" ("all" "caption" "object" "none" "nocaption" "noobject")) ("valign" ("t" "c" "b" "s")) ;; 3.1.10 Facing Layout ("facing" ("yes" "no")) ;; 3.1.11 Object Settings ("objectset" ("justified" "centering" "raggedright" "RaggedRight" "raggedleft")) ;; 3.1.12 Defining Float Margins ("margins" ("centering" "raggedright" "raggedleft" "hangright" "hanginside" "hangoutside")) ;; 3.1.13 Defining Float Separators ("floatrowsep" ("columnsep" "quad" "qquad" "hfil" "hfill" "none")) ("capbesidesep" ("columnsep" "quad" "qquad" "hfil" "hfill" "none")) ;; 3.1.14 Defining Float Rules/Skips ("precode" ("none" "thickrule" "rule" "lowrule" "captionskip")) ("rowprecode" ("none" "thickrule" "rule" "lowrule" "captionskip")) ("midcode" ("none" "thickrule" "rule" "lowrule" "captionskip")) ("postcode" ("none" "thickrule" "rule" "lowrule" "captionskip")) ("rowpostcode" ("none" "thickrule" "rule" "lowrule" "captionskip")) ;; 3.1.15 Defining Float Frames ("framestyle" ("fbox" "colorbox" "FRcolorbox" "corners" "doublebox" "shadowbox" "wshadowbox")) ("frameset") ("framearound" ("none" "object" "all" "row" "none")) ("framefit" ("yes" "no")) ("rowfill" ("yes" "no")) ;; 3.1.16 Settings for Colored Frames ("colorframeset") ("colorframecorners") ;; 3.1.17 Defining Float Skips ("captionskip") ("footskip") ;; 3.1.18 Defining Float Footnote Rule's Style ("footnoterule" ("normal" "limited" "fullsize" "none")) ;; 3.1.19 Managing Floats with [H] Placement Option ("doublefloataswide" ("yes" "no")) ("floatHaslist" ("yes" "no")) ;; 7.2.1 Additions in The floatrow Package to longtable package ("LTcapwidth" ("table" "contents"))) "Key=value options for floatrow macros and environments.") (defvar LaTeX-floatrow-key-val-options-local nil "Buffer-local key=value options for floatrow macros and environments.") (make-variable-buffer-local 'LaTeX-floatrow-key-val-options-local) (defvar LaTeX-floatrow-supported-float-types '("figure" "table" ; Standard LaTeX "widefigure" "widetable" "widefloat" ; Standard figure* & table* "wrapfigure" "wraptable" "wrapfloat" ; wrapfig.sty "rotfigure" "rottable" "rotfloat" ; rotating.sty "widerotfigure" "widerottable" "widerotfloat" ; for 2-col & wide "figurerow" "tablerow" "floatrow" ; inside floatrow env's "capbesidefigure" "capbesidetable" ; floats with beside captions "capbesidefloat" "longtable" ; longtable.sty "subfigure" "subtable" "sub") ; subcaption.sty "List of float types supported by floatrow.sty.") ;; Setup for \newfloatcommand (TeX-auto-add-type "floatrow-newfloatcommand" "LaTeX") (defvar LaTeX-floatrow-newfloatcommand-regexp '("\\\\newfloatcommand{\\([^}]+\\)}" 1 LaTeX-auto-floatrow-newfloatcommand) "Matches the arguments of \"\\newfloatcommand\" from floatrow.sty.") ;; Setup for various \Declare* macros: (TeX-auto-add-type "floatrow-DeclareNewOption" "LaTeX") (defvar LaTeX-floatrow-DeclareNewOption-regexp `(,(concat "\\\\Declare" "\\(" (mapconcat #'identity '("FloatStyle" ; 3.6.1 Float Style Option (style=) "FloatFont" ; 3.6.2 Float Font Option (font=) "FloatVCode" ; 3.6.3 Option for Float Rules/Skips (precode= etc.) "ColorBox" ; 3.6.4 Settings for Colored Frame (colorframeset=) "CBoxCorners" ; colorframecorners= "ObjectSet" ; 3.6.5 Object Justification Option (objectset=) "MarginSet" ; 3.6.6 Option for Float Box Alignment/Settings (margins=) "FloatSeparators" ; 3.6.7 Float Separators Options (floatrowsep=, capbesidesep=) "FloatFootnoterule") ; 3.6.8 Option for Footnote Rule's Style (footnoterule=) "\\|") "\\)" "{\\([^}]+\\)}") (0 1 2) LaTeX-auto-floatrow-DeclareNewOption) "Matches the arguments of \"\\Declare*\" from floatrow.sty.") ;; Setup for \newseparated(label|ref): (TeX-auto-add-type "floatrow-newseparatedlabel-ref" "LaTeX") (defvar LaTeX-floatrow-newseparatedlabel-ref-regexp `(,(concat "\\\\newseparated" "\\(label\\|ref\\)" "{?" "\\\\" "\\([a-zA-Z]+\\)" "}?") (2 1) LaTeX-auto-floatrow-newseparatedlabel-ref) "Matches the arguments \"\\newseparated(label|ref)\" command from floatrow.sty.") ;; Setup for \DeclareNewFloatType: (TeX-auto-add-type "floatrow-DeclareNewFloatType" "LaTeX") (defvar LaTeX-floatrow-DeclareNewFloatType-regexp '("\\\\DeclareNewFloatType{\\([^}]+\\)}" 1 LaTeX-auto-floatrow-DeclareNewFloatType) "Matches the argument of \"\\DeclareNewFloatType\" command from floatrow.sty.") ;; Plug them into the machinery. (defun LaTeX-floatrow-auto-prepare () "Clear various \"LaTeX-floatrow\" variables before parsing." (setq LaTeX-auto-floatrow-newfloatcommand nil LaTeX-auto-floatrow-DeclareNewOption nil LaTeX-auto-floatrow-newseparatedlabel-ref nil LaTeX-auto-floatrow-DeclareNewFloatType nil)) (defun LaTeX-floatrow-auto-cleanup () "Process parsed results from floatrow package." ;; Replace initially the way fig & tab env's are inserted: (LaTeX-floatrow-env-init) ;; ;; Process new key=val options: (when (LaTeX-floatrow-DeclareNewOption-list) (LaTeX-floatrow-update-key-val-options)) ;; ;; Process new float commands like \ffigbox: (when (LaTeX-floatrow-newfloatcommand-list) (dolist (cmd (mapcar #'car (LaTeX-floatrow-newfloatcommand-list))) (TeX-add-symbols `(,cmd LaTeX-floatrow-arg-floatbox)) (when (and (featurep 'font-latex) (eq TeX-install-font-lock 'font-latex-setup)) (font-latex-add-keywords `((,cmd "[[[")) 'textual)))) ;; ;; Process new label/ref commands: (when (LaTeX-floatrow-newseparatedlabel-ref-list) (let (floatrow-run-reftex-compile-vars) (dolist (elt (LaTeX-floatrow-newseparatedlabel-ref-list)) (let ((cmd (car elt)) (type (cadr elt))) (if (string= type "ref") ;; More fun w/ referencing macros: (TeX-add-symbols `(,cmd TeX-arg-ref)) ;; Less fun w/ label defining macros. Add cmd to ;; TeX-symbol-list: (TeX-add-symbols `(,cmd TeX-arg-define-label)) ;; For AUCTeX, parse the argument of the new macro and add ;; it to `LaTeX-auto-label': (TeX-auto-add-regexp `(,(concat "\\\\" cmd "{\\([^\n\r%\\{}]+\\)}") 1 LaTeX-auto-label)) ;; For RefTeX, append cmd to `reftex-label-regexps and set ;; floatrow-run-reftex-compile-vars to t: (when (and (boundp 'reftex-label-regexps) (fboundp 'reftex-compile-variables) (not (string-match cmd (mapconcat #'identity reftex-label-regexps "|")))) (add-to-list (make-local-variable 'reftex-label-regexps) (concat "\\\\" cmd "{\\(?1:[^}]*\\)}") t) (setq floatrow-run-reftex-compile-vars t))) ;; Fontify macros as reference: (when (and (featurep 'font-latex) (eq TeX-install-font-lock 'font-latex-setup)) (font-latex-add-keywords `((,cmd "{")) 'reference)))) ;; Run `reftex-compile-variables' if needed only once: (when floatrow-run-reftex-compile-vars (reftex-compile-variables)))) ;; ;; Process new floattypes: (when (LaTeX-floatrow-DeclareNewFloatType-list) (LaTeX-floatrow-arg-declare-new-floattype nil t)) ;; ;; Add elements from `LaTeX-floatrow-supported-float-types' to ;; `LaTeX-caption-supported-float-types': (when (boundp 'LaTeX-caption-supported-float-types) (make-local-variable 'LaTeX-caption-supported-float-types) (dolist (float LaTeX-floatrow-supported-float-types) (add-to-list 'LaTeX-caption-supported-float-types float t))) ) (add-hook 'TeX-auto-prepare-hook #'LaTeX-floatrow-auto-prepare t) (add-hook 'TeX-auto-cleanup-hook #'LaTeX-floatrow-auto-cleanup t) (add-hook 'TeX-update-style-hook #'TeX-auto-parse t) (defun LaTeX-floatrow-update-key-val-options () "Update buffer-local key-val options before offering for completion." (let ((vcode-keys '("precode" "rowprecode" "midcode" "postcode" "rowpostcode")) (sep-keys '("floatrowsep" "capbesidesep"))) (dolist (keyvals (LaTeX-floatrow-DeclareNewOption-list)) (let* ((key (cond ((string= (nth 1 keyvals) "FloatStyle") "style") ((string= (nth 1 keyvals) "FloatFont") "font") ((string= (nth 1 keyvals) "FloatVCode") "precode") ((string= (nth 1 keyvals) "ColorBox") "colorframeset") ((string= (nth 1 keyvals) "CBoxCorners") "colorframecorners") ((string= (nth 1 keyvals) "ObjectSet") "objectset") ((string= (nth 1 keyvals) "MarginSet") "margins") ((string= (nth 1 keyvals) "FloatSeparators") "floatrowsep") ((string= (nth 1 keyvals) "FloatFootnoterule") "footnoterule") (t nil))) (val (nth 2 keyvals)) (val-match (cadr (assoc key LaTeX-floatrow-key-val-options-local))) (temp (copy-alist LaTeX-floatrow-key-val-options-local)) (opts (cond ((string= key "precode") (dolist (x vcode-keys) (setq temp (assq-delete-all (car (assoc x temp)) temp))) temp) ((string= key "floatrowsep") (setq temp (dolist (x sep-keys) (assq-delete-all (car (assoc x temp)) temp))) temp) (t (assq-delete-all (car (assoc key temp)) temp))))) (cond ((string= key "precode") (dolist (x vcode-keys) (pushnew (list x (delete-dups (append (list val) val-match))) opts :test #'equal))) ((string= key "floatrowsep") (dolist (x sep-keys) (pushnew (list x (delete-dups (append (list val) val-match))) opts :test #'equal))) (t (pushnew (list key (delete-dups (append (list val) val-match))) opts :test #'equal))) (setq LaTeX-floatrow-key-val-options-local (copy-alist opts)))))) (defun LaTeX-floatrow-arg-floatbox (optional) "Query and insert arguments of float box commands from floatrow.sty. If OPTIONAL is non-nil, indicate optional argument during query." ;; Query for the optional arguments; ask for "vertpos" only if ;; "height" is given. let-bind `TeX-arg-*-brace' for ;; `TeX-argument-insert': (let* ((TeX-arg-opening-brace "[") (TeX-arg-closing-brace "]") (width (completing-read (TeX-argument-prompt t nil "Width") (mapcar (lambda (x) (concat TeX-esc (car x))) (LaTeX-length-list)))) (height (completing-read (TeX-argument-prompt t nil "Height") (mapcar (lambda (x) (concat TeX-esc (car x))) (LaTeX-length-list)))) (vertpos (if (string= height "") "" (completing-read (TeX-argument-prompt t nil "Vertical alignment") '("t" "c" "b" "s"))))) (TeX-argument-insert width t) ;; Insert an extra pair of brackets if only `height' is given, ;; otherwise it will become `width' (when (and (string= width "") height (not (string= height ""))) (insert "[]")) (TeX-argument-insert height t) (TeX-argument-insert vertpos t)) ;; Now query for the (short-)caption. Also check for the ;; float-type; if we're inside (sub)?floatrow*?, then check for the ;; next outer environment: (let* ((currenv (if (string-match "floatrow\\*?\\_>" (LaTeX-current-environment)) (LaTeX-current-environment 2) (LaTeX-current-environment))) (caption (TeX-read-string (TeX-argument-prompt optional nil "Caption"))) (short-caption (when (>= (length caption) LaTeX-short-caption-prompt-length) (TeX-read-string (TeX-argument-prompt t nil "Short caption"))))) (indent-according-to-mode) ;; The final result will look like this with * being point: ;; \ffigbox{*}{% ;; \caption{text}% ;; \label{fig:foo}% ;; } (insert TeX-grop) (save-excursion ;; We are inside the 1. mandatory arg: Save the pos & insert `}{': (insert TeX-grcl TeX-grop) (if (and caption (not (string= caption ""))) (progn ;; If caption, move to EOL, delete any spaces and hide the line end (end-of-line) (delete-horizontal-space) (insert "%") ;; Add a newline and the caption (newline-and-indent) (insert (LaTeX-compose-caption-macro caption short-caption)) ;; If we have a caption, then we probably also want a ;; label. Hide EOL end and proceed to enter a label (insert "%") (newline-and-indent) (when (LaTeX-label currenv 'environment) ;; Move point to end of line and hide EOL (end-of-line) (delete-horizontal-space) (insert "%") (newline-and-indent)) ;; Now close the group (insert TeX-grcl) (indent-according-to-mode) (end-of-line)) ;; Otherwise, only insert a } (insert TeX-grcl))))) (defun LaTeX-floatrow-env-init () "Replace AUCTeX entries in the variable `LaTeX-environment-list'. After loading the style hook floatrow.el, delete the entries for figure*? and table*? from variable `LaTeX-environment-list' and replace them with the ones offered by the style. Original entries are available under \"rawfigure*?\" and \"rawtable*?\"." (LaTeX-environment-list) (dolist (env '("figure" "figure*" "table" "table*")) (setq LaTeX-environment-list (assq-delete-all (car (assoc env LaTeX-environment-list)) LaTeX-environment-list)) (LaTeX-add-environments `(,env LaTeX-floatrow-env-figure) `(,(concat "raw" env) LaTeX-floatrow-env-figure-raw)))) (defun LaTeX-floatrow-env-figure (environment) "Create floating ENVIRONMENT suitable for floatrow macros." (let ((float (and LaTeX-float (TeX-read-string (TeX-argument-prompt t nil "Float position") LaTeX-float)))) (LaTeX-insert-environment environment (unless (zerop (length float)) (concat LaTeX-optop float LaTeX-optcl))))) (defun LaTeX-floatrow-env-figure-raw (env) "Create raw floating ENV with floatrow.sty. Also insert the macro \"\\RawFloats\" when finished with user queries." (let ((environment (TeX-replace-regexp-in-string "raw" "" env))) (LaTeX-env-figure environment) (save-excursion ;; `LaTeX-find-matching-begin' will not work for us as we don't ;; know how user answers queries from AUCTeX, hence we search ;; back for `environment': (re-search-backward (concat "\\\\begin{" environment "}") nil t) (end-of-line) (LaTeX-newline) (indent-according-to-mode) (insert TeX-esc "RawFloats")))) (defun LaTeX-floatrow-arg-declare-new-options (optional prompt key) "Query and insert user-defined values to keys provided by floatrow.sty. If OPTIONAL is non-nil, ask for an optional argument and insert it in square brackets. PROMPT replaces the standard one. KEY is a string and corresponds to first parsed element in `LaTeX-floatrow-DeclareNewOption-regexp'." (let ((val (TeX-read-string (TeX-argument-prompt optional prompt "New value option")))) (LaTeX-add-floatrow-DeclareNewOptions (list (concat TeX-esc "Declare" key TeX-grop val TeX-grcl) key val)) (LaTeX-floatrow-update-key-val-options) (TeX-argument-insert val optional) (TeX-argument-insert (TeX-read-key-val optional LaTeX-floatrow-key-val-options-local) optional))) (defun LaTeX-floatrow-arg-newseparatedlabel/ref (optional type) "Query and insert user defined label and reference macros from floatrow.sty. If OPTIONAL is non-nil, insert the argument in brackets. TYPE is the string \"label\" or \"ref\"." (let ((cmd (TeX-read-string (if (string= type "label") (TeX-argument-prompt optional nil "Label command: \\" t) (TeX-argument-prompt optional nil "Reference command: \\" t))))) (LaTeX-add-floatrow-newseparatedlabel-refs (list cmd type)) (if (string= type "label") (TeX-add-symbols `(,cmd TeX-arg-define-label)) (TeX-add-symbols `(,cmd TeX-arg-ref))) (TeX-argument-insert cmd optional TeX-esc))) (defun LaTeX-floatrow-arg-declare-new-floattype (optional &optional cleanup) "Query and insert the first argument of \"DeclareNewFloatType\" macro from floatrow.sty. If OPTIONAL is non-nil, insert the argument in brackets. If CLEANUP in non-nil, skip the query and insert process as we are inside the function `LaTeX-floatrow-auto-cleanup' and process only the parsed items." (let ((type (if cleanup (mapcar #'car (LaTeX-floatrow-DeclareNewFloatType-list)) (list (TeX-read-string (TeX-argument-prompt optional nil "Environment type")))))) ;; If not inside `LaTeX-floatrow-auto-cleanup', add user input to ;; list of new floats and insert it (unless cleanup (LaTeX-add-floatrow-DeclareNewFloatTypes (car type)) (TeX-argument-insert (car type) optional)) ;; Make the next variables buffer local (make-local-variable 'LaTeX-floatrow-supported-float-types) (when (boundp 'LaTeX-caption-supported-float-types) (make-local-variable 'LaTeX-caption-supported-float-types)) ;; Process new float type(s): a) add type to list of known ;; environments incl. "raw" version b) add different flavors of ;; type to `LaTeX-floatrow-supported-float-types' c) check if ;; `LaTeX-caption-supported-float-types' is bound and add ;; different flavors of type to it as well (dolist (elt type) (LaTeX-add-environments `(,elt LaTeX-floatrow-env-figure) `(,(concat "raw" elt) LaTeX-floatrow-env-figure-raw)) (add-to-list 'LaTeX-floatrow-supported-float-types elt t) (add-to-list 'LaTeX-floatrow-supported-float-types (concat "wide" elt) t) (add-to-list 'LaTeX-floatrow-supported-float-types (concat elt "row") t) (add-to-list 'LaTeX-floatrow-supported-float-types (concat "capbeside" elt) t) (when (boundp 'LaTeX-caption-supported-float-types) (add-to-list 'LaTeX-caption-supported-float-types elt t) (add-to-list 'LaTeX-caption-supported-float-types (concat "wide" elt) t) (add-to-list 'LaTeX-caption-supported-float-types (concat elt "row") t) (add-to-list 'LaTeX-caption-supported-float-types (concat "capbeside" elt) t))))) (TeX-add-style-hook "floatrow" (lambda () ;; Add floatrow to the parser (TeX-auto-add-regexp LaTeX-floatrow-DeclareNewOption-regexp) (TeX-auto-add-regexp LaTeX-floatrow-newfloatcommand-regexp) (TeX-auto-add-regexp LaTeX-floatrow-newseparatedlabel-ref-regexp) (TeX-auto-add-regexp LaTeX-floatrow-DeclareNewFloatType-regexp) ;; Activate the buffer-local version of key-vals (setq LaTeX-floatrow-key-val-options-local (copy-alist LaTeX-floatrow-key-val-options)) ;; Add pre-defined float commands: (LaTeX-add-floatrow-newfloatcommands "ffigbox" "fcapside" "ttabbox") ;; Macros (TeX-add-symbols ;; 2.1 The \floatbox Macro ;; \floatbox[]{}[][][]{}{} '("floatbox" [ TeX-arg-eval completing-read (TeX-argument-prompt optional nil "Preamble") '("\\capbeside" "\\nocapbeside" "\\captop") ] (TeX-arg-eval completing-read (TeX-argument-prompt optional nil "Float type") LaTeX-floatrow-supported-float-types) LaTeX-floatrow-arg-floatbox) ;; 2.2 Creation of Personal Commands for Float Boxes '("newfloatcommand" (TeX-arg-eval (lambda () (let ((cmd (TeX-read-string (TeX-argument-prompt optional nil "Command")))) (LaTeX-add-floatrow-newfloatcommands cmd) (TeX-add-symbols `(,cmd LaTeX-floatrow-arg-floatbox)) (format "%s" cmd)))) (TeX-arg-eval completing-read (TeX-argument-prompt optional nil "Float type") '("figure" "table")) [ 2 ]) '("renewfloatcommand" (TeX-arg-eval completing-read (TeX-argument-prompt optional nil "Command") (LaTeX-floatrow-newfloatcommand-list)) (TeX-arg-eval completing-read (TeX-argument-prompt optional nil "Float type") '("figure" "table")) [ 2 ]) ;; 2.2.2 Predefined Float Box Commands '("ffigbox" LaTeX-floatrow-arg-floatbox) '("ttabbox" LaTeX-floatrow-arg-floatbox) '("fcapside" LaTeX-floatrow-arg-floatbox) ;; 2.3.1 Mixed Row '("CenterFloatBoxes" 0) '("TopFloatBoxes" 0) '("BottomFloatBoxes" 0) '("PlainFloatBoxes" 0) '("buildFBBOX" 2) ;; 3 Float Layout Settings '("floatsetup" [ TeX-arg-eval completing-read (TeX-argument-prompt optional nil "Float type") LaTeX-floatrow-supported-float-types ] (TeX-arg-key-val LaTeX-floatrow-key-val-options-local)) ;; 3.2 Settings for Current Float Environment '("thisfloatsetup" (TeX-arg-key-val LaTeX-floatrow-key-val-options-local)) ;; 3.3 Clearing of Settings for Current Float Type '("clearfloatsetup" (TeX-arg-eval completing-read (TeX-argument-prompt optional nil "Float type") LaTeX-floatrow-supported-float-types)) ;; 3.4 Temporary Clearing of All Float Settings '("killfloatstyle" 0) ;; 3.6.1 Float Style Option (style=) '("DeclareFloatStyle" (LaTeX-floatrow-arg-declare-new-options "New style option" "FloatStyle")) ;; 3.6.2 Float Font Option (font=) '("DeclareFloatFont" (LaTeX-floatrow-arg-declare-new-options "New font option" "FloatFont")) ;; 3.6.3 Option for Float Rules/Skips (precode= etc.) '("DeclareFloatVCode" (LaTeX-floatrow-arg-declare-new-options "New rules/skip option" "FloatVCode")) ;; 3.6.4 Settings for Colored Frame (colorframeset=) '("DeclareColorBox" (LaTeX-floatrow-arg-declare-new-options "New colored frame option" "ColorBox")) ;; (colorframecorners=) '("DeclareCBoxCorners" (LaTeX-floatrow-arg-declare-new-options "New colored corner option" "CBoxCorners")) ;; 3.6.5 Object Justification Option (objectset=) '("DeclareObjectSet" (LaTeX-floatrow-arg-declare-new-options "New object justification" "ObjectSet")) ;; 3.6.6 Option for Float Box Alignment/Settings (margins=) '("DeclareMarginSet" (LaTeX-floatrow-arg-declare-new-options "New alignment option" "MarginSet")) '("setfloatmargins" 2) '("setfloatmargins*" 2) '("floatfacing" 2) '("floatfacing*" 2) '("floatboxmargins" 2) '("floatrowmargins" 2) '("floatcapbesidemargins" 2) ;; 3.6.7 Float Separators Options (floatrowsep=, capbesidesep=) '("DeclareFloatSeparators" (LaTeX-floatrow-arg-declare-new-options "New separator option" "FloatSeparators")) ;; 3.6.8 Option for Footnote Rule's Style (footnoterule=) '("DeclareFloatFootnoterule" (LaTeX-floatrow-arg-declare-new-options "New footnote rule option" "FloatFootnoterule")) ;; 4 Creation of New Float Types '("DeclareNewFloatType" (LaTeX-floatrow-arg-declare-new-floattype) (TeX-arg-key-val (("placement" ("tbp" "t" "b" "p")) ("name") ("fileext") ("within" ("chapter" "section" "subsection")) ("relatedcapstyle" ("yes" "no"))))) ;; 6.2 Support of The Label-Sublabel References '("newseparatedlabel" (LaTeX-floatrow-arg-newseparatedlabel/ref "label") 2) '("newseparatedref" (LaTeX-floatrow-arg-newseparatedlabel/ref "ref") t) '("makelabelseparator" t) ) ;; terminate TeX-add-symbols ;; Environments (LaTeX-add-environments ;; 2.3 Building Float Row '("floatrow" [ "Number of beside floats" ]) ;; 6.1 Managing of Float Parts With the subfloatrow Environment '("subfloatrow" [ "Number of beside floats" ]) '("subfloatrow*" [ "Number of beside floats" ])) ;; 2.1.1 Float Box Width Equals to The Width of Object Contents (LaTeX-add-lengths "FBwidth" "FBheight" "Xhsize") ;; Fontification (when (and (featurep 'font-latex) (eq TeX-install-font-lock 'font-latex-setup)) (font-latex-add-keywords '(("floatbox" "[{[[[") ("ffigbox" "[[[") ("ttabbox" "[[[") ("fcapside" "[[[")) 'textual) (font-latex-add-keywords '(("newfloatcommand" "{{[[") ("renewfloatcommand" "{{[[") ("buildFBBOX" "{{") ("floatsetup" "[{") ("thisfloatsetup" "{") ("clearfloatsetup" "{") ("killfloatstyle" "") ("DeclareFloatStyle" "{{") ("DeclareFloatFont" "{{") ("DeclareFloatVCode" "{{") ("DeclareColorBox" "{{") ("DeclareCBoxCorners" "{{") ("DeclareObjectSet" "{{") ("DeclareMarginSet" "{{") ("DeclareFloatSeparators" "{{") ("DeclareFloatFootnoterule" "{{") ("newseparatedlabel" "{{{") ("newseparatedref" "{{") ("makelabelseparator" "{") ("DeclareNewFloatType" "{{") ("RawFloats" "")) 'function))) LaTeX-dialect) (defvar LaTeX-floatrow-package-options nil "Prompt for package options for the floatrow package.") ;;; floatrow.el ends here auctex-11.91/style/foils.el000066400000000000000000000044321313533625700156270ustar00rootroot00000000000000;;; foils.el - Special code for FoilTeX. ;; Copyright (C) 1994-2014 Free Software Foundation, Inc. ;; Author: Per Abrahamsen ;; Maintainer: auctex-devel@gnu.org ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by the ;; Free Software Foundation; either version 3, or (at your option) any ;; later version. ;; AUCTeX is distributed in the hope that it will be useful, but WITHOUT ;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ;; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ;; for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX. If not, see . ;;; Code: (require 'timezone) (TeX-add-style-hook "foils" (function (lambda () (add-hook 'LaTeX-document-style-hook 'LaTeX-style-foils) (setq LaTeX-default-style "foils") (setq LaTeX-default-options '("landscape")) (TeX-add-symbols '("foilhead" [ "Rubric-body separation" ] "Foil rubric")))) LaTeX-dialect) (defun LaTeX-style-foils nil "Prompt for and insert foiltex options." (let* ((date (timezone-parse-date (current-time-string))) (year (string-to-number (aref date 0))) (month (string-to-number (aref date 1))) (day (string-to-number (aref date 2))) (title (TeX-read-string "Title: "))) (save-excursion (goto-char (point-max)) (re-search-backward ".begin.document.") (insert TeX-esc "title" TeX-grop title TeX-grcl "\n") (insert TeX-esc "author" TeX-grop (user-full-name) TeX-grcl "\n") (insert TeX-esc "date" TeX-grop (format "%d-%02d-%02d" year month day) TeX-grcl "\n") (insert "" TeX-esc "MyLogo" TeX-grop TeX-grcl "\n") (insert "%" TeX-esc "Restriction" TeX-grop TeX-grcl "\n") (insert "%" TeX-esc "rightfooter" TeX-grop TeX-grcl "\n") (insert "%" TeX-esc "leftheader" TeX-grop TeX-grcl "\n") (insert "%" TeX-esc "rightheader" TeX-grop TeX-grcl "\n\n") (re-search-forward ".begin.document.") (end-of-line) (newline-and-indent) (insert "" TeX-esc "maketitle\n\n")) (forward-line -1))) ;;; foils.el ends here auctex-11.91/style/fontaxes.el000066400000000000000000000100261313533625700163360ustar00rootroot00000000000000;;; fontaxes.el --- AUCTeX style for `fontaxes.sty' version v1.0d ;; Copyright (C) 2014 Free Software Foundation, Inc. ;; Author: Arash Esbati ;; Maintainer: auctex-devel@gnu.org ;; Created: 2014-10-12 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `fontaxes.sty' version v1.0d from ;; 2014/03/23. `fontaxes.sty' is part of TeXLive. ;; Thanks to Mos Giordano for his perceptive comments on ;; implementation of "figureversion". ;;; Code: (TeX-add-style-hook "fontaxes" (lambda () (TeX-add-symbols ;; Various font shapes '("swshape" -1) ; swash shape '("sscshape" -1) ; spaced small caps '("fontprimaryshape" t) '("fontsecondaryshape" t) '("swdefault" t) '("sscdefault" t) '("ulcdefault" t) ;; Figure versions '("figureversion" (TeX-arg-eval mapconcat 'identity (TeX-completing-read-multiple "Style, alignment: " '(("text") ("osf") ("lining") ("lf") ("tabular") ("tab") ("proportional") ("prop"))) ",")) '("txfigures" -1) ; style: text figures (osf) '("lnfigures" -1) ; style: lining figures '("tbfigures" -1) ; alignment: tabular figures '("prfigures" -1) ; alignment: proportional figures '("fontfigurestyle" (TeX-arg-eval completing-read "Style: " '(("text") ("lining")))) '("fontfigurealignment" (TeX-arg-eval completing-read "Alignment: " '(("tabular") ("proportional")))) '("fontbasefamily" t) ;; Math versions '("boldmath" -1) ; math weight '("unboldmath" -1) ; '("tabularmath" -1) ; math figure alignment '("proportionalmath" -1) ; '("mathweight" (TeX-arg-eval completing-read "Math weight: " '(("bold") ("normal")))) '("mathfigurealignment" (TeX-arg-eval completing-read "Math figure alignment: " '(("tabular") ("proportional")))) ;; Additional commands '("textsw" t) '("textssc" t) '("textulc" t) '("textfigures" t) '("liningfigures" t) '("tabularfigures" t) '("proportionalfigures" t)) ;; Fontification (when (and (featurep 'font-latex) (eq TeX-install-font-lock 'font-latex-setup)) (font-latex-add-keywords '(("textfigures" "{") ("liningfigures" "{") ("tabularfigures" "{") ("proportionalfigures" "{")) 'type-command) (font-latex-add-keywords '(("textsw" "{") ("textssc" "{") ("textulc" "{")) 'bold-command) (font-latex-add-keywords '(("swshape" "") ("sscshape" "")) 'bold-declaration) (font-latex-add-keywords '(("figureversion" "{")) 'variable))) LaTeX-dialect) (defvar LaTeX-fontaxes-package-options nil "Package options for the fontaxes package.") ;;; fontaxes.el ends here auctex-11.91/style/fontenc.el000066400000000000000000000032671313533625700161540ustar00rootroot00000000000000;;; fontenc.el --- AUCTeX style for `fontenc.sty' (v1.99g) ;; Copyright (C) 2015 Free Software Foundation, Inc. ;; Author: Arash Esbati ;; Maintainer: auctex-devel@gnu.org ;; Created: 2015-09-12 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `fontenc.sty' (v1.99g) from 2005/09/27. ;; `fontenc.sty' is a standard LaTeX package and part of TeXLive. ;;; Code: (defvar LaTeX-fontenc-package-options-list '(;; 128+ glyph encodings (text) "OT1" "OT2" "OT3" "OT4" "OT6" ;; 256 glyph encodings (text) "T1" "T2A" "T2B" "T2C" "T3" "T4" "T5" ;; 256 glyph encodings (text extended) "X2" ;; Other encodings "LY1" "LV1" "LGR") "Package options for the fontenc package.") (defun LaTeX-fontenc-package-options () "Prompt for package options for the fontenc package." (mapconcat 'identity (TeX-completing-read-multiple "Encoding(s): " LaTeX-fontenc-package-options-list) ",")) ;;; fontenc.el ends here auctex-11.91/style/fontspec.el000066400000000000000000000335261313533625700163420ustar00rootroot00000000000000;;; fontspec.el --- AUCTeX style for `fontspec.sty' version 2.6a. ;; Copyright (C) 2013, 2017 Free Software Foundation, Inc. ;; Maintainer: auctex-devel@gnu.org ;; Author: Mosè Giordano ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `fontspec.sty' version 2.6a. Starting ;; with `fontspec.sty' v2.4, the order of mandatory font names and ;; optional font features in related macros has changed, i.e. optional ;; argument comes after the mandatory one. This change is now (April ;; 2017) implemented in this file. Fontification support retains ;; backward compatibilty. ;;; Code: (defvar LaTeX-fontspec-font-features '(;; 5 Font selection ("Extension" (".otf" ".ttf" ".ttc" ".dfont")) ("Path") ;; 6.1 More control over font shape selection ("BoldFont") ("ItalicFont") ("BoldItalicFont") ("SlantedFont") ("BoldSlantedFont") ("SmallCapsFont") ;; 6.2 Specifically choosing the NFSS family ("NFSSFamily") ("FontFace") ;; 11 Different features for different font shapes ("UprightFeatures") ("BoldFeatures") ("ItalicFeatures") ("BoldItalicFeatures") ("SlantedFeatures") ("BoldSlantedFeatures") ("SmallCapsFeatures") ;; 13 Different features for different font sizes ("SizeFeatures") ;; 14 Font independent options ("Color") ("Scale" ("MatchLowercase" "MatchUppercase")) ("WordSpace") ("PunctuationSpace") ("HyphenChar") ("OpticalSize") ("AutoFakeBold") ("AutoFakeSlant") ("FakeSlant") ("FakeStretch") ("FakeBold") ("LetterSpace") ;; 16 OpenType options ("Ligatures" ("Required" "RequiredOff" "Common" "CommonOff" "Contextual" "ContextualOff" "Rare" "RareOff" "Discretionary" "DiscretionaryOff" "Historic" "HistoricOff" "TeX" "ResetAll")) ("Letters" ("Uppercase" "UppercaseOff" "SmallCaps" "SmallCapsOff" "PetiteCaps" "PetiteCapsOff" "UppercaseSmallCaps" "UppercaseSmallCapsOff" "UppercasePetiteCaps" "UppercasePetiteCapsOff" "Unicase" "UnicaseOff" "ResetAll")) ("Numbers" ("Uppercase" "UppercaseOff" "Lowercase" "LowercaseOff" "Lining" "LiningOff" "OldStyle" "OldStyleOff" "Proportional" "ProportionalOff" "Monospaced" "MonospacedOff" "SlashedZero" "SlashedZeroOff" "Arabic" "ArabicOff" "ResetAll")) ("Contextuals" ("Swash" "SwashOff" "Alternate" "AlternateOff" "WordInitial" "WordInitialOff" "WordFinal" "WordFinalOff" "LineFinal" "LineFinalOff" "Inner" "InnerOff" "ResetAll")) ("VerticalPosition" ("Superior" "SuperiorOff" "Inferior" "InferiorOff" "Numerator" "NumeratorOff" "Denominator" "DenominatorOff" "ScientificInferior" "ScientificInferiorOff" "Ordinal" "OrdinalOff" "ResetAll")) ("Fraction" ("On" "Off" "Reset" "Alternate" "AlternateOff" "ResetAll")) ("StylisticSet") ("CharacterVariant") ("Alternate" ("Random")) ("Style" ("Alternate" "AlternateOff" "Italic" "ItalicOff" "Ruby" "RubyOff" "Swash" "SwashOff" "Cursive" "CursiveOff" "Historic" "HistoricOff" "TitlingCaps" "TitlingCapsOff" "HorizontalKana" "HorizontalKanaOff" "VerticalKana" "VerticalKanaOff" "ResetAll")) ("Diacritics" ("MarkToBase" "MarkToBaseOff" "MarkToMark" "MarkToMarkOff" "AboveBase" "AboveBaseOff" "BelowBase" "BelowBaseOff" "ResetAll")) ("Kerning" ("Uppercase" "UppercaseOff" "On" "Off" "Reset" "ResetAll")) ("CharacterWidth" ("Proportional" "ProportionalOff" "Full" "FullOff" "Half" "HalfOff" "Third" "ThirdOff" "Quarter" "QuarterOff" "AlternateProportional" "AlternateProportionalOff" "AlternateHalf" "AlternateHalfOff" "ResetAll")) ("Annotation") ("CJKShape" ("Traditional" "Simplified" "JIS1978" "JIS1983" "JIS1990" "Expert" "NLC")) ("Vertical" ("RotatedGlyphs" "RotatedGlyphsOff" "AlternatesForRotation" "AlternatesForRotationOff" "Alternates" "AlternatesOff" "KanaAlternates" "KanaAlternatesOff" "Kerning" "KerningOff" "AlternateMetrics" "AlternateMetricsOff" "HalfMetrics" "HalfMetricsOff" "ProportionalMetrics" "ProportionalMetricsOff" "ResetAll")) ;; 25 Going behind fontspec's back: Offer only an excerpt of all ;; possible tags: ("RawFeature" ("frac" "lnum" "onum" "pnum" "smcp" "tnum" "zero"))) "Font features options for macros of the fontspec package.") (defvar LaTeX-fontspec-font-features-local nil "Buffer-local font features options for macros of the fontspec package.") (make-variable-buffer-local 'LaTeX-fontspec-font-features-local) (defvar LaTeX-fontspec-font-list nil "List of the fonts accessible to fontspec.") (defun LaTeX-fontspec-arg-font (optional &optional prompt) "Prompt for a font name with completion. If OPTIONAL is non-nil, insert the resulting value as an optional argument, otherwise as a mandatory one. Use PROMPT as the prompt string. Customize `LaTeX-fontspec-arg-font-search' in order to decide how to retrieve the list of fonts." (unless LaTeX-fontspec-font-list (when (if (eq LaTeX-fontspec-arg-font-search 'ask) (not (y-or-n-p "Find font yourself? ")) LaTeX-fontspec-arg-font-search) (message "Searching for fonts...") (with-temp-buffer (shell-command "luaotfload-tool --list=basename" t) ;; Search for the font base names and full names, and add them to ;; `LaTeX-fontspec-font-list'. The list is in the form ;; (while (re-search-forward "^\\([^\n\r\t]*\\)\t\\([^\n\r\t]*\\)\t.*$" nil t) (add-to-list 'LaTeX-fontspec-font-list (match-string-no-properties 1)) (add-to-list 'LaTeX-fontspec-font-list (match-string-no-properties 2)))))) (TeX-argument-insert (completing-read (TeX-argument-prompt optional prompt "Font name") (or LaTeX-fontspec-font-list LaTeX-fontspec-font-list-default)) optional)) (defun LaTeX-fontspec-update-font-features () "Update Color key=values in `LaTeX-fontspec-font-features-local'." ;; Check if any color defininig package is loaded and update the ;; key=values for coloring. Prefer xcolor.sty if both packages are ;; loaded. (when (or (member "xcolor" (TeX-style-list)) (member "color" (TeX-style-list))) (let* ((colorcmd (if (member "xcolor" (TeX-style-list)) #'LaTeX-xcolor-definecolor-list #'LaTeX-color-definecolor-list)) (tmp (copy-alist LaTeX-fontspec-font-features-local))) (setq tmp (assq-delete-all (car (assoc "Color" tmp)) tmp)) (push (list "Color" (mapcar #'car (funcall colorcmd))) tmp) (setq LaTeX-fontspec-font-features-local (copy-alist tmp))))) ;; Setup for \newfontfamily and \newfontface: (TeX-auto-add-type "fontspec-newfontcmd" "LaTeX") (defvar LaTeX-fontspec-newfontcmd-regexp '("\\\\newfontfa\\(?:ce\\|mily\\)[ \t\n\r%]*\\\\\\([a-zA-Z]+\\)" 1 LaTeX-auto-fontspec-newfontcmd) "Matches new macros defined with \\newfontface and \\newfontfamily.") (defun LaTeX-fontspec-auto-prepare () "Clear `LaTeX-auto-fontspec-newfontcmd' before parsing." (setq LaTeX-auto-fontspec-newfontcmd nil)) (defun LaTeX-fontspec-auto-cleanup () "Process parsed elements for fontspec package." (dolist (mac (mapcar #'car (LaTeX-fontspec-newfontcmd-list))) ;; Add macro to list of known macros (TeX-add-symbols mac) ;; Cater for fontification (when (and (featurep 'font-latex) (eq TeX-install-font-lock 'font-latex-setup)) (font-latex-add-keywords `((,mac "")) 'type-declaration))) ;; Update values of Color key: (LaTeX-fontspec-update-font-features)) (add-hook 'TeX-auto-prepare-hook #'LaTeX-fontspec-auto-prepare t) (add-hook 'TeX-auto-cleanup-hook #'LaTeX-fontspec-auto-cleanup t) (add-hook 'TeX-update-style-hook #'TeX-auto-parse t) (TeX-add-style-hook "fontspec" (lambda () (TeX-check-engine-add-engines 'luatex 'xetex) (TeX-run-style-hooks "expl3" "xparse") ;; Add fontspec to the parser. (TeX-auto-add-regexp LaTeX-fontspec-newfontcmd-regexp) ;; Activate the buffer local version of font features: (setq LaTeX-fontspec-font-features-local (copy-alist LaTeX-fontspec-font-features)) (TeX-add-symbols ;; 4.3 Commands for old-style and lining numbers: \oldstylenums is ;; already provided by LaTeX, so just add \liningnums here '("liningnums" "Numbers") ;; 4.5 Emphasis and nested emphasis ;; \emshape seems to be an internal macro "emshape" '("emfontdeclare" t) "emreset" ;; 4.6 Strong emphasis '("strong" t) '("strongfontdeclare" t) "strongreset" ;; 5 Font selection '("fontspec" LaTeX-fontspec-arg-font [TeX-arg-key-val LaTeX-fontspec-font-features-local "Font features"]) ;; Default font families '("setmainfont" (LaTeX-fontspec-arg-font "Main font name") [TeX-arg-key-val LaTeX-fontspec-font-features-local "Font features"]) '("setsansfont" (LaTeX-fontspec-arg-font "Sans font name") [TeX-arg-key-val LaTeX-fontspec-font-features-local "Font features"]) '("setmonofont" (LaTeX-fontspec-arg-font "Mono font name") [TeX-arg-key-val LaTeX-fontspec-font-features-local "Font features"]) ;; 5.3 Querying whether a font exists '("IfFontExistsTF" LaTeX-fontspec-arg-font 2) ;; 6 commands to select font families '("newfontfamily" TeX-arg-define-macro LaTeX-fontspec-arg-font [TeX-arg-key-val LaTeX-fontspec-font-features-local "Font features"]) '("newfontface" TeX-arg-define-macro LaTeX-fontspec-arg-font [TeX-arg-key-val LaTeX-fontspec-font-features-local "Font features"]) ;; 6.4 Math(s) fonts '("setmathrm" "Font name" [ "Font features" ]) '("setmathsf" "Font name" [ "Font features" ]) '("setmathtt" "Font name" [ "Font features" ]) '("setboldmathrm" "Font name" [ "Font features" ]) ;; 8 Default settings '("defaultfontfeatures" [ LaTeX-fontspec-arg-font ] (TeX-arg-key-val LaTeX-fontspec-font-features-local "Font features")) '("defaultfontfeatures+" [ LaTeX-fontspec-arg-font ] (TeX-arg-key-val LaTeX-fontspec-font-features-local "Font features")) ;; 10 Working with the currently selected features '("IfFontFeatureActiveTF" [TeX-arg-key-val LaTeX-fontspec-font-features-local "Font feature"] 2) ;; Changing the currently selected features '("addfontfeatures" (TeX-arg-key-val LaTeX-fontspec-font-features-local "Font features")) ;; 23 Defining new features '("newAATfeature" (TeX-arg-eval completing-read (TeX-argument-prompt optional nil "Existing feature") LaTeX-fontspec-font-features-local) "New option" 2) '("newopentypefeature" (TeX-arg-eval completing-read (TeX-argument-prompt optional nil "Existing feature") LaTeX-fontspec-font-features-local) "New option" t) '("newfontfeature" "New feature" t) ;; 24 Defining new scripts and languages '("newfontscript" "Script name" "OpenType tag") '("newfontlanguage" "Language name" "OpenType tag") ;; 26 Renaming existing features & options '("aliasfontfeature" (TeX-arg-eval completing-read (TeX-argument-prompt optional nil "Existing feature") LaTeX-fontspec-font-features-local) "New name") '("aliasfontfeatureoption" (TeX-arg-eval (lambda () (let* ((key (completing-read (TeX-argument-prompt optional nil "Feature") LaTeX-fontspec-font-features-local)) (val (completing-read (TeX-argument-prompt optional nil "Existing name") (cadr (assoc key LaTeX-fontspec-font-features-local))))) (TeX-argument-insert key optional) (format "%s" val)))) "New name") ) (LaTeX-add-environments ;; 4.6 Strong emphasis '("strong")) ;; Fontification (when (and (featurep 'font-latex) (eq TeX-install-font-lock 'font-latex-setup)) (font-latex-add-keywords '(("fontspec" "[{[") ("setmainfont" "[{[") ("setsansfont" "[{[") ("setmonofont" "[{[") ("newfontfamily" "\\[{[") ("newfontface" "\\[{[") ("setmathrm" "[{[") ("setmathsf" "[{[") ("setmathtt" "[{[") ("setboldmathrm" "[{[") ("defaultfontfeatures" "+[{") ("addfontfeature" "{") ("addfontfeatures" "{") ("newfontscript" "{{") ("newfontlanguage" "{{") ("emfontdeclare" "{") ("strongfontdeclare" "{") ("newAATfeature" "{{{{") ("newopentypefeature" "{{{") ("newfontfeature" "{{") ("aliasfontfeature" "{{") ("aliasfontfeatureoption" "{{{")) 'function) (font-latex-add-keywords '(("liningnums" "{")) 'type-command) (font-latex-add-keywords '(("strong" "{")) 'bold-command))) LaTeX-dialect) (defvar LaTeX-fontspec-package-options '("tuenc" "euenc" "math" "no-math" "config" "no-config" "quiet" "silent") "Package options for the fontspec package.") ;;; fontspec.el ends here auctex-11.91/style/footmisc.el000066400000000000000000000050501313533625700163330ustar00rootroot00000000000000;;; footmisc.el --- AUCTeX style for `footmisc.sty' ;; Copyright (C) 2011 Free Software Foundation, Inc. ;; Author: Mads Jensen ;; Created: 2011-04-08 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `footmisc.sty'. ;;; Code: (TeX-add-style-hook "footmisc" (lambda () (TeX-add-symbols '("DefineFNsymbols" "Name" [ "Style (text or math) " ] 1) '("DefineFNsymbols*" "Name" [ "Style (text or math)" ] 1) ;; These two commands define both text and math variants of the ;; footnote symbols '("DefineFNsymbolsTM" "Name" 1) '("DefineFNsymbolsTM*" "Name" 1) '("setfnsymbol" "Name") '("mpfootnoterule" TeX-arg-size) "pagefootnoterule" "splitfootnoterule" ;; The following command references a label inside in a footnote '("footref" TeX-arg-ref) "hangfootparskip" "hangfootparindent" "footnotehint" '("footnotemargin" TeX-arg-size) "mpfootnoterule" "multiplefootnotemarker" "multfootsep") (when (and (featurep 'font-latex) (eq TeX-install-font-lock 'font-latex-setup)) (font-latex-add-keywords '(("DefineFNsymbols" "{[{") ("DefineFNsymbols*" "{[{") ("DefineFNsymbolsTM" "{{") ("DefineFNsymbolsTM*" "{{") ("setfnsymbol" "{")) 'function) (font-latex-add-keywords '(("footnoteref")) 'reference))) LaTeX-dialect) (defvar LaTeX-footmisc-package-options '("perpage" "side" "ragged" "para" "symbol" "symbol*" "marginal" "flushmargin" "hang" "norule" "splitrule" "stable" "multiple") "Package options for the footmisc package.") ;;; footmisc.el ends here auctex-11.91/style/framed.el000066400000000000000000000027131313533625700157510ustar00rootroot00000000000000;;; framed.el --- AUCTeX style for `framed.sty' (v0.96) ;; Copyright (C) 2016 Free Software Foundation, Inc. ;; Author: Arash Esbati ;; Maintainer: auctex-devel@gnu.org ;; Created: 2016-06-26 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `framed.sty' (v0.96) from 2011/10/22. ;; `framed.sty' is part of TeXLive. ;;; Code: (TeX-add-style-hook "framed" (lambda () ;; env's defined by framed.sty (LaTeX-add-environments '("framed") '("oframed") '("shaded") '("shaded*") '("snugshade") '("snugshade*") '("leftbar") '("titled-frame" "Title"))) LaTeX-dialect) (defvar LaTeX-framed-package-options nil "Package options for the framed package.") ;;; framed.el ends here auctex-11.91/style/francais.el000066400000000000000000000025171313533625700163030ustar00rootroot00000000000000;;; francais.el --- AUCTeX style for the `francais' babel option. ;; Copyright (C) 2005 Free Software Foundation, Inc. ;; Author: Ralf Angeli ;; Maintainer: auctex-devel@gnu.org ;; Created: 2005-10-28 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; Set up AUCTeX for editing French text. In particular for commands ;; provided by the `francais' option of the `babel' LaTeX package. As ;; this is equivalent to the `frenchb' option, this file only loads ;; `frenchb.el'. ;;; Code: (TeX-add-style-hook "francais" (lambda () (TeX-run-style-hooks "frenchb")) LaTeX-dialect) ;;; francais.el ends here auctex-11.91/style/french.el000066400000000000000000000031711313533625700157570ustar00rootroot00000000000000;;; french.el --- AUCTeX style for the `french' babel option. ;; Copyright (C) 2010 Free Software Foundation, Inc. ;; Author: Ralf Angeli ;; Maintainer: auctex-devel@gnu.org ;; Created: 2010-03-20 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; Set up AUCTeX for editing French text in connection with the ;; `french' babel option. The file basically loads the style file for ;; the `frenchb' babel option. ;; ;; Support for the FrenchPro package by Bernard Gaulle is _not_ ;; included. If the presence of FrenchPro is detected, the `frenchb' ;; support is not loaded. ;;; Code: (TeX-add-style-hook "french" (lambda () (when (and (member "babel" TeX-active-styles) (not (member "frenchpro" TeX-active-styles)) (not (member "frenchle" TeX-active-styles)) (not (member "mlp" TeX-active-styles))) (TeX-run-style-hooks "frenchb"))) LaTeX-dialect) ;;; french.el ends here auctex-11.91/style/frenchb.el000066400000000000000000000044401313533625700161210ustar00rootroot00000000000000;;; frenchb.el --- AUCTeX style for the `frenchb' babel option. ;; Copyright (C) 2005 Free Software Foundation, Inc. ;; Author: Ralf Angeli ;; Maintainer: auctex-devel@gnu.org ;; Created: 2005-10-28 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; Set up AUCTeX for editing French text. In particular for commands ;; provided by the `frenchb' option of the `babel' LaTeX package. The ;; `frenchb' option is equivalent to the `francais' option and since ;; babel version 3.7j with the `french' option. `french', however, is ;; ambiguous because another package by that name made by Bernard ;; Gaulle could be loaded. In order to avoid this, either `frenchb' ;; (or `francais') or `frenchle' (or `frenchPRO') should be used. See ;; the documentation of `frenchb' at ;; . ;;; Code: (TeX-add-style-hook "frenchb" (lambda () (TeX-add-symbols "og" "fg" "up" "ier" "iere" "iers" "ieres" "ieme" "iemes" '("bsc" t) "primo" "secundo" "tertio" "quarto" "No" "no" "degre" "degres" "DecimalMathComma" "StandardMathComma" '("nombre" "Nombre") "ThinSpaceInFrenchNumbers" "FrenchLayout" "StandardLayout") (unless (eq (car TeX-quote-language) 'override) (setq TeX-quote-language `("french" "\\og " (lambda () (concat "\\fg" (unless (member "xspace" TeX-active-styles) "{}"))) ,TeX-quote-after-quote))) (run-hooks 'TeX-language-fr-hook)) LaTeX-dialect) ;;; frenchb.el ends here auctex-11.91/style/fvextra.el000066400000000000000000000110621313533625700161670ustar00rootroot00000000000000;;; fvextra.el --- AUCTeX style for `fvextra.sty' (v1.2.1) ;; Copyright (C) 2017 Free Software Foundation, Inc. ;; Author: Arash Esbati ;; Maintainer: auctex-devel@gnu.org ;; Created: 2017-03-05 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `fvextra.sty' (v1.2.1) from 2016/09/02. ;; `fvextra.sty' is part of TeXLive. ;;; Code: ;; Needed for compiling `pushnew': (eval-when-compile (require 'cl)) (defvar LaTeX-fvextra-key-val-options '(;; 3 General options ("curlyquotes" ("true" "false")) ("highlightcolor") ("highlightlines") ("linenos" ("true" "false")) ("mathescape" ("true" "false")) ("numberfirstline" ("true" "false")) ;; ("numbers" ("none" "left" "right" "both")) ("space" ("\\textvisiblespace")) ("spacecolor" ("none")) ("stepnumberfromfirst" ("true" "false")) ("stepnumberoffsetvalues" ("true" "false")) ("tab" ("\\FancyVerbTab")) ("tabcolor" ("none")) ;; 5.1 Line breaking options ("breakafter" ("none")) ("breakaftergroup" ("true" "false")) ("breakaftersymbolpre") ("breakaftersymbolpost") ("breakanywhere" ("true" "false")) ("breakanywheresymbolpre") ("breakanywheresymbolpost") ("breakautoindent" ("true" "false")) ("breakbefore") ("breakbeforegroup" ("true" "false")) ("breakbeforesymbolpre") ("breakbeforesymbolpost") ("breakindent") ("breaklines" ("true" "false")) ("breaksymbol") ("breaksymbolleft") ("breaksymbolright") ("breaksymbolindent") ("breaksymbolindentleft") ("breaksymbolindentright") ("breaksymbolsep") ("breaksymbolsepleft") ("breaksymbolsepright")) "Key=value options for fvextra macros and environments.") (defun LaTeX-fvextra-update-key-val () "Update `LaTeX-fancyvrb-key-val-options-local' with key=vals from \"fvextra.sty\"." ;; Delete the key "numbers" from `LaTeX-fancyvrb-key-val-options-local': (setq LaTeX-fancyvrb-key-val-options-local (assq-delete-all (car (assoc "numbers" LaTeX-fancyvrb-key-val-options-local)) LaTeX-fancyvrb-key-val-options-local)) ;; Add the key with "both" value: (add-to-list 'LaTeX-fancyvrb-key-val-options-local '("numbers" ("none" "left" "right" "both"))) ;; Add color values to resp. keys: (when (or (member "xcolor" (TeX-style-list)) (member "color" (TeX-style-list))) (let* ((colorcmd (if (member "xcolor" (TeX-style-list)) #'LaTeX-xcolor-definecolor-list #'LaTeX-color-definecolor-list)) (keys '("highlightcolor" "rulecolor" "fillcolor" "tabcolor" "spacecolor")) (tmp (copy-alist LaTeX-fancyvrb-key-val-options-local))) (dolist (x keys) (setq tmp (assq-delete-all (car (assoc x tmp)) tmp)) (if (string= x "highlightcolor") (pushnew (list x (mapcar #'car (funcall colorcmd))) tmp :test #'equal) (pushnew (list x (append '("none") (mapcar #'car (funcall colorcmd)))) tmp :test #'equal))) (setq LaTeX-fancyvrb-key-val-options-local (copy-alist tmp))))) (add-hook 'TeX-auto-cleanup-hook #'LaTeX-fvextra-update-key-val t) (add-hook 'TeX-update-style-hook #'TeX-auto-parse t) (TeX-add-style-hook "fvextra" (lambda () ;; Run the style hook for "fancyvrb" (TeX-run-style-hooks "fancyvrb") ;; Append `LaTeX-fvextra-key-val' to `LaTeX-fancyvrb-key-val-options-local': (setq LaTeX-fancyvrb-key-val-options-local (append LaTeX-fvextra-key-val-options LaTeX-fancyvrb-key-val-options-local)) (TeX-add-symbols ;; 4.1 Line and text formatting "FancyVerbFormatText" ;; 5.3.2 Breaks within macro arguments "FancyVerbBreakStart" "FancyVerbBreakStop" ;; 5.3.3 Customizing break behavior "FancyVerbBreakAnywhereBreak" "FancyVerbBreakBeforeBreak" "FancyVerbBreakAfterBreak")) LaTeX-dialect) (defvar LaTeX-fvextra-package-options nil "Package options for the fvextra package.") ;;; fvextra.el ends here auctex-11.91/style/geometry.el000066400000000000000000000137251313533625700163530ustar00rootroot00000000000000;;; geometry.el --- AUCTeX style for `geometry.sty' (v5.6) ;; Copyright (C) 2015 Free Software Foundation, Inc. ;; Author: Arash Esbati ;; Maintainer: auctex-devel@gnu.org ;; Created: 2015-02-21 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `geometry.sty' (v5.6) from 2010/09/12. ;; `geometry.sty' is part of TeXLive. ;;; Code: (defvar LaTeX-geometry-always-key-val-options '(("layout") ("layoutwidth") ("layoutheight") ("layoutsize") ("layouthoffset") ("layoutvoffset") ("layoutoffset") ("hscale") ("vscale") ("scale") ("width") ("totalwidth") ("height") ("totalheight") ("total") ("textwidth") ("textheight") ("text") ("body") ("lines") ("includehead") ("includefoot") ("includeheadfoot") ("includemp") ("includeall") ("ignorehead") ("ignorefoot") ("ignoreheadfoot") ("ignoremp") ("ignoreall") ("heightrounded") ("hdivide") ("vdivide") ("divide") ("left") ("lmargin") ("inner") ("right") ("rmargin") ("outer") ("top") ("tmargin") ("bottom") ("bmargin") ("hmargin") ("vmargin") ("margin") ("hmarginratio") ("vmarginratio") ("marginratio") ("ratio") ("hcentering") ("vcentering") ("centering") ("twoside") ("asymmetric") ("bindingoffset") ("hdivide") ("vdivide") ("divide") ("headheight") ("head") ("headsep") ("footskip") ("foot") ("nohead") ("nofoot") ("noheadfoot") ("footnotesep") ("marginparwidth") ("marginpar") ("marginparsep") ("nomarginpar") ("columnsep") ("hoffset") ("voffset") ("offset") ("twocolumn") ("onecolumn") ("twoside") ("textwidth") ("textheight") ("reversemp") ("reversemarginpar")) "Key=value options always available for geometry macros.") (defvar LaTeX-geometry-preamble-key-val-options '(("paper" ("a0paper" "a1paper" "a2paper" "a3paper" "a4paper" "a5paper" "a6paper" "b0paper" "b1paper" "b2paper" "b3paper" "b4paper" "b5paper" "b6paper" "c0paper" "c1paper" "c2paper" "c3paper" "c4paper" "c5paper" "c6paper" "b0j" "b1j" "b2j" "b3j" "b4j" "b5j" "b6j" "ansiapaper" "ansibpaper" "ansicpaper" "ansidpaper" "ansiepaper" "ansiapaper" "ansibpaper" "ansicpaper" "ansidpaper" "ansiepaper")) ("papername" ("a0paper" "a1paper" "a2paper" "a3paper" "a4paper" "a5paper" "a6paper" "b0paper" "b1paper" "b2paper" "b3paper" "b4paper" "b5paper" "b6paper" "c0paper" "c1paper" "c2paper" "c3paper" "c4paper" "c5paper" "c6paper" "b0j" "b1j" "b2j" "b3j" "b4j" "b5j" "b6j" "ansiapaper" "ansibpaper" "ansicpaper" "ansidpaper" "ansiepaper" "ansiapaper" "ansibpaper" "ansicpaper" "ansidpaper" "ansiepaper")) ("a0paper") ("a1paper") ("a2paper") ("a3paper") ("a4paper") ("a5paper") ("a6paper") ("b0paper") ("b1paper") ("b2paper") ("b3paper") ("b4paper") ("b5paper") ("b6paper") ("c0paper") ("c1paper") ("c2paper") ("c3paper") ("c4paper") ("c5paper") ("c6paper") ("b0j") ("b1j") ("b2j") ("b3j") ("b4j") ("b5j") ("b6j") ("ansiapaper") ("ansibpaper") ("ansicpaper") ("ansidpaper") ("ansiepaper") ("ansiapaper") ("ansibpaper") ("ansicpaper") ("ansidpaper") ("ansiepaper") ("screen") ("paperwidth") ("paperheight") ("papersize") ("landscape") ("portrait") ("driver" ("dvips" "dvipdfm" "pdftex" "vtex" "xetex" "auto" "none")) ("dvips") ("dvipdfm") ("pdftex") ("xetex") ("vtex") ("verbose") ("reset") ("mag") ("truedimen") ("pass") ("showframe") ("showcrop")) "Key=value options allowed only in the preamble for geometry macros.") ;; Needed for auto-parsing. (require 'tex) ;; Setup for \savegeometry: (TeX-auto-add-type "geometry-savegeometry" "LaTeX" "geometry-savegeometries") (defvar LaTeX-geometry-savegeometry-regexp '("\\\\savegeometry{\\([^}]+\\)}" 1 LaTeX-auto-geometry-savegeometry) "Matches the argument of `\\savegeometry' from `geometry' package.") (defun LaTeX-geometry-auto-prepare () "Clear `LaTeX-auto-geometry-savegeometry' before parsing." (setq LaTeX-auto-geometry-savegeometry nil)) (add-hook 'TeX-auto-prepare-hook #'LaTeX-geometry-auto-prepare t) (add-hook 'TeX-update-style-hook #'TeX-auto-parse t) (TeX-add-style-hook "geometry" (lambda () ;; Add geometry to the parser. (TeX-auto-add-regexp LaTeX-geometry-savegeometry-regexp) ;; geometry commands: (TeX-add-symbols '("geometry" (TeX-arg-eval TeX-read-key-val nil (append LaTeX-geometry-preamble-key-val-options LaTeX-geometry-always-key-val-options))) '("newgeometry" (TeX-arg-key-val LaTeX-geometry-always-key-val-options)) '("restoregeometry" 0) '("savegeometry" (TeX-arg-eval (lambda () (let ((name (TeX-read-string "Name: "))) (LaTeX-add-geometry-savegeometries name) (format "%s" name))))) '("loadgeometry" (TeX-arg-eval (lambda () (completing-read "Name: " (LaTeX-geometry-savegeometry-list)))))) ;; Fontification (when (and (featurep 'font-latex) (eq TeX-install-font-lock 'font-latex-setup)) (font-latex-add-keywords '(("geometry" "{") ("newgeometry" "{") ("savegeometry" "{") ("loadgeometry" "{")) 'function))) LaTeX-dialect) (defun LaTeX-geometry-package-options () "Prompt for package options for the geometry package." (TeX-read-key-val t (append LaTeX-geometry-preamble-key-val-options LaTeX-geometry-always-key-val-options))) ;;; geometry.el ends here auctex-11.91/style/german.el000066400000000000000000000033411313533625700157620ustar00rootroot00000000000000;;; german.el --- Setup AUCTeX for editing German text. ;;; Commentary: ;; ;; Cater for some specialities of `(n)german.sty', e.g. special quote ;; and hyphen strings or that `"' makes the following letter an ;; umlaut. ;;; Code: (defvar LaTeX-german-mode-syntax-table (copy-syntax-table LaTeX-mode-syntax-table) "Syntax table used in LaTeX mode when using `german.sty'.") (modify-syntax-entry ?\" "w" LaTeX-german-mode-syntax-table) (TeX-add-style-hook "german" (lambda () (set-syntax-table LaTeX-german-mode-syntax-table) ;; XXX: Handle former customizations of the now defunct ;; German-specific variables. References to the respective ;; variables are to be deleted in future versions. (now = 2005-04-01) (unless (eq (car TeX-quote-language) 'override) (let ((open-quote (if (and (boundp 'LaTeX-german-open-quote) LaTeX-german-open-quote) LaTeX-german-open-quote "\"`")) (close-quote (if (and (boundp 'LaTeX-german-close-quote) LaTeX-german-close-quote) LaTeX-german-close-quote "\"'")) (q-after-q (if (and (boundp 'LaTeX-german-quote-after-quote) LaTeX-german-quote-after-quote) LaTeX-german-quote-after-quote t))) (setq TeX-quote-language `("german" ,open-quote ,close-quote ,q-after-q)))) (setq LaTeX-babel-hyphen-language "german") ;; Fontification of quotation marks. (when (and (eq TeX-install-font-lock 'font-latex-setup) (featurep 'font-latex)) (font-latex-add-quotes '("\"`" "\"'")) (font-latex-add-quotes '("\">" "\"<" german)) ;; Prevent "| from leading to color bleed. (font-latex-add-to-syntax-alist (list (cons ?\" "\\")))) (run-hooks 'TeX-language-de-hook)) LaTeX-dialect) ;;; german.el ends here auctex-11.91/style/gloss-italian.el000066400000000000000000000045171313533625700172650ustar00rootroot00000000000000;;; gloss-italian.el --- Italian support for polyglossia package. ;; Copyright (C) 2015 Free Software Foundation, Inc. ;; Maintainer: auctex-devel@gnu.org ;; Author: Mosè Giordano ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This is based on italian.el style file, adapted to polyglossia package. ;;; Code: (defvar TeX-language-it-hook nil "Hook run for Italian texts.") (TeX-add-style-hook "gloss-italian" (lambda () (TeX-add-symbols '("textitalian" [TeX-arg-key-val LaTeX-polyglossia-italian-options-list] t)) (LaTeX-add-environments '("italian" LaTeX-env-args [TeX-arg-key-val LaTeX-polyglossia-italian-options-list])) (when (or (LaTeX-polyglossia-lang-option-member "italian" "babelshorthands=true") (LaTeX-polyglossia-lang-option-member "italian" "babelshorthands")) (unless (eq (car TeX-quote-language) 'override) (let ((open-quote (if (and (boundp 'LaTeX-italian-open-quote) LaTeX-italian-open-quote) LaTeX-italian-open-quote "\"<")) (close-quote (if (and (boundp 'LaTeX-italian-close-quote) LaTeX-italian-close-quote) LaTeX-italian-close-quote "\">"))) (setq TeX-quote-language `("italian" ,open-quote ,close-quote ,TeX-quote-after-quote)))) ;; Fontification of quotation marks. (when (fboundp 'font-latex-add-quotes) (font-latex-add-quotes '("\"<" "\">" french)))) (run-hooks 'TeX-language-it-hook)) LaTeX-dialect) (defvar LaTeX-polyglossia-italian-options-list '(("babelshorthands" ("true" "false"))) "Italian language options for the polyglossia package.") ;;; gloss-italian.el ends here auctex-11.91/style/graphics.el000066400000000000000000000004321313533625700163070ustar00rootroot00000000000000;;; graphics.el --- Handle graphical commands in LaTeX 2e. ;;; Code: (TeX-add-style-hook "graphics" (function (lambda () (TeX-run-style-hooks "graphicx") (setq LaTeX-graphics-package-options LaTeX-graphicx-package-options))) LaTeX-dialect) ;;; graphics.el ends here. auctex-11.91/style/graphicx.el000066400000000000000000000232441313533625700163220ustar00rootroot00000000000000;;; graphicx.el --- AUCTeX style file for graphicx.sty ;; Copyright (C) 2000, 2004, 2005, 2014--2017 by Free Software Foundation, Inc. ;; Author: Ryuichi Arafune ;; Created: 1999/3/20 ;; Keywords: tex ;; This file is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; This file is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to ;; the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Commentary: ;; This package supports the includegraphcics macro in graphicx style. ;; Acknowledgements ;; Dr. Thomas Baumann ;; David Kastrup ;; Masayuki Akata ;;; Code: (defvar LaTeX-graphicx-key-val-options '(("bb") ("bbllx") ("bblly") ("bburx") ("bbury") ("natheight") ("natwidth") ("viewport") ("trim") ("hiresbb" ("true" "false")) ("angle") ("origin") ("width" ("\\textwidth" "\\columnwidth" "\\linewidth")) ("height" ("\\textheight")) ("totalheight" ("\\textheight")) ("keepaspectratio" ("true" "false")) ("scale") ("clip" ("true" "false")) ("draft" ("true" "false")) ("quiet") ("interpolate" ("true" "false"))) "Key=value options for graphicx macros.") (defvar LaTeX-includegraphics-dvips-extensions '("eps" "mps" "EPS") "List of extensions for image files supported by \"dvips\".") (defvar LaTeX-includegraphics-pdftex-extensions '("png" "pdf" "jpe?g" "jbig2" "jb2" "mps" "PNG" "PDF" "JPE?G" "JBIG2" "JB2") "List of extensions for image files supported by \"pdftex\" and \"luatex\".") (defvar LaTeX-includegraphics-xetex-extensions '("pdf" "eps" "mps" "ps" "png" "jpe?g" "jp2" "jpf" "PDF" "EPS" "MPS" "PS" "PNG" "JPE?G" "JP2" "JPF" "bmp" "pict" "psd" "mac" "tga" "gif" "tif" "tiff" "BMP" "PICT" "PSD" "MAC" "TGA" "GIF" "TIF" "TIFF") "List of extensions for image files supported by \"xetex\".") (defun LaTeX-arg-graphicx-includegraphics-key-val (optional) "Insert key-val for optional argument of \\includegraphics macro. If OPTIONAL is non-nil, insert argument in square brackets. Temporarily remove \"space\" from `crm-local-completion-map' and `minibuffer-local-completion-map' in order to be able to insert spaces conveniently. If `TeX-engine' is set to symbol 'default (while `TeX-PDF-from-DVI' is set to nil) or 'luatex and `TeX-PDF-mode' is non-nil, add the keys \"page\" and \"pagebox\" to list of key-val's." (let ((crm-local-completion-map (remove (assoc 32 crm-local-completion-map) crm-local-completion-map)) (minibuffer-local-completion-map (remove (assoc 32 minibuffer-local-completion-map) minibuffer-local-completion-map))) (TeX-argument-insert (TeX-read-key-val optional (if (and (or (and (eq TeX-engine 'default) (not (TeX-PDF-from-DVI))) (eq TeX-engine 'luatex)) TeX-PDF-mode) (append '(("page") ("pagebox" ("mediabox" "cropbox" "bleedbox" "trimbox" "artbox"))) LaTeX-graphicx-key-val-options) LaTeX-graphicx-key-val-options)) optional))) (defun LaTeX-includegraphics-extensions (&optional list) "Return appropriate extensions for input files to \\includegraphics." (let* ((temp (copy-sequence LaTeX-includegraphics-extensions)) (LaTeX-includegraphics-extensions (cond (;; 'default TeX-engine: (if (and (eq TeX-engine 'default) ;; we want to produce a pdf (if TeX-PDF-mode ;; Return t if default compiler produces PDF, ;; nil for "Dvips" or "Dvipdfmx" (not (TeX-PDF-from-DVI)) ;; t if pdftex is used in dvi-mode TeX-DVI-via-PDFTeX)) ;; We're using pdflatex in pdf-mode (delete-dups (append LaTeX-includegraphics-pdftex-extensions LaTeX-includegraphics-extensions)) ;; We're generating a .dvi to process with dvips or dvipdfmx (progn (dolist (x '("jpe?g" "pdf" "png")) (setq temp (remove x temp))) (delete-dups (append LaTeX-includegraphics-dvips-extensions temp))))) ;; Running luatex in pdf or dvi-mode: ((eq TeX-engine 'luatex) (if TeX-PDF-mode (delete-dups (append LaTeX-includegraphics-pdftex-extensions LaTeX-includegraphics-extensions)) (progn (dolist (x '("jpe?g" "pdf" "png")) (setq temp (remove x temp))) (delete-dups (append LaTeX-includegraphics-dvips-extensions temp))))) ;; Running xetex in any mode: ((eq TeX-engine 'xetex) (delete-dups (append LaTeX-includegraphics-xetex-extensions LaTeX-includegraphics-extensions))) ;; For anything else (t LaTeX-includegraphics-extensions)))) (concat "\\." (mapconcat 'identity (or list LaTeX-includegraphics-extensions) "$\\|\\.") "$"))) (defun LaTeX-includegraphics-read-file-TeX () "Read image file for \\includegraphics. Offers all graphic files found in the TeX search path. See `LaTeX-includegraphics-read-file' for more." (completing-read "Image file: " (TeX-delete-dups-by-car (mapcar 'list (TeX-search-files nil LaTeX-includegraphics-extensions t t))) nil nil nil)) (defun LaTeX-includegraphics-read-file-relative () "Read image file for \\includegraphics. Lists all graphic files in the master directory and its subdirectories and inserts the relative file name. This option doesn't works with Emacs 21.3 or XEmacs. See `LaTeX-includegraphics-read-file' for more." (file-relative-name (read-file-name "Image file: " nil nil nil nil ;; FIXME: Emacs 21.3 and XEmacs 21.4.15 dont have PREDICATE as the sixth ;; argument (Emacs 21.3: five args; XEmacs 21.4.15: sixth is HISTORY). (lambda (fname) (or (file-directory-p fname) (string-match (LaTeX-includegraphics-extensions) fname)))) (TeX-master-directory))) (defun LaTeX-arg-includegraphics (_prefix) "Ask for mandantory argument for the \\includegraphics command." (let* ((image-file (funcall LaTeX-includegraphics-read-file))) (TeX-insert-braces 0) (insert (if LaTeX-includegraphics-strip-extension-flag ;; We don't have `replace-regexp-in-string' in all (X)Emacs versions: (with-temp-buffer (insert image-file) (goto-char (point-max)) (when (search-backward-regexp (LaTeX-includegraphics-extensions) nil t 1) (replace-match "")) (buffer-string)) image-file)))) (TeX-add-style-hook "graphicx" (lambda () (TeX-add-symbols '("reflectbox" "Argument") '("resizebox" (TeX-arg-eval completing-read (TeX-argument-prompt optional nil "Width") (append '("\\width" "!") (mapcar (lambda (x) (concat TeX-esc (car x))) (LaTeX-length-list)))) (TeX-arg-eval completing-read (TeX-argument-prompt optional nil "Height") (append '("\\height" "\\totalheight" "\\depth" "!") (mapcar (lambda (x) (concat TeX-esc (car x))) (LaTeX-length-list)))) "Argument") '("resizebox*" (TeX-arg-eval completing-read (TeX-argument-prompt optional nil "Width") (append '("\\width" "!") (mapcar (lambda (x) (concat TeX-esc (car x))) (LaTeX-length-list)))) (TeX-arg-eval completing-read (TeX-argument-prompt optional nil "Height") (append '("\\height" "\\totalheight" "\\depth" "!") (mapcar (lambda (x) (concat TeX-esc (car x))) (LaTeX-length-list)))) "Argument") '("rotatebox" (TeX-arg-conditional (member "graphics" (TeX-style-list)) () ([ TeX-arg-key-val (("x") ("y") ("origin") ("units")) ])) "Angle" "Argument") '("scalebox" "Horizontal scale" [ "Vertical scale" ] "Argument") '("includegraphics" (TeX-arg-conditional (member "graphics" (TeX-style-list)) (["llx,lly"] ["urx,ury"]) ([ LaTeX-arg-graphicx-includegraphics-key-val ])) LaTeX-arg-includegraphics) '("includegraphics*" (TeX-arg-conditional (member "graphics" (TeX-style-list)) (["llx,lly"] ["urx,ury"]) ([ LaTeX-arg-graphicx-includegraphics-key-val ])) LaTeX-arg-includegraphics) '("graphicspath" t) '("DeclareGraphicsExtensions" t) '("DeclareGraphicsRule" 4)) ;; Fontification (when (and (featurep 'font-latex) (eq TeX-install-font-lock 'font-latex-setup)) (font-latex-add-keywords '(("reflectbox" "{") ("resizebox" "*{{{") ("rotatebox" "[{{") ("scalebox" "{[{")) 'textual) (font-latex-add-keywords '(("includegraphics" "*[[{")) 'reference) (font-latex-add-keywords '(("graphicspath" "{") ("DeclareGraphicsExtensions" "{") ("DeclareGraphicsRule" "{{{{")) 'function))) LaTeX-dialect) (defvar LaTeX-graphicx-package-options '("draft" "final" "debugshow" "hiderotate" "hidescale" "hiresbb" "setpagesize" "nosetpagesize" "demo" "dvips" "xdvi" "dvipdf" "dvipdfm" "dvipdfmx" "xetex" "pdftex" "luatex" "dvisvgm" "dvipsone" "dviwindo" "emtex" "dviwin" "oztex" "textures" "pctexps" "pctexwin" "pctexhp" "pctex32" "truetex" "tcidvi" "vtex") "Package options for the graphicx package.") ;;; graphicx.el ends here auctex-11.91/style/harvard.el000066400000000000000000000111531313533625700161400ustar00rootroot00000000000000;;; harvard.el --- Support for Harvard Citation style package for AUCTeX. ;; Copyright (C) 1994, 1997, 2005, 2012, 2014 Free Software Foundation, Inc. ;; Author: Berwin Turlach ;; Maintainer: auctex-devel@gnu.org ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Code: (TeX-add-style-hook "harvard" #'(lambda () (LaTeX-add-environments '("thebibliography" LaTeX-env-harvardbib ignore)) (TeX-add-symbols "harvardand" '("citeasnoun" (TeX-arg-conditional TeX-arg-cite-note-p ([ "Note" ]) nil) TeX-arg-cite) '("possessivecite" (TeX-arg-conditional TeX-arg-cite-note-p ([ "Note" ]) nil) TeX-arg-cite) '("citeaffixed" (TeX-arg-conditional TeX-arg-cite-note-p ([ "Note" ]) nil) TeX-arg-cite "Affix") '("citeyear" (TeX-arg-conditional TeX-arg-cite-note-p ([ "Note" ]) nil) TeX-arg-cite) '("citename" (TeX-arg-conditional TeX-arg-cite-note-p ([ "Note" ]) nil) TeX-arg-cite) '("citationstyle" (TeX-arg-eval completing-read "Citation style: " '(("agsm") ("dcu")))) '("citationmode" (TeX-arg-eval completing-read "Citation mode: " '(("full") ("abbr") ("default")))) '("harvardparenthesis" (TeX-arg-eval completing-read "Harvardparenthesis: " '(("round") ("curly") ("angle") ("square")))) '("bibliographystyle" (TeX-arg-eval completing-read "Bibliography style: " '(("agsm") ("apsr") ("dcu") ("jmr") ("jphysicsB") ("kluwer") ("nederlands") ("econometrica"))) ignore) '("harvarditem" [ "Short citation" ] "Complete citation" "Year" TeX-arg-define-cite)) (setq TeX-complete-list (append '(("\\\\citeasnoun\\[[^]\n\r\\%]*\\]{\\([^{}\n\r\\%,]*\\)" 1 LaTeX-bibitem-list "}") ("\\\\citeasnoun{\\([^{}\n\r\\%,]*\\)" 1 LaTeX-bibitem-list "}") ("\\\\possessivecite\\[[^]\n\r\\%]*\\]{\\([^{}\n\r\\%,]*\\)" 1 LaTeX-bibitem-list "}") ("\\\\possessivecite{\\([^{}\n\r\\%,]*\\)" 1 LaTeX-bibitem-list "}") ("\\\\citename\\[[^]\n\r\\%]*\\]{\\([^{}\n\r\\%,]*\\)" 1 LaTeX-bibitem-list "}") ("\\\\citename{\\([^{}\n\r\\%,]*\\)" 1 LaTeX-bibitem-list "}") ("\\\\citeaffixed\\[[^]\n\r\\%]*\\]{\\([^{}\n\r\\%,]*\\)" 1 LaTeX-bibitem-list "}") ("\\\\citeaffixed{\\([^{}\n\r\\%,]*\\)" 1 LaTeX-bibitem-list "}") ("\\\\citeaffixed{\\([^{}\n\r\\%]*,\\)\\([^{}\n\r\\%,]*\\)" 2 LaTeX-bibitem-list) ("\\\\citeyear\\[[^]\n\r\\%]*\\]{\\([^{}\n\r\\%,]*\\)" 1 LaTeX-bibitem-list "}") ("\\\\citeyear{\\([^{}\n\r\\%,]*\\)" 1 LaTeX-bibitem-list "}") ("\\\\citeyear{\\([^{}\n\r\\%]*,\\)\\([^{}\n\r\\%,]*\\)" 2 LaTeX-bibitem-list)) TeX-complete-list)) (setq LaTeX-auto-regexp-list (append '(("\\\\harvarditem{\\([a-zA-Z][^%#'()={}]*\\)}{\\([0-9][^, %\"#'()={}]*\\)}{\\([a-zA-Z][^, %\"#'()={}]*\\)}" 3 LaTeX-auto-bibitem) ("\\\\harvarditem\\[[^][\n\r]+\\]{\\([a-zA-Z][^%#'()={}]*\\)}{\\([0-9][^, %\"#'()={}]*\\)}{\\([a-zA-Z][^, %\"#'()={}]*\\)}" 3 LaTeX-auto-bibitem) ) LaTeX-auto-regexp-list)) (setq LaTeX-item-list (cons '("thebibliography" . LaTeX-item-harvardbib) LaTeX-item-list)) ;; Tell RefTeX (when (and LaTeX-reftex-cite-format-auto-activate (fboundp 'reftex-set-cite-format)) (reftex-set-cite-format 'harvard))) LaTeX-dialect) (defun LaTeX-env-harvardbib (environment &optional _ignore) "Insert ENVIRONMENT with label for harvarditem." (LaTeX-insert-environment environment (concat TeX-grop "xx" TeX-grcl)) (end-of-line 0) (delete-char 1) (delete-horizontal-space) (LaTeX-insert-item)) ;; Analog to LaTeX-item-bib from latex.el (defun LaTeX-item-harvardbib () "Insert a new harvarditem." (TeX-insert-macro "harvarditem")) (defvar LaTeX-harvard-package-options '("full" "abbr" "default" "agsmcite" "dcucite" "round" "curly" "angle" "square" "none") "Package options for the harvard package.") ;; harvard.el ends here auctex-11.91/style/hologo.el000066400000000000000000000140141313533625700157770ustar00rootroot00000000000000;;; hologo.el --- AUCTeX style for `hologo.sty' (v1.10) ;; Copyright (C) 2015 Free Software Foundation, Inc. ;; Author: Arash Esbati ;; Maintainer: auctex-devel@gnu.org ;; Created: 2015-10-31 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `hologo.sty' (v1.10) from 2012/04/26. ;; `hologo.sty' is part of TeXLive. ;;; Code: (defvar LaTeX-hologo-logo-names '("(La)TeX" "AmSLaTeX" "AmSTeX" "biber" "BibTeX" "BibTeX8" "ConTeXt" "emTeX" "eTeX" "ExTeX" "HanTheThanh" "iniTeX" "KOMAScript" "La" "LaTeX" "LaTeX2e" "LaTeX3" "LaTeXe" "LaTeXML" "LaTeXTeX" "LuaLaTeX" "LuaTeX" "LyX" "METAFONT" "MetaFun" "METAPOST" "MetaPost" "MiKTeX" "NTS" "OzMF" "OzMP" "OzTeX" "OzTtH" "PCTeX" "pdfTeX" "pdfLaTeX" "PiC" "PiCTeX" "plainTeX" "SageTeX" "SLiTeX" "SliTeX" "teTeX" "TeX" "TeX4ht" "TTH" "virTeX" "VTeX" "Xe" "XeLaTeX" "XeTeX") "List of logos provided by \"hologo.sty\".") (defvar LaTeX-hologo-key-val-options-global '(("break" ("true" "false")) ("hyphenbreak" ("true" "false")) ("spacebreak" ("true" "false")) ("discretionarybreak" ("true" "false"))) "Global key=value options for hologo macros.") (defvar LaTeX-hologo-key-val-options-local '(("variant" ("sf" "sc" ; BibTeX "lift" ; SliTeX "narrow" "simple" ; SliTeX, ConTeXt "space" "hyphen" "runtogether"))) ; plainTeX "Local key=value options for hologo macros.") (TeX-add-style-hook "hologo" (lambda () (TeX-add-symbols ;; Insert logo macros '("hologo" (TeX-arg-eval completing-read "Logo name: " LaTeX-hologo-logo-names)) '("Hologo" (TeX-arg-eval completing-read "Logo name: " LaTeX-hologo-logo-names)) ;; Setup macros '("hologoSetup" (TeX-arg-key-val LaTeX-hologo-key-val-options-global)) '("hologoLogoSetup" (TeX-arg-eval (lambda () (let* ((logo (completing-read "Logo name: " LaTeX-hologo-logo-names)) (keyval (TeX-read-key-val nil (cond ((string= logo "BibTeX") (append '(("variant" ("sf" "sc"))) LaTeX-hologo-key-val-options-global)) ((string= logo "ConTeXt") (append '(("variant" ("narrow" "simple"))) LaTeX-hologo-key-val-options-global)) ((string= logo "plainTeX") (append '(("variant" ("space" "hyphen" "runtogether"))) LaTeX-hologo-key-val-options-global)) ((or (string= logo "SLiTeX") (string= logo "SliTeX")) (append '(("variant" ("lift" "narrow" "lift"))) LaTeX-hologo-key-val-options-global)) (t LaTeX-hologo-key-val-options-global))))) (TeX-argument-insert logo optional) (format "%s" keyval))))) '("hologoDriverSetup" (TeX-arg-eval completing-read "Driver: " '("pdftex" "luatex" "dvipdfm" "dvipdfmx" "dvips" "dvipsone" "xdvi" "xetex" "vtex" "driverfallback"))) '("hologoFontSetup" (TeX-arg-key-val (("general") ("bibsf") ("rm") ("sc") ("sf") ("sy") ("logo")))) '("hologoLogoFontSetup" (TeX-arg-eval (lambda () (let* ((logo (completing-read "Logo name: " '("BibTeX" "ExTeX" "SliTeX" "AmS" "NTS" "KOMAScript" "METAFONT" "METAPOST"))) (keyval (TeX-read-key-val nil (cond ((string= logo "BibTeX") '(("bibsf") ("sc"))) ((string= logo "ExTeX") '(("rm") ("sy"))) ((string= logo "SliTeX") '(("rm") ("sc"))) ((or (string= logo "AmS") (string= logo "NTS")) '(("sy"))) ((string= logo "KOMAScript") '(("sf"))) ((or (string= logo "METAFONT") (string= logo "METAPOST")) '(("logo"))) (t nil))))) (TeX-argument-insert logo optional) (format "%s" keyval))))) ;; Additional user macros '("hologoVariant" (TeX-arg-eval completing-read "Logo name: " LaTeX-hologo-logo-names) (TeX-arg-eval (lambda () (let ((setup (TeX-read-key-val nil (append LaTeX-hologo-key-val-options-local LaTeX-hologo-key-val-options-global)))) (format "%s" setup))))) '("HologoVariant" (TeX-arg-eval completing-read "Logo name: " LaTeX-hologo-logo-names) (TeX-arg-eval (lambda () (let ((setup (TeX-read-key-val nil (append LaTeX-hologo-key-val-options-local LaTeX-hologo-key-val-options-global)))) (format "%s" setup))))) '("hologoList" 0) '("hologoEntry" "Logo name" "Variant" "Since")) ;; Fontification (when (and (featurep 'font-latex) (eq TeX-install-font-lock 'font-latex-setup)) (font-latex-add-keywords '(("hologo" "{") ("Hologo" "{")) 'textual) (font-latex-add-keywords '(("hologoSetup" "{") ("hologoLogoSetup" "{{") ("hologoDriverSetup" "{") ("hologoFontSetup" "{") ("hologoLogoFontSetup" "{{") ("hologoVariant" "{{") ("HologoVariant" "{{") ("hologoList" "") ("hologoEntry" "{{{")) 'function))) LaTeX-dialect) (defvar LaTeX-hologo-package-options nil "Package options for the hologo package.") ;;; hologo.el ends here auctex-11.91/style/hyperref.el000066400000000000000000000255311313533625700163420ustar00rootroot00000000000000;;; hyperref.el --- AUCTeX style for `hyperref.sty' v6.83m ;; Copyright (C) 2008, 2013--2016 Free Software Foundation, Inc. ;; Author: Ralf Angeli ;; Maintainer: auctex-devel@gnu.org ;; Created: 2008-06-21 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for the hyperref package. ;;; Code: (defvar LaTeX-hyperref-package-options-list '(;; See http://www.tug.org/applications/hyperref/manual.html#x1-40003 ;; General options ("draft" ("true" "false")) ("final" ("true" "false")) ("debug" ("true" "false")) ("verbose" ("true" "false")) ("implicit" ("true" "false")) ("setpagesize" ("true" "false")) ;; Options for destination names ("destlabel" ("true" "false")) ("hypertexnames" ("true" "false")) ("naturalnames" ("true" "false")) ("plainpages" ("true" "false")) ;; Configuration options ("raiselinks" ("true" "false")) ("breaklinks" ("true" "false")) ("pageanchor" ("true" "false")) ("nesting" ("true" "false")) ;; Backend drivers ("driverfallback") ("dvipdfm") ("dvipdfmx") ("dvips") ("dvipsone") ("dviwindo") ("hypertex") ("latex2html") ("nativepdf") ("pdfmark") ("pdftex") ("ps2pdf") ("tex4ht") ("textures") ("vtex") ("vtexpdfmark") ("xetex") ;; Extension options ("extension") ("hyperfigures" ("true" "false")) ("backref" ("section" "slide" "page" "none" "false")) ("pagebackref" ("true" "false")) ("hyperindex" ("true" "false")) ("hyperfootnotes" ("true" "false")) ("encap") ("linktocpage" ("true" "false")) ("breaklinks" ("true" "false")) ("colorlinks" ("true" "false")) ("linkcolor") ("anchorcolor") ("citecolor") ("filecolor") ("menucolor") ("runcolor") ("urlcolor") ("allcolors") ("frenchlinks" ("true" "false")) ("hidelinks") ;; PDF-specific display options ("bookmarks" ("true" "false")) ("bookmarksopen" ("true" "false")) ("bookmarksopenlevel") ("bookmarksnumbered" ("true" "false")) ("bookmarkstype") ("CJKbookmarks" ("true" "false")) ("pdfhighlight" ("/I" "/N" "/O" "/P")) ("citebordercolor") ("filebordercolor") ("linkbordercolor") ("menubordercolor") ("runbordercolor") ("urlbordercolor") ("allbordercolors") ("pdfborder") ;; PDF display and information options ("baseurl") ("pdfpagemode" ("UseOutlines" "UseThumbs" "FullScreen" "UseOC" "UseAttachments")) ("pdftitle") ("pdfauthor") ("pdfsubject") ("pdfcreator") ("pdfproducer") ("pdfkeywords") ("pdftrapped" ("True" "False" "Unknown")) ("pdfinfo") ("pdfview" ("XYZ" "Fit" "FitH" "FitV" "FitR" "FitB" "FitBH" "FitBV")) ("pdfstartpage") ("pdfstartview" ("XYZ" "Fit" "FitH" "FitV" "FitR" "FitB" "FitBH" "FitBV")) ("pdfremotestartview" ("XYZ" "Fit" "FitH" "FitV" "FitR" "FitB" "FitBH" "FitBV")) ("pdfpagescrop") ("pdfcenterwindow" ("true" "false")) ("pdfdirection" ("L2R" "R2L")) ("pdfdisplaydoctitle" ("true" "false")) ("pdfduplex" ("Simplex" "DuplexFlipShortEdge" "DuplexFlipLongEdge")) ("pdffitwindow" ("true" "false")) ("pdflang") ("pdfmenubar" ("true" "false")) ("pdfnewwindow" ("true" "false")) ("pdfnonfullscreenpagemode" ("UseNone" "UseOutlines" "UseThumbs" "FullScreen" "UseOC" "UseAttachments")) ("pdfnumcopies") ("pdfpagelayout" ("SinglePage" "OneColumn" "TwoColumnLeft" "TwoColumnRight" "TwoPageLeft" "TwoPageRight")) ("pdfpagelabels" ("true" "false")) ("pdfpagetransition" ("Blinds" "Box" "Dissolve" "Glitter" "Split" "Wipe")) ("pdfpicktraybypdfsize" ("true" "false")) ("pdfprintarea" ("MediaBox" "CropBox" "BleedBox" "TrimBox" "ArtBox")) ("pdfprintclip" ("MediaBox" "CropBox" "BleedBox" "TrimBox" "ArtBox")) ("pdfprintpagerange") ("pdfprintscaling" ("AppDefault" "None")) ("pdftoolbar" ("true" "false")) ("pdfviewarea" ("MediaBox" "CropBox" "BleedBox" "TrimBox" "ArtBox")) ("pdfviewclip" ("MediaBox" "CropBox" "BleedBox" "TrimBox" "ArtBox")) ("pdfwindowui" ("true" "false")) ("unicode" ("true" "false"))) "Package options for the hyperref package.") (defvar LaTeX-hyperref-href-options '(("pdfremotestartview" ("XYZ" "Fit" "FitH" "FitV" "FitR" "FitB" "FitBH" "FitBV")) ("pdfnewwindow" ("true" "false")) ("page") ("ismap" ("true" "false")) ("nextactionraw")) "Key=value options for href macro of the hyperref package.") ;; See http://www.tug.org/applications/hyperref/ftp/doc/manual.html#x1-220006.2 (defvar LaTeX-hyperref-forms-options '(("accesskey") ("align" ("0" "1" "2")) ("altname") ("backgroundcolor") ("bordercolor") ("bordersep") ("borderwidth") ;; "borderstyle" is not mentioned in the original hyperref-doc, it ;; can be seen in action in ;; http://mirrors.ctan.org/macros/latex/contrib/hyperref/test/testform.tex ;; S=Solid (default), D=Dashed, B=Beveled, I=Inset, U=Underline ("borderstyle" ("S" "D" "B" "I" "U")) ("calculate") ("charsize") ("checkboxsymbol" ("true" "false")) ("checked") ("color") ("combo" ("true" "false")) ("default") ("disabled" ("true" "false")) ("format") ("height") ("hidden" ("true" "false")) ("keystroke") ("mappingname") ("maxlen") ("menulength") ("multiline" ("true" "false")) ("name") ("onblur") ("onchange") ("onclick") ("ondblclick") ("onfocus") ("onkeydown") ("onkeypress") ("onkeyup") ("onmousedown") ("onmousemove") ("onmouseout") ("onmouseover") ("onmouseup") ("onselect") ("password" ("true" "false")) ("popdown" ("true" "false")) ("radio" ("true" "false")) ("radiosymbol") ("readonly" ("true" "false")) ("rotation") ("tabkey") ("validate") ("value") ("width")) "Key=value options for Forms related macros of the hyperref package.") (TeX-add-style-hook "hyperref" (lambda () ;; hyperref loads nameref and url (+ some other packages which do not have ;; style hooks) (TeX-run-style-hooks "url" "nameref") (TeX-add-symbols '("hypersetup" (TeX-arg-key-val LaTeX-hyperref-package-options-list)) '("href" [ (TeX-arg-key-val LaTeX-hyperref-href-options) ] "URL" "Text") '("nolinkurl" t) '("hyperbaseurl" t) '("hyperimage" "Image URL" "Text") '("hyperdef" "Category" "Name" "Text") '("hyperref" "URL" "Category" "Name" "Text") '("hyperlink" "Name" "Text") '("hypertarget" "Name" "Text") '("phantomsection" 0) '("autoref" TeX-arg-ref) '("autoref*" TeX-arg-ref) '("ref*" TeX-arg-ref) '("pageref*" TeX-arg-ref) '("autopageref" TeX-arg-ref) '("autopageref*" TeX-arg-ref) '("pdfstringdef" "Macro name" "TeX string") '("pdfbookmark" [ "Level" ] "Text" "name") '("currentpdfbookmark" "Text" "Name") '("subpdfbookmark" "Text" "Name") '("belowpdfbookmark" "Text" "Name") '("texorpdfstring" "TeX string" "PDF string") '("hypercalcbp" t) '("Acrobatmenu" "Menu option" "Text") ;; The next 6 macros take Key-vals defined in ;; "LaTeX-hyperref-forms-options". For an example, see ;; http://mirrors.ctan.org/macros/latex/contrib/hyperref/test/testform.tex '("TextField" [ (TeX-arg-key-val LaTeX-hyperref-forms-options) ] "Label") '("CheckBox" [ (TeX-arg-key-val LaTeX-hyperref-forms-options) ] "Label") '("ChoiceMenu" [ (TeX-arg-key-val LaTeX-hyperref-forms-options) ] "Label" "Choices") '("PushButton" [ (TeX-arg-key-val LaTeX-hyperref-forms-options) ] "Label") '("Submit" [ (TeX-arg-key-val LaTeX-hyperref-forms-options) ] "Label") '("Reset" [ (TeX-arg-key-val LaTeX-hyperref-forms-options) ] "Label") '("LayoutTextField" "Label" "Field") '("LayoutChoiceField" "Label" "Field") '("LayoutCheckField" "Label" "Field") '("MakeRadioField" "Width" "Height") '("MakeCheckField" "Width" "Height") '("MakeTextField" "Width" "Height") '("MakeChoiceField" "Width" "Height") '("MakeButtonField" "Text")) ;; Form fields must be inside a "Form"-env, one per file is allowed, cf. ;; http://www.tug.org/applications/hyperref/ftp/doc/manual.html#x1-200006 ;; It is up to user to insert [] after \begin{Form} (LaTeX-add-environments '("Form")) ;; Do not indent the content of the "Form"-env; it is odd if the whole ;; document is indented. Append to `LaTeX-indent-environment-list' in order ;; not to override custom settings. (make-local-variable 'LaTeX-indent-environment-list) (add-to-list 'LaTeX-indent-environment-list '("Form" current-indentation) t) (add-to-list 'LaTeX-verbatim-macros-with-braces-local "nolinkurl") (add-to-list 'LaTeX-verbatim-macros-with-braces-local "hyperbaseurl") (add-to-list 'LaTeX-verbatim-macros-with-braces-local "hyperimage") (add-to-list 'LaTeX-verbatim-macros-with-braces-local "hyperref") ;; In hyperref package, \url macro is redefined and \url|...| can't be used, ;; while it's possible when only url package (required by hyperref) is loaded (setq LaTeX-verbatim-macros-with-delims-local (remove "url" LaTeX-verbatim-macros-with-delims-local)) ;; Fontification (when (and (fboundp 'font-latex-add-keywords) (fboundp 'font-latex-set-syntactic-keywords) (eq TeX-install-font-lock 'font-latex-setup)) (font-latex-add-keywords '(("href" "[{{") ("nolinkurl" "{") ("hyperbaseurl" "{") ("hyperimage" "{{") ("hyperdef" "{{{") ("hyperref" "{{{{") ("hyperlink" "{{") ("hypertarget" "{{") ("autoref" "*{") ("ref" "*{") ("pageref" "*{") ("autopageref" "*{")) 'reference) (font-latex-add-keywords '(("hypersetup" "{")) 'function) ;; For syntactic fontification, e.g. verbatim constructs. (font-latex-set-syntactic-keywords)) ;; Activate RefTeX reference style. (and LaTeX-reftex-ref-style-auto-activate (fboundp 'reftex-ref-style-activate) (reftex-ref-style-activate "Hyperref"))) LaTeX-dialect) (defun LaTeX-hyperref-package-options () "Read the hyperref package options from the user." (TeX-read-key-val t LaTeX-hyperref-package-options-list)) ;;; hyperref.el ends here auctex-11.91/style/icelandic.el000066400000000000000000000035171313533625700164310ustar00rootroot00000000000000;;; icelandic.el --- AUCTeX style for the `icelandic' babel option. ;; Copyright (C) 2007 Free Software Foundation, Inc. ;; Author: Ralf Angeli ;; Maintainer: auctex-devel@gnu.org ;; Created: 2007-03-11 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; Set up AUCTeX for editing Icelandic text in connection with the ;; `icelandic' babel option. ;;; Code: (defvar LaTeX-icelandic-mode-syntax-table (copy-syntax-table LaTeX-mode-syntax-table) "Syntax table used in LaTeX mode when using `icelandic.sty'.") (modify-syntax-entry ?\" "w" LaTeX-icelandic-mode-syntax-table) (TeX-add-style-hook "icelandic" (lambda () (set-syntax-table LaTeX-icelandic-mode-syntax-table) (unless (eq (car TeX-quote-language) 'override) (setq TeX-quote-language `("icelandic" "\"`" "\"'" ,TeX-quote-after-quote))) (setq LaTeX-babel-hyphen-language "icelandic") ;; Fontification of quotation marks. (when (fboundp 'font-latex-add-quotes) (font-latex-add-quotes '("\"`" "\"'")) (font-latex-add-quotes '("\"<" "\">" french))) (run-hooks 'TeX-language-is-hook)) LaTeX-dialect) ;;; icelandic.el ends here auctex-11.91/style/ifluatex.el000066400000000000000000000040351313533625700163330ustar00rootroot00000000000000;;; ifluatex.el --- AUCTeX style for `ifluatex.sty' version 1.3. ;; Copyright (C) 2014, 2016 Free Software Foundation, Inc. ;; Author: Davide G. M. Salvetti ;; Maintainer: auctex-devel@gnu.org ;; Created: 2014-11-15 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by the ;; Free Software Foundation; either version 3, or (at your option) any ;; later version. ;; AUCTeX is distributed in the hope that it will be useful, but WITHOUT ;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ;; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ;; for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, see ;; . ;;; Commentary: ;; This file adds support for `ifluatex.sty' 1.3. ;;; Code: (defun LaTeX-ifluatex-set-exit-mark (optional) "Discard OPTIONAL and set exit-mark to current point." (set-marker exit-mark (point))) (TeX-add-style-hook "ifluatex" (lambda () (TeX-add-symbols '("ifluatex" (TeX-arg-literal "%\n") LaTeX-ifluatex-set-exit-mark (TeX-arg-literal "\n\\else%\n\\fi%")) '("luatexversion" 0) '("luatexrevision" 0)) (TeX-declare-expert-macros "ifluatex" "ifluatex" "luatexversion" "luatexrevision") ;; This package is used to make it possible to compile a document with both ;; LuaTeX and base TeX engines. By setting `TeX-check-engine-list' to nil ;; we ignore engine restrictions posed by other packages. (setq TeX-check-engine-list nil) (when (and (featurep 'font-latex) (eq TeX-install-font-lock 'font-latex-setup)) (font-latex-add-keywords '(("luatexversion") ("luatexrevision")) 'function))) LaTeX-dialect) (defvar LaTeX-ifluatex-package-options nil "Package options for the ifluatex package.") ;;; ifluatex.el ends here auctex-11.91/style/imakeidx.el000066400000000000000000000061411313533625700163050ustar00rootroot00000000000000;;; imakeidx.el --- AUCTeX style for `imakeidx.sty'. ;; Copyright (C) 2012-2013 Free Software Foundation, Inc. ;; Maintainer: auctex-devel@gnu.org ;; Author: Mosè Giordano ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `imakeidx.sty'. ;;; Code: (defvar LaTeX-imakeidx-makeindex-options '(("name") ("title") ("program" ("makeindex" "xindy" "texindy" "truexindy")) ("options") ("noautomatic" ("true" "false")) ("intoc" ("true" "false")) ("columns") ("columnsep") ("columnseprule" ("true" "false"))) "Key=value options for makeindex macro of the imakeidx package.") (defvar LaTeX-imakeidx-indexsetup-options '(("level") ("toclevel") ("noclearpage" ("true" "false")) ("othercode")) "Key=value options for indexsetup macro of the imakeidx package.") (make-variable-buffer-local 'LaTeX-imakeidx-indexsetup-options) (TeX-add-style-hook "imakeidx" (lambda () ;; `firstpagestyle' and `headers' options for `indexsetup' macro are ;; available only if `fancyhdr' is not loaded. The following code works only ;; if `imakeidx' is loaded after `fancyhdr'. (unless (member "fancyhdr" TeX-active-styles) (setq LaTeX-imakeidx-indexsetup-options (append LaTeX-imakeidx-indexsetup-options `(("firstpagestyle" ,(LaTeX-pagestyle-list))) '(("headers"))))) (TeX-add-symbols '("makeindex" [ (TeX-arg-key-val LaTeX-imakeidx-makeindex-options) ]) '("indexsetup" (TeX-arg-key-val LaTeX-imakeidx-indexsetup-options)) '("splitindexoptions" "Command line option") '("index" [ "Index name" ] TeX-arg-index) '("indexprologue" [ "Spacing" ] "Text") '("printindex" [ "Index name" ]) '("seealso" 2) '("see" 2) "seename" "alsoname" "indexname") (TeX-run-style-hooks "multicol" "xpatch" "pdftexcmds" "ifluatex" "ifxetex" "xkeyval") ;; Completion for the |see macro and RefTeX support taken from ;; `makeidx.el' (setq TeX-complete-list (append '(("|see{\\([^{}\n\r]*\\)" 1 LaTeX-index-entry-list)) TeX-complete-list)) (and (fboundp 'reftex-add-index-macros) (reftex-add-index-macros '(default)))) LaTeX-dialect) (defvar LaTeX-imakeidx-package-options '("makeindex" "xindy" "texindy" "truexindy" "noautomatic" "nonewpage" "quiet" "original" "splitindex") "Package options for the imakeidx package.") ;; imakeidx.el ends here auctex-11.91/style/index.el000066400000000000000000000052241313533625700156220ustar00rootroot00000000000000;;; index.el --- AUCTeX support for indices with index.sty. ;; Copyright (C) 1999 Free Software Foundation, Inc. ;; Author: Carsten Dominik ;; Maintainer: auctex-devel@gnu.org ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Code: (TeX-add-style-hook "index" (lambda () (TeX-add-symbols ;; New indices '("newindex" [ "Counter" ] "Tag" "Extension of raw index" "Extension of processed index" "Index title") '("renewindex" [ "Counter" ] "Tag" "Extension of raw index" "Extension of processed index" "Index title") "makeindex" '("disableindex" "Tag[,tag...]") ;; Printing the index '("printindex" [ "Indextag" ] [ "Prologue" ]) "indexspace" ;; Index entries '("index" [ TeX-arg-index-tag ] TeX-arg-index) '("index*" [ TeX-arg-index-tag ] TeX-arg-index) ;; Showidx-like stuff "proofmodetrue" "proofmodefalse" '("indexproofstyle" "Style") ;; Shortcuts (THESE ARE DEPRECATED AND SHOULD NOT BE USED "shortindexingon" "shortindexinoff") ;; Parsing index macros (setq LaTeX-auto-regexp-list (append ;; The first regexp is faster, but less accurate ;;'(("\\\\index\\*?\\[[^{}]*\\]{\\([^}]*\\)" ;; 1 LaTeX-auto-index-entry)) ;; The second regexp is very good, but slower. '(("\\\\index\\*?\\[[^{}]*\\]{\\([^}{]*\\({[^}{]*\\({[^}{]*\\({[^}{]*}[^}{]*\\)*}[^}{]*\\)*}[^}{]*\\)*\\)}" 1 LaTeX-auto-index-entry)) LaTeX-auto-regexp-list)) ;; Completion for the index entries in \index and |see commands (setq TeX-complete-list (append '(("\\\\index\\*?\\(\\[[^][{}]*\\]\\)?{\\([^{}\n\r]*\\)" 2 LaTeX-index-entry-list) ("|see{\\([^}]*\\)" 1 LaTeX-index-entry-list)) TeX-complete-list)) ;; RefTeX support (and (fboundp 'reftex-add-index-macros) (reftex-add-index-macros '(index)))) LaTeX-dialect) (defvar LaTeX-index-package-options nil "Package options for the index package.") ;;; index.el ends here auctex-11.91/style/inputenc.el000066400000000000000000000052451313533625700163430ustar00rootroot00000000000000;;; inputenc.el --- AUCTeX style for `inputenc.sty' ;; Copyright (C) 2005, 2014 Free Software Foundation, Inc. ;; Author: Arne Jrgensen ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, ;; MA 02110-1301, USA. ;;; Commentary: ;; This file adds support for `inputenc.sty'. ;;; Code: (defun LaTeX-inputenc-package-options nil "Prompt for package options for the inputenc package." ;; separate the condition in three to silence the byte compiler (if (boundp 'latex-inputenc-coding-alist) (when (fboundp 'latexenc-coding-system-to-inputenc) (when (fboundp 'latexenc-inputenc-to-coding-system) (let ((default (latexenc-coding-system-to-inputenc (or coding-system-for-write buffer-file-coding-system))) (selected 'undecided)) (setq selected (completing-read (if default (format "Input encoding (default %s): " default) "Input encoding: ") (mapcar 'car latex-inputenc-coding-alist) nil nil nil nil default)) ;; if necessary offer to set the coding system for saving ;; this buffer based on the selected input encoding (when (and (null (coding-system-equal (coding-system-base (or coding-system-for-write buffer-file-coding-system)) (coding-system-base (latexenc-inputenc-to-coding-system selected)))) (y-or-n-p "Set coding system for saving this buffer? ") (set-buffer-file-coding-system (coding-system-base (latexenc-inputenc-to-coding-system selected))) (message nil))) ;; return selected input encoding selected))) (TeX-read-string "Input encoding: "))) (defun LaTeX-arg-inputenc-inputenc (_optional) "Prompt for input encoding." (TeX-argument-insert (LaTeX-inputenc-package-options) nil)) (TeX-add-style-hook "inputenc" (lambda () ;; New symbols (TeX-add-symbols '("inputencoding" LaTeX-arg-inputenc-inputenc))) LaTeX-dialect) ;; Local Variables: ;; coding: iso-8859-1 ;; End: ;;; inputenc.el ends here auctex-11.91/style/italian.el000066400000000000000000000041301313533625700161270ustar00rootroot00000000000000;;; italian.el --- Setup AUCTeX for editing Italian text. ;; Copyright (C) 2004, 2005 Free Software Foundation, Inc. ;; Author: Davide G. M. Salvetti ;; Maintainer: Davide G. M. Salvetti ;; Created: 2004-05-12 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; ;; I believe that the Italian correct quoting is achieved with `\"<' and ;; `\">'. However, I will be glad to see a normative reference. -- DGMS ;;; Code: (defvar TeX-language-it-hook nil "Hook run for Italian texts.") (TeX-add-style-hook "italian" (lambda () ;; XXX: Handle former customizations of the now defunct ;; Italian-specific variables. References to the respective ;; variables are to be deleted in future versions. (now = 2005-04-01) (unless (eq (car TeX-quote-language) 'override) (let ((open-quote (if (and (boundp 'LaTeX-italian-open-quote) LaTeX-italian-open-quote) LaTeX-italian-open-quote "\"<")) (close-quote (if (and (boundp 'LaTeX-italian-close-quote) LaTeX-italian-close-quote) LaTeX-italian-close-quote "\">"))) (setq TeX-quote-language `("italian" ,open-quote ,close-quote ,TeX-quote-after-quote)))) ;; Fontification of quotation marks. (when (fboundp 'font-latex-add-quotes) (font-latex-add-quotes '("\"<" "\">" french))) (run-hooks 'TeX-language-it-hook)) LaTeX-dialect) ;;; italian.el ends here auctex-11.91/style/j-article.el000066400000000000000000000003021313533625700163550ustar00rootroot00000000000000;;; j-article.el - Special code for j-article style. ;;; Code: (TeX-add-style-hook "j-article" (lambda () (LaTeX-largest-level-set "section")) LaTeX-dialect) ;;; j-article.el ends here auctex-11.91/style/j-book.el000066400000000000000000000002631313533625700156720ustar00rootroot00000000000000;;; j-book.el - Special code for j-book style. ;;; Code: (TeX-add-style-hook "j-book" (lambda () (LaTeX-largest-level-set "part")) LaTeX-dialect) ;;; j-book.el ends here auctex-11.91/style/j-report.el000066400000000000000000000002761313533625700162570ustar00rootroot00000000000000;;; j-report.el - Special code for j-report style. ;;; Code: (TeX-add-style-hook "j-report" (lambda () (LaTeX-largest-level-set "chapter")) LaTeX-dialect) ;;; j-report.el ends here auctex-11.91/style/jarticle.el000066400000000000000000000014171313533625700163100ustar00rootroot00000000000000;;; jarticle.el - Special code for jarticle class. ;;; Code: (defvar LaTeX-jarticle-class-options '("a4paper" "a5paper" "b4paper" "b5paper" "a4j" "a5j" "b4j" "b5j" "a4p" "b4p" "b5p" "10pt" "11pt" "12pt" "landscape" "tombow" "tombo" "mentuke" "oneside" "twoside" "onecolumn" "twocolumn" "titlepage" "notitlepage" "leqno" "fleqn" "openbib" "disablejfam" "mathrmmc" "draft" "final") "Class options for the jarticle class.") (TeX-add-style-hook "jarticle" (lambda () (LaTeX-largest-level-set "section") (LaTeX-add-counters "part" "section" "subsection" "subsubsection" "paragraph" "subparagraph" "figure" "table") (LaTeX-add-pagestyles "headings" "myheadings") (LaTeX-add-environments "abstract")) LaTeX-dialect) ;;; jarticle.el ends here auctex-11.91/style/jbook.el000066400000000000000000000013631313533625700156170ustar00rootroot00000000000000;;; jbook.el - Special code for jbook class. ;;; Code: (defvar LaTeX-jbook-class-options '("a4paper" "a5paper" "b4paper" "b5paper" "a4j" "a5j" "b4j" "b5j" "a4p" "b4p" "b5p" "10pt" "11pt" "12pt" "landscape" "tombow" "tombo" "mentuke" "oneside" "twoside" "onecolumn" "twocolumn" "titlepage" "notitlepage" "openright" "openany" "leqno" "fleqn" "openbib" "disablejfam" "mathrmmc" "draft" "final") "Class options for the jbook class.") (TeX-add-style-hook "jbook" (lambda () (LaTeX-largest-level-set "part") (LaTeX-add-counters "part" "chapter" "section" "subsection" "subsubsection" "paragraph" "subparagraph" "figure" "table") (LaTeX-add-pagestyles "headings" "myheadings")) LaTeX-dialect) ;;; jbook.el ends here auctex-11.91/style/jreport.el000066400000000000000000000014511313533625700161760ustar00rootroot00000000000000;;; jreport.el - Special code for jreport class. ;;; Code: (defvar LaTeX-jreport-class-options '("a4paper" "a5paper" "b4paper" "b5paper" "a4j" "a5j" "b4j" "b5j" "a4p" "b4p" "b5p" "10pt" "11pt" "12pt" "landscape" "tombow" "tombo" "mentuke" "oneside" "twoside" "onecolumn" "twocolumn" "titlepage" "notitlepage" "openright" "openany" "leqno" "fleqn" "openbib" "disablejfam" "mathrmmc" "draft" "final") "Class options for the jreport class.") (TeX-add-style-hook "jreport" (lambda () (LaTeX-largest-level-set "chapter") (LaTeX-add-counters "part" "chapter" "section" "subsection" "subsubsection" "paragraph" "subparagraph" "figure" "table") (LaTeX-add-pagestyles "headings" "myheadings") (LaTeX-add-environments "abstract")) LaTeX-dialect) ;;; jreport.el ends here auctex-11.91/style/jsarticle.el000066400000000000000000000020711313533625700164700ustar00rootroot00000000000000;;; jsarticle.el - Special code for jsarticle class. ;;; Code: (defvar LaTeX-jsarticle-class-options '("a3paper" "a4paper" "a5paper" "a6paper" "b4paper" "b5paper" "b6paper" "a4j" "a5j" "b4j" "b5j" "a4var" "b5var" "letterpaper" "legalpaper" "executivepaper" "landscape" "slide" "8pt" "9pt" "10pt" "11pt" "12pt" "14pt" "17pt" "20pt" "21pt" "25pt" "30pt" "36pt" "43pt" "12Q" "14Q" "usemag" "nomag" "nomag*" "tombow" "tombo" "mentuke" "oneside" "twoside" "vartwoside" "onecolumn" "twocolumn" "titlepage" "notitlepage" "leqno" "fleqn" "disablejfam" "draft" "final" "mingoth" "wingoth" "jis" "uplatex" "autodetect-engine" "papersize" "english" "jslogo" "nojslogo") "Class options for the jsarticle class.") (TeX-add-style-hook "jsarticle" (lambda () (LaTeX-largest-level-set "section") (LaTeX-add-counters "part" "section" "subsection" "subsubsection" "paragraph" "subparagraph" "figure" "table") (LaTeX-add-pagestyles "headings" "myheadings") (LaTeX-add-environments "abstract")) LaTeX-dialect) ;;; jsarticle.el ends here auctex-11.91/style/jsbook.el000066400000000000000000000023121313533625700157750ustar00rootroot00000000000000;;; jsbook.el - Special code for jsbook class. ;;; Code: (defvar LaTeX-jsbook-class-options '("a3paper" "a4paper" "a5paper" "a6paper" "b4paper" "b5paper" "b6paper" "a4j" "a5j" "b4j" "b5j" "a4var" "b5var" "letterpaper" "legalpaper" "executivepaper" "landscape" "report" "8pt" "9pt" "10pt" "11pt" "12pt" "14pt" "17pt" "20pt" "21pt" "25pt" "30pt" "36pt" "43pt" "12Q" "14Q" "usemag" "nomag" "nomag*" "tombow" "tombo" "mentuke" "oneside" "twoside" "vartwoside" "onecolumn" "twocolumn" "titlepage" "notitlepage" "openright" "openleft" "openany" "leqno" "fleqn" "disablejfam" "draft" "final" "mingoth" "wingoth" "jis" "uplatex" "autodetect-engine" "papersize" "english" "jslogo" "nojslogo") "Class options for the jsbook class.") (TeX-add-style-hook "jsbook" (lambda () (if (LaTeX-provided-class-options-member "jsbook" "report") (progn (LaTeX-largest-level-set "chapter") (LaTeX-add-environments "abstract")) (LaTeX-largest-level-set "part")) (LaTeX-add-counters "part" "chapter" "section" "subsection" "subsubsection" "paragraph" "subparagraph" "figure" "table") (LaTeX-add-pagestyles "headings" "myheadings")) LaTeX-dialect) ;;; jsbook.el ends here auctex-11.91/style/jsreport.el000066400000000000000000000040201313533625700163540ustar00rootroot00000000000000;;; jsreport.el - Special code for jsreport class. ;; Copyright (C) 2017 Free Software Foundation, Inc. ;; Author: Ikumi Keita ;; Maintainer: auctex-devel@gnu.org ;; Created: 2017-03-23 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; Please write me. ;;; Code: (defvar LaTeX-jsreport-class-options '("a3paper" "a4paper" "a5paper" "a6paper" "b4paper" "b5paper" "b6paper" "a4j" "a5j" "b4j" "b5j" "a4var" "b5var" "letterpaper" "legalpaper" "executivepaper" "landscape" "8pt" "9pt" "10pt" "11pt" "12pt" "14pt" "17pt" "20pt" "21pt" "25pt" "30pt" "36pt" "43pt" "12Q" "14Q" "usemag" "nomag" "nomag*" "tombow" "tombo" "mentuke" "oneside" "twoside" "vartwoside" "onecolumn" "twocolumn" "titlepage" "notitlepage" "openright" "openleft" "openany" "leqno" "fleqn" "disablejfam" "draft" "final" "mingoth" "wingoth" "jis" "uplatex" "autodetect-engine" "papersize" "english" "jslogo" "nojslogo") "Class options for the jsreport class.") (TeX-add-style-hook "jsreport" (lambda () (LaTeX-largest-level-set "chapter") (LaTeX-add-counters "part" "chapter" "section" "subsection" "subsubsection" "paragraph" "subparagraph" "figure" "table") (LaTeX-add-pagestyles "headings" "myheadings") (LaTeX-add-environments "abstract")) LaTeX-dialect) ;;; jsreport.el ends here auctex-11.91/style/jura.el000066400000000000000000000021761313533625700154570ustar00rootroot00000000000000;;; jura.el --- AUCTeX style for `jura.cls' ;; Copyright (C) 2004 Free Software Foundation, Inc. ;; Author: Frank Kster ;; Maintainer: auctex-devel@gnu.org ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `jura.cls'. ;;; Code: (TeX-add-style-hook "jura" (lambda () (TeX-run-style-hooks "alphanum")) LaTeX-dialect) ;; Local Variables: ;; coding: iso-8859-1 ;; End: auctex-11.91/style/jurabib.el000066400000000000000000000353121313533625700161320ustar00rootroot00000000000000;;; jurabib.el --- AUCTeX style for the `jurabib' package ;; Copyright (C) 2004, 2007 Free Software Foundation, Inc. ;; Author: Ralf Angeli ;; Maintainer: auctex-devel@gnu.org ;; Created: 2004-10-05 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for the `jurabib' package. ;; Currently only the citation-related commands are supported. Feel ;; free to complete the support and send the result to the AUCTeX ;; mailing list. But be aware that the code can only be included if ;; you assign the copyright to the FSF. ;;; Code: (TeX-add-style-hook "jurabib" (lambda () ;; Taken from natbib.el and adapted. (let ((citecmds '(("cite" . 2) ("cite*" . 2) ("citetitle" . 2) ("fullcite" . 2) ("citet" . 1) ("citealt" . 1) ("citep" . 2) ("citealp" . 2) ("citeauthor" . 2) ("citeyear" . 2) ("footcite" . 2) ("footcite*" . 2) ("footcitetitle" . 2) ("footfullcite" . 2) ("footcitet" . 1) ("footcitealt" . 1) ("footcitep" . 2) ("footcitealp" . 2) ("footciteauthor" . 2) ("footciteyear" . 2)))) ;; Add these symbols (apply 'TeX-add-symbols (mapcar (lambda (cmd) (cond ((= (cdr cmd) 0) ;; No optional arguments (list (car cmd) 'TeX-arg-cite)) ((= (cdr cmd) 1) ;; Just one optional argument, the post note (list (car cmd) '(TeX-arg-conditional TeX-arg-cite-note-p (["Post-note"]) nil) 'TeX-arg-cite)) ((= (cdr cmd) 2) ;; Pre and post notes (list (car cmd) '(TeX-arg-conditional TeX-arg-cite-note-p (natbib-note-args) nil) 'TeX-arg-cite)))) citecmds)) ;; Special cases (TeX-add-symbols ;; FIXME: Completing read for field. '("citefield" ; \citefield[]{}{} (TeX-arg-conditional TeX-arg-cite-note-p (["Post-note"]) nil) "Field" TeX-arg-cite) '("footcitefield" ; \footcitefield[]{}{} (TeX-arg-conditional TeX-arg-cite-note-p (["Post-note"]) nil) "Field" TeX-arg-cite)) ;; Make an entry in TeX-complete-list (add-to-list 'TeX-complete-list (list (concat "\\\\\\(" (mapconcat (lambda (x) (regexp-quote (car x))) (append citecmds '(("citefield") ("footcitefield"))) "\\|") "\\)\\(\\[[^]\n\r\\%]*\\]\\)*{\\([^{}\n\r\\%,]*,\\)*" "\\([^{}\n\r\\%,]*\\)") 4 'LaTeX-bibitem-list "}")) ;; Add further symbols (TeX-add-symbols '("citefullfirstfortype" 1) '("citenotitlefortype" 1) '("citeswithoutentry" 1) '("citetitlefortype" 1) '("citeworkwithtitle" 1) '("nextcitefull" 1) '("nextcitenotitle" 1) '("nextcitereset" 1) '("nextciteshort" 1) '("jurabibsetup" 1)) ;; Fontification (when (and (featurep 'font-latex) (eq TeX-install-font-lock 'font-latex-setup)) (font-latex-add-keywords '(("cite" "*[[{") ("citetitle" "[[{") ("fullcite" "[[{") ("citet" "[{") ("citealt" "[{") ("citep" "[[{") ("citealp" "[[{") ("citeauthor" "[[{") ("citeyear" "[[{") ("footcite" "[[{") ("footcite*" "[[{") ("footcitetitle" "[[{") ("footfullcite" "[[{") ("footcitet" "[{") ("footcitealt" "[{") ("footcitep" "[[{") ("footcitealp" "[[{") ("footciteauthor" "[[{") ("footciteyear" "[[{") ("citefield" "[{{") ("footcitefield" "[{{")) 'reference) (font-latex-add-keywords '(("citeswithoutentry" "{") ("nextcitefull" "{") ("nextcitenotitle" "{") ("nextcitereset" "{") ("nextciteshort" "{")) 'function) (font-latex-add-keywords '(("citenotitlefortype" "{") ("citetitlefortype" "{") ("jurabibsetup" "{")) 'variable)) ;; Tell RefTeX (Thanks, Carsten) (when (and LaTeX-reftex-cite-format-auto-activate (fboundp 'reftex-set-cite-format)) ;; Check if RefTeX supports jurabib. (if (assoc 'jurabib reftex-cite-format-builtin) ;; Yes, use the provided default. (reftex-set-cite-format 'jurabib) ;; No, set it by hand. (reftex-set-cite-format '((?\C-m . "\\cite{%l}") (?c . "\\cite[?][]{%l}") (?t . "\\citet{%l}") (?p . "\\citep{%l}") (?e . "\\citep[e.g.][?]{%l}") (?s . "\\citep[see][?]{%l}") (?u . "\\fullcite{%l}") (?i . "\\citetitle{%l}") (?a . "\\citeauthor{%l}") (?e . "\\citefield{?}{%l}") (?y . "\\citeyear{%l}") (?f . "\\footcite{%l}") (?F . "\\footcite[?][]{%l}") (?l . "\\footfullcite{%l}")))))) ;; FIXME: The following list is the edited output of ;; `TeX-auto-generate' which probably includes internal macros of ;; jurabib. Unfortunately the macros which should be accessible to ;; the user are not fully documented at the time of this writing. ;; But instead of including only the limited part which is ;; documented we rather give the user a bit too much. The list ;; should be reduced when there is proper documentation, though. (TeX-add-symbols '("Wrapquotes" 1) '("apyformat" 1) '("artnumberformat" 1) '("artvolnumformat" 2) '("artvolumeformat" 1) '("artyearformat" 1) '("bibAnnote" 1) '("bibAnnoteFile" 1) '("bibAnnotePath" 1) '("bibEIMfont" 1) '("bibIMfont" 1) '("bibYear" 1) '("bibedformat" 1) '("bibedinformat" 1) '("bibenf" 5) '("biblenf" 5) '("bibnf" 5) '("bibnumberformat" 1) '("bibrenf" 5) '("bibrlenf" 5) '("bibrnf" 5) '("biburlfont" 1) '("edfont" 1) '("formatarticlepages" ["argument"] 2) '("fsted" 1) '("fullnameoxfordcrossref" 1) '("incolledformat" 5) '("jbArchPages" 1) '("jbPages" 1) '("jbannoteformat" 1) '("jbapifont" 1) '("jbarchnameformat" 1) '("jbarchsig" 2) '("jbartPages" 1) '("jbartcrossrefchecked" ["argument"] 1) '("jbauthorindexfont" 1) '("jbbibargs" 5) '("jbbibyearformat" 1) '("jbcitationoyearformat" 1) '("jbcitationyearformat" 1) '("jbcrossrefchecked" ["argument"] 1) '("jbedafti" 1) '("jbedbyincollcrossreflong" 1) '("jbedbyincollcrossrefshort" 1) '("jbedbyincollcrossrefshortnoapy" 1) '("jbedbyincollcrossrefshortwithapy" 1) '("jbedition" 1) '("jbeditorindexfont" 1) '("jbendnote" 1) '("jbflanguage" 1) '("jbincollcrossref" 2) '("jbisbn" 1) '("jbissn" 1) '("jbnote" 2) '("jborganizationindexfont" 1) '("jbpagesformat" 1) '("jbprformat" 1) '("jbrealcitation" 2) '("jbshortarchformat" 1) '("jbshortsubarchformat" 1) '("jbsy" 1) '("jbtiafed" 1) '("lookatfortype" 1) '("nobibliography" 1) '("nocitebuthowcited" 1) '("numberandseries" 2) '("pageadd" 1) '("pernumberformat" 1) '("pervolnumformat" 2) '("pervolumeformat" 1) '("peryearformat" 1) '("revnumberformat" 1) '("revvolnumformat" 2) '("revvolumeformat" 1) '("revyearformat" 1) '("snded" 1) '("textitswitch" 1) '("translator" 3) '("volumeformat" 1) "Bibbfsasep" "Bibbfsesep" "Bibbstasep" "Bibbstesep" "Bibbtasep" "Bibbtesep" "Bibchaptername" "Bibetal" "Edbyname" "IbidemMidName" "IbidemName" "NAT" "OpCit" "Reprint" "SSS" "Transfrom" "Volumename" "addtoalllanguages" "afterfoundersep" "aftervolsep" "ajtsep" "alsothesisname" "aprname" "augname" "bibBTsep" "bibJTsep" "bibPageName" "bibPagesName" "bibaesep" "bibaldelim" "bibaltformatalign" "bibandname" "bibanfont" "bibansep" "bibapifont" "bibapyldelim" "bibapyrdelim" "bibarchpagename" "bibarchpagesname" "bibardelim" "bibartperiodhowcited" "bibatsep" "bibauthormultiple" "bibbdsep" "bibbfsasep" "bibbfsesep" "bibbstasep" "bibbstesep" "bibbtasep" "bibbtesep" "bibbtfont" "bibbtsep" "bibbudcsep" "bibces" "bibchapterlongname" "bibchaptername" "bibcite" "bibcolumnsep" "bibcommenthowcited" "bibcontinuedname" "bibcrossrefcite" "bibcrossrefciteagain" "bibeandname" "bibedformat" "bibefnfont" "bibeimfont" "bibelnfont" "bibenf" "bibfnfmt" "bibfnfont" "bibhowcited" "bibibidfont" "bibidemPfname" "bibidemPmname" "bibidemPnname" "bibidemSfname" "bibidemSmname" "bibidemSnname" "bibidempfname" "bibidempmname" "bibidempnname" "bibidemsfname" "bibidemsmname" "bibidemsnname" "bibimfont" "bibincollcrossrefcite" "bibincollcrossrefciteagain" "bibjtfont" "bibjtsep" "bibleftcolumn" "bibleftcolumnadjust" "bibleftcolumnstretch" "biblenf" "biblnfmt" "biblnfont" "bibnf" "bibnotcited" "bibpagename" "bibpagesname" "bibpagesnamesep" "bibpldelim" "bibprdelim" "bibrevtfont" "bibrightcolumn" "bibrightcolumnadjust" "bibrightcolumnstretch" "bibsall" "bibsdanish" "bibsdutch" "bibsenglish" "bibsfinnish" "bibsfrench" "bibsgerman" "bibsitalian" "bibsnfont" "bibsnorsk" "bibsportuguese" "bibsspanish" "bibtabularitemsep" "bibtfont" "bibtotalpagesname" "biburlprefix" "biburlsuffix" "bibvolumecomment" "bibvtfont" "bothaesep" "bpubaddr" "byname" "citetitleonly" "citeyearpar" "commaename" "commaname" "dateldelim" "daterdelim" "decname" "diffpageibidemmidname" "diffpageibidemname" "edbyname" "edbysep" "editionname" "editorname" "editorsname" "enoteformat" "etalname" "etalnamenodot" "febname" "fifthedname" "firstedname" "footcitetitleonly" "formatpages" "foundername" "fourthedname" "fromdutch" "fromenglish" "fromfinnish" "fromfrench" "fromgerman" "fromitalian" "fromnorsk" "fromportuguese" "fromspanish" "herename" "howcitedprefix" "howcitedsuffix" "ibidem" "ibidemmidname" "ibidemname" "idemPfedbyname" "idemPfname" "idemPmedbyname" "idemPmname" "idemPnedbyname" "idemPnname" "idemSfedbyname" "idemSfname" "idemSmedbyname" "idemSmname" "idemSnedbyname" "idemSnname" "idemmidname" "idemname" "idempfedbyname" "idempfname" "idempmedbyname" "idempmname" "idempnedbyname" "idempnname" "idemsfedbyname" "idemsfname" "idemsmedbyname" "idemsmname" "idemsnedbyname" "idemsnname" "incollinname" "inname" "inseriesname" "janname" "jbCheckedFirst" "jbFirst" "jbFirstAbbrv" "jbJunior" "jbLast" "jbNotRevedNoVonJr" "jbNotRevedNoVonNoJr" "jbNotRevedOnlyLast" "jbNotRevedVonJr" "jbNotRevedVonNoJr" "jbPAGES" "jbPageName" "jbPages" "jbPagesName" "jbRevedFirstNoVonJr" "jbRevedFirstNoVonNoJr" "jbRevedFirstOnlyLast" "jbRevedFirstVonJr" "jbRevedFirstVonNoJr" "jbRevedNotFirstNoVonJr" "jbRevedNotFirstNoVonNoJr" "jbRevedNotFirstOnlyLast" "jbRevedNotFirstVonJr" "jbRevedNotFirstVonNoJr" "jbVon" "jbactualauthorfnfont" "jbactualauthorfont" "jbaddtomakehowcited" "jbaensep" "jbafterstartpagesep" "jbannotatorfont" "jbapifont" "jbarchnamesep" "jbarchpagename" "jbarchpagesname" "jbartPages" "jbatsep" "jbauthorfnfont" "jbauthorfont" "jbauthorfontifannotator" "jbauthorinfo" "jbbeforestartpagesep" "jbbfsasep" "jbbfsesep" "jbbookedaftertitle" "jbbstasep" "jbbstesep" "jbbtasep" "jbbtesep" "jbbtfont" "jbbtitlefont" "jbcitationyearformat" "jbcrossrefchecked" "jbdisablecitationcrossref" "jbdoitem" "jbdonotindexauthors" "jbdonotindexeditors" "jbdonotindexorganizations" "jbdotafterbibentry" "jbdotafterendnote" "jbdy" "jbedbyincollcrossrefcite" "jbedbyincollcrossrefciteagain" "jbedition" "jbedseplikecite" "jbeimfont" "jbfirstcitepageranges" "jbfootnoteformat" "jbfootnotenumalign" "jbfulltitlefont" "jbhowcitedcomparepart" "jbhowcitednormalpart" "jbhowsepannotatorfirst" "jbhowsepannotatorlast" "jbhowsepbeforetitle" "jbhowsepbeforetitleae" "jbhowsepbeforetitleibidemname" "jbignorevarioref" "jbimfont" "jbindexbib" "jbindexonlyfirstauthors" "jbindexonlyfirsteditors" "jbindexonlyfirstorganizations" "jbindextype" "jblookforgender" "jbmakeinbib" "jbmakeinbiblist" "jbmakeindexactual" "jbnotsamearch" "jbonlyforbib" "jbonlyforcitations" "jbonlyforfirstcitefullbegin" "jbonlyforfirstcitefullend" "jborgauthorfont" "jboyearincitation" "jbpagename" "jbpagenamenodot" "jbpages" "jbpagesep" "jbpagesname" "jbpagesnamesep" "jbsamearch" "jbsamesubarch" "jbsamesubarchindent" "jbshorttitlefont" "jbshowbibextralabel" "jbssedbd" "jbsubarchsep" "jbsuperscripteditionafterauthor" "jbtitlefont" "jbts" "jburldef" "jbuseidemhrule" "jbyear" "jbyearaftertitle" "julname" "junname" "jurthesisname" "marname" "mastersthesisname" "mayname" "nofirstnameforcitation" "noibidem" "noidem" "nopage" "novname" "numbername" "octname" "ofseriesname" "opcit" "organizationname" "origPAGES" "origartPages" "origbibces" "origcrossref" "origpages" "osep" "phdthesisname" "reprint" "reprintname" "reviewbyname" "reviewname" "reviewofname" "samepageibidemmidname" "samepageibidemname" "secondedname" "sepname" "sndecmd" "snded" "sndeditorname" "sndeditorsname" "technicalreportname" "testnosig" "textandname" "texteandname" "theHlvla" "theHlvlb" "theHlvlc" "theHlvld" "theHlvle" "theHlvlf" "theHlvlg" "theHlvlh" "theHlvli" "theHlvlj" "theHlvlk" "theHlvll" "thedname" "thirdedname" "trans" "transby" "transfrom" "updatename" "updatesep" "urldatecomment" "volname" "volumename" "volumeofname")) LaTeX-dialect) ;;; jurabib.el ends here auctex-11.91/style/kantlipsum.el000066400000000000000000000026701313533625700167040ustar00rootroot00000000000000;;; kantlipsum.el --- AUCTeX style for `kantlipsum.sty'. ;; Copyright (C) 2013 Free Software Foundation, Inc. ;; Maintainer: auctex-devel@gnu.org ;; Author: Mosè Giordano ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `kantlipsum.sty'. ;;; Code: (TeX-add-style-hook "kantlipsum" (lambda () (TeX-add-symbols '("kant" [ "Range of paragraph (max: 164)" ]) '("kant*" [ "Range of paragraph (max: 164)" ]) '("kantdef" TeX-arg-define-macro "Paragraph number")) (TeX-run-style-hooks "xparse")) LaTeX-dialect) (defvar LaTeX-kantlipsum-package-options '("par" "nopar" "numbers" "index") "Package options for the kantlipsum package.") ;; kantlipsum.el ends here auctex-11.91/style/kpfonts.el000066400000000000000000000622261313533625700162040ustar00rootroot00000000000000;;; kpfonts.el --- AUCTeX style for `kpfonts.sty' version 3.31. ;; Copyright (C) 2013 Free Software Foundation, Inc. ;; Maintainer: auctex-devel@gnu.org ;; Author: Mosè Giordano ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `kpfonts.sty' version 3.31. ;;; Code: ;;; Kpfonts Minor Mode (heavily based on LaTeX Math Minor Mode code) (defconst LaTeX-kpfonts-default '(;; Other Greek Lowercase ("o a" "otheralpha" "Other Greek Lowercase" 945) ;; #X03B1 ("o b" "otherbeta" "Other Greek Lowercase" 946) ;; #X03B2 ("o g" "othergamma" "Other Greek Lowercase" 947) ;; #X03B3 ("o d" "otherdelta" "Other Greek Lowercase" 948) ;; #X03B4 ("o e" "otherepsilon" "Other Greek Lowercase" 1013) ;; #X03F5 ("o z" "otherzeta" "Other Greek Lowercase" 950) ;; #X03B6 ("o h" "othereta" "Other Greek Lowercase" 951) ;; #X03B7 ("o j" "othertheta" "Other Greek Lowercase" 952) ;; #X03B8 (nil "otheriota" "Other Greek Lowercase" 953) ;; #X03B9 ("o k" "otherkappa" "Other Greek Lowercase" 954) ;; #X03BA ("o l" "otherlambda" "Other Greek Lowercase" 955) ;; #X03BB ("o m" "othermu" "Other Greek Lowercase" 956) ;; #X03BC ("o n" "othernu" "Other Greek Lowercase" 957) ;; #X03BD ("o x" "otherxi" "Other Greek Lowercase" 958) ;; #X03BE ("o p" "otherpi" "Other Greek Lowercase" 960) ;; #X03C0 ("o r" "otherrho" "Other Greek Lowercase" 961) ;; #X03C1 ("o s" "othersigma" "Other Greek Lowercase" 963) ;; #X03C3 ("o t" "othertau" "Other Greek Lowercase" 964) ;; #X03C4 ("o u" "otherupsilon" "Other Greek Lowercase" 965) ;; #X03C5 ("o f" "otherphi" "Other Greek Lowercase" 981) ;; #X03D5 ("o q" "otherchi" "Other Greek Lowercase" 967) ;; #X03C7 ("o y" "otherpsi" "Other Greek Lowercase" 968) ;; #X03C8 ("o w" "otheromega" "Other Greek Lowercase" 969) ;; #X03C9 ("o v e" "othervarepsilon" "Other Greek Lowercase" 949) ;; #X03B5 ("o v j" "othervartheta" "Other Greek Lowercase" 977) ;; #X03D1 ("o v p" "othervarpi" "Other Greek Lowercase" 982) ;; #X03D6 ("o v r" "othervarrho" "Other Greek Lowercase" 1009) ;; #X03F1 ("o v s" "othervarsigma" "Other Greek Lowercase" 962) ;; #X03C2 ("o v f" "othervarphi" "Other Greek Lowercase" 966) ;; #X03C6 ;; Slanted Greek Lowercase (nil "alphasl" "Slanted Greek Lowercase" 120572) ;; #X1D6FC (nil "betasl" "Slanted Greek Lowercase" 120573) ;; #X1D6FD (nil "gammasl" "Slanted Greek Lowercase" 120574) ;; #X1D6FE (nil "deltasl" "Slanted Greek Lowercase" 120575) ;; #X1D6FF (nil "epsilonsl" "Slanted Greek Lowercase" 120598) ;; #X1D716 (nil "zetasl" "Slanted Greek Lowercase" 120577) ;; #X1D701 (nil "etasl" "Slanted Greek Lowercase" 120578) ;; #X1D702 (nil "thetasl" "Slanted Greek Lowercase" 120579) ;; #X1D703 (nil "iotasl" "Slanted Greek Lowercase" 120580) ;; #X1D704 (nil "kappasl" "Slanted Greek Lowercase" 120581) ;; #X1D705 (nil "lambdasl" "Slanted Greek Lowercase" 120582) ;; #X1D706 (nil "musl" "Slanted Greek Lowercase" 120583) ;; #X1D707 (nil "nusl" "Slanted Greek Lowercase" 120584) ;; #X1D708 (nil "xisl" "Slanted Greek Lowercase" 120585) ;; #X1D709 (nil "pisl" "Slanted Greek Lowercase" 120587) ;; #X1D70B (nil "rhosl" "Slanted Greek Lowercase" 120588) ;; #X1D70C (nil "sigmasl" "Slanted Greek Lowercase" 120590) ;; #X1D70E (nil "tausl" "Slanted Greek Lowercase" 120591) ;; #X1D70F (nil "upsilonsl" "Slanted Greek Lowercase" 120592) ;; #X1D710 (nil "phisl" "Slanted Greek Lowercase" 120601) ;; #X1D719 (nil "chisl" "Slanted Greek Lowercase" 120594) ;; #X1D712 (nil "psisl" "Slanted Greek Lowercase" 120595) ;; #X1D713 (nil "omegasl" "Slanted Greek Lowercase" 120596) ;; #X1D714 (nil "varepsilonsl" "Slanted Greek Lowercase" 120576) ;; #X1D700 (nil "varthetasl" "Slanted Greek Lowercase" 120599) ;; #X1D717 (nil "varpisl" "Slanted Greek Lowercase" 120603) ;; #X1D71B (nil "varrhosl" "Slanted Greek Lowercase" 120602) ;; #X1D71A (nil "varsigmasl" "Slanted Greek Lowercase" 120589) ;; #X1D70D (nil "varphisl" "Slanted Greek Lowercase" 120593) ;; #X1D711 ;; Upright Greek Lowercase (nil "alphaup" "Upright Greek Lowercase" 945) ;; #X03B1 (nil "betaup" "Upright Greek Lowercase" 946) ;; #X03B2 (nil "gammaup" "Upright Greek Lowercase" 947) ;; #X03B3 (nil "deltaup" "Upright Greek Lowercase" 948) ;; #X03B4 (nil "epsilonup" "Upright Greek Lowercase" 1013) ;; #X03F5 (nil "zetaup" "Upright Greek Lowercase" 950) ;; #X03B6 (nil "etaup" "Upright Greek Lowercase" 951) ;; #X03B7 (nil "thetaup" "Upright Greek Lowercase" 952) ;; #X03B8 (nil "iotaup" "Upright Greek Lowercase" 953) ;; #X03B9 (nil "kappaup" "Upright Greek Lowercase" 954) ;; #X03BA (nil "lambdaup" "Upright Greek Lowercase" 955) ;; #X03BB (nil "muup" "Upright Greek Lowercase" 956) ;; #X03BC (nil "nuup" "Upright Greek Lowercase" 957) ;; #X03BD (nil "xiup" "Upright Greek Lowercase" 958) ;; #X03BE (nil "piup" "Upright Greek Lowercase" 960) ;; #X03C0 (nil "rhoup" "Upright Greek Lowercase" 961) ;; #X03C1 (nil "sigmaup" "Upright Greek Lowercase" 963) ;; #X03C3 (nil "tauup" "Upright Greek Lowercase" 964) ;; #X03C4 (nil "upsilonup" "Upright Greek Lowercase" 965) ;; #X03C5 (nil "phiup" "Upright Greek Lowercase" 981) ;; #X03D5 (nil "chiup" "Upright Greek Lowercase" 967) ;; #X03C7 (nil "psiup" "Upright Greek Lowercase" 968) ;; #X03C8 (nil "omegaup" "Upright Greek Lowercase" 969) ;; #X03C9 (nil "varepsilonup" "Upright Greek Lowercase" 949) ;; #X03B5 (nil "varthetaup" "Upright Greek Lowercase" 977) ;; #X03D1 (nil "varpiup" "Upright Greek Lowercase" 982) ;; #X03D6 (nil "varrhoup" "Upright Greek Lowercase" 1009) ;; #X03F1 (nil "varsigmaup" "Upright Greek Lowercase" 962) ;; #X03C2 (nil "varphiup" "Upright Greek Lowercase" 966) ;; #X03C6 ;; Other Greek Uppercase ("o G" "otherGamma" "Other Greek Uppercase" 120548) ;; #X1D6E4 ("o D" "otherDelta" "Other Greek Uppercase" 120549) ;; #X1D6E5 ("o J" "otherTheta" "Other Greek Uppercase" 120553) ;; #X1D6E9 ("o L" "otherLambda" "Other Greek Uppercase" 120556) ;; #X1D6EC ("o X" "otherXi" "Other Greek Uppercase" 120559) ;; #X1D6EF ("o P" "otherPi" "Other Greek Uppercase" 120561) ;; #X1D6F1 ("o S" "otherSigma" "Other Greek Uppercase" 120564) ;; #X1D6F4 ("o U" "otherUpsilon" "Other Greek Uppercase" 120566) ;; #X1D6F6 ("o F" "otherPhi" "Other Greek Uppercase" 120567) ;; #X1D6F7 ("o Y" "otherPsi" "Other Greek Uppercase" 120569) ;; #X1D6F9 ("o W" "otherOmega" "Other Greek Uppercase" 120570) ;; #X1D6FA ;; Slanted Greek Uppercase (nil "Gammasl" "Slanted Greek Uppercase" 120548) ;; #X1D6E4 (nil "Deltasl" "Slanted Greek Uppercase" 120549) ;; #X1D6E5 (nil "Thetasl" "Slanted Greek Uppercase" 120553) ;; #X1D6E9 (nil "Lambdasl" "Slanted Greek Uppercase" 120556) ;; #X1D6EC (nil "Xisl" "Slanted Greek Uppercase" 120559) ;; #X1D6EF (nil "Pisl" "Slanted Greek Uppercase" 120561) ;; #X1D6F1 (nil "Sigmasl" "Slanted Greek Uppercase" 120564) ;; #X1D6F4 (nil "Upsilonsl" "Slanted Greek Uppercase" 120566) ;; #X1D6F6 (nil "Phisl" "Slanted Greek Uppercase" 120567) ;; #X1D6F7 (nil "Psisl" "Slanted Greek Uppercase" 120569) ;; #X1D6F9 (nil "Omegasl" "Slanted Greek Uppercase" 120570) ;; #X1D6FA ;; Upright Greek Uppercase (nil "Gammaup" "Upright Greek Uppercase" 915) ;; #X0393 (nil "Deltaup" "Upright Greek Uppercase" 916) ;; #X0394 (nil "Thetaup" "Upright Greek Uppercase" 920) ;; #X0398 (nil "Lambdaup" "Upright Greek Uppercase" 923) ;; #X039B (nil "Xiup" "Upright Greek Uppercase" 926) ;; #X039E (nil "Piup" "Upright Greek Uppercase" 928) ;; #X03A0 (nil "Sigmaup" "Upright Greek Uppercase" 931) ;; #X03A3 (nil "Upsilonup" "Upright Greek Uppercase" 978) ;; #X03D2 (nil "Phiup" "Upright Greek Uppercase" 934) ;; #X03A6 (nil "Psiup" "Upright Greek Uppercase" 936) ;; #X03A8 (nil "Omegaup" "Upright Greek Uppercase" 937) ;; #X03A9 ;; Integrals (nil "varint" "Integrals" nil) (nil "variint" "Integrals" nil) (nil "variiint" "Integrals" nil) (nil "variiiint" "Integrals" nil) (nil "varidotsint" "Integrals" nil) (nil "oiint" "Integrals" 8751) ;; #X222F (nil "ointctrclockwise" "Integrals" 8755) ;; #X2233 (nil "ointclockwise" "Integrals" nil) (nil "sqint" "Integrals" 10774) ;; #X2A16 (nil "idotsint" "Integrals" nil) (nil "oiiint" "Integrals" 8752) ;; #X2230 (nil "varointctrclockwise" "Integrals" nil) (nil "varointclockwise" "Integrals" 8754) ;; #X2232 (nil "fint" "Integrals" 10767) ;; #X2A0F (nil "oiintctrclockwise" "Integrals" nil) (nil "varoiintclockwise" "Integrals" nil) (nil "oiiintctrclockwise" "Integrals" nil) (nil "varoiiintclockwise" "Integrals" nil) (nil "oiintclockwise" "Integrals" nil) (nil "varoiintctrclockwise" "Integrals" nil) (nil "oiiintclockwise" "Integrals" nil) (nil "varoiiintctrclockwise" "Integrals" nil) (nil "sqiint" "Integrals" nil) (nil "sqiiint" "Integrals" nil) ;; Mapping (nil "mappedfrom" "Mapping" 8612) ;; #X21A4 (nil "longmappedfrom" "Mapping" 10235) ;; #X27FB (nil "Mapsto" "Mapping" 10503) ;; #X2907 (nil "Longmapsto" "Mapping" 10238) ;; #X27FE (nil "Mappedfrom" "Mapping" 10502) ;; #X2906 (nil "Longmappedfrom" "Mapping" 10237) ;; #X27FD (nil "mmapsto" "Mapping" nil) (nil "longmmapsto" "Mapping" nil) (nil "mmappedfrom" "Mapping" nil) (nil "longmmappedfrom" "Mapping" nil) (nil "Mmapsto" "Mapping" nil) (nil "Longmmapsto" "Mapping" nil) (nil "Mmappedfrom" "Mapping" nil) (nil "Longmmappedfrom" "Mapping" nil) ;; Arrows (nil "dashleftarrow" "Arrows" 10510) ;; #X290E (nil "dashrightarrow" "Arrows" 10511) ;; #X290F (nil "dashleftrightarrow" "Arrows" nil) (nil "leftsquigarrow" "Arrows" 8668) ;; #X21DC (nil "Nearrow" "Arrows" 8663) ;; #X21D7 (nil "Searrow" "Arrows" 8664) ;; #X21D8 (nil "Nwarrow" "Arrows" 8662) ;; #X21D6 (nil "Swarrow" "Arrows" 8665) ;; #X21D9 (nil "leadstoext" "Arrows" 12316) ;; #X301C (nil "leadsto" "Arrows" 10547) ;; #X2933 (nil "boxright" "Arrows" nil) (nil "Diamondright" "Arrows" nil) (nil "circleright" "Arrows" nil) (nil "boxleft" "Arrows" nil) (nil "Diamondleft" "Arrows" nil) (nil "circleleft" "Arrows" nil) (nil "boxdotright" "Arrows" nil) (nil "Diamonddotright" "Arrows" nil) (nil "circledotright" "Arrows" nil) (nil "boxdotleft" "Arrows" nil) (nil "Diamonddotleft" "Arrows" nil) (nil "circledotleft" "Arrows" nil) (nil "boxRight" "Arrows" nil) (nil "boxLeft" "Arrows" nil) (nil "boxdotRight" "Arrows" nil) (nil "boxdotLeft" "Arrows" nil) (nil "DiamondRight" "Arrows" nil) (nil "DiamondLeft" "Arrows" nil) (nil "DiamonddotRight" "Arrows" nil) (nil "DiamonddotLeft" "Arrows" nil) ;; Neg Arrows (nil "ntwoheadrightarrow" "Neg Arrows" 10496) ;; #X2900 (nil "ntwoheadleftarrow" "Neg Arrows" 11060) ;; #X2B34 ;; Binary Op (nil "multimap" "Binary Op" 8888) ;; #X22B8 (nil "multimapinv" "Binary Op" 10204) ;; #X27DC (nil "multimapboth" "Binary Op" 10719) ;; #X29DF (nil "multimapdot" "Binary Op" nil) (nil "multimapdotinv" "Binary Op" nil) (nil "multimapdotboth" "Binary Op" nil) (nil "multimapdotbothA" "Binary Op" 8886) ;; #X22B6 (nil "multimapdotbothB" "Binary Op" 8887) ;; #X22B7 (nil "multimapbothvert" "Binary Op" nil) (nil "multimapdotbothvert" "Binary Op" nil) (nil "multimapdotbothAvert" "Binary Op" nil) (nil "multimapdotbothBvert" "Binary Op" nil) (nil "Wr" "Binary Op" nil) (nil "sqcupplus" "Binary Op" nil) (nil "sqcapplus" "Binary Op" nil) (nil "medcirc" "Binary Op" 9898) ;; #X26AA (nil "medbullet" "Binary Op" 9899) ;; #X26AB (nil "invamp" "Binary Op" 8523) ;; #X214B (nil "Diamonddot" "Binary Op" 10192) ;; #X27D0 (nil "Diamond" "Binary Op" 9671) ;; #X25C7 (nil "Diamondblack" "Binary Op" 9670) ;; #X25C6 (nil "strictif" "Binary Op" 8880) ;; #X22B0 (nil "strictfi" "Binary Op" 8881) ;; #X22B1 (nil "strictiff" "Binary Op" nil) (nil "circledless" "Binary Op" 10688) ;; #X29C0 (nil "circledgtr" "Binary Op" 10689) ;; #X29C1 (nil "circledwedge" "Binary Op" nil) (nil "circledvee" "Binary Op" nil) (nil "circledbar" "Binary Op" 10678) ;; #X29B6 (nil "circledbslash" "Binary Op" 10680) ;; #X29B8 (nil "bignplus" "Binary Op" nil) (nil "bigsqcupplus" "Binary Op" nil) (nil "bigsqcapplus" "Binary Op" nil) (nil "bigsqcap" "Binary Op" 10757) ;; #X2A05 (nil "varprod" "Binary Op" 10761) ;; #X2A09 ;; Relational (nil "doteq" "Relational" 8784) ;; #X2250 (nil "VDash" "Relational" 8875) ;; #X22AB (nil "VvDash" "Relational" nil) (nil "cong" "Relational" 8773) ;; #X2245 (nil "preceqq" "Relational" 10931) ;; #X2AB3 (nil "succeqq" "Relational" 10932) ;; #X2AB4 (nil "coloneqq" "Relational" nil) (nil "varparallel" "Relational" 11005) ;; #X2AFD (nil "nvarparallel" "Relational" nil) (nil "varparallelinv" "Relational" nil) (nil "nvarparallelinv" "Relational" nil) (nil "colonapprox" "Relational" nil) (nil "colonsim" "Relational" nil) (nil "Colonapprox" "Relational" nil) (nil "Colonsim" "Relational" nil) (nil "eqqcolon" "Relational" 8789) ;; #X2255 (nil "coloneq" "Relational" nil) (nil "eqcolon" "Relational" 8761) ;; #X2239 (nil "Coloneqq" "Relational" 10868) ;; #X2A74 (nil "Eqqcolon" "Relational" nil) ;; Neg Rel (nil "nprecsim" "Neg Rel" nil) (nil "nsuccsim" "Neg Rel" nil) (nil "nlesssim" "Neg Rel" 8820) ;; #X2274 (nil "ngtrsim" "Neg Rel" 8821) ;; #X2275 (nil "nlessapprox" "Neg Rel" nil) (nil "ngtrapprox" "Neg Rel" nil) (nil "npreccurlyeq" "Neg Rel" 8928) ;; #X22E0 (nil "nsucccurlyeq" "Neg Rel" 8929) ;; #X22E1 (nil "ngtrless" "Neg Rel" 8825) ;; #X2279 (nil "nlessgtr" "Neg Rel" 8824) ;; #X2278 (nil "nbumpeq" "Neg Rel" nil) (nil "nBumpeq" "Neg Rel" nil) (nil "nbacksim" "Neg Rel" nil) (nil "nbacksimeq" "Neg Rel" nil) (nil "nasymp" "Neg Rel" 8813) ;; #X226D (nil "nequiv" "Neg Rel" 8802) ;; #X2262 (nil "nsim" "Neg Rel" 8769) ;; #X2241 (nil "napprox" "Neg Rel" 8777) ;; #X2249 (nil "nsubset" "Neg Rel" 8836) ;; #X2284 (nil "nsupset" "Neg Rel" 8837) ;; #X2285 (nil "nll" "Neg Rel" nil) (nil "ngg" "Neg Rel" nil) (nil "nthickapprox" "Neg Rel" 8777) ;; #X2249 (nil "napproxeq" "Neg Rel" nil) (nil "nprecapprox" "Neg Rel" nil) (nil "nsuccapprox" "Neg Rel" nil) (nil "npreceqq" "Neg Rel" nil) (nil "nsucceqq" "Neg Rel" nil) (nil "nsimeq" "Neg Rel" 8772) ;; #X2244 (nil "notin" "Neg Rel" 8713) ;; #X2209 (nil "notni" "Neg Rel" 8716) ;; #X220C (nil "nSubset" "Neg Rel" nil) (nil "nSupset" "Neg Rel" nil) (nil "nsqsubseteq" "Neg Rel" 8930) ;; #X22E2 (nil "nsqsupseteq" "Neg Rel" 8931) ;; #X22E3 (nil "nsqsubset" "Neg Rel" nil) (nil "nsqsupset" "Neg Rel" nil) ;; Delimeters (nil "Lbag" "Delimeters" 10181) ;; #X27C5 (nil "Rbag" "Delimeters" 10182) ;; #X27C6 (nil "llbracket" "Delimeters" 10214) ;; #X27E6 (nil "rrbracket" "Delimeters" 10215) ;; #X27E7 ;; Accents (nil "widearc" "Accents" 8978) ;; #X2312 (nil "widearcarrow" "Accents" 8405) ;; #X20D5 (nil "wideOarc" "Accents" 8405) ;; #X20D5 (nil "wideparen" "Accents" 9180) ;; #X23DC (nil "widering" "Accents" nil) ;; Misc ("v 0" "varemptyset" "Misc" 8709) ;; #X2205 (nil "lJoin" "Misc" 8905) ;; #X22C9 (nil "rJoin" "Misc" 8906) ;; #X22CA (nil "Join" "Misc" 8904) ;; #X22C8 (nil "openJoin" "Misc" nil) (nil "lrtimes" "Misc" nil) (nil "opentimes" "Misc" nil) (nil "nplus" "Misc" nil) (nil "Top" "Misc" 10986) ;; #X2AEA (nil "Bot" "Misc" 10987) ;; #X2AEB (nil "Perp" "Misc" 10987) ;; #X2AEB (nil "boxast" "Misc" nil) (nil "boxbslash" "Misc" nil) (nil "boxbar" "Misc" nil) (nil "boxslash" "Misc" nil) (nil "lambdaslash" "Misc" 411) ;; #X019B (nil "lambdabar" "Misc" 411) ;; #X019B (nil "varclubsuit" "Misc" 9831) ;; #X2667 (nil "vardiamondsuit" "Misc" 9830) ;; #X2666 (nil "varheartsuit" "Misc" 9829) ;; #X2665 (nil "varspadesuit" "Misc" 9828)) ;; #X2664 "Alist of kpfonts symbols. Each entry should be a list with upto four elements, KEY, VALUE, MENU and CHARACTER. KEY is the key (after `LaTeX-kpfonts-abbrev-prefix') to be redefined in kpfonts minor mode. If KEY is nil, the symbol has no associated keystroke \(it is available in the menu, though\). VALUE can be a string with the name of the macro to be inserted, or a function to be called. The macro must be given without the leading backslash. The third element MENU is the name of the submenu where the command should be added. MENU can be either a string \(e.g. \"greek\"\), a list (e.g. \(\"AMS\" \"Delimiters\"\)\) or nil. If MENU is nil, no menu item will be created. The fourth element CHARACTER is a Unicode character position for menu display. When nil, no character is shown. See also `LaTeX-kpfonts-menu'.") (defvar LaTeX-kpfonts-abbrev-prefix LaTeX-math-abbrev-prefix "Prefix key for use in `LaTeX-kpfonts-mode'. This has to be a string representing a key sequence in a format understood by the `kbd' macro. This corresponds to the syntax usually used in the Emacs and Elisp manuals.") (defun LaTeX-kpfonts-abbrev-prefix () "Make a key definition from the variable `LaTeX-kpfonts-abbrev-prefix'." (if (stringp LaTeX-kpfonts-abbrev-prefix) (read-kbd-macro LaTeX-kpfonts-abbrev-prefix) LaTeX-kpfonts-abbrev-prefix)) (defvar LaTeX-kpfonts-keymap (make-sparse-keymap) "Keymap used for `LaTeX-kpfonts-mode' commands.") (defvar LaTeX-kpfonts-menu nil "Menu containing commands provided by kpfonts LaTeX package. The menu entries will be generated dynamically, but you can specify the sequence by initializing this variable.") ;; We set `LaTeX-kpfonts-menu' after its definition because otherwise, resetting ;; AUCTeX with `C-u C-c C-n' would create duplicate entries in menu. (setq LaTeX-kpfonts-menu '("Kpfonts" ("Insert Font" ["Math Upright" (TeX-font nil ?\C-h) :keys "C-c C-f C-h"] ["Math Fraktur" (TeX-font nil ?\C-k) :keys "C-c C-f C-k"] ["Math Script" (TeX-font nil ?\C-p) :keys "C-c C-f C-p"] ["Slanted Small Caps" (TeX-font nil ?\C-l) :keys "C-c C-f C-l"] ["Other Small Caps" (TeX-font nil ?\C-o) :keys "C-c C-f C-o"] ["Other Slanted Small Caps" (TeX-font nil ?\C-q) :keys "C-c C-f C-q"]) ("Replace Font" ["Math Upright" (TeX-font t ?\C-h) :keys "C-u C-c C-f C-h"] ["Math Fraktur" (TeX-font t ?\C-k) :keys "C-u C-c C-f C-k"] ["Math Script" (TeX-font t ?\C-p) :keys "C-u C-c C-f C-p"] ["Slanted Small Caps" (TeX-font t ?\C-l) :keys "C-u C-c C-f C-l"] ["Other Small Caps" (TeX-font t ?\C-o) :keys "C-u C-c C-f C-o"] ["Other Slanted Small Caps" (TeX-font t ?\C-q) :keys "C-u C-c C-f C-q"]) ["Delete Font" (TeX-font t ?\C-d) :keys "C-c C-f C-d"] "-" ("Other Greek Lowercase") ("Slanted Greek Lowercase") ("Upright Greek Lowercase") ("Other Greek Uppercase") ("Slanted Greek Uppercase") ("Upright Greek Uppercase") ("Integrals") ("Mapping") ("Arrows") ("Neg Arrows") ("Binary Op") ("Relational") ("Neg Rel") ("Delimeters") ("Accents") ("Misc"))) (let ((math (reverse LaTeX-kpfonts-default)) (map LaTeX-kpfonts-keymap) (unicode (and LaTeX-math-menu-unicode (fboundp 'decode-char)))) (while math (let* ((entry (car math)) (key (nth 0 entry)) (prefix (and unicode (nth 3 entry))) value menu name) (setq math (cdr math)) (if (and prefix (setq prefix (decode-char 'ucs (nth 3 entry)))) (setq prefix (concat (string prefix) " \\")) (setq prefix "\\")) (if (listp (cdr entry)) (setq value (nth 1 entry) menu (nth 2 entry)) (setq value (cdr entry) menu nil)) (if (stringp value) (progn (setq name (intern (concat "LaTeX-kpfonts-" value))) (fset name (list 'lambda (list 'arg) (list 'interactive "*P") (list 'LaTeX-math-insert value 'arg)))) (setq name value)) (if key (progn (setq key (cond ((numberp key) (char-to-string key)) ((stringp key) (read-kbd-macro key)) (t (vector key)))) (define-key map key name))) (if menu (let ((parent LaTeX-kpfonts-menu)) (if (listp menu) (progn (while (cdr menu) (let ((sub (assoc (car menu) LaTeX-kpfonts-menu))) (if sub (setq parent sub) (setcdr parent (cons (list (car menu)) (cdr parent)))) (setq menu (cdr menu)))) (setq menu (car menu)))) (let ((sub (assoc menu parent))) (if sub (if (stringp value) (setcdr sub (cons (vector (concat prefix value) name t) (cdr sub))) (error "Cannot have multiple special kpfonts menu items")) (setcdr parent (cons (if (stringp value) (list menu (vector (concat prefix value) name t)) (vector menu name t)) (cdr parent))))))))) ;; Make the kpfonts prefix char available if it has not been used as a prefix. (unless (lookup-key map (LaTeX-kpfonts-abbrev-prefix)) (define-key map (LaTeX-kpfonts-abbrev-prefix) 'self-insert-command))) (define-minor-mode LaTeX-kpfonts-mode "A minor mode with easy access to kpfonts macros. Easy insertion of kpfonts symbols. If you give a prefix argument, the symbols will be surrounded by dollar signs. The following commands are defined: \\{LaTeX-kpfonts-mode-map}" nil nil (list (cons (LaTeX-kpfonts-abbrev-prefix) LaTeX-kpfonts-keymap)) (if LaTeX-kpfonts-mode (easy-menu-add LaTeX-kpfonts-mode-menu LaTeX-kpfonts-mode-map) (easy-menu-remove LaTeX-kpfonts-mode-menu)) (TeX-set-mode-name)) (easy-menu-define LaTeX-kpfonts-mode-menu LaTeX-kpfonts-mode-map "Menu used in kpfonts minor mode." LaTeX-kpfonts-menu) (defvar LaTeX-kpfonts-mode-enable LaTeX-math-mode "If non-nil, enable kpfonts minor mode by default.") (if LaTeX-kpfonts-mode-enable (LaTeX-kpfonts-mode)) ;;; Kpfonts Minor Mode ends here (TeX-add-style-hook "kpfonts" (lambda () (unless (LaTeX-provided-package-options-member "kpfonts" "notextcomp") (TeX-run-style-hooks "textcomp")) (unless (LaTeX-provided-package-options-member "kpfonts" "noamsmath") (TeX-run-style-hooks "amsmath")) (TeX-add-symbols ;; Text fonts options '("classicstylenums" 1) ;; New text commands '("scslshape" 0) '("otherscshape" 0) '("otherscslshape" 0) "othertailQ" "othertailscq" "othertailscslq" ;; Variant integrate symbols '("D" 1) ;; New extensive symbols '("widearc" 1) '("widearcarrow" 1) '("wideOarc" 1) '("wideparen" 1) '("widering" 1)) ;; New fonts by `kpfonts'. (setq TeX-font-list (append TeX-font-list '(;; Math fonts (?\C-h "" "" "\\mathup{" "}") (?\C-k "" "" "\\mathfrak{" "}") (?\C-p "" "" "\\mathscr{" "}") ;; Text fonts (?\C-l "\\textscsl{" "}") (?\C-o "\\textothersc{" "}") (?\C-q "\\textotherscsl{" "}")))) ;; Fontification (when (and (featurep 'font-latex) (eq TeX-install-font-lock 'font-latex-setup)) (font-latex-add-keywords '(("textscsl" "{") ("textothersc" "{") ("textotherscsl" "{")) 'bold-command) (font-latex-add-keywords '(("textscsl" "{") ("textotherscsl" "{")) 'italic-command) (font-latex-add-keywords '(("scslshape") ("otherscshape") ("otherscslshape")) 'bold-declaration) (font-latex-add-keywords '(("scslshape") ("otherscslshape")) 'italic-declaration))) LaTeX-dialect) (defvar LaTeX-kpfonts-package-options '(;; Main global options "light" "fulloldstylenums" "fulloldstyle" "fullveryoldstyle" ;; Other global options "nomath" "notext" "nosf" "nott" "onlyrm" "noamsmath" "notextcomp" ;; Text fonts options "lighttext" "oldstylenums" "oldstyle" "veryoldstyle" "rmx" "largesmallcaps" "easyscsl" "nofligatures" "lightmath" ;; Math typesetting options "sfmath" "sfmathbb" "rmmathbb" "nomathscript" "mathcalasscript" "classicReIm" "uprightRoman" "frenchstyle" "upright" "oldstylenumsmath" "oldstylemath" "veryoldstylemath" "narrowiints" "partialup" "widermath" "noDcommand" ;; Position of subscripts and superscripts "intlimits" "fullintlimits" "nointlimits" "sumlimits" "fullsumlimits" "nosumlimits" ;; Greek letters in math mode, options "uprightgreeks" "slantedGreeks" ;; Other `amsmath' options "namelimits" "nonamelimits" "leqno" "reqno" "centertags" "tbtags" ;; Misc "nowarning") "Package options for the kpfonts package.") ;; kpfonts.el ends here auctex-11.91/style/latexinfo.el000066400000000000000000000127421313533625700165070ustar00rootroot00000000000000;;; latexinfo.el - Support for LaTeXinfo files. ;; Copyright (C) 1993 Free Software Foundation, Inc. ;; Author: Marc Gemis ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; ;; You should have received a copy of the GNU General Public License ;; along with this program; if not, write to the Free Software ;; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ;;; Code: ;;; LaTeXinfo mode (defvar TeX-latexinfo-node-regexp '("\\\\node[ \t]+\\([^,\n\r%]+\\)" 1 TeX-auto-label) "Matches LaTeXinfo \\node commands, only current node will be found. We ignore next, previous and up fields.") (defvar LaTeXinfo-mode nil "Non-nil means LaTeXinfo minor mode is active.") (make-variable-buffer-local 'LaTeXinfo-mode) (defvar LaTeXinfo-mode-map nil "Keymap containing LaTeXinfo commands.") (if LaTeXinfo-mode-map () (setq LaTeXinfo-mode-map (make-sparse-keymap)) (define-key LaTeXinfo-mode-map "\C-c\C-u\C-b" 'latexinfo-format-buffer) (define-key LaTeXinfo-mode-map "\C-c\C-u\C-r" 'latexinfo-format-region) (define-key LaTeXinfo-mode-map "\C-c\C-u\C-s" 'latexinfo-show-structure) (define-key LaTeXinfo-mode-map "\C-c\C-ud" 'makke:latexinfo-delete-structure) (define-key LaTeXinfo-mode-map "\C-c\C-ug" 'latexinfo-goto-node) (define-key LaTeXinfo-mode-map "\C-c\C-ui" 'makke:latexinfo-structure)) (or (assq 'LaTeXinfo-mode minor-mode-map-alist) (setq minor-mode-map-alist (cons (cons 'LaTeXinfo-mode LaTeXinfo-mode-map) minor-mode-map-alist))) (defun TeX-arg-latexinfo-index (optional &optional prompt) "Prompt for a LaTeXinfo index type with completion." (TeX-argument-insert (completing-read (TeX-argument-prompt optional prompt "Index") '(("cp") ("vr") ("fn") ("tp") ("pg") ("ky")) nil t) optional)) (defun LaTeX-item-latexinfo-menu () "Insert a new menu item" (insert "* ::") (backward-char 2)) (defun latexinfo-goto-node () ; temporarily here, later in latexinfo-upd.el ?? "Place pointer on the node given by the user, read node with completion This fails when the user types in the label of something else" (interactive) (let ((node-name (completing-read "Goto Node: " (LaTeX-label-list)))) (goto-char (point-min)) (if (re-search-forward (concat TeX-esc "node[ \\t]+" node-name "," "\\|" TeX-esc "label{" LaTeX-section-label node-name "\\|" TeX-esc "label{" node-name ) (point-max) t) (beginning-of-line 1) (error "No such node")))) ;;; Hook (TeX-add-style-hook "latexinfo" (function (lambda () (require 'latexinfo) (require 'latexinfo-structure) (require 'min-map) (setq LaTeXinfo-mode t) (TeX-auto-add-regexp TeX-latexinfo-node-regexp) (TeX-add-symbols '("node" (TeX-arg-literal " ") (TeX-arg-free TeX-arg-define-label "Node name") (TeX-arg-literal ", ") (TeX-arg-free TeX-arg-ref "Next node") (TeX-arg-literal ", ") (TeX-arg-free TeX-arg-ref "Previous node") (TeX-arg-literal ", ") (TeX-arg-free TeX-arg-ref "Up node")) '("setfilename" TeX-arg-file) '("var" t) '("dfn" t) '("emph" t) '("kbd" t) '("code" t) '("samp" t) '("key" t) '("ctrl" t) '("file" t) '("comment" (TeX-arg-literal " ") (TeX-arg-free "Comment")) '("c" (TeX-arg-literal " ") (TeX-arg-free "Comment")) '("cindex" t) '("cpsubindex" 2) '("cpindexbold" t) '("newindex" TeX-arg-latexinfo-index) '("br" nil) '("w" "Text") '("dots" nil) '("refill" nil) '("bullet" nil) '("copyright" nil) '("sp" nil) '("xref" TeX-arg-ref) '("pxref" TeX-arg-ref) '("inforef" (TeX-arg-literal "{") (TeX-arg-free "Name of node") (TeX-arg-literal ", ") (TeX-arg-free "Name for note") (TeX-arg-literal ", ") (TeX-arg-free TeX-arg-file "Info file") (TeX-arg-literal "}"))) (LaTeX-add-environments "menu" "tex" "ignore" "ifinfo" "iftex" "example" "same" "display" "format") ; Menu's have a special kind of items (make-local-variable 'LaTeX-item-list) (setq LaTeX-item-list (cons '("menu" . LaTeX-item-latexinfo-menu) LaTeX-item-list)) (make-local-variable 'TeX-font-list) (setq TeX-font-list (list (list ?\C-b (concat TeX-esc "b{") "}") (list ?\C-c (concat TeX-esc "sc{") "}") (list ?\C-e (concat TeX-esc "emph{") "}") (list ?\C-i (concat TeX-esc "i{") "}") (list ?\C-r (concat TeX-esc "r{") "}") (list ?\C-s (concat TeX-esc "samp{") "}") (list ?\C-t (concat TeX-esc "t{") "}") (list ?s (concat TeX-esc "strong{") "}") (list ?\C-f (concat TeX-esc "file{") "}") (list ?\C-d (concat TeX-esc "dfn{") "}") (list ?\C-v (concat TeX-esc "var{") "}") (list ?k (concat TeX-esc "key{") "}") (list ?\C-k (concat TeX-esc "kbd{") "}") (list ?c (concat TeX-esc "code{") "}") (list ?C (concat TeX-esc "cite{") "}"))) ;; need the following stuff to let xref and pxref work (make-local-variable 'LaTeX-section-label) (setq LaTeX-section-label ""))) LaTeX-dialect) ;;; latexinfo.el ends here auctex-11.91/style/letter.el000066400000000000000000000130471313533625700160140ustar00rootroot00000000000000;;; letter.el - Special code for letter style. ;; Copyright (C) 1993, 2012, 2013, 2014 Free Software Foundation, Inc. ;; Author: Per Abrahamsen ;; Maintainer: auctex-devel@gnu.org ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Code: (defvar LaTeX-letter-class-options '("a4paper" "a5paper" "b5paper" "letterpaper" "legalpaper" "executivepaper" "landscape" "10pt" "11pt" "12pt" "oneside" "twoside" "draft" "final" "leqno" "fleqn") "Package options for the letter class.") ;; You may want to define this in tex-site.el to contain your ;; organizations address. (defvar LaTeX-letter-sender-address "" "Initial value when prompting for a sender address in the letter style.") (TeX-add-style-hook "letter" (lambda () (LaTeX-add-environments '("letter" LaTeX-env-recipient)) (LaTeX-add-pagestyles "headings" "firstpage") (setq LaTeX-default-document-environment "letter") (TeX-add-symbols '("name" "Sender: ") '("address" "Sender address: ") '("signature" "Signature: ") '("opening" "Opening: ") '("closing" "Closing: ") "location" "telephone" "makelabels" "stopbreaks" "startbreaks" "cc" "encl" "ps" "stopletter" "returnaddress" "startlabels" "mlabel" "descriptionlabel" "ccname" "enclname" "pagename" "headtoname") ;; Fontification (when (and (featurep 'font-latex) (eq TeX-install-font-lock 'font-latex-setup)) (font-latex-add-keywords '(("name" "{") ("address" "{") ("signature" "{") ("opening" "{") ("closing" "{") ("location" "{") ("telephone" "{") ("cc" "{") ("encl" "{") ("ps" "{")) 'function))) LaTeX-dialect) (defun LaTeX-env-recipient (environment) "Insert ENVIRONMENT and prompt for recipient and address." (let ((sender (TeX-read-string "Sender: " (user-full-name))) (sender-address (TeX-read-string "Sender address: " LaTeX-letter-sender-address)) (recipient (TeX-read-string "Recipient: ")) (address (TeX-read-string "Recipient address: ")) (signature (TeX-read-string "Signature: ")) (opening (TeX-read-string "Opening: ")) (closing (TeX-read-string "Closing: ")) (date (TeX-read-string "Date: " (LaTeX-today)))) (insert TeX-esc "name" TeX-grop sender TeX-grcl) (newline-and-indent) (if (not (zerop (length sender-address))) (progn (setq LaTeX-letter-sender-address sender-address) (insert TeX-esc "address" TeX-grop sender-address TeX-grcl) (newline-and-indent))) (if (not (zerop (length signature))) (progn (insert TeX-esc "signature" TeX-grop signature TeX-grcl) (newline-and-indent))) (if (not (zerop (length date))) (progn (insert TeX-esc "renewcommand" TeX-grop TeX-esc "today" TeX-grcl TeX-grop date TeX-grcl) (newline-and-indent))) (newline-and-indent) (let ((indentation (current-column))) (LaTeX-insert-environment environment (concat TeX-grop recipient (if (not (zerop (length address))) (concat (if (not (zerop (length recipient))) (concat " " TeX-esc TeX-esc " ")) address)) TeX-grcl)) (save-excursion ; Fix indentation of address (if (search-backward TeX-grcl nil 'move) (let ((addr-end (point-marker))) (if (search-backward TeX-grop nil 'move) (let ((addr-column (current-column))) (while (search-forward (concat TeX-esc TeX-esc) (marker-position addr-end) 'move) (progn (newline) (indent-to addr-column)))))))) (insert "\n") (indent-to indentation)) (insert TeX-esc "opening" TeX-grop (if (zerop (length opening)) (concat TeX-esc " ") opening) TeX-grcl "\n") (indent-relative-maybe) (save-excursion (insert "\n" TeX-esc "closing" TeX-grop (if (zerop (length closing)) (concat TeX-esc " ") closing) TeX-grcl "\n") (indent-relative-maybe)))) (defun LaTeX-today nil "Return a string representing todays date according to flavor." (interactive) (let ((ctime-string (current-time-string)) (month-alist '(("Jan". "01") ("Feb" . "02") ("Mar" . "03") ("Apr" . "04") ("May" . "05") ("Jun" . "06") ("Jul" . "07") ("Aug" . "08") ("Sep" . "09") ("Oct" . "10") ("Nov" . "11") ("Dec" . "12")))) (string-match "^\\S-+\\s-+\\(\\S-+\\)\\s-+\\(\\S-+\\)\\s-+\\S-+\\s-+\\(\\S-+\\)" ctime-string) (let ((year (substring ctime-string (match-beginning 3) (match-end 3))) (month (substring ctime-string (match-beginning 1) (match-end 1))) (day (substring ctime-string (match-beginning 2) (match-end 2)))) (if (assoc month month-alist) (progn (setq month (cdr (assoc month month-alist))) (if (> 2 (length day)) (setq day (concat "0" day))))) (format "%s-%s-%s" year month day)))) ;;; letter.el ends here auctex-11.91/style/lettrine.el000066400000000000000000000042041313533625700163360ustar00rootroot00000000000000;;; lettrine.el --- AUCTeX style for `lettrine.sty' ;; Copyright (C) 2011 Free Software Foundation, Inc. ;; Author: Mads Jensen ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `lettrine.sty'. ;;; Code: (defvar LaTeX-lettrine-key-val-options '(("lines") ("lhang") ("loversize") ("lraise") ("findent") ("nindent") ("slope") ("ante") ("image" ("true"))) "Key=value options for \\lettrine") (TeX-add-style-hook "lettrine" (lambda () (TeX-add-symbols '("lettrine" [ TeX-arg-key-val LaTeX-lettrine-key-val-options ] "Letter" "Text") '("LettrineImageFalse" 0) ;; all of the below can be configured with either \setlength or ;; \renewcommand '("LettrineFont" 0) '("LettrineFontHook" 0) '("LettrineTextFont" 0) '("LettrineWidth" 0) '("DefaultLhang" 0) '("DefaultLoversize" 0) '("DefaultLraise" 0) '("DefaultFindent" 0) '("DefaultNindent" 0) '("DefaultSlope" 0) ;; above settings can also be input a file, and pointed to with ;; \renewcommand '("DefaultOptionsFile" 0)) ;; Fontification (when (and (fboundp 'font-latex-add-keywords) (eq TeX-install-font-lock 'font-latex-setup)) (font-latex-add-keywords '(("lettrine" "[{{")) 'textual))) LaTeX-dialect) (defvar LaTeX-lettrine-package-options nil "Package options for the lettrine package.") ;;; lettrine.el ends here auctex-11.91/style/lipsum.el000066400000000000000000000026161313533625700160260ustar00rootroot00000000000000;;; lipsum.el --- AUCTeX style for `lipsum.sty'. ;; Copyright (C) 2013 Free Software Foundation, Inc. ;; Maintainer: auctex-devel@gnu.org ;; Author: Mosè Giordano ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `lipsum.sty'. ;;; Code: (TeX-add-style-hook "lipsum" (lambda () (TeX-add-symbols '("lipsum" [ "Range of paragraph (max: 150)" ]) '("lipsum*" [ "Range of paragraph (max: 150)" ]) '("setlipsumdefault" [ "Default range of paragraph (max: 150)" ]) '("ChangeLipsumPar" 0))) LaTeX-dialect) (defvar LaTeX-lipsum-package-options '("nopar") "Package options for the lipsum package.") ;; lipsum.el ends here auctex-11.91/style/listings.el000066400000000000000000000331721313533625700163520ustar00rootroot00000000000000;;; listings.el --- AUCTeX style for `listings.sty' ;; Copyright (C) 2004, 2005, 2009, 2013-2017 Free Software Foundation, Inc. ;; Author: Ralf Angeli ;; Maintainer: auctex-devel@gnu.org ;; Created: 2004-10-17 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `listings.sty'. ;; ;; May 2015: The style detects new environments defined with ;; `\lstnewenvironment'. Users need to invoke `C-c C-n' for this. ;; ;; October 2015: The style detects new "styles" defined with ;; `\lstdefinestyle' and offers them during key-value query. ;; ;; January 2017: Put label in opt. argument of environment. ;; ;; FIXME: Please make me more sophisticated! ;;; Code: ;; Needed for compiling `pushnew': (eval-when-compile (require 'cl)) ;; The following are options taken from chapter 4 of the listings ;; manual (2007/02/22 Version 1.4). (defvar LaTeX-listings-key-val-options '(;; Space and placement ("float" ("t" "b" "p" "h")) ; Support [*] as an optional prefix and that ; tbph are not exclusive. ("floatplacement" ("t" "b" "p" "h")) ("aboveskip") ("belowskip") ("lineskip") ("boxpos" ("b" "c" "t")) ;; The printed range ("print" ("true" "false")) ("firstline") ("lastline") ("linerange") ("showlines" ("true" "false")) ("emptylines") ("gobble") ;; Languages and styles ("style") ("language") ("alsolanguage") ("defaultdialect") ("printpod" ("true" "false")) ("usekeywordsintag" ("true" "false")) ("tagstyle") ("markfirstintag") ("makemacrouse" ("true" "false")) ;; Figure out the appearance ("basicstyle") ("identifierstyle") ("commentstyle") ("stringstyle") ("keywordstyle") ("classoffset") ("texcsstyle") ("directivestyle") ("emph") ("moreemph") ("deleteemph") ("emphstyle") ("delim") ("moredelim") ("deletedelim") ;; Getting all characters right ("extendedchars" ("true" "false")) ("inputencoding") ; Could make use of `latex-inputenc-coding-alist'. ("upquote" ("true" "false")) ("tabsize") ("showtabs" ("true" "false")) ("tab") ("showspaces" ("true" "false")) ("showstringspaces" ("true" "false")) ("formfeed") ;; Line numbers ("numbers" ("none" "left" "right")) ("stepnumber") ("numberfirstline" ("true" "false")) ("numberstyle") ("numbersep") ("numberblanklines" ("true" "false")) ("firstnumber" ("auto" "last")) ; Can also take a number. ("name") ;; Captions ("title") ("caption") ; Insert braces? ;; Label is inserted as part of environment insertion; see below ;; for "lstlisting" in style hook ;; ("label") ("nolol" ("true" "false")) ("numberbychapter" ("true" "false")) ("captionpos" ("t" "b")) ; Can be a subset of tb. ("abovecaptionskip") ("belowcaptionskip") ;; Margins and line shape ("linewidth") ("xleftmargin") ("xrightmargin") ("resetmargins" ("true" "false")) ("breaklines" ("true" "false")) ("breakatwhitespace" ("true" "false")) ("prebreak") ("postbreak") ("breakindent") ("breakautoindent" ("true" "false")) ;; Frames ("frame" ("none" "leftline" "topline" "bottomline" "lines" "single" "shadowbox" ;; Alternative to the above values. A subset of trblTRBL can be ;; given. "t" "r" "b" "l" "T" "R" "B" "L")) ("frameround" ("t" "f")) ; The input actually has to be four times {t,f}. ("framesep") ("rulesep") ("framerule") ("framexleftmargin") ("framexrightmargin") ("framextopmargin") ("framebottommargin") ("backgroundcolor") ("rulecolor") ("fillcolor") ("fulesepcolor") ("frameshape") ;; Indexing ("index") ("moreindex") ("deleteindex") ("indexstyle") ;; Column alignment ("columns" ("fixed" "flexible" "fullflexible" "spaceflexible")) ; ; Also supports an optional ; argument with {c,l,r}. ("flexiblecolumns" ("true" "false")) ("keepspaces" ("true" "false")) ("basewidth") ("fontadjust" ("true" "false")) ;; Escaping to LaTeX ("texcl" ("true" "false")) ("mathescape" ("true" "false")) ("escapechar") ("escapeinside") ("escapebegin") ("escapeend") ;; Interface to fancyvrb ("fancyvrb" ("true" "false")) ("fvcmdparams") ("morefvcmdparams") ;; Language definitions ("keywordsprefix") ("keywords") ("morekeywords") ("deletekeywords") ("texcs") ("moretexcs") ("deletetexcs") ("directives") ("moredirectives") ("deletedirectives") ("sensitive" ("true" "false")) ("alsoletter") ("alsodigit") ("alsoother") ("otherkeywords") ("tag") ("string") ("morestring") ("deletestring") ("comment") ("morecomment") ("deletecomment") ("keywordcomment") ("morekeywordcomment") ("deletekeywordcomment") ("keywordcommentsemicolon") ("podcomment" ("true" "false")) ;; The following are all options from chapter 5, which are ;; experimental ;; Export of identifiers ("procnamekeys") ("moreprocnamekeys") ("deleteprocnamekeys") ("procnamestyle") ("indexprocnames" ("true" "false")) ;; Hyperlink references ("hyperref") ("morehyperref") ("deletehyperref") ("hyperanchor") ("hyperlink") ;; Literate programming ("literate") ;; three arguments: replace,replacement text,length ;; LGrind definitions ("lgrindef") ;; Arbitrary linerange markers ("rangebeginprefix") ("rangebeginsuffix") ("rangeendprefix") ("rangeendsuffix") ("rangeprefix") ("rangesuffix") ("includerangemarker" ("true" "false")) ;; Multicolumn Listing ("multicolumn")) "Key=value options for listings macros and environments.") (defvar LaTeX-listings-key-val-options-local nil "Buffer-local Key=value options for listings macros and environments.") (make-variable-buffer-local 'LaTeX-listings-key-val-options-local) ;; Setup for \lstnewenvironment: (defvar LaTeX-auto-listings-lstnewenvironment nil "Temporary for parsing the arguments of `\\lstnewenvironment' from `listings' package.") (defvar LaTeX-listings-lstnewenvironment-regexp `(,(concat "\\\\lstnewenvironment" "[ \t\n\r]*{\\([A-Za-z0-9]+\\)}%?" "[ \t\n\r]*\\[?\\([0-9]?\\)\\]?%?" "[ \t\n\r]*\\(\\[\\)?") (1 2 3) LaTeX-auto-listings-lstnewenvironment) "Matches the argument of `\\lstnewenvironment' from `listings.sty'.") ;; Setup for \lstdefinestyle: (TeX-auto-add-type "listings-lstdefinestyle" "LaTeX") (defvar LaTeX-listings-lstdefinestyle-regexp '("\\\\lstdefinestyle{\\([^}]+\\)}" 1 LaTeX-auto-listings-lstdefinestyle) "Matches the argument of \"\\lstdefinestyle\" from \"listings\" package.") ;; Setup for parsing the labels inside optional arguments: (defvar LaTeX-listings-key-val-label-extract (concat "\\(?:\\[[^][]*" "\\(?:{[^}{]*" "\\(?:{[^}{]*" "\\(?:{[^}{]*}[^}{]*\\)*" "}[^}{]*\\)*" "}[^][]*\\)*" "label[ \t]*=[ \t]*{\\([^}]+\\)}" "\\(?:[^]]*\\)*" "\\]\\)") "Helper regexp to extract the label out of optional argument.") (defvar LaTeX-listings-key-val-label-regexp `(,(concat "\\\\begin{lstlisting}" LaTeX-listings-key-val-label-extract) 1 LaTeX-auto-label) "Matches the label inside an optional argument after \\begin{lstlisting}.") (defun LaTeX-listings-update-style-key () "Update the \"style\" key from `LaTeX-listings-key-val-options-local' with user-defined values via the \"lstdefinestyle\" macro." (let* ((elt (assoc "style" LaTeX-listings-key-val-options-local)) (key (car elt)) (temp (copy-alist LaTeX-listings-key-val-options-local)) (opts (assq-delete-all (car (assoc key temp)) temp))) (pushnew (list key (delete-dups (mapcar 'car (LaTeX-listings-lstdefinestyle-list)))) opts :test #'equal) (setq LaTeX-listings-key-val-options-local (copy-alist opts)))) (defun LaTeX-listings-auto-prepare () "Clear temporary variable from `listings.sty' before parsing." (setq LaTeX-auto-listings-lstnewenvironment nil) (setq LaTeX-auto-listings-lstdefinestyle nil)) (defun LaTeX-listings-auto-cleanup () "Process the parsed results of \"\\lstnewenvironment\" and \"\\lstdefinestyle\"." (dolist (env-args LaTeX-auto-listings-lstnewenvironment) (let ((env (car env-args)) (args (cadr env-args)) (opt (nth 2 env-args))) (cond (;; opt. 1st argument and mandatory argument(s) (and args (not (string-equal args "")) opt (not (string-equal opt ""))) (LaTeX-add-environments `(,env LaTeX-env-args [TeX-arg-key-val LaTeX-listings-key-val-options-local] (LaTeX-env-label-as-keyval "caption") ,(1- (string-to-number args))))) (;; mandatory argument(s) only (and args (not (string-equal args "")) (string-equal opt "")) (LaTeX-add-environments (list env (string-to-number args)))) (t ; No args (LaTeX-add-environments (list env)))) (add-to-list 'LaTeX-indent-environment-list `(,env current-indentation) t) (add-to-list 'LaTeX-verbatim-environments-local env t) (add-to-list 'LaTeX-label-alist `(,env . LaTeX-listing-label) t) ;; Add new env to parser for labels in opt. argument: (TeX-auto-add-regexp `(,(concat "\\\\begin{" env "}" LaTeX-listings-key-val-label-extract) 1 LaTeX-auto-label)) ;; Tell RefTeX (when (fboundp 'reftex-add-label-environments) (reftex-add-label-environments `((,env ?l "lst:" "~\\ref{%s}" nil (regexp "[Ll]isting"))))) ;; Fontification (when (and (fboundp 'font-latex-add-keywords) (fboundp 'font-latex-update-font-lock) (eq TeX-install-font-lock 'font-latex-setup)) ;; Tell font-lock about the update. (font-latex-update-font-lock t)) ;; Add new env's to `ispell-tex-skip-alist': skip the entire env (TeX-ispell-skip-setcdr `(,(cons env (concat "\\\\end{" env "}")))))) (when (LaTeX-listings-lstdefinestyle-list) (LaTeX-listings-update-style-key))) (add-hook 'TeX-auto-prepare-hook #'LaTeX-listings-auto-prepare t) (add-hook 'TeX-auto-cleanup-hook #'LaTeX-listings-auto-cleanup t) (add-hook 'TeX-update-style-hook #'TeX-auto-parse t) (TeX-add-style-hook "listings" (lambda () ;; Add to parser: (TeX-auto-add-regexp LaTeX-listings-lstnewenvironment-regexp) (TeX-auto-add-regexp LaTeX-listings-lstdefinestyle-regexp) (TeX-auto-add-regexp LaTeX-listings-key-val-label-regexp) ;; Local version of key-val options: (setq LaTeX-listings-key-val-options-local (copy-alist LaTeX-listings-key-val-options)) ;; New symbols (TeX-add-symbols '("lstalias" ["Alias dialect"] "Alias" ["Dialect"] "Language") '("lstdefinestyle" (TeX-arg-eval (lambda () (let ((name (TeX-read-string "Style name: "))) (LaTeX-add-listings-lstdefinestyles name) (LaTeX-listings-update-style-key) (format "%s" name)))) (TeX-arg-key-val LaTeX-listings-key-val-options-local)) '("lstinline" TeX-arg-verb) '("lstinputlisting" [TeX-arg-key-val LaTeX-listings-key-val-options-local] TeX-arg-file) "lstlistoflistings" '("lstnewenvironment" "Name" ["Number or arguments"] ["Default argument"] "Starting code" "Ending code") '("lstset" (TeX-arg-key-val LaTeX-listings-key-val-options-local)) '("lstloadlanguages" t) ;; 4.17 Short Inline Listing Commands '("lstMakeShortInline" [ "Options" ] "Character") '("lstDeleteShortInline" "Character") "lstgrinddeffile" "lstaspectfiles" "lstlanguagefiles" "lstlistingname" "lstlistlistingname") ;; New environments (LaTeX-add-environments '("lstlisting" LaTeX-env-args [TeX-arg-key-val LaTeX-listings-key-val-options-local] (LaTeX-env-label-as-keyval "caption"))) ;; Append "lstlisting" to `LaTeX-label-alist': (add-to-list 'LaTeX-label-alist '("lstlisting" . LaTeX-listing-label) t) ;; Filling (add-to-list (make-local-variable 'LaTeX-indent-environment-list) '("lstlisting" current-indentation) t) (add-to-list 'LaTeX-verbatim-environments-local "lstlisting") (add-to-list 'LaTeX-verbatim-macros-with-delims-local "lstinline") (add-to-list 'LaTeX-verbatim-macros-with-braces-local "lstinline") ;; Fontification (when (and (fboundp 'font-latex-add-keywords) (fboundp 'font-latex-update-font-lock) (eq TeX-install-font-lock 'font-latex-setup)) (font-latex-add-keywords '(("lstnewenvironment" "{[[{{")) 'function) (font-latex-add-keywords '(("lstinputlisting" "[{")) 'reference) (font-latex-add-keywords '(("lstinline" "[") ("lstlistoflistings" "")) 'textual) (font-latex-add-keywords '(("lstalias" "{{") ("lstdefinestyle" "{{") ("lstset" "{")) 'variable) ;; Tell font-lock about the update. (font-latex-update-font-lock t))) LaTeX-dialect) (defvar LaTeX-listings-package-options '("draft" "final" "savemem" "noaspects" ;; procnames is mentioned in ;; Section 5.2 "procnames") "Package options for the listings package.") ;;; listings.el ends here auctex-11.91/style/longtable.el000066400000000000000000000113061313533625700164600ustar00rootroot00000000000000;;; longtable.el --- AUCTeX style for `longtable.sty'. ;; Copyright (C) 2013--2016 Free Software Foundation, Inc. ;; Maintainer: auctex-devel@gnu.org ;; Author: Mosè Giordano ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `longtable.sty'. ;;; Code: (defvar LaTeX-longtable-skipping-regexp (regexp-opt '("[l]" "[r]" "[c]" "")) "Regexp matching between \\begin{longtable} and column specification. For longtable environments only.") (defun LaTeX-item-longtable (&optional suppress) "Insert line break macro on the last line and suitable number of &'s. For longtable environments. If SUPPRESS is non-nil, do not insert line break macro." (unless suppress (save-excursion (end-of-line 0) (just-one-space) (TeX-insert-macro "\\"))) (LaTeX-insert-ampersands LaTeX-longtable-skipping-regexp #'LaTeX-array-count-columns)) (TeX-add-style-hook "longtable" (lambda () (LaTeX-add-environments '("longtable" (lambda (environment) (let* ((pos (completing-read (TeX-argument-prompt t nil "Position") '(("l") ("r") ("c")))) (fmt (TeX-read-string "Format: " LaTeX-default-format)) (caption (TeX-read-string "Caption: ")) (short-caption (when (>= (length caption) LaTeX-short-caption-prompt-length) (TeX-read-string "(Optional) Short caption: ")))) (setq LaTeX-default-format fmt) (LaTeX-insert-environment environment (concat (unless (zerop (length pos)) (concat LaTeX-optop pos LaTeX-optcl)) (concat TeX-grop fmt TeX-grcl))) ;; top caption -- do nothing if user skips caption (unless (zerop (length caption)) ;; insert `\caption[short-caption]{caption': (insert TeX-esc "caption") (when (and short-caption (not (string= short-caption ""))) (insert LaTeX-optop short-caption LaTeX-optcl)) (insert TeX-grop caption) ;; ask for a label and insert it (LaTeX-label environment 'environment) ;; the longtable `\caption' is equivalent to a ;; `\multicolumn', so it needs a `\\' at the ;; end of the line. Prior to that, add } to ;; close `\caption{' (insert TeX-grcl "\\\\") ;; fill the caption (LaTeX-fill-paragraph) ;; Insert a new line and indent (LaTeX-newline) (indent-according-to-mode)) ;; Insert suitable number of &'s, suppress line break (LaTeX-item-longtable t))))) (TeX-add-symbols ;; Commands to end table rows '("endhead" 0) '("endfirsthead" 0) '("endfoot" 0) '("endlastfoot" 0) ;; Caption commands '("caption*" 1)) ;; These parameters are set with \setlength (LaTeX-add-lengths "LTleft" "LTright" "LTpre" "LTpost" "LTcapwidth") ;; This parameter is set with \setcounter (LaTeX-add-counters "LTchunksize") ;; Use the enhanced table formatting. Append to ;; `LaTeX-indent-environment-list' in order not to override custom settings. (add-to-list (make-variable-buffer-local 'LaTeX-indent-environment-list) '("longtable" LaTeX-indent-tabular) t) ;; Append longtable to `LaTeX-label-alist', in order not to override possible ;; custome values. (add-to-list 'LaTeX-label-alist '("longtable" . LaTeX-table-label) t) ;; Append longtable to `LaTeX-item-list' with `LaTeX-item-longtable' (add-to-list 'LaTeX-item-list '("longtable" . LaTeX-item-longtable) t) ;; Fontification (when (and (featurep 'font-latex) (eq TeX-install-font-lock 'font-latex-setup)) ;; Actually, `\caption*{}' macro takes only one mandatory ;; argument, not an optional one, the following is a workaround ;; to fontify correctly also the standard `\caption[]{}' macro. (font-latex-add-keywords '(("caption" "*[{")) 'textual))) LaTeX-dialect) ;; `longtable.sty' has two options "errorshow" and "pausing", both for ;; debugging purposes. We ignore them both in order to make package ;; loading faster in a buffer. (defvar LaTeX-longtable-package-options nil "Package options for the longtable package.") ;; longtable.el ends here auctex-11.91/style/lscape.el000066400000000000000000000025031313533625700157570ustar00rootroot00000000000000;;; lscape.el --- AUCTeX style for `lscape.sty' ;; Copyright (C) 2011 Free Software Foundation, Inc. ;; Author: Mads Jensen ;; Maintainer: auctex-devel@gnu.org ;; Created: 2011-05-04 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `lscape.sty'. ;;; Code: (TeX-add-style-hook "lscape" (lambda () (LaTeX-add-environments "landscape") ;; lscape uses graphics internally to handle the work (TeX-run-style-hooks "graphics")) LaTeX-dialect) (defvar LaTeX-lscape-package-options '("pdftex") "Package options for the lscape package.") ;;; lscape.el ends here auctex-11.91/style/ltablex.el000066400000000000000000000030731313533625700161460ustar00rootroot00000000000000;;; ltablex.el --- AUCTeX style for `ltablex.sty' (v1.1) ;; Copyright (C) 2015 Free Software Foundation, Inc. ;; Author: Arash Esbati ;; Maintainer: auctex-devel@gnu.org ;; Created: 2015-03-14 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `ltablex.sty' (v1.1) from 2014/08/13. ;; `ltablex.sty' is part of TeXLive. `ltablex.sty' modifies the ;; tabularx environment to combine the features of the tabularx ;; package with those of the longtable package. All we need is to ;; call those styles and add two macros. ;;; Code: (TeX-add-style-hook "ltablex" (lambda () (TeX-run-style-hooks "tabularx" "longtable") (TeX-add-symbols '("keepXColumns" 0) '("convertXColumns" 0))) LaTeX-dialect) (defvar LaTeX-ltablex-package-options nil "Package options for the ltablex package.") ;;; ltablex.el ends here auctex-11.91/style/ltx-base.el000066400000000000000000000060551313533625700162350ustar00rootroot00000000000000;;; ltx-base.el --- AUCTeX style for basic LaTeX commands. ;; Copyright (C) 2004, 2016 Free Software Foundation, Inc. ;; Author: Frank Kster ;; Maintainer: auctex-devel@gnu.org ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds general support for basic LaTeX commands used for ;; writing LaTeX class files (.cls), style files (.sty) and package ;; files (.dtx). ;;; Code: (TeX-add-style-hook "ltx-base" (function (lambda () (TeX-add-symbols '("DeclareRobustCommand" TeX-arg-define-macro [ "Number of arguments" ] t) '("CheckCommand" TeX-arg-define-macro [ "Number of arguments" ] t) '("@addtoreset" TeX-arg-counter "Within counter" "counter") '("addvspace" "space") '("addpenalty" "penalty") '("ProvidesClass" "name" [ "release information" ]) '("ProvidesPackage" "name" [ "release information" ]) '("ProvidesFile" "filename" [ "release information" ]) '("NeedsTeXFormat" "format" [ "release" ]) '("DeclareOption" "option" t) ;; would be great if DeclareOption RET * RET would give ;; \DeclareOption*! '("DeclareOption*" t) '("CurrentOption" 0) '("PassOptionsToPackage" "option list" "package") '("ExecuteOptions" "option list") '("ProcessOptions" (TeX-arg-literal "\\relax")) "ProcessOptions*" '("OptionNotUsed" 0) ;; candidate for opt/mand toggling '("RequirePackage" [ "option list" ] "package" [ "release" ]) '("LoadClass" [ "option list" ] "class" [ "release" ]) '("AtEndOfPackage" t) '("AtEndOfClass" t) '("AtBeginDocument" t) '("AtEndDocument" t) '("IfFileExists" "filename" 2) '("InputIfFileExists" "filename" 2) '("PackageWarning" "name" t) '("PackageWarningNoLine" "name" t) '("PackageInfo" "name" t) '("PackageError" "name" "short text" t) '("ClassWarning" "name" t) '("ClassWarningNoLine" "name" t) '("ClassInfo" "name" t) '("ClassError" "name" "short text" t) '("MessageBreak" 0) '("@ifpackageloaded" "package" 2) '("@ifpackagelater" "package" "date" 2) '("@ifpackagewith" "package" "options" 2) '("message" "Log Message") '("@ifundefined" "Macro Name" 2) '("@ifnextchar" (TeX-arg-literal " ") (TeX-arg-free "character") 2 ) "expandafter"))) LaTeX-dialect) ;; Local Variables: ;; coding: iso-8859-1 ;; End: auctex-11.91/style/ltxdoc.el000066400000000000000000000022451313533625700160100ustar00rootroot00000000000000;;; ltxdoc.el --- AUCTeX style for `ltxdoc.cls' ;; Copyright (C) 2004 Free Software Foundation, Inc. ;; Author: Frank Kster ;; Maintainer: auctex-devel@gnu.org ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `ltxdoc.cls'. ;;; Code: (TeX-add-style-hook "ltxdoc" (lambda () (TeX-run-style-hooks "doc") (TeX-run-style-hooks "ltx-base")) LaTeX-dialect) ;; Local Variables: ;; coding: iso-8859-1 ;; End: auctex-11.91/style/ltxtable.el000066400000000000000000000053741313533625700163400ustar00rootroot00000000000000;;; ltxtable.el --- AUCTeX style for `ltxtable.sty' (v0.2) ;; Copyright (C) 2015 Free Software Foundation, Inc. ;; Author: Arash Esbati ;; Maintainer: auctex-devel@gnu.org ;; Created: 2015-03-14 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `ltxtable.sty' (v0.2) from 1995/12/11. ;; `ltxtable.sty' is part of TeXLive. ;;; Code: (defvar LaTeX-ltxtable-file-regexp `(,(concat "\\\\LTXtable" "{\\(?:[^}]+\\)}" "{\\(\\.*[^#}%\\\\\\.\n\r]+\\)\\(\\.[^#}%\\\\\\.\n\r]+\\)?}") 1 TeX-auto-file) "Matches the file argument of \\LTXtable marco from ltxtable package. The regexp for the 2. argument is the same as for \"input\" and \"include\" entries in `LaTeX-auto-regexp-list'.") (TeX-add-style-hook "ltxtable" (lambda () (TeX-run-style-hooks "tabularx" "longtable") (TeX-add-symbols '("LTXtable" (TeX-arg-length "Width" "1.0\\linewidth") (TeX-arg-eval (lambda () (let ((longtable (file-relative-name (read-file-name "File with longtable: ")))) (format "%s" longtable)))))) ;; Make sure that \LTXtable stays in its own line: (LaTeX-paragraph-commands-add-locally "LTXtable") ;; Tell AUCTeX about a new file-include command: (TeX-auto-add-regexp LaTeX-ltxtable-file-regexp) ;; Tell RefTeX about a new file-include command: Add ;; LTXtable{} as a regexp (without \) to ;; `reftex-include-file-commands' and run ;; `reftex-compile-variables'. Do this all only once. (when (and (boundp 'reftex-include-file-commands) (not (string-match "LTXtable" (mapconcat #'identity reftex-include-file-commands "|")))) (add-to-list 'reftex-include-file-commands "LTXtable{\\(?:[^}]+\\)}" t) (reftex-compile-variables)) ;; Fontification (when (and (featurep 'font-latex) (eq TeX-install-font-lock 'font-latex-setup)) (font-latex-add-keywords '(("LTXtable" "{{")) 'textual))) LaTeX-dialect) (defvar LaTeX-ltxtable-package-options nil "Package options for the ltxtable package.") ;;; ltxtable.el ends here auctex-11.91/style/luacode.el000066400000000000000000000033601313533625700161260ustar00rootroot00000000000000;;; luacode.el --- AUCTeX style for `luacode.sty' version 1.2a. ;; Copyright (C) 2013 Free Software Foundation, Inc. ;; Maintainer: auctex-devel@gnu.org ;; Author: Mosè Giordano ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `luacode.sty' 1.2a. ;;; Code: (TeX-add-style-hook "luacode" (lambda () (TeX-add-symbols '("luadirect" 1) '("luaexec" 1) '("luastring" 1) '("luastringN" 1) '("luastringO" 1) '("LuaCodeDebugOn" 0) '("LuaCodeDebugOff" 0)) (LaTeX-add-environments '("luacode") '("luacode*")) ;; Fontification (when (and (featurep 'font-latex) (eq TeX-install-font-lock 'font-latex-setup)) (font-latex-add-keywords '(("luadirect" "{") ("luaexec" "{") ("luastring" "{") ("luastringN" "{") ("luastringO" "{") ("LuaCodeDebugOn") ("LuaCodeDebugOff")) 'function))) LaTeX-dialect) (defvar LaTeX-luacode-package-options nil "Package options for the luacode package.") ;;; luacode.el ends here auctex-11.91/style/luatextra.el000066400000000000000000000024401313533625700165210ustar00rootroot00000000000000;;; luatextra.el --- AUCTeX style for `luatextra.sty' version 1.0. ;; Copyright (C) 2014 Free Software Foundation, Inc. ;; Author: Davide G. M. Salvetti ;; Maintainer: auctex-devel@gnu.org ;; Created: 2014-11-15 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by the ;; Free Software Foundation; either version 3, or (at your option) any ;; later version. ;; AUCTeX is distributed in the hope that it will be useful, but WITHOUT ;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ;; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ;; for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, see ;; . ;;; Commentary: ;; This file adds support for `luatextra.sty' 1.0. ;;; Code: (TeX-add-style-hook "luatextra" (lambda () (TeX-run-style-hooks "ifluatex" "fontspec" ;; FIXME: yet to be written: ;; "luatexbase" "metalogo" "luacode")) LaTeX-dialect) (defvar LaTeX-luatextra-package-options nil "Package options for the ifluatex package.") ;;; luatextra.el ends here auctex-11.91/style/makeidx.el000066400000000000000000000030341313533625700161320ustar00rootroot00000000000000;;; makeidx.el --- AUCTeX support for makeidx.sty ;; Copyright (C) 1999 Free Software Foundation, Inc. ;; Author: Carsten Dominik ;; Maintainer: auctex-devel@gnu.org ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Code: (TeX-add-style-hook "makeidx" (lambda () (TeX-add-symbols "printindex" "indexspace") ;; Parsing the default index macro is defined in latex.el ;; The same is true form completion in the index macro ;; Completion for the |see macro (setq TeX-complete-list (append '(("|see{\\([^{}\n\r]*\\)" 1 LaTeX-index-entry-list)) TeX-complete-list)) ;; RefTeX support (and (fboundp 'reftex-add-index-macros) (reftex-add-index-macros '(default)))) LaTeX-dialect) (defvar LaTeX-makeidx-package-options nil "Package options for the makeidx package.") ;;; makeidx.el ends here auctex-11.91/style/mathtools.el000066400000000000000000000426121313533625700165270ustar00rootroot00000000000000;;; mathtools.el --- Style hook for the LaTeX package `mathtools'. ;; Copyright (C) 2011-2012, 2014, 2016 Free Software Foundation, Inc. ;; Author: Mads Jensen ;; Created: 2011-02-13 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `mathtools.sty' ;;; Comments: ;;; This package serves as a wrapper for amsmath, adding more features ;;; and fixing a few bugs in amsmath. The mathstyle argument for many ;;; of the macros is discussed at ;;; ;;; Code: ;; Needed for auto-parsing. (require 'tex) ;; amsmath options which can be passed directly to mathtools are ;; appended in the style hook below (defvar LaTeX-mathtools-package-options '("fixamsmath" "donotfixamsmathbugs" "allowspaces" "disallowspaces" ;; Update 2013: We now make \(\) and \[\] robust (can be disabled ;; via nonrobust package option) "nonrobust") "Package options for the mathtools package.") (defvar LaTeX-mathtools-key-val-options '(("showonlyrefs") ("mathic" ("true" "false")) ("showmanualtags" ("true" "false")) ;; 3.4.1 Matrices ("smallmatrix-align" ("c" "l" "r")) ("smallmatrix-inner-space") ;; 3.4.2 The multlined environment ("firstline-afterskip") ("lastline-preskip") ("multlined-pos" ("c" "b" "t")) ("multlined-width") ;; 3.4.7 Centered \vdots ("shortvdotsadjustabove") ("shortvdotsadjustbelow") ;; 3.5 Intertext and short intertext ("original-intertext" ("true" "false")) ("original-shortintertext" ("true" "false")) ("above-intertext-sep") ("below-intertext-sep") ("above-shortintertext-sep") ("below-shortintertext-sep") ;; 3.7.2 Vertically centered colon ("centercolon" ("true" "false")) ;; 4.2 Left sub/superscripts ("prescript-sub-format") ("prescript-sup-format") ("prescript-arg-format")) "Options for the \\mathtoolsset command.") ;; Setup for \newtagform (TeX-auto-add-type "mathtools-newtagform" "LaTeX") (defvar LaTeX-mathtools-newtagform-regexp '("\\\\newtagform{\\([^}]+\\)}" 1 LaTeX-auto-mathtools-newtagform) "Matches the first argument of \\newtagform from mathtools package.") ;; Setup for \DeclarePairedDelimiter(X)?: (TeX-auto-add-type "mathtools-DeclarePairedDelimiter" "LaTeX") (defvar LaTeX-mathtools-DeclarePairedDelimiter-regexp `(,(concat "\\\\DeclarePairedDelimiter\\(?:X\\|XPP\\)?" "{?" "\\\\\\([a-zA-Z]+\\)" "}?" "\\(?:\\[\\([0-9]+\\)\\]\\)?") (1 2) LaTeX-auto-mathtools-DeclarePairedDelimiter) "Match the arguments of \\DeclarePairedDelimiterX? from mathtools package.") ;; Setup for \newgathered (TeX-auto-add-type "mathtools-newgathered" "LaTeX") (defvar LaTeX-mathtools-newgathered-regexp '("\\\\newgathered{\\([^}]+\\)}" 1 LaTeX-auto-mathtools-newgathered) "Matches the first argument of \\newgathered from mathtools package.") (defun LaTeX-mathtools-auto-prepare () "Clear various variables for mathtools package before parsing." (setq LaTeX-auto-mathtools-newtagform nil LaTeX-auto-mathtools-DeclarePairedDelimiter nil LaTeX-auto-mathtools-newgathered nil)) (defun LaTeX-mathtools-auto-cleanup () "Process the parsed elements for mathtools package." (when (LaTeX-mathtools-DeclarePairedDelimiter-list) (dolist (delim (LaTeX-mathtools-DeclarePairedDelimiter-list)) (let ((cmd (car delim)) (arg (cadr delim))) (TeX-add-symbols `(,cmd [ LaTeX-mathtools-arg-mathsize-completion ] ,(if (string= arg "") 1 (string-to-number arg))) `(,(concat cmd "*") ,(if (string= arg "") 1 (string-to-number arg))))))) (when (LaTeX-mathtools-newgathered-list) (dolist (env (mapcar #'car (LaTeX-mathtools-newgathered-list))) (LaTeX-add-environments env) (add-to-list 'LaTeX-item-list `(,env . LaTeX-item-equation) t) (add-to-list 'LaTeX-label-alist `(,env . LaTeX-amsmath-label) t) (when (fboundp 'reftex-add-label-environments) (reftex-add-label-environments `((,env ?e nil nil t))))))) (add-hook 'TeX-auto-prepare-hook #'LaTeX-mathtools-auto-prepare t) (add-hook 'TeX-auto-cleanup-hook #'LaTeX-mathtools-auto-cleanup t) (add-hook 'TeX-update-style-hook #'TeX-auto-parse t) (defun LaTeX-mathtools-arg-mathstyle-completion (optional) "Query and insert mathstyle argument to various commands. If OPTIONAL, insert it as optional argument in brackets." (TeX-argument-insert (completing-read (TeX-argument-prompt optional nil (concat "Math style: " TeX-esc) t) '("displaystyle" "textstyle" "scriptstyle" "scriptscriptstyle")) optional TeX-esc)) (defun LaTeX-mathtools-arg-mathsize-completion (optional) "Query and insert math size argument to various commands. If OPTIONAL, insert it as optional argument in brackets." (TeX-argument-insert (completing-read (TeX-argument-prompt optional nil (concat "Size command: " TeX-esc) t) '("big" "Big" "bigg" "Bigg")) optional TeX-esc)) (defun LaTeX-mathtools-arg-declarepaireddelimiter (optional &optional X) "Query and insert various \\DeclarePairedDelimiter macros from mathtools package." (let ((cmd (TeX-read-string (concat "Command: " TeX-esc))) (arg (when X (TeX-read-string (TeX-argument-prompt t nil "Number of arguments"))))) (TeX-add-symbols `(,cmd [ LaTeX-mathtools-arg-mathsize-completion ] ,(if X ;; This is no precaution, arg has to be > 0 (string-to-number arg) 1)) `(,(concat cmd "*") ,(if X (string-to-number arg) 1))) (LaTeX-add-mathtools-DeclarePairedDelimiters `(,cmd ,(if X arg ""))) (TeX-argument-insert cmd optional TeX-esc) (when arg (insert (concat LaTeX-optop arg LaTeX-optcl))))) (defun LaTeX-mathtools-env-multlined (env) "Query and insert two optional arguments for ENV multlined. If both arguments are given, insert them in brackets. If only a width is given, insert it prefixed with a pair of empty brackets." (let ((pos (TeX-read-string (TeX-argument-prompt t nil "Position (t, b or c (default))"))) (width (completing-read (TeX-argument-prompt t nil "Width") (mapcar (lambda (x) (concat TeX-esc (car x))) (LaTeX-length-list))))) (LaTeX-insert-environment env (cond (;; both arguments (and pos (not (string= pos "")) width (not (string= width ""))) (format "[%s][%s]" pos width)) (;; pos not empty, width empty (and pos (not (string= pos "")) (string= width "")) (format "[%s]" pos)) (;; pos empty, width not (and (string= pos "") width (not (string= width ""))) (format "[][%s]" width)) (t nil))))) (defun LaTeX-mathtools-env-cases (env) "Insert various cases ENVs incl. an ampersand from mathtools package." (LaTeX-insert-environment env) (save-excursion (insert ?&))) (defun LaTeX-mathtools-item-cases () "Insert contents to terminate a line in multi-line cases environment. Put line break macro on the last line. Next, insert an ampersand." (end-of-line 0) (just-one-space) (TeX-insert-macro "\\") (forward-line 1) (save-excursion (insert ?&))) (TeX-add-style-hook "mathtools" (lambda () ;; Add mathtools to parser (TeX-auto-add-regexp LaTeX-mathtools-newtagform-regexp) (TeX-auto-add-regexp LaTeX-mathtools-DeclarePairedDelimiter-regexp) (TeX-auto-add-regexp LaTeX-mathtools-newgathered-regexp) ;; "default" is pre-defined (LaTeX-add-mathtools-newtagforms "default") ;; mathtools requires amsmath, as some bugs in amsmath are fixed (TeX-run-style-hooks "amsmath") (dolist (elt LaTeX-amsmath-package-options) (add-to-list 'LaTeX-mathtools-package-options elt)) (LaTeX-add-environments ;; 3.4.1 Matrices '("matrix*" [ "Vertical alignment (l, r or c (default))" ]) '("pmatrix*" [ "Vertical alignment (l, r or c (default))" ]) '("bmatrix*" [ "Vertical alignment (l, r or c (default))" ]) '("Bmatrix*" [ "Vertical alignment (l, r or c (default))" ]) '("vmatrix*" [ "Vertical alignment (l, r or c (default))" ]) '("Vmatrix*" [ "Vertical alignment (l, r or c (default))" ]) '("smallmatrix*" [ "Vertical alignment (l, r or c (default))" ]) '("psmallmatrix") '("psmallmatrix*" [ "Vertical alignment (l, r or c (default))" ]) '("bsmallmatrix") '("bsmallmatrix*" [ "Vertical alignment (l, r or c (default))" ]) '("Bsmallmatrix") '("Bsmallmatrix*" [ "Vertical alignment (l, r or c (default))" ]) '("vsmallmatrix") '("vsmallmatrix*" [ "Vertical alignment (l, r or c (default))" ]) '("Vsmallmatrix") '("Vsmallmatrix*" [ "Vertical alignment (l, r or c (default))" ]) ;; 3.4.2 The multlined environment '("multlined" LaTeX-mathtools-env-multlined) ;; 3.4.3 More cases -like environments '("dcases" LaTeX-mathtools-env-cases) '("dcases*" LaTeX-mathtools-env-cases) '("rcases" LaTeX-mathtools-env-cases) '("rcases*" LaTeX-mathtools-env-cases) '("drcases" LaTeX-mathtools-env-cases) '("drcases*" LaTeX-mathtools-env-cases) '("cases*" LaTeX-mathtools-env-cases) ;; 4.4 Spreading equations '("spreadlines" "Spacing between lines") ;; 4.5 Gathered environments '("lgathered" ["Vertical position (t or b)"]) '("rgathered" ["Vertical position (t or b)"])) (TeX-add-symbols '("mathtoolsset" (TeX-arg-key-val LaTeX-mathtools-key-val-options)) ;; 3.1.1 A complement to \smash, \llap, and \rlap '("mathllap" [ LaTeX-mathtools-arg-mathstyle-completion ] t) '("mathrlap" [ LaTeX-mathtools-arg-mathstyle-completion ] t) '("mathclap" [ LaTeX-mathtools-arg-mathstyle-completion ] t) '("mathmakebox" [ (TeX-arg-length "Width") ] [ "Position" ] 1) '("clap" 1) '("mathmbox" 1) ;; 3.1.2 Forcing a cramped style '("cramped" [ LaTeX-mathtools-arg-mathstyle-completion ] 1) '("crampedllap" [ LaTeX-mathtools-arg-mathstyle-completion ] t) '("crampedrlap" [ LaTeX-mathtools-arg-mathstyle-completion ] t) '("crampedclap" [ LaTeX-mathtools-arg-mathstyle-completion ] t) ;; 3.1.3 Smashing an operator '("smashoperator" [ "Position (l, r or lr (default)" ] 1) ;; 3.1.4 Adjusting the limits of operators '("adjustlimits" t (TeX-arg-literal "_") nil nil (TeX-arg-literal "_") nil) ;; 3.1.5 Swapping space above AMS display math environments '("SwapAboveDisplaySkip" 0) ;; 3.2.1 The appearance of tags '("newtagform" (TeX-arg-eval (lambda () (let ((newtag (TeX-read-string (TeX-argument-prompt nil nil "Name")))) (LaTeX-add-mathtools-newtagforms newtag) (format "%s" newtag)))) [ "Inner format" ] "Left" "Right") '("renewtagform" (TeX-arg-eval completing-read (TeX-argument-prompt nil nil "Name") (LaTeX-mathtools-newtagform-list)) [ "Inner format" ] "Left" "Right") '("usetagform" (TeX-arg-eval completing-read (TeX-argument-prompt nil nil "Name") (LaTeX-mathtools-newtagform-list))) ;; 3.2.2 Showing only referenced tags '("refeq" TeX-arg-ref) '("noeqref" TeX-arg-ref) ;; 3.3.1 Arrow-like symbols '("xleftrightarrow" ["Below"] "Above") '("xLeftarrow" ["Below"] "Above") '("xRightarrow" ["Below"] "Above") '("xLeftrightarrow" ["Below"] "Above") '("xhookleftarrow" ["Below"] "Above") '("xhookrightarrow" ["Below"] "Above") '("xmapsto" ["Below"] "Above") '("xrightharpoondown" ["Below"] "Above") '("xrightharpoonup" ["Below"] "Above") '("xleftharpoondown" ["Below"] "Above") '("xleftharpoonup" ["Below"] "Above") '("xrightleftharpoons" ["Below"] "Above") '("xleftrightharpoons" ["Below"] "Above") ;; 3.3.2 Braces and brackets '("underbracket" [ (TeX-arg-length "Rule thickness") ] [ (TeX-arg-length "Bracket height") ] t) '("overbracket" [ (TeX-arg-length "Rule thickness") ] [ (TeX-arg-length "Bracket height") ] t) '("underbrace" 1) '("overbrace" 1) '("LaTeXunderbrace" 1) '("LaTeXoverbrace" 1) ;; 3.4.2 '("shoveleft" [ (TeX-arg-length "Dimension") ] 1) '("shoveright" [ (TeX-arg-length "Dimension") ] 1) ;; 3.4.4 '("MoveEqLeft" [ "Number" ]) ;; 3.4.5 Boxing a single line in an alignment '("Aboxed" 1) ;; 3.4.6 Adding arrows between lines in an alignment '("ArrowBetweenLines" [ TeX-arg-macro ] ) '("ArrowBetweenLines*" [ TeX-arg-macro ] ) ;; 3.4.7 Centered \vdots '("vdotswithin" "Symbol") '("shortvdotswithin" "Symbol") '("shortvdotswithin*" "Symbol") '("MTFlushSpaceAbove") '("MTFlushSpaceBelow") ;; 3.5 Intertext and short intertext ;; don't understand t, but intertext in amsmath.el uses it '("shortintertext" t) ;; 3.6 Paired delimiters '("DeclarePairedDelimiter" LaTeX-mathtools-arg-declarepaireddelimiter "Left delimiter" "Right delimiter") '("DeclarePairedDelimiterX" (LaTeX-mathtools-arg-declarepaireddelimiter t) "Left delimiter" "Right delimiter" t) '("DeclarePairedDelimiterXPP" (LaTeX-mathtools-arg-declarepaireddelimiter t) "Pre-code" "Left delimiter" "Right delimiter" 2) '("delimsize" 0) ;; 3.6.1 Expert use '("reDeclarePairedDelimiterInnerWrapper" (TeX-arg-eval (lambda () (let ((cmd (completing-read (concat "Command: " TeX-esc) (mapcar #'car (LaTeX-mathtools-DeclarePairedDelimiter-list))))) (concat TeX-esc cmd)))) (TeX-arg-eval completing-read "star or nostar: " '("star" "nostar")) t) ;; 3.7.1 Left and right parentheses '("lparen" TeX-arg-insert-right-brace-maybe) '("rparen") ;; 3.7.2 Vertically centered colon "vcentcolon" "ordinarycolon" "coloneqq" "Coloneqq" "coloneq" "Coloneq" "eqqcolon" "Eqqcolon" "eqcolon" "Eqcolon" "colonapprox" "Colonapprox" "colonsim" "Colonsim" "dblcolon" ;; 3.7.3 A few missing symbols "nuparrow" "ndownarrow" "bigtimes" ;; 4.2 Left sub/superscripts '("prescript" "Below" "Above" t) ;; 4.3 Declaring math sizes '("DeclareMathSizes" 4) ;; 4.5 Gathered environments '("newgathered" (TeX-arg-eval (lambda () (let ((env (TeX-read-string (TeX-argument-prompt nil nil "Name")))) (LaTeX-add-environments env) (LaTeX-add-mathtools-newgathereds env) (add-to-list 'LaTeX-item-list `(,env . LaTeX-item-equation) t) (add-to-list 'LaTeX-label-alist `(,env . LaTeX-amsmath-label) t) (format "%s" env)))) 3) '("renewgathered" (TeX-arg-eval completing-read (TeX-argument-prompt nil nil "Name") (LaTeX-mathtools-newgathered-list)) 3) ;; 4.6 Split fractions '("splitfrac" 2) '("splitdfrac" 2)) ;; Append delimiters to `TeX-braces-association' ;; 3.7.1 Left and right parentheses (make-local-variable 'TeX-braces-association) (add-to-list 'TeX-braces-association '("\\lparen" . "\\rparen") t) (setq LaTeX-item-list (append '(("multlined" . LaTeX-item-equation) ("lgathered" . LaTeX-item-equation) ("rgathered" . LaTeX-item-equation) ("spreadlines" . LaTeX-item-equation) ("matrix*" . LaTeX-item-equation) ("pmatrix*" . LaTeX-item-equation) ("bmatrix*" . LaTeX-item-equation) ("Bmatrix*" . LaTeX-item-equation) ("vmatrix*" . LaTeX-item-equation) ("Vmatrix*" . LaTeX-item-equation) ("dcases" . LaTeX-mathtools-item-cases) ("dcases*" . LaTeX-mathtools-item-cases) ("rcases" . LaTeX-mathtools-item-cases) ("rcases*" . LaTeX-mathtools-item-cases) ("drcases" . LaTeX-mathtools-item-cases) ("drcases*" . LaTeX-mathtools-item-cases) ("cases*" . LaTeX-mathtools-item-cases)) LaTeX-item-list)) (setq LaTeX-label-alist (append '(("lgathered" . LaTeX-amsmath-label) ("rgathered" . LaTeX-amsmath-label) ("multlined" . LaTeX-amsmath-label)) LaTeX-label-alist)) ;; RefTeX support: Add env's with `reftex-add-label-environments' (when (fboundp 'reftex-add-label-environments) (let ((envs '(("lgathered" ?e nil nil t) ("rgathered" ?e nil nil t) ("multlined" ?e nil nil t)))) (dolist (env envs) (reftex-add-label-environments `(,env))))) ;; Fontification (when (and (featurep 'font-latex) (eq TeX-install-font-lock 'font-latex-setup)) (font-latex-add-keywords '(("mathtoolsset" "{") ("newtagform" "{[{{") ("renewtagform" "{[{{") ("DeclarePairedDelimiter" "|{\\{{") ("DeclarePairedDelimiterX" "|{\\[{{{") ("DeclarePairedDelimiterXPP" "|{\\[{{{{{") ("reDeclarePairedDelimiterInnerWrapper" "|{\\{{") ("DeclareMathSizes" "{{{{") ("newgathered" "{{{{") ("renewgathered" "{{{{")) 'function) (font-latex-add-keywords '(("usetagform" "{")) 'variable) (font-latex-add-keywords '(("refeq" "{") ("noeqref" "{")) 'reference))) LaTeX-dialect) ;;; mathtools.el ends here auctex-11.91/style/mdframed.el000066400000000000000000000323651313533625700163000ustar00rootroot00000000000000;;; mdframed.el --- AUCTeX style for `mdframed.sty' (v1.9b) ;; Copyright (C) 2016, 2017 Free Software Foundation, Inc. ;; Author: Arash Esbati ;; Maintainer: auctex-devel@gnu.org ;; Created: 2016-06-26 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `mdframed.sty' (v1.9b) from 2013/07/01. ;; `mdframed.sty' is part of TeXLive. ;; This style offers only a set of mandatory options for completion ;; while loading the package ;; (cf. `LaTeX-mdframed-package-options-list'). All other options are ;; offered for completion as part of `\mdfsetup'. Please use this ;; command to set options of the package. ;;; Code: ;; Needed for compiling `pushnew': (eval-when-compile (require 'cl)) ;; Needed for auto-parsing. (require 'tex) (defvar LaTeX-mdframed-key-val-options '(;; 6.2. Restoring the settings ("style" ("defaultoptions")) ("default") ;; 6.3. Options with lengths ("defaultunit" ("pt" "pc" "in" "bp" "cm" "mm" "dd" "cc" "sp" "ex" "em")) ("skipabove") ("skipbelow") ("leftmargin") ("rightmargin") ("innerleftmargin") ("innerrightmargin") ("innertopmargin") ("innerbottommargin") ("linewidth") ("innerlinewidth") ("middlelinewidth") ("outerlinewidth") ("roundcorner") ;; 6.4. Colored Options ("linecolor") ("innerlinecolor") ("middlelinecolor") ("outerlinecolor") ("backgroundcolor") ("fontcolor") ("font") ;; 6.5. Shadows ("shadowsize") ("shadowcolor") ;; 6.6. Hidden Lines ("topline" ("true" "false")) ("rightline" ("true" "false")) ("leftline" ("true" "false")) ("bottomline" ("true" "false")) ("hidealllines" ("true" "false")) ;; 6.7. Working in twoside-mode ("outermargin") ("innermargin") ("usetwoside" ("true" "false")) ;; 6.8. Footnotes ("footnotedistance") ("footnoteinside" ("true" "false")) ;; 6.9. Page breaks ("nobreak" ("true" "false")) ("everyline" ("true" "false")) ("splittopskip") ("splitbottomskip") ;; 6.10. Frametitle ("frametitle") ("frametitlefont") ("frametitlealignment" ("\\raggedleft" "\\raggedright" "\\centering")) ("frametitlerule" ("true" "false")) ("frametitlerulewidth") ("frametitleaboveskip") ("frametitlebelowskip") ("frametitlebackgroundcolor") ("repeatframetitle" ("true" "false")) ;; 6.11. Title commands inside the environment ("subtitleaboveline" ("true" "false")) ("subtitlebelowline" ("true" "false")) ("subtitlefont") ("subtitlebackgroundcolor") ("subtitleabovelinecolor") ("subtitlebelowlinecolor") ("subtitleabovelinewidth") ("subtitlebelowlinewidth") ("subtitleaboveskip") ("subtitlebelowskip") ("subtitleinneraboveskip") ("subtitleinnerbelowskip") ;; 6.12. General options ("ntheorem" ("true" "false")) ("needspace") ("ignorelastdescenders" ("true" "false")) ("userdefinedwidth" ("\\linewidth" "\\columnwidth")) ("align" ("left" "right" "center")) ;; 6.13. TikZ options ("tikzsetting") ("apptotikzsetting") ;; 6.14. PSTricks options ("pstrickssetting") ("pstricksappsetting") ;; 7. Hooks and Bools ("settings") ("extra") ("singleextra") ("firstextra") ("middleextra") ("secondextra") ("mdfsingleframe" ("true" "false")) ("mdffirstframe" ("true" "false")) ("mdfmiddleframe" ("true" "false")) ("mdflastframe" ("true" "false")) ("beforesingleframe") ("aftersingleframe") ("beforebreak") ("afterbreak") ("beforelastframe") ("afterlastframe") ("startcode") ("startinnercode") ("endinnercode") ("endcode") ;; 8. Theorems ("theoremseparator") ("theoremtitlefont") ("theoremspace")) "Key=value options for mdframed macros and environments.") (defvar LaTeX-mdframed-key-val-options-local nil "Buffer-local key=value options for mdframed macros and environments.") (make-variable-buffer-local 'LaTeX-mdframed-key-val-options-local) ;; Setup for \newmdenv (TeX-auto-add-type "mdframed-newmdenv" "LaTeX") (defvar LaTeX-mdframed-newmdenv-regexp `(,(concat "\\\\newmdenv" "[ \t\n\r%]*" "\\(?:\\[[^][]*" "\\(?:{[^}{]*" "\\(?:{[^}{]*" "\\(?:{[^}{]*}[^}{]*\\)*" "}[^}{]*\\)*" "}[^][]*\\)*" "\\]\\)?" "[ \t\n\r%]*" "{\\([^}]+\\)}") 1 LaTeX-auto-mdframed-newmdenv) "Matches the argument of \\newmdenv from mdframed package.") ;; Setup for \mdfdefinestyle (TeX-auto-add-type "mdframed-mdfdefinestyle" "LaTeX") (defvar LaTeX-mdframed-mdfdefinestyle-regexp '("\\\\mdfdefinestyle[ \t\n\r%]*{\\([^}]+\\)}" 1 LaTeX-auto-mdframed-mdfdefinestyle) "Matches the argument of \\mdfdefinestyle from mdframed package.") ;; Setup for \newmdtheoremenv & \mdtheorem (TeX-auto-add-type "mdframed-mdtheorem" "LaTeX") (defvar LaTeX-mdframed-mdtheorem-regexp `(,(concat "\\\\\\(new\\)?mdtheorem\\(?:env\\)?" "[ \t\n\r%]*" "\\(?:\\[[^][]*" "\\(?:{[^}{]*" "\\(?:{[^}{]*" "\\(?:{[^}{]*}[^}{]*\\)*" "}[^}{]*\\)*" "}[^][]*\\)*" "\\]\\)?" "[ \t\n\r%]*" "{\\([^}]+\\)}") (2 1) LaTeX-auto-mdframed-mdtheorem) "Matches the argument of \\newmdtheoremenv and \\mdtheorem from mdframed package.") (defun LaTeX-mdframed-update-style-key () "Update some key=values in `LaTeX-mdframed-key-val-options-local'." ;; Add new "style"s to key=vals: (when (LaTeX-mdframed-mdfdefinestyle-list) (let* ((key (car (assoc "style" LaTeX-mdframed-key-val-options-local))) (val (cadr (assoc "style" LaTeX-mdframed-key-val-options))) (temp (copy-alist LaTeX-mdframed-key-val-options-local)) (opts (assq-delete-all (car (assoc key temp)) temp))) (pushnew (list key (delete-dups (append val (mapcar #'car (LaTeX-mdframed-mdfdefinestyle-list))))) opts :test #'equal) (setq LaTeX-mdframed-key-val-options-local (copy-alist opts)))) ;; ;; Check if any color defininig package is loaded and update the ;; key=values for coloring. Prefer xcolor.sty if both packages are ;; loaded. (when (or (member "xcolor" (TeX-style-list)) (member "color" (TeX-style-list))) (let* ((colorcmd (if (member "xcolor" (TeX-style-list)) #'LaTeX-xcolor-definecolor-list #'LaTeX-color-definecolor-list)) (keys '("linecolor" "innerlinecolor" "middlelinecolor" "outerlinecolor" "backgroundcolor" "fontcolor" "shadowcolor" "frametitlebackgroundcolor" "subtitlebackgroundcolor" "subtitleabovelinecolor" "subtitlebelowlinecolor")) (tmp (copy-alist LaTeX-mdframed-key-val-options-local))) (dolist (x keys) (setq tmp (assq-delete-all (car (assoc x tmp)) tmp)) (pushnew (list x (mapcar #'car (funcall colorcmd))) tmp :test #'equal)) (setq LaTeX-mdframed-key-val-options-local (copy-alist tmp))))) (defun LaTeX-mdframed-auto-prepare () "Clear variables before parsing for mdframed package." (setq LaTeX-auto-mdframed-newmdenv nil LaTeX-auto-mdframed-mdfdefinestyle nil LaTeX-auto-mdframed-mdtheorem nil)) (defun LaTeX-mdframed-auto-cleanup () "Process parsed elements for mdframed package." (dolist (env (mapcar #'car (LaTeX-mdframed-newmdenv-list))) (LaTeX-add-environments `(,env LaTeX-env-args [ TeX-arg-key-val LaTeX-mdframed-key-val-options-local ] )) (TeX-ispell-skip-setcdr `((,env ispell-tex-arg-end 0)))) (dolist (newenv (LaTeX-mdframed-mdtheorem-list)) (let ((env (car newenv)) (new (cadr newenv))) (LaTeX-add-environments (list env (vector "Heading"))) (unless (and new (not (string= new ""))) (LaTeX-add-environments (list (concat env "*") (vector "Heading")))))) (LaTeX-mdframed-update-style-key)) (add-hook 'TeX-auto-prepare-hook #'LaTeX-mdframed-auto-prepare t) (add-hook 'TeX-auto-cleanup-hook #'LaTeX-mdframed-auto-cleanup t) (add-hook 'TeX-update-style-hook #'TeX-auto-parse t) (TeX-add-style-hook "mdframed" (lambda () ;; Add mdframed to the parser (TeX-auto-add-regexp LaTeX-mdframed-newmdenv-regexp) (TeX-auto-add-regexp LaTeX-mdframed-mdfdefinestyle-regexp) (TeX-auto-add-regexp LaTeX-mdframed-mdtheorem-regexp) ;; Local version of key-val options (setq LaTeX-mdframed-key-val-options-local (copy-alist LaTeX-mdframed-key-val-options)) ;; 4. Commands (TeX-add-symbols '("mdfsetup" (TeX-arg-key-val LaTeX-mdframed-key-val-options-local)) '("newmdenv" [ TeX-arg-key-val LaTeX-mdframed-key-val-options-local ] (TeX-arg-eval (lambda () (let ((env (TeX-read-string (TeX-argument-prompt optional nil "Environment")))) (LaTeX-add-environments `(,env LaTeX-env-args [ TeX-arg-key-val LaTeX-mdframed-key-val-options-local ])) ;; Add new env's to `ispell-tex-skip-alist': skip the optional argument (TeX-ispell-skip-setcdr `((,env ispell-tex-arg-end 0))) (format "%s" env))))) '("renewmdenv" [ TeX-arg-key-val LaTeX-mdframed-key-val-options-local ] (TeX-arg-eval completing-read (TeX-argument-prompt optional nil "Environment") (LaTeX-mdframed-newmdenv-list))) '("surroundwithmdframed" [ TeX-arg-key-val LaTeX-mdframed-key-val-options-local ] TeX-arg-environment) '("mdflength" (TeX-arg-eval completing-read (TeX-argument-prompt optional nil "Length") '(("skipabove") ("skipbelow") ("leftmargin") ("rightmargin") ("innerleftmargin") ("innerrightmargin") ("innertopmargin") ("innerbottommargin") ("linewidth") ("innerlinewidth") ("middlelinewidth") ("outerlinewidth")))) ;; 5. Defining your own style '("mdfdefinestyle" (TeX-arg-eval (lambda () (let ((style (TeX-read-string (TeX-argument-prompt optional nil "Style name")))) (LaTeX-add-mdframed-mdfdefinestyles style) (LaTeX-mdframed-update-style-key) (format "%s" style)))) (TeX-arg-key-val LaTeX-mdframed-key-val-options-local)) '("mdfapptodefinestyle" (TeX-arg-eval completing-read (TeX-argument-prompt optional nil "Style name") (LaTeX-mdframed-mdfdefinestyle-list)) (TeX-arg-key-val LaTeX-mdframed-key-val-options-local)) ;; 6.11. Title commands inside the environment '("mdfsubtitle" [ TeX-arg-key-val LaTeX-mdframed-key-val-options-local ] "Subtitle") ;; 8. Theorems '("newmdtheoremenv" [ TeX-arg-key-val LaTeX-mdframed-key-val-options-local ] (TeX-arg-eval (lambda () (let ((nthm (TeX-read-string (TeX-argument-prompt optional nil "Environment")))) (LaTeX-add-environments (list nthm (vector "Heading"))) (format "%s" nthm)))) [ TeX-arg-environment "Numbered like" ] t [ (TeX-arg-eval progn (if (eq (save-excursion (backward-char 2) (preceding-char)) ?\]) () (TeX-arg-counter t "Within counter")) "") ]) '("mdtheorem" [ TeX-arg-key-val LaTeX-mdframed-key-val-options-local ] (TeX-arg-eval (lambda () (let ((nthm (TeX-read-string (TeX-argument-prompt optional nil "Environment")))) (LaTeX-add-environments (list nthm (vector "Heading")) (list (concat nthm "*") (vector "Heading"))) (format "%s" nthm)))) [ TeX-arg-environment "Numbered like" ] t [ (TeX-arg-eval progn (if (eq (save-excursion (backward-char 2) (preceding-char)) ?\]) () (TeX-arg-counter t "Within counter")) "") ])) ;; Main environment defined by mdframed.sty (LaTeX-add-environments '("mdframed" LaTeX-env-args [ TeX-arg-key-val LaTeX-mdframed-key-val-options-local ] )) ;; Fontification (when (and (featurep 'font-latex) (eq TeX-install-font-lock 'font-latex-setup)) (font-latex-add-keywords '(("newmdenv" "[{") ("renewmdenv" "[{") ("surroundwithmdframed" "[{") ("mdfsetup" "[{") ("mdfdefinestyle" "{{") ("mdfapptodefinestyle" "{{") ("newmdtheoremenv" "[{[{[") ("mdtheorem" "[{[{[")) 'function) (font-latex-add-keywords '(("mdfsubtitle" "[{")) 'sectioning-5) (font-latex-add-keywords '(("mdflength" "{")) 'variable))) LaTeX-dialect) (defvar LaTeX-mdframed-package-options-list '(("xcolor") ("framemethod" ("default" "tex" "latex" "none" "0" "tikz" "pgf" "1" "pstricks" "ps" "postscript" "2")) ("tikz") ("TikZ") ("ps") ("pstricks") ("PSTricks")) "Package options for the framed package.") (defun LaTeX-mdframed-package-options () "Prompt for package options for the mdframed package." (TeX-read-key-val t LaTeX-mdframed-package-options-list)) ;;; mdframed.el ends here auctex-11.91/style/mdsymbol.el000066400000000000000000000057041313533625700163440ustar00rootroot00000000000000;;; mdsymbol.el --- AUCTeX style for `mdsymbol.sty' (v0.5) ;; Copyright (C) 2014 Free Software Foundation, Inc. ;; Author: Arash Esbati ;; Maintainer: auctex-devel@gnu.org ;; Created: 2014-10-25 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `mdsymbol.sty' (v0.5) from 2012/11/18. ;; The latest version of is available from . ;; `mdsymbol.sty' is part of TeXLive. ;;; Code: (TeX-add-style-hook "mdsymbol" (lambda () ;; Run style hook for various packages loaded by mdsymbol (TeX-run-style-hooks "textcomp" "amsmath") ;; New symbols (TeX-add-symbols ;; These macros take one argument; we follow latex.el and use the ;; t specifier for the argument; over- and underbrace and sqrt are ;; already available '("overgroup" t) '("undergroup" t) '("overlinesegment" t) '("overleftharpoon" t) '("overrightharpoon" t) '("underlinesegment" t) ;; '("widehat" t) '("widetilde" t) '("wideparen" t) '("vec" t) '("middlebar" t) '("middleslash" t) '("strokethrough" t) ;; '("overlining" t)) ;; The following macros are usually defined, since retainmissing ;; defaults to false (unless (or (LaTeX-provided-package-options-member "mdsymbol" "retainmissing=true") (LaTeX-provided-package-options-member "mdsymbol" "retainmissing")) (TeX-add-symbols '("dagger") '("ddagger") '("mathparagraph") '("mathsection") '("mathdollar") '("mathsterling") '("yen") '("hbar") '("hslash") '("circledR") '("circledS") '("lambdabar") '("lambdaslash")))) LaTeX-dialect) (defvar LaTeX-mdsymbol-package-options '(;; ("normalweight" ("Light" "Regular" "autolight" "autoregular")) ("boldweight" ("Semibold" "Bold" "autosemibold")) ("onlysansmath" ("true" "false")) ("retainmissing" ("true" "false")) ("scale") ("largedelims" ("true" "false"))) "Package options for the mdsymbol package.") (defun LaTeX-mdsymbol-package-options nil "Prompt for package options for the mdsymbol package." (TeX-read-key-val t LaTeX-mdsymbol-package-options)) ;;; mdsymbol.el ends here auctex-11.91/style/mdwlist.el000066400000000000000000000042351313533625700161770ustar00rootroot00000000000000;;; mdwlist.el --- AUCTeX style for `mdwlist.sty' ;; Copyright (C) 2004, 2005 Free Software Foundation, Inc. ;; Maintainer: auctex-devel@gnu.org ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `mdwlist.sty'. ;;; Code: (TeX-add-style-hook "mdwlist" (lambda () (TeX-add-symbols '("makecompactlist" "New environment" "Existing environment") '("suspend" "Environment") ; this could be done nicer by automatically '("resume" "Environment")) ; determining the environment (LaTeX-add-environments '("enumerate*" LaTeX-env-item) '("itemize*" LaTeX-env-item) '("description*" LaTeX-env-item)) ;; Indentation and filling (make-local-variable 'LaTeX-begin-regexp) (setq LaTeX-begin-regexp (concat LaTeX-begin-regexp "\\|resume\\b")) (make-local-variable 'LaTeX-end-regexp) (setq LaTeX-end-regexp (concat LaTeX-end-regexp "\\|suspend\\b")) (make-local-variable 'paragraph-start) (setq paragraph-start (concat paragraph-start "\\|[ \t]*" TeX-comment-start-regexp "*[ \t]*" (regexp-quote TeX-esc) "\\(resume\\b\\|suspend\\b\\)")) ;; Fontification (when (and (featurep 'font-latex) (eq TeX-install-font-lock 'font-latex-setup)) (font-latex-add-keywords '(("makecompactlist" "{{") ("suspend" "[{") ("resume" "[{[")) 'function))) LaTeX-dialect) (defvar LaTeX-mdwlist-package-options nil "Package options for the mdwlist package.") ;;; mdwlist.el ends here auctex-11.91/style/memoir.el000066400000000000000000000052361313533625700160060ustar00rootroot00000000000000;;; memoir.el --- AUCTeX style for `memoir.cls' ;; Copyright (C) 2012 Free Software Foundation, Inc. ;; Author: Mads Jensen ;; Maintainer: auctex-devel@gnu.org ;; Created: 2012-12-28 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `memoir.cls'. Memoir is a very extensive ;; document class that lets you configure things very easily; `memoir' ;; loads (emulates) a lot of classes. ;;; Code: (TeX-add-style-hook "memoir" (lambda () (TeX-add-symbols ;; 6.4 Book and part headings "beforebookskip" "afterbookskip" "beforepartskip" "afterpartskip" "printbookname" "booknamefont" "booknamenum" "printbooknum" "booknumfont" "printpartname" "partnamefont" "partnamenum" "printpartnum" "partnumfont" '("printbooktitle" "Title") "booktitlefont" '("printparttitle" "Title") "parttitlefont" '("bookpagemark" "Title") '("partmark" "Title") "bookpageend" "bookblankpage" "nobookblankpage" "partpageend" "partblankpage" "nopartblankpage" '("newleadpage" [ TeX-arg-pagestyle ] 1 "Title") '("newleadpage*" [ TeX-arg-pagestyle ] 1 "Title") '("renewleadpage*" [ TeX-arg-pagestyle ] 1 "Title") '("renewleadpage*" [ TeX-arg-pagestyle ] 1 "Title") "leadpagetoclevel") (LaTeX-add-environments "abstract") ;; Emulated packages. The `memoir' class contains a list of files ;; emulated at the end of the class-file (TeX-run-style-hooks "abstract" "appendix" "array" "booktabs" "ccaption" "changepage" "chngcntr" "chngpage" "crop" "dcolumn" "delarray" "enumerate" "epigraph" "ifmtarg" "ifetex" "ifluatex" "ifpdf" "ifxetex" "index" "makeidx" "moreverb" "mparhack" "needspace" "newfile" "nextpage" "pagenote" "parskip" "patchcmd" "setspace" "shortvrb" "showidx" "tabularx" "titleref" "titling" "tocbibind" "tocloft" "verbatim" "verse") (LaTeX-largest-level-set "chapter")) LaTeX-dialect) ;;; memoir.el ends here auctex-11.91/style/menukeys.el000066400000000000000000000464241313533625700163620ustar00rootroot00000000000000;;; menukeys.el --- AUCTeX style for `menukeys.sty' (v1.4) ;; Copyright (C) 2016 Free Software Foundation, Inc. ;; Author: Arash Esbati ;; Maintainer: auctex-devel@gnu.org ;; Created: 2016-02-07 ;; Keywords: tex ;; This file is part of AUCTeX. ;; AUCTeX is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; AUCTeX is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with AUCTeX; see the file COPYING. If not, write to the Free ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;;; Commentary: ;; This file adds support for `menukeys.sty' (v1.4) from 2016/04/18. ;; `menukeys.sty' is part of TeXLive. ;;; Code: ;; Needed for auto-parsing. (require 'tex) (defvar LaTeX-menukeys-input-separators-list '("/" "=" "*" "+" "," ";" ":" "-" ">" "<" "bslash") "List of input separators for macros of menukeys package.") (defvar LaTeX-menukeys-predefined-styles-list '("menus" "roundedmenus" "angularmenus" "roundedkeys" "shadowedroundedkeys" "angularkeys" "shadowedangularkeys" "typewriterkeys" "paths" "pathswithfolder" "pathswithblackfolder" "hyphenatepaths" "hyphenatepathswithfolder" "hyphenatepathswithblackfolder") "List of predefined styles for macros from menukeys package.") ;; Setup for \newmenustyle(simple): (TeX-auto-add-type "menukeys-newmenustyle" "LaTeX") (defvar LaTeX-menukeys-newmenustyle-regexp '("\\\\\\(?:new\\|copy\\)menustyle\\(?:simple\\)?*?{\\([^}]+\\)}" 1 LaTeX-auto-menukeys-newmenustyle) "Matches the argument of \\newmenustyle and \\newmenustylesimple from menukeys package.") ;; Setup for \newmenucolortheme: (TeX-auto-add-type "menukeys-newmenucolortheme" "LaTeX") (defvar LaTeX-menukeys-newmenucolortheme-regexp '("\\\\\\(?:new\\|copy\\)menucolortheme{\\([^}]+\\)}" 1 LaTeX-auto-menukeys-newmenucolortheme) "Matches the argument of \\newmenucolortheme from menukeys package.") ;; Setup for \newmenumacro: (TeX-auto-add-type "menukeys-newmenumacro" "LaTeX") (defvar LaTeX-menukeys-newmenumacro-regexp `(,(concat "\\\\\\(new\\|renew\\|provide\\)menumacro" "{?" (regexp-quote TeX-esc) "\\([a-zA-Z]+\\)" "}?" "\\(?:\\[\\([^]]*\\)\\]\\)?") (2 3 1) LaTeX-auto-menukeys-newmenumacro) "Matches the arguments of \\newmenumacro from menukeys package.") (defun LaTeX-menukeys-auto-prepare () "Clear various `LaTeX-auto-menukeys-*' variables before parsing." (setq LaTeX-auto-menukeys-newmenustyle nil LaTeX-auto-menukeys-newmenucolortheme nil LaTeX-auto-menukeys-newmenumacro nil)) (defun LaTeX-menukeys-auto-cleanup () "Process the parsed elements for menukeys package. This function adds parsed elements from the variable `LaTeX-menukeys-newmenumacro-list' to AUCTeX via the function `TeX-add-symbols'. The variable `LaTeX-menukeys-newmenumacro-list' and not the function with the same name is used since this function looks for the order of commands which are set by \\renewmenumacro in order to pick the current separator. These renew-commands are also removed first from the variable `TeX-symbol-list' before being re-added." (dolist (x (apply #'append LaTeX-menukeys-newmenumacro-list)) (let ((macro (nth 0 x)) (sep (nth 1 x)) (renew (when (string= (nth 2 x) "renew") (nth 2 x)))) ;; When we are renewmenumacro'ing, delete the entry first from the ;; variable `TeX-symbol-list' and then add the new spec: (when renew (setq TeX-symbol-list (assq-delete-all (car (assoc macro (TeX-symbol-list))) TeX-symbol-list))) (TeX-add-symbols `(,macro [ TeX-arg-eval completing-read (TeX-argument-prompt optional nil ,(concat "Input separator " "(default " (if (and sep (not (string= sep ""))) sep ",") ")")) LaTeX-menukeys-input-separators-list ] t )) (when (and (featurep 'font-latex) (eq TeX-install-font-lock 'font-latex-setup)) (font-latex-add-keywords `((,macro "[{")) 'textual))))) (add-hook 'TeX-auto-prepare-hook #'LaTeX-menukeys-auto-prepare t) (add-hook 'TeX-auto-cleanup-hook #'LaTeX-menukeys-auto-cleanup t) (add-hook 'TeX-update-style-hook #'TeX-auto-parse t) (defun TeX-arg-menukeys-newmenumacro (optional &optional renew) "Query and insert the arguments of \\newmenumacro from menukeys package. After inserting, add the name of macro and the optional separator to the name of known macros via `TeX-add-symbols'. If font-latex.el is loaded, also use `font-latex-add-keywords' on macro. If RENEW is non-nil, query for an already defined macro." (let ((macro (if renew (completing-read (concat "Macro: " TeX-esc) (delete-dups (mapcar #'car (LaTeX-menukeys-newmenumacro-list)))) (TeX-read-string (concat "Macro: " TeX-esc)))) (sep (completing-read (TeX-argument-prompt optional nil "Input separator (default ,)") LaTeX-menukeys-input-separators-list)) (style (completing-read (TeX-argument-prompt optional nil "Style") (LaTeX-menukeys-newmenustyle-list)))) (TeX-argument-insert (concat TeX-esc macro) optional) (when (and sep (not (string= sep ""))) (insert (format "[%s]" sep))) (TeX-argument-insert style optional) ;; When we are renewmenumacro'ing, delete the entry first from the ;; variable `TeX-symbol-list' and then add the new spec: (when renew (setq TeX-symbol-list (assq-delete-all (car (assoc macro (TeX-symbol-list))) TeX-symbol-list))) (TeX-add-symbols `(,macro [ TeX-arg-eval completing-read (TeX-argument-prompt optional nil ,(concat "Input separator " "(default " (if (and sep (not (string= sep ""))) sep ",") ")")) LaTeX-menukeys-input-separators-list ] t )) (when (and (featurep 'font-latex) (eq TeX-install-font-lock 'font-latex-setup)) (font-latex-add-keywords `((,macro "[{")) 'textual)))) (TeX-add-style-hook "menukeys" (lambda () ;; Add menukeys to the parser (TeX-auto-add-regexp LaTeX-menukeys-newmenustyle-regexp) (TeX-auto-add-regexp LaTeX-menukeys-newmenucolortheme-regexp) (TeX-auto-add-regexp LaTeX-menukeys-newmenumacro-regexp) ;; Activate predefined stuff (apply #'LaTeX-add-menukeys-newmenustyles LaTeX-menukeys-predefined-styles-list) (LaTeX-add-menukeys-newmenucolorthemes "gray" "blacknwhite") ;; Run style hooks for xcolor, tikz and relsize (TeX-run-style-hooks "xcolor" "tikz" "relsize") ;; 4.1 Basic macros: These are not defined if the package option ;; definemenumacros ist set to false (default is true). We check ;; for the package option here and add them. (unless (LaTeX-provided-package-options-member "menukeys" "definemenumacros=false") (TeX-add-symbols ;; \menu []{} ;; \directory []{path} ;; \keys []{keystrokes} '("menu" [ TeX-arg-eval completing-read (TeX-argument-prompt optional nil "Input separator") LaTeX-menukeys-input-separators-list ] t) '("directory" [ TeX-arg-eval completing-read (TeX-argument-prompt optional nil "Input separator") LaTeX-menukeys-input-separators-list ] t) '("keys" [ TeX-arg-eval completing-read (TeX-argument-prompt optional nil "Input separator") LaTeX-menukeys-input-separators-list ] t))) (TeX-add-symbols ;; 4.2.1 Predefined styles ;; \drawtikzfolder[][] '("drawtikzfolder" [ TeX-arg-eval completing-read (TeX-argument-prompt optional nil "Front color") (LaTeX-xcolor-definecolor-list) ] [ TeX-arg-eval completing-read (TeX-argument-prompt optional nil "Line color") (LaTeX-xcolor-definecolor-list) ] ) ;; 4.2.2 Declaring styles ;; \newmenustylesimple*{}[
]{