因此,我在我的文档类中定义了两个这样的命令。
\newcommand{\skillgroup}[2]{
\begin{tabbing}
\hspace{5mm} \= \kill
\sqbullet \>\+ \textbf{#1} \\
\begin{minipage}{\smallertextwidth}
\vspace{2mm}
#2
\end{minipage}
\end{tabbing}
}
\newcommand{\skilllang}[3]{
\begin{tabbing}
\hspace*{5cm}\=\hspace*{4cm}\= \kill
#1 \> #2 \> \textit{#3}
\end{tabbing}
}
如果在其中输入文本,该\skillgroup
命令可以正常工作,但是当您想通过该\skilllang
命令插入一系列制表符内容时,前一个命令的缩进似乎被转义了,并且制表符序列从行首开始,而不是像简单文本那样缩进。
在main.tex中使用:
\skillgroup{Software Engineering}{
\skilllang{Programing languages }{C\# / XAML, Java}{...}
}
输出如下图所示。
答案1
tabbing
在查看了-environment的实现之后源2e.pdf显然,这个环境的实现方式是嵌套不是意图/是不是可能。例如,它基于\trivlist
不考虑嵌套时左边距的相加。
您可以让 LaTeX 将内容放入暂存箱,然后在里面使用该暂存箱tabbing
。
在对-package的用法做了一些猜测之后\sqbullet
,我得出了以下示例:\smallertextwidth
mathabx
\documentclass{article}
\usepackage{mathabx}
\newbox\myscratchbox
\makeatletter
\newcommand\createmyscratchbox[1]{%
\setbox\myscratchbox\vtop{%
\hsize=\smallertextwidth
\linewidth=\smallertextwidth
\topsep=0pt %
\partopsep=0pt %
#1%
}%
}%
\makeatother
\newlength\smallertextwidth
\setlength\smallertextwidth{10cm}
\newcommand{\skillgroup}[2]{%
\begin{tabbing}%
\hspace{5mm} \= \kill
\ensuremath{\sqbullet} \>\+ \textbf{#1} \\
\begin{minipage}{\smallertextwidth}%
\vspace{2mm}%
#2%
\end{minipage}%
\end{tabbing}%
}
\newcommand{\skilllang}[3]{%
\begin{tabbing}%
\hspace*{5cm}\=\hspace*{4cm}\= \kill
#1 \> #2 \> \textit{#3}%
\end{tabbing}%
}%
\begin{document}
\createmyscratchbox{%
\skilllang{Programing languages }{C\# / XAML, Java}{whatsoever}%
}%
\skillgroup{Software Engineering}{%
\box\myscratchbox
}%
\skillgroup{Blubb Blubb}{Bla bla}%
\end{document}
或者,您可以在同一个tabbing
环境中完成所有操作:
\documentclass{article}
\usepackage{mathabx}
\newcommand{\skillgroup}[2]{%
\begin{tabbing}%
\hspace*{5mm}\=\hspace*{5cm} \= \hspace*{4cm} \= \kill
\ensuremath{\sqbullet}\+\>\textbf{#1}\\
\rule{0mm}{\dimexpr\ht\strutbox+2mm\relax}#2%
\end{tabbing}%
}
\newcommand\setbreakandhyphenationparameters{%
\sloppy
}%
\makeatletter
\newcommand{\skilllang}[3]{%
\vtop{\hsize=5cm \noindent\setbreakandhyphenationparameters\hspace{0pt}#1\hspace{0pt}\strut\hss\par}\>%
\vtop{\hsize=4cm \noindent\setbreakandhyphenationparameters\hspace{0pt}#2\hspace{0pt}\strut\hss\par}\>%
\settowidth\@tempdima{ }%
\vtop{\hsize=\dimexpr\textwidth-5mm-9cm-2\@tempdima\relax\noindent\setbreakandhyphenationparameters\textit{\hspace{0pt}#3\hspace{0pt}}\strut\par}\\%
}%
\makeatother
\begin{document}
\noindent A \hfill B
\skillgroup{Software Engineering}{%
\skilllang{Programing languages}{C\# / XAML, \hfill Java}{whatsoever whatsoever whatsoever whatsoever}%
\skilllang{Programing languages}{C\# / XAML, Java}{There should happen some line-breaking. There should happen some line-breaking.}%
\skilllang{Programing languages
Programing languages
Programing languages}{C\# / XAML, Java}{whatsoever}%
}%
\skillgroup{Blubb Blubb}{Bla bla}%
\end{document}
答案2
我已设法使用表格环境解决了这个问题。这是\skilllang
上述解决方案。使用此方法保持不变。
\newcommand{\skilllang}[3]{
\begin{tabular}{@{} m{4cm} m{4cm} m{6cm}}
{#1} & {#2} & {#3}
\end{tabular}
\\
}