Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

在Table中使用\scalebox缩放表格导致正文被加粗 #24

Closed
lijinfeng0713 opened this issue Nov 24, 2019 · 20 comments
Closed

在Table中使用\scalebox缩放表格导致正文被加粗 #24

lijinfeng0713 opened this issue Nov 24, 2019 · 20 comments
Labels
bug Something isn't working

Comments

@lijinfeng0713
Copy link

在tabular中使用\scalebox缩放表格导致正文被加粗,删除\scalebox恢复正常
image
如下
image
急需帮助~

@lijinfeng0713 lijinfeng0713 added the bug Something isn't working label Nov 24, 2019
@TheNetAdmin
Copy link
Owner

完整代码复制一下?

@lijinfeng0713
Copy link
Author

lijinfeng0713 commented Nov 25, 2019

完整代码复制一下?

\begin{table*}[tp]
    \small
    \caption{在MR数据集上的黑盒攻击结果}
    \label{tab:sentiment_blackbox_MR}
    \centering
    \scalebox{0.8}{
    \begin{tabular}{ccC{1.35cm}C{1.35cm}C{1.35cm}C{1.35cm}C{1.35cm}C{1.35cm}}
    \toprule 
    \multirow{2}{*}{\textbf{目标模型}} & \multirow{2}{*}{\centering \textbf{原始准确率}} & \multicolumn{3}{c}{\textbf{DeepWordBug \cite{gao2018black}}} & \multicolumn{3}{c}{\textbf{TextBugger}} \\
     \cmidrule(r){3-5} \cmidrule(r){6-8}
     & & 成功率 & 时间(s) & 扰动率 & 成功率 & 时间(s) & 扰动率 \\
     \midrule
     Google Cloud NLP & 76.7\% & 67.3\% & 34.64 & 10\% & \textbf{86.9\%} & 13.85 & 3.8\% \\
    \bottomrule
    \end{tabular}}
    % \vspace{-0.2cm} % 调整垂直距离
\end{table*}

@TheNetAdmin
Copy link
Owner

抱歉我今明两天暂时没时间,可能后天可以查一下问题在哪。

在这之前我推荐你试试resizebox,看还有没有类似错误

@lijinfeng0713
Copy link
Author

抱歉我今明两天暂时没时间,可能后天可以查一下问题在哪。

在这之前我推荐你试试resizebox,看还有没有类似错误

好的,非常感谢!之前我已经尝试过resizebox,但存在类似的问题

@TheNetAdmin
Copy link
Owner

TheNetAdmin commented Nov 25, 2019

我直接复制这段代码编译了一遍,没有发现类似问题。

image

我用的是默认设置:

\documentclass[
    StudentName = 姓名,
    StudentID   = 学号,
    AdvisorName = 指导教师,
    Grade       = 2014,            % only the year, no '级'
    Major       = 专业,
    Department  = 学院,
    Title       = 毕业论文/设计题目,
    SubmitDate  = 递交日期,
    MajorFormat = general,
    Degree      = undergraduate,   % 'undergraduate' or 'graduate'
    Type        = thesis,          % 'thesis'   or 'design' or 'equal'(only for graduate)
    Period      = final,           % 'proposal' or 'final'
    BlindReview = false,           % 'false'    or 'true'
    % Below only for 'graduate'
    Topic           = 研究方向,
    ColaboratorName = 合作导师
]{config/zjuthesis}

版本号4.0.4,在Overleaf上编译的。

有空的话能否提供下你的文档模板信息,或者附上一份可重现问题的代码呢?

@TheNetAdmin
Copy link
Owner

我个人推测可能是你表格剩余的代码里,某个\textbf的左右大括号没有闭合,导致全文剩余部分都被这个\textbf标记了。

@lijinfeng0713
Copy link
Author

我个人推测可能是你表格剩余的代码里,某个\textbf的左右大括号没有闭合,导致全文剩余部分都被这个\textbf标记了。

应该不是没有闭合的原因,我按照你的设置用general编译,也不存在这个问题,之前用的是cs编译的

@TheNetAdmin
Copy link
Owner

我改成cs模板发现也出了一些问题,我后天有空查一下。

@TheNetAdmin
Copy link
Owner

我大致尝试了一下,貌似是某个package引用了array,导致tabular被array包定义了。

而array定义的tabular使用的参数比较有限。

我还在查解决方法,但当前我建议你使用tabularx来做表格试试,我看你想要均分一些列,tabularx很适合做这个。模板里有很多地方已经使用了tabularx,你搜索一下就能找到样例。

@TheNetAdmin
Copy link
Owner

重新尝试复现这个问题,在 v5.0.0 正式版 4eadc6c ,用了如下代码

