From: "Christopher M. Miles" <numbchild@gmail.com>
To: Ihor Radchenko <yantar92@gmail.com>
Cc: "Christopher M. Miles" <numbchild@gmail.com>, emacs-orgmode@gnu.org
Subject: Re: [PATCH v6] New: auto display inline images under subtree when `org-cycle'.
Date: Tue, 20 Sep 2022 19:32:03 +0800 [thread overview]
Message-ID: <m2edw6th5o.fsf@numbchild@gmail.com> (raw)
In-Reply-To: <878rmesf64.fsf@localhost>
[-- Attachment #1: Type: text/plain, Size: 37144 bytes --]
I checked out your patch, it's fine to me. Should be fine to apply.
Ihor Radchenko <yantar92@gmail.com> writes:
> "Christopher M. Miles" <numbchild@gmail.com> writes:
>
>> Ok, I will submit the first patch of new property at first. If you're
>> going to implement this <TAB> cycling inline image display feature,
>> that's great!
>
> The changes to the manual are confusing after exporting. Note that
>
> #+vindex: org-image-actual-width will not be visible in html/pdf export.
> They only serve as info search nodes and do not appear in the actual
>
> text.
>
> I am attaching an alternative version of the patch. Let me know if you
> have any objections.
>
> From 475c607f874e4e78c1e13d15e36ae894b121acad Mon Sep 17 00:00:00 2001
> Message-Id: <475c607f874e4e78c1e13d15e36ae894b121acad.1663656903.git.yantar92@gmail.com>
> From: stardiviner <numbchild@gmail.com>
> Date: Thu, 15 Sep 2022 17:25:13 +0800
> Subject: [PATCH v6] org.el: Support subtree-level org-image-actual-width
> overriding
>
> * lisp/org.el (org-display-inline-image--width): Support new property
> "ORG-IMAGE-ACTUAL-WIDTH" overriding global variable
> `org-image-actual-width'.
> ---
> doc/org-manual.org | 186 +++++++++++++++++++++++++--------------------
> etc/ORG-NEWS | 4 +
> lisp/org.el | 90 +++++++++++-----------
> 3 files changed, 155 insertions(+), 125 deletions(-)
>
> diff --git a/doc/org-manual.org b/doc/org-manual.org
> index a37b8390c..4c9c087a7 100644
> --- a/doc/org-manual.org
> +++ b/doc/org-manual.org
> @@ -11314,6 +11314,24 @@ ** Images
> startup by configuring the variable
> ~org-startup-with-inline-images~[fn:119].
>
> +
> + #+vindex: org-image-actual-width
> + #+cindex: @samp{ORG-IMAGE-ACTUAL-WIDTH}, property
> + By default, Org mode displays inline images according to their actual width.
> + You can customize the displayed image width using ~org-image-actual-width~ variable (globally) or =ORG-IMAGE-ACTUAL-WIDTH= property (subtree-level)[fn:120].
> + Their value can be the following:
> + - (default) Non-nil, use the actual width of images when inlining them.
> + - When set to a number, use imagemagick (when available) to set the
> + image's width to this value.
> + - When set to a number in a list, try to get the width from any
> + =#+ATTR.*= keyword if it matches a width specification like:
> + #+begin_example
> + ,#+ATTR_HTML: :width 300px
> + #+end_example
> + and fall back on that number if none is found.
> + - When set to nil, try to get the width from an =#+ATTR.*= keyword
> + and fall back on the original width if none is found.
> +
> ** Captions
> :PROPERTIES:
> :DESCRIPTION: Describe tables, images...
> @@ -11404,7 +11422,7 @@ ** Creating Footnotes
> #+vindex: org-footnote-define-inline
> #+vindex: org-footnote-section
> Otherwise, create a new footnote. Depending on the variable
> - ~org-footnote-define-inline~[fn:120], the definition is placed right
> + ~org-footnote-define-inline~[fn:121], the definition is placed right
> into the text as part of the reference, or separately into the
> location determined by the variable ~org-footnote-section~.
>
> @@ -11419,7 +11437,7 @@ ** Creating Footnotes
> | {{{kbd(d)}}} | Delete the footnote at point, including definition and references. |
>
> #+vindex: org-footnote-auto-adjust
> - Depending on the variable ~org-footnote-auto-adjust~[fn:121],
> + Depending on the variable ~org-footnote-auto-adjust~[fn:122],
> renumbering and sorting footnotes can be automatic after each
> insertion or deletion.
>
> @@ -11609,7 +11627,7 @@ ** Export Settings
>
> #+cindex: @samp{DATE}, keyword
> #+vindex: org-export-date-timestamp-format
> - A date or a time-stamp[fn:122].
> + A date or a time-stamp[fn:123].
>
> - =EMAIL= ::
>
> @@ -11624,7 +11642,7 @@ ** Export Settings
> Language to use for translating certain strings
> (~org-export-default-language~). With =#+LANGUAGE: fr=, for
> example, Org translates =Table of contents= to the French =Table des
> - matières=[fn:123].
> + matières=[fn:124].
>
> - =SELECT_TAGS= ::
>
> @@ -11901,7 +11919,7 @@ ** Table of Contents
> #+cindex: excluding entries from table of contents
> #+cindex: table of contents, exclude entries
> Org includes both numbered and unnumbered headlines in the table of
> -contents[fn:124]. If you need to exclude an unnumbered headline,
> +contents[fn:125]. If you need to exclude an unnumbered headline,
> along with all its children, set the =UNNUMBERED= property to =notoc=
> value.
>
> @@ -12020,7 +12038,7 @@ ** Include Files
> | =#+INCLUDE: "~/.emacs" :lines "10-"= | Include lines from 10 to EOF |
>
> Inclusions may specify a file-link to extract an object matched by
> -~org-link-search~[fn:125] (see [[*Search Options in File Links]]). The
> +~org-link-search~[fn:126] (see [[*Search Options in File Links]]). The
> ranges for =:lines= keyword are relative to the requested element.
> Therefore,
>
> @@ -12060,7 +12078,7 @@ ** Macro Replacement
> : #+MACRO: name replacement text; $1, $2 are arguments
>
> #+texinfo: @noindent
> -which can be referenced using ={{{name(arg1, arg2)}}}=[fn:126]. For
> +which can be referenced using ={{{name(arg1, arg2)}}}=[fn:127]. For
> example
>
> #+begin_example
> @@ -12179,7 +12197,7 @@ ** Comment Lines
> Finally, a =COMMENT= keyword at the beginning of an entry, but after
> any other keyword or priority cookie, comments out the entire subtree.
> In this case, the subtree is not exported and no code block within it
> -is executed either[fn:127]. The command below helps changing the
> +is executed either[fn:128]. The command below helps changing the
> comment status of a headline.
>
> - {{{kbd(C-c ;)}}} (~org-toggle-comment~) ::
> @@ -12451,7 +12469,7 @@ *** Frames and Blocks in Beamer
>
> - Org exports a Beamer frame's objects as block environments. Org can
> enforce wrapping in special block types when =BEAMER_ENV= property
> - is set[fn:128]. For valid values see
> + is set[fn:129]. For valid values see
> ~org-beamer-environments-default~. To add more values, see
> ~org-beamer-environments-extra~.
> #+vindex: org-beamer-environments-default
> @@ -13039,7 +13057,7 @@ *** Math formatting in HTML export
> #+vindex: org-html-mathjax-options~
> LaTeX math snippets (see [[*LaTeX fragments]]) can be displayed in two
> different ways on HTML pages. The default is to use the [[https://www.mathjax.org][MathJax]],
> -which should work out of the box with Org[fn:129][fn:130]. Some MathJax
> +which should work out of the box with Org[fn:130][fn:131]. Some MathJax
> display options can be configured via ~org-html-mathjax-options~, or
> in the buffer. For example, with the following settings,
>
> @@ -13051,7 +13069,7 @@ *** Math formatting in HTML export
> #+texinfo: @noindent
> equation labels are displayed on the left margin and equations are
> five em from the left margin. In addition, it loads the two MathJax
> -extensions =cancel.js= and =noErrors.js=[fn:131].
> +extensions =cancel.js= and =noErrors.js=[fn:132].
>
> #+vindex: org-html-mathjax-template
> See the docstring of ~org-html-mathjax-options~ for all supported
> @@ -13114,7 +13132,7 @@ *** CSS support
> #+vindex: org-export-html-todo-kwd-class-prefix
> #+vindex: org-export-html-tag-class-prefix
> You can modify the CSS style definitions for the exported file. The
> -HTML exporter assigns the following special CSS classes[fn:132] to
> +HTML exporter assigns the following special CSS classes[fn:133] to
> appropriate parts of the document---your style specifications may
> change these, in addition to any of the standard classes like for
> headlines, tables, etc.
> @@ -13351,7 +13369,7 @@ *** LaTeX/PDF export commands
> Org file. See the docstring for the
> ~org-latex-default-packages-alist~ for loading packages with certain
> compilers. Also see ~org-latex-bibtex-compiler~ to set the
> -bibliography compiler[fn:133].
> +bibliography compiler[fn:134].
>
> *** LaTeX specific export settings
> :PROPERTIES:
> @@ -13889,7 +13907,7 @@ *** Source blocks in LaTeX export
> packages for customization of that specific source block. In the
> example below, the =:options= are set for Engraved or Minted. Minted
> is a source code highlighting LaTeX package with many configurable
> -options[fn:134]. Both Minted and Engraved are built on [[https://www.ctan.org/pkg/fvextra][fvextra]], and
> +options[fn:135]. Both Minted and Engraved are built on [[https://www.ctan.org/pkg/fvextra][fvextra]], and
> so support many of the same options.
>
> #+begin_example
> @@ -14142,7 +14160,7 @@ ** OpenDocument Text Export
>
> The ODT export back-end handles creating of OpenDocument Text (ODT)
> format. Documents created by this exporter use the
> -{{{cite(OpenDocument-v1.2 specification)}}}[fn:135] and are compatible
> +{{{cite(OpenDocument-v1.2 specification)}}}[fn:136] and are compatible
> with LibreOffice 3.4.
>
> *** Pre-requisites for ODT export
> @@ -14543,7 +14561,7 @@ **** LaTeX math snippets
> variables ~org-latex-to-mathml-convert-command~ and
> ~org-latex-to-mathml-jar-file~.
>
> - If you prefer to use MathToWeb[fn:136] as your converter, you can
> + If you prefer to use MathToWeb[fn:137] as your converter, you can
> configure the above variables as shown below.
>
> #+begin_src emacs-lisp
> @@ -14554,7 +14572,7 @@ **** LaTeX math snippets
> #+end_src
>
> #+texinfo: @noindent
> - or, to use LaTeXML[fn:137] instead,
> + or, to use LaTeXML[fn:138] instead,
>
> #+begin_src emacs-lisp
> (setq org-latex-to-mathml-convert-command
> @@ -14873,7 +14891,7 @@ **** Customizing tables in ODT export
> tables, see [[*Tables in ODT export]].
>
> This feature closely mimics the way table templates are defined in the
> -OpenDocument-v1.2 specification[fn:138].
> +OpenDocument-v1.2 specification[fn:139].
>
> #+vindex: org-odt-table-styles
> For quick preview of this feature, install the settings below and export the
> @@ -14907,7 +14925,7 @@ **** Customizing tables in ODT export
>
> To use this feature proceed as follows:
>
> -1. Create a table template[fn:139].
> +1. Create a table template[fn:140].
>
> A table template is set of =table-cell= and =paragraph= styles for
> each of the following table cell categories:
> @@ -14946,7 +14964,7 @@ **** Customizing tables in ODT export
> =</office:automatic-styles>= element of the content template file
> (see [[x-orgodtcontenttemplate-xml][Factory styles]]).
>
> -2. Define a table style[fn:140].
> +2. Define a table style[fn:141].
>
> #+vindex: org-odt-table-styles
> To define a table style, create an entry for the style in the
> @@ -16177,7 +16195,7 @@ *** Publishing action
> ~org-org-publish-to-org~. This produces =file.org= and puts it in the
> publishing directory. If you want a htmlized version of this file,
> set the parameter ~:htmlized-source~ to ~t~. It produces
> -=file.org.html= in the publishing directory[fn:141].
> +=file.org.html= in the publishing directory[fn:142].
>
> Other files like images only need to be copied to the publishing
> destination; for this you can use ~org-publish-attachment~. For
> @@ -17795,13 +17813,13 @@ *** How to evaluate source code
> #+kindex: C-c C-v e
> #+findex: org-babel-execute-src-block
> Org provides many ways to execute code blocks. {{{kbd(C-c C-c)}}} or
> -{{{kbd(C-c C-v e)}}} with the point on a code block[fn:142] calls the
> +{{{kbd(C-c C-v e)}}} with the point on a code block[fn:143] calls the
> ~org-babel-execute-src-block~ function, which executes the code in the
> block, collects the results, and inserts them in the buffer.
>
> #+cindex: @samp{CALL}, keyword
> #+vindex: org-babel-inline-result-wrap
> -By calling a named code block[fn:143] from an Org mode buffer or
> +By calling a named code block[fn:144] from an Org mode buffer or
> a table. Org can call the named code blocks from the current Org mode
> buffer or from the "Library of Babel" (see [[*Library of Babel]]).
>
> @@ -18002,7 +18020,7 @@ *** Collection
>
> - =value= ::
>
> - Default for most Babel libraries[fn:143]. Functional mode. Org
> + Default for most Babel libraries[fn:144]. Functional mode. Org
> gets the value by wrapping the code in a function definition in the
> language of the source block. That is why when using =:results
> value=, code should execute like a function and return a value. For
> @@ -18731,7 +18749,7 @@ ** Noweb Reference Syntax
>
> #+cindex: @samp{noweb-ref}, header argument
> Source code blocks can include references to other source code blocks,
> -using a noweb[fn:144] style syntax:
> +using a noweb[fn:145] style syntax:
>
> : <<CODE-BLOCK-ID>>
>
> @@ -19259,7 +19277,7 @@ ** Structure Templates
> ~org-structure-template-alist~ and ~org-tempo-keywords-alist~. For
> example, {{{kbd(< s TAB)}}} creates a code block. Enable it by
> customizing ~org-modules~ or add =(require 'org-tempo)= to your Emacs
> -init file[fn:145].
> +init file[fn:146].
>
> #+attr_texinfo: :columns 0.1 0.9
> | {{{kbd(a)}}} | =#+BEGIN_EXPORT ascii= ... =#+END_EXPORT= |
> @@ -19339,7 +19357,7 @@ *** Org Indent Mode
> To display the buffer in the indented view, activate Org Indent minor
> mode, using {{{kbd(M-x org-indent-mode)}}}. Text lines that are not
> headlines are prefixed with virtual spaces to vertically align with
> -the headline text[fn:146].
> +the headline text[fn:147].
>
> #+vindex: org-indent-indentation-per-level
> To make more horizontal space, the headlines are shifted by two
> @@ -19367,9 +19385,9 @@ *** Hard indentation
>
> It is possible to use hard spaces to achieve the indentation instead,
> if the bare ASCII file should have the indented look also outside
> -Emacs[fn:147]. With Org's support, you have to indent all lines to
> +Emacs[fn:148]. With Org's support, you have to indent all lines to
> line up with the outline headers. You would use these
> -settings[fn:148]:
> +settings[fn:149]:
>
> #+begin_src emacs-lisp
> (setq org-adapt-indentation t
> @@ -19640,7 +19658,7 @@ ** Summary of In-Buffer Settings
>
> #+vindex: org-startup-indented
> Dynamic virtual indentation is controlled by the variable
> - ~org-startup-indented~[fn:149].
> + ~org-startup-indented~[fn:150].
>
> | =indent= | Start with Org Indent mode turned on. |
> | =noindent= | Start with Org Indent mode turned off. |
> @@ -20498,7 +20516,7 @@ *** Setting up the staging area
>
> #+vindex: org-mobile-directory
> The mobile application needs access to a file directory on
> -a server[fn:150] to interact with Emacs. Pass its location through
> +a server[fn:151] to interact with Emacs. Pass its location through
> the ~org-mobile-directory~ variable. If you can mount that directory
> locally just set the variable to point to that directory:
>
> @@ -20519,7 +20537,7 @@ *** Setting up the staging area
> requires OpenSSL installed on the local computer. To turn on
> encryption, set the same password in the mobile application and in
> Emacs. Set the password in the variable
> -~org-mobile-use-encryption~[fn:151]. Note that even after the mobile
> +~org-mobile-use-encryption~[fn:152]. Note that even after the mobile
> application encrypts the file contents, the file name remains visible
> on the file systems of the local computer, the server, and the mobile
> device.
> @@ -20535,15 +20553,15 @@ *** Pushing to the mobile application
> ~org-mobile-files~ into the staging area. Files include agenda files
> (as listed in ~org-agenda-files~). Customize ~org-mobile-files~ to
> add other files. File names are staged with paths relative to
> -~org-directory~, so all files should be inside this directory[fn:152].
> +~org-directory~, so all files should be inside this directory[fn:153].
>
> Push creates a special Org file =agendas.org= with custom agenda views
> -defined by the user[fn:153].
> +defined by the user[fn:154].
>
> Finally, Org writes the file =index.org=, containing links to other
> files. The mobile application reads this file first from the server
> to determine what other files to download for agendas. For faster
> -downloads, it is expected to only read files whose checksums[fn:154]
> +downloads, it is expected to only read files whose checksums[fn:155]
> have changed.
>
> *** Pulling from the mobile application
> @@ -20560,7 +20578,7 @@ *** Pulling from the mobile application
>
> 1.
> #+vindex: org-mobile-inbox-for-pull
> - Org moves all entries found in =mobileorg.org=[fn:155] and appends
> + Org moves all entries found in =mobileorg.org=[fn:156] and appends
> them to the file pointed to by the variable
> ~org-mobile-inbox-for-pull~. It should reside neither in the
> staging area nor on the server. Each captured entry and each
> @@ -20854,9 +20872,9 @@ *** A LaTeX example of radio tables
> #+cindex: @LaTeX{}, and Orgtbl mode
>
> To wrap a source table in LaTeX, use the =comment= environment
> -provided by =comment.sty=[fn:156]. To activate it, put
> +provided by =comment.sty=[fn:157]. To activate it, put
> ~\usepackage{comment}~ in the document header. Orgtbl mode inserts
> -a radio table skeleton[fn:157] with the command {{{kbd(M-x
> +a radio table skeleton[fn:158] with the command {{{kbd(M-x
> orgtbl-insert-radio-table)}}}, which prompts for a table name. For
> example, if =salesfigures= is the name, the template inserts:
>
> @@ -20875,7 +20893,7 @@ *** A LaTeX example of radio tables
> ~orgtbl-to-latex~ to convert the table to LaTeX format, then insert
> the table at the target (receive) location named =salesfigures=. Now
> the table is ready for data entry. It can even use spreadsheet
> -features[fn:158]:
> +features[fn:159]:
>
> #+begin_example
> % BEGIN RECEIVE ORGTBL salesfigures
> @@ -21091,7 +21109,7 @@ ** Special Agenda Views
> #+vindex: org-agenda-skip-function
> #+vindex: org-agenda-skip-function-global
> Org provides a special hook to further limit items in agenda views:
> -~agenda~, ~agenda*~[fn:159], ~todo~, ~alltodo~, ~tags~, ~tags-todo~,
> +~agenda~, ~agenda*~[fn:160], ~todo~, ~alltodo~, ~tags~, ~tags-todo~,
> ~tags-tree~. Specify a custom function that tests inclusion of every
> matched item in the view. This function can also skip as much as is
> needed.
> @@ -21134,7 +21152,7 @@ ** Special Agenda Views
> #+vindex: org-agenda-skip-function
> Search for entries with a limit set on levels for the custom search.
> This is a general approach to creating custom searches in Org. To
> -include all levels, use =LEVEL>0=[fn:160]. Then to selectively pick
> +include all levels, use =LEVEL>0=[fn:161]. Then to selectively pick
> the matched entries, use ~org-agenda-skip-function~, which also
> accepts Lisp forms, such as ~org-agenda-skip-entry-if~ and
> ~org-agenda-skip-subtree-if~. For example:
> @@ -22258,6 +22276,7 @@ * Footnotes
> #+findex: org-anniversary
> #+findex: org-cyclic
> #+findex: org-block
> +
> [fn:60] When working with the standard diary expression functions, you
> need to be very careful with the order of the arguments. That order
> depends evilly on the variable ~calendar-date-style~. For example, to
> @@ -22496,140 +22515,143 @@ * Footnotes
> within a buffer with the =STARTUP= options =inlineimages= and
> =noinlineimages=.
>
> -[fn:120] The corresponding in-buffer setting is: =#+STARTUP: fninline=
> +[fn:120] The width can be customized in Emacs >= 24.1, built with
> +imagemagick support.
> +
> +[fn:121] The corresponding in-buffer setting is: =#+STARTUP: fninline=
> or =#+STARTUP: nofninline=.
>
> -[fn:121] The corresponding in-buffer options are =#+STARTUP: fnadjust=
> +[fn:122] The corresponding in-buffer options are =#+STARTUP: fnadjust=
> and =#+STARTUP: nofnadjust=.
>
> -[fn:122] The variable ~org-export-date-timestamp-format~ defines how
> +[fn:123] The variable ~org-export-date-timestamp-format~ defines how
> this timestamp are exported.
>
> -[fn:123] For export to LaTeX format---or LaTeX-related formats such as
> +[fn:124] For export to LaTeX format---or LaTeX-related formats such as
> Beamer---, the =org-latex-package-alist= variable needs further
> configuration. See [[LaTeX specific export settings]].
>
> -[fn:124] At the moment, some export back-ends do not obey this
> +[fn:125] At the moment, some export back-ends do not obey this
> specification. For example, LaTeX export excludes every unnumbered
> headline from the table of contents.
>
> -[fn:125] Note that ~org-link-search-must-match-exact-headline~ is
> +[fn:126] Note that ~org-link-search-must-match-exact-headline~ is
> locally bound to non-~nil~. Therefore, ~org-link-search~ only matches
> headlines and named elements.
>
> -[fn:126] Since commas separate the arguments, commas within arguments
> +[fn:127] Since commas separate the arguments, commas within arguments
> have to be escaped with the backslash character. So only those
> backslash characters before a comma need escaping with another
> backslash character.
>
> -[fn:127] For a less drastic behavior, consider using a select tag (see
> +[fn:128] For a less drastic behavior, consider using a select tag (see
> [[*Export Settings]]) instead.
>
> -[fn:128] If =BEAMER_ENV= is set, Org export adds =B_environment= tag
> +[fn:129] If =BEAMER_ENV= is set, Org export adds =B_environment= tag
> to make it visible. The tag serves as a visual aid and has no
> semantic relevance.
>
> -[fn:129] By default Org loads MathJax from [[https://cdnjs.com][cdnjs.com]] as recommended by
> +[fn:130] By default Org loads MathJax from [[https://cdnjs.com][cdnjs.com]] as recommended by
> [[https://www.mathjax.org][MathJax]].
>
> -[fn:130] Please note that exported formulas are part of an HTML
> +[fn:131] Please note that exported formulas are part of an HTML
> document, and that signs such as =<=, =>=, or =&= have special
> meanings. See [[http://docs.mathjax.org/en/latest/input/tex/html.html#tex-and-latex-in-html-documents][MathJax TeX and LaTeX in HTML documents]].
>
> -[fn:131] See [[http://docs.mathjax.org/en/latest/input/tex/extensions.html#tex-and-latex-extensions][TeX and LaTeX extensions]] in the [[http://docs.mathjax.org][MathJax manual]] to learn
> +[fn:132] See [[http://docs.mathjax.org/en/latest/input/tex/extensions.html#tex-and-latex-extensions][TeX and LaTeX extensions]] in the [[http://docs.mathjax.org][MathJax manual]] to learn
> about extensions.
>
> -[fn:132] If the classes on TODO keywords and tags lead to conflicts,
> +[fn:133] If the classes on TODO keywords and tags lead to conflicts,
> use the variables ~org-html-todo-kwd-class-prefix~ and
> ~org-html-tag-class-prefix~ to make them unique.
>
> -[fn:133] This does not allow setting different bibliography compilers
> +[fn:134] This does not allow setting different bibliography compilers
> for different files. However, "smart" LaTeX compilation systems, such
> as latexmk, can select the correct bibliography compiler.
>
> -[fn:134] Minted uses an external Python package for code highlighting,
> +[fn:135] Minted uses an external Python package for code highlighting,
> which requires the flag =-shell-escape= to be added to
> ~org-latex-pdf-process~.
>
> -[fn:135] See [[http://docs.oasis-open.org/office/v1.2/OpenDocument-v1.2.html][Open Document Format for Office Applications
> +[fn:136] See [[http://docs.oasis-open.org/office/v1.2/OpenDocument-v1.2.html][Open Document Format for Office Applications
> (OpenDocument) Version 1.2]].
>
> -[fn:136] See [[http://www.mathtoweb.com/cgi-bin/mathtoweb_home.pl][MathToWeb]].
> +[fn:137] See [[http://www.mathtoweb.com/cgi-bin/mathtoweb_home.pl][MathToWeb]].
>
> -[fn:137] See [[http://dlmf.nist.gov/LaTeXML/]].
> +[fn:138] See [[http://dlmf.nist.gov/LaTeXML/]].
>
> -[fn:138] [[http://docs.oasis-open.org/office/v1.2/OpenDocument-v1.2.html][OpenDocument-v1.2 Specification]]
> +[fn:139] [[http://docs.oasis-open.org/office/v1.2/OpenDocument-v1.2.html][OpenDocument-v1.2 Specification]]
>
> -[fn:139] See the =<table:table-template>= element of the
> +[fn:140] See the =<table:table-template>= element of the
> OpenDocument-v1.2 specification.
>
> -[fn:140] See the attributes =table:template-name=,
> +[fn:141] See the attributes =table:template-name=,
> =table:use-first-row-styles=, =table:use-last-row-styles=,
> =table:use-first-column-styles=, =table:use-last-column-styles=,
> =table:use-banding-rows-styles=, and =table:use-banding-column-styles=
> of the =<table:table>= element in the OpenDocument-v1.2 specification.
>
> -[fn:141] If the publishing directory is the same as the source
> +[fn:142] If the publishing directory is the same as the source
> directory, =file.org= is exported as =file.org.org=, so you probably
> do not want to do this.
>
> -[fn:142] The option ~org-babel-no-eval-on-ctrl-c-ctrl-c~ can be used
> +[fn:143] The option ~org-babel-no-eval-on-ctrl-c-ctrl-c~ can be used
> to remove code evaluation from the {{{kbd(C-c C-c)}}} key binding.
>
> -[fn:143] Actually, the constructs =call_<name>()= and =src_<lang>{}=
> +[fn:144] Actually, the constructs =call_<name>()= and =src_<lang>{}=
> are not evaluated when they appear in a keyword (see [[*Summary of
> In-Buffer Settings]]).
>
> -[fn:144] For noweb literate programming details, see
> +[fn:145] For noweb literate programming details, see
> http://www.cs.tufts.edu/~nr/noweb/.
>
> -[fn:145] For more information, please refer to the commentary section
> +[fn:146] For more information, please refer to the commentary section
> in =org-tempo.el=.
>
> -[fn:146] Org Indent mode also sets ~wrap-prefix~ correctly for
> +[fn:147] Org Indent mode also sets ~wrap-prefix~ correctly for
> indenting and wrapping long lines of headlines or text. This minor
> mode also handles Visual Line mode and directly applied settings
> through ~word-wrap~.
>
> -[fn:147] This works, but requires extra effort. Org Indent mode is
> +[fn:148] This works, but requires extra effort. Org Indent mode is
> more convenient for most applications.
>
> -[fn:148] ~org-adapt-indentation~ can also be set to ='headline-data=,
> +[fn:149] ~org-adapt-indentation~ can also be set to ='headline-data=,
> in which case only data lines below the headline will be indented.
>
> -[fn:149] Note that Org Indent mode also sets the ~wrap-prefix~
> +[fn:150] Note that Org Indent mode also sets the ~wrap-prefix~
> property, such that Visual Line mode (or purely setting ~word-wrap~)
> wraps long lines, including headlines, correctly indented.
>
> -[fn:150] For a server to host files, consider using a WebDAV server,
> +[fn:151] For a server to host files, consider using a WebDAV server,
> such as [[https://nextcloud.com][Nextcloud]]. Additional help is at this [[https://orgmode.org/worg/org-faq.html#mobileorg_webdav][FAQ entry]].
>
> -[fn:151] If Emacs is configured for safe storing of passwords, then
> +[fn:152] If Emacs is configured for safe storing of passwords, then
> configure the variable ~org-mobile-encryption-password~; please read
> the docstring of that variable.
>
> -[fn:152] Symbolic links in ~org-directory~ need to have the same name
> +[fn:153] Symbolic links in ~org-directory~ need to have the same name
> as their targets.
>
> -[fn:153] While creating the agendas, Org mode forces =ID= properties
> +[fn:154] While creating the agendas, Org mode forces =ID= properties
> on all referenced entries, so that these entries can be uniquely
> identified if Org Mobile flags them for further action. To avoid
> setting properties configure the variable
> ~org-mobile-force-id-on-agenda-items~ to ~nil~. Org mode then relies
> on outline paths, assuming they are unique.
>
> -[fn:154] Checksums are stored automatically in the file
> +[fn:155] Checksums are stored automatically in the file
> =checksums.dat=.
>
> -[fn:155] The file will be empty after this operation.
> +[fn:156] The file will be empty after this operation.
>
> -[fn:156] https://www.ctan.org/pkg/comment
> +[fn:157] https://www.ctan.org/pkg/comment
>
> -[fn:157] By default this works only for LaTeX, HTML, and Texinfo.
> +[fn:158] By default this works only for LaTeX, HTML, and Texinfo.
> Configure the variable ~orgtbl-radio-table-templates~ to install
> templates for other modes.
>
> -[fn:158] If the =TBLFM= keyword contains an odd number of dollar
> +[fn:159] If the =TBLFM= keyword contains an odd number of dollar
> characters, this may cause problems with Font Lock in LaTeX mode. As
> shown in the example you can fix this by adding an extra line inside
> the =comment= environment that is used to balance the dollar
> @@ -22637,9 +22659,9 @@ * Footnotes
> a much better solution is to add the =comment= environment to the
> variable ~LaTeX-verbatim-environments~.
>
> -[fn:159] The ~agenda*~ view is the same as ~agenda~ except that it
> +[fn:160] The ~agenda*~ view is the same as ~agenda~ except that it
> only considers /appointments/, i.e., scheduled and deadline items that
> have a time specification =[h]h:mm= in their time-stamps.
>
> -[fn:160] Note that, for ~org-odd-levels-only~, a level number
> +[fn:161] Note that, for ~org-odd-levels-only~, a level number
> corresponds to order in the hierarchy, not to the number of stars.
> diff --git a/etc/ORG-NEWS b/etc/ORG-NEWS
> index a7f32671e..d9b41515b 100644
> --- a/etc/ORG-NEWS
> +++ b/etc/ORG-NEWS
> @@ -296,6 +296,10 @@ headings in HTML export.
> Use the header argument =:var x=code-block[]= or
> : #+CALL: fn(x=code-block[])
> to pass the contents of a named code block as a string argument.
> +*** New property =ORG-IMAGE-ACTUAL-WIDTH= for overriding global ~org-image-actual-width~
> +
> +The new property =ORG-IMAGE-ACTUAL-WIDTH= can override the global
> +variable ~org-image-actual-width~ value for inline images display width.
>
> ** New options
> *** New custom settings =org-icalendar-scheduled-summary-prefix= and =org-icalendar-deadline-summary-prefix=
> diff --git a/lisp/org.el b/lisp/org.el
> index a50921519..bba1b5233 100644
> --- a/lisp/org.el
> +++ b/lisp/org.el
> @@ -12224,7 +12224,8 @@ (defconst org-default-properties
> "EXPORT_OPTIONS" "EXPORT_TEXT" "EXPORT_FILE_NAME"
> "EXPORT_TITLE" "EXPORT_AUTHOR" "EXPORT_DATE" "UNNUMBERED"
> "ORDERED" "NOBLOCKING" "COOKIE_DATA" "LOG_INTO_DRAWER" "REPEAT_TO_STATE"
> - "CLOCK_MODELINE_TOTAL" "STYLE" "HTML_CONTAINER_CLASS")
> + "CLOCK_MODELINE_TOTAL" "STYLE" "HTML_CONTAINER_CLASS"
> + "ORG-IMAGE-ACTUAL-WIDTH")
> "Some properties that are used by Org mode for various purposes.
> Being in this list makes sure that they are offered for completion.")
>
> @@ -16255,48 +16256,51 @@ (defun org-display-inline-image--width (link)
> If the value is a float between 0 and 2, it interpreted as that proportion
> of the text width in the buffer."
> ;; Apply `org-image-actual-width' specifications.
> - (cond
> - ((eq org-image-actual-width t) nil)
> - ((listp org-image-actual-width)
> - (let* ((case-fold-search t)
> - (par (org-element-lineage link '(paragraph)))
> - (attr-re "^[ \t]*#\\+attr_.*?: +.*?:width +\\(\\S-+\\)")
> - (par-end (org-element-property :post-affiliated par))
> - ;; Try to find an attribute providing a :width.
> - (attr-width
> - (when (and par (org-with-point-at
> - (org-element-property :begin par)
> - (re-search-forward attr-re par-end t)))
> - (match-string 1)))
> - (width
> - (cond
> - ;; Treat :width t as if `org-image-actual-width' were t.
> - ((string= attr-width "t") nil)
> - ;; Fallback to `org-image-actual-width' if no interprable width is given.
> - ((or (null attr-width)
> - (string-match-p "\\`[^0-9]" attr-width))
> - (car org-image-actual-width))
> - ;; Convert numeric widths to numbers, converting percentages.
> - ((string-match-p "\\`[0-9.]+%" attr-width)
> - (/ (string-to-number attr-width) 100.0))
> - (t (string-to-number attr-width)))))
> - (if (and (floatp width) (<= 0.0 width 2.0))
> - ;; A float in [0,2] should be interpereted as this portion of
> - ;; the text width in the window. This works well with cases like
> - ;; #+attr_latex: :width 0.X\{line,page,column,etc.}width,
> - ;; as the "0.X" is pulled out as a float. We use 2 as the upper
> - ;; bound as cases such as 1.2\linewidth are feasible.
> - (round (* width
> - (window-pixel-width)
> - (/ (or (and (bound-and-true-p visual-fill-column-mode)
> - (or visual-fill-column-width auto-fill-function))
> - (when auto-fill-function fill-column)
> - (- (window-text-width) (line-number-display-width)))
> - (float (window-total-width)))))
> - width)))
> - ((numberp org-image-actual-width)
> - org-image-actual-width)
> - (t nil)))
> + ;; Support subtree-level property "ORG-IMAGE-ACTUAL-WIDTH" specified
> + ;; width.
> + (let ((org-image-actual-width (org-property-or-variable-value 'org-image-actual-width)))
> + (cond
> + ((eq org-image-actual-width t) nil)
> + ((listp org-image-actual-width)
> + (let* ((case-fold-search t)
> + (par (org-element-lineage link '(paragraph)))
> + (attr-re "^[ \t]*#\\+attr_.*?: +.*?:width +\\(\\S-+\\)")
> + (par-end (org-element-property :post-affiliated par))
> + ;; Try to find an attribute providing a :width.
> + (attr-width
> + (when (and par (org-with-point-at
> + (org-element-property :begin par)
> + (re-search-forward attr-re par-end t)))
> + (match-string 1)))
> + (width
> + (cond
> + ;; Treat :width t as if `org-image-actual-width' were t.
> + ((string= attr-width "t") nil)
> + ;; Fallback to `org-image-actual-width' if no interprable width is given.
> + ((or (null attr-width)
> + (string-match-p "\\`[^0-9]" attr-width))
> + (car org-image-actual-width))
> + ;; Convert numeric widths to numbers, converting percentages.
> + ((string-match-p "\\`[0-9.]+%" attr-width)
> + (/ (string-to-number attr-width) 100.0))
> + (t (string-to-number attr-width)))))
> + (if (and (floatp width) (<= 0.0 width 2.0))
> + ;; A float in [0,2] should be interpereted as this portion of
> + ;; the text width in the window. This works well with cases like
> + ;; #+attr_latex: :width 0.X\{line,page,column,etc.}width,
> + ;; as the "0.X" is pulled out as a float. We use 2 as the upper
> + ;; bound as cases such as 1.2\linewidth are feasible.
> + (round (* width
> + (window-pixel-width)
> + (/ (or (and (bound-and-true-p visual-fill-column-mode)
> + (or visual-fill-column-width auto-fill-function))
> + (when auto-fill-function fill-column)
> + (- (window-text-width) (line-number-display-width)))
> + (float (window-total-width)))))
> + width)))
> + ((numberp org-image-actual-width)
> + org-image-actual-width)
> + (t nil))))
>
> (defun org-display-inline-remove-overlay (ov after _beg _end &optional _len)
> "Remove inline-display overlay if a corresponding region is modified."
> --
> 2.35.1
--
[ stardiviner ]
I try to make every word tell the meaning that I want to express without misunderstanding.
Blog: https://stardiviner.github.io/
IRC(libera.chat, freenode): stardiviner, Matrix: stardiviner
GPG: F09F650D7D674819892591401B5DF1C95AE89AC3
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]
next prev parent reply other threads:[~2022-09-20 14:09 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-11-22 6:34 [QUESTION] How to specific image size attributes under headline scope? Christopher M. Miles
2021-11-22 18:31 ` Timothy
2022-08-18 12:44 ` Christopher M. Miles
[not found] ` <m2o7whra7j.fsf@numbchild>
2022-08-22 17:10 ` Timothy
2022-08-23 0:24 ` Christopher M. Miles
2022-09-11 2:20 ` [SOLVED] " Christopher M. Miles
2022-09-11 2:25 ` Christopher M. Miles
[not found] ` <631d472b.c80a0220.2b4b2.bf86SMTPIN_ADDED_BROKEN@mx.google.com>
2022-09-11 12:34 ` Ihor Radchenko
2022-09-12 1:54 ` [PATCH] " Christopher M. Miles
2022-09-12 1:59 ` [PATCH] New: auto display inline images under subtree when `org-cycle' Christopher M. Miles
[not found] ` <m2wna9bbc2.fsf@numbchild>
2022-09-12 6:03 ` [ISSUE] " Christopher M. Miles
[not found] ` <631e92ee.050a0220.f9c18.92f5SMTPIN_ADDED_BROKEN@mx.google.com>
2022-09-12 10:51 ` Ihor Radchenko
2022-09-13 1:09 ` [PATCH 2] " Christopher M. Miles
[not found] ` <m2leqogiz8.fsf@numbchild>
2022-09-13 1:48 ` [PATCH 3] " Christopher M. Miles
[not found] ` <631fe1c9.050a0220.3ab2b.3f52SMTPIN_ADDED_BROKEN@mx.google.com>
2022-09-15 3:27 ` Ihor Radchenko
2022-09-15 4:53 ` [PATCH 4] " Christopher M. Miles
[not found] ` <6322b0a8.050a0220.59bb8.6923SMTPIN_ADDED_BROKEN@mx.google.com>
2022-09-15 8:47 ` Ihor Radchenko
2022-09-15 9:43 ` [PATCH 5] " Christopher M. Miles
[not found] ` <6322f5ad.c80a0220.5e936.823eSMTPIN_ADDED_BROKEN@mx.google.com>
2022-09-20 7:01 ` [PATCH v6] " Ihor Radchenko
2022-09-20 11:32 ` Christopher M. Miles [this message]
[not found] ` <6329c8b0.050a0220.412d.0a6cSMTPIN_ADDED_BROKEN@mx.google.com>
2022-09-21 7:54 ` [PATCH v6] " Ihor Radchenko
2022-09-28 12:55 ` [PATCH 2-v1] " Christopher M. Miles
[not found] ` <633454e3.050a0220.7278b.1fa5SMTPIN_ADDED_BROKEN@mx.google.com>
2022-09-29 3:05 ` Ihor Radchenko
2022-09-29 6:06 ` Christopher M. Miles
2022-09-29 6:57 ` [PATCH 2-v1 (test v1)] " Christopher M. Miles
[not found] ` <63353c69.370a0220.67788.e8a1SMTPIN_ADDED_BROKEN@mx.google.com>
2022-09-30 3:19 ` [PATCH 2-v1] " Ihor Radchenko
2022-09-30 8:27 ` [PATCH 2-v2] " Christopher M. Miles
[not found] ` <6336a955.050a0220.4e72e.2b23SMTPIN_ADDED_BROKEN@mx.google.com>
2022-10-01 3:16 ` Ihor Radchenko
2022-10-01 9:51 ` [PATCH 2-v3] " Christopher M. Miles
[not found] ` <63380f57.370a0220.a9d9a.dee8SMTPIN_ADDED_BROKEN@mx.google.com>
2022-10-03 3:21 ` Ihor Radchenko
2022-10-03 4:37 ` [PATCH 2-v4] " Christopher M. Miles
[not found] ` <633a67d8.050a0220.733e8.e57dSMTPIN_ADDED_BROKEN@mx.google.com>
2022-10-04 4:36 ` Ihor Radchenko
2022-10-04 7:27 ` Christopher M. Miles
[not found] ` <633be6d3.370a0220.4060.bacdSMTPIN_ADDED_BROKEN@mx.google.com>
2022-10-08 7:53 ` Ihor Radchenko
2022-10-08 9:50 ` Christopher M. Miles
[not found] ` <634149f4.c80a0220.1376.e564SMTPIN_ADDED_BROKEN@mx.google.com>
2022-10-09 7:21 ` Ihor Radchenko
2022-10-10 8:40 ` Christopher M. Miles
[not found] ` <m2v8os5aqy.fsf@numbchild>
2022-10-22 1:29 ` Christopher M. Miles
2022-10-23 4:33 ` Ihor Radchenko
2022-10-23 7:14 ` Christopher M. Miles
2022-10-25 7:23 ` Ihor Radchenko
2022-10-25 14:22 ` [PATCH v3] " Christopher M. Miles
2022-10-26 4:50 ` Ihor Radchenko
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.orgmode.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=m2edw6th5o.fsf@numbchild@gmail.com \
--to=numbchild@gmail.com \
--cc=emacs-orgmode@gnu.org \
--cc=yantar92@gmail.com \
/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/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).