emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* Bug: LaTeX output of numbered TODO plain list items lose numbering. [9.1.9 (release_9.1.9-65-g5e4542 @ /usr/share/emacs/27.0.50/lisp/org/)]
@ 2019-11-09  2:28 Brian Carlson
  2019-11-09 11:59 ` Fraga, Eric
  2020-02-11 11:30 ` Bastien
  0 siblings, 2 replies; 5+ messages in thread
From: Brian Carlson @ 2019-11-09  2:28 UTC (permalink / raw)
  To: emacs-orgmode

Remember to cover the basics, that is, what you expected to happen and
what in fact did happen.  You don't know how to make a good report?  See

     https://orgmode.org/manual/Feedback.html#Feedback

Your bug report will be posted to the Org mailing list.
------------------------------------------------------------------------
So it seems that the numbering of numbered items in a plain list are not
maintained when the numbered item is also a TODO plain list item.

Here is how I produced the issue:

$ emacs -Q

I created a very simple org-mode file:
--8<---------------cut here---------------start------------->8---
* Test file
  1. [ ] item
  2. item 2
  3. item 3
--8<---------------cut here---------------end--------------->8---

I then used the export facilities to create a PDF: C-c C-e l o

I expected to see a PDF that looked like:
--8<---------------cut here---------------start------------->8---
Contents

1 Test File

1  Test File
   1. [] item
   2. item 2
   3. item 3
--8<---------------cut here---------------end--------------->8---

Instead I see a pdf that has the following:
--8<---------------cut here---------------start------------->8---
Contents

1 Test File

1  Test File
   [] item
   1. item 2
   2. item 3
--8<---------------cut here---------------end--------------->8---

Notice how the "1." was removed in the generated PDF from the first item
and the numbering started from 1. on "item 2"

This used to work, but I'm not exactly certain when it changed.

It *appears* that the generated \item for enumeration is incorrect?
The .tex file contains the following:
     \item[{$\square$}] item

I /think/ that this should be:
   \item{$\square$} item

Maybe the [ and ] are not being stripped and converted into the {$\square$}, but are rather being left and ending up
with [{$\square$}].

(The same thing happens with the \boxtimes for "completed" TODOs.


If that is the case then I /think/ that this patch would fix it:
diff --git a/lisp/ox-latex.el b/lisp/ox-latex.el
index 832d9bf8..b9734443 100644
--- a/lisp/ox-latex.el
+++ b/lisp/ox-latex.el
@@ -2208,9 +2208,9 @@ contextual information."
 	    "\\item"
 	    (cond
 	     ((and checkbox tag)
-	      (format "[{%s %s}] %s" checkbox tag tag-footnotes))
+	      (format "{%s %s} %s" checkbox tag tag-footnotes))
 	     ((or checkbox tag)
-	      (format "[{%s}] %s" (or checkbox tag) tag-footnotes))
+	      (format "{%s} %s" (or checkbox tag) tag-footnotes))
 	     ;; Without a tag or a check-box, if CONTENTS starts with
 	     ;; an opening square bracket, add "\relax" to "\item",
 	     ;; unless the brackets comes from an initial export

I haven't done any thorough testing, just looking where I thought the issue might be.

Thanks for all the great work on Org Mode,
;-b



Emacs  : GNU Emacs 27.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.18.9)
 of 2019-09-04
Package: Org mode version 9.1.9 (release_9.1.9-65-g5e4542 @ /usr/share/emacs/27.0.50/lisp/org/)

