Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added Code Block adornment and a more versatile acronym and glossary handling for LaTeX #116

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

rmrnc
Copy link

@rmrnc rmrnc commented May 14, 2015

Hello,
The pull-request consists of two separate commits. Annotations are provided as part of the respective commits.

Cheers
Remo

Remo Ronca added 2 commits May 4, 2015 16:51
>>> \newacro{RFC}[RFC]{Request for Comment}

can be use in a text as

>>> See RFC 1234 for more information. Multiple RFCs are covering security protocols.

resulting in

>>> See \ac{RFC} for more information. Multiple \acp{RFC} are covering security protocols

In order to achieve this, find_abbreviations() [in writer.c] had to "partially" match an abbreviation and pass a detected plural along the corresponding node->key. Thus, a new node key type ABBRPLURAL has been introduced [in libMultiMarkdown.h] and propagated in all print_*_node() functions.

As the partial abbreviation lookup necessitated frequent calls of strlen() performance optimization dictated to extend the node structure by adding length element instead. Visible repercussions are: a strdup() replacement strdup_ext(), modifications of the trim_*() functions, and alteration of all node creations and node copies.

================================================================================================================

Added support for the LaTeX glos­saries pack­age by Ni­cola Tal­bot (see http://www.ctan.org/pkg/glossaries).

For serious documents this package allows a better acronym and glossary management. Due to its preferred workflow which requires a separate makeidx call, it seems not possible to circumvent the introduced code changes by using TeX's "\renewcommand" for MMD's supported "\ac" and "\newacro" commands. By specifying the metadata key

>>> LaTeX Acronym Package: [acronym | glossaries ]

the preferred acronym package can be selected. Omitting the "LaTeX Acronym Package" key selects, of course, MMD's default behavior, i.e., "acronym package" support.
For this feature the METAKEY, ABBREVIATION, and ABBR switch-cases in print_latex_node() [in latex.c] and the scratch_pad struct [in parser.h] have been modified. An additional enum (latex_acronym_package) has been introduced. The additional scratch_pad element latex_acronym_config is stored in a compact way.

================================================================================================================

Added support for configuring an acronym's label creation

MMD current preference in creating labels is to avoid duplicate acronym keys by concatenating the key with the acronym's text. This makes manual referencing of acronym labels very difficult. Unfortunately, manual acronym referencing in unavoidable, when longer documents are written, e.g., intentionally selecting the full acronym text after its first mentioning, using acronyms in "HTML comment escaped" LaTeX blocks like abstracts, etc.

By specifying the metadata key

>>> LaTeX Acronym Label Style: [Abbreviation | Full]

the preferred acronym label creation style can be selected. Omitting the "LaTeX Acronym Label style" key selects, of course, MMD's default behavior, i.e., "full" label creation.
For this feature the METAKEY, ABBREVIATION, and ABBR switch-cases in print_latex_node() [in latex.c] and the scratch_pad struct [in parser.h] have been modified.  An additional enum (latex_acronym_label_style) has been introduced. The additional scratch_pad element latex_acronym_config is stored in a compact way.
…and/environment provided by the LaTeX `relsize` package (cf. <http://www.ctan.org/tex-archive/macros/latex/contrib/relsize>).

Only the `CODE` and `VERBATIM*` cases in `latex.c` have been altered. The respective output is now preceded by `\\ifx\\smaller\\undefined \\relax \\else <applied relsize macro> \\fi`. By embedding the `relsize` commands in a conditional TeX block, the availability of the `relsize` commands is reassured.
@fletcher
Copy link
Owner

I'll need more information about what you're trying to accomplish and why before I consider pulling this into the main code base.

Acronyms aren't a real high priority, and I don't particularly want to make them any more complex.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants