Когда я использую adjustbox
для изменения ширины таблицы, даже размер шрифта меняется. Как мне увеличить ширину таблицы, но позволить ей превышать оба поля одинаково?
Мой МВЭ
\documentclass{elsarticle}
\usepackage{ragged2e}
% ========== Caption packages ==========
\usepackage{caption}
% ========== Table packages ==========
\usepackage{tabularx}
% BEGIN_FOLD
\newcolumntype{L}{ >{\arraybackslash \RaggedRight}X }
\newcolumntype{C}{ >{\arraybackslash \Centering}X }
\newcolumntype{R}{ >{\arraybackslash \RaggedLeft}X }
\newcolumntype{J}{ >{\arraybackslash\justifying} X }
\renewcommand{\tabularxcolumn}[1]{ >{\centering}m{#1} }
\newcommand{\scalelinespace}[1]{
\rule{0pt}{#1\normalbaselineskip}
}
% END_FOLD
\usepackage{booktabs}
\usepackage{makecell}
\usepackage[flushleft]{threeparttable}
% ========== Figures and tables locations packages ==========
\usepackage{float}
\usepackage{adjustbox}
% ========== Font encoding packages ==========
\usepackage[T1]{fontenc}
\usepackage{fontspec}
% BEGIN_FOLD
\setmainfont{TeX Gyre Pagella}
\setmonofont{Courier}
\newcommand{\textffam}[2]{{\fontencoding{T1} \fontfamily{#1} \selectfont#2}}
% END_FOLD
% ========== Equations and math packages ==========
\usepackage{amsmath}
\usepackage{amssymb, amsfonts}
\usepackage{stackengine}
\begin{document}
\begin{table*}[htp]
\begin{adjustbox}{width=1.5\textwidth, center}
\begin{threeparttable}
% Table options
% Caption
\caption{Determination of Critical Lines Among RESs Based on Operational Interaction Operators}
\label{table:critical_lines_w_ij_hat}
% Center the table
\centering
\newcommand{\setfontsizeTable}{\fontsize{9}{9} \selectfont}
\begin{tabularx}{1\textwidth}{c ||>{\hsize=0.5\hsize \setfontsizeTable}C >{\hsize=0.5\hsize}C >{\hsize=0.5\hsize}C >{\hsize=0.5\hsize}C >{\hsize=0.5\hsize}C |>{\hsize=1.5\hsize}C |>{\hsize=1.5\hsize}C |>{\hsize=1.5\hsize}C |>{\hsize=1.5\hsize}C |>{\hsize=1.5\hsize}C}
\toprule
\adjustbox{rotate=90, valign=c}{Quadrant} & \adjustbox{rotate=90, valign=c}{POI $i$} & \adjustbox{rotate=90, valign=c}{POI $j$} & \multicolumn{3}{c|}{Other POIs} &
Critical Line Based on $\displaystyle \angle \bar{w}_{ij}$ or $\displaystyle \left| \bar{w}_{ij} \right|$ & Actual Critical Line (based on [Eq]) & $\displaystyle \left| S_{eq, \thinspace i} \right|$ & $\displaystyle \mathit{SDSCR}_{i}$ & $\displaystyle \frac{\mathit{Max} \medspace \mathit{SDSCR}_{i}}{\textit{Mean} \medspace \mathit{SDSCR}_{i}}$
\\
\Xhline{0.25mm}
\scalelinespace{1.3} \adjustbox{rotate=90, valign=c}{III} & 101 & 64 & 96 & 106 & 37 & 86-87 & 86-87 & 4.38 & 2.02 & 1.41
\\
\scalelinespace{1.3} \adjustbox{rotate=90, valign=c}{IV} & 79 & 96 & 9 & 81 & 33 & 9-10 & 9-10 & 3.40 & 5.13 & 1.28
\\
\scalelinespace{1.3} \adjustbox{rotate=90, valign=c}{
\Shortstack[c]{{III} {IV \textsuperscript{a}}}
}
& 97 & 60 & 39 & 37 & 86 & 43-44 & 43-44 & 3.98 & 3.18 & 1.07
\\
\bottomrule
\end{tabularx}
\begin{tablenotes}
\item[a] angles of $\displaystyle \angle \bar{w}_{ij}$ exist in both quadrants
\end{tablenotes}
\end{threeparttable}
\end{adjustbox}
\end{table*}
\end{document}
решение1
Вы написали,
Я использую
adjustbox
, потому что хочу расширить таблицу за пределы полей по умолчанию,
Для таблицы, которую вы видите, нет необходимости делать ее шире текстового блока. Просто используйте либо директиву a \small
, либо a \footnotesize
. И, конечно же, не прибегайте к adjustbox
приему.
Отдельное замечание: вы используете пакет fontspec
и используете TeX Gyre Pagella
текстовый шрифт. Чтобы использовать совместимый математический шрифт, я предлагаю вам загрузить пакет unicode-math
(который автоматически загружает fontspec
пакет) и выдать директиву \setmathfont{TeX Gyre Pagella Math}
.
И нет необходимости использовать C
тип столбца для всех 10 столбцов. Фактически, вам нужен тип только C
для двух столбцов; для остальных 8 просто используйте простой c
тип столбца.
\documentclass{elsarticle}
\usepackage{ragged2e}
\usepackage{tabularx}
\newcolumntype{C}{ >{\Centering\arraybackslash }X }
\renewcommand{\tabularxcolumn}[1]{>{\centering}m{#1}}
\usepackage[flushleft]{threeparttable}
\usepackage{adjustbox}
\usepackage{amsmath,amssymb}
\usepackage{unicode-math}
\setmainfont{TeX Gyre Pagella}
\setmathfont{TeX Gyre Pagella Math}
\begin{document}
\begin{table*}[htp]
\setlength\tabcolsep{5pt}
\setlength\extrarowheight{2pt}
\footnotesize
\begin{threeparttable}
\caption{Determination of critical lines among RESs based on operational interaction operators}
\label{table:critical_lines_w_ij_hat}
\begin{tabularx}{\textwidth}{@{} c | ccccc | *{2}{C} ccc @{}}
\hline
\adjustbox{rotate=90, valign=c}{Quadrant} &
\adjustbox{rotate=90, valign=c}{POI $i$} &
\adjustbox{rotate=90, valign=c}{POI $j$} &
\multicolumn{3}{c|}{Other POIs}
& Critical line based on $\angle\bar{w}_{\!ij}$ or $| \bar{w}_{\!ij}|$
& Actual Critical Line (based on [Eq])
& $| S_{\mathit{eq},i}|$
& $\mathit{SDSCR}_{i}$
& $\frac{\max \mathit{SDSCR}_{i}}{\mathrm{mean}\,\mathit{SDSCR}_{i}}$
\\
\hline
III & 101 & 64 & 96 & 106 & 37 & 86-87 & 86-87 & 4.38 & 2.02 & 1.41
\\
IV & 79 & 96 & 9 & 81 & 33 & 9-10 & 9-10 & 3.40 & 5.13 & 1.28
\\
III, IV\tnote{a} & 97 & 60 & 39 & 37 & 86 & 43-44 & 43-44 & 3.98 & 3.18 & 1.07
\\
\hline
\end{tabularx}
\begin{tablenotes}
\item[a] Angles of $\angle \bar{w}_{\!ij}$ exist in both quadrants.
\end{tablenotes}
\end{threeparttable}
\end{table*}
\end{document}
решение2
Прежде чем начать использовать таблицу \begin{adjustwidth}{-0.5<text width increase>}{0em}
, используйте . В преамбуле таблицы используйте 1.<textwidth increase factor>
. Например. Если вы хотите увеличить ширину таблицы на 0,3 ширины текста, используйте \begin{adjustwidth}{-0.15\textwidth}{0em}
и {1.3\textwidth}
в tabularx
преамбуле. Основная цель использования \begin{adjustwidth}{0.5<text width increase>}{0em}
— переместить таблицу влево на величину, равную половине увеличения ширины таблицы, тем самым гарантируя, что таблица будет одинаково выходить за оба поля.
Вот полный MWE
\documentclass{elsarticle}
\usepackage{ragged2e}
% ========== Caption packages ==========
\usepackage{caption}
% ========== Table packages ==========
\usepackage{tabularx}
% BEGIN_FOLD
\newcolumntype{L}{ >{\arraybackslash \RaggedRight}X }
\newcolumntype{C}{ >{\arraybackslash \Centering}X }
\newcolumntype{R}{ >{\arraybackslash \RaggedLeft}X }
\newcolumntype{J}{ >{\arraybackslash\justifying} X }
\renewcommand{\tabularxcolumn}[1]{ >{\centering}m{#1} }
\newcommand{\scalelinespace}[1]{
\rule{0pt}{#1\normalbaselineskip}
}
% END_FOLD
\usepackage{booktabs}
\usepackage{makecell}
\usepackage[flushleft]{threeparttable}
% ========== Figures and tables locations packages ==========
\usepackage{float}
\usepackage{adjustbox}
% ========== Font encoding packages ==========
\usepackage[T1]{fontenc}
\usepackage{fontspec}
% BEGIN_FOLD
\setmainfont{TeX Gyre Pagella}
\setmonofont{Courier}
\newcommand{\textffam}[2]{{\fontencoding{T1} \fontfamily{#1} \selectfont#2}}
% END_FOLD
% ========== Equations and math packages ==========
\usepackage{amsmath}
\usepackage{amssymb, amsfonts}
\usepackage{stackengine}
\usepackage{changepage}
\begin{document}
\begin{table*}[htp]
\begin{adjustwidth}{-0.25\textwidth}{0em}
\begin{threeparttable}
% Table options
% Caption
\caption{Determination of Critical Lines Among RESs Based on Operational Interaction Operators}
\label{table:critical_lines_w_ij_hat}
% Center the table
\centering
\begin{tabularx}{1.5\textwidth}{c ||>{\hsize=0.5\hsize}C >{\hsize=0.5\hsize}C >{\hsize=0.5\hsize}C >{\hsize=0.5\hsize}C >{\hsize=0.5\hsize}C |>{\hsize=1.5\hsize}C |>{\hsize=1.5\hsize}C |>{\hsize=1.5\hsize}C |>{\hsize=1.5\hsize}C |>{\hsize=1.5\hsize}C}
\toprule
\adjustbox{rotate=90, valign=c}{Quadrant} & \adjustbox{rotate=90, valign=c}{POI $i$} & \adjustbox{rotate=90, valign=c}{POI $j$} & \multicolumn{3}{c|}{Other POIs} &
Critical Line Based on $\displaystyle \angle \bar{w}_{ij}$ or $\displaystyle \left| \bar{w}_{ij} \right|$ & Actual Critical Line (based on [Eq]) & $\displaystyle \left| S_{eq, \thinspace i} \right|$ & $\displaystyle \mathit{SDSCR}_{i}$ & \maxsizebox{\hsize}{!}{$\displaystyle \frac{\mathit{Max} \medspace \mathit{SDSCR}_{i}}{\textit{Mean} \medspace \mathit{SDSCR}_{i}}$}
\\
\Xhline{0.25mm}
\scalelinespace{1.3} \adjustbox{rotate=90, valign=c}{III} & 101 & 64 & 96 & 106 & 37 & 86-87 & 86-87 & 4.38 & 2.02 & 1.41
\\
\scalelinespace{1.3} \adjustbox{rotate=90, valign=c}{IV} & 79 & 96 & 9 & 81 & 33 & 9-10 & 9-10 & 3.40 & 5.13 & 1.28
\\
\scalelinespace{1.3} \adjustbox{rotate=90, valign=c}{
\Shortstack[c]{{III} {IV \textsuperscript{a}}}
}
& 97 & 60 & 39 & 37 & 86 & 43-44 & 43-44 & 3.98 & 3.18 & 1.07
\\
\bottomrule
\end{tabularx}
\begin{tablenotes}
\item[a] angles of $\displaystyle \angle \bar{w}_{ij}$ exist in both quadrants
\end{tablenotes}
\end{threeparttable}
\end{adjustwidth}
\end{table*}
\end{document}