current state:
==============
(setq
 org-src-mode-hook '(org-src-babel-configure-edit-buffer
		     org-src-mode-configure-edit-buffer)
 org-after-todo-state-change-hook '(org-clock-out-if-current)
 org-metadown-hook '(org-babel-pop-to-session-maybe)
 org-clock-out-hook '(org-clock-remove-empty-clock-drawer)
 org-html-format-inlinetask-function 'org-html-format-inlinetask-default-function
 org-odt-format-headline-function 'org-odt-format-headline-default-function
 org-ascii-format-inlinetask-function 'org-ascii-format-inlinetask-default
 org-mode-hook '(#[0 "\300\301\302\303\304$\207"
		   [add-hook change-major-mode-hook org-show-block-all append
		    local]
		   5]
		 #[0 "\300\301\302\303\304$\207"
		   [add-hook change-major-mode-hook org-babel-show-result-all
		    append local]
		   5]
		 org-babel-result-hide-spec org-babel-hide-all-hashes)
 org-odt-format-drawer-function #[514 "\207" [] 3 "\n\n(fn NAME CONTENTS)"]
 org-archive-hook '(org-attach-archive-delete-maybe)
 org-confirm-elisp-link-function 'yes-or-no-p
 org-agenda-before-write-hook '(org-agenda-add-entry-text)
 org-metaup-hook '(org-babel-load-in-session-maybe)
 org-bibtex-headline-format-function #[257 "\300\x01\236A\207" [:title] 3 "\n\n(fn ENTRY)"]
 org-latex-format-drawer-function #[514 "\207" [] 3 "\n\n(fn _ CONTENTS)"]
 org-babel-pre-tangle-hook '(save-buffer)
 org-tab-first-hook '(org-babel-hide-result-toggle-maybe
		      org-babel-header-arg-expand)
 org-ascii-format-drawer-function #[771 "\x01\207" [] 4 "\n\n(fn NAME CONTENTS WIDTH)"]
 org-occur-hook '(org-first-headline-recenter)
 org-cycle-hook '(org-cycle-hide-archived-subtrees org-cycle-hide-drawers
		  org-cycle-show-empty-lines
		  org-optimize-window-after-visibility-change)
 org-speed-command-hook '(org-speed-command-activate
			  org-babel-speed-command-activate)
 org-odt-format-inlinetask-function 'org-odt-format-inlinetask-default-function
 org-confirm-shell-link-function 'yes-or-no-p
 org-link-parameters '(("id" :follow org-id-open)
		       ("rmail" :follow org-rmail-open :store
			org-rmail-store-link)
		       ("mhe" :follow org-mhe-open :store org-mhe-store-link)
		       ("irc" :follow org-irc-visit :store org-irc-store-link)
		       ("info" :follow org-info-open :export org-info-export
			:store org-info-store-link)
		       ("gnus" :follow org-gnus-open :store
			org-gnus-store-link)
		       ("docview" :follow org-docview-open :export
			org-docview-export :store org-docview-store-link)
		       ("bibtex" :follow org-bibtex-open :store
			org-bibtex-store-link)
		       ("bbdb" :follow org-bbdb-open :export org-bbdb-export
			:complete org-bbdb-complete-link :store
			org-bbdb-store-link)
		       ("w3m" :store org-w3m-store-link) ("file+sys")
		       ("file+emacs") ("doi" :follow org--open-doi-link)
		       ("elisp" :follow org--open-elisp-link)
		       ("file" :complete org-file-complete-link)
		       ("ftp" :follow
			(lambda (path) (browse-url (concat "ftp:" path))))
		       ("help" :follow org--open-help-link)
		       ("http" :follow
			(lambda (path) (browse-url (concat "http:" path))))
		       ("https" :follow
			(lambda (path) (browse-url (concat "https:" path))))
		       ("mailto" :follow
			(lambda (path) (browse-url (concat "mailto:" path))))
		       ("news" :follow
			(lambda (path) (browse-url (concat "news:" path))))
		       ("shell" :follow org--open-shell-link))
 org-latex-format-headline-function 'org-latex-format-headline-default-function
 org-latex-format-inlinetask-function 'org-latex-format-inlinetask-default-function
 org-html-format-drawer-function #[514 "\207" [] 3 "\n\n(fn NAME CONTENTS)"]
 org-html-format-headline-function 'org-html-format-headline-default-function
 )

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Bug: LaTeX output of numbered TODO plain list items lose numbering. [9.1.9 (release_9.1.9-65-g5e4542 @ /usr/share/emacs/27.0.50/lisp/org/)]
  2019-11-09  2:28 Bug: LaTeX output of numbered TODO plain list items lose numbering. [9.1.9 (release_9.1.9-65-g5e4542 @ /usr/share/emacs/27.0.50/lisp/org/)] Brian Carlson
@ 2019-11-09 11:59 ` Fraga, Eric
  2019-11-09 23:03   ` Brian Carlson
  2020-02-11 11:30 ` Bastien
  1 sibling, 1 reply; 5+ messages in thread
From: Fraga, Eric @ 2019-11-09 11:59 UTC (permalink / raw)
  To: Brian Carlson; +Cc: emacs-orgmode

On Friday,  8 Nov 2019 at 21:28, Brian Carlson wrote:
> So it seems that the numbering of numbered items in a plain list are not
> maintained when the numbered item is also a TODO plain list item.

This is a "feature", not a bug.  The intention was to export check box
lists nicely to LaTeX, showing which were done and which were not.  This
doesn't mix well with any other type of list except for simple bullet
points unfortunately.

The only way around it is to have them as separate lists (e.g. two empty
lines between the check box item and the numbered items) and start the
numbered list with the desired number ([@2], I believe).

-- 
Eric S Fraga via Emacs 27.0.50, Org release_9.2.6-552-g8c5a78

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Bug: LaTeX output of numbered TODO plain list items lose numbering. [9.1.9 (release_9.1.9-65-g5e4542 @ /usr/share/emacs/27.0.50/lisp/org/)]
  2019-11-09 11:59 ` Fraga, Eric
@ 2019-11-09 23:03   ` Brian Carlson
  2020-02-05  8:20     ` Bastien
  0 siblings, 1 reply; 5+ messages in thread
From: Brian Carlson @ 2019-11-09 23:03 UTC (permalink / raw)
  To: Fraga, Eric; +Cc: emacs-orgmode

On 11/9/19 6:59 AM, Fraga, Eric wrote:

