LaTeX
\LaTeX
LATEX中可以使用paracol
宏包实现双栏/多栏对照排版,并且可以很方便地实现左右对齐,也就可以用来排版中英对照的文档。
效果图
使用方法
\begin{paracol}{2}
\switchcolumn[0]*[\section{Section 1 for the test 测试用的第一节}]
\lipsum[1]
\switchcolumn
\zhlipsum[1]
\switchcolumn*
\lipsum[2]
\switchcolumn
\zhlipsum[2]
\end{paracol}
代码解释
首先需要在paracol
这个环境下,
\switchcolumn
命令可以切换左右两栏,每使用一次这个命令就能在左右两栏之间进行切换。使用带*
号的\switchcolumn*
命令可以让该命令之后的内容与该命令之前的内容的最底部对齐。
带*
号的\switchcolumn*
命令在*
之前之后分别有一个可选参数,例如\switchcolumn[0]*[\section{Section 1 for the test 测试用的第一节}]
:
- [0]表示的是在多栏之中的哪一栏,从0开始记数
- [\section{Section 1 for the test 测试用的第一节}]表示的是跨栏命令,
section
,subsection
等命令可以放在这个位置。
存在的问题
使用\switchcolumn*
命令跨栏时,不能有公式、代码、图片等环境,这时我们可以自己封装一个\CrossColumnText
命令,实现公式、代码、图片的跨栏。
复杂环境跨栏
该命令的定义方法如下:
\newcommand{\CrossColumnText}[1]{\end{paracol} #1 \begin{paracol}{2} \switchcolumn}
原理也很简单,就是直接把paracol
环境结束了,等需要跨栏的内容填充之后再新建一个paracol
环境。
需要注意的是,可能需要将跨栏的代码等单独放置在一个文件中,使用\input
命令导入进来,否则很大概率会报错。
综上,\CrossColumnText
命令使用方式如下
\CrossColumnText{
\input{code/square.tex}
}
square.tex
的内容如下1:
\begin{lstlisting}[language=Python]
>>> def square(x):
return mul(x,x)
\end{lstlisting}
完整的测试代码
\documentclass[10pt,a4paper]{ctexart}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage{paracol}
\usepackage{zhlipsum}
\usepackage{lipsum}
\usepackage[left=1.5cm, right=1.5cm, top=2.54cm, bottom=0.20cm]{geometry}
\begin{document}
\begin{paracol}{2}
\switchcolumn[0]*[\section{Section 1 for the test 测试用的第一节}]
\lipsum[1]
\switchcolumn
\zhlipsum[1]
\switchcolumn*
\lipsum[2]
\switchcolumn
\zhlipsum[2]
\end{paracol}
\end{document}
参考的是原先GitHub上的bilidoc,但现在原GitHub仓库已经找不到了。
LaTeX \LaTeX LATEX中生成代码环境需要引入
listings
宏包 ↩︎