我想实现类似这两张图片中的东西。我想使用部分页边距来做笔记(绘制偶数表!)。我希望页边距从奇数页变为偶数页(我认为找到方法很简单,但如果您告诉我如何做,我将不胜感激)。我的问题是,当我绘制表格时,它不使用左边距,因此其中的一部分不会显示,因为它存在于右边距。那么如何告诉表格使用左边距?我的问题不仅针对表格,还针对所有框(列出代码、图形等)。我试过chngpage
打包,但它对我来说不起作用。
我想要一些东西让我指定左边距和右边距(表格永远不应该在这些边距之外绘制)并且如果它很小它将居中。
平均能量损失
\documentclass[a4paper,10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{array}
\usepackage{booktabs,caption,fixltx2e}
\usepackage{chngpage}
\usepackage{lipsum}
\usepackage[flushleft]{threeparttable}
\usepackage{hhline}
\usepackage{xcolor,colortbl}
\usepackage[top=2.5cm, bottom=2.5cm, left=8cm, right=2.5cm, heightrounded,
marginparwidth=7cm, marginparsep=3mm]{geometry}
\usepackage{hyperref}
\usepackage{minted}
\begin{document}
\lipsum[1]
\begin{adjustwidth}{-6in}{-6in}
\begin{table}
\begin{threeparttable}
\caption{\label{comparaison} Comparaison entre JSON, XML et
multipart/form-data}
\begin{tabular}{|>{\raggedright\arraybackslash}p{2cm}|>{
\raggedright\arraybackslash}p{3cm}|>{\raggedright\arraybackslash}p{3cm}|>{
\raggedright\arraybackslash}p{3.5cm} |}
\hhline{~---}
\multicolumn{1}{c|}{} & \cellcolor{gray!30} JSON & \cellcolor{gray!30} XML &
\cellcolor{gray!30} multipart/form-data \\
\hline
\cellcolor{gray!30} Taille des données &
Trop léger et économise des ressources &
trop verbeux mais en utilisant la compression on pourrait réduire
considérablement la taille de données &
Trop léger\\
\hline
\cellcolor{gray!30} Typage &
Il support les types de base (entier, booleen, chaîne de caractères, tableau
liste) &
Il supporte beaucoup de types de données &
non typée \\
\hline
\cellcolor{gray!30} Caractères non ASCII &
JSON est encodé en UTF-8 &
Possibilité d'encoder la requête en UTF-8 &
Possibilité d'utiliser UTF-8 comme encodage \\
\hline
\cellcolor{gray!30} données binaires &
Les données doivent être encodé (base64 par exemple) &
Comme pour le format JSON les données doivent être encodées &
C'est possible \\
\hline
\cellcolor{gray!30} Parseur Python/Java &
Il est pris en charge par Python. Besoin d'une librairie externe en Java &
Il pris en charge en Python/Java &
Pris en charge en Python/Java \\
\hline
\end{tabular}
\begin{tablenotes}
\small
\item \textbf{Source :}
\begin{itemize}
\item
\href{http://stackoverflow.com/questions/4007969/}{Réponse de manuel aldana}
\item \href{http://www.scriptol.fr/ajax/json-xml.php}{JSON ou XML, quel format
choisir?}
\end{itemize}
\end{tablenotes}
\end{threeparttable}
\end{table}
\end{adjustwidth}
\lipsum[1]
\newpage
\begin{minted}[mathescape,
linenos,
numbersep=5pt,
gobble=2,
frame=lines,
framesep=2mm]{json}
{
"culture precedente": "Tournesol",
"culture principale" : "Blé",
"parcelle" : "BI",
"test line " : "very long long long long long long long long long long long long long long long line"
"parameters" : {
"start" : "2010-07-12 12:00:00",
"end" : "2012-01-12 12:00:00",
"pram1" : "value",
"param2" : "value"
},
"results" : {
"numeric" : ["QELS", "WCF30"],
"graph" : [{
"X" : "time",
"Y" : "QELS"
}]
}
}
\end{minted}
Voici un exemple de réponse :
\begin{minted}[mathescape,
linenos,
numbersep=5pt,
gobble=2,
frame=lines,
framesep=2mm]{json}
{
"results" : {
"QELS" : 1.254,
"WCF30" : 200.745,
"graph" : [
"http://toulouse.inra.fr/api/files/graph.png"
]
}
}
\end{minted}
\end{document}
结果(已编辑)
答案1
对于比文本宽度更宽的表格使用:
\begin{table}[!htb]
\hspace*{-\marginwidth}\makebox[\totalwidth][r]{%
\begin{threeparttable}
....
\end{threeparttable}%
}
\end{table}
对于较小的:
\begin{table}[!htb]
\centering
\begin{threeparttable}
....
\end{threeparttable}%
\end{table}
完整的代码,定义了两个正确宽度的长度:
\documentclass[a4paper,10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{array}
\usepackage{booktabs,caption,fixltx2e}
\usepackage{chngpage}
\usepackage{lipsum}
\usepackage[flushleft]{threeparttable}
\newcolumntype{P}[1]{>{\RaggedRight}p{#1}}
\usepackage{hhline}
\usepackage{ragged2e}
\usepackage[table]{xcolor}
\usepackage[top=2.5cm, bottom=2.5cm, left=8cm, right=2.5cm, heightrounded,
marginparwidth=7cm, marginparsep=3mm]{geometry}
\usepackage{hyperref}
\newlength\marginwidth
\setlength\marginwidth{\dimexpr\marginparwidth+\marginparsep}
\newlength\totalwidth
\setlength\totalwidth{\dimexpr\textwidth+\marginwidth}
\begin{document}
\lipsum[1]
\begin{table}[!htb]
\hspace*{-\marginwidth}\makebox[\totalwidth][r]{%
\begin{threeparttable}
\caption{\label{comparaison} Comparaison entre JSON, XML et
multipart/form-data}
\begin{tabular}{|>{\columncolor{gray!30}}P{2cm}|P{3cm}|P{3cm}|P{3.5cm} |}
\hhline{~---}
\multicolumn{1}{c|}{} & \cellcolor{gray!30} JSON & \cellcolor{gray!30} XML & multipart/form-data \\ \hline
Taille des données &
Trop léger et économise des ressources &
trop verbeux mais en utilisant la compression on pourrait réduire
considérablement la taille de données &
Trop léger\\
\hline
Typage &
Il support les types de base (entier, booleen, chaîne de caractères, tableau
liste) &
Il supporte beaucoup de types de données &
non typée \\
\hline
Caractères non ASCII &
JSON est encodé en UTF-8 &
Possibilité d'encoder la requête en UTF-8 &
Possibilité d'utiliser UTF-8 comme encodage \\
\hline
données binaires &
Les données doivent être encodé (base64 par exemple) &
Comme pour le format JSON les données doivent être encodées &
C'est possible \\
\hline
Parseur Python/Java &
Il est pris en charge par Python. Besoin d'une librairie externe en Java &
Il pris en charge en Python/Java &
Pris en charge en Python/Java \\ \hline
\end{tabular}
\begin{tablenotes}
\small
\item \textbf{Source :}
\begin{itemize}
\item
\href{http://stackoverflow.com/questions/4007969/}{Réponse de manuel aldana}
\item \href{http://www.scriptol.fr/ajax/json-xml.php}{JSON ou XML, quel format
choisir?}
\end{itemize}
\end{tablenotes}
\end{threeparttable}%
}
\end{table}
\lipsum[1]
\end{document}