Pandoc md в tex: код + перечисление взаимодействия

Pandoc md в tex: код + перечисление взаимодействия

Как заставить pandoc md в xelatex conversion понимать, что структура кода находится в списке перечисления. Минимальный код, который у меня есть в моем файле markdown.

* 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

Тройные обратные кавычки являются расширением исходного синтаксиса markdown, и 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как атрибут языка, он обрабатывает его как первую строку кода. Однако отступ имеет значение: с вашими двумя пробелами блок кода завершает перечисление, тогда как с моими четырьмя пробелами блок кода и следующая текстовая строка остаются в перечислении. Я думаю, что это ошибка в моей версии одной из зависимостей инструмента, поскольку синтаксис ```languageопределенно поддерживается на Github.

Связанный контент