我使用的chemfig
关系代数图(可能不太恰当)。例如,下面是一个简单的图:
\documentclass{article}
\usepackage[italian]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{chemfig}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{relsize}
\newcommand{\select}{\sigma}
\newcommand{\project}{\pi}
\newcommand{\join}{\mathlarger{\mathlarger{\mathlarger{\mathlarger{\Join}}}}}
\begin{document}
\chemfig{R-[:30]\join(-[:90]\project_{CodR,NomeR})-[:330]
\select_{Argomento='moto'}-[:270]A}
\end{document}
其结果是:
我想让包含\select
和的原子\project
“右对齐”,这样键就会接触到 sigma 和 pi。我在 chemfig 文档中没有找到解决方案。
如果我无法实现我想要的效果chemfig
,还有其他可行的替代方案吗?
编辑:也许有办法通过重新定义\printatom
?我在文档中找到了一个示例,其中显示了如何更改字体,因此也许可以制作一个自定义框。
答案1
解决方法很简单:|
在后面添加\select
:
字符“
|
”在遇到原子时强制分裂原子。因此,我们可以写出C|{(CH_3)_3}
以确保 ChemFig 只分隔两个原子:“C
”和“{(CH_3)_3}
”。
不考虑 则\select_{Argomento='moto'}
认为是一个原子,键位于中心。考虑 则|
我们有两个原子可以连接键。在这种情况下\select
被选中。如果不是,键的可选参数将允许确定键应该连接哪个原子。
\documentclass{article}
\usepackage[italian]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{chemfig}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{relsize}
\newcommand{\select}{\sigma}
\newcommand{\project}{\pi}
\newcommand{\join}{\mathlarger{\mathlarger{\mathlarger{\mathlarger{\Join}}}}}
\begin{document}
\chemfig{
R-[:30]\join
(-[:90]\project_{CodR,NomeR})
-[:330]
\select|_{Argomento='moto'}
-[:270]A
}
\end{document}
答案2
这是你想要的吗?
\documentclass{article}
\usepackage[italian]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{chemfig}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{relsize}
\newcommand{\select}{\sigma}
\newcommand{\project}{\pi}
\newcommand{\join}{\mathlarger{\mathlarger{\mathlarger{\mathlarger{\Join}}}}}
\begin{document}
\chemfig{R-[:30]\join(-[:90]\project_{\rlap{\scriptsize CodR,NomeR}})-[:330]
\select_{\rlap{\scriptsize Argomento='moto'}}-[:270]A}
\end{document}
编辑:以下是与正确的@clemens 给出了解决方案。当我们想将链条置于中心时,就会出现差异。
我的解决方案\rlap{}
是让脚本在水平对齐方面“不可见”。这使其\Join
成为链的中心。