Eu tenho usado rst2pdf e pandoc para converter o seguinte reStructuredText em PDF:
This is a python example::
def main():
print("Hello World!")
if __name__ == '__main__':
main()
And one for YAML::
server:
name: ts0
location: paris
embora os dois programas usem um mecanismo diferente para gerar PDF ( pandoc exige que você instale o TeX para isso), o resultado é um arquivo PDF, do qual você não pode copiar e colar exemplos de código corretamente:

Ocódigodestacado(fundoverde)nãopossuiespaçosporqueosespaçosvaziossãogeradosnessesarquivosPDFcomdeslocamentos.
Copieecoleosresultadosemcódigoformatadoefeioparamuitosidiomas,masparalinguagensdeprogramaçãocomoOccamePythoneparaarquivosdeconfiguraçãonoYAML,issorealmentealteraosignificado.Sevocêtiversortequerealmentequebraascoisasevocêpercebe,masoexemploYAML,porexemplo,tambémestácorretosemosespaçosnoiníciodalinha,sótemumsignificadodiferente.
EssesexemplosdecódigoemcódigotambémacontecemnosdocumentosPDFgeradospelositereadthedocs.
Sevocêpegarasaídade:
pandocexample.rst-oexample.epub
evisualizaroarquivodeumapáginaresultante,vocêpodecopiarecolarocódigocorretamente.Sevocêconverteresseexample.epubcomcalibre(versão2.55.0)pormeiodesuainterfacedeusuário,obteráumarquivoPDFdoqualvocêpodecopiacorretamenteocódigo(comespaços),masoPDFresultanteconsistede3páginas.
Tentandoconverterapartirdalinhadecomando:
ebook-convertexample.epubexample.pdf
resultaemumaexceçãoderenderização,adicionandoaopção--old-pdf-engineaconversãofunciona,masvocêaindatemumPDFde3páginasemvezdeumaúnicapágina.
ConvertendoviaHTML:
rst2htmlexample.rst>example.html;ebook-convertexample.htmlexample.pdfpandocexample.rst-oexample.html;ebook-convertexample.htmlexample.pdf
dá-lheumcódigoselecionávelcorreto:
, mas ao colar não há espaços para o recuo e até mesmo o espaço entre Hello e World desaparece. Além disso, em arquivos maiores, você tem quebras de página em lugares indesejados e o layout precisaria de ajustes extensos por meio de folhas de estilo.
Eu tentei converter via .odt , mas acabou em arquivos PDF com texto completamente não selecionável.
Atendendo aos seguintes requisitos para a saída em PDF:
fragmentos de código - corretamente selecionados com espaços
- resultados semelhantes no layout ao de
rst2pdf ou readthedocs
existem ferramentas de linha de comando para gerar um arquivo PDF, começando com um arquivo .rst ou algum outro formato de marcação?