下列的LaTeX 中的四行三段论,我只是想增加最后一个前提和关于该条的结论之间的空间。
\documentclass{scrarticle}
\newcommand\syllogism[3][]{%
\begin{center}
\def\tmp{#1}%
\ifx\tmp\empty\else(#1)\quad\fi
\begin{tabular}{@{}l@{}}
#2\\\hline#3\quad
\end{tabular}
\end{center}
}
\begin{document}
\syllogism[S3]{
Le soleil s'est levé tous les matins jusqu'à présent.
}{
Le soleil se lèvera demain.
}
\end{document}
答案1
您可以使用几种方法增加tabular
s 中的空间。
最简单的方法是增加arraystretch
大于的倍数1
。在之前添加以下宏\begin{center}
\renewcommand\arraystretch{1.35}
以这种方式拉伸表格是不对称的,系数越高,这种对称性就越明显。
您还可以在每个单元格前面添加隐形条
\newcommand\syllogism[3][]{%
\def\tmp{#1}
\begin{center}
\ifx\tmp\empty\else\hspace*{0pt}\llap{(#1)\quad}\fi
\begin{tabular}{@{}l@{}}
\rule[-6pt]{0pt}{6pt}#2\\\hline
\rule[7pt]{0pt}{6pt}#3
\end{tabular}
\end{center}}
尝试计算出中的数字\rule[rise]{width}{height}
。raise
意味着根据长度是正数还是负数来向上或向下移动规则。width
创建0pt
一条不可见的规则。
编辑。有几个替代方案。你可以添加单元格空间包并利用其自定义列类型Sx
(x
可以是l
、c
或r
),这会在定义的单元格上方和下方添加额外的空间S
。另一个包好矩阵具有类似的功能(请参阅文档)
下面是完整的示例。注意,我在 中加了一个数字\llap{...}
,这样可以将数字拉到左侧而不影响表格,并使其保持在中心。在我看来,这在视觉上更具可读性。
\documentclass{scrarticle}
\usepackage{kantlipsum}
\newcommand\syllogism[3][]{%
\def\tmp{#1}
\begin{center}
\ifx\tmp\empty\else\hspace*{0pt}\llap{(#1)\quad}\fi
\begin{tabular}{@{}l@{}}
\rule[-6pt]{0pt}{6pt}#2\\\hline
\rule[7pt]{0pt}{6pt}#3
\end{tabular}
\end{center}}
\begin{document}
\kant[1][1]
\syllogism[S3]{%
Le soleil s'est levé tous les matins depuis jusqu'à présent.
}{%
Le soleil se lèvera demain.
}
\kant[1][2]
\syllogism{%
Le soleil s'est levé tous les matins depuis jusqu'à présent.
}{%
Le soleil se lèvera demain.
}
\kant[1][3]
\end{document}
编辑2
%%% Requires etoolbox package for \notblank{}{}
\NewDocumentCommand\syllogism{O{}O{3pt}mm}{%
% #1 - label (optional)
% #2 - spacing aorund the rule (optional, default 3pt)
% #3 - content above the rule
% #4 - content below the rule
\begin{center}
\IfValueT{#1}{\notblank{#1}{\hspace*{0pt}\llap{(#1)\quad}}{}}%
\IfValueTF{#2}{\notblank{#2}{\dimen0=#2}{\dimen0=3pt}}{\dimen0=3pt}
\begin{tabular}{@{}l@{}}
#3\\\noalign{\vspace{\dimen0}\hrule height 0.4pt\vspace{\dimen0}}#4
\end{tabular}
\end{center}}
现在,宏接受 2 个可选参数和 2 个强制参数,第二个参数控制规则周围的间距。
以下是演示
\documentclass{scrarticle}
\usepackage{etoolbox}
\usepackage{kantlipsum}
\NewDocumentCommand\syllogism{O{}O{3pt}mm}{%
\begin{center}
\IfValueT{#1}{\notblank{#1}{\hspace*{0pt}\llap{(#1)\quad}}{}}%
\IfValueTF{#2}{\notblank{#2}{\dimen0=#2}{\dimen0=3pt}}{\dimen0=3pt}
\begin{tabular}{@{}l@{}}
#3\\\noalign{\vspace{\dimen0}\hrule height 0.4pt\vspace{\dimen0}}#4
\end{tabular}
\end{center}}
\begin{document}
\kant[1][1]
\syllogism{% All arguments are default
Le soleil s'est levé tous les matins depuis jusqu'à présent.\\
Test 1\\
Test 2
}{%
Le soleil se lèvera demain.
}
\kant[1][2]
\syllogism[S3][6pt]{% Explicit label and specing
Le soleil s'est levé tous les matins depuis jusqu'à présent.\\
Test 1\\
Test 2
}{%
Le soleil se lèvera demain.
}
\kant[1][3]
\syllogism[][12pt]{% No label and explicit spacing
Le soleil s'est levé tous les matins depuis jusqu'à présent.\\
Test 1\\
Test 2\\
Test 3\\
Test 4
}{%
Le soleil se lèvera demain.
}
\kant[1][4]
\end{document}