unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Glenn Morris <rgm@gnu.org>
To: "Vincent Belaïche" <vincent.b.1@hotmail.fr>
Cc: Edward Reingold <reingold@iit.edu>, emacs-devel <emacs-devel@gnu.org>
Subject: Re: cal-tex.el landscape patch
Date: Mon, 28 Aug 2017 13:55:59 -0400	[thread overview]
Message-ID: <xma82jwp8w.fsf@fencepost.gnu.org> (raw)
In-Reply-To: <AM5PR10MB0676500E709C57DDF541B7C784980@AM5PR10MB0676.EURPRD10.PROD.OUTLOOK.COM> ("Vincent \=\?utf-8\?Q\?Bela\=C3\=AFche\=22's\?\= message of "Sat, 26 Aug 2017 15:29:34 +0000")


Thanks, comments below.

> --- a/lisp/calendar/cal-tex.el
> +++ b/lisp/calendar/cal-tex.el
> @@ -259,12 +259,37 @@ cal-tex-list-diary-entries
>  (defun cal-tex-preamble (&optional args)
>    "Insert the LaTeX calendar preamble into `cal-tex-buffer'.
>  Preamble includes initial definitions for various LaTeX commands.
> -Optional string ARGS are included as options for the article document class."
> +Optional string ARGS are included as options for the article
> +document class with inclusion of default values \"12pt\" for
> +size, and \"a4paper\" for paper unless size or paper are already
> +specified in ARGS.  When ARGS is omitted, by default the option
> +\"12pt,a4paper\" is passed.

I think in hindsight my suggestion to default to 12pt was not a good
one, because it makes the argument parsing ugly. Sorry.
And please don't default to A4 paper, since the default locale for Emacs is
the US one (spelling etc).

> +Please note that if ARGS is \"\" then
> +\"\\documentclass[]{article}\" is inserted, while if ARGS it `t'
> +then \"\\documentclass{article}\" is inserted."

This doesn't seem like a nice interface.
Why do you need the ARGS t case when it can be nil?

>    (set-buffer (generate-new-buffer cal-tex-buffer))
> -  (insert (format "\\documentclass%s{article}\n"
> -                  (if (stringp args)
> -                      (format "[%s]" args)
> -                    "")))
> +  (save-match-data
> +    (insert (format "\\documentclass%s{article}\n"
> +                    (cond
> +                     ((stringp args)
> +                      ;; set default size
> +                      (unless (string-match "\\(^\\|,\\) *[0-9]+pt *\\(,\\|$\\)" args)
> +                        (setq args (concat args ",12pt")))
> +                      ;; set default paper
> +                      (unless (string-match "\\(^\\|,\\) *\\([ab][4-5]\\|le\\(tter\\|gal\\)\\|executive\\)paper *\\(,\\|$\\)" args)
> +                        (setq args (concat args ",a4paper")))
> +                      (when (string= (substring args 0 1) ",")
> +                        (setq args (substring args 1)))
> +                      (format "[%s]" args))
> +                     ((null args) "[12pt]")
> +                     (t ""))))

This seems overly complicated to me.
Again, it wasa bad suggestion of mine to have default values.
string-match-p would avoid the need to save-match-data.



  parent reply	other threads:[~2017-08-28 17:55 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-08-21 14:19 cal-tex.el landscape patch Vincent Belaïche
2017-08-22  7:04 ` Marcin Borkowski
2017-08-22 22:05   ` Vincent Belaïche
2017-08-25  1:10 ` Glenn Morris
2017-08-25  9:07   ` Vincent Belaïche
2017-08-25 17:58     ` Vincent Belaïche
2017-08-25 18:25       ` Edward Reingold
2017-08-26 15:06         ` Vincent Belaïche
2017-08-26 15:29           ` Vincent Belaïche
2017-08-28 17:20             ` Paul Eggert
2017-08-28 17:55             ` Glenn Morris [this message]
2017-08-30  9:45               ` Vincent Belaïche
2017-09-14 12:46                 ` Vincent Belaïche
2017-09-14 20:31                   ` Glenn Morris

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=xma82jwp8w.fsf@fencepost.gnu.org \
    --to=rgm@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=reingold@iit.edu \
    --cc=vincent.b.1@hotmail.fr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).