\usepackage{booktabs}
\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}}
\newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}}
\newcolumntype{R}[1]{>{\raggedleft\arraybackslash}p{#1}}
\documentclass[
    StudentName     = 姓名,
    StudentID       = 学号,
    AdvisorName     = 指导教师,
    Grade           = 2014,            % only the year, no '级'
    Major           = 专业,
    Department      = 学院,
    Title           = 毕业论文/设计题目,
    SubmitDate      = 递交日期,
    MajorFormat     = cs,
    Degree          = undergraduate,   % 'undergraduate' or 'graduate'
    Type            = thesis,          % 'thesis'   or 'design'
    Period          = final,           % 'proposal' or 'final'
    BlindReview     = false,           % 'false'    or 'true'
    Language        = chinese,         % 'chinese'  or 'english'
    % Below only for 'graduate'
    GradLevel       = master,          % 'master' or 'doctor'
    Topic           = 研究方向,
    ColaboratorName = 合作导师,
    TitleEng        = {{Graduation Thesis Title}}
]{./config/zjuthesis}
\begin{table*}[tp]
    \small
    \caption{在MR数据集上的黑盒攻击结果}
    \label{tab:sentiment_blackbox_MR}
    \centering

    \scalebox{0.8}{
    \begin{tabular}{ccC{1.35cm}C{1.35cm}C{1.35cm}C{1.35cm}C{1.35cm}C{1.35cm}}
    \toprule 
    \multirow{2}{*}{\textbf{目标模型}} & \multirow{2}{*}{\centering \textbf{原始准确率}} & \multicolumn{3}{c}{\textbf{DeepWordBug \cite{gao2018black}}} & \multicolumn{3}{c}{\textbf{TextBugger}} \\
     \cmidrule(r){3-5} \cmidrule(r){6-8}
     & & 成功率 & 时间(s) & 扰动率 & 成功率 & 时间(s) & 扰动率 \\
     \midrule
     Google Cloud NLP & 76.7\% & 67.3\% & 34.64 & 10\% & \textbf{86.9\%} & 13.85 & 3.8\% \\
    \bottomrule
    \end{tabular}%
    }

    % \vspace{-0.2cm} % 调整垂直距离
\end{table*}

没有重现全文加粗的问题
image

不过我的建议还是使用 tabularx,用 scalebox 来放大表格会导致文字大小不符合要求。

如果仍有问题,请务必重开此 issue,我会继续排查。

@fengyang95
Copy link

在tabular中使用\scalebox缩放表格导致正文被加粗,删除\scalebox恢复正常
image
如下
image
急需帮助~

想请教下最后怎么解决的?我现在也出现这个问题

@fengyang95
Copy link

重新尝试复现这个问题,在 v5.0.0 正式版 4eadc6c ,用了如下代码

\usepackage{booktabs}
\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}}
\newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}}
\newcolumntype{R}[1]{>{\raggedleft\arraybackslash}p{#1}}
\documentclass[
    StudentName     = 姓名,
    StudentID       = 学号,
    AdvisorName     = 指导教师,
    Grade           = 2014,            % only the year, no '级'
    Major           = 专业,
    Department      = 学院,
    Title           = 毕业论文/设计题目,
    SubmitDate      = 递交日期,
    MajorFormat     = cs,
    Degree          = undergraduate,   % 'undergraduate' or 'graduate'
    Type            = thesis,          % 'thesis'   or 'design'
    Period          = final,           % 'proposal' or 'final'
    BlindReview     = false,           % 'false'    or 'true'
    Language        = chinese,         % 'chinese'  or 'english'
    % Below only for 'graduate'
    GradLevel       = master,          % 'master' or 'doctor'
    Topic           = 研究方向,
    ColaboratorName = 合作导师,
    TitleEng        = {{Graduation Thesis Title}}
]{./config/zjuthesis}
\begin{table*}[tp]
    \small
    \caption{在MR数据集上的黑盒攻击结果}
    \label{tab:sentiment_blackbox_MR}
    \centering

    \scalebox{0.8}{
    \begin{tabular}{ccC{1.35cm}C{1.35cm}C{1.35cm}C{1.35cm}C{1.35cm}C{1.35cm}}
    \toprule 
    \multirow{2}{*}{\textbf{目标模型}} & \multirow{2}{*}{\centering \textbf{原始准确率}} & \multicolumn{3}{c}{\textbf{DeepWordBug \cite{gao2018black}}} & \multicolumn{3}{c}{\textbf{TextBugger}} \\
     \cmidrule(r){3-5} \cmidrule(r){6-8}
     & & 成功率 & 时间(s) & 扰动率 & 成功率 & 时间(s) & 扰动率 \\
     \midrule
     Google Cloud NLP & 76.7\% & 67.3\% & 34.64 & 10\% & \textbf{86.9\%} & 13.85 & 3.8\% \\
    \bottomrule
    \end{tabular}%
    }

    % \vspace{-0.2cm} % 调整垂直距离
\end{table*}

没有重现全文加粗的问题
image

不过我的建议还是使用 tabularx,用 scalebox 来放大表格会导致文字大小不符合要求。

如果仍有问题,请务必重开此 issue,我会继续排查。

我也出现了这个问题,表格之后一个段落的文字会加粗。您之前解决的这种情况因为后文正好是章节标题所以看不出来

@muzimuzhi
Copy link

可能是 xdvipdfmx 的问题,复现条件是使用了伪粗,详细介绍见 CTeX-org/ctex-kit#546 。如果确实是这样,可以尝试在 table* 环境内容的首尾分别加上 \special{pdf:code q}\special{pdf:code Q}

@TheNetAdmin
Copy link
Owner

@fengyang95 我在本地依然无法复现这个问题……

使用 master 分支 f87526 并用 latexmk 编译,内容设置如下

\documentclass[
    % Debugging
    % PrintFilePath: print tex file path for each page,
    %                helpful if you want to locate the tex file of a page
    PrintFilePath   = false,
    % Thesis Info
    StudentName     = 姓名,
    StudentID       = 学号,
    AdvisorName     = 指导教师,
    Grade           = 2014,            % only the year, no '级'
    Major           = 专业,
    Department      = 学院,
    SubmitDate      = 递交日期,
    MajorFormat     = cs,
    Degree          = undergraduate,   % 'undergraduate' or 'graduate'
    Type            = thesis,          % 'thesis'   or 'design'
    Period          = final,           % 'proposal' or 'final'
    BlindReview     = false,           % 'false'    or 'true'
    Language        = chinese,         % 'chinese'  or 'english'
    % Graduate Thesis Info
    GradLevel       = master,          % 'master' or 'doctor'
    Topic           = 研究方向,
    ColaboratorName = 合作导师,
    % Title
    Title           = 毕业论文/设计题目,
    TitleEng        = {{Graduation Thesis Title}}
]{zjuthesis}
% config/packages.tex
\usepackage{booktabs}
\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}}
\newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}}
\newcolumntype{R}[1]{>{\raggedleft\arraybackslash}p{#1}}
% body/undergraduate/final/2-body.tex
\begin{table*}[h]
    \small
    \caption{在MR数据集上的黑盒攻击结果}
    \label{tab:sentiment_blackbox_MR}
    \centering

    \scalebox{0.8}{
    \begin{tabular}{ccC{1.35cm}C{1.35cm}C{1.35cm}C{1.35cm}C{1.35cm}C{1.35cm}}
    \toprule 
    \multirow{2}{*}{\textbf{目标模型}} & \multirow{2}{*}{\centering \textbf{原始准确率}} & \multicolumn{3}{c}{\textbf{DeepWordBug \cite{gao2018black}}} & \multicolumn{3}{c}{\textbf{TextBugger}} \\
     \cmidrule(r){3-5} \cmidrule(r){6-8}
     & & 成功率 & 时间(s) & 扰动率 & 成功率 & 时间(s) & 扰动率 \\
     \midrule
     Google Cloud NLP & 76.7\% & 67.3\% & 34.64 & 10\% & \textbf{86.9\%} & 13.85 & 3.8\% \\
    \bottomrule
    \end{tabular}%
    }

    % \vspace{-0.2cm} % 调整垂直距离
\end{table*}

英文字体通常提供了粗体和斜体的组合,中文字体通常没有粗体或斜体,本模板使用了 `AutoFakeBold' 来实现中文伪粗体,但不提供中文斜体,如\autoref{tab:font-examples}所示。

image

TeXLive version:

This is XeTeX, Version 3.14159265-2.6-0.999992 (TeX Live 2020/W32TeX) (preloaded format=xelatex 2020.11.10)  25 NOV 2020 12:50
entering extended mode

zjuthesis.log

@TheNetAdmin
Copy link
Owner

@fengyang95 如仍有问题,请新开 issue 并按照 issue 模板附上必要信息

@TheNetAdmin
Copy link
Owner

可能是 xdvipdfmx 的问题,复现条件是使用了伪粗,详细介绍见 CTeX-org/ctex-kit#546 。如果确实是这样,可以尝试在 table* 环境内容的首尾分别加上 \special{pdf:code q}\special{pdf:code Q}

感谢指出,我再研究下什么情况下会在 zjuthesis 里触发这个 bug

@ZedongPeng
Copy link

我也出现了这种情况,我加入了下面的代码,但是我所有的表格之后都出现了分页,连在一起几张表可以在同一页,但是表格结束后该页空白,然后文字从下一页开始,有人遇到过这种情况吗?

\AtBeginEnvironment{table}{\special{pdf:code q}}
\AtEndEnvironment{table}{\special{pdf:code Q}}

@muzimuzhi
Copy link

muzimuzhi commented Apr 12, 2021

\special 是 tex whatsit(见 texdoc texbytopic, sec. 30.3),也许需要及时 \leavevmode@ZedongPeng 请给个能复现问题的例子吧。

@ZedongPeng
Copy link

ZedongPeng commented Apr 12, 2021

复现了一个例子,麻烦各位大佬了。

https://www.overleaf.com/read/rypfvnxgpfxj

@muzimuzhi
@TheNetAdmin

@TheNetAdmin
Copy link
Owner

复现了一个例子,麻烦各位大佬了。

https://www.overleaf.com/read/rypfvnxgpfxj

@muzimuzhi
@TheNetAdmin

没能复现,也没太读懂你碰到的具体问题是什么

image

image

如果还没解决的话新开一个 issue 附图和代码说明一下

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

5 participants