Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-12-SP1:GA
emacs-auctex
auctex-11.86-dinbrief.dif
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File auctex-11.86-dinbrief.dif of Package emacs-auctex
From 0d7a93744a93e155188e592aad8bcd644da02688 Mon Sep 17 00:00:00 2001 From: Tassilo Horn <tsdh@gnu.org> Date: Mon, 25 Feb 2013 14:28:34 +0000 Subject: * 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'. --- (limited to 'style/dinbrief.el') diff --git a/style/dinbrief.el b/style/dinbrief.el index 6049434..8a20519 100644 --- a/style/dinbrief.el +++ b/style/dinbrief.el @@ -1,93 +1,143 @@ -;;; dinbrief.el - Special code for LaTeX-Style dinbrief. +;; Copyright (C) 1994, 2013 Free Software Foundation, Inc. -;; Contributed by Werner Fink <tex@itap.physik.uni-stuttgart.de> -;; Please direct comments to him. +;; Author: Werner Fink <werner@suse.de> +;; 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-Style: dinbrief.sty -;; Server: rusinfo.rus.uni-stuttgart.de -;; Directory: /pub/soft/tex/macros/latex/contrib/letters +;; 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-recipient-hook)) + '("letter" LaTeX-dinbrief-env-recipient) + "dinquote") (TeX-add-symbols - '("Absender" "Absender: ") - '("Postvermerk" "Postvermerk: ") - '("Datum" "Datum: ") - '("Betreff" "Betreff: ") - '("Behandlungsvermerk" "Behandlungsvermerk: ") - '("Verteiler" "Verteiler: ") - "makelabel" "Retourlabel" - '("Anlagen" "Anlagen: ") - '("Fenster" "Fenster \(ja/nein\): ") - '("Retouradresse" "Retouradresse: ") + '("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" "Schlu\"s: "))))) + '("closing" "Schluss: "))))) + +(defmacro LaTeX-dinbrief-insert (&rest args) + "Insert text ignoring active markers." + `(progn (if (TeX-mark-active) (TeX-deactivate-mark)) + (insert ,@args))) -(defun LaTeX-recipient-hook (environment) +(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 (read-string "Absender: " (user-full-name))) - (recipient (read-string "Empf\"anger: ")) - (address (read-string "Anschrift: ")) - (postvermerk (read-string "Postvermerk: ")) - (date (read-string "Datum: " (LaTeX-today))) - (betreff (read-string "Betreff: ")) + (let ( + (sender (LaTeX-dinbrief-sender)) + (recipient (read-string "Empfänger: ")) + (address (LaTeX-dinbrief-recipient)) + (date (read-string "Datum: " (LaTeX-dinbrief-today))) + (postremark (read-string "Postvermerk: ")) + (fenster (read-string "Fenster \(ja/nein\): ")) (vermerk (read-string "Behandlungsvermerk: ")) (verteil (read-string "Verteiler: ")) - (anlage (read-string "Anlagen: ")) + (betreff (read-string "Betreff: ")) (opening (read-string "Anrede: ")) - (closing (read-string "Schlu\"s: ")) - (fenster (read-string "Fenster \(ja/nein\): ")) + (closing (read-string "Schluss: ")) (signature (read-string "Unterschrift: ")) - ) + (anlage (read-string "Anlagen: "))) - (if (not (zerop (length sender))) - (progn - (insert TeX-esc "Absender" TeX-grop sender TeX-grcl) - (newline-and-indent))) - (if (not (zerop (length postvermerk))) - (progn - (insert TeX-esc "Postvermerk" TeX-grop postvermerk TeX-grcl) - (newline-and-indent))) - (if (not (zerop (length betreff))) - (progn - (insert TeX-esc "Betreff" TeX-grop betreff TeX-grcl) - (newline-and-indent))) - (if (not (zerop (length vermerk))) - (progn - (insert TeX-esc "Behandlungsvermerk" TeX-grop vermerk TeX-grcl) - (newline-and-indent))) - (if (not (zerop (length verteil))) - (progn - (insert TeX-esc "Verteiler" TeX-grop verteil TeX-grcl) - (newline-and-indent))) - (if (not (zerop (length anlage))) - (progn - (insert TeX-esc "Anlagen" TeX-grop anlage TeX-grcl) - (newline-and-indent))) (if (string= fenster "ja") (progn - (insert TeX-esc "Fenster") - (let ((retouradr (read-string "Retouradresse: " (user-full-name)))) + (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 (read-string "Retouradresse: " sender))) (newline-and-indent) (if (not (zerop (length retouradr))) (progn - (insert TeX-esc "Retouradresse" TeX-grop retouradr TeX-grcl) - (newline-and-indent)))))) + (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 - (insert TeX-esc "signature" TeX-grop signature TeX-grcl) + (LaTeX-dinbrief-insert TeX-esc "signature" TeX-grop signature TeX-grcl) (newline-and-indent))) (if (not (zerop (length date))) (progn - (insert TeX-esc "Datum" TeX-grop date TeX-grcl) + (LaTeX-dinbrief-insert TeX-esc "date" TeX-grop date TeX-grcl) (newline-and-indent))) (newline-and-indent) @@ -112,9 +162,30 @@ (progn (newline) (indent-to addr-column)))))))) - (insert "\n") + (LaTeX-dinbrief-insert "\n") (indent-to indentation)) - (insert TeX-esc "opening" + (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 " ") @@ -123,7 +194,7 @@ (indent-relative-maybe) (save-excursion - (insert "\n" TeX-esc "closing" + (LaTeX-dinbrief-insert "\n" TeX-esc "closing" TeX-grop (if (zerop (length closing)) (concat TeX-esc " ") @@ -131,7 +202,46 @@ TeX-grcl "\n") (indent-relative-maybe)))) -(defun LaTeX-today nil +(defun LaTeX-dinbrief-sender () + "Read and write the senders address." + (interactive) + (let ((name (read-string "Absender: " (user-full-name))) + (str (read-string "Meine Strasse: ")) + (ort (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) + (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 (read-string "Wohnhaft in Strasse: ")) + (ort (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)) @@ -152,12 +262,13 @@ 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)))) + (day (substring ctime-string (match-beginning 2) (match-end 2))) + (place (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 "Stuttgart, den %s. %s %s" day month year)))) + (format "%s, den %s. %s %s" place day month year)))) ;;; dinbrief.el ends here -- cgit v0.9.0.2
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor