寄存器
寄存器
这家伙很懒,什么也没写!

注册于 4年前

回答
173
文章
6
关注者
19

需要提供MWE代码才能准确判断,盲猜是把\usepackage{graphicx}写成了\usepackage{graphics}

采用楼上方案有个问题就是当表格行数变化时,得不断修改row参数。

另一个方案是在所有单元格中先使用\alert<.>以停止beamerpauses计数器,然后在第1列使用\alert<+>覆盖第一列的\alert<.>以在每行开始时递增beamerpauses计数器,从而实现逐行显示。如果某行不需要高亮,则对该行的第1列再次使用\alert<.>覆盖其\alert<+>,如对cell{1}{1}再次使用\alert<.>则可以取消第1行的逐列高亮。

逻辑止看似有点复杂,但这样可以不用考虑具体的表格行数,相对比较通用。

但有一点需要注意,需要在导言区使用\UseTblrLibrary{counter}修正tabularray的计数器。

完整的代码如下:

\documentclass{ctexbeamer}

\usepackage{tabularray}

\UseTblrLibrary{counter} %% added this line

\begin{document}

\begin{frame}
    \frametitle{表格修饰的主要方法}

    % \begin{table} % Beamer中不应该使用table浮动体
      \centering
      \begin{tblr}{
        % 对所有单元枨添加\alert<.>命令,
        % 暂停增加beamerpauses计数器
        cells = {m,cmd=\alert<.>},
        colspec = {Q[c]Q[l,20em]},
        hline{1,Z} = {1pt},
        hline{2},
        % 给第一列添加<+>,增加beamerpauses计数
        % 从而实现逐行显示
        column{1}={cmd=\alert<+>},
        % 暂停增加beamerpauses计数器
        cell{1}{1}={cmd=\alert<.>},
      }
        修饰内容 & 主要属性\\
        框线 & 样式、颜色、宽度\\
        底纹 & 颜色、图案(样式、颜色)\\
        大小 & {自动调整:根据内容、根据窗口 \\指定宽高:指定高度、宽度(厘米、百分比) \\均分行列:分布行、分布列}\\
        对齐 & {九宫格对齐:表格其实只控制了上中下对齐,左右对齐是用段落 \\文字方向:简化的页面设置--文字方向 \\单元格边距:内容盒子和格盒子的距离}\\
        内容 & 同具体对象的设置一样\\
      \end{tblr}
    % \end{table}

  \end{frame}

\end{document}

对于这种散点图,我觉得使用tkz-base宏包进行绘制也不失为一种方便的方案:

% 引入文档类
\documentclass[margin=5pt]{standalone}
% 导言区
\usepackage{ctex}
\usepackage{tkz-base}

% 正文区
\begin{document}

\begin{tikzpicture}[scale=1.00]
  \tkzInit[xmin=34,xmax=56,xstep=2,ymin=460,ymax=620,ystep=20]
  \tkzDrawX[label={}]
  \tkzDrawY[label={}]
  \tkzLabelX[font=\scriptsize]
  \tkzLabelY[font=\scriptsize]
  \tkzText[draw,
    line width = 1pt,%
    color = blue,%
    fill = orange!20](46,435)%
  {年宣传费/千元}
  \tkzText[draw,
    line width = 1pt,%
    color = red,%
    rotate = 90,%
    fill = orange!20](31,540)%
  {年销售量/$t$}
  \tkzDefSetOfPoints[show]{38/500, 40/540, 44/560, 46/570,
                           48/580, 50/590, 56/600}
  \tkzDrawSetOfPoints[mark=ball,mark size=2pt]
\end{tikzpicture}

\end{document}

image.png

请提供MWE(最小工作示例),否则无人知道为什么.

可以基于l3draw宏包,用LaTeX3实现,圆的半径和等分数可以通过可选参数用key-value方式指定(默认半径为8cm,等分数为10),如:

\documentclass{standalone}

\usepackage{l3draw}
\usepackage{xparse}

\ExplSyntaxOn

\bool_new:N \l__circdiv_intersection_bool
\int_new:N  \l__circdiv_cnt_int
\dim_new:N  \l__circdiv_radius_dim

% key_value选项设计
\keys_define:nn { circdiv }
  {
    % 等分数
    cnt .int_set:N = \l__circdiv_cnt_int,
    cnt .initial:n = 10,

    % 圆的半径
    r .dim_set:N = \l__circdiv_radius_dim ,
    r .initial:n = 1cm,

    unknown .code:n = { \msg_error:nn { circdiv } { unknown-option } }
  }
\msg_new:nnn { circdiv } { unknown-option }
  { package~ option~ "\l_keys_key_tl"~ is~ unknown. }

\keys_set:nn { circdiv }
  {
    cnt = 10 ,
    r   = 8cm,
  }

\NewDocumentCommand \circdivset { m }
  { \keys_set:nn { circdiv } {#1} }

\cs_new:Npn \__circdiv_div:
  {
    \draw_begin:
      \color_select:n { blue }
      \draw_path_circle:nn { 0cm, 0cm } { \l__circdiv_radius_dim }
      \draw_path_use_clear:n { stroke }
      \color_select:n { red }
      \int_step_inline:nnnn { 0 } { 360/\l__circdiv_cnt_int } { 359 }
        {
          \int_step_inline:nnnn { 0 } { 360/\l__circdiv_cnt_int } { 359 }
            {
              \draw_path_moveto:n
                  { \draw_point_polar:nn { \l__circdiv_radius_dim } { ##1 } }
              \draw_path_lineto:n
              { \draw_point_polar:nn { \l__circdiv_radius_dim } { ####1 } }
            }
        }
      \draw_path_close:
      \draw_path_use_clear:n { stroke }
    \draw_end:
  }

\NewDocumentCommand{\circdiv}{ s O{} }
  {
    % 可以定义一个星号命令以绘制交点(待研究)
    % \IfBooleanTF{#1}
    %   {
    %     \bool_set_false:N \l__circdiv_intersection_bool
    %   }{
    %     \bool_set_true:N  \l__circdiv_intersection_bool
    %   }
      \group_begin:
        \keys_set:nn { circdiv } {#2}

        \__circdiv_div:
      \group_end:
  }

\ExplSyntaxOff

\begin{document}

\circdiv
\circdiv[cnt=36]

\end{document}

绘制结果为:
image.png

1、请在提问时使用代码块排版代码,否则无法直接拷贝测试,需要修改代码。
2、不建议在一个\usepackage里写这么多宏包,这样会造成无法采用折半注释法分析宏包冲突等问题。
3、类似\usepackage{ctex}\usepackage[OT1]{fontenc}在你的文档中是无意义的,请先读一下lshort-zh-cn,再来用LaTeX工作。
4、提问中并未提供2.jpg图像文件,无法进行测试,建议使用example-image代替。
5、折半注释法是LaTeX调试中一个非常重要的方法,建议熟练掌握。


采用折半注释法,注释所有wrapfigure环境后,则编译没有问题,显然这是该环境的使用问题。使用texdoc warpfig查阅其说明书可以看到其语法为:
image.png

但代码中,仅提供了一个必选参数{R},因此,这是造成问题的原因,修改后的代码为:

\documentclass{ctexbook}
\usepackage{txfonts}
\usepackage{fancyhdr}
\usepackage{CJKfntef}
\usepackage{color}
% \usepackage{ctex}
\usepackage{enumitem}
\usepackage{setspace}
\usepackage{graphicx}
\usepackage{lipsum}
\usepackage{wrapfig}
\usepackage{pdfpages}
% \usepackage[OT1]{fontenc}
\begin{document}

\part{AAA}
\section*{AAA}
\subsection*{AAA}
\lipsum[1-3]
\begin{wrapfigure}{r}{5cm}
\centering
\includegraphics[width=25bp]{example-image}
\caption{AAA}
\end{wrapfigure}
\lipsum[1-5]
\end{document}

其中\begin{wrapfigure}{r}{5cm}中的{5cm}是随意给的,请根据需要进行调整。


说明: wrapfig宏包的最新版本是2003年的版本,已非常老了,建议使用新的wrapfig2宏包。在新的wrapfig2宏包中,wrapfigure环境仅需要一个必选参数,因此你的代码可以通过编译。但wrapfig2宏包会与color宏包发行冲突,可以考虑不使用color宏包(折半注释很容易定位该问题)。

LaTeX分为文本模式和数学模式,而\textdegree不是数学模式中能输出的文本,因此需要使用\text{}命令进行输出(lshort-zh-cn, 4.2.2 数学模式),如:

\documentclass{article}

\usepackage{amsmath}

\begin{document}
  3\textdegree

  $3\text{\textdegree}$

  $3\textdegree$
\end{document}

其输出结果为:
image.png

你的代码不应该是不能编译,而是编译后没有输出。

ps. 提问量,请对代码请使用代码块进行编辑。

一、用的是什么样的文档类(模板),请提供MWE最小工作示例代码。
二、若是标准文档类,如果还是入门阶段,请接受它的结果,不要在这些方便过于纠结。

这个代码作者在github上有仓库: Polynomial-division,用该仓库的代码,余数为0的问题应该已解决。

另一个前面是负号时横线长度是可以解决的,但需要进行较为复杂的逻辑判断,需要判断第一个系数是否为负,根据正负设置\l__poly_uline_tl的起始位置和长度,如:
\prg_replicate:nn {2*\seq_count:N #2 + \l__poly_tmpb_int + 1} {&}修改为\prg_replicate:nn {2*\seq_count:N #2 + \l__poly_tmpb_int} {&}

\tl_put_right:Nx \l__poly_uline_tl {{\int_eval:n {2*\seq_count:N #2 - 1}}}修改为\tl_put_right:Nx \l__poly_uline_tl {{\int_eval:n {2*\seq_count:N #2}}}

但这样简单的修改会带来第一个数为正数时,会产生空白,个人认为进一步修改意义不大。

image.png

可以考虑使用新的tabularray宏包实现:

\documentclass{ctexart}

\usepackage{tabularray}

\begin{document}

\begin{tblr}{|Q[c,m]|Q[l,m]|}
  \hline
  十八年来 &{两只黄鹂鸣翠柳\\ \hspace*{\ccwd}一行白鹭上青天}\\
  \hline
\end{tblr}

\end{document}

image.png

我觉得更为合理的是把表格的内容与格式进一步分离:

\documentclass{ctexart}

\usepackage{xcolor}
\usepackage{tabularray}

\begin{document}

\begin{tblr}{hlines, vlines,
  rows={m},
  column{1}={c},
  column{2}={l,purple7}           
}
  十八年来 &{两只黄鹂鸣翠柳\\ \hspace*{\ccwd}一行白鹭上青天}\\
\end{tblr}

\end{document}

image.png

发布
问题