LINUX.ORG.RU

LaTex: можно ли управлять разрывами страниц в листингах?

 ,


0

1

Сабж. Собственно, хочется чтобы разрывы страниц в длинных листингах по возможности осуществлялись на пустых строках. И никогда, факинг шит, никогда не переносилась на следующую страницу одинокая закрывающая фигурная скобка. Использую minted сейчас, но могу и другое попробовать. Куда копать?

★★

Последнее исправление: roof (всего исправлений: 1)

И куда он эту скобку денет если она не влазит на текущую страницу? Вам надо тогда как-то на блоки листинги дробить.

micronekodesu ★★★
()
Ответ на: комментарий от micronekodesu

Пусть оставит пустое место на предыдущей странице, и уташит несколько строчек на следующую, мне не жалко. Как-то ведь с обычными абзацами это разруливается.

roof ★★
() автор топика
Последнее исправление: roof (всего исправлений: 1)
Ответ на: комментарий от micronekodesu

Листинги на блоки я дроблю (добавляю в коде пустые строки, разделяющие логические блоки). Я бы хотел, чтобы латех к ним относился как к абзацам текста.

roof ★★
() автор топика
Ответ на: комментарий от micronekodesu

пример кода:

int main()
{
  int a = 0;
  int b = 1;

  ^^^ Разрыв страницы желателен здесь, на пустой строке. Ниже его не надо делать.
  cout << "a = " << a  << endl 
       << "b = " << b << endl; 
  cout << "a + b = "  << a + b << endl;
  vvv Разрыв страницы тут это вообще за гранью добра и зла. 
}

roof ★★
() автор топика
Ответ на: комментарий от roof

Кстати, пришло в голову, что идеальным вариантом было бы добить страницу кодом до конца, а на следующей повторить несколько предыдущих строк. Но это, наверное, реально вручную надо.

roof ★★
() автор топика
Ответ на: комментарий от micronekodesu

Код в файле. В латех-документ я его включаю так:

Преамбула:

\usepackage[cache=false]{minted}
\newmintedfile[cppfile]{c++}{linenos}

Тело документа:

\begin{document}
...
\cppfile{main.cpp}
...
\end{document}

roof ★★
() автор топика
Ответ на: комментарий от Morin

Вам бы взять пару уроков внимательности для начала.

roof ★★
() автор топика
Последнее исправление: roof (всего исправлений: 1)
Ответ на: комментарий от Silerus

Почитайте докуметацию к пакету, там много настроек. Можно очень красиво сделать код пригодным для чтения с бумаги. Проблема из ОП - последнее, что раздражает мое чувство прекрасного.

roof ★★
() автор топика
Ответ на: комментарий от roof

уже посмотрел, да мне понравилось, где через месяцок попробую применить, как раз будет что документировать

Silerus ★★★★
()
Ответ на: комментарий от XMs

Я в таких случаях собирал все скриптами в один файл, который потом «компилял» LaTeX'ом (у меня были рассчеты, так как институтские курсовики, но не думаю что в случае кода будет какая-то принципиальная разница в подходе). Можно брать какой-нибудь шаблонизатор, хоть ту же jinja2, который в итоге выдаст нужный LaTeX-код, втянув все нужные внешние файлы.

micronekodesu ★★★
()
Ответ на: комментарий от micronekodesu

Мне кажется, должно быть более простое и умное решение. Ведь тот же minted делает достаточно сложное разбиение длинных строк и это в нем конфигурируется от и до. Значит, должно быть можно и с «псевдоабзацами» в коде разобраться.

roof ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.