Latex常见错误与常用debug方法总结
前言
在LaTeX中, 常常会出现很多意想不到的错误, 我一开始学习的时候, 就常常被这种看似玄学的错误整的焦头烂额, 常常是打开一堆CSDN界面各处翻找而没有一个合适的解决方案.
之后在不断的使用和摸索中, 我对于 LaTeX 的报错等问题逐渐有了自己的分析解决方法, 在查找新出现的问题时候也已经转向了TeX - LaTeX Stack Exchange了. 下面我总结一下我自己认为好用的debug方法, 希望能帮到正在使用LaTeX的你.
P.S. 方法论有了, 还是需要自己实践, 针对具体问题进行分析解决才能有所提升.
方法
清理辅助文件
对于一些已经修改的没有问题的文档, 如果在编译时还是会出现报错, 那么你可能需要清理一下辅助文件, 一般来说需要清理的文件只有.a...
Windows上使用winedt提示系统找不到文件的情况分析+texlive安装与配置
问题
最近有同学问我在 Windows 上使用 WinEdt 这款编辑器为什么会提示系统找不到文件, 我搜索一下发现大概率是 $\TeX \rm Live$ 发行版没有正确安装/配置导致的.
但是令我百思不得其解的就是, 明明成功安装了, 却还是提示有问题, 这就很奇怪了.
报错信息:
C:\texlive\2023\bin\windows\runscript.tlu:921: command failed with exit code 1:
perl.exe c:\texlive\2023\texmf-dist\scripts\texlive\fmtutil.pl --user --byfmt xelatex
I can't find the forma...
线段树,树状数组力扣题目总结
写在前面
线段树和树状数组都是用来
基本问题
单点修改, 单点查询
区间修改, 单点查询
2407. 最长递增子序列 II - 力扣(LeetCode);
2426. 满足不等式的数对数目 - 力扣(LeetCode);
剑指 Offer 51. 数组中的逆序对 - 力扣(LeetCode);
315. 计算右侧小于当前元素的个数 - 力扣(LeetCode);
53. 最大子数组和 - 力扣(LeetCode);(DP可以做, 但是线段树普适性更好)
1157. 子数组中占绝大多数的元素;
链表上的快速排序算法c++实现
写在前面
template <typename T>
list<T> sequential_quick_sort(list<T> input) {
if (input.empty()) return input;
list<T> ans{};
ans.splice(ans.begin(), input, input.begin()); // 首元素放置给 ans
T const& pivot = *ans.begin();
// 分割点为插入 pivot 的位置
auto divide_point = partition(input.begin(), input.end(...
回溯,深度优先搜索,记忆化搜索力扣题型总结
组合类回溯
77. 组合 - 力扣(LeetCode);剑指 Offer II 080. 含有 k 个元素的组合;
class Solution {
public:
vector<vector<int>> combine(int n, int k) {
vector<int> path{};
vector<vector<int>> ans{};
function<void(int)> f = [&](int start) {
if (path.size() == k) {
...
链表力扣题型总结
写在前面
其实链表的题大多数都可以用双指针(快慢指针)来做, 只不过不像数组中的双指针那样左右移动, 链表(单链表)的双指针方法都是向后移动的.
刷完链表专题, 可以总结一下链表中常用的套路: (当然, 刷题还是要到位)
不要怕浪费空间, 头(尾)结点的 dummy 最好用.
不要怕浪费指针, 多个指针的移动别搞混.
不要怕画图, 很多题画个链表模拟一下指针移动就能解出来了.
链表声明
这里是力扣通用的链表结构体声明.
需要注意不要冲突定义, 比如设计链表这道题如果在全局定义了ListNode类就会报重定义错误…
struct ListNode {
int val;
ListNode *next;
...
C++并发编程实战笔记(二)互斥量与同步机制(条件变量,期值)
写在前面
C++并发编程实战的三四章内容的总结.
数据竞争(条件竞争)
看下面的多线程读写示例
#include <iostream>
#include <thread>
using namespace std;
int i{};
void f() {
int num = 10000;
for (int n{}; n < num; ++n) i = i + 1;
}
int main(int argc, char *argv[]) {
thread t1(f);
thread t2(f);
t1.join();
t2.join();
cout << i << en...
Linux定时器系统调用与示例
写在前面
写一下定时器与休眠部分的系统调用, 这部分内容还是很重要的, 特别是在Webserver使用中, 需要用到定时器
定时器是进程规划自己在未来某一时刻接获通知的一种机制。
休眠则能使进程(或线程)暂停执行一段时间.
进程可以使用setitimer()或alarm()来设置定时器,以便于在经历指定的一段实际(或进程)时间后收到信号通知。定时器的用途之一是为系统调用的阻塞设定时间上限。
应用程序如需暂停执行一段特定间隔的实际时间,可以使用各种合适的休眠函数。
定时器
共计 465 篇文章,59 页。
您是Zorch的第 个小伙伴
Hits