> On Friday,  8 Nov 2019 at 21:28, Brian Carlson wrote:
>> So it seems that the numbering of numbered items in a plain list are not
>> maintained when the numbered item is also a TODO plain list item.
> This is a "feature", not a bug.  The intention was to export check box
> lists nicely to LaTeX, showing which were done and which were not.  This
> doesn't mix well with any other type of list except for simple bullet
> points unfortunately.

This is, indeed, a very odd "feature." Why change the numbering to not match what the org file shows? 

This is especially problematic if you use internal links...

--8<---------------cut here---------------start------------->8---
* My tasks
  1. one item
  2. Something interesting
     1. [X] <<target>> another item
  3. A note that isn't really a ToDo
     1. Here we refer to item [[target]] saying it's related.
     2. another item

--8<---------------cut here---------------end--------------->8---

That file give the following LaTeX output. (I've omitted the Table of Contents). 
Notice that the reference is to "2." The actual reference is to 2.1 but since 
it's a plain list todo so it references the WRONG item.
--8<---------------cut here---------------start------------->8---

1 My tasks
  1. one item
  2. Something interesting
    [X] another item
  3. A note that isn't really a ToDo
    (a) Here we refer to item 2 saying it's related
    (b) another item
--8<---------------cut here---------------end--------------->8---

This is inconsistent with the org mode content. It is also inconsistent 
with the HTML output, which IMHO matches the intent of the org mode file:
--8<---------------cut here---------------start------------->8---

1 My tasks
  1. one item
  2. Something interesting
     1. [X] another item
  3. A note that isn't really a ToDo
     1. Here we refer to item 2.1 saying it's related.
     2. another item
--8<---------------cut here---------------end--------------->8---



This change in behavior, err 'feature', should at least be documented 
in that it is shocking to a user. The full ramification of the change
may require quite a few documented use cases. Perhaps the "feature creator"
or someone who understands the reasoning wouldn't mind documenting this 
inconsistency in LaTeX exports (but not other Export targets)?

In the mean time, I guess I'll just have to add some "override" lisp to my 
init file to do the sane and expected thing. This is very unfortunate since
org-latex-item is pretty big. I don't think I can easily just advise this
function. <sigh>

> The only way around it is to have them as separate lists (e.g. two empty
> lines between the check box item and the numbered items) and start the
> numbered list with the desired number ([@2], I believe).

But I don't want separate lists. I want a "todo list" that's numbered but 
doesn't change the numbering when I add a comment or wish to refer to another
 task in that list.  Having to constantly update the numbering every time I 
change my list seems sort of contrary to the whole simplicity of Org Mode.  

I find this a very odd exception to just the LaTeX export.

Thanks, 
;-b

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Bug: LaTeX output of numbered TODO plain list items lose numbering. [9.1.9 (release_9.1.9-65-g5e4542 @ /usr/share/emacs/27.0.50/lisp/org/)]
  2019-11-09 23:03   ` Brian Carlson
@ 2020-02-05  8:20     ` Bastien
  0 siblings, 0 replies; 5+ messages in thread
From: Bastien @ 2020-02-05  8:20 UTC (permalink / raw)
  To: Brian Carlson; +Cc: emacs-orgmode, Fraga, Eric

Hi Brian,

if you can write a patch for this enhancement, that would be nice.

Thanks,

-- 
 Bastien

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Bug: LaTeX output of numbered TODO plain list items lose numbering. [9.1.9 (release_9.1.9-65-g5e4542 @ /usr/share/emacs/27.0.50/lisp/org/)]
  2019-11-09  2:28 Bug: LaTeX output of numbered TODO plain list items lose numbering. [9.1.9 (release_9.1.9-65-g5e4542 @ /usr/share/emacs/27.0.50/lisp/org/)] Brian Carlson
  2019-11-09 11:59 ` Fraga, Eric
@ 2020-02-11 11:30 ` Bastien
  1 sibling, 0 replies; 5+ messages in thread
From: Bastien @ 2020-02-11 11:30 UTC (permalink / raw)
  To: Brian Carlson; +Cc: emacs-orgmode

Hi Brian,

thanks for reporting this and for proposing a fix, your fix is now in
the maint branch: https://code.orgmode.org/bzg/org-mode/commit/5acf4d46

@Eric, let me know if there is something I overlooked while accepting
Brian's fix, I tested the change and it looks good to me.

Thanks,

-- 
 Bastien

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2020-02-11 11:30 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-11-09  2:28 Bug: LaTeX output of numbered TODO plain list items lose numbering. [9.1.9 (release_9.1.9-65-g5e4542 @ /usr/share/emacs/27.0.50/lisp/org/)] Brian Carlson
2019-11-09 11:59 ` Fraga, Eric
2019-11-09 23:03   ` Brian Carlson
2020-02-05  8:20     ` Bastien
2020-02-11 11:30 ` Bastien

Code repositories for project(s) associated with this inbox:

	https://git.savannah.gnu.org/cgit/emacs/org-mode.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).