使用 pandoc 和 markdown 在第四个嵌套级别嵌套太深?

jav*_*dba 4 markdown latex pandoc r-markdown

以下代码不被接受pandoc

1. Code Behaviors
    1. Logging
        1. No "bare" `System.out.println`'s
        1. Logging level can be calibrated by simple change(s) to logging.xml and/or log4j.properties
        1. Errors and exceptions go to appropriate WARN and/or ERROR logging levels
    1. Errors and Exceptions
        1. Almost never "swallowed"
            1. Can only happen for well understood situations
                1. Must be documented clearly in code why they are swallowed
                1. Only a specific exception or error may be swallowed this way
                - In particular can not be done for general Exception.
                - Throwable can never be handled this way
Run Code Online (Sandbox Code Playgroud)

应该是这样的:

  1. 代码行为
    1. 日志记录
      1. 没有“裸”System.out.println
      2. 可以通过对 logging.xml 和/或 log4j.properties 的简单更改来校准日志记录级别
      3. 错误和异常进入适当的 WARN 和/或 ERROR 日志记录级别
    2. 错误和异常
      1. 几乎从未“吞下”
        1. 只能在很好理解的情况下发生
          1. 必须在代码中清楚地记录为什么它们被吞下
          2. 这种方式只能吞下特定的异常或错误
            • 尤其对于一般的Exception不能做。
            • Throwable 永远无法以这种方式处理

使用命令行

pandoc --toc  --toc-depth=6 -V fontsize=10pt --pdf-engine xelatex
  -V geometry:"left=1.5cm,right=1.5cm,top=2cm,bottom=2cm" -o review.pdf review.md
Run Code Online (Sandbox Code Playgroud)

我们得到

Error producing PDF.
! LaTeX Error: Too deeply nested.

See the LaTeX manual or LaTeX Companion for explanation.
Type  H <return>  for immediate help.
 ...

l.159         \begin{enumerate}
Run Code Online (Sandbox Code Playgroud)

更新 我尝试使用enumitempackage添加额外的级别到序言这里建议https://tex.stackexchange.com/a/464459/45938 - 但没有效果(产生相同的错误):

---
title: My Review
subtitle: My subtitle 
documentclass: extarticle
author: First Last Sept 15, 2019
geometry: "left=1.5cm,right=1.5cm,top=2cm,bottom=2cm"
header-includes:
  - \usepackage{unicode-math}
  - \setmainfont{TeX Gyre Schola}
  - \setmathfont{TeX Gyre Schola Math}
  - \usepackage{enumitem}
  - \setlistdepth{20}
  - \renewlist{itemize}{itemize}{20}
  - \setlist[itemize]{label=$\cdot$}
  - \setlist[itemize,1]{label=\textbullet}
  - \setlist[itemize,2]{label=--}
  - \setlist[itemize,3]{label=*}

output:
  rmarkdown::html_document:
    theme: lumen
    fig_caption: yes

---
Run Code Online (Sandbox Code Playgroud)

Ral*_*ner 6

使用enumitem是正确的方法。但是,您必须同时扩展enumerateitemize环境:

---
header-includes:
  - \usepackage{enumitem}
  - \setlistdepth{20}
  - \renewlist{itemize}{itemize}{20}
  - \renewlist{enumerate}{enumerate}{20}
  - \setlist[itemize]{label=$\cdot$}
  - \setlist[itemize,1]{label=\textbullet}
  - \setlist[itemize,2]{label=--}
  - \setlist[itemize,3]{label=*}
output:
  rmarkdown::pdf_document:
      keep_tex: yes
---

1. Code Behaviors
    1. Logging
        1. No "bare" `System.out.println`'s
        1. Logging level can be calibrated by simple change(s) to logging.xml and/or log4j.properties
        1. Errors and exceptions go to appropriate WARN and/or ERROR logging levels
    1. Errors and Exceptions
        1. Almost never "swallowed"
            1. Can only happen for well understood situations
                1. Must be documented clearly in code why they are swallowed
                1. Only a specific exception or error may be swallowed this way
                    - In particular can not be done for general Exception.
                    - Throwable can never be handled this way
Run Code Online (Sandbox Code Playgroud)

输出:

在此处输入图片说明

注意:该output.rmakrdown::pdf_document.keep_tex标志表示tex保留中间文件。

  • **太棒了!!** 我使用 _pandoc_ / _teX_ / _pdf_ 来处理 _everything_ 所以这非常重要。对于其他读者 - 此处添加的用于修复的具体添加代码是 `- \renewlist{enumerate}{enumerate}{20}` (2认同)