Pandoc md から tex: コード + 列挙のインタラクション

Pandoc md から tex: コード + 列挙のインタラクション

pandoc md から xelatex への変換で、コード構造が列挙リスト内にあることを理解させる方法。私のマークダウン ファイルにある最小限のコード。

* Test your code 
* Don't use structures like this

  ```cpp
  //Bad structure
  //More bad structures
  ```

  As this will cause problems.

このコードはリストに対して適切にインデントされており、github上で正しく表示されます。しかし、比較的単純な

pandoc --latex-engine=xelatex README.md -o test.pdf

混乱を招きます。私が達成した最高のことは、列挙を中断して実際にコードを表示することです。他の試みでは通常、コードの表示が中断されます。

答え1

次のコードは私には問題ないように見えます。フェンスで囲まれたコードブロックただし、バックティックでも機能するはずです。

- Test your code 
- Don't use structures like this

  ~~~ {.cpp}
  // printf("hello world");
  // prints("hello World");
  ~~~

  as this will cause problems.

このコードを上記の呼び出しで変換しましたが、問題ないように見えます。

答え2

トリプルバックティックはオリジナルのマークダウン構文の拡張であり、GithubとPandocは完全に互換性のある方法で実装していません。Pandocでは、開始と終了のトリプルバックティックは両方とも左マージンから始まる必要があります。列挙では、左マージンは4つのスペースのインデントから始まります。ただし、コードブロック内では、左マージンは位置0から始まります。したがって、次のように記述する必要があります。

* Test your code
* Don't use structures like this

    ```cpp
//Bad structure
//More bad structures
    ```

    As this will cause problems.

それは私には無理だGitHubのマークアップツールは: 言語属性として認識されずcpp、コードの最初の行として扱われます。ただし、インデントによって違いが生じます。2 つのスペースではコード ブロックが列挙を終了しますが、私の 4 つのスペースではコード ブロックとそれに続くテキスト行が列挙に残ります。ただし、この構文は```languageGithub で確実にサポートされているため、これはツールの依存関係の 1 つである私のバージョンのバグだと思います。

関連情報