我正在尝试将一长行文本转换为 TeX 格式:
\exists C\forall f(f\in C\Leftrightarrow f\in\ms{F}\wedge (\forall x\forall y)((x\in\dom f\wedge y\in\dom f\Rightarrow x=y)\wedge(\forall z)(z\in\dom f\Rightarrow \op{z}{z}\in f))).
问题是,当我构建时,行会稍微溢出到右边距。我不太介意,因为整行都合适,但是否可以将行居中,以便均匀地溢出到左右边距?我真的不想将此公式分成两行。
如果有帮助的话,我的序言是:
\documentclass[11pt]{article}
\input{other/packages.tex}
\input{other/theoremdef.tex}
其中 packages.tex 是
\usepackage{amsthm}
\usepackage{amsmath}
\usepackage{amscd}
\usepackage{url}
\usepackage[top=1.3in, bottom=1.3in, left=1.3in, right=1.3in]{geometry}
% header and footer
\pagestyle{headings}
\usepackage{amssymb}
\usepackage{amsfonts}
\usepackage{stackrel}
\usepackage{mathrsfs}
\usepackage{verbatim}
\usepackage{enumerate}
\usepackage{hyperref}
\usepackage{xy}
\input xy
\xyoption{all}
theoremdef.tex 是:
\newtheorem{exercise}{\bf Exercise}
\newcommand{\dom}{\text{dom}\ }
\newcommand{\ran}{\text{ran}\ }
\newcommand{\fld}{\text{fld}\ }
\newcommand{\op}[2]{\langle #1,#2\rangle}
\newcommand{\ot}[3]{\langle #1,#2,#3\rangle}
\newcommand{\ms}[1]{\mathscr{#1}}
谢谢。
答案1
要调整长线的大小,您可能需要这样做:
\newbox\formBox
\def\forMULA#1{%
\setbox\formBox=\hbox{#1}%
\centerline{%
\ifdim\wd\formBox>\linewidth%
\resizebox{\linewidth}{!}{#1}%
\else%
#1%
\fi}}
\forMULA{$\exists C\forall f(f\in C\Leftrightarrow f\in\ms{F}\wedge (\forall x\forall y)((x\in\dom f\wedge y\in\dom f\Rightarrow x=y)\wedge(\forall z)(z\in\dom f\Rightarrow \op{z}{z}\in f))).$}
这会将您的公式插入(出于测试目的)到一个框中,并测试此框的尺寸是否超过\linewidth
。如果是,则缩放以适合。如果不是,则插入未缩放的。
\centerline
用于防止(如果您不需要内容居中,\parindent
您可能想要使用---)。\noindent
您还需要\usepackage{graphicx}
--- 才能\resizebox
使用。
但是如果你想要将长线居中(使其均匀地飞出边距),你可以使用以下命令:
\newbox\formBox
\newskip\formSkip
\def\forMULAE#1{%
\setbox\formBox=\hbox{#1}%
\centerline{%
\ifdim\wd\formBox>\linewidth%
\setlength{\formSkip}{{\wd\formBox - \linewidth}/2}%
\begingroup\leftskip=-\formSkip #1\endgroup%
\else%
#1%
\fi}}
这也需要\usepackage{calc}
。
答案2
如果不是太小的话,尝试一下这个:
\resizebox{\linewidth}{!}{$ ...formula ...}
答案3
使用该adjustbox
包你可以简单地编写:
\adjustbox{center}{\exists C\forall f(f\in C\Leftrightarrow f\in\ms{F}\wedge (\forall x\forall y)((x\in\dom f\wedge y\in\dom f\Rightarrow x=y)\wedge(\forall z)(z\in\dom f\Rightarrow \op{z}{z}\in f))).}
将其置于正常文本区域的中心而不重新缩放。
如果要重新缩放以适应线宽,请使用width=\linewidth
或 better max width=\linewidth
(仅当宽度大于给定值时才缩放)。这些选项应位于 之前center
,例如\adjustbox{max width=\linewidth,center}{...}
。
请注意,\adjustbox
其内容为框,因此其中也可能包含逐字或其他特殊内容。adjustbox
如果您愿意,也可以使用环境。