Как LaTeX определяет межстрочный интервал по умолчанию/почему межстрочный интервал этой новой команды различается в зависимости от того, где я ее использую?

Как LaTeX определяет межстрочный интервал по умолчанию/почему межстрочный интервал этой новой команды различается в зависимости от того, где я ее использую?

Я знаю, как можно увеличить/уменьшить/изменить межстрочный интервал в LaTeX, но мне кажется, что вручную устанавливать его \vspace{-5pt}каждый раз, когда мне нужно, чтобы две строки были ближе друг к другу, — это хак. Думаю, я мог бы придумать лучшее решение, если бы изначально понимал, почему LaTeX делает то, что делает.

Например, при составлении резюме у меня есть следующие новые среды для определения заголовков разделов, проектов и пунктов списка:

% A section:itemized is a main section with a header and some items within it
\newenvironment{section:itemized}[1]{
  {\fontfamily{cmr}\selectfont\Large\scshape#1}
  \begin{itemize}
  }{
  \end{itemize}
}

% Displays info about a job and holds list items describing what  
% projects were completed there
\newenvironment{item:experience:itemized}[4]{
\item[]
  \textbf{\scshape#1},  \hfill \textbf{#2} \\ % Show company and dates
  \textit{\scshape#3}\hfill #4 % Show position and location
  \begin{itemize}
  }{
  \end{itemize}
} 

% This is a project heading and requires list items that can be bullet
% points describing the project
\newenvironment{item:project:itemized}[3]{
  \itemprojectandtech{#1}{#2} \\
  \textit{#3} 
  \begin{itemize}
  }{
  \end{itemize}
}

% An itembulleted is a simple list element
\newcommand{\itembulleted}[1]{
\item \begin{flushleft} #1 \end{flushleft}
}

В одном месте своего резюме я использую a section:itemizedдля создания раздела «Опыт». Внутри него находятся item:experience:itemizedпункты, и все они содержат item:project:itemizedпункты, содержащие itembulletedсведения о проекте. В другом месте своего резюме я использую a section:itemizedдля создания раздела «Другие проекты», содержащего project:itemizedпункты, содержащие itembulletedсведения.

Если это сделано в разделе «Другие проекты», то между каждым маркированным пунктом и перед ним оставляют более широкий интервал между строками, чем в разделе «Опыт».

Вот скриншот результата: введите описание изображения здесь

Вот пример кода:

\begin{section:itemized}{Experience}
  \begin{item:experience:itemized}{Super Company}{September 2016 - present}{Head of Stuff}{Mytown, USA}

  \begin{item:project:itemized}{Cool Project}{Technology, other technology}{Thing that's going away}
    \itembulleted{Here are a bunch of words that describe this project.}
        \itembulleted{And even more words because it was a really cool project and there are things to say.}
  \end{item:project:itemized}  
  \end{item:experience:itemized}

\end{section:itemized}

%%%%%%%%%%%%%%%%%%%%%%%%
\begin{section:itemized}{Other Projects}

    \begin{item:project:itemized}{Cool Project}{Technology, other technology}{Thing that's going away}
    \itembulleted{Here are a bunch of words that describe this project.}
    \itembulleted{And even more words because it was a really cool project and there are things to say.}
  \end{item:project:itemized}  

решение1

Пример OP демонстрирует вложенные itemizeсреды, что означает, что \itemкоманды появляются на разных уровнях.

Окружающая itemizeсреда имеет различные значения интервалов для отдельных упругих длин, которые контролируют вертикальные расстояния линий \item, это

  • \topsep
  • \itemsep
  • \parsep
  • \partopsep

Вместе \topsepс \partopsepи \parskipуправляет интервалом между верхней частью среды и первым \itemсодержимым, а также нижней частью среды, т. е. последней строкой последнего \itemи началом следующего содержимого, не являющегося средой.

\itemsep+\parsep`` отвечает за разделение последней строки содержимого \itemи следующей \item.


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

\documentclass{article}


\newcommand{\niceintern}[1]{%
  \texttt{#1}: \the\csname #1\endcsname
}
\newcommand{\niceoutput}{%
 \niceintern{itemsep}

 \niceintern{parsep}

 \niceintern{partopsep}

 \niceintern{topsep}
}



\begin{document}

\begin{itemize}

   \item First level 

  \niceoutput
  \begin{itemize}
  \item Second level 

  \niceoutput
    \begin{itemize}
    \item Third level

     \niceoutput

      \begin{itemize}
      \item Fourth level

        \niceoutput

      \end{itemize}
     \end{itemize}
   \end{itemize}
 \end{itemize}

  \end{document}

введите описание изображения здесь

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