知道我在浮点数中的哪一列

知道我在浮点数中的哪一列

浮点数代码能知道twocolumn它设置在文档的哪一列吗?我对那些经过多次重新编译后才能正常工作的解决方案很满意。我想要制作的依赖于此的代码不会改变框的大小。

答案1

此示例使用沃纳的回答针对类似问题来识别列。

更新后续问题:边缘不对称。

b

% !TeX TS-program = pdflatex

\documentclass[12pt,a4paper,twocolumn]{book}

\usepackage[left=2.00cm, right=4.00cm, top=4.00cm, bottom=3.00cm, marginpar=3cm]{geometry}

\usepackage{showframe}

\usepackage{zref-savepos} % needed <<<<<<<<<<<<<<
\newcounter{columncheck}    
\newlength{\ldistance}

\usepackage{kantlipsum}% dummy text <<
\usepackage{graphicx}

%% From https://tex.stackexchange.com/a/543802/161015
\newcommand{\whichcolumn}{%
    \hspace*{0.25\textwidth}% center in the column
    \setlength{\ldistance}{0.5\paperwidth}
    \stepcounter{columncheck}%
    \zsaveposx{\thecolumncheck}% \zsaveposx{<label>}
    \ifdim\ldistance > \zposx{\thecolumncheck}sp % get stored x pos in sp units
    LEFT\else RIGHT\fi
}
\pagestyle{plain}

\begin{document}
    
    1.  \kant[1]
    
    \begin{figure}[htp!]    
    \includegraphics[width=\columnwidth]{example-image-a.jpg}\\
    \whichcolumn
    \end{figure}
    
    2. \kant[3]
    
    \begin{figure}[tp!]         
        \includegraphics[width=\columnwidth]{example-image-b.jpg}\\
        \whichcolumn
    \end{figure}
            
    3.  \kant[1-3]
    
    \begin{figure}[htp!]        
        \includegraphics[width=\columnwidth]{example-image-a.jpg}\\\medskip
        \whichcolumn
    \end{figure}
    
    \begin{figure}[htp!]
        \includegraphics[width=\columnwidth]{example-image-b.jpg}\\
        \whichcolumn
    \end{figure}

    \newpage
    \begin{figure}[ht!] 
    \includegraphics[width=\columnwidth]{example-image-c.jpg}\\
    \whichcolumn
\end{figure}

4.  \kant[1-2]
        
\end{document}  

此代码使用zref's savepos模块来存储您要放置命令的列中心的 x 坐标。此 x 坐标用于识别您是在左列还是右列,具体取决于它是否小于或大于(或等于)页面区域的 50%。

相关内容