
Как заставить 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.