请问这种图怎么画出来
建议看一下tikz
宏包,其中的入门内容可以比较方便地画出上图的大致轮廓。
本论坛「应该」不是一个「do-this-for-me」的平台,请尽量阅读上面的文档,使用「编辑问题」功能给一份你的尝试的代码。这样既有利于自己的能力提高,也能让论坛的uu能更有针对性地帮到你。
效果也许是这样,但「在你给出你的尝试之后我再贴代码叭😀」
围栏代码块的效果多赏心悦目
\documentclass[tikz,border=1cm]{standalone}
\usepackage{physics2}
\usephysicsmodule{ab.braket}
\begin{document}
\begin{tikzpicture}
\draw (0,.5)
node[rectangle,anchor=east] {Meter}
edge node[above] {$\rho$}
++(1,0) -- ++(5,0);%
\draw (0,-.5)
node[rectangle,anchor=east] {System}
edge node[below] {$\ket|\Phi>$}
++(1,0) -- ++(5,0);%
\node[draw,thick,fill=white,rectangle,minimum size=1.75cm,font=\Huge] at (2,0) {$\hat{u}$};
\draw (4,.5)
node[circle,fill,inner sep=1pt] {} -- (4,-.5)
node[draw,thick,fill=white,rectangle,minimum size=.5cm] {}
node[below=.25cm] {$\Big\{\ket|\Phi>,\ket|\Phi^\perp>\Big\}$};
\end{tikzpicture}
\end{document}
下面两个等号应该像aligned环境一样可以对齐,不过好像在网页上用
不好弄出来
可以借助于一下代码块(狗头)
没必要在subequations
内用多个equation
:
\documentclass{article}
\usepackage{amsmath}
\setlength{\parindent}{0pt}
\begin{document}
aaaaaaaaaaaaaaaa
\begin{subequations}
\begin{align}
A &= B + C \\
D + E &= F + G + H + I
\end{align}
\end{subequations}
bbbbbbbbbbbbb
\end{document}
问3:是否有比较简单可靠的方法实现切换到landscape
环境后,页眉页脚也旋转90°?
但在理想效果中,仅有「页眉」做了旋转 ,「页脚」并未旋转
问3:是否有比较简单可靠的方法实现切换到landscape
环境后,页眉页脚也旋转90°?
关于问题3: 可以参考这个链接
个人觉得没有。
just curious: 为何需要将\chapter
也一起横向放置呢?是否有上面例子真实的使用场景?一般来说对于有「宽表格」的论文,只会在「不改变页眉页脚设置」的前提下「只将这个宽表格横置」.
在这篇JF上的「Default Risk in Equity Returns」Page.30-33.
对于一整篇文章的连续性,个人认为 「正向的第x章」应该保持一致, 一直保持「正向」的「章节页」布局。
IMHO,landscape
环境最简单也是最有效的用法是「仅仅用来旋转单独一个宽度较大的图表」.
问1:ctexbook
环境章节前一页(空白页)的页码错位,标准解决方法是什么?是否应该在每章前手动设置\cleardoublepage
?
问2:在lscape
宏包landscape
环境下,设置\cleardoublepage
无法纠正页码错位,应该如何解决该问题?
关于问题1-2: 此事在此似乎亦有记载
按照DC
的说明:
landscape
包围\chapter
\chapter
前」加上\cleardoublepage
不是很「smooth」的思路:
当需要换页时,总可以优先考虑tcolorbox
.
\documentclass{article}
\usepackage[paperheight=15cm]{geometry}
\usepackage[most]{tcolorbox}
\usepackage{tikz}
\usepackage{lipsum}
\begin{document}
\begin{tcblisting}{%
breakable,sharp corners,colback=white,
skin=beamer,enhanced jigsaw,
title={This is a code listings},
listing only,listing options={%
basicstyle=\ttfamily,
escapeinside={|}{|}},
overlay middle and last={%
\node[text=red,font=\bfseries] at ([xshift=-7.5em,yshift=1ex]frame.north east) {(Followed by last page)};%
},%
}
\section{A sec}
xxxxxxxxxxxxxxx
|\lipsum[1-5]|
yyyyyyyyyyyyyyy
\section{A sec}
\end{tcblisting}
\end{document}
主要难点是涉及整个tikz
库多文件之间的相互关联。
提取一个「相对比较简单的」MWE如下,其中:
\input{pgfmanual-en-main-preamble.tex}
需要的代码来自./base/doc/pgfmanual-en-main-preamble.tex
ltxdoc
文档类,其中定义了一些关键的命令和环境截自v3.10(2025-06-22),该文件可在这里获得:pgfmanual-en-main-preamble.tex
\documentclass{ltxdoc}
\usepackage{tikz}
\usepackage{pgf}
\input{pgfmanual-en-main-preamble.tex}
\begin{document}
\begin{codeexample}[]
\begin{tikzpicture}
\foreach \x in {1,2,...,5,7,8,...,12}
\foreach \y in {1,...,5}
{
\draw (\x,\y) +(-.5,-.5) rectangle ++(.5,.5);
\draw (\x,\y) node{\x,\y};
}
\end{tikzpicture}
\end{codeexample}
\end{document}
当然,\input{pgfmanual-en-main-preamble.tex}
内部多达300行,还是不够简的。
纵览整个pgfmanual-en-main-preamble.tex
文件,其核心在于:
% Line 187
\input{pgfmanual-en-macros}
根据TSE上搜索的结果和kpathsea
的索引逻辑,该文件的位置位于./base/tex/latex/doc/pgfmanual-en-macros.tex
上面的文件调用了pgfmanual-en-macros.tex
,我们同时还发现:
% pgfmanual-en-macros.tex
% Line 1858
\usepackage{pgfmanual}
这将会调用./base/tex/latex/doc/pgfmanual.sty
文件:
% pgfmanual.sty
\ProvidesPackage{pgfmanual}[2009/10/15]
\input pgfmanual.code.tex
其中的\input pgfmanual.code.tex
会调用上面截图路径中的pgfmanual.code.tex
:
% pgfmanual.code.tex
\input pgfmanual.prettyprinter.code.tex
\input pgfmanual.pdflinks.code.tex
接下来只要用二分删除的方式,理论上可以只提取出「最轻量」的「仅仅用于codeexample
环境实现」的部分「最短代码」。
首先尝试二分删除简化「pgfmanual-en-main-preamble.tex
」,似乎仅有这两行是必不可少的:
\usepackage{calc,listings}
% \usepackage[version=latest]{pgf}
\input{pgfmanual-en-macros}
这里[version=latest]
会报错...懒得管,先注释这个选项即可...
非常初步简化的MWE如下:
\documentclass{ltxdoc}
\usepackage{tikz,pgf,calc,listings}
\input{pgfmanual-en-macros.tex}
\begin{document}
\begin{codeexample}[]
\begin{tikzpicture}
\foreach \x in {1,2,...,5,7,8,...,12}
\foreach \y in {1,...,5}
{
\draw (\x,\y) +(-.5,-.5) rectangle ++(.5,.5);
\draw (\x,\y) node{\x,\y};
}
\end{tikzpicture}
\end{codeexample}
\end{document}
换言之,下面的工作只要专心把pgfmanual-en-macros.tex
进一步做简化即可。
TBC.
另外,您如何确定
\setCJKmainfont{NSimSun.ttf}[
ItalicFont = simfang.ttf,
BoldFont = FZXKTK.TTF,
BoldItalicFont = STZHONGS.TTF,
FallBack = simsunb.ttf
]
里的
「新中易宋体」、「中易仿宋」、「方正新楷体」、「华文中宋」和「中易宋体-extb」是相匹配的
同时:
在windows系统下默认没有自带FZXKTK.TTF
和STZHONGS.TTF
字体
这些都是提问者需要提供的内容。
总之,请让潜在的回答者「一点击编译立刻可以看到你的示例效果图」
我给一个MWE:
\documentclass{ctexart}
\setCJKmainfont{NSimSun}[
FallBack = simsunb.ttf
]
\usepackage{zhlipsum}
\begin{document}
\zhlipsum[name=zhufu]
\end{document}
远看效果:
近看效果:
再给一个MWE
\documentclass{ctexart}
\setCJKmainfont{NSimSun}[
FallBack = simsunb.ttf
]
\usepackage{zhlipsum}
\begin{document}
王位。毗湿摩——福身王的长子——王位正当的继承人满足了渔人的要求,宣布放弃王位,并发誓终身不娶,以便让贞信之子继承王位。毗湿摩不仅做出这些牺牲(在印度,自制一直是备受赞美的品质),他还到迦尸王庭,参加勇士较量,打败所有对手,赢回公主安芭(Āmbā)、安必迦(Āmbikā)和安波利迦(Āmbālikā),作他同父异母的弟弟——贞信之子——奇武的妻子(安芭拒绝嫁给奇武王,她的故事容后再述)。在福身王死时,奇武尚未成年,他在象城称王,由毗湿摩摄政。这就是慷慨非凡的毗湿摩,在他有生之年,都是世上最伟大的勇士,又是最伟大的兵法导师。在娶了安必迦和安波利迦之后,奇武王仍无子女。他同母异父的哥哥毗耶娑仙人,根据叔娶嫂制的风俗,担起责任,和他的妻子们生育子嗣。随后,安必迦成为持国的母亲,持国目盲且优柔寡断,是后来俱卢族国王;安波利迦则成为般度的母亲,般度是般度五子形式上而非真正的父亲。这样看来,般度之子和俱卢之子,除有超自然干预和大量的代理父亲、堂兄弟外,作为后裔的俱卢之子均远离俱卢族;般度之子也同样,他们源于俱卢族是通过其法定的、而非真正的父亲般度。
\end{document}
似乎没看出所谓「页面显示文字深浅不一,整体看有一坨坨的黑斑」...
最后,提问必须要给可复现代码,谁也不知道你的截图怎么编译出来的...
请给一个完整的代码例子。
并详细描述「实际效果」和「预期效果」的差异。
hello, world!
!!!文件配置是全的,完全一样的文件在别人电脑上的运行没有问题
表述很模糊,什么文件配置,又是什么全的,怎么个全法?
\documentclass
开始到\end{document}
结束siamart220329
是什么文档类???在哪里可以获得???你要是不能描述你具体哪里不会排,这看起来更像是「请帮我完成以下排版任务」;与其如此,不如你找这个公众号的主人,给点钱让把源码发你请不要把提问区当成许愿池,提问需要基本的诚意
这个论坛上活跃答题的就那么几个,要是你总是不遵守论坛规则,估计后面没人愿意回答了
那你的最小工作示例代码呢?作为一门写代码的学问提问不给代码?没有代码让人手工给你造轮子?
要想在论坛获得满意的答案,你首先「必须」付出并展示足够的努力(试问你付出了多少时间,上面的提问看起来就像是看到一个好看的一点尝试都没做就发出来问「如何实现」),让人能看到「他确实花了很多时间,确实在某个地方遇到了障碍」,而不是直接「伸手」....
推荐阅读:提问的智慧
由于提问极不规范而且缺少诚意...
随便答了,假定你要在enumerate
内使用自定义bullet
,自己画一个即可:
\documentclass{article}
\usepackage{tikz,enumitem,lipsum}
\newcommand*\mybullet[2][cyan]{%
\tikz[baseline=(char.base)]{%
\node[rectangle, fill=#1, inner sep=2pt, minimum height = 1.3em,font=\bfseries\color{white}] (char) {#2};
\draw[#1,very thin] ([yshift=-.3ex]char.south west) -- ([yshift=-.3ex]char.south east);
}}
\begin{document}
\begin{enumerate}[label=\protect\mybullet{\arabic*},start=9]
\item \lipsum[2]
\item \lipsum[2]
\item \lipsum[2]
\end{enumerate}
\end{document}
本着「不要重复造轮子」的原则,一个比较适合的包是texdox xsim
一个简单的用例在这里
给一个更完整点的例子(注意可能要手动删除.xsim
文件以防止错误的结果):
\documentclass{article}
\usepackage{xsim}
\usepackage{lipsum}
\DeclareExerciseCollection[label=A]{A}
\DeclareExerciseCollection[label=B]{B}
\DeclareExerciseCollection[label=C]{C}
\DeclareExerciseCollection[label=D]{D}
\DeclareExerciseTagging{label}
\xsimsetup{collect}
\begin{document}
\begin{exercise}[label=C]
\textbf{C} \lipsum[2]
\end{exercise}
\begin{exercise}[label={A,B}]
\textbf{A and B} \lipsum[2]
\end{exercise}
\begin{exercise}[label={B,C,D}]
\textbf{B and C and D} \lipsum[2]
\end{exercise}
\begin{exercise}[label={D,A}]
\textbf{D and A} \lipsum[2]
\end{exercise}
\section{AAA}
\printcollection{A}
\section{CCC}
\printcollection{C}
\section{DDD}
\printcollection{D}
\end{document}
Long Long Ago:
要求不使用参数方程,仍然使用自定义函数的方式
我不太能理解原因,是希望半个柱面用colormapA,另外半个柱面用colormapB吗?如果是,你应该直接说明你的最终需求,而不是中间需求「要求不使用参数方程,仍然使用自定义函数的方式」
图中ABCD四个位置明显渲染效果面积比其它位置大,如果增加样本量,这个现象还是存在。
这是因为采用「y=±√9-x^2」的形式, pgfplots
在处理时对x domain
进行等距离的分划,可以发现在两端对应的半圆切片更大(也就是A、D、B、C面积更大)
而如果采用「{cosx,sinx,y}」的形式,被等距离分划的是圆心角,因此这样的各个子块的面积是相同的
\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
\usepgfplotslibrary{colormaps,fillbetween}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
scale=2,axis equal,
view={120}{30},samples=20,
xlabel={$X$},ylabel={$Y$}]
\addplot3[
colormap/bluered,surf,
z buffer=sort,
domain=0:2*pi,
y domain=-4:0,
]
({3*cos(deg(x))},{3*sin(deg(x))},{y});
\end{axis}
\end{tikzpicture}
\end{document}
\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
\usepgfplotslibrary{colormaps,fillbetween}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
scale=2,axis equal,
view={120}{30},samples=20,
xlabel={$X$},ylabel={$Y$}]
\addplot3[
colormap/viridis,surf,
z buffer=sort,
domain=pi:2*pi,
y domain=-4:0,
]
({3*cos(deg(x))},{3*sin(deg(x))},{y});
\addplot3[
colormap/bluered,surf,
z buffer=sort,
domain=0:pi,
y domain=-4:0,
]
({3*cos(deg(x))},{3*sin(deg(x))},{y});
\end{axis}
\end{tikzpicture}
\end{document}
使用\exp_args:Nne
对参数进行e-type
展开
\documentclass{exam-zh}
\newcommand{\foo}{a3paper}
% \def\foo{a3paper}
\ExplSyntaxOn
\RenewDocumentCommand \examsetup { m }{
\exp_args:Nne \keys_set:nn {exam-zh} {#1}
}
\ExplSyntaxOff
\examsetup{
page/size={\foo},%可展的key-value
sealline/show=true,%不可展的key-value
}
\begin{document}
花有重开日,人无再少年。花有重开日,人无再少年。
\end{document}
在ctex-kit
中,today
这一key也是由.choice
定义的:
下面的mwe也有类似的问题:
\documentclass[fontset=ubuntu]{ctexart}
\def\mytodaystyle{big}
\ctexset{
today=\mytodaystyle,
}
\begin{document}
日期: \today
\end{document}
! Class ctexart Error: Today format `big' is undefined.
For immediate help type H <return>.
...
l.8 }
「似乎」也可以做类似的「展开」,但是l3keys
默认是不进行展开的,这样做是否会造成其他的问题,我不清楚...
\documentclass[fontset=ubuntu]{ctexart}
\def\mytodaystyle{big}
\ExplSyntaxOn
\exp_args:Ne
\ctexset{
% today=big,
today=\mytodaystyle,
}
\ExplSyntaxOff
\begin{document}
日期: \today
\end{document}
问 2025年,在中文文档排版时,luatex-ja和xeCJK提供的功能差异在哪?