我有一个带有与 \wedge 相关的一长串谓词的图,这里是代码:
\begin{figure}[h]
\small{
$
Defined\_in(subject\_state, concrete\_subject) \wedge Defined\_in (observer\_state, concrete\_observer) \wedge
Defined\_in(attach, subject) \wedge Defined\_in(detach, subject) \wedge Defined\_in(notify, subject) \wedge ... it continues ...
$
}
\caption{Caption text}
\label{fig:myfig}
\end{figure}
问题是 pdflatex 生成的输出相当丑陋:
我希望将其全部左对齐,这样看起来会更好。如果我使用\[
和\]
而不是$
,LaTeX 会将所有内容放在与页面重叠的一行上。我想避免使用 手动插入新行\\
,而是让 LaTeX 将其分成几行并左对齐。
答案1
% In the preamble
\usepackage{amsmath}
\newcommand{\func}{\textit}
\newcommand{\var}{\textit}
% In the document
\begin{figure}
\small
\begin{align*}
&\func{Defined\_in}(\var{subject\_state}, \var{concrete\_subject}) \wedge {}\\
&\func{Defined\_in}(\var{observer\_state}, \var{concrete\_observer}) \wedge {}\\
&\func{Defined\_in}(\var{attach}, \var{subject}) \wedge {}\\
&\func{Defined\_in}(\var{detach}, \var{subject}) \wedge {}\\
&\func{Defined\_in}(\var{notify}, \var{subject}) \wedge {}\\
...
\end{align*}
\caption{Caption text}
\label{fig:myfig}
\end{figure}
您马上就会发现,在数学模式下使用\textit{Defined\_in}
比简单地使用 更好Defined\_in
。我建议将函数与变量区分开来,这样您只需修改\func
或的定义即可更改它们的格式\var
。
{}\\&
如果您想合并两行,只需擦除即可。
初学者的定义\func
是
\newcommand{\func}[1]{\textit{#1}}
但是像这样的定义会浪费时间阅读两遍论点。
答案2
你似乎正在编写代码;如果是这样,那么也许你应该考虑使用列表包;请参阅包文档以了解它提供的所有可能性。以下是示例代码的一个非常简单的配置:
\documentclass{article}
\usepackage{listings}
\lstset{escapeinside=||,%
linewidth=\textwidth,%
basicstyle=\small,%
breaklines%
}
\begin{document}
\begin{lstlisting}[frame=single,captionpos=top,caption={Caption text},label=myalg]
Defined_in(subject_state,concrete_subject) |$\wedge$|
Defined_in(observer_state,concrete_observer) |$\wedge$|
Defined_in(attach,subject) |$\wedge$| Defined_in(detach,subject) |$\wedge$|
Defined_in(notify,subject) |$\wedge$|
\end{lstlisting}
\end{document}
编辑:如果你想在显示的数学中自动换行,你可以给出布雷克打包尝试;这里有一个使用egreg答案的定义的小例子:
\documentclass{article}
\usepackage{breqn}
\newcommand{\func}{\textit}
\newcommand{\var}{\textit}
\begin{document}
\begin{figure}
\small
\begin{dmath*}
\func{Defined\_in}(\var{subject\_state}, \var{concrete\_subject}) \wedge\func{Defined\_in}(\var{observer\_state}, \var{concrete\_observer}) \wedge\func{Defined\_in}(\var{attach}, \var{subject}) \wedge\func{Defined\_in}(\var{detach}, \var{subject}) \wedge\func{Defined\_in}(\var{notify}, \var{subject}) \wedge ...
\end{dmath*}
\caption{Caption text}
\label{fig:myfig}
\end{figure}
\end{document}
结果: