rxiv-maker 1.18.3__py3-none-any.whl → 1.18.5__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
rxiv_maker/__version__.py CHANGED
@@ -1,3 +1,3 @@
1
1
  """Version information."""
2
2
 
3
- __version__ = "1.18.3"
3
+ __version__ = "1.18.5"
@@ -256,9 +256,9 @@ class ContentProcessor(RecoveryEnhancedMixin):
256
256
  # Supplementary note headers must be processed early (before general headers)
257
257
  self.register_processor(
258
258
  "supplementary_notes",
259
- lambda content, **kwargs: process_supplementary_notes(content)
260
- if kwargs.get("is_supplementary", False)
261
- else content,
259
+ lambda content, **kwargs: (
260
+ process_supplementary_notes(content) if kwargs.get("is_supplementary", False) else content
261
+ ),
262
262
  ProcessorConfig(
263
263
  name="supplementary_notes",
264
264
  priority=ProcessorPriority.NORMAL,
@@ -408,9 +408,9 @@ class ContentProcessor(RecoveryEnhancedMixin):
408
408
 
409
409
  self.register_processor(
410
410
  "restore_supplementary_placeholders",
411
- lambda content, **kwargs: restore_supplementary_note_placeholders(content)
412
- if kwargs.get("is_supplementary", False)
413
- else content,
411
+ lambda content, **kwargs: (
412
+ restore_supplementary_note_placeholders(content) if kwargs.get("is_supplementary", False) else content
413
+ ),
414
414
  ProcessorConfig(
415
415
  name="restore_supplementary_placeholders",
416
416
  priority=ProcessorPriority.NORMAL,
@@ -504,20 +504,20 @@ def process_template_replacements(template_content, yaml_metadata, article_md, o
504
504
  if content_sections.get("introduction"):
505
505
  # If there's an introduction section, use it with "Introduction" header
506
506
  main_section_content = content_sections["introduction"]
507
- main_section_parts.append(f"\\section*{{Introduction}}\n{main_section_content}")
507
+ main_section_parts.append(f"\\section*{{Introduction}}\n\n{main_section_content}")
508
508
 
509
509
  # after_intro mode: insert Methods right after Introduction
510
510
  if methods_placement == "after_intro" and methods_content:
511
- main_section_parts.append(f"\\section*{{Methods}}\n{methods_content}")
511
+ main_section_parts.append(f"\\section*{{Methods}}\n\n{methods_content}")
512
512
 
513
513
  elif content_sections.get("main"):
514
514
  # If there's a main section (but no introduction), use it with "Main" header
515
515
  main_section_content = content_sections["main"]
516
- main_section_parts.append(f"\\section*{{Main}}\n{main_section_content}")
516
+ main_section_parts.append(f"\\section*{{Main}}\n\n{main_section_content}")
517
517
 
518
518
  # after_intro mode: insert Methods after Main section if no Introduction exists
519
519
  if methods_placement == "after_intro" and methods_content:
520
- main_section_parts.append(f"\\section*{{Methods}}\n{methods_content}")
520
+ main_section_parts.append(f"\\section*{{Methods}}\n\n{methods_content}")
521
521
 
522
522
  # Include all custom sections (sections that don't map to standard academic paper sections)
523
523
  standard_sections = {
@@ -542,7 +542,7 @@ def process_template_replacements(template_content, yaml_metadata, article_md, o
542
542
  if section_key not in standard_sections and section_content.strip():
543
543
  # Add section header using the original title
544
544
  section_title = section_titles.get(section_key, section_key.replace("_", " ").title())
545
- custom_section_with_header = f"\\section*{{{section_title}}}\n{section_content}"
545
+ custom_section_with_header = f"\\section*{{{section_title}}}\n\n{section_content}"
546
546
  custom_sections.append(custom_section_with_header)
547
547
 
548
548
  # Add all custom sections to the main section
@@ -558,7 +558,7 @@ def process_template_replacements(template_content, yaml_metadata, article_md, o
558
558
  # Results section
559
559
  results_content = content_sections.get("results", "").strip()
560
560
  if results_content:
561
- results_section = f"\\section*{{Results}}\n{results_content}"
561
+ results_section = f"\\section*{{Results}}\n\n{results_content}"
562
562
  else:
563
563
  results_section = ""
564
564
  template_content = template_content.replace("<PY-RPL:RESULTS-SECTION>", results_section)
@@ -566,7 +566,7 @@ def process_template_replacements(template_content, yaml_metadata, article_md, o
566
566
  # Discussion section
567
567
  discussion_content = content_sections.get("discussion", "").strip()
568
568
  if discussion_content:
569
- discussion_section = f"\\section*{{Discussion}}\n{discussion_content}"
569
+ discussion_section = f"\\section*{{Discussion}}\n\n{discussion_content}"
570
570
  else:
571
571
  discussion_section = ""
572
572
  template_content = template_content.replace("<PY-RPL:DISCUSSION-SECTION>", discussion_section)
@@ -574,26 +574,26 @@ def process_template_replacements(template_content, yaml_metadata, article_md, o
574
574
  # Conclusions section
575
575
  conclusions_content = content_sections.get("conclusion", "").strip()
576
576
  if conclusions_content:
577
- conclusions_section = f"\\section*{{Conclusions}}\n{conclusions_content}"
577
+ conclusions_section = f"\\section*{{Conclusions}}\n\n{conclusions_content}"
578
578
  else:
579
579
  conclusions_section = ""
580
580
  template_content = template_content.replace("<PY-RPL:CONCLUSIONS-SECTION>", conclusions_section)
581
581
 
582
582
  # Handle Methods section placement based on configuration
583
583
  if methods_placement == "after_results" and methods_content:
584
- methods_section = f"\\section*{{Methods}}\n{methods_content}"
584
+ methods_section = f"\\section*{{Methods}}\n\n{methods_content}"
585
585
  template_content = template_content.replace("<PY-RPL:METHODS-AFTER-RESULTS>", methods_section)
586
586
  else:
587
587
  template_content = template_content.replace("<PY-RPL:METHODS-AFTER-RESULTS>", "")
588
588
 
589
589
  if methods_placement == "after_discussion" and methods_content:
590
- methods_section = f"\\section*{{Methods}}\n{methods_content}"
590
+ methods_section = f"\\section*{{Methods}}\n\n{methods_content}"
591
591
  template_content = template_content.replace("<PY-RPL:METHODS-AFTER-DISCUSSION>", methods_section)
592
592
  else:
593
593
  template_content = template_content.replace("<PY-RPL:METHODS-AFTER-DISCUSSION>", "")
594
594
 
595
595
  if methods_placement == "after_bibliography" and methods_content:
596
- methods_section = f"\\section*{{Methods}}\n{methods_content}"
596
+ methods_section = f"\\section*{{Methods}}\n\n{methods_content}"
597
597
  template_content = template_content.replace("<PY-RPL:METHODS-AFTER-BIBLIOGRAPHY>", methods_section)
598
598
  else:
599
599
  template_content = template_content.replace("<PY-RPL:METHODS-AFTER-BIBLIOGRAPHY>", "")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rxiv-maker
3
- Version: 1.18.3
3
+ Version: 1.18.5
4
4
  Summary: Write scientific preprints in Markdown. Generate publication-ready PDFs efficiently.
5
5
  Project-URL: Homepage, https://github.com/HenriquesLab/rxiv-maker
6
6
  Project-URL: Documentation, https://github.com/HenriquesLab/rxiv-maker#readme
@@ -107,16 +107,22 @@ Rxiv-Maker converts enhanced Markdown into professional PDFs with automated figu
107
107
  <summary>🍎 <strong>macOS</strong> (Recommended - includes LaTeX automatically)</summary>
108
108
 
109
109
  ```bash
110
- brew tap henriqueslab/formulas
111
- brew install rxiv-maker
112
- rxiv check-installation
110
+ brew install henriqueslab/formulas/rxiv-maker
113
111
  ```
114
112
 
115
- **Upgrade:**
113
+ **Updating:**
116
114
  ```bash
115
+ brew update
117
116
  brew upgrade rxiv-maker
118
117
  ```
119
118
 
119
+ **Verify installation (optional):**
120
+ ```bash
121
+ rxiv check-installation # Verify LaTeX and dependencies
122
+ ```
123
+
124
+ **Benefits:** Simple one-command installation, automatic dependency management (Python 3.13, LaTeX, git, gh), easy updates
125
+
120
126
  > **📖 [Homebrew Formula](https://github.com/HenriquesLab/homebrew-formulas)** - Includes Python, LaTeX (MacTeX), and all dependencies
121
127
 
122
128
  </details>
@@ -1,5 +1,5 @@
1
1
  rxiv_maker/__init__.py,sha256=p04JYC5ZhP6dLXkoWVlKNyiRvsDE1a4C88f9q4xO3tA,3268
2
- rxiv_maker/__version__.py,sha256=XFwP3WErkuqfqBBIq-SrSdEDxGzEVnddf1X9-UaPB9E,51
2
+ rxiv_maker/__version__.py,sha256=i8ukZW5rVDoXBNiuInaBgxVXM535F7b6jCi26fK-JBw,51
3
3
  rxiv_maker/rxiv_maker_cli.py,sha256=9Lu_mhFPXwx5jzAR6StCNxwCm_fkmP5qiOYdNuh_AwI,120
4
4
  rxiv_maker/validate.py,sha256=AIzgP59KbCQJqC9WIGfUdVv0xI6ud9g1fFznQkaGz5Q,9373
5
5
  rxiv_maker/cli/__init__.py,sha256=Jw0DTFUSofN-02xpVrt1UUzRcgH5NNd-GPNidhmNwpU,77
@@ -59,7 +59,7 @@ rxiv_maker/converters/table_processor.py,sha256=0sCtDVlQwLcAC8_dJMijgVb7DCmtannC
59
59
  rxiv_maker/converters/text_formatters.py,sha256=pa2kVAqyPkGh5LViL5Iqqjjqw1ixB0GKBZJloaVBVi0,42816
60
60
  rxiv_maker/converters/types.py,sha256=mTLXVTBGfEi2dp_U2maSE7kZQFz_lfmLDQjlMAeU9lE,885
61
61
  rxiv_maker/converters/url_processor.py,sha256=xoZrgz7kgRtMzSay_14ZpYEwK9uXj3YloQW9K-G8LAc,6586
62
- rxiv_maker/core/content_processor.py,sha256=nES8uiFC8k589GOcCtHzHZo84Dcf7I22zrsoocZwOEM,33796
62
+ rxiv_maker/core/content_processor.py,sha256=m_jFgmhajlPKZc4FbVfJ30UOF6IPS3qwjim-2sPV8Dc,33812
63
63
  rxiv_maker/core/environment_bootstrap.py,sha256=hG1hAOdu-FGeVsn5NU0j0BY21kRquni4K2Cp6uBpEmw,13601
64
64
  rxiv_maker/core/environment_manager.py,sha256=hI8uhqGYd2PDMwHiYJkdaoiqztbATaL-XAklgMaIgfQ,10349
65
65
  rxiv_maker/core/error_codes.py,sha256=xbSK2VXPnGgHOndf_O69GpRpblyKnW_ahcmjJYPlz2I,15162
@@ -127,7 +127,7 @@ rxiv_maker/manuscript_utils/figure_utils.py,sha256=FsNtMiA1IOHeA6gQsENmAWLZSAvPp
127
127
  rxiv_maker/processors/__init__.py,sha256=8UmaeFkbPfcwAL5MnhN2DcOA2k8iuJu0B5dDA6_pmnA,720
128
128
  rxiv_maker/processors/author_processor.py,sha256=jC4qZ9M_GADelkp1v8pk46ESUf4DNraXLfMYGhn_7ZM,10016
129
129
  rxiv_maker/processors/markdown_preprocessor.py,sha256=Ez_2lhSFEdJY0CS2SKJJESRfnmSdMq4s0jP2nlFSKN8,11228
130
- rxiv_maker/processors/template_processor.py,sha256=V47kh5zyiZDPNXBfNkQeyU5r-3MBHM3UMWAjcfgs11s,30316
130
+ rxiv_maker/processors/template_processor.py,sha256=w6VAk_OgW8dTY8riOZ_C-8-6x7Kg1jMnCYda4p8eiE0,30338
131
131
  rxiv_maker/processors/yaml_processor.py,sha256=SSXHpwY1Cw81IDN4x40UFtosz-T9l29oh-CZpusmlYo,11499
132
132
  rxiv_maker/scripts/__init__.py,sha256=nKsDmj6UAc90uC6sKd-V6O80OMYjAl4Uha9zF_6ayX0,154
133
133
  rxiv_maker/scripts/custom_doc_generator.py,sha256=pMkdTI8a4qG8Z3gFUJtPwRuu2i0ioW3pKfs22es0KCk,6311
@@ -194,8 +194,8 @@ rxiv_maker/validators/doi/metadata_comparator.py,sha256=euqHhKP5sHQAdZbdoAahUn6Y
194
194
  rxiv_maker/tex/template.tex,sha256=_tPtxrurn3sKTt9Kfa44lPdPyT44vHbDUOGqldU9r2s,1378
195
195
  rxiv_maker/tex/style/rxiv_maker_style.bst,sha256=jbVqrJgAm6F88cow5vtZuPBwwmlcYykclTm8RvZIo6Y,24281
196
196
  rxiv_maker/tex/style/rxiv_maker_style.cls,sha256=6VDmZE0uvYWog6rcYi2K_NIM9-Pgjx9AFdRg_sTheK0,24374
197
- rxiv_maker-1.18.3.dist-info/METADATA,sha256=4diEnvxg1lKBn0gx2idAwJHH6Y9qR5IDL_s6BiZwILI,18222
198
- rxiv_maker-1.18.3.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
199
- rxiv_maker-1.18.3.dist-info/entry_points.txt,sha256=ghCN0hI9A1GlG7QY5F6E-xYPflA8CyS4B6bTQ1YLop0,97
200
- rxiv_maker-1.18.3.dist-info/licenses/LICENSE,sha256=GSZFoPIhWDNJEtSHTQ5dnELN38zFwRiQO2antBezGQk,1093
201
- rxiv_maker-1.18.3.dist-info/RECORD,,
197
+ rxiv_maker-1.18.5.dist-info/METADATA,sha256=3MGWQNaVnAJM_7nypR3gtVuh5BTgnCwJ5eZ8S_MTrf8,18432
198
+ rxiv_maker-1.18.5.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
199
+ rxiv_maker-1.18.5.dist-info/entry_points.txt,sha256=ghCN0hI9A1GlG7QY5F6E-xYPflA8CyS4B6bTQ1YLop0,97
200
+ rxiv_maker-1.18.5.dist-info/licenses/LICENSE,sha256=GSZFoPIhWDNJEtSHTQ5dnELN38zFwRiQO2antBezGQk,1093
201
+ rxiv_maker-1.18.5.dist-info/RECORD,,