我正在與 LaTeX 爭論這一點:我希望在文件中twocolumn
,在第二列頂部有一個小圖 1,在頁面底部有一個寬圖 2。這個 MWE 說明了這一點:
\documentclass[twocolumn]{article}
\usepackage{stfloats}
\usepackage{lipsum}
%\renewcommand{\topfraction}{0.1}
\begin{document}
\global\csname @topnum\endcsname 0
\lipsum[1]
\begin{figure}[t]
\caption{Fig. 1!}
\end{figure}
\begin{figure*}[b]
\caption{Fig. 2!}
\end{figure*}
\lipsum[2-6]
\end{document}
然而,無論我嘗試什麼,這似乎都不起作用。圖 1 位於第一欄的頂部;或寬圖 2 在第 2 頁。
- 寬圖必須出現在第一列的早期,且
- 小數字不能出現在第一列中,否則它最終會出現在該列中。
有解決方法嗎?我知道一旦定位了浮點數,編號就可以固定(https://tex.stackexchange.com/a/356902/30810),但首先定位必須正確。
更新:如果有幫助:我的問題出現在文件的最後一頁。
答案1
環境figure*
將其內容放在位置的頂部,並且可選參數不起作用。您可以嘗試\InsertBoxC
嵌套在strip
環境中, from cuted
( sttools
bundle):strip
是一種本機單列環境。
\documentclass[twocolumn]{article}
\usepackage{stfloats}
\usepackage[unskipbreak]{cuted}
\usepackage{lipsum}
\usepackage{graphicx, caption}
\input{insbox}
\renewcommand{\topfraction}{0.4}
\begin{document}
\lipsum[1-2]
\begin{figure}[!t]
\centering\includegraphics[scale=0.5]{Nightmare_Fussli}
\caption{Nightmare (\emph{Henry Fuseli})}
\end{figure}
\lipsum[3-4]
%
\begin{strip}
\InsertBoxC{
\includegraphics[scale =0.8]{SanRomano-all}}
\captionof{figure}{The Battle of San Romano (\emph{Paolo Uccello})}
\end{strip}
\lipsum[4-8]
\end{document}
答案2
我已經嘗試過了。它看起來像一個可怕的黑客,但我可以忍受它:
\documentclass[twocolumn]{article}
\usepackage{mwe,lipsum}
% Solution:
\usepackage{capt-of}
\newcommand{\figureTwo}[1]{\makebox[0pt][l]{\raisebox{-#1}[0pt][0pt]{\parbox{\textwidth}{
\centering
\includegraphics[scale=0.5]{example-image-16x9}
\captionof{figure}{Caption}
\label{fig:Label}
}}}}
% for Calibration:
\usepackage{stfloats}
\begin{document}
\global\csname @topnum\endcsname 0
\lipsum[1]
\begin{figure}[t]
\caption{Fig. 1!}
\end{figure}
\enlargethispage{-10\baselineskip}
% compare with and without - same thing!
\noindent\figureTwo{10cm}\indent
\lipsum[2-5]
%\end{document}
\cleardoublepage
Calibration:
\begin{figure*}[b]
\centering
\includegraphics[scale=0.5]{example-image-16x9}
\captionof{figure}{Caption}
\end{figure*}
\end{document}
\figureTwo
必須在左列段落的開頭呼叫。\makebox
確保結果的寬度為零(似乎是單行高度);\raisebox
將人物垂直移動到適當的位置;\parbox
是必要的,因為\captionof
在其他兩個框中都不起作用(比較\captionof 在一個盒子裡)。如果這個組合可以簡化,我也希望如此:)
校準的工作原理是編譯兩個頁面,導入 Inkscape,測量兩個圖形的垂直偏移,並10cm
相應地調整參數。應該在文檔真正完成時完成。