我偶然发现了这个答案https://tex.stackexchange.com/a/299988经过约翰·科米洛它使用 tikz 计算到页面边界的距离并将标签放在那里。
但是他的代码专门针对那个特定问题,所以通过解码@
符号来实现它是合理的。
我试图自己理解他的代码是如何工作的,但无法实现这样的结果。我正在寻找一个简单的一次性解决方案,它将所需的文本放在数学模式中的任何地方。
答案1
使用 tikz,我成功实现了想要的结果。使用这样简单的代码,您将能够将任何文本放在页面的边缘。
\documentclass{article}
\usepackage{amsmath} % for demonstration with cases environment
\usepackage{showframe} % only for page borders (frame)
\usepackage{tikz}
\usetikzlibrary{calc}
\tikzset{taglike/.style={remember picture, overlay, shift={({0,0}-|{$(current page.east)-(\oddsidemargin+\hoffset+1in-3pt,0)$})},anchor=base east}}
\begin{document}
\[
\begin{cases}
x+y=6\\
x^2+y^2 = 18 \tikz[taglike]\node{(simple text)};
\end{cases}
\]
\end{document}
答案2
更新
显示的方程式的左对齐是使用依赖于一个参数(长度)的环境获得的。这个长度实际上可能在环境的定义中是固定的;它表示方程式(flegn
已激活)接触文本左边距所需的左移位。
该环境不适用于简单文本,因为存在垂直移位,用于在前面的文本和数学表达式之间留出良好的垂直空间。
代码
\documentclass[11pt, a5paper]{article}
\usepackage[fleqn]{amsmath}
\newenvironment{fldisplay}[1]{%
\begin{list}{}{%
\setlength{\topsep}{0pt}%
\setlength{\leftmargin}{#1}%
\setlength{\rightmargin}{0pt}%
\setlength{\listparindent}{\parindent}%
\setlength{\itemindent}{\parindent}%
\setlength{\parsep}{\parskip}%
}%
\item[]\vspace{-2.6ex}}{\end{list}}
\begin{document}
The simplest linear Diophantine equation takes the form
\begin{fldisplay}{-1.6\parindent}
\begin{equation}
\label{eq:1}
ax + by = c,
\end{equation}
\end{fldisplay}
where $a$, $b$, and $c$ are given integers. The solutions are
described by the following theorem: [\ldots]
\end{document}
以下是答案的第一个版本,其中由于各种原因,该问题并未真正得到解决。
我不清楚这是否是您想要的。如果是,那么您可以仅使用包fleqn
的选项amsmath
、环境\nonumber
中的命令align
以及 y 方程第三行的一些临时水平对齐来实现显示。
无论如何,为什么有人要写下像 (1) 这样的等式?我甚至没有从示例中考虑 (3)。
代码
\documentclass[11pt, a5paper]{article}
\usepackage[fleqn]{amsmath}
\usepackage{lipsum}
\begin{document}
\lipsum[2]
\begin{align}
x = 1234[
&(a+b) \nonumber \\
&(c+d+e) \nonumber \\
&(f+g)]
\end{align}
\vspace{-6ex}
\begin{align}
y
&= 5[(h+i)+j] \nonumber \\
&= 6[(k+l) \nonumber \\
&\phantom{= 6[(} (m+n+o)]
\end{align}
\lipsum[3]
\end{document}