Как уменьшить отделение от другого текста с помощью LaTeX minted?

Я хочу использовать пакет minted, чтобы выделить синтаксис, но он имеет интервал более сантиметра.

Параметр:

\setlength{\parskip}{0pt}
\setlength{\parsep}{0pt}
\setlength{\headsep}{0pt}
\setlength{\topskip}{0pt}
\setlength{\topmargin}{0pt}
\setlength{\topsep}{0pt}
\setlength{\partopsep}{0pt}

совсем не помогает. Есть ли способ уменьшить интервал от остального текста?


person cvandonderen    schedule 23.02.2010    source источник


Ответы (2)


minted внутренне использует среду Verbatim из пакета fancyvrb. В документации реализации приведена следующая формула для пробелов:

<topskip> = \topsep + \partopsep + \parskip 
<botskip> = \topsep + \partopsep 

И

За исключением случаев, когда в метке или после отсутствия разрывов, \parskip добавляется с \addvspace, так что чистое пространство составляет:

MAX{\topsep (+\partopsep) + \parskip , \lastskip } 

(Обычный \@item работает точно так же.)

Следовательно, установка \partopsep на какое-то другое значение дает трюк; Я пробовал, и вам нужно отрицательное значение для удаления поля:

\setlength\partopsep{-\topsep}

Это удаляет большую часть пространства между телом текста и кодом. Чтобы получить расстояние 0,5 см, добавьте к нему расстояние:

\setlength\partopsep{-\topsep}
\addtolength\partopsep{-\parskip}
\addtolength\partopsep{0.5cm}

Реализацию можно найти на странице https://tex.stackexchange.com/a/19423

person Konrad Rudolph    schedule 23.02.2010
comment
Мне нравится, что этот ответ кажется намного проще, чем тот, который мне нравился. :) - person lcnittl; 12.06.2020
comment
Это влияет на более чем minted среду. - person Raffi Khatchadourian; 27.07.2020
comment
@RaffiKhatchadourian Да, конечно: первое предложение в моем ответе должно было прояснить это. Если вы хотите, чтобы это повлияло только на минтированные среды, используйте \newenvironment в сочетании с \VerbatimEnvironment, чтобы переопределить переменные локально, или используйте решение, которое я связал в самом конце своего ответа, для настройки всех сред fancyvrb Verbatim. - person Konrad Rudolph; 27.07.2020

Я не понимаю, чего именно ты хочешь. Вы хотите изменить межстрочный интервал? Если да, вы можете использовать

\linespread{1.0}

и немного поиграйте с числом в скобках.

Команды, которые вы привели в качестве примера, относятся к среде страницы. См. Ссылку Wiki для дополнительных объяснений и примеров:

Макет страницы LaTeX

person mropa    schedule 23.02.2010
comment
Это немного помогает. Проблема в том, что у меня есть следующий код: Пример фрагмента HTML-кода будет выглядеть так: \ begin {minted} [frame = lines, framesep = 2mm] {html} ‹b› Hello ‹/b› \ end {minted} Результатом этого примера в браузере будет: {\ bf Hello}. Когда я ношу это, в моем документе есть зазор в сантиметр до и после отчеканенной среды. Хочу уменьшить это расстояние до полсантиметра. Как это сделать? - person cvandonderen; 23.02.2010
comment
@cvandonderen взгляните на ответ Конрада, это должно помочь. - person mropa; 23.02.2010