새로운 환경에서 세로 간격에 대한 else 조건을 작성하는 방법

새로운 환경에서 세로 간격에 대한 else 조건을 작성하는 방법

저는 다음과 같이 환경을 정의했습니다. 인수가 제공되지 않으면 흰색 세로 공간을 추가하지 않는 수정을 원합니다.

\documentclass[10]{article}
\usepackage[a4paper, margin=1in]{geometry}
\usepackage{tabu}

\usepackage{enumitem}
\setlist{leftmargin=5mm, noitemsep, topsep=-1\parskip}

\newenvironment{cvsection}[1]{
    \vspace{3pt}
    \hspace{3pt}{\scriptsize{\textbf{#1}}}
    \vspace{2pt}
    \hrule
}

\newenvironment{cvsubsection}[3]{
    \vspace{-8pt}
    \begin{center}
        \begin{tabu} to 1\textwidth { X[l,m] X[c,m] X[r,m] }
            \textbf{\small #1} & \textbf{\small #2} & \textbf{\small #3} \\
        \end{tabu}  
    \end{center}
}

\begin{document}
    \begin{cvsection}{LANGUAGES \& TECHNOLOGIES}
        \begin{cvsubsection}{}{}{}  
            \begin{itemize}
                \item C++; C; Java; Objective-C; C\#.NET; SQL; JavaScript; XSLT; XML (XSD) Schema 
                \item Visual Studio; Microsoft SQL Server; Eclipse; XCode; Interface Builder
            \end{itemize}
        \end{cvsubsection}
    \end{cvsection}
\end{document}

위의 내용은 다음을 제공합니다. 에 인수를 제공하지 않으면 빨간색으로 표시된 흰색 공백을 제거하고 싶습니다 cvsubsection. 인수를 제공하면 위에서 이미 정의한 대로 작동해야 합니다.

여기에 이미지 설명을 입력하세요

관련 코드로 원하는 출력(참고 코드는 내가 원하는 출력을 표시하기 위한 것입니다. 여전히 빈 인수를 my 에 전달하고 싶습니다 cvsubsection.)

\begin{cvsection}{LANGUAGES \& TECHNOLOGIES}
%   \begin{cvsubsection}{}{}{}
    \vspace{4pt}
        \begin{itemize}
            \item C++; C; Java; Objective-C; C\#.NET; SQL; JavaScript; XSLT; XML (XSD) Schema 
            \item Visual Studio; Microsoft SQL Server; Eclipse; XCode; Interface Builder
        \end{itemize}
%   \end{cvsubsection}
\end{cvsection}

여기에 이미지 설명을 입력하세요

답변1

cvsubsection의 첫 번째 인수만 확인하는 아이디어(이것이 비어 있으면... 다른 것도 비어 있을 것이라고 생각합니다. 다른 항목에도 확인을 확장하도록 자유롭게 요청하세요.)

\documentclass{article}
\usepackage{tabu}
\usepackage{enumitem}
\setlist{leftmargin=5mm, noitemsep, topsep=-1\parskip}

\newenvironment{cvsection}[1]{
    \vspace{3pt}
    \hspace{3pt}{\scriptsize{\textbf{#1}}}
    \vspace{2pt}
    \hrule
}

\newenvironment{cvsubsection}[3]{
    \edef\FirstArg{#1}
    \ifx\FirstArg\empty\vspace{-25pt}\fi
    \begin{center}
        \begin{tabu} to 1\textwidth { X[l,m] X[c,m] X[r,m] }
            \textbf{\small #1} & \textbf{\small #2} & \textbf{\small #3} \\
        \end{tabu}  
    \end{center}
}

\begin{document}
    \begin{cvsection}{LANGUAGES \& TECHNOLOGIES}
        \begin{cvsubsection}{}{}{}  
            \begin{itemize}
                \item C++; C; Java; Objective-C; C\#.NET; SQL; JavaScript; XSLT; XML (XSD) Schema 
                \item Visual Studio; Microsoft SQL Server; Eclipse; XCode; Interface Builder
            \end{itemize}
        \end{cvsubsection}

        \begin{cvsubsection}{Arg2}{Arg3}{Arg4}  
            \begin{itemize}
                \item C++; C; Java; Objective-C; C\#.NET; SQL; JavaScript; XSLT; XML (XSD) Schema 
                \item Visual Studio; Microsoft SQL Server; Eclipse; XCode; Interface Builder
            \end{itemize}
        \end{cvsubsection}
    \end{cvsection}
\end{document}

여기에 이미지 설명을 입력하세요

관련 정보