使用textpos宏包实现文本框的定位排版 - registor

发布于 2021-03-26 17:23:11

在 LaTeX 的实际使用中,有时需要将指定大小的文本框定位于页面的指定位置进行排版,如编排学术海报、填写由其它工具转换后的 PDF 格式的表格、为已有 PDF 文件添加文本、在 Beamer 演示文稿中点缀帧页面等。此时,可以使用 textpos 宏包实现这一需求。

textpos 宏包

textpos 宏包是一个用于在 LaTeX 页面中指定的绝对位置排版文本框,该宏包仅提供了一个 textblock 环境用于在指定位置排版由文本、插图、表格或其它任何排版内容构成的文本框。

\begin{textblock}{<hsize>}(<hpos>, <vpos>)
text...
\end{textblock}

其中,<hsize>表示文本框宽度,<hpos><vpos>表示文本框坐标,注意位置坐标需要使用小括号()进行限定。

textpos 宏包既可以工作于相对坐标模式,也可以工作于绝对坐标模式。相对坐标模式是默认的工作模式,在该模式中,textblock 环境的位置坐标参数相对于当前页面的当前“锚点”位置进行排版。在绝对坐标模式中,textblock 环境的位置坐标参数相对于当前页面的“左上角”位置进行排版。

textpos 宏包排版样例

在普通页面中插入文本框

\documentclass{ctexart}

\usepackage{zhlipsum}
\usepackage{xcolor}

% 注意需要使用overlay参数
\usepackage[absolute,overlay]{textpos}

\begin{document}
\zhlipsum[1]
 
% 设定尺寸单位
\setlength{\TPHorizModule}{\textwidth}
\setlength{\TPVertModule}{\textwidth}
 
% 排版文本框
\begin{textblock}{1.0}(0.3,0.30)
  \textblockcolour{red!30}% 设置背景颜色
  这是一个测试文本框
\end{textblock}

\end{document}

在 textpos 文本框中使用浮动体

\documentclass{ctexart}

\usepackage{graphicx}
\usepackage{mwe}

% 注意需要使用overlay参数
\usepackage[absolute,overlay]{textpos}

\begin{document}
% 设定尺寸单位
\setlength{\TPHorizModule}{\textwidth}
\setlength{\TPVertModule}{\textwidth}
  
使用textpos排版表格如表\ref{tab:test},排版插图如\ref{fig:test}。
  
\begin{textblock}{0.5}(.2,0.5) \vspace{0pt}
  \begin{table}
    \centering
    \caption{test table}\label{tab:test}
    \begin{tabular}{ccc}
      \hline            
      距离 (cm) &amp; 离群点 &amp; 合并离群 \\ \hline
      % \input{HelioProfile.tex}
      0 &amp; 0 &amp; 0 \\
      1 &amp; 0 &amp; 0 \\
      2 &amp; 5 &amp; 5 \\
      \hline
    \end{tabular}
  \end{table}
\end{textblock}
 
\begin{textblock}{0.4}(1.0,0.55)
  \begin{figure}
    \centering \includegraphics[width=0.6\textwidth]{example-image}
    \caption{test figure}\label{fig:test}
  \end{figure}
\end{textblock}

 % 排版文本框
 \begin{textblock}{1.5}(0.3,0.30)
   这是一个测试文本框
 \end{textblock}

\end{document}

在 Beamer 的 frame 中插入文本框

\documentclass{ctexbeamer}

\usepackage{graphicx}
\usepackage{mwe}
% 注意需要使用overlay参数
\usepackage[absolute,overlay, showboxes]{textpos}

\begin{document}
\begin{frame}{TextPos宏包}{测试样例}

 \begin{center}
   \includegraphics[width=0.8\textwidth]{example-image}
 \end{center}
 
 % 设定尺寸单位
 \setlength{\TPHorizModule}{\textwidth}
 \setlength{\TPVertModule}{\textwidth}
 
 % 排版文本框
 \begin{textblock}{0.33}(0.8,0.05)
   这是一个测试文本框
 \end{textblock}
\end{frame}
\end{document}

有关 textpos 宏包的使用细节,请在命令行输入texdoc textpos查阅其使用说明书。

Happy LaTeXing!

0 条评论

发布
问题